Пример #1
0
        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;
                }
            }
        }
Пример #2
0
 void OnPlayerBaseVsBulletExplosionCollisionCollisionOccurred (Entities.PlayerBase playerBase, Entities.BulletExplosion bulletExplosion) 
 {
     if (bulletExplosion.TeamIndex != 0)
     {
         playerBase.TakeDamage(bulletExplosion.DamageToDeal);
     }
 }
Пример #3
0
        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;
                }
            }
        }