7363298dc1
EN: 1.15.0.134 CN: 1.15.0.133 JP: 1.15.0.137 KR: 1.15.0.139
163 lines
5.3 KiB
Lua
163 lines
5.3 KiB
Lua
local PenguinCardAideSlotItemCtrl = class("PenguinCardAideSlotItemCtrl", BaseCtrl)
|
|
local WwiseManger = CS.WwiseAudioManager.Instance
|
|
local _, NotMaxLevel = ColorUtility.TryParseHtmlString("#FFF7EA")
|
|
local _, MaxLevel = ColorUtility.TryParseHtmlString("#ffe075")
|
|
PenguinCardAideSlotItemCtrl._mapNodeConfig = {
|
|
AnimRoot = {sComponentName = "Animator"},
|
|
aniOn = {sNodeName = "goOn", sComponentName = "Animator"},
|
|
goOff = {},
|
|
imgReady = {},
|
|
imgSlotLock = {},
|
|
goOn = {},
|
|
imgIcon = {sComponentName = "Image"},
|
|
txtLevel = {sComponentName = "TMP_Text"},
|
|
btnOpenInfo = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_OpenInfo"
|
|
}
|
|
}
|
|
PenguinCardAideSlotItemCtrl._mapEventConfig = {
|
|
PenguinCardAideTriggered = "OnEvent_Triggered",
|
|
PenguinCardWaitPlay = "OnEvent_WaitPlay",
|
|
PenguinCardAideGrowth = "OnEvent_Growth",
|
|
PenguinCard_AuraTriggered = "OnEvent_AuraTriggered"
|
|
}
|
|
function PenguinCardAideSlotItemCtrl:Refresh(nSlot)
|
|
self.nSlot = nSlot
|
|
local mapAide = self._panel.mapLevel.tbAide[nSlot]
|
|
self.bWaitPlay = false
|
|
self._mapNode.goOn:SetActive(mapAide ~= 0)
|
|
self._mapNode.goOff:SetActive(mapAide == 0)
|
|
NovaAPI.SetButtonInteractable(self._mapNode.btnOpenInfo, mapAide ~= 0)
|
|
if mapAide == 0 then
|
|
self:RefreshSlot(nSlot)
|
|
else
|
|
self:RefreshAide(mapAide)
|
|
end
|
|
end
|
|
function PenguinCardAideSlotItemCtrl:RefreshAide(mapAide)
|
|
self:SetPngSprite(self._mapNode.imgIcon, mapAide.sIcon .. AllEnum.CharHeadIconSurfix.Q)
|
|
if mapAide.nLevel == mapAide.nMaxLevel then
|
|
NovaAPI.SetTMPColor(self._mapNode.txtLevel, MaxLevel)
|
|
NovaAPI.SetTMPText(self._mapNode.txtLevel, orderedFormat(ConfigTable.GetUIText("PenguinCard_AideLevel"), mapAide.nLevel))
|
|
else
|
|
NovaAPI.SetTMPColor(self._mapNode.txtLevel, NotMaxLevel)
|
|
NovaAPI.SetTMPText(self._mapNode.txtLevel, orderedFormat(ConfigTable.GetUIText("PenguinCard_AideLevel"), mapAide.nLevel))
|
|
end
|
|
end
|
|
function PenguinCardAideSlotItemCtrl:RefreshSlot(nSlot)
|
|
self._mapNode.imgSlotLock:SetActive(nSlot > self._panel.mapLevel.nAideLimit)
|
|
self._mapNode.imgReady:SetActive(nSlot <= self._panel.mapLevel.nAideLimit)
|
|
end
|
|
function PenguinCardAideSlotItemCtrl:PlaySelectAni()
|
|
self._mapNode.aniOn:Play("PenguinCardAideSlot_goOn_in", 0, 0)
|
|
WwiseManger:PostEvent("Mode_Card_appear")
|
|
end
|
|
function PenguinCardAideSlotItemCtrl:PlayUpgradeAni(callback)
|
|
self._mapNode.aniOn:Play("PenguinCardAideSlot_goOn_UP", 0, 0)
|
|
WwiseManger:PostEvent("Mode_Card_levelup")
|
|
self:AddTimer(1, 0.2, function()
|
|
if callback then
|
|
callback()
|
|
end
|
|
end, true, true, true)
|
|
end
|
|
function PenguinCardAideSlotItemCtrl:PlayGiftAni()
|
|
self._mapNode.aniOn:Play("PenguinCardAideSlot_goOn_show", 0, 0)
|
|
WwiseManger:PostEvent("Mode_Card_love")
|
|
end
|
|
function PenguinCardAideSlotItemCtrl:PlaySaleAni(callback)
|
|
self._mapNode.AnimRoot:Play("PenguinCardAideSlot_out", 0, 0)
|
|
WwiseManger:PostEvent("Mode_Card_giveup")
|
|
local nAnimTime = NovaAPI.GetAnimClipLength(self._mapNode.AnimRoot, {
|
|
"PenguinCardAideSlot_out"
|
|
})
|
|
self:AddTimer(1, nAnimTime, function()
|
|
if callback then
|
|
callback()
|
|
end
|
|
self._mapNode.AnimRoot:Play("PenguinCardAideSlot_in", 0, 0)
|
|
end, true, true, true)
|
|
end
|
|
function PenguinCardAideSlotItemCtrl:PlaySlotHideAni()
|
|
self._mapNode.AnimRoot:Play("PenguinCardAideSlot_out", 0, 0)
|
|
end
|
|
function PenguinCardAideSlotItemCtrl:PlayUnlockAni()
|
|
WwiseManger:PostEvent("Mode_Card_unlock")
|
|
self._mapNode.imgSlotLock:SetActive(false)
|
|
self._mapNode.imgReady:SetActive(true)
|
|
end
|
|
function PenguinCardAideSlotItemCtrl:PlayTriggerAni()
|
|
if self.bTriggerCd then
|
|
self:PlayEffectAni()
|
|
return
|
|
end
|
|
self.bTriggerCd = true
|
|
local nAnimTime = NovaAPI.GetAnimClipLength(self._mapNode.AnimRoot, {
|
|
"PenguinCardAideSlot_trigger"
|
|
})
|
|
self:AddTimer(1, nAnimTime, function()
|
|
self.bTriggerCd = false
|
|
end, true, true, true)
|
|
self._mapNode.AnimRoot:Play("PenguinCardAideSlot_trigger", 0, 0)
|
|
WwiseManger:PostEvent("Mode_Card_cast")
|
|
self:PlayEffectAni()
|
|
end
|
|
function PenguinCardAideSlotItemCtrl:PlayEffectAni()
|
|
end
|
|
function PenguinCardAideSlotItemCtrl:Awake()
|
|
end
|
|
function PenguinCardAideSlotItemCtrl:OnEnable()
|
|
end
|
|
function PenguinCardAideSlotItemCtrl:OnDisable()
|
|
end
|
|
function PenguinCardAideSlotItemCtrl:OnBtnClick_OpenInfo()
|
|
if not self.nSlot then
|
|
return
|
|
end
|
|
local mapAide = self._panel.mapLevel.tbAide[self.nSlot]
|
|
if mapAide == 0 then
|
|
return
|
|
end
|
|
EventManager.Hit("PenguinCard_OpenAideInfo", mapAide)
|
|
end
|
|
function PenguinCardAideSlotItemCtrl:OnEvent_Triggered(nSlotIndex)
|
|
if not self.nSlot then
|
|
return
|
|
end
|
|
local mapAide = self._panel.mapLevel.tbAide[self.nSlot]
|
|
if mapAide == 0 or nSlotIndex ~= mapAide.nSlotIndex then
|
|
return
|
|
end
|
|
if mapAide.mapPenguinCard.nTriggerPhase == GameEnum.PenguinCardTriggerPhase.Aura then
|
|
return
|
|
end
|
|
if mapAide.mapPenguinCard.nTriggerPhase == GameEnum.PenguinCardTriggerPhase.Settlement then
|
|
self.bWaitPlay = true
|
|
return
|
|
end
|
|
self:PlayTriggerAni()
|
|
end
|
|
function PenguinCardAideSlotItemCtrl:OnEvent_AuraTriggered()
|
|
if not self.nSlot then
|
|
return
|
|
end
|
|
local mapAide = self._panel.mapLevel.tbAide[self.nSlot]
|
|
if mapAide == 0 then
|
|
return
|
|
end
|
|
if mapAide.mapPenguinCard.nTriggerPhase ~= GameEnum.PenguinCardTriggerPhase.Aura then
|
|
return
|
|
end
|
|
self:PlayTriggerAni()
|
|
end
|
|
function PenguinCardAideSlotItemCtrl:OnEvent_Growth(nSlotIndex)
|
|
end
|
|
function PenguinCardAideSlotItemCtrl:OnEvent_WaitPlay()
|
|
if self.bWaitPlay == true then
|
|
self.bWaitPlay = false
|
|
self:PlayTriggerAni()
|
|
end
|
|
end
|
|
return PenguinCardAideSlotItemCtrl
|