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(); }
public Altar DeepCopy() { Altar newAltar = new Altar(name, cost, description); newAltar.portrait = portrait; newAltar.unit = unit.DeepCopy(); return(newAltar); }
public Temple DeepCopy() { Temple newTemple = new Temple(name, cost, description, faction); newTemple.portrait = portrait; newTemple.faction = faction; newTemple.unit = unit.DeepCopy(); return(newTemple); }
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); } }
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(); }
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(); }