Corrected some statuses and Mado Gear interaction (#3775)

* Fixes #3774.
* Resolved a few statuses getting removed when using Mado Gear that should be enabled.
* Added the ability to remove these statuses if the skills are disabled.
Thanks to @laziem and @Lemongrass3110!
This commit is contained in:
Aleos 2018-12-20 16:18:59 -05:00 committed by GitHub
parent 4944491228
commit 0d816975f7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -8927,14 +8927,15 @@ void pc_setoption(struct map_session_data *sd,int type)
}
if( (sd->class_&MAPID_THIRDMASK) == MAPID_MECHANIC ) {
if( type&OPTION_MADOGEAR && !(p_type&OPTION_MADOGEAR) ) {
static const sc_type statuses [] = { SC_MAXIMIZEPOWER, SC_OVERTHRUST, SC_WEAPONPERFECTION, SC_ADRENALINE, SC_CARTBOOST, SC_MELTDOWN, SC_MAXOVERTHRUST };
status_calc_pc(sd,SCO_NONE);
status_change_end(&sd->bl,SC_MAXIMIZEPOWER,INVALID_TIMER);
status_change_end(&sd->bl,SC_OVERTHRUST,INVALID_TIMER);
status_change_end(&sd->bl,SC_WEAPONPERFECTION,INVALID_TIMER);
status_change_end(&sd->bl,SC_ADRENALINE,INVALID_TIMER);
status_change_end(&sd->bl,SC_CARTBOOST,INVALID_TIMER);
status_change_end(&sd->bl,SC_MELTDOWN,INVALID_TIMER);
status_change_end(&sd->bl,SC_MAXOVERTHRUST,INVALID_TIMER);
for (uint8 i = 0; i < ARRAYLENGTH(statuses); i++) {
int skill_id = status_sc2skill(statuses[i]);
if (skill_id >= 0 && !(skill_get_inf3(skill_id)&INF3_USABLE_MADO))
status_change_end(&sd->bl,statuses[i],INVALID_TIMER);
}
pc_bonus_script_clear(sd,BSF_REM_ON_MADOGEAR);
} else if( !(type&OPTION_MADOGEAR) && p_type&OPTION_MADOGEAR ) {
status_calc_pc(sd,SCO_NONE);