Beispiel #1
0
        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();
             * }
             */
        }
Beispiel #2
0
        /// <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);
        }
Beispiel #3
0
        /// <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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
 /// <summary>
 /// Should be called when the next button is clicked on the UI.
 /// </summary>
 public static void NextClicked()
 {
     UpgradePagesManager.NextPage();
     refreshPageContents();
 }
Beispiel #6
0
 /// <summary>
 /// Should be called when the back button is clicked on the UI.
 /// </summary>
 public static void BackClicked()
 {
     UpgradePagesManager.PreviousPage();
     refreshPageContents();
 }