Ejemplo n.º 1
0
        public static void HoldableOnPipeExit(Entity entity, MarioClearPipeInteraction interaction)
        {
            Holdable holdable = entity?.Get <Holdable>();

            if (holdable != null && entity.Scene != null && !holdable.IsHeld)
            {
                Vector2 speed = Vector2.Zero;

                switch (interaction.Direction)
                {
                case Direction.Left:
                    speed = new Vector2(-1.0f, 0.1f);
                    break;

                case Direction.Right:
                    speed = new Vector2(1.0f, -0.1f);
                    break;

                case Direction.Up:
                    speed = new Vector2(0, -1.0f);
                    break;

                case Direction.Down:
                    speed = new Vector2(0, 1.0f);
                    break;

                default:
                    break;
                }

                holdable.Release(speed);
            }
        }
Ejemplo n.º 2
0
        public static void HoldableOnPipeEnter(Entity entity, MarioClearPipeInteraction interaction)
        {
            Holdable holdable = entity?.Get <Holdable>();

            if (holdable != null)
            {
                // Reset speeds and remove holder
                holdable.Release(Vector2.Zero);
            }
        }