Files
Main/Assets/GameAssets/Resources/Lua/Logic/MapLogicEx/SZZQLogic/SZZQMapLogic.lua

135 lines
5.3 KiB
Lua
Raw Normal View History

2025-01-25 04:38:09 +08:00
------------------------------------------------
--作者: 杨全福
--日期: 2019-05-07
--文件: SZZQMapLogic.lua
--模块: SZZQMapLogic
--描述: 圣战之启副本逻辑
------------------------------------------------
local SZZQMapLogic = {
--父逻辑系统
Parent = nil,
--剩余时间
RemainTime = 0.0,
--同步的时间
SyncTime = 0.0,
SyncRemainTime = 0.0,
--副本ID
CurCopyMapDataID = 0,
}
function SZZQMapLogic:OnEnterScene(parent)
self.Parent = parent
--设置开关
GameCenter.MapLogicSwitch.CanRide = false;
GameCenter.MapLogicSwitch.CanFly = false;
GameCenter.MapLogicSwitch.CanRollDoge = true;
GameCenter.MapLogicSwitch.CanMandate = true;
GameCenter.MapLogicSwitch.CanOpenTeam = false;
GameCenter.MapLogicSwitch.ShowNewFunction = false;
GameCenter.MapLogicSwitch.UseAutoStrikeBack = true;
GameCenter.MapLogicSwitch.CanTeleport = false;
GameCenter.MapLogicSwitch.IsCopyMap = true;
GameCenter.MapLogicSwitch.IsPlaneCopyMap = false;
GameCenter.MapLogicSwitch.HoldFighting = false;
GameCenter.MapLogicSwitch.CampIcons = nil;
GameCenter.MapLogicSwitch.ShowServerID = true
GameCenter.MapLogicSwitch.MaxSkillVfxCount = 5
--关掉小地图功能
GameCenter.MainFunctionSystem:SetFunctionVisible(FunctionStartIdCode.AreaMap, false);
--关掉菜单
GameCenter.PushFixEvent(LogicEventDefine.EID_EVENT_CLOSE_MAINMENU);
--关掉进入界面
GameCenter.PushFixEvent(UIEventDefine.UISZZQEnterForm_CLOSE);
--设置特殊的阵营Icon用于展示到头顶
local _compCfg = DataConfig.DataGlobal[1314];
if _compCfg ~= nil then
local _compIconTable = {}
local _compIcons = Utils.SplitStrByTableS(_compCfg.Params);
for i = 1, #_compIcons do
_compIconTable[_compIcons[i][1]] = _compIcons[i][2];
end
GameCenter.MapLogicSwitch:SetCampIcons(_compIconTable);
end
--进入就开始挂机
GameCenter.MandateSystem:Start();
end
function SZZQMapLogic:OnLeaveScene()
--打开小地图功能
GameCenter.MainFunctionSystem:SetFunctionVisible(FunctionStartIdCode.AreaMap, true);
--关掉副本主界面
GameCenter.PushFixEvent(UIEventDefine.UISZZQCopyMainForm_CLOSE);
--阵营icon设置为空
GameCenter.MapLogicSwitch:SetCampIcons(nil);
end
--更新
function SZZQMapLogic:Update(dt)
if self.RemainTime > 0.0 then
self.RemainTime = self.SyncRemainTime - (Time.GetRealtimeSinceStartup() - self.SyncTime)
end
end
--处理协议
function SZZQMapLogic:OnMsgHandle(msg)
if msg.MsgID == GameCenter.Network.GetMsgID("MSG_copyMap.ResCopymapNeedTime") then
--副本时间
self.RemainTime = msg.EndTime;
self.SyncRemainTime = msg.EndTime;
self.SyncTime = Time.GetRealtimeSinceStartup()
self.CurCopyMapDataID = msg.modelId;
elseif msg.MsgID == GameCenter.Network.GetMsgID("MSG_copyMap.ResTeamCampWar") then
--副本信息
GameCenter.PushFixEvent(UIEventDefine.UISZZQCopyMainForm_OPEN, msg);
elseif msg.MsgID == GameCenter.Network.GetMsgID("MSG_copyMap.ResTeamCampWarRank") then
--排名信息
GameCenter.PushFixEvent(UIEventDefine.UISZZQRankForm_OPEN, msg);
elseif msg.MsgID == GameCenter.Network.GetMsgID("MSG_copyMap.ResTeamCampWarEndInfo") then
--屏蔽物品使用
GameCenter.GetNewItemSystem.PauseGetNewItemTips = true
--主角准备退出
GameCenter.MapLogicSwitch:DoPlayerExitPrepare();
--结算协议
GameCenter.PushFixEvent(UIEventDefine.UISZZQResultForm_OPEN, msg);
end
end
function SZZQMapLogic:GetMainUIState()
return {
[MainFormSubPanel.PlayerHead] = true, --主角头像
[MainFormSubPanel.TargetHead] = true, --目标头像
[MainFormSubPanel.TopMenu] = true, --顶部菜单
[MainFormSubPanel.MiniMap] = true, --小地图
[MainFormSubPanel.FlySwordGrave] = true, --境界
[MainFormSubPanel.TaskAndTeam] = false, --任务和组队
[MainFormSubPanel.Joystick] = true, --摇杆
[MainFormSubPanel.Exp] = true, --经验
[MainFormSubPanel.MiniChat] = true, --小聊天框
[MainFormSubPanel.Skill] = true, --技能
[MainFormSubPanel.SelectPkMode] = true, --选择PK模式
[MainFormSubPanel.FunctionFly] = true, --新功能开启飞行界面
[MainFormSubPanel.FastPrompt] = true, --快速提醒界面
[MainFormSubPanel.FastBts] = true, --快速操作按钮界面
[MainFormSubPanel.Ping] = true, --ping
[MainFormSubPanel.SkillWarning] = false, --技能释放警示
[MainFormSubPanel.CustomBtn] = true, --自定义按钮
[MainFormSubPanel.SitDown] = false, --打坐
[MainFormSubPanel.RemotePlayerHead] = true, --远程玩家头像
[MainFormSubPanel.ChangeSkill] = true, --变身技能
}
end
function SZZQMapLogic:GetMainLeftUIState()
return {
[MainLeftSubPanel.Task] = false, --任务分页
[MainLeftSubPanel.Team] = false, --队伍分页
[MainLeftSubPanel.Other] = false, --其他分页
}
end
return SZZQMapLogic;