/// <summary> /// Gives the troop pre-defined starting stats based on classifications. /// </summary> public void ApplyStats(TroopClassification classification) { Dictionary <Stat, int> stats = TroopStats.statLedger[classification]; melee = stats[Stat.MELEE]; ranged = stats[Stat.RANGED]; movement = stats[Stat.MOVEMENT]; defense = stats[Stat.DEFENSE]; health = stats[Stat.HEALTH]; }
/// <summary> /// Checks whether or not the Emperor has enough gold to purchase a given troop. /// If the Emperor can purchase the troops, remove the gold and generate the troops. /// </summary> public void PurchaseTroop(TroopClassification troopClass, City city) { int price = TroopStats.statLedger[troopClass][Stat.COST]; if ((gold >= price && city.hasAction)) { city.AddOccupyingUnits(UnitFactory.instance.GenerateTroop(troopClass, allegiance)); city.UseAction(); gold -= price; } }
/// <summary> /// Instantiates a new game object with an attached Troop script. /// Returns the Troop object in that script. /// </summary> public List <Troop> GenerateTroop(TroopClassification classification, Allegiance allegiance) { /// Increment the Allegiance's troop count troopCounts[allegiance][classification] = troopCounts[allegiance][classification] + 1; // Create an empty troop game object Troop troop = GameObject.Instantiate(emptyUnitPrefab).AddComponent <Troop>(); troop.unitName = $"{Utilities.instance.CountToOrdinal(troopCounts[allegiance][classification])}" + $" {Utilities.instance.UppercaseFirstLetter(allegiance.ToString())}" + $" {Utilities.instance.UppercaseFirstLetter(classification.ToString())}"; troop.InitializeTroop(classification, allegiance); return(new List <Troop>() { troop }); }
/// <summary> /// Adds text to the button. /// Adds on-click functionality to the purchase button. /// </summary> public void Initialize(TroopClassification spawnClass, City city) { classification = spawnClass; CreateButtonFromSpawnClass(city); }
public PurchaseTroopAction(City city, Leader leader, TroopClassification troopClassification) { this.city = city; this.leader = leader; this.troopClass = troopClassification; }
public void InitializeTroop(TroopClassification classification, Allegiance allegiance) { this.allegiance = allegiance; ApplyStats(classification); }
public static int GetTroopStat(TroopClassification classification, Stat stat) { return(TroopStats.statLedger[classification][stat]); }