From 567600db4121a1afccd7438cf814df78b4faac1c Mon Sep 17 00:00:00 2001 From: WinterSolstice8 <60417494+wintersolstice8@users.noreply.github.com> Date: Fri, 2 Jan 2026 21:16:50 -0700 Subject: [PATCH] [core][lua][sql] Implement Phalanx Received mod, correct old mods --- scripts/effects/phalanx.lua | 3 +-- scripts/enum/mod.lua | 1 + sql/item_mods.sql | 14 +++++++------- src/map/modifier.h | 3 ++- 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/scripts/effects/phalanx.lua b/scripts/effects/phalanx.lua index af17fcfeea2..ed3ec241907 100644 --- a/scripts/effects/phalanx.lua +++ b/scripts/effects/phalanx.lua @@ -5,14 +5,13 @@ local effectObject = {} effectObject.onEffectGain = function(target, effect) - target:addMod(xi.mod.PHALANX, effect:getPower()) + effect:addMod(xi.mod.PHALANX, effect:getPower() + target:getMod(xi.mod.PHALANX_RECEIVED)) end effectObject.onEffectTick = function(target, effect) end effectObject.onEffectLose = function(target, effect) - target:delMod(xi.mod.PHALANX, effect:getPower()) end return effectObject diff --git a/scripts/enum/mod.lua b/scripts/enum/mod.lua index 80872a804fa..f6271cc15b0 100644 --- a/scripts/enum/mod.lua +++ b/scripts/enum/mod.lua @@ -414,6 +414,7 @@ xi.mod = BLINK = 299, STONESKIN = 300, PHALANX = 301, + PHALANX_RECEIVED = 1182, -- Phalanx +N when Phalanx is received (cast on self or from other player) TRIPLE_ATTACK = 302, TRIPLE_ATTACK_DMG = 1039, -- Increases "Triple Attack" damage/"Triple Attack" damage + (in percents, e.g. +20 = +20% damage) TREASURE_HUNTER = 303, diff --git a/sql/item_mods.sql b/sql/item_mods.sql index 69eec3eab67..1214c7543eb 100644 --- a/sql/item_mods.sql +++ b/sql/item_mods.sql @@ -45269,7 +45269,7 @@ INSERT INTO `item_mods` VALUES (21637,30,40); -- MACC: 40 INSERT INTO `item_mods` VALUES (21637,161,-1000); -- DMGPHYS: -10% INSERT INTO `item_mods` VALUES (21637,164,-1000); -- DMGRANGE: -10% INSERT INTO `item_mods` VALUES (21637,170,10); -- FASTCAST: 10% -INSERT INTO `item_mods` VALUES (21637,301,5); -- PHALANX: 5 +INSERT INTO `item_mods` VALUES (21637,1182,5); -- PHALANX_RECEIVED: 5 INSERT INTO `item_mods` VALUES (21637,311,217); -- MAGIC_DAMAGE: 217 -- Arasy Claymore @@ -47949,7 +47949,7 @@ INSERT INTO `item_mods` VALUES (23084,31,63); -- MEVA: 63 INSERT INTO `item_mods` VALUES (23084,68,54); -- EVA: 54 INSERT INTO `item_mods` VALUES (23084,161,-500); -- DMGPHYS: -5% INSERT INTO `item_mods` VALUES (23084,164,-500); -- DMGRANGE: -5% -INSERT INTO `item_mods` VALUES (23084,301,6); -- PHALANX: 6 +INSERT INTO `item_mods` VALUES (23084,1182,6); -- PHALANX_RECEIVED: 6 INSERT INTO `item_mods` VALUES (23084,384,800); -- HASTE_GEAR: 8% -- Boii Mask +2 @@ -57912,7 +57912,7 @@ INSERT INTO `item_mods` VALUES (23778,68,58); -- EVA: 58 INSERT INTO `item_mods` VALUES (23778,160,-900); -- DMG: -900 INSERT INTO `item_mods` VALUES (23778,288,7); -- DOUBLE_ATTACK: 7 INSERT INTO `item_mods` VALUES (23778,384,400); -- HASTE_GEAR: 400 --- TODO: "Phalanx" Received +5 +INSERT INTO `item_mods` VALUES (23778,1182,5); -- PHALANX_RECEIVED: 5 -- TODO: Physical Damage Limit +7% -- Mpacas Hose @@ -67643,7 +67643,7 @@ INSERT INTO `item_mods` VALUES (27022,29,1); -- MDEF: 1 INSERT INTO `item_mods` VALUES (27022,31,48); -- MEVA: 48 INSERT INTO `item_mods` VALUES (27022,68,19); -- EVA: 19 INSERT INTO `item_mods` VALUES (27022,163,-400); -- DMGMAGIC: -400 -INSERT INTO `item_mods` VALUES (27022,301,4); -- PHALANX: 4 +INSERT INTO `item_mods` VALUES (27022,1182,4); -- PHALANX_RECEIVED: 4 INSERT INTO `item_mods` VALUES (27022,384,400); -- HASTE_GEAR: 400 -- Souveran Handschuhs +1 @@ -67662,7 +67662,7 @@ INSERT INTO `item_mods` VALUES (27023,29,1); -- MDEF: 1 INSERT INTO `item_mods` VALUES (27023,31,48); -- MEVA: 48 INSERT INTO `item_mods` VALUES (27023,68,19); -- EVA: 19 INSERT INTO `item_mods` VALUES (27023,163,-500); -- DMGMAGIC: -500 -INSERT INTO `item_mods` VALUES (27023,301,5); -- PHALANX: 5 +INSERT INTO `item_mods` VALUES (27023,1182,5); -- PHALANX_RECEIVED: 5 INSERT INTO `item_mods` VALUES (27023,384,400); -- HASTE_GEAR: 400 -- Argosy Mufflers @@ -71878,7 +71878,7 @@ INSERT INTO `item_mods` VALUES (27374,31,86); -- MEVA: 86 INSERT INTO `item_mods` VALUES (27374,68,44); -- EVA: 44 INSERT INTO `item_mods` VALUES (27374,161,-400); -- DMGPHYS: -400 INSERT INTO `item_mods` VALUES (27374,164,-400); -- DMGRANGE: -400 -INSERT INTO `item_mods` VALUES (27374,301,4); -- PHALANX: 4 +INSERT INTO `item_mods` VALUES (27374,1182,5); -- PHALANX_RECEIVED: 5 INSERT INTO `item_mods` VALUES (27374,384,300); -- HASTE_GEAR: 300 INSERT INTO `item_mods` VALUES (27374,518,2); -- SHIELDBLOCKRATE: 2 @@ -71897,7 +71897,7 @@ INSERT INTO `item_mods` VALUES (27375,31,86); -- MEVA: 86 INSERT INTO `item_mods` VALUES (27375,68,44); -- EVA: 44 INSERT INTO `item_mods` VALUES (27375,161,-500); -- DMGPHYS: -500 INSERT INTO `item_mods` VALUES (27375,164,-500); -- DMGRANGE: -500 -INSERT INTO `item_mods` VALUES (27375,301,5); -- PHALANX: 5 +INSERT INTO `item_mods` VALUES (27375,1182,5); -- PHALANX_RECEIVED: 5 INSERT INTO `item_mods` VALUES (27375,384,300); -- HASTE_GEAR: 300 INSERT INTO `item_mods` VALUES (27375,518,3); -- SHIELDBLOCKRATE: 3 diff --git a/src/map/modifier.h b/src/map/modifier.h index d8b209a8e7e..64d71e2b8dd 100644 --- a/src/map/modifier.h +++ b/src/map/modifier.h @@ -476,6 +476,7 @@ enum class Mod ENF_MAG_POTENCY = 290, // Increases Enfeebling magic potency % ENF_MAG_DURATION = 1151, // Increases enfeebling magic duration % ENHANCES_SABOTEUR = 297, // Increases Saboteur Potency % + PHALANX_RECEIVED = 1182, // Phalanx +N when Phalanx is received (cast on self or from other player) // Thief FLEE_DURATION = 93, // Flee duration in seconds @@ -1135,7 +1136,7 @@ enum class Mod // The spares take care of finding the next ID to use so long as we don't forget to list IDs that have been freed up by refactoring. // 570 through 825 used by WS DMG mods these are not spares. // - // SPARE IDs: 1182 and onward + // SPARE IDs: 1183 and onward }; // temporary workaround for using enum class as unordered_map key until compilers support it