diff options
author | Kenpachi Developer <Kenpachi.Developer@gmx.de> | 2020-03-06 22:11:45 +0100 |
---|---|---|
committer | Kenpachi Developer <Kenpachi.Developer@gmx.de> | 2020-03-14 19:45:25 +0100 |
commit | 52c5fd966f6382087b9ab96c0000c791aa184c3e (patch) | |
tree | dd200bc65592163da4a7faff34fa336cccd296a2 /src/map | |
parent | 9106bbab19b4feaa4623a3b8e5d59e08ef73b640 (diff) | |
download | hercules-52c5fd966f6382087b9ab96c0000c791aa184c3e.tar.gz hercules-52c5fd966f6382087b9ab96c0000c791aa184c3e.tar.bz2 hercules-52c5fd966f6382087b9ab96c0000c791aa184c3e.tar.xz hercules-52c5fd966f6382087b9ab96c0000c791aa184c3e.zip |
Add SC_POPECOOKIE status change
Diffstat (limited to 'src/map')
-rw-r--r-- | src/map/status.c | 17 | ||||
-rw-r--r-- | src/map/status.h | 1 |
2 files changed, 18 insertions, 0 deletions
diff --git a/src/map/status.c b/src/map/status.c index 1f0f31119..c379dff28 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -884,6 +884,7 @@ static void initChangeTables(void) status->dbs->ChangeFlagTable[SC_PHI_DEMON] |= SCB_ALL; status->dbs->ChangeFlagTable[SC_MAGIC_CANDY] |= SCB_MATK | SCB_ALL; status->dbs->ChangeFlagTable[SC_MYSTICPOWDER] |= SCB_FLEE | SCB_LUK; + status->dbs->ChangeFlagTable[SC_POPECOOKIE] |= SCB_BASE | SCB_BATK | SCB_MATK; // Cash Items status->dbs->ChangeFlagTable[SC_FOOD_STR_CASH] |= SCB_STR; @@ -3038,6 +3039,18 @@ static int status_calc_pc_(struct map_session_data *sd, enum e_status_calc_opt o sd->subele[ELE_EARTH] += i; sd->subele[ELE_FIRE] -= i; } + if (sc->data[SC_POPECOOKIE] != NULL) { + i = sc->data[SC_POPECOOKIE]->val3; + sd->subele[ELE_WATER] += i; + sd->subele[ELE_EARTH] += i; + sd->subele[ELE_FIRE] += i; + sd->subele[ELE_WIND] += i; + sd->subele[ELE_POISON] += i; + sd->subele[ELE_HOLY] += i; + sd->subele[ELE_DARK] += i; + sd->subele[ELE_GHOST] += i; + sd->subele[ELE_UNDEAD] += i; + } if (sc->data[SC_MTF_MLEATKED]) sd->subele[ELE_NEUTRAL] += sc->data[SC_MTF_MLEATKED]->val1; if (sc->data[SC_FIRE_INSIGNIA] && sc->data[SC_FIRE_INSIGNIA]->val1 == 3) @@ -4801,6 +4814,8 @@ static int status_calc_batk(struct block_list *bl, struct status_change *sc, int /* some statuses that are hidden in the status window */ if(sc->data[SC_PLUSATTACKPOWER]) batk += sc->data[SC_PLUSATTACKPOWER]->val1; + if (sc->data[SC_POPECOOKIE] != NULL) + batk += batk * sc->data[SC_POPECOOKIE]->val1 / 100; return cap_value(batk, battle_config.batk_min, battle_config.batk_max); } #ifndef RENEWAL @@ -5020,6 +5035,8 @@ static int status_calc_matk(struct block_list *bl, struct status_change *sc, int /* some statuses that are hidden in the status window */ if (sc->data[SC_MINDBREAKER]) matk += matk * sc->data[SC_MINDBREAKER]->val2 / 100; + if (sc->data[SC_POPECOOKIE] != NULL) + matk += matk * sc->data[SC_POPECOOKIE]->val2 / 100; 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 ada18bc0a..aaedc4cb4 100644 --- a/src/map/status.h +++ b/src/map/status.h @@ -854,6 +854,7 @@ typedef enum sc_type { SC_RESIST_PROPERTY_WIND, SC_CLIENT_ONLY_EQUIP_ARROW, SC_MADOGEAR, + SC_POPECOOKIE, #ifndef SC_MAX SC_MAX, //Automatically updated max, used in for's to check we are within bounds. #endif |