Esempio n. 1
0
        public override void ApplyDifferenceByAction(StatsDifference difference, StateAction action, float multiplier = 1)
        {
            base.ApplyDifferenceByAction(difference, action, multiplier);

            // TODO aaaaargh ugly comparison of objects to find out if it's after-action difference!
            // maybe create methods UpdateBeforeAction and UpdateAfterAction in StateItem and make default implementation the same, just override it in money case
            if (action.IsWorkAction() && difference == action.GetEffectAfter())
            {
                Value += action.IsPartnersAction() ? _getPartnerSalary() : _getPlayerSalary();
            }
        }
Esempio n. 2
0
    private StatsDifference CreateSummaryEffect(StateAction action)
    {
        StatsDifference result = new StatsDifference();

        var differences = new[] { action.GetEffectBefore(), action.GetEffectDuring(), action.GetEffectAfter() };

        foreach (StatsDifference difference in differences)
        {
            result.Plus(difference);
        }

        if (action.GetName() == PlayerActionType.GoToWork.ToString())
        {
            result.SetMoney(State.State.GetStateItemValue <int>(StateItemType.MySalary.ToString()));
        }

        if (action.GetName() == PlayerActionType.PartnerGoesToWork.ToString())
        {
            result.SetMoney(State.State.GetStateItemValue <int>(StateItemType.PartnerSalary.ToString()));
        }

        return(result);
    }
Esempio n. 3
0
 private void UpdateAfterAction(StateAction action)
 {
     UpdateStatsOneTime(action.GetEffectAfter(), action);
 }