Advertisement
Guest User

Untitled

a guest
Sep 29th, 2013
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.18 KB | None | 0 0
  1. public class FieryStrikeHandler : ISpellHandler
  2.     {
  3.         public int OnSpellFinished(SpellEventArgs args)
  4.         {
  5.             if (args.Mob.IsClient())
  6.             {
  7.                 var client = args.Mob.CastToClient();
  8.                
  9.                 if (client.GetTarget().IsValid && !client.GetTarget().IsNPC())
  10.                     return 0;
  11.  
  12.                 var target = client.GetTarget().CastToNPC();
  13.  
  14.                 var mainHandWeapon = client.GetInv().GetItem((short)InventorySlots.Primary).GetItem();
  15.  
  16.                 client.DoAnim((int) Utils.GetAnimation(mainHandWeapon.ItemType), 0, true, eqFilterType.FilterNone);
  17.  
  18.                 var weaponDamage = client.GetAttackDamage(target, 13, false, false, false);
  19.                 var halfDamage = (int)(weaponDamage/2.0f);
  20.  
  21.                 var bonuses = client.GetSpellBonuses();
  22.  
  23.                 var fireDamage = Utils.CalculateResistDamage(target, DamageTypes.Fire, halfDamage);
  24.  
  25.                 if (Utils.DoesCrit(client, true))
  26.                 {
  27.                     fireDamage *= (int)(2 + (bonuses.SpellCritDmgIncrease/100));
  28.                     StaticVariables.EntityList.MessageClose(client, false, 200, 301, client.GetCleanName() + " sets their target on fire! (" + fireDamage + ")");
  29.                 }
  30.  
  31.                 target.Damage(client, fireDamage, 3, (SkillType) 231, false, (char)0, false);
  32.  
  33.                 if (Utils.DoesCrit(client, false))
  34.                 {
  35.                     halfDamage *= (int) (2 + (bonuses.CritDmgMob[75]/100));
  36.                     StaticVariables.EntityList.MessageClose(client, false, 200, 301, client.GetCleanName() + " lands a critical strike! (" + halfDamage + ")");
  37.                 }
  38.                 target.Damage(client, halfDamage, 0, Utils.GetSkillType(mainHandWeapon.ItemType), false, (char)0, false);
  39.  
  40.                 target.AddBuff(client, 4, 1000, 80);
  41.  
  42.             }
  43.             return -1;
  44.         }
  45.  
  46.         public int Handle(SpellEventArgs args)
  47.         {
  48.             switch (args.Type)
  49.             {
  50.                 case EventTypes.EVENT_SPELLFINISHED:
  51.                     return OnSpellFinished(args);
  52.             }
  53.             return 0;
  54.         }
  55.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement