Пример #1
0
        public void PosliJednotky(Provincie cilovaProvincie, Jednotka[] armada)
        {
            //Pokud je ćilová provincie naše - příjme jednokty - !zaútočí
            if (Hra.AktualniHrac.SeznamProvincii.IndexOf(cilovaProvincie) != -1)
            {
                if (Hra.AktualniHrac == Hra.Player)
                {
                    Hra.ZobrazPrehled(Hra.Player, true);

                    Console.ForegroundColor = ConsoleColor.Cyan;
                    Console.WriteLine("Jednotky z provincie {0} dorazily do provincie {1}", JmenoProvincie, cilovaProvincie.JmenoProvincie);
                    Hra.VypisArmadu(armada.ToList());
                    Console.ResetColor();

                    Console.WriteLine("\n\nENTER");
                    Console.ReadLine();
                }

                cilovaProvincie.PrijmiJednotky(armada);
            }
            else
            {
                ZautocNaProvincii(cilovaProvincie, armada.ToList());
            }
        }
Пример #2
0
        private void ZautocNaProvincii(Provincie nepratelskaProvincie, List <Jednotka> utociciArmada)
        {
            Hrac utocnik = Vlastnik;
            Hrac obrance = nepratelskaProvincie.Vlastnik;

            List <Jednotka> braniciArmada = new List <Jednotka>();

            foreach (Jednotka j in nepratelskaProvincie.Jednotky)
            {
                if (j.Pocet > 0)
                {
                    braniciArmada.Add(j);
                }
            }

            Jednotka[] puvodniArmadaUtocnika = new Jednotka[utociciArmada.Count]; //Pro zprávu
            for (int i = 0; i < puvodniArmadaUtocnika.Length; i++)
            {
                puvodniArmadaUtocnika[i] = new Jednotka(utociciArmada[i]);
            }

            Jednotka[] puvodniArmadaObrance = new Jednotka[braniciArmada.Count]; //Pro zprávu
            for (int i = 0; i < puvodniArmadaObrance.Length; i++)
            {
                puvodniArmadaObrance[i] = new Jednotka(braniciArmada[i]);
            }

            //Útočník = A
            //Obránce = B

            nepratelskaProvincie.ZvysJednotkamObranuZhradeb(braniciArmada.ToArray());

            while (Hra.VratPocetArmady(utociciArmada) != 0 && Hra.VratPocetArmady(braniciArmada) != 0)
            {
                /*
                 * List<Jednotka> braniciArmadaReference = VyhodnotUtok(utociciArmada, braniciArmada);
                 * List<Jednotka> utociciArmadaReference = VyhodnotUtok(braniciArmada, utociciArmada);*/

                List <Jednotka> braniciArmadaReference = VvyhodnotUtok(utociciArmada, braniciArmada);
                List <Jednotka> utociciArmadaReference = VvyhodnotUtok(braniciArmada, utociciArmada);

                /*Console.WriteLine(Hra.VratPocetArmady(utociciArmada));
                 * Console.WriteLine(Hra.VratPocetArmady(braniciArmada));
                 * Console.WriteLine();*/

                for (int i = 0; i < braniciArmadaReference.Count; i++)
                {
                    braniciArmada[i].NastavPocet(braniciArmadaReference[i].Pocet);
                }
                for (int i = 0; i < utociciArmadaReference.Count; i++)
                {
                    utociciArmada[i].NastavPocet(utociciArmadaReference[i].Pocet);
                }


                /*Console.WriteLine(Hra.VratPocetArmady(utociciArmada));
                 * Console.WriteLine(Hra.VratPocetArmady(braniciArmada));
                 * Console.WriteLine();
                 * Console.WriteLine();*/
            }

            nepratelskaProvincie.NastavJednoktamObranuNaPuvodni(braniciArmada.ToArray());

            //Vyhodnocení bitvy
            if (Hra.VratPocetArmady(utociciArmada) > 0) //Vyhrála útočíci armáda
            {
                if (utocnik == Hra.Player)
                {
                    utocnik.ZobrazZpravuPoBitve(true, true, this, nepratelskaProvincie, utociciArmada.ToArray(), puvodniArmadaUtocnika, braniciArmada.ToArray(), puvodniArmadaObrance);
                }
                else
                if (obrance == Hra.Player)
                {
                    obrance.ZobrazZpravuPoBitve(false, false, this, nepratelskaProvincie, braniciArmada.ToArray(), puvodniArmadaObrance, utociciArmada.ToArray(), puvodniArmadaUtocnika);
                }

                Vlastnik.ObsadProvincii(nepratelskaProvincie);

                //Návrat armády
                nepratelskaProvincie.PrijmiJednotky(utociciArmada.ToArray());
            }
            else
            {
                if (utocnik == Hra.Player)
                {
                    utocnik.ZobrazZpravuPoBitve(true, false, this, nepratelskaProvincie, utociciArmada.ToArray(), puvodniArmadaUtocnika, braniciArmada.ToArray(), puvodniArmadaObrance);
                }
                else
                if (obrance == Hra.Player)
                {
                    obrance.ZobrazZpravuPoBitve(false, true, this, nepratelskaProvincie, braniciArmada.ToArray(), puvodniArmadaObrance, utociciArmada.ToArray(), puvodniArmadaUtocnika);
                }

                if (obrance is Pocitac)
                {
                    ((Pocitac)obrance).ZvysPriorituProvincie(this, 1);
                    ((Pocitac)obrance).ZvzsPriorituVladce(Vlastnik, 2);
                }
            }
        }