summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/map/status.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/map/status.c b/src/map/status.c
index 0f5b2aefe..d6c180e7d 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -2614,6 +2614,11 @@ int status_calc_pc_(struct map_session_data* sd, bool first)
status->max_sp += status->max_sp * skill/100;
if((skill=pc_checkskill(sd,HW_SOULDRAIN))>0)
status->max_sp += status->max_sp * 2*skill/100;
+ if( (skill = pc_checkskill(sd,RA_RESEARCHTRAP)) > 0 )
+ status->max_sp += 200 + 20 * skill;
+ if( (skill = pc_checkskill(sd,WM_LESSON)) > 0 )
+ status->max_sp += 30 * skill;
+
// Apply relative modifiers from equipment
if(sd->sprate < 0)
@@ -3088,6 +3093,9 @@ void status_calc_regen(struct block_list *bl, struct status_data *status, struct
val += skill*3 + skill*status->max_sp/500;
if( (skill=pc_checkskill(sd,NJ_NINPOU)) > 0 )
val += skill*3 + skill*status->max_sp/500;
+ if( (skill=pc_checkskill(sd,WM_LESSON)) > 0 )
+ val += 3 + 3 * skill;
+
sregen->sp = cap_value(val, 0, SHRT_MAX);
// Skill-related recovery (only when sit)