diff --git a/game/modules/tome/class/GameState.lua b/game/modules/tome/class/GameState.lua index 77b69a1766e67f3080ff9e759492cbd128a5c2dc..3b843b5d61fa318df7dd6186971111a9e0be4348 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 c315171c956f0c6188ffcfd6d86d7d9fbee7b064..aaaa44c1e21881d2d775f47a4282866c6089a43f 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 9c4fab435ea2e7612a02eaeeda8aea7338dc14b1..fc99149b6dc5a21aabd2c45ecbb241261ac82bda 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 458a3ac2ee9a3c9dd6d2b2414f29b597a64b2e05..b7cf06649f3d235759cf89de6a4c6e830c3fda9f 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 dfc2dc82d3db26ab7f837b7b2e7ebb6be4178e2b..f67eb8d111412478cb35d7d70ee2f3b87d7f93e4 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 91592ddb580276ef7efff3d813a0168c3bbe59da..0ec548742c518317b5096ccec7db5ac4233d9b60 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 6f6978ed0f9fd3089cae6e8edeed5a93304a5a2f..232d1fa4f9432c3f229e797629520518e9f70cdd 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 64aa5f396bba88a612f632b13ab1c156cdbc0bcc..93c3d153ce28367877a0ab3bac89b8c4bfdf4416 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 2e4344a03f130025b3fa5bef13a0e5b6732b40df..ac4382d1b460a0c4eac129971fbbf57d3dfd2469 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 8a9f95138cd863138b21ca1fad3b2ea539cc8049..e0b89c330f8b4fe6e1d8c2fc51523175a6fb72d4 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 56adcd340e6f0ec3d672978220ec1e4211ef06e5..675f245b2f06aa188fdbb6eb8f0488e260d3a2cc 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 f28a98a35c82ee4c74b5d7efba5845ac17c5894b..f76b873369a990bcf12a39df1a1409420be6948e 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 c39acfd5cd5dd2c1c0d29e9e978ee88b247f1e0e..accd1a87cb584733f8f8e0623591191141438fa4 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 4be7d78fea52b086ace8d01fc47cb9dd435f777b..1cb25bb3c679ad3841737cadfac4d8ea4fe837d1 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)