summaryrefslogtreecommitdiff
path: root/src/map/skill.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/skill.c')
-rw-r--r--src/map/skill.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/src/map/skill.c b/src/map/skill.c
index b1b0ed2fb..433c03a93 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -8224,7 +8224,7 @@ int skill_status_change_timer(int tid, unsigned int tick, int id, int data)
else
sc_data[type].timer=add_timer(1000+tick,skill_status_change_timer, bl->id, data );
break;
- case SC_TENSIONRELAX: /* テンションリラックス */
+ case SC_TENSIONRELAX: /* テンションリラックス */
if(sd){ /* SPがあって、HPが?タンでなければ?? */
if( sd->status.sp > 12 && sd->status.max_hp > sd->status.hp ){
/* if(sc_data[type].val2 % (sc_data[type].val1+3) ==0 ){
@@ -8240,6 +8240,25 @@ int skill_status_change_timer(int tid, unsigned int tick, int id, int data)
skill_status_change_end(&sd->bl,SC_TENSIONRELAX,-1);
}
break;
+ case SC_HEADCRUSH: // temporary damage [celest]
+// case SC_BLEEDING:
+ case SC_POISON2:
+ if((--sc_data[type].val3) > 0) {
+ int hp = battle_get_max_hp(bl);
+ if(bl->type == BL_PC) {
+ hp = 3 + hp*3/200;
+ pc_heal((struct map_session_data *)bl,-hp,0);
+ }
+ else if(bl->type == BL_MOB) {
+ struct mob_data *md;
+ if((md=((struct mob_data *)bl)) == NULL)
+ break;
+ hp = 3 + hp/200;
+ md->hp -= hp;
+ }
+ sc_data[type].timer=add_timer(1000+tick,skill_status_change_timer, bl->id, data );
+ }
+ break;
/* 時間切れ無し?? */
case SC_AETERNA: