1
Fork 0
mirror of https://bitbucket.org/Ioncannon/project-meteor-server.git synced 2025-04-20 11:47:48 +00:00
project-meteor-server/Data/scripts/weaponskill.lua

62 lines
2.3 KiB
Lua
Raw Normal View History

-- 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 CalculateDamage(caster, target, skill, action)
--http://forum.square-enix.com/ffxiv/threads/36412-STR-PIE-ATK-Testing/page2
--DRG numbers
--Against Level 52 Halberdiers:
--0.8 damage/STR. Caps at 350
--0.67=0.69 damage/PIE. Hard cap at 310
--0.35-0.37 damage/ATK for both AA and WS.
--^ Old?
--http://prestigexiv.guildwork.com/forum/threads/4fecdc94205cb248b5000526-dragoon-and-other-dd-dpsbase-damage-study?page=1#4fecdc94205cb248b5000525
--10/09/2012 http://forum.square-enix.com/ffxiv/threads/55291-DPS-Testing/page4
-- 1 point prim: 0.8 damage
-- ATK: .1% damage? .38 damage?
--Possible formula for melee?:
--local strCap = CalculateCapOfWeapon(caster.getweapon)<- not sure how this is calculated yet, just an example
--local secondaryCap = CalculateSecondaryCapOfWeapon(caster.getweapon)
--local cappedStr = math.min(caster.GetMod(modifiersGlobal.Strength), strCap);
--local cappedSec = math.min(caster.GetMod(caster.secondaryStat), secCap);
--local damageBase = skill.basePotency + (0.85 * cappedStr) + (0.65 * cappedSec);
--The maximum deviation for weaponskills is ~8%.
--local dev = 0.96 + (math.random() * 8);
--damageBase = math.Clamp(damageBase * dev, 1, 9999);
--return damageBase;
return 100;
end
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;