mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-06-09 14:04:41 +02:00
Updated Map Server namespace. Moved all other data folders (www and sql) to data folder. Renamed boot name to Project Meteor.
This commit is contained in:
parent
18ef69f3d1
commit
91549bff7a
1823 changed files with 102704 additions and 901 deletions
18
Data/scripts/commands/ability/aegis_boon.lua
Normal file
18
Data/scripts/commands/ability/aegis_boon.lua
Normal file
|
@ -0,0 +1,18 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
--27164: Swift Aegis Boon
|
||||
if caster.HasTrait(27164) then
|
||||
ability.recastTimeMs = ability.recastTimeMs - 15000;
|
||||
end
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
22
Data/scripts/commands/ability/barrage.lua
Normal file
22
Data/scripts/commands/ability/barrage.lua
Normal file
|
@ -0,0 +1,22 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
skill.statusMagnitude = 4;
|
||||
|
||||
--27242: Enhanced Barrage: Adds an additional attack to barrage ( 4 -> 5 )
|
||||
if caster.HasTrait(27242) then
|
||||
skill.statusMagnitude = 5;
|
||||
end
|
||||
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
23
Data/scripts/commands/ability/battle_voice.lua
Normal file
23
Data/scripts/commands/ability/battle_voice.lua
Normal file
|
@ -0,0 +1,23 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--Only the bard gets the Battle Voice effect
|
||||
if caster == target then
|
||||
local effect = GetWorldManager():GetStatusEffect(223253);
|
||||
effect.SetDuration(30);
|
||||
caster.statusEffects.AddStatusEffect(effect, caster, actionContainer);
|
||||
end
|
||||
|
||||
local effect = GetWorldManager():GetStatusEffect(223029);
|
||||
effect.SetDuration(60);
|
||||
caster.statusEffects.AddStatusEffect(effect, caster, actionContainer);
|
||||
end;
|
31
Data/scripts/commands/ability/berserk.lua
Normal file
31
Data/scripts/commands/ability/berserk.lua
Normal file
|
@ -0,0 +1,31 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
--27205: Enhanced Berserk: Increases the effect of Berserk by 20%
|
||||
if caster.HasTrait(27205) then
|
||||
ability.statusTier = 2;
|
||||
end
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--223207: Berserk
|
||||
--223208: Rampage
|
||||
--Remove Rampage effect. I'm assuming no message is sent like LNC surges
|
||||
caster.statusEffects.RemoveStatusEffect(223208);
|
||||
|
||||
--If caster has berserk already, remove it and send a message.
|
||||
local buff = caster.statusEffects.GetStatusEffectById(223207)
|
||||
|
||||
if buff ~= nil then
|
||||
caster.statusEffects.RemoveStatusEffect(buff, actionContainer, 30329);
|
||||
else
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end
|
||||
end;
|
19
Data/scripts/commands/ability/blindside.lua
Normal file
19
Data/scripts/commands/ability/blindside.lua
Normal file
|
@ -0,0 +1,19 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
--27121: Enhanced Blindside
|
||||
if caster.HasTrait(27121) then
|
||||
ability.statusTier = 2;
|
||||
end
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
39
Data/scripts/commands/ability/blissful_mind.lua
Normal file
39
Data/scripts/commands/ability/blissful_mind.lua
Normal file
|
@ -0,0 +1,39 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
--27362: Enhanced Blissful Mind
|
||||
if caster.HasTrait(27362) then
|
||||
ability.statusTier = 2;
|
||||
end
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--Blissful Mind
|
||||
--223228: Blissful Mind
|
||||
--223242: Fully Blissful Mind
|
||||
local buff = caster.statusEffects.GetStatusEffectById(223228) or caster.statusEffects.GetStatusEffectById(223242);
|
||||
|
||||
--If we have a buff then Blissful Mind removes that buff and restores MP. Otherwise, it adds the Blissful Mind effect
|
||||
if buff ~= nil then
|
||||
local amount = buff.GetExtra();
|
||||
caster.AddMP(amount);
|
||||
|
||||
actionContainer.AddMPAction(caster.actorId, 33007, amount);
|
||||
caster.statusEffects.RemoveStatusEffect(buff, actionContainer, 30329);
|
||||
else
|
||||
--Blissful mind takes 25% of CURRENT HP and begins storing MP up to that point, at which point the buff changes to indicate its full
|
||||
local amount = caster.GetHP() * 0.25;
|
||||
|
||||
caster.DelHP(amount, actionContainer);
|
||||
skill.statusMagnitude = amount;
|
||||
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end
|
||||
end;
|
24
Data/scripts/commands/ability/blood_for_blood.lua
Normal file
24
Data/scripts/commands/ability/blood_for_blood.lua
Normal file
|
@ -0,0 +1,24 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
--27283: Enhanced Blood for Blood: Increases damage dealt to enemies by B4B by 25%
|
||||
if caster.HasTrait(27283) then
|
||||
ability.statusTier = 2;
|
||||
end
|
||||
|
||||
--27284: Swift Blood for Blood: Reduces recast time of B4B by 15 seconds
|
||||
if caster.HasTrait(27284) then
|
||||
ability.recastTimeMs = ability.recastTimeMs - 15000;
|
||||
end
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
19
Data/scripts/commands/ability/bloodbath.lua
Normal file
19
Data/scripts/commands/ability/bloodbath.lua
Normal file
|
@ -0,0 +1,19 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
--27202: Swift Bloodbath
|
||||
if caster.HasTrait(27202) then
|
||||
ability.recastTimeMs = ability.recastTimeMs - 15000;
|
||||
end
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
20
Data/scripts/commands/ability/chameleon.lua
Normal file
20
Data/scripts/commands/ability/chameleon.lua
Normal file
|
@ -0,0 +1,20 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
--27245: Swift Chameleon
|
||||
if caster.HasTrait(27245) then
|
||||
ability.recastTimeMs = ability.recastTimeMs - 60000;
|
||||
end
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--Need a way to get all targets with hate for player
|
||||
--target.hateContainer.UpdateHate(caster, -840);
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
21
Data/scripts/commands/ability/cleric_stance.lua
Normal file
21
Data/scripts/commands/ability/cleric_stance.lua
Normal file
|
@ -0,0 +1,21 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
local buff = caster.statusEffects.GetStatusEffectById(223227)
|
||||
|
||||
if buff ~= nil then
|
||||
caster.statusEffects.RemoveStatusEffect(buff, actionContainer, 30329);
|
||||
else
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end
|
||||
end;
|
19
Data/scripts/commands/ability/collusion.lua
Normal file
19
Data/scripts/commands/ability/collusion.lua
Normal file
|
@ -0,0 +1,19 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--8032701: Fighter's Gauntlets: Reduces Collusion cooldown by 10 seconds
|
||||
if caster.HasItemEquippedInSlot(8032701, 13) then
|
||||
skill.recastTimeMs = skill.recastTimeMs - 10000;
|
||||
end
|
||||
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
20
Data/scripts/commands/ability/convert.lua
Normal file
20
Data/scripts/commands/ability/convert.lua
Normal file
|
@ -0,0 +1,20 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
newMP = math.min(caster.GetHP(), caster.GetMaxMP())
|
||||
newHP = math.min(caster.GetMP(), caster.GetMaxHP())
|
||||
caster.SetHP(newHP)
|
||||
caster.SetMP(newMP)
|
||||
|
||||
--Set effect id
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
24
Data/scripts/commands/ability/cover.lua
Normal file
24
Data/scripts/commands/ability/cover.lua
Normal file
|
@ -0,0 +1,24 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--This is for the "Cover" effect the caster receives.
|
||||
local coverTier = 1
|
||||
--8032701: Gallant Surcoat: Enhances Cover
|
||||
if caster.HasItemEquippedInSlot(8032701, 10) then
|
||||
coverTier = 2;
|
||||
end
|
||||
|
||||
caster.statusEffects.AddStatusEffect(223063, coverTier, 0, 15, 0);
|
||||
|
||||
--Apply Covered to target
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
19
Data/scripts/commands/ability/dark_seal.lua
Normal file
19
Data/scripts/commands/ability/dark_seal.lua
Normal file
|
@ -0,0 +1,19 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
--27320: Swift Dark Seal
|
||||
if caster.HasTrait(27320) then
|
||||
ability.recastTimeMs = ability.recastTimeMs - 30000;
|
||||
end
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
19
Data/scripts/commands/ability/decoy.lua
Normal file
19
Data/scripts/commands/ability/decoy.lua
Normal file
|
@ -0,0 +1,19 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
--27244: Enhanced Decoy: Renders Decoy capable of evading melee attacks
|
||||
if caster.HasTrait(27244) then
|
||||
ability.statusId = 223238;
|
||||
end
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
17
Data/scripts/commands/ability/default.lua
Normal file
17
Data/scripts/commands/ability/default.lua
Normal file
|
@ -0,0 +1,17 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
action.amount = skill.basePotency;
|
||||
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
20
Data/scripts/commands/ability/divine_veil.lua
Normal file
20
Data/scripts/commands/ability/divine_veil.lua
Normal file
|
@ -0,0 +1,20 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--8051401: Gallant Cuisses
|
||||
if caster.HasItemEquippedInSlot(8051401, 12) then
|
||||
ability.statusTier = 2;
|
||||
end
|
||||
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
16
Data/scripts/commands/ability/dragonfire_dive.lua
Normal file
16
Data/scripts/commands/ability/dragonfire_dive.lua
Normal file
|
@ -0,0 +1,16 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
action.amount = skill.basePotency;
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
29
Data/scripts/commands/ability/dread_spike.lua
Normal file
29
Data/scripts/commands/ability/dread_spike.lua
Normal file
|
@ -0,0 +1,29 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--Need a better way to do this
|
||||
|
||||
for i = 223212,223217 do
|
||||
local buff = caster.statusEffects.GetStatusEffectById(i);
|
||||
|
||||
if buff ~= nil then
|
||||
caster.statusEffects.RemoveStatusEffect(buff, actionContainer, 30329);
|
||||
skill.statusTier = 2;
|
||||
break;
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
16
Data/scripts/commands/ability/elusive_jump.lua
Normal file
16
Data/scripts/commands/ability/elusive_jump.lua
Normal file
|
@ -0,0 +1,16 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--How to do enmity?
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
19
Data/scripts/commands/ability/enduring_march.lua
Normal file
19
Data/scripts/commands/ability/enduring_march.lua
Normal file
|
@ -0,0 +1,19 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
--27203: Enhanced Outmaneuver
|
||||
if caster.HasTrait(27203) then
|
||||
ability.statusTier = 2;
|
||||
end
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
19
Data/scripts/commands/ability/excruciate.lua
Normal file
19
Data/scripts/commands/ability/excruciate.lua
Normal file
|
@ -0,0 +1,19 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
--27321: Enhanced Excruciate: Increases critical rate bonus from Excruciate.
|
||||
if caster.HasTrait(27321) then
|
||||
ability.statusTier = 2;
|
||||
end
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
19
Data/scripts/commands/ability/featherfoot.lua
Normal file
19
Data/scripts/commands/ability/featherfoot.lua
Normal file
|
@ -0,0 +1,19 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
--27123: Enhanced Featherfoot
|
||||
if caster.HasTrait(27123) then
|
||||
ability.statusTier = 2;
|
||||
end
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
19
Data/scripts/commands/ability/fists_of_earth.lua
Normal file
19
Data/scripts/commands/ability/fists_of_earth.lua
Normal file
|
@ -0,0 +1,19 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
--27124: Enhanced Fists of Earth
|
||||
if caster.HasTrait(27125) then
|
||||
ability.statusTier = 2;
|
||||
end
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
19
Data/scripts/commands/ability/fists_of_fire.lua
Normal file
19
Data/scripts/commands/ability/fists_of_fire.lua
Normal file
|
@ -0,0 +1,19 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
--27124: Enhanced Fists of Fire
|
||||
if caster.HasTrait(27124) then
|
||||
ability.statusTier = 2;
|
||||
end
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
19
Data/scripts/commands/ability/fists_of_wind.lua
Normal file
19
Data/scripts/commands/ability/fists_of_wind.lua
Normal file
|
@ -0,0 +1,19 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
--27124: Enhanced Fists of Fire
|
||||
if caster.HasTrait(27124) then
|
||||
ability.statusTier = 2;
|
||||
end
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
27
Data/scripts/commands/ability/flash.lua
Normal file
27
Data/scripts/commands/ability/flash.lua
Normal file
|
@ -0,0 +1,27 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
--27161: Enhanced Flash: Adds Blind effect to flash
|
||||
if caster.HasTrait(27161) then
|
||||
ability.statusChance = 1;
|
||||
end
|
||||
|
||||
--27162: Enhanced Flash II: Expands Flash to affect enemies near target
|
||||
if caster.HasTrait(27162) then
|
||||
ability.aoeTarget = TargetFindAOEType.Circle;
|
||||
end
|
||||
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
action.enmity = 400;
|
||||
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
19
Data/scripts/commands/ability/foresight.lua
Normal file
19
Data/scripts/commands/ability/foresight.lua
Normal file
|
@ -0,0 +1,19 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
--27201: Swift Foresight
|
||||
if caster.HasTrait(27201) then
|
||||
ability.recastTimeMs = ability.recastTimeMs - 15000;
|
||||
end
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
28
Data/scripts/commands/ability/hallowed_ground.lua
Normal file
28
Data/scripts/commands/ability/hallowed_ground.lua
Normal file
|
@ -0,0 +1,28 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
--27245: Swift Chameleon
|
||||
if caster.HasTrait(27245) then
|
||||
ability.recastTimeMs = ability.recastTimeMs - 60000;
|
||||
end
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Get all targets with hate on caster and spread 1140 enmity between them.
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--[[
|
||||
local enemies = caster.GetTargetsWithHate()
|
||||
local enmity = 1140 / enemies.Count
|
||||
for enemy in enemies do
|
||||
enemy.hateContainer.updateHate(enmity);
|
||||
end]]
|
||||
|
||||
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
19
Data/scripts/commands/ability/hawks_eye.lua
Normal file
19
Data/scripts/commands/ability/hawks_eye.lua
Normal file
|
@ -0,0 +1,19 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
--27240: Enhanced Hawks Eye
|
||||
--Increases accuracy gained by 50%. (Hawks Eye normally gives 12.5% of your accuracy, Traited it gives 18.75%)
|
||||
if caster.HasTrait(27240) then
|
||||
ability.statusTier = 2
|
||||
end
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
17
Data/scripts/commands/ability/hundred_fists.lua
Normal file
17
Data/scripts/commands/ability/hundred_fists.lua
Normal file
|
@ -0,0 +1,17 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
require("modifiers");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--Take off 1/3 of attack delay. Not sure if this is the exact amount HF reduces by
|
||||
skill.statusMagnitude = 0.33 * caster.GetMod(modifiersGlobal.Delay);
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
29
Data/scripts/commands/ability/invigorate.lua
Normal file
29
Data/scripts/commands/ability/invigorate.lua
Normal file
|
@ -0,0 +1,29 @@
|
|||
require("global");
|
||||
require("Ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
--27280: Enhanced Invigorate: Increases duration of Invigorate by 15 seconds
|
||||
if caster.HasTrait(27280) then
|
||||
ability.statusDuration = ability.statusDuration + 15;
|
||||
end
|
||||
|
||||
--Drachen Mail: Increases Invigorate TP tick from 100 to 120.
|
||||
local magnitude = 100;
|
||||
|
||||
--8032704: Drachen Mail
|
||||
if caster.HasItemEquippedInSlot(8032704, 10) then
|
||||
magnitude = 120;
|
||||
end
|
||||
|
||||
ability.statusMagnitude = magnitude;
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
17
Data/scripts/commands/ability/jump.lua
Normal file
17
Data/scripts/commands/ability/jump.lua
Normal file
|
@ -0,0 +1,17 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
action.amount = skill.basePotency;
|
||||
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
19
Data/scripts/commands/ability/keen_flurry.lua
Normal file
19
Data/scripts/commands/ability/keen_flurry.lua
Normal file
|
@ -0,0 +1,19 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
--27285: Enhanced Keen Flurry: Reduces recast time of WS used during KF by 50%
|
||||
if caster.HasTrait(27285) then
|
||||
ability.statusTier = 2;
|
||||
end
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
52
Data/scripts/commands/ability/life_surge.lua
Normal file
52
Data/scripts/commands/ability/life_surge.lua
Normal file
|
@ -0,0 +1,52 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
--27282: Enhanced Life Surge: Increases effect of Life Surge by 20%
|
||||
if caster.HasTrait(27282) then
|
||||
ability.statusTier = 2;
|
||||
end
|
||||
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--Need a better way to do this
|
||||
--223212: Power Surge I
|
||||
--223213: Power Surge II
|
||||
--223212: Power Surge III
|
||||
--No message is sent when PS is removed by Life Surge
|
||||
caster.statusEffects.RemoveStatusEffect(223212);
|
||||
caster.statusEffects.RemoveStatusEffect(223213);
|
||||
caster.statusEffects.RemoveStatusEffect(223214);
|
||||
|
||||
|
||||
--Using this ability moves to the next LS buff
|
||||
local removeId = 0;
|
||||
--223215: Life Surge I
|
||||
--223216: Life Surge II
|
||||
--223217: Life Surge III
|
||||
if caster.statusEffects.HasStatusEffect(223215) then
|
||||
removeId = 223215;
|
||||
skill.statusId = 223216;
|
||||
skill.statusTier = 2;
|
||||
elseif caster.statusEffects.HasStatusEffect(223216) then
|
||||
removeId = 223216;
|
||||
skill.statusId = 223217;
|
||||
skill.statusTier = 3;
|
||||
elseif caster.statusEffects.HasStatusEffect(223217) then
|
||||
effect = caster.statusEffects.GetStatusEffectById(223217)
|
||||
effect.RefreshTime();
|
||||
skill.statusId = 223217;
|
||||
end
|
||||
|
||||
if not (removeId == 0) then
|
||||
caster.statusEffects.ReplaceEffect(caster.statusEffects.GetStatusEffectById(removeId), skill.statusId, skill.statusTier, skill.statusMagnitude, skill.statusDuration);
|
||||
end
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
20
Data/scripts/commands/ability/light_shot.lua
Normal file
20
Data/scripts/commands/ability/light_shot.lua
Normal file
|
@ -0,0 +1,20 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--For some reason, light shot's hitNum is always 1 (or 0, idk), even with barrage.
|
||||
--If you set the hitnum like any other multi-hit WS it will play the animation repeatedly.
|
||||
action.hitNum = 1;
|
||||
|
||||
action.amount = skill.basePotency;
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
19
Data/scripts/commands/ability/necrogenesis.lua
Normal file
19
Data/scripts/commands/ability/necrogenesis.lua
Normal file
|
@ -0,0 +1,19 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
--27322: Swift Dark Seal
|
||||
if caster.HasTrait(27322) then
|
||||
ability.recastTimeMs = ability.recastTimeMs - 30000;
|
||||
end
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
19
Data/scripts/commands/ability/outmaneuver.lua
Normal file
19
Data/scripts/commands/ability/outmaneuver.lua
Normal file
|
@ -0,0 +1,19 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
--27164: Enhanced Outmaneuver
|
||||
if caster.HasTrait(27164) then
|
||||
ability.statusTier = 2;
|
||||
end
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
19
Data/scripts/commands/ability/parsimony.lua
Normal file
19
Data/scripts/commands/ability/parsimony.lua
Normal file
|
@ -0,0 +1,19 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
--27323: Enhanced Parsimony: Increases MP gained from Parsimony by 25%
|
||||
if caster.HasTrait(27323) then
|
||||
ability.statusTier = 2;
|
||||
end
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
30
Data/scripts/commands/ability/power_surge.lua
Normal file
30
Data/scripts/commands/ability/power_surge.lua
Normal file
|
@ -0,0 +1,30 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
--27281: Enhanced Power Surge: Increases effect of Power Surge by 50%
|
||||
if caster.HasTrait(27281) then
|
||||
ability.statusTier = 2;
|
||||
end
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
caster.statusEffects.RemoveStatusEffect(223215);
|
||||
caster.statusEffects.RemoveStatusEffect(223216);
|
||||
caster.statusEffects.RemoveStatusEffect(223217);
|
||||
|
||||
--If caster has any of the power surge effects
|
||||
local buff = caster.statusEffects.GetStatusEffectById(223212) or caster.statusEffects.GetStatusEffectById(223213) or caster.statusEffects.GetStatusEffectById(223214);
|
||||
|
||||
if buff ~= nil then
|
||||
caster.statusEffects.RemoveStatusEffect(buff, actionContainer, 30329);
|
||||
else
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end
|
||||
end;
|
21
Data/scripts/commands/ability/provoke.lua
Normal file
21
Data/scripts/commands/ability/provoke.lua
Normal file
|
@ -0,0 +1,21 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
--27200: Enhanced Provoke: Adds Attack Down effect to Provoke.
|
||||
if caster.HasTrait(27200) then
|
||||
ability.statusChance = 1.0;
|
||||
end
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--http://forum.square-enix.com/ffxiv/threads/47393-Tachi-s-Guide-to-Paladin-%28post-1.22b%29
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
action.enmity = 750;
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
32
Data/scripts/commands/ability/quelling_strike.lua
Normal file
32
Data/scripts/commands/ability/quelling_strike.lua
Normal file
|
@ -0,0 +1,32 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--QS gives 300 TP by default.
|
||||
skill.statusMagnitude = 300;
|
||||
|
||||
--27241: Enhanced Quelling Strike: Increases TP gained from QS by 50%
|
||||
if caster.HasTrait(27241) then
|
||||
skill.statusMagnitude = skill.statusMagnitude * 1.5;
|
||||
end
|
||||
|
||||
--When raging strikes is active, Quelling Strikes removes it and immediately restores 100 TP for each tier ofr Raging Strikes.
|
||||
local buff = caster.statusEffects.GetStatusEffectById(223221)
|
||||
|
||||
if buff ~= nil then
|
||||
skill.tpCost = -100 * (buff.GetTier() - 1);
|
||||
--QS doesn't send a message
|
||||
caster.statusEffects.RemoveStatusEffect(buff);
|
||||
end
|
||||
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
28
Data/scripts/commands/ability/raging_strike.lua
Normal file
28
Data/scripts/commands/ability/raging_strike.lua
Normal file
|
@ -0,0 +1,28 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
ability.statusMagnitude = 100;
|
||||
--27243: Enhanced Raging Strike: Increases effect of Raging Strike by 50%
|
||||
if caster.HasTrait(27241) then
|
||||
ability.statusMagnitude = ability.statusMagnitude * 1.5;
|
||||
end
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--If caster has raging strike, remove it and send message, otherwise apply it.
|
||||
local buff = caster.statusEffects.GetStatusEffectById(223221)
|
||||
|
||||
if buff ~= nil then
|
||||
--30329: Your Raging Strike removes your Raging Strike effect.
|
||||
caster.statusEffects.RemoveStatusEffect(buff, actionContainer, 30329);
|
||||
else
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end
|
||||
end;
|
31
Data/scripts/commands/ability/rampage.lua
Normal file
31
Data/scripts/commands/ability/rampage.lua
Normal file
|
@ -0,0 +1,31 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
--27204: Enhanced Rampage
|
||||
if caster.HasTrait(27204) then
|
||||
ability.statusTier = 2;
|
||||
end
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--223207: Berserk
|
||||
--223208: Rampage
|
||||
--Remove Berserk effect. I'm assuming no message is sent like LNC surges
|
||||
caster.statusEffects.RemoveStatusEffect(223207);
|
||||
|
||||
--If caster has rampage already, remove it and send a message.
|
||||
local buff = caster.statusEffects.GetStatusEffectById(223208)
|
||||
|
||||
if buff ~= nil then
|
||||
caster.statusEffects.RemoveStatusEffect(buff, actionContainer, 30329);
|
||||
else
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end
|
||||
end;
|
27
Data/scripts/commands/ability/rampart.lua
Normal file
27
Data/scripts/commands/ability/rampart.lua
Normal file
|
@ -0,0 +1,27 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
require("battleutils")
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
|
||||
--27163: Enhanced Rampart:Expands rampart to affect party members
|
||||
if caster.HasTrait(27163) then
|
||||
ability.aoeType = TargetFindAOEType.Circle;
|
||||
end
|
||||
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--http://forum.square-enix.com/ffxiv/threads/47393-Tachi-s-Guide-to-Paladin-%28post-1.22b%29
|
||||
--180 enmity per member that has enmity on the current enemy
|
||||
--Need to figure out enmity system
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
action.enmity = 180;
|
||||
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
15
Data/scripts/commands/ability/resonance.lua
Normal file
15
Data/scripts/commands/ability/resonance.lua
Normal file
|
@ -0,0 +1,15 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
19
Data/scripts/commands/ability/sacred_prism.lua
Normal file
19
Data/scripts/commands/ability/sacred_prism.lua
Normal file
|
@ -0,0 +1,19 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
--27360: Swift Sacred Prism: Reduces recast by 30 seconds
|
||||
if caster.HasTrait(27360) then
|
||||
ability.recastTimeMs = ability.recastTimeMs - 30000;
|
||||
end
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
43
Data/scripts/commands/ability/second_wind.lua
Normal file
43
Data/scripts/commands/ability/second_wind.lua
Normal file
|
@ -0,0 +1,43 @@
|
|||
require("global");
|
||||
require("modifiers");
|
||||
require("utils")
|
||||
--require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--http://forum.square-enix.com/ffxiv/threads/51208-2nd-wind-modifier
|
||||
--The primary modifier for SW is class level.
|
||||
|
||||
--There are three other factors that contribute to SW:
|
||||
-- PGL's SW trait, which increases potency by 25%.
|
||||
-- A bonus from INT (2INT=1HP)
|
||||
-- An additional random integer (580 at level 50. +/- 3%)
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--Base amount seems to be 0.215x^2 - 0.35x + 60
|
||||
--^ this isn't totally correct
|
||||
local amount = (0.215 * math.pow(caster.GetLevel(), 2)) - (0.35 * caster.GetLevel()) + 60;
|
||||
|
||||
--Heals can vary by up to 3.5%
|
||||
amount = math.Clamp(amount * (0.965 + (math.random() * 0.07)), 0, 9999);
|
||||
|
||||
--PGL gets an INT bonus for Second Wind
|
||||
if caster.GetClass() == 2 then
|
||||
amount = amount + caster.GetMod(modifiersGlobal.Intelligence) / 2;
|
||||
end;
|
||||
|
||||
--27120: Enhanced Second Wind
|
||||
if caster.HasTrait(27120) then
|
||||
amount = amount * 1.25;
|
||||
end;
|
||||
|
||||
action.amount = amount;
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
19
Data/scripts/commands/ability/sentinel.lua
Normal file
19
Data/scripts/commands/ability/sentinel.lua
Normal file
|
@ -0,0 +1,19 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
--27160: Enhanced Sentinel
|
||||
if caster.HasTrait(27160) then
|
||||
ability.statusTier = 2;
|
||||
end
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
26
Data/scripts/commands/ability/shoulder_tackle.lua
Normal file
26
Data/scripts/commands/ability/shoulder_tackle.lua
Normal file
|
@ -0,0 +1,26 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--chance to influct stun only when target has no enmity towards you
|
||||
if not (target.hateContainer.HasHateForTarget(caster)) then
|
||||
skill.statusChance = 0.50;
|
||||
end
|
||||
|
||||
--calculate ws damage
|
||||
action.amount = skill.basePotency;
|
||||
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
|
||||
--Try to apply status effect
|
||||
action.TryStatus(caster, target, skill, actionContainer, true);
|
||||
end;
|
19
Data/scripts/commands/ability/shroud_of_saints.lua
Normal file
19
Data/scripts/commands/ability/shroud_of_saints.lua
Normal file
|
@ -0,0 +1,19 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
--27361: Swift Shroud of Saints
|
||||
if caster.HasTrait(27361) then
|
||||
ability.recastTimeMs = ability.recastTimeMs - 60000;
|
||||
end
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
19
Data/scripts/commands/ability/taunt.lua
Normal file
19
Data/scripts/commands/ability/taunt.lua
Normal file
|
@ -0,0 +1,19 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
--27122: Swift Taunt: Reduces recast time by 15 seconds.
|
||||
if caster.HasTrait(27121) then
|
||||
ability.recastTimeMs = ability.recastTimeMs - 15000;
|
||||
end
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
20
Data/scripts/commands/ability/tempered_will.lua
Normal file
20
Data/scripts/commands/ability/tempered_will.lua
Normal file
|
@ -0,0 +1,20 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--Is this before or after status is gained?
|
||||
--Will probably need to switch to a flag for this because it might include more than just these 3 effects.
|
||||
caster.statusEffects.RemoveStatusEffect(228011, actionContainer, 30329);
|
||||
caster.statusEffects.RemoveStatusEffect(228013, actionContainer, 30329);
|
||||
caster.statusEffects.RemoveStatusEffect(228021, actionContainer, 30329);
|
||||
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
22
Data/scripts/commands/ability/vengeance.lua
Normal file
22
Data/scripts/commands/ability/vengeance.lua
Normal file
|
@ -0,0 +1,22 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
require("battleutils")
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
|
||||
--8032703: Fighter's Cuirass: Enhances Vengeance
|
||||
if caster.HasItemEquippedInSlot(8032703, 10) then
|
||||
skill.statusTier = 2;
|
||||
end
|
||||
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
Loading…
Add table
Add a link
Reference in a new issue