Пример #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();
        }
Пример #2
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);
            }
        }
Пример #3
0
        public static void Postfix(LevelGridMenu __instance)
        {
            bool flag_campaignmode = __instance.isCampaignMode_;

            if (flag_campaignmode && __instance.isActiveAndEnabled)
            {
                try
                {
                    LevelPlaylist playlist = __instance.DisplayedEntry_.Playlist_;
                    string        level    = playlist.GetLevelSet()[0].levelPath_.NormPath(true);
                    if (Utils.Campaign.IsCustomCampaignLevel(level))
                    {
                        __instance.modeDescription_.text     = __instance.gridDescription_.text = Utils.Campaign.GetCampaignDescription(level);
                        __instance.campaignLogo_.mainTexture = Utils.Campaign.GetCampaignLogo(level);
                    }
                }
                catch (NullReferenceException nre)
                {
                    Plugin.Log.Exception(nre);
                }
            }
        }