mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-04-22 20:57:47 +00:00

New scripts for commands and effects that use the new function signatures and work with the new statuseffectcontainer
47 lines
No EOL
1.3 KiB
Lua
47 lines
No EOL
1.3 KiB
Lua
require("global");
|
|
require("weaponskill");
|
|
require("modifiers")
|
|
|
|
function onSkillPrepare(caster, target, skill)
|
|
return 0;
|
|
end;
|
|
|
|
function onSkillStart(caster, target, skill)
|
|
--Get Berserk statuseffect
|
|
local berserk = caster.statusEffects.GetStatusEffectById(223160);
|
|
|
|
--if it isn't nil, remove the AP and Defense mods and reset extra to 0, increase accuracy
|
|
if berserk != nil then
|
|
local apPerHit = 20;
|
|
local defPerHit = 20;
|
|
|
|
if berserk.GetTier() == 2 then
|
|
apPerHit = 24;
|
|
end
|
|
|
|
caster.SubtractMod(modifiersGlobal.Attack, apPerHit * berserk.GetExtra());
|
|
caster.Add(modifiersGlobal.Defense, defPerHit * berserk.GetExtra());
|
|
|
|
berserk.SetExtra(0);
|
|
skill.accuracyModifier = 50;
|
|
end;
|
|
|
|
return 0;
|
|
end;
|
|
|
|
--Increased crit rate
|
|
function onCombo(caster, target, skill)
|
|
--This is about 25% crit. Don't know if that's what it gave on retail but seems kind of reasonable
|
|
skill.critRateBonus = 200;
|
|
end;
|
|
|
|
function onSkillFinish(caster, target, skill, action, actionContainer)
|
|
--calculate ws 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; |