summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenpachi Developer <Kenpachi.Developer@gmx.de>2020-03-09 21:37:31 +0100
committerKenpachi Developer <Kenpachi.Developer@gmx.de>2020-03-14 19:50:29 +0100
commit05aee41c44ba89bb35e233815b62d6dcefc0899c (patch)
tree90d254c4176a58a9c2f38edcd153718b35527923
parent2c26eec424e0d4f614c7ff73ad2c5402da669338 (diff)
downloadhercules-05aee41c44ba89bb35e233815b62d6dcefc0899c.tar.gz
hercules-05aee41c44ba89bb35e233815b62d6dcefc0899c.tar.bz2
hercules-05aee41c44ba89bb35e233815b62d6dcefc0899c.tar.xz
hercules-05aee41c44ba89bb35e233815b62d6dcefc0899c.zip
Add SC_ALMIGHTY status change
-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 1577523c8..9b11a43e9 100644
--- a/db/constants.conf
+++ b/db/constants.conf
@@ -1423,6 +1423,7 @@ constants_db: {
SC_SKF_ATK: 673
SC_SKF_ASPD: 674
SC_SKF_CAST: 675
+ SC_ALMIGHTY: 676
comment__: "Emotes"
e_gasp: 0
diff --git a/db/sc_config.conf b/db/sc_config.conf
index ed8506aab..11f8579e5 100644
--- a/db/sc_config.conf
+++ b/db/sc_config.conf
@@ -3721,3 +3721,11 @@ SC_SKF_CAST: {
}
Icon: "SI_SKF_CAST"
}
+SC_ALMIGHTY: {
+ Flags: {
+ NoDeathReset: true
+ NoDispelReset: true
+ NoClearanceReset: true
+ }
+ Icon: "SI_ALMIGHTY"
+}
diff --git a/src/map/status.c b/src/map/status.c
index a55ad071e..691aabd30 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -890,6 +890,7 @@ static void initChangeTables(void)
status->dbs->ChangeFlagTable[SC_SKF_ATK] |= SCB_BATK;
status->dbs->ChangeFlagTable[SC_SKF_ASPD] |= SCB_ASPD;
status->dbs->ChangeFlagTable[SC_SKF_CAST] |= SCB_NONE;
+ status->dbs->ChangeFlagTable[SC_ALMIGHTY] |= SCB_BATK | SCB_MATK;
// Cash Items
status->dbs->ChangeFlagTable[SC_FOOD_STR_CASH] |= SCB_STR;
@@ -4904,6 +4905,8 @@ static int status_calc_batk(struct block_list *bl, struct status_change *sc, int
batk += sc->data[SC_STEAMPACK]->val1;
if (sc->data[SC_SKF_ATK] != NULL)
batk += sc->data[SC_SKF_ATK]->val1;
+ if (sc->data[SC_ALMIGHTY] != NULL)
+ batk += sc->data[SC_ALMIGHTY]->val1;
if (sc->data[SC_SHRIMP])
batk += batk * sc->data[SC_SHRIMP]->val2 / 100;
@@ -5107,6 +5110,8 @@ static int status_calc_matk(struct block_list *bl, struct status_change *sc, int
matk += sc->data[SC_MAGIC_CANDY]->val1;
if (sc->data[SC_SKF_MATK] != NULL)
matk += sc->data[SC_SKF_MATK]->val1;
+ if (sc->data[SC_ALMIGHTY] != NULL)
+ matk += sc->data[SC_ALMIGHTY]->val2;
return cap_value(matk, battle_config.matk_min, battle_config.matk_max);
}
diff --git a/src/map/status.h b/src/map/status.h
index d113735f4..d5cb3da75 100644
--- a/src/map/status.h
+++ b/src/map/status.h
@@ -860,6 +860,7 @@ typedef enum sc_type {
SC_SKF_ATK,
SC_SKF_ASPD,
SC_SKF_CAST,
+ SC_ALMIGHTY,
#ifndef SC_MAX
SC_MAX, //Automatically updated max, used in for's to check we are within bounds.
#endif