Example #1
0
    public static ISoldier GetSoldier(Enums.SoldierType soldierType, string[] soldierParams, Dictionary <string, Private> privatesById)
    {
        ISoldier soldier = null;

        switch (soldierType)
        {
        case Enums.SoldierType.Private:
            soldier = GetPrivate(soldierParams);
            privatesById[soldier.Id] = (Private)soldier;
            break;

        case Enums.SoldierType.LeutenantGeneral:
            soldier = GetLeutenantGeneral(soldierParams, privatesById);
            break;

        case Enums.SoldierType.Engineer:
            soldier = GetEngineer(soldierParams);
            break;

        case Enums.SoldierType.Commando:
            soldier = GetCommando(soldierParams);
            break;

        case Enums.SoldierType.Spy:
            soldier = GetSpy(soldierParams);
            break;
        }

        return(soldier);
    }
Example #2
0
 public void InitializeSoldier(Soldier soldier)
 {
     this.ImagePath     = soldier.ImagePath;
     this.Name          = soldier.Name;
     this.AttackValue   = soldier.AttackValue;
     this.Price         = soldier.Price;
     this.Health        = soldier.Health;
     this.Type          = soldier.Type;
     this.StrongAgainst = soldier.StrongAgainst;
 }
Example #3
0
    public static void Main()
    {
        List <ISoldier> soldiers = new List <ISoldier>();
        Dictionary <string, Private> privatesById = new Dictionary <string, Private>();

        string input = null;

        while ((input = Console.ReadLine()) != "End")
        {
            string[] soldierParams = input.Split();

            Enums.SoldierType soldierType = Enum.Parse <Enums.SoldierType>(soldierParams[0]);

            ISoldier soldier = SoldierFactory.GetSoldier(soldierType, soldierParams.Skip(1).ToArray(), privatesById);

            if (soldier != null)
            {
                soldiers.Add(soldier);
            }
        }

        soldiers.ForEach(Console.WriteLine);
    }