From e00578af726c832db022e600e6b4feed3efc8c89 Mon Sep 17 00:00:00 2001 From: Shibari <ShibariTOME@Gmail.com> Date: Sat, 1 Apr 2017 13:15:11 -0400 Subject: [PATCH] Add player_material_tier property to shops that makes their material tier generate with player level / 10 Restock all shops every 10 player levels Remove old manual restocks Apply player_material_tier to all AoA basic shops --- game/modules/tome/class/Actor.lua | 4 +++ game/modules/tome/class/Store.lua | 5 ++++ .../tome/data/general/stores/basic.lua | 26 +++++++++++++++++++ .../modules/tome/data/quests/charred-scar.lua | 1 - game/modules/tome/data/quests/dreadfell.lua | 1 - 5 files changed, 35 insertions(+), 2 deletions(-) diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua index 2d15bb8d0b..823622472b 100644 --- a/game/modules/tome/class/Actor.lua +++ b/game/modules/tome/class/Actor.lua @@ -3343,6 +3343,10 @@ function _M:levelup() engine.interface.ActorLevel.levelup(self) self:resolveLevelTalents() + -- Update shops and material tiers every 10 levels + if self == game.player and self.level % 10 == 0 then + game.state:storesRestock() + end if not self.no_points_on_levelup then self.unused_stats = self.unused_stats + (self.stats_per_level or 3) + self:getRankStatAdjust() self.unused_talents = self.unused_talents + 1 diff --git a/game/modules/tome/class/Store.lua b/game/modules/tome/class/Store.lua index 22c125bfeb..12e22fb1f1 100644 --- a/game/modules/tome/class/Store.lua +++ b/game/modules/tome/class/Store.lua @@ -77,6 +77,11 @@ function _M:loadup(level, zone) zone.max_material_level = 5 end + -- Increment material level every 10 levels + if self.store.player_material_level then + zone.min_material_level = 1 + zone.min_material_level = math.floor(game.player.level / 10) + end if Store.loadup(self, level, zone, self.store.nb_fill) then self.last_filled = game.state.stores_restock end diff --git a/game/modules/tome/data/general/stores/basic.lua b/game/modules/tome/data/general/stores/basic.lua index 946e854006..c2b63e0aa4 100644 --- a/game/modules/tome/data/general/stores/basic.lua +++ b/game/modules/tome/data/general/stores/basic.lua @@ -24,6 +24,7 @@ newEntity{ store = { purse = 25, empty_before_restock = false, + player_material_tier = true, filters = { {type="armor", subtype="heavy", id=true, tome_drops="store"}, {type="armor", subtype="massive", id=true, tome_drops="store"}, @@ -40,6 +41,7 @@ newEntity{ store = { purse = 25, empty_before_restock = false, + player_material_tier = true, filters = { {type="armor", subtype="light", id=true, tome_drops="store"}, {type="armor", subtype="hands", id=true, tome_drops="store"}, @@ -56,6 +58,7 @@ newEntity{ store = { purse = 25, empty_before_restock = false, + player_material_tier = true, filters = { {type="armor", subtype="cloth", id=true, tome_drops="store"}, {type="armor", subtype="robe", id=true, tome_drops="store"}, @@ -72,6 +75,7 @@ newEntity{ store = { purse = 25, empty_before_restock = false, + player_material_tier = true, filters = { {type="weapon", subtype="greatsword", id=true, tome_drops="store"}, {type="weapon", subtype="longsword", id=true, tome_drops="store"}, @@ -86,6 +90,7 @@ newEntity{ store = { purse = 25, empty_before_restock = false, + player_material_tier = true, filters = { {type="weapon", subtype="waraxe", id=true, tome_drops="store"}, {type="weapon", subtype="battleaxe", id=true, tome_drops="store"}, @@ -100,6 +105,7 @@ newEntity{ store = { purse = 25, empty_before_restock = false, + player_material_tier = true, filters = { {type="weapon", subtype="mindstar", id=true, tome_drops="store"}, {type="charm", subtype="torque", id=true, tome_drops="store"}, @@ -115,6 +121,7 @@ newEntity{ store = { purse = 25, empty_before_restock = false, + player_material_tier = true, filters = { {type="weapon", subtype="greatmaul", id=true, tome_drops="store"}, {type="weapon", subtype="mace", id=true, tome_drops="store"}, @@ -129,6 +136,7 @@ newEntity{ store = { purse = 25, empty_before_restock = false, + player_material_tier = true, filters = { {special=function(o) return o.type == "weapon" and o.twohanded end, id=true, tome_drops="store"}, }, @@ -155,6 +163,7 @@ newEntity{ store = { purse = 25, empty_before_restock = false, + player_material_tier = true, filters = { {type="weapon", subtype="longbow", id=true, tome_drops="store"}, {type="weapon", subtype="sling", id=true, tome_drops="store"}, @@ -170,6 +179,7 @@ newEntity{ store = { purse = 25, empty_before_restock = false, + player_material_tier = true, filters = function() return {type="weapon", subtype="dagger", id=true, tome_drops="store"} end, @@ -182,6 +192,7 @@ newEntity{ store = { purse = 25, empty_before_restock = false, + player_material_tier = true, filters = function() return {type="weapon", subtype="staff", id=true, tome_drops="store"} end, @@ -195,6 +206,7 @@ newEntity{ store = { purse = 10, empty_before_restock = false, + player_material_tier = true, filters = { {type="scroll", subtype="infusion", id=true}, }, @@ -208,6 +220,7 @@ newEntity{ store = { purse = 10, empty_before_restock = false, + player_material_tier = true, filters = { {type="scroll", subtype="rune", id=true}, }, @@ -221,6 +234,7 @@ newEntity{ store = { purse = 30, empty_before_restock = false, + player_material_tier = true, filters = { {type="gem", id=true}, }, @@ -234,6 +248,7 @@ newEntity{ store = { purse = 10, empty_before_restock = false, + player_material_tier = true, filters = { {type="lite", id=true, tome_drops="store"}, {type="tool", subtype="digger", id=true, tome_drops="store"}, @@ -252,6 +267,7 @@ newEntity{ store = { purse = 25, empty_before_restock = false, + player_material_tier = true, filters = function() return rng.table{ {type="weapon", subtype="staff", id=true, tome_drops="store"}, @@ -270,6 +286,7 @@ newEntity{ store = { purse = 20, empty_before_restock = false, + player_material_tier = true, filters = { {type="jewelry", id=true}, }, @@ -312,6 +329,7 @@ newEntity{ nb_fill = 20, purse = 35, empty_before_restock = false, + player_material_tier = true, sell_percent = 240, filters = function() return {id=true, ignore={type="money"}, add_levels=10, force_tome_drops=true, tome_drops="boss", tome_mod={money=0, basic=0}, special=function(o) return o.type ~= "scroll" end} @@ -368,6 +386,7 @@ newEntity{ store = { purse = 25, empty_before_restock = false, + player_material_tier = true, filters = { {type="armor", subtype="heavy", id=true, tome_drops="store"}, {type="armor", subtype="massive", id=true, tome_drops="store"}, @@ -387,6 +406,7 @@ newEntity{ store = { purse = 25, empty_before_restock = false, + player_material_tier = true, filters = { {type="armor", subtype="light", id=true, tome_drops="store"}, {type="armor", subtype="hands", id=true, tome_drops="store"}, @@ -407,6 +427,7 @@ newEntity{ store = { purse = 25, empty_before_restock = false, + player_material_tier = true, filters = { {type="weapon", subtype="greatsword", id=true, tome_drops="store"}, {type="weapon", subtype="longsword", id=true, tome_drops="store"}, @@ -425,6 +446,7 @@ newEntity{ store = { purse = 25, empty_before_restock = false, + player_material_tier = true, filters = { {type="weapon", subtype="waraxe", id=true, tome_drops="store"}, {type="weapon", subtype="battleaxe", id=true, tome_drops="store"}, @@ -443,6 +465,7 @@ newEntity{ store = { purse = 25, empty_before_restock = false, + player_material_tier = true, filters = { {type="weapon", subtype="greatmaul", id=true, tome_drops="store"}, {type="weapon", subtype="mace", id=true, tome_drops="store"}, @@ -461,6 +484,7 @@ newEntity{ store = { purse = 25, empty_before_restock = false, + player_material_tier = true, filters = function() return {type="weapon", subtype="dagger", id=true, tome_drops="store"} end, @@ -478,6 +502,7 @@ newEntity{ store = { purse = 25, empty_before_restock = false, + player_material_tier = true, filters = { {type="weapon", subtype="sling", id=true, tome_drops="store"}, {type="weapon", subtype="longbow", id=true, tome_drops="store"}, @@ -519,6 +544,7 @@ newEntity{ ------------------------------------------------------------- -- Arena ------------------------------------------------------------- +-- Should this use player_material_tier? newEntity{ define_as = "ARENA_SHOP", name = "gladiator's wares", diff --git a/game/modules/tome/data/quests/charred-scar.lua b/game/modules/tome/data/quests/charred-scar.lua index 2557ed8dc7..b1017deb11 100644 --- a/game/modules/tome/data/quests/charred-scar.lua +++ b/game/modules/tome/data/quests/charred-scar.lua @@ -75,5 +75,4 @@ start_fyrk = function(self) world:gainAchievement("CHARRED_SCAR_SUCCESS", game.player) end game.player:setQuestStatus("charred-scar", engine.Quest.COMPLETED) - game.state:storesRestock() end diff --git a/game/modules/tome/data/quests/dreadfell.lua b/game/modules/tome/data/quests/dreadfell.lua index f7a5bfd084..e743fd39a4 100644 --- a/game/modules/tome/data/quests/dreadfell.lua +++ b/game/modules/tome/data/quests/dreadfell.lua @@ -32,6 +32,5 @@ end on_status_change = function(self, who, status, sub) if self:isCompleted() then who:setQuestStatus(self.id, engine.Quest.DONE) - game.state:storesRestock() end end -- GitLab