コード例 #1
0
ファイル: Main.cs プロジェクト: Alhade27/btd6_mods
            public static void RegisterTowerInInventory(ShopTowerDetailsModel details, string insertBefore, List <TowerDetailsModel> allTowersInTheGame)
            {
                // get the tower details for the tower insertBefore and insert the new tower into the index towerBefore is at, shifting everything after it by 1
                TowerDetailsModel towerAfter = allTowersInTheGame.ToArray().FirstOrDefault(tower => tower.towerId == insertBefore);

                allTowersInTheGame.Insert(allTowersInTheGame.IndexOf(towerAfter), details);
            }
コード例 #2
0
ファイル: Main.cs プロジェクト: Alhade27/btd6_mods
            public static bool Prefix(ref List <TowerDetailsModel> allTowersInTheGame)
            {
                for (int i = 0; i < Constants.powers.Length; i++)
                {
                    ShopTowerDetailsModel powerDetails = new ShopTowerDetailsModel(Constants.powers[i],
                                                                                   allTowersInTheGame.ToArray().FirstOrDefault(tower => tower.name.Contains("EngineerMonkey")).towerIndex, 0, 0, 0, -1, -1, null);
                    Utils.RegisterTowerInInventory(powerDetails, "EngineerMonkey", allTowersInTheGame);
                }

                for (int i = 0; i < Constants.otherTowers.Length; i++)
                {
                    ShopTowerDetailsModel otherTowerDetails = new ShopTowerDetailsModel(Constants.otherTowers[i], -1, 0, 0, 0, -1, -1, null);

                    string insertBefore = "EngineerMonkey"; // support had the most occurrences, so have it default to mortar to eliminate the conditional for military

                    if (Constants.otherTowerTowersets[i] == "Military")
                    {
                        insertBefore = "MortarMonkey";                                                 // military towers
                    }
                    if (Constants.otherTowerTowersets[i] == "Magic")
                    {
                        insertBefore = "Druid";                                              // magic towers
                    }
                    otherTowerDetails.towerIndex = allTowersInTheGame.ToArray().FirstOrDefault(tower => tower.name.Contains(insertBefore)).towerIndex;
                    Utils.RegisterTowerInInventory(otherTowerDetails, insertBefore, allTowersInTheGame);
                }

                Console.WriteLine("Registered tower models in tower inventory");
                return(true);
            }
コード例 #3
0
            public static bool Prefix(ref List <TowerDetailsModel> allTowersInTheGame)
            {
                ShopTowerDetailsModel powerDetails = new ShopTowerDetailsModel("TechBot", 1, 0, 0, 0, -1, 0, null);

                allTowersInTheGame.Add(powerDetails);
                return(true);
            }
コード例 #4
0
            public static bool Prefix(ref List <TowerDetailsModel> allTowersInTheGame)
            {
                ShopTowerDetailsModel towerDetails = new ShopTowerDetailsModel("SentryCrushing", 1, 0, 0, 0, -1, 0, null);

                allTowersInTheGame.Add(towerDetails);
                return(true);
            }
コード例 #5
0
ファイル: ModTower.cs プロジェクト: gurrenm3/BTD-Mod-Helper
        internal override void PostRegister()
        {
            foreach (var towerModel in towerModels)
            {
                ModTowerHelper.FinalizeTowerModel(this, towerModel);
            }

            Game.instance.GetLocalizationManager().textTable[Id]                  = DisplayName;
            Game.instance.GetLocalizationManager().textTable[Id + "s"]            = DisplayNamePlural;
            Game.instance.GetLocalizationManager().textTable[Id + " Description"] = Description;

            if (!DontAddToShop)
            {
                try
                {
                    var index = GetTowerIndex(Game.instance.model.towerSet.ToList());
                    if (index >= 0)
                    {
                        var shopTowerDetailsModel = new ShopTowerDetailsModel(Id, index, 5, 5, 5, -1, 0, null);
                        Game.instance.model.AddTowerDetails(shopTowerDetailsModel, index);
                    }
                }
                catch (Exception)
                {
                    MelonLogger.Error($"Failed to add ModTower {Name} to the shop");
                    throw;
                }
            }

            ModTowerSet?.towers.Add(this);
        }
コード例 #6
0
            public static bool Prefix(TowerInventory __instance, ref List <TowerDetailsModel> allTowersInTheGame)
            {
                int i = 22;

                foreach (var power in Powers.Keys)
                {
                    if (Powers[power] < 0)
                    {
                        continue;
                    }

                    ShopTowerDetailsModel powerDetails = new ShopTowerDetailsModel(power, i++, 0, 0, 0, -1, 0, null);
                    allTowersInTheGame.Add(powerDetails);
                }

                allTowers      = allTowersInTheGame;
                towerInventory = __instance;

                TSMThemeEnergisingTotem_Selected.lastOpened = false; //UI is reset, so we have to as well

                return(true);
            }