public virtual void Deserialize(BigEndianReader reader)
 {
     Experience = reader.ReadDouble();
     ExperienceLevelFloor = reader.ReadDouble();
     ExperienceNextLevelFloor = reader.ReadDouble();
     Kamas = reader.ReadInt();
     StatsPoints = reader.ReadInt();
     SpellsPoints = reader.ReadInt();
     AlignmentInfos = new ActorExtendedAlignmentInformations();
     AlignmentInfos.Deserialize(reader);
     LifePoints = reader.ReadInt();
     MaxLifePoints = reader.ReadInt();
     EnergyPoints = reader.ReadShort();
     MaxEnergyPoints = reader.ReadShort();
     ActionPointsCurrent = reader.ReadShort();
     MovementPointsCurrent = reader.ReadShort();
     Initiative = new CharacterBaseCharacteristic();
     Initiative.Deserialize(reader);
     Prospecting = new CharacterBaseCharacteristic();
     Prospecting.Deserialize(reader);
     ActionPoints = new CharacterBaseCharacteristic();
     ActionPoints.Deserialize(reader);
     MovementPoints = new CharacterBaseCharacteristic();
     MovementPoints.Deserialize(reader);
     Strength = new CharacterBaseCharacteristic();
     Strength.Deserialize(reader);
     Vitality = new CharacterBaseCharacteristic();
     Vitality.Deserialize(reader);
     Wisdom = new CharacterBaseCharacteristic();
     Wisdom.Deserialize(reader);
     Chance = new CharacterBaseCharacteristic();
     Chance.Deserialize(reader);
     Agility = new CharacterBaseCharacteristic();
     Agility.Deserialize(reader);
     Intelligence = new CharacterBaseCharacteristic();
     Intelligence.Deserialize(reader);
     Range = new CharacterBaseCharacteristic();
     Range.Deserialize(reader);
     SummonableCreaturesBoost = new CharacterBaseCharacteristic();
     SummonableCreaturesBoost.Deserialize(reader);
     Reflect = new CharacterBaseCharacteristic();
     Reflect.Deserialize(reader);
     CriticalHit = new CharacterBaseCharacteristic();
     CriticalHit.Deserialize(reader);
     CriticalHitWeapon = reader.ReadShort();
     CriticalMiss = new CharacterBaseCharacteristic();
     CriticalMiss.Deserialize(reader);
     HealBonus = new CharacterBaseCharacteristic();
     HealBonus.Deserialize(reader);
     AllDamagesBonus = new CharacterBaseCharacteristic();
     AllDamagesBonus.Deserialize(reader);
     WeaponDamagesBonusPercent = new CharacterBaseCharacteristic();
     WeaponDamagesBonusPercent.Deserialize(reader);
     DamagesBonusPercent = new CharacterBaseCharacteristic();
     DamagesBonusPercent.Deserialize(reader);
     TrapBonus = new CharacterBaseCharacteristic();
     TrapBonus.Deserialize(reader);
     TrapBonusPercent = new CharacterBaseCharacteristic();
     TrapBonusPercent.Deserialize(reader);
     PermanentDamagePercent = new CharacterBaseCharacteristic();
     PermanentDamagePercent.Deserialize(reader);
     TackleBlock = new CharacterBaseCharacteristic();
     TackleBlock.Deserialize(reader);
     TackleEvade = new CharacterBaseCharacteristic();
     TackleEvade.Deserialize(reader);
     PAAttack = new CharacterBaseCharacteristic();
     PAAttack.Deserialize(reader);
     PMAttack = new CharacterBaseCharacteristic();
     PMAttack.Deserialize(reader);
     PushDamageBonus = new CharacterBaseCharacteristic();
     PushDamageBonus.Deserialize(reader);
     CriticalDamageBonus = new CharacterBaseCharacteristic();
     CriticalDamageBonus.Deserialize(reader);
     NeutralDamageBonus = new CharacterBaseCharacteristic();
     NeutralDamageBonus.Deserialize(reader);
     EarthDamageBonus = new CharacterBaseCharacteristic();
     EarthDamageBonus.Deserialize(reader);
     WaterDamageBonus = new CharacterBaseCharacteristic();
     WaterDamageBonus.Deserialize(reader);
     AirDamageBonus = new CharacterBaseCharacteristic();
     AirDamageBonus.Deserialize(reader);
     FireDamageBonus = new CharacterBaseCharacteristic();
     FireDamageBonus.Deserialize(reader);
     DodgePALostProbability = new CharacterBaseCharacteristic();
     DodgePALostProbability.Deserialize(reader);
     DodgePMLostProbability = new CharacterBaseCharacteristic();
     DodgePMLostProbability.Deserialize(reader);
     NeutralElementResistPercent = new CharacterBaseCharacteristic();
     NeutralElementResistPercent.Deserialize(reader);
     EarthElementResistPercent = new CharacterBaseCharacteristic();
     EarthElementResistPercent.Deserialize(reader);
     WaterElementResistPercent = new CharacterBaseCharacteristic();
     WaterElementResistPercent.Deserialize(reader);
     AirElementResistPercent = new CharacterBaseCharacteristic();
     AirElementResistPercent.Deserialize(reader);
     FireElementResistPercent = new CharacterBaseCharacteristic();
     FireElementResistPercent.Deserialize(reader);
     NeutralElementReduction = new CharacterBaseCharacteristic();
     NeutralElementReduction.Deserialize(reader);
     EarthElementReduction = new CharacterBaseCharacteristic();
     EarthElementReduction.Deserialize(reader);
     WaterElementReduction = new CharacterBaseCharacteristic();
     WaterElementReduction.Deserialize(reader);
     AirElementReduction = new CharacterBaseCharacteristic();
     AirElementReduction.Deserialize(reader);
     FireElementReduction = new CharacterBaseCharacteristic();
     FireElementReduction.Deserialize(reader);
     PushDamageReduction = new CharacterBaseCharacteristic();
     PushDamageReduction.Deserialize(reader);
     CriticalDamageReduction = new CharacterBaseCharacteristic();
     CriticalDamageReduction.Deserialize(reader);
     PvpNeutralElementResistPercent = new CharacterBaseCharacteristic();
     PvpNeutralElementResistPercent.Deserialize(reader);
     PvpEarthElementResistPercent = new CharacterBaseCharacteristic();
     PvpEarthElementResistPercent.Deserialize(reader);
     PvpWaterElementResistPercent = new CharacterBaseCharacteristic();
     PvpWaterElementResistPercent.Deserialize(reader);
     PvpAirElementResistPercent = new CharacterBaseCharacteristic();
     PvpAirElementResistPercent.Deserialize(reader);
     PvpFireElementResistPercent = new CharacterBaseCharacteristic();
     PvpFireElementResistPercent.Deserialize(reader);
     PvpNeutralElementReduction = new CharacterBaseCharacteristic();
     PvpNeutralElementReduction.Deserialize(reader);
     PvpEarthElementReduction = new CharacterBaseCharacteristic();
     PvpEarthElementReduction.Deserialize(reader);
     PvpWaterElementReduction = new CharacterBaseCharacteristic();
     PvpWaterElementReduction.Deserialize(reader);
     PvpAirElementReduction = new CharacterBaseCharacteristic();
     PvpAirElementReduction.Deserialize(reader);
     PvpFireElementReduction = new CharacterBaseCharacteristic();
     PvpFireElementReduction.Deserialize(reader);
     var limit = reader.ReadUShort();
     SpellModifications = new CharacterSpellModification[limit];
     for (int i = 0; i < limit; i++)
     {
         SpellModifications[i] = new CharacterSpellModification();
         SpellModifications[i].Deserialize(reader);
     }
 }
 public CharacterCharacteristicsInformations(double experience, double experienceLevelFloor, double experienceNextLevelFloor, int kamas, int statsPoints, int spellsPoints, ActorExtendedAlignmentInformations alignmentInfos, int lifePoints, int maxLifePoints, short energyPoints, short maxEnergyPoints, short actionPointsCurrent, short movementPointsCurrent, CharacterBaseCharacteristic initiative, CharacterBaseCharacteristic prospecting, CharacterBaseCharacteristic actionPoints, CharacterBaseCharacteristic movementPoints, CharacterBaseCharacteristic strength, CharacterBaseCharacteristic vitality, CharacterBaseCharacteristic wisdom, CharacterBaseCharacteristic chance, CharacterBaseCharacteristic agility, CharacterBaseCharacteristic intelligence, CharacterBaseCharacteristic range, CharacterBaseCharacteristic summonableCreaturesBoost, CharacterBaseCharacteristic reflect, CharacterBaseCharacteristic criticalHit, short criticalHitWeapon, CharacterBaseCharacteristic criticalMiss, CharacterBaseCharacteristic healBonus, CharacterBaseCharacteristic allDamagesBonus, CharacterBaseCharacteristic weaponDamagesBonusPercent, CharacterBaseCharacteristic damagesBonusPercent, CharacterBaseCharacteristic trapBonus, CharacterBaseCharacteristic trapBonusPercent, CharacterBaseCharacteristic permanentDamagePercent, CharacterBaseCharacteristic tackleBlock, CharacterBaseCharacteristic tackleEvade, CharacterBaseCharacteristic PAAttack, CharacterBaseCharacteristic PMAttack, CharacterBaseCharacteristic pushDamageBonus, CharacterBaseCharacteristic criticalDamageBonus, CharacterBaseCharacteristic neutralDamageBonus, CharacterBaseCharacteristic earthDamageBonus, CharacterBaseCharacteristic waterDamageBonus, CharacterBaseCharacteristic airDamageBonus, CharacterBaseCharacteristic fireDamageBonus, CharacterBaseCharacteristic dodgePALostProbability, CharacterBaseCharacteristic dodgePMLostProbability, CharacterBaseCharacteristic neutralElementResistPercent, CharacterBaseCharacteristic earthElementResistPercent, CharacterBaseCharacteristic waterElementResistPercent, CharacterBaseCharacteristic airElementResistPercent, CharacterBaseCharacteristic fireElementResistPercent, CharacterBaseCharacteristic neutralElementReduction, CharacterBaseCharacteristic earthElementReduction, CharacterBaseCharacteristic waterElementReduction, CharacterBaseCharacteristic airElementReduction, CharacterBaseCharacteristic fireElementReduction, CharacterBaseCharacteristic pushDamageReduction, CharacterBaseCharacteristic criticalDamageReduction, CharacterBaseCharacteristic pvpNeutralElementResistPercent, CharacterBaseCharacteristic pvpEarthElementResistPercent, CharacterBaseCharacteristic pvpWaterElementResistPercent, CharacterBaseCharacteristic pvpAirElementResistPercent, CharacterBaseCharacteristic pvpFireElementResistPercent, CharacterBaseCharacteristic pvpNeutralElementReduction, CharacterBaseCharacteristic pvpEarthElementReduction, CharacterBaseCharacteristic pvpWaterElementReduction, CharacterBaseCharacteristic pvpAirElementReduction, CharacterBaseCharacteristic pvpFireElementReduction, CharacterSpellModification[] spellModifications)
 {
     Experience = experience;
     ExperienceLevelFloor = experienceLevelFloor;
     ExperienceNextLevelFloor = experienceNextLevelFloor;
     Kamas = kamas;
     StatsPoints = statsPoints;
     SpellsPoints = spellsPoints;
     AlignmentInfos = alignmentInfos;
     LifePoints = lifePoints;
     MaxLifePoints = maxLifePoints;
     EnergyPoints = energyPoints;
     MaxEnergyPoints = maxEnergyPoints;
     ActionPointsCurrent = actionPointsCurrent;
     MovementPointsCurrent = movementPointsCurrent;
     Initiative = initiative;
     Prospecting = prospecting;
     ActionPoints = actionPoints;
     MovementPoints = movementPoints;
     Strength = strength;
     Vitality = vitality;
     Wisdom = wisdom;
     Chance = chance;
     Agility = agility;
     Intelligence = intelligence;
     Range = range;
     SummonableCreaturesBoost = summonableCreaturesBoost;
     Reflect = reflect;
     CriticalHit = criticalHit;
     CriticalHitWeapon = criticalHitWeapon;
     CriticalMiss = criticalMiss;
     HealBonus = healBonus;
     AllDamagesBonus = allDamagesBonus;
     WeaponDamagesBonusPercent = weaponDamagesBonusPercent;
     DamagesBonusPercent = damagesBonusPercent;
     TrapBonus = trapBonus;
     TrapBonusPercent = trapBonusPercent;
     PermanentDamagePercent = permanentDamagePercent;
     TackleBlock = tackleBlock;
     TackleEvade = tackleEvade;
     this.PAAttack = PAAttack;
     this.PMAttack = PMAttack;
     PushDamageBonus = pushDamageBonus;
     CriticalDamageBonus = criticalDamageBonus;
     NeutralDamageBonus = neutralDamageBonus;
     EarthDamageBonus = earthDamageBonus;
     WaterDamageBonus = waterDamageBonus;
     AirDamageBonus = airDamageBonus;
     FireDamageBonus = fireDamageBonus;
     DodgePALostProbability = dodgePALostProbability;
     DodgePMLostProbability = dodgePMLostProbability;
     NeutralElementResistPercent = neutralElementResistPercent;
     EarthElementResistPercent = earthElementResistPercent;
     WaterElementResistPercent = waterElementResistPercent;
     AirElementResistPercent = airElementResistPercent;
     FireElementResistPercent = fireElementResistPercent;
     NeutralElementReduction = neutralElementReduction;
     EarthElementReduction = earthElementReduction;
     WaterElementReduction = waterElementReduction;
     AirElementReduction = airElementReduction;
     FireElementReduction = fireElementReduction;
     PushDamageReduction = pushDamageReduction;
     CriticalDamageReduction = criticalDamageReduction;
     PvpNeutralElementResistPercent = pvpNeutralElementResistPercent;
     PvpEarthElementResistPercent = pvpEarthElementResistPercent;
     PvpWaterElementResistPercent = pvpWaterElementResistPercent;
     PvpAirElementResistPercent = pvpAirElementResistPercent;
     PvpFireElementResistPercent = pvpFireElementResistPercent;
     PvpNeutralElementReduction = pvpNeutralElementReduction;
     PvpEarthElementReduction = pvpEarthElementReduction;
     PvpWaterElementReduction = pvpWaterElementReduction;
     PvpAirElementReduction = pvpAirElementReduction;
     PvpFireElementReduction = pvpFireElementReduction;
     SpellModifications = spellModifications;
 }