LADXHD/InGame/GameObjects/Base/Components/PushableComponent.cs

42 lines
1.1 KiB
C#
Raw Normal View History

2023-12-14 22:21:22 +00:00
using Microsoft.Xna.Framework;
using ProjectZ.InGame.GameObjects.Base.CObjects;
namespace ProjectZ.InGame.GameObjects.Base.Components
{
public class PushableComponent : Component
{
public new static int Index = 13;
public static int Mask = 0x01 << Index;
public enum PushType { Impact, Continues }
public delegate bool PushableTemplate(Vector2 direction, PushType pushType);
public PushableTemplate Push;
public CBox PushableBox;
public double LastPushTime;
public double LastWaitTime;
public float RepelMultiplier = 1f;
public float InertiaCounter;
public int InertiaTime = 0;
public int CooldownTime = 250;
public bool IsActive = true;
public bool RunActivate;
// @HACK: getting repelled by this will have a sound and particle
public bool RepelParticle;
protected PushableComponent() { }
public PushableComponent(CBox rectangle, PushableTemplate push)
{
PushableBox = rectangle;
Push = push;
}
}
}