public Reward GetLastGivenReward() { int idx = RewardStorage.GetLastSeqIdxGiven(this); if (idx < 0) { return(null); } return(Rewards[idx]); }
protected override bool takeInner() { int idx = RewardStorage.GetLastSeqIdxGiven(this); if (idx <= 0) { return(false); // all rewards in the sequence were taken } RewardStorage.SetLastSeqIdxGiven(this, --idx); return(true); }
protected override bool giveInner() { int idx = RewardStorage.GetLastSeqIdxGiven(this); if (idx >= Rewards.Count) { return(false); // all rewards in the sequence were given } RewardStorage.SetLastSeqIdxGiven(this, ++idx); return(true); }
public bool ForceNextRewardToGive(Reward reward) { for (int i = 0; i < Rewards.Count; i++) { if (Rewards[i].ID == reward.ID) { RewardStorage.SetLastSeqIdxGiven(this, i - 1); return(true); } } return(false); }
public bool Give() { if (!CanGive()) { SoomlaUtils.LogDebug(TAG, "(Give) Reward is not approved by Schedule. id: " + _id); return(false); } if (giveInner()) { RewardStorage.SetRewardStatus(this, true); return(true); } return(false); }
public bool Take() { if (!RewardStorage.IsRewardGiven(this)) { SoomlaUtils.LogDebug(TAG, "Reward not given. id: " + _id); return(false); } if (takeInner()) { RewardStorage.SetRewardStatus(this, false); return(true); } return(false); }
public bool CanGive() { return(Schedule.Approve(RewardStorage.GetTimesGiven(this))); }
public bool HasMoreToGive() { return(RewardStorage.GetLastSeqIdxGiven(this) < Rewards.Count); }