mirror of
https://github.com/ComfyFactory/ComfyFactorio.git
synced 2025-01-24 03:47:58 +02:00
29b3a89b33
Fixed issue with determining if market is placeable Allow entities to be placed within the initial town square Fixed info to remove reference to small plane Fixed issue with no messages when can't place item due to building restrictions Fixed issue with inability to place new towns near enemy spawners or turrets Fixed issue with market listings breaking when special features disabled due to deprecation of computer item Fixed issue with mining sound missing for big-crash-site-# entities (in mod) Default to showing entity info for players (alt-info on chests)
140 lines
4.9 KiB
Lua
140 lines
4.9 KiB
Lua
require "modules.custom_death_messages"
|
|
require "modules.flashlight_toggle_button"
|
|
require "modules.global_chat_toggle"
|
|
require "modules.worms_create_oil_patches"
|
|
require "modules.biters_yield_coins"
|
|
require "modules.scrap_towny_ffa.mining"
|
|
require "modules.scrap_towny_ffa.on_tick_schedule"
|
|
require "modules.scrap_towny_ffa.building"
|
|
require "modules.scrap_towny_ffa.town_center"
|
|
require "modules.scrap_towny_ffa.market"
|
|
require "modules.scrap_towny_ffa.slots"
|
|
require "modules.scrap_towny_ffa.wreckage_yields_scrap"
|
|
require "modules.scrap_towny_ffa.rocks_yield_ore_veins"
|
|
require "modules.scrap_towny_ffa.spawners_contain_biters"
|
|
require "modules.scrap_towny_ffa.explosives_are_explosive"
|
|
require "modules.scrap_towny_ffa.fluids_are_explosive"
|
|
require "modules.scrap_towny_ffa.trap"
|
|
require "modules.scrap_towny_ffa.turrets_drop_ammo"
|
|
require "modules.scrap_towny_ffa.combat_balance"
|
|
|
|
local Table = require "modules.scrap_towny_ffa.table"
|
|
local Nauvis = require "modules.scrap_towny_ffa.nauvis"
|
|
local Biters = require "modules.scrap_towny_ffa.biters"
|
|
local Pollution = require "modules.scrap_towny_ffa.pollution"
|
|
local Fish = require "modules.scrap_towny_ffa.fish_reproduction"
|
|
local Info = require "modules.scrap_towny_ffa.info"
|
|
local Team = require "modules.scrap_towny_ffa.team"
|
|
local Spawn = require "modules.scrap_towny_ffa.spawn"
|
|
local Radar = require "modules.scrap_towny_ffa.limited_radar"
|
|
|
|
local default_surface = "nauvis"
|
|
|
|
local function on_player_joined_game(event)
|
|
local ffatable = Table.get_table()
|
|
local player = game.players[event.player_index]
|
|
local surface = game.surfaces[default_surface]
|
|
|
|
player.game_view_settings.show_minimap = false
|
|
player.game_view_settings.show_map_view_options = false
|
|
player.game_view_settings.show_entity_info = true
|
|
--player.game_view_settings.show_side_menu = false
|
|
|
|
Info.toggle_button(player)
|
|
Info.show(player)
|
|
Team.set_player_color(player)
|
|
if player.force ~= game.forces.player then return end
|
|
|
|
-- setup outlanders
|
|
Team.set_player_to_outlander(player)
|
|
|
|
if player.online_time == 0 then
|
|
player.teleport({ 0, 0 }, game.surfaces["limbo"])
|
|
Team.give_outlander_items(player)
|
|
Team.give_key(player)
|
|
-- first time spawn point
|
|
local spawn_point = Spawn.get_spawn_point(player, surface)
|
|
Spawn.clear_spawn_point(spawn_point, surface)
|
|
player.teleport(spawn_point, surface)
|
|
return
|
|
end
|
|
|
|
if not ffatable.requests[player.index] then return end
|
|
if ffatable.requests[player.index] ~= "kill-character" then return end
|
|
if player.character then
|
|
if player.character.valid then
|
|
player.character.die()
|
|
end
|
|
end
|
|
ffatable.requests[player.index] = nil
|
|
end
|
|
|
|
local function on_player_respawned(event)
|
|
local ffatable = Table.get_table()
|
|
local player = game.players[event.player_index]
|
|
local surface = player.surface
|
|
if player.force == game.forces["rogue"] then Team.set_player_to_outlander(player) end
|
|
if player.force == game.forces["player"] then Team.give_key(player) end
|
|
|
|
-- TODO: this needs fixing!
|
|
-- 5 second cooldown
|
|
--local last_respawn = ffatable.cooldowns_last_respawn[player.name]
|
|
--if last_respawn == nil then last_respawn = 0 end
|
|
local spawn_point = Spawn.get_spawn_point(player, surface)
|
|
-- reset cooldown
|
|
ffatable.cooldowns_last_respawn[player.name] = game.tick
|
|
|
|
player.teleport(surface.find_non_colliding_position("character", spawn_point, 0, 0.5, false), surface)
|
|
end
|
|
|
|
local function on_player_died(event)
|
|
local ffatable = Table.get_table()
|
|
local player = game.players[event.player_index]
|
|
ffatable.cooldowns_last_death[player.name] = game.tick
|
|
end
|
|
|
|
local function on_init()
|
|
local ffatable = Table.get_table()
|
|
--log("on_init")
|
|
game.enemy_has_vision_on_land_mines = false
|
|
game.draw_resource_selection = true
|
|
game.disable_tutorial_triggers()
|
|
|
|
ffatable.cooldowns_last_respawn = {}
|
|
ffatable.cooldowns_last_death = {}
|
|
|
|
Nauvis.initialize()
|
|
Team.initialize()
|
|
|
|
end
|
|
|
|
local tick_actions = {
|
|
[60 * 0] = Radar.reset, -- each minute, at 00 seconds
|
|
[60 * 5] = Team.update_town_chart_tags, -- each minute, at 05 seconds
|
|
[60 * 10] = Team.set_all_player_colors, -- each minute, at 10 seconds
|
|
[60 * 15] = Fish.reproduce, -- each minute, at 15 seconds
|
|
[60 * 25] = Biters.unit_groups_start_moving, -- each minute, at 25 seconds
|
|
[60 * 30] = Radar.reset, -- each minute, at 30 seconds
|
|
[60 * 45] = Biters.validate_swarms, -- each minute, at 45 seconds
|
|
[60 * 50] = Biters.swarm, -- each minute, at 50 seconds
|
|
[60 * 55] = Pollution.market_scent -- each minute, at 55 seconds
|
|
}
|
|
|
|
local function on_nth_tick(event)
|
|
-- run each second
|
|
local tick = event.tick
|
|
local seconds = tick % 3600 -- tick will recycle minute
|
|
if not tick_actions[seconds] then return end
|
|
tick_actions[seconds]()
|
|
end
|
|
|
|
local Event = require 'utils.event'
|
|
|
|
Event.on_init(on_init)
|
|
Event.on_nth_tick(60, on_nth_tick) -- once every second
|
|
Event.add(defines.events.on_player_joined_game, on_player_joined_game)
|
|
Event.add(defines.events.on_player_respawned, on_player_respawned)
|
|
Event.add(defines.events.on_player_died, on_player_died)
|
|
|
|
|