예제 #1
0
        public FormPatentamt(Form1 form, Gameplay party)
        {
            InitializeComponent();

            myForm     = form;
            this.party = party;
            s          = party.ActivePlayer;
        }
예제 #2
0
        public void Haendler_Verkaufen()
        {
            Spieler s = ActivePlayer;

            s.Gold += s.AktuelleAuswahl.Count();
            GameManager.Discard(s.HandKarten, KomponentenAblageDeck, s.AktuelleAuswahl);
            s.AnzahlAktionen--;
            s.AktuelleAuswahl.Clear();
        }
예제 #3
0
        public void Veranda(int count)
        {
            Spieler s = ActivePlayer;

            GameManager.Deal(s.HandKarten, IdeenNachziehDeck, count);

            s.HandKarten = GameManager.SortCards(s.HandKarten);
            s.AnzahlAktionen--;
        }
예제 #4
0
        public void Haendler_Ziehen()
        {
            Spieler s = ActivePlayer;

            if (KomponentenNachziehDeck.Count() <= 1)
            {
                GameManager.RefreshDrawDeck(KomponentenNachziehDeck, KomponentenAblageDeck);
                KomponentenNachziehDeck = GameManager.ShuffleDeck(KomponentenNachziehDeck);
            }

            GameManager.Deal(s.HandKarten, KomponentenNachziehDeck, 2);
            s.HandKarten = GameManager.SortCards(s.HandKarten);
            s.AnzahlAktionen--;
        }
예제 #5
0
        public void Foyer_Anheuern(Karte k)
        {
            Spieler s = ActivePlayer;

            if (DienerNachziehDeck.Count() == 0)
            {
                GameManager.RefreshDrawDeck(DienerNachziehDeck, DienerAblageDeck);
                KomponentenNachziehDeck = GameManager.ShuffleDeck(DienerNachziehDeck);
            }

            GameManager.DealSpecific(s.DienerPlaettchen, DienerNachziehDeck, k);
            s.DienerPlaettchen = GameManager.SortCards(s.DienerPlaettchen);
            s.AnzahlAktionen--;
            s.Gold -= 2;
        }
예제 #6
0
        public void Haendler_Kaufen(Karte k)
        {
            Spieler s = ActivePlayer;

            if (KomponentenNachziehDeck.Count() == 0)
            {
                GameManager.RefreshDrawDeck(KomponentenNachziehDeck, KomponentenAblageDeck);
                KomponentenNachziehDeck = GameManager.ShuffleDeck(KomponentenNachziehDeck);
            }

            GameManager.DealSpecific(s.HandKarten, KomponentenNachziehDeck, k);
            s.HandKarten = GameManager.SortCards(s.HandKarten);
            s.AnzahlAktionen--;
            s.Gold -= 2;
        }
예제 #7
0
        public void Haendler_Tauschen()
        {
            Spieler s = ActivePlayer;

            //falls nicht mehr genug Nachziehkarten, dann aus Ablagestapel neu bilden und mischen
            if (s.AktuelleAuswahl.Count() > KomponentenNachziehDeck.Count())
            {
                GameManager.RefreshDrawDeck(KomponentenNachziehDeck, KomponentenAblageDeck);
                KomponentenNachziehDeck = GameManager.ShuffleDeck(KomponentenNachziehDeck);
            }

            GameManager.Change(s.HandKarten, s.AktuelleAuswahl, KomponentenNachziehDeck, KomponentenAblageDeck);
            s.HandKarten = GameManager.SortCards(s.HandKarten);
            s.AktuelleAuswahl.Clear();
            s.AnzahlAktionen--;
        }
예제 #8
0
        public FormArbeitszimmer(Form1 form, Gameplay party, bool isAction)
        {
            InitializeComponent();

            myForm        = form;
            this.party    = party;
            s             = party.ActivePlayer;
            this.isAction = isAction;

            if (isAction)
            {
                buttonUebertragen.Enabled = true;
                buttonFertig.Enabled      = true;
            }

            ZimmerKartenEntfernen();
            ZimmerKartenAnzeigen();
        }
예제 #9
0
        private void InitializePlayerInfo()
        {
            for (int i = 0; i < party.Players.Count; i++)
            {
                GroupBox         g = (GroupBox)panelPlayerInfo.Controls[i];
                Spieler          s = party.Players[i];
                TableLayoutPanel t = (TableLayoutPanel)g.Controls[1];

                g.Visible = true;
                ((Label)g.Controls[2]).Text = "Karten im Arbeitszimmer: " + s.ArbeitszimmerKarten.Count;
                ((Label)g.Controls[3]).Text = "Gold: " + s.Gold;
                ((Label)g.Controls[3]).Text = "Gold: " + s.Gold;
                ((Label)g.Controls[4]).Text = "Punkte: " + s.Punkte;
                ((Label)g.Controls[5]).Text = s.Name;

                InitializeFoyerTable(t);
            }
        }
예제 #10
0
        public FormHaendler(Form1 form, Gameplay party)
        {
            InitializeComponent();

            komponenten = new List <Image>();
            komponenten.Add(Image.FromFile("Wood.jpg"));
            komponenten.Add(Image.FromFile("steel.png"));
            komponenten.Add(Image.FromFile("copper.png"));
            komponenten.Add(Image.FromFile("glass.jpg"));
            komponenten.Add(Image.FromFile("screw.jpg"));
            komponenten.Add(Image.FromFile("gear.png"));

            InitializeComponentTable();

            myForm     = form;
            this.party = party;
            s          = party.ActivePlayer;
        }
예제 #11
0
        private void buttonStart_Click(object sender, EventArgs e)
        {
            panelStart.Visible        = false;
            panelActionSelect.Visible = true;

            party.InitializeGame(
                party.GameContentDb.KomponentenVorrat,
                party.GameContentDb.IdeenVorrat,
                party.GameContentDb.DienerVorrat);

            LabelAktionAnpassen();
            RefreshBoard();
            RefreshDeckInfo();
            InitializePlayerInfo();
            InitializeFoyerTable(tableLayoutPanelFoyer);

            s = party.ActivePlayer;
            KartenEntfernen();
        }
예제 #12
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);
                }
            }
        }
예제 #13
0
 private void buttonHinzufuegen_Click(object sender, EventArgs e)
 {
     if (party.Players.Count >= 4)
     {
         labelSpieleranzahlError.Text = "Es können maximal 4 Spieler spielen. Bitte starte das Spiel.";
     }
     else
     {
         Spieler neu = new Spieler();
         neu.Name = textBoxSpieler.Text;
         party.Players.Add(neu);
         listBoxSpieler.Items.Add(neu);
         textBoxSpieler.Clear();
         textBoxSpieler.Focus();
     }
     if ((party.Players.Count >= 2) && (buttonStart.Enabled == false))
     {
         buttonStart.Enabled = true;
     }
 }
예제 #14
0
        private void buttonFertig_Click(object sender, EventArgs e)
        {
            //Bilder aus Pictureboxen entfernen und Panels unsichtbar machen
            KartenEntfernen();

            if (party.GameEnd)
            {
                party.EndGame();
                BlockAll();

                labelAktionWaehlen.Text = "Spiel vorbei." + Environment.NewLine + party.Winner + "hat gewonnen!";
            }

            else
            {
                //Nächster Spieler wird aktiver Spieler und erhält eine Aktion
                int activeIndex = party.Players.IndexOf(party.ActivePlayer) + 1;

                if (activeIndex > party.Players.Count - 1)
                {
                    activeIndex = 0;
                }
                party.ActivePlayer = party.Players[activeIndex];
                party.ActivePlayer.AnzahlAktionen = 1;
                s = party.ActivePlayer;
                LabelAktionAnpassen();

                //Foyer unsichtbar machen bzw. clearen
                labelFoyer.Visible            = false;
                tableLayoutPanelFoyer.Visible = false;
                FoyerEntfernen();

                //Aktionen verfügbar machen
                buttonArbeitszimmer.Enabled = true;
                buttonHaendler.Enabled      = true;
                buttonVeranda.Enabled       = true;
                buttonPatentamt.Enabled     = true;
                buttonFoyer.Enabled         = true;
            }
        }
예제 #15
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);
        }
예제 #16
0
 private void comboBoxSpielerAuswahl_SelectedIndexChanged(object sender, EventArgs e)
 {
     anzugreifen           = (Spieler)comboBoxSpielerAuswahl.SelectedItem;
     buttonConfirm.Enabled = true;
 }