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); }
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; }
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); }