86 lines
3.0 KiB
Lua
86 lines
3.0 KiB
Lua
|
|
local uiCtrl = require_ex('UI/Panels/Base/UICtrl')
|
|
local PANEL_ID = PanelId.MapMarkDetailSettlementDefenseTerminal
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MapMarkDetailSettlementDefenseTerminalCtrl = HL.Class('MapMarkDetailSettlementDefenseTerminalCtrl', uiCtrl.UICtrl)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MapMarkDetailSettlementDefenseTerminalCtrl.s_messages = HL.StaticField(HL.Table) << {
|
|
|
|
}
|
|
|
|
|
|
MapMarkDetailSettlementDefenseTerminalCtrl.m_settlementId = HL.Field(HL.String) << ""
|
|
|
|
|
|
MapMarkDetailSettlementDefenseTerminalCtrl.m_markInstId = HL.Field(HL.String) << ""
|
|
|
|
|
|
|
|
|
|
|
|
MapMarkDetailSettlementDefenseTerminalCtrl.OnCreate = HL.Override(HL.Any) << function(self, arg)
|
|
self.m_markInstId = arg.markInstId
|
|
|
|
local commonArgs = {}
|
|
commonArgs.bigBtnActive = true
|
|
commonArgs.markInstId = self.m_markInstId
|
|
self.view.detailCommon:InitMapMarkDetailCommon(commonArgs)
|
|
|
|
local getRuntimeDataSuccess, markRuntimeData = GameInstance.player.mapManager:GetMarkInstRuntimeData(self.m_markInstId)
|
|
|
|
if getRuntimeDataSuccess == false then
|
|
logger.error("地图详情页获取实例数据失败" .. self.m_instId)
|
|
return
|
|
end
|
|
|
|
self.m_settlementId = markRuntimeData.detail.settlementId
|
|
local defenseGroupData = GameInstance.player.towerDefenseSystem:GetLastUnlockedDefenseGroup(self.m_settlementId)
|
|
if defenseGroupData == nil then
|
|
self.view.riskLevelCell.gameObject:SetActive(false)
|
|
self.view.cautionNode.gameObject:SetActive(false)
|
|
return
|
|
end
|
|
local _, groupTableData = Tables.towerDefenseGroupTable:TryGetValue(defenseGroupData.groupId)
|
|
local levelCellView = self.view.riskLevelCell
|
|
if groupTableData then
|
|
levelCellView.nameText.text = groupTableData.name
|
|
end
|
|
levelCellView.lockStateController:SetState("Normal")
|
|
levelCellView.selectionStateController:SetState("UnSelected")
|
|
local isNormalCompleted = defenseGroupData.normalLevel and defenseGroupData.normalLevel.isCompleted
|
|
levelCellView.manualDefenseCell:SetState(isNormalCompleted and "Completed" or "UnSelected")
|
|
local isAutoCompleted = defenseGroupData.autoLevel and defenseGroupData.autoLevel.isCompleted
|
|
levelCellView.defensePlanCell:SetState(isAutoCompleted and "Completed" or "UnSelected")
|
|
|
|
self:_RefreshDefenseState()
|
|
|
|
local settlementData = GameInstance.player.settlementSystem:GetUnlockSettlementData(self.m_settlementId)
|
|
local isDuringBuff = settlementData and DateTimeUtils.GetCurrentTimestampBySeconds() < settlementData.tdGainEffectExpirationTs
|
|
if isDuringBuff then
|
|
self.view.cautionNode.countDown:InitCountDownText(settlementData.tdGainEffectExpirationTs, function()
|
|
self:_RefreshDefenseState()
|
|
end, UIUtils.getLeftTimeToSecond)
|
|
end
|
|
end
|
|
|
|
|
|
|
|
MapMarkDetailSettlementDefenseTerminalCtrl._RefreshDefenseState = HL.Method() << function(self)
|
|
local defenseState = GameInstance.player.towerDefenseSystem:GetSettlementDefenseState(self.m_settlementId)
|
|
self.view.cautionNode.stateController:SetState(defenseState:ToString())
|
|
end
|
|
|
|
HL.Commit(MapMarkDetailSettlementDefenseTerminalCtrl)
|