From 0fb78d45b7054563ce9017c607aba7feb18cea70 Mon Sep 17 00:00:00 2001 From: aleos89 Date: Wed, 9 Mar 2016 13:32:49 -0500 Subject: [PATCH] Corrected Tiger Cannon splash damage (fixes #1020) * The splash damage now factors in resistances from the splash targets. --- src/map/skill.c | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/src/map/skill.c b/src/map/skill.c index 616df0cb90..878caecf54 100755 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -3281,6 +3281,9 @@ int64 skill_attack (int attack_type, struct block_list* src, struct block_list * case WM_REVERBERATION_MAGIC: dmg.dmotion = clif_skill_damage(src,bl,tick,dmg.amotion,dmg.dmotion,damage,dmg.div_,WM_REVERBERATION,-2,6); break; + case SR_TIGERCANNON: + dmg.dmotion = clif_skill_damage(src, bl, tick, status_get_amotion(bl), dmg.dmotion, damage, dmg.div_, skill_id, skill_lv, 6); + break; case HT_CLAYMORETRAP: case HT_BLASTMINE: case HT_FLASHER: @@ -5456,22 +5459,10 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint case SR_TIGERCANNON: if (flag&1) { if (skill_area_temp[3] == skill_id && skill_area_temp_i64[0]) { // Safe check - if (skill_area_temp[1] != bl->id) { - int64 dmg = skill_area_temp_i64[0]; - bool infdef = is_infinite_defense(bl, skill_get_type(skill_id)); - - if (infdef) - dmg = 1; - status_damage(src, bl, dmg, 0, 0, 0); - status_zap(bl, 0, dmg * 10 / 100); - clif_skill_damage(src, bl, tick, status_get_amotion(bl), 0, dmg, 1, skill_id, skill_lv, 6); - } + if (skill_area_temp[1] != bl->id) + skill_attack(BF_WEAPON, src, src, bl, skill_id, skill_lv, tick, flag); } - else { // Somehow, we failed - skill_attack(BF_WEAPON, src, src, bl, skill_id, skill_lv, tick, flag); - } - } - else if (sd) { + } else if (sd) { skill_area_temp[1] = bl->id; skill_area_temp[3] = skill_id; skill_attack(BF_WEAPON, src, src, bl, skill_id, skill_lv, tick, flag|8); // Only do attack calculation once