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()); }
public override IRewardResult Award(IRewardResult rewardResult) { var result = (TriggerRewardResult)rewardResult; result.trigger.Activate(); return(result); }
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); }
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)); }
public virtual IRewardResult Award(IRewardResult rewardResult) { return(null); }
public override IRewardResult Award(IRewardResult rewardResult) { innerReward.Award(((WrappedRewardResult)rewardResult).rewardResult); return(rewardResult); }
public WrappedRewardResult(RawNode node, IContext context) : base(node, context) { rewardResult = FactoryManager.Build <RewardResult>(node.GetNode("result"), context); }
public WrappedRewardResult(string type, IRewardResult rewardResult, IContext context = null) : base(type, context) { this.rewardResult = rewardResult; }