local GuildBoss_Controller = {} local private = {} local EventSystem = require('Event/EventSystem') function GuildBoss_Controller.OnStartup() EventSystem.Regist(EventID.GuildBoss_PlayerDead,private.OnGuildBossPlayerDead) EventSystem.Regist(EventID.TimerWheelStartTimeOver, private.OnGuildBossActivityStart) EventSystem.Regist(EventID.TimerWheelEndTimeOver, private.OnTimerWheelEndTimeOver) if GameAppInfo.IsJapanesePackage() then private.isShowGuildAuction = true else private.isShowGuildAuction = false end end function GuildBoss_Controller.GetIsShowAuction() return private.isShowGuildAuction end function GuildBoss_Controller.SwitchGuildBossTownModel(index) local heroID = BattleDataGetter.GetMyOriginArmyHeroID_ByIndex(index) if heroID <= 0 then logging.error(LTAG.ERROR, "阵容中不存在第", index ,"个英雄,无法切换") return end MDL.Player.ShowChangeHeroRequest(heroID) end function private.OnTimerWheelEndTimeOver(timeId, activityId, timeIndex) if activityId == LuaConst.ActivityType.GuildBoss then EventSystem.Dispatch(EventID.UI_Activity_Refresh_Single_RedPoint, LuaConst.ActivityType.GuildBoss, false) end end function GuildBoss_Controller.SetActivityRedPoint() if MDL.Unlock.IsUnlock(MDL.Unlock.FunctionType.GuildBoss) and CTL.Activities.IsOpeningTime(LuaConst.ActivityType.GuildBoss) then local time = MDL.RedPoint.GetRedPointTimeByType(MDL.RedPoint.RedPointType.GuildBoss) if time and time > 0 and UTL.Time.IsTimestampSameDay(time) then EventSystem.Dispatch(EventID.UI_Activity_Refresh_Single_RedPoint, LuaConst.ActivityType.GuildBoss, false) else EventSystem.Dispatch(EventID.UI_Activity_Refresh_Single_RedPoint, LuaConst.ActivityType.GuildBoss, true) end else EventSystem.Dispatch(EventID.UI_Activity_Refresh_Single_RedPoint, LuaConst.ActivityType.GuildBoss, false) end end function private.OnGuildBossActivityStart(timeId, activityId, timeIndex) if activityId == LuaConst.ActivityType.GuildBoss then private.OpenGuildBossRemind() end end function GuildBoss_Controller.OpenMainView() if MDL.Guild.IsHasGuild() then UIManager.OpenAndPushAll(Const_UI_Lua.UIEnum.UIGuildBossMain) else CTL.Sound.PlayGameSound("UI_invalid") CTL.Tips.AddTipsMsg(Const_IDS.IDS_ERRORCODE_1319_InfoCode_Guild_PlayerNotInGuild) CTL.Guild.OpenGuildMain() end end function private.OpenGuildBossRemind() if MDL.Unlock.IsUnlock(MDL.Unlock.FunctionType.GuildBoss) and CTL.Activities.IsOpeningTime(LuaConst.ActivityType.GuildBoss) then if CTL.Activities.IsInActivitySpecificLevel() then UIManager.OpenView(Const_UI_Lua.UIEnum.UIActivitiesRemind, {LuaConst.ActivityType.GuildBoss}) else CTL.HomeMain.AddTownHomeDelayView(Const_UI_Lua.UIEnum.UIActivitiesRemind,{LuaConst.ActivityType.GuildBoss}) end GuildBoss_Controller.SetActivityRedPoint() end EventSystem.Dispatch(EventID.UI_GuildBoss_TimeRefresh) end function private.OnGuildBossPlayerDead(entity) if entity:IsPlayerSelf() then CTL.HomeMain.CloseOpenView() UIManager.RecoverTopView() UIManager.OpenView(Const_UI_Lua.UIEnum.UIGuildBossCountDown) end end return GuildBoss_Controller