mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-04-02 19:42:05 -04:00
Rewrote aoe checks for cone and line aoes and added minimum distance values Added height checks for commands Fixed combo effects repeating for every target hit by AoE attacks Fixed teleport sometimes not raising (I think) Fixed gear checks in some command scripts
57 lines
1.9 KiB
Lua
57 lines
1.9 KiB
Lua
require("global");
|
|
require("magic");
|
|
|
|
function onMagicPrepare(caster, target, skill)
|
|
return 0;
|
|
end;
|
|
|
|
function onMagicStart(caster, target, skill)
|
|
--Ballad gives 20 MP a tick at 50
|
|
--BV gives 40 MP per tick
|
|
--Formula seems to be 0.8 * level - 20, not sure why BV gives 71 at 50 then
|
|
local mpPerTick = (0.8 * caster.GetLevel()) - 20;
|
|
|
|
--8032705: Choral Shirt: Enhances Ballad of Magi
|
|
--With Choral Shirt, Ballad gives 26 mp a tick. It could be a flat 6 or multiply by 1.3
|
|
--Because minuet seemed like a normal addition I'm assuming this is too
|
|
if caster.HasItemEquippedInSlot(8032705, 10) then
|
|
mpPerTick = mpPerTick + 6;
|
|
end
|
|
|
|
--223253: Battle Voice
|
|
--Battle Voice doubles effect of songs
|
|
if caster.statusEffects.HasStatusEffect(223253) then
|
|
mpPerTick = mpPerTick * 2;
|
|
--Set status tier so we can check it later when BV falls off
|
|
skill.statusTier = 2;
|
|
end
|
|
|
|
skill.statusMagnitude = mpPerTick;
|
|
end;
|
|
|
|
function onSkillFinish(caster, target, skill, action, actionContainer)
|
|
--223224: Swiftsong
|
|
--223255: Paeon of War
|
|
--223256: Minuet of Rigor
|
|
--
|
|
local oldSong;
|
|
local swiftSong = target.statusEffects.GetStatusEffectById(223224);
|
|
local paeon = target.statusEffects.GetStatusEffectById(223255);
|
|
local minuet = target.statusEffects.GetStatusEffectById(223256);
|
|
if swiftSong and swiftSong.GetSource() == caster then
|
|
oldSong = swiftSong;
|
|
elseif paeon and paeon.GetSource() == caster then
|
|
oldSong = paeon;
|
|
elseif minuet and minuet.GetSource() == caster then
|
|
oldSong = minuet;
|
|
elseif ballad and ballad.GetSource() == caster then
|
|
oldSong = ballad;
|
|
end
|
|
|
|
if oldSong then
|
|
target.statusEffects.RemoveStatusEffect(oldSong);
|
|
end
|
|
|
|
--DoAction handles rates, buffs, dealing damage
|
|
action.DoAction(caster, target, skill, actionContainer);
|
|
end; |