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); } }
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; } }