diff --git a/game/modules/tome/class/GameState.lua b/game/modules/tome/class/GameState.lua
index bd0e1c7e4e96248ae3c89755c08be42aaff16a40..fa6ce75b1c2bc97a4c3cce318c0b3aed5b124db1 100644
--- a/game/modules/tome/class/GameState.lua
+++ b/game/modules/tome/class/GameState.lua
@@ -2176,14 +2176,14 @@ function _M:applyRandomClass(b, data, instant)
 		local nb_focus, nb_shallow = 0, 0
 		local rank = b.rank
 		if rank <= 3.2 then 	--rare
-			nb_focus = math.floor(0.2 + rng.float(0.25, 0.35)*(math.max(0,data.level-3))^0.5)
-			nb_shallow = 2 + math.floor(0.25 + rng.float(0.1, 0.2)*(math.max(0,data.level-6))^0.5)
+			nb_focus = math.floor(0.2 + rng.float(0.22, 0.35)*(math.max(0,data.level-3))^0.5)
+			nb_shallow = 2 + math.floor(0.25 + rng.float(0.08, 0.2)*(math.max(0,data.level-6))^0.5)
 		elseif rank >= 4 then 	--boss/elite boss 
-			nb_focus = 1 + math.floor(0.25 + rng.float(0.18, 0.33)*(math.max(0,data.level-6))^0.5)
-			nb_shallow = 1 + math.floor(0.3 + rng.float(0.125, 0.2)*(math.max(0,data.level-4))^0.5)
+			nb_focus = 1 + math.floor(0.25 + rng.float(0.15, 0.35)*(math.max(0,data.level-6))^0.5)
+			nb_shallow = 1 + math.floor(0.3 + rng.float(0.1, 0.2)*(math.max(0,data.level-4))^0.5)
 		else 					--unique
 			nb_focus = 1 + math.floor(0.2 + rng.float(0.15, 0.3)*(math.max(0,data.level-10))^0.5)
-			nb_shallow = 1 + math.floor(0.55 + rng.float(0.125, 0.2)*(math.max(0,data.level-8))^0.5)
+			nb_shallow = 1 + math.floor(0.55 + rng.float(0.1, 0.2)*(math.max(0,data.level-8))^0.5)
 		end
 		print("Adding "..nb_focus.." primary trees to boss")
 		print("Adding "..nb_shallow.." secondary trees to boss")