mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-06-08 21:44:35 +02:00
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:
parent
837c7a9223
commit
b8d6a943aa
175 changed files with 4361 additions and 1213 deletions
60
data/scripts/ability.lua
Normal file
60
data/scripts/ability.lua
Normal file
|
@ -0,0 +1,60 @@
|
|||
-- todo: add enums for status effects in global.lua
|
||||
require("global")
|
||||
require("battleutils")
|
||||
|
||||
--[[
|
||||
statId - see BattleTemp.cs
|
||||
modifier - Modifier.Intelligence, Modifier.Mind (see Modifier.cs)
|
||||
multiplier -
|
||||
]]
|
||||
function HandleHealingSkill(caster, target, skill, action, statId, modifierId, multiplier, baseAmount)
|
||||
potency = potency or 1.0;
|
||||
healAmount = baseAmount;
|
||||
|
||||
-- todo: shit based on mnd
|
||||
local mind = caster.GetMod(Modifier.Mind);
|
||||
end;
|
||||
|
||||
function HandleAttackSkill(caster, target, skill, action, statId, modifierId, multiplier, baseAmount)
|
||||
-- todo: actually handle this
|
||||
damage = baseAmount or math.random(1,10) * 10;
|
||||
|
||||
return damage;
|
||||
end;
|
||||
|
||||
function HandleStoneskin(caster, target, skill, action, statId, modifierId, damage)
|
||||
--[[
|
||||
if target.statusEffects.HasStatusEffect(StatusEffect.Stoneskin) then
|
||||
-- todo: damage reduction
|
||||
return true;
|
||||
end;
|
||||
]]
|
||||
return false;
|
||||
end;
|
||||
|
||||
--For abilities that inflict statuses, like aegis boon or taunt
|
||||
function onStatusAbilityFinish(caster, target, skill, action)
|
||||
action.battleActionType = BattleActionType.Status;
|
||||
action.CalcHitType(caster, target, skill);
|
||||
action.TryStatus(caster, target, skill, false);
|
||||
|
||||
return action.amount;
|
||||
end;
|
||||
|
||||
function onAttackAbilityFinish(caster, target, skill, action)
|
||||
action.battleActionType = BattleActionType.AttackPhysical;
|
||||
local damage = math.random(50, 150);
|
||||
action.amount = damage;
|
||||
action.CalcHitType(caster, target, skill);
|
||||
|
||||
return action.amount;
|
||||
end;
|
||||
|
||||
function onHealAbilityFinish(caster, target, skill, action)
|
||||
action.battleActionType = BattleActionType.Heal;
|
||||
local amount = math.random(150, 250);
|
||||
action.amount = amount;
|
||||
action.CalcHitType(caster, target, skill);
|
||||
action.TryStatus(caster, target, skill, true);
|
||||
return action.amount;
|
||||
end;
|
Loading…
Add table
Add a link
Reference in a new issue