96 lines
3.7 KiB
Lua
Executable File
96 lines
3.7 KiB
Lua
Executable File
local FundTowerCell = class("FundTowerCell", BaseCell)
|
|
|
|
function FundTowerCell:init()
|
|
local uiMap = self:getUIMap()
|
|
self.progNode = uiMap["fund_tower_cell.prog"]
|
|
self.imgProg = uiMap["fund_tower_cell.prog.img_prog"]:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_SLIDER)
|
|
self.lvNode = uiMap["fund_tower_cell.level"]
|
|
self.txLv = uiMap["fund_tower_cell.level.tx_lv"]
|
|
self.freeRewardCells = {}
|
|
for i = 1, 2 do
|
|
table.insert(self.freeRewardCells, uiMap["fund_tower_cell.rewards_free.reward_cell_" .. i]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL))
|
|
end
|
|
self.proRewardCells = {}
|
|
for i = 1, 2 do
|
|
table.insert(self.proRewardCells, uiMap["fund_tower_cell.rewards_pro.reward_cell_" .. i]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL))
|
|
end
|
|
|
|
self.colorLight = BF.Color(0.6235294, 0.3137255, 0.1764706, 1)
|
|
self.colorGray = BF.Color(0.3568628, 0.3568628, 0.3568628, 1)
|
|
end
|
|
|
|
function FundTowerCell:refresh(index, id, isLast)
|
|
-- 刷新进度
|
|
local helf = self:getBaseObject():getSizeDeltaY() / 2
|
|
if self:getIndex() == 1 then
|
|
self.progNode:setAnchoredPositionY(-helf / 2)
|
|
self.progNode:setSizeDeltaY(helf)
|
|
elseif isLast then
|
|
self.progNode:setAnchoredPositionY(helf / 2)
|
|
self.progNode:setSizeDeltaY(helf)
|
|
else
|
|
self.progNode:setAnchoredPositionY(0)
|
|
self.progNode:setSizeDeltaY(self:getBaseObject():getSizeDeltaY())
|
|
end
|
|
|
|
local needChapter = DataManager.TowerFundData:getNeedChapter(id)
|
|
|
|
local stage = DataManager.TowerFundData:getStageById(id)
|
|
local curLayer = DataManager.TowerData:getCurMaxLayer()
|
|
|
|
self.txLv:setText(needChapter)
|
|
if curLayer >= needChapter then
|
|
self.imgProg.value = 1
|
|
self.lvNode:setSprite(GConst.ATLAS_PATH.UI_TOUWE, "tower_dec_2")
|
|
-- self.txLv:getComponent(GConst.TYPEOF_UNITY_CLASS.UI_TEXT_MESH_PRO).color = self.colorLight
|
|
else
|
|
self.imgProg.value = 0
|
|
self.lvNode:setSprite(GConst.ATLAS_PATH.UI_TOUWE, "tower_dec_3")
|
|
-- self.txLv:getComponent(GConst.TYPEOF_UNITY_CLASS.UI_TEXT_MESH_PRO).color = self.colorGray
|
|
end
|
|
|
|
local freeRewards = DataManager.TowerFundData:getFreeRewards(id)
|
|
local freeReceived = DataManager.TowerFundData:getFreeGot(id)
|
|
local canGet = DataManager.TowerFundData:getFreeCanGet(id)
|
|
for i, cell in ipairs(self.freeRewardCells) do
|
|
if freeRewards and freeRewards[i] then
|
|
cell:showCell()
|
|
cell:refreshByConfig(freeRewards[i], freeReceived, freeReceived)
|
|
if canGet then
|
|
cell:addClickListener(function()
|
|
ModuleManager.FundTowerManager:getReward(stage)
|
|
end)
|
|
cell:showFrameAnimation()
|
|
else
|
|
cell:hideFrameAnimation()
|
|
end
|
|
else
|
|
cell:hideCell()
|
|
end
|
|
end
|
|
|
|
local proRewards = DataManager.TowerFundData:getProRewards(id)
|
|
local proReceived = DataManager.TowerFundData:getProGot(id)
|
|
local locked = not DataManager.TowerFundData:getProBought(stage)
|
|
local canGet = DataManager.TowerFundData:getProCanGet(id)
|
|
for i, cell in ipairs(self.proRewardCells) do
|
|
if proRewards and proRewards[i] then
|
|
cell:showCell()
|
|
cell:refreshByConfig(proRewards[i], proReceived, proReceived)
|
|
cell:showLock(locked)
|
|
if canGet then
|
|
cell:addClickListener(function()
|
|
ModuleManager.FundTowerManager:getReward(stage)
|
|
end)
|
|
cell:showFrameAnimation()
|
|
else
|
|
cell:hideFrameAnimation()
|
|
end
|
|
else
|
|
cell:hideCell()
|
|
end
|
|
end
|
|
end
|
|
|
|
return FundTowerCell
|