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))); } }
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; }
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)); } } }
private void fazaOtkrivanja() { foreach (Strana strana in strane.Values) { double[] snagaSenzora = new double[Pozicije.MaxPozicija + 1]; for (int i = 0; i < snagaSenzora.Length; i++) { snagaSenzora[i] = double.NaN; } foreach (Borac borac in strana.Borci) { int slot = Fje.Ogranici((int)Math.Round(borac.Pozicija), 0, Pozicije.MaxPozicija); if (double.IsNaN(snagaSenzora[slot])) { snagaSenzora[slot] = borac.Dizajn.snagaSenzora; } else { snagaSenzora[slot] = Math.Max(borac.Dizajn.snagaSenzora, snagaSenzora[slot]); } } strana.PostaviSnaguSenzora(snagaSenzora); } foreach (Borac borac in sviBorci) { foreach (var strana in strane) { if (borac.Igrac != strana.Key) { double vjerojatnost = Vjerojatnost(strana.Value.SnagaSenzora((int)Math.Round(-borac.Pozicija)), borac.Dizajn.prikrivenost); borac.Vidljiv[strana.Key.id] = (vjerojatnost > random.NextDouble()); } } } }