summaryrefslogtreecommitdiff
path: root/src/map/status.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/status.c')
-rw-r--r--src/map/status.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/map/status.c b/src/map/status.c
index 508127cb6..ca1d6249d 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -7836,6 +7836,7 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
case SC_NETHERWORLD:
case SC_FRESHSHRIMP:
case SC_SV_ROOTTWIST:
+ case SC_BITESCAR:
return 0;
}
}
@@ -9822,6 +9823,11 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t
case SC_TUNAPARTY:
val2 = (st->max_hp * (val1 * 10) / 100); // %Max HP to absorb
break;
+ case SC_BITESCAR:
+ val2 = 2 * val1; // MHP% damage
+ val4 = tick / 1000;
+ tick_time = 1000;
+ break;
default:
if (calc_flag == SCB_NONE && status->dbs->SkillChangeTable[type] == 0 && status->dbs->IconChangeTable[type] == 0) {
//Status change with no calc, no icon, and no skill associated...?
@@ -12095,6 +12101,13 @@ int status_change_timer(int tid, int64 tick, int id, intptr_t data)
sc_timer_next((10000 - ((sce->val1 - 1) * 1000)) + tick, status->change_timer, bl->id, data);
}
break;
+ case SC_BITESCAR:
+ if (--(sce->val4) >= 0) {
+ status_percent_damage(bl, bl, -(sce->val2), 0, 0);
+ sc_timer_next(1000 + tick, status->change_timer, bl->id, data);
+ return 0;
+ }
+ break;
}
// default for all non-handled control paths is to end the status