public IDamageItem GetItemDamage(DamageItems item) { Lazy <IDamageItem, IDamageItemMetadata> lazy = this.ItemLazies.FirstOrDefault((Lazy <IDamageItem, IDamageItemMetadata> i) => i.Metadata.Item == item); if (lazy == null) { return(null); } return(lazy.Value); }
public double GetItemDamage(AIHeroClient source, AIBaseClient target, DamageItems item, ItemDamageType type = ItemDamageType.Default) { double num = 0.0; IDamageItem itemDamage = this.GetItemDamage(item); if (itemDamage != null) { if (type.HasFlag(ItemDamageType.Default)) { num += itemDamage.GetDamage(source, target); } if (type.HasFlag(ItemDamageType.Dot)) { num += itemDamage.GetDotDamage(source, target); } if (type.HasFlag(ItemDamageType.Passive)) { num += itemDamage.GetPassiveDamage(source, target); } } return(num); }
public static double GetItemDamage(this Obj_AI_Hero source, Obj_AI_Base target, DamageItems item) { switch (item) { case DamageItems.Bilgewater: return source.CalcDamage(target, DamageType.Magical, 100); case DamageItems.BlackFireTorch: return source.CalcDamage(target, DamageType.Magical, target.MaxHealth * 0.2); case DamageItems.Botrk: return source.CalcDamage(target, DamageType.Physical, target.MaxHealth * 0.1); case DamageItems.Dfg: return source.CalcDamage(target, DamageType.Magical, target.MaxHealth * 0.15); case DamageItems.FrostQueenClaim: return source.CalcDamage(target, DamageType.Magical, 50 + 5 * source.Level); case DamageItems.Hexgun: return source.CalcDamage(target, DamageType.Magical, 150 + 0.4 * source.FlatMagicDamageMod); case DamageItems.Hydra: return source.CalcDamage( target, DamageType.Physical, source.BaseAttackDamage + source.FlatPhysicalDamageMod); case DamageItems.OdingVeils: return source.CalcDamage(target, DamageType.Magical, 200); case DamageItems.Tiamat: return source.CalcDamage( target, DamageType.Physical, source.BaseAttackDamage + source.FlatPhysicalDamageMod); case DamageItems.LiandrysTorment: var d = target.Health * .2f * 3f; return (target.CanMove || target.HasBuff("slow", true)) ? d : d * 2; } return 1d; }
/// <summary> /// Gets the damage of an Item. /// </summary> /// <param name="source"><see cref="Obj_AI_Base" /> where the damage is coming from.</param> /// <param name="target"><see cref="Obj_AI_Base" /> where the damage is going to.</param> /// <param name="damageItem">Item</param> /// <returns>Damage of the item.</returns> public static double GetItemDamage(this Obj_AI_Hero source, Obj_AI_Base target, DamageItems damageItem) { switch (damageItem) { case DamageItems.BilgewaterCutlass: return(source.CalculateDamage(target, DamageType.Magical, 100)); case DamageItems.BlackFireTorch: return(source.CalculateDamage(target, DamageType.Magical, target.MaxHealth * 0.2)); case DamageItems.BladeOfTheRuinedKing: return(source.CalculateDamage(target, DamageType.Physical, target.MaxHealth * 0.1)); case DamageItems.FrostQueenClaim: return(source.CalculateDamage(target, DamageType.Magical, 50 + 5 * source.Level)); case DamageItems.HextechGunblade: return(source.CalculateDamage(target, DamageType.Magical, 150 + 0.4 * source.FlatMagicDamageMod)); case DamageItems.RavenousHydra: return(source.CalculateDamage( target, DamageType.Physical, source.BaseAttackDamage + source.FlatPhysicalDamageMod)); case DamageItems.OdynsVeil: return(source.CalculateDamage(target, DamageType.Magical, 200)); case DamageItems.Tiamat: return(source.CalculateDamage( target, DamageType.Physical, source.BaseAttackDamage + source.FlatPhysicalDamageMod)); case DamageItems.LiandrysTorment: var d = target.Health * .2f * 3f; return((target.CanMove || target.HasBuffOfType(BuffType.Slow)) ? d : d * 2); } return(0d); }
//Adds item to List DamageItems. public void AddDamageItemToShop(DamageItem item) { DamageItems.Add(item); }
public static double GetItemDamage(this AIHeroClient source, AIBaseClient target, DamageItems item) { Damage instance = DamageExtensions.Instance; if (instance == null) { return(0.0); } return(instance.GetItemDamage(source, target, item, ItemDamageType.Default)); }