public int GetReward(Reward.RewardType rewardType, IRewardArgs rewardArgs) { switch (rewardType) { case Reward.RewardType.DeliveryReward: return(new DeliveryReward(typeof(DeliveryRewardArgs)).GetReward(rewardArgs)); case Reward.RewardType.LandingReward: return(new LandingReward(typeof(LandingRewardArgs)).GetReward(rewardArgs)); case Reward.RewardType.FuelReward: return(new FuelReward(typeof(FuelRewardArgs)).GetReward(rewardArgs)); default: throw new System.NotImplementedException(); } }
public virtual int GetReward(IRewardArgs args) { if (args.GetType() != argsType) { Debug.LogError("Wrong Datatype in getting rewards!"); return(0); } else { Args = args; if (args == null) { throw new ArgumentException(); } Value = CalculateReward(); OnRewardGranted(this); return(Value); } }
private void AddScore(Reward.RewardType type, IRewardArgs entityRewardData) { var score = GameController.Instance.Rewards.GetReward(type, entityRewardData); Stats.AddScore(score); }