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(); }
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 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); }
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); }