Fixes Marionette Control versus Curse/Quagmire (#6183)

* Fixes #5908.
* Marionette Control will no longer cast onto targets that are either Cursed or in Quagmire.
Thanks to @Tydus1!
This commit is contained in:
Aleos 2021-08-16 14:43:52 -04:00 committed by GitHub
parent a97f3c6000
commit d8d6d74fc9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -6827,15 +6827,15 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
case CG_MARIONETTE: case CG_MARIONETTE:
{ {
struct status_change* sc = status_get_sc(src); if( (sd && dstsd && (dstsd->class_&MAPID_UPPERMASK) == MAPID_BARDDANCER && dstsd->status.sex == sd->status.sex) || (tsc && (tsc->data[SC_CURSE] || tsc->data[SC_QUAGMIRE])) )
{// Cannot cast on another bard/dancer-type class of the same gender as caster, or targets under Curse/Quagmire
if( sd && dstsd && (dstsd->class_&MAPID_UPPERMASK) == MAPID_BARDDANCER && dstsd->status.sex == sd->status.sex )
{// Cannot cast on another bard/dancer-type class of the same gender as caster
clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
map_freeblock_unlock(); map_freeblock_unlock();
return 1; return 1;
} }
status_change* sc = status_get_sc(src);
if( sc && tsc ) if( sc && tsc )
{ {
if( !sc->data[SC_MARIONETTE] && !tsc->data[SC_MARIONETTE2] ) if( !sc->data[SC_MARIONETTE] && !tsc->data[SC_MARIONETTE2] )