// Bump the monster and sender.
            public static void Parry(Monster monster, Entity sender, EventArgs args)
            {
                monster.Bump(sender.Center);
                Unit unitSender = sender as Unit;

                if (unitSender != null && !unitSender.IsBeingKnockedBack)
                {
                    unitSender.Bump(monster.Center);
                    AudioSystem.PlaySound(GameData.SOUND_EFFECT_CLING);
                }
            }
            // Bump the monster and sender.
            public static void ParryWithClingEffect(Monster monster, Entity sender, EventArgs args)
            {
                monster.Bump(sender.Center);
                Unit unitSender = sender as Unit;

                if (unitSender != null && !unitSender.IsBeingKnockedBack && !monster.IsBeingKnockedBack)
                {
                    unitSender.Bump(monster.Center);
                    AudioSystem.PlaySound(GameData.SOUND_EFFECT_CLING);

                    Effect   effect    = new EffectCling();
                    Vector2F effectPos = (monster.Center + sender.Center) * 0.5f;
                    if (args is InteractionArgs)
                    {
                        effectPos = (args as InteractionArgs).ContactPoint;
                    }
                    monster.RoomControl.SpawnEntity(effect, effectPos);
                }
            }
            // Bump the monster and sender.
            public static void ParryWithClingEffect(Monster monster, Entity sender, EventArgs args)
            {
                monster.Bump(sender.Center);
                Unit unitSender = sender as Unit;

                if (unitSender != null && !unitSender.IsBeingKnockedBack && !monster.IsBeingKnockedBack) {
                    unitSender.Bump(monster.Center);
                    AudioSystem.PlaySound(GameData.SOUND_EFFECT_CLING);

                    Effect effect = new EffectCling();
                    Vector2F effectPos = (monster.Center + sender.Center) * 0.5f;
                    if (args is InteractionArgs)
                        effectPos = (args as InteractionArgs).ContactPoint;
                    monster.RoomControl.SpawnEntity(effect, effectPos);
                }
            }
            // Bump the monster and sender.
            public static void Parry(Monster monster, Entity sender, EventArgs args)
            {
                monster.Bump(sender.Center);
                Unit unitSender = sender as Unit;

                if (unitSender != null && !unitSender.IsBeingKnockedBack) {
                    unitSender.Bump(monster.Center);
                    AudioSystem.PlaySound(GameData.SOUND_EFFECT_CLING);
                }
            }
 // Bump the monster.
 public static void Bump(Monster monster, Entity sender, EventArgs args)
 {
     AudioSystem.PlaySound(GameData.SOUND_BOMB_BOUNCE);
     monster.Bump(sender.Center);
 }
 // Bump the monster.
 public static void Bump(Monster monster, Entity sender, EventArgs args)
 {
     AudioSystem.PlaySound(GameData.SOUND_BOMB_BOUNCE);
     monster.Bump(sender.Center);
 }