Example #1
0
        private void prikazStita(IKomponenta komponentaObj)
        {
            Trup trup = ((TagTekst <Trup>)cbOpVelicine.SelectedItem).tag;
            Stit stit = (Stit)komponentaObj;

            stit = stit.info.naciniKomponentu(stit.nivo, trup.VelicinaStita);
            Dictionary <string, ITekst> jezik = Postavke.Jezik[Kontekst.FormFlote];

            StringBuilder sb = new StringBuilder(txtOpOpis.Text);

            sb.AppendLine();
            sb.AppendLine();
            sb.AppendLine(jezik["opisStitIzd"].tekst() + ": " + Fje.PrefiksFormater(stit.izdrzljivost * trup.BazaStita));
            sb.AppendLine(jezik["opisStitDeb"].tekst() + ": " + Fje.PrefiksFormater(stit.debljina));
            sb.AppendLine(jezik["opisStitUbl"].tekst() + ": " + Fje.PrefiksFormater(stit.ublazavanjeStete, jezik["opisStitUblInf"].tekst()));
            sb.AppendLine(jezik["opisStitObn"].tekst() + ": " + Fje.PrefiksFormater(stit.obnavljanje * trup.BazaStita));
            sb.AppendLine(jezik["opisStitOm"].tekst() + ": " + stit.ometanje.ToString("+0;-0"));
            sb.AppendLine(jezik["opisStitPrik"].tekst() + ": +" + Fje.PrefiksFormater(stit.prikrivanje));
            sb.AppendLine();
            jezik = Postavke.Jezik[Kontekst.FormTech];
            sb.AppendLine(jezik["opCijena"].tekst() + ": " + Fje.PrefiksFormater(stit.cijena));
            sb.AppendLine(jezik["opSnaga"].tekst() + ": " + Fje.PrefiksFormater(stit.snaga));
            sb.AppendLine(jezik["opVelicina"].tekst() + ": " + Fje.PrefiksFormater(trup.VelicinaStita));
            txtOpOpis.Text = sb.ToString();
        }
Example #2
0
        public static List <long> RasporedPoena(long ukupnoPoena, int brTehnologija, double koncentracija)
        {
            List <long> ret         = new List <long>();
            double      suma        = Fje.IntegralPolinoma(1, koncentracija);
            long        ostaliPoeni = ukupnoPoena;

            for (int i = 0; i < brTehnologija; i++)
            {
                long ulog;
                if (i == brTehnologija - 1)
                {
                    ulog = ostaliPoeni;
                }
                else
                {
                    double x0 = (brTehnologija - i - 1) / (double)brTehnologija;
                    double x1 = (brTehnologija - i) / (double)brTehnologija;
                    ulog = (long)(ukupnoPoena * (Fje.IntegralPolinoma(x1, koncentracija) - Fje.IntegralPolinoma(x0, koncentracija)) / suma);
                }
                ostaliPoeni -= ulog;
                ret.Add(ulog);
            }

            return(ret);
        }
Example #3
0
        public Planet(Tip tip, int pozicija, Zvijezda zvjezda, double velicina, double kvalitetaAtmosfere, double gustocaAtmosfere, double mineraliPovrsinski, double mineraliDubinski)
        {
            this.tip      = tip;
            this.zvjezda  = zvjezda;
            this.pozicija = pozicija;
            if (zvjezda != null)
            {
                ime = zvjezda.ime + " " + rimskiBrojevi[pozicija];
            }
            else
            {
                ime = "";
            }
            this.kolonija = null;

            this.velicina           = (int)(Fje.IzIntervala(velicina, tipovi[tip].velicinaMin, tipovi[tip].velicinaMax));
            this.kvalitetaAtmosfere = kvalitetaAtmosfere;
            this.gustocaAtmosfere   = Fje.IzIntervala(gustocaAtmosfere, minGustocaAtmosfere(), maxGustocaAtmosfere());
            this.mineraliPovrsinski = Fje.IzIntervala(mineraliPovrsinski, tipovi[tip].povrsinskiMineraliMin, tipovi[tip].povrsinskiMineraliMax);
            this.mineraliDubinski   = Fje.IzIntervala(mineraliDubinski, this.mineraliPovrsinski, tipovi[tip].dubinskiMineraliMax);

            if (this.mineraliDubinski - this.mineraliPovrsinski > tipovi[tip].mineraliMaxRazlika)
            {
                this.mineraliDubinski = this.mineraliPovrsinski + tipovi[tip].mineraliMaxRazlika;
            }

            if (zvjezda != null)
            {
                slika = Slike.OdrediSlikuPlaneta(tip, this.gustocaAtmosfere, this.kvalitetaAtmosfere, this.temperatura());
            }
            else
            {
                slika = null;
            }
        }
Example #4
0
        int odrediPomakScrolla(int sirinaKlijenta, int sirinaPrikaza, ScrollProperties scroll, int zeljenaPozicija, double brzina)
        {
            if (sirinaPrikaza >= sirinaKlijenta)
            {
                return(0);
            }

            double skala           = (sirinaKlijenta - sirinaPrikaza) / (double)(scroll.Maximum - scroll.LargeChange);
            int    pozicijaPrikaza = sirinaPrikaza / 2 + (int)(scroll.Value * skala);

            zeljenaPozicija = Fje.Ogranici(zeljenaPozicija, sirinaPrikaza / 2 + 1, sirinaKlijenta - sirinaPrikaza / 2 - 1);
            double delta = zeljenaPozicija - pozicijaPrikaza;

            if (brzina == 0)
            {
                return((int)delta);
            }

            if (Math.Abs(delta) < brzina + 2)
            {
                if (Math.Abs(delta) < 2)
                {
                    return((int)(delta * skala));
                }
                else
                {
                    return(Math.Sign(delta));
                }
            }
            else
            {
                return((int)(delta / (brzina * skala)));
            }
        }
Example #5
0
        private void inicijalizirajEfekte(Dictionary <string, double> efekti)
        {
            efekti[PopulacijaBr]       = populacija;
            efekti[PopulacijaMax]      = 10000000 * (Math.Pow(planet.velicina, 1.5));
            efekti[PopulacijaPromjena] = populacija * Igrac.efekti["NATALITET"];
            efekti[RadnaMjesta]        = radnaMjesta;
            efekti[RadnaMjestaDelta]   = 0;
            efekti[AktivnaRadnaMjesta] = Math.Min(populacija, radnaMjesta);
            efekti[MigracijaMax]       = 0;
            if (!efekti.ContainsKey(PopulacijaVisak))
            {
                efekti[PopulacijaVisak] = 0;
            }

            efekti[RudeDubina]     = (planet.tip == Planet.Tip.ASTEROIDI) ? 1 : Igrac.efekti["DUBINA_RUDARENJA"];
            efekti[RudeDubinske]   = planet.mineraliDubinski;
            efekti[RudeEfektivno]  = Fje.IzIntervala(efekti[RudeDubina], planet.mineraliPovrsinski, planet.mineraliDubinski);
            efekti[RudePovrsinske] = planet.mineraliPovrsinski;

            efekti[VelicinaPlaneta]      = planet.velicina;
            efekti[Gravitacija]          = planet.gravitacija();
            efekti[Zracenje]             = planet.ozracenost();
            efekti[Temperatura]          = planet.temperatura();
            efekti[AtmGustoca]           = planet.gustocaAtmosfere;
            efekti[AtmKvaliteta]         = planet.kvalitetaAtmosfere;
            efekti[NedostupanDioPlaneta] = 1;

            efekti[TeraformGravitacija]  = 0;
            efekti[TeraformZracenje]     = 0;
            efekti[TeraformTemperatura]  = 0;
            efekti[TeraformAtmGustoca]   = 0;
            efekti[TeraformAtmKvaliteta] = 0;
        }
Example #6
0
        public void prikaziFlotu(Zvijezda zvijezda)
        {
            Dictionary <string, ITekst> jezik = Postavke.Jezik[Kontekst.FormIgra];

            tvFlota.Nodes.Clear();
            tvFlota.ImageList.Images.Clear();
            foreach (Igrac _igrac in igra.igraci)
            {
                tvFlota.ImageList.Images.Add(Slike.FlotaTabBoja[_igrac.boja]);
            }

            foreach (Igrac _igrac in igra.igraci)
            {
                if (_igrac.floteStacionarne.ContainsKey(zvijezda))
                {
                    Flota    flota = _igrac.floteStacionarne[zvijezda];
                    TreeNode nodeStacionarnaFloata = new TreeNode(jezik["flotaObrana"].tekst(null));
                    nodeStacionarnaFloata.ImageIndex = _igrac.id;
                    nodeStacionarnaFloata.Tag        = flota;
                    tvFlota.Nodes.Add(nodeStacionarnaFloata);

                    foreach (Brod brod in flota.brodovi.Values)
                    {
                        TreeNode node = new TreeNode(brod.dizajn.ime + " x " + Fje.PrefiksFormater(brod.kolicina));
                        tvFlota.ImageList.Images.Add(brod.dizajn.trup.slika);
                        node.ImageIndex         = tvFlota.ImageList.Images.Count - 1;
                        node.SelectedImageIndex = node.ImageIndex;
                        node.Tag = brod;
                        nodeStacionarnaFloata.Nodes.Add(node);
                    }
                }
            }
            tvFlota.ExpandAll();
            postaviAkcijeBroda();
        }
Example #7
0
        private void prikazOruzja(IKomponenta komponentaObj)
        {
            Dictionary <string, ITekst> jezik = Postavke.Jezik[Kontekst.FormTech];
            Oruzje oruzje = (Oruzje)komponentaObj;
            Misija misija = Misija.Opisnici[oruzje.misija];

            StringBuilder sb = new StringBuilder(txtOpOpis.Text);

            sb.AppendLine();
            sb.AppendLine();
            for (int paramI = 0; paramI < misija.brParametara; paramI++)
            {
                Misija.Parametar parametar = misija.parametri[paramI];
                sb.Append(parametar.opis);
                if (parametar.tip == Misija.TipParameta.Cijelobrojni)
                {
                    sb.AppendLine(": " + Fje.PrefiksFormater(oruzje.parametri[paramI]));
                }
                else if (parametar.tip == Misija.TipParameta.Postotak)
                {
                    sb.AppendLine(": x" + oruzje.parametri[paramI].ToString("0.##"));
                }
            }
            if (misija.imaCiljanje)
            {
                sb.AppendLine(jezik["opOruzjeCilj"].tekst() + ": " + Postavke.Jezik[Kontekst.Misije, Oruzje.OruzjeInfo.CiljanjeKod[oruzje.ciljanje]].tekst());
            }
            sb.AppendLine();
            sb.AppendLine(jezik["opCijena"].tekst() + ": " + Fje.PrefiksFormater(oruzje.cijena));
            sb.AppendLine(jezik["opSnaga"].tekst() + ": " + Fje.PrefiksFormater(oruzje.snaga));
            sb.AppendLine(jezik["opVelicina"].tekst() + ": " + Fje.PrefiksFormater(oruzje.velicina));
            txtOpOpis.Text = sb.ToString();
        }
Example #8
0
        public StarItem(ZvjezdanaUprava uprava) : this()
        {
            jezik       = Postavke.Jezik[Kontekst.Kolonija];
            this.uprava = uprava;

            starImage.Image = Slike.ZvijezdaTab[uprava.LokacijaZvj.tip];
            starName.Text   = uprava.LokacijaZvj.ime;

            double populacija = 0;

            foreach (Planet planet in uprava.LokacijaZvj.planeti)
            {
                if (planet.kolonija != null && planet.kolonija.Igrac == uprava.Igrac)
                {
                    populacija += planet.kolonija.Populacija;
                }
            }

            populationText.Text = Fje.PrefiksFormater(populacija);
            industryText.Text   = Fje.PrefiksFormater(uprava.Efekti[ZvjezdanaUprava.MaxGradnja]);

            resourceSlider.Value = (int)(uprava.UdioGradnje * resourceSlider.Maximum);
            buildingInfo.Text    = uprava.ProcjenaVremenaGradnje();
            osvjeziLabele();
        }
Example #9
0
        private void lstvPlaneti_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (lstvPlaneti.SelectedItems.Count == 0)
            {
                return;
            }

            Planet planet = zvijezda.planeti[lstvPlaneti.SelectedIndices[0]];

            if (planet.tip == Planet.Tip.NIKAKAV)
            {
                groupPlanet.Hide();
                groupPoStan.Hide();
                groupRude.Hide();

                hscrBrBrodova.Hide();
                lblBrBrodova.Hide();
                lblBrStanovnika.Hide();
                lblBrRadnihMjesta.Hide();
            }
            else
            {
                groupPlanet.Show();
                groupPoStan.Show();
                groupRude.Show();

                hscrBrBrodova.Show();
                lblBrBrodova.Show();
                lblBrStanovnika.Show();
                lblBrRadnihMjesta.Show();

                Kolonija kolonija = (planet.kolonija == null) ?
                                    new Kolonija(igrac, planet, brodPopulacija, brodRadnaMjesta) :
                                    planet.kolonija;

                Dictionary <string, ITekst> jezikKol = Postavke.Jezik[Kontekst.Kolonija];
                Dictionary <string, ITekst> jezikPl  = Postavke.Jezik[Kontekst.FormPlanetInfo];
                lblVelicina.Text        = jezikPl["plVelicina"].tekst() + ": " + Fje.PrefiksFormater(planet.velicina);
                lblGravitacija.Text     = jezikPl["plGravitacija"].tekst() + ": " + String.Format("{0:0.##}", planet.gravitacija());
                lblZracenje.Text        = jezikPl["plZracenje"].tekst() + ": " + String.Format("{0:0.##}", planet.ozracenost());
                lblAtmGustoca.Text      = jezikPl["plAtmGustoca"].tekst() + ": " + String.Format("{0:0.##}", planet.gustocaAtmosfere);
                lblAtmKvaliteta.Text    = jezikPl["plAtmKvaliteta"].tekst() + ": " + (int)(planet.kvalitetaAtmosfere * 100) + "%";
                lblAtmoTemperatura.Text = jezikPl["plAtmTemperatura"].tekst() + ": " + String.Format("{0:0.##}", planet.temperatura());
                lblKoefOrbitalne.Text   = jezikPl["plCijenaOrbGradnje"].tekst() + ": x" + kolonija.Efekti[Kolonija.FaktorCijeneOrbitalnih].ToString("0.##");

                lblMinPovrsina.Text  = jezikKol["plMinPovrsina"].tekst() + ": " + String.Format("{0:0.##}", kolonija.Efekti[Kolonija.RudePovrsinske]);
                lblMinDubina.Text    = jezikKol["plMinDubina"].tekst() + ": " + String.Format("{0:0.##}", kolonija.Efekti[Kolonija.RudeDubinske]);
                lblMinOstvareno.Text = jezikKol["plMinOstvareno"].tekst() + ": " + String.Format("{0:0.##}", kolonija.Efekti[Kolonija.RudeEfektivno]);

                Dictionary <string, double> maxEfekti = kolonija.maxEfekti();
                lblHranaPoStan.Text      = jezikKol["HranaPoStan"].tekst() + ": " + String.Format("{0:0.##} / {1:0.##}", kolonija.Efekti[Kolonija.HranaPoFarmeru], maxEfekti[Kolonija.HranaPoFarmeru]);
                lblRudePoStan.Text       = jezikKol["RudePoStan"].tekst() + ": " + String.Format("{0:0.##} / {1:0.##}", kolonija.Efekti[Kolonija.RudePoRudaru], maxEfekti[Kolonija.RudePoRudaru]);
                lblOdrzavanjePoStan.Text = jezikKol["OdrzavanjePoStan"].tekst() + ": " + String.Format("{0:0.##}", (kolonija.Efekti[Kolonija.OdrzavanjeUkupno] / kolonija.Efekti[Kolonija.PopulacijaBr]));
                lblIndustrijaPoStan.Text = jezikKol["IndustrijaPoStan"].tekst() + ": " + String.Format("{0:0.##} / {1:0.##}", kolonija.Efekti[Kolonija.IndPoRadnikuEfektivno], maxEfekti[Kolonija.IndPoRadnikuEfektivno]);
                lblRazvojPoStan.Text     = jezikKol["RazvojPoStan"].tekst() + ": " + String.Format("{0:0.##} / {1:0.##}", kolonija.Efekti[Kolonija.RazPoRadnikuEfektivno], maxEfekti[Kolonija.RazPoRadnikuEfektivno]);

                postaviBrBrodova();
            }
        }
Example #10
0
        public FormTechIzbor(Igrac igrac)
        {
            InitializeComponent();
            Dictionary <string, ITekst> jezik = Postavke.Jezik[Kontekst.FormTech];

            btnIstDno.Text   = jezik["btnDno"].tekst();
            btnIstDolje.Text = jezik["btnDolje"].tekst();
            btnIstGore.Text  = jezik["btnGore"].tekst();
            btnIstVrh.Text   = jezik["btnVrh"].tekst();
            btnOk.Text       = jezik["btnOk"].tekst();
            btnRazDno.Text   = jezik["btnDno"].tekst();;
            btnRazDolje.Text = jezik["btnDolje"].tekst();
            btnRazGore.Text  = jezik["btnGore"].tekst();
            btnRazVrh.Text   = jezik["btnVrh"].tekst();

            chIstNaziv.Text     = jezik["chNaziv"].tekst();
            chIstNivo.Text      = jezik["chNivo"].tekst();
            chIstPoeni.Text     = jezik["chPoeni"].tekst();
            chIstPrioritet.Text = jezik["chIstPrioritet"].tekst();
            chKnjizNaziv.Text   = jezik["chNaziv"].tekst();
            chKnjizNivo.Text    = jezik["chNivo"].tekst();
            chRazNaziv.Text     = jezik["chNaziv"].tekst();
            chRazNivo.Text      = jezik["chNivo"].tekst();
            chRazPoeni.Text     = jezik["chPoeni"].tekst();
            chRazUlaganje.Text  = jezik["chRazUlaganje"].tekst();

            lblFokusirano.Text    = jezik["lblFokusirano"].tekst();
            lblRaspodjela.Text    = jezik["lblRaspodjela"].tekst();
            lblRavnomjerno.Text   = jezik["lblRavnomjerno"].tekst();
            lblUIstrazivanju.Text = jezik["lblUIstrazivanju"].tekst() + ":";
            lblURazvoju.Text      = jezik["lblURazvoju"].tekst() + ":";

            this.Text            = jezik["naslov"].tekst();
            tabIstrazivanje.Text = jezik["tabIst"].tekst();
            tabOprema.Text       = jezik["tabOprema"].tekst();
            tabKnjiznica.Text    = jezik["tabKnjiz"].tekst();
            tabRazvoj.Text       = jezik["tabRaz"].tekst();

            this.igrac         = igrac;
            txtRazOpis.Text    = "";
            txtIstOpis.Text    = "";
            lblIstPoeni.Text   = jezik["lblIstPoeni"].tekst() + ": " + Fje.PrefiksFormater(igrac.istrazivanjePoSustavu[igrac.istrazivanjeSustav]);
            lblRazPoeni.Text   = jezik["lblRazPoeni"].tekst() + ": " + Fje.PrefiksFormater(igrac.poeniRazvoja());
            lblIstSustav.Text  = " (" + igrac.istrazivanjeSustav.ime + ")";
            lblKnjizNaziv.Text = "";
            txtKnjizOpis.Text  = "";
            lblOpNaziv.Text    = "";
            txtOpOpis.Text     = "";

            InizijalizirajRazvoj();
            InicijalizirajIstrazivanje();
            InicijalizirajKnjiznicu();
            InicijalizirajOpremu();

            izracunajPoeneRazvoja();
            this.Font = Postavke.FontSucelja(this.Font);
        }
Example #11
0
        private void odaberiZvijezdu(Zvijezda zvijezda, bool promjeniTab)
        {
            Dictionary <string, ITekst> jezik = Postavke.Jezik[Kontekst.FormIgra];

            igrac.odabranaZvijezda = zvijezda;
            if (promjeniTab)
            {
                tabCtrlDesno.SelectedTab = tabPageZvijezda;
            }

            bool imaKoloniju = false;

            for (int i = 0; i < zvijezda.planeti.Count; i++)
            {
                if (igrac.posjeceneZvjezde.Contains(zvijezda))
                {
                    planetInfoi[i].PostaviPlanet(zvijezda.planeti[i], igrac);
                }
                else
                {
                    planetInfoi[i].PostaviNeistrazeno(i);
                }
            }

            prikaziFlotu(zvijezda);

            bool igracevSustav = (igrac.OdabranSustav != null);

            if (igracevSustav)
            {
                hscrZvjezdaGradnja.Value = (int)(igrac.OdabranSustav.UdioGradnje * hscrZvjezdaGradnja.Maximum);
                lblImeZvjezde.Text       = zvijezda.ime + "\n" +
                                           jezik["lblZracenje"].tekst() + ": " + zvijezda.zracenje() + "\n" +
                                           jezik["lblMigracija"].tekst() + ": " + Fje.PrefiksFormater(zvijezda.uprave[igrac.id][Kolonija.MigracijaMax]);
            }
            else
            {
                lblImeZvjezde.Text = zvijezda.ime + "\n" +
                                     jezik["lblZracenje"].tekst() + ": " + zvijezda.zracenje();
            }

            btnVojnaGradnja.Visible         = igracevSustav;
            hscrZvjezdaGradnja.Visible      = igracevSustav;
            lblVojnaGradnja.Visible         = igracevSustav;
            lblProcjenaVojneGradnje.Visible = igracevSustav;
            lblRazvoj.Visible = igracevSustav;

            osvjeziMapu();
            tabCtrlDesno.ImageList.Images[0] = Slike.ZvijezdaTab[zvijezda.tip];
            tabCtrlDesno.Refresh();

            btnSlijedecaKolonija.Visible = imaKoloniju;
            btnPrethodnaKolonija.Visible = imaKoloniju;
        }
Example #12
0
        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);
        }
Example #13
0
        private void listPositions_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (listPositions.SelectedItem == null)
            {
                prikazZadavanjaZapovijedi(false);
                return;
            }

            List <Borac> borci = (listPositions.SelectedItem as TagTekst <List <Borac> >).tag;

            if (borci.Count == 0)
            {
                prikazZadavanjaZapovijedi(false);
                return;
            }
            else
            {
                prikazZadavanjaZapovijedi(true);
            }

            int odrediste = borci[0].CiljnaPozicija;

            int cbIndex = 0;

            for (int i = 0; i < cbPozicija.Items.Count; i++)
            {
                if ((cbPozicija.Items[i] as TagTekst <int>).tag == odrediste)
                {
                    cbIndex = i;
                }
            }
            cbPozicija.SelectedIndex = cbIndex;

            if (borci.Count < 20)
            {
                trackKolicina.Maximum       = borci.Count;
                trackKolicina.LargeChange   = Math.Min(borci.Count, 2);
                trackKolicina.SmallChange   = 1;
                trackKolicina.TickFrequency = 1;
            }
            else
            {
                int trackMaximum = Math.Min(borci.Count, TrackLargeQuantity);
                trackKolicina.Maximum       = trackMaximum;
                trackKolicina.LargeChange   = trackMaximum / 20;
                trackKolicina.SmallChange   = Math.Max(trackMaximum / 100, 1);
                trackKolicina.TickFrequency = trackKolicina.LargeChange;
            }

            lblKolicina.Text    = Fje.PrefiksFormater(borci.Count);
            trackKolicina.Value = trackKolicina.Maximum;
        }
Example #14
0
        public string tekst(Dictionary <string, double> varijable)
        {
            if (formatTip == FormatTip.Decimalan)
            {
                return(String.Format(format, formula.iznos(varijable)));
            }
            else
            {
                return(Fje.PrefiksFormater(formula.iznos(varijable)));
            }

            throw new FormatException();
        }
Example #15
0
        private void postaviBrBrodova()
        {
            int planetI = lstvPlaneti.SelectedIndices[0];
            Dictionary <string, ITekst> jezik = Postavke.Jezik[Kontekst.Kolonija];

            lblBrBrodova.Text      = Postavke.Jezik[Kontekst.FormKolonizacija, "lblBrBrodova"].tekst() + ": " + Fje.PrefiksFormater(brBrodova[planetI]);
            lblBrStanovnika.Text   = jezik["plPopulacija"].tekst() + ": " + Fje.PrefiksFormater(brBrodova[planetI] * brodPopulacija);
            lblBrRadnihMjesta.Text = jezik["plRadnaMjesta"].tekst() + ": " + Fje.PrefiksFormater(brBrodova[planetI] * brodRadnaMjesta);

            hscrBrBrodova.Enabled = false;
            hscrBrBrodova.Value   = Fje.Ogranici((int)(hscrBrBrodova.Maximum * (Math.Log(brBrodova[planetI]) / Math.Log(maxBrodova()))), hscrBrBrodova.Minimum, hscrBrBrodova.Maximum);
            hscrBrBrodova.Enabled = true;
        }
Example #16
0
        private void cbPocetnaPop_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cbPocetnaPop.SelectedItem == null)
            {
                return;
            }

            PocetnaPopulacija pocetnaPop = (cbPocetnaPop.SelectedItem as TagTekst <PocetnaPopulacija>).tag;
            var jezik = Postavke.Jezik[Kontekst.FormNovaIgra];

            lblBrKolonija.Text = jezik["lblBrKolonija"].tekst() + ": " + pocetnaPop.BrKolonija;
            lblPopulacija.Text = jezik["lblPopulacija"].tekst() + ": " + Fje.PrefiksFormater(pocetnaPop.Populacija);
        }
Example #17
0
        private void osvjeziLabele()
        {
            Kolonija        kolonija = igrac.OdabranPlanet.kolonija;
            ZvjezdanaUprava sustav   = igrac.OdabranSustav;

            Dictionary <string, ITekst> jezik = Postavke.Jezik[Kontekst.Kolonija];

            if (kolonija != null)
            {
                lblHranaPoStan.Text      = jezik["HranaPoStan"].tekst() + ": " + kolonija.Efekti[Kolonija.HranaPoFarmeru].ToString("0.##");
                lblRudePoStan.Text       = jezik["RudePoStan"].tekst() + ": " + kolonija.Efekti[Kolonija.RudePoRudaru].ToString("0.##");
                lblOdrzavanjePoStan.Text = jezik["OdrzavanjePoStan"].tekst() + ": " + (kolonija.Efekti[Kolonija.OdrzavanjeUkupno] / kolonija.Efekti[Kolonija.PopulacijaBr]).ToString("0.##");
                lblIndustrijaPoStan.Text = jezik["IndustrijaPoStan"].tekst() + ": " + kolonija.Efekti[Kolonija.IndPoRadnikuEfektivno].ToString("0.##");
                lblRazvojPoStan.Text     = jezik["RazvojPoStan"].tekst() + ": " + kolonija.Efekti[Kolonija.RazPoRadnikuEfektivno].ToString("0.##");

                lblCivilnaIndustrija.Text      = Fje.PrefiksFormater(kolonija.UtroseniPoeniIndustrije) + " " + jezik["jedInd"].tekst();
                lblProcjenaCivilneGradnje.Text = kolonija.ProcjenaVremenaGradnje();

                if (kolonija.RedGradnje.Count > 0)
                {
                    btnCivilnaGradnja.Image = kolonija.RedGradnje.First.Value.slika;
                    btnCivilnaGradnja.Text  = "";
                }
                else
                {
                    btnCivilnaGradnja.Image = null;
                    btnCivilnaGradnja.Text  = jezik["Civilna_Gradnja"].tekst();
                }
            }

            if (sustav != null)
            {
                sustav.IzracunajEfekte();
                sustav.OsvjeziInfoGradnje();

                lblVojnaGradnja.Text         = Fje.PrefiksFormater(sustav.UtroseniPoeniIndustrije) + " " + jezik["jedInd"].tekst();
                lblProcjenaVojneGradnje.Text = sustav.ProcjenaVremenaGradnje();
                lblRazvoj.Text = jezik["lblRazvoj"].tekst() + Fje.PrefiksFormater(sustav.PoeniRazvoja);

                if (sustav.RedGradnje.Count > 0)
                {
                    btnVojnaGradnja.Image = sustav.RedGradnje.First.Value.slika;
                    btnVojnaGradnja.Text  = "";
                }
                else
                {
                    btnVojnaGradnja.Image = null;
                    btnVojnaGradnja.Text  = jezik["Vojna_Gradnja"].tekst();
                }
            }
        }
Example #18
0
        private void izracunajPoeneRazvoja()
        {
            int         brTehnologija = lstRazvoj.Items.Count;
            List <long> rasporedPoena = Tehnologija.RasporedPoena(igrac.poeniRazvoja(), brTehnologija, RaspodijelaPoena[raspodijelaPoena]);

            for (int i = 0; i < brTehnologija; i++)
            {
                ListViewItem item = lstRazvoj.Items[i];
                Tehnologija  teh  = (Tehnologija)item.Tag;

                item.SubItems[2].Text = Fje.PrefiksFormater(teh.ulozenoPoena) + " / " + Fje.PrefiksFormater(teh.cijena(igrac.efekti));
                item.SubItems[3].Text = Fje.PrefiksFormater(rasporedPoena[i]);
            }
        }
Example #19
0
        public FormPlanetInfo(Kolonija kolonija) : this()
        {
            this.kolonija = kolonija;
            this.Text     = kolonija.ime;
            postaviTekstove();

            picSlika.Image = kolonija.slika;

            Dictionary <string, ITekst> jezik = Postavke.Jezik[Kontekst.FormPlanetInfo];

            lblVelicina.Text       = jezik["plVelicina"].tekst() + ": " + Fje.PrefiksFormater(kolonija.planet.velicina);
            lblGravitacija.Text    = jezik["plGravitacija"].tekst() + ": " + String.Format("{0:0.##}", kolonija.Efekti[Kolonija.Gravitacija]);
            lblZracenje.Text       = jezik["plZracenje"].tekst() + ": " + String.Format("{0:0.##}", kolonija.Efekti[Kolonija.Zracenje]);
            lblAtmGustoca.Text     = jezik["plAtmGustoca"].tekst() + ": " + String.Format("{0:0.##}", kolonija.Efekti[Kolonija.AtmGustoca]);
            lblAtmKvaliteta.Text   = jezik["plAtmKvaliteta"].tekst() + ": " + (int)(kolonija.Efekti[Kolonija.AtmKvaliteta] * 100) + "%";
            lblAtmTemperatura.Text = jezik["plAtmTemperatura"].tekst() + ": " + String.Format("{0:0.##}", kolonija.Efekti[Kolonija.Temperatura]);

            string predznak = "";

            if (kolonija.Efekti[Kolonija.PopulacijaPromjena] < 0)
            {
                predznak = "-";
            }
            else if (kolonija.Efekti[Kolonija.PopulacijaPromjena] > 0)
            {
                predznak = "+";
            }

            Dictionary <string, ITekst> jezikKl = Postavke.Jezik[Kontekst.Kolonija];

            lblPopBr.Text    = jezikKl["plPopulacija"].tekst() + ": " + Fje.PrefiksFormater(kolonija.Efekti[Kolonija.PopulacijaBr]);
            lblPopDelta.Text = jezikKl["plPromjenaPop"].tekst() + ": " + predznak + Fje.PrefiksFormater(kolonija.Efekti[Kolonija.PopulacijaPromjena]);
            lblPopMax.Text   = jezikKl["plPopMax"].tekst() + ": " + Fje.PrefiksFormater(kolonija.Efekti[Kolonija.PopulacijaMax]);

            lblMinPovrsina.Text  = jezikKl["plMinPovrsina"].tekst() + ": " + String.Format("{0:0.##}", kolonija.Efekti[Kolonija.RudePovrsinske]);
            lblMinDubina.Text    = jezikKl["plMinDubina"].tekst() + ": " + String.Format("{0:0.##}", kolonija.Efekti[Kolonija.RudeDubinske]);
            lblMinOstvareno.Text = jezikKl["plMinOstvareno"].tekst() + ": " + String.Format("{0:0.##}", kolonija.Efekti[Kolonija.RudeEfektivno]);

            lblOdrzavanjeGrav.Text    = jezik["plGravitacija"].tekst() + ": " + Fje.PrefiksFormater(kolonija.Efekti[Kolonija.OdrzavanjeGravitacija]);
            lblOdrzavanjeZrac.Text    = jezik["plZracenje"].tekst() + ": " + Fje.PrefiksFormater(kolonija.Efekti[Kolonija.OdrzavanjeZracenje]);
            lblOdrzavanjeKvalAtm.Text = jezik["plAtmKvaliteta"].tekst() + ": " + Fje.PrefiksFormater(kolonija.Efekti[Kolonija.OdrzavanjeAtmKvaliteta]);
            lblOdrzavanjeGustAtm.Text = jezik["plAtmGustoca"].tekst() + ": " + Fje.PrefiksFormater(kolonija.Efekti[Kolonija.OdrzavanjeAtmGustoca]);
            lblOdrzavanjeTempAtm.Text = jezik["plAtmTemperatura"].tekst() + ": " + Fje.PrefiksFormater(kolonija.Efekti[Kolonija.OdrzavanjeTemperatura]);
            lblOdrzavanjeZgrada.Text  = jezik["plZgrade"].tekst() + ": " + Fje.PrefiksFormater(kolonija.Efekti[Kolonija.OdrzavanjeZgrada]);
            lblOdrzavanjeUkupno.Text  = jezik["ukupno"].tekst() + ": " + Fje.PrefiksFormater(kolonija.Efekti[Kolonija.OdrzavanjeUkupno]);

            lblZgradaInfo.Text = "";
            osvjeziPogledNaKoloniju();
        }
Example #20
0
        private void InicijalizirajIstrazivanje()
        {
            int j = 1;

            foreach (Tehnologija t in igrac.tehnologijeUIstrazivanju)
            {
                ListViewItem item = new ListViewItem(t.tip.naziv);
                item.SubItems.Add("" + (t.nivo + 1));
                item.SubItems.Add(Fje.PrefiksFormater(t.ulozenoPoena) + " / " + Fje.PrefiksFormater(t.cijena(igrac.efekti)));
                item.SubItems.Add(j + ".");
                item.Tag = t;
                lstIstrazivanje.Items.Add(item);
                j++;
            }
        }
Example #21
0
        public static string ProcjenaVremenaGradnje(double poeniIndustrije, double ostatakGradnje, Zgrada.ZgradaInfo uGradnji, Igrac igrac)
        {
            if (uGradnji == null)
            {
                return("");
            }
            double cijena = uGradnji.CijenaGradnje.iznos(igrac.efekti);

            double brZgrada = (ostatakGradnje + poeniIndustrije) / cijena;

            Dictionary <string, ITekst> jezik = Postavke.Jezik[Kontekst.Kolonija];
            Dictionary <string, double> vars  = new Dictionary <string, double>();

            if (brZgrada >= 1)
            {
                long dopustenaKolicina = (long)Math.Min(
                    uGradnji.DopustenaKolicina.iznos(igrac.efekti),
                    uGradnji.DopustenaKolicinaPoKrugu.iznos(igrac.efekti));
                brZgrada = Fje.Ogranici(brZgrada, 0, dopustenaKolicina);

                vars.Add("BR_ZGRADA", brZgrada);
                return(jezik["gradPoKrugu"].tekst(vars));
            }
            else
            {
                if (poeniIndustrije == 0)
                {
                    return(jezik["gradNikad"].tekst());
                }

                double brKrugova  = (cijena - ostatakGradnje) / (double)poeniIndustrije;
                double zaokruzeno = Math.Ceiling(brKrugova * 10) / 10;
                long   tmp        = (long)Math.Ceiling(brKrugova * 10);

                vars.Add("BR_KRUGOVA", Math.Ceiling(brKrugova * 10) / 10);
                vars.Add("DECIMALA", ((long)Math.Ceiling(brKrugova * 10)) % 10);

                if (brKrugova < 10)
                {
                    return(jezik["gradVrijemeDec"].tekst(vars));
                }
                else
                {
                    return(jezik["gradVrijemePref"].tekst(vars));
                }
            }
        }
Example #22
0
        private void hscrBrBrodova_Scroll(object sender, ScrollEventArgs e)
        {
            int planetI = lstvPlaneti.SelectedIndices[0];

            brBrodova[planetI] = (e.NewValue == 0) ? 0 : (long)(Math.Ceiling(Math.Pow(e.NewValue / (double)hscrBrBrodova.Maximum, 2) * maxBrodova()));

            Dictionary <string, ITekst> jezik = Postavke.Jezik[Kontekst.Kolonija];

            lblBrBrodova.Text      = Postavke.Jezik[Kontekst.FormKolonizacija, "lblBrBrodova"].tekst() + ": " + Fje.PrefiksFormater(brBrodova[planetI]);
            lblBrStanovnika.Text   = jezik["plPopulacija"].tekst() + ": " + Fje.PrefiksFormater(brBrodova[planetI] * brodPopulacija);
            lblBrRadnihMjesta.Text = jezik["plRadnaMjesta"].tekst() + ": " + Fje.PrefiksFormater(brBrodova[planetI] * brodRadnaMjesta);

            if (e.NewValue == 0 || e.OldValue == 0)
            {
                postaviZvjezdice();
            }
        }
Example #23
0
        public Zvijezda(int id, int tip, double x, double y)
        {
            this.id      = id;
            this._tip    = tip;
            this.x       = x;
            this.y       = y;
            this.planeti = new List <Planet>();

            if (tip > Tip_Nikakva)
            {
                this.velicina = Fje.IzIntervala(Fje.Random.NextDouble(), Tipovi[tip].velicinaMin, Tipovi[tip].velicinaMax);
            }
            else
            {
                this.velicina = Fje.Random.NextDouble();
            }
        }
Example #24
0
        public PlanetItem(Igra.Kolonija kolonija) : this()
        {
            this.kolonija = kolonija;

            jezik         = Postavke.Jezik[Kontekst.Kolonija];
            this.kolonija = kolonija;

            planetImage.Image = kolonija.slika;
            planetName.Text   = kolonija.ime;

            populationText.Text = Fje.PrefiksFormater(kolonija.Populacija);
            industryText.Text   = Fje.PrefiksFormater(kolonija.Efekti[Kolonija.IndustrijaPoRadniku] * kolonija.Efekti[Kolonija.BrRadnika]);

            resourceSlider.Value = (int)(kolonija.UdioIndustrije * resourceSlider.Maximum);
            buildingInfo.Text    = kolonija.ProcjenaVremenaGradnje();
            osvjeziLabele();
        }
Example #25
0
        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();
        }
Example #26
0
        private void osvjeziLabele()
        {
            Dictionary <string, ITekst> jezik = Postavke.Jezik[Kontekst.Kolonija];

            lblCivilnaIndustrija.Text      = Fje.PrefiksFormater(kolonija.poeniIndustrije()) + " " + jezik["jedInd"].tekst();
            lblProcjenaCivilneGradnje.Text = kolonija.ProcjenaVremenaGradnje();
            lblRazvoj.Text        = jezik["lblRazvoj"].tekst() + Fje.PrefiksFormater(kolonija.poeniRazvoja());
            lblKoefOrbitalne.Text = Postavke.Jezik[Kontekst.FormPlanetInfo, "plCijenaOrbGradnje"].tekst() + ": x" + kolonija.Efekti[Kolonija.FaktorCijeneOrbitalnih].ToString("0.##");

            if (kolonija.RedGradnje.Count > 0)
            {
                btnCivilnaGradnja.Image = kolonija.RedGradnje.First.Value.slika;
                btnCivilnaGradnja.Text  = "";
            }
            else
            {
                btnCivilnaGradnja.Image = null;
                btnCivilnaGradnja.Text  = jezik["Civilna_Gradnja"].tekst();
            }
        }
Example #27
0
        private void trackKolicina_Scroll(object sender, EventArgs e)
        {
            if (listPositions.SelectedItem == null)
            {
                return;
            }

            List <Borac> borci = (listPositions.SelectedItem as TagTekst <List <Borac> >).tag;

            if (borci.Count == 0)
            {
                return;
            }

            int kolicina = (borci.Count > TrackLargeQuantity) ?
                           (int)(borci.Count * (trackKolicina.Value / (double)TrackLargeQuantity)) :
                           trackKolicina.Value;

            lblKolicina.Text = Fje.PrefiksFormater(kolicina);
        }
Example #28
0
        public void RefreshData()
        {
            int    brojBoraca         = 0;
            double izdrzljivostOklopa = 0;
            double izdrzljivostStita  = 0;

            foreach (Borac borac in grupaBoraca)
            {
                brojBoraca++;
                izdrzljivostOklopa += borac.IzdrzljivostOklopa / borac.Dizajn.izdrzljivostOklopa;

                if (dizajn.stit != null)
                {
                    izdrzljivostStita += borac.IzdrzljivostStita / borac.Dizajn.izdrzljivostStita;
                }
            }
            izdrzljivostOklopa /= brojBoraca;
            izdrzljivostStita  /= brojBoraca;

            Image slikaStanje = picStanje.Image ?? new Bitmap(picStanje.Width, picStanje.Height);

            using (Graphics g = Graphics.FromImage(slikaStanje)) {
                g.Clear(Color.Black);

                int       granicaOklopStit = slikaStanje.Height / 2;
                Rectangle oklopRect        = new Rectangle(0, granicaOklopStit, (int)(izdrzljivostOklopa * slikaStanje.Width), slikaStanje.Height - granicaOklopStit);
                Rectangle stitRect         = new Rectangle(0, 0, (int)(izdrzljivostStita * slikaStanje.Width), granicaOklopStit);

                g.DrawRectangle(new Pen(BojaOklopa), oklopRect);
                g.FillRectangle(new SolidBrush(BojaOklopa), oklopRect);

                g.DrawRectangle(new Pen(BojaStita), stitRect);
                g.FillRectangle(new SolidBrush(BojaStita), stitRect);
            }

            picIkona.Image  = dizajn.ikona;
            lblNaziv.Text   = Fje.PrefiksFormater(brojBoraca) + " x " + dizajn.ime;
            picStanje.Image = slikaStanje;

            Refresh();
        }
Example #29
0
        private void btnUkloni_Click(object sender, EventArgs e)
        {
            if (lstRedGradnje.SelectedItem == null)
            {
                return;
            }

            object zInfo    = lstRedGradnje.SelectedItem;
            int    pozicija = Fje.BinarySearch(lstMoguceGradit.Items, zInfo, sorterPonuda);

            if (pozicija < lstMoguceGradit.Items.Count)
            {
                if (sorterPonuda(lstMoguceGradit.Items[pozicija], zInfo) < 0)
                {
                    pozicija++;
                }
            }

            lstMoguceGradit.Items.Insert(pozicija, lstRedGradnje.SelectedItem);
            lstRedGradnje.Items.Remove(lstRedGradnje.SelectedItem);
        }
Example #30
0
        private void borci_OnSelect(object sender, ObjectEventArgs <ICollection <Borac> > eventArgs)
        {
            if (!borba.LijevaStrana.Contains(eventArgs.Value.First().Igrac))
            {
                prikazZapovijedi(false);
                return;
            }

            prikazZapovijedi(true);

            Dictionary <int, List <Borac> > raspodjelaBoraca = new Dictionary <int, List <Borac> >();

            for (int slot = 0; slot <= Pozicije.MaxPozicija; slot++)
            {
                raspodjelaBoraca.Add(slot, new List <Borac>());
            }
            foreach (Borac borac in eventArgs.Value)
            {
                raspodjelaBoraca[borac.CiljnaPozicija].Add(borac);
            }

            int maxKolicina = 0;

            listPositions.Items.Clear();
            for (int slot = 0; slot <= Pozicije.MaxPozicija; slot++)
            {
                raspodjelaBoraca[slot].Sort(
                    (a, b) => a.IzdrzljivostOklopa.CompareTo(b.IzdrzljivostOklopa));

                listPositions.Items.Add(new TagTekst <List <Borac> >(
                                            raspodjelaBoraca[slot],
                                            Fje.PrefiksFormater(raspodjelaBoraca[slot].Count) + " " + Pozicije.Naziv(slot)));

                if (raspodjelaBoraca[slot].Count > raspodjelaBoraca[maxKolicina].Count)
                {
                    maxKolicina = slot;
                }
            }
            listPositions.SelectedIndex = maxKolicina;
        }