/*public void Load(Dictionary<byte, ushort> stats) * { * if (IsLoad) * return; * * foreach (KeyValuePair<byte, ushort> values in stats) * if (values.Key < _baseStats.Length) * _baseStats[values.Key] = values.Value; * * base.Load(); * }*/ public void Load(List <CharacterInfo_stats> stats) { if (IsLoad) { return; } foreach (CharacterInfo_stats stat in stats) { if (stat.StatId < _baseStats.Length) { _baseStats[stat.StatId] = stat.StatValue; } } foreach (CharacterInfo_stats stat in stats) { if (_Owner != null && _Owner is Pet && ((Pet)_Owner).Owner != null && WorldMgr.WorldSettingsMgr.GetGenericSetting(19) == 0) { List <PetStatOverride> overrides = CharMgr.GetPetStatOverride(stat.CareerLine); List <PetMasteryModifiers> modifiers = CharMgr.GetPetMasteryModifiers(stat.CareerLine); foreach (PetStatOverride ovr in overrides) { if (stat.StatId == ovr.PrimaryValue) { AddBonusMultiplier((Stats)ovr.PrimaryValue, ovr.SecondaryValue * .01f, BuffClass.Career); } } foreach (PetMasteryModifiers mod in modifiers) { if (stat.StatId == mod.PrimaryValue) { byte[] points = new byte[((Pet)_Owner).Owner.AbtInterface._pointsInTree[mod.MasteryTree]]; int modPoints = Math.Abs(mod.PointEnd - mod.PointStart) + 1; int modPtPdct = modPoints - (Math.Abs(mod.PointEnd - points.Length)); if (points.Length >= mod.PointEnd) { for (int i = 0; i < modPoints; i++) { AddBonusMultiplier((Stats)mod.PrimaryValue, mod.MasteryModifierPercent * .01f, BuffClass.Career); AddBonusStat((Stats)mod.PrimaryValue, mod.MasteryModifierAddition, BuffClass.Career); } } else if (points.Length < mod.PointEnd && points.Length >= mod.PointStart) { for (int i = 0; i < modPtPdct; i++) { AddBonusMultiplier((Stats)mod.PrimaryValue, mod.MasteryModifierPercent * .01f, BuffClass.Career); AddBonusStat((Stats)mod.PrimaryValue, mod.MasteryModifierAddition, BuffClass.Career); } } } } } } if (_Owner is Player) { for (byte i = 0; i < _statModifiers.Length; ++i) { if (_statModifiers[i] == null) { _statModifiers[i] = new UnitStat(this); } } } base.Load(); }