Skip to content
Snippets Groups Projects
Commit a529672d authored by Eric Wykoff's avatar Eric Wykoff
Browse files

scaling on warden weapon talents

parent 63cdeb60
No related branches found
No related tags found
No related merge requests found
...@@ -29,7 +29,7 @@ newTalent{ ...@@ -29,7 +29,7 @@ newTalent{
require = chrono_req1, require = chrono_req1,
points = 5, points = 5,
cooldown = 6, cooldown = 6,
paradox = function (self, t) return getParadoxCost(self, t, 10) end, paradox = function (self, t) return getParadoxCost(self, t, 8) end,
tactical = { ATTACK = {weapon = 2}, DISABLE = 3 }, tactical = { ATTACK = {weapon = 2}, DISABLE = 3 },
requires_target = true, requires_target = true,
speed = "weapon", speed = "weapon",
...@@ -81,16 +81,16 @@ newTalent{ ...@@ -81,16 +81,16 @@ newTalent{
require = chrono_req2, require = chrono_req2,
points = 5, points = 5,
cooldown = 8, cooldown = 8,
paradox = function (self, t) return getParadoxCost(self, t, 15) end, paradox = function (self, t) return getParadoxCost(self, t, 12) end,
tactical = { ATTACKAREA = {weapon = 2}, DISABLE = 3 }, tactical = { ATTACKAREA = {weapon = 2}, DISABLE = 3 },
requires_target = true, requires_target = true,
speed = "weapon", speed = "weapon",
range = function(self, t) return 3 + math.floor(self:combatTalentLimit(t, 7, 1, 4)) end, range = function(self, t) return 3 + math.floor(self:combatTalentLimit(t, 7, 0, 3)) end,
is_melee = true, is_melee = true,
target = function(self, t) target = function(self, t)
return {type="beam", range=self:getTalentRange(t), talent=t, selffire=false } return {type="beam", range=self:getTalentRange(t), talent=t, selffire=false }
end, end,
getDamage = function(self, t) return self:combatTalentWeaponDamage(t, 1, 1.5) end, getDamage = function(self, t) return self:combatTalentWeaponDamage(t, 0.8, 1.3) end,
getDuration = function(self, t) return getExtensionModifier(self, t, math.floor(self:combatTalentScale(t, 3, 7))) end, getDuration = function(self, t) return getExtensionModifier(self, t, math.floor(self:combatTalentScale(t, 3, 7))) end,
getPower = function(self, t) return self:combatTalentSpellDamage(t, 50, 150, getParadoxSpellpower(self, t)) end, getPower = function(self, t) return self:combatTalentSpellDamage(t, 50, 150, getParadoxSpellpower(self, t)) end,
on_pre_use = function(self, t, silent) if not doWardenPreUse(self, "dual") then if not silent then game.logPlayer(self, "You require two weapons to use this talent.") end return false end return true end, on_pre_use = function(self, t, silent) if not doWardenPreUse(self, "dual") then if not silent then game.logPlayer(self, "You require two weapons to use this talent.") end return false end return true end,
...@@ -155,7 +155,7 @@ newTalent{ ...@@ -155,7 +155,7 @@ newTalent{
require = chrono_req3, require = chrono_req3,
points = 5, points = 5,
cooldown = 8, cooldown = 8,
paradox = function (self, t) return getParadoxCost(self, t, 15) end, paradox = function (self, t) return getParadoxCost(self, t, 12) end,
tactical = { ATTACKAREA = {weapon = 2}, ATTACK = {weapon = 2}, }, tactical = { ATTACKAREA = {weapon = 2}, ATTACK = {weapon = 2}, },
requires_target = true, requires_target = true,
is_teleport = true, is_teleport = true,
...@@ -163,7 +163,7 @@ newTalent{ ...@@ -163,7 +163,7 @@ newTalent{
range = 1, range = 1,
is_melee = true, is_melee = true,
target = function(self, t) return {type="hit", range=self:getTalentRange(t), talent=t} end, target = function(self, t) return {type="hit", range=self:getTalentRange(t), talent=t} end,
getDamage = function(self, t) return self:combatTalentWeaponDamage(t, 0.6, 1.2) end, getDamage = function(self, t) return self:combatTalentWeaponDamage(t, 0.4, 1) end,
getTeleports = function(self, t) return self:getTalentLevel(t) >= 5 and 2 or 1 end, getTeleports = function(self, t) return self:getTalentLevel(t) >= 5 and 2 or 1 end,
on_pre_use = function(self, t, silent) if not doWardenPreUse(self, "dual") then if not silent then game.logPlayer(self, "You require two weapons to use this talent.") end return false end return true end, on_pre_use = function(self, t, silent) if not doWardenPreUse(self, "dual") then if not silent then game.logPlayer(self, "You require two weapons to use this talent.") end return false end return true end,
action = function(self, t) action = function(self, t)
...@@ -265,7 +265,7 @@ newTalent{ ...@@ -265,7 +265,7 @@ newTalent{
require = chrono_req4, require = chrono_req4,
points = 5, points = 5,
cooldown = 12, cooldown = 12,
paradox = function (self, t) return getParadoxCost(self, t, 10) end, paradox = function (self, t) return getParadoxCost(self, t, 18) end,
tactical = { ATTACK = {weapon = 2}, ATTACKAREA = { TEMPORAL = 2 }}, tactical = { ATTACK = {weapon = 2}, ATTACKAREA = { TEMPORAL = 2 }},
requires_target = true, requires_target = true,
speed = "weapon", speed = "weapon",
...@@ -273,7 +273,7 @@ newTalent{ ...@@ -273,7 +273,7 @@ newTalent{
radius = function(self, t) return math.floor(self:combatTalentScale(t, 4.5, 6.5)) end, radius = function(self, t) return math.floor(self:combatTalentScale(t, 4.5, 6.5)) end,
is_melee = true, is_melee = true,
getDamage = function(self, t) return self:combatTalentWeaponDamage(t, 1, 1.5) end, getDamage = function(self, t) return self:combatTalentWeaponDamage(t, 1, 1.5) end,
getShear = function(self, t) return self:combatTalentSpellDamage(t, 20, 150, getParadoxSpellpower(self, t)) end, getShear = function(self, t) return self:combatTalentSpellDamage(t, 20, 200, getParadoxSpellpower(self, t)) end,
target = function(self, t) target = function(self, t)
return {type="cone", range=0, radius=self:getTalentRadius(t), talent=t, selffire=false } return {type="cone", range=0, radius=self:getTalentRadius(t), talent=t, selffire=false }
end, end,
......
...@@ -73,7 +73,7 @@ newTalent{ ...@@ -73,7 +73,7 @@ newTalent{
require = chrono_req2, require = chrono_req2,
points = 5, points = 5,
cooldown = 6, cooldown = 6,
paradox = function (self, t) return getParadoxCost(self, t, 10) end, paradox = function (self, t) return getParadoxCost(self, t, 12) end,
tactical = { ATTACK = {weapon = 4} }, tactical = { ATTACK = {weapon = 4} },
requires_target = true, requires_target = true,
range = archery_range, range = archery_range,
...@@ -160,7 +160,7 @@ newTalent{ ...@@ -160,7 +160,7 @@ newTalent{
require = chrono_req3, require = chrono_req3,
points = 5, points = 5,
cooldown = 10, cooldown = 10,
paradox = function (self, t) return getParadoxCost(self, t, 15) end, paradox = function (self, t) return getParadoxCost(self, t, 18) end,
tactical = { ATTACKAREA = {PHYSICAL = 2}, DISABLE = 2 }, tactical = { ATTACKAREA = {PHYSICAL = 2}, DISABLE = 2 },
requires_target = true, requires_target = true,
range = archery_range, range = archery_range,
...@@ -259,7 +259,7 @@ newTalent{ ...@@ -259,7 +259,7 @@ newTalent{
require = chrono_req4, require = chrono_req4,
points = 5, points = 5,
cooldown = 12, cooldown = 12,
paradox = function (self, t) return getParadoxCost(self, t, 10) end, paradox = function (self, t) return getParadoxCost(self, t, 24) end,
tactical = { ATTACK = {weapon = 4} }, tactical = { ATTACK = {weapon = 4} },
requires_target = true, requires_target = true,
range = archery_range, range = archery_range,
......
...@@ -211,7 +211,7 @@ newTalent{ ...@@ -211,7 +211,7 @@ newTalent{
type = {"chronomancy/temporal-combat", 2}, type = {"chronomancy/temporal-combat", 2},
require = chrono_req2, require = chrono_req2,
points = 5, points = 5,
paradox = function (self, t) return getParadoxCost(self, t, 20) end, paradox = function (self, t) return getParadoxCost(self, t, 24) end,
cooldown = 24, cooldown = 24,
fixed_cooldown = true, fixed_cooldown = true,
tactical = { HEAL = 1 }, tactical = { HEAL = 1 },
...@@ -281,15 +281,15 @@ newTalent{ ...@@ -281,15 +281,15 @@ newTalent{
require = chrono_req4, require = chrono_req4,
points = 5, points = 5,
cooldown = 8, cooldown = 8,
paradox = function (self, t) return getParadoxCost(self, t, 15) end, paradox = function (self, t) return getParadoxCost(self, t, 12) end,
tactical = { ATTACK = {weapon = 2}, DISABLE = 3 }, tactical = { ATTACK = {weapon = 2}, DISABLE = 3 },
requires_target = true, requires_target = true,
range = function(self, t) range = function(self, t)
if self:hasArcheryWeapon("bow") then return util.getval(archery_range, self, t) end if self:hasArcheryWeapon() then return util.getval(archery_range, self, t) end
return 1 return 1
end, end,
is_melee = function(self, t) return not self:hasArcheryWeapon("bow") end, is_melee = function(self, t) return not self:hasArcheryWeapon() end,
speed = function(self, t) return self:hasArcheryWeapon("bow") and "archery" or "weapon" end, speed = function(self, t) return self:hasArcheryWeapon() and "archery" or "weapon" end,
getDamage = function(self, t) return self:combatTalentWeaponDamage(t, 1, 1.5) end, getDamage = function(self, t) return self:combatTalentWeaponDamage(t, 1, 1.5) end,
getDuration = function(self, t) return getExtensionModifier(self, t, math.floor(self:combatTalentScale(t, 3, 7))) end, getDuration = function(self, t) return getExtensionModifier(self, t, math.floor(self:combatTalentScale(t, 3, 7))) end,
on_pre_use = function(self, t, silent) if self:attr("disarmed") then if not silent then game.logPlayer(self, "You require a weapon to use this talent.") end return false end return true end, on_pre_use = function(self, t, silent) if self:attr("disarmed") then if not silent then game.logPlayer(self, "You require a weapon to use this talent.") end return false end return true end,
...@@ -297,14 +297,13 @@ newTalent{ ...@@ -297,14 +297,13 @@ newTalent{
target:setEffect(target.EFF_BREACH, t.getDuration(self, t), {}) target:setEffect(target.EFF_BREACH, t.getDuration(self, t), {})
end, end,
action = function(self, t) action = function(self, t)
local mainhand, offhand = self:hasDualWeapon()
if self:hasArcheryWeapon("bow") then if self:hasArcheryWeapon() then
-- Ranged attack -- Ranged attack
local targets = self:archeryAcquireTargets({type="bolt"}, {one_shot=true, no_energy = true}) local targets = self:archeryAcquireTargets({type="bolt"}, {one_shot=true, no_energy = true})
if not targets then return end if not targets then return end
self:archeryShoot(targets, t, {type="bolt"}, {mult=t.getDamage(self, t)}) self:archeryShoot(targets, t, {type="bolt"}, {mult=t.getDamage(self, t)})
elseif mainhand then else
-- Melee attack -- Melee attack
local tg = {type="hit", range=self:getTalentRange(t), talent=t} local tg = {type="hit", range=self:getTalentRange(t), talent=t}
local x, y, target = self:getTarget(tg) local x, y, target = self:getTarget(tg)
...@@ -324,7 +323,7 @@ newTalent{ ...@@ -324,7 +323,7 @@ newTalent{
info = function(self, t) info = function(self, t)
local duration = t.getDuration(self, t) local duration = t.getDuration(self, t)
local damage = t.getDamage(self, t) * 100 local damage = t.getDamage(self, t) * 100
return ([[Attack the target with either your bow or melee weapons for %d%% damage. return ([[Attack the target with either your ranged or melee weapons for %d%% damage.
If the attack hits you'll breach the target's immunities, reducing armor hardiness, stun, pin, blindness, and confusion immunity by 50%% for %d turns. If the attack hits you'll breach the target's immunities, reducing armor hardiness, stun, pin, blindness, and confusion immunity by 50%% for %d turns.
Breach chance scales with your Spellpower.]]) Breach chance scales with your Spellpower.]])
:format(damage, duration) :format(damage, duration)
......
...@@ -109,7 +109,7 @@ newTalent{ ...@@ -109,7 +109,7 @@ newTalent{
require = chrono_req_high2, require = chrono_req_high2,
mode = "passive", mode = "passive",
points = 5, points = 5,
getPercent = function(self, t) return self:combatTalentScale(t, 20, 50)/100 end, getPercent = function(self, t) return self:combatTalentScale(t, 10, 50)/100 end,
info = function(self, t) info = function(self, t)
local percent = t.getPercent(self, t) * 100 local percent = t.getPercent(self, t) * 100
return ([[Your Bow Threading and Blade Threading attacks now deal %d%% more weapon damage if you did not have the appropriate weapon equipped when you initiated the attack.]]) return ([[Your Bow Threading and Blade Threading attacks now deal %d%% more weapon damage if you did not have the appropriate weapon equipped when you initiated the attack.]])
...@@ -124,7 +124,7 @@ newTalent{ ...@@ -124,7 +124,7 @@ newTalent{
points = 5, points = 5,
cooldown = 8, cooldown = 8,
fixed_cooldown = true, fixed_cooldown = true,
paradox = function (self, t) return getParadoxCost(self, t, 15) end, paradox = function (self, t) return getParadoxCost(self, t, 18) end,
tactical = { ATTACKAREA = { weapon = 3 } , DISABLE = 3 }, tactical = { ATTACKAREA = { weapon = 3 } , DISABLE = 3 },
requires_target = true, requires_target = true,
range = function(self, t) range = function(self, t)
...@@ -204,7 +204,7 @@ newTalent{ ...@@ -204,7 +204,7 @@ newTalent{
require = chrono_req_high4, require = chrono_req_high4,
mode = "passive", mode = "passive",
points = 5, points = 5,
getDamagePenalty = function(self, t) return 60 - self:combatTalentLimit(t, 30, 0, 20) end, getDamagePenalty = function(self, t) return 80 - self:combatTalentLimit(t, 80, 0, 60) end,
doBladeWarden = function(self, t, target) doBladeWarden = function(self, t, target)
-- Sanity check -- Sanity check
if not self.turn_procs.blade_warden then if not self.turn_procs.blade_warden then
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment