public static void SetValue(Mobile m, SAAbsorptionAttribute att, int value, string title) { if (!EnhancementList.ContainsKey(m)) { AddMobile(m); } EnhancementAttributes match = EnhancementList[m].FirstOrDefault(attrs => attrs.Title == title); if (match != null) { match.AbsorptionAttributes[att] = value; } else { match = new EnhancementAttributes(title); match.AbsorptionAttributes[att] = value; EnhancementList[m].Add(match); } m.CheckStatTimers(); m.UpdateResistances(); m.Delta(MobileDelta.Stat | MobileDelta.WeaponDamage | MobileDelta.Hits | MobileDelta.Stam | MobileDelta.Mana); }
public static void SetValue(Mobile m, AosAttribute att, int value, string title) { if (!EnhancementList.ContainsKey(m)) { AddMobile(m); } if (att == AosAttribute.BonusStr) { m.RemoveStatMod("MagicalEnhancementStr"); m.AddStatMod(new StatMod(StatType.Str, "MagicalEnhancementStr", value, TimeSpan.Zero)); } else if (att == AosAttribute.BonusDex) { m.RemoveStatMod("MagicalEnhancementDex"); m.AddStatMod(new StatMod(StatType.Dex, "MagicalEnhancementDex", value, TimeSpan.Zero)); } else if (att == AosAttribute.BonusInt) { m.RemoveStatMod("MagicalEnhancementInt"); m.AddStatMod(new StatMod(StatType.Int, "MagicalEnhancementInt", value, TimeSpan.Zero)); } EnhancementAttributes match = null; for (var index = 0; index < EnhancementList[m].Count; index++) { var attrs = EnhancementList[m][index]; if (attrs.Title == title) { match = attrs; break; } } if (match != null) { match.Attributes[att] = value; } else { match = new EnhancementAttributes(title); match.Attributes[att] = value; EnhancementList[m].Add(match); } m.CheckStatTimers(); m.UpdateResistances(); m.Delta(MobileDelta.Stat | MobileDelta.WeaponDamage | MobileDelta.Hits | MobileDelta.Stam | MobileDelta.Mana); }
/// <summary> /// Removes the mobile and/or attributes from the dictionary /// </summary> /// <param name="m"></param> /// <param name="title">null or default value will remove the entire entry. Add the title arg to remove only that element from the list.</param> /// <returns></returns> public static bool RemoveMobile(Mobile m, string title = null) { if (EnhancementList.ContainsKey(m)) { if (title != null) { EnhancementAttributes match = EnhancementList[m].FirstOrDefault(attrs => attrs.Title == title); if (match != null && EnhancementList[m].Contains(match)) { if (match.Attributes.BonusStr > 0) { m.RemoveStatMod("MagicalEnhancementStr"); } if (match.Attributes.BonusDex > 0) { m.RemoveStatMod("MagicalEnhancementDex"); } if (match.Attributes.BonusInt > 0) { m.RemoveStatMod("MagicalEnhancementInt"); } EnhancementList[m].Remove(match); } } if (EnhancementList[m].Count == 0 || title == null) { EnhancementList.Remove(m); } m.CheckStatTimers(); m.UpdateResistances(); m.Delta(MobileDelta.Stat | MobileDelta.WeaponDamage | MobileDelta.Hits | MobileDelta.Stam | MobileDelta.Mana); m.Items.ForEach(i => i.InvalidateProperties()); return(true); } return(false); }
public static void SetValue(Mobile m, ExtendedWeaponAttribute att, int value, string title) { if (!EnhancementList.ContainsKey(m)) { AddMobile(m); } EnhancementAttributes match = null; for (var index = 0; index < EnhancementList[m].Count; index++) { var attrs = EnhancementList[m][index]; if (attrs.Title == title) { match = attrs; break; } } if (match != null) { match.ExtendedWeaponAttributes[att] = value; } else { match = new EnhancementAttributes(title); match.ExtendedWeaponAttributes[att] = value; EnhancementList[m].Add(match); } m.CheckStatTimers(); m.UpdateResistances(); m.Delta(MobileDelta.Stat | MobileDelta.WeaponDamage | MobileDelta.Hits | MobileDelta.Stam | MobileDelta.Mana); }
/// <summary> /// Removes the mobile and/or attributes from the dictionary /// </summary> /// <param name="m"></param> /// <param name="title">null or default value will remove the entire entry. Add the title arg to remove only that element from the list.</param> /// <returns></returns> public static bool RemoveMobile(Mobile m, string title = null) { if (EnhancementList.ContainsKey(m)) { if (title != null) { EnhancementAttributes match = null; for (var index = 0; index < EnhancementList[m].Count; index++) { var attrs = EnhancementList[m][index]; if (attrs.Title == title) { match = attrs; break; } } if (match != null && EnhancementList[m].Contains(match)) { if (match.Attributes.BonusStr > 0) { m.RemoveStatMod("MagicalEnhancementStr"); } if (match.Attributes.BonusDex > 0) { m.RemoveStatMod("MagicalEnhancementDex"); } if (match.Attributes.BonusInt > 0) { m.RemoveStatMod("MagicalEnhancementInt"); } EnhancementList[m].Remove(match); } } if (EnhancementList[m].Count == 0 || title == null) { EnhancementList.Remove(m); } m.CheckStatTimers(); m.UpdateResistances(); m.Delta(MobileDelta.Stat | MobileDelta.WeaponDamage | MobileDelta.Hits | MobileDelta.Stam | MobileDelta.Mana); for (var index = 0; index < m.Items.Count; index++) { var i = m.Items[index]; i.InvalidateProperties(); } return(true); } return(false); }