diff options
author | Dastgir Pojee <dastgirp@gmail.com> | 2016-10-03 17:58:16 +0530 |
---|---|---|
committer | hemagx <ibrahem.h.basyone@gmail.com> | 2016-10-22 02:22:02 +0200 |
commit | 63c621ff7ceddb0fa12f8fabf7e074eb63b25eec (patch) | |
tree | 48bc1a63a6a401f2a70757276e9e75b3a48bed47 /src | |
parent | 8647affb1ffbae9dc8aae34409cfd7cd47aa5dff (diff) | |
download | hercules-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.c | 8 | ||||
-rw-r--r-- | src/map/status.c | 6 |
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 |