diff --git a/game/modules/tome/data/talents/techniques/grappling.lua b/game/modules/tome/data/talents/techniques/grappling.lua index ca365d7efd7fecc353ad81f776bdf7cfd9d93887..8c049f0cdc160dd25e53e268f285a7eae991b113 100644 --- a/game/modules/tome/data/talents/techniques/grappling.lua +++ b/game/modules/tome/data/talents/techniques/grappling.lua @@ -26,6 +26,7 @@ newTalent{ cooldown = 12, tactical = { BUFF = 2 }, type_no_req = true, + no_npc_use = true, -- They dont need it since it auto switches anyway getSave = function(self, t) return 5 + self:getStr(20) end, getDamage = function(self, t) return 20 + self:getStr(20) end, activate = function(self, t) diff --git a/game/modules/tome/data/talents/techniques/pugilism.lua b/game/modules/tome/data/talents/techniques/pugilism.lua index 82eb5cf36cb87c7007071f534394e743c07b968e..bdd5938a1450ace9e1aeb22e480daf3674facad7 100644 --- a/game/modules/tome/data/talents/techniques/pugilism.lua +++ b/game/modules/tome/data/talents/techniques/pugilism.lua @@ -35,6 +35,7 @@ newTalent{ cooldown = 12, tactical = { BUFF = 2 }, type_no_req = true, + no_npc_use = true, -- They dont need it since it auto switches anyway getAttack = function(self, t) return 5 + self:getDex(20) end, getDamage = function(self, t) return 20 + self:getDex(20) end, activate = function(self, t) @@ -85,32 +86,32 @@ newTalent{ local x, y, target = self:getTarget(tg) if not x or not y or not target then return nil end if math.floor(core.fov.distance(self.x, self.y, x, y)) > 1 then return nil end - + -- force stance change - if target and not self:isTalentActive(self.T_STRIKING_STANCE) then + if target and not self:isTalentActive(self.T_STRIKING_STANCE) then self:forceUseTalent(self.T_STRIKING_STANCE, {ignore_energy=true, ignore_cd = true}) end - + -- breaks active grapples if the target is not grappled if target:isGrappled(self) then grappled = true else self:breakGrapples() end - + local hit1 = false local hit2 = false - + hit1 = self:attackTarget(target, nil, t.getDamage(self, t), true) hit2 = self:attackTarget(target, nil, t.getDamage(self, t), true) - + -- build combo points local combo = false - + if self:getTalentLevel(t) >= 4 then combo = true end - + if combo then if hit1 then self:buildCombo() @@ -121,9 +122,9 @@ newTalent{ elseif hit1 or hit2 then self:buildCombo() end - + return true - + end, info = function(self, t) local damage = t.getDamage(self, t) * 100 @@ -170,11 +171,11 @@ newTalent{ local x, y, target = self:getTarget(tg) if not x or not y or not target then return nil end if math.floor(core.fov.distance(self.x, self.y, x, y)) > self:getTalentRange(t) then return nil end - + -- bonus damage for charging local charge = math.floor((core.fov.distance(self.x, self.y, x, y)) -1) / 10 local damage = t.getDamage(self, t) + charge - + -- do the rush local l = line.new(self.x, self.y, x, y) local tx, ty = self.x, self.y @@ -191,11 +192,11 @@ newTalent{ self:resetMoveAnim() self:setMoveAnim(ox, oy, 8, 5) end - + local hit1 = false local hit2 = false local hit3 = false - + -- do the backhand if math.floor(core.fov.distance(self.x, self.y, x, y)) == 1 then -- get left and right side @@ -203,9 +204,9 @@ newTalent{ local lx, ly = util.coordAddDir(self.x, self.y, dir_sides[dir].left) local rx, ry = util.coordAddDir(self.x, self.y, dir_sides[dir].right) local lt, rt = game.level.map(lx, ly, Map.ACTOR), game.level.map(rx, ry, Map.ACTOR) - + hit1 = self:attackTarget(target, nil, damage, true) - + --left hit if lt then hit2 = self:attackTarget(lt, nil, damage, true) @@ -214,19 +215,19 @@ newTalent{ if rt then hit3 = self:attackTarget(rt, nil, damage, true) end - + end - + -- remove grappls self:breakGrapples() - + -- build combo points local combo = false - + if self:getTalentLevel(t) >= 4 then combo = true end - + if combo then if hit1 then self:buildCombo() @@ -240,7 +241,7 @@ newTalent{ elseif hit1 or hit2 or hit3 then self:buildCombo() end - + return true end, info = function(self, t) @@ -268,29 +269,29 @@ newTalent{ local x, y, target = self:getTarget(tg) if not x or not y or not target then return nil end if math.floor(core.fov.distance(self.x, self.y, x, y)) > 1 then return nil end - + -- breaks active grapples if the target is not grappled if target:isGrappled(self) then grappled = true else self:breakGrapples() end - + local hit1 = false local hit2 = false local hit3 = false - + hit1 = self:attackTarget(target, nil, t.getDamage(self, t), true) hit2 = self:attackTarget(target, nil, t.getDamage(self, t), true) hit3 = self:attackTarget(target, nil, t.getDamage(self, t), true) - + --build combo points local combo = false - + if self:getTalentLevel(t) >= 4 then combo = true end - + if combo then if hit1 then self:buildCombo() @@ -304,7 +305,7 @@ newTalent{ elseif hit1 or hit2 or hit3 then self:buildCombo() end - + return true end, info = function(self, t) diff --git a/game/modules/tome/data/talents/techniques/techniques.lua b/game/modules/tome/data/talents/techniques/techniques.lua index 5a47ffa52cb06588f26e0a701898be72a40e99c3..657e50df0a6c6f33d5b3ec81749eab131fba99b3 100644 --- a/game/modules/tome/data/talents/techniques/techniques.lua +++ b/game/modules/tome/data/talents/techniques/techniques.lua @@ -210,12 +210,15 @@ getStrikingStyle = function(self, dam) end cancelStances = function(self) + if self.cancelling_stances then return end local stances = {self.T_STRIKING_STANCE, self.T_GRAPPLING_STANCE} + self.cancelling_stances = true for i, t in ipairs(stances) do if self:isTalentActive(t) then self:forceUseTalent(t, {ignore_energy=true, ignore_cd=true}) end end + self.cancelling_stances = nil end load("/data/talents/techniques/2hweapon.lua")