Пример #1
0
        public void ObsadProvincii(Provincie porazenaProvincie)
        {
            Hrac porazenySouper = porazenaProvincie.Vlastnik;

            //Přepočítání priorit !!!!!!!!!!!!!!!!!!!!!!ZměnA

            foreach (Hrac h in Hra.Vladci)
            {
                if (h is Pocitac)
                {
                    ((Pocitac)h).PrepocitejPriorityProvinciiProNovehoVlastnika(this, porazenySouper, porazenaProvincie);
                }
            }

            porazenaProvincie.VynulujProvincieAJednotkyProUtok();
            porazenaProvincie.VynulujProvincieASurovinyProDovoz();
            porazenaProvincie.VynulujProvincieProSpehovani();
            porazenaProvincie.VynulujJednoktyAProvincieProPodporu();

            porazenaProvincie.Ninjove.NastavPocet(0);
            porazenaProvincie.NinjoveMimoProvincii.NastavPocet(0);

            foreach (Jednotka j in porazenaProvincie.Jednotky)
            {
                j.NastavPocet(0);
            }

            SeznamProvincii.Add(porazenaProvincie);
            porazenySouper.SeznamProvincii.Remove(porazenaProvincie);

            if (this is Pocitac)
            {
                ((Pocitac)this).ZvzsPriorituVladce(porazenySouper, 1);
            }
            if (porazenySouper is Pocitac)
            {
                ((Pocitac)porazenySouper).ZvysPriorituProvincie(porazenaProvincie, 2);
                ((Pocitac)porazenySouper).ZvzsPriorituVladce(this, 2);
            }

            bool vladceVyhlazen = false;

            if (porazenySouper.SeznamProvincii.Count == 0)
            {
                //Priority - dříve - referenční pole Soupeři majngot
                foreach (Hrac h in Hra.Vladci)
                {
                    if (h is Pocitac && h != porazenySouper)
                    {
                        ((Pocitac)h).OdeberSoupereZPrioritSouperuAprovincii(porazenySouper);
                    }
                }

                Hra.OdeberVladce(porazenySouper);
                vladceVyhlazen = true;

                //Přepočítá všem hráčům ve hře jejich soupeře
                Hra.PrepocitejSoupereVladcu();
            }

            if (this != Hra.Player && porazenySouper != Hra.Player)
            {
                Hra.VypisZpravuOobsazeni(Jmeno, porazenaProvincie.JmenoProvincie, porazenySouper.Jmeno, vladceVyhlazen);
            }
        }