From 52c5fd966f6382087b9ab96c0000c791aa184c3e Mon Sep 17 00:00:00 2001 From: Kenpachi Developer Date: Fri, 6 Mar 2020 22:11:45 +0100 Subject: Add SC_POPECOOKIE status change --- src/map/status.c | 17 +++++++++++++++++ src/map/status.h | 1 + 2 files changed, 18 insertions(+) (limited to 'src') 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 -- cgit v1.2.3-70-g09d2 From 7490bd522753bf4adcdb807c39dac9914dff37c7 Mon Sep 17 00:00:00 2001 From: Kenpachi Developer Date: Fri, 6 Mar 2020 23:59:59 +0100 Subject: Add SC_VITALIZE_POTION status change --- db/constants.conf | 1 + db/sc_config.conf | 6 ++++++ src/map/pc.c | 4 ++++ src/map/skill.c | 2 ++ src/map/status.c | 5 +++++ src/map/status.h | 1 + 6 files changed, 19 insertions(+) (limited to 'src') diff --git a/db/constants.conf b/db/constants.conf index 12fa6e059..c05f9c240 100644 --- a/db/constants.conf +++ b/db/constants.conf @@ -1418,6 +1418,7 @@ constants_db: { SC_CLIENT_ONLY_EQUIP_ARROW: 668 SC_MADOGEAR: 669 SC_POPECOOKIE: 670 + SC_VITALIZE_POTION: 671 comment__: "Emotes" e_gasp: 0 diff --git a/db/sc_config.conf b/db/sc_config.conf index acfc531f3..dbddfd57d 100644 --- a/db/sc_config.conf +++ b/db/sc_config.conf @@ -3683,3 +3683,9 @@ SC_POPECOOKIE: { } Icon: "SI_POPECOOKIE" } +SC_VITALIZE_POTION: { + Flags: { + NoDispelReset: true + } + Icon: "SI_VITALIZE_POTION" +} diff --git a/src/map/pc.c b/src/map/pc.c index c96e957c7..0cc7d7d70 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -8786,6 +8786,10 @@ static int pc_itemheal(struct map_session_data *sd, int itemid, int hp, int sp) // 2014 Halloween Event : Pumpkin Bonus if ( sd->sc.data[SC_MTF_PUMPKIN] && itemid == ITEMID_PUMPKIN ) hp += (int)(hp * sd->sc.data[SC_MTF_PUMPKIN]->val1/100); + + // Activation Potion + if (sd->sc.data[SC_VITALIZE_POTION] != NULL) + hp += hp * sd->sc.data[SC_VITALIZE_POTION]->val3 / 100; } if(sp) { bonus = 100 + (sd->battle_status.int_<<1) diff --git a/src/map/skill.c b/src/map/skill.c index a8dbefbd7..ee23704bb 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -935,6 +935,8 @@ static int skill_calc_heal(struct block_list *src, struct block_list *target, ui hp -= hp * 20/100; if(sc->data[SC_HEALPLUS] && skill_id != NPC_EVILLAND && skill_id != BA_APPLEIDUN) hp += hp * sc->data[SC_HEALPLUS]->val1/100; // Only affects Heal, Sanctuary and PotionPitcher.(like bHealPower) [Inkfish] + if (sc->data[SC_VITALIZE_POTION] != NULL && skill_id != NPC_EVILLAND && skill_id != BA_APPLEIDUN) + hp += hp * sc->data[SC_VITALIZE_POTION]->val3 / 100; if(sc->data[SC_WATER_INSIGNIA] && sc->data[SC_WATER_INSIGNIA]->val1 == 2) hp += hp / 10; if (sc->data[SC_VITALITYACTIVATION]) diff --git a/src/map/status.c b/src/map/status.c index c379dff28..b0fef0b2e 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -885,6 +885,7 @@ static void initChangeTables(void) 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; + status->dbs->ChangeFlagTable[SC_VITALIZE_POTION] |= SCB_BATK | SCB_MATK; // Cash Items status->dbs->ChangeFlagTable[SC_FOOD_STR_CASH] |= SCB_STR; @@ -4816,6 +4817,8 @@ static int status_calc_batk(struct block_list *bl, struct status_change *sc, int batk += sc->data[SC_PLUSATTACKPOWER]->val1; if (sc->data[SC_POPECOOKIE] != NULL) batk += batk * sc->data[SC_POPECOOKIE]->val1 / 100; + if (sc->data[SC_VITALIZE_POTION] != NULL) + batk += batk * sc->data[SC_VITALIZE_POTION]->val1 / 100; return cap_value(batk, battle_config.batk_min, battle_config.batk_max); } #ifndef RENEWAL @@ -5037,6 +5040,8 @@ static int status_calc_matk(struct block_list *bl, struct status_change *sc, int matk += matk * sc->data[SC_MINDBREAKER]->val2 / 100; if (sc->data[SC_POPECOOKIE] != NULL) matk += matk * sc->data[SC_POPECOOKIE]->val2 / 100; + if (sc->data[SC_VITALIZE_POTION] != NULL) + matk += matk * sc->data[SC_VITALIZE_POTION]->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 aaedc4cb4..7a14f1961 100644 --- a/src/map/status.h +++ b/src/map/status.h @@ -855,6 +855,7 @@ typedef enum sc_type { SC_CLIENT_ONLY_EQUIP_ARROW, SC_MADOGEAR, SC_POPECOOKIE, + SC_VITALIZE_POTION, #ifndef SC_MAX SC_MAX, //Automatically updated max, used in for's to check we are within bounds. #endif -- cgit v1.2.3-70-g09d2 From 6bbe78a5518deb3a0bd8b8227066f8fdba7f6e0d Mon Sep 17 00:00:00 2001 From: Kenpachi Developer Date: Mon, 9 Mar 2020 19:38:36 +0100 Subject: Add SC_SKF_MATK status change --- db/constants.conf | 1 + db/sc_config.conf | 8 ++++++++ src/map/status.c | 3 +++ src/map/status.h | 1 + 4 files changed, 13 insertions(+) (limited to 'src') diff --git a/db/constants.conf b/db/constants.conf index c05f9c240..399556732 100644 --- a/db/constants.conf +++ b/db/constants.conf @@ -1419,6 +1419,7 @@ constants_db: { SC_MADOGEAR: 669 SC_POPECOOKIE: 670 SC_VITALIZE_POTION: 671 + SC_SKF_MATK: 672 comment__: "Emotes" e_gasp: 0 diff --git a/db/sc_config.conf b/db/sc_config.conf index dbddfd57d..ae472e53e 100644 --- a/db/sc_config.conf +++ b/db/sc_config.conf @@ -3689,3 +3689,11 @@ SC_VITALIZE_POTION: { } Icon: "SI_VITALIZE_POTION" } +SC_SKF_MATK: { + Flags: { + NoDispelReset: true + NoClearanceReset: true + Buff: true + } + Icon: "SI_SKF_MATK" +} diff --git a/src/map/status.c b/src/map/status.c index b0fef0b2e..aaf295222 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -886,6 +886,7 @@ static void initChangeTables(void) status->dbs->ChangeFlagTable[SC_MYSTICPOWDER] |= SCB_FLEE | SCB_LUK; status->dbs->ChangeFlagTable[SC_POPECOOKIE] |= SCB_BASE | SCB_BATK | SCB_MATK; status->dbs->ChangeFlagTable[SC_VITALIZE_POTION] |= SCB_BATK | SCB_MATK; + status->dbs->ChangeFlagTable[SC_SKF_MATK] |= SCB_MATK; // Cash Items status->dbs->ChangeFlagTable[SC_FOOD_STR_CASH] |= SCB_STR; @@ -5099,6 +5100,8 @@ static int status_calc_matk(struct block_list *bl, struct status_change *sc, int matk += matk * sc->data[SC_2011RWC]->val2 / 100; if (sc->data[SC_MAGIC_CANDY]) matk += sc->data[SC_MAGIC_CANDY]->val1; + if (sc->data[SC_SKF_MATK] != NULL) + matk += sc->data[SC_SKF_MATK]->val1; 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 7a14f1961..7266d6ec3 100644 --- a/src/map/status.h +++ b/src/map/status.h @@ -856,6 +856,7 @@ typedef enum sc_type { SC_MADOGEAR, SC_POPECOOKIE, SC_VITALIZE_POTION, + SC_SKF_MATK, #ifndef SC_MAX SC_MAX, //Automatically updated max, used in for's to check we are within bounds. #endif -- cgit v1.2.3-70-g09d2 From b198861ca00993af846a2156ce41de2375510775 Mon Sep 17 00:00:00 2001 From: Kenpachi Developer Date: Mon, 9 Mar 2020 19:52:33 +0100 Subject: Add SC_SKF_ATK status change --- db/constants.conf | 1 + db/sc_config.conf | 8 ++++++++ src/map/status.c | 3 +++ src/map/status.h | 1 + 4 files changed, 13 insertions(+) (limited to 'src') diff --git a/db/constants.conf b/db/constants.conf index 399556732..b3ed813ad 100644 --- a/db/constants.conf +++ b/db/constants.conf @@ -1420,6 +1420,7 @@ constants_db: { SC_POPECOOKIE: 670 SC_VITALIZE_POTION: 671 SC_SKF_MATK: 672 + SC_SKF_ATK: 673 comment__: "Emotes" e_gasp: 0 diff --git a/db/sc_config.conf b/db/sc_config.conf index ae472e53e..959744267 100644 --- a/db/sc_config.conf +++ b/db/sc_config.conf @@ -3697,3 +3697,11 @@ SC_SKF_MATK: { } Icon: "SI_SKF_MATK" } +SC_SKF_ATK: { + Flags: { + NoDispelReset: true + NoClearanceReset: true + Buff: true + } + Icon: "SI_SKF_ATK" +} diff --git a/src/map/status.c b/src/map/status.c index aaf295222..f6615b94d 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -887,6 +887,7 @@ static void initChangeTables(void) status->dbs->ChangeFlagTable[SC_POPECOOKIE] |= SCB_BASE | SCB_BATK | SCB_MATK; 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; // Cash Items status->dbs->ChangeFlagTable[SC_FOOD_STR_CASH] |= SCB_STR; @@ -4899,6 +4900,8 @@ static int status_calc_batk(struct block_list *bl, struct status_change *sc, int batk += batk * sc->data[SC_2011RWC]->val2 / 100; if (sc->data[SC_STEAMPACK]) batk += sc->data[SC_STEAMPACK]->val1; + if (sc->data[SC_SKF_ATK] != NULL) + batk += sc->data[SC_SKF_ATK]->val1; if (sc->data[SC_SHRIMP]) batk += batk * sc->data[SC_SHRIMP]->val2 / 100; diff --git a/src/map/status.h b/src/map/status.h index 7266d6ec3..5f0d51b26 100644 --- a/src/map/status.h +++ b/src/map/status.h @@ -857,6 +857,7 @@ typedef enum sc_type { SC_POPECOOKIE, SC_VITALIZE_POTION, SC_SKF_MATK, + SC_SKF_ATK, #ifndef SC_MAX SC_MAX, //Automatically updated max, used in for's to check we are within bounds. #endif -- cgit v1.2.3-70-g09d2 From 61d10a7e2c8c12ed431d1e6bf66a7d8d176cd13f Mon Sep 17 00:00:00 2001 From: Kenpachi Developer Date: Mon, 9 Mar 2020 20:28:24 +0100 Subject: Add SC_SKF_ASPD status change --- db/constants.conf | 1 + db/sc_config.conf | 8 ++++++++ src/map/status.c | 5 +++++ src/map/status.h | 1 + 4 files changed, 15 insertions(+) (limited to 'src') 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 -- cgit v1.2.3-70-g09d2 From 2c26eec424e0d4f614c7ff73ad2c5402da669338 Mon Sep 17 00:00:00 2001 From: Kenpachi Developer Date: Mon, 9 Mar 2020 20:57:22 +0100 Subject: Add SC_SKF_CAST status change --- db/constants.conf | 1 + db/sc_config.conf | 8 ++++++++ src/map/skill.c | 4 ++++ src/map/status.c | 1 + src/map/status.h | 1 + 5 files changed, 15 insertions(+) (limited to 'src') diff --git a/db/constants.conf b/db/constants.conf index f26257660..1577523c8 100644 --- a/db/constants.conf +++ b/db/constants.conf @@ -1422,6 +1422,7 @@ constants_db: { SC_SKF_MATK: 672 SC_SKF_ATK: 673 SC_SKF_ASPD: 674 + SC_SKF_CAST: 675 comment__: "Emotes" e_gasp: 0 diff --git a/db/sc_config.conf b/db/sc_config.conf index 6315d9cb2..ed8506aab 100644 --- a/db/sc_config.conf +++ b/db/sc_config.conf @@ -3713,3 +3713,11 @@ SC_SKF_ASPD: { } Icon: "SI_SKF_ASPD" } +SC_SKF_CAST: { + Flags: { + NoDispelReset: true + NoClearanceReset: true + Buff: true + } + Icon: "SI_SKF_CAST" +} diff --git a/src/map/skill.c b/src/map/skill.c index ee23704bb..396aae491 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -15726,6 +15726,8 @@ static int skill_castfix_sc(struct block_list *bl, int time) } if (sc->data[SC_POEMBRAGI]) time -= time * sc->data[SC_POEMBRAGI]->val2 / 100; + if (sc->data[SC_SKF_CAST] != NULL) + time -= time * sc->data[SC_SKF_CAST]->val1 / 100; if (sc->data[SC_IZAYOI]) time -= time * 50 / 100; } @@ -15827,6 +15829,8 @@ static int skill_vfcastfix(struct block_list *bl, double time, uint16 skill_id, } if (sc->data[SC_MYSTICSCROLL]) VARCAST_REDUCTION(sc->data[SC_MYSTICSCROLL]->val1); + if (sc->data[SC_SKF_CAST] != NULL) + VARCAST_REDUCTION(sc->data[SC_SKF_CAST]->val1); // Fixed cast reduction bonuses if( sc->data[SC__LAZINESS] ) diff --git a/src/map/status.c b/src/map/status.c index 167851e38..a55ad071e 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -889,6 +889,7 @@ static void initChangeTables(void) status->dbs->ChangeFlagTable[SC_SKF_MATK] |= SCB_MATK; status->dbs->ChangeFlagTable[SC_SKF_ATK] |= SCB_BATK; status->dbs->ChangeFlagTable[SC_SKF_ASPD] |= SCB_ASPD; + status->dbs->ChangeFlagTable[SC_SKF_CAST] |= SCB_NONE; // Cash Items status->dbs->ChangeFlagTable[SC_FOOD_STR_CASH] |= SCB_STR; diff --git a/src/map/status.h b/src/map/status.h index f396d6fc0..d113735f4 100644 --- a/src/map/status.h +++ b/src/map/status.h @@ -859,6 +859,7 @@ typedef enum sc_type { SC_SKF_MATK, SC_SKF_ATK, SC_SKF_ASPD, + SC_SKF_CAST, #ifndef SC_MAX SC_MAX, //Automatically updated max, used in for's to check we are within bounds. #endif -- cgit v1.2.3-70-g09d2 From 05aee41c44ba89bb35e233815b62d6dcefc0899c Mon Sep 17 00:00:00 2001 From: Kenpachi Developer Date: Mon, 9 Mar 2020 21:37:31 +0100 Subject: Add SC_ALMIGHTY status change --- db/constants.conf | 1 + db/sc_config.conf | 8 ++++++++ src/map/status.c | 5 +++++ src/map/status.h | 1 + 4 files changed, 15 insertions(+) (limited to 'src') 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 -- cgit v1.2.3-70-g09d2