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); } } }
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(); }
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); } }
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(); }
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(); }
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; } }
// 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 } }
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); } } } }