Skip to content
Snippets Groups Projects
Commit b3d25420 authored by dg's avatar dg
Browse files

Stores will now refuse to buy your filthy items, probably still covered in blood!

Stores now buy only shiny gems are unique items, but they do so at a much better share.
Price of gems increased tenfolds


git-svn-id: http://svn.net-core.org/repos/t-engine4@2406 51575b47-30f0-44d4-a5cc-537603b46e54
parent 7b5ace14
No related branches found
No related tags found
No related merge requests found
......@@ -91,7 +91,7 @@ end
-- @param who the actor who interacts
function _M:interact(who)
local store, inven = self:getInven("INVEN"), who:getInven("INVEN")
local d; d = ShowStore.new("Store: "..self.name, store, inven, nil, nil, function(what, o, item)
local d; d = ShowStore.new("Store: "..self.name, store, inven, self.store.store_filter, self.store.actor_filter, function(what, o, item)
if what == "buy" then
if o:getNumber() > 1 then
local q = GetQuantity.new(nil, nil, o:getNumber(), o:getNumber(), function(qty) self:doBuy(who, o, item, qty, d) end)
......
......@@ -30,8 +30,7 @@ function _M:loadStores(f)
end
function _M:init(t, no_default)
-- t.allow_sell = function() require("engine.ui.Dialog"):simplePopup("Can not sell", "The shopkeeper is not interested in buying your items.") return false end
t.store.buy_percent = t.store.buy_percent or 5
t.store.buy_percent = t.store.buy_percent or 40
t.store.sell_percent = t.store.sell_percent or 100
t.store.purse = t.store.purse or 20
Store.init(self, t, no_default)
......@@ -39,6 +38,12 @@ function _M:init(t, no_default)
self.name = self.name .. (" (Max buy %0.2f gold)"):format(self.store.purse)
if self.store and self.store.restock_after then self.store.restock_after = self.store.restock_after * 10 end
if not self.store.actor_filter then
self.store.actor_filter = function(o)
return (o.type == "gem" or o.unique) and not o.quest and not o.lore
end
end
end
--- Called on object purchase try
......@@ -65,7 +70,7 @@ end
function _M:trySell(who, o, item, nb)
local price = o:getPrice() * self.store.buy_percent / 100
if price <= 0 or nb <= 0 then return end
price = math.min(price * nb, self.store.purse)
price = math.min(price * nb, self.store.purse * nb)
return nb, price
end
......@@ -96,7 +101,7 @@ function _M:onSell(who, o, item, nb, before)
local price = o:getPrice() * self.store.buy_percent / 100
if price <= 0 or nb <= 0 then return end
price = math.min(price * nb, self.store.purse)
price = math.min(price * nb, self.store.purse * nb)
who:incMoney(price)
end
......
......@@ -45,7 +45,7 @@ local function newGem(name, image, cost, rarity, color, min_level, max_level, ti
name = name:lower(), subtype = color,
color = colors[color:upper()], image=image,
level_range = {min_level, max_level},
rarity = rarity, cost = cost,
rarity = rarity, cost = cost * 10,
material_level = tier,
imbue_powers = imbue,
wielder = imbue,
......
......@@ -39,7 +39,7 @@ newEntity{ base = "BASE_MONEY", define_as = "MONEY_SMALL",
name = "gold pieces", image = "object/money_small.png",
add_name = " (#MONEY#)",
level_range = {1, 50},
money_value = resolvers.rngavg(2, 7),
money_value = resolvers.rngavg(4, 10),
}
newEntity{ base = "BASE_MONEY", define_as = "MONEY_BIG",
......@@ -48,5 +48,5 @@ newEntity{ base = "BASE_MONEY", define_as = "MONEY_BIG",
level_range = {30, 50},
color=colors.GOLD,
rarity = 15,
money_value = resolvers.rngavg(10, 25),
money_value = resolvers.rngavg(15, 35),
}
......@@ -25,7 +25,6 @@ newEntity{
purse = 10,
restock_after = 1000,
empty_before_restock = true,
buy_percent = 10,
min_fill = 40,
max_fill = 60,
filters = {
......@@ -44,7 +43,6 @@ newEntity{
purse = 25,
restock_after = 1000,
empty_before_restock = true,
buy_percent = 10,
min_fill = 10,
max_fill = 20,
filters = {
......@@ -61,7 +59,6 @@ newEntity{
purse = 25,
restock_after = 1000,
empty_before_restock = true,
buy_percent = 10,
min_fill = 10,
max_fill = 20,
filters = {
......@@ -79,7 +76,6 @@ newEntity{
purse = 10,
restock_after = 1000,
empty_before_restock = true,
buy_percent = 10,
min_fill = 2,
max_fill = 4,
filters = {
......@@ -96,7 +92,6 @@ newEntity{
purse = 10,
restock_after = 1000,
empty_before_restock = true,
buy_percent = 10,
min_fill = 2,
max_fill = 4,
filters = {
......@@ -113,7 +108,6 @@ newEntity{
purse = 30,
restock_after = 1000,
empty_before_restock = true,
buy_percent = 10,
min_fill = 40,
max_fill = 60,
filters = {
......@@ -134,7 +128,6 @@ newEntity{
purse = 25,
restock_after = 1000,
empty_before_restock = true,
buy_percent = 10,
min_fill = 15,
max_fill = 25,
filters = {
......@@ -154,7 +147,6 @@ newEntity{
purse = 20,
restock_after = 1000,
empty_before_restock = true,
buy_percent = 10,
min_fill = 15,
max_fill = 25,
filters = {
......@@ -171,7 +163,6 @@ newEntity{
purse = 10,
restock_after = 1000,
empty_before_restock = true,
buy_percent = 10,
min_fill = 2,
max_fill = 4,
filters = {
......@@ -194,7 +185,6 @@ newEntity{
purse = 35,
restock_after = 1000,
empty_before_restock = true,
buy_percent = 10,
sell_percent = 140,
min_fill = 10,
max_fill = 20,
......@@ -212,8 +202,7 @@ newEntity{
purse = 5,
restock_after = 1000,
empty_before_restock = true,
buy_percent = 10,
sell_percent = 140,
sell_percent = 100,
min_fill = 40,
max_fill = 40,
filters = {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment