Esempio n. 1
0
        public Reward GetLastGivenReward()
        {
            int idx = RewardStorage.GetLastSeqIdxGiven(this);

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