diff --git a/game/modules/tome/class/interface/Combat.lua b/game/modules/tome/class/interface/Combat.lua
index 818c46cd478ee3d9c4e3d83a38e3450f532630f3..5036e039815067669a300432e6906e2a69fb663b 100644
--- a/game/modules/tome/class/interface/Combat.lua
+++ b/game/modules/tome/class/interface/Combat.lua
@@ -1245,6 +1245,7 @@ function _M:physicalCrit(dam, weapon, target, atk, def, add_chance, crit_power_a
 		dam = dam * (1.5 + crit_power_add + (self.combat_critical_power or 0) / 100)
 		crit = true
 
+		if self:knowTalent(self.T_EYE_OF_THE_TIGER) then self:triggerTalent(self.T_EYE_OF_THE_TIGER, nil, "physical") end
 	end
 	return dam, crit
 end
@@ -1286,6 +1287,8 @@ function _M:spellCrit(dam, add_chance, crit_power_add)
 			local t = self:getTalentFromId(self.T_CORONA)
 			t.on_crit(self, t)
 		end
+
+		if self:knowTalent(self.T_EYE_OF_THE_TIGER) then self:triggerTalent(self.T_EYE_OF_THE_TIGER, nil, "spell") end
 	end
 	return dam, crit
 end
@@ -1311,6 +1314,7 @@ function _M:mindCrit(dam, add_chance, crit_power_add)
 		if self:attr("psi_on_crit") then self:incPsi(self:attr("psi_on_crit")) end
 		if self:attr("equilibrium_on_crit") then self:incEquilibrium(self:attr("equilibrium_on_crit")) end
 
+		if self:knowTalent(self.T_EYE_OF_THE_TIGER) then self:triggerTalent(self.T_EYE_OF_THE_TIGER, nil, "mind") end
 	end
 	return dam, crit
 end
diff --git a/game/modules/tome/data/talents/uber/cun.lua b/game/modules/tome/data/talents/uber/cun.lua
index b7bc6c93018ee3524be99776ea96bcdb3a6e220d..5589bebaa9f43b575f079f7d35973b2e076cb7b2 100644
--- a/game/modules/tome/data/talents/uber/cun.lua
+++ b/game/modules/tome/data/talents/uber/cun.lua
@@ -176,3 +176,51 @@ uberTalent{
 		:format(self:getCun() / 2.5, self:getCun() / 2, self:getCun() / 2.5, self:getCun() / 2)
 	end,
 }
+
+uberTalent{
+	name = "Eye of the Tiger",
+	mode = "passive",
+	trigger = function(self, t, kind)
+		local tids = {}
+
+		for tid, _ in pairs(self.talents_cd) do
+			local t = self:getTalentFromId(tid)
+			if 
+				(kind == "physical" and
+					(
+						t.type[1]:find("^technique/") or
+						t.type[1]:find("^cunning/")
+					)
+				) or
+				(kind == "spell" and
+					(
+						t.type[1]:find("^spell/") or
+						t.type[1]:find("^corruption/") or
+						t.type[1]:find("^celestial/") or
+						t.type[1]:find("^chronomancy/")
+					)
+				) or
+				(kind == "mind" and
+					(
+						t.type[1]:find("^wild%-gift/") or
+						t.type[1]:find("^cursed/") or
+						t.type[1]:find("^psionic/")
+					)
+				)
+				then
+				tids[#tids+1] = tid
+			end
+		end
+		if #tids == 0 then return end
+		local tid = rng.table(tids)
+		self.talents_cd[tid] = self.talents_cd[tid] - (kind == "spell" and 1 or 2)
+		if self.talents_cd[tid] <= 0 then self.talents_cd[tid] = nil end
+		self.changed = true
+	end,
+	info = function(self, t)
+		return ([[All physical criticals reduce the remaining cooldown of a random technique or cunning talent by 2.
+		All spell criticals reduce the remaining cooldown of a random spell talent by 1.
+		All mind criticals reduce the remaining cooldown of a random wild gift/psionic/afflicted talent by 2.]])
+		:format()
+	end,
+}