diff --git a/game/modules/tome/data/talents/psionic/absorption.lua b/game/modules/tome/data/talents/psionic/absorption.lua
index 77fc5faf1ff6ccfaa1e6c9e3996068b6c4b41784..8d84b7f305b36820dd24617ecc88d175e035267c 100644
--- a/game/modules/tome/data/talents/psionic/absorption.lua
+++ b/game/modules/tome/data/talents/psionic/absorption.lua
@@ -217,7 +217,7 @@ newTalent{
 		local s_str = getShieldStrength(self, t)
 		local absorb = 100*getEfficiency(self,t)
 		return ([[Surround yourself with a shield that will absorb %d%% of any physical/acid/nature/temporal attack, up to a maximum of %d damage per attack.
-		Every time your shield absorbs damage, you convert some of the attack into energy, gaining two points of Psi, plus an additional point for every %0.1f points of damage absorbed, up to a maximum %0.1f points each turn.
+		Every time your shield absorbs damage, you convert some of the attack into energy, gaining one point of Psi, plus an additional point for every %0.1f points of damage absorbed, up to a maximum %0.1f points each turn.
 		At talent level 3, when you de-activate the shield twice the absorbed damage (if any) in the last 3 turns is released as a full psionic shield (absorbing all damage).
 		The maximum amount of damage your shield can absorb and the efficiency of the psi gain scale with your mindpower.]]):
 		format(absorb, s_str, shieldMastery(self, t), maxPsiAbsorb(self,t))
@@ -359,7 +359,7 @@ newTalent{
 		local s_str = getShieldStrength(self, t)
 		local absorb = 100*getEfficiency(self,t)
 		return ([[Surround yourself with a shield that will absorb %d%% of any fire/cold/light/arcane attack, up to a maximum of %d damage per attack. 
-		Every time your shield absorbs damage, you convert some of the attack into energy, gaining two points of Psi, plus an additional point for every %0.1f points of damage absorbed, up to a maximum %0.1f points each turn.
+		Every time your shield absorbs damage, you convert some of the attack into energy, gaining one point of Psi, plus an additional point for every %0.1f points of damage absorbed, up to a maximum %0.1f points each turn.
 		At talent level 3, when you de-activate the shield twice the absorbed damage (if any) in the last 3 turns is released as a full psionic shield (absorbing all damage).
 		The maximum amount of damage your shield can absorb and the efficiency of the psi gain scale with your mindpower.]]):
 		format(absorb, s_str, shieldMastery(self, t), maxPsiAbsorb(self,t))
@@ -501,7 +501,7 @@ newTalent{
 		local s_str = getShieldStrength(self, t)
 		local absorb = 100*getEfficiency(self,t)
 		return ([[Surround yourself with a shield that will absorb %d%% of any lightning/blight/darkness/mind attack, up to a maximum of %d damage per attack.
-		Every time your shield absorbs damage, you convert some of the attack into energy, gaining two points of Psi, plus an additional point for every %0.1f points of damage absorbed, up to a maximum %0.1f points each turn.
+		Every time your shield absorbs damage, you convert some of the attack into energy, gaining one point of Psi, plus an additional point for every %0.1f points of damage absorbed, up to a maximum %0.1f points each turn.
 		At talent level 3, when you de-activate the shield twice the absorbed damage (if any) in the last 3 turns is released as a full psionic shield (absorbing all damage).
 		The maximum amount of damage your shield can absorb and the efficiency of the psi gain scale with your mindpower.]]):
 		format(absorb, s_str, shieldMastery(self, t), maxPsiAbsorb(self,t))
diff --git a/game/modules/tome/data/talents/psionic/augmented-mobility.lua b/game/modules/tome/data/talents/psionic/augmented-mobility.lua
index b178442f8442af7bc88bbbbbe44c4ebd19125008..23ee3bab0680ae634cfe0db430f9f29330703841 100644
--- a/game/modules/tome/data/talents/psionic/augmented-mobility.lua
+++ b/game/modules/tome/data/talents/psionic/augmented-mobility.lua
@@ -87,7 +87,7 @@ newTalent{
 	psi = 10,
 	points = 5,
 	tactical = { CLOSEIN = 2 },
-	range = function(self, t) return self:combatTalentLimit(t, 10, 3, 7) end, -- Limit base range to 10
+	range = function(self, t) return math.floor(self:combatTalentLimit(t, 10, 3, 7)) end, -- Limit base range to 10
 	action = function(self, t)
 		local tg = {type="bolt", range=self:getTalentRange(t)}
 		local x, y = self:getTarget(tg)
diff --git a/game/modules/tome/data/talents/psionic/charged-mastery.lua b/game/modules/tome/data/talents/psionic/charged-mastery.lua
index fe1ce5db5af3d20587f5a4473086f425128fd24e..edcb287a1310d3f4217e741291ce13b02be0a259 100644
--- a/game/modules/tome/data/talents/psionic/charged-mastery.lua
+++ b/game/modules/tome/data/talents/psionic/charged-mastery.lua
@@ -43,12 +43,12 @@ newTalent{
 	info = function(self, t)
 		return ([[For %d turns your electrokinesis transcends your normal limits, increasing your Lightning damage by %d%% and your Lightning resistance penetration by %d%%.
 		In addition:
-		The cooldowns of Charged Shield, Charged Leech, Charged Aura and Brainstorm are reset.
+		The cooldowns of Charged Shield, Charged Leech, Charged Aura, Charged Strike and Brainstorm are reset.
 		Charged Aura effects will have their radius increased by 1.
 		Your Charged Shield will have 100%% absorption efficiency and will absorb twice the normal amount of damage.
 		Brainstorm will also inflict blindness.
 		Charge Leech will also inflict confusion (%d%% effect).
-		Charged Strike will have its secondary lightning/blind burst chain to up to 3 targets in a radius of 3.
+		Charged Strike will have its secondary lightning burst chain to up to 3 targets in a radius of 3.
 		The damage bonus and resistance penetration scale with your Mindpower.
 		Only one Transcendent talent may be in effect at a time.]]):format(t.getDuration(self, t), t.getPower(self, t), t.getPenetration(self, t), t.getConfuse(self, t))
 	end,
@@ -72,7 +72,7 @@ newTalent{
 	info = function(self, t)
 		return ([[Detect the mental activity of creatures in a radius of %d for %d turns.
 		This reveals their location and boosts your defense by %d.
-		The duration, defense, and radius scale with your Mindpower.]]):format(t.radius(self, t), t.getDuration(self, t), t.getDefense(self, t))
+		The defense scales with you Mindpower and the range with your Willpower.]]):format(t.radius(self, t), t.getDuration(self, t), t.getDefense(self, t))
 	end,
 }
 
@@ -83,19 +83,19 @@ newTalent{
 	points = 5,
 	random_ego = "attack",
 	psi = 32,
-	cooldown = 13,
+	cooldown = 23,
 	tactical = { ATTACKAREA = { LIGHTNING = 2 } },
 	range = 8,
-	radius = function(self,t) return math.floor(self:combatTalentScale(t, 2, 5)) end,
+	radius = function(self,t) return math.floor(self:combatTalentScale(t, 2, 4)) end,
 	direct_hit = true,
 	requires_target = true,
 	target = function(self, t)
 		return {type="ball", range=self:getTalentRange(t), radius=self:getTalentRadius(t)}
 	end,
 	getSlow = function(self, t) return self:combatLimit(self:combatTalentMindDamage(t, 5, 50), 50, 4, 4, 34, 34) end, -- Limit < 50%
-	getDamage = function(self, t) return self:combatTalentMindDamage(t, 20, 130) end,
+	getDamage = function(self, t) return self:combatTalentMindDamage(t, 20, 100) end,
 	getWeaponDamage = function(self, t) return self:combatTalentMindDamage(t, 10, 50) end,
-	getDuration = function(self, t) return math.floor(self:combatTalentScale(t, 3, 9)) end,
+	getDuration = function(self, t) return math.floor(self:combatTalentScale(t, 3, 6)) end,
 	action = function(self, t)
 		local tg = self:getTalentTarget(t)
 		local x, y = self:getTarget(tg)
diff --git a/game/modules/tome/data/talents/psionic/focus.lua b/game/modules/tome/data/talents/psionic/focus.lua
index 7ab7cc1edf981a78a34a33c55169fa050ec3b19b..952213b5bea27c93ec16f1d7af43418828a521b4 100644
--- a/game/modules/tome/data/talents/psionic/focus.lua
+++ b/game/modules/tome/data/talents/psionic/focus.lua
@@ -66,7 +66,7 @@ newTalent{
 
 newTalent{
 	name = "Pyrokinesis",
-	type = {"psionic/focus", 2},
+	type = {"psionic/focus", 1},
 	require = psi_wil_req2,
 	points = 5,
 	random_ego = "attack",
@@ -96,13 +96,13 @@ newTalent{
 		local radius = self:getTalentRadius(t)
 		local dam = t.getDamage(self, t)
 		return ([[Telekinetically energize the matter of all foes within %d squares at the molecular level, setting them ablaze. This does %0.1f fire damage over six turns.]]):
-		format(radius, damDesc(self, DamageType.FIREBURN, dam))
+		format(radius, damDesc(self, DamageType.FIRE, dam))
 	end,
 }
 
 newTalent{
 	name = "Brain Storm",
-	type = {"psionic/focus", 3},
+	type = {"psionic/focus", 1},
 	points = 5, 
 	require = psi_wil_req3,
 	psi = 15,
diff --git a/game/modules/tome/data/talents/psionic/kinetic-mastery.lua b/game/modules/tome/data/talents/psionic/kinetic-mastery.lua
index 93d8025d6189f8778ed2c37f11e592107b1acefe..9d8d4c16aa157c8ddeee51da2591ecbfae3027b6 100644
--- a/game/modules/tome/data/talents/psionic/kinetic-mastery.lua
+++ b/game/modules/tome/data/talents/psionic/kinetic-mastery.lua
@@ -42,7 +42,7 @@ newTalent{
 	info = function(self, t)
 		return ([[For %d turns your telekinesis transcends your normal limits, increasing your Physical damage by %d%% and you Physical resistance penetration by %d%%.
 		In addition:
-		The cooldowns of Kinetic Shield, Kinetic Leech, Kinetic Aura and Mindlash are reset.
+		The cooldowns of Kinetic Shield, Kinetic Leech, Kinetic Aura, Kinetic Strike and Mindlash are reset.
 		Kinetic Aura effects will have their radius increased by 1.
 		Your Kinetic Shield will have 100%% absorption efficiency and will absorb twice the normal amount of damage.
 		Mindlash will also inflict stun.
@@ -146,7 +146,7 @@ newTalent{
 		
 		When used on yourself, you will launch in a straight line, knocking enemies flying and doing %0.1f Physical damage to each.
 		You can break through %d walls while doing this.
-		The damage improves with your Mindpower and the range increases with both Mindpower and Strength.]]):
+		The damage improves with your Mindpower and the range increases with Mindpower.]]):
 		format(range, dam, math.floor(range/2), dam/2, t.getKBResistPen(self, t), dam, math.floor(range/2))
 	end,
 }
@@ -234,11 +234,14 @@ newTalent{
 		local tg = self:getTalentTarget(t)
 		local x, y = self:getTarget(tg)
 		if not x or not y then return nil end
-		self:project(tg, x, y, DamageType.IMPLOSION, {dur=dur, dam=dam})
-		local target = game.level.map(x, y, Map.ACTOR)
-		if target then
-			target:setEffect(self.EFF_PSIONIC_BIND, dur, {power=1, apply_power=self:combatMindpower()})
-		end
+		
+		self:project(tg, x, y, function(px, py)
+			DamageType:get(DamageType.IMPLOSION).projector(self, px, py, DamageType.IMPLOSION, {dur=dur, dam=dam})
+			local act = game.level.map(px, py, Map.ACTOR)
+			if not act then return end
+			act:setEffect(self.EFF_PSIONIC_BIND, dur, {power=1, apply_power=self:combatMindpower()})
+		end)
+		
 		return true
 	end,
 	info = function(self, t)
diff --git a/game/modules/tome/data/talents/psionic/other.lua b/game/modules/tome/data/talents/psionic/other.lua
index 925b3ca3fd171ceefe0142744f5b5ffb31e3ba01..d2a0f0c6b3ebdc1e16be05aeadd16394a714c086 100644
--- a/game/modules/tome/data/talents/psionic/other.lua
+++ b/game/modules/tome/data/talents/psionic/other.lua
@@ -274,7 +274,7 @@ newTalent{
 	info = function(self, t)
 		local base = [[Allows you to wield a physical melee weapon, a mindstar or a gem telekinetically, gaining a special effect for each.
 		A gem will provide +3 bonus to all primary stats per tier of the gem.
-		A mindstar will randomly try to telekinetically grab a far away foe (5% chance and range 2 for a tier 1 mindstar, +1 range and +5% chance for each tier above 1) and pull it into melee range.
+		A mindstar will randomly try to telekinetically grab a far away foe (10% chance and range 2 for a tier 1 mindstar, +1 range and +5% chance for each tier above 1) and pull it into melee range.
 		A physical melee weapon will act as a semi independant entity, attacking foes nearby each turn while also replacing Strength and Dexterity with Willpower and Cunning for accuracy and damage calculations. This stat usage modification will also apply to conventionally wielded weapons.
 
 		]]
@@ -290,7 +290,7 @@ newTalent{
 		local speed = 1
 		if o.type == "gem" then
 			local ml = o.material_level or 1
-			base = base..([[The telekinetically-wielded gem grants you +%d stats.]]):format(ml * 4)
+			base = base..([[The telekinetically-wielded gem grants you +%d stats.]]):format(ml * 3)
 		elseif o.subtype == "mindstar" then
 			local ml = o.material_level or 1			
 			base = base..([[The telekinetically-wielded mindstar has a %d%% chance to grab a foe up to %d range away.]]):format((ml + 1) * 5, ml + 2)
diff --git a/game/modules/tome/data/talents/psionic/thermal-mastery.lua b/game/modules/tome/data/talents/psionic/thermal-mastery.lua
index 8db94a49458028dc9e84699171845c42ef7342fe..decb0d6dee2d0fef8a9ec227d27b82f84775923c 100644
--- a/game/modules/tome/data/talents/psionic/thermal-mastery.lua
+++ b/game/modules/tome/data/talents/psionic/thermal-mastery.lua
@@ -43,7 +43,7 @@ newTalent{
 	info = function(self, t)
 		return ([[For %d turns your pyrokinesis transcends your normal limits, increasing your Fire and Cold damage by %d%% and your Fire and Cold resistance penetration by %d%%.
 		In addition:
-		The cooldowns of Thermal Shield, Thermal Leech, Thermal Aura and Pyrokinesis are reset.
+		The cooldowns of Thermal Shield, Thermal Leech, Thermal Aura, Thermal Strike and Pyrokinesis are reset.
 		Thermal Aura effects will have their radius increased by 1.
 		Your Thermal Shield will have 100%% absorption efficiency and will absorb twice the normal amount of damage.
 		Pyrokinesis will inflict Flameshock.
@@ -77,8 +77,12 @@ newTalent{
 		local target = game.level.map(x, y, Map.ACTOR)
 		if not target then return end
 		
-		self:project(tg, x, y, DamageType.COLD, self:mindCrit(rng.avg(0.8*dam, dam)), {type="mindsear"})
-		target:setEffect(target.EFF_BRAINLOCKED, 4, {apply_power=self:combatMindpower()})
+		self:project(tg, x, y, function(px, py)
+			DamageType:get(DamageType.COLD).projector(self, px, py, DamageType.COLD, self:mindCrit(rng.avg(0.8*dam, dam)))
+			local act = game.level.map(px, py, Map.ACTOR)
+			if not act then return end
+			act:setEffect(target.EFF_BRAINLOCKED, 4, {apply_power=self:combatMindpower()})
+		end, {type="mindsear"})
 		
 		return true
 	end,
diff --git a/game/modules/tome/data/talents/psionic/voracity.lua b/game/modules/tome/data/talents/psionic/voracity.lua
index dd766be58ac83c765f75b10c1f867103eae5f75e..aed01c735f4d3551ecd25afc2449b9e5093e6131 100644
--- a/game/modules/tome/data/talents/psionic/voracity.lua
+++ b/game/modules/tome/data/talents/psionic/voracity.lua
@@ -31,7 +31,7 @@ newTalent{
 	direct_hit = true,
 	requires_target = true,
 	range = 0,
-	radius = function(self,t) return self:combatTalentScale(t, 1, 4) end,
+	radius = function(self,t) return math.floor(self:combatTalentScale(t, 1, 4)) end,
 	target = function(self, t)
 		return {type="ball", range=self:getTalentRange(t), radius=self:getTalentRadius(t), selffire=false, talent=t}
 	end,
@@ -97,7 +97,7 @@ newTalent{
 	direct_hit = true,
 	requires_target = true,
 	range = 0,
-	radius = function(self,t) return self:combatTalentScale(t, 1, 4) end,
+	radius = function(self,t) return math.floor(self:combatTalentScale(t, 1, 4)) end,
 	target = function(self, t)
 		return {type="ball", range=self:getTalentRange(t), radius=self:getTalentRadius(t), selffire=false, talent=t}
 	end,
@@ -157,7 +157,7 @@ newTalent{
 	direct_hit = true,
 	requires_target = true,
 	range = 0,
-	radius = function(self,t) return self:combatTalentScale(t, 1, 4) end,
+	radius = function(self,t) return math.floor(self:combatTalentScale(t, 1, 4)) end,
 	target = function(self, t)
 		return {type="ball", range=self:getTalentRange(t), radius=self:getTalentRadius(t), selffire=false, talent=t}
 	end,