summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--db/constants.conf1
-rw-r--r--db/sc_config.conf8
-rw-r--r--src/map/status.c5
-rw-r--r--src/map/status.h1
4 files changed, 15 insertions, 0 deletions
diff --git a/db/constants.conf b/db/constants.conf
index b3ed813ad..f26257660 100644
--- a/db/constants.conf
+++ b/db/constants.conf
@@ -1421,6 +1421,7 @@ constants_db: {
SC_VITALIZE_POTION: 671
SC_SKF_MATK: 672
SC_SKF_ATK: 673
+ SC_SKF_ASPD: 674
comment__: "Emotes"
e_gasp: 0
diff --git a/db/sc_config.conf b/db/sc_config.conf
index 959744267..6315d9cb2 100644
--- a/db/sc_config.conf
+++ b/db/sc_config.conf
@@ -3705,3 +3705,11 @@ SC_SKF_ATK: {
}
Icon: "SI_SKF_ATK"
}
+SC_SKF_ASPD: {
+ Flags: {
+ NoDispelReset: true
+ NoClearanceReset: true
+ Buff: true
+ }
+ Icon: "SI_SKF_ASPD"
+}
diff --git a/src/map/status.c b/src/map/status.c
index f6615b94d..167851e38 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -888,6 +888,7 @@ static void initChangeTables(void)
status->dbs->ChangeFlagTable[SC_VITALIZE_POTION] |= SCB_BATK | SCB_MATK;
status->dbs->ChangeFlagTable[SC_SKF_MATK] |= SCB_MATK;
status->dbs->ChangeFlagTable[SC_SKF_ATK] |= SCB_BATK;
+ status->dbs->ChangeFlagTable[SC_SKF_ASPD] |= SCB_ASPD;
// Cash Items
status->dbs->ChangeFlagTable[SC_FOOD_STR_CASH] |= SCB_STR;
@@ -5929,6 +5930,8 @@ static short status_calc_aspd(struct block_list *bl, struct status_change *sc, s
bonus += sc->data[SC_BATTLESCROLL]->val1;
if (sc->data[SC_STEAMPACK])
bonus += sc->data[SC_STEAMPACK]->val2;
+ if (sc->data[SC_SKF_ASPD] != NULL)
+ bonus += sc->data[SC_SKF_ASPD]->val1;
}
return (bonus + pots);
@@ -6096,6 +6099,8 @@ static short status_calc_aspd_rate(struct block_list *bl, struct status_change *
aspd_rate += sc->data[SC_BATTLESCROLL]->val1 * 10;
if (sc->data[SC_STEAMPACK])
aspd_rate += sc->data[SC_STEAMPACK]->val2 * 10;
+ if (sc->data[SC_SKF_ASPD] != NULL)
+ aspd_rate -= sc->data[SC_SKF_ASPD]->val1 * 10;
return (short)cap_value(aspd_rate,0,SHRT_MAX);
}
diff --git a/src/map/status.h b/src/map/status.h
index 5f0d51b26..f396d6fc0 100644
--- a/src/map/status.h
+++ b/src/map/status.h
@@ -858,6 +858,7 @@ typedef enum sc_type {
SC_VITALIZE_POTION,
SC_SKF_MATK,
SC_SKF_ATK,
+ SC_SKF_ASPD,
#ifndef SC_MAX
SC_MAX, //Automatically updated max, used in for's to check we are within bounds.
#endif