Beispiel #1
0
    public void PlayCard(CardPatternData card, Transform emitter, int card_ID)
    {
        if (nowPlayingCard != null)
        {
            Debug.Log("WARNING: enemy is playing a card when there is already a card being played.");
        }

        nowPlayingCard = StartCoroutine(playCard(card, emitter, card_ID));
    }
Beispiel #2
0
    IEnumerator playCard(CardPatternData card, Transform emitter, int card_ID)
    {
        if (card.show_card_text)
        {
            card_name.showCard(card.card_text_1, card.card_text_2, card.card_text_3);
            yield return(new WaitForSeconds(1f));
        }

        for (int i = 0; i < card.array.Length; i++)
        {
            ShotPatternData shot_data = Instantiate(card.array[i].shot);

            for (int j = 0; j < card.array[i].shot.loopQuantity; j++)
            {
                nowShooting = StartCoroutine(shoot(shot_data, card.array[i].bullet, emitter, j, i, card_ID));
                checkShotPatternData(shot_data);

                for (int k = 0; k < (card.array[i].shot.delayBetweenLoops / Time.timeScale) &&
                     j % card.array[i].shot.delayAppliedEachNLoops == card.array[i].shot.delayAppliedEachNLoops - 1; k++)
                {
                    yield return(new WaitForEndOfFrame());
                }
            }

            for (int h = 0; h < card.array[i].events.Length; h++)
            {
                event_manager.fileEvent(card.array[i].events[h].shotEvent,
                                        card.array[i].events[h].delayBeforeEvent,
                                        i,
                                        card_ID);
            }

            yield return(new WaitForSeconds(card.array[i].delayAfter));
        }

        nowPlayingCard = null;
    }