public static (int, int) GetUpgradeCost(UnitUpgrades upgrade, Player _player) { Upgrade myupgrade = UpgradePool.Upgrades.Where(x => x.Race == _player.Race && x.Name == upgrade).FirstOrDefault(); if (myupgrade == null) { return(0, 0); } if (_player.Upgrades != null && _player.Upgrades.Count() > 0) { UnitUpgrade plup = _player.Upgrades.Where(x => x.Upgrade == myupgrade.Name).FirstOrDefault(); if (plup != null) { if (plup.Level == 3) { return(0, plup.Level); } else { return(myupgrade.Cost.SingleOrDefault(x => x.Key == plup.Level + 1).Value, plup.Level + 1); } } } return(myupgrade.Cost[0].Value, 1); }
public static int UpgradeUnit(UnitUpgrades upgrade, Player _player) { (int cost, int lvl) = GetUpgradeCost(upgrade, _player); Upgrade myupgrade = UpgradePool.Upgrades.Where(x => x.Race == _player.Race && x.Name == upgrade).FirstOrDefault(); if (myupgrade == null) { return(0); } UnitUpgrade plup = _player.Upgrades.Where(x => x.Upgrade == myupgrade.Name).FirstOrDefault(); if (plup != null) { if (plup.Level < 3) { plup.Level++; } } else { UnitUpgrade newup = new UnitUpgrade(); newup.Upgrade = myupgrade.Name; newup.Level = 1; _player.Upgrades.Add(newup); } return(cost); }
void Start() { if (instance == null) { instance = this; } else { Destroy(gameObject); } }
public static UnitUpgrade Map(string repUpgrade) { UnitUpgrade myupgrade = null; string race = ""; int level = 0; string type = ""; string add = ""; Match match = rxUpgrade.Match(repUpgrade); if (match.Success) { race = match.Groups[1].Value.ToString(); type = match.Groups[2].Value.ToString(); level = int.Parse(match.Groups[3].Value); add = match.Groups[4].Value; UnitRace myrace = UnitRace.Terran; if (race == "Protoss") { myrace = UnitRace.Protoss; } else if (race == "Terran") { myrace = UnitRace.Terran; } else if (race == "Zerg") { myrace = UnitRace.Zerg; } UnitUpgrades upgradename = UnitUpgrades.GroundArmor; // Protoss if (type == "AirArmor") { upgradename = UnitUpgrades.AirArmor; } else if (type == "AirWeapons") { upgradename = UnitUpgrades.AirAttac; } else if (type == "GroundArmor") { upgradename = UnitUpgrades.GroundArmor; } else if (type == "GroundWeapons") { upgradename = UnitUpgrades.GroundAttac; } else if (type == "Shields") { upgradename = UnitUpgrades.ShieldArmor; } // Terran else if (type == "InfantryArmor") { upgradename = UnitUpgrades.GroundArmor; } else if (type == "InfantryWeapons") { upgradename = UnitUpgrades.GroundAttac; } else if (type == "VehicleandShipPlating" || type == "VehicleAndShipPlating") { upgradename = UnitUpgrades.VehicelArmor; } else if (type == "VehicleWeapons") { upgradename = UnitUpgrades.VehicelAttac; } // Zerg else if (type == "FlyerAttacks") { upgradename = UnitUpgrades.AirAttac; } else if (type == "FlyerCarapace") { upgradename = UnitUpgrades.AirArmor; } else if (type == "GroundCarapace") { upgradename = UnitUpgrades.GroundArmor; } else if (type == "MeleeAttacks") { upgradename = UnitUpgrades.GroundMeleeAttac; } else if (type == "MissileAttacks") { upgradename = UnitUpgrades.GroundAttac; } Upgrade u = UpgradePool.Upgrades.SingleOrDefault(x => x.Race == myrace && x.Name == upgradename); if (u != null) { myupgrade = new UnitUpgrade(); myupgrade.Upgrade = u.Name; myupgrade.Level = level; } } return(myupgrade); }