private OruzjeInfo(string naziv, string opis, Image slika, List <Preduvjet> preduvjeti, int maxNivo, Misija.Tip misija, Ciljanje ciljanje, Formula[] parametri, Formula cijena, Formula snaga, Formula velicina) : base(naziv, opis, slika, preduvjeti, maxNivo) { this.misija = misija; this.ciljanje = ciljanje; this.parametri = parametri; this.cijena = cijena; this.snaga = snaga; this.velicina = velicina; }
public FormDizajnKomponenta(Dictionary <Misija.Tip, List <T> > misije, T trenutnaMisija, string naslov, Control kontrolaDo) : this(new List <T>(), trenutnaMisija, naslov, kontrolaDo) { for (int misijaId = 0; misijaId < (int)Misija.Tip.N; misijaId++) { Misija.Tip misijaTip = (Misija.Tip)misijaId; if (!misije.ContainsKey(misijaTip)) { continue; } foreach (T oruzje in misije[misijaTip]) { naOdabir.Add(oruzje); } } }
public static void UcitajOruzjeInfo(Dictionary <string, string> podaci) { string naziv = podaci["IME"]; string opis = podaci["OPIS"]; Image slika = Image.FromFile(podaci["SLIKA"]); List <Preduvjet> preduvjeti = Preduvjet.NaciniPreduvjete(podaci["PREDUVJETI"]); int maxNivo = int.Parse(podaci["MAX_NIVO"]); Misija.Tip misijaTip = Misija.StringUMisiju[podaci["MISIJA"]]; Misija misija = Misija.Opisnici[misijaTip]; Formula[] parametri = new Formula[misija.brParametara]; for (int i = 0; i < misija.brParametara; i++) { parametri[i] = Formula.IzStringa(podaci[misija.parametri[i].kod]); } Ciljanje ciljanje = Ciljanje.Normalno; if (misija.imaCiljanje) { ciljanje = StringUCiljanje[podaci["CILJANJE"]]; } if (!Oruzja.ContainsKey(misijaTip)) { Oruzja.Add(misijaTip, new List <OruzjeInfo>()); } OruzjeInfo info = new OruzjeInfo( naziv, opis, slika, preduvjeti, maxNivo, misijaTip, ciljanje, parametri, Formula.IzStringa(podaci["CIJENA"]), Formula.IzStringa(podaci["SNAGA"]), Formula.IzStringa(podaci["VELICINA"]) ); Oruzja[misijaTip].Add(info); KodoviOruzja.Add(podaci["KOD"], info); }
private void InicijalizirajOpremu() { Dictionary <string, ITekst> jezik = Postavke.Jezik[Kontekst.FormTech]; List <ListViewItem> items = new List <ListViewItem>(); Font fontBold = new Font(lstOprema.Font, FontStyle.Bold); Font fontItalic = new Font(lstOprema.Font, FontStyle.Italic); Trup najveci = null; #region Trupovi cbOpKategorija.Items.Add(new TagTekst <KategorijaOpreme>(KategorijaOpreme.Trup, jezik["opKatTrup"].tekst())); items = new List <ListViewItem>(); foreach (Trup trup in Trup.TrupInfo.DostupniTrupovi(igrac.efekti)) { items.Add(komponentaListViewItem(trup)); if (najveci == null) { najveci = trup; } if (trup.velicina > najveci.velicina) { najveci = trup; } cbOpVelicine.Items.Add(new TagTekst <Trup>(trup, trup.naziv)); } opremaStavke.Add(KategorijaOpreme.Trup, items.ToArray()); prikaziKomponenti.Add(KategorijaOpreme.Trup, prikazTrupa); #endregion #region Misije cbOpKategorija.Items.Add(new TagTekst <KategorijaOpreme>(KategorijaOpreme.Misija, jezik["opKatMisija"].tekst())); items = new List <ListViewItem>(); Dictionary <Misija.Tip, List <Oruzje> > misije = Oruzje.OruzjeInfo.DostupnaOruzja(igrac.efekti); for (int misijaId = 0; misijaId < (int)Misija.Tip.N; misijaId++) { Misija.Tip misijaTip = (Misija.Tip)misijaId; if (!misije.ContainsKey(misijaTip)) { continue; } items.Add(specLVItem(Misija.Opisnici[misijaTip].naziv, fontBold)); foreach (Oruzje oruzje in misije[misijaTip]) { items.Add(komponentaListViewItem(oruzje)); } } opremaStavke.Add(KategorijaOpreme.Misija, items.ToArray()); prikaziKomponenti.Add(KategorijaOpreme.Misija, prikazOruzja); #endregion #region Stitovi cbOpKategorija.Items.Add(new TagTekst <KategorijaOpreme>(KategorijaOpreme.Stit, jezik["opKatStit"].tekst())); items = new List <ListViewItem>(); foreach (Stit stit in Stit.StitInfo.DostupniStitovi(igrac.efekti, najveci.VelicinaStita)) { items.Add(komponentaListViewItem(stit)); } opremaStavke.Add(KategorijaOpreme.Stit, items.ToArray()); prikaziKomponenti.Add(KategorijaOpreme.Stit, prikazStita); #endregion #region Specijalna oprema cbOpKategorija.Items.Add(new TagTekst <KategorijaOpreme>(KategorijaOpreme.Specijalno, jezik["opKatSpecOp"].tekst())); items = new List <ListViewItem>(); foreach (SpecijalnaOprema so in SpecijalnaOprema.SpecijalnaOpremaInfo.DostupnaOprema(igrac.efekti, najveci.velicina)) { items.Add(komponentaListViewItem(so)); } opremaStavke.Add(KategorijaOpreme.Specijalno, items.ToArray()); prikaziKomponenti.Add(KategorijaOpreme.Specijalno, prikazSpecOp); #endregion #region Ostalo cbOpKategorija.Items.Add(new TagTekst <KategorijaOpreme>(KategorijaOpreme.Ostalo, jezik["opKatOstalo"].tekst())); items = new List <ListViewItem>(); jezik = Postavke.Jezik[Kontekst.FormFlote]; items.Add(specLVItem(jezik["infoOklop"].tekst(), fontBold)); foreach (Oklop komp in Oklop.OklopInfo.Dostupni(igrac.efekti)) { items.Add(komponentaListViewItem(komp)); } opremaOstaloZadnjiIndeks[0] = items.Count; items.Add(specLVItem(jezik["infoMZPogon"].tekst(), fontBold)); foreach (MZPogon komp in MZPogon.MZPogonInfo.Dostupni(igrac.efekti)) { items.Add(komponentaListViewItem(komp)); } opremaOstaloZadnjiIndeks[1] = items.Count; items.Add(specLVItem(jezik["infoPotisnici"].tekst(), fontBold)); foreach (Potisnici komp in Potisnici.PotisnikInfo.Dostupni(igrac.efekti)) { items.Add(komponentaListViewItem(komp)); } opremaOstaloZadnjiIndeks[2] = items.Count; items.Add(specLVItem(jezik["infoReaktor"].tekst(), fontBold)); foreach (Reaktor komp in Reaktor.ReaktorInfo.Dostupni(igrac.efekti)) { items.Add(komponentaListViewItem(komp)); } opremaOstaloZadnjiIndeks[3] = items.Count; items.Add(specLVItem(jezik["infoSenzori"].tekst(), fontBold)); foreach (Senzor komp in Senzor.SenzorInfo.Dostupni(igrac.efekti)) { items.Add(komponentaListViewItem(komp)); } opremaOstaloZadnjiIndeks[4] = items.Count; opremaStavke.Add(KategorijaOpreme.Ostalo, items.ToArray()); prikaziKomponenti.Add(KategorijaOpreme.Ostalo, prikazOstalog); #endregion foreach (var kategorija in opremaStavke.Keys) { if (opremaStavke[kategorija].Length == 0) { ListViewItem item = specLVItem(jezik["nemaOp"].tekst(), fontItalic); opremaStavke[kategorija] = new ListViewItem[] { item }; } } cbOpKategorija.SelectedIndex = 0; cbOpVelicine.SelectedIndex = 0; }
private static List <string> opisOruzja(bool primarno, Dizajn.Zbir <Oruzje> oruzje, bool cijene) { List <string> opis = new List <string>(); Dictionary <string, ITekst> jezik = Postavke.Jezik[Kontekst.FormFlote]; if (primarno) { opis.Add(jezik["opisPrimMis"].tekst() + ": "); } else { opis.Add(jezik["opisSekMis"].tekst() + ": "); } if (oruzje == null) { opis.Add(""); if (primarno) { opis.Add(jezik["opisNemaPrimMis"].tekst()); } else { opis.Add(jezik["opisNemaSekMis"].tekst()); } return(opis); } Misija.Tip misijaTip = oruzje.komponenta.misija; Misija misija = Misija.Opisnici[misijaTip]; opis.Add(misija.naziv); opis.Add((misija.grupirana) ? oruzje.komponenta.naziv : Fje.PrefiksFormater(oruzje.kolicina) + " x " + oruzje.komponenta.naziv); opis.Add(""); if (oruzje.komponenta.maxNivo > 0) { opis.Add(jezik["opisNivo"].tekst() + ": " + oruzje.komponenta.nivo); } if (misija.imaCiljanje) { opis.Add(jezik["opisCiljanje"].tekst() + ": " + Postavke.Jezik[Kontekst.Misije, Oruzje.OruzjeInfo.CiljanjeKod[oruzje.komponenta.ciljanje]].tekst()); } for (int i = 0; i < misija.brParametara; i++) { double vrijednost = oruzje.komponenta.parametri[i]; if (misija.parametri[i].mnoziKolicinom) { vrijednost *= oruzje.kolicina; } switch (misija.parametri[i].tip) { case Misija.TipParameta.Cijelobrojni: opis.Add(misija.parametri[i].opis + ": " + Fje.PrefiksFormater(vrijednost)); break; case Misija.TipParameta.Postotak: opis.Add(misija.parametri[i].opis + ": " + vrijednost.ToString("0.##")); break; } } if (cijene) { opis.Add(""); opis.Add(jezik["opisSnaga"].tekst() + ": " + Fje.PrefiksFormater(oruzje.komponenta.snaga)); opis.Add(jezik["opisCijena"].tekst() + ": " + Fje.PrefiksFormater(oruzje.komponenta.cijena * oruzje.kolicina)); } return(opis); }
public bool imaMisiju(Misija.Tip misija) { return(misije.Contains(misija)); }