From 432f019b9ebc9094c673cb92f32f983103c64a13 Mon Sep 17 00:00:00 2001 From: Xaver-DaRed Date: Fri, 18 Apr 2025 04:48:02 +0200 Subject: [PATCH 1/2] Rename ELEMENTATT mods to ELEMENT_MAB Prep work to code elemental affinities properly --- scripts/enum/mod.lua | 82 ++++++++++++++--------------- scripts/globals/abyssea/atma.lua | 24 ++++----- sql/item_mods.sql | 88 ++++++++++++++------------------ src/map/modifier.h | 16 +++--- 4 files changed, 99 insertions(+), 111 deletions(-) diff --git a/scripts/enum/mod.lua b/scripts/enum/mod.lua index 4d88c141394..efd06bc9852 100644 --- a/scripts/enum/mod.lua +++ b/scripts/enum/mod.lua @@ -67,18 +67,21 @@ xi.mod = TWOHAND_ACC = 219, -- Same as ACC, but only active when using a two handed weapon (e.g. Hasso) ENMITY = 27, ENMITY_LOSS_REDUCTION = 427, - MATT = 28, + MATT = 28, -- Magic attack bonus MDEF = 29, MACC = 30, -- This is NOT item level "magic accuracy skill" ! That happens in item_weapon.sql instead MEVA = 31, - FIREATT = 32, - ICEATT = 33, - WINDATT = 34, - EARTHATT = 35, - THUNDERATT = 36, - WATERATT = 37, - LIGHTATT = 38, - DARKATT = 39, + + -- Elemental mods + FIRE_MAB = 32, -- Elemental "Magic Attack Bonus" aka "Affinity" + ICE_MAB = 33, -- Elemental "Magic Attack Bonus" aka "Affinity" + WIND_MAB = 34, -- Elemental "Magic Attack Bonus" aka "Affinity" + EARTH_MAB = 35, -- Elemental "Magic Attack Bonus" aka "Affinity" + THUNDER_MAB = 36, -- Elemental "Magic Attack Bonus" aka "Affinity" + WATER_MAB = 37, -- Elemental "Magic Attack Bonus" aka "Affinity" + LIGHT_MAB = 38, -- Elemental "Magic Attack Bonus" aka "Affinity" + DARK_MAB = 39, -- Elemental "Magic Attack Bonus" aka "Affinity" + FIRE_MACC = 40, ICE_MACC = 41, WIND_MACC = 42, @@ -87,6 +90,34 @@ xi.mod = WATER_MACC = 45, LIGHT_MACC = 46, DARK_MACC = 47, + + FIRE_AFFINITY_DMG = 347, -- Elemental staves bonus (Damage). + ICE_AFFINITY_DMG = 348, -- Elemental staves bonus (Damage). + WIND_AFFINITY_DMG = 349, -- Elemental staves bonus (Damage). + EARTH_AFFINITY_DMG = 350, -- Elemental staves bonus (Damage). + THUNDER_AFFINITY_DMG = 351, -- Elemental staves bonus (Damage). + WATER_AFFINITY_DMG = 352, -- Elemental staves bonus (Damage). + LIGHT_AFFINITY_DMG = 353, -- Elemental staves bonus (Damage). + DARK_AFFINITY_DMG = 354, -- Elemental staves bonus (Damage). + + FIRE_AFFINITY_ACC = 544, -- Elemental staves bonus (Magic accuracy). + ICE_AFFINITY_ACC = 545, -- Elemental staves bonus (Magic accuracy). + WIND_AFFINITY_ACC = 546, -- Elemental staves bonus (Magic accuracy). + EARTH_AFFINITY_ACC = 547, -- Elemental staves bonus (Magic accuracy). + THUNDER_AFFINITY_ACC = 548, -- Elemental staves bonus (Magic accuracy). + WATER_AFFINITY_ACC = 549, -- Elemental staves bonus (Magic accuracy). + LIGHT_AFFINITY_ACC = 550, -- Elemental staves bonus (Magic accuracy). + DARK_AFFINITY_ACC = 551, -- Elemental staves bonus (Magic accuracy). + + FIRE_AFFINITY_PERP = 553, + ICE_AFFINITY_PERP = 554, + WIND_AFFINITY_PERP = 555, + EARTH_AFFINITY_PERP = 556, + THUNDER_AFFINITY_PERP = 557, + WATER_AFFINITY_PERP = 558, + LIGHT_AFFINITY_PERP = 559, + DARK_AFFINITY_PERP = 560, + WSACC = 48, ATTP = 62, DEFP = 63, @@ -522,33 +553,6 @@ xi.mod = SPECIAL_ATTACK_EVASION = 1024, -- Foil "Special Attack" evasion AUGMENTS_SLEIGHT_OF_SWORD = 277, -- Enhances bonus "Subtle Blow" per merit. - FIRE_AFFINITY_DMG = 347, - ICE_AFFINITY_DMG = 348, - WIND_AFFINITY_DMG = 349, - EARTH_AFFINITY_DMG = 350, - THUNDER_AFFINITY_DMG = 351, - WATER_AFFINITY_DMG = 352, - LIGHT_AFFINITY_DMG = 353, - DARK_AFFINITY_DMG = 354, - - FIRE_AFFINITY_ACC = 544, - ICE_AFFINITY_ACC = 545, - WIND_AFFINITY_ACC = 546, - EARTH_AFFINITY_ACC = 547, - THUNDER_AFFINITY_ACC = 548, - WATER_AFFINITY_ACC = 549, - LIGHT_AFFINITY_ACC = 550, - DARK_AFFINITY_ACC = 551, - - FIRE_AFFINITY_PERP = 553, - ICE_AFFINITY_PERP = 554, - WIND_AFFINITY_PERP = 555, - EARTH_AFFINITY_PERP = 556, - THUNDER_AFFINITY_PERP = 557, - WATER_AFFINITY_PERP = 558, - LIGHT_AFFINITY_PERP = 559, - DARK_AFFINITY_PERP = 560, - ADDS_WEAPONSKILL = 355, ADDS_WEAPONSKILL_DYN = 356, BP_DELAY = 357, @@ -826,7 +830,7 @@ xi.mod = AUTO_RANGED_DAMAGEP = 1002, -- Increases Automaton Ranged Weapon damage by a % -- Mythic Weapon Mods - AUGMENTS_ABSORB_LIBERATOR = 521, -- Direct Absorb spell increase while Liberator is equipped (percentage based) (Augments "Absorb" spells) + AUGMENTS_ABSORB = 521, -- Direct Absorb spell increase while Liberator is equipped (percentage based) AOE_NA = 524, -- Set to 1 to make -na spells/erase always AoE w/ Divine Veil AUGMENTS_CONVERT = 525, -- Convert HP to MP Ratio Multiplier. Value = MP multiplier rate. AUGMENTS_SA = 526, -- Adds Critical Attack Bonus to Sneak Attack, percentage based. @@ -1027,10 +1031,6 @@ xi.mod = PARRY_HP_RECOVERY = 1135, -- Recover HP on successful parry. - ENHANCES_ABSORB_EFFECTS = 1136, -- Absorb Spell duration +x seconds (Enhances "Absorb" effects) - AUGMENTS_ABSORB = 1337, -- Non-Liberator Absorb Spell potency +x% (Augments "Absorb" effects) - ABSORB_EFFECT_DURATION = 1138, -- Absorb Spell duration +% ("Absorb" effect duration +x%) - -- IF YOU ADD ANY NEW MODIFIER HERE, ADD IT IN src/map/modifier.h ASWELL! -- 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. diff --git a/scripts/globals/abyssea/atma.lua b/scripts/globals/abyssea/atma.lua index a2fa8216800..adac1a2eeed 100644 --- a/scripts/globals/abyssea/atma.lua +++ b/scripts/globals/abyssea/atma.lua @@ -10,7 +10,7 @@ xi.atma = xi.atma or {} xi.atma.atmaMods = { -- GROUP 1 - [xi.ki.ATMA_OF_THE_LION] = { xi.mod.TRIPLE_ATTACK, 7, xi.mod.DMGPHYS, -1000, xi.mod.THUNDERATT, 30 }, + [xi.ki.ATMA_OF_THE_LION] = { xi.mod.TRIPLE_ATTACK, 7, xi.mod.DMGPHYS, -1000, xi.mod.THUNDER_MAB, 30 }, [xi.ki.ATMA_OF_THE_STOUT_ARM] = { xi.mod.STR, 40, xi.mod.ATT, 50, xi.mod.RATT, 40 }, [xi.ki.ATMA_OF_THE_TWIN_CLAW] = { xi.mod.DEF, 40, xi.mod.MDEF, 20, xi.mod.CHARMRES, 20 }, [xi.ki.ATMA_OF_ALLURE] = { xi.mod.MPP, 30, xi.mod.MND, 30, xi.mod.ENMITY, -30 }, @@ -22,29 +22,29 @@ xi.atma.atmaMods = [xi.ki.ATMA_OF_THE_SAVAGE_TIGER] = { xi.mod.AGI, 30, xi.mod.DOUBLE_ATTACK, 10 }, [xi.ki.ATMA_OF_THE_VORACIOUS_VIOLET] = { xi.mod.STR, 50, xi.mod.DOUBLE_ATTACK, 10, xi.mod.REGAIN, 20 }, [xi.ki.ATMA_OF_CLOAK_AND_DAGGER] = { xi.mod.ACC, 40, xi.mod.EVA, 40 }, - [xi.ki.ATMA_OF_THE_STORMBIRD] = { xi.mod.ACC, 40, xi.mod.THUNDERATT, 40, xi.mod.REFRESH, 5 }, - [xi.ki.ATMA_OF_THE_NOXIOUS_FANG] = { xi.mod.SUBTLE_BLOW, 40, xi.mod.WATERATT, 40, xi.mod.POISONRES, 40 }, + [xi.ki.ATMA_OF_THE_STORMBIRD] = { xi.mod.ACC, 40, xi.mod.THUNDER_MAB, 40, xi.mod.REFRESH, 5 }, + [xi.ki.ATMA_OF_THE_NOXIOUS_FANG] = { xi.mod.SUBTLE_BLOW, 40, xi.mod.WATER_MAB, 40, xi.mod.POISONRES, 40 }, [xi.ki.ATMA_OF_VICISSITUDE] = { xi.mod.DEF, 40, xi.mod.MDEF, 20, xi.mod.REGEN, 15 }, - [xi.ki.ATMA_OF_THE_BEYOND] = { xi.mod.MATT, 30, xi.mod.ICEATT, 30, xi.mod.LIGHTATT, 30 }, + [xi.ki.ATMA_OF_THE_BEYOND] = { xi.mod.MATT, 30, xi.mod.ICE_MAB, 30, xi.mod.LIGHT_MAB, 30 }, [xi.ki.ATMA_OF_STORMBREATH] = { xi.mod.VIT, 30, xi.mod.DMGBREATH, -3000 }, - [xi.ki.ATMA_OF_GALES] = { xi.mod.WINDATT, 30, xi.mod.WIND_MACC, 30 }, + [xi.ki.ATMA_OF_GALES] = { xi.mod.WIND_MAB, 30, xi.mod.WIND_MACC, 30 }, [xi.ki.ATMA_OF_THRASHING_TENDRILS] = { xi.mod.CHR, 30, xi.mod.CRITHITRATE, 20 }, [xi.ki.ATMA_OF_THE_DRIFTER] = { xi.mod.RATT, 30, xi.mod.RACC, 40 }, [xi.ki.ATMA_OF_THE_STRONGHOLD] = { xi.mod.ATT, 40, xi.mod.DEF, 40, xi.mod.REGEN, 15 }, [xi.ki.ATMA_OF_THE_HARVESTER] = { xi.mod.STR, 30, xi.mod.DOUBLE_ATTACK, 10, xi.mod.SLEEPRES, 40 }, [xi.ki.ATMA_OF_DUNES] = { xi.mod.STORETP, 20, xi.mod.SLOWRES, 40 }, - [xi.ki.ATMA_OF_THE_COSMOS] = { xi.mod.DARKATT, 40, xi.mod.AMNESIARES, 40, xi.mod.SILENCERES, 40 }, + [xi.ki.ATMA_OF_THE_COSMOS] = { xi.mod.DARK_MAB, 40, xi.mod.AMNESIARES, 40, xi.mod.SILENCERES, 40 }, [xi.ki.ATMA_OF_THE_SIREN_SHADOW] = { xi.mod.ATT, 40, xi.mod.EVA, 40, xi.mod.PARALYZERES, 40 }, [xi.ki.ATMA_OF_THE_IMPALER] = { xi.mod.DOUBLE_ATTACK, 20, xi.mod.BINDRES, 40, xi.mod.BLINDRES, 40 }, [xi.ki.ATMA_OF_THE_ADAMANTINE] = { xi.mod.VIT, 20, xi.mod.DEF, 40 }, [xi.ki.ATMA_OF_CALAMITY] = { xi.mod.SLOWRES, 40, xi.mod.BLINDRES, 40 }, - [xi.ki.ATMA_OF_THE_CLAW] = { xi.mod.EARTHATT, 30, xi.mod.EARTH_MACC, 40 }, + [xi.ki.ATMA_OF_THE_CLAW] = { xi.mod.EARTH_MAB, 30, xi.mod.EARTH_MACC, 40 }, [xi.ki.ATMA_OF_BALEFUL_BONES] = { xi.mod.STR, 20, xi.mod.DARK_MACC, 40 }, [xi.ki.ATMA_OF_THE_CLAWED_BUTTERFLY] = { xi.mod.FIRE_MACC, 40, xi.mod.INT, 30 }, [xi.ki.ATMA_OF_THE_DESERT_WORM] = { xi.mod.MND, 20, xi.mod.ACC, 40, xi.mod.NULL_MAGICAL_DAMAGE, 5 }, - [xi.ki.ATMA_OF_THE_UNDYING] = { xi.mod.MND, 40, xi.mod.CONSERVE_MP, 10, xi.mod.ICEATT, 20 }, + [xi.ki.ATMA_OF_THE_UNDYING] = { xi.mod.MND, 40, xi.mod.CONSERVE_MP, 10, xi.mod.ICE_MAB, 20 }, [xi.ki.ATMA_OF_THE_IMPREGNABLE_TOWER] = { xi.mod.HPP, 30, xi.mod.MACC, 40, xi.mod.MATT, 40 }, - [xi.ki.ATMA_OF_THE_SMOLDERING_SKY] = { xi.mod.ATT, 20, xi.mod.MACC, 40, xi.mod.FIREATT, 30 }, + [xi.ki.ATMA_OF_THE_SMOLDERING_SKY] = { xi.mod.ATT, 20, xi.mod.MACC, 40, xi.mod.FIRE_MAB, 30 }, [xi.ki.ATMA_OF_THE_DEMONIC_SKEWER] = { xi.mod.STR, 20, xi.mod.TP_BONUS, 20, xi.mod.NULL_PHYSICAL_DAMAGE, 5, xi.mod.NULL_RANGED_DAMAGE, 5 }, [xi.ki.ATMA_OF_THE_GOLDEN_CLAW] = { xi.mod.SKILLCHAINBONUS, 20, xi.mod.STR, 20 }, [xi.ki.ATMA_OF_THE_GLUTINOUS_OOZE] = { xi.mod.MND, 20, xi.mod.WATER_MACC, 20 }, @@ -61,10 +61,10 @@ xi.atma.atmaMods = [xi.ki.ATMA_OF_THE_CRADLE] = { xi.mod.VIT, 20, xi.mod.DEX, 20 }, [xi.ki.ATMA_OF_THE_UNTOUCHED] = { xi.mod.CHR, 20, xi.mod.TRIPLE_ATTACK, 5 }, [xi.ki.ATMA_OF_THE_SANGUINE_SCYTHE] = { xi.mod.HPP, 20, xi.mod.CRIT_DMG_INCREASE, 30, xi.mod.ENMITY, 20 }, - [xi.ki.ATMA_OF_THE_TUSKED_TERROR] = { xi.mod.FASTCAST, 20, xi.mod.WATERATT, 20, xi.mod.WATER_MACC, 20 }, + [xi.ki.ATMA_OF_THE_TUSKED_TERROR] = { xi.mod.FASTCAST, 20, xi.mod.WATER_MAB, 20, xi.mod.WATER_MACC, 20 }, [xi.ki.ATMA_OF_THE_MINIKIN_MONSTROSITY] = { xi.mod.REFRESH, 10, xi.mod.INT, 50, xi.mod.ENMITY, -20 }, [xi.ki.ATMA_OF_THE_WOULD_BE_KING] = { xi.mod.REGAIN, 100, xi.mod.STORETP, 20, xi.mod.TP_BONUS, 20 }, - [xi.ki.ATMA_OF_THE_BLINDING_HORN] = { xi.mod.CONSERVE_MP, 20, xi.mod.THUNDERATT, 30, xi.mod.DMGMAGIC, -2000 }, + [xi.ki.ATMA_OF_THE_BLINDING_HORN] = { xi.mod.CONSERVE_MP, 20, xi.mod.THUNDER_MAB, 30, xi.mod.DMGMAGIC, -2000 }, [xi.ki.ATMA_OF_THE_DEMONIC_LASH] = { xi.mod.ATT, 40, xi.mod.DOUBLE_ATTACK, 10, xi.mod.MAGIC_ABSORB, 20 }, [xi.ki.ATMA_OF_APPARITIONS] = { xi.mod.EVA, 20, xi.mod.WIND_MEVA, 50 }, [xi.ki.ATMA_OF_THE_SHIMMERING_SHELL] = { xi.mod.AGI, 20, xi.mod.FIRE_MEVA, 50 }, @@ -78,7 +78,7 @@ xi.atma.atmaMods = [xi.ki.ATMA_OF_A_THOUSAND_NEEDLES] = { xi.mod.HPP, 20, xi.mod.MPP, 20, xi.mod.DEX, 10 }, [xi.ki.ATMA_OF_THE_BURNING_EFFIGY] = { xi.mod.STR, 20, xi.mod.FORCE_FIRE_DWBONUS, 1 }, -- fire based ws + 0.2 fTP] = {}, [xi.ki.ATMA_OF_THE_SMITING_BLOW] = { xi.mod.TP_BONUS, 50, xi.mod.WSACC, 50 }, - [xi.ki.ATMA_OF_THE_LONE_WOLF] = { xi.mod.ATT, 20, xi.mod.FIREATT, 30 }, + [xi.ki.ATMA_OF_THE_LONE_WOLF] = { xi.mod.ATT, 20, xi.mod.FIRE_MAB, 30 }, [xi.ki.ATMA_OF_THE_CRIMSON_SCALE] = { xi.mod.HASTE_GEAR, 300, xi.mod.ENMITY, -20 }, [xi.ki.ATMA_OF_THE_SCARLET_WING] = { xi.mod.ELEM, 10, xi.mod.FORCE_WIND_DWBONUS, 1 }, [xi.ki.ATMA_OF_THE_RAISED_TAIL] = { xi.mod.ATT, 40, xi.mod.EVA, 40 }, diff --git a/sql/item_mods.sql b/sql/item_mods.sql index 776f5f6d1c3..83d5427ce57 100644 --- a/sql/item_mods.sql +++ b/sql/item_mods.sql @@ -600,7 +600,7 @@ INSERT INTO `item_mods` VALUES (10350,30,8); -- MACC: 8 -- Ihwa Huaraches INSERT INTO `item_mods` VALUES (10351,1,28); -- DEF: 28 INSERT INTO `item_mods` VALUES (10351,12,5); -- INT: 5 -INSERT INTO `item_mods` VALUES (10351,35,5); -- EARTHATT: 5 +INSERT INTO `item_mods` VALUES (10351,35,5); -- EARTH_MAB: 5 INSERT INTO `item_mods` VALUES (10351,43,5); -- EARTH_MACC: 5 INSERT INTO `item_mods` VALUES (10351,115,10); -- ELEM: 10 @@ -4226,7 +4226,7 @@ INSERT INTO `item_mods` VALUES (10975,1,17); -- DEF: 17 INSERT INTO `item_mods` VALUES (10976,1,7); -- DEF: 7 INSERT INTO `item_mods` VALUES (10976,12,6); -- INT: 6 INSERT INTO `item_mods` VALUES (10976,13,6); -- MND: 6 -INSERT INTO `item_mods` VALUES (10976,34,4); -- WINDATT: 4 +INSERT INTO `item_mods` VALUES (10976,34,4); -- WIND_MAB: 4 INSERT INTO `item_mods` VALUES (10976,42,4); -- WIND_MACC: 4 -- Romanus Cape @@ -8917,7 +8917,7 @@ INSERT INTO `item_mods` VALUES (11812,1,1); -- DEF: 1 INSERT INTO `item_mods` VALUES (11813,12,3); -- INT: 3 INSERT INTO `item_mods` VALUES (11813,13,3); -- MND: 3 INSERT INTO `item_mods` VALUES (11813,17,20); -- WIND_MEVA: 20 -INSERT INTO `item_mods` VALUES (11813,34,6); -- WINDATT: 6 +INSERT INTO `item_mods` VALUES (11813,34,6); -- WIND_MAB: 6 -- Ganeshas Mask INSERT INTO `item_mods` VALUES (11814,1,4); -- DEF: 4 @@ -38073,14 +38073,14 @@ INSERT INTO `item_mods` VALUES (18633,560,3); -- DARK_AFFINITY_PERP: 3 INSERT INTO `item_mods` VALUES (18633,566,2); -- IRIDESCENCE: 2 -- Zamzummim Staff -INSERT INTO `item_mods` VALUES (18634,32,25); -- FIREATT: 25 -INSERT INTO `item_mods` VALUES (18634,34,25); -- WINDATT: 25 +INSERT INTO `item_mods` VALUES (18634,32,25); -- FIRE_MAB: 25 +INSERT INTO `item_mods` VALUES (18634,34,25); -- WIND_MAB: 25 INSERT INTO `item_mods` VALUES (18634,40,25); -- FIRE_MACC: 25 INSERT INTO `item_mods` VALUES (18634,42,25); -- WIND_MACC: 25 -- Melisseus Staff -INSERT INTO `item_mods` VALUES (18635,32,28); -- FIREATT: 28 -INSERT INTO `item_mods` VALUES (18635,34,28); -- WINDATT: 28 +INSERT INTO `item_mods` VALUES (18635,32,28); -- FIRE_MAB: 28 +INSERT INTO `item_mods` VALUES (18635,34,28); -- WIND_MAB: 28 INSERT INTO `item_mods` VALUES (18635,40,28); -- FIRE_MACC: 28 INSERT INTO `item_mods` VALUES (18635,42,28); -- WIND_MACC: 28 @@ -42174,7 +42174,7 @@ INSERT INTO `item_mods` VALUES (20614,432,11); -- ENSPELL_DMG_BONUS: 11 -- Levante Dagger INSERT INTO `item_mods` VALUES (20615,11,15); -- AGI: 15 INSERT INTO `item_mods` VALUES (20615,25,27); -- ACC: 27 -INSERT INTO `item_mods` VALUES (20615,34,15); -- WINDATT: 15 +INSERT INTO `item_mods` VALUES (20615,34,15); -- WIND_MAB: 15 INSERT INTO `item_mods` VALUES (20615,62,15); -- ATTP: 15 INSERT INTO `item_mods` VALUES (20615,68,27); -- EVA: 27 INSERT INTO `item_mods` VALUES (20615,289,8); -- SUBTLE_BLOW: 8 @@ -42399,17 +42399,12 @@ INSERT INTO `item_mods` VALUES (20673,980,10); -- WS_STR_BONUS: 10% -- TODO: Physical damage limit +5% -- Colada -INSERT INTO `item_mods` VALUES (20677,23,20); -- ATT: 20 INSERT INTO `item_mods` VALUES (20677,25,20); -- ACC: 20 -INSERT INTO `item_mods` VALUES (20677,28,25); -- MATT: 25 -INSERT INTO `item_mods` VALUES (20677,29,6); -- MDEF: 6 -INSERT INTO `item_mods` VALUES (20677,33,100); -- ICEATT: 100 -INSERT INTO `item_mods` VALUES (20677,68,30); -- EVA: 30 -INSERT INTO `item_mods` VALUES (20677,311,123); -- MAGIC_DAMAGE: 123 +INSERT INTO `item_mods` VALUES (20677,28,14); -- MATT: 14 +INSERT INTO `item_mods` VALUES (20677,30,15); -- MACC: 15 INSERT INTO `item_mods` VALUES (20677,170,4); -- FASTCAST: 4 INSERT INTO `item_mods` VALUES (20677,171,240); -- DELAY: 240 -INSERT INTO `item_mods` VALUES (20677,369,3); -- REFRESH: 3 -INSERT INTO `item_mods` VALUES (20677,384,600); -- HASTE_GEAR: 600 +INSERT INTO `item_mods` VALUES (20677,311,123); -- MAGIC_DAMAGE: 123 -- Firangi INSERT INTO `item_mods` VALUES (20678,27,8); -- ENMITY: 8 @@ -42521,7 +42516,7 @@ INSERT INTO `item_mods` VALUES (20715,311,96); -- MAGIC_DAMAGE: 96 INSERT INTO `item_mods` VALUES (20716,8,12); -- STR: 12 INSERT INTO `item_mods` VALUES (20716,15,25); -- FIRE_MEVA: 25 INSERT INTO `item_mods` VALUES (20716,25,25); -- ACC: 25 -INSERT INTO `item_mods` VALUES (20716,32,15); -- FIREATT: 15 +INSERT INTO `item_mods` VALUES (20716,32,15); -- FIRE_MAB: 15 -- Arendsi Fleuret INSERT INTO `item_mods` VALUES (20717,25,27); -- ACC: 27 @@ -42631,11 +42626,6 @@ INSERT INTO `item_mods` VALUES (20758,1337,10); -- AUGMENTS_ABSORB: 10 -- Aettir INSERT INTO `item_mods` VALUES (20761,27,10); -- ENMITY: 10 --- Ukudyoni -INSERT INTO `item_mods` VALUES (20762,36,25); -- THUNDERATT: 25 -INSERT INTO `item_mods` VALUES (20762,165,7); -- CRITHITRATE: 7 -INSERT INTO `item_mods` VALUES (20762,369,1); -- REFRESH: 1 - -- Kbiroj INSERT INTO `item_mods` VALUES (20763,2,20); -- HP: 20 INSERT INTO `item_mods` VALUES (20763,23,8); -- ATT: 8 @@ -43947,7 +43937,7 @@ INSERT INTO `item_mods` VALUES (21244,365,1); -- SNAPSHOT: 1 INSERT INTO `item_mods` VALUES (21245,11,5); -- AGI: 5 INSERT INTO `item_mods` VALUES (21245,13,5); -- MND: 5 INSERT INTO `item_mods` VALUES (21245,30,7); -- MACC: 7 -INSERT INTO `item_mods` VALUES (21245,38,5); -- LIGHTATT: 5 +INSERT INTO `item_mods` VALUES (21245,38,5); -- LIGHT_MAB: 5 INSERT INTO `item_mods` VALUES (21245,359,5); -- RAPID_SHOT: 5 -- Gastraphetes @@ -44062,7 +44052,7 @@ INSERT INTO `item_mods` VALUES (21274,9,5); -- DEX: 5 INSERT INTO `item_mods` VALUES (21274,11,5); -- AGI: 5 INSERT INTO `item_mods` VALUES (21274,26,27); -- RACC: 27 INSERT INTO `item_mods` VALUES (21274,27,-3); -- ENMITY: -3 -INSERT INTO `item_mods` VALUES (21274,36,15); -- THUNDERATT: 15 +INSERT INTO `item_mods` VALUES (21274,36,15); -- THUNDER_MAB: 15 INSERT INTO `item_mods` VALUES (21274,305,10); -- RECYCLE: 10 -- Pulfanxa @@ -59018,14 +59008,13 @@ INSERT INTO `item_mods` VALUES (25593,11,24); -- AGI: 24 INSERT INTO `item_mods` VALUES (25593,12,40); -- INT: 40 INSERT INTO `item_mods` VALUES (25593,13,40); -- MND: 40 INSERT INTO `item_mods` VALUES (25593,28,45); -- MATT: 45 -INSERT INTO `item_mods` VALUES (25593,29,7); -- MDEF: 7 +INSERT INTO `item_mods` VALUES (25593,29,6); -- MDEF: 6 INSERT INTO `item_mods` VALUES (25593,31,86); -- MEVA: 86 -INSERT INTO `item_mods` VALUES (25593,33,50); -- ICEATT: 50 INSERT INTO `item_mods` VALUES (25593,68,33); -- EVA: 33 INSERT INTO `item_mods` VALUES (25593,170,8); -- FASTCAST: 8 INSERT INTO `item_mods` VALUES (25593,384,600); -- HASTE_GEAR: 600 --- Maiitsoh Haube +-- Ma'iitsoh Haube INSERT INTO `item_mods` VALUES (25600,1,113); -- DEF: 113 INSERT INTO `item_mods` VALUES (25600,2,68); -- HP: 68 INSERT INTO `item_mods` VALUES (25600,5,53); -- MP: 53 @@ -61545,10 +61534,10 @@ INSERT INTO `item_mods` VALUES (26085,14,10); -- CHR: 10 INSERT INTO `item_mods` VALUES (26085,28,7); -- MATT: 7 -- Malignance Earring -INSERT INTO `item_mods` VALUES (26088,12,20); -- INT: 20 -INSERT INTO `item_mods` VALUES (26088,13,20); -- MND: 20 -INSERT INTO `item_mods` VALUES (26088,28,40); -- MATT: 40 -INSERT INTO `item_mods` VALUES (26088,33,40); -- ICEATT: 40 +INSERT INTO `item_mods` VALUES (26088,12,8); -- INT: 8 +INSERT INTO `item_mods` VALUES (26088,13,8); -- MND: 8 +INSERT INTO `item_mods` VALUES (26088,28,8); -- MATT: 8 +INSERT INTO `item_mods` VALUES (26088,30,10); -- MACC: 10 INSERT INTO `item_mods` VALUES (26088,170,4); -- FASTCAST: 4 -- Thrud Earring @@ -73061,7 +73050,7 @@ INSERT INTO `item_mods` VALUES (27581,401,1); -- SUBLIMATION_BONUS: 1 -- Weatherspoon Ring INSERT INTO `item_mods` VALUES (27582,30,10); -- MACC: 10 -INSERT INTO `item_mods` VALUES (27582,38,10); -- LIGHTATT: 10 +INSERT INTO `item_mods` VALUES (27582,38,10); -- LIGHT_MAB: 10 INSERT INTO `item_mods` VALUES (27582,170,5); -- FASTCAST: 5 INSERT INTO `item_mods` VALUES (27582,909,4); -- QUICK_MAGIC: 4 @@ -76327,22 +76316,21 @@ INSERT INTO `item_mods` VALUES (27876,289,8); -- SUBTLE_BLOW: 8 INSERT INTO `item_mods` VALUES (27876,384,400); -- HASTE_GEAR: 400 -- Gendewitha Bliaut +1 -INSERT INTO `item_mods` VALUES (27877,1,124); -- DEF: 124 -INSERT INTO `item_mods` VALUES (27877,2,54); -- HP: 54 -INSERT INTO `item_mods` VALUES (27877,5,59); -- MP: 59 -INSERT INTO `item_mods` VALUES (27877,8,21); -- STR: 21 -INSERT INTO `item_mods` VALUES (27877,9,21); -- DEX: 21 -INSERT INTO `item_mods` VALUES (27877,10,21); -- VIT: 21 -INSERT INTO `item_mods` VALUES (27877,11,21); -- AGI: 21 -INSERT INTO `item_mods` VALUES (27877,12,29); -- INT: 29 -INSERT INTO `item_mods` VALUES (27877,13,29); -- MND: 29 -INSERT INTO `item_mods` VALUES (27877,14,29); -- CHR: 29 -INSERT INTO `item_mods` VALUES (27877,29,6); -- MDEF: 6 -INSERT INTO `item_mods` VALUES (27877,31,80); -- MEVA: 80 -INSERT INTO `item_mods` VALUES (27877,38,11); -- LIGHTATT: 11 -INSERT INTO `item_mods` VALUES (27877,68,41); -- EVA: 41 -INSERT INTO `item_mods` VALUES (27877,369,20); -- REFRESH: 20 -INSERT INTO `item_mods` VALUES (27877,374,81); -- CURE_POTENCY: 81 +INSERT INTO `item_mods` VALUES (27877,1,124); -- DEF: 124 +INSERT INTO `item_mods` VALUES (27877,2,54); -- HP: 54 +INSERT INTO `item_mods` VALUES (27877,5,59); -- MP: 59 +INSERT INTO `item_mods` VALUES (27877,8,21); -- STR: 21 +INSERT INTO `item_mods` VALUES (27877,9,21); -- DEX: 21 +INSERT INTO `item_mods` VALUES (27877,10,21); -- VIT: 21 +INSERT INTO `item_mods` VALUES (27877,11,21); -- AGI: 21 +INSERT INTO `item_mods` VALUES (27877,12,29); -- INT: 29 +INSERT INTO `item_mods` VALUES (27877,13,29); -- MND: 29 +INSERT INTO `item_mods` VALUES (27877,14,29); -- CHR: 29 +INSERT INTO `item_mods` VALUES (27877,29,6); -- MDEF: 6 +INSERT INTO `item_mods` VALUES (27877,31,80); -- MEVA: 80 +INSERT INTO `item_mods` VALUES (27877,68,41); -- EVA: 41 +INSERT INTO `item_mods` VALUES (27877,369,2); -- REFRESH: 2 +INSERT INTO `item_mods` VALUES (27877,374,8); -- CURE_POTENCY: 8 -- Hagondes Coat +1 INSERT INTO `item_mods` VALUES (27878,1,123); -- DEF: 123 @@ -76359,7 +76347,7 @@ INSERT INTO `item_mods` VALUES (27878,28,10); -- MATT: 10 INSERT INTO `item_mods` VALUES (27878,29,6); -- MDEF: 6 INSERT INTO `item_mods` VALUES (27878,31,80); -- MEVA: 80 INSERT INTO `item_mods` VALUES (27878,68,41); -- EVA: 41 -INSERT INTO `item_mods` VALUES (27878,369,20); -- REFRESH: 20 +INSERT INTO `item_mods` VALUES (27878,369,2); -- REFRESH: 2 INSERT INTO `item_mods` VALUES (27878,384,300); -- HASTE_GEAR: 300 -- Overalls @@ -82849,7 +82837,7 @@ INSERT INTO `item_mods` VALUES (28386,8,3); -- STR: 3 -- Quanpur Necklace INSERT INTO `item_mods` VALUES (28387,5,10); -- MP: 10 INSERT INTO `item_mods` VALUES (28387,28,7); -- MATT: 7 -INSERT INTO `item_mods` VALUES (28387,35,5); -- EARTHATT: 5 +INSERT INTO `item_mods` VALUES (28387,35,5); -- EARTH_MAB: 5 -- Tlamiztli Collar INSERT INTO `item_mods` VALUES (28388,23,20); -- ATT: 20 diff --git a/src/map/modifier.h b/src/map/modifier.h index bda03c7d282..380cc75a94f 100644 --- a/src/map/modifier.h +++ b/src/map/modifier.h @@ -86,14 +86,14 @@ enum class Mod MEVA = 31, // Magic Evasion // Magic Accuracy and Elemental Attacks - FIREATT = 32, // Fire Damage - ICEATT = 33, // Ice Damage - WINDATT = 34, // Wind Damage - EARTHATT = 35, // Earth Damage - THUNDERATT = 36, // Thunder Damage - WATERATT = 37, // Water Damage - LIGHTATT = 38, // Light Damage - DARKATT = 39, // Dark Damage + FIRE_MAB = 32, // Elemental "Magic Attack Bonus" aka "Affinity" + ICE_MAB = 33, // Elemental "Magic Attack Bonus" aka "Affinity" + WIND_MAB = 34, // Elemental "Magic Attack Bonus" aka "Affinity" + EARTH_MAB = 35, // Elemental "Magic Attack Bonus" aka "Affinity" + THUNDER_MAB = 36, // Elemental "Magic Attack Bonus" aka "Affinity" + WATER_MAB = 37, // Elemental "Magic Attack Bonus" aka "Affinity" + LIGHT_MAB = 38, // Elemental "Magic Attack Bonus" aka "Affinity" + DARK_MAB = 39, // Elemental "Magic Attack Bonus" aka "Affinity" FIRE_MACC = 40, // Fire Accuracy ICE_MACC = 41, // Ice Accuracy WIND_MACC = 42, // Wind Accuracy From 1bce68cba1d31af0a0afd58e7f1de1cf2d331c91 Mon Sep 17 00:00:00 2001 From: Xaver-DaRed Date: Fri, 18 Apr 2025 05:29:54 +0200 Subject: [PATCH 2/2] Implement elemental affinity properly and cleanup --- scripts/enum/mod.lua | 31 ++--- scripts/globals/combat/element_tables.lua | 40 +++--- scripts/globals/combat/magic_hit_rate.lua | 2 +- scripts/globals/spells/damage_spell.lua | 20 +-- sql/item_mods.sql | 150 ++++++++-------------- src/map/modifier.h | 27 ++-- 6 files changed, 104 insertions(+), 166 deletions(-) diff --git a/scripts/enum/mod.lua b/scripts/enum/mod.lua index efd06bc9852..29f271b6179 100644 --- a/scripts/enum/mod.lua +++ b/scripts/enum/mod.lua @@ -91,23 +91,14 @@ xi.mod = LIGHT_MACC = 46, DARK_MACC = 47, - FIRE_AFFINITY_DMG = 347, -- Elemental staves bonus (Damage). - ICE_AFFINITY_DMG = 348, -- Elemental staves bonus (Damage). - WIND_AFFINITY_DMG = 349, -- Elemental staves bonus (Damage). - EARTH_AFFINITY_DMG = 350, -- Elemental staves bonus (Damage). - THUNDER_AFFINITY_DMG = 351, -- Elemental staves bonus (Damage). - WATER_AFFINITY_DMG = 352, -- Elemental staves bonus (Damage). - LIGHT_AFFINITY_DMG = 353, -- Elemental staves bonus (Damage). - DARK_AFFINITY_DMG = 354, -- Elemental staves bonus (Damage). - - FIRE_AFFINITY_ACC = 544, -- Elemental staves bonus (Magic accuracy). - ICE_AFFINITY_ACC = 545, -- Elemental staves bonus (Magic accuracy). - WIND_AFFINITY_ACC = 546, -- Elemental staves bonus (Magic accuracy). - EARTH_AFFINITY_ACC = 547, -- Elemental staves bonus (Magic accuracy). - THUNDER_AFFINITY_ACC = 548, -- Elemental staves bonus (Magic accuracy). - WATER_AFFINITY_ACC = 549, -- Elemental staves bonus (Magic accuracy). - LIGHT_AFFINITY_ACC = 550, -- Elemental staves bonus (Magic accuracy). - DARK_AFFINITY_ACC = 551, -- Elemental staves bonus (Magic accuracy). + FIRE_STAFF_BONUS = 347, -- Elemental staff bonus (DMG and MACC). + ICE_STAFF_BONUS = 348, -- Elemental staff bonus (DMG and MACC). + WIND_STAFF_BONUS = 349, -- Elemental staff bonus (DMG and MACC). + EARTH_STAFF_BONUS = 350, -- Elemental staff bonus (DMG and MACC). + THUNDER_STAFF_BONUS = 351, -- Elemental staff bonus (DMG and MACC). + WATER_STAFF_BONUS = 352, -- Elemental staff bonus (DMG and MACC). + LIGHT_STAFF_BONUS = 353, -- Elemental staff bonus (DMG and MACC). + DARK_STAFF_BONUS = 354, -- Elemental staff bonus (DMG and MACC). FIRE_AFFINITY_PERP = 553, ICE_AFFINITY_PERP = 554, @@ -830,7 +821,7 @@ xi.mod = AUTO_RANGED_DAMAGEP = 1002, -- Increases Automaton Ranged Weapon damage by a % -- Mythic Weapon Mods - AUGMENTS_ABSORB = 521, -- Direct Absorb spell increase while Liberator is equipped (percentage based) + AUGMENTS_ABSORB_LIBERATOR = 521, -- Direct Absorb spell increase while Liberator is equipped (percentage based) (Augments "Absorb" spells) AOE_NA = 524, -- Set to 1 to make -na spells/erase always AoE w/ Divine Veil AUGMENTS_CONVERT = 525, -- Convert HP to MP Ratio Multiplier. Value = MP multiplier rate. AUGMENTS_SA = 526, -- Adds Critical Attack Bonus to Sneak Attack, percentage based. @@ -1031,6 +1022,10 @@ xi.mod = PARRY_HP_RECOVERY = 1135, -- Recover HP on successful parry. + ENHANCES_ABSORB_EFFECTS = 1136, -- Absorb Spell duration +x seconds (Enhances "Absorb" effects) + AUGMENTS_ABSORB = 1337, -- Non-Liberator Absorb Spell potency +x% (Augments "Absorb" effects) + ABSORB_EFFECT_DURATION = 1138, -- Absorb Spell duration +% ("Absorb" effect duration +x%) + -- IF YOU ADD ANY NEW MODIFIER HERE, ADD IT IN src/map/modifier.h ASWELL! -- 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. diff --git a/scripts/globals/combat/element_tables.lua b/scripts/globals/combat/element_tables.lua index 7b77388338e..ba1c9e086db 100644 --- a/scripts/globals/combat/element_tables.lua +++ b/scripts/globals/combat/element_tables.lua @@ -19,10 +19,10 @@ local column = MOD_ELEMENT_RES_RANK = 6, MOD_ELEMENT_NULL = 7, MOD_ELEMENT_ABSORB = 8, - MOD_ELEMENT_MACC = 9, - MOD_ELEMENT_MEVA = 10, - MOD_AFFINITY_DMG = 11, - MOD_AFFINITY_MACC = 12, + MOD_ELEMENT_MAB = 9, + MOD_ELEMENT_MACC = 10, + MOD_ELEMENT_MEVA = 11, + MOD_STAFF_BONUS = 12, MOD_FORCE_DW_BONUS = 13, EFFECT_BARSPELL = 14, MERIT_ELEMENT_POTENCY = 15, @@ -31,14 +31,14 @@ local column = xi.combat.element.dataTable = { - [xi.element.FIRE ] = { xi.element.WATER, xi.day.FIRESDAY, xi.weather.HOT_SPELL, xi.weather.HEAT_WAVE, xi.mod.FIRE_SDT, xi.mod.FIRE_RES_RANK, xi.mod.FIRE_NULL, xi.mod.FIRE_ABSORB, xi.mod.FIRE_MACC, xi.mod.FIRE_MEVA, xi.mod.FIRE_AFFINITY_DMG, xi.mod.FIRE_AFFINITY_ACC, xi.mod.FORCE_FIRE_DWBONUS, xi.effect.BARFIRE, xi.merit.FIRE_MAGIC_POTENCY, xi.merit.FIRE_MAGIC_ACCURACY }, - [xi.element.ICE ] = { xi.element.FIRE, xi.day.ICEDAY, xi.weather.SNOW, xi.weather.BLIZZARDS, xi.mod.ICE_SDT, xi.mod.ICE_RES_RANK, xi.mod.ICE_NULL, xi.mod.ICE_ABSORB, xi.mod.ICE_MACC, xi.mod.ICE_MEVA, xi.mod.ICE_AFFINITY_DMG, xi.mod.ICE_AFFINITY_ACC, xi.mod.FORCE_ICE_DWBONUS, xi.effect.BARBLIZZARD, xi.merit.ICE_MAGIC_POTENCY, xi.merit.ICE_MAGIC_ACCURACY }, - [xi.element.WIND ] = { xi.element.ICE, xi.day.WINDSDAY, xi.weather.WIND, xi.weather.GALES, xi.mod.WIND_SDT, xi.mod.WIND_RES_RANK, xi.mod.WIND_NULL, xi.mod.WIND_ABSORB, xi.mod.WIND_MACC, xi.mod.WIND_MEVA, xi.mod.WIND_AFFINITY_DMG, xi.mod.WIND_AFFINITY_ACC, xi.mod.FORCE_WIND_DWBONUS, xi.effect.BARAERO, xi.merit.WIND_MAGIC_POTENCY, xi.merit.WIND_MAGIC_ACCURACY }, - [xi.element.EARTH ] = { xi.element.WIND, xi.day.EARTHSDAY, xi.weather.DUST_STORM, xi.weather.SAND_STORM, xi.mod.EARTH_SDT, xi.mod.EARTH_RES_RANK, xi.mod.EARTH_NULL, xi.mod.EARTH_ABSORB, xi.mod.EARTH_MACC, xi.mod.EARTH_MEVA, xi.mod.EARTH_AFFINITY_DMG, xi.mod.EARTH_AFFINITY_ACC, xi.mod.FORCE_EARTH_DWBONUS, xi.effect.BARSTONE, xi.merit.EARTH_MAGIC_POTENCY, xi.merit.EARTH_MAGIC_ACCURACY }, - [xi.element.THUNDER] = { xi.element.EARTH, xi.day.LIGHTNINGDAY, xi.weather.THUNDER, xi.weather.THUNDERSTORMS, xi.mod.THUNDER_SDT, xi.mod.THUNDER_RES_RANK, xi.mod.LTNG_NULL, xi.mod.LTNG_ABSORB, xi.mod.THUNDER_MACC, xi.mod.THUNDER_MEVA, xi.mod.THUNDER_AFFINITY_DMG, xi.mod.THUNDER_AFFINITY_ACC, xi.mod.FORCE_LIGHTNING_DWBONUS, xi.effect.BARTHUNDER, xi.merit.LIGHTNING_MAGIC_POTENCY, xi.merit.LIGHTNING_MAGIC_ACCURACY }, - [xi.element.WATER ] = { xi.element.THUNDER, xi.day.WATERSDAY, xi.weather.RAIN, xi.weather.SQUALL, xi.mod.WATER_SDT, xi.mod.WATER_RES_RANK, xi.mod.WATER_NULL, xi.mod.WATER_ABSORB, xi.mod.WATER_MACC, xi.mod.WATER_MEVA, xi.mod.WATER_AFFINITY_DMG, xi.mod.WATER_AFFINITY_ACC, xi.mod.FORCE_WATER_DWBONUS, xi.effect.BARWATER, xi.merit.WATER_MAGIC_POTENCY, xi.merit.WATER_MAGIC_ACCURACY }, - [xi.element.LIGHT ] = { xi.element.DARK, xi.day.LIGHTSDAY, xi.weather.AURORAS, xi.weather.STELLAR_GLARE, xi.mod.LIGHT_SDT, xi.mod.LIGHT_RES_RANK, xi.mod.LIGHT_NULL, xi.mod.LIGHT_ABSORB, xi.mod.LIGHT_MACC, xi.mod.LIGHT_MEVA, xi.mod.LIGHT_AFFINITY_DMG, xi.mod.LIGHT_AFFINITY_ACC, xi.mod.FORCE_LIGHT_DWBONUS, 0, 0, 0 }, - [xi.element.DARK ] = { xi.element.LIGHT, xi.day.DARKSDAY, xi.weather.GLOOM, xi.weather.DARKNESS, xi.mod.DARK_SDT, xi.mod.DARK_RES_RANK, xi.mod.DARK_NULL, xi.mod.DARK_ABSORB, xi.mod.DARK_MACC, xi.mod.DARK_MEVA, xi.mod.DARK_AFFINITY_DMG, xi.mod.DARK_AFFINITY_ACC, xi.mod.FORCE_DARK_DWBONUS, 0, 0, 0 }, + [xi.element.FIRE ] = { xi.element.WATER, xi.day.FIRESDAY, xi.weather.HOT_SPELL, xi.weather.HEAT_WAVE, xi.mod.FIRE_SDT, xi.mod.FIRE_RES_RANK, xi.mod.FIRE_NULL, xi.mod.FIRE_ABSORB, xi.mod.FIRE_MAB, xi.mod.FIRE_MACC, xi.mod.FIRE_MEVA, xi.mod.FIRE_STAFF_BONUS, xi.mod.FORCE_FIRE_DWBONUS, xi.effect.BARFIRE, xi.merit.FIRE_MAGIC_POTENCY, xi.merit.FIRE_MAGIC_ACCURACY }, + [xi.element.ICE ] = { xi.element.FIRE, xi.day.ICEDAY, xi.weather.SNOW, xi.weather.BLIZZARDS, xi.mod.ICE_SDT, xi.mod.ICE_RES_RANK, xi.mod.ICE_NULL, xi.mod.ICE_ABSORB, xi.mod.ICE_MAB, xi.mod.ICE_MACC, xi.mod.ICE_MEVA, xi.mod.ICE_STAFF_BONUS, xi.mod.FORCE_ICE_DWBONUS, xi.effect.BARBLIZZARD, xi.merit.ICE_MAGIC_POTENCY, xi.merit.ICE_MAGIC_ACCURACY }, + [xi.element.WIND ] = { xi.element.ICE, xi.day.WINDSDAY, xi.weather.WIND, xi.weather.GALES, xi.mod.WIND_SDT, xi.mod.WIND_RES_RANK, xi.mod.WIND_NULL, xi.mod.WIND_ABSORB, xi.mod.WIND_MAB, xi.mod.WIND_MACC, xi.mod.WIND_MEVA, xi.mod.WIND_STAFF_BONUS, xi.mod.FORCE_WIND_DWBONUS, xi.effect.BARAERO, xi.merit.WIND_MAGIC_POTENCY, xi.merit.WIND_MAGIC_ACCURACY }, + [xi.element.EARTH ] = { xi.element.WIND, xi.day.EARTHSDAY, xi.weather.DUST_STORM, xi.weather.SAND_STORM, xi.mod.EARTH_SDT, xi.mod.EARTH_RES_RANK, xi.mod.EARTH_NULL, xi.mod.EARTH_ABSORB, xi.mod.EARTH_MAB, xi.mod.EARTH_MACC, xi.mod.EARTH_MEVA, xi.mod.EARTH_STAFF_BONUS, xi.mod.FORCE_EARTH_DWBONUS, xi.effect.BARSTONE, xi.merit.EARTH_MAGIC_POTENCY, xi.merit.EARTH_MAGIC_ACCURACY }, + [xi.element.THUNDER] = { xi.element.EARTH, xi.day.LIGHTNINGDAY, xi.weather.THUNDER, xi.weather.THUNDERSTORMS, xi.mod.THUNDER_SDT, xi.mod.THUNDER_RES_RANK, xi.mod.LTNG_NULL, xi.mod.LTNG_ABSORB, xi.mod.THUNDER_MAB, xi.mod.THUNDER_MACC, xi.mod.THUNDER_MEVA, xi.mod.THUNDER_STAFF_BONUS, xi.mod.FORCE_LIGHTNING_DWBONUS, xi.effect.BARTHUNDER, xi.merit.LIGHTNING_MAGIC_POTENCY, xi.merit.LIGHTNING_MAGIC_ACCURACY }, + [xi.element.WATER ] = { xi.element.THUNDER, xi.day.WATERSDAY, xi.weather.RAIN, xi.weather.SQUALL, xi.mod.WATER_SDT, xi.mod.WATER_RES_RANK, xi.mod.WATER_NULL, xi.mod.WATER_ABSORB, xi.mod.WATER_MAB, xi.mod.WATER_MACC, xi.mod.WATER_MEVA, xi.mod.WATER_STAFF_BONUS, xi.mod.FORCE_WATER_DWBONUS, xi.effect.BARWATER, xi.merit.WATER_MAGIC_POTENCY, xi.merit.WATER_MAGIC_ACCURACY }, + [xi.element.LIGHT ] = { xi.element.DARK, xi.day.LIGHTSDAY, xi.weather.AURORAS, xi.weather.STELLAR_GLARE, xi.mod.LIGHT_SDT, xi.mod.LIGHT_RES_RANK, xi.mod.LIGHT_NULL, xi.mod.LIGHT_ABSORB, xi.mod.LIGHT_MAB, xi.mod.LIGHT_MACC, xi.mod.LIGHT_MEVA, xi.mod.LIGHT_STAFF_BONUS, xi.mod.FORCE_LIGHT_DWBONUS, 0, 0, 0 }, + [xi.element.DARK ] = { xi.element.LIGHT, xi.day.DARKSDAY, xi.weather.GLOOM, xi.weather.DARKNESS, xi.mod.DARK_SDT, xi.mod.DARK_RES_RANK, xi.mod.DARK_NULL, xi.mod.DARK_ABSORB, xi.mod.DARK_MAB, xi.mod.DARK_MACC, xi.mod.DARK_MEVA, xi.mod.DARK_STAFF_BONUS, xi.mod.FORCE_DARK_DWBONUS, 0, 0, 0 }, } xi.combat.element.getOppositeElement = function(element) @@ -209,7 +209,7 @@ xi.combat.element.getElementalAbsorptionModifier = function(element) return xi.combat.element.dataTable[elementToCheck][column.MOD_ELEMENT_ABSORB] end -xi.combat.element.getElementalMACCModifier = function(element) +xi.combat.element.getElementalMABModifier = function(element) -- Validate fed value. local elementToCheck = utils.defaultIfNil(element, 0) @@ -217,10 +217,10 @@ xi.combat.element.getElementalMACCModifier = function(element) return 0 end - return xi.combat.element.dataTable[elementToCheck][column.MOD_ELEMENT_MACC] + return xi.combat.element.dataTable[elementToCheck][column.MOD_ELEMENT_MAB] end -xi.combat.element.getElementalMEVAModifier = function(element) +xi.combat.element.getElementalMACCModifier = function(element) -- Validate fed value. local elementToCheck = utils.defaultIfNil(element, 0) @@ -228,10 +228,10 @@ xi.combat.element.getElementalMEVAModifier = function(element) return 0 end - return xi.combat.element.dataTable[elementToCheck][column.MOD_ELEMENT_MEVA] + return xi.combat.element.dataTable[elementToCheck][column.MOD_ELEMENT_MACC] end -xi.combat.element.getElementalAffinityDMGModifier = function(element) +xi.combat.element.getElementalMEVAModifier = function(element) -- Validate fed value. local elementToCheck = utils.defaultIfNil(element, 0) @@ -239,10 +239,10 @@ xi.combat.element.getElementalAffinityDMGModifier = function(element) return 0 end - return xi.combat.element.dataTable[elementToCheck][column.MOD_AFFINITY_DMG] + return xi.combat.element.dataTable[elementToCheck][column.MOD_ELEMENT_MEVA] end -xi.combat.element.getElementalAffinityMACCModifier = function(element) +xi.combat.element.getElementalStaffModifier = function(element) -- Validate fed value. local elementToCheck = utils.defaultIfNil(element, 0) @@ -250,7 +250,7 @@ xi.combat.element.getElementalAffinityMACCModifier = function(element) return 0 end - return xi.combat.element.dataTable[elementToCheck][column.MOD_AFFINITY_MACC] + return xi.combat.element.dataTable[elementToCheck][column.MOD_STAFF_BONUS] end xi.combat.element.getForcedDayOrWeatherBonusModifier = function(element) diff --git a/scripts/globals/combat/magic_hit_rate.lua b/scripts/globals/combat/magic_hit_rate.lua index c58cdcc73dd..258f62261fa 100644 --- a/scripts/globals/combat/magic_hit_rate.lua +++ b/scripts/globals/combat/magic_hit_rate.lua @@ -56,7 +56,7 @@ local function magicAccuracyFromElement(actor, actionElement) local magicAcc = 0 if actionElement > xi.element.NONE then - magicAcc = actor:getMod(xi.combat.element.getElementalMACCModifier(actionElement)) + actor:getMod(xi.combat.element.getElementalAffinityMACCModifier(actionElement)) * 10 + magicAcc = actor:getMod(xi.combat.element.getElementalMACCModifier(actionElement)) + actor:getMod(xi.combat.element.getElementalStaffModifier(actionElement)) * 10 end return magicAcc diff --git a/scripts/globals/spells/damage_spell.lua b/scripts/globals/spells/damage_spell.lua index 84ff4f7df35..d804f27faab 100644 --- a/scripts/globals/spells/damage_spell.lua +++ b/scripts/globals/spells/damage_spell.lua @@ -454,24 +454,26 @@ xi.spells.damage.calculateMTDR = function(spell) return multipleTargetReduction end +-- Bonus elemental damage from Elemetal Staves. xi.spells.damage.calculateElementalStaffBonus = function(caster, spellElement) local elementalStaffBonus = 1 if spellElement > xi.element.NONE then - elementalStaffBonus = elementalStaffBonus + caster:getMod(xi.combat.element.getElementalAffinityDMGModifier(spellElement)) * 0.05 + elementalStaffBonus = 1 + caster:getMod(xi.combat.element.getElementalStaffModifier(spellElement)) * 5 / 100 end return elementalStaffBonus end -xi.spells.damage.calculateMagianAffinity = function() - -- TODO: IMPLEMENT MAGIAN TRIALS AFFINITY SYSTEM, which could be as simple as introducing a new modifier. Out of the scope of this rewrite, for now - local magianAffinity = 1 +-- Elemental "Magic Attack Bonus" from Magian trials staves, Atmas, etc... +xi.spells.damage.calculateElementalAffinityBonus = function(caster, spellElement) + local affinityFactor = 1 - -- TODO: Code Magian Trials affinity. - -- TODO: ADD (because it's additive) bonuses from atmas. Also, not sure the current affinity mod is the ACTUAL "affinity" mod as understood in wikis. + if spellElement > xi.element.NONE then + affinityFactor = 1 + caster:getMod(xi.combat.element.getElementalMABModifier(spellElement)) / 100 + end - return magianAffinity + return affinityFactor end -- Elemental Specific Damage Taken (Elemental SDT) @@ -1074,7 +1076,7 @@ xi.spells.damage.useDamageSpell = function(caster, target, spell) local spellDamage = xi.spells.damage.calculateBaseDamage(caster, target, spellId, spellGroup, skillType, statUsed) local multipleTargetReduction = xi.spells.damage.calculateMTDR(spell) local elementalStaffBonus = xi.spells.damage.calculateElementalStaffBonus(caster, spellElement) - local magianAffinity = xi.spells.damage.calculateMagianAffinity() + local elementalAffinityBonus = xi.spells.damage.calculateElementalAffinityBonus(caster, spellElement) local additionalResistTier = xi.spells.damage.calculateAdditionalResistTier(caster, target, spellElement) local sdt = xi.spells.damage.calculateSDT(target, spellElement) local dayAndWeather = xi.spells.damage.calculateDayAndWeather(caster, spellElement, forceDayWeatherBonus) @@ -1094,7 +1096,7 @@ xi.spells.damage.useDamageSpell = function(caster, target, spell) -- Calculate finalDamage. It MUST be floored after EACH multiplication. finalDamage = math.floor(spellDamage * multipleTargetReduction) finalDamage = math.floor(finalDamage * elementalStaffBonus) - finalDamage = math.floor(finalDamage * magianAffinity) + finalDamage = math.floor(finalDamage * elementalAffinityBonus) finalDamage = math.floor(finalDamage * sdt) finalDamage = math.floor(finalDamage * resistTier) finalDamage = math.floor(finalDamage * additionalResistTier) diff --git a/sql/item_mods.sql b/sql/item_mods.sql index 83d5427ce57..ab5d4dd18fc 100644 --- a/sql/item_mods.sql +++ b/sql/item_mods.sql @@ -34708,10 +34708,8 @@ INSERT INTO `item_mods` VALUES (17545,8,4); -- STR: 4 INSERT INTO `item_mods` VALUES (17545,16,15); -- ICE_MEVA: 15 INSERT INTO `item_mods` VALUES (17545,23,10); -- ATT: 10 INSERT INTO `item_mods` VALUES (17545,24,10); -- RATT: 10 -INSERT INTO `item_mods` VALUES (17545,347,2); -- FIRE_AFFINITY_DMG: 2 -INSERT INTO `item_mods` VALUES (17545,348,-2); -- ICE_AFFINITY_DMG: -2 -INSERT INTO `item_mods` VALUES (17545,544,2); -- FIRE_AFFINITY_ACC: 2 -INSERT INTO `item_mods` VALUES (17545,545,-2); -- ICE_AFFINITY_ACC: -2 +INSERT INTO `item_mods` VALUES (17545,347,2); -- FIRE_STAFF_BONUS: 2 +INSERT INTO `item_mods` VALUES (17545,348,-2); -- ICE_STAFF_BONUS: -2 INSERT INTO `item_mods` VALUES (17545,553,2); -- FIRE_AFFINITY_PERP: 2 INSERT INTO `item_mods` VALUES (17545,554,-2); -- ICE_AFFINITY_PERP: -2 @@ -34720,10 +34718,8 @@ INSERT INTO `item_mods` VALUES (17546,8,5); -- STR: 5 INSERT INTO `item_mods` VALUES (17546,16,20); -- ICE_MEVA: 20 INSERT INTO `item_mods` VALUES (17546,23,10); -- ATT: 10 INSERT INTO `item_mods` VALUES (17546,24,10); -- RATT: 10 -INSERT INTO `item_mods` VALUES (17546,347,3); -- FIRE_AFFINITY_DMG: 3 -INSERT INTO `item_mods` VALUES (17546,348,-3); -- ICE_AFFINITY_DMG: -3 -INSERT INTO `item_mods` VALUES (17546,544,3); -- FIRE_AFFINITY_ACC: 3 -INSERT INTO `item_mods` VALUES (17546,545,-3); -- ICE_AFFINITY_ACC: -3 +INSERT INTO `item_mods` VALUES (17546,347,3); -- FIRE_STAFF_BONUS: 3 +INSERT INTO `item_mods` VALUES (17546,348,-3); -- ICE_STAFF_BONUS: -3 INSERT INTO `item_mods` VALUES (17546,553,3); -- FIRE_AFFINITY_PERP: 3 INSERT INTO `item_mods` VALUES (17546,554,-3); -- ICE_AFFINITY_PERP: -3 @@ -34731,10 +34727,8 @@ INSERT INTO `item_mods` VALUES (17546,554,-3); -- ICE_AFFINITY_PERP: -3 INSERT INTO `item_mods` VALUES (17547,12,4); -- INT: 4 INSERT INTO `item_mods` VALUES (17547,17,15); -- WIND_MEVA: 15 INSERT INTO `item_mods` VALUES (17547,115,10); -- ELEM: 10 -INSERT INTO `item_mods` VALUES (17547,348,2); -- ICE_AFFINITY_DMG: 2 -INSERT INTO `item_mods` VALUES (17547,349,-2); -- WIND_AFFINITY_DMG: -2 -INSERT INTO `item_mods` VALUES (17547,545,2); -- ICE_AFFINITY_ACC: 2 -INSERT INTO `item_mods` VALUES (17547,546,-2); -- WIND_AFFINITY_ACC: -2 +INSERT INTO `item_mods` VALUES (17547,348,2); -- ICE_STAFF_BONUS: 2 +INSERT INTO `item_mods` VALUES (17547,349,-2); -- WIND_STAFF_BONUS: -2 INSERT INTO `item_mods` VALUES (17547,554,2); -- ICE_AFFINITY_PERP: 2 INSERT INTO `item_mods` VALUES (17547,555,-2); -- WIND_AFFINITY_PERP: -2 @@ -34742,10 +34736,8 @@ INSERT INTO `item_mods` VALUES (17547,555,-2); -- WIND_AFFINITY_PERP: -2 INSERT INTO `item_mods` VALUES (17548,12,5); -- INT: 5 INSERT INTO `item_mods` VALUES (17548,17,20); -- WIND_MEVA: 20 INSERT INTO `item_mods` VALUES (17548,115,10); -- ELEM: 10 -INSERT INTO `item_mods` VALUES (17548,348,3); -- ICE_AFFINITY_DMG: 3 -INSERT INTO `item_mods` VALUES (17548,349,-3); -- WIND_AFFINITY_DMG: -3 -INSERT INTO `item_mods` VALUES (17548,545,3); -- ICE_AFFINITY_ACC: 3 -INSERT INTO `item_mods` VALUES (17548,546,-3); -- WIND_AFFINITY_ACC: -3 +INSERT INTO `item_mods` VALUES (17548,348,3); -- ICE_STAFF_BONUS: 3 +INSERT INTO `item_mods` VALUES (17548,349,-3); -- WIND_STAFF_BONUS: -3 INSERT INTO `item_mods` VALUES (17548,554,3); -- ICE_AFFINITY_PERP: 3 INSERT INTO `item_mods` VALUES (17548,555,-3); -- WIND_AFFINITY_PERP: -3 @@ -34753,10 +34745,8 @@ INSERT INTO `item_mods` VALUES (17548,555,-3); -- WIND_AFFINITY_PERP: -3 INSERT INTO `item_mods` VALUES (17549,11,4); -- AGI: 4 INSERT INTO `item_mods` VALUES (17549,18,15); -- EARTH_MEVA: 15 INSERT INTO `item_mods` VALUES (17549,68,10); -- EVA: 10 -INSERT INTO `item_mods` VALUES (17549,349,2); -- WIND_AFFINITY_DMG: 2 -INSERT INTO `item_mods` VALUES (17549,350,-2); -- EARTH_AFFINITY_DMG: -2 -INSERT INTO `item_mods` VALUES (17549,546,2); -- WIND_AFFINITY_ACC: 2 -INSERT INTO `item_mods` VALUES (17549,547,-2); -- EARTH_AFFINITY_ACC: -2 +INSERT INTO `item_mods` VALUES (17549,349,2); -- WIND_STAFF_BONUS: 2 +INSERT INTO `item_mods` VALUES (17549,350,-2); -- EARTH_STAFF_BONUS: -2 INSERT INTO `item_mods` VALUES (17549,555,2); -- WIND_AFFINITY_PERP: 2 INSERT INTO `item_mods` VALUES (17549,556,-2); -- EARTH_AFFINITY_PERP: -2 @@ -34764,10 +34754,8 @@ INSERT INTO `item_mods` VALUES (17549,556,-2); -- EARTH_AFFINITY_PERP: -2 INSERT INTO `item_mods` VALUES (17550,11,5); -- AGI: 5 INSERT INTO `item_mods` VALUES (17550,18,20); -- EARTH_MEVA: 20 INSERT INTO `item_mods` VALUES (17550,68,10); -- EVA: 10 -INSERT INTO `item_mods` VALUES (17550,349,3); -- WIND_AFFINITY_DMG: 3 -INSERT INTO `item_mods` VALUES (17550,350,-3); -- EARTH_AFFINITY_DMG: -3 -INSERT INTO `item_mods` VALUES (17550,546,3); -- WIND_AFFINITY_ACC: 3 -INSERT INTO `item_mods` VALUES (17550,547,-3); -- EARTH_AFFINITY_ACC: -3 +INSERT INTO `item_mods` VALUES (17550,349,3); -- WIND_STAFF_BONUS: 3 +INSERT INTO `item_mods` VALUES (17550,350,-3); -- EARTH_STAFF_BONUS: -3 INSERT INTO `item_mods` VALUES (17550,555,3); -- WIND_AFFINITY_PERP: 3 INSERT INTO `item_mods` VALUES (17550,556,-3); -- EARTH_AFFINITY_PERP: -3 @@ -34775,10 +34763,8 @@ INSERT INTO `item_mods` VALUES (17550,556,-3); -- EARTH_AFFINITY_PERP: -3 INSERT INTO `item_mods` VALUES (17551,10,4); -- VIT: 4 INSERT INTO `item_mods` VALUES (17551,19,15); -- THUNDER_MEVA: 15 INSERT INTO `item_mods` VALUES (17551,161,-2000); -- DMGPHYS: -2000 -INSERT INTO `item_mods` VALUES (17551,350,2); -- EARTH_AFFINITY_DMG: 2 -INSERT INTO `item_mods` VALUES (17551,351,-2); -- THUNDER_AFFINITY_DMG: -2 -INSERT INTO `item_mods` VALUES (17551,547,2); -- EARTH_AFFINITY_ACC: 2 -INSERT INTO `item_mods` VALUES (17551,548,-2); -- THUNDER_AFFINITY_ACC: -2 +INSERT INTO `item_mods` VALUES (17551,350,2); -- EARTH_STAFF_BONUS: 2 +INSERT INTO `item_mods` VALUES (17551,351,-2); -- THUNDER_STAFF_BONUS: -2 INSERT INTO `item_mods` VALUES (17551,556,2); -- EARTH_AFFINITY_PERP: 2 INSERT INTO `item_mods` VALUES (17551,557,-2); -- THUNDER_AFFINITY_PERP: -2 @@ -34786,10 +34772,8 @@ INSERT INTO `item_mods` VALUES (17551,557,-2); -- THUNDER_AFFINITY_PERP: -2 INSERT INTO `item_mods` VALUES (17552,10,5); -- VIT: 5 INSERT INTO `item_mods` VALUES (17552,19,20); -- THUNDER_MEVA: 20 INSERT INTO `item_mods` VALUES (17552,161,-2000); -- DMGPHYS: -2000 -INSERT INTO `item_mods` VALUES (17552,350,3); -- EARTH_AFFINITY_DMG: 3 -INSERT INTO `item_mods` VALUES (17552,351,-3); -- THUNDER_AFFINITY_DMG: -3 -INSERT INTO `item_mods` VALUES (17552,547,3); -- EARTH_AFFINITY_ACC: 3 -INSERT INTO `item_mods` VALUES (17552,548,-3); -- THUNDER_AFFINITY_ACC: -3 +INSERT INTO `item_mods` VALUES (17552,350,3); -- EARTH_STAFF_BONUS: 3 +INSERT INTO `item_mods` VALUES (17552,351,-3); -- THUNDER_STAFF_BONUS: -3 INSERT INTO `item_mods` VALUES (17552,556,3); -- EARTH_AFFINITY_PERP: 3 INSERT INTO `item_mods` VALUES (17552,557,-3); -- THUNDER_AFFINITY_PERP: -3 @@ -34797,10 +34781,8 @@ INSERT INTO `item_mods` VALUES (17552,557,-3); -- THUNDER_AFFINITY_PERP: -3 INSERT INTO `item_mods` VALUES (17553,9,4); -- DEX: 4 INSERT INTO `item_mods` VALUES (17553,20,15); -- WATER_MEVA: 15 INSERT INTO `item_mods` VALUES (17553,165,15); -- CRITHITRATE: 15 -INSERT INTO `item_mods` VALUES (17553,351,2); -- THUNDER_AFFINITY_DMG: 2 -INSERT INTO `item_mods` VALUES (17553,352,-2); -- WATER_AFFINITY_DMG: -2 -INSERT INTO `item_mods` VALUES (17553,548,2); -- THUNDER_AFFINITY_ACC: 2 -INSERT INTO `item_mods` VALUES (17553,549,-2); -- WATER_AFFINITY_ACC: -2 +INSERT INTO `item_mods` VALUES (17553,351,2); -- THUNDER_STAFF_BONUS: 2 +INSERT INTO `item_mods` VALUES (17553,352,-2); -- WATER_STAFF_BONUS: -2 INSERT INTO `item_mods` VALUES (17553,557,2); -- THUNDER_AFFINITY_PERP: 2 INSERT INTO `item_mods` VALUES (17553,558,-2); -- WATER_AFFINITY_PERP: -2 @@ -34808,10 +34790,8 @@ INSERT INTO `item_mods` VALUES (17553,558,-2); -- WATER_AFFINITY_PERP: -2 INSERT INTO `item_mods` VALUES (17554,9,5); -- DEX: 5 INSERT INTO `item_mods` VALUES (17554,20,20); -- WATER_MEVA: 20 INSERT INTO `item_mods` VALUES (17554,165,15); -- CRITHITRATE: 15 -INSERT INTO `item_mods` VALUES (17554,351,3); -- THUNDER_AFFINITY_DMG: 3 -INSERT INTO `item_mods` VALUES (17554,352,-3); -- WATER_AFFINITY_DMG: -3 -INSERT INTO `item_mods` VALUES (17554,548,3); -- THUNDER_AFFINITY_ACC: 3 -INSERT INTO `item_mods` VALUES (17554,549,-3); -- WATER_AFFINITY_ACC: -3 +INSERT INTO `item_mods` VALUES (17554,351,3); -- THUNDER_STAFF_BONUS: 3 +INSERT INTO `item_mods` VALUES (17554,352,-3); -- WATER_STAFF_BONUS: -3 INSERT INTO `item_mods` VALUES (17554,557,3); -- THUNDER_AFFINITY_PERP: 3 INSERT INTO `item_mods` VALUES (17554,558,-3); -- WATER_AFFINITY_PERP: -3 @@ -34819,10 +34799,8 @@ INSERT INTO `item_mods` VALUES (17554,558,-3); -- WATER_AFFINITY_PERP: -3 INSERT INTO `item_mods` VALUES (17555,13,4); -- MND: 4 INSERT INTO `item_mods` VALUES (17555,15,15); -- FIRE_MEVA: 15 INSERT INTO `item_mods` VALUES (17555,111,10); -- DIVINE: 10 -INSERT INTO `item_mods` VALUES (17555,347,-2); -- FIRE_AFFINITY_DMG: -2 -INSERT INTO `item_mods` VALUES (17555,352,2); -- WATER_AFFINITY_DMG: 2 -INSERT INTO `item_mods` VALUES (17555,544,-2); -- FIRE_AFFINITY_ACC: -2 -INSERT INTO `item_mods` VALUES (17555,549,2); -- WATER_AFFINITY_ACC: 2 +INSERT INTO `item_mods` VALUES (17555,347,-2); -- FIRE_STAFF_BONUS: -2 +INSERT INTO `item_mods` VALUES (17555,352,2); -- WATER_STAFF_BONUS: 2 INSERT INTO `item_mods` VALUES (17555,553,-2); -- FIRE_AFFINITY_PERP: -2 INSERT INTO `item_mods` VALUES (17555,558,2); -- WATER_AFFINITY_PERP: 2 @@ -34830,10 +34808,8 @@ INSERT INTO `item_mods` VALUES (17555,558,2); -- WATER_AFFINITY_PERP: 2 INSERT INTO `item_mods` VALUES (17556,13,5); -- MND: 5 INSERT INTO `item_mods` VALUES (17556,15,20); -- FIRE_MEVA: 20 INSERT INTO `item_mods` VALUES (17556,111,10); -- DIVINE: 10 -INSERT INTO `item_mods` VALUES (17556,347,-3); -- FIRE_AFFINITY_DMG: -3 -INSERT INTO `item_mods` VALUES (17556,352,3); -- WATER_AFFINITY_DMG: 3 -INSERT INTO `item_mods` VALUES (17556,544,-3); -- FIRE_AFFINITY_ACC: -3 -INSERT INTO `item_mods` VALUES (17556,549,3); -- WATER_AFFINITY_ACC: 3 +INSERT INTO `item_mods` VALUES (17556,347,-3); -- FIRE_STAFF_BONUS: -3 +INSERT INTO `item_mods` VALUES (17556,352,3); -- WATER_STAFF_BONUS: 3 INSERT INTO `item_mods` VALUES (17556,553,-3); -- FIRE_AFFINITY_PERP: -3 INSERT INTO `item_mods` VALUES (17556,558,3); -- WATER_AFFINITY_PERP: 3 @@ -34846,12 +34822,10 @@ INSERT INTO `item_mods` VALUES (17557,12,1); -- INT: 1 INSERT INTO `item_mods` VALUES (17557,13,1); -- MND: 1 INSERT INTO `item_mods` VALUES (17557,14,1); -- CHR: 1 INSERT INTO `item_mods` VALUES (17557,22,15); -- DARK_MEVA: 15 -INSERT INTO `item_mods` VALUES (17557,353,2); -- LIGHT_AFFINITY_DMG: 2 -INSERT INTO `item_mods` VALUES (17557,354,-2); -- DARK_AFFINITY_DMG: -2 +INSERT INTO `item_mods` VALUES (17557,353,2); -- LIGHT_STAFF_BONUS: 2 +INSERT INTO `item_mods` VALUES (17557,354,-2); -- DARK_STAFF_BONUS: -2 INSERT INTO `item_mods` VALUES (17557,374,10); -- CURE_POTENCY: 10 INSERT INTO `item_mods` VALUES (17557,391,10); -- CHARM_CHANCE: 10 -INSERT INTO `item_mods` VALUES (17557,550,2); -- LIGHT_AFFINITY_ACC: 2 -INSERT INTO `item_mods` VALUES (17557,551,-2); -- DARK_AFFINITY_ACC: -2 INSERT INTO `item_mods` VALUES (17557,559,2); -- LIGHT_AFFINITY_PERP: 2 INSERT INTO `item_mods` VALUES (17557,560,-2); -- DARK_AFFINITY_PERP: -2 @@ -34864,12 +34838,10 @@ INSERT INTO `item_mods` VALUES (17558,12,2); -- INT: 2 INSERT INTO `item_mods` VALUES (17558,13,2); -- MND: 2 INSERT INTO `item_mods` VALUES (17558,14,2); -- CHR: 2 INSERT INTO `item_mods` VALUES (17558,22,20); -- DARK_MEVA: 20 -INSERT INTO `item_mods` VALUES (17558,353,3); -- LIGHT_AFFINITY_DMG: 3 -INSERT INTO `item_mods` VALUES (17558,354,-3); -- DARK_AFFINITY_DMG: -3 +INSERT INTO `item_mods` VALUES (17558,353,3); -- LIGHT_STAFF_BONUS: 3 +INSERT INTO `item_mods` VALUES (17558,354,-3); -- DARK_STAFF_BONUS: -3 INSERT INTO `item_mods` VALUES (17558,374,10); -- CURE_POTENCY: 10 INSERT INTO `item_mods` VALUES (17558,391,15); -- CHARM_CHANCE: 15 -INSERT INTO `item_mods` VALUES (17558,550,3); -- LIGHT_AFFINITY_ACC: 3 -INSERT INTO `item_mods` VALUES (17558,551,-3); -- DARK_AFFINITY_ACC: -3 INSERT INTO `item_mods` VALUES (17558,559,3); -- LIGHT_AFFINITY_PERP: 3 INSERT INTO `item_mods` VALUES (17558,560,-3); -- DARK_AFFINITY_PERP: -3 @@ -34883,10 +34855,8 @@ INSERT INTO `item_mods` VALUES (17559,13,1); -- MND: 1 INSERT INTO `item_mods` VALUES (17559,14,1); -- CHR: 1 INSERT INTO `item_mods` VALUES (17559,21,15); -- LIGHT_MEVA: 15 INSERT INTO `item_mods` VALUES (17559,71,10); -- MPHEAL: 10 -INSERT INTO `item_mods` VALUES (17559,353,-2); -- LIGHT_AFFINITY_DMG: -2 -INSERT INTO `item_mods` VALUES (17559,354,2); -- DARK_AFFINITY_DMG: 2 -INSERT INTO `item_mods` VALUES (17559,550,-2); -- LIGHT_AFFINITY_ACC: -2 -INSERT INTO `item_mods` VALUES (17559,551,2); -- DARK_AFFINITY_ACC: 2 +INSERT INTO `item_mods` VALUES (17559,353,-2); -- LIGHT_STAFF_BONUS: -2 +INSERT INTO `item_mods` VALUES (17559,354,2); -- DARK_STAFF_BONUS: 2 INSERT INTO `item_mods` VALUES (17559,559,-2); -- LIGHT_AFFINITY_PERP: -2 INSERT INTO `item_mods` VALUES (17559,560,2); -- DARK_AFFINITY_PERP: 2 @@ -34900,10 +34870,8 @@ INSERT INTO `item_mods` VALUES (17560,13,2); -- MND: 2 INSERT INTO `item_mods` VALUES (17560,14,2); -- CHR: 2 INSERT INTO `item_mods` VALUES (17560,21,20); -- LIGHT_MEVA: 20 INSERT INTO `item_mods` VALUES (17560,71,10); -- MPHEAL: 10 -INSERT INTO `item_mods` VALUES (17560,353,-3); -- LIGHT_AFFINITY_DMG: -3 -INSERT INTO `item_mods` VALUES (17560,354,3); -- DARK_AFFINITY_DMG: 3 -INSERT INTO `item_mods` VALUES (17560,550,-3); -- LIGHT_AFFINITY_ACC: -3 -INSERT INTO `item_mods` VALUES (17560,551,3); -- DARK_AFFINITY_ACC: 3 +INSERT INTO `item_mods` VALUES (17560,353,-3); -- LIGHT_STAFF_BONUS: -3 +INSERT INTO `item_mods` VALUES (17560,354,3); -- DARK_STAFF_BONUS: 3 INSERT INTO `item_mods` VALUES (17560,559,-3); -- LIGHT_AFFINITY_PERP: -3 INSERT INTO `item_mods` VALUES (17560,560,3); -- DARK_AFFINITY_PERP: 3 @@ -36228,10 +36196,8 @@ INSERT INTO `item_mods` VALUES (18056,345,1000); -- TP_BONUS: 1000 -- Ys Scythe INSERT INTO `item_mods` VALUES (18057,3,-5); -- HPP: -5 INSERT INTO `item_mods` VALUES (18057,25,5); -- ACC: 5 -INSERT INTO `item_mods` VALUES (18057,353,-2); -- LIGHT_AFFINITY_DMG: -2 -INSERT INTO `item_mods` VALUES (18057,354,2); -- DARK_AFFINITY_DMG: 2 -INSERT INTO `item_mods` VALUES (18057,550,-2); -- LIGHT_AFFINITY_ACC: -2 -INSERT INTO `item_mods` VALUES (18057,551,2); -- DARK_AFFINITY_ACC: 2 +INSERT INTO `item_mods` VALUES (18057,353,-2); -- LIGHT_STAFF_BONUS: -2 +INSERT INTO `item_mods` VALUES (18057,354,2); -- DARK_STAFF_BONUS: 2 INSERT INTO `item_mods` VALUES (18057,559,-2); -- LIGHT_AFFINITY_PERP: -2 INSERT INTO `item_mods` VALUES (18057,560,2); -- DARK_AFFINITY_PERP: 2 @@ -37999,24 +37965,16 @@ INSERT INTO `item_mods` VALUES (18632,20,15); -- WATER_MEVA: 15 INSERT INTO `item_mods` VALUES (18632,21,15); -- LIGHT_MEVA: 15 INSERT INTO `item_mods` VALUES (18632,22,15); -- DARK_MEVA: 15 INSERT INTO `item_mods` VALUES (18632,71,10); -- MPHEAL: 10 -INSERT INTO `item_mods` VALUES (18632,347,2); -- FIRE_AFFINITY_DMG: 2 -INSERT INTO `item_mods` VALUES (18632,348,2); -- ICE_AFFINITY_DMG: 2 -INSERT INTO `item_mods` VALUES (18632,349,2); -- WIND_AFFINITY_DMG: 2 -INSERT INTO `item_mods` VALUES (18632,350,2); -- EARTH_AFFINITY_DMG: 2 -INSERT INTO `item_mods` VALUES (18632,351,2); -- THUNDER_AFFINITY_DMG: 2 -INSERT INTO `item_mods` VALUES (18632,352,2); -- WATER_AFFINITY_DMG: 2 -INSERT INTO `item_mods` VALUES (18632,353,2); -- LIGHT_AFFINITY_DMG: 2 -INSERT INTO `item_mods` VALUES (18632,354,2); -- DARK_AFFINITY_DMG: 2 +INSERT INTO `item_mods` VALUES (18632,347,2); -- FIRE_STAFF_BONUS: 2 +INSERT INTO `item_mods` VALUES (18632,348,2); -- ICE_STAFF_BONUS: 2 +INSERT INTO `item_mods` VALUES (18632,349,2); -- WIND_STAFF_BONUS: 2 +INSERT INTO `item_mods` VALUES (18632,350,2); -- EARTH_STAFF_BONUS: 2 +INSERT INTO `item_mods` VALUES (18632,351,2); -- THUNDER_STAFF_BONUS: 2 +INSERT INTO `item_mods` VALUES (18632,352,2); -- WATER_STAFF_BONUS: 2 +INSERT INTO `item_mods` VALUES (18632,353,2); -- LIGHT_STAFF_BONUS: 2 +INSERT INTO `item_mods` VALUES (18632,354,2); -- DARK_STAFF_BONUS: 2 INSERT INTO `item_mods` VALUES (18632,374,10); -- CURE_POTENCY: 10 INSERT INTO `item_mods` VALUES (18632,391,10); -- CHARM_CHANCE: 10 -INSERT INTO `item_mods` VALUES (18632,544,2); -- FIRE_AFFINITY_ACC: 2 -INSERT INTO `item_mods` VALUES (18632,545,2); -- ICE_AFFINITY_ACC: 2 -INSERT INTO `item_mods` VALUES (18632,546,2); -- WIND_AFFINITY_ACC: 2 -INSERT INTO `item_mods` VALUES (18632,547,2); -- EARTH_AFFINITY_ACC: 2 -INSERT INTO `item_mods` VALUES (18632,548,2); -- THUNDER_AFFINITY_ACC: 2 -INSERT INTO `item_mods` VALUES (18632,549,2); -- WATER_AFFINITY_ACC: 2 -INSERT INTO `item_mods` VALUES (18632,550,2); -- LIGHT_AFFINITY_ACC: 2 -INSERT INTO `item_mods` VALUES (18632,551,2); -- DARK_AFFINITY_ACC: 2 INSERT INTO `item_mods` VALUES (18632,553,2); -- FIRE_AFFINITY_PERP: 2 INSERT INTO `item_mods` VALUES (18632,554,2); -- ICE_AFFINITY_PERP: 2 INSERT INTO `item_mods` VALUES (18632,555,2); -- WIND_AFFINITY_PERP: 2 @@ -38044,24 +38002,16 @@ INSERT INTO `item_mods` VALUES (18633,20,20); -- WATER_MEVA: 20 INSERT INTO `item_mods` VALUES (18633,21,20); -- LIGHT_MEVA: 20 INSERT INTO `item_mods` VALUES (18633,22,20); -- DARK_MEVA: 20 INSERT INTO `item_mods` VALUES (18633,71,10); -- MPHEAL: 10 -INSERT INTO `item_mods` VALUES (18633,347,3); -- FIRE_AFFINITY_DMG: 3 -INSERT INTO `item_mods` VALUES (18633,348,3); -- ICE_AFFINITY_DMG: 3 -INSERT INTO `item_mods` VALUES (18633,349,3); -- WIND_AFFINITY_DMG: 3 -INSERT INTO `item_mods` VALUES (18633,350,3); -- EARTH_AFFINITY_DMG: 3 -INSERT INTO `item_mods` VALUES (18633,351,3); -- THUNDER_AFFINITY_DMG: 3 -INSERT INTO `item_mods` VALUES (18633,352,3); -- WATER_AFFINITY_DMG: 3 -INSERT INTO `item_mods` VALUES (18633,353,3); -- LIGHT_AFFINITY_DMG: 3 -INSERT INTO `item_mods` VALUES (18633,354,3); -- DARK_AFFINITY_DMG: 3 +INSERT INTO `item_mods` VALUES (18633,347,3); -- FIRE_STAFF_BONUS: 3 +INSERT INTO `item_mods` VALUES (18633,348,3); -- ICE_STAFF_BONUS: 3 +INSERT INTO `item_mods` VALUES (18633,349,3); -- WIND_STAFF_BONUS: 3 +INSERT INTO `item_mods` VALUES (18633,350,3); -- EARTH_STAFF_BONUS: 3 +INSERT INTO `item_mods` VALUES (18633,351,3); -- THUNDER_STAFF_BONUS: 3 +INSERT INTO `item_mods` VALUES (18633,352,3); -- WATER_STAFF_BONUS: 3 +INSERT INTO `item_mods` VALUES (18633,353,3); -- LIGHT_STAFF_BONUS: 3 +INSERT INTO `item_mods` VALUES (18633,354,3); -- DARK_STAFF_BONUS: 3 INSERT INTO `item_mods` VALUES (18633,374,10); -- CURE_POTENCY: 10 INSERT INTO `item_mods` VALUES (18633,391,15); -- CHARM_CHANCE: 15 -INSERT INTO `item_mods` VALUES (18633,544,3); -- FIRE_AFFINITY_ACC: 3 -INSERT INTO `item_mods` VALUES (18633,545,3); -- ICE_AFFINITY_ACC: 3 -INSERT INTO `item_mods` VALUES (18633,546,3); -- WIND_AFFINITY_ACC: 3 -INSERT INTO `item_mods` VALUES (18633,547,3); -- EARTH_AFFINITY_ACC: 3 -INSERT INTO `item_mods` VALUES (18633,548,3); -- THUNDER_AFFINITY_ACC: 3 -INSERT INTO `item_mods` VALUES (18633,549,3); -- WATER_AFFINITY_ACC: 3 -INSERT INTO `item_mods` VALUES (18633,550,3); -- LIGHT_AFFINITY_ACC: 3 -INSERT INTO `item_mods` VALUES (18633,551,3); -- DARK_AFFINITY_ACC: 3 INSERT INTO `item_mods` VALUES (18633,553,3); -- FIRE_AFFINITY_PERP: 3 INSERT INTO `item_mods` VALUES (18633,554,3); -- ICE_AFFINITY_PERP: 3 INSERT INTO `item_mods` VALUES (18633,555,3); -- WIND_AFFINITY_PERP: 3 diff --git a/src/map/modifier.h b/src/map/modifier.h index 380cc75a94f..7b8539ba594 100644 --- a/src/map/modifier.h +++ b/src/map/modifier.h @@ -764,24 +764,14 @@ enum class Mod SPECIAL_ATTACK_EVASION = 1024, // Foil "Special Attack" evasion AUGMENTS_SLEIGHT_OF_SWORD = 277, // Enhances bonus "Subtle Blow" per merit. - // Stores the amount of elemental affinity (elemental staves mostly) - damage, acc, and perpetuation is all handled separately - FIRE_AFFINITY_DMG = 347, // They're stored separately due to Magian stuff - they can grant different levels of - ICE_AFFINITY_DMG = 348, // the damage/acc/perp affinity on the same weapon, so they must be separated. - WIND_AFFINITY_DMG = 349, // Each level of damage affinity is +/-5% damage, acc is +/-10 acc, and perp is - EARTH_AFFINITY_DMG = 350, // +/-1 mp/tic. This means that anyone adding these modifiers will have to add - THUNDER_AFFINITY_DMG = 351, // 1 to the wiki amount. For example, Fire Staff has 2 in fire affinity for - WATER_AFFINITY_DMG = 352, // DMG, ACC, and PERP, while the wiki lists it as having 1 in each. - LIGHT_AFFINITY_DMG = 353, - DARK_AFFINITY_DMG = 354, - - FIRE_AFFINITY_ACC = 544, - ICE_AFFINITY_ACC = 545, - WIND_AFFINITY_ACC = 546, - EARTH_AFFINITY_ACC = 547, - THUNDER_AFFINITY_ACC = 548, - WATER_AFFINITY_ACC = 549, - LIGHT_AFFINITY_ACC = 550, - DARK_AFFINITY_ACC = 551, + FIRE_STAFF_BONUS = 347, + ICE_STAFF_BONUS = 348, + WIND_STAFF_BONUS = 349, + EARTH_STAFF_BONUS = 350, + THUNDER_STAFF_BONUS = 351, + WATER_STAFF_BONUS = 352, + LIGHT_STAFF_BONUS = 353, + DARK_STAFF_BONUS = 354, FIRE_AFFINITY_PERP = 553, ICE_AFFINITY_PERP = 554, @@ -1081,6 +1071,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: 544 to 551, both included. // SPARE IDs: 1139 and onward };