mirror of
https://github.com/ComfyFactory/ComfyFactorio.git
synced 2025-02-07 13:31:40 +02:00
Cave Miner > Fish Bank update
This commit is contained in:
parent
17c633469e
commit
12541349d5
@ -469,6 +469,10 @@ local function secret_shop(pos)
|
|||||||
local surface = game.surfaces[1]
|
local surface = game.surfaces[1]
|
||||||
local market = surface.create_entity {name = "market", position = pos}
|
local market = surface.create_entity {name = "market", position = pos}
|
||||||
market.destructible = false
|
market.destructible = false
|
||||||
|
market.add_market_item({price = {}, offer = {type = 'nothing', effect_description = 'Deposit Fish'}})
|
||||||
|
market.add_market_item({price = {}, offer = {type = 'nothing', effect_description = 'Withdraw Fish - 2% Bank Fee'}})
|
||||||
|
market.add_market_item({price = {}, offer = {type = 'nothing', effect_description = 'Show Account Balance'}})
|
||||||
|
|
||||||
local market_items_to_add = math.random(8,12)
|
local market_items_to_add = math.random(8,12)
|
||||||
while market_items_to_add >= 0 do
|
while market_items_to_add >= 0 do
|
||||||
local i = math.random(1,#secret_market_items)
|
local i = math.random(1,#secret_market_items)
|
||||||
@ -1277,11 +1281,9 @@ local function on_gui_click(event)
|
|||||||
if not event then return end
|
if not event then return end
|
||||||
if not event.element then return end
|
if not event.element then return end
|
||||||
if not event.element.valid then return end
|
if not event.element.valid then return end
|
||||||
|
|
||||||
local player = game.players[event.element.player_index]
|
local player = game.players[event.element.player_index]
|
||||||
local name = event.element.name
|
local name = event.element.name
|
||||||
local frame = player.gui.top["caver_miner_stats_frame"]
|
local frame = player.gui.top["caver_miner_stats_frame"]
|
||||||
|
|
||||||
if name == "caver_miner_stats_toggle_button" and frame == nil then create_cave_miner_stats_gui(player) end
|
if name == "caver_miner_stats_toggle_button" and frame == nil then create_cave_miner_stats_gui(player) end
|
||||||
if name == "caver_miner_stats_toggle_button" and frame then
|
if name == "caver_miner_stats_toggle_button" and frame then
|
||||||
if player.gui.left["cave_miner_info"] then
|
if player.gui.left["cave_miner_info"] then
|
||||||
@ -1304,6 +1306,59 @@ local function on_player_used_capsule(event)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local bank_messages = {
|
||||||
|
"Thank you for using our Fishbank terminal!",
|
||||||
|
"Caves are dangerous. Did you hear about our insurance programs?",
|
||||||
|
"Get your wealth flowing today with Fishbank!",
|
||||||
|
"Hungry? Take a look at our credit offers! No questions asked.",
|
||||||
|
"Fishbank. The only choice.",
|
||||||
|
"Smart miners use Fishbank!",
|
||||||
|
"Your wealth is save with Fishbank!",
|
||||||
|
"Fishbank, because inventory space matters!"
|
||||||
|
}
|
||||||
|
|
||||||
|
local function on_market_item_purchased(event)
|
||||||
|
local player = game.players[event.player_index]
|
||||||
|
local market = event.market
|
||||||
|
local offer_index = event.offer_index
|
||||||
|
local count = event.count
|
||||||
|
local offers = market.get_market_items()
|
||||||
|
local bought_offer = offers[offer_index].offer
|
||||||
|
if bought_offer.type ~= "nothing" then return end
|
||||||
|
if not global.fish_bank then global.fish_bank = {} end
|
||||||
|
if not global.fish_bank[player.name] then global.fish_bank[player.name] = 0 end
|
||||||
|
|
||||||
|
if offer_index == 1 then
|
||||||
|
local fish_removed = player.remove_item({name = "raw-fish", count = 999999})
|
||||||
|
if fish_removed == 0 then return end
|
||||||
|
global.fish_bank[player.name] = global.fish_bank[player.name] + fish_removed
|
||||||
|
player.print(fish_removed .. " Fish deposited into your account. Your balance is " .. global.fish_bank[player.name] .. ".", { r=0.10, g=0.75, b=0.5})
|
||||||
|
player.print(bank_messages[math.random(1,#bank_messages)], { r=0.77, g=0.77, b=0.77})
|
||||||
|
end
|
||||||
|
|
||||||
|
if offer_index == 2 then
|
||||||
|
local requested_withdraw_amount = 500
|
||||||
|
local fee = 10
|
||||||
|
if global.fish_bank[player.name] < requested_withdraw_amount + fee then
|
||||||
|
fee = math.ceil(global.fish_bank[player.name] * 0.02, 0)
|
||||||
|
requested_withdraw_amount = global.fish_bank[player.name] - fee
|
||||||
|
end
|
||||||
|
local fish_withdrawn = player.insert({name = "raw-fish", count = requested_withdraw_amount})
|
||||||
|
if fish_withdrawn ~= requested_withdraw_amount then
|
||||||
|
player.remove_item({name = "raw-fish", count = fish_withdrawn})
|
||||||
|
return
|
||||||
|
end
|
||||||
|
global.fish_bank[player.name] = global.fish_bank[player.name] - (fish_withdrawn + fee)
|
||||||
|
player.print(fish_withdrawn .. " Fish withdrawn from your account. Your balance is " .. global.fish_bank[player.name] .. ".", { r=0.10, g=0.75, b=0.5})
|
||||||
|
player.print(bank_messages[math.random(1,#bank_messages)], { r=0.77, g=0.77, b=0.77})
|
||||||
|
end
|
||||||
|
|
||||||
|
if offer_index == 3 then
|
||||||
|
player.print("Your balance is " .. global.fish_bank[player.name] .. " Fish.", { r=0.10, g=0.75, b=0.5})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
Event.add(defines.events.on_market_item_purchased, on_market_item_purchased)
|
||||||
Event.add(defines.events.on_player_used_capsule, on_player_used_capsule)
|
Event.add(defines.events.on_player_used_capsule, on_player_used_capsule)
|
||||||
Event.add(defines.events.on_gui_click, on_gui_click)
|
Event.add(defines.events.on_gui_click, on_gui_click)
|
||||||
Event.add(defines.events.on_research_finished, on_research_finished)
|
Event.add(defines.events.on_research_finished, on_research_finished)
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
local items = {}
|
local items = {}
|
||||||
items.spawn = {
|
items.spawn = {
|
||||||
|
{price = {}, offer = {type = 'nothing', effect_description = 'Deposit Fish'}},
|
||||||
|
{price = {}, offer = {type = 'nothing', effect_description = 'Withdraw Fish - 2% Bank Fee'}},
|
||||||
|
{price = {}, offer = {type = 'nothing', effect_description = 'Show Account Balance'}},
|
||||||
{price = {{"raw-fish", 5}}, offer = {type = 'give-item', item = 'rail', count = 4}},
|
{price = {{"raw-fish", 5}}, offer = {type = 'give-item', item = 'rail', count = 4}},
|
||||||
{price = {{"raw-fish", 5}}, offer = {type = 'give-item', item = 'rail-signal', count = 2}},
|
{price = {{"raw-fish", 5}}, offer = {type = 'give-item', item = 'rail-signal', count = 2}},
|
||||||
{price = {{"raw-fish", 5}}, offer = {type = 'give-item', item = 'rail-chain-signal', count = 2}},
|
{price = {{"raw-fish", 5}}, offer = {type = 'give-item', item = 'rail-chain-signal', count = 2}},
|
||||||
|
@ -12,11 +12,11 @@ function cheat_mode()
|
|||||||
game.players[1].insert({name="express-loader"})
|
game.players[1].insert({name="express-loader"})
|
||||||
game.players[1].insert({name="infinity-chest"})
|
game.players[1].insert({name="infinity-chest"})
|
||||||
game.players[1].insert({name="computer", count=2})
|
game.players[1].insert({name="computer", count=2})
|
||||||
game.players[1].insert({name="raw-fish", count=100})
|
game.players[1].insert({name="raw-fish", count=2000})
|
||||||
game.players[1].insert({name="submachine-gun", count=1})
|
game.players[1].insert({name="submachine-gun", count=1})
|
||||||
game.players[1].insert({name="uranium-rounds-magazine", count=200})
|
game.players[1].insert({name="uranium-rounds-magazine", count=200})
|
||||||
game.players[1].insert({name="steel-chest", count=200})
|
game.players[1].insert({name="steel-chest", count=200})
|
||||||
game.players[1].insert({name="explosives", count=2000})
|
game.players[1].insert({name="explosives", count=1000})
|
||||||
game.forces.player.manual_mining_speed_modifier = 100
|
game.forces.player.manual_mining_speed_modifier = 100
|
||||||
game.forces.player.character_reach_distance_bonus = 10000
|
game.forces.player.character_reach_distance_bonus = 10000
|
||||||
game.speed = 1
|
game.speed = 1
|
||||||
|
Loading…
x
Reference in New Issue
Block a user