Files
Endfield-Data/LuaScripts/UI/Panels/MapMarkDetailCampFire/MapMarkDetailCampFireCtrl.lua
2026-01-31 21:42:01 +07:00

79 lines
2.1 KiB
Lua

local uiCtrl = require_ex('UI/Panels/Base/UICtrl')
local PANEL_ID = PanelId.MapMarkDetailCampFire
MapMarkDetailCampFireCtrl = HL.Class('MapMarkDetailCampFireCtrl', uiCtrl.UICtrl)
MapMarkDetailCampFireCtrl.s_messages = HL.StaticField(HL.Table) << {
}
MapMarkDetailCampFireCtrl.m_teleportValidationId = HL.Field(HL.String) << ""
MapMarkDetailCampFireCtrl.m_logicIdGlobal = HL.Field(HL.Any)
MapMarkDetailCampFireCtrl.m_markInstId = HL.Field(HL.Any)
MapMarkDetailCampFireCtrl.OnCreate = HL.Override(HL.Any) << function(self, args)
self.m_markInstId = args.markInstId
local getRuntimeDataSuccess, markRuntimeData = GameInstance.player.mapManager:GetMarkInstRuntimeData(self.m_markInstId)
if getRuntimeDataSuccess == false then
logger.LogError("地图详情页获取实例数据失败" .. self.m_instId)
return
end
self.m_teleportValidationId = markRuntimeData.detail.teleportValidationId
self.m_logicIdGlobal = markRuntimeData.detail.logicIdGlobal
local forbidMapTp = Utils.isForbiddenMapTeleport()
local isActive = markRuntimeData.isActive
local commonArgs = {}
commonArgs.markInstId = self.m_markInstId
if not isActive then
self.view.inactiveTips.gameObject:SetActive(true)
commonArgs.bigBtnActive = true
else
if not forbidMapTp then
commonArgs.bigBtnActive = true
commonArgs.bigBtnText = Language["ui_mapmarkdetail_button_teleport"]
commonArgs.bigBtnIconName = UIConst.MAP_DETAIL_BTN_ICON_NAME.TELEPORT
commonArgs.bigBtnCallback = function()
self:_Teleport()
end
else
self.view.forbidTeleportTips.gameObject:SetActive(true)
end
end
self.view.detailCommon:InitMapMarkDetailCommon(commonArgs)
end
MapMarkDetailCampFireCtrl._Teleport = HL.Method() << function(self)
Utils.teleportToEntity(self.m_teleportValidationId, function()
GameAction.SaveCheckpointToCampfire(self.m_logicIdGlobal)
GameInstance.gameplayNetwork:RestAtCampfire()
end)
end
HL.Commit(MapMarkDetailCampFireCtrl)