From aaf72b0921978c31b625bb1920b06568061baca0 Mon Sep 17 00:00:00 2001 From: Skold <113406182+Skold177@users.noreply.github.com> Date: Mon, 18 May 2026 19:49:48 -0400 Subject: [PATCH] WS Module Update WS Module Update --- modules/wotg/lua/weaponskills/archery.lua | 6 +-- modules/wotg/lua/weaponskills/axe.lua | 36 ++++++++++-------- modules/wotg/lua/weaponskills/club.lua | 37 +++++++++++-------- modules/wotg/lua/weaponskills/dagger.lua | 30 ++++++++------- modules/wotg/lua/weaponskills/great_axe.lua | 2 +- .../wotg/lua/weaponskills/great_katana.lua | 13 ++++--- modules/wotg/lua/weaponskills/great_sword.lua | 2 +- .../wotg/lua/weaponskills/hand_to_hand.lua | 25 +++++++------ modules/wotg/lua/weaponskills/katana.lua | 4 +- .../wotg/lua/weaponskills/marksmanship.lua | 6 +-- modules/wotg/lua/weaponskills/polearm.lua | 15 ++++---- modules/wotg/lua/weaponskills/scythe.lua | 2 +- modules/wotg/lua/weaponskills/sword.lua | 30 ++++++++------- 13 files changed, 117 insertions(+), 91 deletions(-) diff --git a/modules/wotg/lua/weaponskills/archery.lua b/modules/wotg/lua/weaponskills/archery.lua index c5b9a8c47f8..29541f5d952 100644 --- a/modules/wotg/lua/weaponskills/archery.lua +++ b/modules/wotg/lua/weaponskills/archery.lua @@ -33,7 +33,7 @@ m:addOverride('xi.actions.weaponskills.piercing_arrow.onUseWeaponSkill', functio params.ftpMod = { 1.00, 1.00, 1.00 } params.str_wsc = 0.16 params.agi_wsc = 0.25 - params.ignoredDefense = { 0.00, 0.35, 0.50 } + params.ignoredDefense = { 0.00, 0.375, 0.75 } params.rangedAccuracyBonus = 30 local damage, criticalHit, tpHits, extraHits = xi.weaponskills.doRangedWeaponskill(player, target, wsID, params, tp, action, primary) @@ -49,7 +49,7 @@ m:addOverride('xi.actions.weaponskills.dulling_arrow.onUseWeaponSkill', function params.ftpMod = { 1.00, 1.00, 1.00 } params.str_wsc = 0.16 params.agi_wsc = 0.25 - params.critVaries = { 0.10, 0.30, 0.50 } + params.critVaries = { 0.20, 0.50, 1.00 } local damage, criticalHit, tpHits, extraHits = xi.weaponskills.doRangedWeaponskill(player, target, wsID, params, tp, action, primary) @@ -104,7 +104,7 @@ m:addOverride('xi.actions.weaponskills.arching_arrow.onUseWeaponSkill', function params.ftpMod = { 3.50, 3.50, 3.50 } params.str_wsc = 0.16 params.agi_wsc = 0.25 - params.critVaries = { 0.10, 0.30, 0.50 } + params.critVaries = { 0.20, 0.50, 0.90 } local damage, criticalHit, tpHits, extraHits = xi.weaponskills.doRangedWeaponskill(player, target, wsID, params, tp, action, primary) return tpHits, extraHits, criticalHit, damage diff --git a/modules/wotg/lua/weaponskills/axe.lua b/modules/wotg/lua/weaponskills/axe.lua index 44f9671b46a..85366e3fa28 100644 --- a/modules/wotg/lua/weaponskills/axe.lua +++ b/modules/wotg/lua/weaponskills/axe.lua @@ -31,13 +31,16 @@ m:addOverride('xi.actions.weaponskills.smash_axe.onUseWeaponSkill', function(pla local damage, criticalHit, tpHits, extraHits = xi.weaponskills.doPhysicalWeaponskill(player, target, wsID, params, tp, action, primary, taChar) -- Handle status effect - local effectId = xi.effect.STUN - local actionElement = xi.element.THUNDER - local power = 1 - local skillType = xi.skill.AXE - local resist = xi.combat.magicHitRate.calculateResistRate(player, target, 0, skillType, 0, actionElement, 0, effectId, 0) - local duration = math.floor(tp / 500 * resist) - xi.weaponskills.handleWeaponskillEffect(player, target, effectId, actionElement, damage, power, duration) + if math.random(1, 100) <= xi.weaponskills.fTP(tp, { 50, 75, 100 }) then + local effectId = xi.effect.STUN + local actionElement = xi.element.THUNDER + local power = 1 + local skillType = xi.skill.AXE + local resist = xi.combat.magicHitRate.calculateResistRate(player, target, 0, skillType, 0, actionElement, 0, effectId, 0) + local duration = math.floor(4 * resist) + + xi.weaponskills.handleWeaponskillEffect(player, target, effectId, actionElement, damage, power, duration) + end return tpHits, extraHits, criticalHit, damage end) @@ -54,13 +57,16 @@ m:addOverride('xi.actions.weaponskills.gale_axe.onUseWeaponSkill', function(play local damage, criticalHit, tpHits, extraHits = xi.weaponskills.doPhysicalWeaponskill(player, target, wsID, params, tp, action, primary, taChar) -- Handle status effect - local effectId = xi.effect.CHOKE - local actionElement = xi.element.WIND - local power = 5 - local skillType = xi.skill.AXE - local resist = xi.combat.magicHitRate.calculateResistRate(player, target, 0, skillType, 0, actionElement, 0, effectId, 0) - local duration = math.floor(90 * resist) - xi.weaponskills.handleWeaponskillEffect(player, target, effectId, actionElement, damage, power, duration) + if math.random(1, 100) <= xi.weaponskills.fTP(tp, { 50, 75, 100 }) then + local effectId = xi.effect.CHOKE + local actionElement = xi.element.WIND + local power = 5 + local skillType = xi.skill.AXE + local resist = xi.combat.magicHitRate.calculateResistRate(player, target, 0, skillType, 0, actionElement, 0, effectId, 0) + local duration = math.floor(90 * resist) + + xi.weaponskills.handleWeaponskillEffect(player, target, effectId, actionElement, damage, power, duration) + end return tpHits, extraHits, criticalHit, damage end) @@ -99,7 +105,7 @@ m:addOverride('xi.actions.weaponskills.rampage.onUseWeaponSkill', function(playe params.numHits = 5 params.ftpMod = { 0.50, 0.50, 0.50 } params.str_wsc = 0.3 - params.critVaries = { 0.00, 0.20, 0.40 } + params.critVaries = { 0.10, 0.20, 0.40 } local damage, criticalHit, tpHits, extraHits = xi.weaponskills.doPhysicalWeaponskill(player, target, wsID, params, tp, action, primary, taChar) return tpHits, extraHits, criticalHit, damage diff --git a/modules/wotg/lua/weaponskills/club.lua b/modules/wotg/lua/weaponskills/club.lua index 8ff0be444c3..c0c9d079669 100644 --- a/modules/wotg/lua/weaponskills/club.lua +++ b/modules/wotg/lua/weaponskills/club.lua @@ -50,13 +50,16 @@ m:addOverride('xi.actions.weaponskills.brainshaker.onUseWeaponSkill', function(p local damage, criticalHit, tpHits, extraHits = xi.weaponskills.doPhysicalWeaponskill(player, target, wsID, params, tp, action, primary, taChar) -- Handle status effect - local effectId = xi.effect.STUN - local actionElement = xi.element.THUNDER - local power = 1 - local skillType = xi.skill.CLUB - local resist = xi.combat.magicHitRate.calculateResistRate(player, target, 0, skillType, 0, actionElement, 0, effectId, 0) - local duration = math.floor(tp / 500 * resist) - xi.weaponskills.handleWeaponskillEffect(player, target, effectId, actionElement, damage, power, duration) + if math.random(1, 100) <= xi.weaponskills.fTP(tp, { 50, 75, 100 }) then + local effectId = xi.effect.STUN + local actionElement = xi.element.THUNDER + local power = 1 + local skillType = xi.skill.CLUB + local resist = xi.combat.magicHitRate.calculateResistRate(player, target, 0, skillType, 0, actionElement, 0, effectId, 0) + local duration = math.floor(4 * resist) + + xi.weaponskills.handleWeaponskillEffect(player, target, effectId, actionElement, damage, power, duration) + end return tpHits, extraHits, criticalHit, damage end) @@ -97,13 +100,17 @@ m:addOverride('xi.actions.weaponskills.skullbreaker.onUseWeaponSkill', function( local damage, criticalHit, tpHits, extraHits = xi.weaponskills.doPhysicalWeaponskill(player, target, wsID, params, tp, action, primary, taChar) -- Handle status effect - local effectId = xi.effect.INT_DOWN - local actionElement = xi.element.FIRE - local power = 10 - local skillType = xi.skill.CLUB - local resist = xi.combat.magicHitRate.calculateResistRate(player, target, 0, skillType, 0, actionElement, 0, effectId, 0) - local duration = math.floor(140 * resist) - xi.weaponskills.handleWeaponskillEffect(player, target, effectId, actionElement, damage, power, duration) + if math.random(1, 100) <= xi.weaponskills.fTP(tp, { 50, 75, 100 }) then + local effectId = xi.effect.INT_DOWN + local actionElement = xi.element.FIRE + local power = 10 + local skillType = xi.skill.CLUB + local resist = xi.combat.magicHitRate.calculateResistRate(player, target, 0, skillType, 0, actionElement, 0, effectId, 0) + local duration = math.floor(140 * resist) + + xi.weaponskills.handleWeaponskillEffect(player, target, effectId, actionElement, damage, power, duration) + end + return tpHits, extraHits, criticalHit, damage end) @@ -146,7 +153,7 @@ m:addOverride('xi.actions.weaponskills.hexa_strike.onUseWeaponSkill', function(p params.ftpMod = { 1.00, 1.00, 1.00 } params.str_wsc = 0.2 params.mnd_wsc = 0.2 - params.critVaries = { 0.10, 0.30, 0.50 } + params.critVaries = { 0.05, 0.10, 0.25 } local damage, criticalHit, tpHits, extraHits = xi.weaponskills.doPhysicalWeaponskill(player, target, wsID, params, tp, action, primary, taChar) return tpHits, extraHits, criticalHit, damage diff --git a/modules/wotg/lua/weaponskills/dagger.lua b/modules/wotg/lua/weaponskills/dagger.lua index 8398b12f2ee..f46b63bcbc9 100644 --- a/modules/wotg/lua/weaponskills/dagger.lua +++ b/modules/wotg/lua/weaponskills/dagger.lua @@ -57,13 +57,16 @@ m:addOverride('xi.actions.weaponskills.shadowstitch.onUseWeaponSkill', function( local damage, criticalHit, tpHits, extraHits = xi.weaponskills.doPhysicalWeaponskill(player, target, wsID, params, tp, action, primary, taChar) -- Handle status effect - local effectId = xi.effect.BIND - local actionElement = xi.element.ICE - local power = 1 - local skillType = xi.skill.DAGGER - local resist = xi.combat.magicHitRate.calculateResistRate(player, target, 0, skillType, 0, actionElement, 0, effectId, 0) - local duration = math.floor((5 + tp / 200) * resist) - xi.weaponskills.handleWeaponskillEffect(player, target, effectId, actionElement, damage, power, duration) + if math.random(1, 100) <= xi.weaponskills.fTP(tp, { 50, 75, 100 }) then + local effectId = xi.effect.BIND + local actionElement = xi.element.ICE + local power = 1 + local skillType = xi.skill.DAGGER + local resist = xi.combat.magicHitRate.calculateResistRate(player, target, 0, skillType, 0, actionElement, 0, effectId, 0) + local duration = math.floor((5 + tp / 200) * resist) + + xi.weaponskills.handleWeaponskillEffect(player, target, effectId, actionElement, damage, power, duration) + end return tpHits, extraHits, criticalHit, damage end) @@ -207,7 +210,7 @@ m:addOverride('xi.actions.weaponskills.evisceration.onUseWeaponSkill', function( params.numHits = 5 params.ftpMod = { 1.00, 1.00, 1.00 } params.dex_wsc = 0.3 - params.critVaries = { 0.10, 0.30, 0.50 } + params.critVaries = { 0.10, 0.24, 0.48 } local damage, criticalHit, tpHits, extraHits = xi.weaponskills.doPhysicalWeaponskill(player, target, wsID, params, tp, action, primary, taChar) return tpHits, extraHits, criticalHit, damage @@ -261,13 +264,14 @@ m:addOverride('xi.actions.weaponskills.mordant_rime.onUseWeaponSkill', function( local damage, criticalHit, tpHits, extraHits = xi.weaponskills.doPhysicalWeaponskill(player, target, wsID, params, tp, action, primary, taChar) -- Handle status effect - local effectId = xi.effect.WEIGHT - local actionElement = xi.element.WIND - local skillType = xi.skill.DAGGER - local resist = xi.combat.magicHitRate.calculateResistRate(player, target, 0, skillType, 0, actionElement, 0, effectId, 0) - if math.random(1, 100) <= tp / 30 * resist then + if math.random(1, 100) <= xi.weaponskills.fTP(tp, { 50, 75, 100 }) then + local effectId = xi.effect.WEIGHT + local actionElement = xi.element.WIND local power = 25 + local skillType = xi.skill.DAGGER + local resist = xi.combat.magicHitRate.calculateResistRate(player, target, 0, skillType, 0, actionElement, 0, effectId, 0) local duration = math.floor(60 * resist) + xi.weaponskills.handleWeaponskillEffect(player, target, effectId, actionElement, damage, power, duration) end diff --git a/modules/wotg/lua/weaponskills/great_axe.lua b/modules/wotg/lua/weaponskills/great_axe.lua index 7167dd21b3a..2d3764404b8 100644 --- a/modules/wotg/lua/weaponskills/great_axe.lua +++ b/modules/wotg/lua/weaponskills/great_axe.lua @@ -80,7 +80,7 @@ m:addOverride('xi.actions.weaponskills.keen_edge.onUseWeaponSkill', function(pla params.numHits = 1 params.ftpMod = { 1.00, 1.00, 1.00 } params.str_wsc = 0.35 - params.critVaries = { 0.40, 0.60, 0.80 } + params.critVaries = { 0.50, 0.75, 1.00 } local damage, criticalHit, tpHits, extraHits = xi.weaponskills.doPhysicalWeaponskill(player, target, wsID, params, tp, action, primary, taChar) return tpHits, extraHits, criticalHit, damage diff --git a/modules/wotg/lua/weaponskills/great_katana.lua b/modules/wotg/lua/weaponskills/great_katana.lua index da3c8536449..e266f4375ce 100644 --- a/modules/wotg/lua/weaponskills/great_katana.lua +++ b/modules/wotg/lua/weaponskills/great_katana.lua @@ -31,13 +31,14 @@ m:addOverride('xi.actions.weaponskills.tachi_hobaku.onUseWeaponSkill', function( local damage, criticalHit, tpHits, extraHits = xi.weaponskills.doPhysicalWeaponskill(player, target, wsID, params, tp, action, primary, taChar) -- Handle status effect - local effectId = xi.effect.STUN - local actionElement = xi.element.THUNDER - local skillType = xi.skill.GREAT_KATANA - local resist = xi.combat.magicHitRate.calculateResistRate(player, target, 0, skillType, 0, actionElement, 0, effectId, 0) - if math.random(1, 100) <= tp / 30 * resist then + if math.random(1, 100) <= xi.weaponskills.fTP(tp, { 50, 75, 100 }) then + local effectId = xi.effect.STUN + local actionElement = xi.element.THUNDER local power = 1 - local duration = 3 + local skillType = xi.skill.GREAT_KATANA + local resist = xi.combat.magicHitRate.calculateResistRate(player, target, 0, skillType, 0, actionElement, 0, effectId, 0) + local duration = math.floor(4 * resist) + xi.weaponskills.handleWeaponskillEffect(player, target, effectId, actionElement, damage, power, duration) end diff --git a/modules/wotg/lua/weaponskills/great_sword.lua b/modules/wotg/lua/weaponskills/great_sword.lua index 7528ddba89e..a44d18c7e78 100644 --- a/modules/wotg/lua/weaponskills/great_sword.lua +++ b/modules/wotg/lua/weaponskills/great_sword.lua @@ -28,7 +28,7 @@ m:addOverride('xi.actions.weaponskills.power_slash.onUseWeaponSkill', function(p params.ftpMod = { 1.00, 1.00, 1.00 } params.str_wsc = 0.2 params.vit_wsc = 0.2 - params.critVaries = { 0.40, 0.60, 0.80 } + params.critVaries = { 0.50, 0.75, 1.00 } local damage, criticalHit, tpHits, extraHits = xi.weaponskills.doPhysicalWeaponskill(player, target, wsID, params, tp, action, primary, taChar) return tpHits, extraHits, criticalHit, damage diff --git a/modules/wotg/lua/weaponskills/hand_to_hand.lua b/modules/wotg/lua/weaponskills/hand_to_hand.lua index 743b7b8490b..91806e43f42 100644 --- a/modules/wotg/lua/weaponskills/hand_to_hand.lua +++ b/modules/wotg/lua/weaponskills/hand_to_hand.lua @@ -31,13 +31,16 @@ m:addOverride('xi.actions.weaponskills.shoulder_tackle.onUseWeaponSkill', functi local damage, criticalHit, tpHits, extraHits = xi.weaponskills.doPhysicalWeaponskill(player, target, wsID, params, tp, action, primary, taChar) - local effectId = xi.effect.STUN - local actionElement = xi.element.THUNDER - local power = 1 - local skillType = xi.skill.HAND_TO_HAND - local resist = xi.combat.magicHitRate.calculateResistRate(player, target, 0, skillType, 0, actionElement, 0, effectId, 0) - local duration = math.floor(tp / 500 * resist) - xi.weaponskills.handleWeaponskillEffect(player, target, effectId, actionElement, damage, power, duration) + if math.random(1, 100) <= xi.weaponskills.fTP(tp, { 50, 75, 100 }) then + local effectId = xi.effect.STUN + local actionElement = xi.element.THUNDER + local power = 1 + local skillType = xi.skill.HAND_TO_HAND + local resist = xi.combat.magicHitRate.calculateResistRate(player, target, 0, skillType, 0, actionElement, 0, effectId, 0) + local duration = math.floor(4 * resist) + + xi.weaponskills.handleWeaponskillEffect(player, target, effectId, actionElement, damage, power, duration) + end return tpHits, extraHits, criticalHit, damage end) @@ -50,7 +53,7 @@ m:addOverride('xi.actions.weaponskills.one_inch_punch.onUseWeaponSkill', functio params.numHits = 2 params.ftpMod = { 1.00, 1.00, 1.00 } params.vit_wsc = 0.4 - params.ignoredDefense = { 0.00, 0.30, 0.50 } + params.ignoredDefense = { 0.00, 0.375, 0.75 } local damage, criticalHit, tpHits, extraHits = xi.weaponskills.doPhysicalWeaponskill(player, target, wsID, params, tp, action, primary, taChar) return tpHits, extraHits, criticalHit, damage @@ -65,7 +68,7 @@ m:addOverride('xi.actions.weaponskills.backhand_blow.onUseWeaponSkill', function params.ftpMod = { 1.00, 1.00, 1.00 } params.str_wsc = 0.3 params.dex_wsc = 0.3 - params.critVaries = { 0.40, 0.60, 0.80 } + params.critVaries = { 0.30, 0.63, 0.96 } local damage, criticalHit, tpHits, extraHits = xi.weaponskills.doPhysicalWeaponskill(player, target, wsID, params, tp, action, primary, taChar) return tpHits, extraHits, criticalHit, damage @@ -167,7 +170,7 @@ m:addOverride('xi.actions.weaponskills.ascetics_fury.onUseWeaponSkill', function params.numHits = 2 params.ftpMod = { 1.00, 1.00, 1.00 } params.atkVaries = { 2.00, 2.00, 2.00 } - params.critVaries = { 0.10, 0.20, 0.40 } + params.critVaries = { 0.20, 0.40, 0.80 } params.str_wsc = 0.5 params.vit_wsc = 0.5 @@ -187,7 +190,7 @@ m:addOverride('xi.actions.weaponskills.stringing_pummel.onUseWeaponSkill', funct params.ftpMod = { 0.75, 0.75, 0.75 } params.str_wsc = 0.32 params.vit_wsc = 0.32 - params.critVaries = { 0.15, 0.30, 0.45 } + params.critVaries = { 0.10, 0.22, 0.36 } -- Apply Aftermath xi.aftermath.addStatusEffect(player, tp, xi.slot.MAIN, xi.aftermath.type.MYTHIC) diff --git a/modules/wotg/lua/weaponskills/katana.lua b/modules/wotg/lua/weaponskills/katana.lua index 9db55c2062d..baceb316586 100644 --- a/modules/wotg/lua/weaponskills/katana.lua +++ b/modules/wotg/lua/weaponskills/katana.lua @@ -15,7 +15,7 @@ m:addOverride('xi.actions.weaponskills.blade_rin.onUseWeaponSkill', function(pla params.ftpMod = { 1.00, 1.00, 1.00 } params.str_wsc = 0.2 params.dex_wsc = 0.2 - params.critVaries = { 0.40, 0.60, 0.80 } + params.critVaries = { 0.30, 0.63, 0.96 } local damage, criticalHit, tpHits, extraHits = xi.weaponskills.doPhysicalWeaponskill(player, target, wsID, params, tp, action, primary, taChar) return tpHits, extraHits, criticalHit, damage @@ -125,7 +125,7 @@ m:addOverride('xi.actions.weaponskills.blade_jin.onUseWeaponSkill', function(pla params.ftpMod = { 1.00, 1.00, 1.00 } params.str_wsc = 0.3 params.dex_wsc = 0.3 - params.critVaries = { 0.00, 0.20, 0.40 } + params.critVaries = { 0.10, 0.20, 0.40 } local damage, criticalHit, tpHits, extraHits = xi.weaponskills.doPhysicalWeaponskill(player, target, wsID, params, tp, action, primary, taChar) return tpHits, extraHits, criticalHit, damage diff --git a/modules/wotg/lua/weaponskills/marksmanship.lua b/modules/wotg/lua/weaponskills/marksmanship.lua index 4349ea62c9a..2587f8ca250 100644 --- a/modules/wotg/lua/weaponskills/marksmanship.lua +++ b/modules/wotg/lua/weaponskills/marksmanship.lua @@ -31,7 +31,7 @@ m:addOverride('xi.actions.weaponskills.split_shot.onUseWeaponSkill', function(pl params.numHits = 1 params.ftpMod = { 1.00, 1.00, 1.00 } params.agi_wsc = 0.3 - params.ignoredDefense = { 0.00, 0.35, 0.50 } + params.ignoredDefense = { 0.00, 0.375, 0.75 } params.rangedAccuracyBonus = 30 local damage, criticalHit, tpHits, extraHits = xi.weaponskills.doRangedWeaponskill(player, target, wsID, params, tp, action, primary) @@ -46,7 +46,7 @@ m:addOverride('xi.actions.weaponskills.sniper_shot.onUseWeaponSkill', function(p params.numHits = 1 params.ftpMod = { 1.00, 1.00, 1.00 } params.agi_wsc = 0.3 - params.critVaries = { 0.10, 0.30, 0.50 } + params.critVaries = { 0.20, 0.50, 1.00 } local damage, criticalHit, tpHits, extraHits = xi.weaponskills.doRangedWeaponskill(player, target, wsID, params, tp, action, primary) @@ -98,7 +98,7 @@ m:addOverride('xi.actions.weaponskills.heavy_shot.onUseWeaponSkill', function(pl params.numHits = 1 params.ftpMod = { 3.50, 3.50, 3.50 } params.agi_wsc = 0.3 - params.critVaries = { 0.10, 0.30, 0.50 } + params.critVaries = { 0.20, 0.50, 0.90 } local damage, criticalHit, tpHits, extraHits = xi.weaponskills.doRangedWeaponskill(player, target, wsID, params, tp, action, primary) return tpHits, extraHits, criticalHit, damage diff --git a/modules/wotg/lua/weaponskills/polearm.lua b/modules/wotg/lua/weaponskills/polearm.lua index cf3fa1291f6..6f42dd2be67 100644 --- a/modules/wotg/lua/weaponskills/polearm.lua +++ b/modules/wotg/lua/weaponskills/polearm.lua @@ -63,13 +63,14 @@ m:addOverride('xi.actions.weaponskills.leg_sweep.onUseWeaponSkill', function(pla local damage, criticalHit, tpHits, extraHits = xi.weaponskills.doPhysicalWeaponskill(player, target, wsID, params, tp, action, primary, taChar) -- Handle status effect - local effectId = xi.effect.STUN - local actionElement = xi.element.THUNDER - local skillType = xi.skill.POLEARM - local resist = xi.combat.magicHitRate.calculateResistRate(player, target, 0, skillType, 0, actionElement, 0, effectId, 0) - if math.random(1, 100) <= tp / 30 * resist then + if math.random(1, 100) <= xi.weaponskills.fTP(tp, { 33, 66, 100 }) then + local effectId = xi.effect.STUN + local actionElement = xi.element.THUNDER local power = 1 + local skillType = xi.skill.POLEARM + local resist = xi.combat.magicHitRate.calculateResistRate(player, target, 0, skillType, 0, actionElement, 0, effectId, 0) local duration = math.floor(4 * resist) + xi.weaponskills.handleWeaponskillEffect(player, target, effectId, actionElement, damage, power, duration) end @@ -101,7 +102,7 @@ m:addOverride('xi.actions.weaponskills.vorpal_thrust.onUseWeaponSkill', function params.ftpMod = { 1.00, 1.00, 1.00 } params.str_wsc = 0.2 params.agi_wsc = 0.2 - params.critVaries = { 0.30, 0.60, 0.90 } + params.critVaries = { 0.30, 0.63, 0.96 } local damage, criticalHit, tpHits, extraHits = xi.weaponskills.doPhysicalWeaponskill(player, target, wsID, params, tp, action, primary, taChar) return tpHits, extraHits, criticalHit, damage @@ -172,7 +173,7 @@ m:addOverride('xi.actions.weaponskills.drakesbane.onUseWeaponSkill', function(pl params.numHits = 4 params.ftpMod = { 1.00, 1.00, 1.00 } params.str_wsc = 0.5 - params.critVaries = { 0.1, 0.3, 0.5 } + params.critVaries = { 0.1, 0.2, 0.3 } params.atkVaries = { 0.8125, 0.8125, 0.8125 } -- Apply Aftermath diff --git a/modules/wotg/lua/weaponskills/scythe.lua b/modules/wotg/lua/weaponskills/scythe.lua index 297a9daedd1..be9da098f91 100644 --- a/modules/wotg/lua/weaponskills/scythe.lua +++ b/modules/wotg/lua/weaponskills/scythe.lua @@ -99,7 +99,7 @@ m:addOverride('xi.actions.weaponskills.vorpal_scythe.onUseWeaponSkill', function params.numHits = 1 params.ftpMod = { 1.00, 1.00, 1.00 } params.str_wsc = 0.35 - params.critVaries = { 0.40, 0.60, 0.80 } + params.critVaries = { 0.30, 0.63, 0.96 } local damage, criticalHit, tpHits, extraHits = xi.weaponskills.doPhysicalWeaponskill(player, target, wsID, params, tp, action, primary, taChar) diff --git a/modules/wotg/lua/weaponskills/sword.lua b/modules/wotg/lua/weaponskills/sword.lua index 31ee24494bc..e39e2d66c98 100644 --- a/modules/wotg/lua/weaponskills/sword.lua +++ b/modules/wotg/lua/weaponskills/sword.lua @@ -66,13 +66,14 @@ m:addOverride('xi.actions.weaponskills.flat_blade.onUseWeaponSkill', function(pl local damage, criticalHit, tpHits, extraHits = xi.weaponskills.doPhysicalWeaponskill(player, target, wsID, params, tp, action, primary, taChar) -- Handle status effect - local effectId = xi.effect.STUN - local actionElement = xi.element.THUNDER - local skillType = xi.skill.SWORD - local resist = xi.combat.magicHitRate.calculateResistRate(player, target, 0, skillType, 0, actionElement, 0, effectId, 0) - if math.random(1, 100) <= tp / 30 * resist then + if math.random(1, 100) <= xi.weaponskills.fTP(tp, { 50, 75, 100 }) then + local effectId = xi.effect.STUN + local actionElement = xi.element.THUNDER local power = 1 + local skillType = xi.skill.SWORD + local resist = xi.combat.magicHitRate.calculateResistRate(player, target, 0, skillType, 0, actionElement, 0, effectId, 0) local duration = math.floor(4 * resist) + xi.weaponskills.handleWeaponskillEffect(player, target, effectId, actionElement, damage, power, duration) end @@ -192,7 +193,7 @@ m:addOverride('xi.actions.weaponskills.vorpal_blade.onUseWeaponSkill', function( params.numHits = 4 params.ftpMod = { 1.00, 1.00, 1.00 } params.str_wsc = 0.3 - params.critVaries = { 0.10, 0.30, 0.50 } + params.critVaries = { 0.15, 0.30, 0.50 } local damage, criticalHit, tpHits, extraHits = xi.weaponskills.doPhysicalWeaponskill(player, target, wsID, params, tp, action, primary, taChar) return tpHits, extraHits, criticalHit, damage @@ -347,13 +348,16 @@ m:addOverride('xi.actions.weaponskills.death_blossom.onUseWeaponSkill', function local damage, criticalHit, tpHits, extraHits = xi.weaponskills.doPhysicalWeaponskill(player, target, wsID, params, tp, action, primary, taChar) -- Handle status effect - local effectId = xi.effect.MAGIC_EVASION_DOWN - local actionElement = xi.element.THUNDER - local power = 10 - local skillType = xi.skill.SWORD - local resist = xi.combat.magicHitRate.calculateResistRate(player, target, 0, skillType, 0, actionElement, 0, effectId, 0) - local duration = math.floor(60 * resist) -- TODO: Chance to apply varies with TP. - xi.weaponskills.handleWeaponskillEffect(player, target, effectId, actionElement, damage, power, duration) + if math.random(1, 100) <= xi.weaponskills.fTP(tp, { 50, 75, 100 }) then + local effectId = xi.effect.MAGIC_EVASION_DOWN + local actionElement = xi.element.THUNDER + local power = 10 + local skillType = xi.skill.SWORD + local resist = xi.combat.magicHitRate.calculateResistRate(player, target, 0, skillType, 0, actionElement, 0, effectId, 0) + local duration = math.floor(60 * resist) + + xi.weaponskills.handleWeaponskillEffect(player, target, effectId, actionElement, damage, power, duration) + end return tpHits, extraHits, criticalHit, damage end)