mirror of
https://github.com/ComfyFactory/ComfyFactorio.git
synced 2025-03-17 20:58:13 +02:00
fix for players getting stuck in the void after joining
This commit is contained in:
parent
b725ce833b
commit
ac249f49df
@ -25,7 +25,7 @@ require "comfy_panel.poll"
|
||||
require "comfy_panel.score"
|
||||
require "comfy_panel.config"
|
||||
|
||||
require "modules.autostash"
|
||||
--require "modules.autostash"
|
||||
|
||||
---- enable modules here ----
|
||||
--require "modules.the_floor_is_lava"
|
||||
@ -60,17 +60,18 @@ require "modules.autostash"
|
||||
--require "modules.explosives"
|
||||
--require "modules.biter_pets"
|
||||
--require "modules.wave_defense.main"
|
||||
--require "modules.fjei.main"
|
||||
-----------------------------
|
||||
|
||||
---- enable maps here ----
|
||||
--require "maps.fish_defender.main"
|
||||
--require "maps.fish_defender_v1.fish_defender"
|
||||
--require "maps.biter_battles_v2.main"
|
||||
require "maps.biter_battles_v2.main"
|
||||
--require "maps.mountain_fortress_v2.main"
|
||||
--require "maps.mountain_fortress"
|
||||
--require "maps.island_troopers.main"
|
||||
--require "maps.biter_hatchery.main"
|
||||
require "maps.junkyard_pvp.main"
|
||||
--require "maps.junkyard_pvp.main"
|
||||
--require "maps.scrapyard.main"
|
||||
--require "maps.tank_conquest.tank_conquest"
|
||||
--require "maps.territorial_control"
|
||||
|
@ -19,7 +19,7 @@ local tile_conversion = {
|
||||
["stone-path"] = "landfill",
|
||||
}
|
||||
|
||||
local size_of_vector_list = 128
|
||||
local size_of_vector_list = 64
|
||||
local function get_collapse_vectors(radius, seed)
|
||||
local vectors = {}
|
||||
local i = 1
|
||||
@ -125,7 +125,7 @@ local function setup_next_collapse()
|
||||
if not map_collapse.vector_list then
|
||||
map_collapse.vector_list = {}
|
||||
for _ = 1, size_of_vector_list, 1 do
|
||||
table_insert(global.map_collapse.vector_list, get_collapse_vectors(math_random(16, 32), math_random(1, 9999999)))
|
||||
table_insert(global.map_collapse.vector_list, get_collapse_vectors(math_random(24, 48), math_random(1, 9999999)))
|
||||
end
|
||||
end
|
||||
|
||||
@ -204,7 +204,7 @@ function Public.init()
|
||||
["size_of_processing"] = 0,
|
||||
["processing"] = {},
|
||||
["last_position"] = {x = 0, y = 128},
|
||||
["speed"] = 5,
|
||||
["speed"] = 2,
|
||||
}
|
||||
end
|
||||
|
||||
|
@ -34,6 +34,21 @@ local treasure_chest_messages = {
|
||||
"We has found the precious!",
|
||||
}
|
||||
|
||||
local function set_difficulty()
|
||||
local wave_defense_table = WD.get_table()
|
||||
local player_count = #game.connected_players
|
||||
|
||||
-- threat gain / wave
|
||||
wave_defense_table.threat_gain_multiplier = 2 + player_count * 0.1
|
||||
|
||||
--1 additional map collapse tile / 8 players in game
|
||||
global.map_collapse.speed = math.floor(player_count * 0.125) + 2
|
||||
|
||||
--20 Players for fastest wave_interval
|
||||
wave_defense_table.wave_interval = 3600 - player_count * 90
|
||||
if wave_defense_table.wave_interval < 1800 then wave_defense_table.wave_interval = 1800 end
|
||||
end
|
||||
|
||||
function Public.reset_map()
|
||||
local wave_defense_table = WD.get_table()
|
||||
global.chunk_queue = {}
|
||||
@ -97,6 +112,8 @@ function Public.reset_map()
|
||||
Collapse.init()
|
||||
|
||||
RPG.rpg_reset_all_players()
|
||||
|
||||
set_difficulty()
|
||||
end
|
||||
|
||||
local function protect_train(event)
|
||||
@ -253,16 +270,6 @@ local function on_research_finished(event)
|
||||
event.research.force.manual_mining_speed_modifier = mining_speed_bonus
|
||||
end
|
||||
|
||||
local function set_difficulty()
|
||||
local wave_defense_table = WD.get_table()
|
||||
|
||||
|
||||
wave_defense_table.threat_gain_multiplier = 2 + #game.connected_players * 0.1
|
||||
--20 Players for fastest wave_interval
|
||||
wave_defense_table.wave_interval = 3600 - #game.connected_players * 90
|
||||
if wave_defense_table.wave_interval < 1800 then wave_defense_table.wave_interval = 1800 end
|
||||
end
|
||||
|
||||
local function on_player_joined_game(event)
|
||||
local player_modifiers = Modifier.get_table()
|
||||
local player = game.players[event.player_index]
|
||||
@ -272,7 +279,7 @@ local function on_player_joined_game(event)
|
||||
local surface = game.surfaces[global.active_surface_index]
|
||||
|
||||
if player.online_time == 0 then
|
||||
player.teleport(surface.find_non_colliding_position("character", game.forces.player.get_spawn_position(surface), 3, 0.5), surface)
|
||||
player.teleport(surface.find_non_colliding_position("character", game.forces.player.get_spawn_position(surface), 32, 0.5), surface)
|
||||
for item, amount in pairs(starting_items) do
|
||||
player.insert({name = item, count = amount})
|
||||
end
|
||||
@ -282,7 +289,7 @@ local function on_player_joined_game(event)
|
||||
player.character = nil
|
||||
player.set_controller({type=defines.controllers.god})
|
||||
player.create_character()
|
||||
player.teleport(surface.find_non_colliding_position("character", game.forces.player.get_spawn_position(surface), 3, 0.5), surface)
|
||||
player.teleport(surface.find_non_colliding_position("character", game.forces.player.get_spawn_position(surface), 32, 0.5), surface)
|
||||
for item, amount in pairs(starting_items) do
|
||||
player.insert({name = item, count = amount})
|
||||
end
|
||||
@ -290,6 +297,13 @@ local function on_player_joined_game(event)
|
||||
|
||||
player_modifiers[player.index].character_mining_speed_modifier["mountain_fortress"] = 0.5
|
||||
Modifier.update_player_modifiers(player)
|
||||
|
||||
local tile = surface.get_tile(player.position)
|
||||
if tile.valid then
|
||||
if tile.name == "out-of-map" then
|
||||
player.teleport(surface.find_non_colliding_position("character", game.forces.player.get_spawn_position(surface), 32, 0.5), surface)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function on_player_left_game(event)
|
||||
|
Loading…
x
Reference in New Issue
Block a user