miduo_client/Assets/ManagedResources/~Lua/Modules/Operating/RewardPreview.lua

86 lines
3.1 KiB
Lua

local RewardPreview= quick_class("RewardPreview")
local lotterySetting=ConfigManager.GetConfig(ConfigName.LotterySetting)
local data={}
local listPre={}
local curtimes=0
function RewardPreview:ctor(gameObject)
self.gameObject = gameObject
self:InitComponent(gameObject)
self:BindEvent()
self:OnShow()
end
function RewardPreview:InitComponent(gameObject)
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,"tip1"):GetComponent("Text")
self.slider=Util.GetGameObject(self.gameObject,"Slider"):GetComponent("Slider")
end
function RewardPreview:BindEvent()
Util.AddClick(self.closeBtn.gameObject,function() self:OnHide() end)
end
function RewardPreview:OnShow()
self.gameObject:SetActive(true)
local maxtimesId=lotterySetting[RecruitType.TimeLimitSingle].MaxTimes;
curtimes=PrivilegeManager.GetPrivilegeUsedTimes(maxtimesId)
self: RefreshRewarid()
self.curtimes.text=Language[12181]..curtimes
end
function RewardPreview:RefreshRewarid()
local curActivityId=ActivityGiftManager.IsActivityTypeOpen(ActivityTypeDef.FindFairy)
data= ConfigManager.GetAllConfigsDataByKey(ConfigName.ActivityRewardConfig,"ActivityId",curActivityId)
local tmp=0
local count=0
for n,m in ipairs(data) do
if n~=1 then
count = count + m.Values[1][1]-tmp
end
tmp = m.Values[1][1]
self.slider.value = curtimes / m.Values[1][1]
end
tmp=0
local position = 0
local width = self.itemPre.transform:GetComponent("RectTransform").sizeDelta.x
local interval = self.itemGrid.transform:GetComponent("RectTransform").sizeDelta.x - (width * #data)
if(not listPre) then
listPre={}
end
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]}, 1.1, true)
o.gameObject:SetActive(true)
Util.GetGameObject(listPre[n].gameObject,"progress"):GetComponent("Text") .text=m.Values[1][1]
if n==1 then
listPre[n].transform:GetComponent("RectTransform").anchoredPosition3D = Vector3.zero
position = 0
else
local tempinterval = (m.Values[1][1] - tmp) / count * interval
position = tempinterval + width + position
listPre[n].transform:GetComponent("RectTransform").anchoredPosition3D=Vector3.New(position,0,0)
end
tmp=m.Values[1][1]
end
end
end
function RewardPreview:OnHide()
self.gameObject:SetActive(false)
data={}
end
function RewardPreview:OnDestroy()
listPre=nil
data=nil
end
return RewardPreview