PGRData/Script/matrix/xui/xuibiancatheatre/choice/XUiChoiceExRewardPanel.lua

141 lines
4.6 KiB
Lua
Raw Normal View History

2024-09-01 20:49:41 +00:00
--######################## XUiChoiceExRewardGrid ########################
local XUiChoiceExRewardGrid = XClass(nil, "XUiChoiceExRewardGrid")
function XUiChoiceExRewardGrid:Ctor(ui, clickCb)
self.GameObject = ui.gameObject
self.Transform = ui.transform
self.ClickCb = clickCb
XUiHelper.InitUiClass(self, ui)
self.Icon.gameObject:SetActiveEx(false)
self:InitBtn()
self:InitTap()
end
function XUiChoiceExRewardGrid:InitBtn()
XUiHelper.RegisterClickEvent(self, self.Btn, self.OnBtnRequst)
XUiHelper.RegisterClickEvent(self, self.BtnSelect, self.OnBtnSelectClick)
self.Btn:SetName(XBiancaTheatreConfigs.GetClientConfig("BtnSelectName"))
end
function XUiChoiceExRewardGrid:InitTap()
if self.Tap then self.Tap.gameObject:SetActiveEx(false) end
if self.Tap1 then self.Tap1.gameObject:SetActiveEx(false) end
if self.Tap2 then self.Tap2.gameObject:SetActiveEx(false) end
if self.Tap3 then self.Tap3.gameObject:SetActiveEx(false) end
if self.Tap4 then self.Tap4.gameObject:SetActiveEx(false) end
end
--idBiancaTheatreItem表的Id
function XUiChoiceExRewardGrid:Refresh(id, isSelect)
self.Id = id
--描述
self.TxtProgress.text = XBiancaTheatreConfigs.GetItemDescription(id)
--图标
self.RImgIcon:SetRawImage(XBiancaTheatreConfigs.GetItemIcon(id))
--品质
self.ImgQuality:SetSprite(XBiancaTheatreConfigs.GetEventStepItemQualityIcon(id))
--名字
self.TxtDes.text = XBiancaTheatreConfigs.GetItemName(id)
--名字颜色
local quality = XBiancaTheatreConfigs.GetEventStepItemQuality(id)
local nameColor = quality and XBiancaTheatreConfigs.GetClientConfig("QualityTextColor", quality)
nameColor = nameColor and XUiHelper.Hexcolor2Color(nameColor)
if nameColor then
self.TxtDes.color = nameColor
end
--是否选中
self:SetSelectActive(isSelect)
end
function XUiChoiceExRewardGrid:OnBtnRequst()
XDataCenter.BiancaTheatreManager.GetCurrentAdventureManager():RequestSelectItemReward(self:GetId())
end
function XUiChoiceExRewardGrid:OnBtnSelectClick()
if self.ClickCb then
self.ClickCb(self)
end
end
function XUiChoiceExRewardGrid:SetSelectActive(isActive)
self.Select.gameObject:SetActiveEx(isActive)
if isActive then
self:PlaySelectAnim()
else
self:StopSelectAnim()
end
end
function XUiChoiceExRewardGrid:PlaySelectAnim()
self.GridEnable:Play()
end
function XUiChoiceExRewardGrid:StopSelectAnim()
self.GridEnable:Stop()
self.GridEnable:Evaluate()
end
function XUiChoiceExRewardGrid:GetId()
return self.Id
end
--######################## XUiChoiceExRewardPanel ########################
local XUiChoiceExRewardPanel = XClass(nil, "XUiChoiceExRewardPanel")
--选择额外奖励布局
function XUiChoiceExRewardPanel:Ctor(ui, rootUi)
self.GameObject = ui.gameObject
self.Transform = ui.transform
self.RootUi = rootUi
XUiHelper.InitUiClass(self, ui)
end
function XUiChoiceExRewardPanel:Init()
self.RewardGridList = {}
self.AdventureManager = XDataCenter.BiancaTheatreManager.GetCurrentAdventureManager()
self.CurChapter = self.AdventureManager:GetCurrentChapter()
self.CurStep = self.CurChapter:GetCurStep()
self.ItemIds = self.CurStep:GetItemIds()
local clickCb = handler(self, self.ClickGridFunc)
local grid
for _ in ipairs(self.ItemIds) do
grid = XUiChoiceExRewardGrid.New(XUiHelper.Instantiate(self.GridChallengeBanner, self.PanelChapterLis), clickCb)
table.insert(self.RewardGridList, grid)
end
self.GridChallengeBanner.gameObject:SetActiveEx(false)
self.GameObject:SetActiveEx(true)
if self.TxtProgress2 then
self.TxtProgress2.gameObject:SetActiveEx(false)
end
if XTool.IsNumberValid(self.CurStep:GetIsExTraReward()) and self.TxtProgress2 then
local chapterId = self.CurChapter:GetCurrentChapterId()
self.TxtProgress2.gameObject:SetActiveEx(true)
self.TxtProgress2.text = XBiancaTheatreConfigs.GetChapterExtraRewardDesc(chapterId)
end
-- 入场音效
XDataCenter.BiancaTheatreManager.PlayGetRewardSound(nil, 1)
end
function XUiChoiceExRewardPanel:Refresh()
self.ItemIds = self.CurStep:GetItemIds()
local isSelect
for i, itemId in ipairs(self.ItemIds) do
isSelect = self.CurSelectId == itemId or false
self.RewardGridList[i]:Refresh(itemId, isSelect)
end
end
function XUiChoiceExRewardPanel:ClickGridFunc(grid)
if self.CurSelectGrid then
self.CurSelectGrid:SetSelectActive(false)
end
self.CurSelectGrid = grid
self.CurSelectId = grid:GetId()
grid:SetSelectActive(true)
end
return XUiChoiceExRewardPanel