diff --git a/game/modules/tome/data/general/objects/egos/ammo.lua b/game/modules/tome/data/general/objects/egos/ammo.lua
index 843914efb351c92310df4cbd401856aa9a4e72ea..4d6bbfff13700d62ac09fe5ba4a82e733cb65c79 100644
--- a/game/modules/tome/data/general/objects/egos/ammo.lua
+++ b/game/modules/tome/data/general/objects/egos/ammo.lua
@@ -97,6 +97,7 @@ newEntity{
 	name = " of annihilation", suffix=true,
 	level_range = {1, 50},
 	greater_ego = true,
+	cost = 35,
 	rarity = 15,
 	combat = {
 		physcrit = 100,
@@ -111,6 +112,7 @@ newEntity{
 	name = " of unerring flight", suffix=true,
 	level_range = {1, 50},
 	greater_ego = true,
+	cost = 35,
 	rarity = 15,
 	combat = {
 		atk = 500,
diff --git a/game/modules/tome/data/general/objects/egos/amulets.lua b/game/modules/tome/data/general/objects/egos/amulets.lua
index 4cdfb3e1db10c7af8fb915ba212dcaa151abc37d..1c43e89ee69f95faad7f5b9cb95fccd358978eae 100644
--- a/game/modules/tome/data/general/objects/egos/amulets.lua
+++ b/game/modules/tome/data/general/objects/egos/amulets.lua
@@ -19,6 +19,8 @@
 
 local Stats = require "engine.interface.ActorStats"
 local DamageType = require "engine.DamageType"
+local Talents = require "engine.interface.ActorTalents"
+
 
 --load("/data/general/objects/egos/charged-attack.lua")
 --load("/data/general/objects/egos/charged-defensive.lua")
@@ -109,51 +111,53 @@ newEntity{
 	end}
 }
 
+
+
 newEntity{
-	name = "shielding ", prefix=true,
+	name = "insulating ", prefix=true,
 	level_range = {1, 50},
 	rarity = 6,
 	cost = 5,
 	wielder = {
-		blind_immune = 0.15,
-		confusion_immune = 0.15,
+		resists={
+			[DamageType.FIRE] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
+			[DamageType.COLD] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
+		},
 	},
 }
 
 newEntity{
-	name = "insulating ", prefix=true,
+	name = "grounding ", prefix=true, instant_resolve=true,
 	level_range = {1, 50},
 	rarity = 6,
 	cost = 5,
 	wielder = {
 		resists={
-			[DamageType.FIRE] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
-			[DamageType.COLD] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
+			[DamageType.LIGHTNING] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
 		},
+		stun_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end),
 	},
 }
 
 newEntity{
-	name = "grounding ", prefix=true,
+	name = "stabilizing ", prefix=true, instant_resolve=true,
 	level_range = {1, 50},
 	rarity = 6,
 	cost = 5,
 	wielder = {
-		resists={
-			[DamageType.LIGHTNING] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
-		},
-		stun_immune = 0.1,
+		stun_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end),
+		knockback_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end),
 	},
 }
 
 newEntity{
-	name = "stabilizing ", prefix=true,
+	name = "shielding ", prefix=true,
 	level_range = {1, 50},
 	rarity = 6,
 	cost = 5,
 	wielder = {
-		stun_immune = 0.15,
-		knockback_immune = 0.15,
+		blind_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end),
+		confusion_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end),
 	},
 }
 
@@ -184,9 +188,99 @@ newEntity{
 		inc_stats={
 			[Stats.STAT_CON] = resolvers.mbonus_material(4, 2, function(e, v) return v * 3 end),
 		},
-		combat_physresist = 5,
+		combat_physresist = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end),
 		max_life = resolvers.mbonus_material(50, 30, function(e, v) return v * 0.1 end),
 		life_regen = resolvers.mbonus_material(12, 3, function(e, v) v=v/10 return v * 10, v end),
-		max_stamina = 20,
+		max_stamina = resolvers.mbonus_material(20, 10, function(e, v) return v * 0.1 end),
+	},
+}
+
+
+newEntity{
+	name = " of murder", suffix=true, instant_resolve=true,
+	level_range = {30, 50},
+	greater_ego = true,
+	rarity = 16,
+	cost = 40,
+	wielder = {
+		combat_physcrit = resolvers.mbonus_material(3, 3, function(e, v) return v * 1.4 end),
+		combat_critical_power = resolvers.mbonus_material(10, 10, function(e, v) v=v/100 return v * 200, v end),
+		combat_atk = resolvers.mbonus_material(5, 5, function(e, v) return v * 1 end),
+		combat_apr = resolvers.mbonus_material(4, 4, function(e, v) return v * 0.3 end),
+	},
+}
+
+
+newEntity{
+	name = " of vision", suffix=true, instant_resolve=true,
+	level_range = {25, 50},
+	greater_ego = true,
+	rarity = 15,
+	cost = 30,
+	wielder = {
+		see_invisible = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.2 end),
+		blind_immune = resolvers.mbonus_material(30, 10, function(e, v) v=v/100 return v * 80, v end),
+		infravision = resolvers.mbonus_material(2, 1, function(e, v) return v * 1.4 end),
+		trap_detect_power = resolvers.mbonus_material(15, 5, function(e, v) return v * 1.2 end),
+	},
+}
+
+
+newEntity{
+	name = " of healing", suffix=true, instant_resolve=true,
+	level_range = {35, 50},
+	greater_ego = true,
+	rarity = 18,
+	cost = 60,
+	wielder = {
+		healing_factor = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end),
+		cut_immune = resolvers.mbonus_material(4, 4, function(e, v) v=v/10 return v * 8, v end),
+	},
+	max_power = 80, power_regen = 1,
+	use_talent = { id = Talents.T_HEAL, level = 3, power = 80 },
+}
+
+newEntity{
+	name = "protective ", prefix=true, instant_resolve=true,
+	level_range = {30, 50},
+	greater_ego = true,
+	rarity = 16,
+	cost = 40,
+	wielder = {
+		combat_armor = resolvers.mbonus_material(3, 2, function(e, v) return v * 1 end),
+		combat_def = resolvers.mbonus_material(4, 4, function(e, v) return v * 1 end),
+		stun_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end),
+	},
+}
+
+newEntity{
+	name = "enraging ", prefix=true, instant_resolve=true,
+	level_range = {40, 50},
+	greater_ego = true,
+	rarity = 20,
+	cost = 90,
+	wielder = {
+		combat_dam = resolvers.mbonus_material(5, 5, function(e, v) return v * 3 end),
+		inc_damage = { [DamageType.PHYSICAL] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.8 end) },
+		combat_physspeed = -0.1,
+	},
+}
+
+
+newEntity{
+	name = "archmage's ", prefix=true, instant_resolve=true,
+	level_range = {30, 50},
+	greater_ego = true,
+	rarity = 16,
+	cost = 40,
+	wielder = {
+		combat_spellpower = resolvers.mbonus_material(3, 3, function(e, v) return v * 0.8 end),
+		combat_spellcrit = resolvers.mbonus_material(3, 3, function(e, v) return v * 0.4 end),
+		inc_damage = {
+			[DamageType.FIRE] = resolvers.mbonus_material(4, 4, function(e, v) return v * 0.25 end),
+			[DamageType.COLD] = resolvers.mbonus_material(4, 4, function(e, v) return v * 0.25 end),
+			[DamageType.ACID] = resolvers.mbonus_material(4, 4, function(e, v) return v * 0.25 end),
+			[DamageType.LIGHTNING] = resolvers.mbonus_material(4, 4, function(e, v) return v * 0.25 end),
+		},
 	},
 }
diff --git a/game/modules/tome/data/general/objects/egos/armor.lua b/game/modules/tome/data/general/objects/egos/armor.lua
index 1304891351477c471aede470e91f60a7adea2a4d..8a7f61aacbc04183d261357f7194f8970dee167c 100644
--- a/game/modules/tome/data/general/objects/egos/armor.lua
+++ b/game/modules/tome/data/general/objects/egos/armor.lua
@@ -72,8 +72,8 @@ newEntity{
 	rarity = 7,
 	cost = 6,
 	wielder = {
-		stun_immune = 0.7,
-		knockback_immune = 0.7,
+		stun_immune = resolvers.mbonus_material(40, 30, function(e, v) v=v/100 return v * 80, v end),
+		knockback_immune = resolvers.mbonus_material(40, 30, function(e, v) v=v/100 return v * 80, v end),
 	},
 }
 
@@ -96,7 +96,7 @@ newEntity{
 	rarity = 6,
 	cost = 7,
 	wielder = {
-		on_melee_hit={[DamageType.PHYSICAL] = resolvers.mbonus_material(10, 3, function(e, v) return v * 0.6 end)},
+		on_melee_hit={[DamageType.PHYSICAL] = resolvers.mbonus_material(10, 10, function(e, v) return v * 0.6 end)},
 	},
 }
 
@@ -107,8 +107,8 @@ newEntity{
 	cost = 7,
 	wielder = {
 		melee_project={
-			[DamageType.FIRE] = resolvers.mbonus_material(10, 4, function(e, v) return v * 0.7 end),
-			[DamageType.ACID] = resolvers.mbonus_material(10, 4, function(e, v) return v * 0.7 end),
+			[DamageType.FIRE] = resolvers.mbonus_material(8, 8, function(e, v) return v * 0.7 end),
+			[DamageType.ACID] = resolvers.mbonus_material(8, 8, function(e, v) return v * 0.7 end),
 		},
 	},
 }
@@ -119,7 +119,7 @@ newEntity{
 	rarity = 10,
 	cost = 15,
 	wielder = {
-		stamina_regen = 0.5,
+		stamina_regen = resolvers.mbonus_material(50, 20, function(e, v) v=v/100 return v * 100, v end),
 	},
 }
 
@@ -166,7 +166,7 @@ newEntity{
 		resists={
 			[DamageType.LIGHTNING] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
 		},
-		stun_immune = 0.3,
+		stun_immune = resolvers.mbonus_material(2, 2, function(e, v) v=v/10 return v * 8, v end),
 	},
 }
 
@@ -226,7 +226,7 @@ newEntity{
 	rarity = 9,
 	cost = 10,
 	wielder = {
-		max_life = resolvers.mbonus_material(40, 20, function(e, v) return v * 0.1 end),
+		max_life = resolvers.mbonus_material(40, 40, function(e, v) return v * 0.1 end),
 	},
 }
 
@@ -250,3 +250,43 @@ newEntity{
 		},
 	},
 }
+
+newEntity{
+	name = " of Eyal", suffix=true, instant_resolve=true,
+	level_range = {20, 50},
+	greater_ego = true,
+	rarity = 16,
+	cost = 30,
+	wielder = {
+		max_life=resolvers.mbonus_material(60, 40, function(e, v) return v * 0.1 end),
+		life_regen = resolvers.mbonus_material(15, 5, function(e, v) v=v/10 return v * 10, v end),
+		healing_factor = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end),
+	},
+}
+
+newEntity{
+	name = " of Toknor", suffix=true, instant_resolve=true,
+	level_range = {20, 50},
+	greater_ego = true,
+	rarity = 16,
+	cost = 30,
+	wielder = {
+		combat_dam = resolvers.mbonus_material(5, 5, function(e, v) return v * 3 end),
+		combat_physcrit = resolvers.mbonus_material(3, 3, function(e, v) return v * 1.4 end),
+		combat_critical_power = resolvers.mbonus_material(10, 10, function(e, v) v=v/100 return v * 200, v end),
+	},
+}
+
+newEntity{
+	name = " of implacability", suffix=true, instant_resolve=true,
+	level_range = {20, 50},
+	greater_ego = true,
+	rarity = 16,
+	cost = 30,
+	wielder = {
+		stun_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end),
+		pin_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end),
+		combat_armor = resolvers.mbonus_material(6, 4, function(e, v) return v * 1 end),
+		fatigue = resolvers.mbonus_material(6, 4, function(e, v) return v * 1, -v end),
+	},
+}
diff --git a/game/modules/tome/data/general/objects/egos/belt.lua b/game/modules/tome/data/general/objects/egos/belt.lua
index e4dc9be4bce29f1141bcbfa3e1e8bbf8133d09d2..fea45eaff1bc9a06654b7cd60faa2c29afd2f1f4 100644
--- a/game/modules/tome/data/general/objects/egos/belt.lua
+++ b/game/modules/tome/data/general/objects/egos/belt.lua
@@ -27,7 +27,7 @@ newEntity{
 	rarity = 5,
 	cost = 6,
 	wielder = {
-		max_encumber = resolvers.mbonus_material(50, 10, function(e, v) return v * 0.4, v end),
+		max_encumber = resolvers.mbonus_material(40, 20, function(e, v) return v * 0.4, v end),
 	},
 }
 
@@ -48,32 +48,6 @@ newEntity{
 	end}
 }
 
-newEntity{
-	name = "slotted ", prefix=true, instant_resolve=true,
-	level_range = {10, 50},
-	rarity = 8,
-	cost = 6,
-	belt_slots = resolvers.mbonus_material(6, 3, function(e, v) return v * 1 end),
-	on_canwear = function(self, who)
-		if who:getInven(who.INVEN_INBELT) and #who:getInven(who.INVEN_INBELT) > 0 then
-			game.logPlayer(who, "You already have a slotted belt equipped. Remove your items from it, then take it off.", self:getName{do_color=true})
-			return true
-		end
-	end,
-	on_wear = function(self, who)
-		who.inven[who.INVEN_INBELT] = {max=self.belt_slots, worn=false, use_speed=0.6, id=who.INVEN_INBELT}
-	end,
-	on_cantakeoff = function(self, who)
-		if #who:getInven(who.INVEN_INBELT) > 0 then
-			game.logPlayer(who, "You can not remove %s while it still carries items.", self:getName{do_color=true})
-			return true
-		end
-	end,
-	on_takeoff = function(self, who)
-		who.inven[who.INVEN_INBELT] = nil
-	end,
-}
-
 newEntity{
 	name = " of the mystic", suffix=true, instant_resolve=true,
 	level_range = {1, 50},
@@ -124,3 +98,160 @@ newEntity{
 		inc_stealth = resolvers.mbonus_material(10, 5, function(e, v) return v * 1, v end),
 	},
 }
+
+newEntity{
+	name = "insulating ", prefix=true, instant_resolve=true,
+	level_range = {1, 50},
+	rarity = 6,
+	cost = 5,
+	wielder = {
+		resists={
+			[DamageType.FIRE] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
+			[DamageType.COLD] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
+		},
+	},
+}
+
+newEntity{
+	name = "grounding ", prefix=true, instant_resolve=true,
+	level_range = {1, 50},
+	rarity = 6,
+	cost = 5,
+	wielder = {
+		resists={
+			[DamageType.LIGHTNING] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
+		},
+		stun_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end),
+	},
+}
+
+newEntity{
+	name = "stabilizing ", prefix=true, instant_resolve=true,
+	level_range = {1, 50},
+	rarity = 6,
+	cost = 5,
+	wielder = {
+		stun_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end),
+		knockback_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end),
+	},
+}
+
+newEntity{
+	name = "cleansing ", prefix=true, instant_resolve=true,
+	level_range = {1, 50},
+	rarity = 9,
+	cost = 9,
+	wielder = {
+		resists={
+			[DamageType.ACID] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
+		},
+		poison_immune = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15, v/100 end),
+		disease_immune = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15, v/100 end),
+	},
+}
+
+newEntity{
+	name = " of magery", suffix=true, instant_resolve=true,
+	level_range = {25, 50},
+	greater_ego = true,
+	rarity = 18,
+	cost = 50,
+	wielder = {
+		inc_stats = {
+			[Stats.STAT_MAG] = resolvers.mbonus_material(3, 3, function(e, v) return v * 3 end),
+			[Stats.STAT_WIL] = resolvers.mbonus_material(3, 3, function(e, v) return v * 3 end),
+		},
+		combat_spellcrit = resolvers.mbonus_material(3, 3, function(e, v) return v * 0.4 end),
+	},
+}
+
+newEntity{
+	name = " of burglary", suffix=true, instant_resolve=true,
+	level_range = {20, 50},
+	greater_ego = true,
+	rarity = 15,
+	cost = 30,
+	wielder = {
+		disarm_bonus = resolvers.mbonus_material(25, 5, function(e, v) return v * 1.2 end),
+		trap_detect_power = resolvers.mbonus_material(25, 5, function(e, v) return v * 1.2 end),
+		infravision = resolvers.mbonus_material(2, 2, function(e, v) return v * 1.4 end),
+		inc_stats = {
+			[Stats.STAT_DEX] = resolvers.mbonus_material(3, 3, function(e, v) return v * 3 end),
+		},
+	},
+}
+
+newEntity{
+	name = " of dampening", suffix=true, instant_resolve=true,
+	level_range = {30, 50},
+	greater_ego = true,
+	rarity = 18,
+	cost = 50,
+	wielder = {
+		resists={
+			[DamageType.ACID] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end),
+			[DamageType.LIGHTNING] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end),
+			[DamageType.FIRE] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end),
+			[DamageType.COLD] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end),
+		},
+	},
+}
+
+newEntity{
+	name = " of inertia", suffix=true, instant_resolve=true,
+	level_range = {25, 50},
+	greater_ego = true,
+	rarity = 18,
+	cost = 50,
+	wielder = {
+		inc_stats = {
+			[Stats.STAT_STR] = resolvers.mbonus_material(3, 3, function(e, v) return v * 3 end),
+			[Stats.STAT_CON] = resolvers.mbonus_material(3, 3, function(e, v) return v * 3 end),
+		},
+		pin_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end),
+	},
+}
+
+
+newEntity{
+	name = "monstrous ", prefix=true, instant_resolve=true,
+	level_range = {40, 50},
+	greater_ego = true,
+	rarity = 20,
+	cost = 60,
+	wielder = {
+		size_category = 1,
+		combat_dam = resolvers.mbonus_material(5, 5, function(e, v) return v * 3 end),
+		combat_critical_power = resolvers.mbonus_material(10, 10, function(e, v) v=v/100 return v * 200, v end),
+
+	},
+}
+
+newEntity{
+	name = "balancing ", prefix=true, instant_resolve=true,
+	level_range = {40, 50},
+	greater_ego = true,
+	rarity = 20,
+	cost = 60,
+	wielder = {
+		inc_stats = {
+			[Stats.STAT_CUN] = resolvers.mbonus_material(3, 3, function(e, v) return v * 3 end),
+		},
+		combat_atk = resolvers.mbonus_material(5, 5, function(e, v) return v * 3 end),
+		combat_physcrit = resolvers.mbonus_material(3, 3, function(e, v) return v * 1.4 end),
+	},
+}
+
+
+newEntity{
+	name = "protective ", prefix=true, instant_resolve=true,
+	level_range = {40, 50},
+	greater_ego = true,
+	rarity = 20,
+	cost = 60,
+	wielder = {
+		combat_armor = resolvers.mbonus_material(6, 4, function(e, v) return v * 1 end),
+		combat_def = resolvers.mbonus_material(4, 4, function(e, v) return v * 1 end),
+		stun_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end),
+	},
+}
\ No newline at end of file
diff --git a/game/modules/tome/data/general/objects/egos/boots.lua b/game/modules/tome/data/general/objects/egos/boots.lua
index ff1eb536b7db0b676f9d407e9b7c092d0b02ccb3..2d195e8f80a6238bdf45a564ea424f5e2166471b 100644
--- a/game/modules/tome/data/general/objects/egos/boots.lua
+++ b/game/modules/tome/data/general/objects/egos/boots.lua
@@ -22,10 +22,16 @@ local Talents = require "engine.interface.ActorTalents"
 
 newEntity{
 	name = " of phasing", suffix=true, instant_resolve=true,
-	level_range = {15, 50},
+	level_range = {20, 50},
 	greater_ego = true,
-	rarity = 10,
+	rarity = 18,
 	cost = 40,
+	wielder = {
+		inc_stats = {
+			[Stats.STAT_MAG] = resolvers.mbonus_material(2, 2, function(e, v) return v * 3 end),
+			[Stats.STAT_WIL] = resolvers.mbonus_material(2, 2, function(e, v) return v * 3 end),
+		},
+	},
 	max_power = 60, power_regen = 1,
 	use_power = { name = "blink to a nearby random location", power = 35, use = function(self, who)
 		game.level.map:particleEmitter(who.x, who.y, 1, "teleport")
@@ -34,6 +40,7 @@ newEntity{
 		game.logSeen(who, "%s uses %s!", who.name:capitalize(), self:getName{no_count=true})
 		return nil, true
 	end}
+
 }
 
 newEntity{
@@ -59,24 +66,35 @@ newEntity{
 
 newEntity{
 	name = " of rushing", suffix=true, instant_resolve=true,
-	level_range = {10, 50},
+	level_range = {20, 50},
 	greater_ego = true,
-	rarity = 10,
-	cost = 20,
-
+	rarity = 18,
+	cost = 40,
 	max_power = 80, power_regen = 1,
 	use_talent = { id = Talents.T_RUSH, level = 2, power = 80 },
+	wielder = {
+		inc_stats = {
+			[Stats.STAT_STR] = resolvers.mbonus_material(2, 2, function(e, v) return v * 3 end),
+			[Stats.STAT_CON] = resolvers.mbonus_material(2, 2, function(e, v) return v * 3 end),
+		},
+	},
 }
 
 newEntity{
 	name = " of disengagement", suffix=true, instant_resolve=true,
-	level_range = {10, 50},
+	level_range = {20, 50},
 	greater_ego = true,
-	rarity = 10,
-	cost = 20,
+	rarity = 18,
+	cost = 40,
 
 	max_power = 80, power_regen = 1,
 	use_talent = { id = Talents.T_DISENGAGE, level = 2, power = 80 },
+	wielder = {
+		inc_stats = {
+			[Stats.STAT_DEX] = resolvers.mbonus_material(2, 2, function(e, v) return v * 3 end),
+			[Stats.STAT_CUN] = resolvers.mbonus_material(2, 2, function(e, v) return v * 3 end),
+		},
+	},
 }
 
 newEntity{
@@ -85,8 +103,8 @@ newEntity{
 	rarity = 12,
 	cost = 12,
 	wielder = {
-		stun_immune = 0.2,
-		knockback_immune = 0.2,
+		stun_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end),
+		knockback_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end),
 	},
 }
 
@@ -100,3 +118,87 @@ newEntity{
 		stamina_regen = resolvers.mbonus_material(10, 3, function(e, v) v=v/10 return v * 10, v end),
 	},
 }
+
+newEntity{
+	name = "traveler's ", prefix=true, instant_resolve=true,
+	level_range = {1, 50},
+	rarity = 5,
+	cost = 6,
+	wielder = {
+		max_encumber = resolvers.mbonus_material(30, 20, function(e, v) return v * 0.4, v end),
+	},
+}
+
+
+newEntity{
+	name = "scholar's ", prefix=true, instant_resolve=true,
+	level_range = {1, 50},
+	rarity = 5,
+	cost = 6,
+	wielder = {
+		combat_spellpower = resolvers.mbonus_material(3, 3, function(e, v) return v * 0.8 end),
+	},
+}
+
+newEntity{
+	name = "miner's ", prefix=true, instant_resolve=true,
+	level_range = {1, 50},
+	rarity = 5,
+	cost = 6,
+	wielder = {
+		combat_armor = resolvers.mbonus_material(6, 4, function(e, v) return v * 1 end),
+	},
+}
+
+newEntity{
+	name = "stalker's ", prefix=true, instant_resolve=true,
+	level_range = {1, 50},
+	rarity = 5,
+	cost = 6,
+	wielder = {
+		infravision = resolvers.mbonus_material(2, 1, function(e, v) return v * 1.4 end),
+	},
+}
+
+newEntity{
+	name = "restorative ", prefix=true, instant_resolve=true,
+	level_range = {35, 50},
+	greater_ego = true,
+	rarity = 18,
+	cost = 60,
+	wielder = {
+		healing_factor = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end),
+		cut_immune = resolvers.mbonus_material(2, 2, function(e, v) v=v/10 return v * 8, v end),
+		life_regen = resolvers.mbonus_material(10, 5, function(e, v) v=v/10 return v * 10, v end),
+		poison_immune = resolvers.mbonus_material(10, 10, function(e, v) return v * 0.15, v/100 end),
+
+	},
+}
+
+newEntity{
+	name = "invigorating ", prefix=true, instant_resolve=true,
+	level_range = {40, 50},
+	greater_ego = true,
+	rarity = 20,
+	cost = 70,
+	wielder = {
+		fatigue = resolvers.mbonus_material(6, 4, function(e, v) return v * 1, -v end),
+		max_life=resolvers.mbonus_material(30, 30, function(e, v) return v * 0.1 end),
+		movement_speed = -0.1,
+	},
+}
+
+newEntity{
+	name = "blood-soaked ", prefix=true, instant_resolve=true,
+	level_range = {15, 50},
+	greater_ego = true,
+	rarity = 15,
+	cost = 20,
+	wielder = {
+		combat_dam = resolvers.mbonus_material(3, 3, function(e, v) return v * 3 end),
+		combat_apr = resolvers.mbonus_material(3, 3, function(e, v) return v * 0.3 end),
+		pin_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end),
+	},
+}
+
+
diff --git a/game/modules/tome/data/general/objects/egos/cloak.lua b/game/modules/tome/data/general/objects/egos/cloak.lua
index 45dd19a05f088ef6819baa322927e0e2b84657a1..d552f9b780cd9a5e3ea6c1940a90cb4f1e93e328 100644
--- a/game/modules/tome/data/general/objects/egos/cloak.lua
+++ b/game/modules/tome/data/general/objects/egos/cloak.lua
@@ -57,7 +57,10 @@ newEntity{
 	rarity = 6,
 	cost = 10,
 	wielder = {
-		inc_stats = { [Stats.STAT_DEX] = 2, [Stats.STAT_CUN] = 2, },
+		inc_stats = {
+			[Stats.STAT_DEX] = resolvers.mbonus_material(3, 1, function(e, v) return v * 3 end),
+			[Stats.STAT_CUN] = resolvers.mbonus_material(3, 1, function(e, v) return v * 3 end),
+			},
 	},
 }
 
@@ -67,7 +70,10 @@ newEntity{
 	rarity = 6,
 	cost = 10,
 	wielder = {
-		inc_stats = { [Stats.STAT_MAG] = 2, [Stats.STAT_WIL] = 2, },
+		inc_stats = {
+			[Stats.STAT_MAG] = resolvers.mbonus_material(3, 1, function(e, v) return v * 3 end),
+			[Stats.STAT_WIL] = resolvers.mbonus_material(3, 1, function(e, v) return v * 3 end),
+			},
 	},
 }
 
@@ -77,7 +83,10 @@ newEntity{
 	rarity = 6,
 	cost = 10,
 	wielder = {
-		inc_stats = { [Stats.STAT_STR] = 2, [Stats.STAT_CON] = 2, },
+		inc_stats = {
+			[Stats.STAT_STR] = resolvers.mbonus_material(3, 1, function(e, v) return v * 3 end),
+			[Stats.STAT_CON] = resolvers.mbonus_material(3, 1, function(e, v) return v * 3 end),
+			},
 	},
 }
 
@@ -87,10 +96,11 @@ newEntity{
 	rarity = 6,
 	cost = 7,
 	wielder = {
-		resists={[DamageType.ACID] = resolvers.mbonus_material(20, 5, function(e, v) return v * 0.15 end)},
+		resists={[DamageType.ACID] = resolvers.mbonus_material(15, 10, function(e, v) return v * 0.15 end)},
 	},
 }
 
+
 newEntity{
 	name = " of fog", suffix=true, instant_resolve=true,
 	level_range = {30, 50},
@@ -108,3 +118,112 @@ newEntity{
 		inc_stealth = resolvers.mbonus_material(10, 5, function(e, v) return v * 1, v end),
 	},
 }
+
+
+newEntity{
+	name = " of resilience", suffix=true, instant_resolve=true,
+	level_range = {1, 50},
+	rarity = 7,
+	cost = 6,
+	wielder = {
+		max_life=resolvers.mbonus_material(30, 30, function(e, v) return v * 0.1 end),
+	},
+}
+
+newEntity{
+	name = " of stability", suffix=true, instant_resolve=true,
+	level_range = {1, 50},
+	rarity = 7,
+	cost = 6,
+	wielder = {
+		stun_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end),
+		knockback_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end),
+	},
+}
+
+newEntity{
+	name = "enveloping ", prefix=true, instant_resolve=true,
+	level_range = {1, 50},
+	rarity = 5,
+	cost = 6,
+	wielder = {
+		combat_def = resolvers.mbonus_material(4, 4, function(e, v) return v * 1 end),
+	},
+}
+
+newEntity{
+	name = " of sorcery", suffix=true, instant_resolve=true,
+	level_range = {30, 50},
+	greater_ego = true,
+	rarity = 16,
+	cost = 50,
+	wielder = {
+		inc_stats = {
+			[Stats.STAT_MAG] = resolvers.mbonus_material(2, 2, function(e, v) return v * 3 end),
+			[Stats.STAT_WIL] = resolvers.mbonus_material(2, 2, function(e, v) return v * 3 end),
+			[Stats.STAT_CUN] = resolvers.mbonus_material(2, 2, function(e, v) return v * 3 end),
+			},
+		combat_spellcrit = resolvers.mbonus_material(3, 3, function(e, v) return v * 0.4 end),
+	},
+}
+
+newEntity{
+	name = " of implacability", suffix=true, instant_resolve=true,
+	level_range = {30, 50},
+	greater_ego = true,
+	rarity = 16,
+	cost = 50,
+	wielder = {
+		pin_immune = resolvers.mbonus_material(3, 2, function(e, v) v=v/10 return v * 8, v end),
+		knockback_immune = resolvers.mbonus_material(3, 2, function(e, v) v=v/10 return v * 8, v end),
+		confusion_immune = resolvers.mbonus_material(3, 2, function(e, v) v=v/10 return v * 8, v end),
+	},
+}
+
+newEntity{
+	name = "restorative ", prefix=true, instant_resolve=true,
+	level_range = {35, 50},
+	greater_ego = true,
+	rarity = 18,
+	cost = 60,
+	wielder = {
+		healing_factor = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end),
+		cut_immune = resolvers.mbonus_material(2, 2, function(e, v) v=v/10 return v * 8, v end),
+		life_regen = resolvers.mbonus_material(10, 5, function(e, v) v=v/10 return v * 10, v end),
+		poison_immune = resolvers.mbonus_material(10, 10, function(e, v) return v * 0.15, v/100 end),
+		
+	},
+}
+
+newEntity{
+	name = "regal ", prefix=true, instant_resolve=true,
+	level_range = {15, 50},
+	greater_ego = true,
+	rarity = 15,
+	cost = 20,
+	wielder = {
+		inc_stats = {
+			[Stats.STAT_WIL] = resolvers.mbonus_material(2, 2, function(e, v) return v * 3 end),
+			[Stats.STAT_CUN] = resolvers.mbonus_material(2, 2, function(e, v) return v * 3 end),
+			},
+		silence_immune = resolvers.mbonus_material(3, 2, function(e, v) v=v/10 return v * 8, v end),
+	},
+}
+
+newEntity{
+	name = "wyrmwaxed ", prefix=true, instant_resolve=true,
+	level_range = {35, 50},
+	greater_ego = true,
+	rarity = 18,
+	cost = 60,
+	wielder = {
+		resists={
+			[DamageType.ACID] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end),
+			[DamageType.LIGHTNING] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end),
+			[DamageType.FIRE] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end),
+			[DamageType.COLD] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end),
+		},
+	},
+}
+
+
diff --git a/game/modules/tome/data/general/objects/egos/digger.lua b/game/modules/tome/data/general/objects/egos/digger.lua
index 088b99a70d6c4832e496fea30e45afc5d1685367..194972ad35f15cb9907297a805ef8c8111504972 100644
--- a/game/modules/tome/data/general/objects/egos/digger.lua
+++ b/game/modules/tome/data/general/objects/egos/digger.lua
@@ -48,3 +48,105 @@ newEntity{
 		inc_stats = { [Stats.STAT_STR] = resolvers.mbonus_material(3, 1, function(e, v) return v * 3 end), [Stats.STAT_CON] = resolvers.mbonus_material(3, 1, function(e, v) return v * 3 end) },
 	},
 }
+
+newEntity{
+	name = " of endurance", suffix=true, instant_resolve=true,
+	level_range = {1, 50},
+	rarity = 6,
+	cost = 5,
+	wielder = {
+		fatigue = resolvers.mbonus_material(6, 4, function(e, v) return v * 1, -v end),
+	},
+}
+
+newEntity{
+	name = "miner's ", prefix=true, instant_resolve=true,
+	level_range = {1, 50},
+	rarity = 6,
+	cost = 5,
+	wielder = {
+		infravision = resolvers.mbonus_material(2, 1, function(e, v) return v * 1.4 end),
+	},
+}
+
+newEntity{
+	name = "woodsman's ", prefix=true, instant_resolve=true,
+	level_range = {1, 50},
+	rarity = 6,
+	cost = 5,
+	wielder = {
+		resists = { [DamageType.NATURE] = resolvers.mbonus_material(5, 10, function(e, v) return v * 0.15 end), }
+	},
+}
+
+newEntity{
+	name = " of the Iron Throne", suffix=true,
+	level_range = {20, 50},
+	greater_ego = true,
+	rarity = 15,
+	cost = 15,
+	wielder = {
+		max_life = resolvers.mbonus_material(20, 20, function(e, v) return v * 0.1 end),
+		max_stamina = resolvers.mbonus_material(15, 15, function(e, v) return v * 0.1 end),
+	},
+	resolvers.generic(function(e) e.digspeed = math.ceil(e.digspeed / 3) end),
+}
+
+newEntity{
+	name = " of Reknor", suffix=true,
+	level_range = {20, 50},
+	greater_ego = true,
+	rarity = 15,
+	cost = 15,
+	wielder = {
+		resists={
+			[DamageType.FIRE] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end),
+			[DamageType.DARKNESS] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end),
+		},
+	},
+	resolvers.generic(function(e) e.digspeed = math.ceil(e.digspeed / 3) end),
+}
+
+newEntity{
+	name = "brutal ", prefix=true,
+	level_range = {40, 50},
+	greater_ego = true,
+	rarity = 20,
+	cost = 70,
+	wielder = {
+		combat_dam = resolvers.mbonus_material(5, 5, function(e, v) return v * 3 end),
+		combat_apr = resolvers.mbonus_material(4, 4, function(e, v) return v * 0.3 end),
+		combat_critical_power = resolvers.mbonus_material(10, 10, function(e, v) v=v/100 return v * 200, v end),
+	},
+	resolvers.generic(function(e) e.digspeed = math.ceil(e.digspeed / 3) end),
+}
+
+newEntity{
+	name = "builder's ", prefix=true,
+	level_range = {30, 50},
+	greater_ego = true,
+	rarity = 15,
+	cost = 15,
+	wielder = {
+		inc_stats = {
+			[Stats.STAT_CUN] = resolvers.mbonus_material(2, 2, function(e, v) return v * 3 end),
+			},
+		confusion_immune = resolvers.mbonus_material(3, 2, function(e, v) v=v/10 return v * 8, v end),
+	},
+	resolvers.generic(function(e) e.digspeed = math.ceil(e.digspeed / 3) end),
+}
+
+newEntity{
+	name = "soldier's ", prefix=true,
+	level_range = {30, 50},
+	greater_ego = true,
+	rarity = 15,
+	cost = 15,
+	wielder = {
+		combat_def = resolvers.mbonus_material(4, 4, function(e, v) return v * 1 end),
+		combat_armor = resolvers.mbonus_material(3, 2, function(e, v) return v * 1 end),
+	},
+	resolvers.generic(function(e) e.digspeed = math.ceil(e.digspeed / 3) end),
+}
+
+
diff --git a/game/modules/tome/data/general/objects/egos/gloves.lua b/game/modules/tome/data/general/objects/egos/gloves.lua
index 1afed7429a1c6898337141a41985e5aaf22aa19a..edf64fdc68507547ede0dd73e45540105f4b10c8 100644
--- a/game/modules/tome/data/general/objects/egos/gloves.lua
+++ b/game/modules/tome/data/general/objects/egos/gloves.lua
@@ -78,6 +78,7 @@ newEntity{
 	cost = 5,
 	wielder = {
 		inc_damage={ [DamageType.FIRE] = resolvers.mbonus_material(8, 3, function(e, v) return v * 0.8 end), },
+		resists = { [DamageType.FIRE] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end), },
 	},
 }
 
@@ -88,6 +89,7 @@ newEntity{
 	cost = 5,
 	wielder = {
 		inc_damage={ [DamageType.COLD] = resolvers.mbonus_material(8, 3, function(e, v) return v * 0.8 end), },
+		resists = { [DamageType.COLD] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end), },
 	},
 }
 
@@ -98,6 +100,7 @@ newEntity{
 	cost = 5,
 	wielder = {
 		inc_damage={ [DamageType.ACID] = resolvers.mbonus_material(8, 3, function(e, v) return v * 0.8 end), },
+		resists = { [DamageType.ACID] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end), },
 	},
 }
 
@@ -108,6 +111,7 @@ newEntity{
 	cost = 5,
 	wielder = {
 		inc_damage={ [DamageType.LIGHTNING] = resolvers.mbonus_material(8, 3, function(e, v) return v * 0.8 end), },
+		resists = { [DamageType.LIGHTNING] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end), },
 	},
 }
 
@@ -118,6 +122,7 @@ newEntity{
 	cost = 5,
 	wielder = {
 		inc_damage={ [DamageType.NATURE] = resolvers.mbonus_material(8, 3, function(e, v) return v * 0.8 end), },
+		resists = { [DamageType.NATURE] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end), },
 	},
 }
 
@@ -128,6 +133,7 @@ newEntity{
 	cost = 5,
 	wielder = {
 		inc_damage={ [DamageType.BLIGHT] = resolvers.mbonus_material(8, 3, function(e, v) return v * 0.8 end), },
+		resists = { [DamageType.BLIGHT] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end), },
 	},
 }
 
@@ -178,6 +184,99 @@ newEntity{
 	cost = 15,
 	wielder = {
 		inc_stats = { [Stats.STAT_STR] = resolvers.mbonus_material(2, 2, function(e, v) return v * 3 end) },
-		disarm_immune = 0.7,
+		disarm_immune = resolvers.mbonus_material(4, 4, function(e, v) v=v/10 return v * 8, v end),
 	},
 }
+
+newEntity{
+	name = " of protection", suffix=true,
+	level_range = {20, 50},
+	greater_ego = true,
+	rarity = 15,
+	cost = 25,
+	wielder = {
+		resists={
+			[DamageType.LIGHT] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end),
+			[DamageType.DARKNESS] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end),
+			[DamageType.NATURE] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end),
+		},
+	},
+}
+
+newEntity{
+	name = " of warmaking", suffix=true,
+	level_range = {30, 50},
+	greater_ego = true,
+	rarity = 17,
+	cost = 35,
+	wielder = {
+		inc_stats = {
+			[Stats.STAT_STR] = resolvers.mbonus_material(3, 2, function(e, v) return v * 3 end),
+			[Stats.STAT_DEX] = resolvers.mbonus_material(3, 2, function(e, v) return v * 3 end),
+			},
+		combat_apr = resolvers.mbonus_material(4, 4, function(e, v) return v * 0.3 end),
+	},
+
+}
+
+newEntity{
+	name = " of regeneration", suffix=true,
+	level_range = {30, 50},
+	greater_ego = true,
+	rarity = 18,
+	cost = 25,
+	wielder = {
+		life_regen = resolvers.mbonus_material(15, 5, function(e, v) v=v/10 return v * 10, v end),
+		mana_regen = resolvers.mbonus_material(30, 10, function(e, v) v=v/100 return v * 80, v end),
+		stamina_regen = resolvers.mbonus_material(10, 3, function(e, v) v=v/10 return v * 10, v end),
+	},
+}
+
+newEntity{
+	name = "heroic ", prefix=true,
+	level_range = {40, 50},
+	greater_ego = true,
+	rarity = 20,
+	cost = 75,
+	wielder = {
+		resists={
+			[DamageType.FIRE] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
+			[DamageType.COLD] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
+		},
+		max_life=resolvers.mbonus_material(40, 40, function(e, v) return v * 0.1 end),
+		combat_armor = resolvers.mbonus_material(3, 3, function(e, v) return v * 1 end),
+	},
+}
+
+newEntity{
+	name = "alchemist's ", prefix=true,
+	level_range = {30, 50},
+	greater_ego = true,
+	rarity = 17,
+	cost = 35,
+	wielder = {
+		inc_stats = {
+			[Stats.STAT_MAG] = resolvers.mbonus_material(3, 2, function(e, v) return v * 3 end),
+			[Stats.STAT_WIL] = resolvers.mbonus_material(3, 2, function(e, v) return v * 3 end),
+			},
+		combat_spellresist = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.15 end),
+	},
+
+}
+
+newEntity{
+	name = "archer's ", prefix=true,
+	level_range = {30, 50},
+	greater_ego = true,
+	rarity = 17,
+	cost = 35,
+	wielder = {
+		inc_stats = {
+			[Stats.STAT_DEX] = resolvers.mbonus_material(3, 2, function(e, v) return v * 3 end),
+			[Stats.STAT_CUN] = resolvers.mbonus_material(3, 2, function(e, v) return v * 3 end),
+			},
+		combat_atk = resolvers.mbonus_material(5, 5, function(e, v) return v * 1 end),
+	},
+
+}
+
diff --git a/game/modules/tome/data/general/objects/egos/heavy-armor.lua b/game/modules/tome/data/general/objects/egos/heavy-armor.lua
index 8f7aaec2fee289c6c9c2af0f51420e62649f9478..5416fd8d887231e9fc15522215d2469a658aa9d0 100644
--- a/game/modules/tome/data/general/objects/egos/heavy-armor.lua
+++ b/game/modules/tome/data/general/objects/egos/heavy-armor.lua
@@ -22,22 +22,12 @@ local Stats = require "engine.interface.ActorStats"
 
 load("/data/general/objects/egos/armor.lua")
 
-newEntity{
-	name = "solid ", prefix=true, instant_resolve=true,
-	level_range = {10, 30},
-	rarity = 5,
-	cost = 4,
-	wielder = {
-		combat_armor = resolvers.mbonus_material(4, 2, function(e, v) return v * 1 end),
-	},
-}
-
 newEntity{
 	name = "impenetrable ", prefix=true, instant_resolve=true,
-	level_range = {25, 50},
-	rarity = 9,
-	cost = 8,
+	level_range = {10, 50},
+	rarity = 8,
+	cost = 7,
 	wielder = {
-		combat_armor = resolvers.mbonus_material(10, 5, function(e, v) return v * 1 end),
+		combat_armor = resolvers.mbonus_material(12, 3, function(e, v) return v * 1 end),
 	},
 }
diff --git a/game/modules/tome/data/general/objects/egos/helm.lua b/game/modules/tome/data/general/objects/egos/helm.lua
index d6c049e7b101624de9f27605b6bd82676301348d..cd620285f91901721b984d1ba5b38ad4dd10f76a 100644
--- a/game/modules/tome/data/general/objects/egos/helm.lua
+++ b/game/modules/tome/data/general/objects/egos/helm.lua
@@ -23,24 +23,7 @@ local DamageType = require "engine.DamageType"
 --load("/data/general/objects/egos/charged-defensive.lua")
 --load("/data/general/objects/egos/charged-utility.lua")
 
-newEntity{
-	name = " of rage", suffix=true, instant_resolve=true,
-	level_range = {20, 50},
-	rarity = 5,
-	cost = 6,
-	wielder = {
-		stamina_regen_on_hit = resolvers.mbonus_material(23, 7, function(e, v) v=v/10 return v * 10, v end),
-	},
-}
-newEntity{
-	name = " of the wilds", suffix=true, instant_resolve=true,
-	level_range = {20, 50},
-	rarity = 5,
-	cost = 6,
-	wielder = {
-		equilibrium_regen_on_hit = resolvers.mbonus_material(23, 7, function(e, v) v=v/10 return v * 10, v end),
-	},
-}
+
 newEntity{
 	name = " of strength (#STATBONUS#)", suffix=true,
 	level_range = {1, 50},
@@ -96,11 +79,10 @@ newEntity{
 	cost = 10,
 	wielder = {
 		inc_stats = { [Stats.STAT_WIL] = resolvers.mbonus_material(2, 1, function(e, v) return v * 3 end) },
-		disease_immune = 0.3,
-		stun_immune = 0.2,
+		disease_immune = resolvers.mbonus_material(15, 10, function(e, v) return v * 0.15, v/100 end),
+		stun_immune = resolvers.mbonus_material(2, 2, function(e, v) v=v/10 return v * 8, v end),
 	},
 }
-
 newEntity{
 	name = "prismatic ", prefix=true, instant_resolve=true,
 	level_range = {10, 50},
@@ -126,3 +108,178 @@ newEntity{
 		inc_stats = { [Stats.STAT_CUN] = 4, },
 	},
 }
+
+newEntity{
+	name = " of the depths", suffix=true,
+	level_range = {15, 50},
+	rarity = 7,
+	cost = 10,
+	wielder = {
+		can_breath = {water=1},
+	},
+}
+
+newEntity{
+	name = " of absorption", suffix=true, instant_resolve=true,
+	level_range = {20, 50},
+	rarity = 10,
+	cost = 20,
+	wielder = {
+		stamina_regen_on_hit = resolvers.mbonus_material(23, 7, function(e, v) v=v/10 return v * 3, v end),
+		equilibrium_regen_on_hit = resolvers.mbonus_material(23, 7, function(e, v) v=v/10 return v * 3, v end),
+		mana_regen_on_hit = resolvers.mbonus_material(23, 7, function(e, v) v=v/10 return v * 3, v end),
+	},
+}
+
+newEntity{
+	name = "miner's ", prefix=true, instant_resolve=true,
+	level_range = {1, 50},
+	rarity = 6,
+	cost = 5,
+	wielder = {
+		infravision = resolvers.mbonus_material(2, 2, function(e, v) return v * 1.4 end),
+	},
+}
+
+newEntity{
+	name = "insulating ", prefix=true, instant_resolve=true,
+	level_range = {1, 50},
+	rarity = 6,
+	cost = 5,
+	wielder = {
+		resists={
+			[DamageType.FIRE] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
+			[DamageType.COLD] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
+		},
+	},
+}
+
+newEntity{
+	name = "grounding ", prefix=true, instant_resolve=true,
+	level_range = {1, 50},
+	rarity = 6,
+	cost = 5,
+	wielder = {
+		resists={
+			[DamageType.LIGHTNING] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
+		},
+		stun_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end),
+	},
+}
+
+newEntity{
+	name = "stabilizing ", prefix=true, instant_resolve=true,
+	level_range = {1, 50},
+	rarity = 6,
+	cost = 5,
+	wielder = {
+		stun_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end),
+		knockback_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end),
+	},
+}
+
+newEntity{
+	name = "cleansing ", prefix=true, instant_resolve=true,
+	level_range = {1, 50},
+	rarity = 9,
+	cost = 9,
+	wielder = {
+		resists={
+			[DamageType.ACID] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
+		},
+		poison_immune = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15, v/100 end),
+		disease_immune = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15, v/100 end),
+	},
+}
+
+
+newEntity{
+	name = " of knowledge", suffix=true, instant_resolve=true,
+	level_range = {15, 50},
+	greater_ego = true,
+	rarity = 15,
+	cost = 20,
+	wielder = {
+		combat_spellcrit = resolvers.mbonus_material(3, 3, function(e, v) return v * 0.4 end),
+		inc_stats = {
+			[Stats.STAT_MAG] = resolvers.mbonus_material(3, 2, function(e, v) return v * 3 end),
+			[Stats.STAT_WIL] = resolvers.mbonus_material(3, 2, function(e, v) return v * 3 end),
+			},		
+	},
+}
+
+
+newEntity{
+	name = " of might", suffix=true, instant_resolve=true,
+	level_range = {15, 50},
+	greater_ego = true,
+	rarity = 15,
+	cost = 20,
+	wielder = {
+		combat_physcrit = resolvers.mbonus_material(3, 3, function(e, v) return v * 1.4 end),
+		inc_stats = {
+			[Stats.STAT_STR] = resolvers.mbonus_material(3, 2, function(e, v) return v * 3 end),
+			[Stats.STAT_CON] = resolvers.mbonus_material(3, 2, function(e, v) return v * 3 end),
+			},		
+	},
+}
+
+newEntity{
+	name = " of trickery", suffix=true, instant_resolve=true,
+	level_range = {15, 50},
+	greater_ego = true,
+	rarity = 13,
+	cost = 20,
+	wielder = {
+		combat_apr = resolvers.mbonus_material(4, 4, function(e, v) return v * 0.3 end),
+		inc_stats = {
+			[Stats.STAT_DEX] = resolvers.mbonus_material(3, 2, function(e, v) return v * 3 end),
+			[Stats.STAT_CUN] = resolvers.mbonus_material(3, 2, function(e, v) return v * 3 end),
+			},		
+	},
+}
+
+newEntity{
+	name = "warlord's ", prefix=true, instant_resolve=true,
+	level_range = {40, 50},
+	greater_ego = true,
+	rarity = 17,
+	cost = 50,
+	wielder = {
+		combat_dam = resolvers.mbonus_material(6, 6, function(e, v) return v * 3 end),
+		pin_immune = resolvers.mbonus_material(3, 3, function(e, v) v=v/10 return v * 8, v end),
+		inc_stats = {
+			[Stats.STAT_WIL] = resolvers.mbonus_material(4, 3, function(e, v) return v * 3 end),
+			},
+	},
+}
+
+newEntity{
+	name = "defender's ", prefix=true, instant_resolve=true,
+	level_range = {40, 50},
+	greater_ego = true,
+	rarity = 17,
+	cost = 50,
+	wielder = {
+		combat_armor = resolvers.mbonus_material(5, 4, function(e, v) return v * 1 end),
+		combat_def = resolvers.mbonus_material(4, 4, function(e, v) return v * 1 end),
+		combat_physresist = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.15 end),
+	},
+}
+
+newEntity{
+	name = "dragonslayer's ", prefix=true, instant_resolve=true,
+	level_range = {40, 50},
+	greater_ego = true,
+	rarity = 17,
+	cost = 50,
+	wielder = {
+		resists={
+			[DamageType.ACID] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
+			[DamageType.LIGHTNING] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
+			[DamageType.FIRE] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
+			[DamageType.COLD] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
+		},
+	},
+}
+
diff --git a/game/modules/tome/data/general/objects/egos/lite.lua b/game/modules/tome/data/general/objects/egos/lite.lua
index fb3a545bd3f58499ef8e733c57712a3f59aa67cf..f9d8cdb331b43a6d03206c8d17dab0c356e451dd 100644
--- a/game/modules/tome/data/general/objects/egos/lite.lua
+++ b/game/modules/tome/data/general/objects/egos/lite.lua
@@ -17,6 +17,8 @@
 -- Nicolas Casalini "DarkGod"
 -- darkgod@te4.org
 
+local Stats = require "engine.interface.ActorStats"
+
 --load("/data/general/objects/egos/charged-utility.lua")
 
 newEntity{
@@ -35,7 +37,7 @@ newEntity{
 	rarity = 5,
 	cost = 1,
 	wielder = {
-		blind_immune=0.5,
+		blind_immune=resolvers.mbonus_material(3, 3, function(e, v) v=v/10 return v * 8, v end),
 	},
 }
 
@@ -46,7 +48,7 @@ newEntity{
 	rarity = 9,
 	cost = 10,
 	wielder = {
-		blind_immune=0.5,
+		blind_immune=resolvers.mbonus_material(3, 3, function(e, v) v=v/10 return v * 8, v end),
 		combat_spellresist = 15,
 		lite=1,
 	},
@@ -58,6 +60,162 @@ newEntity{
 	rarity = 5,
 	cost = 4,
 	wielder = {
-		on_melee_hit={[DamageType.FIRE] = resolvers.mbonus_material(11, 3, function(e, v) return v * 0.6 end)},
+		on_melee_hit={[DamageType.FIRE] = resolvers.mbonus_material(20, 10, function(e, v) return v * 0.6 end)},
+	},
+}
+
+newEntity{
+	name = " of revealing", suffix=true,
+	level_range = {1, 50},
+	rarity = 7,
+	cost = 10,
+	wielder = {
+		see_invisible = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.2 end),
+		trap_detect_power = resolvers.mbonus_material(15, 5, function(e, v) return v * 1.2 end),
+	},
+}
+
+newEntity{
+	name = " of clarity", suffix=true,
+	level_range = {1, 50},
+	rarity = 7,
+	cost = 10,
+	wielder = {
+		confusion_immune = resolvers.mbonus_material(3, 2, function(e, v) v=v/10 return v * 8, v end),
+	},
+}
+
+newEntity{
+	name = " of health", suffix=true,
+	level_range = {1, 50},
+	rarity = 7,
+	cost = 10,
+	wielder = {
+		max_life=resolvers.mbonus_material(40, 40, function(e, v) return v * 0.1 end),
+	},
+}
+
+newEntity{
+	name = " of guile", suffix=true,
+	level_range = {1, 50},
+	rarity = 7,
+	cost = 10,
+	wielder = {
+		inc_stats = {
+		[Stats.STAT_CUN] = resolvers.mbonus_material(4, 3, function(e, v) return v * 3 end),
+		},
+	},
+}
+
+newEntity{
+	name = "burglar's ", prefix=true,
+	level_range = {15, 50},
+	rarity = 9,
+	cost = 12,
+	wielder = {
+		lite = -2,
+		infravision = resolvers.mbonus_material(2, 1, function(e, v) return v * 1.4 end),
+	},
+}
+
+newEntity{
+	name = "guard's ", prefix=true,
+	level_range = {15, 50},
+	rarity = 9,
+	cost = 12,
+	wielder = {
+		stun_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end),
+	},
+}
+
+newEntity{
+	name = "healer's ", prefix=true,
+	level_range = {15, 50},
+	rarity = 9,
+	cost = 12,
+	wielder = {
+		healing_factor = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end),
+	},
+}
+
+newEntity{
+	name = "guide's ", prefix=true,
+	level_range = {15, 50},
+	rarity = 9,
+	cost = 12,
+	wielder = {
+		combat_mentalresist = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.15 end),
+	},
+}
+
+newEntity{
+	name = "reflective ", prefix=true, instant_resolve=true,
+	level_range = {20, 50},
+	greater_ego = true,
+	rarity = 10,
+	cost = 30,
+	wielder = {
+		resists={
+			[DamageType.LIGHT] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
+			[DamageType.DARKNESS] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
+		},
+		blind_immune = resolvers.mbonus_material(30, 10, function(e, v) v=v/100 return v * 80, v end),
+	},
+}
+
+newEntity{
+	name = "nightwalker's ", prefix=true, instant_resolve=true,
+	level_range = {30, 50},
+	greater_ego = true,
+	rarity = 10,
+	cost = 50,
+	wielder = {
+		combat_dam = resolvers.mbonus_material(5, 5, function(e, v) return v * 3 end),
+		combat_physcrit = resolvers.mbonus_material(3, 3, function(e, v) return v * 1.4 end),
+		inc_stats = {
+			[Stats.STAT_WIL] = resolvers.mbonus_material(4, 3, function(e, v) return v * 3 end),
+			},
+	},
+}
+
+newEntity{
+	name = "ethereal ", prefix=true, instant_resolve=true,
+	level_range = {30, 50},
+	greater_ego = true,
+	rarity = 10,
+	cost = 50,
+	encumber = -1,
+	wielder = {
+		lite = 2,
+		inc_stats = {
+			[Stats.STAT_MAG] = resolvers.mbonus_material(3, 3, function(e, v) return v * 3 end),
+			},
+	},
+}
+
+newEntity{
+	name = " of illusion", suffix=true, instant_resolve=true,
+	level_range = {30, 50},
+	greater_ego = true,
+	rarity = 10,
+	cost = 50,
+	wielder = {
+		combat_def = resolvers.mbonus_material(4, 4, function(e, v) return v * 1 end),
+		combat_mentalresist = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
+		combat_physresist = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
+		combat_spellresist = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
+	},
+}
+
+newEntity{
+	name = " of corpselight", suffix=true, instant_resolve=true,
+	level_range = {30, 50},
+	greater_ego = true,
+	rarity = 10,
+	cost = 50,
+	wielder = {
+		combat_spellpower = resolvers.mbonus_material(3, 3, function(e, v) return v * 0.8 end),
+		combat_spellcrit = resolvers.mbonus_material(3, 3, function(e, v) return v * 0.4 end),
+		see_invisible = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.2 end),
 	},
 }
diff --git a/game/modules/tome/data/general/objects/egos/massive-armor.lua b/game/modules/tome/data/general/objects/egos/massive-armor.lua
index 0df2afa3f0e456406e570625ecb5aae8357f5077..31e0e19a169d8f560611535504ae9559ca7c8ed1 100644
--- a/game/modules/tome/data/general/objects/egos/massive-armor.lua
+++ b/game/modules/tome/data/general/objects/egos/massive-armor.lua
@@ -40,29 +40,19 @@ newEntity{
 			[Stats.STAT_CON] = resolvers.mbonus_material(5, 1, function(e, v) return v * 3 end),
 			[Stats.STAT_STR] = resolvers.mbonus_material(5, 1, function(e, v) return v * 3 end),
 		},
-		stun_immune = 0.3,
-		knockback_immune = 0.3,
-		disarm_immune=0.3,
+		stun_immune = resolvers.mbonus_material(20, 20, function(e, v) v=v/100 return v * 80, v end),
+		knockback_immune = resolvers.mbonus_material(20, 20, function(e, v) v=v/100 return v * 80, v end),
+		disarm_immune = resolvers.mbonus_material(20, 20, function(e, v) v=v/100 return v * 80, v end),
 		talent_cd_reduction={[Talents.T_RUSH]=10},
 	},
 }
 
-newEntity{
-	name = "solid ", prefix=true, instant_resolve=true,
-	level_range = {10, 30},
-	rarity = 5,
-	cost = 4,
-	wielder = {
-		combat_armor = resolvers.mbonus_material(4, 2, function(e, v) return v * 1 end),
-	},
-}
-
 newEntity{
 	name = "impenetrable ", prefix=true, instant_resolve=true,
-	level_range = {25, 50},
-	rarity = 9,
-	cost = 8,
+	level_range = {10, 50},
+	rarity = 8,
+	cost = 7,
 	wielder = {
-		combat_armor = resolvers.mbonus_material(10, 5, function(e, v) return v * 1 end),
+		combat_armor = resolvers.mbonus_material(12, 3, function(e, v) return v * 1 end),
 	},
 }
diff --git a/game/modules/tome/data/general/objects/egos/rings.lua b/game/modules/tome/data/general/objects/egos/rings.lua
index 31dbcd5ed5b2f5939d61fe889a4373580b388615..435161673296be8a1a6856c0130def3d8da78b55 100644
--- a/game/modules/tome/data/general/objects/egos/rings.lua
+++ b/game/modules/tome/data/general/objects/egos/rings.lua
@@ -50,207 +50,245 @@ newEntity{
 	rarity = 8,
 	cost = 3,
 	wielder = {
-		mana_regen = resolvers.mbonus_material(3, 1, function(e, v) v=v/10 return v * 8, v end),
+		mana_regen = resolvers.mbonus_material(30, 10, function(e, v) v=v/100 return v * 80, v end),
 	},
 }
 
 newEntity{
-	name = " of accuracy (#ATTACK#)", suffix=true,
-	level_range = {1, 30},
+	name = " of fire (#RESIST#)", suffix=true,
+	level_range = {10, 40},
 	rarity = 6,
 	cost = 2,
 	wielder = {
-		combat_atk = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.3 end),
+		inc_damage = { [DamageType.FIRE] = resolvers.mbonus_material(10, 10, function(e, v) return v * 0.8 end) },
+		resists = {[DamageType.FIRE] = resolvers.genericlast(function(e) return e.wielder.inc_damage[engine.DamageType.FIRE] end) },
 	},
 }
 
 newEntity{
-	name = " of defense (#ARMOR#)", suffix=true,
-	level_range = {1, 30},
+	name = " of frost (#RESIST#)", suffix=true,
+	level_range = {10, 40},
 	rarity = 6,
 	cost = 2,
 	wielder = {
-		combat_def = resolvers.mbonus_material(15, 5, function(e, v) return v * 1 end),
+		inc_damage = { [DamageType.COLD] = resolvers.mbonus_material(10, 10, function(e, v) return v * 0.8 end) },
+		resists = {[DamageType.COLD] = resolvers.genericlast(function(e) return e.wielder.inc_damage[engine.DamageType.COLD] end) },
 	},
 }
 
 newEntity{
-	name = " of fire resistance (#RESIST#)", suffix=true,
+	name = " of nature (#RESIST#)", suffix=true,
 	level_range = {10, 40},
 	rarity = 6,
 	cost = 2,
 	wielder = {
-		resists = { [DamageType.FIRE] = resolvers.mbonus_material(15, 20, function(e, v) return v * 0.15 end), }
+		inc_damage = { [DamageType.NATURE] = resolvers.mbonus_material(10, 10, function(e, v) return v * 0.8 end) },
+		resists = {[DamageType.NATURE] = resolvers.genericlast(function(e) return e.wielder.inc_damage[engine.DamageType.NATURE] end) },
 	},
 }
 
 newEntity{
-	name = " of cold resistance (#RESIST#)", suffix=true,
+	name = " of lightning (#RESIST#)", suffix=true,
 	level_range = {10, 40},
 	rarity = 6,
 	cost = 2,
 	wielder = {
-		resists = { [DamageType.COLD] = resolvers.mbonus_material(15, 20, function(e, v) return v * 0.15 end), }
+		inc_damage = { [DamageType.LIGHTNING] = resolvers.mbonus_material(10, 10, function(e, v) return v * 0.8 end) },
+		resists = {[DamageType.LIGHTNING] = resolvers.genericlast(function(e) return e.wielder.inc_damage[engine.DamageType.LIGHTNING] end) },
 	},
 }
 
 newEntity{
-	name = " of nature resistance (#RESIST#)", suffix=true,
+	name = " of corrosion (#RESIST#)", suffix=true,
 	level_range = {10, 40},
 	rarity = 6,
 	cost = 2,
 	wielder = {
-		resists = { [DamageType.NATURE] = resolvers.mbonus_material(15, 20, function(e, v) return v * 0.15 end), }
+		inc_damage = { [DamageType.ACID] = resolvers.mbonus_material(10, 10, function(e, v) return v * 0.8 end) },
+		resists = {[DamageType.ACID] = resolvers.genericlast(function(e) return e.wielder.inc_damage[engine.DamageType.ACID] end) },
 	},
 }
 
 newEntity{
-	name = " of lightning resistance (#RESIST#)", suffix=true,
+	name = " of blight (#RESIST#)", suffix=true,
 	level_range = {10, 40},
 	rarity = 6,
 	cost = 2,
 	wielder = {
-		resists = { [DamageType.LIGHTNING] = resolvers.mbonus_material(15, 20, function(e, v) return v * 0.15 end), }
+		inc_damage = { [DamageType.BLIGHT] = resolvers.mbonus_material(10, 10, function(e, v) return v * 0.8 end) },
+		resists = {[DamageType.BLIGHT] = resolvers.genericlast(function(e) return e.wielder.inc_damage[engine.DamageType.BLIGHT] end) },
 	},
 }
 
 newEntity{
-	name = " of acid resistance (#RESIST#)", suffix=true,
-	level_range = {10, 40},
-	rarity = 6,
-	cost = 2,
+	name = " of massacre (#DAMBONUS#)", suffix=true,
+	level_range = {6, 50},
+	rarity = 4,
+	cost = 4,
 	wielder = {
-		resists = { [DamageType.ACID] = resolvers.mbonus_material(15, 20, function(e, v) return v * 0.15 end), }
+		inc_damage = { [DamageType.PHYSICAL] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.8 end) },
 	},
 }
 
-newEntity{
-	name = " of spell save", suffix=true,
-	level_range = {1, 30},
-	rarity = 6,
-	cost = 2,
+newEntity{ define_as = "RING_ARCANE_POWER",
+	name = " of arcane power (#DAMBONUS#)", suffix=true,
+	level_range = {6, 50},
+	rarity = 4,
+	cost = 4,
 	wielder = {
-		combat_spellresist = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.15 end),
+		inc_damage = { [DamageType.ARCANE] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.8 end) },
 	},
 }
 
 newEntity{
-	name = " of physical save", suffix=true,
-	level_range = {1, 30},
-	rarity = 6,
-	cost = 2,
+	name = "savior's ", prefix=true, instant_resolve=true,
+	level_range = {1, 50},
+	rarity = 10,
+	cost = 10,
 	wielder = {
-		combat_physresist = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.15 end),
+		combat_mentalresist = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
+		combat_physresist = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
+		combat_spellresist = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
 	},
 }
 
 newEntity{
-	name = " of strength (#STATBONUS#)", suffix=true,
+	name = "brawler's ", prefix=true,
 	level_range = {1, 50},
-	rarity = 6,
-	cost = 4,
+	rarity = 7,
+	cost = 6,
 	wielder = {
 		inc_stats = { [Stats.STAT_STR] = resolvers.mbonus_material(8, 2, function(e, v) return v * 3 end) },
+		combat_def = resolvers.genericlast(function(e) return e.wielder.inc_stats[engine.interface.ActorStats.STAT_STR] end),
 	},
 }
+
 newEntity{
-	name = " of dexterity (#STATBONUS#)", suffix=true,
+	name = "titan's ", prefix=true,
 	level_range = {1, 50},
-	rarity = 6,
-	cost = 4,
+	rarity = 7,
+	cost = 6,
+	wielder = {
+		inc_stats = { [Stats.STAT_CON] = resolvers.mbonus_material(8, 2, function(e, v) return v * 3 end) },
+		combat_physresist = resolvers.genericlast(function(e) return e.wielder.inc_stats[engine.interface.ActorStats.STAT_CON] end),
+	},
+}
+
+newEntity{
+	name = "duelist's ", prefix=true,
+	level_range = {1, 50},
+	rarity = 7,
+	cost = 6,
 	wielder = {
 		inc_stats = { [Stats.STAT_DEX] = resolvers.mbonus_material(8, 2, function(e, v) return v * 3 end) },
+		combat_atk = resolvers.genericlast(function(e) return e.wielder.inc_stats[engine.interface.ActorStats.STAT_DEX] end),
 	},
 }
+
 newEntity{ define_as = "RING_MAGIC",
-	name = " of magic (#STATBONUS#)", suffix=true,
+	name = "wizard's ", prefix=true,
 	level_range = {1, 50},
-	rarity = 6,
-	cost = 4,
+	rarity = 7,
+	cost = 6,
 	wielder = {
 		inc_stats = { [Stats.STAT_MAG] = resolvers.mbonus_material(8, 2, function(e, v) return v * 3 end) },
+		combat_spellresist = resolvers.genericlast(function(e) return e.wielder.inc_stats[engine.interface.ActorStats.STAT_MAG] end),
 	},
 }
+
 newEntity{
-	name = " of constitution (#STATBONUS#)", suffix=true,
+	name = "mule's ", prefix=true,
 	level_range = {1, 50},
-	rarity = 6,
-	cost = 4,
+	rarity = 7,
+	cost = 6,
 	wielder = {
-		inc_stats = { [Stats.STAT_CON] = resolvers.mbonus_material(8, 2, function(e, v) return v * 3 end) },
+		max_encumber = resolvers.mbonus_material(20, 20, function(e, v) return v * 0.4, v end),
+		fatigue = resolvers.mbonus_material(6, 4, function(e, v) return v * 1, -v end),
 	},
 }
 
--------------------------- Damage increase rings
 newEntity{
-	name = " of massacre (#DAMBONUS#)", suffix=true,
-	level_range = {6, 50},
-	rarity = 4,
-	cost = 4,
+	name = "sneakthief's ", prefix=true, instant_resolve=true,
+	level_range = {15, 50},
+	greater_ego = true,
+	rarity = 12,
+	cost = 20,
 	wielder = {
-		inc_damage = { [DamageType.PHYSICAL] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.8 end) },
+		lite = -2,	
+		inc_stats = {
+			[Stats.STAT_DEX] = resolvers.mbonus_material(6, 4, function(e, v) return v * 3 end),
+			[Stats.STAT_CUN] = resolvers.mbonus_material(6, 4, function(e, v) return v * 3 end),
 	},
-}
-newEntity{ define_as = "RING_ARCANE_POWER",
-	name = " of arcane power (#DAMBONUS#)", suffix=true,
-	level_range = {6, 50},
-	rarity = 4,
-	cost = 4,
-	wielder = {
-		inc_damage = { [DamageType.ARCANE] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.8 end) },
 	},
 }
-newEntity{ define_as = "RING_BURNING",
-	name = " of burning (#DAMBONUS#)", suffix=true,
-	level_range = {6, 50},
-	rarity = 4,
-	cost = 4,
+
+newEntity{
+	name = "gladiator's ", prefix=true, instant_resolve=true,
+	level_range = {15, 50},
+	greater_ego = true,
+	rarity = 12,
+	cost = 20,
 	wielder = {
-		inc_damage = { [DamageType.FIRE] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.8 end) },
+		combat_dam = resolvers.mbonus_material(10, 5, function(e, v) return v * 3 end),
+		inc_stats = {
+			[Stats.STAT_STR] = resolvers.mbonus_material(6, 4, function(e, v) return v * 3 end),
+			[Stats.STAT_CON] = resolvers.mbonus_material(6, 4, function(e, v) return v * 3 end),
 	},
-}
-newEntity{ define_as = "RING_FREEZING",
-	name = " of freezing (#DAMBONUS#)", suffix=true,
-	level_range = {6, 50},
-	rarity = 4,
-	cost = 4,
-	wielder = {
-		inc_damage = { [DamageType.COLD] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.8 end) },
 	},
 }
-newEntity{ define_as = "RING_NATURE_BLESSING",
-	name = " of nature's blessing (#DAMBONUS#)", suffix=true,
-	level_range = {6, 50},
-	rarity = 4,
-	cost = 4,
+
+newEntity{
+	name = "conjurer's ", prefix=true, instant_resolve=true,
+	level_range = {15, 50},
+	greater_ego = true,
+	rarity = 12,
+	cost = 20,
 	wielder = {
-		inc_damage = { [DamageType.NATURE] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.8 end) },
+		mana_regen = resolvers.mbonus_material(30, 10, function(e, v) v=v/100 return v * 80, v end),
+		inc_stats = {
+			[Stats.STAT_MAG] = resolvers.mbonus_material(4, 4, function(e, v) return v * 3 end),
+			[Stats.STAT_WIL] = resolvers.mbonus_material(4, 4, function(e, v) return v * 3 end),
+			},	
 	},
 }
-newEntity{ define_as = "RING_BLIGHT",
-	name = " of blight (#DAMBONUS#)", suffix=true,
-	level_range = {6, 50},
-	rarity = 4,
-	cost = 4,
+
+newEntity{
+	name = " of tenacity", suffix=true, instant_resolve=true,
+	level_range = {30, 50},
+	greater_ego = true,
+	rarity = 12,
+	cost = 50,
 	wielder = {
-		inc_damage = { [DamageType.BLIGHT] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.8 end) },
+		pin_immune = resolvers.mbonus_material(2, 2, function(e, v) v=v/10 return v * 8, v end),
+		knockback_immune = resolvers.mbonus_material(2, 2, function(e, v) v=v/10 return v * 8, v end),
+		disarm_immune = resolvers.mbonus_material(2, 2, function(e, v) v=v/10 return v * 8, v end),	
 	},
 }
-newEntity{ define_as = "RING_SHOCK",
-	name = " of shock (#DAMBONUS#)", suffix=true,
-	level_range = {6, 50},
-	rarity = 4,
-	cost = 4,
+
+
+newEntity{
+	name = " of evocation", suffix=true, instant_resolve=true,
+	level_range = {30, 50},
+	greater_ego = true,
+	rarity = 12,
+	cost = 50,
 	wielder = {
-		inc_damage = { [DamageType.LIGHTNING] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.8 end) },
+		combat_spellpower = resolvers.mbonus_material(3, 3, function(e, v) return v * 0.8 end),
+		combat_spellcrit = resolvers.mbonus_material(3, 3, function(e, v) return v * 0.4 end),
+		inc_damage = { [DamageType.ARCANE] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.8 end) },	
 	},
 }
-newEntity{ define_as = "RING_CORROSION",
-	name = " of corrosion (#DAMBONUS#)", suffix=true,
-	level_range = {6, 50},
-	rarity = 4,
-	cost = 4,
-	wielder = {
-		inc_damage = { [DamageType.ACID] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.8 end) },
+
+newEntity{
+	name = " of life", suffix=true, instant_resolve=true,
+	level_range = {30, 50},
+	greater_ego = true,
+	rarity = 12,
+	cost = 50,
+	wielder = {	
+		max_life=resolvers.mbonus_material(60, 40, function(e, v) return v * 0.1 end),
+		life_regen = resolvers.mbonus_material(15, 5, function(e, v) v=v/10 return v * 10, v end),
+		healing_factor = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end),	
+
 	},
 }
diff --git a/game/modules/tome/data/general/objects/egos/robe.lua b/game/modules/tome/data/general/objects/egos/robe.lua
index 78474ccc12bd4261fd83779357ff4d1212ab23c9..75384710c6c9b396f5b68695aaf3242b1d6e3a60 100644
--- a/game/modules/tome/data/general/objects/egos/robe.lua
+++ b/game/modules/tome/data/general/objects/egos/robe.lua
@@ -17,6 +17,8 @@
 -- Nicolas Casalini "DarkGod"
 -- darkgod@te4.org
 
+local Stats = require "engine.interface.ActorStats"
+
 --load("/data/general/objects/egos/charged-defensive.lua")
 --load("/data/general/objects/egos/charged-utility.lua")
 
@@ -103,6 +105,157 @@ newEntity{
 			[DamageType.BLIGHT] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.25 end),
 			[DamageType.PHYSICAL] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.25 end),
 		},
-		combat_spellpower = 4,
+		combat_spellpower = resolvers.mbonus_material(4, 3, function(e, v) return v * 0.8 end),
+	},
+}
+
+newEntity{
+	name = "enchanted ", prefix=true, instant_resolve=true,
+	level_range = {1, 50},
+	rarity = 7,
+	cost = 6,
+	wielder = {
+		combat_spellpower = resolvers.mbonus_material(4, 2, function(e, v) return v * 0.8 end),
+	},
+}
+
+newEntity{
+	name = "shielded ", prefix=true, instant_resolve=true,
+	level_range = {1, 50},
+	rarity = 7,
+	cost = 6,
+	wielder = {
+		combat_armor = resolvers.mbonus_material(6, 2, function(e, v) return v * 1 end),
+	},
+}
+
+newEntity{
+	name = "spellwoven ", prefix=true, instant_resolve=true,
+	level_range = {1, 50},
+	rarity = 7,
+	cost = 6,
+	wielder = {
+		combat_spellcrit = resolvers.mbonus_material(4, 2, function(e, v) return v * 0.4 end),
+	},
+}
+
+newEntity{
+	name = "runed ", prefix=true, instant_resolve=true,
+	level_range = {15, 50},
+	rarity = 10,
+	cost = 10,
+	wielder = {
+		mana_regen = resolvers.mbonus_material(30, 10, function(e, v) v=v/100 return v * 80, v end),
+	},
+}
+
+newEntity{
+	name = "bilefire ", prefix=true, instant_resolve=true,
+	level_range = {30, 50},
+	greater_ego = true,
+	rarity = 16,
+	cost = 50,
+	wielder = {	
+		resists={
+			[DamageType.FIRE] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
+			[DamageType.ACID] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
+		},	
+		inc_stats = {
+			[Stats.STAT_MAG] = resolvers.mbonus_material(4, 4, function(e, v) return v * 3 end),
+			},
+		inc_damage = {
+			[DamageType.FIRE] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.25 end),
+			[DamageType.ACID] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.25 end),
+		},
+	},
+}
+
+newEntity{
+	name = "stormlord's ", prefix=true, instant_resolve=true,
+	level_range = {30, 50},
+	greater_ego = true,
+	rarity = 16,
+	cost = 50,
+	wielder = {	
+		resists={
+			[DamageType.COLD] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
+			[DamageType.LIGHTNING] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
+		},	
+		inc_stats = {
+			[Stats.STAT_WIL] = resolvers.mbonus_material(4, 4, function(e, v) return v * 3 end),
+			},
+		inc_damage = {
+			[DamageType.COLD] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.25 end),
+			[DamageType.LIGHTNING] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.25 end),
+		},
+	},
+}
+
+newEntity{
+	name = "radiant ", prefix=true, instant_resolve=true,
+	level_range = {30, 50},
+	greater_ego = true,
+	rarity = 16,
+	cost = 50,
+	wielder = {	
+		resists={
+			[DamageType.LIGHT] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
+			[DamageType.DARKNESS] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
+		},	
+		lite = 1,
+		inc_damage = {
+			[DamageType.LIGHT] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.25 end),
+			[DamageType.DARKNESS] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.25 end),
+		},
+	},
+}
+
+newEntity{
+	name = " of Angolwen", suffix=true, instant_resolve=true,
+	level_range = {35, 50},
+	greater_ego = true,
+	rarity = 20,
+	cost = 60,
+	wielder = {	
+
+		inc_stats = {
+			[Stats.STAT_MAG] = resolvers.mbonus_material(4, 2, function(e, v) return v * 3 end),
+			[Stats.STAT_WIL] = resolvers.mbonus_material(4, 2, function(e, v) return v * 3 end),
+			[Stats.STAT_CUN] = resolvers.mbonus_material(4, 2, function(e, v) return v * 3 end),
+			[Stats.STAT_CON] = resolvers.mbonus_material(4, 2, function(e, v) return v * 3 end),
+			},
+
+	},
+}
+
+newEntity{
+	name = " of Linaniil", suffix=true, instant_resolve=true,
+	level_range = {35, 50},
+	greater_ego = true,
+	rarity = 20,
+	cost = 60,
+	wielder = {	
+		combat_spellpower = resolvers.mbonus_material(3, 3, function(e, v) return v * 0.8 end),
+		combat_spellcrit = resolvers.mbonus_material(3, 3, function(e, v) return v * 0.4 end),
+		max_mana = resolvers.mbonus_material(60, 40, function(e, v) return v * 0.1 end),
+		mana_regen = resolvers.mbonus_material(30, 10, function(e, v) v=v/100 return v * 80, v end),
+
+	},
+}
+
+newEntity{
+	name = " of life", suffix=true, instant_resolve=true,
+	level_range = {35, 50},
+	greater_ego = true,
+	rarity = 20,
+	cost = 60,
+	wielder = {	
+		max_life=resolvers.mbonus_material(60, 40, function(e, v) return v * 0.1 end),
+		life_regen = resolvers.mbonus_material(15, 5, function(e, v) v=v/10 return v * 10, v end),
+		healing_factor = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end),
+		resists={
+			[DamageType.BLIGHT] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.15 end),
+		},	
+
 	},
 }
diff --git a/game/modules/tome/data/general/objects/egos/shield.lua b/game/modules/tome/data/general/objects/egos/shield.lua
index cdb77f7a65d6426c4bf8ba5de09b08c033440b2e..b5fac9c3a568cb6972eab0d05ec37f6358fbd4de 100644
--- a/game/modules/tome/data/general/objects/egos/shield.lua
+++ b/game/modules/tome/data/general/objects/egos/shield.lua
@@ -17,6 +17,8 @@
 -- Nicolas Casalini "DarkGod"
 -- darkgod@te4.org
 
+local Stats = require "engine.interface.ActorStats"
+
 --load("/data/general/objects/egos/charged-attack.lua")
 --load("/data/general/objects/egos/charged-defensive.lua")
 --load("/data/general/objects/egos/charged-utility.lua")
@@ -74,7 +76,7 @@ newEntity{
 	rarity = 8,
 	cost = 8,
 	wielder = {
-		on_melee_hit={[DamageType.FIRE] = resolvers.mbonus_material(7, 3, function(e, v) return v * 0.6 end)},
+		on_melee_hit={[DamageType.FIRE] = resolvers.mbonus_material(10, 10, function(e, v) return v * 0.6 end)},
 	},
 }
 newEntity{
@@ -83,7 +85,7 @@ newEntity{
 	rarity = 8,
 	cost = 10,
 	wielder = {
-		on_melee_hit={[DamageType.ICE] = resolvers.mbonus_material(4, 3, function(e, v) return v * 0.7 end)},
+		on_melee_hit={[DamageType.ICE] = resolvers.mbonus_material(10, 10, function(e, v) return v * 0.7 end)},
 	},
 }
 newEntity{
@@ -92,7 +94,7 @@ newEntity{
 	rarity = 8,
 	cost = 8,
 	wielder = {
-		on_melee_hit={[DamageType.ACID] = resolvers.mbonus_material(7, 3, function(e, v) return v * 0.7 end)},
+		on_melee_hit={[DamageType.ACID] = resolvers.mbonus_material(10, 10, function(e, v) return v * 0.7 end)},
 	},
 }
 newEntity{
@@ -101,28 +103,138 @@ newEntity{
 	rarity = 8,
 	cost = 8,
 	wielder = {
-		on_melee_hit={[DamageType.LIGHTNING] = resolvers.mbonus_material(7, 3, function(e, v) return v * 0.7 end)},
+		on_melee_hit={[DamageType.LIGHTNING] = resolvers.mbonus_material(10, 10, function(e, v) return v * 0.7 end)},
+	},
+}
+
+newEntity{
+	name = " of resilience", suffix=true, instant_resolve=true,
+	level_range = {10, 50},
+	rarity = 10,
+	cost = 10,
+	wielder = {
+		max_life=resolvers.mbonus_material(60, 40, function(e, v) return v * 0.1 end),
 	},
 }
 
 newEntity{
 	name = " of deflection", suffix=true, instant_resolve=true,
 	level_range = {10, 50},
+	rarity = 10,
+	cost = 10,
+	wielder = {
+		combat_def=resolvers.mbonus_material(11, 4, function(e, v) return v * 1 end),
+	},
+}
+
+newEntity{
+	name = "reflective ", prefix=true, instant_resolve=true,
+	level_range = {10, 50},
+	rarity = 10,
+	cost = 10,
+	wielder = {
+		resists={
+			[DamageType.LIGHT] = resolvers.mbonus_material(10, 10, function(e, v) return v * 0.15 end),
+			[DamageType.DARKNESS] = resolvers.mbonus_material(10, 10, function(e, v) return v * 0.15 end),
+		},
+	},
+}
+
+newEntity{
+	name = "brilliant ", prefix=true, instant_resolve=true,
+	level_range = {15, 50},
+	rarity = 8,
+	cost = 8,
+	wielder = {
+		on_melee_hit={[DamageType.LIGHT] = resolvers.mbonus_material(10, 10, function(e, v) return v * 0.7 end)},
+	},
+}
+
+newEntity{
+	name = " of crushing", suffix=true, instant_resolve=true,
+	level_range = {15, 50},
 	greater_ego = true,
-	rarity = 15,
+	rarity = 16,
 	cost = 20,
 	wielder = {
-		combat_def=resolvers.mbonus_material(15, 4, function(e, v) return v * 1 end),
+		pin_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end),
+		combat_dam = resolvers.mbonus_material(5, 5, function(e, v) return v * 3 end),
+		combat_physcrit = resolvers.mbonus_material(3, 3, function(e, v) return v * 1.4 end),
 	},
 }
 
 newEntity{
-	name = " of resilience", suffix=true, instant_resolve=true,
-	level_range = {20, 50},
+	name = " of resistance", suffix=true, instant_resolve=true,
+	level_range = {15, 50},
 	greater_ego = true,
-	rarity = 15,
+	rarity = 16,
+	cost = 20,
+	wielder = {
+		resists={
+			[DamageType.ACID] = resolvers.mbonus_material(8, 5, function(e, v) return v * 0.15 end),
+			[DamageType.LIGHTNING] = resolvers.mbonus_material(8, 5, function(e, v) return v * 0.15 end),
+			[DamageType.FIRE] = resolvers.mbonus_material(8, 5, function(e, v) return v * 0.15 end),
+			[DamageType.COLD] = resolvers.mbonus_material(8, 5, function(e, v) return v * 0.15 end),
+		},
+	},
+}
+
+newEntity{
+	name = " of the night", suffix=true, instant_resolve=true,
+	level_range = {15, 50},
+	greater_ego = true,
+	rarity = 16,
 	cost = 20,
+	wielder = {	
+		resists={
+			[DamageType.DARKNESS] = resolvers.mbonus_material(10, 10, function(e, v) return v * 0.15 end),
+		},	
+		on_melee_hit={[DamageType.DARKNESS] = resolvers.mbonus_material(10, 10, function(e, v) return v * 0.7 end)},
+		infravision = resolvers.mbonus_material(2, 1, function(e, v) return v * 1.4 end),
+	},
+}
+
+newEntity{
+	name = "impervious ", prefix=true, instant_resolve=true,
+	level_range = {40, 50},
+	greater_ego = true,
+	rarity = 18,
+	cost = 40,
+	wielder = {
+		combat_armor = resolvers.mbonus_material(8, 4, function(e, v) return v * 1 end),
+		stun_immune = resolvers.mbonus_material(3, 2, function(e, v) v=v/10 return v * 8, v end),
+		inc_stats = {
+			[Stats.STAT_CON] = resolvers.mbonus_material(4, 3, function(e, v) return v * 3 end),
+			},
+	},
+}
+
+newEntity{
+	name = "spellplated ", prefix=true, instant_resolve=true,
+	level_range = {10, 50},
+	greater_ego = true,
+	rarity = 15,
+	cost = 18,
+	wielder = {
+		combat_mentalresist = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
+		combat_spellresist = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
+		inc_stats = {
+			[Stats.STAT_WIL] = resolvers.mbonus_material(4, 2, function(e, v) return v * 3 end),
+			},
+	},
+}
+
+newEntity{
+	name = "blood-runed ", prefix=true, instant_resolve=true,
+	level_range = {30, 50},
+	greater_ego = true,
+	rarity = 17,
+	cost = 30,
 	wielder = {
-		max_life=resolvers.mbonus_material(100, 10, function(e, v) return v * 0.1 end),
+		life_regen = resolvers.mbonus_material(15, 5, function(e, v) v=v/10 return v * 10, v end),
+		healing_factor = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end),
+		inc_stats = {
+			[Stats.STAT_CON] = resolvers.mbonus_material(4, 3, function(e, v) return v * 3 end),
+			},
 	},
 }
diff --git a/game/modules/tome/data/general/objects/egos/staves.lua b/game/modules/tome/data/general/objects/egos/staves.lua
index f4dcca8bd8479c1e153fc330d0ca8743d577dc6c..1e45de0265c99bdce5746aab5955e1f23a1c20de 100644
--- a/game/modules/tome/data/general/objects/egos/staves.lua
+++ b/game/modules/tome/data/general/objects/egos/staves.lua
@@ -18,6 +18,7 @@
 -- darkgod@te4.org
 
 local Stats = require "engine.interface.ActorStats"
+local Talents = require "engine.interface.ActorTalents"
 
 --load("/data/general/objects/egos/charged-attack.lua")
 --load("/data/general/objects/egos/charged-defensive.lua")
@@ -39,10 +40,11 @@ newEntity{
 	rarity = 3,
 	cost = 8,
 	wielder = {
-		max_mana = resolvers.mbonus_material(100, 10, function(e, v) return v * 0.2 end),
+		max_mana = resolvers.mbonus_material(70, 40, function(e, v) return v * 0.2 end),
 	},
 }
 
+
 newEntity{
 	name = " of might", suffix=true, instant_resolve=true,
 	level_range = {1, 50},
@@ -145,3 +147,149 @@ newEntity{
 		inc_damage={ [DamageType.DARKNESS] = resolvers.mbonus_material(25, 8, function(e, v) return v * 0.8 end), },
 	},
 }
+
+newEntity{
+	name = " of divination", suffix=true, instant_resolve=true,
+	level_range = {1, 50},
+	rarity = 8,
+	cost = 8,
+	wielder = {
+		talents_types_mastery = {
+			["spell/divination"] = resolvers.mbonus_material(2, 2, function(e, v) v=v/10 return v * 8, v end),
+		},
+	},
+}
+
+newEntity{
+	name = " of conveyance", suffix=true, instant_resolve=true,
+	level_range = {1, 50},
+	rarity = 10,
+	cost = 10,
+	wielder = {
+		talents_types_mastery = {
+			["spell/conveyance"] = resolvers.mbonus_material(2, 2, function(e, v) v=v/10 return v * 8, v end),
+		},
+	},
+	max_power = 120, power_regen = 1,
+	use_power = { name = "teleport you anywhere on the level, randomly", power = 60, use = function(self, who)
+		game.level.map:particleEmitter(who.x, who.y, 1, "teleport")
+		who:teleportRandom(who.x, who.y, 200)
+		game.level.map:particleEmitter(who.x, who.y, 1, "teleport")
+		game.logSeen(who, "%s uses %s!", who.name:capitalize(), self:getName{no_count=true})
+		return nil, true
+	end}
+}
+
+newEntity{
+	name = " of illumination", suffix=true, instant_resolve=true,
+	level_range = {1, 50},
+	rarity = 8,
+	cost = 8,
+	wielder = {
+		lite = 1,
+	},
+	max_power = 80, power_regen = 1,
+	use_talent = { id = Talents.T_ILLUMINATE, level = 2, power = 80 },
+}
+
+newEntity{
+	name = " of blasting", suffix=true, instant_resolve=true,
+	level_range = {30, 50},
+	greater_ego = true,
+	rarity = 18,
+	cost = 45,
+	wielder = {
+		combat_spellpower = resolvers.mbonus_material(12, 3, function(e, v) return v * 0.6 end),
+		combat_spellcrit = resolvers.mbonus_material(4, 2, function(e, v) return v * 0.4 end),
+		inc_damage = {
+			[DamageType.FIRE] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.25 end),
+			[DamageType.LIGHTNING] = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.25 end),
+		},
+	},
+	max_power = 80, power_regen = 1,
+	use_talent = { id = Talents.T_BLASTWAVE, level = 2, power = 80 },
+}
+
+
+newEntity{
+	name = " of warding", suffix=true, instant_resolve=true,
+	level_range = {30, 50},
+	greater_ego = true,
+	rarity = 20,
+	cost = 45,
+	wielder = {
+		combat_spellpower = resolvers.mbonus_material(12, 3, function(e, v) return v * 0.6 end),
+		stun_immune = resolvers.mbonus_material(3, 3, function(e, v) v=v/10 return v * 8, v end),
+		combat_def = resolvers.mbonus_material(16, 4, function(e, v) return v * 1 end),
+		resists={
+			[DamageType.ARCANE] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.15 end),
+		},
+	},
+	max_power = 80, power_regen = 1,
+	use_talent = { id = Talents.T_DISPLACEMENT_SHIELD, level = 4, power = 80 },
+}
+
+newEntity{
+	name = " of channeling", suffix=true, instant_resolve=true,
+	level_range = {30, 50},
+	greater_ego = true,
+	rarity = 18,
+	cost = 45,
+	wielder = {
+		combat_spellpower = resolvers.mbonus_material(12, 3, function(e, v) return v * 0.6 end),
+		mana_regen = resolvers.mbonus_material(30, 10, function(e, v) v=v/100 return v * 80, v end),
+	},
+	max_power = 80, power_regen = 1,
+	use_talent = { id = Talents.T_METAFLOW, level = 3, power = 80 },
+}
+
+newEntity{
+	name = "lifebinding ", prefix=true, instant_resolve=true,
+	level_range = {30, 50},
+	greater_ego = true,
+	rarity = 16,
+	cost = 35,
+	wielder = {
+		combat_spellpower = resolvers.mbonus_material(7, 3, function(e, v) return v * 0.6 end),
+		life_regen = resolvers.mbonus_material(15, 5, function(e, v) v=v/10 return v * 10, v end),
+		healing_factor = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end),
+		inc_stats = {
+			[Stats.STAT_CON] = resolvers.mbonus_material(4, 3, function(e, v) return v * 3 end),
+			},
+	},
+}
+
+newEntity{
+	name = "infernal ", prefix=true, instant_resolve=true,
+	level_range = {30, 50},
+	greater_ego = true,
+	rarity = 16,
+	cost = 35,
+	wielder = {
+		combat_spellpower = resolvers.mbonus_material(7, 3, function(e, v) return v * 0.6 end),
+		see_invisible = resolvers.mbonus_material(15, 5, function(e, v) return v * 0.2 end),
+		inc_damage = {
+			[DamageType.FIRE] = resolvers.mbonus_material(20, 5, function(e, v) return v * 0.25 end),
+			[DamageType.BLIGHT] = resolvers.mbonus_material(20, 5, function(e, v) return v * 0.25 end),
+		},
+	},
+
+}
+
+
+newEntity{
+	name = "chronomancer's ", prefix=true, instant_resolve=true,
+	level_range = {30, 50},
+	greater_ego = true,
+	rarity = 16,
+	cost = 35,
+	wielder = {
+		combat_spellpower = resolvers.mbonus_material(7, 3, function(e, v) return v * 0.6 end),
+		movement_speed = -0.1,
+		inc_damage = {
+			[DamageType.TEMPORAL] = resolvers.mbonus_material(20, 5, function(e, v) return v * 0.25 end),
+		},
+	},
+
+}
+
diff --git a/game/modules/tome/data/general/objects/egos/weapon.lua b/game/modules/tome/data/general/objects/egos/weapon.lua
index 4e9cb5344800312e279bd3db468914d32370c3c8..1e43d941303df1f1fda5f10e20b122c1454cbb1e 100644
--- a/game/modules/tome/data/general/objects/egos/weapon.lua
+++ b/game/modules/tome/data/general/objects/egos/weapon.lua
@@ -109,7 +109,7 @@ newEntity{
 	rarity = 3,
 	cost = 4,
 	wielder = {
-		inc_damage={ [DamageType.PHYSICAL] = resolvers.mbonus_material(25, 8, function(e, v) return v * 0.8 end), },
+		combat_dam = resolvers.mbonus_material(7, 3, function(e, v) return v * 3 end),
 	},
 }
 
@@ -176,3 +176,81 @@ newEntity{
 		combat_physcrit = resolvers.mbonus_material(10, 4, function(e, v) return v * 0.4 end),
 	},
 }
+
+newEntity{
+	name = " of crippling", suffix=true, instant_resolve=true,
+	level_range = {1, 50},
+	rarity = 3,
+	cost = 4,
+	wielder = {
+		combat_physcrit = resolvers.mbonus_material(7, 3, function(e, v) return v * 1.4 end),
+	},
+}
+
+newEntity{
+	name = " of daylight", suffix=true, instant_resolve=true,
+	level_range = {1, 50},
+	rarity = 3,
+	cost = 4,
+	wielder = {
+		melee_project={[DamageType.LIGHT] = resolvers.mbonus_material(45, 6, function(e, v) return v * 0.9 end)},
+	},
+}
+
+newEntity{
+	name = " of defense", suffix=true, instant_resolve=true,
+	level_range = {1, 50},
+	rarity = 3,
+	cost = 4,
+	wielder = {
+		combat_def = resolvers.mbonus_material(7, 3, function(e, v) return v * 1 end),
+	},
+}
+
+newEntity{
+	name = " of ruin", suffix=true, instant_resolve=true,
+	level_range = {15, 50},
+	greater_ego = true,
+	rarity = 20,
+	cost = 25,
+	wielder = {
+		inc_stats = {
+			[Stats.STAT_STR] = resolvers.mbonus_material(4, 3, function(e, v) return v * 3 end),
+		},
+		combat_physcrit = resolvers.mbonus_material(7, 3, function(e, v) return v * 1.4 end),
+		combat_critical_power = resolvers.mbonus_material(10, 10, function(e, v) v=v/100 return v * 200, v end),
+		combat_apr = resolvers.mbonus_material(7, 3, function(e, v) return v * 0.3 end),
+	},
+
+}
+
+newEntity{
+	name = "quick ", prefix=true, instant_resolve=true,
+	level_range = {20, 50},
+	greater_ego = true,
+	rarity = 25,
+	cost = 30,
+	wielder = {
+		combat_physspeed = -0.1,
+		combat_atk = resolvers.mbonus_material(20, 2, function(e, v) return v * 0.3 end),
+		inc_stats = {
+			[Stats.STAT_DEX] = resolvers.mbonus_material(4, 3, function(e, v) return v * 3 end),
+			[Stats.STAT_CUN] = resolvers.mbonus_material(4, 3, function(e, v) return v * 3 end),
+		},
+	},
+}
+
+newEntity{
+	name = "mystic ", prefix=true, instant_resolve=true,
+	level_range = {20, 50},
+	greater_ego = true,
+	rarity = 20,
+	cost = 30,
+	wielder = {
+		combat_spellcrit = resolvers.mbonus_material(7, 3, function(e, v) return v * 0.4 end),
+		inc_stats = {
+			[Stats.STAT_MAG] = resolvers.mbonus_material(4, 3, function(e, v) return v * 3 end),
+			[Stats.STAT_WIL] = resolvers.mbonus_material(4, 3, function(e, v) return v * 3 end),
+		},
+	},
+}
diff --git a/game/modules/tome/data/general/objects/egos/wizard-hat.lua b/game/modules/tome/data/general/objects/egos/wizard-hat.lua
index 47a3c63fd65d6c4df9d8b3ca6cc0aaff7395865f..f26c5b44f13910b7f2b338ebdba13eb488a94e2a 100644
--- a/game/modules/tome/data/general/objects/egos/wizard-hat.lua
+++ b/game/modules/tome/data/general/objects/egos/wizard-hat.lua
@@ -25,23 +25,17 @@ local DamageType = require "engine.DamageType"
 --load("/data/general/objects/egos/charged-utility.lua")
 
 newEntity{
-	name = " of amplification", suffix=true, instant_resolve=true,
+	name = " of absorption", suffix=true, instant_resolve=true,
 	level_range = {20, 50},
-	rarity = 5,
-	cost = 6,
-	wielder = {
-		mana_regen_on_hit = resolvers.mbonus_material(23, 7, function(e, v) v=v/10 return v * 10, v end),
-	},
-}
-newEntity{
-	name = " of the wilds", suffix=true, instant_resolve=true,
-	level_range = {20, 50},
-	rarity = 5,
-	cost = 6,
+	rarity = 10,
+	cost = 20,
 	wielder = {
-		equilibrium_regen_on_hit = resolvers.mbonus_material(23, 7, function(e, v) v=v/10 return v * 10, v end),
+		stamina_regen_on_hit = resolvers.mbonus_material(23, 7, function(e, v) v=v/10 return v * 3, v end),
+		equilibrium_regen_on_hit = resolvers.mbonus_material(23, 7, function(e, v) v=v/10 return v * 3, v end),
+		mana_regen_on_hit = resolvers.mbonus_material(23, 7, function(e, v) v=v/10 return v * 3, v end),
 	},
 }
+
 newEntity{
 	name = " of magic (#STATBONUS#)", suffix=true,
 	level_range = {1, 50},
@@ -95,19 +89,21 @@ newEntity{
 	rarity = 10,
 	cost = 4,
 	wielder = {
-		max_mana = resolvers.mbonus_material(100, 10, function(e, v) return v * 0.2 end),
+		max_mana = resolvers.mbonus_material(70, 40, function(e, v) return v * 0.2 end),
 	},
 }
+
 newEntity{
 	name = " of seeing ", suffix=true,
 	level_range = {1, 50},
 	rarity = 5,
 	cost = 6,
 	wielder = {
-		blind_immune = 0.5,
+		blind_immune = resolvers.mbonus_material(3, 3, function(e, v) v=v/10 return v * 8, v end),
 	},
 }
 
+
 newEntity{
 	name = "arcanist's ", prefix=true, instant_resolve=true,
 	level_range = {25, 50},
@@ -123,3 +119,123 @@ newEntity{
 	max_power = 80, power_regen = 1,
 	use_talent = { id = Talents.T_MANAFLOW, level = 1, power = 80 },
 }
+
+newEntity{
+	name = "insulating ", prefix=true, instant_resolve=true,
+	level_range = {1, 50},
+	rarity = 6,
+	cost = 5,
+	wielder = {
+		resists={
+			[DamageType.FIRE] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
+			[DamageType.COLD] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
+		},
+	},
+}
+
+newEntity{
+	name = "grounding ", prefix=true, instant_resolve=true,
+	level_range = {1, 50},
+	rarity = 6,
+	cost = 5,
+	wielder = {
+		resists={
+			[DamageType.LIGHTNING] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
+		},
+		stun_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end),
+	},
+}
+
+newEntity{
+	name = "stabilizing ", prefix=true, instant_resolve=true,
+	level_range = {1, 50},
+	rarity = 6,
+	cost = 5,
+	wielder = {
+		stun_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end),
+		knockback_immune = resolvers.mbonus_material(20, 10, function(e, v) v=v/100 return v * 80, v end),
+	},
+}
+
+newEntity{
+	name = "cleansing ", prefix=true, instant_resolve=true,
+	level_range = {1, 50},
+	rarity = 9,
+	cost = 9,
+	wielder = {
+		resists={
+			[DamageType.ACID] = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15 end),
+		},
+		poison_immune = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15, v/100 end),
+		disease_immune = resolvers.mbonus_material(10, 5, function(e, v) return v * 0.15, v/100 end),
+	},
+}
+
+newEntity{
+	name = "runed ", prefix=true, instant_resolve=true,
+	level_range = {15, 50},
+	rarity = 10,
+	cost = 10,
+	wielder = {
+		mana_regen = resolvers.mbonus_material(30, 10, function(e, v) v=v/100 return v * 80, v end),
+	},
+}
+
+newEntity{
+	name = " of knowledge", suffix=true, instant_resolve=true,
+	level_range = {15, 50},
+	greater_ego = true,
+	rarity = 13,
+	cost = 20,
+	wielder = {
+		combat_spellcrit = resolvers.mbonus_material(3, 3, function(e, v) return v * 0.4 end),
+		inc_stats = {
+			[Stats.STAT_MAG] = resolvers.mbonus_material(3, 2, function(e, v) return v * 3 end),
+			[Stats.STAT_WIL] = resolvers.mbonus_material(3, 2, function(e, v) return v * 3 end),
+		},		
+	},
+}
+
+newEntity{
+	name = " of the Spellblaze", suffix=true, instant_resolve=true,
+	level_range = {20, 50},
+	greater_ego = true,
+	rarity = 15,
+	cost = 20,
+	wielder = {
+		inc_damage = {
+			[DamageType.FIRE] = resolvers.mbonus_material(7, 5, function(e, v) return v * 0.25 end),
+			[DamageType.COLD] = resolvers.mbonus_material(7, 5, function(e, v) return v * 0.25 end),
+			[DamageType.ACID] = resolvers.mbonus_material(7, 5, function(e, v) return v * 0.25 end),
+			[DamageType.LIGHTNING] = resolvers.mbonus_material(7, 5, function(e, v) return v * 0.25 end),
+		},		
+	},
+}
+
+newEntity{
+	name = "naturalist's ", prefix=true, instant_resolve=true,
+	level_range = {10, 50},
+	greater_ego = true,
+	rarity = 11,
+	cost = 15,
+	wielder = {
+		max_life=resolvers.mbonus_material(30, 30, function(e, v) return v * 0.1 end),
+		life_regen = resolvers.mbonus_material(15, 5, function(e, v) v=v/10 return v * 10, v end),
+		talents_types_mastery = {
+			["spell/nature"] = resolvers.mbonus_material(30, 10, function(e, v) v=v/100 return v * 80, v end),
+		},
+	},
+}
+
+newEntity{
+	name = "soothing ", prefix=true, instant_resolve=true,
+	level_range = {25, 50},
+	greater_ego = true,
+	rarity = 17,
+	cost = 20,
+	wielder = {
+		stun_immune = resolvers.mbonus_material(3, 2, function(e, v) v=v/10 return v * 8, v end),
+		confusion_immune = resolvers.mbonus_material(3, 2, function(e, v) v=v/10 return v * 8, v end),
+		poison_immune = resolvers.mbonus_material(30, 10, function(e, v) return v * 0.15, v/100 end),
+	},
+}
\ No newline at end of file