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

@ -1,15 +1,56 @@
require("global");
require("magic");
function onMagicPrepare(caster, target, spell)
function onMagicPrepare(caster, target, skill)
return 0;
end;
function onMagicStart(caster, target, spell)
return 0;
function onMagicStart(caster, target, skill)
--Miuet gives 35 ACC/MACC by default at level 50. Minuet does scale with level
--BV apparetnly gives 71 ACc/MACC
--Formula seems to be level - 15, not sure why BV gives 71 at 50 then
local acc = caster.GetLevel() - 15;
--8071405: Choral Ringbands: Enhances Minuet of Rigor
--With Choral Tights, Minuet gives 60 ACC/MACC at 50. Unsure what it is at lower levels (ie if it's a flat added 25 MP or a multiplier)
--Assuming it's a flat 25 because that makes more sense than multiplying by 1.714
local gloves = caster.GetEquipment().GetItemAtSlot(13);
if gloves and gloves.itemId == 8071405 then
acc = acc + 25;
end
--223253: Battle Voice
--Battle Voice doubles effect of songs
if caster.statusEffects.HasStatusEffect(223253) then
acc = acc * 2;
--Set status tier so we can check it later when BV falls off
skill.statusTier = 2;
end
skill.statusMagnitude = acc;
end;
function onSkillFinish(caster, target, skill, action, actionContainer)
--223224: Swiftsong
--223254: Ballad Of Magi
--223255: Paeon of War
--If target has one of these effects that was from this caster, remove it
local oldSong;
local swiftSong = target.statusEffects.GetStatusEffectById(223224);
local ballad = target.statusEffects.GetStatusEffectById(223254);
local paeon = target.statusEffects.GetStatusEffectById(223255);
if swiftSong and swiftSong.GetSource() == caster then
oldSong = swiftSong;
elseif ballad and ballad.GetSource() == caster then
oldSong = ballad;
elseif paeon and paeon.GetSource() == caster then
oldSong = paeon;
end
if oldSong then
target.statusEffects.RemoveStatusEffect(oldSong);
end
--DoAction handles rates, buffs, dealing damage
action.DoAction(caster, target, skill, actionContainer);
end;