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

Added formulas for base EXP gain and chain experience Added basic scripts for most player abilities and effects Added stat gains for some abilities Changed status flags Fixed bug with player death Fixed bug where auto attacks didnt work when not locked on Added traits
62 lines
No EOL
2.3 KiB
Lua
62 lines
No EOL
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; |