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