mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-04-02 19:42:05 -04:00
Cleaned up unneeded requires in some scripts Fixed Second Wind Added new effect scripts Added bard song scripts that mostly work
54 lines
1.8 KiB
Lua
54 lines
1.8 KiB
Lua
require("global");
|
|
require("magic");
|
|
|
|
function onMagicPrepare(caster, target, skill)
|
|
return 0;
|
|
end;
|
|
|
|
function onMagicStart(caster, target, skill)
|
|
--Restores 50 TP/tick normally. With Choral Tights it's 60 TP. With Battle voice it's 100, 120 with Coral Tights.
|
|
--Battle voice is handled in the Battle Voice script
|
|
--Paeon does not scale with level
|
|
local tpPerTick = 50;
|
|
|
|
--8051405: Choral Tights: Enhances Paeon Of War
|
|
local pants = caster.GetEquipment().GetItemAtSlot(12);
|
|
if pants and pants.itemId == 8051405 then
|
|
tpPerTick = 60;
|
|
end
|
|
|
|
--223253: Battle Voice
|
|
--Battle Voice doubles effect of songs
|
|
if caster.statusEffects.HasStatusEffect(223253) then
|
|
tpPerTick = tpPerTick * 2;
|
|
--Set status tier so we can check it later when BV falls off
|
|
skill.statusTier = 2;
|
|
end
|
|
|
|
skill.statusMagnitude = tpPerTick;
|
|
end;
|
|
|
|
function onSkillFinish(caster, target, skill, action, actionContainer)
|
|
--223224: Swiftsong
|
|
--223254: Ballad Of Magi
|
|
--223256: Minuet of Rigor
|
|
--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 minuet = target.statusEffects.GetStatusEffectById(223256);
|
|
if swiftSong and swiftSong.GetSource() == caster then
|
|
oldSong = swiftSong;
|
|
elseif ballad and ballad.GetSource() == caster then
|
|
oldSong = ballad;
|
|
elseif minuet and minuet.GetSource() == caster then
|
|
oldSong = minuet;
|
|
end
|
|
|
|
if oldSong then
|
|
target.statusEffects.RemoveStatusEffect(oldSong);
|
|
end
|
|
|
|
--DoAction handles rates, buffs, dealing damage
|
|
action.DoAction(caster, target, skill, actionContainer);
|
|
end; |