示例#1
0
    IEnumerator FireAttackAsync()
    {
        yield return(new WaitForSeconds(0.15f));

        GameObject       obj = Instantiate(BulletHellPrefab, gameObject.transform.position + new Vector3(0, 1f, 0), new Quaternion());
        DragonBulletHell pbh = obj.GetComponent <DragonBulletHell>();

        obj.transform.localScale = new Vector3(2f, 2f, 2f);
        obj.transform.rotation   = transform.rotation;
        obj.transform.Translate(Vector3.forward * 1);
        pbh.speed = 16f;
        Damage dmg = new Damage(0f, 0f, true, false, false);

        pbh.dmg = stats.RealDamage(dmg);
        pbh.ttl = 5f;
        Damage dmgChild = new Damage(0f, Random.Range(25f * Level, 50f * Level), true, false, true);

        pbh.childDamage = stats.RealDamage(dmgChild);
        yield return(new WaitForSeconds(0.2f));

        if (targetRandomly)
        {
            targetRot = Quaternion.Euler(0, Random.Range(0, 360), 0);
        }
    }
示例#2
0
    IEnumerator AbilTwoAsync()
    {
        yield return(new WaitForSeconds(0.15f));

        GameObject       obj = Instantiate(BulletHellPrefab, gameObject.transform.position + new Vector3(0, 2f, 0), new Quaternion());
        DragonBulletHell pbh = obj.GetComponent <DragonBulletHell>();

        obj.transform.localScale = new Vector3(2.5f, 2.5f, 2.5f);
        obj.transform.rotation   = transform.rotation;
        obj.transform.Translate(Vector3.forward * 2);
        pbh.speed = 8f;
        Damage dmg = new Damage(0f, Random.Range(100f, 120f) * Level, true, false, false);

        pbh.dmg = stats.RealDamage(dmg);
        pbh.ttl = 2.5f;
        Damage dmgChild = new Damage(0f, Random.Range(50f, 75f) * Level, true, false, true);

        pbh.childDamage = stats.RealDamage(dmgChild);
        yield return(new WaitForSeconds(1.75f));

        inUse = false;
        float choice = Random.Range(0f, 1f);

        if (choice < 0.6)
        {
            nextAttack = 0;
        }
        else if (choice < 0.9)
        {
            nextAttack = 2;
        }
        else
        {
            nextAttack = 1;
        }
    }