using System.Runtime.InteropServices;

namespace Wonderking.Game.Data.Item;

[StructLayout(LayoutKind.Explicit, Size = 64)]
public struct ElementalStats
{
    [FieldOffset(0), MarshalAs(UnmanagedType.I4)]
    public int MinimumFireDamage;

    [FieldOffset(4), MarshalAs(UnmanagedType.I4)]
    public int MinimumWaterDamage;

    [FieldOffset(8), MarshalAs(UnmanagedType.I4)]
    public int MinimumDarkDamage;

    [FieldOffset(12), MarshalAs(UnmanagedType.I4)]
    public int MinimumHolyDamage;

    [FieldOffset(16), MarshalAs(UnmanagedType.I4)]
    public int MaximumFireDamage;

    [FieldOffset(20), MarshalAs(UnmanagedType.I4)]
    public int MaximumWaterDamage;

    [FieldOffset(24), MarshalAs(UnmanagedType.I4)]
    public int MaximumDarkDamage;

    [FieldOffset(28), MarshalAs(UnmanagedType.I4)]
    public int MaximumHolyDamage;

    [FieldOffset(32), MarshalAs(UnmanagedType.U4)]
    public uint ElementFire;

    [FieldOffset(36), MarshalAs(UnmanagedType.U4)]
    public uint ElementWater;

    [FieldOffset(40), MarshalAs(UnmanagedType.U4)]
    public uint ElementDark;

    [FieldOffset(44), MarshalAs(UnmanagedType.U4)]
    public uint ElementHoly;

    [FieldOffset(48), MarshalAs(UnmanagedType.I4)]
    public int FireResistance;

    [FieldOffset(52), MarshalAs(UnmanagedType.I4)]
    public int WaterResistance;

    [FieldOffset(56), MarshalAs(UnmanagedType.I4)]
    public int DarkResistance;

    [FieldOffset(60), MarshalAs(UnmanagedType.I4)]
    public int HolyResistance;
}