summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorprotimus <protimus@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-03-18 16:34:38 +0000
committerprotimus <protimus@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-03-18 16:34:38 +0000
commite97084001612262b011ec71c90f202160b9925c0 (patch)
treeaefdc0c69401a2e5f983854573365785768ef3e0 /src
parentba7119f4d55d750801ded87ae75b5692b242b629 (diff)
downloadhercules-e97084001612262b011ec71c90f202160b9925c0.tar.gz
hercules-e97084001612262b011ec71c90f202160b9925c0.tar.bz2
hercules-e97084001612262b011ec71c90f202160b9925c0.tar.xz
hercules-e97084001612262b011ec71c90f202160b9925c0.zip
Added Odin's Power skill.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15724 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src')
-rw-r--r--src/map/status.c9
-rw-r--r--src/map/status.h2
2 files changed, 11 insertions, 0 deletions
diff --git a/src/map/status.c b/src/map/status.c
index 8fdfdb6a5..0c0eeed0e 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -453,6 +453,7 @@ void initChangeTables(void)
set_sc( CASH_ASSUMPTIO , SC_ASSUMPTIO , SI_ASSUMPTIO , SCB_NONE );
//set_sc( ALL_PARTYFLEE , SC_INCFLEE , SI_PARTYFLEE , SCB_NONE );
+ set_sc( ALL_ODINS_POWER , SC_ODINS_POWER , SI_ODINS_POWER , SCB_MATK|SCB_BATK|SCB_MDEF|SCB_DEF );
set_sc( CR_SHRINK , SC_SHRINK , SI_SHRINK , SCB_NONE );
set_sc( RG_CLOSECONFINE , SC_CLOSECONFINE2 , SI_CLOSECONFINE2 , SCB_NONE );
@@ -4056,6 +4057,8 @@ static unsigned short status_calc_batk(struct block_list *bl, struct status_chan
batk += batk * sc->data[SC_GT_CHANGE]->val3 / 100;
if(sc->data[SC_FULL_SWING_K])
batk += sc->data[SC_FULL_SWING_K]->val1;
+ if(sc->data[SC_ODINS_POWER])
+ batk += 70;
#if RE_EDP
/**
* in RE EDP increases your base atk by atk x Skill Level.
@@ -4174,6 +4177,8 @@ static unsigned short status_calc_matk(struct block_list *bl, struct status_chan
matk += sc->data[SC_CHILLY_AIR_OPTION]->val2;
if(sc->data[SC_WATER_BARRIER])
matk -= sc->data[SC_WATER_BARRIER]->val3;
+ if(sc->data[SC_ODINS_POWER])
+ matk += 70;
return (unsigned short)cap_value(matk,0,USHRT_MAX);
}
@@ -4407,6 +4412,8 @@ static signed short status_calc_flee2(struct block_list *bl, struct status_chang
def += def * sc->data[SC_POWER_OF_GAIA]->val2 / 100;
if( sc->data[SC_PRESTIGE] )
def += def * sc->data[SC_PRESTIGE]->val1 / 100;
+ if(sc->data[SC_ODINS_POWER])
+ def -= 20;
#if REMODE
return (short)cap_value(def,SHRT_MIN,SHRT_MAX);
#else
@@ -4504,6 +4511,8 @@ static signed short status_calc_def2(struct block_list *bl, struct status_change
mdef -= mdef * sc->data[SC_GT_CHANGE]->val3 / 100;
if(sc->data[SC_WATER_BARRIER])
mdef += sc->data[SC_WATER_BARRIER]->val2;
+ if(sc->data[SC_ODINS_POWER])
+ mdef -= 20;
#if REMODE
diff --git a/src/map/status.h b/src/map/status.h
index 19985f62a..200eaf8b8 100644
--- a/src/map/status.h
+++ b/src/map/status.h
@@ -572,6 +572,7 @@ typedef enum sc_type {
SC_GLORYWOUNDS,
SC_SOULCOLD, //510
SC_HAWKEYES,
+ SC_ODINS_POWER,
SC_MAX, //Automatically updated max, used in for's to check we are within bounds.
} sc_type;
@@ -1153,6 +1154,7 @@ enum si_type {
SI_WIND_INSIGNIA = 569,
SI_EARTH_INSIGNIA = 570,
SI_EQUIPED_FLOOR = 571,
+ SI_ODINS_POWER = 583,
SI_ALL_RIDING = 613,//awesome 571-613 gap, we're missing quite a few stuff here.
SI_MAX,