public static void Postfix(LevelGridMenu __instance) { if (__instance.DisplayType_ == LevelSelectMenuAbstract.DisplayType.GameLobby) { return; } LockingSystem.CreateProfile(); if (__instance.isCampaignMode_) { foreach (var campaign in Campaigns.Items) { if (campaign.Value.Enabled) { __instance.CreateAndAddCampaignLevelSet(campaign.Value.GetLevelSet(campaign.Value.GameMode, false), campaign.Value.Name, true, unlock_mode, campaign.Value.GameMode); } } } else if (__instance.modeID_ == GameModeID.Sprint) { foreach (var campaign in Campaigns.Items) { if (campaign.Value.Enabled && campaign.Value.ShowInArcade) { LevelSet set = campaign.Value.GetLevelSet(GameModeID.Sprint, true); LevelPlaylist playlist = LevelPlaylist.Create(set, $"{Constants.Strings.CampaignEntry_Color}{campaign.Value.Name}[-]"); bool unlocked = LockingSystem.IsCampaignComplete(campaign.Value.Id); __instance.CreateAndAddEntry(playlist, LevelGridMenu.PlaylistEntry.Type.Campaign, unlocked, sprint_unlock_mode); } } } __instance.buttonList_.SortAndUpdateVisibleButtons(); }
public static void Postfix(LevelGridCell __instance, ref UIButton ___button_) { try { LevelGridGrid.LevelEntry entry = __instance.entry_ as LevelGridGrid.LevelEntry; string path = entry.AbsolutePath_; if (Utils.Campaign.IsCustomCampaignLevel(path)) { __instance.titleLabel_.enabled = false; __instance.authorLabel_.enabled = false; __instance.soloTitleLabel_.enabled = true; if (LockingSystem.IsLevelLocked(path)) { __instance.lockedIcon_.SetActive(true); ___button_.onClick.Clear(); string leveltitle = ""; foreach (var c in entry.LevelInfo_.levelName_) { leveltitle += c.ToString() == " " ? " " : "?"; } __instance.soloTitleLabel_.text = leveltitle; } else { __instance.soloTitleLabel_.text = entry.LevelInfo_.levelName_; } } } catch (NullReferenceException nre) { Plugin.Log.Exception(nre); } }
public static bool Prefix(LevelGridMenu __instance, ref int index) { LevelPlaylist playlist = __instance.DisplayedEntry_.Playlist_; string level = playlist.Playlist_[index].levelNameAndPath_.levelPath_; if (Utils.Campaign.GetCampaignUnlockMode(level) == Models.Campaign.UnlockStyle.LevelSet) { return(true); } else { bool flag = Utils.Campaign.IsCustomCampaignLevel(level) && LockingSystem.IsLevelLocked(level); if (flag) { G.Sys.MenuPanelManager_.ShowTimedOk(10, Constants.Strings.LevelLocked_Message, Constants.Strings.LevelLocked_Title); } return(!flag); } }
internal static void SubscribeAll() { Events.Level.PostLoad.Subscribe((data) => CampaignSystem.Current = Utils.Campaign.GetCampaign(Utils.Common.LevelFile)); Events.Game.LevelLoaded.Subscribe((data) => { string level = Utils.Common.LevelFile; if (!Utils.Common.IsInLevelEditor() && Utils.Campaign.IsCustomCampaignLevel(level)) { LockingSystem.UnlockLevel(level); CampaignInfo campaign = Utils.Campaign.GetCampaign(level); Events.Mod.CampaignLevelStarted.Broadcast(new Events.Mod.CampaignLevelStarted.Data(campaign)); } }); Events.Mod.CampaignLevelStarted.Subscribe((data) => AddonSystem.LevelLoaded(data.campaign)); Events.Mod.CampaignLoaded.Subscribe((data) => { if (CampaignSystem.Current != null) { AddonSystem.EnableAddons(CampaignSystem.Current.Id); } else if (CampaignSystem.Last != null) { AddonSystem.DisableAddons(CampaignSystem.Last.Id); } }); Events.GameMode.ModeStarted.Subscribe((data) => { if (!Utils.Common.IsInLevelEditor() && G.Sys.GameManager_.ModeID_ != GameModeID.MainMenu && Utils.Campaign.IsCustomCampaignLevel(Utils.Common.LevelFile) && Utils.Campaign.CampaignUsesOldLevelIntro(Utils.Common.LevelFile)) { GameObject title = Resource.LoadPrefabInstance(Constants.Strings.LevelIntroPrefab_Name, true); title.name = Constants.Strings.LevelIntroPrefabEA_Name; foreach (InterpolateUIPanelAlphaLogic component in title.GetComponentsInChildren <InterpolateUIPanelAlphaLogic>()) { Object.DestroyImmediate(component); } } }); }