From c6f4a96dae57ef60e9d23521adbbc18aee309477 Mon Sep 17 00:00:00 2001 From: Skold177 <113406182+Skold177@users.noreply.github.com> Date: Wed, 28 Jan 2026 22:39:46 -0500 Subject: [PATCH] [lua] Mandragora Skill Audit Updates Mandragora TP Moves with information from Jimmys sheet --- scripts/actions/mobskills/dream_flower.lua | 2 +- scripts/actions/mobskills/head_butt.lua | 12 +++++------ scripts/actions/mobskills/leaf_dagger.lua | 22 ++++++++++---------- scripts/actions/mobskills/photosynthesis.lua | 2 +- scripts/actions/mobskills/scream.lua | 2 +- scripts/actions/mobskills/wild_oats.lua | 12 +++++++++-- sql/mob_skills.sql | 12 +++++------ 7 files changed, 35 insertions(+), 29 deletions(-) diff --git a/scripts/actions/mobskills/dream_flower.lua b/scripts/actions/mobskills/dream_flower.lua index a926f33369c..d32323a83c2 100644 --- a/scripts/actions/mobskills/dream_flower.lua +++ b/scripts/actions/mobskills/dream_flower.lua @@ -10,7 +10,7 @@ mobskillObject.onMobSkillCheck = function(target, mob, skill) end mobskillObject.onMobWeaponSkill = function(target, mob, skill) - skill:setMsg(xi.mobskills.mobStatusEffectMove(mob, target, xi.effect.SLEEP_I, 1, 0, math.random(20, 30))) + skill:setMsg(xi.mobskills.mobStatusEffectMove(mob, target, xi.effect.SLEEP_I, 1, 0, math.random(15, 60))) return xi.effect.SLEEP_I end diff --git a/scripts/actions/mobskills/head_butt.lua b/scripts/actions/mobskills/head_butt.lua index d1768fc8a46..7842d6b5783 100644 --- a/scripts/actions/mobskills/head_butt.lua +++ b/scripts/actions/mobskills/head_butt.lua @@ -1,6 +1,6 @@ ----------------------------------- -- Head Butt --- Description: Damage varies with TP. Additional effect: "Stun." +-- Description: Deals blunt damage to a single target. -- Type: Physical (Blunt) ----------------------------------- ---@type TMobSkill @@ -12,12 +12,10 @@ end mobskillObject.onMobWeaponSkill = function(target, mob, skill) local numhits = 1 - local accmod = 1 - local ftp = 1.5 - local info = xi.mobskills.mobPhysicalMove(mob, target, skill, numhits, accmod, ftp, xi.mobskills.physicalTpBonus.NO_EFFECT, 0, 0, 0) - local dmg = xi.mobskills.mobFinalAdjustments(info.dmg, mob, skill, target, xi.attackType.PHYSICAL, xi.damageType.BLUNT, info.hitslanded) - - xi.mobskills.mobPhysicalStatusEffectMove(mob, target, skill, xi.effect.STUN, 1, 0, 4) + local accmod = 1 + local ftp = 2 + local info = xi.mobskills.mobPhysicalMove(mob, target, skill, numhits, accmod, ftp, xi.mobskills.physicalTpBonus.NO_EFFECT, 0, 0, 0) + local dmg = xi.mobskills.mobFinalAdjustments(info.dmg, mob, skill, target, xi.attackType.PHYSICAL, xi.damageType.BLUNT, info.hitslanded) target:takeDamage(dmg, mob, xi.attackType.PHYSICAL, xi.damageType.BLUNT) return dmg diff --git a/scripts/actions/mobskills/leaf_dagger.lua b/scripts/actions/mobskills/leaf_dagger.lua index c976bead4ee..deb68b3d4f6 100644 --- a/scripts/actions/mobskills/leaf_dagger.lua +++ b/scripts/actions/mobskills/leaf_dagger.lua @@ -2,10 +2,9 @@ -- Leaf Dagger -- -- Description: Deals piercing damage to a single target. Additional effect: Poison --- Type: Physical --- Utsusemi/Blink absorb: 2 shadows --- Range: Melee? +-- Type: Physical (Ranged) -- Notes: On higher level Madragoras (Korrigans for example) the poision is 5hp/tick for about 5-6 ticks, damaging a total of 25-30 HP. +-- TODO: Should be subject to ranged penalties. ----------------------------------- ---@type TMobSkill local mobskillObject = {} @@ -15,16 +14,17 @@ mobskillObject.onMobSkillCheck = function(target, mob, skill) end mobskillObject.onMobWeaponSkill = function(target, mob, skill) - local numhits = 2 - local accmod = 1 - local ftp = 1.4 - local info = xi.mobskills.mobPhysicalMove(mob, target, skill, numhits, accmod, ftp, xi.mobskills.physicalTpBonus.NO_EFFECT) - local dmg = xi.mobskills.mobFinalAdjustments(info.dmg, mob, skill, target, xi.attackType.PHYSICAL, xi.damageType.PIERCING, info.hitslanded) - local power = math.max(1, mob:getMainLvl() / 10) - - xi.mobskills.mobPhysicalStatusEffectMove(mob, target, skill, xi.effect.POISON, power, 3, 18) + local numhits = 1 + local accmod = 1 + local ftp = 2 + local info = xi.mobskills.mobPhysicalMove(mob, target, skill, numhits, accmod, ftp, xi.mobskills.physicalTpBonus.NO_EFFECT) + local dmg = xi.mobskills.mobFinalAdjustments(info.dmg, mob, skill, target, xi.attackType.PHYSICAL, xi.damageType.PIERCING, info.hitslanded) + local power = math.max(1, mob:getMainLvl() / 10) target:takeDamage(dmg, mob, xi.attackType.PHYSICAL, xi.damageType.PIERCING) + + xi.mobskills.mobPhysicalStatusEffectMove(mob, target, skill, xi.effect.POISON, power, 3, 90) + return dmg end diff --git a/scripts/actions/mobskills/photosynthesis.lua b/scripts/actions/mobskills/photosynthesis.lua index b013feb6b1c..597944b7350 100644 --- a/scripts/actions/mobskills/photosynthesis.lua +++ b/scripts/actions/mobskills/photosynthesis.lua @@ -26,7 +26,7 @@ end mobskillObject.onMobWeaponSkill = function(target, mob, skill) local power = math.floor(mob:getMainLvl() / 10) - skill:setMsg(xi.mobskills.mobBuffMove(mob, xi.effect.REGEN, power, 0, 180)) + skill:setMsg(xi.mobskills.mobBuffMove(mob, xi.effect.REGEN, power, 0, 120)) return xi.effect.REGEN end diff --git a/scripts/actions/mobskills/scream.lua b/scripts/actions/mobskills/scream.lua index d8e98c09a72..b6df7362ee8 100644 --- a/scripts/actions/mobskills/scream.lua +++ b/scripts/actions/mobskills/scream.lua @@ -10,7 +10,7 @@ mobskillObject.onMobSkillCheck = function(target, mob, skill) end mobskillObject.onMobWeaponSkill = function(target, mob, skill) - skill:setMsg(xi.mobskills.mobStatusEffectMove(mob, target, xi.effect.MND_DOWN, 10, 3, 120)) + skill:setMsg(xi.mobskills.mobStatusEffectMove(mob, target, xi.effect.MND_DOWN, 10, 3, 180)) return xi.effect.MND_DOWN end diff --git a/scripts/actions/mobskills/wild_oats.lua b/scripts/actions/mobskills/wild_oats.lua index ab2d395101f..37cb66a7c68 100644 --- a/scripts/actions/mobskills/wild_oats.lua +++ b/scripts/actions/mobskills/wild_oats.lua @@ -11,9 +11,17 @@ mobskillObject.onMobSkillCheck = function(target, mob, skill) end mobskillObject.onMobWeaponSkill = function(target, mob, skill) - skill:setMsg(xi.mobskills.mobStatusEffectMove(mob, target, xi.effect.VIT_DOWN, 10, 3, 120)) + local numhits = 1 + local accmod = 1 + local ftp = 1 + local info = xi.mobskills.mobPhysicalMove(mob, target, skill, numhits, accmod, ftp, xi.mobskills.physicalTpBonus.NO_EFFECT) + local dmg = xi.mobskills.mobFinalAdjustments(info.dmg, mob, skill, target, xi.attackType.PHYSICAL, xi.damageType.PIERCING, info.hitslanded) - return xi.effect.VIT_DOWN + target:takeDamage(dmg, mob, xi.attackType.PHYSICAL, xi.damageType.PIERCING) + + xi.mobskills.mobPhysicalStatusEffectMove(mob, target, skill, xi.effect.VIT_DOWN, 10, 3, 120) + + return dmg end return mobskillObject diff --git a/sql/mob_skills.sql b/sql/mob_skills.sql index 86cbcfbc81b..66ecfade65e 100644 --- a/sql/mob_skills.sql +++ b/sql/mob_skills.sql @@ -324,13 +324,13 @@ INSERT INTO `mob_skills` VALUES (295,39,'magic_fruit',0,0.0,7.0,2000,1500,1,0,0, -- INSERT INTO `mob_skills` VALUES (297,41,'pinecone_bomb',0,0.0,7.0,2000,1500,4,0,0,0,0,0,0); -- INSERT INTO `mob_skills` VALUES (298,42,'leafstorm',0,0.0,7.0,2000,1500,4,0,0,0,0,0,0); INSERT INTO `mob_skills` VALUES (299,76,'entangle_drain',0,0.0,7.0,2000,1500,4,0,0,0,0,0,0); -INSERT INTO `mob_skills` VALUES (300,44,'head_butt',0,0.0,7.0,1500,1500,4,0,0,0,0,0,0); -INSERT INTO `mob_skills` VALUES (301,45,'dream_flower',1,0.0,15.0,2000,1500,4,0,0,0,0,0,0); -INSERT INTO `mob_skills` VALUES (302,46,'wild_oats',0,0.0,7.0,2000,1500,4,0,0,0,0,0,0); +INSERT INTO `mob_skills` VALUES (300,44,'head_butt',0,0.0,7.0,1500,800,4,0,0,0,0,0,0); +INSERT INTO `mob_skills` VALUES (301,45,'dream_flower',1,0.0,15.0,2000,1200,4,0,0,0,0,0,0); +INSERT INTO `mob_skills` VALUES (302,46,'wild_oats',0,0.0,7.0,2000,800,4,0,0,0,0,0,0); -- INSERT INTO `mob_skills` VALUES (303,47,'hundred_fists',0,0.0,7.0,2000,1500,4,0,0,0,0,0,0); -INSERT INTO `mob_skills` VALUES (304,48,'photosynthesis',0,0.0,7.0,2000,1500,1,0,0,0,0,0,0); -INSERT INTO `mob_skills` VALUES (305,49,'leaf_dagger',0,0.0,7.0,2000,1500,4,0,0,0,0,0,0); -INSERT INTO `mob_skills` VALUES (306,50,'scream',1,0.0,15.0,2000,1500,4,0,0,0,0,0,0); +INSERT INTO `mob_skills` VALUES (304,48,'photosynthesis',0,0.0,7.0,2000,800,1,0,0,0,0,0,0); +INSERT INTO `mob_skills` VALUES (305,49,'leaf_dagger',0,0.0,7.0,2000,1200,4,0,0,0,0,0,0); +INSERT INTO `mob_skills` VALUES (306,50,'scream',1,0.0,15.0,2000,800,4,0,0,0,0,0,0); INSERT INTO `mob_skills` VALUES (307,439,'substitute',0,0.0,7.0,2000,1500,4,0,0,0,0,0,0); INSERT INTO `mob_skills` VALUES (308,52,'frogkick',0,0.0,7.0,2000,1500,4,0,0,0,0,0,0); INSERT INTO `mob_skills` VALUES (309,53,'spore',0,0.0,7.0,2000,1500,4,0,0,0,0,0,0);