internal virtual TowerModel GetBaseParagonModel() { TowerModel towerModel; switch (ParagonMode) { case ParagonMode.Base000: towerModel = ModTowerHelper.CreateTowerModel(this, new[] { 0, 0, 0 }); break; case ParagonMode.Base555: towerModel = ModTowerHelper.CreateTowerModel(this, new[] { 5, 5, 5 }); break; case ParagonMode.None: default: return(null); } towerModel.appliedUpgrades = new Il2CppStringArray(6); for (var i = 0; i < 5; i++) { towerModel.appliedUpgrades[i] = upgrades[0, i].Id; } return(towerModel); }
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); }
/// <inheritdoc /> protected sealed override void Register() { towerModels = ModTowerHelper.AddTower(this); }
internal override void PostRegister() { base.PostRegister(); ModTowerHelper.FinalizeHero(this); }