Skip to content
Snippets Groups Projects
Commit b57c89f5 authored by Lisa Greene's avatar Lisa Greene
Browse files

Tune cursed talent scaling

parent 49068b46
No related branches found
No related tags found
1 merge request!663Misc talent scaling changes
...@@ -40,7 +40,7 @@ newTalent{ ...@@ -40,7 +40,7 @@ newTalent{
return { self.EFF_CURSE_OF_CORPSES, self.EFF_CURSE_OF_MADNESS, self.EFF_CURSE_OF_MISFORTUNE, self.EFF_CURSE_OF_NIGHTMARES, self.EFF_CURSE_OF_SHROUDS } return { self.EFF_CURSE_OF_CORPSES, self.EFF_CURSE_OF_MADNESS, self.EFF_CURSE_OF_MISFORTUNE, self.EFF_CURSE_OF_NIGHTMARES, self.EFF_CURSE_OF_SHROUDS }
end, end,
cursePenalty = function(self, t) cursePenalty = function(self, t)
return self:combatTalentLimit(math.max(1, self:getTalentLevel(t)-4), 0, 1, 0.64) return self:combatTalentLimit(math.max(1, self:getTalentLevel(t)-4), 0, 0.95, 0.55)
end, end,
-- tests whether or not an item can be cursed (takes into account current talent level unless ignoreLevel = true) -- tests whether or not an item can be cursed (takes into account current talent level unless ignoreLevel = true)
canCurseItem = function(self, t, item, level) canCurseItem = function(self, t, item, level)
...@@ -439,7 +439,7 @@ newTalent{ ...@@ -439,7 +439,7 @@ newTalent{
autolevel = o.combat.wil_attack and "summoner" or "warrior", autolevel = o.combat.wil_attack and "summoner" or "warrior",
ai = "summoned", ai_real = "tactical", ai_state = { talent_in=1, }, ai = "summoned", ai_real = "tactical", ai_state = { talent_in=1, },
max_life = 50 + self.max_life*self:combatTalentLimit(t, 1, 0.04, 0.17), -- Add % of summoner's life < 100% max_life = 50 + self.max_life*self:combatTalentLimit(t, 1, 0.08, 0.22), -- Add % of summoner's life < 100%
life_rating = 3, life_rating = 3,
stats = o.combat.wil_attack and {wil= 20, cun = 20, mag=10, con=10} or {str=20, dex=20, mag=10, con=10}, stats = o.combat.wil_attack and {wil= 20, cun = 20, mag=10, con=10} or {str=20, dex=20, mag=10, con=10},
combat = { dam=1, atk=1, apr=1 }, combat = { dam=1, atk=1, apr=1 },
...@@ -452,7 +452,7 @@ newTalent{ ...@@ -452,7 +452,7 @@ newTalent{
combat_physspeed = t.getAttackSpeed(self, t), combat_physspeed = t.getAttackSpeed(self, t),
infravision = 10, infravision = 10,
resists = { all = self:combatTalentLimit(t, 100, 71, 75), }, resists = { all = self:combatTalentLimit(t, 100, 50, 75), },
cut_immune = 1, cut_immune = 1,
blind_immune = 1, blind_immune = 1,
fear_immune = 1, fear_immune = 1,
......
...@@ -32,7 +32,7 @@ newTalent{ ...@@ -32,7 +32,7 @@ newTalent{
return combatTalentDamage(self, t, 15, 50) return combatTalentDamage(self, t, 15, 50)
end, end,
getMaxUnnaturalBodyHeal = function(self, t) -- Add up to 50% max life to pool getMaxUnnaturalBodyHeal = function(self, t) -- Add up to 50% max life to pool
return t.getHealPerKill(self, t) * 2 + self:combatTalentLimit(t, .5, 0.01, 0.03) * self.max_life return t.getHealPerKill(self, t) * 2 + self:combatTalentLimit(t, .5, 0.03, 0.055) * self.max_life
end, end,
getRegenRate = function(self, t) return 3 + combatTalentDamage(self, t, 15, 25) end, getRegenRate = function(self, t) return 3 + combatTalentDamage(self, t, 15, 25) end,
updateHealingFactor = function(self, t) updateHealingFactor = function(self, t)
...@@ -81,7 +81,7 @@ newTalent{ ...@@ -81,7 +81,7 @@ newTalent{
mode = "passive", mode = "passive",
require = cursed_wil_req2, require = cursed_wil_req2,
points = 5, points = 5,
getImmune = function(self, t) return self:combatTalentLimit(t, 1, 0.15, 0.5) end, -- Limit < 100% getImmune = function(self, t) return self:combatTalentLimit(t, 1, 0.22, 0.5) end, -- Limit < 100%
passives = function(self, t, p) passives = function(self, t, p)
self:talentTemporaryValue(p, "fear_immune", t.getImmune(self, t)) self:talentTemporaryValue(p, "fear_immune", t.getImmune(self, t))
self:talentTemporaryValue(p, "confusion_immune", t.getImmune(self, t)) self:talentTemporaryValue(p, "confusion_immune", t.getImmune(self, t))
...@@ -100,7 +100,7 @@ newTalent{ ...@@ -100,7 +100,7 @@ newTalent{
require = cursed_wil_req3, require = cursed_wil_req3,
points = 5, points = 5,
getIncDamageChange = function(self, t, increase) getIncDamageChange = function(self, t, increase)
return self:combatTalentLimit(t, 60, 2, 2*2.24) * increase --I5 Limit < 60% return self:combatTalentLimit(t, 60, 5, 10) * increase --I5 Limit < 60%
end, end,
info = function(self, t) info = function(self, t)
local incDamageChangeMax = t.getIncDamageChange(self, t, 5) local incDamageChangeMax = t.getIncDamageChange(self, t, 5)
......
...@@ -101,7 +101,7 @@ newTalent{ ...@@ -101,7 +101,7 @@ newTalent{
hate = 5, hate = 5,
tactical = { ATTACK = { PHYSICAL = 3 } }, tactical = { ATTACK = { PHYSICAL = 3 } },
is_melee = true, is_melee = true,
getCooldownDuration = function(self, t) return math.ceil(self:combatTalentLimit(t, 5, 0.75, 2.7)) end, getCooldownDuration = function(self, t) return math.ceil(self:combatTalentLimit(t, 5, 1.2, 3.1)) end,
getDamageMultiplier = function(self, t, hate) getDamageMultiplier = function(self, t, hate)
return getHateMultiplier(self, 0.35, 0.67, false, hate) return getHateMultiplier(self, 0.35, 0.67, false, hate)
end, end,
......
...@@ -168,7 +168,7 @@ newTalent{ ...@@ -168,7 +168,7 @@ newTalent{
return tostring(math.ceil(val)), fnt return tostring(math.ceil(val)), fnt
end, end,
critpower = function(self, t) return self:combatTalentScale(t, 4, 15) end, critpower = function(self, t) return self:combatTalentScale(t, 4, 15) end,
getRechargeRate = function(self, t) return self:combatTalentLimit(t, 5, 35, 10) end, getRechargeRate = function(self, t) return self:combatTalentLimit(t, 5, 33, 10) end,
activate = function(self, t) activate = function(self, t)
game:playSoundNear(self, "talents/spell_generic2") game:playSoundNear(self, "talents/spell_generic2")
local ret = { local ret = {
......
...@@ -100,7 +100,7 @@ newTalent{ ...@@ -100,7 +100,7 @@ newTalent{
return bonus return bonus
end, end,
getStunChance = function(self, t) return self:combatTalentLimit(t, 50, 12, 20) end, -- Limit < 50% getStunChance = function(self, t) return self:combatTalentLimit(t, 50, 15, 22) end, -- Limit < 50%
preAttack = function(self, t, target) preAttack = function(self, t, target)
if not canUseGestures(self) then if not canUseGestures(self) then
game.logPlayer(self, "You require two free or mindstar-equipped hands to use Gesture of Pain.") game.logPlayer(self, "You require two free or mindstar-equipped hands to use Gesture of Pain.")
...@@ -259,7 +259,7 @@ newTalent{ ...@@ -259,7 +259,7 @@ newTalent{
require = cursed_cun_req4, require = cursed_cun_req4,
mode = "passive", mode = "passive",
points = 5, points = 5,
getGuardPercent = function(self, t) return self:combatTalentLimit(t, 80, 20, 45) end, getGuardPercent = function(self, t) return self:combatTalentLimit(t, 80, 25, 45) end,
-- Damage reduction handled in _M:attackTargetWith function in mod.class.interface.Combat.lua -- Damage reduction handled in _M:attackTargetWith function in mod.class.interface.Combat.lua
getDamageChange = function(self, t, fake) getDamageChange = function(self, t, fake)
local test, dam = canUseGestures(self) local test, dam = canUseGestures(self)
...@@ -268,7 +268,7 @@ newTalent{ ...@@ -268,7 +268,7 @@ newTalent{
end, end,
getCounterAttackChance = function(self, t, fake) getCounterAttackChance = function(self, t, fake)
if (not canUseGestures(self) or not self:isTalentActive(self.T_GESTURE_OF_PAIN)) and not fake then return 0 end if (not canUseGestures(self) or not self:isTalentActive(self.T_GESTURE_OF_PAIN)) and not fake then return 0 end
return self:combatTalentLimit(t, 50, 4, 8.9) -- Limit < 50% return self:combatTalentLimit(t, 50, 5, 9.5) -- Limit < 50%
end, end,
-- Mental effect "GESTURE_OF_GUARDING" handles the deflect count, refreshed in mod.class.Actor.lua _M:actBase -- Mental effect "GESTURE_OF_GUARDING" handles the deflect count, refreshed in mod.class.Actor.lua _M:actBase
getDeflects = function(self, t, fake) getDeflects = function(self, t, fake)
......
...@@ -31,7 +31,7 @@ newTalent{ ...@@ -31,7 +31,7 @@ newTalent{
getDamage = function(self, t) getDamage = function(self, t)
return self:combatTalentMindDamage(t, 0, 320) return self:combatTalentMindDamage(t, 0, 320)
end, end,
getSpreadFactor = function(self, t) return self:combatTalentLimit(t, .95, .75, .85) end, getSpreadFactor = function(self, t) return self:combatTalentLimit(t, .95, .7, .85) end,
target = function(self, t) return {type="ball", radius=self:getTalentRange(t), range=0, friendlyfire=false} end, target = function(self, t) return {type="ball", radius=self:getTalentRange(t), range=0, friendlyfire=false} end,
action = function(self, t) action = function(self, t)
local tg, targets = self:getTalentTarget(t), {} local tg, targets = self:getTalentTarget(t), {}
......
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