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,252 @@
|
||||
local SoldierBattleEventCtrl = class("SoldierBattleEventCtrl", BaseCtrl)
|
||||
local SELECT_CARD_TYPE_STRATEGY = 2
|
||||
SoldierBattleEventCtrl._mapNodeConfig = {
|
||||
imgBgMain = {},
|
||||
imgBgMain_Fx = {},
|
||||
blur = {},
|
||||
mainRoot = {
|
||||
sNodeName = "----SafeAreaRoot----"
|
||||
},
|
||||
txtLabel = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "SoldierBattleEvent_Label"
|
||||
},
|
||||
txtRemainRewardCount = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "Soldier_BattleEvent_RemainRewardCount"
|
||||
},
|
||||
txtFinalPoint = {sComponentName = "TMP_Text"},
|
||||
txtBtnBack = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "SoldierBattleEvent_Back"
|
||||
},
|
||||
EventItem = {
|
||||
nCount = 3,
|
||||
sCtrlName = "Game.UI.Soldier.BattleEvent.SoldierBattleEventItemCtrl"
|
||||
},
|
||||
StrategyItem = {
|
||||
nCount = 3,
|
||||
sCtrlName = "Game.UI.Soldier.BattleEvent.SoldierAddBuffItemCtrl"
|
||||
},
|
||||
btnPolicy = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Policy"
|
||||
},
|
||||
btnReturn = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Return"
|
||||
},
|
||||
btnGuide = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Guide"
|
||||
},
|
||||
btnGoToDice = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_btnGoToDice"
|
||||
},
|
||||
txtGoToDice = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "SoldierBattleEvent_GoToDice"
|
||||
},
|
||||
imgFinalPoint = {},
|
||||
ImgNum = {},
|
||||
EventContainers = {},
|
||||
StrategyContainers = {}
|
||||
}
|
||||
SoldierBattleEventCtrl._mapEventConfig = {
|
||||
SoldierSelectEventBattle = "OnEvent_SoldierSelectEventBattle",
|
||||
SoldierShowBattleEventPanel = "OnEvent_ShowBattleEventPanel",
|
||||
SoldierDiceCasted = "RefreshDiceCasted",
|
||||
SoldierStrategySelect = "OnEvent_SoldierStrategySelect",
|
||||
SoldierRecommendPanel_Open = "HidePanel",
|
||||
SoldierRecommendPanel_Close = "ShowPanel",
|
||||
SoldierHandbookPanel_Open = "HidePanel",
|
||||
SoldierHandbookPanel_Close = "ShowPanel"
|
||||
}
|
||||
SoldierBattleEventCtrl._mapRedDotConfig = {}
|
||||
function SoldierBattleEventCtrl:Awake()
|
||||
self.tbStrategyCardData = nil
|
||||
self.nDicePoint = nil
|
||||
self.bSkipEvent = false
|
||||
local tbParams = self:GetPanelParam()
|
||||
if tbParams ~= nil and 0 < #tbParams then
|
||||
self.bSkipEvent = tbParams[1] or false
|
||||
end
|
||||
end
|
||||
function SoldierBattleEventCtrl:OnEnable()
|
||||
self._mapNode.imgFinalPoint.gameObject:SetActive(false)
|
||||
self._mapNode.btnGoToDice.gameObject:SetActive(false)
|
||||
if self.bSkipEvent then
|
||||
self.bSkipEvent = false
|
||||
self:OnSoldierEnterCardSelect()
|
||||
return
|
||||
end
|
||||
self:RefreshBattleEventList()
|
||||
self.nDicePoint = PlayerData.SoldierData:GetCurLevelData():GetEventBattleData().nPoint or 0
|
||||
if self.tbStrategyCardData == nil and self.nDicePoint ~= nil and self.nDicePoint > 0 then
|
||||
self:RefreshEventDicePoint()
|
||||
end
|
||||
end
|
||||
function SoldierBattleEventCtrl:OnDisable()
|
||||
self.tbStrategyCardData = nil
|
||||
self.nDicePoint = nil
|
||||
end
|
||||
function SoldierBattleEventCtrl:GetAddBattleEventList()
|
||||
local selectCardData = PlayerData.SoldierData:GetCurLevelData():GetEventBattleData()
|
||||
local tbList = {}
|
||||
local tbIds = selectCardData.tbIds or {}
|
||||
if next(tbIds) ~= nil then
|
||||
table.sort(tbIds, function(a, b)
|
||||
local mapEventA = ConfigTable.GetData("SoldierEventBattlePool", a)
|
||||
local mapEventB = ConfigTable.GetData("SoldierEventBattlePool", b)
|
||||
return mapEventA.LevelName < mapEventB.LevelName
|
||||
end)
|
||||
end
|
||||
for i = 1, 3 do
|
||||
local nCardId = tbIds[i]
|
||||
if nCardId ~= nil then
|
||||
tbList[i] = {id = nCardId, index = i}
|
||||
end
|
||||
end
|
||||
return tbList
|
||||
end
|
||||
function SoldierBattleEventCtrl:RefreshBattleEventList()
|
||||
local tbList = self:GetAddBattleEventList()
|
||||
if tbList == nil or #tbList <= 0 then
|
||||
return
|
||||
end
|
||||
self._mapNode.btnGoToDice.gameObject:SetActive(true)
|
||||
self._mapNode.EventContainers.gameObject:SetActive(true)
|
||||
self._mapNode.StrategyContainers.gameObject:SetActive(false)
|
||||
self._mapNode.btnPolicy.gameObject:SetActive(false)
|
||||
for i = 1, 3 do
|
||||
local item = self._mapNode.EventItem[i]
|
||||
if item ~= nil then
|
||||
item:SetItemData(tbList[i])
|
||||
end
|
||||
end
|
||||
end
|
||||
function SoldierBattleEventCtrl:RefreshStrategyCard()
|
||||
if self.tbStrategyCardData == nil then
|
||||
return
|
||||
end
|
||||
self._mapNode.EventContainers.gameObject:SetActive(false)
|
||||
self._mapNode.StrategyContainers.gameObject:SetActive(true)
|
||||
self._mapNode.btnGoToDice.gameObject:SetActive(false)
|
||||
self._mapNode.imgFinalPoint.gameObject:SetActive(false)
|
||||
self._mapNode.btnPolicy.gameObject:SetActive(false)
|
||||
self._mapNode.ImgNum.gameObject:SetActive(false)
|
||||
NovaAPI.SetTMPText(self._mapNode.txtLabel, ConfigTable.GetUIText("Soldier_Strategy_Title"))
|
||||
for k, v in ipairs(self._mapNode.StrategyItem) do
|
||||
local tbItem = {
|
||||
id = self.tbStrategyCardData[k],
|
||||
index = k
|
||||
}
|
||||
v:SetItemData(tbItem)
|
||||
end
|
||||
end
|
||||
function SoldierBattleEventCtrl:RefreshDiceCasted()
|
||||
self:RefreshBattleEventList()
|
||||
self.nDicePoint = PlayerData.SoldierData:GetCurLevelData():GetEventBattleData().nPoint or 0
|
||||
if self.tbStrategyCardData == nil and self.nDicePoint ~= nil and self.nDicePoint > 0 then
|
||||
self:RefreshEventDicePoint()
|
||||
end
|
||||
end
|
||||
function SoldierBattleEventCtrl:OnItemSelected(nIndex, nCardId)
|
||||
self._nSelectedIndex = nIndex or 0
|
||||
self._nSelectedCardId = nCardId or -1
|
||||
for k, v in ipairs(self._mapNode.StrategyItem) do
|
||||
v:SetSelected(k == self._nSelectedIndex)
|
||||
end
|
||||
self:_MoveConfirmBtnTo(self._nSelectedIndex)
|
||||
end
|
||||
function SoldierBattleEventCtrl:_MoveConfirmBtnTo(nIndex)
|
||||
local btnConfirm = self._mapNode.btnConfirm
|
||||
if btnConfirm == nil or btnConfirm.transform == nil then
|
||||
return
|
||||
end
|
||||
local item = self._mapNode.EventItem and self._mapNode.EventItem[nIndex]
|
||||
if item == nil then
|
||||
if btnConfirm.gameObject ~= nil then
|
||||
btnConfirm.gameObject:SetActive(false)
|
||||
end
|
||||
return
|
||||
end
|
||||
local v3Pos = item:GetConfirmBtnPosition()
|
||||
if v3Pos == nil then
|
||||
return
|
||||
end
|
||||
btnConfirm.transform.position = v3Pos
|
||||
if btnConfirm.gameObject ~= nil then
|
||||
btnConfirm.gameObject:SetActive(true)
|
||||
end
|
||||
end
|
||||
function SoldierBattleEventCtrl:GetSelectedCardId()
|
||||
return self._nSelectedCardId
|
||||
end
|
||||
function SoldierBattleEventCtrl:GetSelectedIndex()
|
||||
return self._nSelectedIndex
|
||||
end
|
||||
function SoldierBattleEventCtrl:HidePanel()
|
||||
self.bPrevMainRootVisible = self._mapNode.mainRoot.gameObject.activeSelf or false
|
||||
self.bPrevBlurVisible = self._mapNode.blur.gameObject.activeSelf or false
|
||||
self.bPrevImgBgMainVisible = self._mapNode.imgBgMain.gameObject.activeSelf or false
|
||||
self.bPrevImgBgMain_FxVisible = self._mapNode.imgBgMain_Fx.gameObject.activeSelf or false
|
||||
self._mapNode.mainRoot.gameObject:SetActive(false)
|
||||
self._mapNode.blur.gameObject:SetActive(false)
|
||||
self._mapNode.imgBgMain.gameObject:SetActive(false)
|
||||
self._mapNode.imgBgMain_Fx.gameObject:SetActive(false)
|
||||
end
|
||||
function SoldierBattleEventCtrl:ShowPanel()
|
||||
self._mapNode.mainRoot.gameObject:SetActive(self.bPrevMainRootVisible)
|
||||
self._mapNode.blur.gameObject:SetActive(self.bPrevBlurVisible)
|
||||
self._mapNode.imgBgMain.gameObject:SetActive(self.bPrevImgBgMainVisible)
|
||||
self._mapNode.imgBgMain_Fx.gameObject:SetActive(self.bPrevImgBgMain_FxVisible)
|
||||
for k, v in ipairs(self._mapNode.StrategyItem) do
|
||||
v:SetSelected(k == self._nSelectedIndex)
|
||||
end
|
||||
end
|
||||
function SoldierBattleEventCtrl:OnBtnClick_btnGoToDice()
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.SoldierResolveadisputePanel)
|
||||
end
|
||||
function SoldierBattleEventCtrl:OnBtnClick_Return()
|
||||
CS.WwiseAudioManager.Instance:PostEvent("mode_900001_chess_ingame_transition")
|
||||
self:HidePanel()
|
||||
end
|
||||
function SoldierBattleEventCtrl:OnBtnClick_Guide()
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.SoldierRecommendPanel, true)
|
||||
end
|
||||
function SoldierBattleEventCtrl:OnBtnClick_Policy()
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.SoldierHandbookPanel, AllEnum.SoldierHandbookType.StrategyCard)
|
||||
end
|
||||
function SoldierBattleEventCtrl:RefreshEventDicePoint()
|
||||
self._mapNode.imgFinalPoint.gameObject:SetActive(true)
|
||||
self._mapNode.btnGoToDice.gameObject:SetActive(false)
|
||||
local sFinalPoint = ConfigTable.GetUIText("SoldierBattleEvent_FinalPoint")
|
||||
NovaAPI.SetTMPText(self._mapNode.txtFinalPoint, sFinalPoint .. self.nDicePoint)
|
||||
for i = 1, 3 do
|
||||
local item = self._mapNode.EventItem[i]
|
||||
if item ~= nil then
|
||||
item:SetDiceCasted(self.nDicePoint)
|
||||
end
|
||||
end
|
||||
end
|
||||
function SoldierBattleEventCtrl:OnSoldierEnterCardSelect()
|
||||
self.tbStrategyCardData = PlayerData.SoldierData:GetCurLevelData():GetSelectCardData()
|
||||
self:RefreshStrategyCard()
|
||||
end
|
||||
function SoldierBattleEventCtrl:OnEvent_SoldierSelectEventBattle()
|
||||
local bInSelectCard = PlayerData.SoldierData:GetCurLevelData():CheckInSelectCard()
|
||||
if not bInSelectCard then
|
||||
EventManager.Hit(EventId.ClosePanel, PanelId.SoldierBattleEventPanel)
|
||||
else
|
||||
self:OnSoldierEnterCardSelect()
|
||||
end
|
||||
end
|
||||
function SoldierBattleEventCtrl:OnEvent_ShowBattleEventPanel()
|
||||
self:ShowPanel()
|
||||
end
|
||||
function SoldierBattleEventCtrl:OnEvent_SoldierStrategySelect(nIndex, nCardId)
|
||||
self:OnItemSelected(nIndex, nCardId)
|
||||
end
|
||||
return SoldierBattleEventCtrl
|
||||
Reference in New Issue
Block a user