Exemple #1
0
    /// <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];
    }
Exemple #2
0
    /// <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;
        }
    }
Exemple #3
0
    /// <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;
 }
Exemple #6
0
 public void InitializeTroop(TroopClassification classification, Allegiance allegiance)
 {
     this.allegiance = allegiance;
     ApplyStats(classification);
 }
Exemple #7
0
 public static int GetTroopStat(TroopClassification classification, Stat stat)
 {
     return(TroopStats.statLedger[classification][stat]);
 }