134 lines
No EOL
4 KiB
Lua
134 lines
No EOL
4 KiB
Lua
--==============
|
||
--战斗准备界面敌方面板
|
||
--==============
|
||
local XUiSSBReadyEnemyGrid = XClass(nil, "XUiSSBReadyEnemyGrid")
|
||
|
||
function XUiSSBReadyEnemyGrid:Ctor(uiPrefab)
|
||
XTool.InitUiObjectByUi(self, uiPrefab)
|
||
self:InitPanels()
|
||
end
|
||
|
||
function XUiSSBReadyEnemyGrid:InitPanels()
|
||
self.Character = {}
|
||
self.PanelCharecterNext.gameObject:SetActiveEx(false)
|
||
XTool.InitUiObjectByUi(self.Character, self.PanelCharecter)
|
||
local buffScript = require("XUi/XUiSuperSmashBros/Common/XUiSSBPanelMonsterBuffs")
|
||
self.Buff = buffScript.New(self.Character.PanelBuff)
|
||
end
|
||
|
||
function XUiSSBReadyEnemyGrid:Refresh(data)
|
||
self.Monster = data
|
||
self:RefreshCharacter()
|
||
end
|
||
|
||
function XUiSSBReadyEnemyGrid:RefreshCharacter()
|
||
self.Character.TxtAbility.text = XUiHelper.GetText("SSBBattleAbility", self.Monster:GetAbility())
|
||
self.Character.RImgRole:SetRawImage(self.Monster:GetIcon())
|
||
self.Character.ImgProgressHp.fillAmount = self.Monster:GetHpLeft() / 100
|
||
self.Buff:SetBuff(self.Monster:GetBuffList())
|
||
end
|
||
|
||
function XUiSSBReadyEnemyGrid:SetOrder(order)
|
||
self.Character.TxtPlayOrder.text = "P" .. order
|
||
end
|
||
|
||
function XUiSSBReadyEnemyGrid:SetReady(value)
|
||
self.PanelReady.gameObject:SetActiveEx(value)
|
||
end
|
||
|
||
function XUiSSBReadyEnemyGrid:SetOut(value)
|
||
if value then
|
||
self.PlayOut = true
|
||
end
|
||
end
|
||
|
||
function XUiSSBReadyEnemyGrid:SetWin(value)
|
||
if value then
|
||
self.PlayWin = true
|
||
end
|
||
end
|
||
|
||
function XUiSSBReadyEnemyGrid:SetBan()
|
||
self.PanelCharecter.gameObject:SetActiveEx(false)
|
||
self.PanelReady.gameObject:SetActiveEx(false)
|
||
self.PanelOut.gameObject:SetActiveEx(false)
|
||
self.PanelWin.gameObject:SetActiveEx(false)
|
||
self.PanelBan.gameObject:SetActiveEx(true)
|
||
end
|
||
|
||
function XUiSSBReadyEnemyGrid:SetNextEnemy(monsterGroup)
|
||
if not monsterGroup then
|
||
self.PanelCharecterNext.gameObject:SetActiveEx(false)
|
||
return
|
||
end
|
||
self.PanelCharecterNext.gameObject:SetActiveEx(true)
|
||
self.RImgRoleNext:SetRawImage(monsterGroup:GetIcon())
|
||
end
|
||
|
||
function XUiSSBReadyEnemyGrid:ShowPanel()
|
||
--显示前先把相关动画初始化
|
||
--这里不隐藏淘汰Panel是因为那个需要Hold状态,已经淘汰了还需要显示
|
||
if XTool.UObjIsNil(self.GameObject) then return end
|
||
self.GridPickEnemyWin:Stop()
|
||
--self.PanelCharecterNextEnable:Stop()
|
||
self.GridPickEnemyAlpha:Stop()
|
||
self.PanelWin.gameObject:SetActiveEx(false)
|
||
self.GameObject:SetActiveEx(true)
|
||
end
|
||
|
||
function XUiSSBReadyEnemyGrid:HidePanel()
|
||
self.GameObject:SetActiveEx(false)
|
||
end
|
||
|
||
function XUiSSBReadyEnemyGrid:PlayAnimation()
|
||
if XTool.UObjIsNil(self.GameObject) then return end
|
||
if self.PlayOut then
|
||
self.GridPickEnemyOut:Play() --淘汰动画
|
||
self.PlayOut = nil
|
||
return
|
||
end
|
||
if self.PlayWin then
|
||
self.GridPickEnemyWin:Play() --胜利动画
|
||
self.PlayWin = nil
|
||
return
|
||
end
|
||
self.GridPickEnemyEnable:Play()
|
||
end
|
||
|
||
function XUiSSBReadyEnemyGrid:ResetPanelCharacterAlpha()
|
||
if self.PanelCharecterCanvas then
|
||
self.PanelCharecterCanvas.alpha = 1
|
||
end
|
||
end
|
||
|
||
function XUiSSBReadyEnemyGrid:PlaySwitchAnima(cb)
|
||
self.OnSwitchFinishCb = cb
|
||
self.GridPickEnemyEnable:Stop()
|
||
self.PanelCharecterNextEnable:Play()
|
||
XScheduleManager.ScheduleOnce(function()
|
||
if XTool.UObjIsNil(self.GameObject) then return end
|
||
self:OnSwitchFinished()
|
||
end, self.PanelCharecterNextEnable.duration * 1000)
|
||
end
|
||
|
||
function XUiSSBReadyEnemyGrid:OnSwitchFinished()
|
||
if self.OnSwitchFinishCb then
|
||
local cb = self.OnSwitchFinishCb
|
||
self.OnSwitchFinishCb = nil
|
||
cb()
|
||
self:ResetPanelCharacterAlpha()
|
||
self.GridPickEnemyOut:Stop()
|
||
self.PanelOut.gameObject:SetActiveEx(false)
|
||
end
|
||
end
|
||
|
||
function XUiSSBReadyEnemyGrid:PlayDisableAnimation()
|
||
self.GridPickEnemyAlpha:Play()
|
||
end
|
||
|
||
function XUiSSBReadyEnemyGrid:HidePanelHp()
|
||
local panelHp = self.Transform:FindTransform("PanelHP")
|
||
if panelHp then panelHp.gameObject:SetActiveEx(false) end
|
||
end
|
||
|
||
return XUiSSBReadyEnemyGrid |