Files
SL1900 dcc2c4a2a9 Update - 1.11.0.113
EN: 1.11.0.113
CN: 1.11.0.114
JP: 1.11.0.118
KR: 1.11.0.118
2026-06-02 16:00:00 +09:00

141 lines
5.8 KiB
Lua

local PenguinCardQuestItemCtrl = class("PenguinCardQuestItemCtrl", BaseCtrl)
local WwiseManger = CS.WwiseAudioManager.Instance
local PenguinCardUtils = require("Game.UI.Play_PenguinCard.PenguinCardUtils")
local _, NotMaxLevel = ColorUtility.TryParseHtmlString("#FFF7EA")
local _, MaxLevel = ColorUtility.TryParseHtmlString("#ffe075")
PenguinCardQuestItemCtrl._mapNodeConfig = {
AnimRoot = {sComponentName = "Animator"},
MoveRoot = {sComponentName = "Animator"},
imgSelect = {},
imgIcon = {sComponentName = "Image"},
goProgress = {},
txtName = {nCount = 2, sComponentName = "TMP_Text"},
txtProgress = {nCount = 2, sComponentName = "TMP_Text"},
txtTurn = {sComponentName = "TMP_Text"},
goSuc = {},
txtSuc = {
sComponentName = "TMP_Text",
sLanguageId = "PenguinCard_Quest_Success"
},
goBuff = {},
txtBuffTitle = {
sComponentName = "TMP_Text",
sLanguageId = "PenguinCard_Quest_BuffTitle"
},
imgBuff = {sComponentName = "Image"},
txtBuffDesc = {sComponentName = "TMP_Text"},
goFail = {},
txtFail = {
sComponentName = "TMP_Text",
sLanguageId = "PenguinCard_Quest_Fail"
},
txtProgressFail = {nCount = 2, sComponentName = "TMP_Text"},
txtHp = {sComponentName = "TMP_Text"}
}
PenguinCardQuestItemCtrl._mapEventConfig = {}
function PenguinCardQuestItemCtrl:Refresh(mapQuest)
self.mapQuest = mapQuest
self:RefreshCommon()
self._mapNode.goProgress:SetActive(true)
self._mapNode.goSuc:SetActive(false)
self._mapNode.goBuff:SetActive(true)
self._mapNode.goFail:SetActive(false)
NovaAPI.SetTMPText(self._mapNode.txtName[1], mapQuest.sDesc)
if mapQuest.nType == GameEnum.PenguinCardQuestType.Score then
self._mapNode.txtProgress[1].gameObject:SetActive(true)
self._mapNode.txtProgress[2].gameObject:SetActive(false)
local nAimCount = math.floor(mapQuest.nAimCount)
local sAim = "<color=#b7d65d>" .. self:ThousandsNumber(nAimCount) .. "</color>"
NovaAPI.SetTMPText(self._mapNode.txtProgress[1], sAim .. "/" .. self:ThousandsNumber(math.floor(mapQuest.nMaxAim)))
else
self._mapNode.txtProgress[1].gameObject:SetActive(false)
self._mapNode.txtProgress[2].gameObject:SetActive(true)
local nAimCount = math.floor(mapQuest.nAimCount)
local sAim = "<color=#b7d65d>" .. self:ThousandsNumber(nAimCount) .. "</color>"
NovaAPI.SetTMPText(self._mapNode.txtProgress[2], sAim .. "/" .. self:ThousandsNumber(math.floor(mapQuest.nMaxAim)))
end
local nLeftTurn = mapQuest.nTurnLimit - mapQuest.nTurnCount
NovaAPI.SetTMPText(self._mapNode.txtTurn, orderedFormat(ConfigTable.GetUIText("PenguinCard_Quest_LeftTurn"), nLeftTurn))
local mapCfg = ConfigTable.GetData("PenguinCardBuff", mapQuest.nBuffId)
if mapCfg then
self:SetSprite(self._mapNode.imgBuff, "UI/Play_PenguinCard/SpriteAtlas/Sprite/" .. mapCfg.Icon)
NovaAPI.SetTMPText(self._mapNode.txtBuffDesc, PenguinCardUtils.SetEffectDesc(mapCfg))
end
end
function PenguinCardQuestItemCtrl:SetSelect(bSelect)
self._mapNode.imgSelect:SetActive(bSelect)
end
function PenguinCardQuestItemCtrl:RefreshCommon()
self._mapNode.imgSelect:SetActive(false)
end
function PenguinCardQuestItemCtrl:RefreshSuc(mapQuest)
self.mapQuest = mapQuest
self:RefreshCommon()
self._mapNode.goProgress:SetActive(false)
self._mapNode.goSuc:SetActive(true)
self._mapNode.goBuff:SetActive(true)
self._mapNode.goFail:SetActive(false)
local mapCfg = ConfigTable.GetData("PenguinCardBuff", mapQuest.nBuffId)
if mapCfg then
self:SetSprite(self._mapNode.imgBuff, "UI/Play_PenguinCard/SpriteAtlas/Sprite/" .. mapCfg.Icon)
NovaAPI.SetTMPText(self._mapNode.txtBuffDesc, PenguinCardUtils.SetEffectDesc(mapCfg))
end
end
function PenguinCardQuestItemCtrl:RefreshFail(mapQuest)
self.mapQuest = mapQuest
self:RefreshCommon()
self._mapNode.goProgress:SetActive(false)
self._mapNode.goSuc:SetActive(false)
self._mapNode.goBuff:SetActive(false)
self._mapNode.goFail:SetActive(true)
NovaAPI.SetTMPText(self._mapNode.txtName[2], mapQuest.sDesc)
if mapQuest.nType == GameEnum.PenguinCardQuestType.Score then
self._mapNode.txtProgressFail[1].gameObject:SetActive(true)
self._mapNode.txtProgressFail[2].gameObject:SetActive(false)
local nAimCount = math.floor(mapQuest.nAimCount)
local sAim = "<color=#b7d65d>" .. self:ThousandsNumber(nAimCount) .. "</color>"
NovaAPI.SetTMPText(self._mapNode.txtProgressFail[1], sAim .. "/" .. self:ThousandsNumber(math.floor(mapQuest.nMaxAim)))
else
self._mapNode.txtProgressFail[1].gameObject:SetActive(false)
self._mapNode.txtProgressFail[2].gameObject:SetActive(true)
local nAimCount = math.floor(mapQuest.nAimCount)
local sAim = "<color=#b7d65d>" .. self:ThousandsNumber(nAimCount) .. "</color>"
NovaAPI.SetTMPText(self._mapNode.txtProgressFail[2], sAim .. "/" .. self:ThousandsNumber(math.floor(mapQuest.nMaxAim)))
end
end
function PenguinCardQuestItemCtrl:PlaySelectAni(bSelect)
if bSelect then
self._mapNode.MoveRoot:Play("tc_newperk_card_switch_up", 0, 0)
else
self._mapNode.MoveRoot:Play("tc_newperk_card_switch_down", 0, 0)
end
end
function PenguinCardQuestItemCtrl:PlayInAni()
if self.mapQuest.nLevel == 1 then
self._mapNode.AnimRoot:Play("PenguinCardQuest_Blue_in", 0, 0)
elseif self.mapQuest.nLevel == 2 then
self._mapNode.AnimRoot:Play("PenguinCardQuest_Red_in", 0, 0)
end
end
function PenguinCardQuestItemCtrl:PlayOutAni()
if self.mapQuest.nLevel == 1 then
self._mapNode.AnimRoot:Play("PenguinCardQuest_Blue_Out", 0, 0)
elseif self.mapQuest.nLevel == 2 then
self._mapNode.AnimRoot:Play("PenguinCardQuest_Red_Out", 0, 0)
end
end
function PenguinCardQuestItemCtrl:PlaySelectOutAni()
if self.mapQuest.nLevel == 1 then
self._mapNode.AnimRoot:Play("PenguinCardQuest_Blue_Select", 0, 0)
elseif self.mapQuest.nLevel == 2 then
self._mapNode.AnimRoot:Play("PenguinCardQuest_Red_Select", 0, 0)
end
end
function PenguinCardQuestItemCtrl:Awake()
end
function PenguinCardQuestItemCtrl:OnEnable()
end
function PenguinCardQuestItemCtrl:OnDisable()
end
return PenguinCardQuestItemCtrl