Combat additions

Added formulas for base EXP gain and chain experience
Added basic scripts for most player abilities and effects
Added stat gains for some abilities
Changed status flags
Fixed bug with player death
Fixed bug where auto attacks didnt work when not locked on
Added traits
This commit is contained in:
yogurt 2018-04-18 16:06:41 -05:00
parent b8d6a943aa
commit c5ce2ec771
239 changed files with 5125 additions and 1237 deletions

View 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;

View 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)
ability.statusMagnitude = 4;
--27242: Enhanced Barrage: Adds an additional attack to barrage ( 4 -> 5 )
if caster.HasTrait(27242) then
ability.statusMagnitude = 5;
end
--DoAction handles rates, buffs, dealing damage
action.DoAction(caster, target, skill, actionContainer);
end;

View file

@ -0,0 +1,19 @@
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)
--DoAction handles rates, buffs, dealing damage
action.DoAction(caster, target, skill, actionContainer);
end;

View 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;

View file

@ -0,0 +1,43 @@
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();
local remAction = caster.statusEffects.RemoveStatusEffectForBattleAction(buff, 30329);
caster.AddMP(amount);
actionContainer.AddMPAction(caster.actorId, 30321, amount);
actionContainer.AddAction(remAction);
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);
skill.statusMagnitude = amount;
--DoAction handles rates, buffs, dealing damage
action.DoAction(caster, target, skill, actionContainer);
end
end;

View 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;

View 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;

View file

@ -0,0 +1,18 @@
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)
target.hateContainer.UpdateHate(caster, -840);
end;

View 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;

View 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.GetEquipment().GetItemAtSlot(14).itemId == 8032701 then
skill.recastTimeMs = skill.recastTimeMs - 10000;
end
action.DoAction(caster, target, skill, actionContainer);
end;

View 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)
--This is for the "Cover" effect the caster receives.
local coverTier = 1
--8032701: Gallant Surcoat: Enhances Cover
if caster.GetEquipment().GetItemAtSlot(10).itemId == 8032701 then
coverTier = 2;
end
actionContainer.AddAction(caster.statusEffects.AddStatusForBattleAction(223063, coverTier));
action.DoAction(caster, target, skill, actionContainer);
end;

View 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;

View 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;

View file

@ -9,6 +9,5 @@ function onAbilityStart(caster, target, skill)
return 0;
end;
function onAbilityFinish(caster, target, skill, action)
return onStatusAbilityFinish(caster, target, skill, action);
function onSkillFinish(caster, target, skill, action)
end;

View 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.GetEquipment().GetItemAtSlot(14).itemId == 8051401 then
ability.statusTier = 2;
end
--DoAction handles rates, buffs, dealing damage
action.DoAction(caster, target, skill, actionContainer);
end;

View file

@ -9,6 +9,8 @@ function onAbilityStart(caster, target, ability)
return 0;
end;
function onAbilityFinish(caster, target, skill, action)
return onAttackAbilityFinish(caster, target, skill, action);
function onSkillFinish(caster, target, skill, action, actionContainer)
action.amount = skill.basePotency;
--DoAction handles rates, buffs, dealing damage
action.DoAction(caster, target, skill, actionContainer);
end;

View file

@ -0,0 +1,24 @@
require("global");
require("ability");
function onAbilityPrepare(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 remAction = caster.statusEffects.RemoveStatusEffectForBattleAction(i, 30329)
if remAction ~= nil then
actionContainer.AddAction(remAction);
skill.statusTier = 2;
break;
end
end
--DoAction handles rates, buffs, dealing damage
action.DoAction(caster, target, skill, actionContainer);
end;

View 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;

View 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;

View 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;

View 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;

View 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;

View 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;

View 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;

View 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;

View 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;

View 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;

View file

@ -6,9 +6,24 @@ function onAbilityPrepare(caster, target, ability)
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.GetEquipment().GetItemAtSlot(10).itemId == 8032704 then
magnitude = 120;
end
ability.statusMagnitude = magnitude;
return 0;
end;
function onAbilityFinish(caster, target, ability, action)
return onStatusAbilityFinish(caster, target, ability, action)
function onSkillFinish(caster, target, skill, action, actionContainer)
--DoAction handles rates, buffs, dealing damage
action.DoAction(caster, target, skill, actionContainer);
end;

View file

@ -9,6 +9,9 @@ function onAbilityStart(caster, target, ability)
return 0;
end;
function onAbilityFinish(caster, target, skill, action)
return onAttackAbilityFinish(caster, target, skill, action);
function onSkillFinish(caster, target, skill, action, actionContainer)
action.amount = skill.basePotency;
--DoAction handles rates, buffs, dealing damage
action.DoAction(caster, target, skill, actionContainer);
end;

View 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;

View file

@ -0,0 +1,53 @@
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, true);
caster.statusEffects.RemoveStatusEffect(223213, true);
caster.statusEffects.RemoveStatusEffect(223214, true);
--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.RemoveStatusEffect(removeId, true);
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;

View file

@ -9,6 +9,8 @@ function onAbilityStart(caster, target, ability)
return 0;
end;
function onAbilityFinish(caster, target, skill, action)
return onAttackAbilityFinish(caster, target, skill, action);
function onSkillFinish(caster, target, skill, action, actionContainer)
action.amount = skill.basePotency;
--DoAction handles rates, buffs, dealing damage
action.DoAction(caster, target, skill, actionContainer);
end;

View 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;

View 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;

View 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;

View file

@ -0,0 +1,24 @@
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)
--Need a better way to do this
actionContainer.AddAction(caster.statusEffects.RemoveStatusEffectForBattleAction(223215));
actionContainer.AddAction(caster.statusEffects.RemoveStatusEffectForBattleAction(223216));
actionContainer.AddAction(caster.statusEffects.RemoveStatusEffectForBattleAction(223217));
--DoAction handles rates, buffs, dealing damage
action.DoAction(caster, target, skill, actionContainer);
end;

View 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;

View 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)
--QS gives 300 TP by default.
skill.statusMagnitude = 300;
--I'm assuming that with raging strikes, that increases to 500.
--and traited that increases again to 750 (or 450 without RS)
if caster.statusEffects.HasStatusEffect(223221) then
actionContainer.AddAction(caster.statusEffects.RemoveStatusEffectForBattleAction(223221));
skill.statusMagnitude = 500;
end
--27241: Enhanced Quelling Strike: Increases TP gained from QS by 50%
if caster.HasTrait(27241) then
skill.statusMagnitude = skill.statusMagnitude * 1.5;
end
--DoAction handles rates, buffs, dealing damage
action.DoAction(caster, target, skill, actionContainer);
end;

View file

@ -0,0 +1,19 @@
require("global");
require("ability");
function onAbilityPrepare(caster, target, ability)
return 0;
end;
function onAbilityStart(caster, target, ability)
--27243: Enhanced Raging Strike: Increases effect of Raging Strike by 50%
if caster.HasTrait(27241) 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;

View file

@ -0,0 +1,19 @@
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)
--DoAction handles rates, buffs, dealing damage
action.DoAction(caster, target, skill, actionContainer);
end;

View 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;

View 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;

View file

@ -1,14 +1,39 @@
require("global");
require("ability");
require("modifiers");
--require("ability");
function onAbilityPrepare(caster, target, ability)
return 0;
end;
function onAbilityStart(caster, target, ability)
return 0;
end;
function onAbilityFinish(caster, target, ability, action)
return onHealAbilityFinish(caster, target, ability, action)
--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 formula isn't quit known yet
local amount = 100;
--Heals can vary by up to ~3.5% in either direction
amount = math.Clamp(amount * (0.965 + (math.rand() * 7.0)), 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;
--DoAction handles rates, buffs, dealing damage
action.DoAction(caster, target, skill, actionContainer);
end;

View 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;

View 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;

View 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;

View 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.
actionContainer.AddAction(caster.statusEffects.RemoveStatusEffectForBattleAction(228011));
actionContainer.AddAction(caster.statusEffects.RemoveStatusEffectForBattleAction(228013));
actionContainer.AddAction(caster.statusEffects.RemoveStatusEffectForBattleAction(228021));
action.DoAction(caster, target, skill, actionContainer);
end;

View 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.GetEquipment().GetItemAtSlot(13).itemId == 8032703 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;