Ejemplo n.º 1
0
    // Initiate a Fireball depends on what type of Fireball
    public GameObject createFireball(FireballType type = FireballType.RANDOM)
    {
        if (type == FireballType.RANDOM)
        {
            var randomFireball = Random.Range(0, 2);
            type = (FireballType)randomFireball;
        }

        GameObject tempFireball = null;

        switch (type)
        {
        case FireballType.PLAYER_FIREBALL:
            tempFireball = MonoBehaviour.Instantiate(playerFireball);
            tempFireball.GetComponent <FireballController>().damage = 10;
            break;

        case FireballType.ENEMY_FIREBALL:
            tempFireball = MonoBehaviour.Instantiate(enemyFireball);
            tempFireball.GetComponent <FireballController>().damage = 5;
            break;
        }

        if (gameController != null)
        {
            tempFireball.transform.parent = gameController.gameObject.transform;
        }
        tempFireball.SetActive(false);

        return(tempFireball);
    }
    /*-----------------------PLAYER FIREBALL POOL----------------------------------*/

    // Build Fireball pool
    private void _BuildFireballPool(FireballType type)
    {
        // create empty Queue structure
        m_fireballPool = new Queue <GameObject>();

        for (int count = 0; count < MaxFireballs; count++)
        {
            var tempFireball = FireballFactory.Instance().createFireball(type);
            m_fireballPool.Enqueue(tempFireball);
        }
    }
    /*----------------------------------------------------------------------------*/


    /*-----------------------ENEMY FIREBALL POOL----------------------------------*/

    // Build Enemy Fireball pool
    private void _BuildEnemyFireballPool(FireballType eType)
    {
        // create empty Queue structure
        m_enemyFireballPool = new Queue <GameObject>();

        for (int count = 0; count < MaxFireballs; count++)
        {
            var tempFireball = FireballFactory.Instance().createFireball(eType);
            tempFireball.transform.Rotate(0.0f, 0.0f, 180.0f, Space.World);
            m_enemyFireballPool.Enqueue(tempFireball);
        }
    }
 // Create a Fireball pool belongs to input type and number of fireball as well
 public void Init(int max_fireballs = 50, FireballType type = FireballType.PLAYER_FIREBALL, FireballType eType = FireballType.ENEMY_FIREBALL)
 {
     MaxFireballs = max_fireballs;
     _BuildFireballPool(type);
     _BuildEnemyFireballPool(eType);
 }