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