public override void Serialize(IDataWriter writer) { writer.WriteVarUhLong(Experience); writer.WriteVarUhLong(ExperienceLevelFloor); writer.WriteVarUhLong(ExperienceNextLevelFloor); writer.WriteVarUhLong(ExperienceBonusLimit); writer.WriteVarUhLong(Kamas); writer.WriteVarUhShort(StatsPoints); writer.WriteVarUhShort(AdditionnalPoints); writer.WriteVarUhShort(SpellsPoints); AlignmentInfos.Serialize(writer); writer.WriteVarUhInt(LifePoints); writer.WriteVarUhInt(MaxLifePoints); writer.WriteVarUhShort(EnergyPoints); writer.WriteVarUhShort(MaxEnergyPoints); writer.WriteVarShort(ActionPointsCurrent); writer.WriteVarShort(MovementPointsCurrent); Initiative.Serialize(writer); Prospecting.Serialize(writer); ActionPoints.Serialize(writer); MovementPoints.Serialize(writer); Strength.Serialize(writer); Vitality.Serialize(writer); Wisdom.Serialize(writer); Chance.Serialize(writer); Agility.Serialize(writer); Intelligence.Serialize(writer); Range.Serialize(writer); SummonableCreaturesBoost.Serialize(writer); Reflect.Serialize(writer); CriticalHit.Serialize(writer); writer.WriteVarUhShort(CriticalHitWeapon); CriticalMiss.Serialize(writer); HealBonus.Serialize(writer); AllDamagesBonus.Serialize(writer); WeaponDamagesBonusPercent.Serialize(writer); DamagesBonusPercent.Serialize(writer); TrapBonus.Serialize(writer); TrapBonusPercent.Serialize(writer); GlyphBonusPercent.Serialize(writer); RuneBonusPercent.Serialize(writer); PermanentDamagePercent.Serialize(writer); TackleBlock.Serialize(writer); TackleEvade.Serialize(writer); PAAttack.Serialize(writer); PMAttack.Serialize(writer); PushDamageBonus.Serialize(writer); CriticalDamageBonus.Serialize(writer); NeutralDamageBonus.Serialize(writer); EarthDamageBonus.Serialize(writer); WaterDamageBonus.Serialize(writer); AirDamageBonus.Serialize(writer); FireDamageBonus.Serialize(writer); DodgePALostProbability.Serialize(writer); DodgePMLostProbability.Serialize(writer); NeutralElementResistPercent.Serialize(writer); EarthElementResistPercent.Serialize(writer); WaterElementResistPercent.Serialize(writer); AirElementResistPercent.Serialize(writer); FireElementResistPercent.Serialize(writer); NeutralElementReduction.Serialize(writer); EarthElementReduction.Serialize(writer); WaterElementReduction.Serialize(writer); AirElementReduction.Serialize(writer); FireElementReduction.Serialize(writer); PushDamageReduction.Serialize(writer); CriticalDamageReduction.Serialize(writer); PvpNeutralElementResistPercent.Serialize(writer); PvpEarthElementResistPercent.Serialize(writer); PvpWaterElementResistPercent.Serialize(writer); PvpAirElementResistPercent.Serialize(writer); PvpFireElementResistPercent.Serialize(writer); PvpNeutralElementReduction.Serialize(writer); PvpEarthElementReduction.Serialize(writer); PvpWaterElementReduction.Serialize(writer); PvpAirElementReduction.Serialize(writer); PvpFireElementReduction.Serialize(writer); MeleeDamageDonePercent.Serialize(writer); MeleeDamageReceivedPercent.Serialize(writer); RangedDamageDonePercent.Serialize(writer); RangedDamageReceivedPercent.Serialize(writer); WeaponDamageDonePercent.Serialize(writer); WeaponDamageReceivedPercent.Serialize(writer); SpellDamageDonePercent.Serialize(writer); SpellDamageReceivedPercent.Serialize(writer); writer.WriteShort((short)SpellModifications.Count); foreach (var x in SpellModifications) { x.Serialize(writer); } writer.WriteInt(ProbationTime); }