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
This commit is contained in:
@@ -0,0 +1,614 @@
|
||||
local PenguinLevel = require("Game.UI.Play_PenguinCard.PenguinLevel")
|
||||
local PenguinLevel_Normal = class("PenguinLevel_Normal", PenguinLevel)
|
||||
local PenguinCardQuest = require("Game.UI.Play_PenguinCard.PenguinCardQuest")
|
||||
local PenguinCardUtils = require("Game.UI.Play_PenguinCard.PenguinCardUtils")
|
||||
local mapEventConfig = {
|
||||
PenguinCard_ChangeScore = "OnEvent_ChangeScore"
|
||||
}
|
||||
function PenguinLevel_Normal:Init(nFloorId, nLevelId, nActId, tbStarScore)
|
||||
self:ParseServerData(nFloorId, nLevelId, nActId, tbStarScore)
|
||||
self:ParseConfigData()
|
||||
self:ParseLocalData()
|
||||
self:BindEvent()
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.PenguinCard, self)
|
||||
end
|
||||
function PenguinLevel_Normal:Exit()
|
||||
self:UnBindEvent()
|
||||
end
|
||||
function PenguinLevel_Normal:ParseModeConfigData()
|
||||
self.nMaxRound = ConfigTable.GetConfigNumber("PenguinCardMaxRound")
|
||||
self.nMaxSlot = ConfigTable.GetConfigNumber("PenguinCardMaxSlot")
|
||||
self.nMaxBuyLimit = ConfigTable.GetConfigNumber("PenguinCardHandCardCount")
|
||||
self.nMaxCheckRound = ConfigTable.GetConfigNumber("PenguinCardMaxCheckRound")
|
||||
self.tbRoundUpgradeCost = ConfigTable.GetConfigNumberArray("PenguinCardRoundUpgradeCost")
|
||||
self.tbSlotUpgradeCost = ConfigTable.GetConfigNumberArray("PenguinCardSlotUpgradeCost")
|
||||
self.tbBuyLimitUpgradeCost = ConfigTable.GetConfigNumberArray("PenguinCardBuyLimitUpgradeCost")
|
||||
self.tbCheckRoundUpgradeCost = ConfigTable.GetConfigNumberArray("PenguinCardCheckRoundUpgradeCost")
|
||||
end
|
||||
function PenguinLevel_Normal:ParseModeLevelData(nFloorId)
|
||||
local mapLevelCfg = ConfigTable.GetData("PenguinCardFloor", nFloorId)
|
||||
if not mapLevelCfg then
|
||||
return
|
||||
end
|
||||
self.nMaxTurn = mapLevelCfg.MaxTurn
|
||||
self.nScore = mapLevelCfg.InitialScore
|
||||
self.nTotalScore = mapLevelCfg.InitialScore
|
||||
self.nSlotCount = mapLevelCfg.InitialSlot
|
||||
self.nRoundLimit = mapLevelCfg.InitialRound
|
||||
self.nCheckRoundLimit = mapLevelCfg.InitialCheckRound
|
||||
self.nBuyLimit = mapLevelCfg.InitialBuyLimit
|
||||
self.nWeightGroupId = mapLevelCfg.WeightGroup
|
||||
self.nFixedTurnGroupId = mapLevelCfg.FixedTurn
|
||||
self.sLevelDesc = mapLevelCfg.Floortips
|
||||
self.bShowWin = mapLevelCfg.ShowWin
|
||||
self.nQuestTurn = mapLevelCfg.QuestTurn
|
||||
self.nQuestGroup = mapLevelCfg.QuestGroup
|
||||
local mapPoolCfg = ConfigTable.GetData("PenguinBaseCardPool", mapLevelCfg.PoolId)
|
||||
if not mapPoolCfg then
|
||||
return
|
||||
end
|
||||
self.mapBaseCardPool = {
|
||||
tbId = mapPoolCfg.BaseCardId,
|
||||
tbWeight = mapPoolCfg.Weight
|
||||
}
|
||||
end
|
||||
function PenguinLevel_Normal:ClearModeLevelData()
|
||||
self.bPreTurnWin = false
|
||||
if self.tbQuestPool == nil then
|
||||
self.tbQuestPool = {}
|
||||
end
|
||||
self.mapQuest = nil
|
||||
end
|
||||
function PenguinLevel_Normal:CheckNextGameState()
|
||||
if self.nGameState == nil then
|
||||
return PenguinCardUtils.GameState.Start
|
||||
elseif self.nGameState == PenguinCardUtils.GameState.Start then
|
||||
if self.nQuestTurn >= 0 and self.nCurTurn >= self.nQuestTurn then
|
||||
return PenguinCardUtils.GameState.Quest
|
||||
else
|
||||
return PenguinCardUtils.GameState.Prepare
|
||||
end
|
||||
elseif self.nGameState == PenguinCardUtils.GameState.Prepare then
|
||||
return PenguinCardUtils.GameState.Dealing
|
||||
elseif self.nGameState == PenguinCardUtils.GameState.Dealing then
|
||||
return PenguinCardUtils.GameState.Flip
|
||||
elseif self.nGameState == PenguinCardUtils.GameState.Flip then
|
||||
return PenguinCardUtils.GameState.Settlement
|
||||
elseif self.nGameState == PenguinCardUtils.GameState.Settlement then
|
||||
if self.nCurRound < self:GetRoundLimitInTurn() then
|
||||
return PenguinCardUtils.GameState.Dealing
|
||||
end
|
||||
if self.nCurTurn >= self.nMaxTurn then
|
||||
return PenguinCardUtils.GameState.Complete
|
||||
end
|
||||
if self.mapQuest ~= nil then
|
||||
return PenguinCardUtils.GameState.Quest
|
||||
elseif self.nQuestTurn >= 0 and self.nCurTurn >= self.nQuestTurn then
|
||||
return PenguinCardUtils.GameState.Quest
|
||||
else
|
||||
return PenguinCardUtils.GameState.Prepare
|
||||
end
|
||||
elseif self.nGameState == PenguinCardUtils.GameState.Quest then
|
||||
if self.nCurTurn >= self.nMaxTurn or 0 >= self.nHp then
|
||||
return PenguinCardUtils.GameState.Complete
|
||||
else
|
||||
return PenguinCardUtils.GameState.Prepare
|
||||
end
|
||||
end
|
||||
end
|
||||
function PenguinLevel_Normal:RunState_Start()
|
||||
EventManager.Hit("PenguinCard_RunState_Start")
|
||||
end
|
||||
function PenguinLevel_Normal:QuitState_Start()
|
||||
EventManager.Hit("PenguinCard_QuitState_Start")
|
||||
local nWaitTime = 0.167
|
||||
return nWaitTime
|
||||
end
|
||||
function PenguinLevel_Normal:RunState_Quest()
|
||||
self.tbSelectableQuest = {}
|
||||
self.bSkipQuestShow = false
|
||||
self.mapQuestForShow = nil
|
||||
if self.mapQuest ~= nil then
|
||||
self.mapQuestForShow = clone(self.mapQuest)
|
||||
local bComplete = self.mapQuest:CheckComplete()
|
||||
if bComplete then
|
||||
self:CompleteQuest()
|
||||
self:RollQuest()
|
||||
else
|
||||
local bExpired = self.mapQuest:CheckExpired()
|
||||
if bExpired then
|
||||
self:ChangeHp(-1)
|
||||
if self.nHp > 0 then
|
||||
self:RollQuest()
|
||||
end
|
||||
else
|
||||
self.bSkipQuestShow = true
|
||||
end
|
||||
end
|
||||
else
|
||||
self:RollQuest()
|
||||
if next(self.tbSelectableQuest) == nil then
|
||||
self.bSkipQuestShow = true
|
||||
end
|
||||
end
|
||||
EventManager.Hit("PenguinCard_RunState_Quest", self.bSkipQuestShow)
|
||||
if self.bSkipQuestShow then
|
||||
self:SwitchGameState()
|
||||
end
|
||||
end
|
||||
function PenguinLevel_Normal:QuitState_Quest(nNextState)
|
||||
self.tbSelectableQuest = {}
|
||||
self.bSkipQuestShow = false
|
||||
self.mapQuestForShow = nil
|
||||
EventManager.Hit("PenguinCard_QuitState_Quest", nNextState)
|
||||
local nWaitTime = 0
|
||||
if nNextState == PenguinCardUtils.GameState.Start then
|
||||
nWaitTime = 0.6
|
||||
elseif nNextState == PenguinCardUtils.GameState.Prepare then
|
||||
nWaitTime = 0.57
|
||||
elseif nNextState == PenguinCardUtils.GameState.Complete then
|
||||
nWaitTime = 0.6
|
||||
end
|
||||
return nWaitTime
|
||||
end
|
||||
function PenguinLevel_Normal:RollQuest()
|
||||
local tbId = self:GetRollQuestResult()
|
||||
self:ClearSelectableQuest()
|
||||
for _, nId in ipairs(tbId) do
|
||||
local mapCard = self:CreateQuest(nId)
|
||||
table.insert(self.tbSelectableQuest, mapCard)
|
||||
end
|
||||
self.mapQuest = nil
|
||||
end
|
||||
function PenguinLevel_Normal:GetRollQuestResult()
|
||||
local mapWeightCfg = ConfigTable.GetData("PenguinCardQuestWeight", self.nQuestGroup * 100 + self.nCurTurn)
|
||||
if not mapWeightCfg then
|
||||
EventManager.Hit(EventId.OpenMessageBox, {
|
||||
nType = AllEnum.MessageBox.Tips,
|
||||
sSound = "Mode_Card_refresh_falied",
|
||||
sContent = ConfigTable.GetUIText("PenguinCard_Error_EmptyQuest")
|
||||
})
|
||||
return {}
|
||||
end
|
||||
local tbId = PenguinCardUtils.WeightedRandom(mapWeightCfg.QuestList, mapWeightCfg.Weight, 3)
|
||||
return tbId
|
||||
end
|
||||
function PenguinLevel_Normal:ClearSelectableQuest()
|
||||
if next(self.tbSelectableQuest) ~= nil then
|
||||
for i = #self.tbSelectableQuest, 1, -1 do
|
||||
local mapCard = table.remove(self.tbSelectableQuest, i)
|
||||
self:RecycleQuest(mapCard)
|
||||
end
|
||||
end
|
||||
end
|
||||
function PenguinLevel_Normal:SelectQuest(nIndex)
|
||||
self.mapQuest = nil
|
||||
self.mapQuest = self.tbSelectableQuest[nIndex]
|
||||
table.remove(self.tbSelectableQuest, nIndex)
|
||||
self:ClearSelectableQuest()
|
||||
EventManager.Hit("PenguinCard_SelectQuest")
|
||||
if NovaAPI.IsEditorPlatform() then
|
||||
printLog("领取任务:" .. " " .. self.mapQuest.nId)
|
||||
end
|
||||
end
|
||||
function PenguinLevel_Normal:CompleteQuest()
|
||||
local mapData = self:CreateBuff(self.mapQuest.nBuffId)
|
||||
mapData:ResetAllTrigger()
|
||||
self:AddBuff(mapData, true)
|
||||
end
|
||||
function PenguinLevel_Normal:RecycleQuest(mapQuest)
|
||||
mapQuest:Clear()
|
||||
table.insert(self.tbQuestPool, mapQuest)
|
||||
end
|
||||
function PenguinLevel_Normal:CreateQuest(nId)
|
||||
local mapQuest
|
||||
if next(self.tbQuestPool) == nil then
|
||||
mapQuest = PenguinCardQuest.new(nId)
|
||||
else
|
||||
mapQuest = table.remove(self.tbQuestPool, 1)
|
||||
mapQuest:Init(nId)
|
||||
end
|
||||
return mapQuest
|
||||
end
|
||||
function PenguinLevel_Normal:RunState_Prepare()
|
||||
self.nCurTurn = self.nCurTurn + 1
|
||||
self.nCurRound = 0
|
||||
self:ClearStateData_Prepare()
|
||||
self:ClearTurnData()
|
||||
for _, v in ipairs(self.tbBuff) do
|
||||
v:ResetTurnTrigger()
|
||||
end
|
||||
for _, v in ipairs(self.tbPenguinCard) do
|
||||
if v ~= 0 then
|
||||
v:ResetTurnTrigger()
|
||||
end
|
||||
end
|
||||
self:TriggerEffect(GameEnum.PenguinCardTriggerPhase.Prepare)
|
||||
self:TriggerEffect(GameEnum.PenguinCardTriggerPhase.BeforeUpgrade)
|
||||
self:FreeRollPenguinCard()
|
||||
EventManager.Hit("PenguinCard_RunState_Prepare")
|
||||
end
|
||||
function PenguinLevel_Normal:QuitState_Prepare(nNextState)
|
||||
self:ClearSelectablePenguinCard()
|
||||
self:ClearStateData_Prepare()
|
||||
self.bPreTurnWin = false
|
||||
EventManager.Hit("PenguinCard_QuitState_Prepare", nNextState)
|
||||
local nWaitTime = 0
|
||||
if nNextState == PenguinCardUtils.GameState.Start then
|
||||
nWaitTime = 0.6
|
||||
elseif nNextState == PenguinCardUtils.GameState.Dealing then
|
||||
nWaitTime = 0.45
|
||||
elseif nNextState == PenguinCardUtils.GameState.Complete then
|
||||
nWaitTime = 0.6
|
||||
end
|
||||
return nWaitTime
|
||||
end
|
||||
function PenguinLevel_Normal:AddRound()
|
||||
if self.nRoundLimit == self.nMaxRound then
|
||||
EventManager.Hit(EventId.OpenMessageBox, {
|
||||
nType = AllEnum.MessageBox.Tips,
|
||||
sSound = "Mode_Card_refresh_falied",
|
||||
sContent = ConfigTable.GetUIText("PenguinCard_AddBtnMaxLevel")
|
||||
})
|
||||
return
|
||||
end
|
||||
local nCost = self.tbRoundUpgradeCost[self.nRoundLimit + 1] * self.nUpgradeDiscount
|
||||
if nCost > self.nScore then
|
||||
EventManager.Hit(EventId.OpenMessageBox, {
|
||||
nType = AllEnum.MessageBox.Tips,
|
||||
sSound = "Mode_Card_refresh_falied",
|
||||
sContent = ConfigTable.GetUIText("PenguinCard_NotEnoughScoreUpgrade")
|
||||
})
|
||||
return
|
||||
end
|
||||
self.nRoundLimit = self.nRoundLimit + 1
|
||||
self:ChangeScore(-1 * nCost)
|
||||
EventManager.Hit(EventId.OpenMessageBox, {
|
||||
nType = AllEnum.MessageBox.Tips,
|
||||
sSound = "Mode_Card_buy",
|
||||
sContent = orderedFormat(ConfigTable.GetUIText("PenguinCard_AddRoundSuccess"), self.nRoundLimit)
|
||||
})
|
||||
self:AfterUpgrade(nCost)
|
||||
EventManager.Hit("PenguinCard_AddRound")
|
||||
end
|
||||
function PenguinLevel_Normal:AddSlot()
|
||||
if self.nSlotCount == self.nMaxSlot then
|
||||
EventManager.Hit(EventId.OpenMessageBox, {
|
||||
nType = AllEnum.MessageBox.Tips,
|
||||
sSound = "Mode_Card_refresh_falied",
|
||||
sContent = ConfigTable.GetUIText("PenguinCard_AddBtnMaxLevel")
|
||||
})
|
||||
return
|
||||
end
|
||||
local nCost = self.tbSlotUpgradeCost[self.nSlotCount + 1] * self.nUpgradeDiscount
|
||||
if nCost > self.nScore then
|
||||
EventManager.Hit(EventId.OpenMessageBox, {
|
||||
nType = AllEnum.MessageBox.Tips,
|
||||
sSound = "Mode_Card_refresh_falied",
|
||||
sContent = ConfigTable.GetUIText("PenguinCard_NotEnoughScoreUpgrade")
|
||||
})
|
||||
return
|
||||
end
|
||||
self.nSlotCount = self.nSlotCount + 1
|
||||
self:ChangeScore(-1 * nCost)
|
||||
EventManager.Hit(EventId.OpenMessageBox, {
|
||||
nType = AllEnum.MessageBox.Tips,
|
||||
sSound = "Mode_Card_buy",
|
||||
sContent = orderedFormat(ConfigTable.GetUIText("PenguinCard_AddSlotSuccess"), self.nSlotCount)
|
||||
})
|
||||
self:AfterUpgrade(nCost)
|
||||
EventManager.Hit("PenguinCard_AddSlot")
|
||||
end
|
||||
function PenguinLevel_Normal:AddRoll()
|
||||
if self.nBuyLimit == self.nMaxBuyLimit then
|
||||
EventManager.Hit(EventId.OpenMessageBox, {
|
||||
nType = AllEnum.MessageBox.Tips,
|
||||
sSound = "Mode_Card_refresh_falied",
|
||||
sContent = ConfigTable.GetUIText("PenguinCard_AddBtnMaxLevel")
|
||||
})
|
||||
return
|
||||
end
|
||||
local nCost = self.tbBuyLimitUpgradeCost[self.nBuyLimit + 1] * self.nUpgradeDiscount
|
||||
if nCost > self.nScore then
|
||||
EventManager.Hit(EventId.OpenMessageBox, {
|
||||
nType = AllEnum.MessageBox.Tips,
|
||||
sSound = "Mode_Card_refresh_falied",
|
||||
sContent = ConfigTable.GetUIText("PenguinCard_NotEnoughScoreUpgrade")
|
||||
})
|
||||
return
|
||||
end
|
||||
self.nBuyLimit = self.nBuyLimit + 1
|
||||
self:ChangeScore(-1 * nCost)
|
||||
EventManager.Hit(EventId.OpenMessageBox, {
|
||||
nType = AllEnum.MessageBox.Tips,
|
||||
sSound = "Mode_Card_buy",
|
||||
sContent = orderedFormat(ConfigTable.GetUIText("PenguinCard_AddRollSuccess"), self.nBuyLimit)
|
||||
})
|
||||
self:AfterUpgrade(nCost)
|
||||
EventManager.Hit("PenguinCard_AddRoll")
|
||||
end
|
||||
function PenguinLevel_Normal:AddCheckRound()
|
||||
if self.nCheckRoundLimit == self.nMaxCheckRound then
|
||||
EventManager.Hit(EventId.OpenMessageBox, {
|
||||
nType = AllEnum.MessageBox.Tips,
|
||||
sSound = "Mode_Card_refresh_falied",
|
||||
sContent = ConfigTable.GetUIText("PenguinCard_AddBtnMaxLevel")
|
||||
})
|
||||
return
|
||||
end
|
||||
local nCost = self.tbCheckRoundUpgradeCost[self.nCheckRoundLimit + 1] * self.nUpgradeDiscount
|
||||
if nCost > self.nScore then
|
||||
EventManager.Hit(EventId.OpenMessageBox, {
|
||||
nType = AllEnum.MessageBox.Tips,
|
||||
sSound = "Mode_Card_refresh_falied",
|
||||
sContent = ConfigTable.GetUIText("PenguinCard_NotEnoughScoreUpgrade")
|
||||
})
|
||||
return
|
||||
end
|
||||
self.nCheckRoundLimit = self.nCheckRoundLimit + 1
|
||||
self:ChangeScore(-1 * nCost)
|
||||
EventManager.Hit(EventId.OpenMessageBox, {
|
||||
nType = AllEnum.MessageBox.Tips,
|
||||
sSound = "Mode_Card_buy",
|
||||
sContent = orderedFormat(ConfigTable.GetUIText("PenguinCard_AddCheckRoundSuccess"), self.nRoundLimit)
|
||||
})
|
||||
self:AfterUpgrade(nCost)
|
||||
EventManager.Hit("PenguinCard_AddCheckRound")
|
||||
end
|
||||
function PenguinLevel_Normal:GetPenguinCardWeightLevel()
|
||||
return self.nCurTurn
|
||||
end
|
||||
function PenguinLevel_Normal:RunState_Dealing()
|
||||
self:SaveSnapshot()
|
||||
self.bCheckRound = self:GetSnapshotState()
|
||||
self:AddCheckRoundBuff()
|
||||
self.nCurRound = self.nCurRound + 1
|
||||
self.nTotalRound = self.nTotalRound + 1
|
||||
self:ClearRoundData()
|
||||
self.mapCalBaseCardPool = clone(self.mapBaseCardPool)
|
||||
for _, v in ipairs(self.tbBuff) do
|
||||
v:ResetRoundTrigger()
|
||||
end
|
||||
for _, v in ipairs(self.tbPenguinCard) do
|
||||
if v ~= 0 then
|
||||
v:ResetRoundTrigger()
|
||||
end
|
||||
end
|
||||
self:TriggerEffect(GameEnum.PenguinCardTriggerPhase.Dealing)
|
||||
self.tbBaseCardId = PenguinCardUtils.WeightedRandom(self.mapCalBaseCardPool.tbId, self.mapCalBaseCardPool.tbWeight, self.nBaseCardCount, {}, true)
|
||||
if 0 < self.nFixedTurnGroupId then
|
||||
local nFixedId = self.nFixedTurnGroupId * 10000 + self.nCurTurn * 100 + self.nCurRound
|
||||
local mapFixedCfg = ConfigTable.GetData("PenguinCardFixedTurn", nFixedId, true)
|
||||
if mapFixedCfg then
|
||||
self.tbBaseCardId = clone(mapFixedCfg.BaseCardId)
|
||||
end
|
||||
end
|
||||
self.tbShowedCard = {}
|
||||
for i = 1, self.nBaseCardCount do
|
||||
self.tbShowedCard[i] = false
|
||||
end
|
||||
EventManager.Hit("PenguinCard_RunState_Dealing")
|
||||
self:SwitchGameState()
|
||||
end
|
||||
function PenguinLevel_Normal:QuitState_Dealing(nNextState)
|
||||
EventManager.Hit("PenguinCard_QuitState_Dealing", nNextState)
|
||||
local nWaitTime = 0
|
||||
if nNextState == PenguinCardUtils.GameState.Start then
|
||||
nWaitTime = 0.6
|
||||
elseif nNextState == PenguinCardUtils.GameState.Flip then
|
||||
nWaitTime = self.bCheckRound and 1.87 or 0.85
|
||||
elseif nNextState == PenguinCardUtils.GameState.Complete then
|
||||
nWaitTime = 0.6
|
||||
end
|
||||
return nWaitTime
|
||||
end
|
||||
function PenguinLevel_Normal:AddCheckRoundBuff()
|
||||
if not self.bCheckRound then
|
||||
return
|
||||
end
|
||||
local nBuffId = ConfigTable.GetConfigNumber("PenguinCardCheckRoundBuffId")
|
||||
local mapData = self:CreateBuff(nBuffId)
|
||||
mapData:ResetAllTrigger()
|
||||
self:AddBuff(mapData)
|
||||
end
|
||||
function PenguinLevel_Normal:RunState_Flip()
|
||||
EventManager.Hit("PenguinCard_RunState_Flip")
|
||||
self:PlayAuto()
|
||||
end
|
||||
function PenguinLevel_Normal:QuitState_Flip(nNextState)
|
||||
self:StopAuto()
|
||||
EventManager.Hit("PenguinCard_QuitState_Flip", nNextState)
|
||||
local nWaitTime = 0
|
||||
if nNextState == PenguinCardUtils.GameState.Start then
|
||||
nWaitTime = 0.6
|
||||
elseif nNextState == PenguinCardUtils.GameState.Settlement then
|
||||
nWaitTime = 1
|
||||
elseif nNextState == PenguinCardUtils.GameState.Complete then
|
||||
nWaitTime = 0.6
|
||||
end
|
||||
return nWaitTime
|
||||
end
|
||||
function PenguinLevel_Normal:AfterShowBaseCard(mapCfg)
|
||||
if self.mapQuest ~= nil then
|
||||
for j = 1, 3 do
|
||||
local nSuit = mapCfg["Suit" .. j]
|
||||
local nCount = mapCfg["SuitCount" .. j]
|
||||
if 0 < nSuit and 0 < nCount then
|
||||
self.mapQuest:AddProgress(GameEnum.PenguinCardQuestType.SuitCount, {nId = nSuit, nCount = nCount})
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
function PenguinLevel_Normal:AfterCheckHandRank()
|
||||
if self.mapQuest ~= nil then
|
||||
self.mapQuest:AddProgress(GameEnum.PenguinCardQuestType.HandRank, {
|
||||
nId = self.nHandRankId,
|
||||
nCount = 1
|
||||
})
|
||||
end
|
||||
end
|
||||
function PenguinLevel_Normal:RunState_Settlement()
|
||||
local HandRankSuitCount = self:AddSettlementHistory()
|
||||
self:TriggerEffect(GameEnum.PenguinCardTriggerPhase.Settlement, {
|
||||
HandRankSuitCount = HandRankSuitCount,
|
||||
SuitCount = self.mapAllSuit,
|
||||
HandRank = self.nHandRankId,
|
||||
HandRankCount = self.tbHandRankCount
|
||||
})
|
||||
self:AddLog()
|
||||
EventManager.Hit("PenguinCard_RunState_Settlement")
|
||||
self:PlayAuto()
|
||||
end
|
||||
function PenguinLevel_Normal:QuitState_Settlement(nNextState)
|
||||
self:StopAuto()
|
||||
self:ChangeScore(self.nRoundScore)
|
||||
if self.mapQuest ~= nil then
|
||||
self.mapQuest:AddProgress(GameEnum.PenguinCardQuestType.Score, {
|
||||
nCount = self.nRoundScore
|
||||
})
|
||||
end
|
||||
self:EndRound()
|
||||
if self:GetRoundLimitInTurn() == self.nCurRound then
|
||||
self:EndTurn()
|
||||
if self.mapQuest ~= nil then
|
||||
self.mapQuest:AddTurnCount()
|
||||
end
|
||||
end
|
||||
self.bCheckRound = false
|
||||
self:ClearRoundData()
|
||||
EventManager.Hit("PenguinCard_QuitState_Settlement", nNextState)
|
||||
local nWaitTime = 0
|
||||
if nNextState == PenguinCardUtils.GameState.Start then
|
||||
nWaitTime = 0.6
|
||||
elseif nNextState == PenguinCardUtils.GameState.Dealing then
|
||||
nWaitTime = 0.57
|
||||
elseif nNextState == PenguinCardUtils.GameState.Prepare then
|
||||
nWaitTime = 0.57
|
||||
elseif nNextState == PenguinCardUtils.GameState.Complete then
|
||||
nWaitTime = 0.6
|
||||
end
|
||||
return nWaitTime
|
||||
end
|
||||
function PenguinLevel_Normal:RunState_Complete(mapParam)
|
||||
self.nStar = self:GetStar()
|
||||
EventManager.Hit("PenguinCard_RunState_Complete")
|
||||
if self.nActId then
|
||||
local tab = {}
|
||||
table.insert(tab, {
|
||||
"role_id",
|
||||
tostring(PlayerData.Base._nPlayerId)
|
||||
})
|
||||
table.insert(tab, {
|
||||
"activity_id",
|
||||
tostring(self.nActId)
|
||||
})
|
||||
table.insert(tab, {
|
||||
"battle_id",
|
||||
tostring(self.nLevelId)
|
||||
})
|
||||
table.insert(tab, {
|
||||
"round",
|
||||
tostring(self.nCurTurn)
|
||||
})
|
||||
table.insert(tab, {
|
||||
"result",
|
||||
tostring(self.nStar == 0 and 2 or 1)
|
||||
})
|
||||
local nEnd = mapParam and mapParam.bManual == true and 2 or 1
|
||||
table.insert(tab, {
|
||||
"end_type",
|
||||
tostring(nEnd)
|
||||
})
|
||||
table.insert(tab, {
|
||||
"score",
|
||||
tostring(self.nScore)
|
||||
})
|
||||
table.insert(tab, {
|
||||
"star",
|
||||
tostring(self.nStar)
|
||||
})
|
||||
local sId = ""
|
||||
for i = 1, 6 do
|
||||
if self.tbPenguinCard[i] ~= 0 then
|
||||
if sId == "" then
|
||||
sId = sId .. self.tbPenguinCard[i].nId
|
||||
else
|
||||
sId = sId .. "," .. self.tbPenguinCard[i].nId
|
||||
end
|
||||
end
|
||||
end
|
||||
table.insert(tab, {"card_list", sId})
|
||||
table.insert(tab, {
|
||||
"skill_1",
|
||||
tostring(self.nRoundLimit)
|
||||
})
|
||||
table.insert(tab, {
|
||||
"skill_2",
|
||||
tostring(self.nSlotCount)
|
||||
})
|
||||
table.insert(tab, {
|
||||
"skill_3",
|
||||
tostring(self.nBuyLimit)
|
||||
})
|
||||
NovaAPI.UserEventUpload("minigame_PenguinCard", tab)
|
||||
end
|
||||
end
|
||||
function PenguinLevel_Normal:QuitState_Complete()
|
||||
self.nStar = 0
|
||||
EventManager.Hit("PenguinCard_QuitState_Complete")
|
||||
return 0
|
||||
end
|
||||
function PenguinLevel_Normal:OnEvent_ChangeScore(nBefore)
|
||||
local nBeforeStar, nStar = 0, 0
|
||||
for i, v in ipairs(self.tbStarScore) do
|
||||
if v <= nBefore then
|
||||
nBeforeStar = i
|
||||
end
|
||||
if v <= self.nScore then
|
||||
nStar = i
|
||||
end
|
||||
end
|
||||
if nBeforeStar == 0 and nStar == 1 and self.nGameState == PenguinCardUtils.GameState.Settlement then
|
||||
self.bPreTurnWin = true
|
||||
end
|
||||
EventManager.Hit("PenguinCard_ChangeStar", nBeforeStar, nStar)
|
||||
end
|
||||
function PenguinLevel_Normal:BindEvent()
|
||||
if type(mapEventConfig) ~= "table" then
|
||||
return
|
||||
end
|
||||
for nEventId, sCallbackName in pairs(mapEventConfig) do
|
||||
local callback = self[sCallbackName]
|
||||
if type(callback) == "function" then
|
||||
EventManager.Add(nEventId, self, callback)
|
||||
end
|
||||
end
|
||||
end
|
||||
function PenguinLevel_Normal:UnBindEvent()
|
||||
if type(mapEventConfig) ~= "table" then
|
||||
return
|
||||
end
|
||||
for nEventId, sCallbackName in pairs(mapEventConfig) do
|
||||
local callback = self[sCallbackName]
|
||||
if type(callback) == "function" then
|
||||
EventManager.Remove(nEventId, self, callback)
|
||||
end
|
||||
end
|
||||
end
|
||||
function PenguinLevel_Normal:SaveModeSnapshot(mapSnapshot)
|
||||
mapSnapshot.bPreTurnWin = self.bPreTurnWin
|
||||
local mapQuest = self.mapQuest
|
||||
if mapQuest ~= nil then
|
||||
mapSnapshot.mapQuest = mapQuest:Serialize()
|
||||
end
|
||||
end
|
||||
function PenguinLevel_Normal:RestoreModeSnapshot(mapSnapshot)
|
||||
self.bPreTurnWin = mapSnapshot.bPreTurnWin
|
||||
self.mapQuest = nil
|
||||
if mapSnapshot.mapQuest ~= nil then
|
||||
local mapQuest = self:CreateQuest(mapSnapshot.mapQuest.nId)
|
||||
mapQuest:Deserialize(mapSnapshot.mapQuest)
|
||||
self.mapQuest = mapQuest
|
||||
end
|
||||
end
|
||||
return PenguinLevel_Normal
|
||||
@@ -12,7 +12,12 @@ function PenguinBaseCardCtrl:Refresh(nId, bOpen)
|
||||
return
|
||||
end
|
||||
self:SetSprite(self._mapNode.imgIcon, "UI/Play_PenguinCard/SpriteAtlas/Sprite/" .. mapCfg.Icon)
|
||||
self.nSuit = mapCfg.Suit1
|
||||
self.tbSuit = {}
|
||||
for i = 1, 3 do
|
||||
if mapCfg["Suit" .. i] > 0 and 0 < mapCfg["SuitCount" .. i] then
|
||||
table.insert(self.tbSuit, mapCfg["Suit" .. i])
|
||||
end
|
||||
end
|
||||
end
|
||||
function PenguinBaseCardCtrl:RefreshIcon(bOpen)
|
||||
self._mapNode.imgBg:SetActive(not bOpen)
|
||||
@@ -37,12 +42,43 @@ function PenguinBaseCardCtrl:PlayFlipAni()
|
||||
self._mapNode.imgBg:SetActive(false)
|
||||
end, true, true, true)
|
||||
end
|
||||
function PenguinBaseCardCtrl:PlayReplaceAni()
|
||||
self.animator:Play("PengUinCard_Base_Double", 0, 0)
|
||||
function PenguinBaseCardCtrl:PlayFlipBackAni()
|
||||
if self._mapNode.imgIcon.gameObject.activeSelf == false then
|
||||
return
|
||||
end
|
||||
self._mapNode.imgBg.gameObject:SetActive(true)
|
||||
self.animator:Play("PengUinCard_Base_TurnBack", 0, 0)
|
||||
WwiseManger:PostEvent("Mode_Card_trunover")
|
||||
self.animator.speed = self._panel.mapLevel.nSpeed
|
||||
local nAnimTime = NovaAPI.GetAnimClipLength(self.animator, {
|
||||
"PengUinCard_Base_Turn"
|
||||
})
|
||||
nAnimTime = nAnimTime / self._panel.mapLevel.nSpeed
|
||||
self:AddTimer(1, nAnimTime, function()
|
||||
self._mapNode.imgIcon.gameObject:SetActive(false)
|
||||
end, true, true, true)
|
||||
end
|
||||
function PenguinBaseCardCtrl:PlayReplaceAni(bStone)
|
||||
if bStone then
|
||||
self.animator:Play("PengUinCard_Base_Stone", 0, 0)
|
||||
WwiseManger:PostEvent("Mode_Card_stone")
|
||||
else
|
||||
self.animator:Play("PengUinCard_Base_Double", 0, 0)
|
||||
WwiseManger:PostEvent("Mode_Card_cast")
|
||||
end
|
||||
self.animator.speed = self._panel.mapLevel.nSpeed
|
||||
end
|
||||
function PenguinBaseCardCtrl:PlayTriggerAni(pos)
|
||||
if table.indexof(self._panel.mapLevel.tbHandRank, self.nSuit) == 0 then
|
||||
local bTrigger = false
|
||||
if not self.tbSuit or #self.tbSuit == 0 then
|
||||
return
|
||||
end
|
||||
for _, nSuit in ipairs(self.tbSuit) do
|
||||
if 0 < table.indexof(self._panel.mapLevel.tbHandRank, nSuit) then
|
||||
bTrigger = true
|
||||
end
|
||||
end
|
||||
if not bTrigger then
|
||||
return
|
||||
end
|
||||
self.animator:Play("PengUinCard_Base_Open", 0, 0)
|
||||
|
||||
@@ -131,7 +131,7 @@ function PenguinCard:Trigger(nTriggerPhase, mapTriggerSource, callback)
|
||||
if nTriggerPhase ~= self.nTriggerPhase then
|
||||
return
|
||||
end
|
||||
local bAble = PenguinCardUtils.CheckTriggerAble(self.nTriggerType, self.tbTriggerParam, self.nTriggerProbability, mapTriggerSource)
|
||||
local bAble = PenguinCardUtils.CheckTriggerAble(self.nTriggerType, self.tbTriggerParam, self.nTriggerProbability, mapTriggerSource, self.nEffectType)
|
||||
if not bAble then
|
||||
return
|
||||
end
|
||||
@@ -183,4 +183,19 @@ end
|
||||
function PenguinCard:GetIdByLevel(nGroupId, nLevel)
|
||||
return nGroupId * 100 + nLevel
|
||||
end
|
||||
function PenguinCard:Serialize()
|
||||
return {
|
||||
nId = self.nId,
|
||||
nSlotIndex = self.nSlotIndex,
|
||||
nTriggerCount = self.nTriggerCount,
|
||||
nGrowthLayer = self.nGrowthLayer,
|
||||
bHighLight = self.bHighLight
|
||||
}
|
||||
end
|
||||
function PenguinCard:Deserialize(mapData)
|
||||
self:Init(mapData.nId, mapData.nGrowthLayer)
|
||||
self.nSlotIndex = mapData.nSlotIndex
|
||||
self.nTriggerCount = mapData.nTriggerCount
|
||||
self.bHighLight = mapData.bHighLight
|
||||
end
|
||||
return PenguinCard
|
||||
|
||||
@@ -81,6 +81,15 @@ function PenguinCardBuff:AddDuration_Turn()
|
||||
end
|
||||
return true
|
||||
end
|
||||
function PenguinCardBuff:AddDuration_Round()
|
||||
if self.nDurationType == GameEnum.PenguinCardBuffDuration.Round then
|
||||
self.nDurationCount = self.nDurationCount + 1
|
||||
if self.nDurationCount >= self.nDurationParam then
|
||||
return false
|
||||
end
|
||||
end
|
||||
return true
|
||||
end
|
||||
function PenguinCardBuff:AddGrowthLayer()
|
||||
self.nGrowthLayer = self.nGrowthLayer + 1
|
||||
end
|
||||
@@ -111,7 +120,7 @@ function PenguinCardBuff:Trigger(nTriggerPhase, mapTriggerSource, callback)
|
||||
if nTriggerPhase ~= self.nTriggerPhase then
|
||||
return false
|
||||
end
|
||||
local bAble = PenguinCardUtils.CheckTriggerAble(self.nTriggerType, self.tbTriggerParam, self.nTriggerProbability, mapTriggerSource)
|
||||
local bAble = PenguinCardUtils.CheckTriggerAble(self.nTriggerType, self.tbTriggerParam, self.nTriggerProbability, mapTriggerSource, self.nEffectType)
|
||||
if not bAble then
|
||||
return false
|
||||
end
|
||||
@@ -140,4 +149,18 @@ function PenguinCardBuff:Trigger(nTriggerPhase, mapTriggerSource, callback)
|
||||
EventManager.Hit("PenguinCardBuffTriggered", self.nId)
|
||||
return true
|
||||
end
|
||||
function PenguinCardBuff:Serialize()
|
||||
return {
|
||||
nId = self.nId,
|
||||
nTriggerCount = self.nTriggerCount,
|
||||
nDurationCount = self.nDurationCount,
|
||||
nGrowthLayer = self.nGrowthLayer
|
||||
}
|
||||
end
|
||||
function PenguinCardBuff:Deserialize(mapData)
|
||||
self:Init(mapData.nId)
|
||||
self.nTriggerCount = mapData.nTriggerCount
|
||||
self.nDurationCount = mapData.nDurationCount
|
||||
self.nGrowthLayer = mapData.nGrowthLayer
|
||||
end
|
||||
return PenguinCardBuff
|
||||
|
||||
@@ -22,6 +22,8 @@ function PenguinCardBuffTipsCtrl:Refresh(mapBuff)
|
||||
sSuffix = orderedFormat(ConfigTable.GetUIText("PenguinCard_BuffDescSuffix_Count"), mapBuff.nDurationParam - mapBuff.nDurationCount)
|
||||
elseif mapBuff.nDurationType == GameEnum.PenguinCardBuffDuration.Turn then
|
||||
sSuffix = orderedFormat(ConfigTable.GetUIText("PenguinCard_BuffDescSuffix_Turn"), mapBuff.nDurationParam - mapBuff.nDurationCount)
|
||||
elseif mapBuff.nDurationType == GameEnum.PenguinCardBuffDuration.Round then
|
||||
sSuffix = orderedFormat(ConfigTable.GetUIText("PenguinCard_BuffDescSuffix_Round"), mapBuff.nDurationParam - mapBuff.nDurationCount)
|
||||
end
|
||||
NovaAPI.SetTMPText(self._mapNode.txtDesc, mapBuff:GetDesc() .. sSuffix)
|
||||
NovaAPI.SetTMPText(self._mapNode.txtName, mapBuff.sName)
|
||||
|
||||
@@ -133,6 +133,7 @@ function PenguinCardCtrl:RunState_Dealing()
|
||||
self._mapNode.Prepare.gameObject:SetActive(false)
|
||||
self._mapNode.Flip.gameObject:SetActive(true)
|
||||
self._mapNode.Flip:Refresh_Dealing()
|
||||
self._mapNode.Slot:Refresh()
|
||||
EventManager.Hit("Guide_PassiveCheck_Msg", "Guide_PenguinCard_302")
|
||||
end
|
||||
function PenguinCardCtrl:QuitState_Dealing(nNextState)
|
||||
@@ -180,7 +181,11 @@ function PenguinCardCtrl:QuitState_Settlement(nNextState)
|
||||
self._mapNode.Flip:PlayOutAni()
|
||||
WwiseManger:PostEvent("Mode_Card_dissolve")
|
||||
elseif nNextState == PenguinCardUtils.GameState.Dealing then
|
||||
self._mapNode.Flip:PlayRoundAni()
|
||||
if self._panel.mapLevel.bRestoreSnapshot then
|
||||
self._mapNode.Flip:PlayRoundBackAni()
|
||||
else
|
||||
self._mapNode.Flip:PlayRoundAni()
|
||||
end
|
||||
elseif nNextState == PenguinCardUtils.GameState.Complete then
|
||||
self._mapNode.Slot:PlayOutAni()
|
||||
self._mapNode.Flip:PlayOutAni()
|
||||
@@ -277,7 +282,7 @@ function PenguinCardCtrl:OnEvent_AddBuff(mapBuff)
|
||||
end
|
||||
btn.onClick:AddListener(click)
|
||||
end
|
||||
function PenguinCardCtrl:OnEvent_DeleteBuff(nIndex, nDelayTime)
|
||||
function PenguinCardCtrl:OnEvent_DeleteBuff(nIndex, nDelayTime, bSkipAni)
|
||||
if not self.tbBuffItem or next(self.tbBuffItem) == nil then
|
||||
return
|
||||
end
|
||||
@@ -291,6 +296,10 @@ function PenguinCardCtrl:OnEvent_DeleteBuff(nIndex, nDelayTime)
|
||||
end, true, true, true)
|
||||
end
|
||||
if goBuff:IsNull() == false then
|
||||
if bSkipAni then
|
||||
destroy(goBuff)
|
||||
return
|
||||
end
|
||||
if nDelayTime and 0 < nDelayTime then
|
||||
self:AddTimer(1, nDelayTime, play, true, true, true)
|
||||
else
|
||||
|
||||
@@ -50,6 +50,17 @@ PenguinCardFlipCtrl._mapNodeConfig = {
|
||||
sLanguageId = "PenguinCard_Btn_FlipAll"
|
||||
},
|
||||
goShowAllOn = {},
|
||||
imgCheckRound = {},
|
||||
txtCheckRound = {sComponentName = "TMP_Text"},
|
||||
btnCheckRound = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_CheckRound"
|
||||
},
|
||||
txtBtnCheckRound = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "PenguinCard_Btn_CheckRound"
|
||||
},
|
||||
goCheckRoundOff = {},
|
||||
btnAuto = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Auto"
|
||||
@@ -132,6 +143,8 @@ PenguinCardFlipCtrl._mapEventConfig = {
|
||||
function PenguinCardFlipCtrl:Refresh_Dealing()
|
||||
self._mapNode.imgNextRound:SetActive(false)
|
||||
self._mapNode.btnNextRound.gameObject:SetActive(false)
|
||||
self._mapNode.imgCheckRound:SetActive(false)
|
||||
self._mapNode.btnCheckRound.gameObject:SetActive(false)
|
||||
self._mapNode.imgRoundTitleBg:SetActive(false)
|
||||
self._mapNode.goNextRoundOn:SetActive(false)
|
||||
self._mapNode.btnShowAll.gameObject:SetActive(true)
|
||||
@@ -145,27 +158,27 @@ function PenguinCardFlipCtrl:Refresh_Dealing()
|
||||
self._mapNode.aniRoundScoreRatioBg.gameObject:SetActive(true)
|
||||
self._mapNode.aniHandRankBg:Play("PengUinCard_HandRank_Off", 1, 0)
|
||||
for i = 1, 5 do
|
||||
self._mapNode.btnShow[i].interactable = true
|
||||
self._mapNode.btnShow[i].interactable = false
|
||||
self._mapNode.PenguinBaseCard[i]:Refresh(self._panel.mapLevel.tbBaseCardId[i])
|
||||
self._mapNode.PenguinBaseCard[i]:PlayInAni()
|
||||
end
|
||||
if self._panel.mapLevel.nCurRound == 1 then
|
||||
self.animator:Play("PengUinCard_Flip_in", 0, 0)
|
||||
local nAnimTime = NovaAPI.GetAnimClipLength(self.animator, {
|
||||
"PengUinCard_Flip_in"
|
||||
})
|
||||
EventManager.Hit(EventId.TemporaryBlockInput, nAnimTime)
|
||||
if self._panel.mapLevel.bCheckRound then
|
||||
self.animator:Play("PengUinCard_Flip_Card_shuffle", 0, 0)
|
||||
WwiseManger:PostEvent("Mode_Card_re")
|
||||
else
|
||||
self.animator:Play("PengUinCard_Flip_Card_in", 0, 0)
|
||||
local nAnimTime = NovaAPI.GetAnimClipLength(self.animator, {
|
||||
"PengUinCard_Flip_Card_in"
|
||||
})
|
||||
EventManager.Hit(EventId.TemporaryBlockInput, nAnimTime)
|
||||
if self._panel.mapLevel.nCurRound == 1 then
|
||||
self.animator:Play("PengUinCard_Flip_in", 0, 0)
|
||||
else
|
||||
self.animator:Play("PengUinCard_Flip_Card_in", 0, 0)
|
||||
end
|
||||
WwiseManger:PostEvent("Mode_Card_nextround")
|
||||
end
|
||||
WwiseManger:PostEvent("Mode_Card_nextround")
|
||||
end
|
||||
function PenguinCardFlipCtrl:Refresh_Flip()
|
||||
self._mapNode.btnShowAll.interactable = true
|
||||
for i = 1, 5 do
|
||||
self._mapNode.btnShow[i].interactable = true
|
||||
end
|
||||
self:StartShowAllOn()
|
||||
self.mapHandRankScore = {}
|
||||
end
|
||||
@@ -175,12 +188,15 @@ function PenguinCardFlipCtrl:Refresh_Settlement()
|
||||
end
|
||||
self._mapNode.btnNextRound.gameObject:SetActive(true)
|
||||
self._mapNode.btnNextRound.interactable = false
|
||||
self._mapNode.btnCheckRound.interactable = false
|
||||
self:AddTimer(1, 2 / self._panel.mapLevel.nSpeed, function()
|
||||
self._mapNode.btnNextRound.interactable = true
|
||||
self._mapNode.btnCheckRound.interactable = true
|
||||
end, true, true, true)
|
||||
self._mapNode.btnShowAll.gameObject:SetActive(false)
|
||||
self._mapNode.goShowAllOn:SetActive(false)
|
||||
self:RefreshRoundCount()
|
||||
self:RefreshCheckRoundCount()
|
||||
self._mapNode.aniHandRankBg:Play("PengUinCard_HandRank_On", 0, 0)
|
||||
self:RefreshHandRank()
|
||||
for i = 1, 5 do
|
||||
@@ -199,13 +215,21 @@ function PenguinCardFlipCtrl:RefreshRoundCount()
|
||||
NovaAPI.SetTMPText(self._mapNode.txtRoundTip, ConfigTable.GetUIText("PenguinCard_NextRoundTip"))
|
||||
end
|
||||
end
|
||||
function PenguinCardFlipCtrl:RefreshCheckRoundCount()
|
||||
NovaAPI.SetTMPText(self._mapNode.txtCheckRound, orderedFormat(ConfigTable.GetUIText("PenguinCard_LeftCheckRound"), self._panel.mapLevel.nCheckRoundLimit - self._panel.mapLevel.nCheckRoundCount))
|
||||
self._mapNode.goCheckRoundOff:SetActive(self._panel.mapLevel.bCheckRound or self._panel.mapLevel.nCheckRoundLimit <= self._panel.mapLevel.nCheckRoundCount)
|
||||
self._mapNode.btnCheckRound.gameObject:SetActive(self._panel.mapLevel.nCheckRoundLimit > 0)
|
||||
self._mapNode.imgCheckRound:SetActive(self._panel.mapLevel.nCheckRoundLimit > 0)
|
||||
end
|
||||
function PenguinCardFlipCtrl:RefreshHandRank()
|
||||
local nAll = #self._panel.mapLevel.tbHandRank
|
||||
for i = 1, 6 do
|
||||
self._mapNode.imgSuitCount[i].gameObject:SetActive(i <= nAll)
|
||||
if i <= nAll then
|
||||
local sName = AllEnum.PenguinCardSuitSprite[self._panel.mapLevel.tbHandRank[i]]
|
||||
self:SetSprite(self._mapNode.imgSuitCount[i], "UI/Play_PenguinCard/SpriteAtlas/Sprite/" .. sName)
|
||||
if 0 < nAll then
|
||||
for i = 1, 6 do
|
||||
self._mapNode.imgSuitCount[i].gameObject:SetActive(i <= nAll)
|
||||
if i <= nAll then
|
||||
local sName = AllEnum.PenguinCardSuitSprite[self._panel.mapLevel.tbHandRank[i]]
|
||||
self:SetSprite(self._mapNode.imgSuitCount[i], "UI/Play_PenguinCard/SpriteAtlas/Sprite/" .. sName)
|
||||
end
|
||||
end
|
||||
end
|
||||
local mapCfg = ConfigTable.GetData("PenguinCardHandRank", self._panel.mapLevel.nHandRankId)
|
||||
@@ -298,6 +322,31 @@ function PenguinCardFlipCtrl:PlayRoundAni()
|
||||
self._mapNode.aniHandRankBg:Play("PengUinCard_HandRank_Off", 0, 0)
|
||||
self:QuitScoreAni()
|
||||
end
|
||||
function PenguinCardFlipCtrl:PlayRoundBackAni()
|
||||
for i = 1, 5 do
|
||||
self._mapNode.PenguinBaseCard[i]:PlayFlipBackAni()
|
||||
end
|
||||
self._mapNode.aniHandRankBg:Play("PengUinCard_HandRank_Off", 0, 0)
|
||||
self._mapNode.imgRoundTitleBg:SetActive(false)
|
||||
if self._panel.mapLevel.mapQuest ~= nil then
|
||||
local bComplete = self._panel.mapLevel.mapQuest:CheckComplete()
|
||||
self._mapNode.imgQuestComplete:SetActive(bComplete)
|
||||
if not bComplete then
|
||||
local nP = self._panel.mapLevel.mapQuest.nAimCount / self._panel.mapLevel.mapQuest.nMaxAim
|
||||
if 1 < nP then
|
||||
nP = 1
|
||||
end
|
||||
local nPos = nP * QuestPos
|
||||
self._mapNode.imgQuestProgress:DOSizeDelta(Vector2(nPos, 24), 0.5):SetEase(Ease.OutQuad)
|
||||
end
|
||||
end
|
||||
self:QuitScoreAni()
|
||||
self:RefreshRoundScore()
|
||||
self._mapNode.aniRoundScoreBaseBg.gameObject:SetActive(false)
|
||||
self._mapNode.aniRoundScoreBaseBg.gameObject:SetActive(true)
|
||||
self._mapNode.aniRoundScoreRatioBg.gameObject:SetActive(false)
|
||||
self._mapNode.aniRoundScoreRatioBg.gameObject:SetActive(true)
|
||||
end
|
||||
function PenguinCardFlipCtrl:QuitScoreAni()
|
||||
if self.sequence then
|
||||
self.sequence:Kill()
|
||||
@@ -474,15 +523,13 @@ function PenguinCardFlipCtrl:OnBtnClick_ShowAll(btn)
|
||||
self._panel.mapLevel:ShowBaseCard()
|
||||
end
|
||||
function PenguinCardFlipCtrl:OnBtnClick_NextRound(btn)
|
||||
self._panel.mapLevel:StopAuto()
|
||||
self._panel.mapLevel:NextRound()
|
||||
self:QuitScoreAni()
|
||||
if self._panel.mapLevel:GetRoundLimitInTurn() == self._panel.mapLevel.nCurRound and self._panel.mapLevel.nCurTurn < self._panel.mapLevel.nMaxTurn then
|
||||
local callback = function()
|
||||
self._panel.mapLevel:SwitchGameState()
|
||||
end
|
||||
EventManager.Hit("PenguinCard_OpenLog", self._panel.mapLevel.nCurTurn, false, callback)
|
||||
else
|
||||
self._panel.mapLevel:SwitchGameState()
|
||||
end
|
||||
function PenguinCardFlipCtrl:OnBtnClick_CheckRound(btn)
|
||||
local bAble = self._panel.mapLevel:CheckRound()
|
||||
if bAble then
|
||||
self:QuitScoreAni()
|
||||
end
|
||||
end
|
||||
function PenguinCardFlipCtrl:OnBtnClick_Auto(btn)
|
||||
@@ -560,9 +607,9 @@ function PenguinCardFlipCtrl:OnEvent_ShowBaseCard(nIndex)
|
||||
self._mapNode.btnShow[nIndex].interactable = false
|
||||
end
|
||||
end
|
||||
function PenguinCardFlipCtrl:OnEvent_ReplaceBaseCard(nIndex)
|
||||
function PenguinCardFlipCtrl:OnEvent_ReplaceBaseCard(nIndex, bStone)
|
||||
self._mapNode.PenguinBaseCard[nIndex]:Refresh(self._panel.mapLevel.tbBaseCardId[nIndex], true)
|
||||
self._mapNode.PenguinBaseCard[nIndex]:PlayReplaceAni()
|
||||
self._mapNode.PenguinBaseCard[nIndex]:PlayReplaceAni(bStone)
|
||||
self._mapNode.btnShow[nIndex].interactable = false
|
||||
end
|
||||
function PenguinCardFlipCtrl:OnEvent_ChangeHp(nChange)
|
||||
@@ -584,7 +631,7 @@ end
|
||||
function PenguinCardFlipCtrl:OnEvent_SelectQuest()
|
||||
self:RefreshQuest()
|
||||
end
|
||||
function PenguinCardFlipCtrl:OnEvent_ChangeScore(nBefore, nBeforeStar, nStar)
|
||||
function PenguinCardFlipCtrl:OnEvent_ChangeScore(nBefore)
|
||||
if nBefore < self._panel.mapLevel.nScore and self._panel.mapLevel.nGameState == PenguinCardUtils.GameState.Settlement then
|
||||
WwiseManger:PostEvent("Mode_Card_coin")
|
||||
end
|
||||
|
||||
@@ -14,11 +14,11 @@ local newDayTime = UTILS.GetDayRefreshTimeOffset()
|
||||
local LocalData = require("GameCore.Data.LocalData")
|
||||
PenguinCardPrepareCtrl._mapNodeConfig = {
|
||||
txtAddMax = {
|
||||
nCount = 3,
|
||||
nCount = 4,
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "PenguinCard_AddBtnMax"
|
||||
},
|
||||
imgDiscount = {nCount = 3},
|
||||
imgDiscount = {nCount = 4},
|
||||
btnAddRound = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_AddRound"
|
||||
@@ -52,6 +52,17 @@ PenguinCardPrepareCtrl._mapNodeConfig = {
|
||||
txtAddRollCost = {sComponentName = "TMP_Text"},
|
||||
goAddRollOn = {},
|
||||
goAddRollOff = {},
|
||||
btnAddCheck = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_AddCheckRound"
|
||||
},
|
||||
txtBtnAddCheck = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "PenguinCard_Btn_AddCheckRound"
|
||||
},
|
||||
txtAddCheckCost = {sComponentName = "TMP_Text"},
|
||||
goAddCheckOn = {},
|
||||
goAddCheckOff = {},
|
||||
txtScore = {sComponentName = "TMP_Text"},
|
||||
imgStarOff = {nCount = 3},
|
||||
imgStarOn = {nCount = 3},
|
||||
@@ -114,7 +125,9 @@ PenguinCardPrepareCtrl._mapEventConfig = {
|
||||
PenguinCard_AddRound = "OnEvent_AddRound",
|
||||
PenguinCard_AddSlot = "OnEvent_AddSlot",
|
||||
PenguinCard_AddRoll = "OnEvent_AddRoll",
|
||||
PenguinCard_AddCheckRound = "OnEvent_AddCheckRound",
|
||||
PenguinCard_ChangeScore = "OnEvent_ChangeScore",
|
||||
PenguinCard_ChangeStar = "OnEvent_ChangeStar",
|
||||
PenguinCard_RollPenguinCard = "OnEvent_RollPenguinCard",
|
||||
PenguinCard_SelectPenguinCard = "OnEvent_SelectPenguinCard",
|
||||
PenguinCard_SalePenguinCard = "OnEvent_SalePenguinCard",
|
||||
@@ -126,6 +139,7 @@ function PenguinCardPrepareCtrl:Refresh()
|
||||
self:RefreshAddRound()
|
||||
self:RefreshAddSlot()
|
||||
self:RefreshAddRoll()
|
||||
self:RefreshAddCheckRound()
|
||||
self:RefreshScore()
|
||||
self:RefreshLeftTurn()
|
||||
self:RefreshRoll()
|
||||
@@ -207,6 +221,25 @@ function PenguinCardPrepareCtrl:RefreshAddRollCost()
|
||||
NovaAPI.SetTMPColor(self._mapNode.txtAddRollCost, Black)
|
||||
end
|
||||
end
|
||||
function PenguinCardPrepareCtrl:RefreshAddCheckRound()
|
||||
self._mapNode.btnAddCheck.gameObject:SetActive(false)
|
||||
end
|
||||
function PenguinCardPrepareCtrl:RefreshAddCheckRoundCost()
|
||||
if self._panel.mapLevel.nCheckRoundLimit < 0 or self._panel.mapLevel.nCheckRoundLimit >= self._panel.mapLevel.nMaxCheckRound then
|
||||
return
|
||||
end
|
||||
local nCost = self._panel.mapLevel.tbCheckRoundUpgradeCost[self._panel.mapLevel.nCheckRoundLimit + 1] * self._panel.mapLevel.nUpgradeDiscount
|
||||
nCost = math.ceil(nCost)
|
||||
NovaAPI.SetTMPText(self._mapNode.txtAddCheckCost, self:ThousandsNumber(nCost))
|
||||
if nCost > self._panel.mapLevel.nScore then
|
||||
NovaAPI.SetTMPColor(self._mapNode.txtAddCheckCost, Red_Unable)
|
||||
elseif 1 > self._panel.mapLevel.nUpgradeDiscount then
|
||||
NovaAPI.SetTMPColor(self._mapNode.txtAddCheckCost, Green)
|
||||
self._mapNode.imgDiscount[4]:SetActive(true)
|
||||
else
|
||||
NovaAPI.SetTMPColor(self._mapNode.txtAddCheckCost, Black)
|
||||
end
|
||||
end
|
||||
function PenguinCardPrepareCtrl:RefreshScore()
|
||||
local nScore = math.floor(self._panel.mapLevel.nScore)
|
||||
NovaAPI.SetTMPText(self._mapNode.txtScore, self:ThousandsNumber(nScore))
|
||||
@@ -384,6 +417,9 @@ end
|
||||
function PenguinCardPrepareCtrl:OnBtnClick_AddRound(btn)
|
||||
self._panel.mapLevel:AddRound()
|
||||
end
|
||||
function PenguinCardPrepareCtrl:OnBtnClick_AddCheckRound(btn)
|
||||
self._panel.mapLevel:AddCheckRound()
|
||||
end
|
||||
function PenguinCardPrepareCtrl:OnBtnClick_Roll(btn)
|
||||
self._panel.mapLevel:RollPenguinCard()
|
||||
end
|
||||
@@ -433,6 +469,7 @@ function PenguinCardPrepareCtrl:OnEvent_AddRoll()
|
||||
self:RefreshAddRoll()
|
||||
self:RefreshAddSlot()
|
||||
self:RefreshAddRound()
|
||||
self:RefreshAddCheckRound()
|
||||
self:RefreshRollDesc()
|
||||
self:RefreshRollCost()
|
||||
local ani = self._mapNode.trBtnRoll:Find("AnimRoot"):GetComponent("Animator")
|
||||
@@ -442,16 +479,25 @@ function PenguinCardPrepareCtrl:OnEvent_AddSlot()
|
||||
self:RefreshAddRoll()
|
||||
self:RefreshAddSlot()
|
||||
self:RefreshAddRound()
|
||||
self:RefreshAddCheckRound()
|
||||
end
|
||||
function PenguinCardPrepareCtrl:OnEvent_AddRound()
|
||||
self:RefreshAddRoll()
|
||||
self:RefreshAddSlot()
|
||||
self:RefreshAddRound()
|
||||
self:RefreshAddCheckRound()
|
||||
end
|
||||
function PenguinCardPrepareCtrl:OnEvent_ChangeScore(nBefore, nBeforeStar, nStar)
|
||||
function PenguinCardPrepareCtrl:OnEvent_AddCheckRound()
|
||||
self:RefreshAddRoll()
|
||||
self:RefreshAddSlot()
|
||||
self:RefreshAddRound()
|
||||
self:RefreshAddCheckRound()
|
||||
end
|
||||
function PenguinCardPrepareCtrl:OnEvent_ChangeScore(nBefore)
|
||||
self:RefreshAddRoundCost()
|
||||
self:RefreshAddSlotCost()
|
||||
self:RefreshAddRollCost()
|
||||
self:RefreshAddCheckRoundCost()
|
||||
self:RefreshRollCost()
|
||||
if nBefore < self._panel.mapLevel.nScore and self._panel.mapLevel.nGameState == PenguinCardUtils.GameState.Prepare then
|
||||
WwiseManger:PostEvent("Mode_Card_coin")
|
||||
@@ -467,6 +513,8 @@ function PenguinCardPrepareCtrl:OnEvent_ChangeScore(nBefore, nBeforeStar, nStar)
|
||||
local nScore = math.floor(v)
|
||||
NovaAPI.SetTMPText(self._mapNode.txtScore, self:ThousandsNumber(nScore))
|
||||
end, self._panel.mapLevel.nScore, 0.5):OnComplete(callback)
|
||||
end
|
||||
function PenguinCardPrepareCtrl:OnEvent_ChangeStar(nBeforeStar, nStar)
|
||||
if self._panel.mapLevel.tbStarScore[3] > 0 then
|
||||
local nPos = self:GetStarPos(nStar, self._panel.mapLevel.nScore)
|
||||
self._mapNode.imgStarProgress:DOSizeDelta(Vector2(nPos, 24), 0.5):SetEase(Ease.OutQuad)
|
||||
|
||||
@@ -116,4 +116,18 @@ end
|
||||
function PenguinCardQuest:CheckComplete()
|
||||
return self.nAimCount >= self.nMaxAim
|
||||
end
|
||||
function PenguinCardQuest:Serialize()
|
||||
return {
|
||||
nId = self.nId,
|
||||
nTurnCount = self.nTurnCount,
|
||||
nAimCount = self.nAimCount,
|
||||
nBuffId = self.nBuffId
|
||||
}
|
||||
end
|
||||
function PenguinCardQuest:Deserialize(mapData)
|
||||
self:Init(mapData.nId)
|
||||
self.nTurnCount = mapData.nTurnCount
|
||||
self.nAimCount = mapData.nAimCount
|
||||
self.nBuffId = mapData.nBuffId
|
||||
end
|
||||
return PenguinCardQuest
|
||||
|
||||
@@ -84,6 +84,13 @@ function PenguinCardQuestCtrl:InitData(nActId)
|
||||
self.actData = PlayerData.Activity:GetActivityDataById(self.nActId)
|
||||
self.tbGroup = self.actData:GetQuestGroup()
|
||||
self.nSelectIndex = 1
|
||||
for i, v in ipairs(self.tbGroup) do
|
||||
local bRed = RedDotManager.GetValid(RedDotDefine.Activity_PenguinCard_QuestGroup, {v})
|
||||
if bRed then
|
||||
self.nSelectIndex = i
|
||||
break
|
||||
end
|
||||
end
|
||||
self.nSelecedGroupId = self.tbGroup[self.nSelectIndex]
|
||||
end
|
||||
function PenguinCardQuestCtrl:Refresh()
|
||||
|
||||
@@ -374,7 +374,7 @@ function PenguinCardQuestSelectCtrl:OnEvent_DeleteBuff(nIndex)
|
||||
end, true, true, true)
|
||||
end
|
||||
end
|
||||
function PenguinCardQuestSelectCtrl:OnEvent_ChangeScore(nBefore, nBeforeStar, nStar)
|
||||
function PenguinCardQuestSelectCtrl:OnEvent_ChangeScore(nBefore)
|
||||
if nBefore < self._panel.mapLevel.nScore and self._panel.mapLevel.nGameState == PenguinCardUtils.GameState.Quest then
|
||||
WwiseManger:PostEvent("Mode_Card_coin")
|
||||
end
|
||||
|
||||
@@ -27,11 +27,6 @@ PenguinCardSelectCtrl._mapEventConfig = {
|
||||
PenguinCard_ClickLevel = "OnEvent_Click",
|
||||
PenguinCard_EnterLevel = "OnEvent_Enter"
|
||||
}
|
||||
PenguinCardSelectCtrl._mapRedDotConfig = {
|
||||
[RedDotDefine.Activity_PenguinCard_AllQuest] = {
|
||||
sNodeName = "reddotQuest"
|
||||
}
|
||||
}
|
||||
function PenguinCardSelectCtrl:Refresh()
|
||||
self.goFirstLock = nil
|
||||
self.tbLevel = self.actData:GetLevelList()
|
||||
@@ -82,6 +77,29 @@ function PenguinCardSelectCtrl:RefreshNormal(nIndex, nLevelId)
|
||||
self.goFirstLock = goObj
|
||||
end
|
||||
end
|
||||
function PenguinCardSelectCtrl:RegisterRedDot()
|
||||
self._mapNode.reddotQuest:SetActive(false)
|
||||
local mapActivityData = ConfigTable.GetData("Activity", self.nActId)
|
||||
if mapActivityData == nil then
|
||||
return
|
||||
end
|
||||
local nGroupId = mapActivityData.MidGroupId
|
||||
if 0 < nGroupId then
|
||||
local mapGroupData = PlayerData.Activity:GetActivityGroupDataById(nGroupId)
|
||||
if mapGroupData ~= nil then
|
||||
local actData = mapGroupData:GetActivityDataByIndex(AllEnum.ActivityThemeFuncIndex.Task)
|
||||
if actData ~= nil then
|
||||
RedDotManager.RegisterNode(RedDotDefine.Activity_Group_Task_Group, {
|
||||
nGroupId,
|
||||
actData.ActivityId,
|
||||
mapActivityData.MiniGameRedDot
|
||||
}, self._mapNode.reddotQuest)
|
||||
end
|
||||
end
|
||||
else
|
||||
RedDotManager.RegisterNode(RedDotDefine.Activity_PenguinCard_AllQuest, nil, self._mapNode.reddotQuest)
|
||||
end
|
||||
end
|
||||
function PenguinCardSelectCtrl:Awake()
|
||||
local param = self:GetPanelParam()
|
||||
if type(param) == "table" then
|
||||
@@ -92,6 +110,7 @@ function PenguinCardSelectCtrl:Awake()
|
||||
end
|
||||
function PenguinCardSelectCtrl:OnEnable()
|
||||
self:Refresh()
|
||||
self:RegisterRedDot()
|
||||
end
|
||||
function PenguinCardSelectCtrl:OnDisable()
|
||||
for k, v in pairs(self.tbGridCtrl) do
|
||||
@@ -105,7 +124,22 @@ end
|
||||
function PenguinCardSelectCtrl:OnDestroy()
|
||||
end
|
||||
function PenguinCardSelectCtrl:OnBtnClick_Quest()
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.PenguinCardQuest, self.nActId)
|
||||
local mapActivityData = ConfigTable.GetData("Activity", self.nActId)
|
||||
if mapActivityData == nil then
|
||||
return
|
||||
end
|
||||
local nGroupId = mapActivityData.MidGroupId
|
||||
if 0 < nGroupId then
|
||||
local mapGroupData = PlayerData.Activity:GetActivityGroupDataById(nGroupId)
|
||||
if mapGroupData ~= nil then
|
||||
local actData = mapGroupData:GetActivityDataByIndex(AllEnum.ActivityThemeFuncIndex.Task)
|
||||
if actData ~= nil then
|
||||
EventManager.Hit(EventId.OpenPanel, actData.PanelId, actData.ActivityId, 5)
|
||||
end
|
||||
end
|
||||
else
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.PenguinCardQuest, self.nActId)
|
||||
end
|
||||
end
|
||||
function PenguinCardSelectCtrl:OnEvent_Click(go)
|
||||
self._mapNode.sc:ScrollToClick(go)
|
||||
|
||||
@@ -13,7 +13,8 @@ PenguinCardUtils.SuitName = {
|
||||
[GameEnum.PenguinBaseCardSuit.Red] = "<sprite name=\"icon_PengCard_Fire_small\">",
|
||||
[GameEnum.PenguinBaseCardSuit.Green] = "<sprite name=\"icon_PengCard_Wind_small\">"
|
||||
}
|
||||
function PenguinCardUtils.CheckTriggerAble(nTriggerType, tbTriggerParam, nTriggerProbability, mapTriggerSource)
|
||||
function PenguinCardUtils.CheckTriggerAble(nTriggerType, tbTriggerParam, nTriggerProbability, mapTriggerSource, nEffectType)
|
||||
local randomValue = math.random(0, 100)
|
||||
local bAble = false
|
||||
if nTriggerType == GameEnum.PenguinCardTriggerType.None then
|
||||
bAble = true
|
||||
@@ -46,7 +47,19 @@ function PenguinCardUtils.CheckTriggerAble(nTriggerType, tbTriggerParam, nTrigge
|
||||
end
|
||||
bAble = true
|
||||
elseif nTriggerType == GameEnum.PenguinCardTriggerType.BaseCardId and mapTriggerSource.BaseCard then
|
||||
bAble = mapTriggerSource.BaseCard.nId == tbTriggerParam[1]
|
||||
for _, v in ipairs(tbTriggerParam) do
|
||||
if mapTriggerSource.BaseCard.nId == v then
|
||||
bAble = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if nEffectType == GameEnum.PenguinCardEffectType.ReplaceBaseCard then
|
||||
if mapTriggerSource.BaseCard.bReplaced == true then
|
||||
return false
|
||||
elseif bAble and nTriggerProbability >= randomValue then
|
||||
mapTriggerSource.BaseCard.bReplaced = true
|
||||
end
|
||||
end
|
||||
elseif nTriggerType == GameEnum.PenguinCardTriggerType.RepeatHandRank and mapTriggerSource.HandRankCount and mapTriggerSource.HandRank then
|
||||
bAble = false
|
||||
for id, count in pairs(mapTriggerSource.HandRankCount) do
|
||||
@@ -64,7 +77,6 @@ function PenguinCardUtils.CheckTriggerAble(nTriggerType, tbTriggerParam, nTrigge
|
||||
end
|
||||
end
|
||||
end
|
||||
local randomValue = math.random(0, 100)
|
||||
return bAble and nTriggerProbability >= randomValue
|
||||
end
|
||||
function PenguinCardUtils.CheckGrowthLayer(nGrowthTriggerType, tbGrowthTriggerParam, mapTriggerSource)
|
||||
@@ -83,8 +95,13 @@ function PenguinCardUtils.CheckGrowthLayer(nGrowthTriggerType, tbGrowthTriggerPa
|
||||
elseif nGrowthTriggerType == GameEnum.PenguinCardGrowthTriggerType.SuitCountInCard and mapTriggerSource.BaseCard then
|
||||
local nAimSuit = tbGrowthTriggerParam[1]
|
||||
local mapCfg = ConfigTable.GetData("PenguinBaseCard", mapTriggerSource.BaseCard.nId)
|
||||
if mapCfg and nAimSuit == mapCfg.Suit1 then
|
||||
nAdd = mapCfg.SuitCount1
|
||||
if mapCfg then
|
||||
for i = 1, 3 do
|
||||
if 0 < mapCfg["Suit" .. i] and 0 < mapCfg["SuitCount" .. i] and nAimSuit == mapCfg["Suit" .. i] then
|
||||
nAdd = mapCfg["SuitCount" .. i]
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
return nAdd
|
||||
@@ -141,7 +158,7 @@ function PenguinCardUtils.SetEffectDesc(mapCfg, nGrowthLayer)
|
||||
end
|
||||
end
|
||||
local ParseEffectParam = function(tbParam, nIndex)
|
||||
if nEffectType == GameEnum.PenguinCardEffectType.AddBaseCardWeight then
|
||||
if nEffectType == GameEnum.PenguinCardEffectType.AddBaseCardWeight or nEffectType == GameEnum.PenguinCardEffectType.ReplaceBaseCard then
|
||||
local tbId = {}
|
||||
for k, _ in pairs(tbParam) do
|
||||
local nId = tonumber(k)
|
||||
@@ -160,15 +177,6 @@ function PenguinCardUtils.SetEffectDesc(mapCfg, nGrowthLayer)
|
||||
if mapBase then
|
||||
return mapBase.Title
|
||||
end
|
||||
elseif nEffectType == GameEnum.PenguinCardEffectType.ReplaceBaseCard then
|
||||
local nBaseCardId = tbParam[nIndex]
|
||||
if nBaseCardId == nil then
|
||||
return sError
|
||||
end
|
||||
local mapBase = ConfigTable.GetData("PenguinBaseCard", nBaseCardId)
|
||||
if mapBase then
|
||||
return mapBase.Title
|
||||
end
|
||||
elseif nEffectType == GameEnum.PenguinCardEffectType.RollSpecificCard then
|
||||
local nCardId = tbParam[nIndex]
|
||||
if nCardId == nil then
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user