133 lines
4.5 KiB
Lua
133 lines
4.5 KiB
Lua
local StarInfoComp = class("StarInfoComp", LuaComponent)
|
|
|
|
local STAR_CELL = "app/ui/hero/cell/star_info_cell"
|
|
|
|
function StarInfoComp:init()
|
|
local uiMap = self:getUIMap()
|
|
|
|
self.upBtn = uiMap["star_info.upgrade.up_btn"]
|
|
self.upBtnTx = uiMap["star_info.upgrade.up_btn.text"]
|
|
self.lvBtn = uiMap["star_info.upgrade.lv_btn"]
|
|
self.lvBtnTx = uiMap["star_info.upgrade.lv_btn.text"]
|
|
self.descTx = uiMap["star_info.upgrade.desc_tx"]
|
|
self.upgrade = uiMap["star_info.upgrade"]
|
|
self.bg = uiMap["star_info.bg"]
|
|
self.costCells = {}
|
|
for i = 1, 2 do
|
|
self.costCells[i] = uiMap["star_info.upgrade.reward_cell_" .. i]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL)
|
|
end
|
|
|
|
self.currStarBg = uiMap["star_info.info_node.curr_star_bg"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.STAR_CELL)
|
|
self.nextStarBg = uiMap["star_info.info_node.next_star_bg"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.STAR_CELL)
|
|
self.currLvTx = uiMap["star_info.info_node.curr_lv_tx"]
|
|
self.nextLvTx = uiMap["star_info.info_node.next_lv_tx"]
|
|
|
|
self.upBtnTx:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_DESC_16))
|
|
-- self.descTx:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_DESC_4))
|
|
self.lvBtnTx:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_DESC_4))
|
|
self.upBtn:addClickListener(function()
|
|
ModuleManager.HeroManager:upgradeHeroStar(self.heroEntity:getCfgId())
|
|
end)
|
|
|
|
self.lvBtn:addClickListener(function()
|
|
self.parentUI:changePage(GConst.HeroConst.PANEL_TYPE.HERO)
|
|
end)
|
|
|
|
self.scrollrect = uiMap["star_info.scrollrect"]
|
|
self.scrollRectComp = uiMap["star_info.scrollrect"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE)
|
|
self.scrollRectComp:addInitCallback(function()
|
|
return STAR_CELL
|
|
end)
|
|
self.scrollRectComp:addRefreshCallback(function(index, cell)
|
|
cell:refresh(self.heroEntity, index)
|
|
end)
|
|
self.scrollRectComp:clearCells()
|
|
end
|
|
|
|
function StarInfoComp:setParentUI(parentUI)
|
|
self.parentUI = parentUI
|
|
end
|
|
|
|
function StarInfoComp:setHeroData(heroEntity, onlyLook)
|
|
self.heroEntity = heroEntity
|
|
self.onlyLook = onlyLook
|
|
self:bind(self.heroEntity, "isDirty", function()
|
|
self:refresh(true)
|
|
end)
|
|
end
|
|
|
|
function StarInfoComp:refresh(starUp)
|
|
self:refreshInfo()
|
|
self:refreshStarBtn()
|
|
self:refreshStarInfo()
|
|
end
|
|
|
|
function StarInfoComp:refreshInfo()
|
|
if self.heroEntity:getIsStarMax() then
|
|
self.currStarBg:setActive(true)
|
|
self.nextStarBg:setActive(false)
|
|
self.currLvTx:setActive(true)
|
|
self.nextLvTx:setActive(false)
|
|
local currStar = self.heroEntity:getStar()
|
|
self.currStarBg:refresh(currStar)
|
|
local lv = self.heroEntity:getMaxLv()
|
|
self.currLvTx:setText(lv .. "/" .. lv)
|
|
else
|
|
self.currStarBg:setActive(true)
|
|
self.nextStarBg:setActive(true)
|
|
self.currLvTx:setActive(true)
|
|
self.nextLvTx:setActive(true)
|
|
local currStar = self.heroEntity:getStar()
|
|
local nextStar = currStar + 1
|
|
self.currStarBg:refresh(currStar)
|
|
self.nextStarBg:refresh(nextStar)
|
|
local lv = self.heroEntity:getLv()
|
|
local maxLv = self.heroEntity:getCurrMaxLv()
|
|
local nextMaxLv = self.heroEntity:getNextMaxLv()
|
|
local lvStr = I18N:getGlobalText(I18N.GlobalConst.ACT_DESC_12)
|
|
self.currLvTx:setText(lvStr .. "<color=#D82F2D>" .. lv .. "</color>" .. "/" .. maxLv)
|
|
self.nextLvTx:setText(lvStr .. lv .. "/" .. "<color=#54E845>" .. nextMaxLv .. "</color>")
|
|
end
|
|
end
|
|
|
|
function StarInfoComp:refreshStarBtn()
|
|
if not self.heroEntity:isActived() or self.heroEntity:getIsStarMax() then
|
|
self.upgrade:setActive(false)
|
|
self.scrollrect:setSizeDeltaY(378)
|
|
self.bg:setSizeDeltaY(378)
|
|
elseif not self.heroEntity:getIsCurLvMax() then
|
|
self.upgrade:setActive(true)
|
|
self.upBtn:setActive(false)
|
|
self.lvBtn:setActive(true)
|
|
self.descTx:setActive(true)
|
|
for i,v in ipairs(self.costCells) do
|
|
v:setActive(false)
|
|
end
|
|
local nextLv = self.heroEntity:getNextLv()
|
|
self.descTx:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_DESC_21, nextLv))
|
|
self.scrollrect:setSizeDeltaY(268)
|
|
self.bg:setSizeDeltaY(268)
|
|
else
|
|
self.upgrade:setActive(true)
|
|
self.upBtn:setActive(true)
|
|
self.lvBtn:setActive(false)
|
|
self.descTx:setActive(false)
|
|
local materials = self.heroEntity:getStarUpMaterials()
|
|
local costs = {}
|
|
costs[1] = {id = self.heroEntity:getFragmentId(), num = materials[1], type = 1}
|
|
costs[2] = {id = self.heroEntity:getStarUpCostId(), num = materials[2], type = 1}
|
|
for i,v in ipairs(self.costCells) do
|
|
v:setActive(true)
|
|
v:refreshByConfig(costs[i])
|
|
end
|
|
self.scrollrect:setSizeDeltaY(268)
|
|
self.bg:setSizeDeltaY(268)
|
|
end
|
|
end
|
|
|
|
function StarInfoComp:refreshStarInfo()
|
|
local maxStarLv = self.heroEntity:getMaxStar()
|
|
self.scrollRectComp:refillCells(maxStarLv)
|
|
end
|
|
|
|
return StarInfoComp |