package org.nieo.seerproject.common.net.info.pet; import lombok.Data; import lombok.experimental.SuperBuilder; import org.nieo.seerproject.common.annotations.FieldDescription; import org.nieo.seerproject.common.annotations.serialize.ArraySerialize; import org.nieo.seerproject.common.annotations.serialize.UInt; import org.nieo.seerproject.common.net.info.pet.skill.SkillInfo; import org.nieo.seerproject.common.net.serialize.ArraySerializeType; import org.nieo.seerproject.common.net.serialize.LengthFieldType; import java.util.ArrayList; import java.util.List; @Data public class PetInfo { @FieldDescription("精灵编号") private @UInt long id; @FieldDescription("名字 默认为全0 但要补齐到16字节") @ArraySerialize(value = ArraySerializeType.FIXED_LENGTH, fixedLength = 16) private byte[] name = new byte[16]; @FieldDescription("个体值") private @UInt long dv; @FieldDescription("性格") private @UInt long nature; @FieldDescription("等级") private @UInt long level; @FieldDescription("当前等级已经获得的经验 2538") private @UInt long exp; @FieldDescription("当前等级所需的经验") private @UInt long lvExp; @FieldDescription("升到下一级的经验") private @UInt long nextLvExp; @FieldDescription("当前生命") private @UInt long hp; @FieldDescription("最大生命") private @UInt long maxHp; @FieldDescription("攻击") private @UInt long attack; @FieldDescription("防御") private @UInt long defence; @FieldDescription("特攻") private @UInt long specialAttack; @FieldDescription("特防") private @UInt long specialDefence; @FieldDescription("速度") private @UInt long speed; @FieldDescription("生命学习力") private @UInt long evHp; @FieldDescription("攻击学习力") private @UInt long evAttack; @FieldDescription("防御学习力") private @UInt long evDefence; @FieldDescription("特攻学习力") private @UInt long evSpecialAttack; @FieldDescription("特防学习力") private @UInt long evSpecialDefense; @FieldDescription("速度学习力") private @UInt long evSpeed; @FieldDescription("技能个数") private @UInt long skillSize; @FieldDescription("32字节 技能信息 必须插入4条skillInfo,若技能信息为空则要赋值成0") @ArraySerialize(value = ArraySerializeType.FIXED_LENGTH, fixedLength = 8) private List skillList; @FieldDescription("捕捉时间") private @UInt long catchTime; @FieldDescription("捕捉地图") private @UInt long catchMap; @FieldDescription("未知默认为0") private @UInt long catchRect; @FieldDescription("捕获等级 默认为0") private @UInt long catchLevel; @FieldDescription("特性列表, 长度在头部以UShort存储") @ArraySerialize(value = ArraySerializeType.LENGTH_FIRST, lengthType = LengthFieldType.UNSIGNED_SHORT) private List effectInfo = new ArrayList<>(); @FieldDescription("皮肤id默认为0") private @UInt long skinID; @FieldDescription("是不是闪") private @UInt long shiny; }