mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-04-20 11:47:48 +00:00
62 lines
2.3 KiB
Lua
62 lines
2.3 KiB
Lua
![]() |
-- 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;
|