Ejemplo n.º 1
0
        public Reward GetLastGivenReward()
        {
            int idx = RewardStorage.GetLastSeqIdxGiven(mID);

            if (idx < 0)
            {
                return(null);
            }
            return(Rewards[idx]);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
 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);
 }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
 public bool HasMoreToGive()
 {
     return(RewardStorage.GetLastSeqIdxGiven(mID) < Rewards.Count);
 }
Ejemplo n.º 8
0
 public bool CanGive()
 {
     return(Schedule.Approve(RewardStorage.GetTimesGiven(mID)));
 }