public void IzvrsiKolonizacije() { foreach (KeyValuePair <Zvijezda, Flota> flotaStac in floteStacionarne) { Zvijezda zvijezda = flotaStac.Key; Flota flota = flotaStac.Value; #region Kolonizacija foreach (Flota.Kolonizacija kolonizacija in flota.kolonizacije) { zvijezda.Naseli(this); Planet planet = zvijezda.planeti[kolonizacija.planet]; double maxDodatnaPopulacija = 0; if (planet.kolonija == null) { Kolonija kolonija = new Kolonija(this, planet, 10, 0); maxDodatnaPopulacija = kolonija.Efekti[Kolonija.PopulacijaMax]; } else { maxDodatnaPopulacija = (planet.kolonija.Efekti[Kolonija.PopulacijaMax] - planet.kolonija.Populacija); } long populacijaBroda = kolonizacija.brod.dizajn.populacija; long radnaMjestaBroda = kolonizacija.brod.dizajn.radnaMjesta; long brBrodova = (long)(Math.Min(kolonizacija.brBrodova, Math.Ceiling(maxDodatnaPopulacija / populacijaBroda))); if (planet.kolonija == null) { planet.kolonija = new Kolonija( this, planet, populacijaBroda * brBrodova, radnaMjestaBroda * brBrodova); poruke.AddLast(Poruka.NovaKolonija(planet.kolonija)); } else { planet.kolonija.dodajKolonizator( populacijaBroda * brBrodova, radnaMjestaBroda * brBrodova); } flota.ukloniBrod(kolonizacija.brod.dizajn, brBrodova); } flota.kolonizacije.Clear(); #endregion if (flota.brodovi.Count == 0) { floteStacionarne.PendRemove(zvijezda); } } floteStacionarne.ApplyRemove(); }