1
0
mirror of https://github.com/ComfyFactory/ComfyFactorio.git synced 2025-03-17 20:58:13 +02:00
This commit is contained in:
MewMew 2020-04-27 18:23:35 +02:00
parent 793e2bbc44
commit c65da553da
3 changed files with 37 additions and 33 deletions

View File

@ -36,9 +36,7 @@ require "modules.autostash"
--require "modules.biters_double_damage"
--require "modules.burden"
--require "modules.comfylatron"
--require "modules.spaghett_challenge"
--require "modules.dangerous_goods"
--require "modules.dynamic_landfill"
--require "modules.explosive_biters"
--require "modules.explosive_player_respawn"
--require "modules.explosives_are_explosive"
@ -56,13 +54,13 @@ require "modules.autostash"
--require "modules.ores_are_mixed"
--require "modules.team_teleport" --(REQUIRES "on_tick_schedule" !)
--require "modules.surrounded_by_worms"
--require "modules.more_attacks"
--require "modules.evolution_extended"
--require "modules.no_blueprint_library"
--require "modules.explosives"
--require "modules.biter_pets"
--require "modules.no_solar"
--require "modules.biter_reanimator"
--require "modules.force_health_booster"
--require "modules.immersive_cargo_wagons.main"
--require "modules.wave_defense.main"
--require "modules.fjei.main"
-----------------------------
@ -71,15 +69,12 @@ require "modules.autostash"
--require "maps.chronosphere.main"
--require "maps.fish_defender.main"
--require "maps.biter_battles_v2.main"
--require "maps.native_war.main"
--require "maps.mountain_fortress_v2.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.tank_conquest.tank_conquest"
--require "maps.territorial_control"
--require "maps.cave_choppy.cave_miner"
--require "maps.wave_of_death.WoD"
--require "maps.planet_prison"
@ -87,6 +82,7 @@ require "modules.autostash"
--require "maps.choppy"
--require "maps.overgrowth"
--require "maps.quarters"
--require "maps.railway_troopers_v2.main"
--require "maps.railway_troopers.main"
--require "maps.tetris.main"
--require "maps.maze_challenge"
@ -96,6 +92,10 @@ require "modules.autostash"
--require "maps.hedge_maze"
--require "maps.spooky_forest"
--require "maps.mixed_railworld"
--require "maps.scrap_railworld"
--require "maps.tank_conquest.tank_conquest"
--require "maps.native_war.main"
--require "maps.territorial_control"
--require "maps.biter_battles.biter_battles"
--require "maps.fish_defender_v1.fish_defender"
--require "maps.mountain_fortress"

View File

@ -1,13 +1,12 @@
require "modules.dynamic_player_spawn"
require "modules.biters_yield_ore"
require "modules.difficulty_vote"
local difficulties_votes = {
[1] = 16,
[2] = 8,
[3] = 6,
[4] = 4,
[5] = 3,
[1] = 32,
[2] = 16,
[3] = 8,
[4] = 6,
[5] = 4,
[6] = 2,
[7] = 1
}
@ -31,13 +30,14 @@ local function place_spawn_entities(surface)
end
local entity = surface.create_entity({name = "cargo-wagon", position = {-24, 1}, force = "player", direction = 2})
entity.get_inventory(defines.inventory.cargo_wagon).insert({name = "submachine-gun", count = 3})
entity.get_inventory(defines.inventory.cargo_wagon).insert({name = "firearm-magazine", count = 600})
entity.get_inventory(defines.inventory.cargo_wagon).insert({name = "shotgun", count = 2})
entity.get_inventory(defines.inventory.cargo_wagon).insert({name = "shotgun-shell", count = 64})
entity.get_inventory(defines.inventory.cargo_wagon).insert({name = "shotgun-shell", count = 128})
entity.get_inventory(defines.inventory.cargo_wagon).insert({name = "light-armor", count = 5})
entity.get_inventory(defines.inventory.cargo_wagon).insert({name = "grenade", count = 32})
entity.get_inventory(defines.inventory.cargo_wagon).insert({name = "pistol", count = 10})
entity.get_inventory(defines.inventory.cargo_wagon).insert({name = "rail", count = 100})
entity.get_inventory(defines.inventory.cargo_wagon).insert({name = "rail", count = 200})
Immersive_cargo_wagons.register_wagon(entity)
local entity = surface.create_entity({name = "locomotive", position = {-18, 0}, force = "player", direction = 2})
@ -94,14 +94,15 @@ local function map_reset()
global.collapse_tiles = {}
reset_difficulty_poll()
global.difficulty_poll_closing_timeout = game.tick + 3600
global.difficulty_poll_closing_timeout = game.tick + 7200
game.difficulty_settings.technology_price_multiplier = 0.5
game.map_settings.enemy_evolution.destroy_factor = 0.001
game.map_settings.enemy_evolution.pollution_factor = 0
game.map_settings.enemy_evolution.time_factor = 0
game.map_settings.enemy_expansion.enabled = true
game.map_settings.enemy_expansion.max_expansion_cooldown = 900
game.map_settings.enemy_expansion.min_expansion_cooldown = 900
game.map_settings.enemy_expansion.max_expansion_cooldown = 3600
game.map_settings.enemy_expansion.min_expansion_cooldown = 3600
game.map_settings.enemy_expansion.settler_group_max_size = 128
game.map_settings.enemy_expansion.settler_group_min_size = 32
game.map_settings.enemy_expansion.max_expansion_distance = 16
@ -124,6 +125,7 @@ local function map_reset()
force.set_spawn_position({-30, 0}, surface)
force.technologies["railway"].researched = true
force.technologies["engine"].researched = true
force.technologies["fluid-wagon"].researched = true
local types_to_disable = {
["ammo"] = true,
@ -164,11 +166,6 @@ local function draw_east_side(surface, left_top)
end
end
local function on_player_died(event)
local player = game.players[event.player_index]
player.force.set_spawn_position({global.collapse_x + 32, 0}, game.surfaces.railway_troopers)
end
local function on_chunk_generated(event)
local surface = event.surface
if surface.name ~= "railway_troopers" then return end
@ -220,27 +217,35 @@ local function on_tick()
end
return
end
if surface.count_entities_filtered({name = {"rail", "locomotive", "cargo-wagon"}, limit = 1}) == 0 then
game.print("All the rails have have been destroyed! Game Over!")
local wagons = surface.find_entities_filtered({name = {"locomotive", "cargo-wagon", "fluid-wagon", "artillery-wagon"}, limit = 1})
if not wagons[1] then
game.print("All the choos have have been destroyed! Game Over!")
global.reset_railway_troopers = 1
return
else
game.forces.player.set_spawn_position(wagons[1].position, game.surfaces.railway_troopers)
end
end
local speed = difficulties_votes[global.difficulty_vote_index]
if tick % speed ~= 0 then return end
if not global.collapse_tiles then
global.collapse_tiles = surface.find_tiles_filtered({area = {{global.collapse_x - 1, negative_map_height}, {global.collapse_x, map_height + 1}}})
local area = {{global.collapse_x - 1, negative_map_height}, {global.collapse_x, map_height + 1}}
game.forces.player.chart(surface, area)
global.collapse_tiles = surface.find_tiles_filtered({area = area})
global.size_of_collapse_tiles = #global.collapse_tiles
global.collapse_x = global.collapse_x + 1
if global.size_of_collapse_tiles == 0 then global.collapse_tiles = nil return end
table.shuffle_table(global.collapse_tiles)
end
local tile = global.collapse_tiles[global.size_of_collapse_tiles]
if not tile then global.collapse_tiles = nil return end
global.size_of_collapse_tiles = global.size_of_collapse_tiles - 1
for _, e in pairs(surface.find_entities_filtered({position = {tile.position.x + 1.5, tile.position.y + 0.5}})) do e.die() end
surface.set_tiles({{name = "out-of-map", position = tile.position}}, true)
for _ = 1, 2, 1 do
local tile = global.collapse_tiles[global.size_of_collapse_tiles]
if not tile then global.collapse_tiles = nil return end
global.size_of_collapse_tiles = global.size_of_collapse_tiles - 1
for _, e in pairs(surface.find_entities_filtered({position = {tile.position.x + 1.5, tile.position.y + 0.5}})) do e.die() end
surface.set_tiles({{name = "out-of-map", position = tile.position}}, true)
end
end
local function on_init()
@ -279,7 +284,6 @@ end
local Event = require 'utils.event'
Event.on_init(on_init)
Event.add(defines.events.on_tick, on_tick)
Event.add(defines.events.on_player_died, on_player_died)
Event.add(defines.events.on_research_finished, on_research_finished)
Event.add(defines.events.on_entity_died, on_entity_died)
Event.add(defines.events.on_entity_spawned, on_entity_spawned)

View File

@ -21,7 +21,7 @@ local function on_player_changed_position(event)
if player.character.driving == true then return end
if player.surface.daytime < 0.33 then return end
if player.surface.daytime > 0.66 then return end
if math.random(1,32) ~= 1 then return end
if math.random(1,32) ~= 1 then return end
for _, lamp in pairs(player.surface.find_entities_filtered({area={{player.position.x - 18, player.position.y - 18},{player.position.x + 18, player.position.y + 18}}, name="small-lamp"})) do
local circuit = lamp.get_or_create_control_behavior()