summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDastgir Pojee <dastgirp@gmail.com>2016-10-03 17:58:16 +0530
committerhemagx <ibrahem.h.basyone@gmail.com>2016-10-22 02:22:02 +0200
commit63c621ff7ceddb0fa12f8fabf7e074eb63b25eec (patch)
tree48bc1a63a6a401f2a70757276e9e75b3a48bed47 /src
parent8647affb1ffbae9dc8aae34409cfd7cd47aa5dff (diff)
downloadhercules-63c621ff7ceddb0fa12f8fabf7e074eb63b25eec.tar.gz
hercules-63c621ff7ceddb0fa12f8fabf7e074eb63b25eec.tar.bz2
hercules-63c621ff7ceddb0fa12f8fabf7e074eb63b25eec.tar.xz
hercules-63c621ff7ceddb0fa12f8fabf7e074eb63b25eec.zip
Implemented SU_POWEROFLIFE Skill.
Increases Flee, Hit and CRI by 20. If >= 20 Skill points invested in animal-based skills, Ranged Physical Attack + 20%.
Diffstat (limited to 'src')
-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