diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua index ae2af2258e78224e5f513a3571ff54a3e888d94c..3c8ebdb01ffcd9e1ad66e1470703b8233767890e 100644 --- a/game/modules/tome/class/Actor.lua +++ b/game/modules/tome/class/Actor.lua @@ -5852,6 +5852,7 @@ local sustainCallbackCheck = { callbackOnSummonDeath = "talents_on_summon_death", callbackOnDie = "talents_on_die", callbackOnKill = "talents_on_kill", + callbackOnCombatAttack = "talents_on_combat_attack", callbackOMeleeAttackBonuses = "talents_on_melee_attack_bonus", callbackOnMeleeAttack = "talents_on_melee_attack", callbackOnMeleeHit = "talents_on_melee_hit", diff --git a/game/modules/tome/class/interface/Combat.lua b/game/modules/tome/class/interface/Combat.lua index 7efdbee361782160d270204df85caac235e7c142..72d2b50d0cdc5a0dce47315fa6c59feeb9ccf3b6 100644 --- a/game/modules/tome/class/interface/Combat.lua +++ b/game/modules/tome/class/interface/Combat.lua @@ -1344,7 +1344,11 @@ function _M:combatAttack(weapon, ammo) local stats if self:attr("use_psi_combat") then stats = (self:getCun(100, true) - 10) * (0.6 + self:callTalent(self.T_RESONANT_FOCUS, "bonus")/100) elseif weapon and weapon.wil_attack then stats = self:getWil(100, true) - 10 - else stats = self:getDex(100, true) - 10 + elseif weapon and weapon.mag_attack then stats = self:getMag(100, true) - 10 + else + local ret = self:fireTalentCheck("callbackOnCombatAttack", weapon, ammo) + if ret then stats = ret + else stats = self:getDex(100, true) - 10 end end local d = self:combatAttackBase(weapon, ammo) + stats if self:attr("dazed") then d = d / 2 end