Пример #1
0
 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;
 }
Пример #2
0
        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);
                }
            }
        }
Пример #3
0
            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);
            }
Пример #4
0
        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;
        }
Пример #5
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);
        }
Пример #6
0
 public bool imaMisiju(Misija.Tip misija)
 {
     return(misije.Contains(misija));
 }