using System.Text;
using Wonderking.Game.Data.Character;

namespace Wonderking.Packets.Incoming;

[PacketId(OperationCode.CharacterCreation)]
public class CharacterCreationPacket : IPacket
{
    public byte Slot { get; set; }
    public byte Unknown { get; set; }
    public ushort Id { get; set; }

    public string Name { get; set; }
    public byte FirstJob { get; set; }
    public Gender Gender { get; set; }
    public byte Hair { get; set; }
    public byte Eyes { get; set; }
    public byte Shirt { get; set; }
    public byte Pants { get; set; }

    public void Deserialize(byte[] data)
    {
        Slot = data[0];
        Unknown = data[1];
        Id = BitConverter.ToUInt16(data, 2);
        Name = Encoding.ASCII.GetString(data, 4, 20).TrimEnd('\0').TrimEnd('\n').TrimEnd('\0');
        FirstJob = data[24];
        Gender = (Gender)data[25];
        Hair = data[26];
        Eyes = data[27];
        Shirt = data[28];
        Pants = data[29];
    }

    public byte[] Serialize()
    {
        throw new NotSupportedException();
    }
}