示例#1
0
        public void Patentamt_IdeePatentieren(Idee id)
        {
            Spieler s = ActivePlayer;

            id.Erfunden = true;
            id.Erfinder = s;
            s.Erfindungen.Add(id);
            s.Punkte += 10 * id.Ebene;

            s.Gold    -= s.ZuZahlen;
            s.ZuZahlen = 0;

            foreach (Spieler sp in Players)
            {
                sp.Gold      += sp.ZuErhalten;
                sp.ZuErhalten = 0;
            }

            GameManager.Discard(s.HandKarten, IdeenAblageDeck, s.AktuelleAuswahl);

            s.AnzahlAktionen--;
            s.HandKarten = GameManager.SortCards(s.HandKarten);
            s.AktuelleAuswahl.Clear();

            if (id.Bezeichnung == "Gluehbirne")
            {
                GameEnd = true;
            }
        }
示例#2
0
 public void StartIdeeZiehen(List <Karte> HandKarten, List <Karte> IdeeNachziehstapel)
 {
     foreach (Karte k in IdeeNachziehstapel)
     {
         Idee i = (Idee)k.RefElement;
         if (i.Ebene == 1)
         {
             HandKarten.Add(k);
             IdeeNachziehstapel.Remove(k);
             return;
         }
     }
 }
        private void buttonPatentieren_Click(object sender, EventArgs e)
        {
            myForm.AuswahlHinzufuegen <Idee>();

            if (s.AktuelleAuswahl.Count() != 1)
            {
                MessageBox.Show("Entscheide dich für EINE Idee.");
                s.AktuelleAuswahl.Clear();
            }

            else
            {
                Karte k = s.AktuelleAuswahl.Last();
                Idee  i = (Idee)k.RefElement;

                party.Patentamt_GoldBerechnen(i);

                if (i.Erfunden)
                {
                    MessageBox.Show("Diese Idee wurde bereits patentiert.");
                }
                else if (!party.Patentamt_ErfindungPruefen(i))
                {
                    MessageBox.Show("Es wurden noch nicht alle notwendigen Ideen erfunden, um diese Idee zu patentieren.");
                }
                else if (!party.Patentamt_GoldPruefen())
                {
                    MessageBox.Show("Du hast nicht genuegend Gold, um diese Idee zu patentieren.");
                }
                else if (!party.Patentamt_KomponentenPruefen(i))
                {
                    MessageBox.Show("Du hast nicht alle nötigen Komponenten, um diese Idee zu patentieren.");
                }
                else
                {
                    party.Patentamt_IdeePatentieren(i);

                    myForm.KartenEntfernen();
                    myForm.buttonKartenAnzeigen_Click(this, e);
                    myForm.RefreshAllPlayerInfo();
                    myForm.RefreshDeckInfo();
                    myForm.RefreshBoard();
                    myForm.BlockActions();

                    Close();
                }
            }
            s.AktuelleAuswahl.Clear();
        }
示例#4
0
        public int ZimmerPunkteZaehlen()
        {
            int zimmerPunkte = 0;

            foreach (Karte k in ArbeitszimmerKarten)
            {
                if (k.RefElement.GetType() == typeof(Idee))
                {
                    Idee i = (Idee)k.RefElement;
                    zimmerPunkte += i.Punktewert;
                }
            }

            return(zimmerPunkte);
        }
示例#5
0
        public bool Patentamt_ErfindungPruefen(Idee id)
        {
            if (id.Patente.Count() == 0)
            {
                return(true);
            }

            foreach (Idee i in id.Patente)
            {
                if (!i.Erfunden)
                {
                    return(false);
                }
            }
            return(true);
        }
示例#6
0
        public void Patentamt_GoldBerechnen(Idee id)
        {
            Spieler s = ActivePlayer;

            if (id.Patente.Count > 0)
            {
                foreach (Idee i in id.Patente)
                {
                    if ((i.Erfinder != s) && (!i.PatentGeprueft))
                    {
                        s.ZuZahlen            += i.Patentwert;
                        i.Erfinder.ZuErhalten += i.Patentwert;
                    }

                    i.PatentGeprueft = true;

                    Patentamt_GoldBerechnen(i);
                }
            }
        }
示例#7
0
        public bool Patentamt_KomponentenPruefen(Idee id)
        {
            Spieler s = ActivePlayer;

            //erst für alle Karten prüfen, ob genug vorhanden
            for (int kompIndex = 0; kompIndex < 6; kompIndex++)
            {
                if (s.HandKarten.Count(k => k.RefElement.GlobalIndex == kompIndex) < id.KompKosten[kompIndex])
                {
                    return(false);
                }
            }

            //nur wenn alle verfügbar, alle Kosten entfernen
            for (int kompIndex2 = 0; kompIndex2 < 6; kompIndex2++)
            {
                for (int j = 0; j < id.KompKosten[kompIndex2]; j++)
                {
                    s.HandKarten.Remove(s.HandKarten.Find(k => k.RefElement.GlobalIndex == kompIndex2));
                }
            }

            return(true);
        }
示例#8
0
        public void RefreshBoard()
        {
            //Die Informationen des Spielfeldes aktualisieren

            for (int i = 0; i < 15; i++)
            {
                Label l  = (Label)panelBoard.Controls[i];
                Label l2 = (Label)panelBoard.Controls[i + 15];
                Idee  id = party.GameContentDb.IdeenElemente[i];
                l.Visible = true;

                if (id.Erfunden)
                {
                    l.Text = "Patentwert: " + id.Patentwert + Environment.NewLine +
                             "Erfinder: " + id.Erfinder.Name;
                    l2.ForeColor = Color.Green;
                }
                else
                {
                    l.Text = "Patentwert: " + id.Patentwert + Environment.NewLine +
                             "Noch nicht erfunden.";
                }
            }
        }
示例#9
0
        public void LoadGameElements()
        {
            command = con.CreateCommand();


            //KomponentenElemente laden
            command.CommandText = "Component";
            command.CommandType = CommandType.TableDirect;

            rd = command.ExecuteReader();

            while (rd.Read())
            {
                Komponente neu = new Komponente();
                int        i   = 0;

                neu.KompIndex   = AsValue <int>(rd[i++]);
                neu.GlobalIndex = AsValue <int>(rd[i++]);
                neu.Bezeichnung = AsValue <string>(rd[i++]);
                neu.Quantity    = AsValue <int>(rd[i++]);
                neu.Front       = Image.FromFile(AsValue <string>(rd[i++]));

                KomponentenElemente.Add(neu);
            }
            rd.Close();


            //IdeeElemente laden
            command.CommandText = "Idea";
            command.CommandType = CommandType.TableDirect;

            rd = command.ExecuteReader();

            while (rd.Read())
            {
                Idee neu = new Idee();
                int  i   = 0;

                neu.IdeeIndex   = AsValue <int>(rd[i++]);
                neu.GlobalIndex = AsValue <int>(rd[i++]);
                neu.Bezeichnung = AsValue <string>(rd[i++]);
                neu.Punktewert  = AsValue <int>(rd[i++]);
                neu.Patentwert  = AsValue <int>(rd[i++]);
                neu.Ebene       = AsValue <int>(rd[i++]);
                neu.Quantity    = AsValue <int>(rd[i++]);
                neu.Front       = Image.FromFile(AsValue <string>(rd[i++]));

                //Ausgewählten Ideen die Patentobjekte hinzufügen
                if (neu.IdeeIndex >= 5)
                {
                    neu.Patente.Add(IdeenElemente[AsValue <int>(rd[8])]);
                    neu.Patente.Add(IdeenElemente[AsValue <int>(rd[9])]);
                }

                IdeenElemente.Add(neu);
            }
            rd.Close();


            //DienerElemente laden
            command.CommandText = "Servant";
            command.CommandType = CommandType.TableDirect;

            rd = command.ExecuteReader();

            while (rd.Read())
            {
                Diener neu = new Diener();
                int    i   = 0;

                neu.DienerIndex = AsValue <int>(rd[i++]);
                neu.GlobalIndex = AsValue <int>(rd[i++]);
                neu.Bezeichnung = AsValue <string>(rd[i++]);
                neu.Quantity    = AsValue <int>(rd[i++]);
                neu.Front       = Image.FromFile(AsValue <string>(rd[i++]));

                DienerElemente.Add(neu);
            }
            rd.Close();


            //Den Ideen die Komponentenkosten hinzufuegen
            command.CommandText = "IdeaCost";
            command.CommandType = CommandType.TableDirect;

            rd = command.ExecuteReader();

            while (rd.Read())
            {
                Idee i = IdeenElemente[AsValue <int>(rd[1])];
                i.KompKosten[AsValue <int>(rd[2])] = AsValue <int>(rd[3]);
            }
            rd.Close();
        }
示例#10
0
        public void CreateGameElements()
        {
            //zuerst Liste an Elementen anlegen (3 stück)

            //KomponentenElemente erstellen
            Komponente holz = new Komponente();

            holz.Bezeichnung = "Holz";
            holz.GlobalIndex = 0;
            holz.KompIndex   = 0;
            holz.Front       = Image.FromFile("Komponente00_Holz.png");
            KomponentenElemente.Add(holz);

            Komponente stahl = new Komponente();

            stahl.Bezeichnung = "Stahl";
            stahl.GlobalIndex = 1;
            stahl.KompIndex   = 1;
            stahl.Front       = Image.FromFile("Komponente01_Stahl.png");
            KomponentenElemente.Add(stahl);

            Komponente kupfer = new Komponente();

            kupfer.Bezeichnung = "Kupfer";
            kupfer.GlobalIndex = 2;
            kupfer.KompIndex   = 2;
            kupfer.Front       = Image.FromFile("Komponente02_Kupfer.png");
            KomponentenElemente.Add(kupfer);

            Komponente glas = new Komponente();

            glas.Bezeichnung = "Glas";
            glas.GlobalIndex = 3;
            glas.KompIndex   = 3;
            glas.Front       = Image.FromFile("Komponente03_Glas.png");
            KomponentenElemente.Add(glas);

            Komponente schraube = new Komponente();

            schraube.Bezeichnung = "Schraube";
            schraube.GlobalIndex = 4;
            schraube.KompIndex   = 4;
            schraube.Front       = Image.FromFile("Komponente04_Schraube.png");
            KomponentenElemente.Add(schraube);

            Komponente zahnrad = new Komponente();

            zahnrad.Bezeichnung = "Zahnrad";
            zahnrad.GlobalIndex = 5;
            zahnrad.KompIndex   = 5;
            zahnrad.Front       = Image.FromFile("Komponente05_Zahnrad.png");
            KomponentenElemente.Add(zahnrad);


            //IdeeElemente erstellen
            Idee brillenglas = new Idee();

            brillenglas.Bezeichnung   = "Brillenglas";
            brillenglas.GlobalIndex   = 6;
            brillenglas.IdeeIndex     = 0;
            brillenglas.Front         = Image.FromFile("Idee00_Brillenglas.png");
            brillenglas.Ebene         = 1;
            brillenglas.Punktewert    = 3;
            brillenglas.Patentwert    = 2;
            brillenglas.KompKosten[2] = 1;
            brillenglas.KompKosten[3] = 1;
            brillenglas.KompKosten[4] = 1;
            IdeenElemente.Add(brillenglas);

            Idee taschenuhr = new Idee();

            taschenuhr.Bezeichnung   = "Taschenuhr";
            taschenuhr.GlobalIndex   = 7;
            taschenuhr.IdeeIndex     = 1;
            taschenuhr.Front         = Image.FromFile("Idee01_Taschenuhr.png");
            taschenuhr.Ebene         = 1;
            taschenuhr.Punktewert    = 3;
            taschenuhr.Patentwert    = 1;
            taschenuhr.KompKosten[3] = 1;
            taschenuhr.KompKosten[4] = 1;
            taschenuhr.KompKosten[5] = 1;
            IdeenElemente.Add(taschenuhr);

            Idee druckerpresse = new Idee();

            druckerpresse.Bezeichnung   = "Druckerpresse";
            druckerpresse.GlobalIndex   = 8;
            druckerpresse.IdeeIndex     = 2;
            druckerpresse.Front         = Image.FromFile("Idee02_Druckerpresse.png");
            druckerpresse.Ebene         = 1;
            druckerpresse.Punktewert    = 3;
            druckerpresse.Patentwert    = 1;
            druckerpresse.KompKosten[1] = 1;
            druckerpresse.KompKosten[5] = 2;
            IdeenElemente.Add(druckerpresse);

            Idee bleistift = new Idee();

            bleistift.Bezeichnung   = "Bleistift";
            bleistift.GlobalIndex   = 9;
            bleistift.IdeeIndex     = 3;
            bleistift.Front         = Image.FromFile("Idee03_Bleistift.png");
            bleistift.Ebene         = 1;
            bleistift.Punktewert    = 3;
            bleistift.Patentwert    = 1;
            bleistift.KompKosten[0] = 2;
            bleistift.KompKosten[1] = 1;
            IdeenElemente.Add(bleistift);

            Idee kompass = new Idee();

            kompass.Bezeichnung   = "Kompass";
            kompass.GlobalIndex   = 10;
            kompass.IdeeIndex     = 4;
            kompass.Front         = Image.FromFile("Idee04_Kompass.png");
            kompass.Ebene         = 1;
            kompass.Punktewert    = 3;
            kompass.Patentwert    = 2;
            kompass.KompKosten[2] = 2;
            kompass.KompKosten[3] = 1;
            IdeenElemente.Add(kompass);

            Idee fernrohr = new Idee();

            fernrohr.Bezeichnung   = "Fernrohr";
            fernrohr.GlobalIndex   = 11;
            fernrohr.IdeeIndex     = 5;
            fernrohr.Front         = Image.FromFile("Idee05_Fernrohr.png");
            fernrohr.Ebene         = 2;
            fernrohr.Punktewert    = 6;
            fernrohr.Patentwert    = 2;
            fernrohr.KompKosten[1] = 1;
            fernrohr.KompKosten[3] = 3;
            fernrohr.Patente.Add(brillenglas);
            fernrohr.Patente.Add(taschenuhr);
            IdeenElemente.Add(fernrohr);

            Idee rechenschieber = new Idee();

            rechenschieber.Bezeichnung   = "Rechenschieber";
            rechenschieber.GlobalIndex   = 12;
            rechenschieber.IdeeIndex     = 6;
            rechenschieber.Front         = Image.FromFile("Idee06_Rechenschieber.png");
            rechenschieber.Ebene         = 2;
            rechenschieber.Punktewert    = 6;
            rechenschieber.Patentwert    = 1;
            rechenschieber.KompKosten[0] = 3;
            rechenschieber.KompKosten[4] = 1;
            rechenschieber.Patente.Add(taschenuhr);
            rechenschieber.Patente.Add(druckerpresse);
            IdeenElemente.Add(rechenschieber);

            Idee buchdruck = new Idee();

            buchdruck.Bezeichnung   = "Buchdruck";
            buchdruck.GlobalIndex   = 13;
            buchdruck.IdeeIndex     = 7;
            buchdruck.Front         = Image.FromFile("Idee07_Buchdruck.png");
            buchdruck.Ebene         = 2;
            buchdruck.Punktewert    = 6;
            buchdruck.Patentwert    = 1;
            buchdruck.KompKosten[0] = 2;
            buchdruck.KompKosten[4] = 1;
            buchdruck.KompKosten[5] = 1;
            buchdruck.Patente.Add(bleistift);
            buchdruck.Patente.Add(druckerpresse);
            IdeenElemente.Add(buchdruck);

            Idee globus = new Idee();

            globus.Bezeichnung   = "Globus";
            globus.GlobalIndex   = 14;
            globus.IdeeIndex     = 8;
            globus.Front         = Image.FromFile("Idee08_Globus.png");
            globus.Ebene         = 2;
            globus.Punktewert    = 6;
            globus.Patentwert    = 2;
            globus.KompKosten[0] = 2;
            globus.KompKosten[1] = 1;
            globus.KompKosten[4] = 1;
            globus.Patente.Add(bleistift);
            globus.Patente.Add(kompass);
            IdeenElemente.Add(globus);

            Idee fotoapparat = new Idee();

            fotoapparat.Bezeichnung   = "Fotoapparat";
            fotoapparat.GlobalIndex   = 15;
            fotoapparat.IdeeIndex     = 9;
            fotoapparat.Front         = Image.FromFile("Idee09_Fotoapparat.png");
            fotoapparat.Ebene         = 3;
            fotoapparat.Punktewert    = 9;
            fotoapparat.Patentwert    = 2;
            fotoapparat.KompKosten[2] = 1;
            fotoapparat.KompKosten[3] = 3;
            fotoapparat.KompKosten[5] = 1;
            fotoapparat.Patente.Add(fernrohr);
            fotoapparat.Patente.Add(rechenschieber);
            IdeenElemente.Add(fotoapparat);

            Idee dampfmaschine = new Idee();

            dampfmaschine.Bezeichnung   = "Dampfmaschine";
            dampfmaschine.GlobalIndex   = 16;
            dampfmaschine.IdeeIndex     = 10;
            dampfmaschine.Front         = Image.FromFile("Idee10_Dampfmaschine.png");
            dampfmaschine.Ebene         = 3;
            dampfmaschine.Punktewert    = 9;
            dampfmaschine.Patentwert    = 1;
            dampfmaschine.KompKosten[1] = 2;
            dampfmaschine.KompKosten[4] = 2;
            dampfmaschine.KompKosten[5] = 1;
            dampfmaschine.Patente.Add(buchdruck);
            dampfmaschine.Patente.Add(rechenschieber);
            IdeenElemente.Add(dampfmaschine);

            Idee fahrrad = new Idee();

            fahrrad.Bezeichnung   = "Fahrrad";
            fahrrad.GlobalIndex   = 17;
            fahrrad.IdeeIndex     = 11;
            fahrrad.Front         = Image.FromFile("Idee11_Fahrrad.png");
            fahrrad.Ebene         = 3;
            fahrrad.Punktewert    = 9;
            fahrrad.Patentwert    = 2;
            fahrrad.KompKosten[0] = 1;
            fahrrad.KompKosten[2] = 2;
            fahrrad.KompKosten[4] = 1;
            fahrrad.KompKosten[5] = 1;
            fahrrad.Patente.Add(buchdruck);
            fahrrad.Patente.Add(globus);
            IdeenElemente.Add(fahrrad);

            Idee elektromotor = new Idee();

            elektromotor.Bezeichnung   = "Elektromotor";
            elektromotor.GlobalIndex   = 18;
            elektromotor.IdeeIndex     = 12;
            elektromotor.Front         = Image.FromFile("Idee12_Elektromotor.png");
            elektromotor.Ebene         = 4;
            elektromotor.Punktewert    = 12;
            elektromotor.Patentwert    = 2;
            elektromotor.KompKosten[1] = 1;
            elektromotor.KompKosten[2] = 3;
            elektromotor.KompKosten[4] = 2;
            elektromotor.Patente.Add(fotoapparat);
            elektromotor.Patente.Add(dampfmaschine);
            IdeenElemente.Add(elektromotor);

            Idee lokomotive = new Idee();

            lokomotive.Bezeichnung   = "Lokomotive";
            lokomotive.GlobalIndex   = 19;
            lokomotive.IdeeIndex     = 13;
            lokomotive.Front         = Image.FromFile("Idee13_Lokomotive.png");
            lokomotive.Ebene         = 4;
            lokomotive.Punktewert    = 12;
            lokomotive.Patentwert    = 2;
            lokomotive.KompKosten[1] = 3;
            lokomotive.KompKosten[5] = 3;
            lokomotive.Patente.Add(fahrrad);
            lokomotive.Patente.Add(dampfmaschine);
            IdeenElemente.Add(lokomotive);

            Idee gluehbirne = new Idee();

            gluehbirne.Bezeichnung   = "Gluehbirne";
            gluehbirne.GlobalIndex   = 20;
            gluehbirne.IdeeIndex     = 14;
            gluehbirne.Front         = Image.FromFile("Idee14_Gluehbirne.png");
            gluehbirne.Ebene         = 5;
            gluehbirne.Punktewert    = 15;
            gluehbirne.Quantity      = 1;
            gluehbirne.KompKosten[2] = 1;
            gluehbirne.KompKosten[3] = 1;
            gluehbirne.Patente.Add(elektromotor);
            gluehbirne.Patente.Add(lokomotive);
            IdeenElemente.Add(gluehbirne);

            //DienerElemente erstellen
            Diener.setBack(Image.FromFile("Diener03_Back.png"));

            Diener spion = new Diener();

            spion.Bezeichnung = "Spion";
            spion.GlobalIndex = 21;
            spion.DienerIndex = 0;
            spion.Front       = Image.FromFile("Diener00_Spion.png");
            spion.Quantity    = 20;
            DienerElemente.Add(spion);

            Diener waechter = new Diener();

            waechter.Bezeichnung = "Waechter";
            waechter.GlobalIndex = 22;
            waechter.DienerIndex = 1;
            waechter.Front       = Image.FromFile("Diener01_Waechter.png");
            waechter.Quantity    = 20;
            DienerElemente.Add(waechter);

            Diener bote = new Diener();

            bote.Bezeichnung = "Bote";
            bote.GlobalIndex = 23;
            bote.DienerIndex = 2;
            bote.Front       = Image.FromFile("Diener02_Bote.png");
            bote.Quantity    = 20;
            DienerElemente.Add(bote);

            SaveElements();
        }