Combat changes and bug fixes

Added the combo and proc systems
Added scripts for most weaponskill and spells as well as some abilities and status effects
Added support for multihit attacks
Added AbilityState for abilities
Added hiteffects that change based on an attack's parameters
Added positionals

Changed how targeting works for battlecommands

Fixed bug that occurred when moving or swapping hotbar commands
Fixed bug that occurred when losing status effects
This commit is contained in:
yogurt 2018-02-15 13:20:46 -06:00
parent 837c7a9223
commit b8d6a943aa
175 changed files with 4361 additions and 1213 deletions

View file

@ -0,0 +1,19 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
end;
function onSkillStart(caster, target, skill)
return 0;
end;
--Chance to inflict slow
function onCombo(caster, target, skill)
skill.statusChance = 0.50;
end;
function onSkillFinish(caster, target, skill, action)
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -0,0 +1,20 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
end;
function onSkillStart(caster, target, skill)
return 0;
end;
--Inflicts additional damage when bleed ends
--Note for later, going to set bleed tier to 2, when bleed get scripted, check if tier is 2 and add additional damage at the end
function onCombo(caster, target, skill)
skill.statusTier = 2;
end;
function onSkillFinish(caster, target, skill, action)
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -0,0 +1,19 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
end;
function onSkillStart(caster, target, skill)
return 0;
end;
--Increased damage
function onPositional(caster, target, skill)
skill.basePotency = skill.basePotency * 1.5;
end;
function onSkillFinish(caster, target, skill, action)
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -1,4 +1,5 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
@ -8,19 +9,11 @@ function onSkillStart(caster, target, skill)
return 0;
end;
--Increased crit hit rating
function onCombo(caster, target, skill)
skill.critRateModifier = 1.5;
end;
function onSkillFinish(caster, target, skill, action)
local damage = math.random(100, 200);
-- todo: populate a global script with statuses and modifiers
action.worldMasterTextId = 0x765D;
-- todo: populate a global script with statuses and modifiers
-- magic.HandleAttackMagic(caster, target, spell, action)
-- action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
--action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
if target.hateContainer then
target.hateContainer.UpdateHate(caster, damage);
end;
return damage;
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -0,0 +1,25 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
end;
function onSkillStart(caster, target, skill)
return 0;
end;
--Chance to inflict blind on flank
function onPositional(caster, target, skill)
skill.statusChance = 0.50;
skill.statusDuration = 10;
end;
function onCombo(caster, target, skill)
skill.basePotency = skill.basePotency * 1.5;
end;
function onSkillFinish(caster, target, skill, action)
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -1,4 +1,5 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
@ -9,18 +10,5 @@ function onSkillStart(caster, target, skill)
end;
function onSkillFinish(caster, target, skill, action)
local damage = math.random(100, 200);
-- todo: populate a global script with statuses and modifiers
action.worldMasterTextId = 0x765D;
-- todo: populate a global script with statuses and modifiers
-- magic.HandleAttackMagic(caster, target, spell, action)
-- action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
action.effectId = bit32.bxor(0x8000000, skill.effectAnimation, 15636);
if target.hateContainer then
target.hateContainer.UpdateHate(caster, damage);
end;
return damage;
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -0,0 +1,23 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
end;
function onSkillStart(caster, target, skill)
return 0;
end;
--Dispel
--Does dispel have a text id?
function onCombo(caster, target, skill)
local effects = target.statusEffects.GetStatusEffectsByFlag(16); --lose on dispel
if effects != nil then
target.statusEffects.RemoveStatusEffect(effects[0]);
end;
end;
function onSkillFinish(caster, target, skill, action)
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -0,0 +1,19 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
end;
function onSkillStart(caster, target, skill)
return 0;
end;
--Increased paralysis duration
function onCombo(caster, target, skill)
skill.statusDuration = skill.statusDuration * 2;
end;
function onSkillFinish(caster, target, skill, action)
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -1,4 +1,5 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
@ -8,19 +9,11 @@ function onSkillStart(caster, target, skill)
return 0;
end;
--Increased accuracy
function onCombo(caster, target, skill)
skill.accuracyModifier = 1.25;
end;
function onSkillFinish(caster, target, skill, action)
local damage = math.random(100, 200);
-- todo: populate a global script with statuses and modifiers
action.worldMasterTextId = 0x765D;
-- todo: populate a global script with statuses and modifiers
-- magic.HandleAttackMagic(caster, target, spell, action)
-- action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
--action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
if target.hateContainer then
target.hateContainer.UpdateHate(caster, damage);
end;
return damage;
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -0,0 +1,19 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
end;
function onSkillStart(caster, target, skill)
return 0;
end;
--Chance to render target unable to use weaponskills (pacification)
function onPositional(caster, target, skill)
skill.statusChance = 0.50;
end;
function onSkillFinish(caster, target, skill, action)
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -1,4 +1,5 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
@ -9,18 +10,5 @@ function onSkillStart(caster, target, skill)
end;
function onSkillFinish(caster, target, skill, action)
local damage = math.random(100, 200);
-- todo: populate a global script with statuses and modifiers
action.worldMasterTextId = 0x765D;
-- todo: populate a global script with statuses and modifiers
-- magic.HandleAttackMagic(caster, target, spell, action)
-- action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
--action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
if target.hateContainer then
target.hateContainer.UpdateHate(caster, damage);
end;
return damage;
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -1,27 +1,18 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, spell)
function onSkillPrepare(caster, target, skill)
return 0;
end;
function onSkillStart(caster, target, spell)
function onSkillStart(caster, target, skill)
return 0;
end;
function onSkillFinish(caster, target, spell, action)
local damage = math.random(10, 100);
-- todo: populate a global script with statuses and modifiers
action.worldMasterTextId = 0x765D;
-- todo: populate a global script with statuses and modifiers
-- magic.HandleAttackSkill(caster, target, spell, action)
-- action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
if target.hateContainer then
target.hateContainer.UpdateHate(caster, damage);
end;
return damage;
function onPositional(caster, target, skill)
skill.basePotency = skill.basePotency * 1.25;
end;
function onSkillFinish(caster, target, skill, action)
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -1,4 +1,5 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
@ -9,18 +10,5 @@ function onSkillStart(caster, target, skill)
end;
function onSkillFinish(caster, target, skill, action)
local damage = math.random(100, 200);
-- todo: populate a global script with statuses and modifiers
action.worldMasterTextId = 0x765D;
-- todo: populate a global script with statuses and modifiers
-- magic.HandleAttackMagic(caster, target, spell, action)
-- action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
--action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
if target.hateContainer then
target.hateContainer.UpdateHate(caster, damage);
end;
return damage;
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -1,4 +1,5 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
@ -8,19 +9,10 @@ function onSkillStart(caster, target, skill)
return 0;
end;
function onCombo(caster, target, skill)
skill.enmityModifier = skill.enmityModifier * 2
end;
function onSkillFinish(caster, target, skill, action)
local damage = math.random(100, 200);
-- todo: populate a global script with statuses and modifiers
action.worldMasterTextId = 0x765D;
-- todo: populate a global script with statuses and modifiers
-- magic.HandleAttackMagic(caster, target, spell, action)
-- action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
if target.hateContainer then
target.hateContainer.UpdateHate(caster, damage);
end;
return damage;
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -0,0 +1,14 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, spell)
return 0;
end;
function onSkillStart(caster, target, spell)
return 0;
end;
function onSkillFinish(caster, target, skill, action)
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -1,4 +1,5 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
@ -8,19 +9,7 @@ function onSkillStart(caster, target, skill)
return 0;
end;
function onSkillFinish(caster, target, skill, action)
local damage = math.random(100, 200);
-- todo: populate a global script with statuses and modifiers
action.worldMasterTextId = 0x765D;
-- todo: populate a global script with statuses and modifiers
-- magic.HandleAttackMagic(caster, target, spell, action)
-- action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
--action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
if target.hateContainer then
target.hateContainer.UpdateHate(caster, damage);
end;
return damage;
function onSkillFinish(caster, target, skill, action)
caster.AddTP(1000);
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -0,0 +1,19 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
end;
function onSkillStart(caster, target, skill)
return 0;
end;
--Chance to inflict blind
function onCombo(caster, target, skill)
skill.statusChance = 0.90;
end;
function onSkillFinish(caster, target, skill, action)
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -0,0 +1,20 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
end;
function onSkillStart(caster, target, skill)
return 0;
end;
--Increased crit rate
function onCombo(caster, target, skill)
--Get Berserk statuseffect
skill.critRateModifier = 1.5;
end;
function onSkillFinish(caster, target, skill, action)
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -0,0 +1,24 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
end;
function onSkillStart(caster, target, skill)
return 0;
end;
--Chance to increase defense when executed from behind the target
function onPositional(caster, target, skill)
skill.statusChance = 0.90;
end;
--Increases bleed damage
function onCombo(caster, target, skill)
skill.statusTier = 2;
end;
function onSkillFinish(caster, target, skill, action)
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -0,0 +1,14 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
end;
function onSkillStart(caster, target, skill)
return 0;
end;
function onSkillFinish(caster, target, skill, action)
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -0,0 +1,14 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
end;
function onSkillStart(caster, target, skill)
return 0;
end;
function onSkillFinish(caster, target, skill, action)
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -0,0 +1,20 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
end;
function onSkillStart(caster, target, skill)
return 0;
end;
--Increased accuracy
function onCombo(caster, target, skill)
skill.accuracyModifier = 1.5;
end;
function onSkillFinish(caster, target, skill, action)
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -1,4 +1,5 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
@ -8,20 +9,11 @@ function onSkillStart(caster, target, skill)
return 0;
end;
function onSkillFinish(caster, target, skill, action)
local damage = math.random(100, 200);
-- todo: populate a global script with statuses and modifiers
action.worldMasterTextId = 0x765D;
-- todo: populate a global script with statuses and modifiers
-- magic.HandleAttackMagic(caster, target, spell, action)
-- action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
--Increased stun duration
function onCombo(caster, target, skill)
skill.statusDuration = 10;
end;
action.effectId = bit32.bxor(0x8000000, skill.effectAnimation, 15636);
if target.hateContainer then
target.hateContainer.UpdateHate(caster, damage);
end;
return damage;
function onSkillFinish(caster, target, skill, action)
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -0,0 +1,24 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
end;
function onSkillStart(caster, target, skill)
return 0;
end;
--Increased accuracy
function onCombo(caster, target, skill)
skill.accuracyModifier = 1;
end;
--Increased damage
function onCombo(caster, target, skill)
skill.potency = skill.potency * 1.5;
end;
function onSkillFinish(caster, target, skill, action)
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -1,4 +1,5 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
@ -8,19 +9,16 @@ function onSkillStart(caster, target, skill)
return 0;
end;
--Increased damage
function onPositional(caster, target, skill)
skill.potency = skill.potency * 1.25
end;
--Increased crit hit rating
function onCombo(caster, target, skill)
skill.critRateModifier = 1.25;
end;
function onSkillFinish(caster, target, skill, action)
local damage = math.random(100, 200);
-- todo: populate a global script with statuses and modifiers
action.worldMasterTextId = 0x765D;
-- todo: populate a global script with statuses and modifiers
-- magic.HandleAttackMagic(caster, target, spell, action)
-- action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
--action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
if target.hateContainer then
target.hateContainer.UpdateHate(caster, damage);
end;
return damage;
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -0,0 +1,19 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
end;
function onSkillStart(caster, target, skill)
return 0;
end;
--Increased Heavy duration, becomes 60 seconds
function onCombo(caster, target, skill)
skill.statusDuration = 60;
end;
function onSkillFinish(caster, target, skill, action)
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -1,4 +1,5 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
@ -8,19 +9,11 @@ function onSkillStart(caster, target, skill)
return 0;
end;
--Chance to inflict stun
function onCombo(caster, target, skill)
skill.statusChance = 0.50;
end;
function onSkillFinish(caster, target, skill, action)
local damage = math.random(100, 200);
-- todo: populate a global script with statuses and modifiers
action.worldMasterTextId = 0x765D;
-- todo: populate a global script with statuses and modifiers
-- magic.HandleAttackMagic(caster, target, spell, action)
-- action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
--action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
if target.hateContainer then
target.hateContainer.UpdateHate(caster, damage);
end;
return damage;
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -0,0 +1,18 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
end;
function onSkillStart(caster, target, skill)
return 0;
end;
function onCombo(caster, target, skill)
skill.accuracyModifier = 1.5;
end;
function onSkillFinish(caster, target, skill, action)
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -0,0 +1,20 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
end;
function onSkillStart(caster, target, skill)
return 0;
end;
--Chance to inflict heavy when executed from behind
function onPositional(caster, target, skill)
skill.statusChance = 0.50;
skill.statusDuration = 5;
end;
function onSkillFinish(caster, target, skill, action)
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -0,0 +1,14 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
end;
function onSkillStart(caster, target, skill)
return 0;
end;
function onSkillFinish(caster, target, skill, action)
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -0,0 +1,19 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
end;
function onSkillStart(caster, target, skill)
return 0;
end;
function onPositional(caster, target, skill)
skill.statusChance = 0.50;
skill.statusDuration = 5;
end;
function onSkillFinish(caster, target, skill, action)
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -1,4 +1,5 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
@ -8,19 +9,10 @@ function onSkillStart(caster, target, skill)
return 0;
end;
function onPositional(caster, target, skill)
skill.basePotency = skill.basePotency * 1.25;
end;
function onSkillFinish(caster, target, skill, action)
local damage = math.random(100, 200);
-- todo: populate a global script with statuses and modifiers
action.worldMasterTextId = 0x765D;
-- todo: populate a global script with statuses and modifiers
-- magic.HandleAttackMagic(caster, target, spell, action)
-- action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
--action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
if target.hateContainer then
target.hateContainer.UpdateHate(caster, damage);
end;
return damage;
return weaponskill.onSkillFinish(caster, target, skill, action)
end;

View file

@ -0,0 +1,22 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
end;
function onSkillStart(caster, target, skill)
return 0;
end;
--fivefold attack/conversion
function onCombo(caster, target, skill)
skill.numHits = 5;
skill.aoeType = 0;
skill.aoeTarget = 2;
--animation change?
end;
function onSkillFinish(caster, target, skill, action)
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -0,0 +1,19 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
end;
function onSkillStart(caster, target, skill)
return 0;
end;
--Accuracy increase
function onCombo(caster, target, skill)
skill.accuracyModifier = 1;
end;
function onSkillFinish(caster, target, skill, action)
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -0,0 +1,19 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
end;
function onSkillStart(caster, target, skill)
return 0;
end;
--Chance to inflict stun
function onCombo(caster, target, skill)
skill.statusChance = 0.90
end;
function onSkillFinish(caster, target, skill, action)
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -0,0 +1,19 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
end;
function onSkillStart(caster, target, skill)
return 0;
end;
--Increased critical hit rate
function onCombo(caster, target, skill)
skill.critRateModifier = 1.5;
end;
function onSkillFinish(caster, target, skill, action)
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -0,0 +1,19 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
end;
function onSkillStart(caster, target, skill)
return 0;
end;
--Chance to decrease defense when executed from behind the target
function onPositional(caster, target, skill)
skill.statusChance = 0.75;
end;
function onSkillFinish(caster, target, skill, action)
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -0,0 +1,19 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
end;
function onSkillStart(caster, target, skill)
return 0;
end;
function onCombo(caster, target, skill)
skill.basePotency = skill.basePotency * 1.25;
end;
function onSkillFinish(caster, target, skill, action)
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -0,0 +1,20 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
end;
function onSkillStart(caster, target, skill)
return 0;
end;
--Increased Bind duration
function onCombo(caster, target, skill)
skill.statusDuration = 10;
end;
function onSkillFinish(caster, target, skill, action)
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -0,0 +1,15 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
end;
function onSkillStart(caster, target, skill)
return 0;
end;
function onSkillFinish(caster, target, skill, action)
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -0,0 +1,18 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
end;
function onSkillStart(caster, target, skill)
return 0;
end;
function onSkillFinish(caster, target, skill, action)
--chance to influct stun only when target has no enmity towards you
if !(target.hateContainer.HasHateForTarget(caster)) then
skill.statusChance = 0.50;
end
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -1,4 +1,5 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
@ -8,19 +9,11 @@ function onSkillStart(caster, target, skill)
return 0;
end;
--Increased accuracy
function onCombo(caster, target, skill)
skill.basePotency = skill.basePotency * 1.5;
end;
function onSkillFinish(caster, target, skill, action)
local damage = math.random(0, 0);
-- todo: populate a global script with statuses and modifiers
action.worldMasterTextId = 0x765D;
-- todo: populate a global script with statuses and modifiers
-- magic.HandleAttackMagic(caster, target, spell, action)
-- action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
--action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
if target.hateContainer then
target.hateContainer.UpdateHate(caster, damage);
end;
return damage;
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -9,19 +9,11 @@ function onSkillStart(caster, target, spell)
return 0;
end;
function onSkillFinish(caster, target, spell, action)
local damage = math.random(10, 100);
-- todo: populate a global script with statuses and modifiers
action.worldMasterTextId = 0x765D;
-- todo: populate a global script with statuses and modifiers
-- magic.HandleAttackSkill(caster, target, spell, action)
-- action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
if target.hateContainer then
target.hateContainer.UpdateHate(caster, damage);
end;
return damage;
--Increased enmity
function onCombo(caster, target, skill)
skill.enmityModifier = 1.5;
end;
function onSkillFinish(caster, target, skill, action)
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -0,0 +1,23 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
end;
function onSkillStart(caster, target, skill)
return 0;
end;
--Increased enmity
function onCombo(caster, target, skill)
skill.enmityModifier = 1.5;
end;
function onSkillFinish(caster, target, skill, action)
local damage = math.random(10, 100);
--Increased damage with higher hp
local potencyModifier = caster:GetHPP() + 25;
skill.basePotency = skill.basePotency * (potencyModifier / 100);
return weaponskill.onSkillFinish(caster, target, skill, action)
end;

View file

@ -0,0 +1,20 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
end;
function onSkillStart(caster, target, skill)
return 0;
end;
--Increased critical hit rate
function onCombo(caster, target, skill)
skill.critRateModifier = 1.5;
end;
function onSkillFinish(caster, target, skill, action)
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -1,4 +1,5 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
@ -8,19 +9,11 @@ function onSkillStart(caster, target, skill)
return 0;
end;
--Increased accuracy from in front
function onPositional(caster, target, skill)
skill.accuracyModifier = 1.25;
end;
function onSkillFinish(caster, target, skill, action)
local damage = math.random(100, 200);
-- todo: populate a global script with statuses and modifiers
action.worldMasterTextId = 0x765D;
-- todo: populate a global script with statuses and modifiers
-- magic.HandleAttackMagic(caster, target, spell, action)
-- action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
action.effectId = bit32.bxor(0x8000000, skill.effectAnimation, 15636);
if target.hateContainer then
target.hateContainer.UpdateHate(caster, damage);
end;
return damage;
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -1,4 +1,5 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
@ -8,19 +9,11 @@ function onSkillStart(caster, target, skill)
return 0;
end;
--Increased crit rating from behind
function onPositional(caster, target, skill)
skill.critRateModifier = 1.25;
end;
function onSkillFinish(caster, target, skill, action)
local damage = math.random(100, 200);
-- todo: populate a global script with statuses and modifiers
action.worldMasterTextId = 0x765D;
-- todo: populate a global script with statuses and modifiers
-- magic.HandleAttackMagic(caster, target, spell, action)
-- action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
--action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
if target.hateContainer then
target.hateContainer.UpdateHate(caster, damage);
end;
return damage;
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -0,0 +1,28 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
end;
function onSkillStart(caster, target, skill)
return 0;
end;
--Reset Berserk effect, increase damage?
function onCombo(caster, target, skill)
--Get Berserk statuseffect
local berserk = caster.statusEffects.GetStatusEffectById(223160);
--if it isn't nil
if berserk != nil then
berserk.SetTier(1);
skill.basePotency = skill.basePotency * 1.5;
end;
end;
function onSkillFinish(caster, target, skill, action)
return weaponskill.onSkillFinish(caster, target, skill, action);
end;

View file

@ -0,0 +1,19 @@
require("global");
require("weaponskill");
function onSkillPrepare(caster, target, skill)
return 0;
end;
function onSkillStart(caster, target, skill)
return 0;
end;
--Increased Accuracy
function onCombo(caster, target, skill)
skill.accuracyModifier = 1.25;
end;
function onSkillFinish(caster, target, skill, action)
return weaponskill.onSkillFinish(caster, target, skill, action);
end;