summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
Diffstat (limited to 'src/map')
-rw-r--r--src/map/battle.c8
-rw-r--r--src/map/status.c6
2 files changed, 14 insertions, 0 deletions
diff --git a/src/map/battle.c b/src/map/battle.c
index d3a499014..688f8febc 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -5217,8 +5217,16 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list
if (hd != NULL)
ATK_ADD(hd->homunculus.spiritball * 3);
}
+ if ((wd.flag&(BF_LONG|BF_MAGIC)) == BF_LONG) {
+ if (sd != NULL && pc->checkskill(sd, SU_POWEROFLIFE) > 0) {
+ if (pc->checkskill(sd, SU_SCAROFTAROU) == 5 && pc->checkskill(sd, SU_PICKYPECK) == 5 && pc->checkskill(sd, SU_ARCLOUSEDASH) == 5 && pc->checkskill(sd, SU_LUNATICCARROTBEAT) == 5) {
+ ATK_ADDRATE(20);
+ }
+ }
+ }
}
+
switch (skill_id) {
case AS_SONICBLOW:
if (sc && sc->data[SC_SOULLINK] &&
diff --git a/src/map/status.c b/src/map/status.c
index 7a24a703b..462112006 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -2863,6 +2863,8 @@ int status_calc_pc_(struct map_session_data* sd, enum e_status_calc_opt opt)
sd->critical_rate = 0;
if(sd->critical_rate != 100)
bstatus->cri = bstatus->cri * sd->critical_rate/100;
+ if (pc->checkskill(sd, SU_POWEROFLIFE) > 0)
+ bstatus->cri += 20;
if(sd->flee2_rate < 0)
sd->flee2_rate = 0;
@@ -2895,6 +2897,8 @@ int status_calc_pc_(struct map_session_data* sd, enum e_status_calc_opt opt)
bstatus->hit += 3*skill_lv;
if((sd->status.weapon == W_MACE || sd->status.weapon == W_2HMACE) && (skill_lv = pc->checkskill(sd,NC_TRAININGAXE)) > 0)
bstatus->hit += 2*skill_lv;
+ if (pc->checkskill(sd, SU_POWEROFLIFE) > 0)
+ bstatus->hit += 20;
// ----- FLEE CALCULATION -----
@@ -2903,6 +2907,8 @@ int status_calc_pc_(struct map_session_data* sd, enum e_status_calc_opt opt)
bstatus->flee += skill_lv*(sd->class_&JOBL_2 && (sd->class_&MAPID_BASEMASK) == MAPID_THIEF? 4 : 3);
if((skill_lv=pc->checkskill(sd,MO_DODGE))>0)
bstatus->flee += (skill_lv*3)>>1;
+ if (pc->checkskill(sd, SU_POWEROFLIFE) > 0)
+ bstatus->flee += 20;
// ----- EQUIPMENT-DEF CALCULATION -----
// Apply relative modifiers from equipment