Ejemplo n.º 1
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();
        }
Ejemplo n.º 2
0
        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;
                    }
                }
            }
        }
Ejemplo n.º 3
0
        private void cbNDsekMisija_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (prethodnaNDsekMisija == cbNDsekMisija.SelectedIndex)
            {
                return;
            }

            if (dizajner.dizajnSekMisija != null)
            {
                TagTekst <Oruzje> tagTekst = (TagTekst <Oruzje>)cbNDsekMisija.Items[prethodnaNDsekMisija];
                cbNDsekMisija.Items[prethodnaNDsekMisija] = new TagTekst <Oruzje>(tagTekst.tag, tagTekst.tag.naziv);
            }
            prethodnaNDsekMisija = cbNDsekMisija.SelectedIndex;

            Oruzje misija = izvadiTag <Oruzje>(cbNDsekMisija);

            dizajner.dizajnSekMisija = misija;
            osvjeziNDstatistike();
            prebaciNDopis(InfoStranice.SekundarnaMisija);
        }
Ejemplo n.º 4
0
        public static Image NaciniIkonuBroda(Trup.TrupInfo trup, Oruzje primMisija, Oruzje sekMisija)
        {
            Image    rez = new Bitmap(60, 40);
            Graphics g   = Graphics.FromImage(rez);

            g.Clear(Color.Black);
            g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.Bicubic;
            g.DrawImage(trup.slika, new Rectangle(0, 0, 40, 40), 0, 0, trup.slika.Width, trup.slika.Height, GraphicsUnit.Pixel);

            if (primMisija != null)
            {
                g.DrawImage(MisijaBroda[primMisija.misija], 40, 0);
            }
            if (sekMisija != null)
            {
                g.DrawImage(MisijaBroda[sekMisija.misija], 40, 20);
            }
            g.Dispose();

            return(rez);
        }