Example #1
0
 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();
         }
     }
 }
Example #2
0
    void Awake()
    {
        s_instance = this;

        HoverCard = GameObject.FindWithTag("HoverCard");
        SchadensTextSetup();
    }
Example #3
0
 //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");
     }
 }
Example #4
0
    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);
    }
Example #5
0
 //Beendet eine bestehende aktion
 public void actionend()
 {
     Debug.Log("actionend");
     allMoveEnd();
     moving        = null;
     Spell         = null;
     equip         = null;
     summon        = null;
     chargeFeld    = null;
     attackedField = null;
 }
Example #6
0
    //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++;
        }
    }
Example #10
0
//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);
    }