From d441c76743e749ff24d20926ee31fbe12ac565f0 Mon Sep 17 00:00:00 2001
From: Bunny <glisa825@gmail.com>
Date: Fri, 9 Oct 2020 01:11:35 -0400
Subject: [PATCH] Tune corruption talent scaling

---
 game/modules/tome/data/talents/corruptions/blood.lua      | 4 ++--
 game/modules/tome/data/talents/corruptions/bone.lua       | 2 +-
 game/modules/tome/data/talents/corruptions/plague.lua     | 4 ++--
 .../tome/data/talents/corruptions/reaving-combat.lua      | 6 +++---
 game/modules/tome/data/talents/corruptions/rot.lua        | 8 ++++----
 game/modules/tome/data/talents/corruptions/scourge.lua    | 4 ++--
 .../modules/tome/data/talents/corruptions/shadowflame.lua | 4 ++--
 game/modules/tome/data/talents/corruptions/torment.lua    | 2 +-
 game/modules/tome/data/talents/corruptions/vile-life.lua  | 8 ++++----
 9 files changed, 21 insertions(+), 21 deletions(-)

diff --git a/game/modules/tome/data/talents/corruptions/blood.lua b/game/modules/tome/data/talents/corruptions/blood.lua
index ae523cd60c..6b57fc4477 100644
--- a/game/modules/tome/data/talents/corruptions/blood.lua
+++ b/game/modules/tome/data/talents/corruptions/blood.lua
@@ -53,7 +53,7 @@ newTalent{
 	target = function(self, t)
 		return {type="cone", range=self:getTalentRange(t), radius=self:getTalentRadius(t), talent=t}
 	end,
-	getChance = function(self, t) return self:combatTalentLimit(t, 100, 30, 70) end, -- Limit < 100%
+	getChance = function(self, t) return self:combatTalentLimit(t, 100, 40, 70) end, -- Limit < 100%
 	action = function(self, t)
 		local tg = self:getTalentTarget(t)
 		local x, y = self:getTarget(tg)
@@ -127,7 +127,7 @@ newTalent{
 	range = 0,
 	radius = function(self, t) return 10 end,
 	getDamage = function(self, t) return self:combatTalentSpellDamage(t, 10, 250) end,
-	getSlow = function(self, t) return self:combatTalentLimit(t, 100, 20, 70) end,
+	getSlow = function(self, t) return self:combatTalentLimit(t, 100, 35, 70) end,
 	getHeal = function(self, t) return self:combatTalentSpellDamage(t, 10, 90) end,
 	requires_target = true,
 	target = function(self, t)
diff --git a/game/modules/tome/data/talents/corruptions/bone.lua b/game/modules/tome/data/talents/corruptions/bone.lua
index 5f6da3be39..48e284057d 100644
--- a/game/modules/tome/data/talents/corruptions/bone.lua
+++ b/game/modules/tome/data/talents/corruptions/bone.lua
@@ -185,7 +185,7 @@ newTalent{
 	sustain_vim = 50,
 	tactical = { DEFEND = 4 },
 	direct_hit = true,
-	getRegen = function(self, t) return self:combatTalentLimit(t, 3, 20, 3.3) end,
+	getRegen = function(self, t) return self:combatTalentLimit(t, 3, 16, 4.5) end,
 	getNb = function(self, t) return math.floor(self:combatTalentScale(t, 1, 3.5)) end,
 	getThreshold = function(self, t) return math.floor(self:combatSpellpower() * 0.7) end,
 	iconOverlay = function(self, t, p)
diff --git a/game/modules/tome/data/talents/corruptions/plague.lua b/game/modules/tome/data/talents/corruptions/plague.lua
index 2ec711c2fd..1e466bf098 100644
--- a/game/modules/tome/data/talents/corruptions/plague.lua
+++ b/game/modules/tome/data/talents/corruptions/plague.lua
@@ -265,8 +265,8 @@ newTalent{
 	tactical = { ATTACK = {BLIGHT = 2} },
 	target = function(self, t) return {type="hit", range=self:getTalentRange(t), talent=t} end,
 	requires_target = true,
-	healloss = function(self,t) return self:combatTalentLimit(t, 150, 44, 80) end, -- Limit < 150%
-	disfact = function(self,t) return self:combatTalentLimit(t, 100, 36, 60) end, -- Limit < 100%
+	healloss = function(self,t) return self:combatTalentLimit(t, 150, 50, 75) end, -- Limit < 150%
+	disfact = function(self,t) return self:combatTalentLimit(t, 100, 35, 60) end, -- Limit < 100%
 	-- Desease spreading handled in mod.data.damage_types.lua for BLIGHT
 	spreadFactor = function(self, t) return self:combatTalentLimit(t, 0.05, 0.35, 0.17) end, -- Based on previous formula: 256 damage gave 100% chance (1500 hps assumed)
 	
diff --git a/game/modules/tome/data/talents/corruptions/reaving-combat.lua b/game/modules/tome/data/talents/corruptions/reaving-combat.lua
index 9092563c3c..0c30863708 100644
--- a/game/modules/tome/data/talents/corruptions/reaving-combat.lua
+++ b/game/modules/tome/data/talents/corruptions/reaving-combat.lua
@@ -24,7 +24,7 @@ newTalent{
 	points = 5,
 	require = str_corrs_req1,
 	-- called by _M:getOffHandMult function in mod\class\interface\Combat.lua
-	getoffmult = function(self,t) return self:combatTalentLimit(t, 1, 0.53, 0.69) end, -- limit <100%
+	getoffmult = function(self,t) return self:combatTalentLimit(t, 1, 0.6, 0.8) end, -- limit <100%
 	on_learn = function(self, t)
 		if self:getTalentLevelRaw(t) == 1 then
 			self:attr("allow_any_dual_weapons", 1)
@@ -69,9 +69,9 @@ newTalent{
 	mode = "passive",
 	require = str_corrs_req3,
 	points = 5,
-	getDiseaseImmune = function(self, t) return self:combatTalentLimit(t, 1, 0.20, 0.75) end, -- Limit < 100%
+	getDiseaseImmune = function(self, t) return self:combatTalentLimit(t, 1, 0.33, 0.7) end, -- Limit < 100%
 	-- called by _M:attackTargetWith in mod.class.interface.Combat.lua
-	getDiseaseSpread = function(self, t) return self:combatTalentLimit(t, 100, 5, 20) end, --Limit < 100%
+	getDiseaseSpread = function(self, t) return self:combatTalentLimit(t, 100, 10, 25) end, --Limit < 100%
 	passives = function(self, t, p)
 		self:talentTemporaryValue(p, "disease_immune", t.getDiseaseImmune(self, t))
 	end,
diff --git a/game/modules/tome/data/talents/corruptions/rot.lua b/game/modules/tome/data/talents/corruptions/rot.lua
index 8ee87f5b7a..4dc999c979 100644
--- a/game/modules/tome/data/talents/corruptions/rot.lua
+++ b/game/modules/tome/data/talents/corruptions/rot.lua
@@ -147,10 +147,10 @@ newTalent{
 	getDamage = function(self, t)
 		return self:combatTalentSpellDamage(t, 10, 70)
 	end,
-	getResist = function(self, t) return self:combatTalentLimit(t, 30, 5, 25) end,
-	getAffinity = function(self, t) return self:combatTalentLimit(t, 25, 4, 20) end,
+	getResist = function(self, t) return self:combatTalentScale(t, 10, 25) end,
+	getAffinity = function(self, t) return self:combatTalentScale(t, 7, 20) end,
 	getDamageReduction = function(self, t) 
-		return self:combatTalentLimit(t, 0.5, 0.1, 0.22)
+		return self:combatTalentLimit(t, 0.5, 0.15, 0.3)
 	end,
 	tactical = {BUFF = 3},
 	activate = function(self, t)
@@ -235,7 +235,7 @@ newTalent{
 	range = 7,
 	getHeal = function(self, t) return math.floor(self:combatTalentSpellDamage(t, 20, 400)) end,
 	getVim = function(self, t) return 8 + math.floor(self:combatTalentScale(t, 5, 35)) end,
-	getDam = function(self, t) return self:combatTalentLimit(t, 1, 20, 5) end,
+	getDam = function(self, t) return self:combatTalentLimit(t, 1, 18, 5) end,
 	tactical = {HEAL = 0.5},  -- Only use the healing functionality of this since in practice thats almost always optimal, but use it rarely so we don't waste time hopping around a lot as a melee
 	target = function(self, t) -- no change to default_target because worms will usually be in melee with an enemy
 		return {type="hit", nolock=true, range=self:getTalentRange(t)}
diff --git a/game/modules/tome/data/talents/corruptions/scourge.lua b/game/modules/tome/data/talents/corruptions/scourge.lua
index b36f31aecb..564860ab9a 100644
--- a/game/modules/tome/data/talents/corruptions/scourge.lua
+++ b/game/modules/tome/data/talents/corruptions/scourge.lua
@@ -34,7 +34,7 @@ newTalent{
 	target = function(self, t) return {type="hit", range=self:getTalentRange(t)} end,
 	tactical = { ATTACK = {PHYSICAL = 2} },
 	requires_target = true,
-	getIncrease = function(self, t) return math.floor(self:combatTalentLimit(t, 4, 1, 3.5)) end,
+	getIncrease = function(self, t) return math.floor(self:combatTalentLimit(t, 4, 1.5, 3.5)) end,
 	getDamage = function(self, t) return self:combatTalentWeaponDamage(t, 0.8, 1.6) end,
 	on_pre_use = function(self, t, silent)
 		if not self:hasDualWeapon() then
@@ -126,7 +126,7 @@ newTalent{
 	vim = 20,
 	cooldown = 8,
 	range = 1,
-	radius = function(self, t) return self:combatTalentLimit(t, 7, 1, 5) end,
+	radius = function(self, t) return math.floor(self:combatTalentLimit(t, 7, 2.5, 5.5)) end,
 	requires_target = true,
 	is_melee = true,
 	tactical = { ATTACK = {ACID = 2}},
diff --git a/game/modules/tome/data/talents/corruptions/shadowflame.lua b/game/modules/tome/data/talents/corruptions/shadowflame.lua
index 8bf55406cc..812f76116f 100644
--- a/game/modules/tome/data/talents/corruptions/shadowflame.lua
+++ b/game/modules/tome/data/talents/corruptions/shadowflame.lua
@@ -26,7 +26,7 @@ newTalent{
 	cooldown = 30,
 	no_energy = true,
 	tactical = { DEFEND = 1, ESCAPE = 1, CLOSEIN = 1 },
-	getDuration = function(self, t) return math.floor(self:combatTalentLimit(t, 15, 5, 9)) end, -- Limit < 30 (make sure they can't hide forever)
+	getDuration = function(self, t) return math.floor(self:combatTalentLimit(t, 15, 4, 10)) end, -- Limit < 30 (make sure they can't hide forever)
 	getDefs = function(self, t) return self:combatTalentScale(t, 5, 20), self:combatTalentScale(t, 5, 16) end,
 	action = function(self, t)
 		local def, armor = t.getDefs(self, t)
@@ -90,7 +90,7 @@ newTalent{
 	sustain_vim = 90,
 	cooldown = 30,
 	tactical = { DEFEND = 1, BUFF = 2 },
-	getSpeed = function(self, t) return self:combatTalentScale(t, 0.03, 0.15) end,
+	getSpeed = function(self, t) return self:combatTalentScale(t, 0.05, 0.165) end,
 	activate = function(self, t)
 		game:playSoundNear(self, "talents/flame")
 		self.__old_type = {self.type, self.subtype}
diff --git a/game/modules/tome/data/talents/corruptions/torment.lua b/game/modules/tome/data/talents/corruptions/torment.lua
index c2486a4813..3c0a7d8702 100644
--- a/game/modules/tome/data/talents/corruptions/torment.lua
+++ b/game/modules/tome/data/talents/corruptions/torment.lua
@@ -119,7 +119,7 @@ newTalent{
 	points = 5,
 	mode = "sustained",
 	cooldown = 20,
-	getPower = function(self, t) return self:combatTalentLimit(t, 5, 15, 10), self:combatLimit(self:combatTalentSpellDamage(t, 10, 90), 100, 20, 0, 50, 61.3) end, -- Limit threshold > 5%, chance < 100%
+	getPower = function(self, t) return self:combatTalentLimit(t, 5, 15, 8), self:combatLimit(self:combatTalentSpellDamage(t, 10, 90), 100, 20, 0, 50, 61.3) end, -- Limit threshold > 5%, chance < 100%
 	sustain_vim = 22,
 	tactical = { BUFF = 2 },
 	activate = function(self, t)
diff --git a/game/modules/tome/data/talents/corruptions/vile-life.lua b/game/modules/tome/data/talents/corruptions/vile-life.lua
index d830930c56..a47a093a23 100644
--- a/game/modules/tome/data/talents/corruptions/vile-life.lua
+++ b/game/modules/tome/data/talents/corruptions/vile-life.lua
@@ -63,9 +63,9 @@ newTalent{
 	tactical = { BUFF = 2 },
 	getFire = function(self, t) return self:combatTalentSpellDamage(t, 10, 400) end,
 	getCold = function(self, t) return self:combatTalentSpellDamage(t, 10, 500) end,
-	getLightning = function(self, t) return math.floor(self:combatTalentLimit(t, 8, 3, 5)) end,
-	getAcid = function(self, t) return math.floor(self:combatTalentLimit(t, 8, 2, 5)) end,
-	getNature = function(self, t) return self:combatTalentLimit(t, 60, 15, 45) end,
+	getLightning = function(self, t) return math.floor(self:combatTalentLimit(t, 8, 3, 6)) end,
+	getAcid = function(self, t) return math.floor(self:combatTalentLimit(t, 8, 3, 6)) end,
+	getNature = function(self, t) return self:combatTalentLimit(t, 75, 25, 55) end,
 	callbackOnTakeDamage = function(self, t, src, x, y, type, dam, tmp)
 		local p = self:isTalentActive(t.id)
 		if not p then return end
@@ -171,7 +171,7 @@ newTalent{
 	no_npc_use = true,  -- Bypasses all forms of immunity and such
 	target = function(self, t) return {type="hit", range=self:getTalentRange(t), talent=t} end,
 	getNb = function(self, t) return math.floor(self:combatTalentScale(t, 2, 4, "log")) end,
-	getDam = function(self, t) return self:combatTalentLimit(t, 2, 10, 5) end, --Limit < 10% life/effect
+	getDam = function(self, t) return self:combatTalentLimit(t, 2, 10, 3) end, --Limit < 10% life/effect
 	getVim = function(self, t) return 18 end,
 	action = function(self, t)
 		local tg = self:getTalentTarget(t)
-- 
GitLab