Updated Offertorium curing status list (fixes #1111)

* Removes Magnificat, Blind, Curse, Poison, Hallucination, Confusion, Bleeding, Burning, Freezing, Mandragora Howling, Paralysis, Pyrexia, Death Hurt, Leech End, Venom Bleed, Toxin, and Magic Mushroom.
* Doesn't prevent the above statuses from being used again.
* Moved status removal to status_change_start overlap check.
This commit is contained in:
aleos89 2016-04-01 07:58:11 -04:00
parent cb87186578
commit c75ffa15d5
2 changed files with 18 additions and 13 deletions

View File

@ -6434,6 +6434,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
case AB_EXPIATIO:
case AB_DUPLELIGHT:
case AB_SECRAMENT:
case AB_OFFERTORIUM:
case NC_ACCELERATION:
case NC_HOVERING:
case NC_SHAPESHIFT:
@ -9244,18 +9245,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
}
break;
case AB_OFFERTORIUM:{
struct status_change *sc = status_get_sc(src);
clif_skill_nodamage(src,bl,skill_id,skill_lv,sc_start(src,bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv)));
if( sc ) {
int sc_toend[] = {SC_CURSE, SC_POISON, SC_HALLUCINATION, SC_CONFUSION, SC_BLEEDING, SC_BURNING, SC_FREEZING, SC_MANDRAGORA};
for( i = 0; i < ARRAYLENGTH(sc_toend); i++) {
status_change_end(bl, (sc_type)sc_toend[i], INVALID_TIMER);
}
}
}
break;
case WL_WHITEIMPRISON:
if( (src == bl || battle_check_target(src, bl, BCT_ENEMY)>0) && !is_boss(bl) )// Should not work with bosses.
{

View File

@ -8389,7 +8389,23 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
status_change_end(bl,SC_OFFERTORIUM,INVALID_TIMER);
break;
case SC_OFFERTORIUM:
status_change_end(bl,SC_MAGNIFICAT,INVALID_TIMER);
status_change_end(bl, SC_MAGNIFICAT, INVALID_TIMER);
status_change_end(bl, SC_BLIND, INVALID_TIMER);
status_change_end(bl, SC_CURSE, INVALID_TIMER);
status_change_end(bl, SC_POISON, INVALID_TIMER);
status_change_end(bl, SC_HALLUCINATION, INVALID_TIMER);
status_change_end(bl, SC_CONFUSION, INVALID_TIMER);
status_change_end(bl, SC_BLEEDING, INVALID_TIMER);
status_change_end(bl, SC_BURNING, INVALID_TIMER);
status_change_end(bl, SC_FREEZING, INVALID_TIMER);
status_change_end(bl, SC_MANDRAGORA, INVALID_TIMER);
status_change_end(bl, SC_PARALYSE, INVALID_TIMER);
status_change_end(bl, SC_PYREXIA, INVALID_TIMER);
status_change_end(bl, SC_DEATHHURT, INVALID_TIMER);
status_change_end(bl, SC_LEECHESEND, INVALID_TIMER);
status_change_end(bl, SC_VENOMBLEED, INVALID_TIMER);
status_change_end(bl, SC_TOXIN, INVALID_TIMER);
status_change_end(bl, SC_MAGICMUSHROOM, INVALID_TIMER);
break;
case SC_KYRIE:
// Cancels Assumptio