Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions scripts/actions/mobskills/cataclysm.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
-----------------------------------
-- Cataclysm
-- Family: Humanoid Staff Weaponskill
-- Description: Deals dark elemental damage. Damage varies with TP.
-----------------------------------
---@type TMobSkill
local mobskillObject = {}

mobskillObject.onMobSkillCheck = function(target, mob, skill)
return 0
end

mobskillObject.onMobWeaponSkill = function(mob, target, skill, action)
local params = {}

params.baseDamage = mob:getMainLvl() + 2
params.fTP = { 3.0, 3.0, 3.0 }
-- params.str_wSC = 0.3 -- TODO: Capture if mobskill weaponskills have wSC.
-- params.mnd_wSC = 0.3 -- TODO: Capture if mobskill weaponskills have wSC.
params.element = xi.element.DARK
params.attackType = xi.attackType.MAGICAL
params.damageType = xi.damageType.DARK
params.shadowBehavior = xi.mobskills.shadowBehavior.IGNORE_SHADOWS
params.dStatMultiplier = 1
params.dStatAttackerMod = xi.mod.INT
params.dStatDefenderMod = xi.mod.INT

local info = xi.mobskills.mobMagicalMove(mob, target, skill, action, params)

if xi.mobskills.processDamage(mob, target, skill, action, info) then
target:takeDamage(info.damage, mob, info.attackType, info.damageType)
end

return info.damage
end

return mobskillObject
37 changes: 37 additions & 0 deletions scripts/actions/mobskills/earth_crusher.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
-----------------------------------
-- Earth Crusher
-- Family: Humanoid Staff Weaponskill
-- Description: Deals area earth elemental damage. Damage varies with TP.
-----------------------------------
---@type TMobSkill
local mobskillObject = {}

mobskillObject.onMobSkillCheck = function(target, mob, skill)
return 0
end

mobskillObject.onMobWeaponSkill = function(mob, target, skill, action)
local params = {}

params.baseDamage = mob:getMainLvl() + 2
params.fTP = { 1.0, 2.3125, 3.625 }
-- params.str_wSC = 0.3 -- TODO: Capture if mobskill weaponskills have wSC.
-- params.int_wSC = 0.3 -- TODO: Capture if mobskill weaponskills have wSC.
params.element = xi.element.EARTH
params.attackType = xi.attackType.MAGICAL
params.damageType = xi.damageType.EARTH
params.shadowBehavior = xi.mobskills.shadowBehavior.IGNORE_SHADOWS
params.dStatMultiplier = 1
params.dStatAttackerMod = xi.mod.INT
params.dStatDefenderMod = xi.mod.INT

local info = xi.mobskills.mobMagicalMove(mob, target, skill, action, params)

if xi.mobskills.processDamage(mob, target, skill, action, info) then
target:takeDamage(info.damage, mob, info.attackType, info.damageType)
end

return info.damage
end

return mobskillObject
33 changes: 33 additions & 0 deletions scripts/actions/mobskills/full_swing.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
-----------------------------------
-- Full Swing
-- Family: Humanoid Staff Weaponskill
-- Description: Damage varies with TP.
-----------------------------------
---@type TMobSkill
local mobskillObject = {}

mobskillObject.onMobSkillCheck = function(target, mob, skill)
return 0
end

mobskillObject.onMobWeaponSkill = function(mob, target, skill, action)
local params = {}

params.baseDamage = mob:getWeaponDmg()
params.numHits = 1
params.fTP = { 1.0, 3.0, 5.0 }
-- params.str_wSC = 0.5 -- TODO: Capture if mobskill weaponskills have wSC.
params.attackType = xi.attackType.PHYSICAL
params.damageType = xi.damageType.BLUNT
params.shadowBehavior = xi.mobskills.shadowBehavior.NUMSHADOWS_1

local info = xi.mobskills.mobPhysicalMove(mob, target, skill, action, params)

if xi.mobskills.processDamage(mob, target, skill, action, info) then
target:takeDamage(info.damage, mob, info.attackType, info.damageType)
end

return info.damage
end

return mobskillObject
38 changes: 38 additions & 0 deletions scripts/actions/mobskills/garland_of_bliss.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
-----------------------------------
-- Garland of Bliss
-- Family: Humanoid Staff Weaponskill
-- Description: Lowers target's defense. Duration of effect varies with TP.
-----------------------------------
---@type TMobSkill
local mobskillObject = {}

mobskillObject.onMobSkillCheck = function(target, mob, skill)
return 0
end

mobskillObject.onMobWeaponSkill = function(mob, target, skill, action)
local params = {}

params.baseDamage = mob:getMainLvl() + 2
params.fTP = { 2.0, 2.0, 2.0 }
-- params.mnd_wSC = 0.4 -- TODO: Capture if mobskill weaponskills have wSC.
params.element = xi.element.LIGHT
params.attackType = xi.attackType.MAGICAL
params.damageType = xi.damageType.LIGHT
params.shadowBehavior = xi.mobskills.shadowBehavior.IGNORE_SHADOWS
params.dStatMultiplier = 2
params.dStatAttackerMod = xi.mod.MND
params.dStatDefenderMod = xi.mod.MND

local info = xi.mobskills.mobMagicalMove(mob, target, skill, action, params)

if xi.mobskills.processDamage(mob, target, skill, action, info) then
target:takeDamage(info.damage, mob, info.attackType, info.damageType)

xi.mobskills.mobStatusEffectMove(mob, target, xi.effect.DEFENSE_DOWN, 12.5, 0, math.floor(6 * skill:getTP() / 100))
end

return info.damage
end

return mobskillObject
7 changes: 4 additions & 3 deletions scripts/actions/mobskills/gate_of_tartarus.lua
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
-----------------------------------
-- Gate of Tartarus
-- Family: Humanoid Staff Weaponskill
-- Description: Lowers target's attack. Claustrum/Thyrus: Refresh
-- Description: Lowers target's attack.
-----------------------------------
---@type TMobSkill
local mobskillObject = {}
Expand All @@ -15,7 +15,8 @@ mobskillObject.onMobWeaponSkill = function(mob, target, skill, action)

params.baseDamage = mob:getWeaponDmg()
params.numHits = 1
params.fTP = { 2.5, 2.5, 2.5 } -- TODO: Capture fTPs
params.fTP = { 3.0, 3.0, 3.0 }
-- params.int_wSC = 0.8 -- TODO: Capture if mobskill weaponskills have wSC.
params.attackType = xi.attackType.PHYSICAL
params.damageType = xi.damageType.BLUNT
params.shadowBehavior = xi.mobskills.shadowBehavior.NUMSHADOWS_1
Expand All @@ -25,7 +26,7 @@ mobskillObject.onMobWeaponSkill = function(mob, target, skill, action)
if xi.mobskills.processDamage(mob, target, skill, action, info) then
target:takeDamage(info.damage, mob, info.attackType, info.damageType)

xi.mobskills.mobStatusEffectMove(mob, target, xi.effect.ATTACK_DOWN, 20, 0, 60)
xi.mobskills.mobStatusEffectMove(mob, target, xi.effect.ATTACK_DOWN, 18.75, 0, 120)
end

return info.damage
Expand Down
33 changes: 33 additions & 0 deletions scripts/actions/mobskills/heavy_swing.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
-----------------------------------
-- Heavy Swing
-- Family: Humanoid Staff Weaponskill
-- Description: Damage varies with TP.
-----------------------------------
---@type TMobSkill
local mobskillObject = {}

mobskillObject.onMobSkillCheck = function(target, mob, skill)
return 0
end

mobskillObject.onMobWeaponSkill = function(mob, target, skill, action)
local params = {}

params.baseDamage = mob:getWeaponDmg()
params.numHits = 1
params.fTP = { 1.0, 1.25, 2.25 }
-- params.str_wSC = 0.3 -- TODO: Capture if mobskill weaponskills have wSC.
params.attackType = xi.attackType.PHYSICAL
params.damageType = xi.damageType.BLUNT
params.shadowBehavior = xi.mobskills.shadowBehavior.NUMSHADOWS_1

local info = xi.mobskills.mobPhysicalMove(mob, target, skill, action, params)

if xi.mobskills.processDamage(mob, target, skill, action, info) then
target:takeDamage(info.damage, mob, info.attackType, info.damageType)
end

return info.damage
end

return mobskillObject
22 changes: 22 additions & 0 deletions scripts/actions/mobskills/myrkr.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
-----------------------------------
-- Myrkr
-- Family: Humanoid Staff Weaponskill
-- Description: Restores MP. Amount restored varies with TP.
-----------------------------------
---@type TMobSkill
local mobskillObject = {}

mobskillObject.onMobSkillCheck = function(target, mob, skill)
return 0
end

mobskillObject.onMobWeaponSkill = function(mob, target, skill, action)
local amount = math.floor(xi.mobskills.calculateDuration(skill:getTP(), 20, 60) * mob:getMaxMP() / 100)

mob:addMP(amount)
skill:setMsg(xi.msg.basic.SKILL_RECOVERS_MP)

return amount
end

return mobskillObject
38 changes: 38 additions & 0 deletions scripts/actions/mobskills/omniscience.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
-----------------------------------
-- Omniscience
-- Family: Humanoid Staff Weaponskill
-- Description: Lowers target's magic attack. Duration of effect varies with TP.
-----------------------------------
---@type TMobSkill
local mobskillObject = {}

mobskillObject.onMobSkillCheck = function(target, mob, skill)
return 0
end

mobskillObject.onMobWeaponSkill = function(mob, target, skill, action)
local params = {}

params.baseDamage = mob:getMainLvl() + 2
params.fTP = { 2.0, 2.0, 2.0 }
-- params.mnd_wSC = 0.3 -- TODO: Capture if mobskill weaponskills have wSC.
params.element = xi.element.DARK
params.attackType = xi.attackType.MAGICAL
params.damageType = xi.damageType.DARK
params.shadowBehavior = xi.mobskills.shadowBehavior.IGNORE_SHADOWS
params.dStatMultiplier = 2
params.dStatAttackerMod = xi.mod.MND
params.dStatDefenderMod = xi.mod.MND

local info = xi.mobskills.mobMagicalMove(mob, target, skill, action, params)

if xi.mobskills.processDamage(mob, target, skill, action, info) then
target:takeDamage(info.damage, mob, info.attackType, info.damageType)

xi.mobskills.mobStatusEffectMove(mob, target, xi.effect.MAGIC_ATK_DOWN, 10, 0, math.floor(6 * skill:getTP() / 100))
end

return info.damage
end

return mobskillObject
34 changes: 34 additions & 0 deletions scripts/actions/mobskills/oshala.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
-----------------------------------
-- Oshala
-- Family: Humanoid Staff Weaponskill
-- Description: Damage varies with TP.
-----------------------------------
---@type TMobSkill
local mobskillObject = {}

mobskillObject.onMobSkillCheck = function(target, mob, skill)
return 0
end

mobskillObject.onMobWeaponSkill = function(mob, target, skill, action)
local params = {}

params.baseDamage = mob:getWeaponDmg()
params.numHits = 1
params.fTP = { 3.95, 7.89, 11.84 }
-- params.mnd_wSC = 0.45 -- TODO: Capture if mobskill weaponskills have wSC.
-- params.int_wSC = 0.45 -- TODO: Capture if mobskill weaponskills have wSC.
params.attackType = xi.attackType.PHYSICAL
params.damageType = xi.damageType.BLUNT
params.shadowBehavior = xi.mobskills.shadowBehavior.NUMSHADOWS_1

local info = xi.mobskills.mobPhysicalMove(mob, target, skill, action, params)

if xi.mobskills.processDamage(mob, target, skill, action, info) then
target:takeDamage(info.damage, mob, info.attackType, info.damageType)
end

return info.damage
end

return mobskillObject
35 changes: 35 additions & 0 deletions scripts/actions/mobskills/retribution.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
-----------------------------------
-- Retribution
-- Family: Humanoid Staff Weaponskill
-- Description: Delivers a single-hit attack. Damage varies with TP.
-----------------------------------
---@type TMobSkill
local mobskillObject = {}

mobskillObject.onMobSkillCheck = function(target, mob, skill)
return 0
end

mobskillObject.onMobWeaponSkill = function(mob, target, skill, action)
local params = {}

params.baseDamage = mob:getWeaponDmg()
params.numHits = 1
params.fTP = { 2.0, 2.5, 3.0 }
params.attackMultiplier = { 1.5, 1.5, 1.5 }
-- params.str_wSC = 0.3 -- TODO: Capture if mobskill weaponskills have wSC.
-- params.mnd_wSC = 0.5 -- TODO: Capture if mobskill weaponskills have wSC.
params.attackType = xi.attackType.PHYSICAL
params.damageType = xi.damageType.BLUNT
params.shadowBehavior = xi.mobskills.shadowBehavior.NUMSHADOWS_1

local info = xi.mobskills.mobPhysicalMove(mob, target, skill, action, params)

if xi.mobskills.processDamage(mob, target, skill, action, info) then
target:takeDamage(info.damage, mob, info.attackType, info.damageType)
end

return info.damage
end

return mobskillObject
37 changes: 37 additions & 0 deletions scripts/actions/mobskills/rock_crusher.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
-----------------------------------
-- Rock Crusher
-- Family: Humanoid Staff Weaponskill
-- Description: Deals earth elemental damage. Damage varies with TP.
-----------------------------------
---@type TMobSkill
local mobskillObject = {}

mobskillObject.onMobSkillCheck = function(target, mob, skill)
return 0
end

mobskillObject.onMobWeaponSkill = function(mob, target, skill, action)
local params = {}

params.baseDamage = mob:getMainLvl() + 2
params.fTP = { 1.0, 2.0, 2.5 }
-- params.str_wSC = 0.2 -- TODO: Capture if mobskill weaponskills have wSC.
-- params.int_wSC = 0.2 -- TODO: Capture if mobskill weaponskills have wSC.
params.element = xi.element.EARTH
params.attackType = xi.attackType.MAGICAL
params.damageType = xi.damageType.EARTH
params.shadowBehavior = xi.mobskills.shadowBehavior.IGNORE_SHADOWS
params.dStatMultiplier = 1
params.dStatAttackerMod = xi.mod.INT
params.dStatDefenderMod = xi.mod.INT

local info = xi.mobskills.mobMagicalMove(mob, target, skill, action, params)

if xi.mobskills.processDamage(mob, target, skill, action, info) then
target:takeDamage(info.damage, mob, info.attackType, info.damageType)
end

return info.damage
end

return mobskillObject
Loading
Loading