summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--db/re/skill_cast_db.txt2
-rw-r--r--db/re/skill_db.txt2
-rw-r--r--src/map/status.c9
-rw-r--r--src/map/status.h2
4 files changed, 13 insertions, 2 deletions
diff --git a/db/re/skill_cast_db.txt b/db/re/skill_cast_db.txt
index 1e1dd5243..58947731c 100644
--- a/db/re/skill_cast_db.txt
+++ b/db/re/skill_cast_db.txt
@@ -1634,7 +1634,7 @@
//-- ALL_GUARDIAN_RECALL
2536,3000,0,0,0,0,300000
//-- ALL_ODINS_POWER
-//2537,5000,5000,0,60000,0,60000
+2537,5000,5000,0,60000,0,60000
//==========================================
//===== Homunculus Skills ==================
diff --git a/db/re/skill_db.txt b/db/re/skill_db.txt
index 483524ff9..b840ca0b5 100644
--- a/db/re/skill_db.txt
+++ b/db/re/skill_db.txt
@@ -1200,7 +1200,7 @@
2534,0,0,4,0,0x1,0,1,0,no,0,0,0,none,0, RETURN_TO_ELDICASTES,Return To Eldicastes
2535,0,0,4,0,0x1,0,1,0,no,0,0x1,0,none,0, ALL_BUYING_STORE,Open Buying Store
2536,0,0,4,0,0x1,0,1,0,no,0,0,0,none,0, ALL_GUARDIAN_RECALL,Guardian's Recall
-//2537,9,6,16,0,0x1,0,2,1,yes,0,0,0,magic,0, ALL_ODINS_POWER,Odin's Power
+2537,9,6,16,0,0x1,0,2,1,yes,0,0,0,magic,0, ALL_ODINS_POWER,Odin's Power
8001,9,6,4,0,0x1,0,5,1,no,0,0,0,magic,0, HLIF_HEAL,Healing Touch
8002,0,6,4,0,0x3,-1,5,1,no,0,0,0,none,0, HLIF_AVOID,Avoid
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,