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