| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- local ActivityHundredItem = class("ActivityHundredItem",require("Activities/ActivityTypeItem"))
- function ActivityHundredItem:ctor()
- self.reachTime = nil
- self.rewardStateServer = nil
- self.curDayEndTime = nil
- self.rewardStates = {}
- self.hasReward = false
- self.redPointType = Enum.RPNotifyType.HundredRecharge
- end
- function ActivityHundredItem:SyncSrvData(serverData, curDayEndTime)
- self.reachTime = serverData.param_time
- self.rewardStateServer = serverData.reward_state
- self.curDayEndTime = curDayEndTime
- self:CheckRewardState()
- end
- function ActivityHundredItem:SyncCurDayEndTime(curDayEndTime)
- if self.curDayEndTime == curDayEndTime then return false end
- self.curDayEndTime = curDayEndTime
- self:CheckRewardState()
- return true
- end
- function ActivityHundredItem:CheckRewardState()
- local remainTime = -1
- if self.reachTime and self.reachTime > 0 and self.curDayEndTime and self.curDayEndTime > 0 then
- remainTime = self.curDayEndTime - self.reachTime
- remainTime = remainTime / 1000
- remainTime = type(remainTime) == "number" and remainTime or #remainTime
- end
- local hasReward = false
- if remainTime > 172800 then
- if (Bit.band(self.rewardStateServer, 2) == 2) then
- self.rewardStates[1] = Enum.ActivityRewardState.GotAndHas
- else
- self.rewardStates[1] = Enum.ActivityRewardState.Got
- hasReward = true
- end
- if (Bit.band(self.rewardStateServer, 4) == 4) then
- self.rewardStates[2] = Enum.ActivityRewardState.GotAndHas
- else
- self.rewardStates[2] = Enum.ActivityRewardState.Got
- hasReward = true
- end
- if (Bit.band(self.rewardStateServer, 8) == 8) then
- self.rewardStates[3] = Enum.ActivityRewardState.GotAndHas
- else
- self.rewardStates[3] = Enum.ActivityRewardState.Got
- hasReward = true
- end
- elseif remainTime > 86400 then
- if (Bit.band(self.rewardStateServer, 2) == 2) then
- self.rewardStates[1] = Enum.ActivityRewardState.GotAndHas
- else
- self.rewardStates[1] = Enum.ActivityRewardState.Got
- hasReward = true
- end
- if (Bit.band(self.rewardStateServer, 4) == 4) then
- self.rewardStates[2] = Enum.ActivityRewardState.GotAndHas
- else
- self.rewardStates[2] = Enum.ActivityRewardState.Got
- hasReward = true
- end
- self.rewardStates[3] = Enum.ActivityRewardState.NotGot
- elseif remainTime >= 0 then
- if (Bit.band(self.rewardStateServer, 2) == 2) then
- self.rewardStates[1] = Enum.ActivityRewardState.GotAndHas
- else
- self.rewardStates[1] = Enum.ActivityRewardState.Got
- hasReward = true
- end
- self.rewardStates[2] = Enum.ActivityRewardState.NotGot
- self.rewardStates[3] = Enum.ActivityRewardState.NotGot
- else
- self.rewardStates[1] = Enum.ActivityRewardState.NotGot
- self.rewardStates[2] = Enum.ActivityRewardState.NotGot
- self.rewardStates[3] = Enum.ActivityRewardState.NotGot
- end
- self.hasReward = hasReward
- end
- function ActivityHundredItem:HasRedPoint()
- return self.hasReward
- end
- function ActivityHundredItem:GetRewardState()
- if self.hasReward then
- return Enum.ActivityRewardState.Got
- end
- if (self.reachTime and self.reachTime > 0) then
- return Enum.ActivityRewardState.GotAndHas
- end
- return Enum.ActivityRewardState.NotGot
- end
- function ActivityHundredItem:GetRewardStateByDay(day)
- return self.rewardStates[day] or Enum.ActivityRewardState.NotGot
- end
- return ActivityHundredItem
|