From 3fdd5581ca71cd7b0085b874307d63b04a01f8e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=B5=D0=BD=D0=B8=D1=81=D0=BE=D0=B2=20=D0=AF=D1=80?= =?UTF-8?q?=D0=BE=D1=81=D0=BB=D0=B0=D0=B2?= Date: Wed, 17 Aug 2022 16:50:31 +0300 Subject: [PATCH] New event added --- Runtime/Wallet/CurrencyAccount.cs | 21 ++++++++++++--------- Runtime/Wallet/ICurrency.cs | 5 +++-- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/Runtime/Wallet/CurrencyAccount.cs b/Runtime/Wallet/CurrencyAccount.cs index 5eb9303..d2a86de 100644 --- a/Runtime/Wallet/CurrencyAccount.cs +++ b/Runtime/Wallet/CurrencyAccount.cs @@ -1,5 +1,4 @@ using System; -using System.Security.Cryptography; namespace CurrencySystem { @@ -10,16 +9,26 @@ public sealed class CurrencyAccount : ICurrency private float _multiplier = 1; private IVault _vault; + /// + /// Передает общее кол-во денег на счету + /// [field: NonSerialized] - public event ICurrency.CurrencyEvent OnCurrencyChange; + + public event ICurrency.CurrencyEvent OnNewAmount; + /// + /// Передает сумму, на которую счет изменился + /// + [field: NonSerialized] + public event ICurrency.CurrencyEvent OnChange; private double Amount { get { return _vault.Amount; } set { + OnChange?.Invoke(value - _vault.Amount); _vault.Amount = value; - NotifyEvent(); + OnNewAmount?.Invoke(value); } } @@ -35,12 +44,6 @@ public CurrencyAccount(string currencyCode, double amount, float multiplier = 1) _vault = new Vault(amount, currencyCode); } - private void NotifyEvent() - { - Aes.Create(); - OnCurrencyChange?.Invoke(Amount); - } - public void Add(double amount) { Amount += amount * _multiplier; diff --git a/Runtime/Wallet/ICurrency.cs b/Runtime/Wallet/ICurrency.cs index ea51a6a..e168c03 100644 --- a/Runtime/Wallet/ICurrency.cs +++ b/Runtime/Wallet/ICurrency.cs @@ -2,8 +2,9 @@ namespace CurrencySystem { public interface ICurrency { - delegate void CurrencyEvent(double newAmount); - event CurrencyEvent OnCurrencyChange; + delegate void CurrencyEvent(double amount); + event CurrencyEvent OnNewAmount; + event CurrencyEvent OnChange; public string CurrencyCode { get; } public double Get(); public void Add(double amount);