static void refreshPageContents() { Accessor.CallPrivateMethod("PopulateIcons", GameUIRoot.Instance.UpgradeUI); Accessor.CallPrivateMethod("tryLocalizeTextField", GameUIRoot.Instance.UpgradeUI.TitleText.GetComponent <LocalizedTextField>()); // Re-localize "Select Upgrade" text field GameUIRoot.Instance.UpgradeUI.TitleText.resizeTextForBestFit = false; // Old mod loading system Mod mod = UpgradePagesManager.TryGetModForPage(UpgradePagesManager.CurrentPage); if (mod != null) { GameUIRoot.Instance.UpgradeUI.TitleText.text += "\n[" + mod.GetModName() + "]"; GameUIRoot.Instance.UpgradeUI.TitleText.resizeTextForBestFit = true; UpgradeAngleSetter.Instance.RefreshIconEventTriggers(); } /* New mod loading system * string modID = UpgradePagesManager.TryGetModIDForPage(UpgradePagesManager.CurrentPage); * LoadedModInfo modInfo = ModsManager.Instance.GetLoadedModWithID(modID); * if (modInfo != null) * { * GameUIRoot.Instance.UpgradeUI.TitleText.text += "\n[" + modInfo.OwnerModInfo.DisplayName + "]"; * GameUIRoot.Instance.UpgradeUI.TitleText.resizeTextForBestFit = true; * * UpgradeAngleSetter.Instance.RefreshIconEventTriggers(); * } */ }
/// <summary> /// Adds an upgrade to the page of the specified <see cref="Mod"/>, if the upgrade is a modded upgrade or not currently used it will also be added to <see cref="UpgradeManager.UpgradeDescriptions"/> /// </summary> /// <param name="upgradeManager"></param> /// <param name="upgrade">The <see cref="UpgradeDescription"/> of the upgrade to add</param> /// <param name="mod">The <see cref="Mod"/> that owns the upgrade</param> public static void AddUpgrade(this UpgradeManager upgradeManager, UpgradeDescription upgrade, Mod mod) { if (upgrade.IsModdedUpgradeType() || !UpgradeManager.Instance.IsUpgradeTypeAndLevelUsed(upgrade.UpgradeType, upgrade.Level)) { UpgradeManager.Instance.UpgradeDescriptions.Add(upgrade); } // Old mod loading system UpgradePagesManager.AddUpgrade(upgrade.UpgradeType, upgrade.Level, mod); // New mod loading system // UpgradePagesManager.AddUpgrade(upgrade.UpgradeType, upgrade.Level, mod.ModInfo.UniqueID); if (upgrade is AbilityUpgrade) { Dictionary <UpgradeType, bool> _abilityUpgradeTypes = Accessor.GetPrivateField <UpgradeManager, Dictionary <UpgradeType, bool> >("_abilityUpgradeTypes", UpgradeManager.Instance); _abilityUpgradeTypes[upgrade.UpgradeType] = true; } if (upgrade.Requirement != null) { recursivelyAddRequirments(upgrade, mod); } string nameID = upgrade.UpgradeName.ToLower().Trim(); ModBotLocalizationManager.TryAddModdedUpgradeLocalizationStringToDictionary(nameID, upgrade.UpgradeName); string descriptionID = upgrade.Description.ToLower().Trim(); ModBotLocalizationManager.TryAddModdedUpgradeLocalizationStringToDictionary(descriptionID, upgrade.Description); }
/// <summary> /// Sets angle offset of this upgrade on the mod page, NOTE: Needs to be run AFTER <see cref="UpgradeManager"/>.AddUpgrade(<see cref="UpgradeDescription"/>, <see cref="Mod"/>) is called /// </summary> /// <param name="upgradeDescription"></param> /// <param name="angle">The new angle of the <see cref="UpgradeDescription"/></param> /// <param name="mod">The <see cref="Mod"/> that owns the upgrade</param> public static void SetAngleOffset(this UpgradeDescription upgradeDescription, float angle, Mod mod) { // Old mod loading system UpgradePagesManager.SetAngleOfModdedUpgrade(angle, upgradeDescription.UpgradeType, upgradeDescription.Level, mod); // New mod loading system // UpgradePagesManager.SetAngleOfModdedUpgrade(angle, upgradeDescription.UpgradeType, upgradeDescription.Level, mod.ModInfo.UniqueID); }
static void recursivelyAddRequirments(UpgradeDescription upgrade, Mod mod) { if (upgrade == null) { return; } // Old mod loading system UpgradePagesManager.AddUpgrade(upgrade.UpgradeType, upgrade.Level, mod); // New mod loading system // UpgradePagesManager.AddUpgrade(upgrade.UpgradeType, upgrade.Level, mod.ModInfo.UniqueID); if (upgrade.Requirement2 != null) { recursivelyAddRequirments(upgrade.Requirement2, mod); } recursivelyAddRequirments(upgrade.Requirement, mod); }
/// <summary> /// Should be called when the next button is clicked on the UI. /// </summary> public static void NextClicked() { UpgradePagesManager.NextPage(); refreshPageContents(); }
/// <summary> /// Should be called when the back button is clicked on the UI. /// </summary> public static void BackClicked() { UpgradePagesManager.PreviousPage(); refreshPageContents(); }