Files
StellaSora_DataLua/lua/game/ui/soldier/battle/soldierskilldisplayctrl.lua
T
SL1900 8c4bd41668 Update - 1.13.0.124
EN: 1.13.0.124
CN: 1.13.0.124
JP: 1.13.0.128
KR: 1.13.0.130
2026-07-21 12:30:00 +09:00

68 lines
1.9 KiB
Lua

local SoldierSkillDisplayCtrl = class("SoldierSkillDisplayCtrl", BaseCtrl)
local WwiseAudioMgr = CS.WwiseAudioManager.Instance
SoldierSkillDisplayCtrl._mapNodeConfig = {
rtSubSkill = {
nCount = 3,
sCtrlName = "Game.UI.Soldier.Battle.SoldierSkillDisplayItemCtrl"
}
}
SoldierSkillDisplayCtrl._mapEventConfig = {
SoldierSkillDisPlay = "OnEvent_SkillDisplay",
InputEnable = "OnEvent_InputEnable"
}
function SoldierSkillDisplayCtrl:Awake()
self.mapSkillDisplay = {}
end
function SoldierSkillDisplayCtrl:OnEnable()
local wait = function()
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
NovaAPI.ForceUpdateCanvases()
end
cs_coroutine.start(wait)
end
function SoldierSkillDisplayCtrl:OnDisable()
end
function SoldierSkillDisplayCtrl:OnDestroy()
end
function SoldierSkillDisplayCtrl:OnRelease()
end
function SoldierSkillDisplayCtrl:OnEvent_SkillDisplay(nCharId, nSkillId)
local mapCharCfg = ConfigTable.GetData("SoldierCharacter", nCharId)
local mapSkillCfg = ConfigTable.GetData("Skill", nSkillId)
if mapCharCfg == nil or mapSkillCfg == nil then
return
end
local bPlay = false
for nIdx, skillCtrl in ipairs(self._mapNode.rtSubSkill) do
if not skillCtrl.bPlaying then
bPlay = true
skillCtrl:ShowSkillTips(nSkillId, nCharId)
return
end
end
if not bPlay then
local nIndex = 0
local nTmpTime = 0
for k, v in ipairs(self._mapNode.rtSubSkill) do
if nTmpTime == 0 or nTmpTime > v.nPlayTime then
nIndex = k
end
end
if 0 < nIndex then
self._mapNode.rtSubSkill[nIndex]:InterrputAnim()
self._mapNode.rtSubSkill[nIndex]:ShowSkillTips(nSkillId, nCharId)
end
end
end
function SoldierSkillDisplayCtrl:OnEvent_InputEnable(bEnable)
if not bEnable then
self:InterrputAllDisplay()
end
end
function SoldierSkillDisplayCtrl:InterrputAllDisplay()
self._mapNode.rtSubSkill[1]:InterrputAnim()
self._mapNode.rtSubSkill[2]:InterrputAnim()
self._mapNode.rtSubSkill[3]:InterrputAnim()
end
return SoldierSkillDisplayCtrl