diff --git a/game/modules/tome/class/GameState.lua b/game/modules/tome/class/GameState.lua index 843ea1a8e0cb589c5d434df53b64f9066f8b2cbe..fb28bcad8fb882617d70b838a116d86ec23b6abc 100644 --- a/game/modules/tome/class/GameState.lua +++ b/game/modules/tome/class/GameState.lua @@ -566,6 +566,7 @@ function _M:spawnWorldAmbush(enc, dx, dy) level_range = {game.player.level, game.player.level}, level_scheme = "player", max_level = 1, + objects_cost_modifier = 0.1, actor_adjust_level = function(zone, level, e) return zone.base_level + e:getRankLevelAdjust() + level.level-1 + rng.range(-1,2) end, width = enc.width or 20, height = enc.height or 20, -- no_worldport = true, diff --git a/game/modules/tome/class/Object.lua b/game/modules/tome/class/Object.lua index dfd6fc30ae5d841ae7c2ca9a10e5fbf8e2bc2087..0d546c9012f4a72851c59394a2a57baebdb92fb1 100644 --- a/game/modules/tome/class/Object.lua +++ b/game/modules/tome/class/Object.lua @@ -1484,6 +1484,10 @@ function _M:getPrice() if self.egoed then base = base + self:getPriceFlags() end + if game.level and game.level.data and game.level.data.objects_cost_modifier then + local v = util.getval(game.level.data.objects_cost_modifier, self) + base = base * v + end return base end diff --git a/game/modules/tome/data/zones/shertul-fortress/grids.lua b/game/modules/tome/data/zones/shertul-fortress/grids.lua index 8c319c4ea0d482f97fc30d550f0671ff56ece1da..147cc7b358160727ee5ec4ba26374abfa4d7e495 100644 --- a/game/modules/tome/data/zones/shertul-fortress/grids.lua +++ b/game/modules/tome/data/zones/shertul-fortress/grids.lua @@ -88,6 +88,7 @@ It should automatically create a portal back, but it might not be near your arri zone.no_worldport = true zone.force_farportal_recall = true zone.generator.actor.abord_no_guardian = true + zone.objects_cost_modifier = 0.1 zone.make_back_portal = function(self) local p = game:getPlayer(true) local x, y = p.x, p.y