using System.Runtime.InteropServices;
using Nexus.GameOffsets.Natives;
namespace Nexus.GameOffsets.Components;
/// Buffs component — active status effects.
[StructLayout(LayoutKind.Explicit, Size = 0x178)]
public struct Buffs
{
[FieldOffset(0x00)] public ComponentHeader Header;
/// StdVector of StatusEffectStruct pointers.
[FieldOffset(0x160)] public StdVector StatusEffects;
}
/// A single status effect (buff/debuff).
[StructLayout(LayoutKind.Explicit, Size = 0x40)]
public struct StatusEffectStruct
{
[FieldOffset(0x00)] public nint NamePtr;
[FieldOffset(0x10)] public float Duration;
[FieldOffset(0x14)] public float Timer;
[FieldOffset(0x18)] public int Charges;
[FieldOffset(0x1C)] public short FlaskSlot;
}