@Override
    public void deserialize(Buffer buf) {
        short flag1 = buf.readUByte();
        enabled = BooleanByteWrapper.getFlag(flag1, 0);
        abandonnedPaddock = BooleanByteWrapper.getFlag(flag1, 1);
        level = buf.readUByte();
        if (level < 0 || level > 255)
            throw new RuntimeException("Forbidden value on level = " + level + ", it doesn't respect the following condition : level < 0 || level > 255");
        expLevelFloor = buf.readDouble();
        if (expLevelFloor < 0)
            throw new RuntimeException("Forbidden value on expLevelFloor = " + expLevelFloor + ", it doesn't respect the following condition : expLevelFloor < 0");
        experience = buf.readDouble();
        if (experience < 0)
            throw new RuntimeException("Forbidden value on experience = " + experience + ", it doesn't respect the following condition : experience < 0");
        expNextLevelFloor = buf.readDouble();
        if (expNextLevelFloor < 0)
            throw new RuntimeException("Forbidden value on expNextLevelFloor = " + expNextLevelFloor + ", it doesn't respect the following condition : expNextLevelFloor < 0");
        creationDate = buf.readInt();
        if (creationDate < 0)
            throw new RuntimeException("Forbidden value on creationDate = " + creationDate + ", it doesn't respect the following condition : creationDate < 0");
    }