Fixes renewal Spiral Pierce damage (#5262)

* Fixes #3503.
* Adjusts weight damage modifier 7%.
* Adjusts size damage modifier for small targets to 115%.
* Adjusts size damage modifier for large targets to 85%.
* Adjusts size damage modifier to only apply for players.
Thanks to @mrjnumber1!
This commit is contained in:
Aleos 2020-08-21 10:17:44 -04:00 committed by GitHub
parent 58031236c3
commit 73928b4fe2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -3333,26 +3333,25 @@ static void battle_calc_skill_base_damage(struct Damage* wd, struct block_list *
if (index >= 0 &&
sd->inventory_data[index] &&
sd->inventory_data[index]->type == IT_WEAPON)
wd->equipAtk += sd->inventory_data[index]->weight/20; // weight from spear is treated as equipment ATK on official [helvetica]
wd->equipAtk += sd->inventory_data[index]->weight*7/100; // weight from spear is treated as equipment ATK on official [helvetica]
battle_calc_damage_parts(wd, src, target, skill_id, skill_lv);
wd->masteryAtk = 0; // weapon mastery is ignored for spiral
switch (tstatus->size) { //Size-fix. Is this modified by weapon perfection?
case SZ_SMALL: //Small: 115%
ATK_RATE(wd->damage, wd->damage2, 115);
RE_ALLATK_RATE(wd, 115);
break;
//case SZ_MEDIUM: //Medium: 100%
case SZ_BIG: //Large: 85%
ATK_RATE(wd->damage, wd->damage2, 85);
RE_ALLATK_RATE(wd, 85);
break;
}
} else {
wd->damage = battle_calc_base_damage(src, sstatus, &sstatus->rhw, sc, tstatus->size, 0); //Monsters have no weight and use ATK instead
}
switch (tstatus->size) { //Size-fix. Is this modified by weapon perfection?
// !TODO: Confirm new size modifiers
case SZ_SMALL: //Small: 125%
ATK_RATE(wd->damage, wd->damage2, 125);
RE_ALLATK_RATE(wd, 125);
break;
//case SZ_MEDIUM: //Medium: 100%
case SZ_BIG: //Large: 75%
ATK_RATE(wd->damage, wd->damage2, 75);
RE_ALLATK_RATE(wd, 75);
break;
}
#else
case NJ_ISSEN:
wd->damage = 40 * sstatus->str + sstatus->hp * 8 * skill_lv / 100;