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);
        }
Beispiel #2
0
 public static int GetValue(Mobile m, SAAbsorptionAttribute att)
 {
     if (EnhancementList.ContainsKey(m))
     {
         return(EnhancementList[m].AbsorptionAttributes[att]);
     }
     return(0);
 }
        public static int GetValue(Mobile m, SAAbsorptionAttribute att)
        {
            if (EnhancementList.ContainsKey(m))
            {
                int value = 0;
                EnhancementList[m].ForEach(attrs => value += attrs.AbsorptionAttributes[att]);
                return(value);
            }

            return(0);
        }
Beispiel #4
0
        public static void SetValue(Mobile m, SAAbsorptionAttribute att, int value, string title)
        {
            if (!EnhancementList.ContainsKey(m))
            {
                AddMobile(m, title);
            }

            if (title != EnhancementList[m].Title)
            {
                EnhancementList[m].AbsorptionAttributes[att] = value;
            }
            else
            {
                EnhancementList[m].AbsorptionAttributes[att] += value;
            }
        }
        public static int GetAttributeBonus(Mobile m, SAAbsorptionAttribute attr)
        {
            int value = 0;

            switch (attr)
            {
            case SAAbsorptionAttribute.CastingFocus:
                SkillMasterySpell spell = SkillMasterySpell.GetSpellForParty(m, typeof(PerseveranceSpell));

                if (spell != null)
                {
                    value += spell.PropertyBonus2();
                }
                break;
            }

            return(value);
        }
Beispiel #6
0
        public static int GetValue(Mobile m, SAAbsorptionAttribute att)
        {
            if (m == null)
            {
                return(0);
            }

            if (EnhancementList.ContainsKey(m))
            {
                int value = 0;

                for (var index = 0; index < EnhancementList[m].Count; index++)
                {
                    var attrs = EnhancementList[m][index];

                    value += attrs.AbsorptionAttributes[att];
                }

                return(value);
            }

            return(0);
        }
Beispiel #7
0
 public static int[] GetPropRange(SAAbsorptionAttribute attr)
 {
     switch (attr)
     {
     default:
     case SAAbsorptionAttribute.EaterFire:
     case SAAbsorptionAttribute.EaterCold:
     case SAAbsorptionAttribute.EaterPoison:
     case SAAbsorptionAttribute.EaterEnergy:
     case SAAbsorptionAttribute.EaterKinetic:
     case SAAbsorptionAttribute.EaterDamage:
     case SAAbsorptionAttribute.ResonanceFire:
     case SAAbsorptionAttribute.ResonanceCold:
     case SAAbsorptionAttribute.ResonancePoison:
     case SAAbsorptionAttribute.ResonanceEnergy:
     case SAAbsorptionAttribute.ResonanceKinetic:
     case SAAbsorptionAttribute.SoulChargeFire:
     case SAAbsorptionAttribute.SoulChargeCold:
     case SAAbsorptionAttribute.SoulChargePoison:
     case SAAbsorptionAttribute.SoulChargeEnergy:
     case SAAbsorptionAttribute.SoulChargeKinetic:
     case SAAbsorptionAttribute.CastingFocus: return(new int[] { 1, 10 });
     }
 }
Beispiel #8
0
        public static void SetValue(Mobile m, SAAbsorptionAttribute 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.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);
        }
Beispiel #9
0
		public static void SetValue( Mobile m, SAAbsorptionAttribute att, int value, string title )
		{
			if ( !EnhancementList.ContainsKey( m ) )
				AddMobile( m, title );

			if ( title != EnhancementList[m].Title )
				EnhancementList[m].AbsorptionAttributes[att] = value;
			else
				EnhancementList[m].AbsorptionAttributes[att] += value;
		}
Beispiel #10
0
		public static int GetValue( Mobile m, SAAbsorptionAttribute att )
		{
			if ( EnhancementList.ContainsKey( m ) )
				return EnhancementList[m].AbsorptionAttributes[att];
			else
				return 0;
		}
Beispiel #11
0
 public int this[SAAbsorptionAttribute attribute]
 {
     get
     {
         return this.GetValue((int)attribute);
     }
     set
     {
         this.SetValue((int)attribute, value);
     }
 }
Beispiel #12
0
        public static int GetValue(Mobile m, SAAbsorptionAttribute attribute)
        {
            if (!Core.AOS)
                return 0;

            List<Item> items = m.Items;
            int value = 0;

            #region Enhancement
            value += Enhancement.GetValue(m, attribute);
            #endregion

            for (int i = 0; i < items.Count; ++i)
            {
                Item obj = items[i];

                /*if ( obj is BaseArmor )
                {
                SAAbsorptionAttributes attrs = ((BaseArmor)obj).AbsorptionAttributes;

                if ( attrs != null )
                value += attrs[attribute];
                }
                else */
                if (obj is BaseWeapon)
                {
                    SAAbsorptionAttributes attrs = ((BaseWeapon)obj).AbsorptionAttributes;

                    if (attrs != null)
                        value += attrs[attribute];
                }
            }

            return value;
        }
Beispiel #13
0
		public static bool HasAttribute(this Item item, SAAbsorptionAttribute attr, out int value)
		{
			return HasAttribute(item, "AbsorptionAttributes", (ulong)attr, out value);
		}
Beispiel #14
0
 public static int[] GetPropRange(SAAbsorptionAttribute attr)
 {
     switch (attr)
     {
         default:
         case SAAbsorptionAttribute.EaterFire:
         case SAAbsorptionAttribute.EaterCold:
         case SAAbsorptionAttribute.EaterPoison:
         case SAAbsorptionAttribute.EaterEnergy:
         case SAAbsorptionAttribute.EaterKinetic:
         case SAAbsorptionAttribute.EaterDamage:
         case SAAbsorptionAttribute.ResonanceFire:
         case SAAbsorptionAttribute.ResonanceCold:
         case SAAbsorptionAttribute.ResonancePoison:
         case SAAbsorptionAttribute.ResonanceEnergy:
         case SAAbsorptionAttribute.ResonanceKinetic:
         case SAAbsorptionAttribute.SoulChargeFire:
         case SAAbsorptionAttribute.SoulChargeCold:
         case SAAbsorptionAttribute.SoulChargePoison:
         case SAAbsorptionAttribute.SoulChargeEnergy:
         case SAAbsorptionAttribute.SoulChargeKinetic:
         case SAAbsorptionAttribute.CastingFocus: return new int[] { 1, 10 };
     }
 }
Beispiel #15
0
        public static int GetModForAttribute(SAAbsorptionAttribute attr)
        {
            foreach (KeyValuePair<int, ImbuingDefinition> kvp in m_Table)
            {
                int mod = kvp.Key;
                ImbuingDefinition def = kvp.Value;

                if (def.Attribute is SAAbsorptionAttribute && (SAAbsorptionAttribute)def.Attribute == attr)
                    return mod;
            }

            return -1;
        }