summaryrefslogtreecommitdiff
path: root/src/map/status.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/status.c')
-rw-r--r--src/map/status.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/map/status.c b/src/map/status.c
index c7b7b1567..792c225d0 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -3685,6 +3685,13 @@ static signed short status_calc_flee2(struct block_list *bl, struct status_chang
static signed char status_calc_def(struct block_list *bl, struct status_change *sc, int def)
{
+ if( bl->type == BL_PC )
+ {
+ struct unit_data *ud = unit_bl2ud( bl);
+ if( ud && ud->skilltimer != INVALID_TIMER && (ud->skillid == CR_GRANDCROSS || ud->skillid == NPC_GRANDDARKNESS) )
+ def = def*2/3;
+ }
+
if(!sc || !sc->count)
return (signed char)cap_value(def,CHAR_MIN,CHAR_MAX);