Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class FieryStrikeHandler : ISpellHandler
- {
- public int OnSpellFinished(SpellEventArgs args)
- {
- if (args.Mob.IsClient())
- {
- var client = args.Mob.CastToClient();
- if (client.GetTarget().IsValid && !client.GetTarget().IsNPC())
- return 0;
- var target = client.GetTarget().CastToNPC();
- var mainHandWeapon = client.GetInv().GetItem((short)InventorySlots.Primary).GetItem();
- client.DoAnim((int) Utils.GetAnimation(mainHandWeapon.ItemType), 0, true, eqFilterType.FilterNone);
- var weaponDamage = client.GetAttackDamage(target, 13, false, false, false);
- var halfDamage = (int)(weaponDamage/2.0f);
- var bonuses = client.GetSpellBonuses();
- var fireDamage = Utils.CalculateResistDamage(target, DamageTypes.Fire, halfDamage);
- if (Utils.DoesCrit(client, true))
- {
- fireDamage *= (int)(2 + (bonuses.SpellCritDmgIncrease/100));
- StaticVariables.EntityList.MessageClose(client, false, 200, 301, client.GetCleanName() + " sets their target on fire! (" + fireDamage + ")");
- }
- target.Damage(client, fireDamage, 3, (SkillType) 231, false, (char)0, false);
- if (Utils.DoesCrit(client, false))
- {
- halfDamage *= (int) (2 + (bonuses.CritDmgMob[75]/100));
- StaticVariables.EntityList.MessageClose(client, false, 200, 301, client.GetCleanName() + " lands a critical strike! (" + halfDamage + ")");
- }
- target.Damage(client, halfDamage, 0, Utils.GetSkillType(mainHandWeapon.ItemType), false, (char)0, false);
- target.AddBuff(client, 4, 1000, 80);
- }
- return -1;
- }
- public int Handle(SpellEventArgs args)
- {
- switch (args.Type)
- {
- case EventTypes.EVENT_SPELLFINISHED:
- return OnSpellFinished(args);
- }
- return 0;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement