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