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; }
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!"); }
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(); } }