Update - 1.9.0.107
EN: 1.9.0.107 CN: 1.9.0.108 JP: 1.9.0.112 KR: 1.9.0.112
This commit is contained in:
@@ -25,6 +25,8 @@ function PenguinCard:Clear()
|
||||
self.nLevel = nil
|
||||
self.nMaxLevel = nil
|
||||
self.nSoldPrice = nil
|
||||
self.nTendencyGroup = nil
|
||||
self.nTendencyScore = nil
|
||||
self.nTriggerPhase = nil
|
||||
self.nTriggerType = nil
|
||||
self.tbTriggerParam = nil
|
||||
@@ -41,6 +43,7 @@ function PenguinCard:Clear()
|
||||
self.tbGrowthEffectParam = nil
|
||||
self.nTriggerCount = nil
|
||||
self.nGrowthLayer = nil
|
||||
self.bHighLight = nil
|
||||
end
|
||||
function PenguinCard:Init(nId, nGrowthLayer)
|
||||
self.nId = nId
|
||||
@@ -59,6 +62,8 @@ function PenguinCard:ParseConfigData(nId)
|
||||
self.nLevel = mapCfg.Level
|
||||
self.nMaxLevel = mapCfg.MaxLevel
|
||||
self.nSoldPrice = mapCfg.SoldPrice
|
||||
self.nTendencyGroup = mapCfg.TendencyGroup
|
||||
self.nTendencyScore = mapCfg.TendencyScore
|
||||
self.nTriggerPhase = mapCfg.TriggerPhase
|
||||
self.nTriggerType = mapCfg.TriggerType
|
||||
self.tbTriggerParam = decodeJson(mapCfg.TriggerParam)
|
||||
@@ -77,6 +82,9 @@ end
|
||||
function PenguinCard:SetSlotIndex(nSlotIndex)
|
||||
self.nSlotIndex = nSlotIndex
|
||||
end
|
||||
function PenguinCard:SetHighLight(bHighLight)
|
||||
self.bHighLight = bHighLight
|
||||
end
|
||||
function PenguinCard:GetDesc()
|
||||
local mapCfg = ConfigTable.GetData("PenguinCard", self.nId)
|
||||
if nil == mapCfg then
|
||||
@@ -84,6 +92,15 @@ function PenguinCard:GetDesc()
|
||||
end
|
||||
return PenguinCardUtils.SetEffectDesc(mapCfg, self.nGrowthLayer)
|
||||
end
|
||||
function PenguinCard:GetActiveState()
|
||||
if self.nGrowthType == GameEnum.PenguinCardGrowthType.FullGame and self.tbGrowthEffectParam[1] < 0 then
|
||||
local nEffectValue = self.tbEffectParam[1] + self.nGrowthLayer * self.tbGrowthEffectParam[1]
|
||||
if nEffectValue <= 0 then
|
||||
return false
|
||||
end
|
||||
end
|
||||
return true
|
||||
end
|
||||
function PenguinCard:ResetAllTrigger()
|
||||
self:ResetGameTrigger()
|
||||
self:ResetRoundTrigger()
|
||||
|
||||
@@ -116,7 +116,7 @@ function PenguinCardBuff:Trigger(nTriggerPhase, mapTriggerSource, callback)
|
||||
return false
|
||||
end
|
||||
local mapEffectValue
|
||||
if self.nEffectType == GameEnum.PenguinCardEffectType.IncreaseBasicChips or self.nEffectType == GameEnum.PenguinCardEffectType.IncreaseMultiplier or self.nEffectType == GameEnum.PenguinCardEffectType.MultiMultiplier or self.nEffectType == GameEnum.PenguinCardEffectType.UpgradeDiscount or self.nEffectType == GameEnum.PenguinCardEffectType.AddRound or self.nEffectType == GameEnum.PenguinCardEffectType.UpgradeRebate then
|
||||
if self.nEffectType == GameEnum.PenguinCardEffectType.IncreaseBasicChips or self.nEffectType == GameEnum.PenguinCardEffectType.IncreaseMultiplier or self.nEffectType == GameEnum.PenguinCardEffectType.MultiMultiplier or self.nEffectType == GameEnum.PenguinCardEffectType.UpgradeDiscount or self.nEffectType == GameEnum.PenguinCardEffectType.AddRound or self.nEffectType == GameEnum.PenguinCardEffectType.AddCardRollCount or self.nEffectType == GameEnum.PenguinCardEffectType.UpgradeRebate then
|
||||
if self.bOnly == true then
|
||||
mapEffectValue = self.tbEffectParam[1]
|
||||
else
|
||||
@@ -126,7 +126,7 @@ function PenguinCardBuff:Trigger(nTriggerPhase, mapTriggerSource, callback)
|
||||
mapEffectValue = self.tbEffectParam
|
||||
end
|
||||
if type(mapEffectValue) == "number" and mapEffectValue == 0 then
|
||||
return
|
||||
return false
|
||||
end
|
||||
if self.nTriggerLimit ~= GameEnum.PenguinCardTriggerLimit.None then
|
||||
self.nTriggerCount = self.nTriggerCount + 1
|
||||
|
||||
@@ -46,7 +46,7 @@ PenguinCardConfirmCtrl._mapNodeConfig = {
|
||||
againSelect = {},
|
||||
texAgainTip = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "PenguinCard_SkipTips"
|
||||
sLanguageId = "MessageBox_TodayWarning"
|
||||
},
|
||||
goAgain = {}
|
||||
}
|
||||
|
||||
@@ -458,7 +458,7 @@ function PenguinCardFlipCtrl:PlayFireAni()
|
||||
end
|
||||
function PenguinCardFlipCtrl:Awake()
|
||||
self.animator = self.gameObject:GetComponent("Animator")
|
||||
self.nFireScore = ConfigTable.GetConfigNumber("PenguinCardFeverScore")
|
||||
self.nFireScore = ConfigTable.GetConfigNumber("PenguinCardFeverScore") or 0
|
||||
end
|
||||
function PenguinCardFlipCtrl:OnEnable()
|
||||
end
|
||||
|
||||
@@ -89,7 +89,7 @@ function PenguinCardInfoCtrl:Refresh()
|
||||
local mapUpgradeCard = self._panel.mapLevel.tbPenguinCard[nAimIndex]
|
||||
local nAfter = mapUpgradeCard.nLevel + mapSelectCard.nLevel
|
||||
nAfter = nAfter > mapUpgradeCard.nMaxLevel and mapUpgradeCard.nMaxLevel or nAfter
|
||||
NovaAPI.SetTMPText(self._mapNode.txtLevel, orderedFormat(ConfigTable.GetUIText("PenguinCard_CardLevel"), nAfter))
|
||||
NovaAPI.SetTMPText(self._mapNode.txtLevel, orderedFormat(ConfigTable.GetUIText(nAfter == mapUpgradeCard.nMaxLevel and "PenguinCard_CardLevelMax" or "PenguinCard_CardLevel"), nAfter))
|
||||
NovaAPI.SetTMPColor(self._mapNode.txtLevel, nAfter == mapUpgradeCard.nMaxLevel and MaxLevel or NotMaxLevel)
|
||||
local nId = mapUpgradeCard:GetIdByLevel(mapUpgradeCard.nGroupId, nAfter)
|
||||
local mapCfg = ConfigTable.GetData("PenguinCard", nId)
|
||||
@@ -105,13 +105,13 @@ function PenguinCardInfoCtrl:Refresh()
|
||||
NovaAPI.SetTMPText(self._mapNode.txtBtnSelect, ConfigTable.GetUIText("PenguinCard_Btn_Upgrade"))
|
||||
else
|
||||
self._mapNode.imgUp:SetActive(false)
|
||||
NovaAPI.SetTMPText(self._mapNode.txtLevel, orderedFormat(ConfigTable.GetUIText("PenguinCard_CardLevel"), self.mapCard.nLevel))
|
||||
NovaAPI.SetTMPText(self._mapNode.txtLevel, orderedFormat(ConfigTable.GetUIText(self.mapCard.nLevel == self.mapCard.nMaxLevel and "PenguinCard_CardLevelMax" or "PenguinCard_CardLevel"), self.mapCard.nLevel))
|
||||
NovaAPI.SetTMPColor(self._mapNode.txtLevel, self.mapCard.nLevel == self.mapCard.nMaxLevel and MaxLevel or NotMaxLevel)
|
||||
NovaAPI.SetTMPText(self._mapNode.txtDesc, self.mapCard:GetDesc())
|
||||
NovaAPI.SetTMPText(self._mapNode.txtBtnSelect, ConfigTable.GetUIText("PenguinCard_Btn_Select"))
|
||||
end
|
||||
else
|
||||
NovaAPI.SetTMPText(self._mapNode.txtLevel, orderedFormat(ConfigTable.GetUIText("PenguinCard_CardLevel"), self.mapCard.nLevel))
|
||||
NovaAPI.SetTMPText(self._mapNode.txtLevel, orderedFormat(ConfigTable.GetUIText(self.mapCard.nLevel == self.mapCard.nMaxLevel and "PenguinCard_CardLevelMax" or "PenguinCard_CardLevel"), self.mapCard.nLevel))
|
||||
NovaAPI.SetTMPColor(self._mapNode.txtLevel, self.mapCard.nLevel == self.mapCard.nMaxLevel and MaxLevel or NotMaxLevel)
|
||||
NovaAPI.SetTMPText(self._mapNode.txtDesc, self.mapCard:GetDesc())
|
||||
end
|
||||
@@ -182,6 +182,9 @@ function PenguinCardInfoCtrl:OnBtnClick_Right()
|
||||
else
|
||||
nIndex = 1
|
||||
end
|
||||
if self._panel.mapLevel.tbPenguinCard[self.tbHasIndex[nIndex]] == 0 then
|
||||
return
|
||||
end
|
||||
self.mapCard = self._panel.mapLevel.tbPenguinCard[self.tbHasIndex[nIndex]]
|
||||
self:Refresh()
|
||||
end
|
||||
@@ -220,6 +223,9 @@ function PenguinCardInfoCtrl:OnBtnClick_Left()
|
||||
else
|
||||
nIndex = nMax
|
||||
end
|
||||
if self._panel.mapLevel.tbPenguinCard[self.tbHasIndex[nIndex]] == 0 then
|
||||
return
|
||||
end
|
||||
self.mapCard = self._panel.mapLevel.tbPenguinCard[self.tbHasIndex[nIndex]]
|
||||
self:Refresh()
|
||||
end
|
||||
|
||||
@@ -2,11 +2,14 @@ local PenguinCardItemCtrl = class("PenguinCardItemCtrl", BaseCtrl)
|
||||
local WwiseManger = CS.WwiseAudioManager.Instance
|
||||
local _, NotMaxLevel = ColorUtility.TryParseHtmlString("#FFF7EA")
|
||||
local _, MaxLevel = ColorUtility.TryParseHtmlString("#ffe075")
|
||||
local _, NotMaxLevel_Gray = ColorUtility.TryParseHtmlString("#D1C8D0")
|
||||
local _, MaxLevel_Gray = ColorUtility.TryParseHtmlString("#a78f70")
|
||||
PenguinCardItemCtrl._mapNodeConfig = {
|
||||
AnimRoot = {sComponentName = "Animator"},
|
||||
imgBg = {},
|
||||
imgIcon = {sComponentName = "Image"},
|
||||
txtLevel = {sComponentName = "TMP_Text"},
|
||||
txtDisableLevel = {sComponentName = "TMP_Text"},
|
||||
txtName = {sComponentName = "TMP_Text"},
|
||||
imgUp = {},
|
||||
txtTrigger = {nCount = 2, sComponentName = "TMP_Text"},
|
||||
@@ -16,6 +19,8 @@ PenguinCardItemCtrl._mapNodeConfig = {
|
||||
sComponentName = "Animator"
|
||||
},
|
||||
goTrigger = {},
|
||||
goDisable = {},
|
||||
imgHighLight = {},
|
||||
btnOpenInfo = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_OpenInfo"
|
||||
@@ -23,7 +28,8 @@ PenguinCardItemCtrl._mapNodeConfig = {
|
||||
}
|
||||
PenguinCardItemCtrl._mapEventConfig = {
|
||||
PenguinCardTriggered = "OnEvent_Triggered",
|
||||
PenguinCardWaitPlay = "OnEvent_WaitPlay"
|
||||
PenguinCardWaitPlay = "OnEvent_WaitPlay",
|
||||
PenguinCardGrowth = "OnEvent_Growth"
|
||||
}
|
||||
function PenguinCardItemCtrl:Refresh_Select(mapCard, nSelectIndex, bRoll)
|
||||
self.mapCard = mapCard
|
||||
@@ -33,6 +39,11 @@ function PenguinCardItemCtrl:Refresh_Select(mapCard, nSelectIndex, bRoll)
|
||||
self._mapNode.imgBg:SetActive(bRoll)
|
||||
self._mapNode.imgIcon.gameObject:SetActive(true)
|
||||
self._mapNode.goTrigger:SetActive(false)
|
||||
self._mapNode.goDisable:SetActive(false)
|
||||
self._mapNode.imgHighLight:SetActive(false)
|
||||
if mapCard.bHighLight then
|
||||
self._mapNode.imgHighLight:SetActive(true)
|
||||
end
|
||||
self:SetSprite(self._mapNode.imgIcon, "UI/Play_PenguinCard/SpriteAtlas/Sprite/" .. mapCard.sIcon)
|
||||
NovaAPI.SetTMPText(self._mapNode.txtName, mapCard.sName)
|
||||
local bUpgrade = self._panel.mapLevel:CheckUpgradePenguinCard(mapCard)
|
||||
@@ -43,17 +54,25 @@ function PenguinCardItemCtrl:Refresh_Slot(mapCard)
|
||||
self.mapCard = mapCard
|
||||
self.nEffectCount = 0
|
||||
self.bWaitPlay = false
|
||||
self._mapNode.txtLevel.gameObject:SetActive(true)
|
||||
local bAble = self.mapCard:GetActiveState()
|
||||
self._mapNode.txtLevel.gameObject:SetActive(bAble)
|
||||
self._mapNode.txtName.gameObject:SetActive(false)
|
||||
self._mapNode.imgBg:SetActive(false)
|
||||
self._mapNode.imgUp:SetActive(false)
|
||||
self._mapNode.goTrigger:SetActive(false)
|
||||
self._mapNode.goDisable:SetActive(not bAble)
|
||||
self._mapNode.imgHighLight:SetActive(false)
|
||||
self:SetSprite(self._mapNode.imgIcon, "UI/Play_PenguinCard/SpriteAtlas/Sprite/" .. mapCard.sIcon)
|
||||
NovaAPI.SetTMPText(self._mapNode.txtLevel, orderedFormat(ConfigTable.GetUIText("PenguinCard_CardLevel"), mapCard.nLevel))
|
||||
if mapCard.nLevel == mapCard.nMaxLevel then
|
||||
NovaAPI.SetTMPColor(self._mapNode.txtLevel, MaxLevel)
|
||||
NovaAPI.SetTMPColor(self._mapNode.txtDisableLevel, MaxLevel_Gray)
|
||||
NovaAPI.SetTMPText(self._mapNode.txtLevel, orderedFormat(ConfigTable.GetUIText("PenguinCard_CardLevelMax"), mapCard.nLevel))
|
||||
NovaAPI.SetTMPText(self._mapNode.txtDisableLevel, orderedFormat(ConfigTable.GetUIText("PenguinCard_CardLevelMax"), mapCard.nLevel))
|
||||
else
|
||||
NovaAPI.SetTMPColor(self._mapNode.txtLevel, NotMaxLevel)
|
||||
NovaAPI.SetTMPColor(self._mapNode.txtDisableLevel, MaxLevel_Gray)
|
||||
NovaAPI.SetTMPText(self._mapNode.txtLevel, orderedFormat(ConfigTable.GetUIText("PenguinCard_CardLevel"), mapCard.nLevel))
|
||||
NovaAPI.SetTMPText(self._mapNode.txtDisableLevel, orderedFormat(ConfigTable.GetUIText("PenguinCard_CardLevel"), mapCard.nLevel))
|
||||
end
|
||||
end
|
||||
function PenguinCardItemCtrl:RefreshUpgrade(nGroupId)
|
||||
@@ -64,6 +83,7 @@ end
|
||||
function PenguinCardItemCtrl:PlayFlipAni()
|
||||
self._mapNode.imgBg:SetActive(true)
|
||||
self._mapNode.txtName.gameObject:SetActive(false)
|
||||
self._mapNode.imgHighLight:SetActive(false)
|
||||
self._mapNode.AnimRoot:Play("PengUinCard_Bd_Shopturn", 0, 0)
|
||||
local nAnimTime = NovaAPI.GetAnimClipLength(self._mapNode.AnimRoot, {
|
||||
"PengUinCard_Bd_Shopturn"
|
||||
@@ -188,6 +208,14 @@ function PenguinCardItemCtrl:OnEvent_Triggered(nSlotIndex)
|
||||
end
|
||||
self:PlayTriggerAni()
|
||||
end
|
||||
function PenguinCardItemCtrl:OnEvent_Growth(nSlotIndex)
|
||||
if not (self.mapCard and self.mapCard ~= 0 and self.mapCard.nSlotIndex) or nSlotIndex ~= self.mapCard.nSlotIndex then
|
||||
return
|
||||
end
|
||||
local bAble = self.mapCard:GetActiveState()
|
||||
self._mapNode.goDisable:SetActive(not bAble)
|
||||
self._mapNode.txtLevel.gameObject:SetActive(bAble)
|
||||
end
|
||||
function PenguinCardItemCtrl:OnEvent_WaitPlay()
|
||||
if self.bWaitPlay == true then
|
||||
self.bWaitPlay = false
|
||||
|
||||
@@ -10,6 +10,8 @@ local StarPos1 = 144
|
||||
local StarPos2 = 218
|
||||
local StarPos3 = 277
|
||||
local QuestPos = 172
|
||||
local newDayTime = UTILS.GetDayRefreshTimeOffset()
|
||||
local LocalData = require("GameCore.Data.LocalData")
|
||||
PenguinCardPrepareCtrl._mapNodeConfig = {
|
||||
txtAddMax = {
|
||||
nCount = 3,
|
||||
@@ -62,7 +64,7 @@ PenguinCardPrepareCtrl._mapNodeConfig = {
|
||||
txtLevelDesc = {sComponentName = "TMP_Text"},
|
||||
txtSelectTip = {sComponentName = "TMP_Text"},
|
||||
PenguinCardItem = {
|
||||
nCount = 3,
|
||||
nCount = 4,
|
||||
sCtrlName = "Game.UI.Play_PenguinCard.PenguinCardItemCtrl"
|
||||
},
|
||||
btnRoll = {
|
||||
@@ -297,7 +299,7 @@ function PenguinCardPrepareCtrl:RefreshRoll(bRoll)
|
||||
end
|
||||
function PenguinCardPrepareCtrl:RefreshRollCard(bRoll)
|
||||
local nMax = #self._panel.mapLevel.tbSelectablePenguinCard
|
||||
for i = 1, 3 do
|
||||
for i = 1, 4 do
|
||||
self._mapNode.PenguinCardItem[i].gameObject:SetActive(i <= nMax)
|
||||
if i <= nMax then
|
||||
self._mapNode.PenguinCardItem[i]:Refresh_Select(self._panel.mapLevel.tbSelectablePenguinCard[i], i, bRoll)
|
||||
@@ -360,7 +362,7 @@ function PenguinCardPrepareCtrl:RefreshWin()
|
||||
end
|
||||
function PenguinCardPrepareCtrl:PlayOutAni()
|
||||
self.animator:Play("PengUinCard_Prepare_out", 0, 0)
|
||||
for i = 1, 3 do
|
||||
for i = 1, 4 do
|
||||
if self._mapNode.PenguinCardItem[i].gameObject.activeSelf == true then
|
||||
self._mapNode.PenguinCardItem[i]:PlayHideAni()
|
||||
end
|
||||
@@ -389,11 +391,29 @@ function PenguinCardPrepareCtrl:OnBtnClick_Win(btn)
|
||||
self._panel.mapLevel:CompleteGame()
|
||||
end
|
||||
function PenguinCardPrepareCtrl:OnBtnClick_StartTurn(btn)
|
||||
local bWarn = self._panel.mapLevel.bWarning
|
||||
if not self._panel.mapLevel.bSelectedPenguinCard and bWarn then
|
||||
local TipsTime = LocalData.GetPlayerLocalData("PenguinCardSelectTips")
|
||||
local _tipDay = 0
|
||||
if TipsTime ~= nil then
|
||||
_tipDay = tonumber(TipsTime)
|
||||
end
|
||||
local curTimeStamp = CS.ClientManager.Instance.serverTimeStampWithTimeZone
|
||||
local fixedTimeStamp = curTimeStamp + newDayTime * 3600
|
||||
local nYear = tonumber(os.date("!%Y", fixedTimeStamp))
|
||||
local nMonth = tonumber(os.date("!%m", fixedTimeStamp))
|
||||
local nDay = tonumber(os.date("!%d", fixedTimeStamp))
|
||||
local nowD = nYear * 366 + nMonth * 31 + nDay
|
||||
if not self._panel.mapLevel.bSelectedPenguinCard and nowD ~= _tipDay then
|
||||
local isSelectAgain = false
|
||||
local confirmCallback = function()
|
||||
self._panel.mapLevel:SetWarning(not isSelectAgain)
|
||||
if isSelectAgain then
|
||||
local _curTimeStamp = CS.ClientManager.Instance.serverTimeStampWithTimeZone
|
||||
local _fixedTimeStamp = _curTimeStamp + newDayTime * 3600
|
||||
local _nYear = tonumber(os.date("!%Y", _fixedTimeStamp))
|
||||
local _nMonth = tonumber(os.date("!%m", _fixedTimeStamp))
|
||||
local _nDay = tonumber(os.date("!%d", _fixedTimeStamp))
|
||||
local _nowD = _nYear * 366 + _nMonth * 31 + _nDay
|
||||
LocalData.SetPlayerLocalData("PenguinCardSelectTips", tostring(_nowD))
|
||||
end
|
||||
self._panel.mapLevel:SwitchGameState()
|
||||
end
|
||||
local againCallback = function(isSelect)
|
||||
@@ -492,7 +512,7 @@ function PenguinCardPrepareCtrl:OnEvent_SelectPenguinCard()
|
||||
self:RefreshRollDesc()
|
||||
end
|
||||
function PenguinCardPrepareCtrl:OnEvent_SalePenguinCard(_, nGroupId)
|
||||
for i = 1, 3 do
|
||||
for i = 1, 4 do
|
||||
if self._mapNode.PenguinCardItem[i].gameObject.activeSelf == true then
|
||||
self._mapNode.PenguinCardItem[i]:RefreshUpgrade(nGroupId)
|
||||
end
|
||||
|
||||
@@ -58,13 +58,17 @@ function PenguinCardQuestCellCtrl:Refresh(nActId, mapQuest)
|
||||
return
|
||||
end
|
||||
NovaAPI.SetTMPText(self._mapNode.TMPTitle, mapCfg.Desc)
|
||||
self._mapNode.imgBarFill.sizeDelta = Vector2(mapQuest.nCur / mapQuest.nMax * 508, 27)
|
||||
if mapQuest.nMax > 0 then
|
||||
self._mapNode.imgBarFill.sizeDelta = Vector2(mapQuest.nCur / mapQuest.nMax * 508, 27)
|
||||
else
|
||||
self._mapNode.imgBarFill.sizeDelta = Vector2(508, 27)
|
||||
end
|
||||
NovaAPI.SetTMPText(self._mapNode.txt_process, mapQuest.nCur .. "/" .. mapQuest.nMax)
|
||||
self._mapNode.imgComplete:SetActive(self.mapQuest.nStatus == AllEnum.ActQuestStatus.Received)
|
||||
self._mapNode.imgCompleteMask:SetActive(self.mapQuest.nStatus == AllEnum.ActQuestStatus.Received)
|
||||
self._mapNode.go_UnComplete:SetActive(self.mapQuest.nStatus == AllEnum.ActQuestStatus.UnComplete)
|
||||
self._mapNode.btnReceive.gameObject:SetActive(self.mapQuest.nStatus == AllEnum.ActQuestStatus.Complete)
|
||||
if mapCfg.Item1 > 0 then
|
||||
if 0 < mapCfg.Item1 then
|
||||
self._mapNode.btnReward.gameObject:SetActive(true)
|
||||
self._mapNode.rtReward:SetItem(mapCfg.Item1, nil, mapCfg.Qty1, nil, self.mapQuest.nStatus == AllEnum.ActQuestStatus.Received)
|
||||
else
|
||||
|
||||
@@ -11,6 +11,11 @@ PenguinCardQuestSelectCtrl._mapNodeConfig = {
|
||||
sNodeName = "t_fullscreen_blur_blue",
|
||||
sComponentName = "Animator"
|
||||
},
|
||||
btnCloseBg = {
|
||||
sNodeName = "snapshot",
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Back"
|
||||
},
|
||||
Select = {sNodeName = "--Select--"},
|
||||
txtQuestTitle = {
|
||||
sComponentName = "TMP_Text",
|
||||
@@ -74,6 +79,7 @@ function PenguinCardQuestSelectCtrl:Open(bCur)
|
||||
NovaAPI.SetTMPText(self._mapNode.txtScore, self:ThousandsNumber(nScore))
|
||||
self.bCur = bCur
|
||||
self:PlayInAni()
|
||||
NovaAPI.SetButtonInteractable(self._mapNode.btnCloseBg, self.bCur)
|
||||
local wait = function()
|
||||
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
|
||||
self._mapNode.goInfo:SetActive(true)
|
||||
|
||||
@@ -27,7 +27,11 @@ PenguinCardSelectCtrl._mapEventConfig = {
|
||||
PenguinCard_ClickLevel = "OnEvent_Click",
|
||||
PenguinCard_EnterLevel = "OnEvent_Enter"
|
||||
}
|
||||
PenguinCardSelectCtrl._mapRedDotConfig = {}
|
||||
PenguinCardSelectCtrl._mapRedDotConfig = {
|
||||
[RedDotDefine.Activity_PenguinCard_AllQuest] = {
|
||||
sNodeName = "reddotQuest"
|
||||
}
|
||||
}
|
||||
function PenguinCardSelectCtrl:Refresh()
|
||||
self.goFirstLock = nil
|
||||
self.tbLevel = self.actData:GetLevelList()
|
||||
@@ -122,17 +126,7 @@ end
|
||||
function PenguinCardSelectCtrl:OnDestroy()
|
||||
end
|
||||
function PenguinCardSelectCtrl:OnBtnClick_Quest()
|
||||
local mapActivityData = ConfigTable.GetData("Activity", self.nActId)
|
||||
if mapActivityData ~= nil then
|
||||
local nGroupId = mapActivityData.MidGroupId
|
||||
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, PanelId.Task_20102, actData.ActivityId, 5)
|
||||
end
|
||||
end
|
||||
end
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.PenguinCardQuest, self.nActId)
|
||||
end
|
||||
function PenguinCardSelectCtrl:OnEvent_Click(go)
|
||||
self._mapNode.sc:ScrollToClick(go)
|
||||
|
||||
@@ -169,6 +169,15 @@ function PenguinCardUtils.SetEffectDesc(mapCfg, nGrowthLayer)
|
||||
if mapBase then
|
||||
return mapBase.Title
|
||||
end
|
||||
elseif nEffectType == GameEnum.PenguinCardEffectType.RollSpecificCard then
|
||||
local nCardId = tbParam[nIndex]
|
||||
if nCardId == nil then
|
||||
return sError
|
||||
end
|
||||
local mapCard = ConfigTable.GetData("PenguinCard", nCardId)
|
||||
if mapCard then
|
||||
return mapCard.Title
|
||||
end
|
||||
elseif nEffectType == GameEnum.PenguinCardEffectType.IncreaseBasicChips or nEffectType == GameEnum.PenguinCardEffectType.IncreaseMultiplier or nEffectType == GameEnum.PenguinCardEffectType.MultiMultiplier or nEffectType == GameEnum.PenguinCardEffectType.UpgradeDiscount or nEffectType == GameEnum.PenguinCardEffectType.AddRound or nEffectType == GameEnum.PenguinCardEffectType.BlockFatalDamage or nEffectType == GameEnum.PenguinCardEffectType.UpgradeRebate then
|
||||
if tbParam[nIndex] == nil then
|
||||
return sError
|
||||
|
||||
@@ -15,7 +15,6 @@ function PenguinLevel:Init(nFloorId, nLevelId, nActId, tbStarScore)
|
||||
}
|
||||
self.nLevelId = nLevelId
|
||||
self.nActId = nActId
|
||||
self.bWarning = true
|
||||
self:ParseConfigData()
|
||||
self:ParseLocalData()
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.PenguinCard, self)
|
||||
@@ -29,6 +28,7 @@ function PenguinLevel:ParseConfigData()
|
||||
self.tbSlotUpgradeCost = ConfigTable.GetConfigNumberArray("PenguinCardSlotUpgradeCost")
|
||||
self.tbBuyLimitUpgradeCost = ConfigTable.GetConfigNumberArray("PenguinCardBuyLimitUpgradeCost")
|
||||
self.nFireScore = ConfigTable.GetConfigNumber("PenguinCardFeverScore")
|
||||
self.nPenguinCardRollCount = ConfigTable.GetConfigNumber("PenguinCardRollCount")
|
||||
self.mapBuyCost = {}
|
||||
local func_ForEach_Line = function(mapData)
|
||||
self.mapBuyCost[mapData.Count] = {
|
||||
@@ -47,6 +47,17 @@ function PenguinLevel:ParseConfigData()
|
||||
}
|
||||
end
|
||||
ForEachTableLine(DataTable.PenguinCardHandRank, func_ForEach_Rank)
|
||||
self.mapTendencyScore = {}
|
||||
local func_ForEach_Tendency = function(mapData)
|
||||
if not self.mapTendencyScore[mapData.GroupId] then
|
||||
self.mapTendencyScore[mapData.GroupId] = {}
|
||||
end
|
||||
table.insert(self.mapTendencyScore[mapData.GroupId], mapData.Score)
|
||||
end
|
||||
ForEachTableLine(DataTable.PenguinCardTendency, func_ForEach_Tendency)
|
||||
for _, v in pairs(self.mapTendencyScore) do
|
||||
table.sort(v)
|
||||
end
|
||||
end
|
||||
function PenguinLevel:ParseLocalData()
|
||||
local bAuto = LocalData.GetPlayerLocalData("PenguinCardAuto")
|
||||
@@ -444,6 +455,7 @@ function PenguinLevel:RunState_Prepare()
|
||||
self.bSelectedPenguinCard = false
|
||||
self.nUpgradeDiscount = 1
|
||||
self.nTempAddRound = 0
|
||||
self.nTempAddRollCount = 0
|
||||
for _, v in ipairs(self.tbBuff) do
|
||||
v:ResetTurnTrigger()
|
||||
end
|
||||
@@ -618,6 +630,7 @@ function PenguinLevel:RollPenguinCard()
|
||||
table.insert(self.tbSelectablePenguinCard, mapCard)
|
||||
end
|
||||
self.bSelectedPenguinCard = false
|
||||
self:TriggerEffect(GameEnum.PenguinCardTriggerPhase.ManualRoll)
|
||||
EventManager.Hit("PenguinCard_RollPenguinCard")
|
||||
end
|
||||
function PenguinLevel:SelectPenguinCard(nIndex)
|
||||
@@ -714,10 +727,63 @@ function PenguinLevel:GetRollPenguinCardResult()
|
||||
if not mapWeightCfg then
|
||||
return {}
|
||||
end
|
||||
local tbWeight = clone(mapWeightCfg.Weight)
|
||||
self:AddPenguinCardWeightByTendency(tbWeight, mapWeightCfg.CardList)
|
||||
local tbMaxGroupId = self:GetMaxLevelPenguinCard()
|
||||
local tbId = PenguinCardUtils.WeightedRandom(mapWeightCfg.CardList, mapWeightCfg.Weight, 3, tbMaxGroupId)
|
||||
local nRoll = self.nPenguinCardRollCount + self.nTempAddRollCount
|
||||
local tbId = PenguinCardUtils.WeightedRandom(mapWeightCfg.CardList, tbWeight, nRoll, tbMaxGroupId)
|
||||
return tbId
|
||||
end
|
||||
function PenguinLevel:AddPenguinCardWeightByTendency(tbWeight, tbCardList)
|
||||
local tbCardAdd = {}
|
||||
local tbTendencyId = self:GetRollPenguinCardTendency()
|
||||
for _, nTendencyId in pairs(tbTendencyId) do
|
||||
local mapTendencyCfg = ConfigTable.GetData("PenguinCardTendency", nTendencyId)
|
||||
if mapTendencyCfg then
|
||||
local mapAddWeight = {}
|
||||
for i, v in ipairs(mapTendencyCfg.CardGroup) do
|
||||
mapAddWeight[v] = mapTendencyCfg.AddWeight[i]
|
||||
end
|
||||
for i, v in ipairs(tbCardList) do
|
||||
local mapCardCfg = ConfigTable.GetData("PenguinCard", v)
|
||||
if mapCardCfg and mapAddWeight[mapCardCfg.GroupId] then
|
||||
tbWeight[i] = tbWeight[i] + mapAddWeight[mapCardCfg.GroupId]
|
||||
if not tbCardAdd[v] then
|
||||
tbCardAdd[v] = 0
|
||||
end
|
||||
tbCardAdd[v] = tbCardAdd[v] + mapAddWeight[mapCardCfg.GroupId]
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
return tbCardAdd
|
||||
end
|
||||
function PenguinLevel:GetRollPenguinCardTendency()
|
||||
local mapTendency = {}
|
||||
for _, v in ipairs(self.tbPenguinCard) do
|
||||
if v ~= 0 and 0 < v.nTendencyGroup then
|
||||
if not mapTendency[v.nTendencyGroup] then
|
||||
mapTendency[v.nTendencyGroup] = 0
|
||||
end
|
||||
mapTendency[v.nTendencyGroup] = mapTendency[v.nTendencyGroup] + v.nTendencyScore
|
||||
end
|
||||
end
|
||||
local tbTendencyId = {}
|
||||
for nGroup, nScore in pairs(mapTendency) do
|
||||
local tbScore = self.mapTendencyScore[nGroup]
|
||||
local nLevel = 0
|
||||
for k, v in ipairs(tbScore) do
|
||||
if v <= nScore then
|
||||
nLevel = k
|
||||
end
|
||||
end
|
||||
if 0 < nLevel then
|
||||
local nTendencyId = nGroup * 100 + nLevel
|
||||
table.insert(tbTendencyId, nTendencyId)
|
||||
end
|
||||
end
|
||||
return tbTendencyId
|
||||
end
|
||||
function PenguinLevel:GetMaxLevelPenguinCard()
|
||||
local tbGroupId = {}
|
||||
for _, v in ipairs(self.tbPenguinCard) do
|
||||
@@ -727,6 +793,44 @@ function PenguinLevel:GetMaxLevelPenguinCard()
|
||||
end
|
||||
return tbGroupId
|
||||
end
|
||||
function PenguinLevel:ChangeSpecificCard(tbAimId)
|
||||
if next(self.tbSelectablePenguinCard) == nil then
|
||||
return
|
||||
end
|
||||
local tbMaxGroupId = self:GetMaxLevelPenguinCard()
|
||||
for i = #tbAimId, 1, -1 do
|
||||
local mapCardCfg = ConfigTable.GetData("PenguinCard", tbAimId[i])
|
||||
if mapCardCfg and table.indexof(tbMaxGroupId, mapCardCfg.GroupId) > 0 then
|
||||
table.remove(tbAimId, i)
|
||||
end
|
||||
end
|
||||
if next(tbAimId) == nil then
|
||||
return
|
||||
end
|
||||
local nHasIndex = 0
|
||||
for i, v in ipairs(self.tbSelectablePenguinCard) do
|
||||
if 0 < table.indexof(tbAimId, v.nId) then
|
||||
nHasIndex = i
|
||||
v:SetHighLight(true)
|
||||
break
|
||||
end
|
||||
end
|
||||
if nHasIndex == 0 then
|
||||
local nAimId = tbAimId[math.random(#tbAimId)]
|
||||
local tbAimIndex = {}
|
||||
for i, v in ipairs(self.tbSelectablePenguinCard) do
|
||||
if not v.bHighLight then
|
||||
table.insert(tbAimIndex, i)
|
||||
end
|
||||
end
|
||||
if next(tbAimIndex) == nil then
|
||||
return
|
||||
end
|
||||
local nAimIndex = tbAimIndex[math.random(#tbAimIndex)]
|
||||
self.tbSelectablePenguinCard[nAimIndex]:Init(nAimId)
|
||||
self.tbSelectablePenguinCard[nAimIndex]:SetHighLight(true)
|
||||
end
|
||||
end
|
||||
function PenguinLevel:RecyclePenguinCard(mapCard)
|
||||
mapCard:Clear()
|
||||
table.insert(self.tbPenguinCardPool, mapCard)
|
||||
@@ -1268,9 +1372,6 @@ function PenguinLevel:GetStar()
|
||||
end
|
||||
return nStar
|
||||
end
|
||||
function PenguinLevel:SetWarning(bAble)
|
||||
self.bWarning = bAble
|
||||
end
|
||||
function PenguinLevel:GetOwnPenguinCardCount()
|
||||
local nCount = 0
|
||||
for i = 1, 6 do
|
||||
@@ -1295,11 +1396,15 @@ function PenguinLevel:ExecuteEffect(nEffectType, mapEffectValue, mapTriggerSourc
|
||||
self.nUpgradeDiscount = mapEffectValue / 100
|
||||
elseif nEffectType == GameEnum.PenguinCardEffectType.AddRound then
|
||||
self.nTempAddRound = self.nTempAddRound + mapEffectValue
|
||||
elseif nEffectType == GameEnum.PenguinCardEffectType.AddCardRollCount then
|
||||
self.nTempAddRollCount = self.nTempAddRollCount + mapEffectValue
|
||||
elseif nEffectType == GameEnum.PenguinCardEffectType.BlockFatalDamage then
|
||||
self:ChangeHp(-1 * mapTriggerSource.nHpChange)
|
||||
EventManager.Hit("PenguinCard_BlockFatalDamage")
|
||||
elseif nEffectType == GameEnum.PenguinCardEffectType.UpgradeRebate then
|
||||
self:ChangeScore(mapTriggerSource.nUpgradeCost * mapEffectValue / 100)
|
||||
elseif nEffectType == GameEnum.PenguinCardEffectType.RollSpecificCard then
|
||||
self:ChangeSpecificCard(mapEffectValue)
|
||||
end
|
||||
end
|
||||
function PenguinLevel:TriggerEffect(nTriggerPhase, mapTriggerSource)
|
||||
|
||||
Reference in New Issue
Block a user