Example #1
0
 public virtual void Deserialize(IReader reader)
 {
     modificationType = reader.ReadSByte();
     spellId          = reader.ReadVarUhShort();
     value            = new Types.CharacterBaseCharacteristic();
     value.Deserialize(reader);
 }
Example #2
0
 public virtual void Deserialize(IDataReader reader)
 {
     modificationType = reader.ReadSByte();
     spellId          = reader.ReadVarShort();
     if (spellId < 0)
     {
         throw new Exception("Forbidden value on spellId = " + spellId + ", it doesn't respect the following condition : spellId < 0");
     }
     value = new Types.CharacterBaseCharacteristic();
     value.Deserialize(reader);
 }
 public virtual void Deserialize(IDataReader reader)
 {
     modificationType = reader.ReadSByte();
     if (modificationType < 0)
         throw new Exception("Forbidden value on modificationType = " + modificationType + ", it doesn't respect the following condition : modificationType < 0");
     spellId = reader.ReadShort();
     if (spellId < 0)
         throw new Exception("Forbidden value on spellId = " + spellId + ", it doesn't respect the following condition : spellId < 0");
     value = new Types.CharacterBaseCharacteristic();
     value.Deserialize(reader);
 }
 public virtual void Deserialize(IDataReader reader)
 {
     experience = reader.ReadDouble();
     if (experience < 0)
         throw new Exception("Forbidden value on experience = " + experience + ", it doesn't respect the following condition : experience < 0");
     experienceLevelFloor = reader.ReadDouble();
     if (experienceLevelFloor < 0)
         throw new Exception("Forbidden value on experienceLevelFloor = " + experienceLevelFloor + ", it doesn't respect the following condition : experienceLevelFloor < 0");
     experienceNextLevelFloor = reader.ReadDouble();
     if (experienceNextLevelFloor < 0)
         throw new Exception("Forbidden value on experienceNextLevelFloor = " + experienceNextLevelFloor + ", it doesn't respect the following condition : experienceNextLevelFloor < 0");
     kamas = reader.ReadInt();
     if (kamas < 0)
         throw new Exception("Forbidden value on kamas = " + kamas + ", it doesn't respect the following condition : kamas < 0");
     statsPoints = reader.ReadInt();
     if (statsPoints < 0)
         throw new Exception("Forbidden value on statsPoints = " + statsPoints + ", it doesn't respect the following condition : statsPoints < 0");
     spellsPoints = reader.ReadInt();
     if (spellsPoints < 0)
         throw new Exception("Forbidden value on spellsPoints = " + spellsPoints + ", it doesn't respect the following condition : spellsPoints < 0");
     alignmentInfos = new Types.ActorExtendedAlignmentInformations();
     alignmentInfos.Deserialize(reader);
     lifePoints = reader.ReadInt();
     if (lifePoints < 0)
         throw new Exception("Forbidden value on lifePoints = " + lifePoints + ", it doesn't respect the following condition : lifePoints < 0");
     maxLifePoints = reader.ReadInt();
     if (maxLifePoints < 0)
         throw new Exception("Forbidden value on maxLifePoints = " + maxLifePoints + ", it doesn't respect the following condition : maxLifePoints < 0");
     energyPoints = reader.ReadShort();
     if (energyPoints < 0)
         throw new Exception("Forbidden value on energyPoints = " + energyPoints + ", it doesn't respect the following condition : energyPoints < 0");
     maxEnergyPoints = reader.ReadShort();
     if (maxEnergyPoints < 0)
         throw new Exception("Forbidden value on maxEnergyPoints = " + maxEnergyPoints + ", it doesn't respect the following condition : maxEnergyPoints < 0");
     actionPointsCurrent = reader.ReadShort();
     movementPointsCurrent = reader.ReadShort();
     initiative = new Types.CharacterBaseCharacteristic();
     initiative.Deserialize(reader);
     prospecting = new Types.CharacterBaseCharacteristic();
     prospecting.Deserialize(reader);
     actionPoints = new Types.CharacterBaseCharacteristic();
     actionPoints.Deserialize(reader);
     movementPoints = new Types.CharacterBaseCharacteristic();
     movementPoints.Deserialize(reader);
     strength = new Types.CharacterBaseCharacteristic();
     strength.Deserialize(reader);
     vitality = new Types.CharacterBaseCharacteristic();
     vitality.Deserialize(reader);
     wisdom = new Types.CharacterBaseCharacteristic();
     wisdom.Deserialize(reader);
     chance = new Types.CharacterBaseCharacteristic();
     chance.Deserialize(reader);
     agility = new Types.CharacterBaseCharacteristic();
     agility.Deserialize(reader);
     intelligence = new Types.CharacterBaseCharacteristic();
     intelligence.Deserialize(reader);
     range = new Types.CharacterBaseCharacteristic();
     range.Deserialize(reader);
     summonableCreaturesBoost = new Types.CharacterBaseCharacteristic();
     summonableCreaturesBoost.Deserialize(reader);
     reflect = new Types.CharacterBaseCharacteristic();
     reflect.Deserialize(reader);
     criticalHit = new Types.CharacterBaseCharacteristic();
     criticalHit.Deserialize(reader);
     criticalHitWeapon = reader.ReadShort();
     if (criticalHitWeapon < 0)
         throw new Exception("Forbidden value on criticalHitWeapon = " + criticalHitWeapon + ", it doesn't respect the following condition : criticalHitWeapon < 0");
     criticalMiss = new Types.CharacterBaseCharacteristic();
     criticalMiss.Deserialize(reader);
     healBonus = new Types.CharacterBaseCharacteristic();
     healBonus.Deserialize(reader);
     allDamagesBonus = new Types.CharacterBaseCharacteristic();
     allDamagesBonus.Deserialize(reader);
     weaponDamagesBonusPercent = new Types.CharacterBaseCharacteristic();
     weaponDamagesBonusPercent.Deserialize(reader);
     damagesBonusPercent = new Types.CharacterBaseCharacteristic();
     damagesBonusPercent.Deserialize(reader);
     trapBonus = new Types.CharacterBaseCharacteristic();
     trapBonus.Deserialize(reader);
     trapBonusPercent = new Types.CharacterBaseCharacteristic();
     trapBonusPercent.Deserialize(reader);
     permanentDamagePercent = new Types.CharacterBaseCharacteristic();
     permanentDamagePercent.Deserialize(reader);
     tackleBlock = new Types.CharacterBaseCharacteristic();
     tackleBlock.Deserialize(reader);
     tackleEvade = new Types.CharacterBaseCharacteristic();
     tackleEvade.Deserialize(reader);
     PAAttack = new Types.CharacterBaseCharacteristic();
     PAAttack.Deserialize(reader);
     PMAttack = new Types.CharacterBaseCharacteristic();
     PMAttack.Deserialize(reader);
     pushDamageBonus = new Types.CharacterBaseCharacteristic();
     pushDamageBonus.Deserialize(reader);
     criticalDamageBonus = new Types.CharacterBaseCharacteristic();
     criticalDamageBonus.Deserialize(reader);
     neutralDamageBonus = new Types.CharacterBaseCharacteristic();
     neutralDamageBonus.Deserialize(reader);
     earthDamageBonus = new Types.CharacterBaseCharacteristic();
     earthDamageBonus.Deserialize(reader);
     waterDamageBonus = new Types.CharacterBaseCharacteristic();
     waterDamageBonus.Deserialize(reader);
     airDamageBonus = new Types.CharacterBaseCharacteristic();
     airDamageBonus.Deserialize(reader);
     fireDamageBonus = new Types.CharacterBaseCharacteristic();
     fireDamageBonus.Deserialize(reader);
     dodgePALostProbability = new Types.CharacterBaseCharacteristic();
     dodgePALostProbability.Deserialize(reader);
     dodgePMLostProbability = new Types.CharacterBaseCharacteristic();
     dodgePMLostProbability.Deserialize(reader);
     neutralElementResistPercent = new Types.CharacterBaseCharacteristic();
     neutralElementResistPercent.Deserialize(reader);
     earthElementResistPercent = new Types.CharacterBaseCharacteristic();
     earthElementResistPercent.Deserialize(reader);
     waterElementResistPercent = new Types.CharacterBaseCharacteristic();
     waterElementResistPercent.Deserialize(reader);
     airElementResistPercent = new Types.CharacterBaseCharacteristic();
     airElementResistPercent.Deserialize(reader);
     fireElementResistPercent = new Types.CharacterBaseCharacteristic();
     fireElementResistPercent.Deserialize(reader);
     neutralElementReduction = new Types.CharacterBaseCharacteristic();
     neutralElementReduction.Deserialize(reader);
     earthElementReduction = new Types.CharacterBaseCharacteristic();
     earthElementReduction.Deserialize(reader);
     waterElementReduction = new Types.CharacterBaseCharacteristic();
     waterElementReduction.Deserialize(reader);
     airElementReduction = new Types.CharacterBaseCharacteristic();
     airElementReduction.Deserialize(reader);
     fireElementReduction = new Types.CharacterBaseCharacteristic();
     fireElementReduction.Deserialize(reader);
     pushDamageReduction = new Types.CharacterBaseCharacteristic();
     pushDamageReduction.Deserialize(reader);
     criticalDamageReduction = new Types.CharacterBaseCharacteristic();
     criticalDamageReduction.Deserialize(reader);
     pvpNeutralElementResistPercent = new Types.CharacterBaseCharacteristic();
     pvpNeutralElementResistPercent.Deserialize(reader);
     pvpEarthElementResistPercent = new Types.CharacterBaseCharacteristic();
     pvpEarthElementResistPercent.Deserialize(reader);
     pvpWaterElementResistPercent = new Types.CharacterBaseCharacteristic();
     pvpWaterElementResistPercent.Deserialize(reader);
     pvpAirElementResistPercent = new Types.CharacterBaseCharacteristic();
     pvpAirElementResistPercent.Deserialize(reader);
     pvpFireElementResistPercent = new Types.CharacterBaseCharacteristic();
     pvpFireElementResistPercent.Deserialize(reader);
     pvpNeutralElementReduction = new Types.CharacterBaseCharacteristic();
     pvpNeutralElementReduction.Deserialize(reader);
     pvpEarthElementReduction = new Types.CharacterBaseCharacteristic();
     pvpEarthElementReduction.Deserialize(reader);
     pvpWaterElementReduction = new Types.CharacterBaseCharacteristic();
     pvpWaterElementReduction.Deserialize(reader);
     pvpAirElementReduction = new Types.CharacterBaseCharacteristic();
     pvpAirElementReduction.Deserialize(reader);
     pvpFireElementReduction = new Types.CharacterBaseCharacteristic();
     pvpFireElementReduction.Deserialize(reader);
     var limit = reader.ReadUShort();
     spellModifications = new Types.CharacterSpellModification[limit];
     for (int i = 0; i < limit; i++)
     {
          spellModifications[i] = new Types.CharacterSpellModification();
          spellModifications[i].Deserialize(reader);
     }
 }
        public virtual void Deserialize(BigEndianReader reader)
        {
            experience = reader.ReadDouble();
            if (experience < 0)
            {
                throw new Exception("Forbidden value on experience = " + experience + ", it doesn't respect the following condition : experience < 0");
            }
            experienceLevelFloor = reader.ReadDouble();
            if (experienceLevelFloor < 0)
            {
                throw new Exception("Forbidden value on experienceLevelFloor = " + experienceLevelFloor + ", it doesn't respect the following condition : experienceLevelFloor < 0");
            }
            experienceNextLevelFloor = reader.ReadDouble();
            if (experienceNextLevelFloor < 0)
            {
                throw new Exception("Forbidden value on experienceNextLevelFloor = " + experienceNextLevelFloor + ", it doesn't respect the following condition : experienceNextLevelFloor < 0");
            }
            kamas = reader.ReadInt();
            if (kamas < 0)
            {
                throw new Exception("Forbidden value on kamas = " + kamas + ", it doesn't respect the following condition : kamas < 0");
            }
            statsPoints = reader.ReadInt();
            if (statsPoints < 0)
            {
                throw new Exception("Forbidden value on statsPoints = " + statsPoints + ", it doesn't respect the following condition : statsPoints < 0");
            }
            spellsPoints = reader.ReadInt();
            if (spellsPoints < 0)
            {
                throw new Exception("Forbidden value on spellsPoints = " + spellsPoints + ", it doesn't respect the following condition : spellsPoints < 0");
            }
            alignmentInfos = new Types.ActorExtendedAlignmentInformations();
            alignmentInfos.Deserialize(reader);
            lifePoints = reader.ReadInt();
            if (lifePoints < 0)
            {
                throw new Exception("Forbidden value on lifePoints = " + lifePoints + ", it doesn't respect the following condition : lifePoints < 0");
            }
            maxLifePoints = reader.ReadInt();
            if (maxLifePoints < 0)
            {
                throw new Exception("Forbidden value on maxLifePoints = " + maxLifePoints + ", it doesn't respect the following condition : maxLifePoints < 0");
            }
            energyPoints = reader.ReadShort();
            if (energyPoints < 0)
            {
                throw new Exception("Forbidden value on energyPoints = " + energyPoints + ", it doesn't respect the following condition : energyPoints < 0");
            }
            maxEnergyPoints = reader.ReadShort();
            if (maxEnergyPoints < 0)
            {
                throw new Exception("Forbidden value on maxEnergyPoints = " + maxEnergyPoints + ", it doesn't respect the following condition : maxEnergyPoints < 0");
            }
            actionPointsCurrent   = reader.ReadShort();
            movementPointsCurrent = reader.ReadShort();
            initiative            = new Types.CharacterBaseCharacteristic();
            initiative.Deserialize(reader);
            prospecting = new Types.CharacterBaseCharacteristic();
            prospecting.Deserialize(reader);
            actionPoints = new Types.CharacterBaseCharacteristic();
            actionPoints.Deserialize(reader);
            movementPoints = new Types.CharacterBaseCharacteristic();
            movementPoints.Deserialize(reader);
            strength = new Types.CharacterBaseCharacteristic();
            strength.Deserialize(reader);
            vitality = new Types.CharacterBaseCharacteristic();
            vitality.Deserialize(reader);
            wisdom = new Types.CharacterBaseCharacteristic();
            wisdom.Deserialize(reader);
            chance = new Types.CharacterBaseCharacteristic();
            chance.Deserialize(reader);
            agility = new Types.CharacterBaseCharacteristic();
            agility.Deserialize(reader);
            intelligence = new Types.CharacterBaseCharacteristic();
            intelligence.Deserialize(reader);
            range = new Types.CharacterBaseCharacteristic();
            range.Deserialize(reader);
            summonableCreaturesBoost = new Types.CharacterBaseCharacteristic();
            summonableCreaturesBoost.Deserialize(reader);
            reflect = new Types.CharacterBaseCharacteristic();
            reflect.Deserialize(reader);
            criticalHit = new Types.CharacterBaseCharacteristic();
            criticalHit.Deserialize(reader);
            criticalHitWeapon = reader.ReadShort();
            if (criticalHitWeapon < 0)
            {
                throw new Exception("Forbidden value on criticalHitWeapon = " + criticalHitWeapon + ", it doesn't respect the following condition : criticalHitWeapon < 0");
            }
            criticalMiss = new Types.CharacterBaseCharacteristic();
            criticalMiss.Deserialize(reader);
            healBonus = new Types.CharacterBaseCharacteristic();
            healBonus.Deserialize(reader);
            allDamagesBonus = new Types.CharacterBaseCharacteristic();
            allDamagesBonus.Deserialize(reader);
            weaponDamagesBonusPercent = new Types.CharacterBaseCharacteristic();
            weaponDamagesBonusPercent.Deserialize(reader);
            damagesBonusPercent = new Types.CharacterBaseCharacteristic();
            damagesBonusPercent.Deserialize(reader);
            trapBonus = new Types.CharacterBaseCharacteristic();
            trapBonus.Deserialize(reader);
            trapBonusPercent = new Types.CharacterBaseCharacteristic();
            trapBonusPercent.Deserialize(reader);
            permanentDamagePercent = new Types.CharacterBaseCharacteristic();
            permanentDamagePercent.Deserialize(reader);
            tackleBlock = new Types.CharacterBaseCharacteristic();
            tackleBlock.Deserialize(reader);
            tackleEvade = new Types.CharacterBaseCharacteristic();
            tackleEvade.Deserialize(reader);
            PAAttack = new Types.CharacterBaseCharacteristic();
            PAAttack.Deserialize(reader);
            PMAttack = new Types.CharacterBaseCharacteristic();
            PMAttack.Deserialize(reader);
            pushDamageBonus = new Types.CharacterBaseCharacteristic();
            pushDamageBonus.Deserialize(reader);
            criticalDamageBonus = new Types.CharacterBaseCharacteristic();
            criticalDamageBonus.Deserialize(reader);
            neutralDamageBonus = new Types.CharacterBaseCharacteristic();
            neutralDamageBonus.Deserialize(reader);
            earthDamageBonus = new Types.CharacterBaseCharacteristic();
            earthDamageBonus.Deserialize(reader);
            waterDamageBonus = new Types.CharacterBaseCharacteristic();
            waterDamageBonus.Deserialize(reader);
            airDamageBonus = new Types.CharacterBaseCharacteristic();
            airDamageBonus.Deserialize(reader);
            fireDamageBonus = new Types.CharacterBaseCharacteristic();
            fireDamageBonus.Deserialize(reader);
            dodgePALostProbability = new Types.CharacterBaseCharacteristic();
            dodgePALostProbability.Deserialize(reader);
            dodgePMLostProbability = new Types.CharacterBaseCharacteristic();
            dodgePMLostProbability.Deserialize(reader);
            neutralElementResistPercent = new Types.CharacterBaseCharacteristic();
            neutralElementResistPercent.Deserialize(reader);
            earthElementResistPercent = new Types.CharacterBaseCharacteristic();
            earthElementResistPercent.Deserialize(reader);
            waterElementResistPercent = new Types.CharacterBaseCharacteristic();
            waterElementResistPercent.Deserialize(reader);
            airElementResistPercent = new Types.CharacterBaseCharacteristic();
            airElementResistPercent.Deserialize(reader);
            fireElementResistPercent = new Types.CharacterBaseCharacteristic();
            fireElementResistPercent.Deserialize(reader);
            neutralElementReduction = new Types.CharacterBaseCharacteristic();
            neutralElementReduction.Deserialize(reader);
            earthElementReduction = new Types.CharacterBaseCharacteristic();
            earthElementReduction.Deserialize(reader);
            waterElementReduction = new Types.CharacterBaseCharacteristic();
            waterElementReduction.Deserialize(reader);
            airElementReduction = new Types.CharacterBaseCharacteristic();
            airElementReduction.Deserialize(reader);
            fireElementReduction = new Types.CharacterBaseCharacteristic();
            fireElementReduction.Deserialize(reader);
            pushDamageReduction = new Types.CharacterBaseCharacteristic();
            pushDamageReduction.Deserialize(reader);
            criticalDamageReduction = new Types.CharacterBaseCharacteristic();
            criticalDamageReduction.Deserialize(reader);
            pvpNeutralElementResistPercent = new Types.CharacterBaseCharacteristic();
            pvpNeutralElementResistPercent.Deserialize(reader);
            pvpEarthElementResistPercent = new Types.CharacterBaseCharacteristic();
            pvpEarthElementResistPercent.Deserialize(reader);
            pvpWaterElementResistPercent = new Types.CharacterBaseCharacteristic();
            pvpWaterElementResistPercent.Deserialize(reader);
            pvpAirElementResistPercent = new Types.CharacterBaseCharacteristic();
            pvpAirElementResistPercent.Deserialize(reader);
            pvpFireElementResistPercent = new Types.CharacterBaseCharacteristic();
            pvpFireElementResistPercent.Deserialize(reader);
            pvpNeutralElementReduction = new Types.CharacterBaseCharacteristic();
            pvpNeutralElementReduction.Deserialize(reader);
            pvpEarthElementReduction = new Types.CharacterBaseCharacteristic();
            pvpEarthElementReduction.Deserialize(reader);
            pvpWaterElementReduction = new Types.CharacterBaseCharacteristic();
            pvpWaterElementReduction.Deserialize(reader);
            pvpAirElementReduction = new Types.CharacterBaseCharacteristic();
            pvpAirElementReduction.Deserialize(reader);
            pvpFireElementReduction = new Types.CharacterBaseCharacteristic();
            pvpFireElementReduction.Deserialize(reader);
            var limit = reader.ReadUShort();

            spellModifications = new Types.CharacterSpellModification[limit];
            for (int i = 0; i < limit; i++)
            {
                spellModifications[i] = new Types.CharacterSpellModification();
                spellModifications[i].Deserialize(reader);
            }
            probationTime = reader.ReadInt();
            if (probationTime < 0)
            {
                throw new Exception("Forbidden value on probationTime = " + probationTime + ", it doesn't respect the following condition : probationTime < 0");
            }
        }
        public virtual void Deserialize(IDataReader reader)
        {
            experience               = reader.ReadVarUhLong();
            experienceLevelFloor     = reader.ReadVarUhLong();
            experienceNextLevelFloor = reader.ReadVarUhLong();
            experienceBonusLimit     = reader.ReadVarUhLong();
            kamas             = reader.ReadVarUhLong();
            statsPoints       = reader.ReadVarUhShort();
            additionnalPoints = reader.ReadVarUhShort();
            spellsPoints      = reader.ReadVarUhShort();
            alignmentInfos    = new Types.ActorExtendedAlignmentInformations();
            alignmentInfos.Deserialize(reader);
            lifePoints            = reader.ReadVarUhInt();
            maxLifePoints         = reader.ReadVarUhInt();
            energyPoints          = reader.ReadVarUhShort();
            maxEnergyPoints       = reader.ReadVarUhShort();
            actionPointsCurrent   = reader.ReadVarShort();
            movementPointsCurrent = reader.ReadVarShort();
            initiative            = new Types.CharacterBaseCharacteristic();
            initiative.Deserialize(reader);
            prospecting = new Types.CharacterBaseCharacteristic();
            prospecting.Deserialize(reader);
            actionPoints = new Types.CharacterBaseCharacteristic();
            actionPoints.Deserialize(reader);
            movementPoints = new Types.CharacterBaseCharacteristic();
            movementPoints.Deserialize(reader);
            strength = new Types.CharacterBaseCharacteristic();
            strength.Deserialize(reader);
            vitality = new Types.CharacterBaseCharacteristic();
            vitality.Deserialize(reader);
            wisdom = new Types.CharacterBaseCharacteristic();
            wisdom.Deserialize(reader);
            chance = new Types.CharacterBaseCharacteristic();
            chance.Deserialize(reader);
            agility = new Types.CharacterBaseCharacteristic();
            agility.Deserialize(reader);
            intelligence = new Types.CharacterBaseCharacteristic();
            intelligence.Deserialize(reader);
            range = new Types.CharacterBaseCharacteristic();
            range.Deserialize(reader);
            summonableCreaturesBoost = new Types.CharacterBaseCharacteristic();
            summonableCreaturesBoost.Deserialize(reader);
            reflect = new Types.CharacterBaseCharacteristic();
            reflect.Deserialize(reader);
            criticalHit = new Types.CharacterBaseCharacteristic();
            criticalHit.Deserialize(reader);
            criticalHitWeapon = reader.ReadVarUhShort();
            criticalMiss      = new Types.CharacterBaseCharacteristic();
            criticalMiss.Deserialize(reader);
            healBonus = new Types.CharacterBaseCharacteristic();
            healBonus.Deserialize(reader);
            allDamagesBonus = new Types.CharacterBaseCharacteristic();
            allDamagesBonus.Deserialize(reader);
            weaponDamagesBonusPercent = new Types.CharacterBaseCharacteristic();
            weaponDamagesBonusPercent.Deserialize(reader);
            damagesBonusPercent = new Types.CharacterBaseCharacteristic();
            damagesBonusPercent.Deserialize(reader);
            trapBonus = new Types.CharacterBaseCharacteristic();
            trapBonus.Deserialize(reader);
            trapBonusPercent = new Types.CharacterBaseCharacteristic();
            trapBonusPercent.Deserialize(reader);
            glyphBonusPercent = new Types.CharacterBaseCharacteristic();
            glyphBonusPercent.Deserialize(reader);
            runeBonusPercent = new Types.CharacterBaseCharacteristic();
            runeBonusPercent.Deserialize(reader);
            permanentDamagePercent = new Types.CharacterBaseCharacteristic();
            permanentDamagePercent.Deserialize(reader);
            tackleBlock = new Types.CharacterBaseCharacteristic();
            tackleBlock.Deserialize(reader);
            tackleEvade = new Types.CharacterBaseCharacteristic();
            tackleEvade.Deserialize(reader);
            PAAttack = new Types.CharacterBaseCharacteristic();
            PAAttack.Deserialize(reader);
            PMAttack = new Types.CharacterBaseCharacteristic();
            PMAttack.Deserialize(reader);
            pushDamageBonus = new Types.CharacterBaseCharacteristic();
            pushDamageBonus.Deserialize(reader);
            criticalDamageBonus = new Types.CharacterBaseCharacteristic();
            criticalDamageBonus.Deserialize(reader);
            neutralDamageBonus = new Types.CharacterBaseCharacteristic();
            neutralDamageBonus.Deserialize(reader);
            earthDamageBonus = new Types.CharacterBaseCharacteristic();
            earthDamageBonus.Deserialize(reader);
            waterDamageBonus = new Types.CharacterBaseCharacteristic();
            waterDamageBonus.Deserialize(reader);
            airDamageBonus = new Types.CharacterBaseCharacteristic();
            airDamageBonus.Deserialize(reader);
            fireDamageBonus = new Types.CharacterBaseCharacteristic();
            fireDamageBonus.Deserialize(reader);
            dodgePALostProbability = new Types.CharacterBaseCharacteristic();
            dodgePALostProbability.Deserialize(reader);
            dodgePMLostProbability = new Types.CharacterBaseCharacteristic();
            dodgePMLostProbability.Deserialize(reader);
            neutralElementResistPercent = new Types.CharacterBaseCharacteristic();
            neutralElementResistPercent.Deserialize(reader);
            earthElementResistPercent = new Types.CharacterBaseCharacteristic();
            earthElementResistPercent.Deserialize(reader);
            waterElementResistPercent = new Types.CharacterBaseCharacteristic();
            waterElementResistPercent.Deserialize(reader);
            airElementResistPercent = new Types.CharacterBaseCharacteristic();
            airElementResistPercent.Deserialize(reader);
            fireElementResistPercent = new Types.CharacterBaseCharacteristic();
            fireElementResistPercent.Deserialize(reader);
            neutralElementReduction = new Types.CharacterBaseCharacteristic();
            neutralElementReduction.Deserialize(reader);
            earthElementReduction = new Types.CharacterBaseCharacteristic();
            earthElementReduction.Deserialize(reader);
            waterElementReduction = new Types.CharacterBaseCharacteristic();
            waterElementReduction.Deserialize(reader);
            airElementReduction = new Types.CharacterBaseCharacteristic();
            airElementReduction.Deserialize(reader);
            fireElementReduction = new Types.CharacterBaseCharacteristic();
            fireElementReduction.Deserialize(reader);
            pushDamageReduction = new Types.CharacterBaseCharacteristic();
            pushDamageReduction.Deserialize(reader);
            criticalDamageReduction = new Types.CharacterBaseCharacteristic();
            criticalDamageReduction.Deserialize(reader);
            pvpNeutralElementResistPercent = new Types.CharacterBaseCharacteristic();
            pvpNeutralElementResistPercent.Deserialize(reader);
            pvpEarthElementResistPercent = new Types.CharacterBaseCharacteristic();
            pvpEarthElementResistPercent.Deserialize(reader);
            pvpWaterElementResistPercent = new Types.CharacterBaseCharacteristic();
            pvpWaterElementResistPercent.Deserialize(reader);
            pvpAirElementResistPercent = new Types.CharacterBaseCharacteristic();
            pvpAirElementResistPercent.Deserialize(reader);
            pvpFireElementResistPercent = new Types.CharacterBaseCharacteristic();
            pvpFireElementResistPercent.Deserialize(reader);
            pvpNeutralElementReduction = new Types.CharacterBaseCharacteristic();
            pvpNeutralElementReduction.Deserialize(reader);
            pvpEarthElementReduction = new Types.CharacterBaseCharacteristic();
            pvpEarthElementReduction.Deserialize(reader);
            pvpWaterElementReduction = new Types.CharacterBaseCharacteristic();
            pvpWaterElementReduction.Deserialize(reader);
            pvpAirElementReduction = new Types.CharacterBaseCharacteristic();
            pvpAirElementReduction.Deserialize(reader);
            pvpFireElementReduction = new Types.CharacterBaseCharacteristic();
            pvpFireElementReduction.Deserialize(reader);
            meleeDamageDonePercent = new Types.CharacterBaseCharacteristic();
            meleeDamageDonePercent.Deserialize(reader);
            meleeDamageReceivedPercent = new Types.CharacterBaseCharacteristic();
            meleeDamageReceivedPercent.Deserialize(reader);
            rangedDamageDonePercent = new Types.CharacterBaseCharacteristic();
            rangedDamageDonePercent.Deserialize(reader);
            rangedDamageReceivedPercent = new Types.CharacterBaseCharacteristic();
            rangedDamageReceivedPercent.Deserialize(reader);
            weaponDamageDonePercent = new Types.CharacterBaseCharacteristic();
            weaponDamageDonePercent.Deserialize(reader);
            weaponDamageReceivedPercent = new Types.CharacterBaseCharacteristic();
            weaponDamageReceivedPercent.Deserialize(reader);
            spellDamageDonePercent = new Types.CharacterBaseCharacteristic();
            spellDamageDonePercent.Deserialize(reader);
            spellDamageReceivedPercent = new Types.CharacterBaseCharacteristic();
            spellDamageReceivedPercent.Deserialize(reader);
            var limit = (ushort)reader.ReadUShort();

            spellModifications = new Types.CharacterSpellModification[limit];
            for (int i = 0; i < limit; i++)
            {
                spellModifications[i] = new Types.CharacterSpellModification();
                spellModifications[i].Deserialize(reader);
            }
            probationTime = reader.ReadInt();
        }