private void provjeriDizajn() { Dizajn dizajn = dizajner.dizajn; bool valid = true; if (dizajner.slobodnaNosivost < 0) { valid = false; } if (dizajn.ime == null) { valid = false; } else if (dizajn.ime.Trim().Length == 0) { valid = false; } if (!valid && btnSpremi.Enabled == true) { btnSpremi.Enabled = false; } if (valid && btnSpremi.Enabled == false) { btnSpremi.Enabled = true; } }
private void btnSpremi_Click(object sender, EventArgs e) { HashSet <Sazetak> postojeciDizajnovi = new HashSet <Sazetak>(); foreach (DizajnZgrada dizajnZgrada in igrac.dizajnoviBrodova) { postojeciDizajnovi.Add(dizajnZgrada.dizajn.stil); } if (postojeciDizajnovi.Contains(dizajner.dizajn.stil)) { MessageBox.Show(jezik["opIstiDizajnTekst"].tekst(), jezik["opIstiDizajnNaslov"].tekst(), MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } if (String.IsNullOrEmpty(txtNaziv.Text.Trim())) { MessageBox.Show(jezik["opNazivDizajnaTekst"].tekst(), jezik["opNazivDizajnaNaslov"].tekst(), MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } else { dizajner.dizajnIme = txtNaziv.Text.Trim(); } this.Dizajn = dizajner.dizajn; //igrac.dodajDizajn(dizajner.dizajn); //dizajner.reset(igrac); DialogResult = DialogResult.OK; Close(); }
public PorukaBrod(Zvijezda zvijezda, Dizajn dizajn, long kolicina) : base(Tip.Brod) { this.dizajn = dizajn; this.kolicina = kolicina; this.zvijezda = zvijezda; }
public new static Poruka Ucitaj(PodaciCitac ulaz, Dictionary <int, Zvijezda> zvijezdeID, Dictionary <int, Dizajn> dizajnID) { Zvijezda zvj = zvijezdeID[ulaz.podatakInt(PohIzvor)]; Dizajn dizajn = dizajnID[ulaz.podatakInt(PohDizajn)]; long kolicina = ulaz.podatakLong(PohKolicina); return(new PorukaBrod(zvj, dizajn, kolicina)); }
private void lstvDizajnovi_SelectedIndexChanged(object sender, EventArgs e) { if (lstvDizajnovi.SelectedItems.Count == 0) { return; } Dizajn dizajn = (Dizajn)lstvDizajnovi.SelectedItems[0].Tag; picSlikaDizajna.Image = dizajn.slika; List <string> opisDizajna = new List <string>(); opisDizajna.Add(dizajn.ime); opisDizajna.Add(dizajn.trup.naziv); opisDizajna.Add(""); Dictionary <string, ITekst> jezik = Postavke.Jezik[Kontekst.FormFlote]; foreach (InfoStranice stranica in Enum.GetValues(typeof(InfoStranice))) { Trace.WriteLine(stranica.ToString()); if (stranica == InfoStranice.SpecijalnaOprema) { foreach (SpecijalnaOprema so in dizajn.specijalnaOprema.Keys) { specijalnaOpremaZaOpis = so; opisDizajna.AddRange(opis(stranica, dizajn, false)); opisDizajna.Add(""); } } else { opisDizajna.AddRange(opis(stranica, dizajn, false)); opisDizajna.Add(""); } if (stranica == InfoStranice.SekundarnaMisija) { opisDizajna.Add(jezik["opisOklop"].tekst() + ":"); opisDizajna.Add(""); opisDizajna.Add(dizajn.oklop.naziv); opisDizajna.Add(jezik["opisOklopIzd"].tekst() + ": " + dizajn.izdrzljivostOklopa); opisDizajna.Add(""); } } txtDizajnInfo.Lines = opisDizajna.ToArray(); if (dizajn.brojBrodova == 0) { btnUkloniDizajn.Enabled = true; } else { btnUkloniDizajn.Enabled = false; } }
public void ukloniBrod(Dizajn dizajn, long kolicina) { brodovi[dizajn].ukloni(kolicina); if (brodovi[dizajn].kolicina <= 0) { brodovi.Remove(dizajn); } }
public void SetData(IList <Borac> grupaBoraca, bool prikazPrikrivanja) { this.dizajn = grupaBoraca[0].Dizajn; this.bojaIgraca = grupaBoraca[0].Igrac.boja; this.grupaBoraca = grupaBoraca; picPrikrivanje.Visible = prikazPrikrivanja; RefreshData(); }
public void dodajBrod(Dizajn dizajn, long kolicina, Zvijezda zvijezda) { if (!floteStacionarne.ContainsKey(zvijezda)) { floteStacionarne.Add(zvijezda, new Flota(zvijezda.x, zvijezda.y, noviIdFlote())); } floteStacionarne[zvijezda].dodajBrod(new Brod(dizajn, kolicina)); dizajn.brojBrodova += kolicina; }
public Borac(Dizajn dizajn, Igrac igrac, double izdrzljivostOklopa) { this.Dizajn = dizajn; this.Igrac = igrac; this.IzdrzljivostOklopa = izdrzljivostOklopa; this.IzdrzljivostStita = dizajn.izdrzljivostStita; this.Pozicija = Pozicije.PocetnaPozicija; this.CiljnaPozicija = Dizajn.pozeljnaPozicija; }
public void dodajDizajn(Dizajn dizajn) { foreach (DizajnZgrada dizajnZ in dizajnoviBrodova) { if (dizajnZ.dizajn.nadogradnja != dizajn && dizajnZ.dizajn.stil.Equals(dizajn.stil)) { return; } } dizajnoviBrodova.Add(new DizajnZgrada(dizajn)); }
private void dodajDizajn(Dizajn dizajn) { ListViewItem item = new ListViewItem(dizajn.ime); item.SubItems.Add(Fje.PrefiksFormater(dizajn.brojBrodova)); item.Tag = dizajn; lstvDizajnovi.SmallImageList.Images.Add(dizajn.ikona); item.ImageIndex = lstvDizajnovi.SmallImageList.Images.Count - 1; lstvDizajnovi.Items.Add(item); }
private void paljba(Strana strana, Dizajn.Zbir <Oruzje> zbir, PopisMeta popisMeta, int pozicijaNapadaca) { Borac meta = null; double vjerotanostPogotka = 1; Pozicije.EfektUdaljenosti efektUdaljenosti = null; Oruzje oruzje = zbir.komponenta; for (int i = 0; i < zbir.kolicina; i++) { if (meta == null) { if (!popisMeta.jePrazan()) { meta = popisMeta.DajSlijedeci(zbir.komponenta.ciljanje, random.NextDouble()); efektUdaljenosti = Pozicije.EfektUdaljenosti.Izracunaj(Math.Abs(pozicijaNapadaca - Math.Round(meta.Pozicija))); double ometanje = Math.Max(meta.Dizajn.ometanje - strana.SnagaSenzora((int)Math.Round(-meta.Pozicija)), 0); vjerotanostPogotka = Vjerojatnost(oruzje.preciznost + efektUdaljenosti.Preciznost, meta.Dizajn.pokretljivost) * Math.Pow(sigmoidBase, ometanje); } else { break; } } if (vjerotanostPogotka > random.NextDouble()) { Dizajn dizajnMete = meta.Dizajn; double vatrenaMoc = oruzje.vatrenaMoc; if (meta.IzdrzljivostStita > 0) { double ulaznaSteta = Upijanje(vatrenaMoc, dizajnMete.debljinaStita); double ublazavanjeStete = Math.Max(0, dizajnMete.ublazavanjeSteteStita * Math.Sqrt(meta.IzdrzljivostStita / dizajnMete.izdrzljivostStita) - oruzje.penetracijaStita); double steta = Math.Min(meta.IzdrzljivostStita, Upijanje(ulaznaSteta, ublazavanjeStete)); meta.IzdrzljivostStita -= steta; vatrenaMoc -= steta; } meta.IzdrzljivostOklopa -= Upijanje(vatrenaMoc, dizajnMete.ublazavanjeSteteOklopa); if (meta.IzdrzljivostOklopa <= 0) { popisMeta.Ukloni(meta); meta = null; } } } }
private void staviNadogradjeneDizajnove() { HashSet <Dizajn> nadogradiviOdPrije = new HashSet <Dizajn>(); List <Dizajn> noviDizajnovi = new List <Dizajn>(); foreach (DizajnZgrada dizajnZgrada in dizajnoviBrodova) { if (dizajnZgrada.dizajn.nadogradnja != null) { nadogradiviOdPrije.Add(dizajnZgrada.dizajn); } else { dizajnZgrada.dizajn.traziNadogradnju(efekti); if (dizajnZgrada.dizajn.nadogradnja != null) { noviDizajnovi.Add(dizajnZgrada.dizajn.nadogradnja); } } } foreach (Dizajn dizajn in nadogradiviOdPrije) { dizajn.traziNadogradnju(efekti); } foreach (Dizajn dizajn in noviDizajnovi) { dodajDizajn(dizajn); } HashSet <Dizajn> uGradnji = nadogradiDizajnoveUGradnji(); List <DizajnZgrada> bezZastarjelih = new List <DizajnZgrada>(); foreach (DizajnZgrada dizajnZgrada in dizajnoviBrodova) { Dizajn dizajn = dizajnZgrada.dizajn; if (dizajn.nadogradnja == null || dizajn.brojBrodova > 0 || uGradnji.Contains(dizajn)) { bezZastarjelih.Add(dizajnZgrada); } } dizajnoviBrodova = bezZastarjelih; }
public void reset(Igrac igrac) { oklop = Oklop.OklopInfo.NajboljiOklop(igrac.efekti); potisnici = Potisnici.PotisnikInfo.NajboljiPotisnici(igrac.efekti); oruzja = Oruzje.OruzjeInfo.DostupnaOruzja(igrac.efekti); senzor = Senzor.SenzorInfo.NajboljiSenzor(igrac.efekti); trupovi = Trup.TrupInfo.DostupniTrupovi(igrac.efekti); komponente = new Dictionary <Trup, Komponente>(); foreach (Trup trup in trupovi) { komponente.Add(trup, new Komponente(igrac, trup)); } _dizajn = null; odabranTrup = odabranTrup ?? trupovi[0]; promjenjenDizajn = true; }
private void osvjeziNDstatistike() { Dizajn dizajn = dizajner.dizajn; Dictionary <string, ITekst> jezik = Postavke.Jezik[Kontekst.FormFlote]; lblNDnosivost.Text = jezik["lblNDnosivost"].tekst() + ": " + Fje.PrefiksFormater(dizajner.odabranTrup.Nosivost); lblNDoklop.Text = jezik["lblNDoklop"].tekst() + " (" + dizajn.oklop.naziv + "): " + Fje.PrefiksFormater(dizajn.izdrzljivostOklopa); lblNDpokretljivost.Text = jezik["lblNDpokretljivost"].tekst() + " (" + dizajn.potisnici.naziv + "): " + Fje.PrefiksFormater(dizajn.pokretljivost); lblNDsenzori.Text = jezik["lblNDsenzori"].tekst() + " (" + dizajn.senzor.naziv + "): " + Fje.PrefiksFormater(dizajn.snagaSenzora); picNDSlika.Image = dizajner.odabranTrup.slika; lblNDcijena.Text = jezik["lblNDcijena"].tekst() + ": " + Fje.PrefiksFormater(dizajn.cijena); if (dizajn.primarnoOruzje != null) { cbNDprimMisija.Items[cbNDprimMisija.SelectedIndex] = new TagTekst <Oruzje>(dizajn.primarnoOruzje.komponenta, Fje.PrefiksFormater(dizajn.primarnoOruzje.kolicina) + " x " + dizajn.primarnoOruzje.komponenta.naziv); } else if (cbNDprimMisija.SelectedItem != null) { TagTekst <Oruzje> tagOruzje = (TagTekst <Oruzje>)cbNDprimMisija.SelectedItem; if (tagOruzje.tag != null) { tagOruzje.tekst = tagOruzje.tag.naziv; cbNDprimMisija.Items[cbNDprimMisija.SelectedIndex] = tagOruzje; } } if (dizajn.sekundarnoOruzje != null) { cbNDsekMisija.Items[cbNDsekMisija.SelectedIndex] = new TagTekst <Oruzje>(dizajn.sekundarnoOruzje.komponenta, Fje.PrefiksFormater(dizajn.sekundarnoOruzje.kolicina) + " x " + dizajn.sekundarnoOruzje.komponenta.naziv); } else if (cbNDsekMisija.SelectedItem != null) { TagTekst <Oruzje> tagOruzje = (TagTekst <Oruzje>)cbNDsekMisija.SelectedItem; if (tagOruzje.tag != null) { tagOruzje.tekst = tagOruzje.tag.naziv; cbNDsekMisija.Items[cbNDsekMisija.SelectedIndex] = tagOruzje; } } lblNDslobodno.Text = jezik["lblNDslobodno"].tekst() + ": " + Fje.PrefiksFormater(dizajner.slobodnaNosivost); ispisiOpis(prethodniNDinfo, dizajn); provjeriDizajn(); }
public void dodajBrod(Brod brod) { Dizajn dizajn = brod.dizajn; if (brodovi.ContainsKey(dizajn)) { brodovi[dizajn].dodaj(brod); } else { brodovi.Add(dizajn, brod); } if (dizajn.primarnoOruzje != null) { misije.Add(dizajn.primarnoOruzje.komponenta.misija); } if (dizajn.sekundarnoOruzje != null) { misije.Add(dizajn.sekundarnoOruzje.komponenta.misija); } }
private void fazaPaljbe(Strana strana) { PopisMeta popisMeta = new PopisMeta(); foreach (var drugaStrana in strane.Values) { if (drugaStrana != strana) { foreach (var borac in drugaStrana.Borci) { if (borac.Vidljiv[strana.Igrac.id]) { popisMeta.Dodaj(borac); } } } } foreach (Borac borac in strana.Borci) { Dizajn dizajn = borac.Dizajn; if (dizajn.primarnoOruzje != null && dizajn.primarnaMisija == Misija.Tip.DirektnoOruzje) { paljba(strana, borac.Dizajn.primarnoOruzje, popisMeta, (int)Math.Round(borac.Pozicija)); } if (dizajn.sekundarnoOruzje != null && dizajn.sekundarnaMisija == Misija.Tip.DirektnoOruzje) { paljba(strana, borac.Dizajn.sekundarnoOruzje, popisMeta, (int)Math.Round(borac.Pozicija)); } if (popisMeta.jePrazan()) { break; } } }
private void osvjeziStatistike() { Dizajn dizajn = dizajner.dizajn; btnPrimMisija.Text = (dizajn.primarnoOruzje != null) ? Fje.PrefiksFormater(dizajn.primarnoOruzje.kolicina) + " x " + dizajn.primarnoOruzje.komponenta.naziv : jezik["bezMisije"].tekst(); btnSekMisija.Text = (dizajn.sekundarnoOruzje != null) ? Fje.PrefiksFormater(dizajn.sekundarnoOruzje.kolicina) + " x " + dizajn.sekundarnoOruzje.komponenta.naziv : jezik["bezMisije"].tekst(); btnStit.Text = (dizajn.stit != null) ? dizajn.stit.naziv : jezik["bezStita"].tekst(); lblOklop.Text = jezik["lblNDoklop"].tekst() + ": " + Fje.PrefiksFormater(dizajn.izdrzljivostOklopa); lblOmetanje.Text = jezik["lblOmetanje"].tekst() + ": " + dizajn.ometanje; lblPokretljivost.Text = jezik["lblNDpokretljivost"].tekst() + ": " + Fje.PrefiksFormater(dizajn.pokretljivost); lblPrikrivanje.Text = jezik["lblPrikrivanje"].tekst() + ": " + dizajn.prikrivenost; lblReaktor.Text = jezik["lblReaktor"].tekst() + ": " + (dizajn.koefSnageReaktora * 100).ToString("0") + "%"; lblSenzori.Text = jezik["lblNDsenzori"].tekst() + ": " + Fje.PrefiksFormater(dizajn.snagaSenzora); lblCijena.Text = jezik["lblNDcijena"].tekst() + ": " + Fje.PrefiksFormater(dizajn.cijena); lblSlobodno.Text = jezik["lblNDslobodno"].tekst() + ": " + Fje.PrefiksFormater(dizajner.slobodnaNosivost) + " / " + Fje.PrefiksFormater(dizajn.nosivost); if (dizajner.dizajnMZPogon) { Dictionary <string, double> varijable = new Dictionary <string, double>(); varijable.Add("BRZINA", dizajner.dizajn.MZbrzina); chMZpogon.Text = jezik["chNDMZpogon"].tekst(varijable); } else { chMZpogon.Text = jezik["chNDMZpogonNema"].tekst(); } }
public Brod this[Dizajn dizajn] { get { return(brodovi[dizajn]); } }
public FormFlote(Igrac igrac) { InitializeComponent(); btnNDZadrziInfo.Text = ""; lstvDizajnovi.SmallImageList = new ImageList(); lstvDizajnovi.SmallImageList.ImageSize = new Size(60, 40); this.igrac = igrac; tabvCtrlFlote.TabPages.Remove(tabNoviDizajn); Dictionary <string, ITekst> jezik = Postavke.Jezik[Kontekst.FormFlote]; nazivInfoStranice.Add(InfoStranice.MZPogon, jezik["infoMZPogon"].tekst()); nazivInfoStranice.Add(InfoStranice.Pokretljivost, jezik["infoPokret"].tekst()); nazivInfoStranice.Add(InfoStranice.PrimarnaMisija, jezik["infoPrimMisija"].tekst()); nazivInfoStranice.Add(InfoStranice.Reaktor, jezik["infoReaktor"].tekst()); nazivInfoStranice.Add(InfoStranice.SekundarnaMisija, jezik["infoSekMisija"].tekst()); nazivInfoStranice.Add(InfoStranice.Senzori, jezik["infoSenzori"].tekst()); nazivInfoStranice.Add(InfoStranice.SpecijalnaOprema, jezik["infoSpecOprema"].tekst()); nazivInfoStranice.Add(InfoStranice.Stit, jezik["infoStit"].tekst()); nazivInfoStranice.Add(InfoStranice.Taktika, jezik["infoTaktika"].tekst()); #region Dizajnovi { foreach (DizajnZgrada dizajnZgrada in igrac.dizajnoviBrodova) { Dizajn dizajn = dizajnZgrada.dizajn; dodajDizajn(dizajn); } } #endregion #region Novi dizajn { dizajner = new Dizajner(igrac); foreach (Trup trup in dizajner.trupovi) { cbNDvelicina.Items.Add(trup); } cbNDprimMisija.Items.Add(new TagTekst <Oruzje>(null, jezik["bezMisije"].tekst())); cbNDsekMisija.Items.Add(new TagTekst <Oruzje>(null, jezik["bezMisije"].tekst())); foreach (Misija.Tip misija in dizajner.oruzja.Keys) { if (dizajner.oruzja[misija].Count == 0) { continue; } cbNDprimMisija.Items.Add(new TagTekst <Oruzje>(null, SeparatorNDGrupa)); cbNDsekMisija.Items.Add(new TagTekst <Oruzje>(null, SeparatorNDGrupa)); foreach (Oruzje oruzje in dizajner.oruzja[misija]) { cbNDprimMisija.Items.Add(new TagTekst <Oruzje>(oruzje, oruzje.info.naziv)); cbNDsekMisija.Items.Add(new TagTekst <Oruzje>(oruzje, oruzje.info.naziv)); } } cbNDstit.Items.Add(new TagTekst <int>(-1, jezik["bezStita"].tekst())); int i = 0; foreach (Stit stit in dizajner.trupKomponente.stitovi) { cbNDstit.Items.Add(new TagTekst <int>(i, stit.info.naziv)); i++; } /*foreach (Pozicije taktika in Pozicije.Taktike.Keys) * cbNDtaktika.Items.Add(new TagTekst<Pozicije>(taktika, taktika.naziv)); */ i = 0; foreach (SpecijalnaOprema so in dizajner.trupKomponente.specijalnaOprema) { ListViewItem item = new ListViewItem(""); item.SubItems.Add(so.naziv); item.SubItems.Add(so.velicina.ToString()); item.Tag = i; lstvNDspecOprema.Items.Add(item); i++; } foreach (InfoStranice strana in Enum.GetValues(typeof(InfoStranice))) { cbNDinfoStrana.Items.Add(new TagTekst <InfoStranice>(strana, nazivInfoStranice[strana])); } cbNDvelicina.SelectedIndex = 0; cbNDprimMisija.SelectedIndex = 0; cbNDsekMisija.SelectedIndex = 0; cbNDstit.SelectedIndex = 0; //cbNDtaktika.SelectedIndex = 0; hscrUdioMisija.Value = 33; } #endregion btnSpremi.Text = jezik["btnSpremi"].tekst(); btnNoviDizajn.Text = jezik["tabNoviDizajn"].tekst(); btnUkloniDizajn.Text = jezik["btnUkloniDizajn"].tekst(); chBrojBrodova.Text = jezik["chBrojBrodova"].tekst(); chDizajnNaziv.Text = jezik["chDizajnNaziv"].tekst(); chSpecOpNaziv.Text = jezik["chSpecOpNaziv"].tekst(); chSpecOpVelicina.Text = jezik["chSpecOpVelicina"].tekst(); //chNDMZpogon.Text = jezik["chNDMZpogon"].tekst(); lblDizajn.Text = jezik["lblDizajn"].tekst() + ":"; lblNaziv.Text = jezik["lblNaziv"].tekst() + ":"; lblPrimMisija.Text = jezik["lblPrimMisija"].tekst() + ":"; lblSekMisija.Text = jezik["lblSekMisija"].tekst() + ":"; lblSpecOprema.Text = jezik["lblSpecOprema"].tekst() + ":"; lblStit.Text = jezik["lblStit"].tekst() + ":"; lblTaktika.Text = jezik["lblTaktika"].tekst() + ":"; lblUdioSek.Text = jezik["lblUdioSek"].tekst() + ":"; lblVelicina.Text = jezik["lblVelicina"].tekst() + ":"; tabDizajnovi.Text = jezik["tabDizajnovi"].tekst(); tabNoviDizajn.Text = jezik["tabNoviDizajn"].tekst(); this.Text = jezik["naslov"].tekst(); this.Font = Postavke.FontSucelja(this.Font); }
private void ispisiOpis(InfoStranice stranica, Dizajn dizajn) { txtNDinfo.Lines = opis(stranica, dizajn).ToArray(); prethodniNDinfo = stranica; }
public static IgraZvj Ucitaj(string ulaz) { PodaciCitac citac = PodaciCitac.Procitaj(ulaz); int brKruga = citac.podatakInt(PohKrug); int trenutniIgrac = citac.podatakInt(PohTrenutniIgrac); int brIgraca = citac.podatakInt(PohBrIgraca); Mapa mapa = Mapa.Ucitaj(citac[Mapa.PohranaTip]); List <Igrac> igraci = new List <Igrac>(); for (int i = 0; i < brIgraca; i++) { Igrac igrac = Igrac.Ucitaj(citac[Igrac.PohranaTip + i], mapa); if (igrac.tip == Igrac.Tip.RACUNALO) { igrac.Upravljac = new ORIKoordinator(igrac); } igraci.Add(igrac); } Dictionary <int, Zvijezda> zvijezdeID = new Dictionary <int, Zvijezda>(); foreach (Zvijezda zvj in mapa.zvijezde) { zvijezdeID.Add(zvj.id, zvj); } Dictionary <int, Zgrada.ZgradaInfo> zgradeInfoID = new Dictionary <int, Zgrada.ZgradaInfo>(Zgrada.ZgradaInfoID); foreach (Igrac igrac in igraci) { foreach (DizajnZgrada dizajZgrada in igrac.dizajnoviBrodova) { zgradeInfoID.Add(dizajZgrada.id, dizajZgrada); Dizajn.ProvjeriId(dizajZgrada.dizajn); } } int brKolonija = citac.podatakInt(Kolonija.PohranaTip); for (int i = 0; i < brKolonija; i++) { Kolonija kolonija = Kolonija.Ucitaj( citac[Kolonija.PohranaTip + i], igraci, zvijezdeID, zgradeInfoID); kolonija.planet.kolonija = kolonija; } int brUprava = citac.podatakInt(ZvjezdanaUprava.PohranaTip); for (int i = 0; i < brUprava; i++) { ZvjezdanaUprava zvjUprava = ZvjezdanaUprava.Ucitaj( citac[ZvjezdanaUprava.PohranaTip + i], igraci, zvijezdeID, zgradeInfoID); zvjUprava.LokacijaZvj.uprave[zvjUprava.Igrac.id] = zvjUprava; } return(new IgraZvj(igraci, trenutniIgrac, mapa, brKruga)); }
private string stavkaListe(Dizajn dizajn) { return(Fje.PrefiksFormater(poslaniBrodovi[dizajn]) + " x " + dizajn.ime); }
private int dizajnSort(Dizajn a, Dizajn b) { return(a.ime.CompareTo(b.ime)); }
private List <string> opis(InfoStranice stranica, Dizajn dizajn) { return(opis(stranica, dizajn, true)); }
private List <string> opis(InfoStranice stranica, Dizajn dizajn, bool cijene) { List <string> opis = new List <string>(); Dictionary <string, ITekst> jezik = Postavke.Jezik[Kontekst.FormFlote]; switch (stranica) { case InfoStranice.MZPogon: opis.Add(jezik["opisMZPogon"].tekst()); opis.Add(""); if (dizajn.MZPogon == null) { opis.Add(jezik["opisNemaMZPogon"].tekst()); } else { opis.Add(dizajn.MZPogon.info.naziv); if (dizajn.MZPogon.maxNivo > 0) { opis.Add(jezik["opisNivo"].tekst() + ": " + dizajn.MZPogon.nivo); } opis.Add(jezik["opisMZPogonBrz"].tekst() + ": " + dizajn.MZbrzina.ToString("0.###")); if (cijene) { opis.Add(jezik["opisSnaga"].tekst() + ": " + Fje.PrefiksFormater(dizajn.MZPogon.snaga)); opis.Add(jezik["opisCijena"].tekst() + ": " + Fje.PrefiksFormater(dizajn.MZPogon.cijena)); } } break; case InfoStranice.Pokretljivost: opis.Add(jezik["opisPokret"].tekst()); opis.Add(""); opis.Add(dizajn.potisnici.naziv); if (dizajn.potisnici.maxNivo > 0) { opis.Add(jezik["opisNivo"].tekst() + ": " + dizajn.reaktor.nivo); } opis.Add(jezik["opisTromost"].tekst() + ": " + dizajn.inercija); opis.Add(jezik["opisPokret"].tekst() + ": " + Fje.PrefiksFormater(dizajn.pokretljivost)); break; case InfoStranice.PrimarnaMisija: opis = opisOruzja(true, dizajn.primarnoOruzje, cijene); break; case InfoStranice.Reaktor: opis.Add(jezik["opisReaktor"].tekst()); opis.Add(""); opis.Add(dizajn.reaktor.naziv); if (dizajn.reaktor.maxNivo > 0) { opis.Add(jezik["opisNivo"].tekst() + ": " + dizajn.reaktor.nivo); } opis.Add(jezik["opisReaktorOp"].tekst() + ": " + Fje.PrefiksFormater(dizajn.opterecenjeReaktora)); opis.Add(jezik["opisReaktorDost"].tekst() + ": " + Fje.PrefiksFormater(dizajn.snagaReaktora) + " (" + (dizajn.koefSnageReaktora * 100).ToString("0") + "%)"); break; case InfoStranice.SekundarnaMisija: opis = opisOruzja(false, dizajn.sekundarnoOruzje, cijene); break; case InfoStranice.Senzori: opis.Add(jezik["opisSenzor"].tekst()); opis.Add(""); //opis.Add(Fje.PrefiksFormater(dizajn.brSenzora) + " x " + dizajn.senzor.naziv); if (dizajn.senzor.maxNivo > 0) { opis.Add(jezik["opisNivo"].tekst() + ": " + dizajn.senzor.nivo); } opis.Add(jezik["opisSenzorSn"].tekst() + ": " + Fje.PrefiksFormater(dizajn.snagaSenzora)); //opis.Add(jezik["opisSenzorOm"].tekst() + ": " + Fje.PrefiksFormater(dizajn.ometanje)); //opis.Add(jezik["opisSenzorPrik"].tekst() + ": " + Fje.PrefiksFormater(dizajn.prikrivenost)); break; case InfoStranice.SpecijalnaOprema: opis.Add(jezik["opisSpecOp"].tekst()); opis.Add(""); if (specijalnaOpremaZaOpis != null) { if (dizajn.specijalnaOprema.ContainsKey(specijalnaOpremaZaOpis)) { opis.Add(dizajn.specijalnaOprema[specijalnaOpremaZaOpis] + " x " + specijalnaOpremaZaOpis.naziv); } else { opis.Add(specijalnaOpremaZaOpis.naziv); } if (specijalnaOpremaZaOpis.maxNivo > 0) { opis.Add(jezik["opisNivo"].tekst() + ": " + specijalnaOpremaZaOpis.nivo); } opis.AddRange(specijalnaOpremaZaOpis.opisEfekata); if (cijene) { opis.Add(""); opis.Add(jezik["opisVelicina"].tekst() + ": " + Fje.PrefiksFormater(specijalnaOpremaZaOpis.velicina)); opis.Add(jezik["opisCijena"].tekst() + ": " + Fje.PrefiksFormater(specijalnaOpremaZaOpis.cijena)); } } break; case InfoStranice.Stit: opis.Add(jezik["opisStit"].tekst()); opis.Add(""); if (dizajn.stit == null) { opis.Add(jezik["opisNemaStit"].tekst()); } else { opis.Add(dizajn.stit.naziv); if (dizajn.stit.maxNivo > 0) { opis.Add(jezik["opisNivo"].tekst() + ": " + dizajn.stit.nivo); } opis.Add(jezik["opisStitIzd"].tekst() + ": " + Fje.PrefiksFormater(dizajn.stit.izdrzljivost)); opis.Add(jezik["opisStitObn"].tekst() + ": " + Fje.PrefiksFormater(dizajn.stit.obnavljanje)); opis.Add(jezik["opisStitDeb"].tekst() + ": " + Fje.PrefiksFormater(dizajn.stit.debljina)); opis.Add(jezik["opisStitOm"].tekst() + ": " + dizajn.stit.ometanje.ToString("+0;-0")); opis.Add(jezik["opisStitPrik"].tekst() + ": +" + Fje.PrefiksFormater(dizajn.stit.prikrivanje)); if (cijene) { opis.Add(""); opis.Add(jezik["opisSnaga"].tekst() + ": " + Fje.PrefiksFormater(dizajn.stit.snaga)); opis.Add(jezik["opisCijena"].tekst() + ": " + Fje.PrefiksFormater(dizajn.stit.cijena)); } } break; case InfoStranice.Taktika: Pozicije.EfektUdaljenosti efektUdaljenosti = Pozicije.EfektUdaljenosti.Izracunaj(dizajn.pozeljnaPozicija + Pozicije.UobicajenaPozicija); opis.Add(jezik["opisTaktika"].tekst()); opis.Add(""); opis.Add(Pozicije.Naziv(dizajn.pozeljnaPozicija)); opis.Add(jezik["opisTaktikaPrec"].tekst() + ": x" + efektUdaljenosti.Preciznost); opis.Add(jezik["opisSenzorSn"].tekst() + ": x" + efektUdaljenosti.SnagaSenzora); break; } return(opis); }
public static Igrac Ucitaj(PodaciCitac ulaz, Mapa mapa) { Tip tip = Tip.COVJEK; if (ulaz.podatak(PohTip) != PohTipCovjek) { tip = Tip.RACUNALO; } int id = ulaz.podatakInt(PohId); string ime = ulaz.podatak(PohIme); Organizacija organizacija = Organizacija.lista[ulaz.podatakInt(PohOrganizacija)]; Color boja = OdrediBoju(ulaz.podatak(PohBoja)); foreach (Color color in BojeIgraca) { if (boja.R == color.R && boja.G == color.G && boja.B == color.B) { boja = color; } } Zvijezda odabranaZvj = OdrediOdabranuZvj(mapa, ulaz.podatak(PohPogledZvj)); Planet odabranPlanet = odabranaZvj.planeti[ulaz.podatakInt(PohPogledPlanet)]; Dictionary <int, Zvijezda> zvijezdeID = new Dictionary <int, Zvijezda>(); foreach (Zvijezda zvj in mapa.zvijezde) { zvijezdeID.Add(zvj.id, zvj); } int brDizajnova = ulaz.podatakInt(PohDizajn); List <DizajnZgrada> dizajnovi = new List <DizajnZgrada>(); for (int i = 0; i < brDizajnova; i++) { Dizajn dizajn = Dizajn.Ucitaj(ulaz[PohDizajn + i]); dizajnovi.Add(new DizajnZgrada(dizajn)); } int brTeh = ulaz.podatakInt(PohTehnologija); Dictionary <string, Tehnologija> tehnologije = new Dictionary <string, Tehnologija>(); for (int i = 0; i < brTeh; i++) { Tehnologija teh = Tehnologija.Ucitaj(ulaz[PohTehnologija + i]); tehnologije.Add(teh.tip.kod, teh); } double koncPoenaRazvoja = ulaz.podatakDouble(PohTehRazKonc); int[] tmpIntovi = ulaz.podatakIntPolje(PohTehURazvoju); LinkedList <Tehnologija> tehURazvoju = new LinkedList <Tehnologija>(); foreach (int tehId in tmpIntovi) { tehURazvoju.AddLast(tehnologije[Tehnologija.TechInfo.tehnologijeRazvoj[tehId].kod]); } tmpIntovi = ulaz.podatakIntPolje(PohTehUIstraz); LinkedList <Tehnologija> tehUIstraz = new LinkedList <Tehnologija>(); foreach (int tehId in tmpIntovi) { tehUIstraz.AddLast(tehnologije[Tehnologija.TechInfo.tehnologijeIstrazivanje[tehId].kod]); } tmpIntovi = ulaz.podatakIntPolje(PohPosjeceneZvj); HashSet <Zvijezda> posjeceneZvijezde = new HashSet <Zvijezda>(); foreach (int zvjId in tmpIntovi) { posjeceneZvijezde.Add(zvijezdeID[zvjId]); } Dictionary <int, Dizajn> dizajnID = new Dictionary <int, Dizajn>(); foreach (DizajnZgrada dizajnZgrada in dizajnovi) { dizajnID.Add(dizajnZgrada.dizajn.id, dizajnZgrada.dizajn); } tmpIntovi = ulaz.podatakIntPolje(PohFloteStac); MyDictionary <Zvijezda, Flota> floteStacionarne = new MyDictionary <Zvijezda, Flota>(); for (int i = 0; i < tmpIntovi.Length; i++) { floteStacionarne.Add( zvijezdeID[tmpIntovi[i]], Flota.Ucitaj(ulaz[PohFloteStac + i], dizajnID)); } int brPokFlota = ulaz.podatakInt(PohFlotePokret); MySet <PokretnaFlota> flotePokretne = new MySet <PokretnaFlota>(); for (int i = 0; i < brPokFlota; i++) { flotePokretne.Add(PokretnaFlota.Ucitaj(ulaz[PohFlotePokret + i], dizajnID, zvijezdeID)); } int brPoruka = ulaz.podatakInt(PohPoruka); LinkedList <Poruka> poruke = new LinkedList <Poruka>(); for (int i = 0; i < brPoruka; i++) { poruke.AddLast(Poruka.Ucitaj(ulaz[PohPoruka + i], zvijezdeID, dizajnID)); } return(new Igrac(id, tip, ime, boja, organizacija, odabranaZvj, odabranPlanet, poruke, dizajnovi, tehnologije, tehURazvoju, koncPoenaRazvoja, tehUIstraz, posjeceneZvijezde, floteStacionarne, flotePokretne)); }
public static Poruka NoviBrod(AGradiliste gradiliste, Dizajn dizajn, long kolicina) { return(new PorukaBrod(gradiliste.LokacijaZvj, dizajn, kolicina)); }