Example #1
0
        public override void Intercept()
        {
            // Create cling effect.
            Effect effect = new EffectCling(true);

            RoomControl.SpawnEntity(effect, position, zPosition);
            DestroyAndTransform(effect);
        }
Example #2
0
            // 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);
            }
Example #3
0
            // 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);
            }
        }