Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        /// <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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        /// <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);
        }