public override void Intercept() { // Create cling effect. Effect effect = new EffectCling(true); RoomControl.SpawnEntity(effect, position, zPosition); DestroyAndTransform(effect); }
// Stun the monster. public static void ClingEffect(Monster monster, Entity sender, EventArgs args) { 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); 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); } }
private void StabTile(Tile tile) { if (player.IsOnGround) { tile.OnSwordHit(weapon); // Create cling effect. if (!tile.IsDestroyed && tile.ClingWhenStabbed) { Effect clingEffect = new EffectCling(true); Vector2F pos = player.Center + (13 * Directions.ToVector(direction)); player.RoomControl.SpawnEntity(clingEffect, pos); AudioSystem.PlaySound(GameData.SOUND_EFFECT_CLING); } } // Begin the player stab state. player.SwordStabState.Weapon = weapon; player.SwordStabState.ContinueHoldingSword = true; player.BeginState(player.SwordStabState); }
public override void OnCollideTile(Tile tile, bool isInitialCollision) { if (!isReturning && !isHooked && !isLifting) { if (tile.IsSwitchable) { // TODO: Switch with tile. hookedObject = tile; isHooked = true; timer = 0; graphics.PlayAnimation(); } else { BeginReturn(false); } // Create cling effect. Effect effect = new EffectCling(); RoomControl.SpawnEntity(effect, position + Directions.ToVector(direction) * 5.0f, zPosition); AudioSystem.PlaySound(GameData.SOUND_EFFECT_CLING); } }