From 0ee4d245cdb5f60f69d50a67e41ac9e25e7d06ac Mon Sep 17 00:00:00 2001 From: Gerkiz Date: Sun, 10 May 2020 02:42:10 +0200 Subject: [PATCH] scrapyard becomes lumberjack! --- control.lua | 56 ++-- maps/{scrapyard => lumberjack}/balance.lua | 4 +- .../{scrapyard => lumberjack}/comfylatron.lua | 2 +- maps/{scrapyard => lumberjack}/commands.lua | 4 +- .../{scrapyard => lumberjack}/corpse_util.lua | 0 maps/{scrapyard => lumberjack}/entities.lua | 30 +- maps/{scrapyard => lumberjack}/gui.lua | 14 +- .../icw/constants.lua | 0 .../icw/functions.lua | 2 +- maps/{scrapyard => lumberjack}/icw/main.lua | 4 +- maps/{scrapyard => lumberjack}/locomotive.lua | 14 +- .../locomotive_market.lua | 4 +- maps/{scrapyard => lumberjack}/loot.lua | 4 +- maps/{scrapyard => lumberjack}/main.lua | 93 ++---- maps/lumberjack/mining.lua | 211 ++++++++++++ .../{scrapyard => lumberjack}/player_list.lua | 2 +- maps/{scrapyard => lumberjack}/power.lua | 14 +- maps/{scrapyard => lumberjack}/rpg.lua | 2 +- maps/{scrapyard => lumberjack}/table.lua | 1 - maps/{scrapyard => lumberjack}/terrain.lua | 146 ++++----- maps/scrapyard/mining_scrap.lua | 300 ------------------ 21 files changed, 387 insertions(+), 520 deletions(-) rename maps/{scrapyard => lumberjack}/balance.lua (90%) rename maps/{scrapyard => lumberjack}/comfylatron.lua (96%) rename maps/{scrapyard => lumberjack}/commands.lua (91%) rename maps/{scrapyard => lumberjack}/corpse_util.lua (100%) rename maps/{scrapyard => lumberjack}/entities.lua (94%) rename maps/{scrapyard => lumberjack}/gui.lua (87%) rename maps/{scrapyard => lumberjack}/icw/constants.lua (100%) rename maps/{scrapyard => lumberjack}/icw/functions.lua (99%) rename maps/{scrapyard => lumberjack}/icw/main.lua (97%) rename maps/{scrapyard => lumberjack}/locomotive.lua (97%) rename maps/{scrapyard => lumberjack}/locomotive_market.lua (99%) rename maps/{scrapyard => lumberjack}/loot.lua (99%) rename maps/{scrapyard => lumberjack}/main.lua (89%) create mode 100644 maps/lumberjack/mining.lua rename maps/{scrapyard => lumberjack}/player_list.lua (99%) rename maps/{scrapyard => lumberjack}/power.lua (81%) rename maps/{scrapyard => lumberjack}/rpg.lua (99%) rename maps/{scrapyard => lumberjack}/table.lua (93%) rename maps/{scrapyard => lumberjack}/terrain.lua (93%) delete mode 100644 maps/scrapyard/mining_scrap.lua diff --git a/control.lua b/control.lua index c6bf10f4..cc004d08 100644 --- a/control.lua +++ b/control.lua @@ -4,30 +4,30 @@ _DEBUG = false _DUMP_ENV = false require 'utils.server' -require "utils.server_commands" -require "utils.utils" -require "utils.table" -require "utils.color_data" -require "utils.session_data" -require "chatbot" -require "commands" -require "antigrief" -require "modules.corpse_markers" -require "modules.floaty_chat" -require "modules.autohotbar" +require 'utils.server_commands' +require 'utils.utils' +require 'utils.table' +require 'utils.color_data' +require 'utils.session_data' +require 'chatbot' +require 'commands' +require 'antigrief' +require 'modules.corpse_markers' +require 'modules.floaty_chat' +require 'modules.autohotbar' -require "comfy_panel.main" -require "comfy_panel.player_list" -require "comfy_panel.admin" -require "comfy_panel.group" -require "comfy_panel.poll" -require "comfy_panel.score" -require "comfy_panel.config" +require 'comfy_panel.main' +require 'comfy_panel.player_list' +require 'comfy_panel.admin' +require 'comfy_panel.group' +require 'comfy_panel.poll' +require 'comfy_panel.score' +require 'comfy_panel.config' -require "modules.autostash" +require 'modules.autostash' ---- enable modules here ---- ---require "modules.admins_operate_biters" +--require 'modules.admins_operate_biters' --require "modules.the_floor_is_lava" --require "modules.biters_landfill_on_death" --require "modules.autodecon_when_depleted" @@ -44,7 +44,7 @@ require "modules.autostash" --require "modules.fluids_are_explosive" --require "modules.hunger" --require "modules.hunger_games" ---require "modules.pistol_buffs" +--require 'modules.pistol_buffs' --require "modules.players_trample_paths" --require "modules.railgun_enhancer" --require "modules.restrictive_fluid_mining" @@ -69,15 +69,15 @@ require "modules.autostash" --require "maps.chronosphere.main" --require "maps.fish_defender.main" --require "maps.biter_battles_v2.main" ---require "maps.mountain_fortress_v2.main" +--require 'maps.mountain_fortress_v2.main' +--require 'maps.lumberjack.main' --require "maps.dungeons.main" --require "maps.island_troopers.main" --require "maps.biter_hatchery.main" --require "maps.junkyard_pvp.main" ---require "maps.scrapyard.main" --require "maps.cave_choppy.cave_miner" --require "maps.wave_of_death.WoD" ---require "maps.planet_prison" +--require 'maps.planet_prison' --require "maps.stone_maze.main" --require "maps.choppy" --require "maps.overgrowth" @@ -145,13 +145,13 @@ if _DEBUG then end local function on_player_created(event) - local player = game.players[event.player_index] - player.gui.top.style = 'slot_table_spacing_horizontal_flow' - player.gui.left.style = 'slot_table_spacing_vertical_flow' + local player = game.players[event.player_index] + player.gui.top.style = 'slot_table_spacing_horizontal_flow' + player.gui.left.style = 'slot_table_spacing_vertical_flow' end local function on_init() - game.forces.player.research_queue_enabled = true + game.forces.player.research_queue_enabled = true end local loaded = _G.package.loaded diff --git a/maps/scrapyard/balance.lua b/maps/lumberjack/balance.lua similarity index 90% rename from maps/scrapyard/balance.lua rename to maps/lumberjack/balance.lua index 2467a293..0a5adfbb 100644 --- a/maps/scrapyard/balance.lua +++ b/maps/lumberjack/balance.lua @@ -21,7 +21,7 @@ function Public.init_enemy_weapon_damage() ['shotgun-shell'] = 0 } - local e, s, sd = game.forces.enemy, game.forces.scrap, game.forces.scrap_defense + local e, s, sd = game.forces.enemy, game.forces.defenders, game.forces.lumber_defense for k, v in pairs(data) do e.set_ammo_damage_modifier(k, v) @@ -34,7 +34,7 @@ local function enemy_weapon_damage() if game.tick < 100 then goto rtn end - local e, s, sd = game.forces.enemy, game.forces.scrap, game.forces.scrap_defense + local e, s, sd = game.forces.enemy, game.forces.defenders, game.forces.lumber_defense local data = { ['artillery-shell'] = 0.5, diff --git a/maps/scrapyard/comfylatron.lua b/maps/lumberjack/comfylatron.lua similarity index 96% rename from maps/scrapyard/comfylatron.lua rename to maps/lumberjack/comfylatron.lua index 101b89bd..759d7e50 100644 --- a/maps/scrapyard/comfylatron.lua +++ b/maps/lumberjack/comfylatron.lua @@ -1,4 +1,4 @@ -local WPT = require 'maps.scrapyard.table' +local WPT = require 'maps.lumberjack.table' local Event = require 'utils.event' local math_random = math.random diff --git a/maps/scrapyard/commands.lua b/maps/lumberjack/commands.lua similarity index 91% rename from maps/scrapyard/commands.lua rename to maps/lumberjack/commands.lua index fb7886df..8356fd6d 100644 --- a/maps/scrapyard/commands.lua +++ b/maps/lumberjack/commands.lua @@ -1,5 +1,5 @@ local Color = require 'utils.color_presets' -local WPT = require 'maps.scrapyard.table' +local WPT = require 'maps.lumberjack.table' commands.add_command( 'rainbow_mode', @@ -27,7 +27,7 @@ if _DEBUG then 'reset_game', 'Debug only, reset the game!', function() - local reset_map = require 'maps.scrapyard.main'.reset_map + local reset_map = require 'maps.lumberjack.main'.reset_map local player = game.player diff --git a/maps/scrapyard/corpse_util.lua b/maps/lumberjack/corpse_util.lua similarity index 100% rename from maps/scrapyard/corpse_util.lua rename to maps/lumberjack/corpse_util.lua diff --git a/maps/scrapyard/entities.lua b/maps/lumberjack/entities.lua similarity index 94% rename from maps/scrapyard/entities.lua rename to maps/lumberjack/entities.lua index f0ab8c79..1e1c9852 100644 --- a/maps/scrapyard/entities.lua +++ b/maps/lumberjack/entities.lua @@ -4,14 +4,14 @@ local Map_score = require 'comfy_panel.map_score' local BiterRolls = require 'modules.wave_defense.biter_rolls' local unearthing_worm = require 'functions.unearthing_worm' local unearthing_biters = require 'functions.unearthing_biters' -local Loot = require 'maps.scrapyard.loot' +local Loot = require 'maps.lumberjack.loot' local Pets = require 'modules.biter_pets' local tick_tack_trap = require 'functions.tick_tack_trap' -local RPG = require 'maps.scrapyard.rpg' -local Scrap = require 'maps.scrapyard.mining_scrap' +local RPG = require 'maps.lumberjack.rpg' +local Mining = require 'maps.lumberjack.mining' -- tables -local WPT = require 'maps.scrapyard.table' +local WPT = require 'maps.lumberjack.table' local WD = require 'modules.wave_defense.table' -- module @@ -74,7 +74,7 @@ end local function is_protected(entity) local this = WPT.get_table() - if string.sub(entity.surface.name, 0, 9) ~= 'scrapyard' then + if string.sub(entity.surface.name, 0, 10) ~= 'lumberjack' then return true end local protected = {this.locomotive, this.locomotive_cargo} @@ -95,8 +95,8 @@ local function protect_train(event) if event.entity == this.locomotive_cargo or event.entity == this.locomotive then if event.cause then if - event.cause.force.index == 2 or event.cause.force.name == 'scrap_defense' or - event.cause.force.name == 'scrap' + event.cause.force.index == 2 or event.cause.force.name == 'lumber_defense' or + event.cause.force.name == 'defenders' then if this.locomotive_health <= 0 then goto continue @@ -190,7 +190,7 @@ end local function on_player_mined_entity(event) local this = WPT.get_table() - Scrap.on_player_mined_entity(event) + Mining.on_player_mined_entity(event) local entity = event.entity local player = game.players[event.player_index] @@ -212,7 +212,7 @@ local function on_player_mined_entity(event) end end - if entity.name == 'mineable-wreckage' then + if entity.type ~= 'simple-entity' or entity.type ~= 'tree' then this.mined_scrap = this.mined_scrap + 1 give_coin(player) @@ -232,7 +232,7 @@ local function on_player_mined_entity(event) end end - if entity.force.name ~= 'scrap' then + if entity.force.name ~= 'defenders' then return end local positions = {} @@ -289,6 +289,8 @@ end local function on_entity_died(event) local this = WPT.get_table() + Mining.on_entity_died(event) + local entity = event.entity if not entity.valid then return @@ -305,7 +307,7 @@ local function on_entity_died(event) end end - if entity.name == 'mineable-wreckage' then + if entity.type ~= 'simple-entity' or entity.type ~= 'tree' then if math.random(1, 32) == 1 then hidden_biter(event.entity) return @@ -319,7 +321,7 @@ local function on_entity_died(event) return end end - if entity.force.name ~= 'scrap' then + if entity.force.name ~= 'defenders' then return end local positions = {} @@ -343,7 +345,7 @@ local function on_entity_died(event) end local function on_robot_built_entity(event) - if string.sub(event.created_entity.surface.name, 0, 9) ~= 'scrapyard' then + if string.sub(event.created_entity.surface.name, 0, 10) ~= 'lumberjack' then return end local y = event.created_entity.position.y @@ -371,7 +373,7 @@ local function on_robot_built_entity(event) end local function on_built_entity(event) - if string.sub(event.created_entity.surface.name, 0, 9) ~= 'scrapyard' then + if string.sub(event.created_entity.surface.name, 0, 10) ~= 'lumberjack' then return end local player = game.players[event.player_index] diff --git a/maps/scrapyard/gui.lua b/maps/lumberjack/gui.lua similarity index 87% rename from maps/scrapyard/gui.lua rename to maps/lumberjack/gui.lua index c5bcad18..c909a05d 100644 --- a/maps/scrapyard/gui.lua +++ b/maps/lumberjack/gui.lua @@ -1,5 +1,5 @@ -local RPG = require 'maps.scrapyard.rpg' -local WPT = require 'maps.scrapyard.table' +local RPG = require 'maps.lumberjack.rpg' +local WPT = require 'maps.lumberjack.table' local floor = math.floor local format_number = require 'util'.format_number @@ -7,7 +7,7 @@ local function create_gui(player) local label local line - local frame = player.gui.top.add({type = 'frame', name = 'scrapyard'}) + local frame = player.gui.top.add({type = 'frame', name = 'lumberjack'}) frame.style.minimal_height = 38 frame.style.maximal_height = 38 @@ -57,10 +57,10 @@ local function update_gui(player) local rpg = RPG.get_table() local st = WPT.get_table() - if not player.gui.top.scrapyard then + if not player.gui.top.lumberjack then create_gui(player) end - local gui = player.gui.top.scrapyard + local gui = player.gui.top.lumberjack if rpg.global_pool == 0 then gui.global_pool.caption = 'XP: 0' @@ -70,8 +70,8 @@ local function update_gui(player) gui.global_pool.tooltip = 'Get this number over 5k to get some of this mad XP! \\o/' end - gui.scrap_mined.caption = ' [img=entity.mineable-wreckage]: ' .. format_number(st.mined_scrap, true) - gui.scrap_mined.tooltip = 'Amount of scrap mined.' + gui.scrap_mined.caption = ' [img=entity.tree-01]: ' .. format_number(st.mined_scrap, true) + gui.scrap_mined.tooltip = 'Amount of trees harvested.' gui.biters_killed.caption = ' [img=entity.small-biter]: ' .. format_number(st.biters_killed, true) gui.biters_killed.tooltip = 'Amount of biters killed.' diff --git a/maps/scrapyard/icw/constants.lua b/maps/lumberjack/icw/constants.lua similarity index 100% rename from maps/scrapyard/icw/constants.lua rename to maps/lumberjack/icw/constants.lua diff --git a/maps/scrapyard/icw/functions.lua b/maps/lumberjack/icw/functions.lua similarity index 99% rename from maps/scrapyard/icw/functions.lua rename to maps/lumberjack/icw/functions.lua index bba3b57f..86f8840d 100644 --- a/maps/scrapyard/icw/functions.lua +++ b/maps/lumberjack/icw/functions.lua @@ -1,6 +1,6 @@ local Public = {} -local Constants = require 'maps.scrapyard.icw.constants' +local Constants = require 'maps.lumberjack.icw.constants' local table_insert = table.insert local table_remove = table.remove diff --git a/maps/scrapyard/icw/main.lua b/maps/lumberjack/icw/main.lua similarity index 97% rename from maps/scrapyard/icw/main.lua rename to maps/lumberjack/icw/main.lua index 1c2803f9..4c59a39e 100644 --- a/maps/scrapyard/icw/main.lua +++ b/maps/lumberjack/icw/main.lua @@ -1,7 +1,7 @@ local Global = require 'utils.global' local Event = require 'utils.event' -local Functions = require 'maps.scrapyard.icw.functions' -local Constants = require 'maps.scrapyard.icw.constants' +local Functions = require 'maps.lumberjack.icw.functions' +local Constants = require 'maps.lumberjack.icw.constants' local Public = {} local math_round = math.round diff --git a/maps/scrapyard/locomotive.lua b/maps/lumberjack/locomotive.lua similarity index 97% rename from maps/scrapyard/locomotive.lua rename to maps/lumberjack/locomotive.lua index 69fbd5da..2c57aa39 100644 --- a/maps/scrapyard/locomotive.lua +++ b/maps/lumberjack/locomotive.lua @@ -1,10 +1,10 @@ local Event = require 'utils.event' -local Power = require 'maps.scrapyard.power' -local ICW = require 'maps.scrapyard.icw.main' -local WPT = require 'maps.scrapyard.table' -local RPG = require 'maps.scrapyard.rpg' -local Terrain = require 'maps.scrapyard.terrain' -require 'maps.scrapyard.locomotive_market' +local Power = require 'maps.lumberjack.power' +local ICW = require 'maps.lumberjack.icw.main' +local WPT = require 'maps.lumberjack.table' +local RPG = require 'maps.lumberjack.rpg' +local Terrain = require 'maps.lumberjack.terrain' +require 'maps.lumberjack.locomotive_market' local random = math.random @@ -46,7 +46,7 @@ local function rebuild_energy_overworld(data) end this.old_ow_energy = this.ow_energy.energy this.ow_energy.destroy() - this.energy['scrapyard'] = nil + this.energy['lumberjack'] = nil end end this.ow_energy = diff --git a/maps/scrapyard/locomotive_market.lua b/maps/lumberjack/locomotive_market.lua similarity index 99% rename from maps/scrapyard/locomotive_market.lua rename to maps/lumberjack/locomotive_market.lua index 6043c38b..bfb612f6 100644 --- a/maps/scrapyard/locomotive_market.lua +++ b/maps/lumberjack/locomotive_market.lua @@ -1,7 +1,7 @@ local Event = require 'utils.event' -local WPT = require 'maps.scrapyard.table' +local WPT = require 'maps.lumberjack.table' local WD = require 'modules.wave_defense.table' -local ICW = require 'maps.scrapyard.icw.main' +local ICW = require 'maps.lumberjack.icw.main' local format_number = require 'util'.format_number local grandmaster = '[color=blue]Grandmaster:[/color]' diff --git a/maps/scrapyard/loot.lua b/maps/lumberjack/loot.lua similarity index 99% rename from maps/scrapyard/loot.lua rename to maps/lumberjack/loot.lua index ded4d51a..5c088d23 100644 --- a/maps/scrapyard/loot.lua +++ b/maps/lumberjack/loot.lua @@ -156,7 +156,7 @@ function Public.add(surface, position, chest) end end - local e = surface.create_entity({name = chest, position = position, force = 'scrap'}) + local e = surface.create_entity({name = chest, position = position, force = 'defenders'}) e.minable = false local i = e.get_inventory(defines.inventory.chest) for x = 1, math_random(2, 6), 1 do @@ -323,7 +323,7 @@ function Public.add_rare(surface, position, chest, magic) end end - local e = surface.create_entity({name = chest, position = position, force = 'scrap'}) + local e = surface.create_entity({name = chest, position = position, force = 'defenders'}) e.minable = false local i = e.get_inventory(defines.inventory.chest) for x = 1, math_random(2, 7), 1 do diff --git a/maps/scrapyard/main.lua b/maps/lumberjack/main.lua similarity index 89% rename from maps/scrapyard/main.lua rename to maps/lumberjack/main.lua index 99c81951..295b867c 100644 --- a/maps/scrapyard/main.lua +++ b/maps/lumberjack/main.lua @@ -1,8 +1,8 @@ -- modules -require 'maps.scrapyard.player_list' -require 'maps.scrapyard.comfylatron' -require 'maps.scrapyard.commands' -require 'maps.scrapyard.corpse_util' +require 'maps.lumberjack.player_list' +require 'maps.lumberjack.comfylatron' +require 'maps.lumberjack.commands' +require 'maps.lumberjack.corpse_util' require 'on_tick_schedule' require 'modules.dynamic_landfill' @@ -22,22 +22,22 @@ require 'modules.pistol_buffs' local Explosives = require 'modules.explosives' local Color = require 'utils.color_presets' -local Entities = require 'maps.scrapyard.entities' -local update_gui = require 'maps.scrapyard.gui' -local ICW = require 'maps.scrapyard.icw.main' +local Entities = require 'maps.lumberjack.entities' +local update_gui = require 'maps.lumberjack.gui' +local ICW = require 'maps.lumberjack.icw.main' local WD = require 'modules.wave_defense.table' local Map = require 'modules.map_info' -local RPG = require 'maps.scrapyard.rpg' +local RPG = require 'maps.lumberjack.rpg' local Reset = require 'functions.soft_reset' -local Terrain = require 'maps.scrapyard.terrain' +local Terrain = require 'maps.lumberjack.terrain' local Event = require 'utils.event' -local WPT = require 'maps.scrapyard.table' -local Locomotive = require 'maps.scrapyard.locomotive'.locomotive_spawn -local render_train_hp = require 'maps.scrapyard.locomotive'.render_train_hp +local WPT = require 'maps.lumberjack.table' +local Locomotive = require 'maps.lumberjack.locomotive'.locomotive_spawn +local render_train_hp = require 'maps.lumberjack.locomotive'.render_train_hp local Score = require 'comfy_panel.score' local Poll = require 'comfy_panel.poll' local Collapse = require 'modules.collapse' -local Balance = require 'maps.scrapyard.balance' +local Balance = require 'maps.lumberjack.balance' local Public = {} local math_random = math.random @@ -63,14 +63,14 @@ local disabled_tiles = { local grandmaster = '[color=blue]Grandmaster:[/color]' local function create_forces_and_disable_tech() - game.create_force('scrap') - game.create_force('scrap_defense') - game.forces.player.set_friend('scrap', true) - game.forces.enemy.set_friend('scrap', true) - game.forces.enemy.set_friend('scrap_defense', true) - game.forces.scrap.set_friend('player', true) - game.forces.scrap.set_friend('enemy', true) - game.forces.scrap.share_chart = false + game.create_force('defenders') + game.create_force('lumber_defense') + game.forces.player.set_friend('defenders', true) + game.forces.enemy.set_friend('defenders', true) + game.forces.enemy.set_friend('lumber_defense', true) + game.forces.defenders.set_friend('player', true) + game.forces.defenders.set_friend('enemy', true) + game.forces.defenders.share_chart = false game.forces.player.technologies['landfill'].enabled = false game.forces.player.technologies['optics'].researched = true game.forces.player.recipes['cargo-wagon'].enabled = false @@ -135,7 +135,7 @@ function Public.reset_map() } if not this.active_surface_index then - this.active_surface_index = game.create_surface('scrapyard', map_gen_settings).index + this.active_surface_index = game.create_surface('lumberjack', map_gen_settings).index else game.forces.player.set_spawn_position({0, 25}, game.surfaces[this.active_surface_index]) this.active_surface_index = @@ -196,16 +196,16 @@ function Public.reset_map() RPG.rpg_reset_all_players() - if game.forces.scrap_defense then + if game.forces.lumber_defense then Balance.init_enemy_weapon_damage() else - log('scrap_defense not found') + log('lumber_defense not found') end set_difficulty() rendering.draw_text { - text = 'Welcome to Scrapyard!', + text = 'Welcome to Lumberjack!', surface = surface, target = {-0, 30}, color = {r = 0.98, g = 0.66, b = 0.22}, @@ -314,7 +314,7 @@ end local function on_player_changed_position(event) local this = WPT.get_table() local player = game.players[event.player_index] - if string.sub(player.surface.name, 0, 9) ~= 'scrapyard' then + if string.sub(player.surface.name, 0, 10) ~= 'lumberjack' then return end local position = player.position @@ -527,28 +527,6 @@ local function darkness(data) end end -local function scrap_randomness(data) - local this = data.this - local rnd = math.random - if rnd(1, 32) == 1 then - if this.scrap_enabled then - return - end - this.scrap_enabled = true - game.print(grandmaster .. ' Scrap is back!', {r = 1, g = 0.5, b = 0.1}) - game.print(grandmaster .. ' Output from scrap is now randomized.', {r = 1, g = 0.5, b = 0.1}) - return - elseif rnd(1, 64) == 1 then - if not this.scrap_enabled then - return - end - this.scrap_enabled = false - game.print(grandmaster .. ' It seems that the scrap is temporarily gone.', {r = 1, g = 0.5, b = 0.1}) - game.print(grandmaster .. ' Output from scrap is now only ores.', {r = 1, g = 0.5, b = 0.1}) - return - end -end - local function transfer_pollution(data) local surface = data.surface local this = data.this @@ -561,7 +539,6 @@ local function transfer_pollution(data) end local tick_minute_functions = { - [300 * 2 + 30 * 2] = scrap_randomness, [300 * 3 + 30 * 1] = darkness, [300 * 3 + 30 * 0] = transfer_pollution } @@ -624,19 +601,21 @@ local on_init = function() global.custom_highscore.description = 'Wagon distance reached:' - game.forces.scrap.share_chart = false + game.forces.defenders.share_chart = false global.rocks_yield_ore_maximum_amount = 500 global.rocks_yield_ore_base_amount = 50 global.rocks_yield_ore_distance_modifier = 0.025 local T = Map.Pop_info() - T.main_caption = 'S c r a p y a r d ' - T.sub_caption = ' ---defend the choo---' + T.main_caption = 'L u m b e r j a c k ' + T.sub_caption = '' T.text = table.concat( { + 'Welcome lumberlover!\n', + '\n', 'The biters have catched the scent of fish in the cargo wagon.\n', - 'Guide the choo through the black mist and protect it for as long as possible!\n', + 'Guide the choo and protect it for as long as possible!\n', 'This will not be an easy task however,\n', 'since their strength and numbers increase over time.\n', '\n', @@ -644,16 +623,10 @@ local on_init = function() 'Mining productivity research, will overhaul your mining equipment,\n', 'reinforcing your pickaxe as well as increasing the size of your backpack.\n', '\n', - 'Scrap randomness seems to occur frequently, sometimes mining scrap\n', - 'does not output scrap, weird...\n', - '\n', "We've also noticed that solar eclipse occuring, \n", 'we have yet to solve this mystery\n', '\n', - 'Good luck, over and out!', - '\n', - '\n', - '\n' + 'Good luck, over and out!' } ) T.main_caption_color = {r = 150, g = 150, b = 0} diff --git a/maps/lumberjack/mining.lua b/maps/lumberjack/mining.lua new file mode 100644 index 00000000..5ecb2342 --- /dev/null +++ b/maps/lumberjack/mining.lua @@ -0,0 +1,211 @@ +local WPT = require 'maps.lumberjack.table' + +local Public = {} + +local max_spill = 60 +local math_random = math.random +local math_floor = math.floor +local math_sqrt = math.sqrt + +local function create_particles(surface, name, position, amount, cause_position) + local direction_mod = (-100 + math_random(0, 200)) * 0.0004 + local direction_mod_2 = (-100 + math_random(0, 200)) * 0.0004 + + if cause_position then + direction_mod = (cause_position.x - position.x) * 0.025 + direction_mod_2 = (cause_position.y - position.y) * 0.025 + end + + for i = 1, amount, 1 do + local m = math_random(4, 10) + local m2 = m * 0.005 + + surface.create_particle( + { + name = name, + position = position, + frame_speed = 1, + vertical_speed = 0.130, + height = 0, + movement = { + (m2 - (math_random(0, m) * 0.01)) + direction_mod, + (m2 - (math_random(0, m) * 0.01)) + direction_mod_2 + } + } + ) + end +end + +local function mining_chances_ores() + local data = { + {name = 'tree', chance = 500}, + {name = 'iron-ore', chance = 570}, + {name = 'copper-ore', chance = 570}, + {name = 'stone', chance = 550}, + {name = 'coal', chance = 545}, + {name = 'uranium-ore', chance = 1} + } + return data +end + +local function ore_yield_amounts() + local data = { + ['iron-ore'] = 28, + ['copper-ore'] = 28, + ['stone'] = 20, + ['coal'] = 28, + ['uranium-ore'] = 1, + ['tree-01'] = 1, + ['tree-02'] = 1, + ['tree-02-red'] = 1, + ['tree-03'] = 1, + ['tree-04'] = 1, + ['tree-05'] = 1, + ['tree-06'] = 1, + ['tree-06-brown'] = 1, + ['tree-07'] = 1, + ['tree-08'] = 1, + ['tree-08-brown'] = 1, + ['tree-08-red'] = 1, + ['tree-09'] = 1, + ['tree-09-brown'] = 1, + ['tree-09-red'] = 1 + } + return data +end + +local tree_raffle_ores = {} +for _, t in pairs(mining_chances_ores()) do + for x = 1, t.chance, 1 do + table.insert(tree_raffle_ores, t.name) + end +end + +local size_of_ore_raffle = #tree_raffle_ores + +local function get_amount(data) + local entity = data.entity + local this = data.this + local distance_to_center = math_floor(math_sqrt(entity.position.x ^ 2 + entity.position.y ^ 2)) + + local distance_modifier = 0.25 + local base_amount = 35 + local maximum_amount = 100 + if this.rocks_yield_ore_distance_modifier then + distance_modifier = this.rocks_yield_ore_distance_modifier + end + if this.rocks_yield_ore_base_amount then + base_amount = this.rocks_yield_ore_base_amount + end + if this.rocks_yield_ore_maximum_amount then + maximum_amount = this.rocks_yield_ore_maximum_amount + end + + local amount = base_amount + (distance_to_center * distance_modifier) + if amount > maximum_amount then + amount = maximum_amount + end + + local m = (70 + math_random(0, 60)) * 0.01 + + amount = math_floor(amount * ore_yield_amounts()[entity.name] * m) + if amount < 1 then + amount = 1 + end + + return amount +end + +local function tree_randomness(data) + local entity = data.entity + local player = data.player + local tree + + tree = tree_raffle_ores[math.random(1, size_of_ore_raffle)] + + data.tree = tree + + local tree_amount = get_amount(data) + + local position = {x = entity.position.x, y = entity.position.y} + + if tree_amount > max_spill then + player.surface.spill_item_stack(position, {name = tree, count = max_spill}, true) + tree_amount = tree_amount - max_spill + local inserted_count = player.insert({name = tree, count = tree_amount}) + tree_amount = tree_amount - inserted_count + if tree_amount > 0 then + player.surface.spill_item_stack(position, {name = tree, count = tree_amount}, true) + end + else + if tree == 'tree' then + tree = 'wood' + end + player.surface.spill_item_stack(position, {name = tree, count = tree_amount}, true) + end + + if tree_amount <= 0 then + tree_amount = math_random(1, 10) + end + + player.surface.create_entity( + { + name = 'flying-text', + position = position, + text = '+' .. tree_amount .. ' [img=item/' .. tree .. ']', + color = {r = 200, g = 160, b = 30} + } + ) + + create_particles(player.surface, 'shell-particle', position, 64, {x = player.position.x, y = player.position.y}) +end + +function Public.on_player_mined_entity(event) + local entity = event.entity + if not entity.valid then + return + end + if entity.type ~= 'tree' then + return + end + local player = game.players[event.player_index] + local this = WPT.get_table() + if not player then + return + end + + event.buffer.clear() + + local data = { + this = this, + entity = entity, + player = player + } + + tree_randomness(data) +end + +function Public.on_entity_died(event) + if not event.entity.valid then + return + end + if event.entity.type == 'tree' then + for _, entity in pairs( + event.entity.surface.find_entities_filtered( + { + area = { + {event.entity.position.x - 4, event.entity.position.y - 4}, + {event.entity.position.x + 4, event.entity.position.y + 4} + }, + name = 'fire-flame-on-tree' + } + ) + ) do + if entity.valid then + entity.destroy() + end + end + end +end + +return Public diff --git a/maps/scrapyard/player_list.lua b/maps/lumberjack/player_list.lua similarity index 99% rename from maps/scrapyard/player_list.lua rename to maps/lumberjack/player_list.lua index 803c6fb7..e551ad30 100644 --- a/maps/scrapyard/player_list.lua +++ b/maps/lumberjack/player_list.lua @@ -6,7 +6,7 @@ end local Event = require 'utils.event' local play_time = require 'utils.session_data' local Tabs = require 'comfy_panel.main' -local RPG = require 'maps.scrapyard.rpg' +local RPG = require 'maps.lumberjack.rpg' local symbol_asc = '▲' local symbol_desc = '▼' diff --git a/maps/scrapyard/power.lua b/maps/lumberjack/power.lua similarity index 81% rename from maps/scrapyard/power.lua rename to maps/lumberjack/power.lua index 8a4342ff..1f145e46 100644 --- a/maps/scrapyard/power.lua +++ b/maps/lumberjack/power.lua @@ -1,5 +1,5 @@ local Event = require 'utils.event' -local WPT = require 'maps.scrapyard.table' +local WPT = require 'maps.lumberjack.table' local function balance(t) local g = 0 @@ -20,20 +20,20 @@ end local function tick() local this = WPT.get_table() - if not this.energy['scrapyard'] then - this.energy['scrapyard'] = this.ow_energy + if not this.energy['lumberjack'] then + this.energy['lumberjack'] = this.ow_energy end if not this.energy['loco'] then this.energy['loco'] = this.lo_energy end - local scrapyard = this.energy['scrapyard'] + local lumberjack = this.energy['lumberjack'] local loco = this.energy['loco'] - if not scrapyard or not loco then + if not lumberjack or not loco then return end - if not scrapyard.valid or not loco.valid then + if not lumberjack.valid or not loco.valid then return end balance(this.energy) @@ -46,7 +46,7 @@ local function built_entity(event) end local player = game.players[event.player_index] local surface = entity.surface - if surface.name ~= 'scrapyard' then + if surface.name ~= 'lumberjack' then return end if diff --git a/maps/scrapyard/rpg.lua b/maps/lumberjack/rpg.lua similarity index 99% rename from maps/scrapyard/rpg.lua rename to maps/lumberjack/rpg.lua index a177bbdc..2bae225f 100644 --- a/maps/scrapyard/rpg.lua +++ b/maps/lumberjack/rpg.lua @@ -1091,7 +1091,7 @@ end local function on_player_changed_position(event) local player = game.players[event.player_index] - if string.sub(player.surface.name, 0, 9) ~= 'scrapyard' then + if string.sub(player.surface.name, 0, 10) ~= 'lumberjack' then return end distance(player) diff --git a/maps/scrapyard/table.lua b/maps/lumberjack/table.lua similarity index 93% rename from maps/scrapyard/table.lua rename to maps/lumberjack/table.lua index 41602cdd..e47335d2 100644 --- a/maps/scrapyard/table.lua +++ b/maps/lumberjack/table.lua @@ -31,7 +31,6 @@ function Public.reset_table() this.cargo_health = 10000 this.cargo_max_health = 10000 this.revealed_spawn = 0 - this.scrap_enabled = true this.left_top = { x = 0, y = 0 diff --git a/maps/scrapyard/terrain.lua b/maps/lumberjack/terrain.lua similarity index 93% rename from maps/scrapyard/terrain.lua rename to maps/lumberjack/terrain.lua index ed92c92f..c4f20ec8 100644 --- a/maps/scrapyard/terrain.lua +++ b/maps/lumberjack/terrain.lua @@ -1,15 +1,14 @@ local Biters = require 'modules.wave_defense.biter_rolls' local WD = require 'modules.wave_defense.table' -local ICW = require 'maps.scrapyard.icw.main' +local ICW = require 'maps.lumberjack.icw.main' local Event = require 'utils.event' local Market = require 'functions.basic_markets' local create_entity_chain = require 'functions.create_entity_chain' local create_tile_chain = require 'functions.create_tile_chain' -local noise_v1 = require 'utils.simplex_noise'.d2 local map_functions = require 'tools.map_functions' -local WPT = require 'maps.scrapyard.table' +local WPT = require 'maps.lumberjack.table' local shapes = require 'tools.shapes' -local Loot = require 'maps.scrapyard.loot' +local Loot = require 'maps.lumberjack.loot' local get_noise = require 'utils.get_noise' local Public = {} @@ -39,8 +38,6 @@ local rock_raffle = { 'rock-huge' } -local size_of_rock_raffle = #rock_raffle - local scrap_entities = { 'crash-site-assembling-machine-1-broken', 'crash-site-assembling-machine-2-broken', @@ -93,34 +90,23 @@ local scrap_buildings = { } local spawner_raffle = {'biter-spawner', 'biter-spawner', 'biter-spawner', 'spitter-spawner'} local trees = {'dead-grey-trunk', 'dead-grey-trunk', 'dry-tree'} -local more_colors = { - 'black-refined-concrete', - 'brown-refined-concrete', - 'red-refined-concrete', - 'blue-refined-concrete' -} local trees_terrain = { - ['dead-dry-hairy-tree'] = true, - ['dead-grey-trunk'] = true, - ['dead-tree-desert'] = true, - ['dry-hairy-tree'] = true, - ['dry-tree'] = true, - ['tree-01'] = true, - ['tree-02'] = true, - ['tree-02-red'] = true, - ['tree-03'] = true, - ['tree-04'] = true, - ['tree-05'] = true, - ['tree-06'] = true, - ['tree-06-brown'] = true, - ['tree-07'] = true, - ['tree-08'] = true, - ['tree-08-brown'] = true, - ['tree-08-red'] = true, - ['tree-09'] = true, - ['tree-09-brown'] = true, - ['tree-09-red'] = true + 'tree-01', + 'tree-02', + 'tree-02-red', + 'tree-03', + 'tree-04', + 'tree-05', + 'tree-06', + 'tree-06-brown', + 'tree-07', + 'tree-08', + 'tree-08-brown', + 'tree-08-red', + 'tree-09', + 'tree-09-brown', + 'tree-09-red' } local function place_wagon(data) @@ -148,7 +134,7 @@ local function place_wagon(data) end for _, e in pairs( surface.find_entities_filtered( - {position = tile.position, force = {'neutral', 'enemy', 'scrap_defense', 'scrap'}} + {position = tile.position, force = {'neutral', 'enemy', 'lumber_defense', 'defenders'}} ) ) do e.destroy() @@ -175,7 +161,7 @@ local function place_random_scrap_entity(surface, position) if r < 15 then local e = surface.create_entity( - {name = scrap_buildings[math_random(1, #scrap_buildings)], position = position, force = 'scrap'} + {name = scrap_buildings[math_random(1, #scrap_buildings)], position = position, force = 'defenders'} ) if e.name == 'nuclear-reactor' then create_entity_chain( @@ -195,7 +181,7 @@ local function place_random_scrap_entity(surface, position) return end if r < 75 then - local e = surface.create_entity({name = 'gun-turret', position = position, force = 'scrap_defense'}) + local e = surface.create_entity({name = 'gun-turret', position = position, force = 'lumber_defense'}) if math_abs(position.y) < Public.level_depth * 2.5 then e.insert({name = 'piercing-rounds-magazine', count = math_random(64, 128)}) else @@ -206,7 +192,7 @@ local function place_random_scrap_entity(surface, position) local e = surface.create_entity( - {name = 'storage-tank', position = position, force = 'scrap', direction = math_random(0, 3)} + {name = 'storage-tank', position = position, force = 'defenders', direction = math_random(0, 3)} ) local fluids = {'crude-oil', 'lubricant', 'heavy-oil', 'light-oil', 'petroleum-gas', 'sulfuric-acid', 'water'} e.fluidbox[1] = {name = fluids[math_random(1, #fluids)], amount = math_random(15000, 25000)} @@ -218,11 +204,11 @@ end local function create_inner_content(surface, pos, noise) if math_random(1, 90000) == 1 then if noise < 0.3 or noise > -0.3 then - map_functions.draw_noise_entity_ring(surface, pos, 'laser-turret', 'scrap_defense', 0, 2) - map_functions.draw_noise_entity_ring(surface, pos, 'accumulator', 'scrap_defense', 2, 3) - map_functions.draw_noise_entity_ring(surface, pos, 'substation', 'scrap_defense', 3, 4) - map_functions.draw_noise_entity_ring(surface, pos, 'solar-panel', 'scrap_defense', 4, 6) - map_functions.draw_noise_entity_ring(surface, pos, 'stone-wall', 'scrap_defense', 6, 7) + map_functions.draw_noise_entity_ring(surface, pos, 'laser-turret', 'lumber_defense', 0, 2) + map_functions.draw_noise_entity_ring(surface, pos, 'accumulator', 'lumber_defense', 2, 3) + map_functions.draw_noise_entity_ring(surface, pos, 'substation', 'lumber_defense', 3, 4) + map_functions.draw_noise_entity_ring(surface, pos, 'solar-panel', 'lumber_defense', 4, 6) + map_functions.draw_noise_entity_ring(surface, pos, 'stone-wall', 'lumber_defense', 6, 7) create_tile_chain(surface, {name = 'concrete', position = pos}, math_random(16, 32), 50) create_tile_chain(surface, {name = 'concrete', position = pos}, math_random(16, 32), 50) @@ -256,13 +242,13 @@ local function wall(data) else surface.set_tiles({{name = 'dirt-7', position = p}}) if math_random(1, 5) ~= 1 then - surface.create_entity({name = 'mineable-wreckage', position = p}) + surface.create_entity({name = trees_terrain[math_random(1, #trees_terrain)], position = p}) end end else surface.set_tiles({{name = 'dirt-7', position = p}}) - if surface.can_place_entity({name = 'stone-wall', position = p, force = 'scrap_defense'}) then + if surface.can_place_entity({name = 'stone-wall', position = p, force = 'lumber_defense'}) then if math_random(1, 512) == 1 and y > 3 and y < 28 then if math_random(1, 2) == 1 then Loot.add(surface, p, 'wooden-chest') @@ -275,7 +261,7 @@ local function wall(data) if math_random(1, y + 1) == 1 then local e = surface.create_entity( - {name = 'stone-wall', position = p, force = 'scrap_defense'} + {name = 'stone-wall', position = p, force = 'lumber_defense'} ) e.minable = false end @@ -283,7 +269,7 @@ local function wall(data) if math_random(1, 32 - y) == 1 then local e = surface.create_entity( - {name = 'stone-wall', position = p, force = 'scrap_defense'} + {name = 'stone-wall', position = p, force = 'lumber_defense'} ) e.minable = false end @@ -297,17 +283,17 @@ local function wall(data) end if math_random(1, 16) == 1 then - if surface.can_place_entity({name = 'small-worm-turret', position = p, force = 'scrap_defense'}) then + if surface.can_place_entity({name = 'small-worm-turret', position = p, force = 'lumber_defense'}) then Biters.wave_defense_set_worm_raffle(math_abs(p.y) * worm_level_modifier) surface.create_entity( - {name = Biters.wave_defense_roll_worm_name(), position = p, force = 'scrap_defense'} + {name = Biters.wave_defense_roll_worm_name(), position = p, force = 'lumber_defense'} ) end end if math_random(1, 32) == 1 then - if surface.can_place_entity({name = 'gun-turret', position = p, force = 'scrap_defense'}) then - local e = surface.create_entity({name = 'gun-turret', position = p, force = 'scrap_defense'}) + if surface.can_place_entity({name = 'gun-turret', position = p, force = 'lumber_defense'}) then + local e = surface.create_entity({name = 'gun-turret', position = p, force = 'lumber_defense'}) if math_abs(p.y) < Public.level_depth * 2.5 then e.insert({name = 'piercing-rounds-magazine', count = math_random(64, 128)}) else @@ -336,7 +322,7 @@ local function process_level_9_position(data) tiles[#tiles + 1] = {name = 'dirt-7', position = p} local no_rocks_2 = get_noise('no_rocks_2', p, seed) if math_random(1, 2) == 1 and no_rocks_2 > -0.5 then - entities[#entities + 1] = {name = rock_raffle[math_random(1, size_of_rock_raffle)], position = p} + entities[#entities + 1] = {name = trees_terrain[math_random(1, #trees_terrain)], position = p} end if math_random(1, 1024) == 1 then treasure[#treasure + 1] = p @@ -347,7 +333,7 @@ local function process_level_9_position(data) entities[#entities + 1] = { name = Biters.wave_defense_roll_worm_name(), position = p, - force = 'scrap_defense' + force = 'lumber_defense' } end return @@ -386,8 +372,6 @@ local function process_level_8_position(data) local seed = data.seed local tiles = data.tiles local entities = data.entities - local markets = data.markets - local treasure = data.treasure local scrapyard = get_noise('scrapyard', p, seed) @@ -407,12 +391,12 @@ local function process_level_8_position(data) if scrapyard < -0.25 or scrapyard > 0.25 then if math_random(1, 256) == 1 then - entities[#entities + 1] = {name = 'gun-turret', position = p, force = 'scrap_defense'} + entities[#entities + 1] = {name = 'gun-turret', position = p, force = 'lumber_defense'} end tiles[#tiles + 1] = {name = 'dirt-7', position = p} if scrapyard < -0.55 or scrapyard > 0.55 then if math_random(1, 2) == 1 then - entities[#entities + 1] = {name = rock_raffle[math_random(1, size_of_rock_raffle)], position = p} + entities[#entities + 1] = {name = trees_terrain[math_random(1, #trees_terrain)], position = p} end return end @@ -423,23 +407,23 @@ local function process_level_8_position(data) entities[#entities + 1] = { name = Biters.wave_defense_roll_worm_name(), position = p, - force = 'scrap_defense' + force = 'lumber_defense' } end if math_random(1, 96) == 1 then entities[#entities + 1] = { name = scrap_entities[math_random(1, scrap_entities_index)], position = p, - force = 'scrap_defense' + force = 'lumber_defense' } end if math_random(1, 5) > 1 then - entities[#entities + 1] = {name = 'mineable-wreckage', position = p} + entities[#entities + 1] = {name = trees_terrain[math_random(1, #trees_terrain)], position = p} end if math_random(1, 256) == 1 then create_inner_content(surface, p, scrapyard) - entities[#entities + 1] = {name = 'land-mine', position = p, force = 'scrap_defense'} + entities[#entities + 1] = {name = 'land-mine', position = p, force = 'lumber_defense'} end return end @@ -460,7 +444,7 @@ local function process_level_8_position(data) if math_floor(large_caves * 10) % 4 < 3 then tiles[#tiles + 1] = {name = 'dirt-7', position = p} if math_random(1, 2) == 1 then - entities[#entities + 1] = {name = rock_raffle[math_random(1, size_of_rock_raffle)], position = p} + entities[#entities + 1] = {name = trees_terrain[math_random(1, #trees_terrain)], position = p} end return end @@ -472,7 +456,7 @@ local function process_level_8_position(data) tiles[#tiles + 1] = {name = 'stone-path', position = p} if math_random(1, 256) == 1 then - entities[#entities + 1] = {name = 'land-mine', position = p, force = 'scrap_defense'} + entities[#entities + 1] = {name = 'land-mine', position = p, force = 'lumber_defense'} end end @@ -573,7 +557,7 @@ local function process_level_7_position(data) tiles[#tiles + 1] = {name = 'dirt-7', position = p} if math_random(1, 100) > 15 then - entities[#entities + 1] = {name = rock_raffle[math_random(1, size_of_rock_raffle)], position = p} + entities[#entities + 1] = {name = trees_terrain[math_random(1, #trees_terrain)], position = p} end if math_random(1, 256) == 1 then treasure[#treasure + 1] = p @@ -586,7 +570,6 @@ local function process_level_6_position(data) local seed = data.seed local tiles = data.tiles local entities = data.entities - local markets = data.markets local treasure = data.treasure local large_caves = get_noise('large_caves', p, seed) @@ -599,7 +582,7 @@ local function process_level_6_position(data) treasure[#treasure + 1] = p end if math_random(1, 3) > 1 then - entities[#entities + 1] = {name = 'mineable-wreckage', position = p} + entities[#entities + 1] = {name = trees_terrain[math_random(1, #trees_terrain)], position = p} end return end @@ -615,7 +598,7 @@ local function process_level_6_position(data) entities[#entities + 1] = { name = Biters.wave_defense_roll_worm_name(), position = p, - force = 'scrap_defense' + force = 'lumber_defense' } end return @@ -640,7 +623,7 @@ local function process_level_6_position(data) treasure[#treasure + 1] = p end if math_random(1, 2) > 1 then - entities[#entities + 1] = {name = 'mineable-wreckage', position = p} + entities[#entities + 1] = {name = trees_terrain[math_random(1, #trees_terrain)], position = p} end return end @@ -653,7 +636,6 @@ local function process_level_5_position(data) local seed = data.seed local tiles = data.tiles local entities = data.entities - local markets = data.markets local treasure = data.treasure local small_caves = get_noise('small_caves', p, seed) @@ -666,7 +648,7 @@ local function process_level_5_position(data) treasure[#treasure + 1] = p end if math_random(1, 3) > 1 then - entities[#entities + 1] = {name = 'mineable-wreckage', position = p} + entities[#entities + 1] = {name = trees_terrain[math_random(1, #trees_terrain)], position = p} end return end @@ -682,7 +664,7 @@ local function process_level_5_position(data) entities[#entities + 1] = { name = Biters.wave_defense_roll_worm_name(), position = p, - force = 'scrap_defense' + force = 'lumber_defense' } end return @@ -707,7 +689,7 @@ local function process_level_5_position(data) treasure[#treasure + 1] = p end if math_random(1, 2) > 1 then - entities[#entities + 1] = {name = 'mineable-wreckage', position = p} + entities[#entities + 1] = {name = trees_terrain[math_random(1, #trees_terrain)], position = p} end return end @@ -753,7 +735,7 @@ local function process_level_4_position(data) entities[#entities + 1] = { name = Biters.wave_defense_roll_worm_name(), position = p, - force = 'scrap_defense' + force = 'lumber_defense' } end if math_random(1, 1024) == 1 then @@ -765,7 +747,7 @@ local function process_level_4_position(data) tiles[#tiles + 1] = {name = 'dirt-7', position = p} --tiles[#tiles + 1] = {name = more_colors[math_random(1, #more_colors)].. "-refined-concrete", position = p} if math_random(1, 3) > 1 then - entities[#entities + 1] = {name = 'mineable-wreckage', position = p} + entities[#entities + 1] = {name = trees_terrain[math_random(1, #trees_terrain)], position = p} end if math_random(1, 2048) == 1 then treasure[#treasure + 1] = p @@ -789,7 +771,7 @@ local function process_level_4_position(data) tiles[#tiles + 1] = {name = 'dirt-7', position = p} --tiles[#tiles + 1] = {name = colors[math_random(1, #colors)].. "-refined-concrete", position = p} if math_random(1, 5) > 1 then - entities[#entities + 1] = {name = 'mineable-wreckage', position = p} + entities[#entities + 1] = {name = trees_terrain[math_random(1, #trees_terrain)], position = p} end if math_random(1, 1024) == 1 then treasure[#treasure + 1] = p @@ -815,7 +797,7 @@ local function process_level_4_position(data) tiles[#tiles + 1] = {name = 'dirt-7', position = p} --tiles[#tiles + 1] = {name = more_colors[math_random(1, #more_colors)].. "-refined-concrete", position = p} if math_random(1, 100) > 30 then - entities[#entities + 1] = {name = 'mineable-wreckage', position = p} + entities[#entities + 1] = {name = trees_terrain[math_random(1, #trees_terrain)], position = p} end return end @@ -840,7 +822,7 @@ local function process_level_3_position(data) if noise_cave_ponds > -0.79 then tiles[#tiles + 1] = {name = 'dirt-7', position = p} --tiles[#tiles + 1] = {name = more_colors[math_random(1, #more_colors)].. "-refined-concrete", position = p} - entities[#entities + 1] = {name = 'mineable-wreckage', position = p} + entities[#entities + 1] = {name = trees_terrain[math_random(1, #trees_terrain)], position = p} else tiles[#tiles + 1] = {name = 'grass-' .. math_floor(noise_cave_ponds * 32) % 3 + 1, position = p} if math_random(1, 32) == 1 then @@ -918,7 +900,7 @@ local function process_level_3_position(data) entities[#entities + 1] = { name = Biters.wave_defense_roll_worm_name(), position = p, - force = 'scrap_defense' + force = 'lumber_defense' } end if math_random(1, 512) == 1 then @@ -951,7 +933,7 @@ local function process_level_3_position(data) place_random_scrap_entity(surface, p) end if math_random(1, 100) > 30 then - entities[#entities + 1] = {name = 'mineable-wreckage', position = p} + entities[#entities + 1] = {name = trees_terrain[math_random(1, #trees_terrain)], position = p} end return end @@ -1038,7 +1020,7 @@ local function process_level_2_position(data) entities[#entities + 1] = { name = Biters.wave_defense_roll_worm_name(), position = p, - force = 'scrap_defense' + force = 'lumber_defense' } end if math_random(1, 64) == 1 then @@ -1068,7 +1050,7 @@ local function process_level_2_position(data) place_random_scrap_entity(surface, p) end if math_random(1, 100) > 30 then - entities[#entities + 1] = {name = 'mineable-wreckage', position = p} + entities[#entities + 1] = {name = trees_terrain[math_random(1, #trees_terrain)], position = p} end return end @@ -1155,7 +1137,7 @@ local function process_level_1_position(data) entities[#entities + 1] = { name = Biters.wave_defense_roll_worm_name(), position = p, - force = 'scrap_defense' + force = 'lumber_defense' } end if math_random(1, 1024) == 1 then @@ -1194,7 +1176,7 @@ local function process_level_1_position(data) place_random_scrap_entity(surface, p) end if math_random(1, 100) > 30 then - entities[#entities + 1] = {name = 'mineable-wreckage', position = p} + entities[#entities + 1] = {name = trees_terrain[math_random(1, #trees_terrain)], position = p} end end @@ -1547,7 +1529,7 @@ end local function on_chunk_generated(event) local this = WPT.get_table() - if string.sub(event.surface.name, 0, 9) ~= 'scrapyard' then + if string.sub(event.surface.name, 0, 10) ~= 'lumberjack' then return end local surface = event.surface diff --git a/maps/scrapyard/mining_scrap.lua b/maps/scrapyard/mining_scrap.lua deleted file mode 100644 index f593f7a0..00000000 --- a/maps/scrapyard/mining_scrap.lua +++ /dev/null @@ -1,300 +0,0 @@ -local WPT = require 'maps.scrapyard.table' - -local Public = {} - -local max_spill = 60 -local math_random = math.random -local math_floor = math.floor -local math_sqrt = math.sqrt - -local function create_particles(surface, name, position, amount, cause_position) - local direction_mod = (-100 + math_random(0, 200)) * 0.0004 - local direction_mod_2 = (-100 + math_random(0, 200)) * 0.0004 - - if cause_position then - direction_mod = (cause_position.x - position.x) * 0.025 - direction_mod_2 = (cause_position.y - position.y) * 0.025 - end - - for i = 1, amount, 1 do - local m = math_random(4, 10) - local m2 = m * 0.005 - - surface.create_particle( - { - name = name, - position = position, - frame_speed = 1, - vertical_speed = 0.130, - height = 0, - movement = { - (m2 - (math_random(0, m) * 0.01)) + direction_mod, - (m2 - (math_random(0, m) * 0.01)) + direction_mod_2 - } - } - ) - end -end - -local function mining_chances_scrap() - local data = { - {name = 'iron-plate', chance = 400}, - {name = 'iron-gear-wheel', chance = 390}, - {name = 'copper-plate', chance = 400}, - {name = 'copper-cable', chance = 380}, - {name = 'electronic-circuit', chance = 150}, - {name = 'steel-plate', chance = 120}, - {name = 'solid-fuel', chance = 89}, - {name = 'pipe', chance = 75}, - {name = 'stone', chance = 50}, - {name = 'iron-stick', chance = 50}, - {name = 'battery', chance = 20}, - {name = 'empty-barrel', chance = 10}, - {name = 'crude-oil-barrel', chance = 10}, - {name = 'lubricant-barrel', chance = 10}, - {name = 'petroleum-gas-barrel', chance = 10}, - {name = 'sulfuric-acid-barrel', chance = 10}, - {name = 'heavy-oil-barrel', chance = 10}, - {name = 'light-oil-barrel', chance = 10}, - {name = 'water-barrel', chance = 10}, - {name = 'green-wire', chance = 10}, - {name = 'red-wire', chance = 10}, - {name = 'explosives', chance = 5}, - {name = 'advanced-circuit', chance = 5}, - {name = 'nuclear-fuel', chance = 1}, - {name = 'pipe-to-ground', chance = 10}, - {name = 'plastic-bar', chance = 5}, - {name = 'rocket-fuel', chance = 3}, - {name = 'engine-unit', chance = 4}, - {name = 'logistic-robot', chance = 1}, - {name = 'construction-robot', chance = 1}, - {name = 'land-mine', chance = 3}, - {name = 'grenade', chance = 10}, - {name = 'rocket', chance = 3}, - {name = 'explosive-rocket', chance = 3}, - {name = 'cannon-shell', chance = 2}, - {name = 'explosive-cannon-shell', chance = 2}, - {name = 'explosive-uranium-cannon-shell', chance = 1}, - {name = 'artillery-shell', chance = 1}, - {name = 'cluster-grenade', chance = 2}, - {name = 'defender-capsule', chance = 5}, - {name = 'destroyer-capsule', chance = 1}, - {name = 'distractor-capsule', chance = 2} - } - return data -end -local function mining_chances_ores() - local data = { - {name = 'iron-ore', chance = 570}, - {name = 'copper-ore', chance = 570}, - {name = 'stone', chance = 550}, - {name = 'coal', chance = 545}, - {name = 'uranium-ore', chance = 1} - } - return data -end - -local function ore_yield_amounts() - local data = { - ['iron-ore'] = 28, - ['copper-ore'] = 28, - ['stone'] = 20, - ['coal'] = 28, - ['uranium-ore'] = 1, - ['mineable-wreckage'] = 1 - } - return data -end - -local function scrap_yield_amounts() - local data = { - ['iron-plate'] = 12, - ['iron-gear-wheel'] = 12, - ['iron-stick'] = 12, - ['stone'] = 5, - ['copper-plate'] = 12, - ['copper-cable'] = 12, - ['electronic-circuit'] = 4, - ['steel-plate'] = 4, - ['pipe'] = 5, - ['solid-fuel'] = 6, - ['empty-barrel'] = 3, - ['crude-oil-barrel'] = 3, - ['lubricant-barrel'] = 3, - ['petroleum-gas-barrel'] = 3, - ['sulfuric-acid-barrel'] = 3, - ['heavy-oil-barrel'] = 3, - ['light-oil-barrel'] = 3, - ['water-barrel'] = 3, - ['battery'] = 2, - ['explosives'] = 4, - ['advanced-circuit'] = 2, - ['nuclear-fuel'] = 0.1, - ['pipe-to-ground'] = 1, - ['plastic-bar'] = 4, - ['processing-unit'] = 1, - ['used-up-uranium-fuel-cell'] = 1, - ['uranium-fuel-cell'] = 0.3, - ['rocket-fuel'] = 0.3, - ['rocket-control-unit'] = 0.3, - ['low-density-structure'] = 0.3, - ['heat-pipe'] = 1, - ['green-wire'] = 8, - ['red-wire'] = 8, - ['engine-unit'] = 2, - ['electric-engine-unit'] = 2, - ['logistic-robot'] = 0.3, - ['construction-robot'] = 0.3, - ['land-mine'] = 1, - ['grenade'] = 2, - ['rocket'] = 2, - ['explosive-rocket'] = 2, - ['cannon-shell'] = 2, - ['explosive-cannon-shell'] = 2, - ['uranium-cannon-shell'] = 2, - ['explosive-uranium-cannon-shell'] = 2, - ['artillery-shell'] = 0.3, - ['cluster-grenade'] = 0.3, - ['defender-capsule'] = 2, - ['destroyer-capsule'] = 0.3, - ['distractor-capsule'] = 0.3, - ['mineable-wreckage'] = 1 - } - return data -end - -local scrap_raffle_scrap = {} -for _, t in pairs(mining_chances_scrap()) do - for x = 1, t.chance, 1 do - table.insert(scrap_raffle_scrap, t.name) - end -end - -local size_of_scrap_raffle = #scrap_raffle_scrap - -local scrap_raffle_ores = {} -for _, t in pairs(mining_chances_ores()) do - for x = 1, t.chance, 1 do - table.insert(scrap_raffle_ores, t.name) - end -end - -local size_of_ore_raffle = #scrap_raffle_ores - -local function get_amount(data) - local entity = data.entity - local this = data.this - local scrap = data.scrap - local scrap_amount = scrap_yield_amounts() - local distance_to_center = math_floor(math_sqrt(entity.position.x ^ 2 + entity.position.y ^ 2)) - - local distance_modifier = 0.25 - local base_amount = 35 - local maximum_amount = 100 - if this.rocks_yield_ore_distance_modifier then - distance_modifier = this.rocks_yield_ore_distance_modifier - end - if this.rocks_yield_ore_base_amount then - base_amount = this.rocks_yield_ore_base_amount - end - if this.rocks_yield_ore_maximum_amount then - maximum_amount = this.rocks_yield_ore_maximum_amount - end - - local amount = base_amount + (distance_to_center * distance_modifier) - if amount > maximum_amount then - amount = maximum_amount - end - - local m = (70 + math_random(0, 60)) * 0.01 - if this.scrap_enabled then - local amount_bonus = - (game.forces.enemy.evolution_factor * 2) + (game.forces.player.mining_drill_productivity_bonus * 2) - local r1 = math.ceil(scrap_amount[scrap] * (1.3 + (amount_bonus * 1.3))) - local r2 = math.ceil(scrap_amount[scrap] * (1.7 + (amount_bonus * 1.7))) - if not r1 or not r2 then - return - end - amount = math_random(r1, r2) - else - amount = math_floor(amount * ore_yield_amounts()[entity.name] * m) - end - if amount < 1 then - amount = 1 - end - - return amount -end - -local function scrap_randomness(data) - local entity = data.entity - local this = data.this - local player = data.player - local scrap - - if this.scrap_enabled then - scrap = scrap_raffle_scrap[math.random(1, size_of_scrap_raffle)] - else - scrap = scrap_raffle_ores[math.random(1, size_of_ore_raffle)] - end - - data.scrap = scrap - - local scrap_amount = get_amount(data) - - local position = {x = entity.position.x, y = entity.position.y} - - if scrap_amount > max_spill then - player.surface.spill_item_stack(position, {name = scrap, count = max_spill}, true) - scrap_amount = scrap_amount - max_spill - local inserted_count = player.insert({name = scrap, count = scrap_amount}) - scrap_amount = scrap_amount - inserted_count - if scrap_amount > 0 then - player.surface.spill_item_stack(position, {name = scrap, count = scrap_amount}, true) - end - else - player.surface.spill_item_stack(position, {name = scrap, count = scrap_amount}, true) - end - - if scrap_amount <= 0 then - scrap_amount = math_random(1, 10) - end - - player.surface.create_entity( - { - name = 'flying-text', - position = position, - text = '+' .. scrap_amount .. ' [img=item/' .. scrap .. ']', - color = {r = 200, g = 160, b = 30} - } - ) - - create_particles(player.surface, 'shell-particle', position, 64, {x = player.position.x, y = player.position.y}) -end - -function Public.on_player_mined_entity(event) - local entity = event.entity - if not entity.valid then - return - end - if entity.type ~= 'simple-entity' then - return - end - local player = game.players[event.player_index] - local this = WPT.get_table() - if not player then - return - end - - event.buffer.clear() - - local data = { - this = this, - entity = entity, - player = player - } - - scrap_randomness(data) -end - -return Public