From 723ed8ade9b5235da2fac30d37fb2922bf73d16e Mon Sep 17 00:00:00 2001 From: Ampitere Date: Sat, 4 May 2024 23:21:24 -0700 Subject: [PATCH] add: Prester latent effect functionality --- scripts/enum/item.lua | 1 + scripts/globals/combat/physical_utilities.lua | 23 +++++++++++++++---- scripts/globals/weaponskills.lua | 10 ++++++++ 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/scripts/enum/item.lua b/scripts/enum/item.lua index 537ef59048c..424d56d8f22 100644 --- a/scripts/enum/item.lua +++ b/scripts/enum/item.lua @@ -6171,6 +6171,7 @@ xi.item = DORJE = 18594, KEBBIE = 18596, CATALYST = 18597, + PRESTER = 18598, RAM_STAFF = 18612, SAMUDRA = 18618, SPHARAI_85 = 18637, diff --git a/scripts/globals/combat/physical_utilities.lua b/scripts/globals/combat/physical_utilities.lua index 5fdb06b0d6e..e1c4f6fb52e 100644 --- a/scripts/globals/combat/physical_utilities.lua +++ b/scripts/globals/combat/physical_utilities.lua @@ -233,10 +233,11 @@ xi.combat.physical.calculateFTP = function(actor, tpFactor) local scProp1, scProp2, scProp3 = actor:getWSSkillchainProp() local dayElement = VanadielDayElement() + 1 - local neckFtpBonus = 0 - local waistFtpBonus = 0 - local headFtpBonus = 0 - local handsFtpBonus = 0 + local neckFtpBonus = 0 + local waistFtpBonus = 0 + local headFtpBonus = 0 + local handsFtpBonus = 0 + local weaponFtpBonus = 0 if actor:getObjType() == xi.objType.PC then -- Calculate Neck fTP bonus. @@ -315,10 +316,22 @@ xi.combat.physical.calculateFTP = function(actor, tpFactor) handsFtpBonus = 0.06 end end + + -- Calculate Weapon fTP bonus. + local weaponItem = actor:getEquipID(xi.slot.MAIN) + + if + weaponItem == xi.item.PRESTER and + (wsElementalProperties[scProp1][xi.element.WIND] == 1 or + wsElementalProperties[scProp2][xi.element.WIND] == 1 or + wsElementalProperties[scProp3][xi.element.WIND] == 1) + then + weaponFtpBonus = 0.1 + end end -- Add all bonuses and return. - fTP = fTP + neckFtpBonus + waistFtpBonus + headFtpBonus + handsFtpBonus + fTP = fTP + neckFtpBonus + waistFtpBonus + headFtpBonus + handsFtpBonus + weaponFtpBonus return fTP end diff --git a/scripts/globals/weaponskills.lua b/scripts/globals/weaponskills.lua index edd14c02181..8526c1c2ffa 100644 --- a/scripts/globals/weaponskills.lua +++ b/scripts/globals/weaponskills.lua @@ -1261,6 +1261,7 @@ xi.weaponskills.handleWSGorgetBelt = function(attacker) local neck = attacker:getEquipID(xi.slot.NECK) local belt = attacker:getEquipID(xi.slot.WAIST) + local weapon = attacker:getEquipID(xi.slot.MAIN) local scProp1, scProp2, scProp3 = attacker:getWSSkillchainProp() for i, v in ipairs(elementalGorget) do @@ -1302,6 +1303,15 @@ xi.weaponskills.handleWSGorgetBelt = function(attacker) accBonus = accBonus + 10 ftpBonus = ftpBonus + 0.1 end + + if + weapon == xi.item.PRESTER and + (xi.magicburst.doesElementMatchWeaponskill(xi.element.WIND, scProp1) or + xi.magicburst.doesElementMatchWeaponskill(xi.element.WIND, scProp2) or + xi.magicburst.doesElementMatchWeaponskill(xi.element.WIND, scProp3)) + then -- Prester + ftpBonus = ftpBonus + 0.1 + end end return ftpBonus, accBonus