예제 #1
0
        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);
            }
        }
예제 #2
0
        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++;
                        }
                    }
                }
            }
        }
예제 #3
0
        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);
        }
예제 #4
0
        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();
        }
예제 #5
0
 public void PutThiefInPrison(Thief thief)
 {
     Program.Prison.Add(thief);
     InPrison = true;
     SetStartTimeForPrison();
 }