コード例 #1
0
ファイル: PrikazMape.cs プロジェクト: campycoder/zvjezdojedac
        public PrikazMape(IgraZvj igra)
        {
            this.igra  = igra;
            this.skala = POCETNA_SKALA_MAPE;

            #region Određivanje dimenzija mape
            minX = igra.mapa.zvijezde[0].x;
            maxX = igra.mapa.zvijezde[0].x;
            minY = igra.mapa.zvijezde[0].y;
            maxY = igra.mapa.zvijezde[0].y;
            foreach (Zvijezda zvj in igra.mapa.zvijezde)
            {
                if (zvj.x < minX)
                {
                    minX = zvj.x;
                }
                if (zvj.x > maxX)
                {
                    maxX = zvj.x;
                }
                if (zvj.y < minY)
                {
                    minY = zvj.y;
                }
                if (zvj.y > maxY)
                {
                    maxY = zvj.y;
                }
            }
            #endregion

            osvjezi();
        }
コード例 #2
0
        private void ucitajMenu_Click(object sender, EventArgs e)
        {
            using (OpenFileDialog dialog = new OpenFileDialog()) {
                dialog.InitialDirectory = Environment.CurrentDirectory + Path.DirectorySeparatorChar + "pohranjeno";
                dialog.FileName         = "sejv.igra";
                dialog.Filter           = Postavke.Jezik[Kontekst.WindowsDijalozi, "TIP_SEJVA"].tekst(null) + " (*.igra)|*.igra";

                if (dialog.ShowDialog() == DialogResult.OK)
                {
                    GZipStream   zipStream = new GZipStream(new FileStream(dialog.FileName, FileMode.Open), CompressionMode.Decompress);
                    StreamReader citac     = new StreamReader(zipStream);

                    string ucitanaIgra = citac.ReadToEnd();
                    citac.Close();

                    this.igra = IgraZvj.Ucitaj(ucitanaIgra);
                    igrac     = igra.trenutniIgrac();

                    pomakPogleda       = null;
                    prikazMape         = new PrikazMape(igra);
                    this.picMapa.Image = prikazMape.slikaMape;
                    noviKrugPogled();
                }
            }
        }
コード例 #3
0
 public override void Djeluj(IgraZvj igra)
 {
     foreach (var kolonija in igrac.kolonije)
     {
         kolonija.UdioIndustrije = 0;
     }
 }
コード例 #4
0
 public void pomicanjeBroda(Flota izvornaFlota, Brod brod, Igrac igrac, IgraZvj igra)
 {
     this.izvornaFlota = izvornaFlota;
     this.igrac        = igrac;
     this.igra         = igra;
     initPoslaniBrodovi();
     poslaniBrodovi[brod.dizajn] = brod.kolicina;
     postaviGUI();
     Show();
 }
コード例 #5
0
        public FormPlaneti(IgraZvj igra)
            : this()
        {
            this.igra = igra;

            foreach (var kolonija in igra.trenutniIgrac().kolonije)
            {
                planetList.Controls.Add(new PlanetItem(kolonija));
            }
        }
コード例 #6
0
        public FormZvijezde(IgraZvj igra) : this()
        {
            this.igra = igra;

            foreach (var uprava in igra.mapa.ZvjezdaneUprave())
            {
                if (uprava.Igrac == igra.trenutniIgrac())
                {
                    starList.Controls.Add(new StarItem(uprava));
                }
            }
        }
コード例 #7
0
 public void pomicanjeFlote(Flota izvornaFlota, Igrac igrac, IgraZvj igra)
 {
     this.izvornaFlota = izvornaFlota;
     this.igrac        = igrac;
     this.igra         = igra;
     initPoslaniBrodovi();
     foreach (Brod brod in izvornaFlota.brodovi.Values)
     {
         poslaniBrodovi[brod.dizajn] = brod.kolicina;
     }
     postaviGUI();
     Show();
 }
コード例 #8
0
        public FormIgra(IgraZvj igra)
        {
            InitializeComponent();

            this.igra = igra;
            igrac     = igra.trenutniIgrac();

            this.frmFlotaPokret = new FormFlotaPokret(this);
            this.AddOwnedForm(frmFlotaPokret);

            pomakPogleda       = null;
            prikazMape         = new PrikazMape(igra);
            this.picMapa.Image = prikazMape.slikaMape;

            tabCtrlDesno.ImageList           = new ImageList();
            tabCtrlDesno.ImageList.ImageSize = new Size(32, 32);
            tabCtrlDesno.ImageList.Images.Add(new Bitmap(1, 1));
            tabCtrlDesno.ImageList.Images.Add(Slike.PlanetTab[Planet.Tip.ASTEROIDI][0].image);
            tabCtrlDesno.ImageList.Images.Add(Slike.FlotaTab);
            tabPageZvijezda.ImageIndex = 0;
            tabPageKolonija.ImageIndex = 1;
            tabPageFlote.ImageIndex    = 2;

            //listViewPlaneti.LargeImageList = new ImageList();
            //listViewPlaneti.LargeImageList.ImageSize = new Size(32, 32);
            //Image[] planetImages = new Image[Slike.PlanetImageIndex.Count];
            //foreach (Image img in Slike.PlanetImageIndex.Keys)
            //	planetImages[Slike.PlanetImageIndex[img]] = img;
            //listViewPlaneti.LargeImageList.Images.AddRange(planetImages);

            btnCivilnaGradnja.Text = "";
            btnVojnaGradnja.Text   = "";

            tvFlota.ImageList           = new ImageList();
            tvFlota.ImageList.ImageSize = new Size(20, 20);
            postaviJezik();
            postaviAkcijeBroda();

            for (int i = 0; i < 15; i++)
            {
                BriefPlanetItem planetInfo = new BriefPlanetItem();
                planetInfo.Click += this.listViewPlaneti_Click;

                planetInfoi[i] = planetInfo;
                planetiFlowPanel.Controls.Add(planetInfo);
            }

            this.Font = Postavke.FontSucelja(this.Font);
        }
コード例 #9
0
        public override void Djeluj(IgraZvj igra)
        {
            foreach (var zvj in igra.mapa.zvijezde)
            {
                if (zvj.uprave[igrac.id] != null)
                {
                    ZvjezdanaUprava uprava = zvj.uprave[igrac.id];

                    if (uprava.RedGradnje.Count == 0 || koordinator.PromjeniRedGradnje.Contains(zvj))
                    {
                        Vadjenje <Zgrada.ZgradaInfo> moguceGraditi = new Vadjenje <Zgrada.ZgradaInfo>(uprava.MoguceGraditi());

                        uprava.RedGradnje.Clear();
                        if (moguceGraditi.lista.Count > 0)
                        {
                            uprava.RedGradnje.AddLast(moguceGraditi.izvadi());
                        }
                    }
                    uprava.UdioGradnje = 1;
                }
            }
        }
コード例 #10
0
ファイル: FormMain.cs プロジェクト: campycoder/zvjezdojedac
        private void btnUcitaj_Click(object sender, EventArgs e)
        {
            OpenFileDialog dialog = new OpenFileDialog();

            dialog.InitialDirectory = Environment.CurrentDirectory + Path.DirectorySeparatorChar + "pohranjeno";
            dialog.FileName         = "sejv.igra";
            dialog.Filter           = Postavke.Jezik[Kontekst.WindowsDijalozi, "TIP_SEJVA"].tekst(null) + " (*.igra)|*.igra";

            if (dialog.ShowDialog() == DialogResult.OK)
            {
                GZipStream   zipStream = new GZipStream(new FileStream(dialog.FileName, FileMode.Open), CompressionMode.Decompress);
                StreamReader citac     = new StreamReader(zipStream);

                string ucitanaIgra = citac.ReadToEnd();
                citac.Close();

                IgraZvj igra = IgraZvj.Ucitaj(ucitanaIgra);

                using (FormIgra frmIgra = new FormIgra(igra))
                    frmIgra.ShowDialog();
            }
        }
コード例 #11
0
        public void OdigrajKrug(IgraZvj igra)
        {
            PromjeniRedGradnje.Clear();
            foreach (var poruka in Igrac.poruke)
            {
                if (poruka.tip == Poruka.Tip.Brod)
                {
                    PorukaBrod porukaBrod = poruka as PorukaBrod;
                    PromjeniRedGradnje.Add(porukaBrod.zvijezda);
                }
            }

            // pozivi moraju biti asocijativni i komutativni (neovisni o redoslijedu)
            foreach (var sloj in podSlojevi)
            {
                sloj.OdrediZahtjeve(igra);
            }

            foreach (var sloj in podSlojevi)
            {
                sloj.Djeluj(igra);
            }
        }
コード例 #12
0
 public abstract void Djeluj(IgraZvj igra);
コード例 #13
0
 public abstract void OdrediZahtjeve(IgraZvj igra);
コード例 #14
0
 public override void OdrediZahtjeve(IgraZvj igra)
 {
     // ne radi nista
 }
コード例 #15
0
 public override void Djeluj(IgraZvj igra)
 {
     // ne radi nista
 }
コード例 #16
0
        public FormKolonizacija(IgraZvj igra, Igrac igrac, Brod brod, Zvijezda zvijezda)
        {
            InitializeComponent();

            groupPlanet.Hide();
            groupPoStan.Hide();
            groupRude.Hide();

            hscrBrBrodova.Minimum = 0;
            hscrBrBrodova.Maximum = 40;
            hscrBrBrodova.Hide();

            lblBrBrodova.Hide();
            lblBrStanovnika.Hide();
            lblBrRadnihMjesta.Hide();

            this.igra     = igra;
            this.igrac    = igrac;
            this.brod     = brod;
            this.zvijezda = zvijezda;

            brodPopulacija  = brod.dizajn.populacija;
            brodRadnaMjesta = brod.dizajn.radnaMjesta;

            lstvPlaneti.LargeImageList           = new ImageList();
            lstvPlaneti.LargeImageList.ImageSize = new Size(32, 32);
            Image[] planetImages = new Image[Slike.PlanetImageIndex.Count];
            foreach (Image img in Slike.PlanetImageIndex.Keys)
            {
                planetImages[Slike.PlanetImageIndex[img]] = img;
            }
            lstvPlaneti.LargeImageList.Images.AddRange(planetImages);

            lstvPlaneti.Items.Clear();
            for (int i = 0; i < zvijezda.planeti.Count; i++)
            {
                Planet       planet = zvijezda.planeti[i];
                ListViewItem item   = new ListViewItem();
                item.ImageIndex = Slike.PlanetImageIndex[planet.slika];

                if (planet.tip != Planet.Tip.NIKAKAV)
                {
                    item.Text = planet.ime;
                    if (planet.kolonija != null)
                    {
                        item.ForeColor = planet.kolonija.Igrac.boja;
                    }
                }
                lstvPlaneti.Items.Add(item);
            }

            foreach (Flota.Kolonizacija kolonizacija in igrac.floteStacionarne[zvijezda].kolonizacije)
            {
                if (kolonizacija.brod == brod)
                {
                    brBrodova[kolonizacija.planet] += kolonizacija.brBrodova;
                }
                else
                {
                    dodatnaPopulacija[kolonizacija.planet] += kolonizacija.brod.dizajn.populacija * kolonizacija.brBrodova;
                }
            }

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

            btnPrihvati.Text  = jezik["btnPrihvati"].tekst();
            lblAtmosfera.Text = jezikPl["lblAtmosfera"].tekst();
            groupPlanet.Text  = jezikPl["groupPlanet"].tekst();
            groupPoStan.Text  = jezik["groupPoStan"].tekst();
            groupRude.Text    = jezikPl["groupRude"].tekst();
            this.Text         = jezik["naslov"].tekst();

            postaviZvjezdice();
            this.Font = Postavke.FontSucelja(this.Font);
        }