Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
 void Start()
 {
     if (instance == null)
     {
         instance = this;
     }
     else
     {
         Destroy(gameObject);
     }
 }
Exemplo n.º 4
0
        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);
        }