Corrects Spirit/Charm absorption behaviour on Ninja Spirit Charm (#2980)

* Fixes #2087.
* The conditional was missing a check on Kagero/Oboro's Spirit Charm, therefore not removing the charms nor applying SP regeneration on caster.
Thanks to @Chisee!
This commit is contained in:
Chisee 2018-03-16 13:50:19 -03:00 committed by Aleos
parent ad5416e271
commit 794f497914

View File

@ -6968,7 +6968,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
case MO_ABSORBSPIRITS: case MO_ABSORBSPIRITS:
i = 0; i = 0;
if (dstsd && dstsd->spiritball && (sd == dstsd || map_flag_vs(src->m) || (sd && sd->duel_group && sd->duel_group == dstsd->duel_group)) && if (dstsd && (sd == dstsd || map_flag_vs(src->m) || (sd && sd->duel_group && sd->duel_group == dstsd->duel_group)) &&
((dstsd->class_&MAPID_BASEMASK) != MAPID_GUNSLINGER || (dstsd->class_&MAPID_UPPERMASK) != MAPID_REBELLION)) { // split the if for readability, and included gunslingers in the check so that their coins cannot be removed [Reddozen] ((dstsd->class_&MAPID_BASEMASK) != MAPID_GUNSLINGER || (dstsd->class_&MAPID_UPPERMASK) != MAPID_REBELLION)) { // split the if for readability, and included gunslingers in the check so that their coins cannot be removed [Reddozen]
if (dstsd->spiritball > 0) { if (dstsd->spiritball > 0) {
i = dstsd->spiritball * 7; i = dstsd->spiritball * 7;
@ -9961,7 +9961,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
case SR_ASSIMILATEPOWER: case SR_ASSIMILATEPOWER:
if (flag&1) { if (flag&1) {
i = 0; i = 0;
if (dstsd && dstsd->spiritball && (sd == dstsd || map_flag_vs(src->m)) && (dstsd->class_&MAPID_BASEMASK)!=MAPID_GUNSLINGER) { if (dstsd && (sd == dstsd || map_flag_vs(src->m)) && (dstsd->class_&MAPID_BASEMASK)!=MAPID_GUNSLINGER) {
if (dstsd->spiritball > 0) { if (dstsd->spiritball > 0) {
i = dstsd->spiritball; i = dstsd->spiritball;
pc_delspiritball(dstsd,dstsd->spiritball,0); pc_delspiritball(dstsd,dstsd->spiritball,0);