ro-table/Asstes/Resources/Script/FrameWork/GUI/cell/ServantImproveCell.txt
2025-06-04 05:02:57 +08:00

236 lines
8.0 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

local BaseCell = autoImport("BaseCell");
ServantImproveCell = class("ServantImproveCell", BaseCell);
ServantImproveCell.CellState = {
[1] = {buttonString = ZhString.ServantImproveCellState_Look, btnSprite = "com_btn_2s", effectColor = LuaColor.New(158/255,86/255,0/255,1)},
[2] = {buttonString = ZhString.ServantImproveCellState_Go, btnSprite = "com_btn_2s", effectColor = LuaColor.New(158/255,86/255,0/255,1)},
[3] = {buttonString = ZhString.ServantImproveCellState_Get, btnSprite = "com_btn_3s", effectColor = LuaColor.New(48/255,135/255,7/255,1)},
[4] = {buttonString = ZhString.ServantImproveCellState_Finish, btnSprite = "com_btn_2s", effectColor = LuaColor.New(1,1,1,1)},
[5] = {buttonString = ZhString.ServantImproveCellState_Next, btnSprite = "com_btn_1s", effectColor = LuaColor.New(46/255,72/255,149/255,1)},
[6] = {buttonString = "", btnSprite = "", effectColor = LuaColor.New(46/255,72/255,149/255,1)},
}
function ServantImproveCell:Init()
ServantImproveCell.super.Init(self)
self:FindObjs()
end
function ServantImproveCell:FindObjs()
self.back1 = self:FindComponent("Back1", UISprite)
self.expand = self:FindGO("Expand")
self.redPoint = self:FindGO("RedPoint")
self.lock = self:FindGO("Lock")
self.finishMark = self:FindGO("FinishMark")
self.description = self:FindComponent("Description", UILabel)
self.icon = self:FindComponent("Icon", UISprite)
self.cellName = self:FindComponent("Name", UILabel)
self.cellTitle = self:FindComponent("Title", UILabel)
self.cellTitle2 = self:FindComponent("Title2Desc", UILabel)
self.cellBtnSprite = self:FindComponent("Btn", UISprite)
self.btnText = self:FindComponent("BtnText", UILabel)
self.awardItemIcon = self:FindComponent("AwardItemIcon", UISprite)
self.awardItemCount = self:FindComponent("AwardItemCount", UILabel)
self.content = self:FindGO("Content")
self.title2 = self:FindGO("Title2")
self.growthCount = self:FindComponent("Award", UILabel)
self:AddCellClickEvent()
self:AddButtonEvent("Btn", function ( obj )
self:PassEvent(ServantImproveEvent.TraceBtnClick, self)
end)
end
function ServantImproveCell:setSelected(isSelected)
-- if(self.isSelected ~= isSelected)then
self.isSelected = isSelected
-- if Slua.IsNull(self.expand) == false then
if Slua.IsNull(self.expand) == false then
self.expand:SetActive(isSelected)
local bd = NGUIMath.CalculateRelativeWidgetBounds(self.content.transform,false)
local height = math.max(bd.size.y, 110)
if(self.isSelected)then
self.back1.height = height + 15
else
if self.title2.activeSelf then
self.back1.height = height + 9
else
self.back1.height = height + 25
end
end
-- end
NGUITools.UpdateWidgetCollider(self.gameObject);
end
end
function ServantImproveCell:SetData(data)
-- helplog("===ServantImproveCell:SetData===>>>>>", data, data.groupid, data.dwid)
self.data = data
if self.isSelected then
self:setSelected(false)
end
self.btnType = 0
self.redPoint:SetActive(false)
self.lock:SetActive(false)
self.finishMark:SetActive(false)
if type(data) =="table" then
if data.groupid then
local groupStaticData = Table_ServantImproveGroup[data.groupid]
if groupStaticData then
self.cellTitle.text = groupStaticData.subtitle
self.description.text = ZhString.ItemTip_CHSpace .. groupStaticData.desc
local ret = IconManager:SetUIIcon(groupStaticData.icon, self.icon)
if not ret then
IconManager:SetItemIcon(groupStaticData.icon, self.icon)
end
local groupData = ServantRecommendProxy.Instance:GetImproveGroup( data.groupid )
local finishCount = 0
local getCount = 0
if groupData.itemList and #groupData.itemList > 0 then
local itemList = groupData.itemList
for i=1,#itemList do
if itemList[i].status == SceneUser2_pb.EGROWTH_STATUS_FINISH then
finishCount = finishCount + 1
elseif itemList[i].status == SceneUser2_pb.EGROWTH_STATUS_RECEIVE then
getCount = getCount + 1
end
end
end
local isAllGrowthRewardGet = true
local growthReward = GameConfig.Servant.growth_reward[groupData.groupid]
local everRewardList = groupData.everReward
if everRewardList and #everRewardList > 0 then
for i=1,#growthReward do
isAllGrowthRewardGet = false
local growthValue = growthReward[i].value
for j=1, #everRewardList do
if growthValue == everRewardList[j] then
isAllGrowthRewardGet = true
break;
end
end
if not isAllGrowthRewardGet then
break;
end
end
else
isAllGrowthRewardGet = false
end
if getCount > 0 then
self.redPoint:SetActive(true)
end
if finishCount == #groupData.itemList and isAllGrowthRewardGet then
self.btnType = 5
else
self.btnType = 1
end
self.cellName.text = groupStaticData.maintitle .. " " .. finishCount + #groupData.finishList .. "/" .. #groupData.itemList + #groupData.finishList .. ""
self.cellTitle.gameObject:SetActive(true)
self.title2:SetActive(false)
--"com_bg_bottom8"
if groupStaticData.type == 1 then
self.back1.spriteName = "com_bg_bottom9"
else
self.back1.spriteName = "com_bg_bottom8"
end
self:setSelected(true)
end
elseif data.dwid then
self.back1.spriteName = "com_bg_bottom9"
local itemData = Table_Growth[data.dwid]
if itemData then
self.gotoMode = itemData.gotomode
self.cellName.text = itemData.maintitle
self.cellTitle2.text = string.format(itemData.subtitle, data.finishtimes)
self.description.text = ZhString.ItemTip_CHSpace .. itemData.desc
self.growthCount.text = "x" .. itemData.Growth
local ret = IconManager:SetUIIcon(itemData.icon, self.icon)
if not ret then
IconManager:SetItemIcon(itemData.icon, self.icon)
end
if itemData.Reward then
local rewardTeamids = ItemUtil.GetRewardItemIdsByTeamId(itemData.Reward);
if rewardTeamids and #rewardTeamids > 0 then
local item = rewardTeamids[1]
local itemData = Table_Item[item.id]
IconManager:SetItemIcon(itemData.Icon, self.awardItemIcon)
self.awardItemCount.text = "x" .. item.num
end
end
if data.status == SceneUser2_pb.EGROWTH_STATUS_MIN then
self.cellTitle2.text = itemData.unlock_desc
self.btnType = 6
elseif data.status == SceneUser2_pb.EGROWTH_STATUS_GO then
self.btnType = 2
elseif data.status == SceneUser2_pb.EGROWTH_STATUS_RECEIVE then
self.btnType = 3
elseif data.status == SceneUser2_pb.EGROWTH_STATUS_FINISH then
self.finishMark:SetActive(true)
end
self.cellTitle.gameObject:SetActive(false)
self.title2:SetActive(true)
end
end
elseif type(data) == "number" then
self.back1.spriteName = "com_bg_bottom9"
-- helplog("Table_ServantUnlockFunction", data)
local functionItemData = Table_ServantUnlockFunction[data]
if functionItemData then
self.cellName.text = functionItemData.maintitle
self.cellTitle.text = functionItemData.subtitle
self.description.text = ZhString.ItemTip_CHSpace .. functionItemData.desc
self.gotoMode = functionItemData.gotomode
end
self.btnType = 2
local ret = IconManager:SetUIIcon(functionItemData.icon, self.icon)
if not ret then
IconManager:SetItemIcon(functionItemData.icon, self.icon)
end
self.cellTitle.gameObject:SetActive(true)
self.title2:SetActive(false)
end
self.icon:MakePixelPerfect()
self.icon.width = math.floor(self.icon.width * 0.9)
self.icon.height = math.floor(self.icon.height * 0.9)
-- helplog("==btnType=>>>", self.btnType)
if self.btnType == 0 then
self.cellBtnSprite.gameObject:SetActive(false)
ColorUtil.WhiteUIWidget(self.icon)
elseif self.btnType == 6 then
ColorUtil.ShaderGrayUIWidget(self.icon)
self.lock:SetActive(true)
self.cellBtnSprite.gameObject:SetActive(false)
else
ColorUtil.WhiteUIWidget(self.icon)
self.cellBtnSprite.gameObject:SetActive(true)
self.cellBtnSprite.spriteName = ServantImproveCell.CellState[self.btnType].btnSprite
self.btnText.text = ServantImproveCell.CellState[self.btnType].buttonString
self.btnText.effectColor = ServantImproveCell.CellState[self.btnType].effectColor
end
end