Script fixes and new effects.

Cleaned up unneeded requires in some scripts
Fixed Second Wind
Added new effect scripts
Added bard song scripts that mostly work
This commit is contained in:
yogurt 2018-06-25 23:36:18 -05:00
parent ace4dfe58f
commit c442dc9ecd
72 changed files with 524 additions and 171 deletions

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)
--Only the bard gets the Battle Voice effect
if caster == target then
actionContainer.AddAction(caster.statusEffects.AddStatusForBattleAction(223253, 1, 0, 30));
end
action.DoAction(caster, target, skill, actionContainer);
end;

View file

@ -26,7 +26,7 @@ function onSkillFinish(caster, target, skill, action, actionContainer)
caster.AddMP(amount);
actionContainer.AddMPAction(caster.actorId, 30321, amount);
actionContainer.AddMPAction(caster.actorId, 33007, 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

View file

@ -17,7 +17,8 @@ function onSkillFinish(caster, target, skill, action, actionContainer)
coverTier = 2;
end
actionContainer.AddAction(caster.statusEffects.AddStatusForBattleAction(223063, coverTier));
actionContainer.AddAction(caster.statusEffects.AddStatusForBattleAction(223063, coverTier, skill.statusDuration));
--Apply Covered to target
action.DoAction(caster, target, skill, actionContainer);
end;

View 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
action.statusMagnitude = 0.33 * caster.GetMod(modifiersGlobal.AttackDelay);
action.DoAction(caster, target, skill, actionContainer);
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

@ -1,5 +1,6 @@
require("global");
require("modifiers");
require("utils")
--require("ability");
function onAbilityPrepare(caster, target, ability)
@ -20,9 +21,11 @@ end;
-- 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%
amount = math.Clamp(amount * (0.97 + (math.rand() * 3.0)), 0, 9999);
--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
@ -34,6 +37,7 @@ function onSkillFinish(caster, target, skill, action, actionContainer)
amount = amount * 1.25;
end;
action.amount = amount;
--DoAction handles rates, buffs, dealing damage
action.DoAction(caster, target, skill, actionContainer);
end;