public void Move(KreaturChip moving, Feld target) { //beendet die bewegung auf jedem Feld und entfernt die Kreatur vom Feld wo es herkam foreach (Feld element in Felder) { if (element.Kreatur == moving) { element.Kreatur = null; } element.MoveEnd(); } moving.Platzfeld = target; moving.MoveTo(); target.Kreatur = moving; moving.Aktiondone = true; //War zuerst die Summon Phase so wird diese beendet if (getPhase() == 0) { nextPhase(); } else { //Wenn keine andere Kreatur sich bewegen kann wird die nexte phase ausgewählt if (NoMoreMovment()) { nextPhase(); } } }
void Awake() { s_instance = this; HoverCard = GameObject.FindWithTag("HoverCard"); SchadensTextSetup(); }
//Startet das ausspielen eioner KreaturenKarte public void kreaturkartespielen(KreaturKarte karte) { //Überprüft ob der Spieler genug Mana hat if (karte.Player.Mana >= karte.kosten) { //Schaut ob der Spieler aktiv ist if (GetAktuellSpieler() == karte.Player) { //Überprüft ob es noch die Beschwörungsphase ist. if (getPhase() == 0) { //Wurde dieser Kreatur bereits ausgewählt wird sie wieder abgewählt if (moving != karte.Kreatur) { //War eine andere action am laufen wird diese beendet if (Spell != null || equip != null || moving != null) { actionend(); } //es wird nach der Hauptkreatur gesucht foreach (Feld element in Felder) { if (element.Kreatur != null) { if (element.Kreatur.Player == karte.Player && element.Kreatur.anfuehrer == true) { karte.Kreatur.Player = karte.Player; moving = karte.Kreatur; summon = karte; element.Beschwoerung(); } } } } else { actionend(); } } else { UIManagerController.s_instance.Meldungen((int)enMeldungen.Falsche_Phase); Debug.Log("Wrong Phase"); } } else { UIManagerController.s_instance.Meldungen((int)enMeldungen.Falscher_Spieler); Debug.Log("Wrong Player"); } } else { UIManagerController.s_instance.Meldungen((int)enMeldungen.Nicht_genug_Mana); Debug.Log("Nicht genug Mana"); } }
public IEnumerator ShowDamageTaken(KreaturChip target, int damage) { SchadensText.transform.position = target.transform.position + new Vector3(0.0f, 0.0f, 0.2f); SchadensText.GetComponent <TextMesh>().text = damage + ""; SchadensText.SetActive(true); yield return(new WaitForSeconds(1)); SchadensText.SetActive(false); }
//Beendet eine bestehende aktion public void actionend() { Debug.Log("actionend"); allMoveEnd(); moving = null; Spell = null; equip = null; summon = null; chargeFeld = null; attackedField = null; }
//wird aufgerufen wenn eine Kreatur auf dem Feld zerstört wird public void Kreaturzerstört(KreaturKarte besiegt, KreaturChip chip) { GameManager.s_instance.letSoundPlay(Enumerations.enSfxAndPfx.KarteBewegen); List <AusruestungsKarte> templist = chip.removeequip(); foreach (AusruestungsKarte equip in templist) { Kartebewegen(feld, equip, ablagestapel); } Kartebewegen(feld, besiegt, ablagestapel); onCardDeath(besiegt); }
public static void SpawnSpellParticles(GameObject particles, int duration, KreaturChip target, KreaturChip origin = null) { if (particles == null) { return; } Quaternion rotation = computeQuaternion(target, origin); GameObject gObj = (GameObject)Instantiate(particles, target.transform.position + new Vector3(0.0f, 0.0f, -0.075f), Quaternion.identity); Destroy(gObj, duration); }
public static Quaternion computeQuaternion(KreaturChip target, KreaturChip origin) { Quaternion result = new Quaternion(0.7f, 0.5f, 0.7f, -0.7f); if (origin == null) { return(result); } else { //compute the direction for lance, and arrow //set speed for particle? Vector3 particleDirection = target.transform.position - origin.transform.position; Quaternion direction = Quaternion.LookRotation(particleDirection); return(direction); } }
public void Setup() { TextAsset Feld = (TextAsset)Resources.Load(UIManagerController.s_instance.Feldname); string[] input = Feld.text.Split('\n'); normal.gesamt = GameManager.s_instance; start.gesamt = GameManager.s_instance; block.gesamt = GameManager.s_instance; frost.gesamt = GameManager.s_instance; wald.gesamt = GameManager.s_instance; energie.gesamt = GameManager.s_instance; langsam.gesamt = GameManager.s_instance; GameManager.s_instance.normalFeld = normal; GameManager.s_instance.energieFeld = energie; List <Feld> startfelder = new List <Feld>(); float scaleX = (fieldX / 100) * 1.7f; float scaleZ = (fieldZ / 100) * 1.5f; for (int i = 0; i < input.Length; i++) { float abweichung; if (i % 2 == 0) { abweichung = 0; } else { abweichung = 0.85f; } for (int n = 0; n < input[i].Length; n++) { if (input[i][n] == 'n') { createField(normal, i, n, abweichung, scaleX, scaleZ); } if (input[i][n] == 's') { startfelder.Add(createField(start, i, n, abweichung, scaleX, scaleZ).GetComponent <Feld>()); } if (input[i][n] == 'b') { createField(block, i, n, abweichung, scaleX, scaleZ); } if (input[i][n] == 'f') { createField(frost, i, n, abweichung, scaleX, scaleZ); } if (input[i][n] == 'w') { createField(wald, i, n, abweichung, scaleX, scaleZ); } if (input[i][n] == 'e') { createField(energie, i, n, abweichung, scaleX, scaleZ); } if (input[i][n] == 'l') { createField(langsam, i, n, abweichung, scaleX, scaleZ); } } } int m = 0; foreach (int typ in playertyps) { Spieler player = decks[typ].player;// UI Spieler farbcode Vector3 temp = startfelder[m].transform.position; Quaternion temp1 = new Quaternion(0.7f, 0, 0, -0.7f); GameObject tempobject = (GameObject)Instantiate(player.gameObject, temp, temp1); KreaturChip tempkreatur = tempobject.GetComponent <KreaturChip>(); tempkreatur.gesamt = GameManager.s_instance; tempkreatur.Platzfeld = startfelder[m]; startfelder[m].Kreatur = tempkreatur; tempkreatur.Player = tempobject.GetComponent <Spieler>(); player.deck = decks[typ].deck; // UI Spieler farbcode player.live = tempkreatur.maxLeben; player.Decktyp = typ; // UI Spieler farbcode GameManager.s_instance.Spieler.Add(tempobject.GetComponent <Spieler>()); player.Mana = GameManager.s_instance.startmana; m++; } }
//Manages Sound and Particle Effects public void letParticlePlayMonster(Enumerations.enSfxAndPfx e, int duration, KreaturChip target, KreaturChip origin = null) { GameObject play = null; switch (e) { case Enumerations.enSfxAndPfx.Blattgeschoss: play = blattgeschossPfx; break; case Enumerations.enSfxAndPfx.Blizzard: play = blizzardPfx; break; case Enumerations.enSfxAndPfx.Eisadler: play = eisadlerPfx; break; case Enumerations.enSfxAndPfx.Eisblock: play = eisblockPfx; break; case Enumerations.enSfxAndPfx.Eislanze: play = eislanzePfx; break; case Enumerations.enSfxAndPfx.Eispfeil: play = eispfeilPfx; break; case Enumerations.enSfxAndPfx.Energie: play = energiePfx; break; case Enumerations.enSfxAndPfx.ExplosiveSamen: play = explosiveSamenPfx; break; case Enumerations.enSfxAndPfx.Fernkampf: play = fernkampfPfx; break; case Enumerations.enSfxAndPfx.Heilen: play = heilenPfx; break; case Enumerations.enSfxAndPfx.KreaturKO: play = kreaturKOPfx; break; case Enumerations.enSfxAndPfx.Nahkampf: play = nahkampfPfx; break; case Enumerations.enSfxAndPfx.Rankenschlag: play = rankenschlagPfx; break; case Enumerations.enSfxAndPfx.Teleport: play = tauschenPfx; break; case Enumerations.enSfxAndPfx.Wiederkehr: play = wiederkehrPfx; break; case Enumerations.enSfxAndPfx.Wucherwurzeln: play = wucherwurzelnPfx; break; } SpellParticleManager.SpawnSpellParticles(play, duration, target, origin); }