Files
StellaSora_DataLua/lua/game/ui/play_penguincard/penguincardctrl.lua
T
SL1900 86d82306fe Update - 1.7.0.88
EN: 1.7.0.88
CN: 1.7.0.90
JP: 1.7.0.91
KR: 1.7.0.94
2026-02-24 22:00:00 +09:00

189 lines
6.0 KiB
Lua

local PenguinCardCtrl = class("PenguinCardCtrl", BaseCtrl)
local WwiseManger = CS.WwiseAudioManager.Instance
PenguinCardCtrl._mapNodeConfig = {
btnPause = {
nCount = 2,
sComponentName = "UIButton",
callback = "OnBtnClick_Pause"
},
Prepare = {
sNodeName = "---Prepare---",
sCtrlName = "Game.UI.Play_PenguinCard.PenguinCardPrepareCtrl"
},
Flip = {
sNodeName = "---Flip---",
sCtrlName = "Game.UI.Play_PenguinCard.PenguinCardFlipCtrl"
},
Slot = {
sNodeName = "---Slot---",
sCtrlName = "Game.UI.Play_PenguinCard.PenguinCardSlotCtrl"
},
Result = {
sNodeName = "---Result---",
sCtrlName = "Game.UI.Play_PenguinCard.PenguinCardResultCtrl"
},
CardInfo = {
sNodeName = "---CardInfo---",
sCtrlName = "Game.UI.Play_PenguinCard.PenguinCardInfoCtrl"
},
Pause = {
sNodeName = "---Pause---",
sCtrlName = "Game.UI.Play_PenguinCard.PenguinCardPauseCtrl"
},
HandRank = {
sNodeName = "---HandRank---",
sCtrlName = "Game.UI.Play_PenguinCard.PenguinCardHandRankCtrl"
},
Log = {
sNodeName = "---Log---",
sCtrlName = "Game.UI.Play_PenguinCard.PenguinCardLogCtrl"
},
Confirm = {
sNodeName = "---Confirm---",
sCtrlName = "Game.UI.Play_PenguinCard.PenguinCardConfirmCtrl"
}
}
PenguinCardCtrl._mapEventConfig = {
PenguinCard_RunState_Start = "RunState_Start",
PenguinCard_RunState_Prepare = "RunState_Prepare",
PenguinCard_RunState_Dealing = "RunState_Dealing",
PenguinCard_RunState_Flip = "RunState_Flip",
PenguinCard_RunState_Settlement = "RunState_Settlement",
PenguinCard_RunState_Complete = "RunState_Complete",
PenguinCard_QuitState_Start = "QuitState_Start",
PenguinCard_QuitState_Prepare = "QuitState_Prepare",
PenguinCard_QuitState_Dealing = "QuitState_Dealing",
PenguinCard_QuitState_Flip = "QuitState_Flip",
PenguinCard_QuitState_Settlement = "QuitState_Settlement",
PenguinCard_QuitState_Complete = "QuitState_Complete",
PenguinCard_Change = "OnEvent_Change"
}
function PenguinCardCtrl:RunState_Start()
self:CloseAll()
end
function PenguinCardCtrl:QuitState_Start()
end
function PenguinCardCtrl:RunState_Prepare()
self._mapNode.Prepare.gameObject:SetActive(true)
self._mapNode.Slot.gameObject:SetActive(true)
self._mapNode.Result.gameObject:SetActive(false)
self._mapNode.Flip.gameObject:SetActive(false)
self._mapNode.Prepare:Refresh()
self._mapNode.Slot:Refresh()
if self.bIn then
self.bIn = false
else
WwiseManger:PostEvent("Mode_Card_nextround")
end
EventManager.Hit("Guide_PassiveCheck_Msg", "Guide_PenguinCard_301")
local wait = function()
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
EventManager.Hit("Guide_PassiveCheck_Msg", "Guide_PenguinCard_303")
end
cs_coroutine.start(wait)
end
function PenguinCardCtrl:QuitState_Prepare(nNextState)
if nNextState == 0 then
self._mapNode.Slot:PlayOutAni()
self._mapNode.Prepare:PlayOutAni()
WwiseManger:PostEvent("Mode_Card_dissolve")
elseif nNextState == 2 then
self._mapNode.Prepare:PlayOutAni()
WwiseManger:PostEvent("Mode_Card_dissolve")
elseif nNextState == 5 then
self._mapNode.Slot:PlayOutAni()
self._mapNode.Prepare:PlayOutAni()
self.animator:Play("PengUinCard_Bg_Result")
WwiseManger:PostEvent("Mode_Card_dissolve")
end
end
function PenguinCardCtrl:RunState_Dealing()
self._mapNode.Prepare.gameObject:SetActive(false)
self._mapNode.Flip.gameObject:SetActive(true)
self._mapNode.Flip:Refresh_Dealing()
EventManager.Hit("Guide_PassiveCheck_Msg", "Guide_PenguinCard_302")
end
function PenguinCardCtrl:QuitState_Dealing(nNextState)
if nNextState == 0 then
self._mapNode.Slot:PlayOutAni()
self._mapNode.Flip:PlayOutAni()
WwiseManger:PostEvent("Mode_Card_dissolve")
elseif nNextState == 5 then
self._mapNode.Slot:PlayOutAni()
self._mapNode.Flip:PlayOutAni()
self.animator:Play("PengUinCard_Bg_Result")
WwiseManger:PostEvent("Mode_Card_dissolve")
end
end
function PenguinCardCtrl:RunState_Flip()
self._mapNode.Flip:Refresh_Flip()
end
function PenguinCardCtrl:QuitState_Flip(nNextState)
self._mapNode.Flip:StopShowAllOn()
if nNextState == 0 then
self._mapNode.Slot:PlayOutAni()
self._mapNode.Flip:PlayOutAni()
WwiseManger:PostEvent("Mode_Card_dissolve")
elseif nNextState == 5 then
self._mapNode.Slot:PlayOutAni()
self._mapNode.Flip:PlayOutAni()
self.animator:Play("PengUinCard_Bg_Result")
WwiseManger:PostEvent("Mode_Card_dissolve")
end
end
function PenguinCardCtrl:RunState_Settlement()
self._mapNode.Flip:Refresh_Settlement()
end
function PenguinCardCtrl:QuitState_Settlement(nNextState)
if nNextState == 0 then
self._mapNode.Slot:PlayOutAni()
self._mapNode.Flip:PlayOutAni()
WwiseManger:PostEvent("Mode_Card_dissolve")
elseif nNextState == 1 then
self._mapNode.Flip:PlayOutAni()
WwiseManger:PostEvent("Mode_Card_dissolve")
elseif nNextState == 2 then
self._mapNode.Flip:PlayRoundAni()
elseif nNextState == 5 then
self._mapNode.Slot:PlayOutAni()
self._mapNode.Flip:PlayOutAni()
self.animator:Play("PengUinCard_Bg_Result")
WwiseManger:PostEvent("Mode_Card_dissolve")
end
end
function PenguinCardCtrl:RunState_Complete()
self._mapNode.Result:Open()
end
function PenguinCardCtrl:QuitState_Complete()
end
function PenguinCardCtrl:CloseAll()
self._mapNode.Prepare.gameObject:SetActive(false)
self._mapNode.Slot.gameObject:SetActive(false)
self._mapNode.Flip.gameObject:SetActive(false)
self._mapNode.CardInfo.gameObject:SetActive(false)
self._mapNode.Pause.gameObject:SetActive(false)
self._mapNode.HandRank.gameObject:SetActive(false)
self._mapNode.Result.gameObject:SetActive(false)
self._mapNode.Log.gameObject:SetActive(false)
self._mapNode.Confirm.gameObject:SetActive(false)
end
function PenguinCardCtrl:Awake()
self.bIn = true
self.animator = self.gameObject:GetComponent("Animator")
self:CloseAll()
end
function PenguinCardCtrl:OnEnable()
self._panel.mapLevel:StartGame()
self._mapNode.Flip:RefreshButton()
end
function PenguinCardCtrl:OnDisable()
self._panel.mapLevel = nil
end
function PenguinCardCtrl:OnBtnClick_Pause(btn)
self._mapNode.Pause:Open()
end
function PenguinCardCtrl:OnEvent_Change(callback)
callback(self, self._panel.mapLevel)
end
return PenguinCardCtrl