From fc9f330650371922385f59e23018c4ce3196e293 Mon Sep 17 00:00:00 2001 From: Skold177 <113406182+Skold177@users.noreply.github.com> Date: Thu, 26 Feb 2026 00:13:08 -0500 Subject: [PATCH] [lua] Ultima Skill Audit Makes some adjustments to Ultima skills --- scripts/actions/mobskills/antimatter.lua | 3 ++- scripts/actions/mobskills/armor_buster.lua | 9 +++------ scripts/actions/mobskills/cryo_jet.lua | 3 ++- scripts/actions/mobskills/dissipation.lua | 2 +- scripts/actions/mobskills/energy_screen.lua | 6 +----- scripts/actions/mobskills/equalizer.lua | 8 ++++---- scripts/actions/mobskills/flame_thrower.lua | 3 ++- scripts/actions/mobskills/high-tension_discharger.lua | 3 ++- scripts/actions/mobskills/hydro_cannon.lua | 3 ++- scripts/actions/mobskills/mana_screen.lua | 6 +----- scripts/actions/mobskills/smoke_discharger.lua | 3 ++- scripts/actions/mobskills/turbofan.lua | 3 ++- scripts/actions/mobskills/wire_cutter.lua | 8 ++++---- scripts/enum/mob_skill.lua | 6 ++++++ sql/mob_skills.sql | 2 +- 15 files changed, 35 insertions(+), 33 deletions(-) diff --git a/scripts/actions/mobskills/antimatter.lua b/scripts/actions/mobskills/antimatter.lua index 592ea4e6ed2..b5795fac84a 100644 --- a/scripts/actions/mobskills/antimatter.lua +++ b/scripts/actions/mobskills/antimatter.lua @@ -2,6 +2,7 @@ -- Antimatter -- Family: Ultima -- Description: Deals Light damage to a single target. +-- TODO: Figure out damage values for Ultima/Omega Master Trial ----------------------------------- ---@type TMobSkill local mobskillObject = {} @@ -13,7 +14,7 @@ end mobskillObject.onMobWeaponSkill = function(target, mob, skill, action) local params = {} - params.baseDamage = 750 + params.baseDamage = mob:getMainLvl() < 65 and 750 or 1500 params.fTP = { 1, 1, 1 } params.element = xi.element.LIGHT params.attackType = xi.attackType.MAGICAL diff --git a/scripts/actions/mobskills/armor_buster.lua b/scripts/actions/mobskills/armor_buster.lua index 9779a1d8675..d016f2aee2d 100644 --- a/scripts/actions/mobskills/armor_buster.lua +++ b/scripts/actions/mobskills/armor_buster.lua @@ -2,23 +2,20 @@ -- Armor Buster -- Family: Ultima -- Description: Deals Light damage to players in an area of effect. Additional Effect: Weight +-- TODO: Figure out damage values for Ultima/Omega Master Trial ----------------------------------- ---@type TMobSkill local mobskillObject = {} mobskillObject.onMobSkillCheck = function(target, mob, skill) - if mob:getLocalVar('citadelBuster') == 0 then -- TODO: Handle in mobscript? - return 0 - end - - return 1 + return 0 end mobskillObject.onMobWeaponSkill = function(target, mob, skill, action) local params = {} params.baseDamage = mob:getMainLvl() + 2 - params.fTP = { 7.5, 7.5, 7.5 } -- TODO: Capture fTPs + params.fTP = { 7.5, 7.5, 7.5 } params.element = xi.element.LIGHT params.attackType = xi.attackType.MAGICAL params.damageType = xi.damageType.LIGHT diff --git a/scripts/actions/mobskills/cryo_jet.lua b/scripts/actions/mobskills/cryo_jet.lua index 12e6b2a4f2c..8cc432f925a 100644 --- a/scripts/actions/mobskills/cryo_jet.lua +++ b/scripts/actions/mobskills/cryo_jet.lua @@ -3,6 +3,7 @@ -- Family: Ultima -- Description: Deals Ice breath damage to targets in front of mob. Additional Effect: Paralysis -- additional effect : Paralyze +-- TODO: Figure out damage values for Ultima/Omega Master Trial ----------------------------------- ---@type TMobSkill local mobskillObject = {} @@ -16,7 +17,7 @@ mobskillObject.onMobWeaponSkill = function(target, mob, skill, action) params.percentMultipier = 0.05 -- TODO: Capture HP multiplier/threshhold. params.element = xi.element.ICE - params.damageCap = 490 + params.damageCap = mob:getMainLvl() < 65 and 490 or 750 params.bonusDamage = 0 params.mAccuracyBonus = { 0, 0, 0 } params.resistStat = xi.mod.INT diff --git a/scripts/actions/mobskills/dissipation.lua b/scripts/actions/mobskills/dissipation.lua index 8fef36c8107..a94e22157b4 100644 --- a/scripts/actions/mobskills/dissipation.lua +++ b/scripts/actions/mobskills/dissipation.lua @@ -6,7 +6,7 @@ local mobskillObject = {} mobskillObject.onMobSkillCheck = function(target, mob, skill) - return 1 + return 0 end mobskillObject.onMobWeaponSkill = function(target, mob, skill) diff --git a/scripts/actions/mobskills/energy_screen.lua b/scripts/actions/mobskills/energy_screen.lua index 5d29cc55fd2..0405f90b9c7 100644 --- a/scripts/actions/mobskills/energy_screen.lua +++ b/scripts/actions/mobskills/energy_screen.lua @@ -6,11 +6,7 @@ local mobskillObject = {} mobskillObject.onMobSkillCheck = function(target, mob, skill) - if mob:getLocalVar('citadelBuster') == 0 then - return 0 - end - - return 1 + return 0 end mobskillObject.onMobWeaponSkill = function(target, mob, skill) diff --git a/scripts/actions/mobskills/equalizer.lua b/scripts/actions/mobskills/equalizer.lua index f0d70ae86e0..f61a4b317bb 100644 --- a/scripts/actions/mobskills/equalizer.lua +++ b/scripts/actions/mobskills/equalizer.lua @@ -11,10 +11,10 @@ end mobskillObject.onMobWeaponSkill = function(target, mob, skill) local numhits = 1 - local accmod = 1 - local ftp = 3 - local info = xi.mobskills.mobPhysicalMove(mob, target, skill, numhits, accmod, ftp, xi.mobskills.physicalTpBonus.NO_EFFECT) - local dmg = xi.mobskills.mobFinalAdjustments(info, mob, skill, target, xi.attackType.PHYSICAL, xi.damageType.SLASHING, info.hitslanded) + local accmod = 1 + local ftp = 3 + local info = xi.mobskills.mobPhysicalMove(mob, target, skill, numhits, accmod, ftp, xi.mobskills.physicalTpBonus.NO_EFFECT) + local dmg = xi.mobskills.mobFinalAdjustments(info, mob, skill, target, xi.attackType.PHYSICAL, xi.damageType.SLASHING, info.hitslanded) target:takeDamage(dmg, mob, xi.attackType.PHYSICAL, xi.damageType.SLASHING) return dmg diff --git a/scripts/actions/mobskills/flame_thrower.lua b/scripts/actions/mobskills/flame_thrower.lua index c32d7257c8d..1702945f171 100644 --- a/scripts/actions/mobskills/flame_thrower.lua +++ b/scripts/actions/mobskills/flame_thrower.lua @@ -2,6 +2,7 @@ -- Flame Thrower -- Family: Ultima -- Description: Uses a flamethrower that deals Fire damage to players in a fan-shaped area of effect. Additional Effect: Plague +-- TODO: Figure out damage values for Ultima/Omega Master Trial ----------------------------------- ---@type TMobSkill local mobskillObject = {} @@ -14,7 +15,7 @@ mobskillObject.onMobWeaponSkill = function(target, mob, skill, action) local params = {} params.percentMultipier = 0.05 - params.damageCap = 490 + params.damageCap = mob:getMainLvl() < 65 and 490 or 750 params.bonusDamage = 0 params.mAccuracyBonus = { 0, 0, 0 } params.resistStat = xi.mod.INT diff --git a/scripts/actions/mobskills/high-tension_discharger.lua b/scripts/actions/mobskills/high-tension_discharger.lua index fc1e779fd9d..069480c611c 100644 --- a/scripts/actions/mobskills/high-tension_discharger.lua +++ b/scripts/actions/mobskills/high-tension_discharger.lua @@ -2,6 +2,7 @@ -- High-Tension_Discharger -- Family: Ultima -- Description: Discharges a powerful current that deals Thunder damage to players in a fan-shaped area. Additional Effect: Stun +-- TODO: Figure out damage values for Ultima/Omega Master Trial ----------------------------------- ---@type TMobSkill local mobskillObject = {} @@ -14,7 +15,7 @@ mobskillObject.onMobWeaponSkill = function(target, mob, skill, action) local params = {} params.percentMultipier = 0.05 - params.damageCap = 490 + params.damageCap = mob:getMainLvl() < 65 and 490 or 750 params.bonusDamage = 0 params.mAccuracyBonus = { 0, 0, 0 } params.resistStat = xi.mod.INT diff --git a/scripts/actions/mobskills/hydro_cannon.lua b/scripts/actions/mobskills/hydro_cannon.lua index a7f359a93c6..70d002f5e10 100644 --- a/scripts/actions/mobskills/hydro_cannon.lua +++ b/scripts/actions/mobskills/hydro_cannon.lua @@ -2,6 +2,7 @@ -- Hydro Cannon -- Family: Ultima -- Description: Deals Water damage in a conal AOE. Additional Effect : Poison +-- TODO: Figure out damage values for Ultima/Omega Master Trial ----------------------------------- ---@type TMobSkill local mobskillObject = {} @@ -14,7 +15,7 @@ mobskillObject.onMobWeaponSkill = function(target, mob, skill, action) local params = {} params.percentMultipier = 0.05 - params.damageCap = 490 + params.damageCap = mob:getMainLvl() < 65 and 490 or 750 params.bonusDamage = 0 params.mAccuracyBonus = { 0, 0, 0 } params.resistStat = xi.mod.INT diff --git a/scripts/actions/mobskills/mana_screen.lua b/scripts/actions/mobskills/mana_screen.lua index d4194adc71c..6d180c3de3d 100644 --- a/scripts/actions/mobskills/mana_screen.lua +++ b/scripts/actions/mobskills/mana_screen.lua @@ -6,11 +6,7 @@ local mobskillObject = {} mobskillObject.onMobSkillCheck = function(target, mob, skill) - if mob:getLocalVar('citadelBuster') == 0 then - return 0 - end - - return 1 + return 0 end mobskillObject.onMobWeaponSkill = function(target, mob, skill) diff --git a/scripts/actions/mobskills/smoke_discharger.lua b/scripts/actions/mobskills/smoke_discharger.lua index 92cc254d216..3c85d984e53 100644 --- a/scripts/actions/mobskills/smoke_discharger.lua +++ b/scripts/actions/mobskills/smoke_discharger.lua @@ -2,6 +2,7 @@ -- Smoke Discharger -- Family: Ultima -- Description: Deals Earth damage to targets in front of mob. Additional Effect: Petrification +-- TODO: Figure out damage values for Ultima/Omega Master Trial ----------------------------------- ---@type TMobSkill local mobskillObject = {} @@ -14,7 +15,7 @@ mobskillObject.onMobWeaponSkill = function(target, mob, skill, action) local params = {} params.percentMultipier = 0.05 - params.damageCap = 490 + params.damageCap = mob:getMainLvl() < 65 and 490 or 750 params.bonusDamage = 0 params.mAccuracyBonus = { 0, 0, 0 } params.resistStat = xi.mod.INT diff --git a/scripts/actions/mobskills/turbofan.lua b/scripts/actions/mobskills/turbofan.lua index baee54e2263..69ca92e5c17 100644 --- a/scripts/actions/mobskills/turbofan.lua +++ b/scripts/actions/mobskills/turbofan.lua @@ -2,6 +2,7 @@ -- Turbofan -- Family: Ultima -- Description: Deals Wind damage to targets in front of mob. Additional Effect: Silence +-- TODO: Figure out damage values for Ultima/Omega Master Trial ----------------------------------- ---@type TMobSkill local mobskillObject = {} @@ -14,7 +15,7 @@ mobskillObject.onMobWeaponSkill = function(target, mob, skill, action) local params = {} params.percentMultipier = 0.05 - params.damageCap = 490 + params.damageCap = mob:getMainLvl() < 65 and 490 or 750 params.bonusDamage = 0 params.mAccuracyBonus = { 0, 0, 0 } params.resistStat = xi.mod.INT diff --git a/scripts/actions/mobskills/wire_cutter.lua b/scripts/actions/mobskills/wire_cutter.lua index c71b292c9fd..84a16b086f7 100644 --- a/scripts/actions/mobskills/wire_cutter.lua +++ b/scripts/actions/mobskills/wire_cutter.lua @@ -11,10 +11,10 @@ end mobskillObject.onMobWeaponSkill = function(target, mob, skill) local numhits = 2 - local accmod = 0.8 - local ftp = 3 - local info = xi.mobskills.mobPhysicalMove(mob, target, skill, numhits, accmod, ftp, xi.mobskills.physicalTpBonus.NO_EFFECT) - local dmg = xi.mobskills.mobFinalAdjustments(info, mob, skill, target, xi.attackType.PHYSICAL, xi.damageType.SLASHING, info.hitslanded) + local accmod = 0.8 + local ftp = 2 + local info = xi.mobskills.mobPhysicalMove(mob, target, skill, numhits, accmod, ftp, xi.mobskills.physicalTpBonus.NO_EFFECT) + local dmg = xi.mobskills.mobFinalAdjustments(info, mob, skill, target, xi.attackType.PHYSICAL, xi.damageType.SLASHING, info.hitslanded) target:takeDamage(dmg, mob, xi.attackType.PHYSICAL, xi.damageType.SLASHING) return dmg diff --git a/scripts/enum/mob_skill.lua b/scripts/enum/mob_skill.lua index a54a0d59f6b..a015a0aed7e 100644 --- a/scripts/enum/mob_skill.lua +++ b/scripts/enum/mob_skill.lua @@ -614,6 +614,12 @@ xi.mobSkill = REVELATION_1 = 1510, HOWLING_MOON_3 = 1520, -- Unknown usage. + ARMOR_BUSTER = 1521, + ENERGY_SCREEN = 1522, + MANA_SCREEN = 1523, + DISSIPATION = 1524, + + CITADEL_BUSTER = 1540, FOOT_KICK_2 = 1567, DUST_CLOUD_2 = 1568, diff --git a/sql/mob_skills.sql b/sql/mob_skills.sql index d0bd1371c83..da58ac03022 100644 --- a/sql/mob_skills.sql +++ b/sql/mob_skills.sql @@ -1545,7 +1545,7 @@ INSERT INTO `mob_skills` VALUES (1510,1098,'revelation',0,0.0,20.0,2000,0,4,0,0, -- INSERT INTO `mob_skills` VALUES (1518,1262,'goblin_dice',0,0.0,7.0,2000,1500,4,0,0,0,0,0,0); -- INSERT INTO `mob_skills` VALUES (1519,1263,'provoke',0,0.0,7.0,2000,1500,4,0,0,0,0,0,0); -- INSERT INTO `mob_skills` VALUES (1520,1264,'howling_moon',0,0.0,7.0,2000,1500,4,0,0,0,0,0,0); -INSERT INTO `mob_skills` VALUES (1521,1081,'armor_buster',2,0.0,10.0,2000,1500,4,0,0,0,0,0,0); +INSERT INTO `mob_skills` VALUES (1521,1081,'armor_buster',2,0.0,20.0,2000,1500,4,0,0,0,0,0,0); INSERT INTO `mob_skills` VALUES (1522,1082,'energy_screen',0,0.0,10.0,2000,1500,1,0,0,0,0,0,0); INSERT INTO `mob_skills` VALUES (1523,1083,'mana_screen',0,0.0,10.0,2000,1500,1,0,0,0,0,0,0); INSERT INTO `mob_skills` VALUES (1524,1084,'dissipation',2,0.0,20.0,2000,1500,4,0,0,0,0,0,0);