Corrects NPC_DARKBREATH behavior (#4982)

* Fixes #4864.
* Adjusts damage formula to official.
* Adjusts damage type from Misc to Magic.
* Skill now has a 50% success chance to damage the target.
* Removes Flee and Defense Card ignore flags.
Thanks to @Masao87 and @mrjnumber1!
This commit is contained in:
Aleos 2020-05-20 18:50:04 -04:00 committed by GitHub
parent 20945d71db
commit 70d6876494
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 7 additions and 11 deletions

View File

@ -5836,11 +5836,8 @@ Body:
Name: NPC_DARKBREATH
Description: Dark Breath
MaxLevel: 5
Type: Misc
Type: Magic
TargetType: Attack
DamageFlags:
IgnoreFlee: true
IgnoreDefCard: true
Flags:
IsNpc: true
Range: 9

View File

@ -6121,11 +6121,8 @@ Body:
Name: NPC_DARKBREATH
Description: Dark Breath
MaxLevel: 5
Type: Misc
Type: Magic
TargetType: Attack
DamageFlags:
IgnoreFlee: true
IgnoreDefCard: true
Flags:
IsNpc: true
Range: 9

View File

@ -6164,6 +6164,9 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
#endif
}
break;
case NPC_DARKBREATH:
ad.damage = tstatus->hp * (skill_lv <= 5 ? 100 / (2 * 6 - skill_lv) : 50) / 100;
break;
case PF_SOULBURN:
ad.damage = tstatus->sp * 2;
break;
@ -6907,9 +6910,6 @@ struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list *
case NPC_SMOKING:
md.damage = 3;
break;
case NPC_DARKBREATH:
md.damage = tstatus->max_hp * skill_lv * 10 / 100;
break;
case NPC_EVILLAND:
md.damage = skill_calc_heal(src,target,skill_id,skill_lv,false);
break;

View File

@ -5517,6 +5517,8 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
case NPC_DARKBREATH:
clif_emotion(src,ET_ANGER);
if (rnd() % 2 == 0)
break; // 50% chance
case SN_FALCONASSAULT:
#ifndef RENEWAL
case PA_PRESSURE: