From 174f4346c07a4e2c06f7ac5e10c05a8d88db7a11 Mon Sep 17 00:00:00 2001 From: Skold <113406182+Skold177@users.noreply.github.com> Date: Sat, 23 May 2026 14:29:23 -0400 Subject: [PATCH] Correct Magic Mortar Formula Updates Magic Mortar with testing from retail. --- .../abilities/pets/automaton/magic_mortar.lua | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/scripts/actions/abilities/pets/automaton/magic_mortar.lua b/scripts/actions/abilities/pets/automaton/magic_mortar.lua index baf389f8926..23751cdb50b 100644 --- a/scripts/actions/abilities/pets/automaton/magic_mortar.lua +++ b/scripts/actions/abilities/pets/automaton/magic_mortar.lua @@ -1,6 +1,7 @@ ----------------------------------- -- Magic Mortar -- Description: Damage varies with Automaton HP. +-- https://wiki.ffo.jp/html/14821.html ----------------------------------- ---@type TAbilityAutomaton local abilityObject = {} @@ -26,21 +27,19 @@ abilityObject.onAutomatonAbility = function(target, automaton, skill, master, ac params.shadowBehavior = xi.mobskills.shadowBehavior.IGNORE_SHADOWS if xi.settings.main.USE_ADOULIN_WEAPON_SKILL_CHANGES then - params.fTP = { 1.5, 1.75, 2.5 } + local additiveDamage = automaton:getSkillLevel(xi.skill.AUTOMATON_MELEE) + + params.additiveDamage = { additiveDamage, additiveDamage, additiveDamage } + params.fTP = { 0.50, 0.75, 1.50 } end - -- Flame Holder multiplies the base damage of Magic Mortar. - local flameHolderModifier = 1.0 + automaton:getMod(xi.mod.WEAPONSKILL_DAMAGE_BASE) / 1000 + -- Flame Holder multiplies the base damage of Magic Mortar. Gives a 25% boost at 3 Fire Maneuvers. + local flameHolderModifier = 1.0 + (automaton:getMod(xi.mod.WEAPONSKILL_DAMAGE_BASE) - 100) / 1000 if flameHolderModifier > 1.0 then params.baseDamage = math.floor(params.baseDamage * flameHolderModifier) end - -- A flat amount of damage is added to Magic Mortar based on the automatons skill level, not multiplied by Flame Holder. - local automatonSkill = automaton:getSkillLevel(xi.skill.AUTOMATON_MELEE) - - params.baseDamage = params.baseDamage + automatonSkill - local info = xi.mobskills.mobMagicalMove(automaton, target, skill, action, params) if xi.mobskills.processDamage(automaton, target, skill, action, info) then