示例#1
0
    public void BuyUnit(UnitPos unitPos, MapUnit unit)
    {
        //print("trying to buy unit");
        MapUnit newUnit  = unit.DeepCopy();
        int     unitCost = currentNode.GetComponent <Node>().GetUnitCost(Tools.UnitToIndex(newUnit));

        if (unitCost <= owner.GetComponent <Player>().money&& newUnit.zealCost <= owner.GetComponent <Player>().zeal)
        {
            if (owner.GetComponent <Player>().upgrades.ContainsKey("Protect the Pure"))
            {
                float upgradeLevel = owner.GetComponent <Player>().upgrades["Protect the Pure"].currentLevel;
                newUnit.SetHealth((int)(newUnit.maxHealth - (0.1f * upgradeLevel * newUnit.maxHealth)));
                print("Health Lost: " + (int)(newUnit.maxHealth - (0.1f * upgradeLevel * newUnit.maxHealth)));
                print("Upgrade Level: " + upgradeLevel);
                //newUnit.currentHealth = newUnit.maxHealth;
                newUnit.maxShield    += (int)upgradeLevel * 2;
                newUnit.currentShield = newUnit.maxShield;
                print("Maxshield: " + newUnit.maxShield);
                print("Currentshield: " + newUnit.currentShield);
            }
            owner.GetComponent <Player>().money -= unitCost;
            owner.GetComponent <Player>().zeal  -= newUnit.zealCost;
            owner.GetComponent <Player>().factionTraits.NewUnit(newUnit);
            AddUnit(unitPos.position, unitPos.frontRow, newUnit);
        }
        //else print("not enough money");
    }
    public void BuyUnit(GameObject army)
    {
        //print("buying unit");
        MapUnit unitToBuy = unit.DeepCopy();

        if (NodeMenu.currentNode.GetComponent <Node>().temple != null && NodeMenu.currentNode.GetComponent <Node>().temple.name == TempleName.Armaments)
        {
            unitToBuy.moneyCost = (int)(unitToBuy.moneyCost * 0.6f);
        }
        for (int i = 0; i < 4; i++)
        {
            UnitPos unitPos = new UnitPos(i, true);
            if (army.GetComponent <Army>().IsSpotOpen(unitPos))
            {
                army.GetComponent <Army>().BuyUnit(unitPos, unitToBuy);
            }
        }
        for (int i = 0; i < 4; i++)
        {
            UnitPos unitPos = new UnitPos(i, false);
            if (army.GetComponent <Army>().IsSpotOpen(unitPos))
            {
                army.GetComponent <Army>().BuyUnit(unitPos, unitToBuy);
            }
        }
        LeaveMenu();
    }
示例#3
0
    public Altar DeepCopy()
    {
        Altar newAltar = new Altar(name, cost, description);

        newAltar.portrait = portrait;
        newAltar.unit     = unit.DeepCopy();
        return(newAltar);
    }
示例#4
0
    public Temple DeepCopy()
    {
        Temple newTemple = new Temple(name, cost, description, faction);

        newTemple.portrait = portrait;
        newTemple.faction  = faction;
        newTemple.unit     = unit.DeepCopy();
        return(newTemple);
    }
示例#5
0
 public void StoreEnemy(GameObject army, MapUnit unit)
 {
     if (!unit.name.Contains("Temple") && !unit.name.Contains("Altar"))
     {
         MapUnit newUnit = unit.DeepCopy();
         newUnit.currentHealth = newUnit.maxHealth / 4;
         newUnit.currentShield = newUnit.maxShield;
         army.GetComponent <Army>().defeatedEnemies.Add(newUnit);
     }
 }
示例#6
0
    private void MakeCarnot(GameObject player)
    {
        MapUnit peon = new MapUnit("peon", Faction.Carnot, "peon");

        peon.SetHealth(25);
        peon.maxDamage   = 5;
        peon.attackRange = 1;
        peon.attackSpeed = 60;
        peon.moneyCost   = 5;
        peon.zealCost    = 0;
        peon.power       = 10;
        peon.Reset();
        player.GetComponent <Player>().unitBlueprints.Add(peon.DeepCopy());
        //unitSpaces[0].GetComponent<UnitShopSpace>().AddUnit(peon);

        MapUnit acolyte = new MapUnit("acolyte", Faction.Carnot, "acolyte");

        acolyte.SetHealth(40);
        acolyte.maxDamage   = 9;
        acolyte.attackRange = 1;
        acolyte.attackSpeed = 120;
        acolyte.moneyCost   = 10;
        acolyte.zealCost    = 0;
        acolyte.power       = 15;
        acolyte.Reset();
        player.GetComponent <Player>().unitBlueprints.Add(acolyte.DeepCopy());
        //unitSpaces[1].GetComponent<UnitShopSpace>().AddUnit(acolyte);

        MapUnit shaman = new MapUnit("shaman", Faction.Carnot, "shaman");

        shaman.SetHealth(50);
        shaman.maxDamage   = 12;
        shaman.attackRange = 3;
        shaman.attackSpeed = 180;
        shaman.moneyCost   = 10;
        shaman.zealCost    = 1;
        shaman.power       = 15;
        shaman.Reset();
        player.GetComponent <Player>().unitBlueprints.Add(shaman.DeepCopy());
        //unitSpaces[2].GetComponent<UnitShopSpace>().AddUnit(shaman);

        MapUnit prelate = new MapUnit("prelate", Faction.Carnot, "prelate");

        prelate.SetHealth(60);
        prelate.maxDamage   = 20;
        prelate.attackRange = 2;
        prelate.attackSpeed = 240;
        prelate.moneyCost   = 20;
        prelate.zealCost    = 0;
        prelate.power       = 25;
        prelate.Reset();
        player.GetComponent <Player>().unitBlueprints.Add(prelate.DeepCopy());
        //unitSpaces[3].GetComponent<UnitShopSpace>().AddUnit(prelate);
    }
    public void BuyUnit(GameObject army, UnitPos unitPos)
    {
        //print("buying unit");
        MapUnit unitToBuy = unit.DeepCopy();

        if (NodeMenu.currentNode.GetComponent <Node>().temple != null && NodeMenu.currentNode.GetComponent <Node>().temple.name == TempleName.Armaments)
        {
            unitToBuy.moneyCost = (int)(unitToBuy.moneyCost * 0.6f);
        }
        army.GetComponent <Army>().BuyUnit(unitPos, unitToBuy);
        LeaveMenu();
    }
示例#8
0
    public void AddUnit(int index, bool fRow, MapUnit unit)
    {
        //print("adding unit");
        MapUnit newUnit = unit.DeepCopy();

        if (fRow)
        {
            frontRow[index] = newUnit;
        }
        else
        {
            backRow[index] = newUnit;
        }
        if (fRow)
        {
            index += 4;
        }
        units.Add(newUnit);
    }
 public void BuyUnit(GameObject army, UnitPos unitPos)
 {
     army.GetComponent <Army>().BuyFakeUnit(unitPos, unit.DeepCopy());
     LeaveMenu();
 }
 public void SetUnit(MapUnit newUnit)
 {
     unit = newUnit.DeepCopy();
 }