Ejemplo n.º 1
0
    // CARD DRAW METHODS

    // creates a card and returns a new card as a GameObject
    GameObject CreateACardAtPosition(Cards c, Vector3 position, Vector3 eulerAngles)
    {
        // Instantiate a card depending on its type
        GameObject card;

        /*if (c.MaxHealth > 0)  //We don't have creature cards now
         * {
         *  // this card is a creature card
         *  card = GameObject.Instantiate(GlobalSettings.Instance.CreatureCardPrefab, position, Quaternion.Euler(eulerAngles)) as GameObject;
         * }
         * else
         * {*/
        // this is a spell: checking for targeted or non-targeted spell
        if (c.targets == TargetingOptions.NoTarget)
        {
            card = GameObject.Instantiate(GlobalSettings.Instance.NoTargetSpellCardPrefab, position, Quaternion.Euler(eulerAngles)) as GameObject;
        }
        else
        {
            card = GameObject.Instantiate(GlobalSettings.Instance.TargetedSpellCardPrefab, position, Quaternion.Euler(eulerAngles)) as GameObject;
            // pass targeting options to DraggingActions
            DragSpellOnTarget dragSpell = card.GetComponentInChildren <DragSpellOnTarget>();
            dragSpell.Targets = c.targets;
        }

        //}

        // apply the look of the card based on the info from CardAsset
        OneCardManager manager = card.GetComponent <OneCardManager>();

        manager.cardAsset = c;
        manager.ReadCardFromAsset();

        return(card);
    }
Ejemplo n.º 2
0
    GameObject CreateACardAtPosition(CardAsset cardAsset, Vector3 position, Vector3 eulerAngles)
    {
        GameObject card;

        if (cardAsset.IsCreatureCard)
        {
            card = GameObject.Instantiate(GlobalSettings.Instance.CreatureCardPrefab, position, Quaternion.Euler(eulerAngles)) as GameObject;
        }
        else
        {
            if (cardAsset.Targets == TargetingOptions.NoTarget)
            {
                card = GameObject.Instantiate(GlobalSettings.Instance.NoTargetSpellCardPrefab, position, Quaternion.Euler(eulerAngles)) as GameObject;
            }
            else
            {
                card = GameObject.Instantiate(GlobalSettings.Instance.TargetedSpellCardPrefab, position, Quaternion.Euler(eulerAngles)) as GameObject;
                // pass targeting options to DraggingActions
                DragSpellOnTarget dragSpell = card.GetComponentInChildren <DragSpellOnTarget>();
                dragSpell.Targets = cardAsset.Targets;
            }
        }

        // apply the look of the card based on the info from CardAsset
        OneCardManager manager = card.GetComponentInChildren <OneCardManager>();

        manager.cardAsset = cardAsset;
        manager.LoadFromCardAsset();

        return(card);
    }
Ejemplo n.º 3
0
    GameObject CreateACardAtPosition(CardAsset c, Vector3 position, Vector3 eulerAngles)
    {
        GameObject card;

        if (c.MaxHealth > 0)
        {
            card = GameObject.Instantiate(GlobalSettings.Instance.CreatureCardPrefab, position, Quaternion.Euler(eulerAngles)) as GameObject;
        }
        else
        {
            if (c.Targets == TargetingOptions.NoTarget)
            {
                card = GameObject.Instantiate(GlobalSettings.Instance.NoTargetSpellCardPrefab, position, Quaternion.Euler(eulerAngles)) as GameObject;
            }
            else
            {
                card = GameObject.Instantiate(GlobalSettings.Instance.TargetedSpellCardPrefab, position, Quaternion.Euler(eulerAngles)) as GameObject;
                // передает список допустимых целей скрипту, отвечающему за проверку корректности цели
                DragSpellOnTarget dragSpell = card.GetComponentInChildren <DragSpellOnTarget>();
                dragSpell.Targets = c.Targets;
            }
        }

        OneCardManager manager = card.GetComponent <OneCardManager>();

        manager.cardAsset = c;
        manager.ReadCardFromAsset();

        return(card);
    }
Ejemplo n.º 4
0
    // METODY WYKRYWANIA KART

    // TWORZY NOWĄ KARTĘ I ZWRACA JAKO GAMEOBJECT
    ///CardAsset c to zmienna która odwołuje się do klasy CardAsset
    GameObject CreateACardAtPosition(CardAsset c, Vector3 position, Vector3 eulerAngles)
    {
        // Wywołaj kartę w zależności od jej typu
        //Inicjalizuje zmienną "card" typu GameObject
        GameObject card;

        if (c.MaxHealth > 0) //Odwołuje się do pola MaxHealth w klasie CardAsset i sprawdza czy wartość jest większa od 0
        {
            // Jeśli jest większe od 0 to jest to karta istoty więc jedzie z tym kodem
            ///Instantiate() - klonuje obiekt i zwraca ten klon więc:
            // Klonuje opiekt GameObject i zwraca klon o parametrach:
            // GlobalSettings.Instance.CreatureCardPrefab - odnosi się do pozycji w skrypcie GlobalSetting i klonuje Preefab karty postaci
            // Która jest do tej instancji przypisana
            // do argumentu posisiotn przypisywana jest pozycja karty
            /// Quaternion.Euler jest odpowiedzialny za rotację; samo Euler() - zwraca obót (kąt Eulera)
            // do argumentu eulerAngles jest przypisywany obrót który jest wykonywany przy obracaniu karty gdy się ją wykłada
            // as GameObject na końcu określa, jakiego typu jest obiekt w tym wypadku dalej GameObject
            card = GameObject.Instantiate(GlobalSettings.Instance.CreatureCardPrefab, position, Quaternion.Euler(eulerAngles)) as GameObject;
        }
        else
        {
            // jśli c.MaxHealth jest równe 0, to jest to karta czaru, więc następuje sprawdzanie czy jest to czar z celownikiem czy nie
            // Jeśli chodzi o celownik to, mam na myśli czary, przy których trzeba wyznaczyć obiekt w grze na który ma mieć ta karta wpływ
            // c.Targets - to odwołanie się do zmiennej Targets typu TargetingOptions (zmienna znajduje się w skrypcie CardAsset)
            // TargetingOptions.NoTarget - to odwołanie się do argumentu "NoTarget", który znajduje się w enum "TargetingOptions"
            // Jeżeli c.Targets równa się TargetingOptions.NoTarget to jedzie dalej z kodem ->
            if (c.Targets == TargetingOptions.NoTarget)
            {
                // To co powyżej w tej funkcji, z tą różnicą że teraz tworzymy klon z preefabem NoTargetSpellCardPrefab
                card = GameObject.Instantiate(GlobalSettings.Instance.NoTargetSpellCardPrefab, position, Quaternion.Euler(eulerAngles)) as GameObject;
            }

            // Jeśli c.Targets nie jest równe TargetingOptions.NoTarget to jest to czar ??globalny?? (bez celownika)
            // Więc jedzie z kodem poniżej ->
            else
            {
                // To co powyżej w tej funkcji, z tą różnicą, że teraz tworzymy klon z preefabem TargetedSpellCardPrefab
                card = GameObject.Instantiate(GlobalSettings.Instance.TargetedSpellCardPrefab, position, Quaternion.Euler(eulerAngles)) as GameObject;

                // Zainicjowanie obiektu dragSpell typy DragSpellOnTarget (jest to klasa)
                // Do dragSpell przypisuje zwrócony komponent (GetComponentInChildren) z obiektu card, typu DragSpellOnTarget
                /// GetComponentInChildren - zwraca komponent wyszukany po pierwszym wyszukiwaniu głębi, w sensie nie wchodzi za głęboko w obiekt
                /// Na przyszłość: Komponent zostanie zwrócony tylko wtedy gdy obiekt z którego będzie wyszukiwany będzie aktywny na scenie
                DragSpellOnTarget dragSpell = card.GetComponentInChildren <DragSpellOnTarget>();

                // Odwołuje się do zmiennej Targets w klasie dragSpell i przypisuje do niej zmienną Targets z klasy CardAsset
                dragSpell.Targets = c.Targets;

                // Ogólnie chodzi tutaj o to aby przekazać do skryptu odpowiedzialnego za poruszanie kartami opcje jak ma kartę kierować
            }
        }

        // Zastosowanie wyglądu karty na podstawie informacji z CardAsset
        // Zainicjowanie zmiennej manager typu OneCardManager (to jest klasa/skrypt)
        // Przypisanie do manager komponentu pozyskanego (GetComponent) z obiektu card, typu OneCardManager
        OneCardManager manager = card.GetComponent <OneCardManager>();

        // Odwołanie się do zmiennej "cardAsset" znajdującej się w "OneCardManager" i przypisanie do niej obiektu "c" (jest to cardAsset)
        manager.cardAsset = c;
        manager.ReadCardFromAsset(); //wywołanie funkcji znajdującej się w OneCardManager (więcej o niej w danym skrypcie)

        return(card);                //Zwrócenie obiektu card
    }