Esempio n. 1
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();
             }
         }
     }
 }
Esempio n. 2
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. 4
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. 5
0
 private void GibKarten(int anzahl, GameObject handstapel)
 {
     for (int i = 0; i < anzahl; i++)
     {
         Kartenbeschreibung karteAusStapel = stapel.hebeObersteKarteAb();
         stapel.kartenContainer = handstapel;
         Karte karteInSzene = stapel.erzeugeKarteInSzene();
         karteInSzene.setzeBeschreibung(karteAusStapel, true);
         karteInSzene.Umdrehen();
         karteInSzene.GetComponent <Button>().onClick.AddListener(KlickAufHandStapelKarte);
     }
 }
Esempio n. 6
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;
        }

        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
        }
    }
    public void GibKarten(int anzahl, MauMauPartei spielpartei)
    {
        bool istSpieler = spielpartei is MauMauParteiSpieler;

        for (int i = 0; i < anzahl; i++)
        {
            Kartenbeschreibung karteAusStapel = stapel.hebeObersteKarteAb();
            stapel.kartenContainer = spielpartei.gameObject;
            Karte karteInSzene = stapel.erzeugeKarteInSzene();
            karteInSzene.setzeBeschreibung(karteAusStapel, istSpieler);
            if (istSpieler)
            {
                karteInSzene.Umdrehen();
            }
            else
            {
                karteInSzene.TauscheKartenbild();
            }
            spielpartei.WennKarteHinzugefuegtWurde(karteInSzene);
        }
    }
    public void OnDrop(PointerEventData eventData)
    {
        StapelContainer spalte = eventData.pointerDrag.GetComponent <StapelContainer>();

        if (spalte != null)                       //es wurde eine spalte/container auf die Endablage gezogen
        {
            if (spalte.ziehendeKarten.Count == 1) //wenn mehrere karten einer anderen spalte hierher gezogen werden
            {
                Karte untersteKarte = spalte.ziehendeKarten[0];
                if (passt(untersteKarte.aktuelleBeschreibung())) //Kann Karte abgelegt werden?
                {
                    //Kartenstapel kartenstapel = FindObjectOfType<Kartenstapel>();
                    kartenstapel.kartenContainer = gameObject;
                    kartenstapel.erzeugeKarteInSzene().setzeBeschreibung(untersteKarte.aktuelleBeschreibung(), false);

                    spalte.EntferneObersteKarte();

                    SpielprinzipPatienceHarfe erweiterung = kartenstapel.GetComponent <SpielprinzipPatienceHarfe>();
                    erweiterung.PruefeObGewonnen();
                }
            }
        }
    }