public void KlickAufStapel()
    {
        Debug.Log("Klick auf Stapel");
        Kartenstapel stapel = GetComponent <Kartenstapel>(); //Verweis auf Kartenstapelscript

        if (vorschauKarte.aktuelleBeschreibung() != null)
        {
            stapel.legeKarteZurueck(vorschauKarte.aktuelleBeschreibung());
        }

        if (stapel.istLeer())
        {
            stapel.gameObject.SetActive(false);
        }
        else
        {
            Kartenbeschreibung gezogeneKarte = stapel.hebeObersteKarteAb(); //Karte vom Stapel abheben (nur Wert)
            vorschauKarte.setzeBeschreibung(gezogeneKarte, false);

            if (stapel.istLeer())
            {
                stapel.gameObject.SetActive(false);
            }
        }
    }
Esempio n. 2
0
 public void ErweiterungStarten(Kartenstapel stapel)
 {
     if (testModus)
     {
         LegeAlle(1, stapel, 0);
         LegeAlle(2, stapel, 1);
         LegeAlle(13, stapel, 2);
         LegeAlle(14, stapel, 3);
     }
     else
     {
         //Spalten mit einer Auswahl zufälliger Karten befüllen
         for (int i = 0; i < spalten.Count; i++)
         {
             for (int bereitsErzeugt = 0; bereitsErzeugt <= i; bereitsErzeugt++)
             {
                 Kartenbeschreibung k = stapel.hebeObersteKarteAb();
                 stapel.kartenContainer = spalten[i].gameObject;
                 Karte karteInSzene = stapel.erzeugeKarteInSzene();
                 karteInSzene.setzeBeschreibung(k, false);
                 if (bereitsErzeugt < i)
                 {
                     karteInSzene.TauscheKartenbild();                     //für alle außer letzter Karte
                 }
                 spalten[i].KartenAnordnen();
             }
         }
     }
 }
    private void Start()
    {
        Kartenstapel stapel = GetComponent <Kartenstapel>(); //Verweis auf Kartenstapelscript

        stapel.mischeStapel();
        KlickAufStapel();
    }
Esempio n. 4
0
    public void KlickAufStapel()
    {
        Kartenstapel stapel = GetComponent <Kartenstapel>();

        Debug.Log("Klick auf den Stapel.");
        if (stapel.istLeer())
        {
            Debug.Log("Der Stapel ist leer!");
            return;
        }

        Kartenbeschreibung gezogeneKarte = stapel.hebeZufaelligeKarteAb();

        stapel.kartenContainer = container[0];
        container.RemoveAt(0);

        stapel.erzeugeKarteInSzene().setzeBeschreibung(gezogeneKarte, false);

        aktualisiereHilfetext();

        if (stapel.karten.Count == 0 || verbleibendeZuege == 0)
        {
            gameObject.SetActive(false);
        }
    }
    public void LegeKarteAuf(StapelContainer container)
    {
        if (vorschauKarte.aktuelleBeschreibung() == null) //keine Karte aufgedeckt oder übrig
        {
            return;
        }

        Kartenbeschreibung alteKarte = container.ObersteKarte();
        Kartenbeschreibung neueKarte = vorschauKarte.aktuelleBeschreibung();

        if (WertPasst(alteKarte, neueKarte) && FarbePasst(alteKarte, neueKarte))
        {
            Debug.Log("Lege die Karte auf " + container);
            Kartenstapel stapel = GetComponent <Kartenstapel>();                         //Verweis auf Kartenstapelscript
            stapel.kartenContainer = container.gameObject;                               //dem Stapel sagen, wo erzeugeKarteInSzene die Karte unterordnen soll
            Karte karteInSzene = stapel.erzeugeKarteInSzene();                           //GameObject zum Zeichnen der Karte in der Szene anlegen
            karteInSzene.setzeBeschreibung(vorschauKarte.aktuelleBeschreibung(), false); //Kartenwert und Darstellung verbinden & sofort aufdecken
            vorschauKarte.setzeBeschreibung(null, false);
            KlickAufStapel();

            container.KartenAnordnen();

            if (stapel.istLeer() && vorschauKarte.aktuelleBeschreibung() == null) //alle karten abgelegt
            {
                dialogGewonnen.SetActive(true);
            }
        }
        else //passt nicht
        {
            dialogFehler.SetActive(true);
        }
    }
Esempio n. 6
0
 private void verdoppleKartenIn(Kartenstapel stapel)
 {
     for (int i = stapel.karten.Count - 1; i >= 0; i--)
     {
         Kartenbeschreibung karte = stapel.karten[i];
         stapel.karten.Add(karte);
     }
 }
    private void Start()
    {
        Kartenstapel stapel = GetComponent <Kartenstapel>(); //Verweis auf Kartenstapelscript

        stapel.mischeStapel();
        if (erweiterung != null)
        {
            erweiterung.ErweiterungStarten(stapel);
        }
        KlickAufStapel();
    }
Esempio n. 8
0
 private void LegeAlle(int mitDerFarbe, Kartenstapel ausDemStapel, int inDieSpalteIndex)
 {
     for (int wert = 14; wert >= 2; wert--)
     {
         Kartenbeschreibung k = ausDemStapel.hebeKarteAb(wert, mitDerFarbe);
         ausDemStapel.kartenContainer = spalten[inDieSpalteIndex].gameObject;
         Karte karteInSzene = ausDemStapel.erzeugeKarteInSzene();
         karteInSzene.setzeBeschreibung(k, false);
     }
     spalten[inDieSpalteIndex].KartenAnordnen();
 }
Esempio n. 9
0
    private void wennKarteUmgedrehtWurde(Karte umgedrehteKarte)
    {
        Debug.Log("Spielprinzip weiß: Karte " + umgedrehteKarte + " wurde umgedreht.");

        if (!umgedrehteKarte.KarteSchonUmgedreht())
        {
            return;             //verhindern, dass das umdrehen sofort wieder das zurück Umdrehen auslöst
        }
        if (ersteKarte != null) //dies ist die zweite Karte
        {
            zweiteKarte = umgedrehteKarte;
            if (ersteKarte.hatSelbenWert(umgedrehteKarte)) //paar gefunden
            {
                Debug.Log("Die beiden Karten sind gleich. " + ersteKarte + " " + umgedrehteKarte);

                verbleibendeZuege = 5;
                hilfetext.text    = "Finde alle Paare! Noch " + verbleibendeZuege + " Versuche.";

                Kartenstapel stapel = GetComponent <Kartenstapel>();
                if (stapel.kartenContainer.transform.childCount <= 2) //das waren die letzten beiden Karten -> gewonnen
                {
                    dialogGewonnen.SetActive(true);
                }
                else //es sind noch mehrere Karten auf dem Brett -> nur diese beiden wegräumen, dann weiter spielen
                {
                    dialogGleichesPaar.SetActive(true);
                    StartCoroutine(dialogAutomatischAusblenden());
                }
            }
            else //unterschiedliche karten
            {
                Debug.Log("Die beiden Karten sind unterschiedlich: " + ersteKarte + " " + umgedrehteKarte);

                verbleibendeZuege = verbleibendeZuege - 1;
                hilfetext.text    = "Finde alle Paare! Noch " + verbleibendeZuege + " Versuche.";
                if (verbleibendeZuege == 0)
                {
                    dialogGameOver.SetActive(true);
                }
                else
                {
                    dialogUngleichesPaar.SetActive(true);
                    StartCoroutine(dialogAutomatischAusblenden());
                }
            }
        }
        else //dies ist die erste Karte
        {
            ersteKarte = umgedrehteKarte;
        }
    }
Esempio n. 10
0
    // Start is called before the first frame update
    void Start()
    {
        Kartenstapel stapel = GetComponent <Kartenstapel>();

        verdoppleKartenIn(stapel);

        while (!stapel.istLeer())
        {
            Kartenbeschreibung gezogeneKarte = stapel.hebeZufaelligeKarteAb();
            Karte k = stapel.erzeugeKarteInSzene();
            k.setzeBeschreibung(gezogeneKarte, true);
            k.nachUmdrehenBenachrichten = wennKarteUmgedrehtWurde;
        }

        GetComponent <Image>().enabled = false; //gameObject.SetActive(false);
    }
    public void LegeKarteAuf(StapelContainer container)
    {
        if (vorschauKarte.aktuelleBeschreibung() == null) //keine Karte aufgedeckt oder übrig
        {
            return;
        }
        Kartenbeschreibung neueKarte = vorschauKarte.aktuelleBeschreibung();

        if (LegeKarteAuf(container, neueKarte))
        {
            vorschauKarte.setzeBeschreibung(null, false);
            KlickAufStapel();
            Kartenstapel stapel = GetComponent <Kartenstapel>();                  //Verweis auf Kartenstapelscript
            if (stapel.istLeer() && vorschauKarte.aktuelleBeschreibung() == null) //alle karten abgelegt
            {
                dialogGewonnen.SetActive(true);
            }
        }
    }
    public void LegeKarteAuf(StapelContainer container)
    {
        if (vorschauKarte.aktuelleBeschreibung() == null) //keine Karte aufgedeckt oder übrig
        {
            return;
        }

        Debug.Log("Lege die Karte auf " + container);
        Kartenstapel stapel = GetComponent <Kartenstapel>();                         //Verweis auf Kartenstapelscript

        stapel.kartenContainer = container.gameObject;                               //dem Stapel sagen, wo erzeugeKarteInSzene die Karte unterordnen soll
        Karte karteInSzene = stapel.erzeugeKarteInSzene();                           //GameObject zum Zeichnen der Karte in der Szene anlegen

        karteInSzene.setzeBeschreibung(vorschauKarte.aktuelleBeschreibung(), false); //Kartenwert und Darstellung verbinden & sofort aufdecken
        vorschauKarte.setzeBeschreibung(null, false);
        KlickAufStapel();

        container.KartenAnordnen();
    }
    public void KlickAufStapel()
    {
        Kartenstapel stapel = GetComponent <Kartenstapel>();

        Debug.Log("Klick auf den Stapel.");
        if (stapel.istLeer())
        {
            Debug.Log("Der Stapel ist leer!");
            return;
        }

        Kartenbeschreibung gezogeneKarte = stapel.hebeZufaelligeKarteAb();

        stapel.erzeugeKarteInSzene().setzeBeschreibung(gezogeneKarte, false);

        if (stapel.karten.Count == 0)
        {
            gameObject.SetActive(false);
        }
    }
    public bool LegeKarteAuf(StapelContainer container, Kartenbeschreibung neueKarte)
    {
        Kartenbeschreibung alteKarte = container.ObersteKarte();

        if (WertPasst(alteKarte, neueKarte) && FarbePasst(alteKarte, neueKarte))
        {
            Debug.Log("Lege die Karte auf " + container);
            Kartenstapel stapel = GetComponent <Kartenstapel>(); //Verweis auf Kartenstapelscript
            stapel.kartenContainer = container.gameObject;       //dem Stapel sagen, wo erzeugeKarteInSzene die Karte unterordnen soll
            Karte karteInSzene = stapel.erzeugeKarteInSzene();   //GameObject zum Zeichnen der Karte in der Szene anlegen
            karteInSzene.setzeBeschreibung(neueKarte, false);    //Kartenwert und Darstellung verbinden & sofort aufdecken

            container.KartenAnordnen();
            return(true); //Karte passt und wurde verschoben
        }
        else //passt nicht
        {
            dialogFehler.SetActive(true);
            return(false); //Karte passt nicht, nichts weiter machen
        }
    }
Esempio n. 15
0
    private void wennKarteUmgedrehtWurde(Karte umgedrehteKarte)
    {
        Debug.Log("Spielprinzip weiß: Karte " + umgedrehteKarte + " wurde umgedreht.");

        if (!umgedrehteKarte.KarteSchonUmgedreht())
        {
            return;
        }
        if (ersteKarte != null) //dies ist die zweite Karte
        {
            zweiteKarte = umgedrehteKarte;
            if (ersteKarte.hatSelbenWert(umgedrehteKarte)) //paar gefunden
            {
                Debug.Log("Die beiden Karten sind gleich. " + ersteKarte + " " + umgedrehteKarte);
                Kartenstapel stapel = GetComponent <Kartenstapel>();
                if (stapel.kartenContainer.transform.childCount <= 2)
                {
                    dialogGewonnen.SetActive(true);
                }
                else
                {
                    dialogGleichesPaar.SetActive(true);
                    StartCoroutine(dialogAutomatischAusblenden());
                }
            }
            else //unterschiedliche karten
            {
                Debug.Log("Die beiden Karten sind unterschiedlich: " + ersteKarte + " " + umgedrehteKarte);
                dialogUngleichesPaar.SetActive(true);
                StartCoroutine(dialogAutomatischAusblenden());
            }
        }
        else //dies ist die erste Karte
        {
            ersteKarte = umgedrehteKarte;
        }
    }
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();

        if (GUILayout.Button("Karten einlesen"))
        {
            foreach (UnityEngine.Object o in Selection.objects)
            {
                Debug.Log("- Object: " + o);
                Sprite sprite = null;
                if (o is Sprite)
                {
                    sprite = (Sprite)o;
                }
                else if (o is Texture2D)
                {
                    string[] guid = AssetDatabase.FindAssets(o.name + " t:Sprite");
                    if (guid.Length > 0)
                    {
                        sprite = (Sprite)AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath(guid[0]), typeof(Sprite));
                    }
                }

                if (sprite != null)
                {
                    Kartenbeschreibung karte = new Kartenbeschreibung();
                    karte.kartenbild = sprite;

                    string n = sprite.name;
                    if (n.StartsWith("ace_"))
                    {
                        karte.Wert = 14;
                    }
                    else if (n.StartsWith("king_"))
                    {
                        karte.Wert = 13;
                    }
                    else if (n.StartsWith("queen_"))
                    {
                        karte.Wert = 12;
                    }
                    else if (n.StartsWith("jack_"))
                    {
                        karte.Wert = 11;
                    }
                    else
                    {
                        for (int i = 2; i < 11; i++)
                        {
                            if (n.StartsWith(i + "_of_"))
                            {
                                karte.Wert = i;
                                break;
                            }
                        }
                    }


                    if (n.IndexOf("spades") > -1)
                    {
                        karte.Farbe = 1;
                    }
                    else if (n.IndexOf("clubs") > -1)
                    {
                        karte.Farbe = 2;
                    }
                    else if (n.IndexOf("hearts") > -1)
                    {
                        karte.Farbe = 13;
                    }
                    else if (n.IndexOf("diamonds") > -1)
                    {
                        karte.Farbe = 14;
                    }


                    Kartenstapel stapel = (Kartenstapel)target;
                    stapel.karten.Add(karte);
                }
            }
        }
    }