private void moveSpielfigur(int x, int y) { if (allowedMoves[x, y]) { Spielfigur c = Spielfigur[x, y]; if (c != null && c.isBlue != isBlaueRunde) { kampf(c, SelectedSpielfigur); } else if (c == null) { Spielfigur[SelectedSpielfigur.CurrentX, SelectedSpielfigur.CurrentY] = null; SelectedSpielfigur.transform.position = GetTileCenter(x, y); SelectedSpielfigur.setPosition(x, y); Spielfigur[x, y] = SelectedSpielfigur; } isBlaueRunde = !isBlaueRunde; } BoardHighlights.Instance.HideHighlights(); SelectedSpielfigur = null; }
// Start bei Feld 1 public bool ZugGelb() { // Fall: Pott besetzt und 6 gewürfelt und Zug möglich if (laufweite == 6 && amZug.Pott > 0) { if (zugFelder[0] == null) { SpielerGelb.Pott -= 1; zugFelder[0] = new Spielfigur("gelb"); laufweite = 0; return(true); } //if (zugFelder[0].Farbe == "gelb") //{ // zugFelder[0].Farbe = "weiss"; // zugFelder[0 + laufweite] = new Spielfigur("gelb"); // laufweite = 0; // return true; //} else if (zugFelder[0].Farbe != "gelb") { switch (zugFelder[0].Farbe) { case "blau": SpielerBlau.Pott += 1; break; case "rot": SpielerRot.Pott += 1; break; case "grün": SpielerGrün.Pott += 1; break; } zugFelder[0] = new Spielfigur("gelb"); SpielerGelb.Pott -= 1; } } return(false); }
private void kampf(Spielfigur def, Spielfigur att) { Debug.Log(def.GetInstanceID() + ": Leben: " + def.health + " Angriff: " + def.attack + " Verteidigung: " + def.defense); Debug.Log(att.GetInstanceID() + ": Leben: " + att.health + " Angriff: " + att.attack + " Verteidigung: " + att.defense); System.Random rnd = new System.Random(); int defensive = def.defense; //rnd.Next(1, def.defense); Debug.Log("Der Verteidiger würfelt mit einem 1W" + def.defense + " Würfel und bekommt eine: " + defensive); int angriff = att.attack; //rnd.Next(1, att.attack); Debug.Log("Der Angreifer würfelt mit einem 1W" + att.attack + " Würfel und bekommt eine: " + angriff); int ergebnis = defensive - angriff; if (ergebnis >= 0) { Debug.Log("Das Ergebnis ist: " + ergebnis + " somit hat der Verteidiger gewonnen"); return; } else { def.health = def.health - Mathf.Abs(ergebnis); Debug.Log("Das Ergebnis ist: " + ergebnis + " somit hat der Angreifer gewonnen gewonnen und der Vertediger verliert: " + ergebnis); } if (def.health <= 0) { Debug.Log("Verteidiger ist gestorben"); Debug.Log(def.GetInstanceID() + "wird aus dem spielt entfernt"); activeSpielfigur.Remove(def.gameObject); Destroy(def.gameObject); } else { Debug.Log("Verteidiger hat noch: " + def.health + " HP"); return; } }
//Spielfigur für den Zug auswählen private void SelectSpielfigur(int x, int y) { //Wenn auf dem ausgewählten Feld keine Figur steht, nichts machen if (Spielfigur[x, y] == null) { return; } //Wenn auf dem ausgewählten Feld eine Figur steht, die aber nicht dran ist, nichts machen if (Spielfigur[x, y].isBlue != isBlaueRunde) { return; } //Wenn auf dem ausgewählten Feld eine Figur steht und die dran ist, schauen welche Züge erlaubt sind allowedMoves = Spielfigur[x, y].erlaubterZug(); //Die ausgewählte Figur als "SelectedSpielfigur" wählen SelectedSpielfigur = Spielfigur[x, y]; BoardHighlights.Instance.HighlightAllowedMoves(allowedMoves); }
public HeisereFigur(Spielfigur original) : base(original) { }
public ErkaelteteFigur(Spielfigur original) : base(original) { }
public DecoratorBase(Spielfigur original) { _original = original; }
public BasisDekorierer(Spielfigur original) { this._original = original; }
private bool ZugZulässig(int index) { if (laufweite == 6 && amZug.Pott > 0) { switch (amZug.Farbe) { case "grün": if (zugFelder[10].Farbe == "grün") { zugFelder[10 + laufweite] = new Spielfigur("grün"); zugFelder[10] = null; Switch(); return(true); } amZug.Pott -= 1; zugFelder[10] = new Spielfigur("grün"); break; case "rot": if (zugFelder[30].Farbe == "rot") { zugFelder[30 + laufweite] = new Spielfigur("rot"); zugFelder[30] = null; Switch(); return(true); } amZug.Pott -= 1; zugFelder[30] = new Spielfigur("rot"); break; case "blau": if (zugFelder[20].Farbe == "blau") { zugFelder[20 + laufweite] = new Spielfigur("blau"); zugFelder[20] = null; Switch(); return(true); } amZug.Pott -= 1; zugFelder[20] = new Spielfigur("blau"); break; case "gelb": if (zugFelder[0].Farbe == "gelb") { zugFelder[0 + laufweite] = new Spielfigur("gelb"); zugFelder[0] = null; Switch(); return(true); } amZug.Pott -= 1; zugFelder[0] = new Spielfigur("gelb"); break; } Switch(); //laufweite = 0; return(true); } // Figur befindet sich bereits im Haus, HÄNGT VON DER GUI AB if (index > 40) { // gelb if (index < 45) { for (int i = index - 40; i < 4; i++) { if (HausGelb[i] != null) { return(false); } } HausGelb[index - 41 + laufweite] = HausGelb[index - 4]; HausGelb[index - 41] = null; return(true); } // grün else if (index < 49 && index > 44) { for (int i = index - 44 - 1; i < 4; i++) { if (HausGrün[i] != null) { return(false); } } HausGrün[index - 45 + laufweite] = HausGrün[index - 45]; HausGrün[index - 45] = null; return(true); } // blau else if (index < 53 && index > 48) { for (int i = index - 48 - 1; i < 4; i++) { if (HausBlau[i] != null) { return(false); } } HausBlau[index - 49 + laufweite] = HausBlau[index - 49]; HausBlau[index - 49] = null; return(true); } // rot else { for (int i = index - 52 - 1; i < 4; i++) { if (HausRot[i] != null) { return(false); } } HausRot[index - 53 + laufweite] = HausRot[index - 53]; HausRot[index - 53] = null; return(true); } } if (zugFelder[index - 1] == null || zugFelder[index - 1].Farbe != amZug.Farbe) { return(false); } // Müsste in Haus ziehen else if (zugFelder[index - 1].Zaehler + laufweite > 39 && zugFelder[index - 1].Zaehler + laufweite < 44) { MessageBox.Show("Ab ins Haus"); switch (zugFelder[index - 1].Farbe) { case "gelb": if (HausGelb[zugFelder[index - 1].Zaehler + laufweite - 40] == null) { HausGelb[zugFelder[index - 1].Zaehler + laufweite - 40] = zugFelder[index - 1]; zugFelder[index - 1] = null; return(true); } break; case "grün": if (HausGrün[zugFelder[index - 1].Zaehler + laufweite - 40] == null) { HausGrün[zugFelder[index - 1].Zaehler + laufweite - 40] = zugFelder[index - 1]; zugFelder[index - 1] = null; return(true); } break; case "blau": if (HausBlau[zugFelder[index - 1].Zaehler + laufweite - 40] == null) { HausBlau[zugFelder[index - 1].Zaehler + laufweite - 40] = zugFelder[index - 1]; zugFelder[index - 1] = null; return(true); } break; case "rot": if (HausRot[zugFelder[index - 1].Zaehler + laufweite - 40] == null) { HausRot[zugFelder[index - 1].Zaehler + laufweite - 40] = zugFelder[index - 1]; zugFelder[index - 1] = null; return(true); } break; } // Ist Feld im Haus frei ? if (HausGelb[zugFelder[index - 1].Zaehler + laufweite - 40 - 1] == null) { MessageBox.Show("ziehe ins gelbe Haus"); HausGelb[zugFelder[index - 1].Zaehler + laufweite - 40 - 1] = zugFelder[index - 1]; zugFelder[index - 1] = null; return(true); } //if (refHaus[(zugFelder[index].Zaehler + laufweite - 40 - 1)] != null) //{ // return false; //} else { refHaus[(zugFelder[index].Zaehler + laufweite - 40 - 1)] = zugFelder[index - 1]; zugFelder[index - 1] = null; return(true); } } // Bewegt sich im Feld // überschreitet Grenze des Arrays ? if (index + laufweite > 40) { if (zugFelder[index + laufweite - 40] == null) { Schlagen(index - 1, (index + laufweite) - 40 - 1); return(true); } else { if (zugFelder[index - 1].Farbe == amZug.Farbe) { return(false); } else { Schlagen(index, index + laufweite); return(true); } } } if (zugFelder[index - 1 + laufweite] != null) { // Feld mit Spieler gleicher Farbe if (zugFelder[index - 1 + laufweite].Farbe == amZug.Farbe) { return(false); } else { Schlagen(index - 1, index + laufweite - 1); return(true); } } else { zugFelder[index - 1 + laufweite] = zugFelder[index - 1]; zugFelder[index - 1] = null; zugFelder[index - 1 + laufweite].Zaehler += laufweite; return(true); } }
public HeisereFigur(Spielfigur original) { _original = original; }
public ErkaelteteFigur(Spielfigur original) { _original = original; }