poe2-bot/src/Roboto.Core/Actions.cs
2026-03-06 00:38:30 -05:00

27 lines
1 KiB
C#

using System.Numerics;
namespace Roboto.Core;
public enum ClickType { Left, Right, Middle }
public enum KeyActionType { Press, Down, Up }
public abstract record BotAction(int Priority);
public record MoveAction(int Priority, Vector2 Direction) : BotAction(Priority)
{
/// <summary>Normalized movement direction in world space.</summary>
public Vector2 Direction { get; init; } = Direction;
}
public record ClickAction(int Priority, Vector2 ScreenPosition, ClickType Type = ClickType.Left) : BotAction(Priority);
public record KeyAction(int Priority, ushort ScanCode, KeyActionType Type = KeyActionType.Press) : BotAction(Priority);
public record CastAction(int Priority, ushort SkillScanCode,
Vector2? TargetScreenPos = null, uint? TargetEntityId = null) : BotAction(Priority);
public record FlaskAction(int Priority, ushort FlaskScanCode) : BotAction(Priority);
public record ChatAction(int Priority, string Message) : BotAction(Priority);
public record WaitAction(int Priority, int DurationMs) : BotAction(Priority);