public void Robbery(Person thief, Person citizen) { Thief _thief = (Thief)thief; Citizen _citizen = (Citizen)citizen; if (_citizen.Possessions.Count > 0) { int robbedItem = rnd.Next(0, _citizen.Possessions.Count); Console.Clear(); Console.SetCursorPosition(Width / 2 - 13, Height / 2 - 1); Console.WriteLine("A thief robbed a citizen.."); Console.SetCursorPosition(Width / 2 - 9, Height / 2 + 1); Console.WriteLine("Stolen item: " + _citizen.Possessions[robbedItem].Name); Thread.Sleep(2000); _thief.StolenItems.Add(_citizen.Possessions[robbedItem]); _citizen.Possessions.Remove(_citizen.Possessions[robbedItem]); } else { Console.Clear(); Console.SetCursorPosition(Width / 2 - 13, Height / 2 - 1); Console.WriteLine("A thief tried to rob a citizen.."); Console.SetCursorPosition(Width / 2 - 18, Height / 2 + 1); Console.WriteLine("but the citizen had nothing to steal"); Thread.Sleep(2000); } }
public void StealFromCitizen(int xPosition, int yPosition, Thief currentThief) { Random random = new Random(); foreach (Person person in Program.City) { if (person.XPosition == xPosition && person.YPosition == yPosition) { if (person is Citizen) { if (((Citizen)person).Belongings.Any()) { int numberInList = random.Next(0, ((Citizen)person).Belongings.Count); currentThief.StolenGoods.Add(((Citizen)person).Belongings.ElementAt <Inventory>(numberInList)); ((Citizen)person).Belongings.RemoveAt(numberInList); Program.CountTotalCitizensRobbed++; Program.CountTotalRobAttempts++; Program.NumberOfRobbedCitizensOnThisPosition++; } else { Program.CountTotalRobAttempts++; } } } } }
public void Arrest(Person police, Person thief) { Police _police = (Police)police; Thief _thief = (Thief)thief; if (_thief.StolenItems.Count > 0) { } Console.Clear(); Console.SetCursorPosition(Width / 2 - 17, Height / 2 - 1); Console.Write("A police officer arrested a thief.."); Thread.Sleep(1000); }
public static void Seize(List <Police> policesOnThisPosition, Thief currentThief) { int policeThatSeize = 0; if (policesOnThisPosition.Count > 1) { Random random = new Random(); policeThatSeize = random.Next(0, policesOnThisPosition.Count); } foreach (var item in currentThief.StolenGoods) { (policesOnThisPosition.ElementAt <Police>(policeThatSeize)).Seized.Add(item); } currentThief.StolenGoods.Clear(); }
public void PutThiefInPrison(Thief thief) { Program.Prison.Add(thief); InPrison = true; SetStartTimeForPrison(); }