sk-client/Assets/ManagedResources/~Lua/Modules/DynamicActivity/RewardPreview.lua

96 lines
3.2 KiB
Lua

local RewardPreview = quick_class("RewardPreview")
local lotterySetting = ConfigManager.GetConfig(ConfigName.LotterySetting)
local data = {}
local listPre = {}
local curtimes = 0
function RewardPreview:ctor(gameObject, sortingOrder)
self.gameObject = gameObject
self:InitComponent()
self:BindEvent()
self:OnShow()
gameObject:GetComponent("Canvas").sortingOrder = sortingOrder + 1
end
function RewardPreview:InitComponent()
self.closeBtn = Util.GetGameObject(self.gameObject, "close")
self.itemGrid = Util.GetGameObject(self.gameObject, "itemGrid")
self.itemPre = Util.GetGameObject(self.gameObject, "itemprefab")
self.curtimes = Util.GetGameObject(self.gameObject, "tip2/Text"):GetComponent("Text")
self.slider = Util.GetGameObject(self.gameObject, "Slider"):GetComponent("Slider")
self.pos = Util.GetGameObject(self.gameObject, "Slider/Fill Area/Fill/pos")
end
function RewardPreview:BindEvent()
Util.AddClick(
self.closeBtn.gameObject,
function()
self:OnHide()
end
)
end
local d1,d2
function RewardPreview:OnShow()
self.gameObject:SetActive(true)
-- local maxtimesId = lotterySetting[RecruitType.TimeLimitSingle].MaxTimes
curtimes = OperatingManager.TimeLimitedTimes
self:RefreshRewarid()
self.curtimes.text = curtimes
if curtimes <= d1 then
self.slider.value = curtimes
elseif curtimes > d1 and curtimes < d2 then
self.slider.value = curtimes + d1
else
self.slider.value = curtimes + d1
end
end
function RewardPreview:RefreshRewarid()
local curActivityId = ActivityGiftManager.IsActivityTypeOpen(ActivityTypeDef.FindFairy)
data = ConfigManager.GetAllConfigsDataByKey(ConfigName.ActivityRewardConfig, "ActivityId", curActivityId)
if not listPre then
listPre = {}
end
self.slider.maxValue = data[#data].Values[1][1]
d1 = data[1].Values[1][1]
d2 = data[3].Values[1][1]
for n, m in ipairs(data) do
if m then
if not listPre[n] then
listPre[n] = newObjToParent(self.itemPre, self.itemGrid)
listPre[n].gameObject:SetActive(true)
end
local o = SubUIManager.Open(SubUIConfig.ItemView, listPre[n].transform)
o:OnOpen(false, {m.Reward[1][1], m.Reward[1][2]}, 0.65, true)
o.gameObject:SetActive(true)
Util.GetGameObject(listPre[n].gameObject, "progress"):GetComponent("Text").text = m.Values[1][1]
if m.Values[1][1] <= d1 then
self.slider.value = m.Values[1][1]
elseif curtimes > d1 and curtimes < d2 then
self.slider.value = m.Values[1][1] + d1
else
self.slider.value = m.Values[1][1] + d1
end
listPre[n].transform.position = self.pos.transform.position
local posx = listPre[n].transform.localPosition.x - 79
listPre[n].transform:GetComponent("RectTransform").anchoredPosition3D = Vector3.New(posx, 0, 0)
end
end
end
function RewardPreview:OnHide()
self.gameObject:SetActive(false)
data = {}
end
function RewardPreview:OnDestroy()
listPre = nil
data = nil
end
return RewardPreview