internal static void Postfix(TowerSelectionMenu __instance, int path, ref bool __result) { var tower = __instance.selectedTower.tower; if (tower.GetUpgrade(path)?.GetModUpgrade() is ModUpgrade modUpgrade && modUpgrade.RestrictUpgrading(tower)) { __result = true; } }
public static void Postfix(TowerSelectionMenu __instance) { if (__instance.upgradeButtons != null && __instance.selectedTower?.tower?.towerModel?.baseId == TowerType.SuperMonkey) { if (SacrificesOff) { foreach (var instanceUpgradeButton in __instance.upgradeButtons) { var upgradeModel = instanceUpgradeButton.upgradeButton.GetUpgradeModel(); if (upgradeModel == null) { continue; } if (upgradeModel.name == "Sun Temple") { Utils.ModifyTemple(upgradeModel); } else if (upgradeModel.name == "True Sun God") { Utils.ModifyGod(upgradeModel); } else { continue; } instanceUpgradeButton.UpdateCost(); instanceUpgradeButton.UpdateVisuals(0, false); } } else { foreach (var instanceUpgradeButton in __instance.upgradeButtons) { var upgradeModel = instanceUpgradeButton.upgradeButton.GetUpgradeModel(); if (upgradeModel == null) { continue; } if (upgradeModel.name == "Sun Temple") { Utils.DefaultTemple(upgradeModel); } else if (upgradeModel.name == "True Sun God") { Utils.DefaultGod(upgradeModel); } else { continue; } instanceUpgradeButton.UpdateCost(); instanceUpgradeButton.UpdateVisuals(0, false); } } } }
public void AddToTowerSelctionMenu() { string towerSelFilePath = TowerSelectFiles[TowerSelPos]; if (!File.Exists(towerSelFilePath)) { ConsoleHandler.append_Force("Unable to find the Tower Selection file!"); return; } string text = CheckJSONFromFile(towerSelFilePath); if (!Guard.IsStringValid(text)) { FileInfo file = new FileInfo(towerSelFilePath); ConsoleHandler.append_Force("The Tower Select File " + file.Name + " has has invalid text/JSON. Unable to add tower to TowerSelectionMenu"); return; } ConsoleHandler.append("Creating new tower entry in TowerSelectionMenu"); TowerSelectionMenu menu = TowerSelectionMenu.FromJson(text); TowerSelectItem newItem = new TowerSelectItem(); bool foundBaseTower = false; if (UseBaseTower) { newItem = TowerSelMenu_DupBaseTower(); if (!Guard.IsStringValid(newItem.ToString())) { foundBaseTower = false; ConsoleHandler.append("Unable to find chosen base tower in tower selection menu files. Using blank values instead."); } else { foundBaseTower = true; } } if (!UseBaseTower || !foundBaseTower) { newItem = TowerSelMenu_EmptyTower(newItem); } if (newItem == null) { return; } if (menu == null) { return; } AddTowerToSelMenu(newItem, menu); }
private void AddTowerToSelMenu(TowerSelectItem newItem, TowerSelectionMenu menu) { menu.Items.Add(newItem); string text = menu.ToJson(); StreamWriter serialize = new StreamWriter(TowerSelectFiles[TowerSelPos], false); serialize.Write(text); serialize.Close(); ConsoleHandler.append("Tower added to " + TowerSelectFiles[TowerSelPos].Replace(CurrentProjectVariables.PathToProjectFiles, "")); }
private TowerSelectItem TowerSelMenu_DupBaseTower() { FileInfo baseTower = new FileInfo(BaseTowerFile); TowerSelectItem newItem = new TowerSelectItem(); ConsoleHandler.append("Duplicating base TowerSelectMenu entry"); foreach (var a in TowerSelectFiles) { string tempText = CheckJSONFromFile(a.Value); if (!Guard.IsStringValid(tempText)) { continue; } TowerSelectionMenu tempMenu = TowerSelectionMenu.FromJson(tempText); if (tempMenu == null) { continue; } foreach (TowerSelectItem item in tempMenu.Items) { if (item.FactoryName == baseTower.Name.Replace(".tower", "")) { ConsoleHandler.append("Found base tower's TowerSelect entry in: " + a.Value.Replace(CurrentProjectVariables.PathToProjectFiles, "")); newItem.FactoryName = TowerName; newItem.Icon = item.Icon; newItem.KeyboardShortcut = item.KeyboardShortcut; newItem.ObjectType = item.ObjectType; break; } } } return(newItem); }
internal static void Postfix(TowerSelectionMenu __instance) { __instance.InitUpgradeButtons(); }