public SlaveSwitchContextMessage(int summonerId = 0, int slaveId = 0, CharacterCharacteristicsInformations slaveStats = null, List <SpellItem> slaveSpells = null)
 {
     SummonerId  = summonerId;
     SlaveId     = slaveId;
     SlaveStats  = slaveStats;
     SlaveSpells = slaveSpells;
 }
Esempio n. 2
0
        public override void Deserialize(ICustomDataInput reader)
        {
            int slaveSpellsCount = reader.ReadUShort();
            int slaveSpellsIndex;

            m_slaveSpells = new System.Collections.Generic.List <SpellItem>();
            for (slaveSpellsIndex = 0; (slaveSpellsIndex < slaveSpellsCount); slaveSpellsIndex = (slaveSpellsIndex + 1))
            {
                SpellItem objectToAdd = new SpellItem();
                objectToAdd.Deserialize(reader);
                m_slaveSpells.Add(objectToAdd);
            }
            m_slaveStats = new CharacterCharacteristicsInformations();
            m_slaveStats.Deserialize(reader);
            int shortcutsCount = reader.ReadUShort();
            int shortcutsIndex;

            m_shortcuts = new System.Collections.Generic.List <Shortcut>();
            for (shortcutsIndex = 0; (shortcutsIndex < shortcutsCount); shortcutsIndex = (shortcutsIndex + 1))
            {
                Shortcut objectToAdd = ProtocolTypeManager.GetInstance <Shortcut>((short)reader.ReadUShort());
                objectToAdd.Deserialize(reader);
                m_shortcuts.Add(objectToAdd);
            }
            m_masterId = reader.ReadDouble();
            m_slaveId  = reader.ReadDouble();
        }
Esempio n. 3
0
        public override void Deserialize(IDataReader reader)
        {
            MasterId = reader.ReadDouble();
            SlaveId  = reader.ReadDouble();
            var slaveSpellsCount = reader.ReadUShort();

            SlaveSpells = new List <SpellItem>();
            for (var slaveSpellsIndex = 0; slaveSpellsIndex < slaveSpellsCount; slaveSpellsIndex++)
            {
                var objectToAdd = new SpellItem();
                objectToAdd.Deserialize(reader);
                SlaveSpells.Add(objectToAdd);
            }
            SlaveStats = new CharacterCharacteristicsInformations();
            SlaveStats.Deserialize(reader);
            var shortcutsCount = reader.ReadUShort();

            Shortcuts = new List <Shortcut>();
            for (var shortcutsIndex = 0; shortcutsIndex < shortcutsCount; shortcutsIndex++)
            {
                var objectToAdd = ProtocolTypeManager.GetInstance <Shortcut>(reader.ReadUShort());
                objectToAdd.Deserialize(reader);
                Shortcuts.Add(objectToAdd);
            }
        }
Esempio n. 4
0
        public override void Deserialize(ICustomDataInput reader)
        {
            this.masterId = reader.ReadDouble();

            if (this.masterId < -9007199254740990 || this.masterId > 9007199254740990)
            {
                throw new Exception("Forbidden value on masterId = " + this.masterId + ", it doesn't respect the following condition : masterId < -9007199254740990 || masterId > 9007199254740990");
            }
            this.slaveId = reader.ReadDouble();

            if (this.slaveId < -9007199254740990 || this.slaveId > 9007199254740990)
            {
                throw new Exception("Forbidden value on slaveId = " + this.slaveId + ", it doesn't respect the following condition : slaveId < -9007199254740990 || slaveId > 9007199254740990");
            }
            var limit = reader.ReadUShort();

            this.slaveSpells = new SpellItem[limit];
            for (int i = 0; i < limit; i++)
            {
                this.slaveSpells[i] = new SpellItem();
                this.slaveSpells[i].Deserialize(reader);
            }

            this.slaveStats = new CharacterCharacteristicsInformations();
            this.slaveStats.Deserialize(reader);
            limit          = reader.ReadUShort();
            this.shortcuts = new Shortcut[limit];
            for (int i = 0; i < limit; i++)
            {
                this.shortcuts[i] = ProtocolTypeManager.GetInstance <Shortcut>(reader.ReadShort());
                this.shortcuts[i].Deserialize(reader);
            }
        }
Esempio n. 5
0
        public override void Deserialize(IDataReader reader)
        {
            this.masterId = reader.ReadDouble();
            if (this.masterId < -9.00719925474099E+15 || this.masterId > 9.00719925474099E+15)
            {
                throw new Exception("Forbidden value (" + (object)this.masterId + ") on element of SlaveSwitchContextMessage.masterId.");
            }
            this.slaveId = reader.ReadDouble();
            if (this.slaveId < -9.00719925474099E+15 || this.slaveId > 9.00719925474099E+15)
            {
                throw new Exception("Forbidden value (" + (object)this.slaveId + ") on element of SlaveSwitchContextMessage.slaveId.");
            }
            uint num1 = (uint)reader.ReadUShort();

            for (int index = 0; (long)index < (long)num1; ++index)
            {
                SpellItem spellItem = new SpellItem();
                spellItem.Deserialize(reader);
                this.slaveSpells.Add(spellItem);
            }
            this.slaveStats = new CharacterCharacteristicsInformations();
            this.slaveStats.Deserialize(reader);
            uint num2 = (uint)reader.ReadUShort();

            for (int index = 0; (long)index < (long)num2; ++index)
            {
                Shortcut instance = ProtocolTypeManager.GetInstance <Shortcut>((uint)reader.ReadUShort());
                instance.Deserialize(reader);
                this.shortcuts.Add(instance);
            }
        }
Esempio n. 6
0
 public void Update(CharacterCharacteristicsInformations stats)
 {
     LifePoints     = (int)stats.LifePoints;
     MaxLifePoints  = (int)stats.MaxLifePoints;
     ActionPoints   = stats.ActionPointsCurrent;
     MovementPoints = stats.MovementPointsCurrent;
 }
Esempio n. 7
0
        public override void Deserialize(ICustomDataInput reader)
        {
            MasterId = reader.ReadDouble();
            SlaveId  = reader.ReadDouble();
            var countSlaveSpells = reader.ReadShort();

            SlaveSpells = new List <SpellItem>();
            for (short i = 0; i < countSlaveSpells; i++)
            {
                SpellItem type = new SpellItem();
                type.Deserialize(reader);
                SlaveSpells.Add(type);
            }
            SlaveStats = new CharacterCharacteristicsInformations();
            SlaveStats.Deserialize(reader);
            var countShortcuts = reader.ReadShort();

            Shortcuts = new List <Shortcut>();
            for (short i = 0; i < countShortcuts; i++)
            {
                var      shortcutstypeId = reader.ReadShort();
                Shortcut type            = new Shortcut();
                type.Deserialize(reader);
                Shortcuts.Add(type);
            }
        }
        public static CharacterCharacteristicsInformations GetCharacterCharacteristics(StatsRecord stats, Character character) // voir les GetBase(0)
        {
            var align    = character.GetActorExtendedAlignement();
            var expFloor = ExperienceRecord.GetExperienceForLevel(character.Record.Level);

            var mpMax = character.StatsRecord.MovementPoints;
            var apMax = character.StatsRecord.ActionPoints;


            if (character.FighterInstance != null)
            {
                mpMax = character.FighterInstance.FighterStats.RealStats.MovementPoints;
                apMax = character.FighterInstance.FighterStats.RealStats.ActionPoints;
            }
            var expNextFloor  = ExperienceRecord.GetExperienceForLevel((uint)(character.Record.Level + 1));
            var detailedstats = new CharacterCharacteristicsInformations(character.Record.Exp, expFloor, expNextFloor, character.Record.Kamas, character.Record.StatsPoints, 0, character.Record.SpellPoints, align,
                                                                         (uint)(character.CurrentStats.LifePoints), (uint)stats.LifePoints, character.CurrentStats.Energy, (ushort)stats.MaxEnergyPoints, stats.ActionPoints, stats.MovementPoints, GetBase((short)character.Initiative), GetBase(stats.Prospecting),
                                                                         GetBase((short)apMax), GetBase((short)mpMax), GetBase(stats.BaseStrength, stats.ContextStrength, stats.PermanentStrenght), GetBase(stats.BaseVitality, stats.ContextVitality, stats.PermanentVitality), GetBase(stats.BaseWisdom, stats.ContextWisdom, stats.PermanentWisdom), GetBase(stats.BaseChance, stats.ContextChance, stats.PermanentChance), GetBase(stats.BaseAgility, stats.ContextAgility, stats.PermanentAgility), GetBase(stats.BaseIntelligence, stats.ContextIntelligence, stats.PermanentIntelligence),
                                                                         GetBase(stats._Range), GetBase(stats.SummonableCreaturesBoost), GetBase(stats.Reflect), GetBase(stats.CriticalHit), (ushort)stats.CriticalHitWeapon, GetBase(0), GetBase(stats.HealBonus), GetBase(stats.AllDamagesBonus),
                                                                         GetBase(stats.WeaponDamagesBonusPercent), GetBase(stats.AllDamagesBonusPercent), GetBase(stats.TrapBonus), GetBase(stats.TrapBonusPercent), GetBase(stats.GlyphBonusPercent), GetBase(0),
                                                                         GetBase(0), GetBase(0), GetBase(stats.APReduction, stats.ContextAPReduction), GetBase(0), GetBase(stats.PushDamageBonus), GetBase(stats.CriticalDamageBonus), GetBase(stats.NeutralDamageBonus), GetBase(stats.EarthDamageBonus),
                                                                         GetBase(stats.WaterDamageBonus), GetBase(stats.AirDamageBonus), GetBase(stats.FireDamageBonus), GetBase(stats.DodgePA), GetBase(stats.DodgePM), GetBase(stats.NeutralResistPercent),
                                                                         GetBase(stats.EarthResistPercent), GetBase(stats.WaterResistPercent), GetBase(stats.AirResistPercent), GetBase(stats.FireResistPercent), GetBase(stats.NeutralReduction),
                                                                         GetBase(stats.EarthReduction), GetBase(stats.WaterReduction), GetBase(stats.AirReduction), GetBase(stats.FireReduction), GetBase(stats.PushDamageReduction),
                                                                         GetBase(stats.CriticalDamageReduction), GetBase(stats.PvPNeutralResistPercent), GetBase(stats.PvPEarthResistPercent), GetBase(stats.PvPWaterResistPercent), GetBase(stats.PvPAirResistPercent),
                                                                         GetBase(stats.PvPFireResistPercent), GetBase(stats.PvPNeutralReduction), GetBase(stats.PvPEarthReduction), GetBase(stats.PvPWaterReduction), GetBase(stats.PvPAirReduction), GetBase(stats.PvPFireReduction),
                                                                         new CharacterSpellModification[0], 0);

            return(detailedstats);
        }
Esempio n. 9
0
 public SlaveSwitchContextMessage(List <SpellItem> slaveSpells, CharacterCharacteristicsInformations slaveStats, List <Shortcut> shortcuts, double masterId, double slaveId)
 {
     m_slaveSpells = slaveSpells;
     m_slaveStats  = slaveStats;
     m_shortcuts   = shortcuts;
     m_masterId    = masterId;
     m_slaveId     = slaveId;
 }
Esempio n. 10
0
 public SlaveSwitchContextMessage(double masterId, double slaveId, SpellItem[] slaveSpells, CharacterCharacteristicsInformations slaveStats, Shortcut[] shortcuts)
 {
     this.masterId    = masterId;
     this.slaveId     = slaveId;
     this.slaveSpells = slaveSpells;
     this.slaveStats  = slaveStats;
     this.shortcuts   = shortcuts;
 }
Esempio n. 11
0
 public Character()
 {
     Stats        = new CharacterCharacteristicsInformations();
     Look         = new EntityLook();
     Restrictions = new ActorRestrictionsInformations();
     Inventory    = new List <ObjectItem>();
     Spells       = new List <SpellItem>();
     Status       = CharacterStatus.Disconnected;
 }
 public SlaveSwitchContextMessage(double masterId, double slaveId, List <SpellItem> slaveSpells,
                                  CharacterCharacteristicsInformations slaveStats, List <Types.Game.Shortcut.Shortcut> shortcuts)
 {
     MasterId    = masterId;
     SlaveId     = slaveId;
     SlaveSpells = slaveSpells;
     SlaveStats  = slaveStats;
     Shortcuts   = shortcuts;
 }
Esempio n. 13
0
 public PlayerStats(PlayedCharacter owner, CharacterCharacteristicsInformations stats)
     : this(owner)
 {
     if (stats == null)
     {
         throw new ArgumentNullException("stats");
     }
     Update(stats);
 }
Esempio n. 14
0
        public SpellInabilityReason CanLaunchSpell(int spellId)
        {
            //IItem weapon = Account.Game.Character.Inventory.Items.FirstOrDefault(i => (InventoryPositionEnum)i.Position == InventoryPositionEnum.Weapon);
            //Weapon weaponData = null;
            DataClass spellData       = GameData.GetDataObject(D2oFileEnum.Spells, spellId);
            ArrayList ids             = ((ArrayList)spellData.Fields["spellLevels"]);
            int       level           = m_Account.Spells.FirstOrDefault(Spell => Spell.Id == spellId).Level;
            int       id              = Convert.ToInt32(ids[level - 1]);
            DataClass spellLevelsData = GameData.GetDataObject(D2oFileEnum.SpellLevels, id);

            if (spellLevelsData == null)
            {
                return(SpellInabilityReason.Unknown);
            }
            //if (spellId == 0 && weapon != null)
            //    weaponData = ObjectDataManager.Instance.Get<Weapon>(weapon.GID);

            if ((spellId != 0 && Fighter.ActionPoints < (int)spellLevelsData.Fields["apCost"])) //|| (weaponData != null && Fighter.ActionPoints < weaponData.apCost))
            {
                return(SpellInabilityReason.ActionPoints);
            }

            if (TotalLaunchBySpell.ContainsKey(spellId) && TotalLaunchBySpell[spellId] >= (int)spellLevelsData.Fields["maxCastPerTurn"] && (int)spellLevelsData.Fields["maxCastPerTurn"] > 0)
            {
                return(SpellInabilityReason.TooManyLaunch);
            }
            if (this.LastTurnLaunchBySpell.ContainsKey(spellId))
            {
                return(SpellInabilityReason.Cooldown);
            }

            ArrayList listEffects = (ArrayList)spellLevelsData.Fields["effects"];

            //EffectInstanceDice
            if (((listEffects != null) && (listEffects.Count > 0)) && ((int)((DataClass)listEffects[0]).Fields["effectId"]) == 181)
            {
                CharacterCharacteristicsInformations stats = m_Account.CharacterStats;
                int total = stats.summonableCreaturesBoost.@base + stats.summonableCreaturesBoost.objectsAndMountBonus + stats.summonableCreaturesBoost.alignGiftBonus + stats.summonableCreaturesBoost.contextModif;
                if (this.GetInvokationNumber() >= total)
                {
                    return(SpellInabilityReason.TooManyInvocations);
                }
            }
            //List<int> listOfStates = (List<int>)spellLevelsData.Fields["statesRequired"];
            //foreach (var state in listOfStates)
            //{
            //    if (!(DurationByEffect.ContainsKey(state)))
            //        return SpellInabilityReason.RequiredState;
            //}
            //listOfStates = (List<int>)spellLevelsData.Fields["statesForbidden"];
            //foreach (var state in listOfStates)
            //{
            //    if (DurationByEffect.ContainsKey(state))
            //        return SpellInabilityReason.ForbiddenState;
            //}
            return(SpellInabilityReason.None);
        }
Esempio n. 15
0
 public PlayerStats(PlayedCharacter owner, CharacterCharacteristicsInformations stats)
 {
     if (stats == null)
     {
         throw new ArgumentNullException("stats");
     }
     Fields = new Dictionary <PlayerField, StatsRow>();
     SpellsModifications = new ObservableCollection <SpellModification>();
     Update(stats);
 }
        protected override void serializeContent(ICustomDataWriter writer)
        {
            var statsInfos = new CharacterCharacteristicsInformations();

            statsInfos.Initialize(Entity);
            statsInfos.Serialize(writer);

            writer.WriteShort(0); // Spell modifications
            writer.WriteInt(0);   // Probation time
        }
Esempio n. 17
0
 public Character(DofusClient client)
 {
     Client        = client;
     Stats         = new CharacterCharacteristicsInformations();
     Look          = new EntityLook();
     Restrictions  = new ActorRestrictionsInformations();
     Inventory     = new List <ObjectItem>();
     Spells        = new List <SpellItem>();
     Status        = CharacterStatus.Disconnected;
     MapData       = new MapData();
     Map           = new Map(Client);
     GatherManager = new GatherManager(Client);
     Jobs          = new List <JobExperience>();
 }
Esempio n. 18
0
 public void Deserialize(IDataReader reader)
 {
     MasterId    = reader.ReadDouble();
     SlaveId     = reader.ReadDouble();
     SlaveSpells = new SpellItem[reader.ReadShort()];
     for (var i = 0; i < SlaveSpells.Length; i++)
     {
         (SlaveSpells[i] = new SpellItem()).Deserialize(reader);
     }
     SlaveStats = new CharacterCharacteristicsInformations();
     SlaveStats.Deserialize(reader);
     Shortcuts = new Shortcut[reader.ReadShort()];
     for (var i = 0; i < Shortcuts.Length; i++)
     {
         (Shortcuts[i] = new Shortcut()).Deserialize(reader);
     }
 }
Esempio n. 19
0
        /// <summary>
        /// CanLaunchSpell() vérifie si le sort peut être lancé. (override)
        /// </summary>
        /// <param name="spellId">ID du sort</param>
        /// <returns>SpellInabilityReasons: Unknown, ActionPoints, TooManyLaunch, Cooldown, TooManyInvocations, None  </returns>
        public SpellInabilityReason CanLaunchSpell(int spellId)
        {
            DataClass spellData       = GameData.GetDataObject(D2oFileEnum.Spells, spellId);
            ArrayList ids             = ((ArrayList)spellData.Fields["spellLevels"]);
            int       level           = Account.Spells.FirstOrDefault(Spell => Spell.Id == spellId).Level;
            int       id              = Convert.ToInt32(ids[level - 1]);
            DataClass spellLevelsData = GameData.GetDataObject(D2oFileEnum.SpellLevels, id);

            if (spellLevelsData == null)
            {
                return(SpellInabilityReason.Unknown);
            }


            if ((spellId != 0 && Fighter.ActionPoints < (int)spellLevelsData.Fields["apCost"])) //|| (weaponData != null && Fighter.ActionPoints < weaponData.apCost))
            {
                return(SpellInabilityReason.ActionPoints);
            }

            if (TotalLaunchBySpell.ContainsKey(spellId) && TotalLaunchBySpell[spellId] >= (int)spellLevelsData.Fields["maxCastPerTurn"] && (int)spellLevelsData.Fields["maxCastPerTurn"] > 0)
            {
                return(SpellInabilityReason.TooManyLaunch);
            }
            if (this.LastTurnLaunchBySpell.ContainsKey(spellId))
            {
                return(SpellInabilityReason.Cooldown);
            }

            ArrayList listEffects = (ArrayList)spellLevelsData.Fields["effects"];

            //EffectInstanceDice
            if (((listEffects != null) && (listEffects.Count > 0)) && ((int)((DataClass)listEffects[0]).Fields["effectId"]) == 181)
            {
                CharacterCharacteristicsInformations stats = Account.CharacterStats;
                int total = stats.summonableCreaturesBoost.@base + stats.summonableCreaturesBoost.objectsAndMountBonus + stats.summonableCreaturesBoost.alignGiftBonus + stats.summonableCreaturesBoost.contextModif;
                if (this.GetInvokationNumber() >= total)
                {
                    return(SpellInabilityReason.TooManyInvocations);
                }
            }

            return(SpellInabilityReason.None);
        }
Esempio n. 20
0
        public override void Deserialize(IDataReader reader)
        {
            this.masterId = reader.ReadDouble();
            this.slaveId  = reader.ReadDouble();
            ushort num = reader.ReadUShort();

            this.slaveSpells = new SpellItem[num];
            for (int i = 0; i < num; i++)
            {
                this.slaveSpells[i] = new SpellItem();
                this.slaveSpells[i].Deserialize(reader);
            }
            this.slaveStats = new CharacterCharacteristicsInformations();
            this.slaveStats.Deserialize(reader);
            num            = reader.ReadUShort();
            this.shortcuts = new Shortcut[num];
            for (int j = 0; j < num; j++)
            {
                this.shortcuts[j] = ProtocolTypeManager.GetInstance <Shortcut>(reader.ReadUShort());
                this.shortcuts[j].Deserialize(reader);
            }
        }
Esempio n. 21
0
 public override void Deserialize(ICustomDataInput reader)
 {
     m_stats = new CharacterCharacteristicsInformations();
     m_stats.Deserialize(reader);
 }
Esempio n. 22
0
 public CharacterStatsListMessage(CharacterCharacteristicsInformations stats)
 {
     m_stats = stats;
 }
Esempio n. 23
0
        /// <summary>
        /// Returns if a spell is launchable or not. Don't take the target in count.
        /// </summary>
        /// <param name="spellId">ID du sort</param>
        /// <returns>SpellInabilityReasons: Unknown, ActionPoints, TooManyLaunch, Cooldown, TooManyInvocations, None  </returns>
        private SpellInabilityReason CanLaunchSpell(int spellId)
        {
            Inventory.Item weapon     = m_Account.Inventory.Weapon;
            DataClass      weaponData = null;

            DataClass spellData = GameData.GetDataObject(D2oFileEnum.Spells, spellId);
            ArrayList ids       = ((ArrayList)spellData.Fields["spellLevels"]);
            int       level     = 0;

            try
            {
                level = m_Account.Spells.FirstOrDefault(Spell => Spell.Id == spellId).Level;
            }
            catch (NullReferenceException ex)
            {
                m_Account.Log(new ErrorTextInformation("Le sort spécifié n'existe pas dans votre liste de sorts."), 0);
                return(SpellInabilityReason.UnknownSpell);
            }
            int       id = Convert.ToInt32(ids[level - 1]);
            DataClass spellLevelsData = GameData.GetDataObject(D2oFileEnum.SpellLevels, id);

            if (spellLevelsData == null && spellId != -1) // spellId = -1 -> Use weapon.
            {
                return(SpellInabilityReason.Unknown);
            }
            if (spellId == 0 && weapon != null)
            {
                weaponData = GameData.GetDataObject(D2oFileEnum.Items, weapon.GID);
            }

            if ((spellId != 0 && Fighter.ActionPoints < (int)spellLevelsData.Fields["apCost"]) || (weaponData != null && Fighter.ActionPoints < (int)weaponData.Fields["apCost"]))
            {
                return(SpellInabilityReason.ActionPoints);
            }

            if (TotalLaunchBySpell.ContainsKey(spellId) && TotalLaunchBySpell[spellId] >= (int)spellLevelsData.Fields["maxCastPerTurn"] && (int)spellLevelsData.Fields["maxCastPerTurn"] > 0)
            {
                return(SpellInabilityReason.TooManyLaunch);
            }
            if (LastTurnLaunchBySpell.ContainsKey(spellId))
            {
                return(SpellInabilityReason.Cooldown);
            }

            ArrayList listEffects = (ArrayList)spellLevelsData.Fields["effects"];

            //EffectInstanceDice
            if (((listEffects != null) && (listEffects.Count > 0)) && ((int)((DataClass)listEffects[0]).Fields["effectId"]) == 181)
            {
                CharacterCharacteristicsInformations stats = m_Account.CharacterStats;
                int total = stats.SummonableCreaturesBoost.Base + stats.SummonableCreaturesBoost.ObjectsAndMountBonus + stats.SummonableCreaturesBoost.AlignGiftBonus + stats.SummonableCreaturesBoost.ContextModif;
                if (GetInvokationNumber() >= total)
                {
                    return(SpellInabilityReason.TooManyInvocations);
                }
            }
            ArrayList listOfStates = (ArrayList)spellLevelsData.Fields["statesRequired"];

            foreach (var state in listOfStates)
            {
                if (!(DurationByEffect.ContainsKey((int)state)))
                {
                    return(SpellInabilityReason.RequiredState);
                }
            }
            listOfStates = (ArrayList)spellLevelsData.Fields["statesForbidden"];
            foreach (var state in listOfStates)
            {
                if (DurationByEffect.ContainsKey((int)state))
                {
                    return(SpellInabilityReason.ForbiddenState);
                }
            }
            return(SpellInabilityReason.None);
        }
Esempio n. 24
0
        // voir les GetBase(0)
        public static CharacterCharacteristicsInformations GetCharacterCharacteristics(StatsRecord stats, Character character)
        {
            var align = character.GetActorExtendedAlignement();
            var expFloor = ExperienceRecord.GetExperienceForLevel(character.Record.Level);

            var mpMax = character.StatsRecord.MovementPoints;
            var apMax = character.StatsRecord.ActionPoints;

            if (character.FighterInstance != null)
            {
                mpMax = character.FighterInstance.FighterStats.RealStats.MovementPoints;
                apMax = character.FighterInstance.FighterStats.RealStats.ActionPoints;

            }
            var expNextFloor = ExperienceRecord.GetExperienceForLevel((uint)(character.Record.Level + 1));
            var detailedstats = new CharacterCharacteristicsInformations(character.Record.Exp, expFloor, expNextFloor, character.Record.Kamas, character.Record.StatsPoints, 0, character.Record.SpellPoints, align,
                (uint)(character.CurrentStats.LifePoints), (uint)stats.LifePoints, character.CurrentStats.Energy, (ushort)stats.MaxEnergyPoints, stats.ActionPoints, stats.MovementPoints, GetBase((short)character.Initiative), GetBase(stats.Prospecting),
                GetBase((short)apMax), GetBase((short)mpMax), GetBase(stats.BaseStrength,stats.ContextStrength,stats.PermanentStrenght), GetBase(stats.BaseVitality,stats.ContextVitality,stats.PermanentVitality), GetBase(stats.BaseWisdom,stats.ContextWisdom,stats.PermanentWisdom), GetBase(stats.BaseChance,stats.ContextChance,stats.PermanentChance), GetBase(stats.BaseAgility,stats.ContextAgility,stats.PermanentAgility), GetBase(stats.BaseIntelligence,stats.ContextIntelligence,stats.PermanentIntelligence),
                GetBase(stats._Range), GetBase(stats.SummonableCreaturesBoost), GetBase(stats.Reflect), GetBase(stats.CriticalHit), (ushort)stats.CriticalHitWeapon, GetBase(0), GetBase(stats.HealBonus), GetBase(stats.AllDamagesBonus),
                GetBase(stats.WeaponDamagesBonusPercent), GetBase(stats.AllDamagesBonusPercent), GetBase(stats.TrapBonus), GetBase(stats.TrapBonusPercent), GetBase(stats.GlyphBonusPercent), GetBase(0),
                GetBase(0), GetBase(0), GetBase(stats.APReduction,stats.ContextAPReduction), GetBase(0), GetBase(stats.PushDamageBonus), GetBase(stats.CriticalDamageBonus), GetBase(stats.NeutralDamageBonus), GetBase(stats.EarthDamageBonus),
                GetBase(stats.WaterDamageBonus), GetBase(stats.AirDamageBonus), GetBase(stats.FireDamageBonus), GetBase(stats.DodgePA), GetBase(stats.DodgePM), GetBase(stats.NeutralResistPercent),
                GetBase(stats.EarthResistPercent), GetBase(stats.WaterResistPercent), GetBase(stats.AirResistPercent), GetBase(stats.FireResistPercent), GetBase(stats.NeutralReduction),
                GetBase(stats.EarthReduction), GetBase(stats.WaterReduction), GetBase(stats.AirReduction), GetBase(stats.FireReduction), GetBase(stats.PushDamageReduction),
                GetBase(stats.CriticalDamageReduction), GetBase(stats.PvPNeutralResistPercent), GetBase(stats.PvPEarthResistPercent), GetBase(stats.PvPWaterResistPercent), GetBase(stats.PvPAirResistPercent),
                GetBase(stats.PvPFireResistPercent), GetBase(stats.PvPNeutralReduction), GetBase(stats.PvPEarthReduction), GetBase(stats.PvPWaterReduction), GetBase(stats.PvPAirReduction), GetBase(stats.PvPFireReduction),
                new CharacterSpellModification[0], 0);
            return detailedstats;
        }
Esempio n. 25
0
 public override void Deserialize(IDataReader reader)
 {
     stats = new CharacterCharacteristicsInformations();
     stats.Deserialize(reader);
 }
Esempio n. 26
0
        private void HandleCharacterCharacteristicsInformations(CharacterStatsListMessage _message, ConnectedHost source)
        {
            CharacterCharacteristicsInformations message = _message.stats;

            m_experience               = message.experience;
            m_experienceLevelFloor     = message.experienceLevelFloor;
            m_experienceNextLevelFloor = message.experienceNextLevelFloor;
            m_kamas                          = message.kamas;
            m_statsPoints                    = message.statsPoints;
            m_additionnalPoints              = message.additionnalPoints;
            m_spellsPoints                   = message.spellsPoints;
            m_alignmentInfos                 = message.alignmentInfos;
            m_lifePoints                     = message.lifePoints;
            m_maxLifePoints                  = message.maxLifePoints;
            m_energyPoints                   = message.energyPoints;
            m_maxEnergyPoints                = message.maxEnergyPoints;
            m_actionPointsCurrent            = message.actionPointsCurrent;
            m_movementPointsCurrent          = message.movementPointsCurrent;
            m_initiative                     = message.initiative;
            m_prospecting                    = message.prospecting;
            m_actionPoints                   = message.actionPoints;
            m_movementPoints                 = message.movementPoints;
            m_strength                       = message.strength;
            m_vitality                       = message.vitality;
            m_wisdom                         = message.wisdom;
            m_chance                         = message.chance;
            m_agility                        = message.agility;
            m_intelligence                   = message.intelligence;
            m_range                          = message.range;
            m_summonableCreaturesBoost       = message.summonableCreaturesBoost;
            m_reflect                        = message.reflect;
            m_criticalHit                    = message.criticalHit;
            m_criticalHitWeapon              = message.criticalHitWeapon;
            m_criticalMiss                   = message.criticalMiss;
            m_healBonus                      = message.healBonus;
            m_allDamagesBonus                = message.allDamagesBonus;
            m_weaponDamagesBonusPercent      = message.weaponDamagesBonusPercent;
            m_damagesBonusPercent            = message.damagesBonusPercent;
            m_trapBonus                      = message.trapBonus;
            m_trapBonusPercent               = message.trapBonusPercent;
            m_glyphBonusPercent              = message.glyphBonusPercent;
            m_permanentDamagePercent         = message.permanentDamagePercent;
            m_tackleBlock                    = message.tackleBlock;
            m_tackleEvade                    = message.tackleEvade;
            m_PAAttack                       = message.PAAttack;
            m_PMAttack                       = message.PMAttack;
            m_pushDamageBonus                = message.pushDamageBonus;
            m_criticalDamageBonus            = message.criticalDamageBonus;
            m_neutralDamageBonus             = message.neutralDamageBonus;
            m_earthDamageBonus               = message.earthDamageBonus;
            m_waterDamageBonus               = message.waterDamageBonus;
            m_airDamageBonus                 = message.airDamageBonus;
            m_fireDamageBonus                = message.fireDamageBonus;
            m_dodgePALostProbability         = message.dodgePALostProbability;
            m_dodgePMLostProbability         = message.dodgePMLostProbability;
            m_neutralElementResistPercent    = message.neutralElementResistPercent;
            m_earthElementResistPercent      = message.earthElementResistPercent;
            m_waterElementResistPercent      = message.waterElementResistPercent;
            m_airElementResistPercent        = message.airElementResistPercent;
            m_fireElementResistPercent       = message.fireElementResistPercent;
            m_neutralElementReduction        = message.neutralElementReduction;
            m_earthElementReduction          = message.earthElementReduction;
            m_waterElementReduction          = message.waterElementReduction;
            m_airElementReduction            = message.airElementReduction;
            m_fireElementReduction           = message.fireElementReduction;
            m_pushDamageReduction            = message.pushDamageReduction;
            m_criticalDamageReduction        = message.criticalDamageReduction;
            m_pvpNeutralElementResistPercent = message.pvpNeutralElementResistPercent;
            m_pvpEarthElementResistPercent   = message.pvpEarthElementResistPercent;
            m_pvpWaterElementResistPercent   = message.pvpWaterElementResistPercent;
            m_pvpAirElementResistPercent     = message.pvpAirElementResistPercent;
            m_pvpFireElementResistPercent    = message.pvpFireElementResistPercent;
            m_pvpNeutralElementReduction     = message.pvpNeutralElementReduction;
            m_pvpEarthElementReduction       = message.pvpEarthElementReduction;
            m_pvpWaterElementReduction       = message.pvpWaterElementReduction;
            m_pvpAirElementReduction         = message.pvpAirElementReduction;
            m_pvpFireElementReduction        = message.pvpFireElementReduction;
            m_spellModifications             = message.spellModifications;
            m_probationTime                  = message.probationTime;
            OnUpdated();
        }
Esempio n. 27
0
 public FighterStatsListMessage(CharacterCharacteristicsInformations Stats)
 {
     this.Stats = Stats;
 }
Esempio n. 28
0
        public Character(IAccount account)
        {
            Account       = account;
            Stats         = new CharacterCharacteristicsInformations();
            Look          = new EntityLook();
            Restrictions  = new ActorRestrictionsInformations();
            Spells        = new List <SpellItem>();
            Status        = CharacterStatus.Disconnected;
            Jobs          = new List <JobExperience>();
            GatherManager = new GatherManager(Account);
            PathManager   = new PathManager(Account);

            Achievement = new Achievement(Account);
            Alliance    = new Alliance(Account);
            BidHouse    = new BidHouse(Account);
            Chat        = new Chat(Account);
            Map         = new Map(Account);
            Fight       = new Fight(Account);
            Friend      = new Friend(Account);
            Guild       = new Guild(Account);
            Inventory   = new Inventory(Account);
            Party       = new Party(Account);

            #region Choice Handler

            account.Network.RegisterPacket <BasicCharactersListMessage>(HandleBasicCharactersListMessage,
                                                                        MessagePriority.VeryHigh);
            account.Network.RegisterPacket <CharactersListMessage>(HandleCharactersListMessage,
                                                                   MessagePriority.VeryHigh);
            account.Network.RegisterPacket <CharacterSelectedSuccessMessage>(HandleCharacterSelectedSuccessMessage,
                                                                             MessagePriority.VeryHigh);

            #endregion Choice Handler

            #region Creation Handler

            account.Network.RegisterPacket <CharacterCanBeCreatedResultMessage>(HandleCharacterCanBeCreatedResultMessage,
                                                                                MessagePriority.VeryHigh);
            account.Network.RegisterPacket <CharacterCreationResultMessage>(HandleCharacterCreationResultMessage,
                                                                            MessagePriority.VeryHigh);
            account.Network.RegisterPacket <CharacterNameSuggestionFailureMessage>(
                HandleCharacterNameSuggestionFailureMessage, MessagePriority.VeryHigh);
            account.Network.RegisterPacket <CharacterNameSuggestionSuccessMessage>(
                HandleCharacterNameSuggestionSuccessMessage, MessagePriority.VeryHigh);

            #endregion Creation Handler

            #region Deletion Handler

            account.Network.RegisterPacket <CharacterDeletionErrorMessage>(HandleCharacterDeletionErrorMessage,
                                                                           MessagePriority.VeryHigh);

            #endregion Deletion Handler

            #region Stats Handler

            account.Network.RegisterPacket <CharacterStatsListMessage>(HandleCharacterStatsListMessage,
                                                                       MessagePriority.VeryHigh);
            account.Network.RegisterPacket <CharacterExperienceGainMessage>(HandleCharacterExperienceGainMessage,
                                                                            MessagePriority.VeryHigh);
            account.Network.RegisterPacket <CharacterLevelUpInformationMessage>(HandleCharacterLevelUpInformationMessage,
                                                                                MessagePriority.VeryHigh);
            account.Network.RegisterPacket <CharacterLevelUpMessage>(HandleCharacterLevelUpMessage,
                                                                     MessagePriority.VeryHigh);
            account.Network.RegisterPacket <LifePointsRegenEndMessage>(HandleLifePointsRegenEndMessage,
                                                                       MessagePriority.VeryHigh);
            account.Network.RegisterPacket <UpdateLifePointsMessage>(HandleUpdateLifePointsMessage,
                                                                     MessagePriority.VeryHigh);

            #endregion Stats Handler

            #region Initialization Handler

            account.Network.RegisterPacket <CharacterLoadingCompleteMessage>(HandleCharacterLoadingCompleteMessage,
                                                                             MessagePriority.VeryHigh);
            account.Network.RegisterPacket <OnConnectionEventMessage>(HandleOnConnectionEventMessage,
                                                                      MessagePriority.VeryHigh);
            account.Network.RegisterPacket <SetCharacterRestrictionsMessage>(HandleSetCharacterRestrictionsMessage,
                                                                             MessagePriority.VeryHigh);

            #endregion Initialization Handler

            Account.Network.RegisterPacket <MapComplementaryInformationsDataMessage>(
                HandleMapComplementaryInformationsDataMessage, MessagePriority.Normal);
            Account.Network.RegisterPacket <GameContextRefreshEntityLookMessage>(
                HandleGameContextRefreshEntityLookMessage, MessagePriority.Normal);
        }
Esempio n. 29
0
        public CharacterCharacteristicsInformations GetCharacterCharacteristics(Character character)
        {
            ulong expFloor     = ExperienceRecord.GetExperienceForLevel(character.Level).Player;
            ulong expNextFloor = ExperienceRecord.GetExperienceForNextLevel(character.Level).Player;

            CharacterCharacteristicsInformations informations = new CharacterCharacteristicsInformations()
            {
                actionPoints            = ActionPoints.GetBaseCharacteristic(),
                actionPointsCurrent     = ActionPoints.TotalInContext(),
                additionnalPoints       = 0,
                agility                 = Agility.GetBaseCharacteristic(),
                airDamageBonus          = AirDamageBonus.GetBaseCharacteristic(),
                airElementReduction     = AirReduction.GetBaseCharacteristic(),
                airElementResistPercent = AirResistPercent.GetBaseCharacteristic(),
                alignmentInfos          = character.Record.Alignment.GetActorExtendedAlignement(),
                allDamagesBonus         = AllDamagesBonus.GetBaseCharacteristic(),
                chance = Chance.GetBaseCharacteristic(),
                criticalDamageBonus          = CriticalDamageBonus.GetBaseCharacteristic(),
                criticalDamageReduction      = CriticalDamageReduction.GetBaseCharacteristic(),
                criticalHit                  = CriticalHit.GetBaseCharacteristic(),
                criticalHitWeapon            = CriticalHitWeapon,
                criticalMiss                 = Characteristic.Zero().GetBaseCharacteristic(),
                damagesBonusPercent          = DamagesBonusPercent.GetBaseCharacteristic(),
                dodgePALostProbability       = DodgePAProbability.GetBaseCharacteristic(),
                dodgePMLostProbability       = DodgePMProbability.GetBaseCharacteristic(),
                earthDamageBonus             = EarthDamageBonus.GetBaseCharacteristic(),
                earthElementReduction        = EarthReduction.GetBaseCharacteristic(),
                earthElementResistPercent    = EarthResistPercent.GetBaseCharacteristic(),
                pvpEarthElementReduction     = PvPEarthReduction.GetBaseCharacteristic(),
                pvpEarthElementResistPercent = PvPEarthResistPercent.GetBaseCharacteristic(),
                fireDamageBonus              = FireDamageBonus.GetBaseCharacteristic(),
                fireElementReduction         = FireReduction.GetBaseCharacteristic(),
                fireElementResistPercent     = FireResistPercent.GetBaseCharacteristic(),
                pvpFireElementReduction      = PvPFireReduction.GetBaseCharacteristic(),
                pvpFireElementResistPercent  = PvPFireResistPercent.GetBaseCharacteristic(),
                glyphBonusPercent            = GlyphBonusPercent.GetBaseCharacteristic(),
                healBonus                      = HealBonus.GetBaseCharacteristic(),
                initiative                     = new CharacterBaseCharacteristic((short)FormulasProvider.Instance.BaseInitiative(this), 0, Initiative.Total(), 0, 0),
                intelligence                   = Intelligence.GetBaseCharacteristic(),
                kamas                          = character.Record.Kamas,
                lifePoints                     = (uint)LifePoints,
                maxEnergyPoints                = MaxEnergyPoints,
                maxLifePoints                  = (uint)MaxLifePoints,
                movementPoints                 = MovementPoints.GetBaseCharacteristic(),
                movementPointsCurrent          = MovementPoints.TotalInContext(),
                PMAttack                       = PMAttack.GetBaseCharacteristic(),
                PAAttack                       = PAAttack.GetBaseCharacteristic(),
                pvpAirElementReduction         = PvPAirReduction.GetBaseCharacteristic(),
                pvpAirElementResistPercent     = PvPAirResistPercent.GetBaseCharacteristic(),
                pvpNeutralElementReduction     = PvPNeutralReduction.GetBaseCharacteristic(),
                pvpNeutralElementResistPercent = PvPNeutralResistPercent.GetBaseCharacteristic(),
                pvpWaterElementReduction       = PvPWaterReduction.GetBaseCharacteristic(),
                pvpWaterElementResistPercent   = PvPWaterResistPercent.GetBaseCharacteristic(),
                energyPoints                   = Energy,
                experience                     = character.Experience,
                experienceLevelFloor           = expFloor,
                experienceNextLevelFloor       = expNextFloor,
                neutralDamageBonus             = NeutralDamageBonus.GetBaseCharacteristic(),
                neutralElementReduction        = NeutralReduction.GetBaseCharacteristic(),
                neutralElementResistPercent    = NeutralResistPercent.GetBaseCharacteristic(),
                tackleEvade                    = TackleEvade.GetBaseCharacteristic(),
                tackleBlock                    = TackleBlock.GetBaseCharacteristic(),
                range                          = Range.GetBaseCharacteristic(),
                waterElementReduction          = WaterReduction.GetBaseCharacteristic(),
                waterDamageBonus               = WaterDamageBonus.GetBaseCharacteristic(),
                waterElementResistPercent      = WaterResistPercent.GetBaseCharacteristic(),
                reflect                        = Reflect.GetBaseCharacteristic(),
                permanentDamagePercent         = PermanentDamagePercent.GetBaseCharacteristic(),
                prospecting                    = Prospecting.GetBaseCharacteristic(),
                pushDamageBonus                = PushDamageBonus.GetBaseCharacteristic(),
                pushDamageReduction            = PushDamageReduction.GetBaseCharacteristic(),
                runeBonusPercent               = RuneBonusPercent.GetBaseCharacteristic(),
                spellModifications             = new CharacterSpellModification[0],
                spellsPoints                   = character.Record.SpellPoints,
                statsPoints                    = character.Record.StatsPoints,
                vitality                       = Vitality.GetBaseCharacteristic(),
                strength                       = Strength.GetBaseCharacteristic(),
                summonableCreaturesBoost       = SummonableCreaturesBoost.GetBaseCharacteristic(),
                trapBonus                      = TrapBonus.GetBaseCharacteristic(),
                trapBonusPercent               = TrapBonusPercent.GetBaseCharacteristic(),
                weaponDamagesBonusPercent      = WeaponDamagesBonusPercent.GetBaseCharacteristic(),
                wisdom                         = Wisdom.GetBaseCharacteristic(),
                probationTime                  = 0,
            };

            return(informations);
        }
Esempio n. 30
0
        public void Update(CharacterCharacteristicsInformations stats)
        {
            if (stats == null)
            {
                throw new ArgumentNullException("stats");
            }
            Experience               = stats.experience;
            ExperienceLevelFloor     = stats.experienceLevelFloor;
            ExperienceNextLevelFloor = stats.experienceNextLevelFloor;

            Kamas        = stats.kamas;
            StatsPoints  = stats.statsPoints;
            SpellsPoints = stats.spellsPoints;
            Health       = stats.lifePoints;
            MaxHealth    = stats.maxLifePoints;

            EnergyPoints    = stats.energyPoints;
            MaxEnergyPoints = stats.maxEnergyPoints;
            CurrentAP       = stats.actionPointsCurrent;
            CurrentMP       = stats.movementPointsCurrent;

            this[PlayerField.Initiative]                 = new StatsRow(stats.initiative, PlayerField.Initiative);
            this[PlayerField.Prospecting]                = new StatsRow(stats.prospecting, PlayerField.Prospecting);
            this[PlayerField.AP]                         = new StatsRow(stats.actionPoints, PlayerField.AP);
            this[PlayerField.MP]                         = new StatsRow(stats.movementPoints, PlayerField.MP);
            this[PlayerField.Strength]                   = new StatsRow(stats.strength, PlayerField.Strength);
            this[PlayerField.Vitality]                   = new StatsRow(stats.vitality, PlayerField.Vitality);
            this[PlayerField.Wisdom]                     = new StatsRow(stats.wisdom, PlayerField.Wisdom);
            this[PlayerField.Chance]                     = new StatsRow(stats.chance, PlayerField.Chance);
            this[PlayerField.Agility]                    = new StatsRow(stats.agility, PlayerField.Agility);
            this[PlayerField.Intelligence]               = new StatsRow(stats.intelligence, PlayerField.Intelligence);
            this[PlayerField.Range]                      = new StatsRow(stats.range, PlayerField.Range);
            this[PlayerField.SummonLimit]                = new StatsRow(stats.summonableCreaturesBoost, PlayerField.SummonLimit);
            this[PlayerField.DamageReflection]           = new StatsRow(stats.reflect, PlayerField.DamageReflection);
            this[PlayerField.CriticalHit]                = new StatsRow(stats.criticalHit, PlayerField.CriticalHit);
            this[PlayerField.CriticalMiss]               = new StatsRow(stats.criticalMiss, PlayerField.CriticalMiss);
            this[PlayerField.HealBonus]                  = new StatsRow(stats.healBonus, PlayerField.HealBonus);
            this[PlayerField.DamageBonus]                = new StatsRow(stats.allDamagesBonus, PlayerField.DamageBonus);
            this[PlayerField.WeaponDamageBonusPercent]   = new StatsRow(stats.weaponDamagesBonusPercent, PlayerField.WeaponDamageBonusPercent);
            this[PlayerField.DamageBonusPercent]         = new StatsRow(stats.damagesBonusPercent, PlayerField.DamageBonusPercent);
            this[PlayerField.TrapBonus]                  = new StatsRow(stats.trapBonus, PlayerField.TrapBonus);
            this[PlayerField.TrapBonusPercent]           = new StatsRow(stats.trapBonusPercent, PlayerField.TrapBonusPercent);
            this[PlayerField.PermanentDamagePercent]     = new StatsRow(stats.permanentDamagePercent, PlayerField.PermanentDamagePercent);
            this[PlayerField.TackleBlock]                = new StatsRow(stats.tackleBlock, PlayerField.TackleBlock);
            this[PlayerField.TackleEvade]                = new StatsRow(stats.tackleEvade, PlayerField.TackleEvade);
            this[PlayerField.APAttack]                   = new StatsRow(stats.PAAttack, PlayerField.APAttack);
            this[PlayerField.MPAttack]                   = new StatsRow(stats.PMAttack, PlayerField.MPAttack);
            this[PlayerField.PushDamageBonus]            = new StatsRow(stats.pushDamageBonus, PlayerField.PushDamageBonus);
            this[PlayerField.CriticalDamageBonus]        = new StatsRow(stats.criticalDamageBonus, PlayerField.CriticalDamageBonus);
            this[PlayerField.NeutralDamageBonus]         = new StatsRow(stats.neutralDamageBonus, PlayerField.NeutralDamageBonus);
            this[PlayerField.EarthDamageBonus]           = new StatsRow(stats.earthDamageBonus, PlayerField.EarthDamageBonus);
            this[PlayerField.WaterDamageBonus]           = new StatsRow(stats.waterDamageBonus, PlayerField.WaterDamageBonus);
            this[PlayerField.AirDamageBonus]             = new StatsRow(stats.airDamageBonus, PlayerField.AirDamageBonus);
            this[PlayerField.FireDamageBonus]            = new StatsRow(stats.fireDamageBonus, PlayerField.FireDamageBonus);
            this[PlayerField.DodgeAPProbability]         = new StatsRow(stats.dodgePALostProbability, PlayerField.DodgeAPProbability);
            this[PlayerField.DodgeMPProbability]         = new StatsRow(stats.dodgePMLostProbability, PlayerField.DodgeMPProbability);
            this[PlayerField.NeutralResistPercent]       = new StatsRow(stats.neutralElementResistPercent, PlayerField.NeutralResistPercent);
            this[PlayerField.EarthResistPercent]         = new StatsRow(stats.earthElementResistPercent, PlayerField.EarthResistPercent);
            this[PlayerField.WaterResistPercent]         = new StatsRow(stats.waterElementResistPercent, PlayerField.WaterResistPercent);
            this[PlayerField.AirResistPercent]           = new StatsRow(stats.airElementResistPercent, PlayerField.AirResistPercent);
            this[PlayerField.FireResistPercent]          = new StatsRow(stats.fireElementResistPercent, PlayerField.FireResistPercent);
            this[PlayerField.NeutralElementReduction]    = new StatsRow(stats.neutralElementReduction, PlayerField.NeutralElementReduction);
            this[PlayerField.EarthElementReduction]      = new StatsRow(stats.earthElementReduction, PlayerField.EarthElementReduction);
            this[PlayerField.WaterElementReduction]      = new StatsRow(stats.waterElementReduction, PlayerField.WaterElementReduction);
            this[PlayerField.AirElementReduction]        = new StatsRow(stats.airElementReduction, PlayerField.AirElementReduction);
            this[PlayerField.FireElementReduction]       = new StatsRow(stats.fireElementReduction, PlayerField.FireElementReduction);
            this[PlayerField.PushDamageReduction]        = new StatsRow(stats.pushDamageReduction, PlayerField.PushDamageReduction);
            this[PlayerField.CriticalDamageReduction]    = new StatsRow(stats.criticalDamageReduction, PlayerField.CriticalDamageReduction);
            this[PlayerField.PvpNeutralResistPercent]    = new StatsRow(stats.pvpNeutralElementResistPercent, PlayerField.PvpNeutralResistPercent);
            this[PlayerField.PvpEarthResistPercent]      = new StatsRow(stats.pvpEarthElementResistPercent, PlayerField.PvpEarthResistPercent);
            this[PlayerField.PvpWaterResistPercent]      = new StatsRow(stats.pvpWaterElementResistPercent, PlayerField.PvpWaterResistPercent);
            this[PlayerField.PvpAirResistPercent]        = new StatsRow(stats.pvpAirElementResistPercent, PlayerField.PvpAirResistPercent);
            this[PlayerField.PvpFireResistPercent]       = new StatsRow(stats.pvpFireElementResistPercent, PlayerField.PvpFireResistPercent);
            this[PlayerField.PvpNeutralElementReduction] = new StatsRow(stats.pvpNeutralElementReduction, PlayerField.PvpNeutralElementReduction);
            this[PlayerField.PvpEarthElementReduction]   = new StatsRow(stats.pvpEarthElementReduction, PlayerField.PvpEarthElementReduction);
            this[PlayerField.PvpWaterElementReduction]   = new StatsRow(stats.pvpWaterElementReduction, PlayerField.PvpWaterElementReduction);
            this[PlayerField.AirElementReduction]        = new StatsRow(stats.pvpAirElementReduction, PlayerField.AirElementReduction);
            this[PlayerField.PvpFireElementReduction]    = new StatsRow(stats.pvpFireElementReduction, PlayerField.PvpFireElementReduction);

            SpellsModifications = new ObservableCollection <SpellModification>(stats.spellModifications.Select(entry => new SpellModification(entry)));
        }
Esempio n. 31
0
 public void Deserialize(IDataReader reader)
 {
     Stats = new CharacterCharacteristicsInformations();
     Stats.Deserialize(reader);
 }