From 8557afc9875ae5fcf46b17728cddab009aa5d472 Mon Sep 17 00:00:00 2001 From: Dastgir Pojee Date: Mon, 3 Oct 2016 18:49:33 +0530 Subject: Implemented SU_ARCLOUSEDASH Skill. For (50+10*SkillLv) Seconds, Atk +(15+5*SkillLv). Increases Movement Speed. If Target is Doram Race, Increases Range Physical attack by 10%. --- src/map/status.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'src/map/status.c') diff --git a/src/map/status.c b/src/map/status.c index 1d87b8f3a..d842d91ea 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -732,6 +732,7 @@ void initChangeTables(void) set_sc_with_vfx(SU_SV_ROOTTWIST, SC_SV_ROOTTWIST, SI_SV_ROOTTWIST, SCB_NONE); add_sc(SU_SCAROFTAROU, SC_STUN ); status->set_sc(SU_SCAROFTAROU, SC_BITESCAR, SI_BITESCAR, SCB_NONE); + status->set_sc(SU_ARCLOUSEDASH, SC_ARCLOUSEDASH, SI_ARCLOUSEDASH, SCB_AGI | SCB_SPEED); // Elemental Spirit summoner's 'side' status changes. status->set_sc( EL_CIRCLE_OF_FIRE , SC_CIRCLE_OF_FIRE_OPTION, SI_CIRCLE_OF_FIRE_OPTION, SCB_NONE ); @@ -4619,9 +4620,12 @@ unsigned short status_calc_agi(struct block_list *bl, struct status_change *sc, if (sc->data[SC_2011RWC]) agi += sc->data[SC_2011RWC]->val1; - if(sc->data[SC_MARSHOFABYSS]) + if (sc->data[SC_MARSHOFABYSS]) agi -= agi * sc->data[SC_MARSHOFABYSS]->val2 / 100; + if (sc->data[SC_ARCLOUSEDASH]) + agi += sc->data[SC_ARCLOUSEDASH]->val2; + return (unsigned short)cap_value(agi,0,USHRT_MAX); } @@ -5809,6 +5813,8 @@ unsigned short status_calc_speed(struct block_list *bl, struct status_change *sc val = max(val, sc->data[SC_MOVHASTE_HORSE]->val1); if( sd && sd->bonus.speed_rate + sd->bonus.speed_add_rate < 0 ) // permanent item-based speedup val = max( val, -(sd->bonus.speed_rate + sd->bonus.speed_add_rate) ); + if (sc->data[SC_ARCLOUSEDASH]) + val = max(val, sc->data[SC_ARCLOUSEDASH]->val3); speed_rate -= val; } @@ -9803,6 +9809,12 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t if (val4 <= 0) // Prevents a negeative value from happening val4 = 0; break; + case SC_ARCLOUSEDASH: ++ val2 = 15 + 5 * val1; // AGI ++ val3 = 25; // Move speed increase ++ if (sd && (sd->class_&MAPID_BASEMASK) == MAPID_SUMMONER) ++ val4 = 10; // Ranged ATK increase ++ break; default: if (calc_flag == SCB_NONE && status->dbs->SkillChangeTable[type] == 0 && status->dbs->IconChangeTable[type] == 0) { //Status change with no calc, no icon, and no skill associated...? -- cgit v1.2.3-60-g2f50