public override void Act(GameObject player, GameObject npc) { if ((massShootElapsed += Time.deltaTime) >= massShootInterval) { EnemyBoss2 boss = npc.GetComponent <EnemyBoss2>(); if ((shootElapsed += Time.deltaTime) >= shootInterval) { Vector3 bossToPlayer = -boss.transform.position + player.transform.position; bossToPlayer = new Vector3(bossToPlayer.x, bossToPlayer.y, 0); //force z = 0; aimingAngle = Mathf.Rad2Deg * Mathf.Sin((projShot / (boss.numOfProj - 1)) * (2.0f * Mathf.PI)); Quaternion quat = Quaternion.Euler(0, 0, aimingAngle); Projectile newProj = GameObject.Instantiate(proj, npc.transform.position, Quaternion.identity); newProj.transform.up = quat * bossToPlayer; newProj.gameObject.layer = boss.projectileLayer; newProj.projectileSpeed = boss.projectileSpd; newProj.SetDamage(boss.damage); shootElapsed = 0.0; ++projShot; } if (projShot >= boss.numOfProj) { projShot = 0; massShootElapsed = 0.0f; } } }
void OnTriggerEnter2D(Collider2D hitInfo) { Enemy enemy = hitInfo.GetComponent <Enemy>(); EnemyBoss boss = hitInfo.GetComponent <EnemyBoss>(); EnemyBoss2 boss2 = hitInfo.GetComponent <EnemyBoss2>(); CanonEnemy canon = hitInfo.GetComponent <CanonEnemy>(); if (enemy != null) { enemy.TakeDamage(damage); } if (boss != null) { boss.TakeDamage(damage); } if (boss2 != null) { boss2.TakeDamage(damage); } if (canon != null) { canon.TakeDamage(damage); } Instantiate(ImpactEf, transform.position, transform.rotation); Destroy(gameObject); }
void DamageBoss2(Transform boss2) { EnemyBoss2 eb2 = boss2.GetComponent <EnemyBoss2>(); if (eb2 != null) { eb2.TakeDamage(BulletDamage); } }