PGRData/Script/matrix/xui/xuiepicfashiongacha/XUiEpicFashionGachaQuickWear.lua

89 lines
3.3 KiB
Lua
Raw Normal View History

2024-09-01 20:49:41 +00:00
local XUiEpicFashionGachaQuickWear = XLuaUiManager.Register(XLuaUi, "UiEpicFashionGachaQuickWear")
function XUiEpicFashionGachaQuickWear:OnAwake()
self:InitButton()
end
function XUiEpicFashionGachaQuickWear:InitButton()
XUiHelper.RegisterClickEvent(self, self.BtnClose, self.Close)
XUiHelper.RegisterClickEvent(self, self.BtnWear, self.OnBtnWearClick)
XUiHelper.RegisterClickEvent(self, self.BtnSetAssistant, self.OnBtnSetAssistantClick)
end
function XUiEpicFashionGachaQuickWear:OnStart(templateId, titleTxt)
self.FashionId = templateId
if not string.IsNilOrEmpty(titleTxt) then
self.TxtDesc.text = titleTxt
end
end
function XUiEpicFashionGachaQuickWear:OnEnable()
local grid = XUiGridCommon.New(self, self.GridFashion)
grid:Refresh({TemplateId = self.FashionId})
-- 穿戴按钮
local config = XFashionConfigs.GetAllConfigs(XFashionConfigs.TableKey.Fashion)
local charId = nil
for k, v in pairs(config) do
if v.Id == self.FashionId then
charId = v.CharacterId
end
end
self.CharacterId = charId
if not XTool.IsNumberValid(charId) or not XDataCenter.CharacterManager.IsOwnCharacter(charId) then
self.BtnWear:SetDisable(true)
self.LockUse = true
end
-- 首席按钮
if XPlayer.DisplayCharIdList[1] == charId or not XDataCenter.CharacterManager.IsOwnCharacter(charId) then
self.BtnSetAssistant.gameObject:SetActiveEx(false)
end
end
function XUiEpicFashionGachaQuickWear:OnBtnWearClick()
if self.IsWore then
return
end
self.BtnWear:SetDisable(true)
if self.LockUse then
local charConfig = XCharacterConfigs.GetCharacterTemplate(self.CharacterId)
local text = CS.XTextManager.GetText("LottoKareninaNotOwnTip", charConfig.Name, charConfig.TradeName)
XUiManager.TipError(text)
return
end
XDataCenter.FashionManager.UnlockFashion(self.FashionId, function ()
XDataCenter.FashionManager.UseFashion(self.FashionId, function()
XUiManager.TipText("UseSuccess")
self.IsWore = true
end)
end)
end
function XUiEpicFashionGachaQuickWear:OnBtnSetAssistantClick()
self.BtnSetAssistant.gameObject:SetActiveEx(false)
local showTipFun = function ()
local charConfig = XCharacterConfigs.GetCharacterTemplate(self.CharacterId)
local name = charConfig.Name.. ": "..charConfig.TradeName
XUiManager.TipMsg(CS.XTextManager.GetText("FavorabilitySetChiefAssistSucc", name))
end
if table.contains(XPlayer.DisplayCharIdList, self.CharacterId) then -- 如果在队列
XDataCenter.DisplayManager.SetDisplayCharIdFirstRequest(self.CharacterId, showTipFun)
else
-- 不在队列有两种情况
-- 1队列没满先入队再设为首席
if #XPlayer.DisplayCharIdList < CS.XGame.Config:GetInt("AssistantNum") then
XDataCenter.DisplayManager.AddPlayerDisplayCharIdRequest(self.CharacterId, function ()
XDataCenter.DisplayManager.SetDisplayCharIdFirstRequest(self.CharacterId, showTipFun)
end)
else
-- 2队列已满直接空降替换首席
local oldCharId = XPlayer.DisplayCharIdList[1]
XDataCenter.DisplayManager.UpdatePlayerDisplayCharIdRequest(oldCharId, self.CharacterId, showTipFun)
end
end
end