Esempio n. 1
0
        private Objekt hindernisPlazieren(double x, double y)
        {
            Hindernis editor_hindernis;
            Item      editor_item;

            int[] posFeld = feldErmitteln(x, y);


            if (rbMast.Checked == true)
            {
                editor_hindernis = new Hindernis("Mast", posFeld[0], posFeld[1], false, 0, Resource1.mast);
                return(editor_hindernis);
            }

            if (rbZaun.Checked == true)
            {
                editor_hindernis = new Hindernis("Zaun", posFeld[0], posFeld[1], false, 0, Resource1.zaun);
                return(editor_hindernis);
            }

            if (rbAnker.Checked == true)
            {
                editor_hindernis = new Hindernis("Anker", posFeld[0], posFeld[1], true, 3, Resource1.anker);
                return(editor_hindernis);
            }

            if (rbTruhe.Checked == true)
            {
                editor_hindernis = new Hindernis("Truhe", posFeld[0], posFeld[1], true, 1, Resource1.kiste);
                return(editor_hindernis);
            }

            if (rbPaddel.Checked == true)
            {
                editor_item = new Item("Paddel", posFeld[0], posFeld[1], 10, Resource1.item);
                return(editor_item);
            }

            if (rbFernrohr.Checked == true)
            {
                editor_item = new Item("Fernrohr", posFeld[0], posFeld[1], 20, Resource1.item);
                return(editor_item);
            }

            if (rbSteuer.Checked == true)
            {
                editor_item = new Item("Steuer", posFeld[0], posFeld[1], 15, Resource1.item);
                return(editor_item);
            }

            return(null);
        }
Esempio n. 2
0
        private void hindernisVerschieben(Point richtungsVektor, Hindernis hindernis)
        {
            Point hindernisPosition = new Point(hindernis.getPosition().X, hindernis.getPosition().Y);

            hindernisPosition.Offset(richtungsVektor);

            if (canMoveTo(hindernisPosition))
            {
                hindernis.verschiebeUm(richtungsVektor);
                bewegeSpielerAktiv(richtungsVektor);
            }
            else if (!isPosInFeld(hindernisPosition))
            {
                hindernisueberBoardWerfen(richtungsVektor, hindernis);
            }
        }
Esempio n. 3
0
        private void hindernisueberBoardWerfen(Point richtungsVektor, Hindernis hindernis)
        {
            int gewicht = hindernis.getGewicht();
            int punkte  = gewicht * 5;

            if (schritte - gewicht > 0)
            {
                schritte -= gewicht;
                feldObjekte.Remove(hindernis);
                bewegeSpielerAktiv(richtungsVektor);
                spielerAktiv.addPunkte(punkte);
                output.Add(spielerAktiv.getBezeichnung() + " nimmt alle Kraft zusammen, wirft " + hindernis.getBezeichnung() + " über Board und erhält " + punkte + " Punkte.");
            }
            else
            {
                output.Add(hindernis.getBezeichnung() + " ist zu schwer, um ihn über Board zu werden. Dir fehlen " + (gewicht - schritte + 1) + " Bewegungspunkte.");
            }
        }
Esempio n. 4
0
        public void spielerLaufen(Point richtungsVektor)
        {
            Point position = new Point(spielerAktiv.getPosition().X, spielerAktiv.getPosition().Y);

            position.Offset(richtungsVektor);

            if (!isPosInFeld(position))
            {
                return;
            }

            if (isFeldBelegt(position))
            {
                Objekt objekt = getObjektAufFeld(position);

                if (objekt.GetType() == typeof(Item))
                {
                    Item item = (Item)objekt;

                    sammleItem(spielerAktiv, item);
                    bewegeSpielerAktiv(richtungsVektor);
                }

                if (objekt.GetType() == typeof(Hindernis))
                {
                    Hindernis hindernis = (Hindernis)objekt;

                    if (hindernis.isBeweglich())
                    {
                        hindernisVerschieben(richtungsVektor, hindernis);
                    }
                }

                if (objekt.GetType() == typeof(Spieler))
                {
                    starteDuell();
                }
            }
            else
            {
                bewegeSpielerAktiv(richtungsVektor);
            }
        }
Esempio n. 5
0
        public void spielfeldKippen(Point richtungsVektor)
        {
            bool gerutscht;
            bool naechstePosInFeld;
            bool naechstePosFrei;
            Item itemGesammeltSpieler1;
            Item itemGesammeltSpieler2;



            do
            {
                gerutscht             = false;
                itemGesammeltSpieler1 = null;
                itemGesammeltSpieler2 = null;

                foreach (Objekt objekt in feldObjekte)
                {
                    Point position = new Point(objekt.getPosition().X, objekt.getPosition().Y);
                    position.Offset(richtungsVektor);
                    naechstePosInFeld = isPosInFeld(position);
                    naechstePosFrei   = !isFeldBelegt(position);

                    if (objekt.GetType() == typeof(Hindernis))
                    {
                        Hindernis hindernis = (Hindernis)objekt;

                        if (hindernis.isBeweglich() && naechstePosFrei && naechstePosInFeld)
                        {
                            objekt.verschiebeUm(richtungsVektor);
                            gerutscht = true;
                        }
                    }

                    if (objekt.GetType() == typeof(Item))
                    {
                        if (naechstePosFrei && naechstePosInFeld)
                        {
                            objekt.verschiebeUm(richtungsVektor);
                            gerutscht = true;
                        }
                    }

                    if (objekt.GetType() == typeof(Spieler))
                    {
                        if (!naechstePosFrei)
                        {
                            if (getObjektAufFeld(position).GetType() == typeof(Item))
                            {
                                if (objekt.Equals(spieler1))
                                {
                                    itemGesammeltSpieler1 = (Item)getObjektAufFeld(position);
                                }
                                else if (objekt.Equals(spieler2))
                                {
                                    itemGesammeltSpieler2 = (Item)getObjektAufFeld(position);
                                }

                                objekt.verschiebeUm(richtungsVektor);
                                gerutscht = true;
                            }
                            else if (getObjektAufFeld(position).GetType() == typeof(Spieler))
                            {
                                starteDuell();
                            }
                        }
                        else if (naechstePosInFeld)
                        {
                            objekt.verschiebeUm(richtungsVektor);
                            gerutscht = true;
                        }
                    }
                }

                if (itemGesammeltSpieler1 != null)
                {
                    sammleItem(spieler1, itemGesammeltSpieler1);
                }

                if (itemGesammeltSpieler2 != null)
                {
                    sammleItem(spieler2, itemGesammeltSpieler2);
                }
            } while (gerutscht);
        }