From c9e1ea5e90c9f3d52ce847b34d863adcb6a7558f Mon Sep 17 00:00:00 2001
From: DarkGod <darkgod@net-core.org>
Date: Mon, 12 May 2014 02:32:08 +0200
Subject: [PATCH] fixed scaling on psi talents

reverted unarmed mastery change because, well it did nothing; masteries dont work that way :/
---
 .../tome/data/talents/psionic/absorption.lua  |  6 +++---
 .../talents/psionic/augmented-mobility.lua    | 21 ++++++++++---------
 .../talents/psionic/mental-discipline.lua     |  8 +++++--
 .../talents/techniques/unarmed-training.lua   |  2 +-
 4 files changed, 21 insertions(+), 16 deletions(-)

diff --git a/game/modules/tome/data/talents/psionic/absorption.lua b/game/modules/tome/data/talents/psionic/absorption.lua
index fa2a102935..8d3df95314 100644
--- a/game/modules/tome/data/talents/psionic/absorption.lua
+++ b/game/modules/tome/data/talents/psionic/absorption.lua
@@ -71,7 +71,7 @@ newTalent{
 	mode = "sustained", no_sustain_autoreset = true,
 	points = 5,
 	sustain_psi = 10,
-	cooldown = function(self, t) return 15 - self:getTalentLevelRaw(t) end,
+	cooldown = function(self, t) return math.ceil(self:combatTalentLimit(t, 5, 14, 10, true)) end, --Limit > 5 Note: Shield Discipline
 	range = 10,
 	no_energy = true,
 	tactical = { DEFEND = 2 },
@@ -199,7 +199,7 @@ newTalent{
 	mode = "sustained", no_sustain_autoreset = true,
 	points = 5,
 	sustain_psi = 10,
-	cooldown = function(self, t) return 15 - self:getTalentLevelRaw(t) end,
+	cooldown = function(self, t) return math.ceil(self:combatTalentLimit(t, 5, 14, 10, true)) end, --Limit > 5 Note: Shield Discipline
 	range = 10,
 	no_energy = true,
 	tactical = { DEFEND = 2 },
@@ -324,7 +324,7 @@ newTalent{
 	mode = "sustained", no_sustain_autoreset = true,
 	points = 5,
 	sustain_psi = 10,
-	cooldown = function(self, t) return 15 - self:getTalentLevelRaw(t) end,
+	cooldown = function(self, t) return math.ceil(self:combatTalentLimit(t, 5, 14, 10, true)) end, --Limit > 5 Note: Shield Discipline
 	range = 10,
 	no_energy = true,
 	tactical = { DEFEND = 2 },
diff --git a/game/modules/tome/data/talents/psionic/augmented-mobility.lua b/game/modules/tome/data/talents/psionic/augmented-mobility.lua
index 21345f4d03..cd012dba71 100644
--- a/game/modules/tome/data/talents/psionic/augmented-mobility.lua
+++ b/game/modules/tome/data/talents/psionic/augmented-mobility.lua
@@ -28,10 +28,11 @@ newTalent{
 	no_energy = true,
 	tactical = { BUFF = 2 },
 	getSpeed = function(self, t) return self:combatTalentScale(t, 0.2, 1.0, 0.75) end,
+	getKBVulnerable = function(self, t) return self:combatTalentLimit(t, 1, 0.2, 0.8) end,
 	activate = function(self, t)
 		return {
 			speed = self:addTemporaryValue("movement_speed", t.getSpeed(self, t)),
-			knockback = self:addTemporaryValue("knockback_immune", -t.getSpeed(self, t))
+			knockback = self:addTemporaryValue("knockback_immune", -t.getKBVulnerable(self, t))
 		}
 	end,
 	deactivate = function(self, t, p)
@@ -41,9 +42,10 @@ newTalent{
 	end,
 	info = function(self, t)
 		local inc = t.getSpeed(self, t)
-		return ([[Gently float yourself a little above the ground, allowing you to slide around the battle quickly.
-		Increases your movement speed and decreases your knockback resistance by %d%%.]]):
-		format(inc*100)
+		return ([[You telekinetically float just off the ground.
+		This allows you to slide around the battle quickly, increasing your movement speed by %d%%.
+		It also makes you more vulnerable to being pushed around (-%d%% knockback resistance).]]):
+		format(inc*100, t.getKBVulnerable(self, t)*100)
 	end,
 }
 
@@ -56,7 +58,7 @@ newTalent{
 	points = 5,
 	tactical = { CLOSEIN = 2 },
 	range = function(self, t)
-		return self:combatTalentLimit(t, 10, 4, 9) -- Limit base range to 10
+		return self:combatTalentLimit(t, 10, 4, 9) -- Limit < 10
 	end,
 	action = function(self, t)
 		local tg = {type="bolt", range=self:getTalentRange(t)}
@@ -77,8 +79,7 @@ newTalent{
 	info = function(self, t)
 		local range = self:getTalentRange(t)
 		return ([[Briefly extend your telekinetic reach to grab an enemy and haul them towards you.
-		Works on enemies up to %d squares away. The cooldown decreases, and the range increases, with additional talent points spent.
-		This talent receives a reduced benefit from the Reach talent.]]):
+		Works on enemies up to %d squares away. The cooldown decreases, and the range increases, with additional talent points spent.]]):
 		format(range)
 	end,
 }
@@ -92,7 +93,7 @@ newTalent{
 	psi = 30,
 	no_energy = true,
 	require = psi_cun_req3,
-	getDuration = function(self, t) return math.floor(self:combatLimit(self:combatMindpower(0.1), 10, 4, 0, 6, 6)) end, -- Limit < 80
+	getDuration = function(self, t) return math.floor(self:combatLimit(self:combatMindpower(0.1), 10, 4, 0, 6, 6)) end, -- Limit < 10
 	speed = function(self, t) return self:combatTalentScale(t, 0.6, 2.0, 0.75) end,
 	getBoost = function(self, t)
 		return self:combatScale(self:getTalentLevel(t)*self:combatStatTalentIntervalDamage(t, "combatMindpower", 1, 9), 15, 0, 49, 34)
@@ -107,7 +108,7 @@ newTalent{
 		local percentinc = 100 * inc
 		local boost = t.getBoost(self, t)
 		return ([[Encase your body in a sheath of thought-quick forces, allowing you to control your body's movements directly without the inefficiency of dealing with crude mechanisms like nerves and muscles.
-		Increases Accuracy by %d, your critical strike chance by %0.2f%% and your physical speed by %d%% for %d turns.
+		Increases Accuracy by %d, your critical strike chance by %0.1f%% and your physical speed by %d%% for %d turns.
 		The duration improves with your Mindpower.]]):
 		format(boost, 0.5*boost, percentinc, t.getDuration(self, t))
 	end,
@@ -123,7 +124,7 @@ newTalent{
 	points = 5,
 	tactical = { CLOSEIN = 2 },
 	range = function(self, t)
-		return self:combatTalentLimit(t, 10, 4, 9) -- Limit base range to 10
+		return self:combatTalentLimit(t, 10, 4, 9) -- Limit < 10
 	end,
 	action = function(self, t)
 		local tg = {default_target=self, type="ball", nolock=true, pass_terrain=false, nowarning=true, range=self:getTalentRange(t), radius=0, requires_knowledge=false}
diff --git a/game/modules/tome/data/talents/psionic/mental-discipline.lua b/game/modules/tome/data/talents/psionic/mental-discipline.lua
index c4a818e5f6..801b93ddaf 100644
--- a/game/modules/tome/data/talents/psionic/mental-discipline.lua
+++ b/game/modules/tome/data/talents/psionic/mental-discipline.lua
@@ -43,12 +43,16 @@ newTalent{
 	points = 5,
 	mode = "passive",
 	mastery = function(self,t) return self:combatTalentLimit(t, 20, 3, 10) end, -- Adjustment to damage absorption, Limit to 20
-	cooldownred = function(self,t) return math.floor(self:combatTalentLimit(t, 16, 4, 10)) end,  -- Limit to <16 turns reduction
+	cooldownred = function(self,t) return math.floor(self:combatTalentLimit(t, 5, 1, 3)) end,  -- Limit to <5 turns reduction
 	absorbLimit = function(self,t) return self:combatTalentScale(t, 0.5, 2) end, -- Limit of bonus psi on shield hit per turn
+	passives = function(self, t, p)
+		self:talentTemporaryValue(p, "talent_cd_reduction", {T_KINETIC_SHIELD = t.cooldownred(self, t),
+			T_THERMAL_SHIELD = t.cooldownred(self, t),T_CHARGED_SHIELD = t.cooldownred(self, t)})
+	end,
 	info = function(self, t)
 		local cooldown = t.cooldownred(self,t)
 		local mast = t.mastery(self,t)
-		return ([[Your expertise in the art of energy absorption grows. Shield cooldowns are all reduced by %d turns, the amount of damage absorption required to gain a point of energy is reduced by %0.1f, and the maximum energy you can gain from each shield is increased by %0.1f per turn.]]):
+		return ([[Your expertise in the art of energy absorption grows. Shield cooldowns are all reduced by %d turn(s), the amount of damage absorption required to gain a point of energy is reduced by %0.1f, and the maximum energy you can gain from each shield is increased by %0.1f per turn.]]):
 		format(cooldown, mast, t.absorbLimit(self, t))
 	end,
 }
diff --git a/game/modules/tome/data/talents/techniques/unarmed-training.lua b/game/modules/tome/data/talents/techniques/unarmed-training.lua
index 5e823c3581..f91190ec05 100644
--- a/game/modules/tome/data/talents/techniques/unarmed-training.lua
+++ b/game/modules/tome/data/talents/techniques/unarmed-training.lua
@@ -61,7 +61,7 @@ newTalent{
 	points = 5,
 	require = { stat = { cun=function(level) return 12 + level * 6 end }, },
 	mode = "passive",
-	getDamage = function(self, t) return self:combatTalentScale(t, 10, 30, 0.5) end,
+	getDamage = function(self, t) return self:getTalentLevel(t) * 10 end,
 	getPercentInc = function(self, t) return math.sqrt(self:getTalentLevel(t) / 5) / 4 end,
 	info = function(self, t)
 		local damage = t.getDamage(self, t)
-- 
GitLab