void OnEnemyVsBulletExplosionCollisionCollisionOccurred (Entities.Enemy enemy, Entities.BulletExplosion bulletExplosion) { if (bulletExplosion.TeamIndex != 1) { enemy.TakeDamage(bulletExplosion, bulletExplosion.DamageToDeal, bulletExplosion.Owner); // don't destroy the explosion, it's aoe and may hit multiple enemies. var direction = Vector3.Right; if (bulletExplosion.X != enemy.X || bulletExplosion.Y != enemy.Y) { var enemyToBullet = enemy.Position - bulletExplosion.Position; enemyToBullet.Normalize(); enemy.Velocity += enemyToBullet * bulletExplosion.ExplosionForce; } } }
void OnPlayerBaseVsBulletExplosionCollisionCollisionOccurred (Entities.PlayerBase playerBase, Entities.BulletExplosion bulletExplosion) { if (bulletExplosion.TeamIndex != 0) { playerBase.TakeDamage(bulletExplosion.DamageToDeal); } }
void OnPlayerVsBulletExplosionCollisionCollisionOccurred (Entities.Player player, Entities.BulletExplosion bulletExplosion) { if (bulletExplosion.TeamIndex != 0) { player.TakeDamage(bulletExplosion.DamageToDeal * CurrentMultipliers.EffectiveDamageMultiplier); var direction = Vector3.Right; if (bulletExplosion.X != player.X || bulletExplosion.Y != player.Y) { var enemyToBullet = player.Position - bulletExplosion.Position; enemyToBullet.Normalize(); player.Velocity += enemyToBullet * bulletExplosion.ExplosionForce; } } }