From fb0c6af8f4dde969a3c31c0073a5744c3534d4a7 Mon Sep 17 00:00:00 2001
From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54>
Date: Mon, 7 Mar 2011 14:51:10 +0000
Subject: [PATCH] fix

git-svn-id: http://svn.net-core.org/repos/t-engine4@2961 51575b47-30f0-44d4-a5cc-537603b46e54
---
 game/modules/tome/class/GameState.lua              |  7 +++++--
 game/modules/tome/data/birth/classes/afflicted.lua |  8 ++++----
 game/modules/tome/data/birth/classes/archer.lua    |  4 ++--
 .../tome/data/birth/classes/chronomancer.lua       | 12 ++++++------
 game/modules/tome/data/birth/classes/corrupted.lua | 10 +++++-----
 game/modules/tome/data/birth/classes/divine.lua    | 10 +++++-----
 game/modules/tome/data/birth/classes/mage.lua      |  8 ++++----
 game/modules/tome/data/birth/classes/psionic.lua   |  4 ++--
 game/modules/tome/data/birth/classes/rogue.lua     |  6 +++---
 game/modules/tome/data/birth/classes/tutorial.lua  |  4 ++--
 game/modules/tome/data/birth/classes/warrior.lua   | 14 +++++++-------
 game/modules/tome/data/birth/classes/wilder.lua    |  6 +++---
 game/modules/tome/data/birth/descriptors.lua       |  2 +-
 game/modules/tome/data/birth/worlds.lua            |  2 +-
 14 files changed, 50 insertions(+), 47 deletions(-)

diff --git a/game/modules/tome/class/GameState.lua b/game/modules/tome/class/GameState.lua
index 77b69a1766..3b843b5d61 100644
--- a/game/modules/tome/class/GameState.lua
+++ b/game/modules/tome/class/GameState.lua
@@ -758,7 +758,7 @@ local default_drops = function(zone, level, what)
 	if zone.default_drops then return zone.default_drops end
 	local lev = util.bound(math.ceil(zone:level_adjust_level(level, "object") / 10), 1, 5)
 	print("[TOME ENTITY FILTER] making default loot table for", what, lev)
-	return drop_tables[what][lev]
+	return table.clone(drop_tables[what][lev])
 end
 
 function _M:defaultEntityFilter(zone, level, type)
@@ -773,12 +773,15 @@ end
 function _M:entityFilterAlter(zone, level, type, filter)
 	if type ~= "object" then return end
 
-	if not filter.tome and not filter.special and not filter.unique and not filter.ego_chance and not filter.ego_filter and not filter.no_tome_drops then filter.tome = default_drops(zone, level, filter.tome_drops or "normal") end
+	if not filter.tome and not filter.defined and not filter.special and not filter.unique and not filter.ego_chance and not filter.ego_filter and not filter.no_tome_drops then filter.tome = default_drops(zone, level, filter.tome_drops or "normal") end
 
 	if filter.tome then
 		local t = (filter.tome == true) and default_drops(zone, level, "normal") or filter.tome
 		filter.tome = nil
 
+		-- If we request a specific type/subtype, we dont waht categories that could make that not happen
+		if filter.type or filter.subtype or filter.name then t.money = 0 end
+
 		local u = t.uniques or 0
 		local dg = u + (t.double_greater or 0)
 		local ge = dg + (t.greater_normal or 0)
diff --git a/game/modules/tome/data/birth/classes/afflicted.lua b/game/modules/tome/data/birth/classes/afflicted.lua
index c315171c95..aaaa44c1e2 100644
--- a/game/modules/tome/data/birth/classes/afflicted.lua
+++ b/game/modules/tome/data/birth/classes/afflicted.lua
@@ -70,8 +70,8 @@ newBirthDescriptor{
 	copy = {
 		max_life = 110,
 		resolvers.equip{ id=true,
-			{type="weapon", subtype="battleaxe", name="iron battleaxe", autoreq=true},
-			{type="armor", subtype="light", name="rough leather armour", autoreq=true}
+			{type="weapon", subtype="battleaxe", name="iron battleaxe", autoreq=true, ego_chance=-1000},
+			{type="armor", subtype="light", name="rough leather armour", autoreq=true, ego_chance=-1000}
 		},
 	},
 	copy_add = {
@@ -112,8 +112,8 @@ newBirthDescriptor{
 	copy = {
 		max_life = 90,
 		resolvers.equip{ id=true,
-			{type="weapon", subtype="staff", name="elm staff", autoreq=true},
-			{type="armor", subtype="cloth", name="linen robe", autoreq=true},
+			{type="weapon", subtype="staff", name="elm staff", autoreq=true, ego_chance=-1000},
+			{type="armor", subtype="cloth", name="linen robe", autoreq=true, ego_chance=-1000},
 		},
 	},
 	copy_add = {
diff --git a/game/modules/tome/data/birth/classes/archer.lua b/game/modules/tome/data/birth/classes/archer.lua
index 9c4fab435e..fc99149b6d 100644
--- a/game/modules/tome/data/birth/classes/archer.lua
+++ b/game/modules/tome/data/birth/classes/archer.lua
@@ -70,7 +70,7 @@ newBirthDescriptor{
 	},
 	copy = {
 		resolvers.equip{ id=true,
-			{type="weapon", subtype="longbow", name="elm longbow", autoreq=true},
+			{type="weapon", subtype="longbow", name="elm longbow", autoreq=true, ego_chance=-1000},
 		},
 		resolvers.generic(function(e)
 			e.auto_shoot_talent = e.T_SHOOT
@@ -111,7 +111,7 @@ newBirthDescriptor{
 	},
 	copy = {
 		equipment = resolvers.equip{ id=true,
-			{type="weapon", subtype="sling", name="rough leather sling", autoreq=true},
+			{type="weapon", subtype="sling", name="rough leather sling", autoreq=true, ego_chance=-1000},
 		},
 	},
 }
diff --git a/game/modules/tome/data/birth/classes/chronomancer.lua b/game/modules/tome/data/birth/classes/chronomancer.lua
index 458a3ac2ee..b7cf06649f 100644
--- a/game/modules/tome/data/birth/classes/chronomancer.lua
+++ b/game/modules/tome/data/birth/classes/chronomancer.lua
@@ -73,8 +73,8 @@ newBirthDescriptor{
 	copy = {
 		max_life = 90,
 		resolvers.equip{ id=true,
-			{type="weapon", subtype="staff", name="elm staff", autoreq=true},
-			{type="armor", subtype="cloth", name="linen robe", autoreq=true},
+			{type="weapon", subtype="staff", name="elm staff", autoreq=true, ego_chance=-1000},
+			{type="armor", subtype="cloth", name="linen robe", autoreq=true, ego_chance=-1000},
 		},
 	},
 	copy_add = {
@@ -121,12 +121,12 @@ newBirthDescriptor{
 	copy = {
 		max_life = 100,
 		resolvers.equip{ id=true,
-			{type="weapon", subtype="longsword", name="iron longsword", autoreq=true},
-			{type="weapon", subtype="dagger", name="iron dagger", autoreq=true},
-			{type="armor", subtype="light", name="rough leather armour", autoreq=true},
+			{type="weapon", subtype="longsword", name="iron longsword", autoreq=true, ego_chance=-1000},
+			{type="weapon", subtype="dagger", name="iron dagger", autoreq=true, ego_chance=-1000},
+			{type="armor", subtype="light", name="rough leather armour", autoreq=true, ego_chance=-1000},
 		},
 		resolvers.inventory{ id=true, inven="QS_MAINHAND",
-			{type="weapon", subtype="longbow", name="elm longbow", autoreq=true},
+			{type="weapon", subtype="longbow", name="elm longbow", autoreq=true, ego_chance=-1000},
 		},
 	},
 }
diff --git a/game/modules/tome/data/birth/classes/corrupted.lua b/game/modules/tome/data/birth/classes/corrupted.lua
index dfc2dc82d3..f67eb8d111 100644
--- a/game/modules/tome/data/birth/classes/corrupted.lua
+++ b/game/modules/tome/data/birth/classes/corrupted.lua
@@ -68,9 +68,9 @@ newBirthDescriptor{
 	},
 	copy = {
 		resolvers.equip{ id=true,
-			{type="weapon", subtype="waraxe", name="iron waraxe", autoreq=true},
-			{type="weapon", subtype="waraxe", name="iron waraxe", autoreq=true},
-			{type="armor", subtype="heavy", name="iron mail armour", autoreq=true}
+			{type="weapon", subtype="waraxe", name="iron waraxe", autoreq=true, ego_chance=-1000},
+			{type="weapon", subtype="waraxe", name="iron waraxe", autoreq=true, ego_chance=-1000},
+			{type="armor", subtype="heavy", name="iron mail armour", autoreq=true, ego_chance=-1000}
 		},
 	},
 	copy_add = {
@@ -111,8 +111,8 @@ newBirthDescriptor{
 	},
 	copy = {
 		resolvers.equip{ id=true,
-			{type="weapon", subtype="staff", name="elm staff", autoreq=true},
-			{type="armor", subtype="cloth", name="linen robe", autoreq=true}
+			{type="weapon", subtype="staff", name="elm staff", autoreq=true, ego_chance=-1000},
+			{type="armor", subtype="cloth", name="linen robe", autoreq=true, ego_chance=-1000}
 		},
 	},
 }
diff --git a/game/modules/tome/data/birth/classes/divine.lua b/game/modules/tome/data/birth/classes/divine.lua
index 91592ddb58..0ec548742c 100644
--- a/game/modules/tome/data/birth/classes/divine.lua
+++ b/game/modules/tome/data/birth/classes/divine.lua
@@ -74,9 +74,9 @@ newBirthDescriptor{
 	copy = {
 		max_life = 110,
 		resolvers.equip{ id=true,
-			{type="weapon", subtype="mace", name="iron mace", autoreq=true},
-			{type="armor", subtype="shield", name="iron shield", autoreq=true},
-			{type="armor", subtype="heavy", name="iron mail armour", autoreq=true},
+			{type="weapon", subtype="mace", name="iron mace", autoreq=true, ego_chance=-1000},
+			{type="armor", subtype="shield", name="iron shield", autoreq=true, ego_chance=-1000},
+			{type="armor", subtype="heavy", name="iron mail armour", autoreq=true, ego_chance=-1000},
 		},
 	},
 	copy_add = {
@@ -119,8 +119,8 @@ newBirthDescriptor{
 	copy = {
 		max_life = 90,
 		resolvers.equip{ id=true,
-			{type="weapon", subtype="staff", name="elm staff", autoreq=true},
-			{type="armor", subtype="cloth", name="linen robe", autoreq=true}
+			{type="weapon", subtype="staff", name="elm staff", autoreq=true, ego_chance=-1000},
+			{type="armor", subtype="cloth", name="linen robe", autoreq=true, ego_chance=-1000}
 		},
 	},
 }
diff --git a/game/modules/tome/data/birth/classes/mage.lua b/game/modules/tome/data/birth/classes/mage.lua
index 6f6978ed0f..232d1fa4f9 100644
--- a/game/modules/tome/data/birth/classes/mage.lua
+++ b/game/modules/tome/data/birth/classes/mage.lua
@@ -79,8 +79,8 @@ newBirthDescriptor{
 		faction = "angolwen",
 		max_life = 90,
 		resolvers.equip{ id=true,
-			{type="weapon", subtype="staff", name="elm staff", autoreq=true},
-			{type="armor", subtype="cloth", name="linen robe", autoreq=true},
+			{type="weapon", subtype="staff", name="elm staff", autoreq=true, ego_chance=-1000},
+			{type="armor", subtype="cloth", name="linen robe", autoreq=true, ego_chance=-1000},
 		},
 		resolvers.generic(function(self)
 			if profile.mod.allow_build.mage_pyromancer then self:learnTalentType("spell/wildfire", false) self:setTalentTypeMastery("spell/wildfire", 1.3) end
@@ -129,8 +129,8 @@ newBirthDescriptor{
 	copy = {
 		max_life = 90,
 		resolvers.equip{ id=true,
-			{type="weapon", subtype="staff", name="elm staff", autoreq=true},
-			{type="armor", subtype="cloth", name="linen robe", autoreq=true}
+			{type="weapon", subtype="staff", name="elm staff", autoreq=true, ego_chance=-1000},
+			{type="armor", subtype="cloth", name="linen robe", autoreq=true, ego_chance=-1000}
 		},
 		resolvers.inventory{ id=true,
 			{type="gem",},
diff --git a/game/modules/tome/data/birth/classes/psionic.lua b/game/modules/tome/data/birth/classes/psionic.lua
index 64aa5f396b..93c3d153ce 100644
--- a/game/modules/tome/data/birth/classes/psionic.lua
+++ b/game/modules/tome/data/birth/classes/psionic.lua
@@ -73,8 +73,8 @@ newBirthDescriptor{
 	copy = {
 		max_life = 110,
 		resolvers.equip{ id=true,
-			{type="armor", subtype="cloth", name="linen robe", autoreq=true},
-			{type="weapon", subtype="greatsword", name="iron greatsword", autoreq=true},
+			{type="armor", subtype="cloth", name="linen robe", autoreq=true, ego_chance=-1000},
+			{type="weapon", subtype="greatsword", name="iron greatsword", autoreq=true, ego_chance=-1000},
 		},
 		resolvers.generic(function(self)
 			-- Make and wield some alchemist gems
diff --git a/game/modules/tome/data/birth/classes/rogue.lua b/game/modules/tome/data/birth/classes/rogue.lua
index 2e4344a03f..ac4382d1b4 100644
--- a/game/modules/tome/data/birth/classes/rogue.lua
+++ b/game/modules/tome/data/birth/classes/rogue.lua
@@ -35,9 +35,9 @@ newBirthDescriptor{
 	copy = {
 		max_life = 100,
 		equipment = resolvers.equip{ id=true,
-			{type="weapon", subtype="dagger", name="iron dagger", autoreq=true},
-			{type="weapon", subtype="dagger", name="iron dagger", autoreq=true},
-			{type="armor", subtype="light", name="rough leather armour", autoreq=true}
+			{type="weapon", subtype="dagger", name="iron dagger", autoreq=true, ego_chance=-1000},
+			{type="weapon", subtype="dagger", name="iron dagger", autoreq=true, ego_chance=-1000},
+			{type="armor", subtype="light", name="rough leather armour", autoreq=true, ego_chance=-1000}
 		},
 	},
 }
diff --git a/game/modules/tome/data/birth/classes/tutorial.lua b/game/modules/tome/data/birth/classes/tutorial.lua
index 8a9f95138c..e0b89c330f 100644
--- a/game/modules/tome/data/birth/classes/tutorial.lua
+++ b/game/modules/tome/data/birth/classes/tutorial.lua
@@ -62,8 +62,8 @@ newBirthDescriptor{
 	copy = {
 		unused_stats = 0, unused_talents = 0, unused_generics = 0, unused_talents_types = 0,
 		resolvers.equip{ id=true,
-			{type="weapon", subtype="longsword", name="iron longsword", autoreq=true},
-			{type="armor", subtype="shield", name="iron shield", autoreq=true},
+			{type="weapon", subtype="longsword", name="iron longsword", autoreq=true, ego_chance=-1000},
+			{type="armor", subtype="shield", name="iron shield", autoreq=true, ego_chance=-1000},
 		},
 	},
 }
diff --git a/game/modules/tome/data/birth/classes/warrior.lua b/game/modules/tome/data/birth/classes/warrior.lua
index 56adcd340e..675f245b2f 100644
--- a/game/modules/tome/data/birth/classes/warrior.lua
+++ b/game/modules/tome/data/birth/classes/warrior.lua
@@ -73,9 +73,9 @@ newBirthDescriptor{
 	},
 	copy = {
 		resolvers.equip{ id=true,
-			{type="weapon", subtype="longsword", name="iron longsword", autoreq=true},
-			{type="armor", subtype="shield", name="iron shield", autoreq=true},
-			{type="armor", subtype="heavy", name="iron mail armour", autoreq=true}
+			{type="weapon", subtype="longsword", name="iron longsword", autoreq=true, ego_chance=-1000, ego_chance=-1000},
+			{type="armor", subtype="shield", name="iron shield", autoreq=true, ego_chance=-1000, ego_chance=-1000},
+			{type="armor", subtype="heavy", name="iron mail armour", autoreq=true, ego_chance=-1000, ego_chance=-1000}
 		},
 	},
 	copy_add = {
@@ -118,8 +118,8 @@ newBirthDescriptor{
 	},
 	copy = {
 		resolvers.equip{ id=true,
-			{type="weapon", subtype="greatsword", name="iron greatsword", autoreq=true},
-			{type="armor", subtype="heavy", name="iron mail armour", autoreq=true},
+			{type="weapon", subtype="greatsword", name="iron greatsword", autoreq=true, ego_chance=-1000, ego_chance=-1000},
+			{type="armor", subtype="heavy", name="iron mail armour", autoreq=true, ego_chance=-1000, ego_chance=-1000},
 		},
 	},
 	copy_add = {
@@ -165,8 +165,8 @@ newBirthDescriptor{
 		max_life = 100,
 		talent_cd_reduction={[ActorTalents.T_FLAME]=-3, [ActorTalents.T_LIGHTNING]=-3, },
 		resolvers.equip{ id=true,
-			{type="weapon", subtype="greatsword", name="iron greatsword", autoreq=true},
-			{type="armor", subtype="light", name="rough leather armour", autoreq=true},
+			{type="weapon", subtype="greatsword", name="iron greatsword", autoreq=true, ego_chance=-1000, ego_chance=-1000},
+			{type="armor", subtype="light", name="rough leather armour", autoreq=true, ego_chance=-1000, ego_chance=-1000},
 		},
 		resolvers.inscription("RUNE:_MANASURGE", {cooldown=25, dur=10, mana=620}),
 	},
diff --git a/game/modules/tome/data/birth/classes/wilder.lua b/game/modules/tome/data/birth/classes/wilder.lua
index f28a98a35c..f76b873369 100644
--- a/game/modules/tome/data/birth/classes/wilder.lua
+++ b/game/modules/tome/data/birth/classes/wilder.lua
@@ -69,7 +69,7 @@ newBirthDescriptor{
 	copy = {
 		max_life = 90,
 		resolvers.equip{ id=true,
-			{type="armor", subtype="light", name="rough leather armour", autoreq=true}
+			{type="armor", subtype="light", name="rough leather armour", autoreq=true, ego_chance=-1000}
 		},
 	},
 }
@@ -108,8 +108,8 @@ newBirthDescriptor{
 	copy = {
 		max_life = 110,
 		resolvers.equip{ id=true,
-			{type="weapon", subtype="battleaxe", name="iron battleaxe", autoreq=true},
-			{type="armor", subtype="light", name="rough leather armour", autoreq=true}
+			{type="weapon", subtype="battleaxe", name="iron battleaxe", autoreq=true, ego_chance=-1000},
+			{type="armor", subtype="light", name="rough leather armour", autoreq=true, ego_chance=-1000}
 		},
 	},
 	copy_add = {
diff --git a/game/modules/tome/data/birth/descriptors.lua b/game/modules/tome/data/birth/descriptors.lua
index c39acfd5cd..accd1a87cb 100644
--- a/game/modules/tome/data/birth/descriptors.lua
+++ b/game/modules/tome/data/birth/descriptors.lua
@@ -78,7 +78,7 @@ newBirthDescriptor{
 		max_level = 50,
 		money = 10,
 		resolvers.equip{ id=true,
-			{type="lite", subtype="lite", name="brass lantern"},
+			{type="lite", subtype="lite", name="brass lantern", ego_chance=-1000},
 		},
 		make_tile = function(e)
 			if not e.image then
diff --git a/game/modules/tome/data/birth/worlds.lua b/game/modules/tome/data/birth/worlds.lua
index 4be7d78fea..1cb25bb3c6 100644
--- a/game/modules/tome/data/birth/worlds.lua
+++ b/game/modules/tome/data/birth/worlds.lua
@@ -119,7 +119,7 @@ newBirthDescriptor{
 	copy = {
 		-- Give the orb of knowledge
 		resolvers.inventory{ id=true, {defined="ORB_KNOWLEDGE"}},
-		resolvers.equip{ id=true, {name="iron pickaxe"}},
+		resolvers.equip{ id=true, {name="iron pickaxe", ego_chance=-1000}},
 		resolvers.generic(function(e) e.hotkey[12] = {"inventory", "Orb of Knowledge"} end),
 		-- Override normal stuff
 		before_starting_zone = function(self)
-- 
GitLab