|
7 | 7 | require('modules/module_utils') |
8 | 8 | ----------------------------------- |
9 | 9 |
|
10 | | -local m = Module:new('job_adjustments') |
| 10 | +local m = Module:new('abyssea_job_adjustments') |
11 | 11 |
|
12 | 12 | ----------------------------------- |
13 | 13 | -- Warrior |
@@ -66,4 +66,65 @@ m:addOverride('xi.job_utils.white_mage.useDevotion', function(player, target, ab |
66 | 66 | return healMP |
67 | 67 | end) |
68 | 68 |
|
| 69 | +----------------------------------- |
| 70 | +-- Dark Knight |
| 71 | +----------------------------------- |
| 72 | + |
| 73 | +-- Arcane Circle: Revert duration from 3 minutes to 1 minute |
| 74 | +-- Source: https://www.bg-wiki.com/ffxi/Version_Update_(02/13/2012) |
| 75 | +m:addOverride('xi.job_utils.dark_knight.useArcaneCircle', function(player, target, ability) |
| 76 | + local duration = 60 + player:getMod(xi.mod.ARCANE_CIRCLE_DURATION) |
| 77 | + local power = 15 |
| 78 | + |
| 79 | + if player:getMainJob() ~= xi.job.DRK then |
| 80 | + power = 5 |
| 81 | + end |
| 82 | + |
| 83 | + power = power + player:getMod(xi.mod.ARCANE_CIRCLE_POTENCY) |
| 84 | + |
| 85 | + -- Handle simplified message for other party members. |
| 86 | + if player:getID() ~= target:getID() then |
| 87 | + ability:setMsg(xi.msg.basic.FORTIFIED_ARCANA) |
| 88 | + end |
| 89 | + |
| 90 | + target:addStatusEffect(xi.effect.ARCANE_CIRCLE, power, 0, duration) |
| 91 | + |
| 92 | + return xi.effect.ARCANE_CIRCLE |
| 93 | +end) |
| 94 | + |
| 95 | +-- Last Resort: Revert duration from 3 minutes to 30 seconds |
| 96 | +m:addOverride('xi.job_utils.dark_knight.useLastResort', function(player, target, ability) |
| 97 | + player:addStatusEffect(xi.effect.LAST_RESORT, 0, 0, 30) |
| 98 | + |
| 99 | + return xi.effect.LAST_RESORT |
| 100 | +end) |
| 101 | + |
| 102 | +-- Dark Seal: Remove extra duration and cast speed from merits |
| 103 | +m:addOverride('xi.effects.warriors_charge.onEffectGain', function(target, effect) |
| 104 | + -- Overwrites |
| 105 | + target:delStatusEffectSilent(xi.effect.DIVINE_EMBLEM) |
| 106 | + target:delStatusEffectSilent(xi.effect.DIVINE_SEAL) |
| 107 | + target:delStatusEffectSilent(xi.effect.ELEMENTAL_SEAL) |
| 108 | +end) |
| 109 | + |
| 110 | +-- Dark Seal: Apply merit recast reduction |
| 111 | +m:addOverride('xi.job_utils.dark_knight.useDarkSeal', function(player, target, ability, action) |
| 112 | + local recastReduction = player:getMerit(xi.merit.DARK_SEAL) - 150 |
| 113 | + action:setRecast(action:getRecast() - recastReduction) |
| 114 | + |
| 115 | + player:addStatusEffect(xi.effect.DARK_SEAL, 1, 0, 60) |
| 116 | + |
| 117 | + return xi.effect.DARK_SEAL |
| 118 | +end) |
| 119 | + |
| 120 | +-- Diabolic Eye: Remove extra duration and potency from merits and apply merit recast reduction |
| 121 | +m:addOverride('xi.job_utils.dark_knight.useDiabolicEye', function(player, target, ability, action) |
| 122 | + local recastReduction = player:getMerit(xi.merit.DIABOLIC_EYE) - 150 |
| 123 | + action:setRecast(action:getRecast() - recastReduction) |
| 124 | + |
| 125 | + player:addStatusEffect(xi.effect.DIABOLIC_EYE, 20, 0, 180) |
| 126 | + |
| 127 | + return xi.effect.DIABOLIC_EYE |
| 128 | +end) |
| 129 | + |
69 | 130 | return m |
0 commit comments