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