public static void Shoot(Soldier shooter, Soldier target) { const float chanceToHit = 50; var hit = _random.Next(100); if (hit > chanceToHit) { target.HP -= 50; if (target.HP <= 0) { Console.WriteLine($"{target.Name}, {target.Age} years old met his destiny"); shooter.XP += 100; } else { shooter.XP += 10; } } if (shooter.XP >= shooter.XPForPromotion) { shooter.XP -= shooter.XPForPromotion; if (shooter is Leutenant) { shooter = new Commander() { Age = shooter.Age, Height = shooter.Height, Name = shooter.Name, HP = shooter.HP, Weight = shooter.Weight, XP = shooter.XP, XPForPromotion = 1000 }; } else if (shooter is Soldier) { shooter = new Leutenant() { Age = shooter.Age, Height = shooter.Height, Name = shooter.Name, HP = shooter.HP, Weight = shooter.Weight, XP = shooter.XP, XPForPromotion = 1000 }; } } if (shooter is Commander) { Console.WriteLine("War is over!"); // Clear reserve. reserver = new List <Soldier>(); } }
private static void GenericCollectionPrintTest() { var cleaner = new Cleaner("Tom", new DateTime(1994, 11, 20), 600); var firefighter = new Firefighter("Jack", new DateTime(1987, 5, 5), 1000); var leutenant = new Leutenant("Igor", new DateTime(1947, 5, 5), 2000); var general = new General("Daniel", new DateTime(1958, 6, 2), 3060); Profession[] profesions = { cleaner, firefighter, leutenant, general }; profesions.Print(); }
public void SoldierExperiment() { var soldier1 = new Recruit("Michael", new DateTime(1994, 3, 17), 450); var soldier2 = new Leutenant("Michael", new DateTime(1994, 3, 17), 450); var soldier3 = new General("Michael", new DateTime(1994, 3, 17), 450); var soldier4 = new Recruit("Michael", new DateTime(1994, 3, 17), 450); var soldier5 = new Recruit("Michael", new DateTime(1994, 3, 17), 450); Soldier[] soldiers = { soldier1, soldier2, soldier3, soldier3, soldier4, soldier5 }; foreach (var soldier in soldiers) { soldier.Promote(); } }
private ISoldier GetLeutenant(string id, string firstName, string lastName, decimal salary, string[] partitions) { Leutenant leutenant = new Leutenant(id, firstName, lastName, salary); for (int i = 5; i < partitions.Length; i++) { string currentId = partitions[i]; var currentPrivate = soldiers.FirstOrDefault(p => p.Id == currentId); leutenant.Privates.Add((IPrivate)currentPrivate); } return(leutenant); }