mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-06-09 14:04:41 +02:00
Updated Map Server namespace. Moved all other data folders (www and sql) to data folder. Renamed boot name to Project Meteor.
This commit is contained in:
parent
18ef69f3d1
commit
91549bff7a
1823 changed files with 102704 additions and 901 deletions
22
Data/scripts/commands/magic/aero.lua
Normal file
22
Data/scripts/commands/magic/aero.lua
Normal file
|
@ -0,0 +1,22 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--calculate damage
|
||||
action.amount = skill.basePotency;
|
||||
skill.statusMagnitude = 15;
|
||||
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
|
||||
--Try to apply status effect
|
||||
action.TryStatus(caster, target, skill, actionContainer, true);
|
||||
end;
|
27
Data/scripts/commands/magic/aerora.lua
Normal file
27
Data/scripts/commands/magic/aerora.lua
Normal file
|
@ -0,0 +1,27 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Increased damage and conversion to single target
|
||||
function onCombo(caster, target, spell)
|
||||
spell.aoeType = 0;
|
||||
spell.basePotency = spell.basePotency * 1.5;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--calculate damage
|
||||
action.amount = skill.basePotency;
|
||||
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
|
||||
--Dispels an effect on each target.
|
||||
target.statusEffects.RemoveStatusEffect(GetRandomEffectByFlag(8), actionContainer, 30336);
|
||||
end;
|
57
Data/scripts/commands/magic/ballad_of_magi.lua
Normal file
57
Data/scripts/commands/magic/ballad_of_magi.lua
Normal file
|
@ -0,0 +1,57 @@
|
|||
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;
|
21
Data/scripts/commands/magic/blizzara.lua
Normal file
21
Data/scripts/commands/magic/blizzara.lua
Normal file
|
@ -0,0 +1,21 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--calculate damage
|
||||
action.amount = skill.basePotency;
|
||||
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
|
||||
--Try to apply status effect
|
||||
action.TryStatus(caster, target, skill, actionContainer, true);
|
||||
end;
|
20
Data/scripts/commands/magic/blizzard.lua
Normal file
20
Data/scripts/commands/magic/blizzard.lua
Normal file
|
@ -0,0 +1,20 @@
|
|||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--calculate damage
|
||||
action.amount = skill.basePotency;
|
||||
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
|
||||
--Try to apply status effect
|
||||
action.TryStatus(caster, target, skill, actionContainer, true);
|
||||
end;
|
26
Data/scripts/commands/magic/burst.lua
Normal file
26
Data/scripts/commands/magic/burst.lua
Normal file
|
@ -0,0 +1,26 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Increased damage with lesser current hp
|
||||
function onCombo(caster, target, spell)
|
||||
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--calculate damage
|
||||
action.amount = skill.basePotency;
|
||||
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
|
||||
--Try to apply status effect
|
||||
action.TryStatus(caster, target, skill, actionContainer, true);
|
||||
end;
|
22
Data/scripts/commands/magic/cura.lua
Normal file
22
Data/scripts/commands/magic/cura.lua
Normal file
|
@ -0,0 +1,22 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
require("modifiers");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--http://forum.square-enix.com/ffxiv/threads/41900-White-Mage-A-Guide
|
||||
--2.5 HP per Healing Magic Potency
|
||||
--0.5 HP per MND
|
||||
--this is WITH WHM AF chest, don't know formula without AF. AF seems to increase healing by 7-10%?
|
||||
action.amount = 2.5 * caster.GetMod(modifiersGlobal.HealingMagicPotency) + 0.5 * (caster.GetMod(modifiersGlobal.Mind));
|
||||
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
19
Data/scripts/commands/magic/curaga.lua
Normal file
19
Data/scripts/commands/magic/curaga.lua
Normal file
|
@ -0,0 +1,19 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Idea: add way to sort list of targets by hp here?
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--calculate damage
|
||||
action.amount = skill.basePotency;
|
||||
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
37
Data/scripts/commands/magic/cure.lua
Normal file
37
Data/scripts/commands/magic/cure.lua
Normal file
|
@ -0,0 +1,37 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
require("modifiers");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--http://forum.square-enix.com/ffxiv/threads/41900-White-Mage-A-Guide
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
|
||||
--Non-CNJ
|
||||
--1.10 per HMP
|
||||
--0 per MND
|
||||
local hpPerHMP = 1.10;
|
||||
local hpPerMND = 0;
|
||||
|
||||
--CNJ
|
||||
--With AF:
|
||||
--1.25 HP per Healing Magic Potency
|
||||
--0.25 HP per MND
|
||||
--This is WITH AF chest. Without is lower. AF is ~7-10% increase apparently
|
||||
--I'm guessing without AF hpPerHMP will be 1.1?
|
||||
if (caster.GetClass() == 23) then
|
||||
hpPerHMP = 1.25;
|
||||
hpPerMND = 0.25;
|
||||
end
|
||||
|
||||
action.amount = hpPerHMP * caster.GetMod(modifiersGlobal.HealingMagicPotency) + hpPerMND * (caster.GetMod(modifiersGlobal.Mind));
|
||||
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
21
Data/scripts/commands/magic/default.lua
Normal file
21
Data/scripts/commands/magic/default.lua
Normal file
|
@ -0,0 +1,21 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--calculate damage
|
||||
action.amount = skill.basePotency;
|
||||
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
|
||||
--Try to apply status effect
|
||||
action.TryStatus(caster, target, skill, actionContainer, true);
|
||||
end;
|
22
Data/scripts/commands/magic/esuna.lua
Normal file
22
Data/scripts/commands/magic/esuna.lua
Normal file
|
@ -0,0 +1,22 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
require("battleutils");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
if not target.statusEffects.HasStatusEffectsByFlag(StatusEffectFlags.LoseOnEsuna) then
|
||||
return -1
|
||||
end
|
||||
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
|
||||
removeEffect = target.statusEffects.GetRandomEffectByFlag(StatusEffectFlags.LoseOnEsuna)
|
||||
|
||||
target.statusEffects.RemoveStatusEffect(removeEffect, actionContainer, 30331);
|
||||
end;
|
23
Data/scripts/commands/magic/fira.lua
Normal file
23
Data/scripts/commands/magic/fira.lua
Normal file
|
@ -0,0 +1,23 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Increased Damage and reduced recast time in place of stun
|
||||
function onCombo(caster, target, spell)
|
||||
spell.castTimeMs = spell.castTimeMs / 2;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--calculate damage
|
||||
action.amount = skill.basePotency;
|
||||
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
23
Data/scripts/commands/magic/firaga.lua
Normal file
23
Data/scripts/commands/magic/firaga.lua
Normal file
|
@ -0,0 +1,23 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Increased critical damage
|
||||
function onCombo(caster, target, spell)
|
||||
spell.castTimeMs = spell.castTimeMs / 2;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--calculate damage
|
||||
action.amount = skill.basePotency;
|
||||
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
18
Data/scripts/commands/magic/fire.lua
Normal file
18
Data/scripts/commands/magic/fire.lua
Normal file
|
@ -0,0 +1,18 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--calculate damage
|
||||
action.amount = 5000;-- skill.basePotency;
|
||||
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
22
Data/scripts/commands/magic/flare.lua
Normal file
22
Data/scripts/commands/magic/flare.lua
Normal file
|
@ -0,0 +1,22 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--calculate damage
|
||||
action.amount = skill.basePotency;
|
||||
skill.statusMagnitude = 20;
|
||||
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
|
||||
--Try to apply status effect
|
||||
action.TryStatus(caster, target, skill, actionContainer, true);
|
||||
end;
|
22
Data/scripts/commands/magic/freeze.lua
Normal file
22
Data/scripts/commands/magic/freeze.lua
Normal file
|
@ -0,0 +1,22 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--Freeze generates 0 enmity and removes a flat 720 enmity
|
||||
spell.enmityModifier = 0;
|
||||
target.hateContainer.UpdateHate(caster, -720);
|
||||
|
||||
--calculate damage
|
||||
action.amount = skill.basePotency;
|
||||
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
21
Data/scripts/commands/magic/holy.lua
Normal file
21
Data/scripts/commands/magic/holy.lua
Normal file
|
@ -0,0 +1,21 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--calculate damage
|
||||
action.amount = skill.basePotency;
|
||||
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
|
||||
--Try to apply status effect
|
||||
action.TryStatus(caster, target, skill, actionContainer, true);
|
||||
end;
|
29
Data/scripts/commands/magic/holy_succor.lua
Normal file
29
Data/scripts/commands/magic/holy_succor.lua
Normal file
|
@ -0,0 +1,29 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
action.amount = skill.basePotency;
|
||||
|
||||
--8071401: Gallant Gauntlets: Enhances Holy Succor
|
||||
if caster.HasItemEquippedInSlot(8071401, 13) then
|
||||
action.amount = action.amount * 1.10;
|
||||
end
|
||||
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
|
||||
--When cast on another player you also heal 50% of the amount restored.
|
||||
if caster != target then
|
||||
caster.AddHP(action.amount / 2)
|
||||
--33012: You recover [amount] HP.
|
||||
actionContainer.AddHPAbsorbAction(caster.actorId, 33012, (action.amount / 2));
|
||||
end
|
||||
end;
|
55
Data/scripts/commands/magic/minuet_of_rigor.lua
Normal file
55
Data/scripts/commands/magic/minuet_of_rigor.lua
Normal file
|
@ -0,0 +1,55 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
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
|
||||
if caster.HasItemEquippedInSlot(8071405, 13) 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;
|
53
Data/scripts/commands/magic/paeon_of_war.lua
Normal file
53
Data/scripts/commands/magic/paeon_of_war.lua
Normal file
|
@ -0,0 +1,53 @@
|
|||
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
|
||||
if caster.HasItemEquippedInSlot(8051405, 12) 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;
|
24
Data/scripts/commands/magic/protect.lua
Normal file
24
Data/scripts/commands/magic/protect.lua
Normal file
|
@ -0,0 +1,24 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
require("modifiers");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--Actual amount of def/mdef will be calculated in OnGain
|
||||
skill.statusMagnitude = caster.GetMod(modifiersGlobal.EnhancementMagicPotency);
|
||||
|
||||
--27365: Enhanced Protect: Increases magic defense gained from Protect.
|
||||
if caster.HasTrait(27365) then
|
||||
skill.statusId = 223129
|
||||
end
|
||||
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
19
Data/scripts/commands/magic/raise.lua
Normal file
19
Data/scripts/commands/magic/raise.lua
Normal file
|
@ -0,0 +1,19 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
--27363: Enhanced Raise: No longer inflicts weakness.
|
||||
if caster.HasTrait(27363) then
|
||||
ability.statusId = 0;
|
||||
end
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Not sure how raise works yet.
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
action.DoAction(caster, target, skill, actionContainer)
|
||||
end;
|
34
Data/scripts/commands/magic/regen.lua
Normal file
34
Data/scripts/commands/magic/regen.lua
Normal file
|
@ -0,0 +1,34 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
require("modifiers");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--http://forum.square-enix.com/ffxiv/threads/41900-White-Mage-A-Guide
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--For every 1-2-2-1-2 (repeating 3x) then 1-2-1-2-2 (repeating 3x) Enhancing magic potency you have, the amount your Regen cures per tic increases by 1.
|
||||
--.625 * Enhancing
|
||||
local slope = 0.625;
|
||||
local intercept = -110;
|
||||
|
||||
--8051406: Healer's Culottes: Enhances Regen
|
||||
if caster.HasItemEquippedInSlot(8051406, 14) then
|
||||
--I don't know if the numbers in that thread are completely correct because the AF Regen table has 3 1555s in a row.
|
||||
--If we assume that AF boots multiply both static parts of the regenTick equation by 1.25, we get a decently close match to actual numbers
|
||||
slope = slope * 1.25;
|
||||
intercept = intercept * 1.25;
|
||||
end
|
||||
|
||||
local regenTick = (slope * caster.GetMod(modifiersGlobal.EnhancementMagicPotency)) + intercept + 1;
|
||||
|
||||
spell.statusMagnitude = regenTick;
|
||||
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
15
Data/scripts/commands/magic/repose.lua
Normal file
15
Data/scripts/commands/magic/repose.lua
Normal file
|
@ -0,0 +1,15 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
21
Data/scripts/commands/magic/sanguine_rite.lua
Normal file
21
Data/scripts/commands/magic/sanguine_rite.lua
Normal file
|
@ -0,0 +1,21 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
|
||||
--27324: Enhanced Sanguine Rite: Reduces damage taken
|
||||
if caster.HasTrait(27365) then
|
||||
skill.statusId = 223240
|
||||
end
|
||||
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
15
Data/scripts/commands/magic/sleep.lua
Normal file
15
Data/scripts/commands/magic/sleep.lua
Normal file
|
@ -0,0 +1,15 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
22
Data/scripts/commands/magic/stone.lua
Normal file
22
Data/scripts/commands/magic/stone.lua
Normal file
|
@ -0,0 +1,22 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--calculate damage
|
||||
action.amount = skill.basePotency;
|
||||
skill.statusMagnitude = 50;
|
||||
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
|
||||
--Try to apply status effect
|
||||
action.TryStatus(caster, target, skill, actionContainer, true);
|
||||
end;
|
27
Data/scripts/commands/magic/stonera.lua
Normal file
27
Data/scripts/commands/magic/stonera.lua
Normal file
|
@ -0,0 +1,27 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Increased damage and conversion to single target
|
||||
function onCombo(caster, target, spell)
|
||||
spell.aoeType = 0;
|
||||
spell.basePotency = spell.basePotency * 1.5;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--calculate damage
|
||||
action.amount = skill.basePotency;
|
||||
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
|
||||
--Try to apply status effect
|
||||
action.TryStatus(caster, target, skill, actionContainer, true);
|
||||
end;
|
27
Data/scripts/commands/magic/stoneskin.lua
Normal file
27
Data/scripts/commands/magic/stoneskin.lua
Normal file
|
@ -0,0 +1,27 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
require("modifiers")
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--http://forum.square-enix.com/ffxiv/threads/41900-White-Mage-A-Guide
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
|
||||
local hpPerPoint = 1.34;--? 1.33?
|
||||
|
||||
--27364: Enhanced Stoneskin: Increases efficacy of Stoneskin
|
||||
if caster.HasTrait(27364) then
|
||||
hpPerPoint = 1.96;
|
||||
end
|
||||
|
||||
skill.statusMagnitude = hpPerPoint * caster.GetMod(modifiersGlobal.EnhancementMagicPotency);
|
||||
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
end;
|
35
Data/scripts/commands/magic/swiftsong.lua
Normal file
35
Data/scripts/commands/magic/swiftsong.lua
Normal file
|
@ -0,0 +1,35 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, skill)
|
||||
return 0;
|
||||
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 paeon = target.statusEffects.GetStatusEffectById(223255);
|
||||
local ballad = target.statusEffects.GetStatusEffectById(223254);
|
||||
local minuet = target.statusEffects.GetStatusEffectById(223256);
|
||||
if paeon and paeon.GetSource() == caster then
|
||||
oldSong = paeon;
|
||||
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;
|
25
Data/scripts/commands/magic/thundaga.lua
Normal file
25
Data/scripts/commands/magic/thundaga.lua
Normal file
|
@ -0,0 +1,25 @@
|
|||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Increased critical damage
|
||||
function onCombo(caster, target, spell)
|
||||
spell.critDamageModifier = 1.5;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--calculate damage
|
||||
action.amount = skill.basePotency;
|
||||
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
|
||||
--Try to apply status effect
|
||||
action.TryStatus(caster, target, skill, actionContainer, true);
|
||||
end;
|
27
Data/scripts/commands/magic/thundara.lua
Normal file
27
Data/scripts/commands/magic/thundara.lua
Normal file
|
@ -0,0 +1,27 @@
|
|||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Increased Damage and reduced recast time in place of stun
|
||||
function onCombo(caster, target, spell)
|
||||
spell.statusChance = 0;
|
||||
spell.basePotency = spell.basePotency * 1.5;
|
||||
spell.recastTimeMs = spell.recastTimeMs / 2;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--calculate damage
|
||||
action.amount = skill.basePotency;
|
||||
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
|
||||
--Try to apply status effect
|
||||
action.TryStatus(caster, target, skill, actionContainer, true);
|
||||
end;
|
20
Data/scripts/commands/magic/thunder.lua
Normal file
20
Data/scripts/commands/magic/thunder.lua
Normal file
|
@ -0,0 +1,20 @@
|
|||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action, actionContainer)
|
||||
--calculate damage
|
||||
action.amount = skill.basePotency;
|
||||
|
||||
--DoAction handles rates, buffs, dealing damage
|
||||
action.DoAction(caster, target, skill, actionContainer);
|
||||
|
||||
--Try to apply status effect
|
||||
action.TryStatus(caster, target, skill, actionContainer, true);
|
||||
end;
|
Loading…
Add table
Add a link
Reference in a new issue