summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2025-05-04 17:39:18 -0300
committerJesusaves <cpntb1@ymail.com>2025-05-04 17:39:18 -0300
commit7b4d01113542ba155b5aa8cad1795ee867e36435 (patch)
tree3714b24f103e93647ba7598b5ba249a9ce1e4bd0
parentefa9deda30baf1a7cf6f1b7f6979fac08d088a67 (diff)
downloadevol-hercules-7b4d01113542ba155b5aa8cad1795ee867e36435.tar.gz
evol-hercules-7b4d01113542ba155b5aa8cad1795ee867e36435.tar.bz2
evol-hercules-7b4d01113542ba155b5aa8cad1795ee867e36435.tar.xz
evol-hercules-7b4d01113542ba155b5aa8cad1795ee867e36435.zip
Introduce SC_ELLIBAN and SC_INSPIRED
-rw-r--r--src/emap/enum/esctype.h2
-rw-r--r--src/emap/enum/esitype.h2
-rw-r--r--src/emap/skill_const.c2
-rw-r--r--src/emap/status.c32
4 files changed, 38 insertions, 0 deletions
diff --git a/src/emap/enum/esctype.h b/src/emap/enum/esctype.h
index d35b2c3..466876e 100644
--- a/src/emap/enum/esctype.h
+++ b/src/emap/enum/esctype.h
@@ -15,6 +15,8 @@ typedef enum esc_type
SC_IMPRECISE,
SC_DUMBHEAD,
SC_SLOWPOKE,
+ SC_ELLIBAN,
+ SC_INSPIRED,
} esc_type;
#endif // EVOL_MAP_ENUM_ESCTYPE
diff --git a/src/emap/enum/esitype.h b/src/emap/enum/esitype.h
index 4671486..0a76c20 100644
--- a/src/emap/enum/esitype.h
+++ b/src/emap/enum/esitype.h
@@ -26,6 +26,8 @@ enum esi_type
SI_IMPRECISE = 984,
SI_DUMBHEAD = 985,
SI_SLOWPOKE = 986,
+ SI_ELLIBAN = 987,
+ SI_INSPIRED = 988,
};
#endif // EVOL_MAP_ENUM_ESITYPE
diff --git a/src/emap/skill_const.c b/src/emap/skill_const.c
index 533f266..2d69f5f 100644
--- a/src/emap/skill_const.c
+++ b/src/emap/skill_const.c
@@ -31,5 +31,7 @@ void eskill_addskill_conststants(void)
script->set_constant("SC_IMPRECISE", SC_IMPRECISE, false, false);
script->set_constant("SC_DUMBHEAD", SC_DUMBHEAD, false, false);
script->set_constant("SC_SLOWPOKE", SC_SLOWPOKE, false, false);
+ script->set_constant("SC_ELLIBAN", SC_ELLIBAN, false, false);
+ script->set_constant("SC_INSPIRED", SC_INSPIRED, false, false);
script->constdb_comment(NULL);
}
diff --git a/src/emap/status.c b/src/emap/status.c
index 19cd48b..4ae0d0e 100644
--- a/src/emap/status.c
+++ b/src/emap/status.c
@@ -46,6 +46,14 @@ void eInitChangeTables(void)
SI_PHYSICAL_SHIELD,
SCB_DEF | SCB_DEF2 | SCB_ASPD);
status->dbs->ChangeFlagTable[SC_HALT_REGENERATION] |= SCB_REGEN;
+ status->dbs->ChangeFlagTable[SC_ALL_DOWN] |= SCB_STR | SCB_AGI | SCB_VIT | SCB_INT | SCB_DEX | SCB_LUK | SCB_MAXHP | SCB_MAXSP;
+ status->dbs->ChangeFlagTable[SC_ATK_DOWN] |= SCB_BATK | SCB_WATK | SCB_ASPD;
+ status->dbs->ChangeFlagTable[SC_VULNERABLE] |= SCB_FLEE | SCB_MAXHP | SCB_DEF;
+ status->dbs->ChangeFlagTable[SC_IMPRECISE] |= SCB_CRI | SCB_HIT | SCB_ASPD;
+ status->dbs->ChangeFlagTable[SC_DUMBHEAD] |= SCB_INT | SCB_FLEE | SCB_MAXSP;
+ status->dbs->ChangeFlagTable[SC_SLOWPOKE] |= SCB_SPEED | SCB_ASPD;
+ status->dbs->ChangeFlagTable[SC_ELLIBAN] |= SCB_STR | SCB_AGI | SCB_VIT | SCB_INT | SCB_DEX | SCB_LUK | SCB_ASPD | SCB_BATK;
+ status->dbs->ChangeFlagTable[SC_INSPIRED] |= SCB_BATK | SCB_HIT | SCB_DEF;
// TMW2 Customs
//status->dbs->IconChangeTable[SC_INCSTR] = SI_TMW2_INCSTR;
@@ -69,6 +77,8 @@ void eInitChangeTables(void)
status->dbs->IconChangeTable[SC_IMPRECISE] = SI_IMPRECISE;
status->dbs->IconChangeTable[SC_DUMBHEAD] = SI_DUMBHEAD;
status->dbs->IconChangeTable[SC_SLOWPOKE] = SI_SLOWPOKE;
+ status->dbs->IconChangeTable[SC_ELLIBAN] = SI_ELLIBAN;
+ status->dbs->IconChangeTable[SC_INSPIRED] = SI_INSPIRED;
// status->dbs->DisplayType[SC_PHYSICAL_SHIELD] = true;
}
@@ -220,6 +230,8 @@ unsigned short estatus_calc_str_post(unsigned short retVal,
if (sc->data[SC_ALL_DOWN])
retVal -= sc->data[SC_ALL_DOWN]->val1;
+ if (sc->data[SC_ELLIBAN])
+ retVal = 1;
return (unsigned short)cap_value(retVal,0,USHRT_MAX);
}
@@ -234,6 +246,8 @@ unsigned short estatus_calc_agi_post(unsigned short retVal,
if (sc->data[SC_ALL_DOWN])
retVal -= sc->data[SC_ALL_DOWN]->val1;
+ if (sc->data[SC_ELLIBAN])
+ retVal = 1;
return (unsigned short)cap_value(retVal,0,USHRT_MAX);
}
@@ -248,6 +262,8 @@ unsigned short estatus_calc_vit_post(unsigned short retVal,
if (sc->data[SC_ALL_DOWN])
retVal -= sc->data[SC_ALL_DOWN]->val1;
+ if (sc->data[SC_ELLIBAN])
+ retVal = 1;
return (unsigned short)cap_value(retVal,0,USHRT_MAX);
}
@@ -264,6 +280,8 @@ unsigned short estatus_calc_int_post(unsigned short retVal,
retVal -= sc->data[SC_ALL_DOWN]->val1;
if (sc->data[SC_DUMBHEAD])
retVal -= sc->data[SC_DUMBHEAD]->val1;
+ if (sc->data[SC_ELLIBAN])
+ retVal = 1;
return (unsigned short)cap_value(retVal,0,USHRT_MAX);
}
@@ -278,6 +296,8 @@ unsigned short estatus_calc_dex_post(unsigned short retVal,
if (sc->data[SC_ALL_DOWN])
retVal -= sc->data[SC_ALL_DOWN]->val1;
+ if (sc->data[SC_ELLIBAN])
+ retVal = 1;
return (unsigned short)cap_value(retVal,0,USHRT_MAX);
}
@@ -292,6 +312,8 @@ unsigned short estatus_calc_luk_post(unsigned short retVal,
if (sc->data[SC_ALL_DOWN])
retVal -= sc->data[SC_ALL_DOWN]->val1;
+ if (sc->data[SC_ELLIBAN])
+ retVal = 1;
return (unsigned short)cap_value(retVal,0,USHRT_MAX);
}
@@ -307,6 +329,10 @@ int estatus_calc_batk_post(int retVal,
if (sc->data[SC_ATK_DOWN])
retVal -= sc->data[SC_ATK_DOWN]->val1;
+ if (sc->data[SC_INSPIRED])
+ retVal += sc->data[SC_INSPIRED]->val1;
+ if (sc->data[SC_ELLIBAN])
+ retVal = 1;
return cap_value(retVal, 0, USHRT_MAX);
}
@@ -352,6 +378,8 @@ int estatus_calc_hit_post(int retVal,
if (sc->data[SC_IMPRECISE])
retVal -= sc->data[SC_IMPRECISE]->val1;
+ if (sc->data[SC_INSPIRED])
+ retVal += sc->data[SC_INSPIRED]->val1;
return cap_value(retVal, 1, 32767);
}
@@ -418,6 +446,8 @@ defType estatus_calc_def_post(defType retVal,
retVal += sc->data[SC_PHYSICAL_SHIELD]->val1;
if (sc->data[SC_VULNERABLE])
retVal -= sc->data[SC_VULNERABLE]->val1;
+ if (sc->data[SC_INSPIRED])
+ retVal += sc->data[SC_INSPIRED]->val1;
return (defType)cap_value(retVal, DEFTYPE_MIN, DEFTYPE_MAX);
}
@@ -438,6 +468,8 @@ short estatus_calc_fix_aspd_post(short retVal,
retVal += sc->data[SC_IMPRECISE]->val1;
if (sc->data[SC_SLOWPOKE])
retVal += sc->data[SC_SLOWPOKE]->val1 * 10;
+ if (sc->data[SC_ELLIBAN])
+ retVal = 2000;
return (short)cap_value(retVal, 0, 2000);
}