Example #1
0
        public void Upgrade(string to)
        {
            UpgradesTo = to;

            if (Upgraded != null)
            {
                Upgraded.Invoke(this);
            }
        }
Example #2
0
        public virtual void Upgrade(IUpgradeData data)
        {
            Level++;

            Visual.UpdateUpgradeVisual(Level);

            if (Upgraded != null)
            {
                Upgraded.Invoke(_previewCost);
            }

            _previewCost = Cost;
        }
Example #3
0
        public static GrainState <T> Apply <T>(this GrainState <T> state, object @event)
        {
            (T newState, bool exists) = @event switch
            {
                Deleted <T> _ => (default(T), false),
                Created <T> c => (c.After, true),
                Upgraded <T> c => (c.After, true),
                _ => (CalculateState(state.Value, @event), state.Exists)
            };

            return(new GrainState <T> {
                Value = newState, Exists = exists
            });
        }
Example #4
0
        public Error Upgrade()
        {
            if (Level >= 20)
            {
                return(Error.TribeMaxLevel);
            }

            Resource cost = formula.GetTribeUpgradeCost(Level);

            if (!Resource.HasEnough(cost))
            {
                return(Error.ResourceNotEnough);
            }

            Resource.Subtract(formula.GetTribeUpgradeCost(Level));
            Level++;
            dbManager.Save(this);

            Upgraded.Raise(this, new TribeEventArgs {
                Tribe = this
            });
            return(Error.Ok);
        }
Example #5
0
 private void DefaultUpgradeTowerPanelOnUpgradeClicked(ICanUpgrade upgrade, IUpgrader upgrader)
 {
     Upgraded?.Invoke(upgrade, upgrader);
 }
Example #6
0
 public virtual void Upgrade()
 {
     Upgraded?.Invoke(this);
 }