public FazaIgre slijedecaFaza() { switch (fazaIgre) { case FazaIgre.NoviKrug: for (trenutniIgracIndex++; trenutniIgracIndex < igraci.Count; trenutniIgracIndex++) { if (igraci[trenutniIgracIndex].tip != Igrac.Tip.COVJEK) { igraci[trenutniIgracIndex].Upravljac.OdigrajKrug(this); } else { return(FazaIgre.NoviKrug); } } pocetakKrajaKruga(); fazaIgre = FazaIgre.Bitke; return(fazaIgre); case FazaIgre.Bitke: zavrsiKrug(); trenutniIgracIndex = 0; fazaIgre = FazaIgre.NoviKrug; return(fazaIgre); } while (true) { trenutniIgracIndex++; if (trenutniIgracIndex >= igraci.Count) { zavrsiKrug(); trenutniIgracIndex = 0; } if (igraci[trenutniIgracIndex].tip != Igrac.Tip.COVJEK) { igraci[trenutniIgracIndex].Upravljac.OdigrajKrug(this); } else { return(FazaIgre.NoviKrug); } } }
private void backgroundTurnProcessor_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { FazaIgre faza = (FazaIgre)e.Result; switch (faza) { case FazaIgre.NoviKrug: noviKrugPogled(); bool imaPoruka = false; var filtriranePoruke = igrac.FiltriranePoruke(); foreach (Poruka.Tip tip in filtriranePoruke.Keys) { if (igrac.filtarPoruka[tip] && filtriranePoruke[tip].Count > 0) { imaPoruka = true; } } zakljucajSucelje(false); if (imaPoruka) { novostiMenu_Click(this, null); } break; case FazaIgre.Bitke: while (igra.SlijedeciKonflikt() != null) { Konflikt konflikt = igra.SlijedeciKonflikt(); if (konflikt.Faza == StanjeKonflikta.SvemirskiSukob) { using (var formBitka = new FormBorba(konflikt.ZapocniBorbu(), konflikt.Lokacija)) formBitka.ShowDialog(); } } backgroundTurnProcessor.RunWorkerAsync(); break; } }
public IgraZvj(List <Igrac.ZaStvoriti> igraci, Mapa.GraditeljMape mapa, PocetnaPopulacija pocetnaPop) { this.igraci = new List <Igrac>(); this.mapa = mapa.mapa; trenutniIgracIndex = 0; fazaIgre = FazaIgre.NoviKrug; brKruga = 0; tempPoeniRazvoja = new long[igraci.Count]; tempPoeniIstraz = new long[igraci.Count]; konflikti = new Queue <Konflikt>(); osnovniEfekti = PodaciAlat.ucitajBazuEfekata(); foreach (Igrac.ZaStvoriti igrac in igraci) { if (igrac.tip == Igrac.Tip.COVJEK) { this.igraci.Add(igrac.stvoriIgraca(this.igraci.Count)); } } foreach (Igrac.ZaStvoriti igrac in igraci) { if (igrac.tip == Igrac.Tip.RACUNALO) { this.igraci.Add(igrac.stvoriRacunalnogIgraca(this.igraci.Count)); } } Vadjenje <Zvijezda> pocetnePozicije = new Vadjenje <Zvijezda>(); foreach (Zvijezda pl in mapa.pocetnePozicije) { pocetnePozicije.dodaj(pl); } for (int i = 0; i < igraci.Count; i++) { this.igraci[i].izracunajEfekte(this); postaviIgraca(this.igraci[i], pocetnePozicije.izvadi(), pocetnaPop); this.igraci[i].staviNoveTehnologije(this); this.igraci[i].izracunajPoeneIstrazivanja(this); this.igraci[i].staviPredefiniraneDizajnove(); } foreach (Zvijezda zvj in this.mapa.zvijezde) { foreach (Planet pl in zvj.planeti) { if (pl.kolonija != null) { pl.kolonija.resetirajEfekte(); } } zvj.IzracunajEfekte(); // Za potrebe debugiranja /* for (int i = 0; i < igraci.Count; i++) * this.igraci[i].posjeceneZvjezde.Add(zvj); */ } }