Beispiel #1
0
        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);
     }
 }
Beispiel #3
0
        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);
            }
        }
Beispiel #4
0
        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);
                    }
                }
            });
        }