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;
    }
Exemple #2
0
        // 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);
    }
Exemple #5
0
 public HeisereFigur(Spielfigur original) : base(original)
 {
 }
Exemple #6
0
 public ErkaelteteFigur(Spielfigur original) : base(original)
 {
 }
Exemple #7
0
 public DecoratorBase(Spielfigur original)
 {
     _original = original;
 }
Exemple #8
0
 public BasisDekorierer(Spielfigur original)
 {
     this._original = original;
 }
Exemple #9
0
        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;
 }