public bool Passt(Karte karte) { return((karte.aktuelleBeschreibung().Farbe == offeneKarte.aktuelleBeschreibung().Farbe) || (karte.aktuelleBeschreibung().Wert == offeneKarte.aktuelleBeschreibung().Wert) ); }
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 LegeAb(Karte handstapelkarteInSzene) { stapel.legeKarteZurueck(offeneKarte.aktuelleBeschreibung()); stapel.mischeStapel(); offeneKarte.setzeBeschreibung(handstapelkarteInSzene.aktuelleBeschreibung(), false); Destroy(handstapelkarteInSzene.gameObject); //Typischer Fehler: .gameObject vergessen }
public void LegeAb(Karte handstapelkarteInSzene) { stapel.legeKarteZurueck(offeneKarte.aktuelleBeschreibung()); stapel.mischeStapel(); offeneKarte.setzeBeschreibung(handstapelkarteInSzene.aktuelleBeschreibung(), false); Destroy(handstapelkarteInSzene.gameObject); //Typischer Fehler: .gameObject vergessen if (handstapelkarteInSzene.transform.parent.childCount == 1) { gewonnenDialog.SetActive(true); textGewonnen.text = WerIstDran().anzeigename + " hat gewonnen."; } }
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(); } } } }
private void KlickAufHandStapelKarte() { Karte karteInSzene = EventSystem.current.currentSelectedGameObject.GetComponent <Karte>(); Debug.Log("Handstapelkarte angeklickt: " + karteInSzene.aktuelleBeschreibung()); if (Passt(karteInSzene)) { LegeAb(karteInSzene); } else { Debug.Log("Die Karte " + karteInSzene + " passt NICHT auf " + offeneKarte); } }
public void OnDrop(PointerEventData eventData) { Debug.Log("OnDrop! " + eventData); StapelContainer ziel = GetComponent <StapelContainer>(); SpielprinzipPatience spielprinzip = FindObjectOfType <SpielprinzipPatience>(); //spielprinzip.LegeKarteAuf(ziel); Karte karte = eventData.pointerDrag.GetComponent <Karte>(); if (karte != null) //es wurde eine (vorschau)karte gezogen { spielprinzip.LegeKarteAuf(ziel); return; //ondrop abbrechen } StapelContainer spalte = eventData.pointerDrag.GetComponent <StapelContainer>(); if (spalte != null) //es wurde eine andere spalte/container gezogen { if (spalte.ziehendeKarten.Count > 0) //wenn mehrere karten einer anderen spalte hierher gezogen werden { foreach (Karte k in spalte.ziehendeKarten) { Debug.Log("- gezogen wurde: " + k); } Karte untersteKarte = spalte.ziehendeKarten[0]; if (spielprinzip.LegeKarteAuf(ziel, untersteKarte.aktuelleBeschreibung())) //unterste Karte der Ziehenden gemäß der Spielregeln ablegbar? { for (int i = 1; i < spalte.ziehendeKarten.Count; i++) { spielprinzip.LegeKarteAuf(ziel, spalte.ziehendeKarten[i].aktuelleBeschreibung()); } spalte.EntferneZiehendeKarten(); } } else if (spielprinzip.LegeKarteAuf(ziel, spalte.ObersteKarte())) //wurde abgelegt { spalte.EntferneObersteKarte(); } } }
private void KlickAufHandStapelKarte() { if (spielprinzip.WerIstDran() != this) { Debug.LogWarning("Du bist nicht dran! "); return; } Karte karteInSzene = EventSystem.current.currentSelectedGameObject.GetComponent <Karte>(); Debug.Log("Handstapelkarte angeklickt: " + karteInSzene.aktuelleBeschreibung()); if (spielprinzip.Passt(karteInSzene)) { spielprinzip.LegeAb(karteInSzene); spielprinzip.stapel.GetComponent <Button>().interactable = false; SetzeHandkartenInteractable(false); btnRundeBeenden.interactable = true; } else { Debug.Log("Die Karte " + karteInSzene + " passt NICHT auf " + spielprinzip.offeneKarte); } }