Пример #1
0
        public override IRewardResult Award(IRewardResult rewardResult)
        {
            var simpleResourceRewardResult = (RenewableResourceRewardResult)rewardResult;

            simpleResourceRewardResult.resource.Change(simpleResourceRewardResult.amount);
            return(rewardResult);
        }
        public static IRewardResult[] DecompositeResult(IRewardResult reward, List <IRewardResult> rewards = null)
        {
            if (rewards == null)
            {
                rewards = new List <IRewardResult>();
            }

            var wr = reward as WrappedRewardResult;

            if (wr != null)
            {
                DecompositeResult(wr.rewardResult, rewards);
            }
            else
            {
                var cr = reward as CompositeRewardResult;

                if (cr != null)
                {
                    foreach (var r in cr.results)
                    {
                        DecompositeResult(r, rewards);
                    }
                }
                else
                {
                    rewards.Add(reward);
                }
            }

            return(rewards.ToArray());
        }
Пример #3
0
        public override IRewardResult Award(IRewardResult rewardResult)
        {
            var result = (TriggerRewardResult)rewardResult;

            result.trigger.Activate();
            return(result);
        }
Пример #4
0
        public override IRewardResult Award(IRewardResult rewardResult)
        {
            var results = ((CompositeRewardResult)rewardResult).results;

            for (int i = 0; i < results.Length; i++)
            {
                rewards[i].Award(results[i]);
            }

            return(rewardResult);
        }
Пример #5
0
        public override IRewardResult Calculate()
        {
            var rewardResults = new IRewardResult[rewards.Count()];

            for (int i = 0; i < rewards.Count(); i++)
            {
                rewardResults[i] = rewards[i].Calculate();
            }

            return(new CompositeRewardResult(type, rewardResults));
        }
Пример #6
0
 public virtual IRewardResult Award(IRewardResult rewardResult)
 {
     return(null);
 }
 public override IRewardResult Award(IRewardResult rewardResult)
 {
     innerReward.Award(((WrappedRewardResult)rewardResult).rewardResult);
     return(rewardResult);
 }
Пример #8
0
 public WrappedRewardResult(RawNode node, IContext context) : base(node, context)
 {
     rewardResult = FactoryManager.Build <RewardResult>(node.GetNode("result"), context);
 }
Пример #9
0
 public WrappedRewardResult(string type, IRewardResult rewardResult, IContext context = null)
     : base(type, context)
 {
     this.rewardResult = rewardResult;
 }