public void OdeberSoupereZPrioritSouperuAprovincii(Hrac souperProOdebrani)
        {
            int index = Souperi.IndexOf(souperProOdebrani);

            PrioritySouperu.RemoveAt(index);
            PriorityProvinciiSouperu.RemoveAt(index);
        }
        public void ZvysPriorituProvincie(Provincie provincieProInkrementaci, int hodnota)
        {
            Hrac vlastnik       = provincieProInkrementaci.Vlastnik;
            int  indexVlastnika = Souperi.IndexOf(vlastnik);
            int  indexProvincie = vlastnik.SeznamProvincii.IndexOf(provincieProInkrementaci);

            PriorityProvinciiSouperu[indexVlastnika][indexProvincie] += hodnota;
        }
        public void PrepocitejPriorityProvinciiProNovehoVlastnika(Hrac novyVlastnik, Hrac byvalyVlastnik, Provincie obsazenaProvincie)
        {
            if (byvalyVlastnik != this)
            {
                int indexByvalehoVlastnika          = Souperi.IndexOf(byvalyVlastnik);
                int indexProvincieByvalehoVlastnika = byvalyVlastnik.SeznamProvincii.IndexOf(obsazenaProvincie);
                PriorityProvinciiSouperu[indexByvalehoVlastnika].RemoveAt(indexProvincieByvalehoVlastnika);
            }

            if (novyVlastnik != this)
            {
                int indexNovehoVlastnika = Souperi.IndexOf(novyVlastnik);
                PriorityProvinciiSouperu[indexNovehoVlastnika].Add(0);
            }
        }
        private void ZagrajUtocneKolco()
        {
            Budova dojo = Hra.AktualniProvincie.Budovy[5];

            if (dojo.Level == 0)
            {
                int postavit = Hra.NahodnyGenerator.Next(0, 2);

                if (postavit == 1)
                {
                    while (dojo.Level != 3 && dojo.JsouSurovinyNaRozsireni())
                    {
                        RozsirBudovu(dojo);
                    }
                }
            }


            PostavJednotky();

            List <Hrac> souperiSnejvyssiPrioritou = new List <Hrac>();

            int nejvyssiPrioritaSouperu = PrioritySouperu.Max();

            //Do pole souepriSnejvysiiBlabla přida soupeře se stejnou prioritou ktera je nejvyssi
            for (int i = 0; i < Souperi.Count; i++)
            {
                if (PrioritySouperu[i] == nejvyssiPrioritaSouperu)
                {
                    souperiSnejvyssiPrioritou.Add(Souperi[i]);
                }
            }

            int  indexVybranehoSoupere = Hra.NahodnyGenerator.Next(0, souperiSnejvyssiPrioritou.Count);
            Hrac vybranySouper         = souperiSnejvyssiPrioritou[indexVybranehoSoupere];

            int indexVybranehoSoupereVkolekci = Souperi.IndexOf(vybranySouper);


            //Do poleProvincieSnejvyssiPrioritou přidá provincie s prioritou té nejvyšší
            int nejvyssiPrioritaProvincie = PriorityProvinciiSouperu[indexVybranehoSoupereVkolekci].Max();

            List <Provincie> provincieSnejvyssiPrioritou = new List <Provincie>();

            for (int i = 0; i < vybranySouper.SeznamProvincii.Count; i++)
            {
                if (PriorityProvinciiSouperu[indexVybranehoSoupereVkolekci][i] == nejvyssiPrioritaProvincie)
                {
                    provincieSnejvyssiPrioritou.Add(vybranySouper.SeznamProvincii[i]);
                }
            }


            int       indexVybraneProvincie         = Hra.NahodnyGenerator.Next(0, provincieSnejvyssiPrioritou.Count);
            Provincie vybranaProvincie              = provincieSnejvyssiPrioritou[indexVybraneProvincie];
            int       indexVybraneProvincieVkolekci = vybranySouper.SeznamProvincii.IndexOf(vybranaProvincie);



            //Kontrola zda byla provincie špehována
            Zprava zpravaOSpehovani = null;

            bool bylaSpehovana = false;

            foreach (Zprava z in ZpravyNinju)
            {
                if (vybranaProvincie.JmenoProvincie == z.JmenoProvincie)
                {
                    bylaSpehovana    = true;
                    zpravaOSpehovani = z;
                }
            }

            if (bylaSpehovana && zpravaOSpehovani.Stari < 4)
            {
                if (Hra.AktualniProvincie.Populace <= zpravaOSpehovani.PocetObyvatel)
                {
                    PriorityProvinciiSouperu[indexVybranehoSoupereVkolekci][indexVybraneProvincieVkolekci]++;
                }
                int priorita = PriorityProvinciiSouperu[indexVybranehoSoupereVkolekci][indexVybraneProvincieVkolekci];

                if (Hra.AktualniProvincie.Populace >= zpravaOSpehovani.PocetObyvatel || priorita > 30)
                {
                    VyberJednoktyDoBoje(vybranaProvincie);
                }
            }
            else
            {
                Jednotka ninjove = Hra.AktualniProvincie.Ninjove;
                if (ninjove.Pocet != 0)
                {
                    VyslatNinju(vybranaProvincie);
                }
                else
                {
                    if (ninjove.JeOdemknutaVbudove() == false) //dojo
                    {
                        RozsirBudovu(ninjove.VlastnenaBudova);
                    }

                    if (ninjove.JeOdemknutaVbudove() == true)
                    {
                        ninjove.NaverbujJednotky();
                        if (ninjove.Pocet != 0)
                        {
                            VyslatNinju(vybranaProvincie);
                        }
                    }
                }
            }

            //Vyšpehuje ostatní vesnice
            if (Hra.AktualniProvincie.Ninjove.Pocet != 0)
            {
                List <Provincie> dalsiProvincieKeSpehovani = new List <Provincie>();
                foreach (Provincie p in Hra.SeznamProvincii)
                {
                    if (p.Vlastnik != this && Hra.AktualniProvincie.NepratelskeProvincieProSpehovani.IndexOf(p) == -1)
                    {
                        dalsiProvincieKeSpehovani.Add(p);
                    }
                }

                for (int i = 0; i < Hra.AktualniProvincie.Ninjove.Pocet; i++)
                {
                    if (dalsiProvincieKeSpehovani.Count == 0)
                    {
                        break;
                    }

                    int nahodnyIndexProvincie = Hra.NahodnyGenerator.Next(0, dalsiProvincieKeSpehovani.Count);

                    Provincie provincieKeSpehovani = dalsiProvincieKeSpehovani[nahodnyIndexProvincie];

                    VyslatNinju(vybranaProvincie);

                    dalsiProvincieKeSpehovani.RemoveAt(nahodnyIndexProvincie);
                }
            }
        }
        public void ZvzsPriorituVladce(Hrac vladceProInkrementaci, int hodnota)
        {
            int indexVladce = Souperi.IndexOf(vladceProInkrementaci);

            PrioritySouperu[indexVladce] += hodnota;
        }