public override void Load()
        {
            switchSkinButton   = Courier.UI.RegisterMultipleModOptionButton(() => "Switch Skin", null, ChangeSkin, GetSkinIndex, GetTextForSkinIndex);
            rainbowModeButton  = Courier.UI.RegisterToggleModOptionButton(() => "Rainbow Mode", OnRainbowModeToggle, (b) => rainbowMode);
            rainbowSpeedButton = Courier.UI.RegisterTextEntryModOptionButton(() => "Rainbow Speed", OnRainbowSpeedEntry, 3, null, () => rainbowSpeedMultiplier.ToString(), TextEntryButtonInfo.CharsetFlags.Dot | TextEntryButtonInfo.CharsetFlags.Number);

            switchSkinButton.IsEnabled = () => Manager <LevelManager> .Instance.GetCurrentLevelEnum() != ELevel.NONE;

            Courier.Events.PlayerController.OnUpdate += PlayerController_OnUpdate;
        }
Пример #2
0
        public override void Load()
        {
            Console.WriteLine("Randomizer loading and ready to try things!");

            //Initialize the randomizer state manager
            RandomizerStateManager.Initialize();
            randoStateManager = RandomizerStateManager.Instance;

            //Set up save data utility
            randomizerSaveMethod = new RandomizerSaveMethod();

            //Add Randomizer Version button
            versionButton = Courier.UI.RegisterSubMenuModOptionButton(() => "Messenger Randomizer: v" + ItemRandomizerUtil.GetModVersion(), null);

            //Add current seed number button
            seedNumButton = Courier.UI.RegisterSubMenuModOptionButton(() => "Current seed number: " + GetCurrentSeedNum(), null);

            //Add load seed file button
            loadRandomizerFileForFileSlotButton = Courier.UI.RegisterTextEntryModOptionButton(() => "Load Randomizer File For File Slot", (entry) => OnEnterFileSlot(entry), 1, () => "Which save slot would you like to start a rando seed?(1/2/3)", () => "1", CharsetFlags.Number);

            //Add windmill shuriken toggle button
            windmillShurikenToggleButton = Courier.UI.RegisterSubMenuModOptionButton(() => Manager <ProgressionManager> .Instance.useWindmillShuriken ? "Active Regular Shurikens" : "Active Windmill Shurikens", OnToggleWindmillShuriken);

            //Add teleport to HQ button
            teleportToHqButton = Courier.UI.RegisterSubMenuModOptionButton(() => "Teleport to HQ", OnSelectTeleportToHq);

            //Add teleport to Ninja Village button
            teleportToNinjaVillage = Courier.UI.RegisterSubMenuModOptionButton(() => "Teleport to Ninja Village", OnSelectTeleportToNinjaVillage);


            //Plug in my code :3
            On.InventoryManager.AddItem         += InventoryManager_AddItem;
            On.InventoryManager.GetItemQuantity += InventoryManager_GetItemQuantity;
            On.ProgressionManager.SetChallengeRoomAsCompleted += ProgressionManager_SetChallengeRoomAsCompleted;
            On.HasItem.IsTrue += HasItem_IsTrue;
            On.AwardNoteCutscene.ShouldPlay              += AwardNoteCutscene_ShouldPlay;
            On.CutsceneHasPlayed.IsTrue                  += CutsceneHasPlayed_IsTrue;
            On.SaveGameSelectionScreen.OnLoadGame        += SaveGameSelectionScreen_OnLoadGame;
            On.SaveGameSelectionScreen.OnNewGame         += SaveGameSelectionScreen_OnNewGame;
            On.NecrophobicWorkerCutscene.Play            += NecrophobicWorkerCutscene_Play;
            IL.RuxxtinNoteAndAwardAmuletCutscene.Play    += RuxxtinNoteAndAwardAmuletCutscene_Play;
            On.CatacombLevelInitializer.OnBeforeInitDone += CatacombLevelInitializer_OnBeforeInitDone;
            On.DialogManager.LoadDialogs_ELanguage       += DialogChanger.LoadDialogs_Elanguage;
            On.UpgradeButtonData.IsStoryUnlocked         += UpgradeButtonData_IsStoryUnlocked;
            //temp add
            On.PowerSeal.OnEnterRoom        += PowerSeal_OnEnterRoom;
            On.DialogSequence.GetDialogList += DialogSequence_GetDialogList;

            Console.WriteLine("Randomizer finished loading!");
        }
Пример #3
0
        public override void Load()
        {
            On.InGameHud.OnGUI             += InGameHud_OnGUI;
            On.PlayerController.CanJump    += PlayerController_CanJump;
            On.PlayerController.Awake      += PlayerController_Awake;
            On.PlayerController.ReceiveHit += PlayerController_ReceiveHit;
            On.Hittable.Awake          += Hittable_Awake;
            On.PlayerController.Update += PlayerController_Update;
#pragma warning disable RECS0026 // Possible unassigned object created by 'new'
            new Hook(get_PlayerShurikensInfo, get_PlayerShurikensHookInfo, this);
            // Stuff that doesn't always call orig(self)
            using (new DetourContext("TrainerRebornLast")
            {
                Before = { "*" }
            }) {
                On.PlayerController.Damage += PlayerController_Damage;
                On.RetroCamera.SnapPositionToCameraBounds += RetroCamera_SnapPositionToCameraBounds;
            }

            // Stuff that should always go first
            using (new DetourContext("TrainerRebornFirst")
            {
                After = { "*" }
            }) {
                On.PlayerController.CancelGraplou       += PlayerController_CancelGraplou;
                On.PlayerController.CancelJumpCoroutine += PlayerController_CancelJumpCoroutine;
                On.PlayerKnockbackState.StateEnter      += PlayerKnockbackState_StateEnter;
                On.PlayerKnockbackState.StateExecute    += PlayerKnockbackState_StateExecute;
                On.PlayerKnockbackState.StateExit       += PlayerKnockbackState_StateExit;
            }

            infHealthButton        = Courier.UI.RegisterToggleModOptionButton(() => Manager <LocalizationManager> .Instance.GetText(INF_HEALTH_BUTTON_LOC_ID), OnInfHealth, (b) => infHealth);
            infShurikenButton      = Courier.UI.RegisterToggleModOptionButton(() => Manager <LocalizationManager> .Instance.GetText(INF_SHURIKEN_BUTTON_LOC_ID), OnInfShuriken, (b) => infShuriken);
            infJumpButton          = Courier.UI.RegisterToggleModOptionButton(() => Manager <LocalizationManager> .Instance.GetText(INF_JUMP_BUTTON_LOC_ID), OnInfJump, (b) => infJump);
            noKnockbackButton      = Courier.UI.RegisterToggleModOptionButton(() => Manager <LocalizationManager> .Instance.GetText(NO_KNOCKBACK_BUTTON_LOC_ID), OnNoKnockback, (b) => noKnockback);
            noBoundsButton         = Courier.UI.RegisterToggleModOptionButton(() => Manager <LocalizationManager> .Instance.GetText(NO_BOUNDS_BUTTON_LOC_ID), OnNoBounds, (b) => noBounds);
            debugPosButton         = Courier.UI.RegisterToggleModOptionButton(() => Manager <LocalizationManager> .Instance.GetText(DEBUG_POS_BUTTON_LOC_ID), OnDebugPos, (b) => debugPos);
            debugBossButton        = Courier.UI.RegisterToggleModOptionButton(() => Manager <LocalizationManager> .Instance.GetText(DEBUG_BOSS_BUTTON_LOC_ID), OnDebugBoss, (b) => debugBoss);
            toggleCollisionsButton = Courier.UI.RegisterToggleModOptionButton(() => Manager <LocalizationManager> .Instance.GetText(TOGGLE_COLLISIONS_BUTTON_LOC_ID), OnToggleCollisions, (b) => !collisionsDisabled);
            secondQuestButton      = Courier.UI.RegisterToggleModOptionButton(() => Manager <LocalizationManager> .Instance.GetText(SECOND_QUEST_BUTTON_LOC_ID), OnSecondQuest, (b) => Manager <ProgressionManager> .Instance.secondQuest);
            showHitboxesButton     = Courier.UI.RegisterToggleModOptionButton(() => Manager <LocalizationManager> .Instance.GetText(SHOW_HITBOXES_BUTTON_LOC_ID), OnShowHitboxes, (b) => hitboxesShown);
            speedMultButton        = Courier.UI.RegisterTextEntryModOptionButton(() => Manager <LocalizationManager> .Instance.GetText(SPEED_MULT_BUTTON_LOC_ID), OnEnterSpeed, 4, null, () => Manager <PlayerManager> .Instance?.Player?.RunSpeedMultiplier.ToString() ?? "" + speedMult, CharsetFlags.Number | CharsetFlags.Dot);
            debugTextColorButton   = Courier.UI.RegisterTextEntryModOptionButton(() => Manager <LocalizationManager> .Instance.GetText(DEBUG_TEXT_COLOR_BUTTON_LOC_ID), OnEnterDebugTextColor, 7, null, () => "", CharsetFlags.Letter);
            tpButton              = Courier.UI.RegisterTextEntryModOptionButton(() => Manager <LocalizationManager> .Instance.GetText(TP_BUTTON_LOC_ID), OnEnterTeleportLevel, 17, () => Manager <LocalizationManager> .Instance.GetText(TP_LEVEL_ENTRY_LOC_ID), () => GetLevelNameFromEnum(Manager <LevelManager> .Instance?.GetCurrentLevelEnum() ?? ELevel.NONE), CharsetFlags.Letter);
            getItemButton         = Courier.UI.RegisterTextEntryModOptionButton(() => Manager <LocalizationManager> .Instance.GetText(GET_ITEM_BUTTON_LOC_ID), OnEnterItemToGive, 16, () => Manager <LocalizationManager> .Instance.GetText(ITEM_NAME_ENTRY_LOC_ID), () => "", CharsetFlags.Letter);
            reloadButton          = Courier.UI.RegisterSubMenuModOptionButton(() => Manager <LocalizationManager> .Instance.GetText(RELOAD_BUTTON_LOC_ID), OnReloadButton);
            saveButton            = Courier.UI.RegisterSubMenuModOptionButton(() => Manager <LocalizationManager> .Instance.GetText(SAVE_BUTTON_LOC_ID), OnSaveButton);
            switchDimensionButton = Courier.UI.RegisterSubMenuModOptionButton(() => Manager <LocalizationManager> .Instance.GetText(Manager <DimensionManager> .Instance?.CurrentDimension == EBits.BITS_8 ? SWITCH_DIMENSION_TO_16_LOC_ID : SWITCH_DIMENSION_TO_8_LOC_ID), OnSwitchDimensionButton);

            // Disable certain features until we enter the level
            secondQuestButton.IsEnabled = () => Manager <LevelManager> .Instance.GetCurrentLevelEnum() != ELevel.NONE;

            tpButton.IsEnabled = () => Manager <LevelManager> .Instance.GetCurrentLevelEnum() != ELevel.NONE;

            getItemButton.IsEnabled = () => Manager <LevelManager> .Instance.GetCurrentLevelEnum() != ELevel.NONE;

            reloadButton.IsEnabled = () => Manager <LevelManager> .Instance.GetCurrentLevelEnum() != ELevel.NONE;

            saveButton.IsEnabled = () => Manager <LevelManager> .Instance.GetCurrentLevelEnum() != ELevel.NONE;

            switchDimensionButton.IsEnabled = () => Manager <LevelManager> .Instance.GetCurrentLevelEnum() != ELevel.NONE;

            // Save keybindings for save and reload to the save file
            Courier.ModOptionSaveData.Add(new CharacterOptionSaveMethod("BrokemiaTrainerRebornReloadBinding", () => reloadKeyBinding, (val) => reloadKeyBinding = char.ToLower(val)));
            Courier.ModOptionSaveData.Add(new CharacterOptionSaveMethod("BrokemiaTrainerRebornSaveBinding", () => saveKeyBinding, (val) => saveKeyBinding       = char.ToLower(val)));

            if (Dicts.tpDict == null)
            {
                Dicts.InitTpDict();
            }
            if (Dicts.itemDict == null)
            {
                Dicts.InitItemDict();
            }
            if (Dicts.levelDict == null)
            {
                Dicts.InitLevelDict();
            }
        }