public void PurchaseUnit(IUnit unit) { if (unit == null) { throw new System.ArgumentNullException(nameof(unit)); } if (Gold.Value < unit.GoldCost.Value) { throw new System.Exception("No gold to buy unit."); } Gold = new PositiveInt(Gold.Value - unit.GoldCost.Value); GoldChanged?.Invoke(-unit.GoldCost.Value); }
public void ChangeGold(int amount) { _gold += amount; GoldChanged?.Invoke(_gold); }
public void ResetGold() { _gold = 0; GoldChanged?.Invoke(_gold); }
private void OnGoldChanged(float value) => GoldChanged?.Invoke(this, new FloatEventArgs(value));
protected virtual void OnGoldChanged() { GoldChanged?.Invoke(this, EventArgs.Empty); }
private void Treasury_GoldChanged(int change) => GoldChanged?.Invoke(change);
public void AddGold(PositiveInt gold) { Gold = new PositiveInt(Gold.Value + gold.Value); GoldChanged?.Invoke(gold.Value); }