public static void SetValue(Mobile m, AosWeaponAttribute att, int value, string title) { if (!EnhancementList.ContainsKey(m)) { AddMobile(m); } EnhancementAttributes match = EnhancementList[m].FirstOrDefault(attrs => attrs.Title == title); if (match != null) { match.WeaponAttributes[att] = value; } else { match = new EnhancementAttributes(title); match.WeaponAttributes[att] = value; EnhancementList[m].Add(match); } m.CheckStatTimers(); m.UpdateResistances(); m.Delta(MobileDelta.Stat | MobileDelta.WeaponDamage | MobileDelta.Hits | MobileDelta.Stam | MobileDelta.Mana); }
public static int GetValue(Mobile m, AosWeaponAttribute attribute) { if (!Core.AOS) { return(0); } return(0); /* * ArrayList items = m.Items; * int value = 0; * * for ( int i = 0; i < items.Count; ++i ) * { * object obj = items[i]; * * if ( obj is BaseWeapon ) * { * AosWeaponAttributes attrs = ((BaseWeapon)obj).WeaponAttributes; * * if ( attrs != null ) * value += attrs[attribute]; * } * } * * return value; */ }
public EnchantContext(Mobile owner, AosWeaponAttribute attribute, bool spellChanneling, Timer timer) { Owner = owner; Attribute = attribute; SpellChanneling = spellChanneling; Timer = timer; }
public static int GetValue(Mobile m, AosWeaponAttribute attribute) { if (!Core.AOS) { return(0); } List <Item> items = m.Items; int value = 0; for (int i = 0; i < items.Count; ++i) { Item obj = items[i]; if (obj is BaseWeapon) { AosWeaponAttributes attrs = ((BaseWeapon)obj).WeaponAttributes; if (attrs != null) { value += attrs[attribute]; } } } return(value); }
public static int GetValue(Mobile m, AosWeaponAttribute att) { if (EnhancementList.ContainsKey(m)) return EnhancementList[m].WeaponAttributes[att]; else return 0; }
public static int GetValue(Mobile m, AosWeaponAttribute att) { if (EnhancementList.ContainsKey(m)) { return(EnhancementList[m].WeaponAttributes[att]); } return(0); }
public WeaponAttributeInfo(AosWeaponAttribute attribute, string name, AttributeCategory category, int xp, int maxvalue) { this.m_Attribute = attribute; this.m_Name = name; this.m_Category = category; this.m_XP = xp; this.m_MaxValue = maxvalue; }
public static int GetInc(this AosWeaponAttribute attr) { if (!WeaponAttrFactors.ContainsKey(attr)) { WeaponAttrFactors.Add(attr, new AttributeFactors()); } return(WeaponAttrFactors[attr].Inc); }
public static double GetWeight(this AosWeaponAttribute attr) { if (!WeaponAttrFactors.ContainsKey(attr)) { WeaponAttrFactors.Add(attr, new AttributeFactors()); } return(WeaponAttrFactors[attr].Weight); }
public EnchantmentTimer(Mobile owner, BaseWeapon wep, AosWeaponAttribute attribute, int value, double duration) : base(TimeSpan.FromSeconds(duration)) { Owner = owner; Weapon = wep; WeaponAttribute = attribute; AttributeValue = value; this.Start(); }
public ExpireTimer(BaseWeapon weapon, AosWeaponAttribute attribute, TimeSpan delay) : base(TimeSpan.FromSeconds(1.0), TimeSpan.FromSeconds(1.0)) { this.m_Weapon = weapon; this.m_Attribute = attribute; this.m_End = DateTime.UtcNow + delay; this.Priority = TimerPriority.TwoFiftyMS; }
public int this[AosWeaponAttribute attribute] { get { return(GetValue((int)attribute)); } set { SetValue((int)attribute, value); } }
public static int GetValue(Mobile m, AosWeaponAttribute att) { if (EnhancementList.ContainsKey(m)) { int value = 0; EnhancementList[m].ForEach(attrs => value += attrs.WeaponAttributes[att]); return(value); } return(0); }
private static int ScaleAttribute(object o) { if (o is AosAttribute) { AosAttribute attr = (AosAttribute)o; if (attr == AosAttribute.Luck) { return(10); } if (attr == AosAttribute.WeaponSpeed) { return(5); } } else if (o is AosArmorAttribute) { AosArmorAttribute attr = (AosArmorAttribute)o; if (attr == AosArmorAttribute.LowerStatReq) { return(10); } if (attr == AosArmorAttribute.DurabilityBonus) { return(10); } } else if (o is AosWeaponAttribute) { AosWeaponAttribute attr = (AosWeaponAttribute)o; if (attr == AosWeaponAttribute.LowerStatReq) { return(10); } if (attr == AosWeaponAttribute.DurabilityBonus) { return(10); } } else if (o is SkillName) { return(5); } return(1); }
public int GetMaxIntensity(Item item, ImbuingDefinition def) { if (item is BaseWeapon && def.Attribute is AosWeaponAttribute) { AosWeaponAttribute attr = (AosWeaponAttribute)def.Attribute; if (attr == AosWeaponAttribute.HitLeechMana || attr == AosWeaponAttribute.HitLeechHits) { return(Imbuing.GetPropRange(item, attr)[1]); } } return(def.MaxIntensity); }
public static int GetValue(Mobile m, AosWeaponAttribute attribute) { if (!Core.AOS) { return(0); } List <Item> items = m.Items; int value = 0; for (int i = 0; i < items.Count; ++i) { Item obj = items[i]; if (obj is BaseWeapon) { AosWeaponAttributes attrs = ((BaseWeapon)obj).WeaponAttributes; if (attrs != null) { value += attrs[attribute]; } } #region GeNova: Mondain's Legacy else if (obj is Glasses) { AosWeaponAttributes attrs = ((Glasses)obj).WeaponAttributes; if (attrs != null) { value += attrs[attribute]; } } if (obj is BaseWeapon) { AosWeaponAttributes attrs = ((BaseWeapon)obj).SetWeaponAttributes; if (attrs != null && ((BaseWeapon)obj).SetEquipped) { value += attrs[attribute]; } } #endregion } return(value); }
public static int GetModForAttribute(AosWeaponAttribute attr) { foreach (KeyValuePair <int, ImbuingDefinition> kvp in m_Table) { int mod = kvp.Key; ImbuingDefinition def = kvp.Value; if (def.Attribute is AosWeaponAttribute && (AosWeaponAttribute)def.Attribute == attr) { return(mod); } } return(-1); }
public static void SetValue(Mobile m, AosWeaponAttribute att, int value, string title) { if (!EnhancementList.ContainsKey(m)) { AddMobile(m, title); } if (title != EnhancementList[m].Title) { EnhancementList[m].WeaponAttributes[att] = value; } else { EnhancementList[m].WeaponAttributes[att] += value; } }
public static void SetWeight(this AosWeaponAttribute attr, double weight) { if (!WeaponAttrFactors.ContainsKey(attr)) { WeaponAttrFactors.Add( attr, new AttributeFactors { Weight = weight }); } else { WeaponAttrFactors[attr].Weight = weight; } }
public static void SetMin(this AosWeaponAttribute attr, int min) { if (!WeaponAttrFactors.ContainsKey(attr)) { WeaponAttrFactors.Add( attr, new AttributeFactors { Min = min }); } else { WeaponAttrFactors[attr].Min = min; } }
public static void SetMax(this AosWeaponAttribute attr, int max) { if (!WeaponAttrFactors.ContainsKey(attr)) { WeaponAttrFactors.Add( attr, new AttributeFactors { Max = max }); } else { WeaponAttrFactors[attr].Max = max; } }
public static void SetInc(this AosWeaponAttribute attr, int inc) { if (!WeaponAttrFactors.ContainsKey(attr)) { WeaponAttrFactors.Add( attr, new AttributeFactors { Inc = inc }); } else { WeaponAttrFactors[attr].Inc = inc; } }
public static int GetValue(Mobile m, AosWeaponAttribute attribute) { if (!Core.AOS) { return(0); } List <Item> items = m.Items; int value = 0; for (int i = 0; i < items.Count; ++i) { Item obj = items[i]; } return(value); }
public static int GetValue( Mobile m, AosWeaponAttribute attribute ) { int value = 0; foreach ( var item in m.GetEquippedItems() ) { if ( item is IWeapon ) { AosWeaponAttributes attrs = ( (IWeapon) item ).WeaponAttributes; if ( attrs != null ) value += attrs[attribute]; } } return value; }
public override void OnResponse(NetState sender, RelayInfo info) { AosWeaponAttribute attr = AosWeaponAttribute.HitLightning; switch (info.ButtonID) { default: m_Caster.SendLocalizedMessage(1080132); //You decide not to enchant your weapon. return; case 1: //Hit Lightning { attr = AosWeaponAttribute.HitLightning; break; } case 2: //Hit Fireball { attr = AosWeaponAttribute.HitFireball; break; } case 3: //Hit Harm { attr = AosWeaponAttribute.HitHarm; break; } case 4: //Hit Magic Arrow { attr = AosWeaponAttribute.HitMagicArrow; break; } case 5: //Hit Dispel { attr = AosWeaponAttribute.HitDispel; break; } } Spell spell = new EnchantSpell(m_Caster, m_Scroll, m_Weapon, attr); spell.Cast(); }
public static int[] GetPropRange(Item item, AosWeaponAttribute attr) { switch (attr) { case AosWeaponAttribute.DurabilityBonus: case AosWeaponAttribute.LowerStatReq: return(new int[] { 10, 100 }); case AosWeaponAttribute.HitLeechHits: case AosWeaponAttribute.HitLeechMana: case AosWeaponAttribute.HitLeechStam: case AosWeaponAttribute.HitLowerAttack: case AosWeaponAttribute.HitLowerDefend: case AosWeaponAttribute.HitMagicArrow: case AosWeaponAttribute.HitHarm: case AosWeaponAttribute.HitLightning: case AosWeaponAttribute.HitFireball: case AosWeaponAttribute.HitDispel: case AosWeaponAttribute.HitColdArea: case AosWeaponAttribute.HitFireArea: case AosWeaponAttribute.HitPhysicalArea: case AosWeaponAttribute.HitPoisonArea: case AosWeaponAttribute.HitCurse: case AosWeaponAttribute.HitFatigue: case AosWeaponAttribute.HitManaDrain: return(new int[] { 2, 50 }); case AosWeaponAttribute.HitEnergyArea: case AosWeaponAttribute.ResistFireBonus: case AosWeaponAttribute.ResistColdBonus: case AosWeaponAttribute.ResistPoisonBonus: case AosWeaponAttribute.ResistEnergyBonus: case AosWeaponAttribute.ResistPhysicalBonus: return(new int[] { 1, 15 }); case AosWeaponAttribute.MageWeapon: return(new int[] { 1, 10 }); case AosWeaponAttribute.SelfRepair: return(new int[] { 1, 5 }); case AosWeaponAttribute.SplinteringWeapon: return(new int[] { 5, 30 }); default: case AosWeaponAttribute.UseBestSkill: case AosWeaponAttribute.BattleLust: case AosWeaponAttribute.BloodDrinker: return(new int[] { 1, 1 }); } }
public static int GetChance(AosWeaponAttribute attr, AosWeaponAttributes itemAttrs) { int chance; switch (attr) { case AosWeaponAttribute.DurabilityBonus: chance = itemAttrs[attr] / 40; break; case AosWeaponAttribute.LowerStatReq: chance = itemAttrs[attr] / 4; break; case AosWeaponAttribute.ResistPhysicalBonus: case AosWeaponAttribute.ResistFireBonus: case AosWeaponAttribute.ResistColdBonus: case AosWeaponAttribute.ResistPoisonBonus: case AosWeaponAttribute.ResistEnergyBonus: chance = itemAttrs[attr]; break; default: chance = itemAttrs[attr] / 2; break; } return(chance); }
public static int GetValue(Mobile m, AosWeaponAttribute 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.WeaponAttributes[att]; } return(value); } return(0); }
public static int GetValue(Mobile m, AosWeaponAttribute attribute) { if (!Core.AOS) return 0; ArrayList items = m.Items; int value = 0; for (int i = 0; i < items.Count; ++i) { object obj = items[i]; if (obj is BaseWeapon) { AosWeaponAttributes attrs = ((BaseWeapon)obj).WeaponAttributes; if (attrs != null) value += attrs[attribute]; } } return value; }
public static void SetValue(Mobile m, AosWeaponAttribute 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.WeaponAttributes[att] = value; } else { match = new EnhancementAttributes(title); match.WeaponAttributes[att] = value; EnhancementList[m].Add(match); } m.CheckStatTimers(); m.UpdateResistances(); m.Delta(MobileDelta.Stat | MobileDelta.WeaponDamage | MobileDelta.Hits | MobileDelta.Stam | MobileDelta.Mana); }
public int this[AosWeaponAttribute attribute] { get { return this.ExtendedGetValue((int)attribute); } set { this.SetValue((int)attribute, value); } }
public static int GetValue(Mobile m, AosWeaponAttribute 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 BaseWeapon) { AosWeaponAttributes attrs = ((BaseWeapon)obj).WeaponAttributes; if (attrs != null) value += attrs[attribute]; } #region Mondain's Legacy else if (obj is Glasses) { AosWeaponAttributes attrs = ((Glasses)obj).WeaponAttributes; if (attrs != null) value += attrs[attribute]; } #endregion } return value; }
public EnchantSpell( Mobile caster, Item scroll, BaseWeapon weapon, AosWeaponAttribute attribute ) : base( caster, scroll, m_Info ) { Weapon = weapon; this.Attribute = attribute; }
private static void ApplyAttribute( AosWeaponAttributes attrs, int min, int max, AosWeaponAttribute attr, int low, int high, int scale ) { attrs[attr] = Scale( min, max, low / scale, high / scale ) * scale; }
public int this[AosWeaponAttribute attribute] { get { return GetValue( (int)attribute ); } set { SetValue( (int)attribute, value ); } }
public static void ApplyAttribute( AosWeaponAttributes attrs, AosWeaponAttribute attr, int amount ) { attrs[attr] += amount; }
public static int GetModForAttribute(AosWeaponAttribute attr) { foreach (KeyValuePair<int, ImbuingDefinition> kvp in m_Table) { int mod = kvp.Key; ImbuingDefinition def = kvp.Value; if (def.Attribute is AosWeaponAttribute && (AosWeaponAttribute)def.Attribute == attr) return mod; } return -1; }
public static int[] GetPropRange(AosWeaponAttribute attr) { switch (attr) { case AosWeaponAttribute.DurabilityBonus: case AosWeaponAttribute.LowerStatReq: return new int[] { 10, 100 }; case AosWeaponAttribute.HitLeechHits: case AosWeaponAttribute.HitLeechMana: case AosWeaponAttribute.HitLeechStam: case AosWeaponAttribute.HitLowerAttack: case AosWeaponAttribute.HitLowerDefend: case AosWeaponAttribute.HitMagicArrow: case AosWeaponAttribute.HitHarm: case AosWeaponAttribute.HitLightning: case AosWeaponAttribute.HitFireball: case AosWeaponAttribute.HitDispel: case AosWeaponAttribute.HitColdArea: case AosWeaponAttribute.HitFireArea: case AosWeaponAttribute.HitPhysicalArea: case AosWeaponAttribute.HitPoisonArea: case AosWeaponAttribute.HitCurse: case AosWeaponAttribute.HitFatigue: case AosWeaponAttribute.HitManaDrain: return new int[] { 2, 50 }; case AosWeaponAttribute.HitEnergyArea: case AosWeaponAttribute.ResistFireBonus: case AosWeaponAttribute.ResistColdBonus: case AosWeaponAttribute.ResistPoisonBonus: case AosWeaponAttribute.ResistEnergyBonus: case AosWeaponAttribute.ResistPhysicalBonus: return new int[] { 1, 15 }; case AosWeaponAttribute.MageWeapon: return new int[] { 1, 10 }; case AosWeaponAttribute.SelfRepair: return new int[] { 1, 5 }; case AosWeaponAttribute.SplinteringWeapon: return new int[] { 5, 30 }; default: case AosWeaponAttribute.UseBestSkill: case AosWeaponAttribute.BattleLust: case AosWeaponAttribute.BloodDrinker: return new int[] { 1, 1 }; } }
public static bool HasAttribute(this Item item, AosWeaponAttribute attr, out int value) { return HasAttribute(item, "WeaponAttributes", (ulong)attr, out value); }
public EnchantmentTimer(Mobile owner, BaseWeapon wep, AosWeaponAttribute attribute, int value, double duration) : base(TimeSpan.FromSeconds(duration)) { Owner = owner; Weapon = wep; WeaponAttribute = attribute; AttributeValue = value; this.Start(); }
public static void RemoveAttribute( AosWeaponAttributes attrs, AosWeaponAttribute attr, int amount ) { attrs[attr] = Math.Max( attrs[attr] - amount, 0 ); }
public BonusAttribute( AosWeaponAttribute attr, int amount ) : this((object)attr, amount) { }
private static bool IsHitAreaOrSpell(AosWeaponAttribute attr, int mod) { if (attr >= AosWeaponAttribute.HitMagicArrow && attr <= AosWeaponAttribute.HitDispel) return mod >= 35 && mod <= 39; else if (attr >= AosWeaponAttribute.HitColdArea && attr <= AosWeaponAttribute.HitPhysicalArea) return mod >= 30 && mod <= 34; return false; }
public static int GetValue( Mobile m, AosWeaponAttribute attribute ) { if( !Core.AOS ) return 0; List<Item> items = m.Items; int value = 0; for( int i = 0; i < items.Count; ++i ) { Item obj = items[i]; if( obj is BaseWeapon ) { AosWeaponAttributes attrs = ((BaseWeapon)obj).WeaponAttributes; if( attrs != null ) value += attrs[attribute]; } } return value; }
public static int[] GetPropRange(Item item, AosWeaponAttribute attr) { if (Core.SA && item is BaseWeapon && (attr == AosWeaponAttribute.HitLeechHits || attr == AosWeaponAttribute.HitLeechMana)) { BaseWeapon wep = item as BaseWeapon; int max = (int)(wep.MlSpeed * 2500 / (100 + wep.Attributes.WeaponSpeed)); if (wep is BaseRanged) max /= 2; return new int[] { 2, max }; } switch (attr) { case AosWeaponAttribute.DurabilityBonus: case AosWeaponAttribute.LowerStatReq: return new int[] { 10, 100 }; case AosWeaponAttribute.HitLeechHits: case AosWeaponAttribute.HitLeechMana: case AosWeaponAttribute.HitLeechStam: case AosWeaponAttribute.HitLowerAttack: case AosWeaponAttribute.HitLowerDefend: case AosWeaponAttribute.HitMagicArrow: case AosWeaponAttribute.HitHarm: case AosWeaponAttribute.HitLightning: case AosWeaponAttribute.HitFireball: case AosWeaponAttribute.HitDispel: case AosWeaponAttribute.HitColdArea: case AosWeaponAttribute.HitFireArea: case AosWeaponAttribute.HitPhysicalArea: case AosWeaponAttribute.HitPoisonArea: case AosWeaponAttribute.HitCurse: case AosWeaponAttribute.HitFatigue: case AosWeaponAttribute.HitManaDrain: return new int[] { 2, 50 }; case AosWeaponAttribute.HitEnergyArea: case AosWeaponAttribute.ResistFireBonus: case AosWeaponAttribute.ResistColdBonus: case AosWeaponAttribute.ResistPoisonBonus: case AosWeaponAttribute.ResistEnergyBonus: case AosWeaponAttribute.ResistPhysicalBonus: return new int[] { 1, 15 }; case AosWeaponAttribute.MageWeapon: return new int[] { 1, 10 }; case AosWeaponAttribute.SelfRepair: return new int[] { 1, 5 }; case AosWeaponAttribute.SplinteringWeapon: return new int[] { 5, 30 }; default: case AosWeaponAttribute.UseBestSkill: case AosWeaponAttribute.BattleLust: case AosWeaponAttribute.BloodDrinker: return new int[] { 1, 1 }; } }
private static void ApplyAttribute( AosWeaponAttributes attrs, int min, int max, AosWeaponAttribute attr, int low, int high ) { attrs[attr] = Scale( min, max, low, high ); }
public static int GetValue(Mobile m, AosWeaponAttribute attribute) { return 0; }
public static int GetChance( AosWeaponAttribute attr, AosWeaponAttributes itemAttrs ) { int chance; switch ( attr ) { case AosWeaponAttribute.DurabilityBonus: chance = itemAttrs[attr] / 50; break; case AosWeaponAttribute.LowerStatReq: chance = itemAttrs[attr] / 6; break; case AosWeaponAttribute.ResistPhysicalBonus: case AosWeaponAttribute.ResistFireBonus: case AosWeaponAttribute.ResistColdBonus: case AosWeaponAttribute.ResistPoisonBonus: case AosWeaponAttribute.ResistEnergyBonus: chance = itemAttrs[attr]; break; default: chance = itemAttrs[attr] / 2; break; } return chance; }
public static void ApplyAttribute( Mobile from, BookOfSpellCrafts book, int craftId, BaseWeapon weapon, AosWeaponAttribute attribute, int minimum, int maximum, int scale ) { CheckItem( from, weapon, ( weapon.WeaponAttributes[ attribute ] == 0 ) ); UseMagicJewels( from, book, weapon, SpellCraftConfig.MagicJewelRequirements[craftId] ); int scalar = ComputeSkillScalar( from ); ApplyAttribute( weapon.WeaponAttributes, SpellCraftConfig.MinimumIntensity * scalar, SpellCraftConfig.MaximumIntensity * scalar, attribute, minimum, maximum, scale ); MarkWeapon( from, weapon ); }
public static void SetValue( Mobile m, AosWeaponAttribute att, int value, string title ) { if ( !EnhancementList.ContainsKey( m ) ) AddMobile( m, title ); if ( title != EnhancementList[m].Title ) EnhancementList[m].WeaponAttributes[att] = value; else EnhancementList[m].WeaponAttributes[att] += value; }
public ExpireTimer(BaseWeapon weapon, AosWeaponAttribute attribute, Mobile from, TimeSpan delay) : base(TimeSpan.FromSeconds(1.0), TimeSpan.FromSeconds(1.0)) { m_From = from; this.m_Weapon = weapon; this.m_Attribute = attribute; this.m_End = DateTime.UtcNow + delay; this.Priority = TimerPriority.TwoFiftyMS; }
private static void ApplyAttribute(AosWeaponAttributes attrs, int min, int max, AosWeaponAttribute attr, int low, int high, int scale) { attrs[attr] = Scale(min, max, low / scale, high / scale) * scale; }
public WeaponAttributeInfo(AosWeaponAttribute attribute, string name, AttributeCategory category, int xp, int maxvalue) { this.m_Attribute = attribute; this.m_Name = name; this.m_Category = category; this.m_XP = xp; this.m_MaxValue = maxvalue; }