mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-26 05:27:01 +01:00
READY
This commit is contained in:
@@ -1,287 +0,0 @@
|
||||
/datum/configuration
|
||||
var/server_name = null // server name (for world name / status)
|
||||
var/server_tag_line = null // server tagline (for showing on hub entry)
|
||||
var/server_extra_features = null // server-specific extra features (for hub entry)
|
||||
var/server_suffix = 0 // generate numeric suffix based on server port
|
||||
|
||||
var/minimum_client_build = 1421 // Build 1421 due to the middle mouse button exploit
|
||||
|
||||
var/pregame_timestart = 240 // Time it takes for the server to start the game
|
||||
|
||||
// var/enable_authentication = 0 // goon authentication
|
||||
var/allow_Metadata = 0 // Metadata is supported.
|
||||
var/popup_admin_pm = 0 //adminPMs to non-admins show in a pop-up 'reply' window when set to 1.
|
||||
var/antag_hud_allowed = 0 // Ghosts can turn on Antagovision to see a HUD of who is the bad guys this round.
|
||||
var/antag_hud_restricted = 0 // Ghosts that turn on Antagovision cannot rejoin the round.
|
||||
|
||||
var/respawn = 0
|
||||
var/guest_jobban = 1
|
||||
var/panic_bunker_threshold = 150 // above this player count threshold, never-before-seen players are blocked from connecting
|
||||
var/usewhitelist = 0
|
||||
var/automute_on = 0 //enables automuting/spam prevention
|
||||
var/round_abandon_penalty_period = 30 MINUTES // Time from round start during which ghosting out is penalized
|
||||
|
||||
var/reactionary_explosions = 0 //If we use reactionary explosions, explosions that react to walls and doors
|
||||
|
||||
var/ssd_warning = 0
|
||||
|
||||
var/list_afk_minimum = 5 // How long people have to be AFK before it's listed on the "List AFK players" verb
|
||||
|
||||
var/max_maint_drones = 5 //This many drones can spawn,
|
||||
var/allow_drone_spawn = 1 //assuming the admin allow them to.
|
||||
var/drone_build_time = 1200 //A drone will become available every X ticks since last drone spawn. Default is 2 minutes.
|
||||
|
||||
var/forbid_singulo_possession = 0
|
||||
|
||||
var/check_randomizer = 0
|
||||
|
||||
//game_options.txt configs
|
||||
|
||||
var/bones_can_break = 1
|
||||
|
||||
var/revival_pod_plants = 1
|
||||
var/revival_cloning = 1
|
||||
var/revival_brain_life = -1
|
||||
|
||||
var/auto_toggle_ooc_during_round = 0
|
||||
|
||||
var/shuttle_refuel_delay = 12000
|
||||
|
||||
var/ban_legacy_system = 0 //Defines whether the server uses the legacy banning system with the files in /data or the SQL system. Config option in config.txt
|
||||
|
||||
var/simultaneous_pm_warning_timeout = 100
|
||||
|
||||
var/ghost_interaction = 0
|
||||
|
||||
|
||||
var/default_laws = 0 //Controls what laws the AI spawns with.
|
||||
|
||||
var/starlight = 0 // Whether space turfs have ambient light or not
|
||||
var/allow_holidays = 0
|
||||
|
||||
var/ooc_allowed = 1
|
||||
var/looc_allowed = 1
|
||||
var/dooc_allowed = 1
|
||||
var/dsay_allowed = 1
|
||||
|
||||
var/disable_lobby_music = 0 // Disables the lobby music
|
||||
var/disable_cid_warn_popup = 0 //disables the annoying "You have already logged in this round, disconnect or be banned" popup, because it annoys the shit out of me when testing.
|
||||
|
||||
var/max_loadout_points = 5 // How many points can be spent on extra items in character setup
|
||||
|
||||
var/disable_ooc_emoji = 0 // prevents people from using emoji in OOC
|
||||
|
||||
var/disable_karma = 0 // Disable all karma functions and unlock karma jobs by default
|
||||
|
||||
// Nightshift
|
||||
var/randomize_shift_time = FALSE
|
||||
var/enable_night_shifts = FALSE
|
||||
|
||||
// Developer
|
||||
var/developer_express_start = 0
|
||||
|
||||
//Start now warning
|
||||
var/start_now_confirmation = 0
|
||||
|
||||
//cube monkey limit
|
||||
var/cubemonkeycap = 20
|
||||
|
||||
/// BYOND account age limit for notifcations of new accounts (Any accounts older than this value will not send notifications on first join)
|
||||
var/byond_account_age_threshold = 7
|
||||
|
||||
|
||||
/// Max amount of CIDs that one ckey can have attached to them before they trip a warning
|
||||
var/max_client_cid_history = 3
|
||||
|
||||
/// Enable auto profiler of rounds
|
||||
var/auto_profile = FALSE
|
||||
|
||||
/datum/configuration/proc/load(filename, type = "config") //the type can also be game_options, in which case it uses a different switch. not making it separate to not copypaste code - Urist
|
||||
if(IsAdminAdvancedProcCall())
|
||||
to_chat(usr, "<span class='boldannounce'>Config reload blocked: Advanced ProcCall detected.</span>")
|
||||
message_admins("[key_name(usr)] attempted to reload configuration via advanced proc-call")
|
||||
log_admin("[key_name(usr)] attempted to reload configuration via advanced proc-call")
|
||||
return
|
||||
var/list/Lines = file2list(filename)
|
||||
|
||||
for(var/t in Lines)
|
||||
if(!t) continue
|
||||
|
||||
t = trim(t)
|
||||
if(length(t) == 0)
|
||||
continue
|
||||
else if(copytext(t, 1, 2) == "#")
|
||||
continue
|
||||
|
||||
var/pos = findtext(t, " ")
|
||||
var/name = null
|
||||
var/value = null
|
||||
|
||||
if(pos)
|
||||
name = lowertext(copytext(t, 1, pos))
|
||||
value = copytext(t, pos + 1)
|
||||
else
|
||||
name = lowertext(t)
|
||||
|
||||
if(!name)
|
||||
continue
|
||||
|
||||
if(type == "config")
|
||||
switch(name)
|
||||
if("ban_legacy_system")
|
||||
config.ban_legacy_system = 1
|
||||
|
||||
if("ssd_warning")
|
||||
config.ssd_warning = 1
|
||||
|
||||
if("list_afk_minimum")
|
||||
config.list_afk_minimum = text2num(value)
|
||||
|
||||
if("pregame_timestart")
|
||||
config.pregame_timestart = text2num(value)
|
||||
|
||||
if("norespawn")
|
||||
config.respawn = 0
|
||||
|
||||
if("servername")
|
||||
config.server_name = value
|
||||
|
||||
if("server_tag_line")
|
||||
config.server_tag_line = value
|
||||
|
||||
if("server_extra_features")
|
||||
config.server_extra_features = value
|
||||
|
||||
if("serversuffix")
|
||||
config.server_suffix = 1
|
||||
|
||||
if("minimum_client_build")
|
||||
config.minimum_client_build = text2num(value)
|
||||
|
||||
if("guest_ban")
|
||||
#warn AA clear this up
|
||||
GLOB.guests_allowed = 0
|
||||
|
||||
if("panic_bunker_threshold")
|
||||
config.panic_bunker_threshold = text2num(value)
|
||||
|
||||
if("usewhitelist")
|
||||
config.usewhitelist = 1
|
||||
|
||||
if("allow_metadata")
|
||||
config.allow_Metadata = 1
|
||||
|
||||
if("forbid_singulo_possession")
|
||||
forbid_singulo_possession = 1
|
||||
|
||||
if("check_randomizer")
|
||||
check_randomizer = 1
|
||||
|
||||
if("popup_admin_pm")
|
||||
config.popup_admin_pm = 1
|
||||
|
||||
if("allow_holidays")
|
||||
config.allow_holidays = 1
|
||||
|
||||
if("allow_antag_hud")
|
||||
config.antag_hud_allowed = 1
|
||||
|
||||
if("antag_hud_restricted")
|
||||
config.antag_hud_restricted = 1
|
||||
|
||||
if("automute_on")
|
||||
automute_on = 1
|
||||
|
||||
if("ghost_interaction")
|
||||
config.ghost_interaction = 1
|
||||
|
||||
if("allow_drone_spawn")
|
||||
config.allow_drone_spawn = text2num(value)
|
||||
|
||||
if("drone_build_time")
|
||||
config.drone_build_time = text2num(value)
|
||||
|
||||
if("max_maint_drones")
|
||||
config.max_maint_drones = text2num(value)
|
||||
|
||||
if("starlight")
|
||||
config.starlight = 1
|
||||
|
||||
if("disable_lobby_music")
|
||||
config.disable_lobby_music = 1
|
||||
|
||||
if("disable_cid_warn_popup")
|
||||
config.disable_cid_warn_popup = 1
|
||||
|
||||
if("max_loadout_points")
|
||||
config.max_loadout_points = text2num(value)
|
||||
|
||||
if("round_abandon_penalty_period")
|
||||
config.round_abandon_penalty_period = text2num(value) MINUTES
|
||||
|
||||
if("disable_ooc_emoji")
|
||||
config.disable_ooc_emoji = 1
|
||||
|
||||
if("disable_karma")
|
||||
config.disable_karma = 1
|
||||
|
||||
if("start_now_confirmation")
|
||||
config.start_now_confirmation = 1
|
||||
|
||||
if("developer_express_start")
|
||||
config.developer_express_start = 1
|
||||
if("byond_account_age_threshold")
|
||||
config.byond_account_age_threshold = text2num(value)
|
||||
|
||||
if("max_client_cid_history")
|
||||
max_client_cid_history = text2num(value)
|
||||
if("enable_auto_profiler")
|
||||
auto_profile = TRUE
|
||||
else
|
||||
log_config("Unknown setting in configuration: '[name]'")
|
||||
|
||||
|
||||
else if(type == "game_options")
|
||||
value = text2num(value)
|
||||
|
||||
switch(name)
|
||||
if("revival_pod_plants")
|
||||
config.revival_pod_plants = value
|
||||
if("revival_cloning")
|
||||
config.revival_cloning = value
|
||||
if("revival_brain_life")
|
||||
config.revival_brain_life = value
|
||||
if("auto_toggle_ooc_during_round")
|
||||
config.auto_toggle_ooc_during_round = 1
|
||||
if("bones_can_break")
|
||||
config.bones_can_break = value
|
||||
if("shuttle_refuel_delay")
|
||||
config.shuttle_refuel_delay = text2num(value)
|
||||
if("reactionary_explosions")
|
||||
config.reactionary_explosions = 1
|
||||
if("bombcap")
|
||||
var/BombCap = text2num(value)
|
||||
if(!BombCap)
|
||||
continue
|
||||
if(BombCap < 4)
|
||||
BombCap = 4
|
||||
if(BombCap > 128)
|
||||
BombCap = 128
|
||||
|
||||
#warn AA clear this up
|
||||
GLOB.max_ex_devastation_range = round(BombCap/4)
|
||||
GLOB.max_ex_heavy_range = round(BombCap/2)
|
||||
GLOB.max_ex_light_range = BombCap
|
||||
GLOB.max_ex_flash_range = BombCap
|
||||
GLOB.max_ex_flame_range = BombCap
|
||||
if("default_laws")
|
||||
config.default_laws = text2num(value)
|
||||
if("randomize_shift_time")
|
||||
config.randomize_shift_time = TRUE
|
||||
if("enable_night_shifts")
|
||||
config.enable_night_shifts = TRUE
|
||||
if("cubemonkey_cap")
|
||||
config.cubemonkeycap = text2num(value)
|
||||
else
|
||||
log_config("Unknown setting in configuration: '[name]'")
|
||||
|
||||
@@ -21,6 +21,8 @@ GLOBAL_DATUM_INIT(configuration, /datum/server_configuration, new())
|
||||
var/datum/configuration_section/gamemode_configuration/gamemode
|
||||
/// Holder for the gateway configuration datum
|
||||
var/datum/configuration_section/gateway_configuration/gateway
|
||||
/// Holder for the general configuration datum
|
||||
var/datum/configuration_section/general_configuration/general
|
||||
/// Holder for the IPIntel configuration datum
|
||||
var/datum/configuration_section/ipintel_configuration/ipintel
|
||||
/// Holder for the job configuration datum
|
||||
@@ -63,6 +65,7 @@ GLOBAL_DATUM_INIT(configuration, /datum/server_configuration, new())
|
||||
event = new()
|
||||
gamemode = new()
|
||||
gateway = new()
|
||||
general = new()
|
||||
ipintel = new()
|
||||
jobs = new()
|
||||
logging = new()
|
||||
@@ -90,6 +93,7 @@ GLOBAL_DATUM_INIT(configuration, /datum/server_configuration, new())
|
||||
event.load_data(raw_config_data["event_configuration"])
|
||||
gamemode.load_data(raw_config_data["gamemode_configuration"])
|
||||
gateway.load_data(raw_config_data["gateway_configuration"])
|
||||
general.load_data(raw_config_data["general_configuration"])
|
||||
ipintel.load_data(raw_config_data["ipintel_configuration"])
|
||||
jobs.load_data(raw_config_data["job_configuration"])
|
||||
logging.load_data(raw_config_data["logging_configuration"])
|
||||
@@ -103,7 +107,6 @@ GLOBAL_DATUM_INIT(configuration, /datum/server_configuration, new())
|
||||
|
||||
// And report the load
|
||||
DIRECT_OUTPUT(world.log, "Config loaded in [stop_watch(start)]s")
|
||||
pass() // Breakpoint here. If I left thing in, scream at me.
|
||||
|
||||
|
||||
/datum/configuration_section
|
||||
|
||||
@@ -14,9 +14,9 @@
|
||||
/// SQL password
|
||||
var/password = "root" // Dont do this in prod. Please......
|
||||
/// Database name
|
||||
var/db = "feedback" // TODO: Rename to paradise_gamedb
|
||||
var/db = "feedback" // AA TODO: Rename to paradise_gamedb
|
||||
/// Table prefix
|
||||
var/table_prefix = "erro_" // TODO: Remove table prefixes
|
||||
var/table_prefix = "erro_" // AA TODO: Remove table prefixes
|
||||
/// Time in seconds for async queries to time out
|
||||
var/async_query_timeout = 10
|
||||
/// Thread limit for async queries
|
||||
|
||||
@@ -0,0 +1,137 @@
|
||||
/// Config holder for all general/misc things
|
||||
/datum/configuration_section/general_configuration
|
||||
/// Server name for the BYOND hub
|
||||
var/server_name = "Paradise Station"
|
||||
/// Tagline for the hub entry
|
||||
var/server_tag_line = "The perfect mix of RP & action"
|
||||
/// Server features in a newline
|
||||
var/server_features = "Medium RP, varied species/jobs"
|
||||
/// Should bans be stored in the DB
|
||||
var/use_database_bans = FALSE
|
||||
/// Allow character OOC notes
|
||||
var/allow_character_metadata = TRUE
|
||||
/// Time in seconds for the pregame lobby
|
||||
var/lobby_time = 240
|
||||
/// Ban all Guest BYOND accounts
|
||||
var/guest_ban = TRUE
|
||||
/// Player threshold to automatically enable panic bunker
|
||||
var/panic_bunker_threshold = 150
|
||||
/// Allow players to use AntagHUD?
|
||||
var/allow_antag_hud = TRUE
|
||||
/// Forbid players from rejoining if they use AntagHUD?
|
||||
var/restrict_antag_hud_rejoin = TRUE
|
||||
/// Enable respanws by default?
|
||||
var/respawn_enabled = FALSE
|
||||
/// Enable karma? Disable to lockout awarding and unlock everything
|
||||
var/enable_karma = TRUE
|
||||
/// Enable CID randomiser buster?
|
||||
var/enabled_cid_randomiser_buster = FALSE
|
||||
/// Forbid admins from posessing and flying the singulo round
|
||||
var/forbid_singulo_possession = FALSE
|
||||
/// Force open a PM window when replied to? This is very annoying
|
||||
var/popup_admin_pm = FALSE
|
||||
/// Announce holidays (christmas, halloween, etc etc)
|
||||
var/allow_holidays = TRUE
|
||||
/// Enable auto muting in all chat channels
|
||||
var/enable_auto_mute = FALSE
|
||||
/// Show a warning to players to make them accept touching an SSD
|
||||
var/ssd_warning = TRUE
|
||||
/// Allow ghosts to spin chairs round
|
||||
var/ghost_interaction = FALSE
|
||||
/// Enable/disable starlight to light up space
|
||||
var/starlight = TRUE
|
||||
/// Disable lobby music?
|
||||
var/disable_lobby_music = FALSE
|
||||
/// Disable a popup if 2 users are on the same CID?
|
||||
var/disable_cid_warning_popup = FALSE
|
||||
/// Amount of loadout points non-donors should get
|
||||
var/base_loadout_points = 5
|
||||
/// Respawnability loss penalty for eary cryoing (minutes)
|
||||
var/cryo_penalty_period = 30
|
||||
/// Enable OOC emojis?
|
||||
var/enable_ooc_emoji = TRUE
|
||||
/// Auto start the game if on a local test server
|
||||
var/developer_express_start = FALSE
|
||||
/// Minimum client build. Keep above 1421 due to exploits
|
||||
var/minimum_client_build = 1421
|
||||
/// Give a confirm button for the "Start Now" verb
|
||||
var/start_now_confirmation = TRUE
|
||||
/// BYOND account age threshold for first join alerts
|
||||
var/byond_account_age_threshold = 3
|
||||
/// Max CIDs a client can have history of before a warning is thrown
|
||||
var/max_client_cid_history = 20
|
||||
/// Enable automatic profiling to profile.json
|
||||
var/enable_auto_profiler = TRUE
|
||||
/// Auto disable OOC on roundstart?
|
||||
var/auto_disable_ooc = TRUE
|
||||
/// Do we want to allow bones to break?
|
||||
var/breakable_bones = TRUE
|
||||
/// Enable/disable revival pod plants
|
||||
var/enable_revival_pod_plants = TRUE
|
||||
/// Enable/disable cloning
|
||||
var/enable_cloning = TRUE
|
||||
/// Randomise shift time instead of it always being 12:00?
|
||||
var/randomise_shift_time = TRUE
|
||||
/// Enable night-shift lighting?
|
||||
var/enable_night_shifts = TRUE
|
||||
/// Cap for monkey cube monkey spawns
|
||||
var/monkey_cube_cap = 32
|
||||
/// Enable to make explosions react to obstacles instead of ignoring them
|
||||
var/reactionary_explosions = TRUE
|
||||
/// Bomb cap (Devastation) Other values will be calculated around this
|
||||
var/bomb_cap = 20
|
||||
/// Time for a brain to keep its spark of life (deciseconds)
|
||||
var/revival_brain_life = 10 MINUTES
|
||||
/// Enable random AI lawsets from the default=TRUE pool
|
||||
var/random_ai_lawset = TRUE
|
||||
|
||||
/datum/configuration_section/general_configuration/load_data(list/data)
|
||||
// Use the load wrappers here. That way the default isnt made 'null' if you comment out the config line
|
||||
|
||||
// A lot of bools
|
||||
CONFIG_LOAD_BOOL(use_database_bans, data["use_database_bans"])
|
||||
CONFIG_LOAD_BOOL(allow_character_metadata, data["allow_character_metadata"])
|
||||
CONFIG_LOAD_BOOL(guest_ban, data["guest_ban"])
|
||||
CONFIG_LOAD_BOOL(allow_antag_hud, data["allow_antag_hud"])
|
||||
CONFIG_LOAD_BOOL(restrict_antag_hud_rejoin, data["restrict_antag_hud_rejoin"])
|
||||
CONFIG_LOAD_BOOL(respawn_enabled, data["respawn_enabled"])
|
||||
CONFIG_LOAD_BOOL(enable_karma, data["enable_karma"])
|
||||
CONFIG_LOAD_BOOL(enabled_cid_randomiser_buster, data["enable_cid_randomiser_buster"])
|
||||
CONFIG_LOAD_BOOL(forbid_singulo_possession, data["prevent_admin_singlo_possession"])
|
||||
CONFIG_LOAD_BOOL(popup_admin_pm, data["popup_admin_pm"])
|
||||
CONFIG_LOAD_BOOL(allow_holidays, data["allow_holidays"])
|
||||
CONFIG_LOAD_BOOL(enable_auto_mute, data["enable_auto_mute"])
|
||||
CONFIG_LOAD_BOOL(ssd_warning, data["ssd_warning"])
|
||||
CONFIG_LOAD_BOOL(ghost_interaction, data["ghost_interaction"])
|
||||
CONFIG_LOAD_BOOL(starlight, data["starlight"])
|
||||
CONFIG_LOAD_BOOL(disable_lobby_music, data["disable_lobby_music"])
|
||||
CONFIG_LOAD_BOOL(disable_cid_warning_popup, data["disable_cid_warning_popup"])
|
||||
CONFIG_LOAD_BOOL(enable_ooc_emoji, data["enable_ooc_emoji"])
|
||||
CONFIG_LOAD_BOOL(developer_express_start, data["developer_express_start"])
|
||||
CONFIG_LOAD_BOOL(start_now_confirmation, data["start_now_confirmation"])
|
||||
CONFIG_LOAD_BOOL(enable_auto_profiler, data["enable_auto_profiler"])
|
||||
CONFIG_LOAD_BOOL(auto_disable_ooc, data["auto_disable_ooc"])
|
||||
CONFIG_LOAD_BOOL(breakable_bones, data["breakable_bones"])
|
||||
CONFIG_LOAD_BOOL(enable_revival_pod_plants, data["enable_revival_pod_plants"])
|
||||
CONFIG_LOAD_BOOL(enable_cloning, data["enable_cloning"])
|
||||
CONFIG_LOAD_BOOL(randomise_shift_time, data["randomise_shift_time"])
|
||||
CONFIG_LOAD_BOOL(enable_night_shifts, data["enable_night_shifts"])
|
||||
CONFIG_LOAD_BOOL(reactionary_explosions, data["reactionary_explosions"])
|
||||
CONFIG_LOAD_BOOL(random_ai_lawset, data["random_ai_lawset"])
|
||||
|
||||
// Numbers
|
||||
CONFIG_LOAD_NUM(lobby_time, data["lobby_time"])
|
||||
CONFIG_LOAD_NUM(panic_bunker_threshold, data["panic_bunker_threshold"])
|
||||
CONFIG_LOAD_NUM(base_loadout_points, data["base_loadout_points"])
|
||||
CONFIG_LOAD_NUM(cryo_penalty_period, data["cryo_penalty_period"])
|
||||
CONFIG_LOAD_NUM(minimum_client_build, data["minimum_client_build"])
|
||||
CONFIG_LOAD_NUM(byond_account_age_threshold, data["byond_account_age_threshold"])
|
||||
CONFIG_LOAD_NUM(max_client_cid_history, data["max_client_cid_history"])
|
||||
CONFIG_LOAD_NUM(monkey_cube_cap, data["monkey_cube_cap"])
|
||||
CONFIG_LOAD_NUM(bomb_cap, data["bomb_cap"])
|
||||
CONFIG_LOAD_NUM(revival_brain_life, data["revival_brain_life"])
|
||||
|
||||
// Strings
|
||||
CONFIG_LOAD_STR(server_name, data["server_name"])
|
||||
CONFIG_LOAD_STR(server_tag_line, data["server_tag_line"])
|
||||
CONFIG_LOAD_STR(server_features, data["server_features"])
|
||||
@@ -206,8 +206,8 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
|
||||
|
||||
log_startup_progress("Initializations complete within [time] second[time == 1 ? "" : "s"]!")
|
||||
|
||||
if(config.developer_express_start & SSticker.current_state == GAME_STATE_PREGAME)
|
||||
SSticker.current_state = GAME_STATE_SETTING_UP
|
||||
if(GLOB.configuration.general.developer_express_start)
|
||||
SSticker.force_start = TRUE
|
||||
|
||||
if(!current_runlevel)
|
||||
SetRunLevel(1)
|
||||
|
||||
@@ -266,11 +266,11 @@ SUBSYSTEM_DEF(changelog)
|
||||
usr.client.github()
|
||||
// Takes a PR number as argument
|
||||
if(href_list["openPR"])
|
||||
if(GLOB?.configuration?.url.github_url)
|
||||
if(GLOB.configuration.url.github_url)
|
||||
if(alert("This will open PR #[href_list["openPR"]] in your browser. Are you sure?",,"Yes","No")=="No")
|
||||
return
|
||||
// If the github URL in the config has a trailing slash, it doesnt matter here, thankfully github accepts having a double slash: https://github.com/org/repo//pull/1
|
||||
var/url = "[GLOB?.configuration?.url.github_url]/pull/[href_list["openPR"]]"
|
||||
var/url = "[GLOB.configuration.url.github_url]/pull/[href_list["openPR"]]"
|
||||
usr << link(url)
|
||||
else
|
||||
to_chat(usr, "<span class='danger'>The GitHub URL is not set in the server configuration. PRs cannot be opened from changelog view. Please inform the server host.</span>")
|
||||
|
||||
@@ -5,7 +5,7 @@ SUBSYSTEM_DEF(holiday)
|
||||
var/list/holidays
|
||||
|
||||
/datum/controller/subsystem/holiday/Initialize(start_timeofday)
|
||||
if(!config.allow_holidays)
|
||||
if(!GLOB.configuration.general.allow_holidays)
|
||||
return ..() //Holiday stuff was not enabled in the config!
|
||||
|
||||
var/YY = text2num(time2text(world.timeofday, "YY")) // get the current year
|
||||
|
||||
@@ -13,7 +13,7 @@ SUBSYSTEM_DEF(lighting)
|
||||
|
||||
/datum/controller/subsystem/lighting/Initialize(timeofday)
|
||||
if(!initialized)
|
||||
if(config.starlight)
|
||||
if(GLOB.configuration.general.starlight)
|
||||
for(var/I in GLOB.all_areas)
|
||||
var/area/A = I
|
||||
if(A.dynamic_lighting == DYNAMIC_LIGHTING_IFSTARLIGHT)
|
||||
|
||||
@@ -70,8 +70,8 @@ SUBSYSTEM_DEF(mapping)
|
||||
GLOB.map_name = "Unknown"
|
||||
|
||||
// World name
|
||||
if(config && config.server_name)
|
||||
world.name = "[config.server_name]: [station_name()]"
|
||||
if(GLOB.configuration.general.server_name)
|
||||
world.name = "[GLOB.configuration.general.server_name]: [station_name()]"
|
||||
else
|
||||
world.name = station_name()
|
||||
|
||||
|
||||
@@ -14,9 +14,9 @@ SUBSYSTEM_DEF(nightshift)
|
||||
var/high_security_mode = FALSE
|
||||
|
||||
/datum/controller/subsystem/nightshift/Initialize()
|
||||
if(!config.enable_night_shifts)
|
||||
if(!GLOB.configuration.general.enable_night_shifts)
|
||||
can_fire = FALSE
|
||||
if(config.randomize_shift_time)
|
||||
if(GLOB.configuration.general.randomise_shift_time)
|
||||
GLOB.gametime_offset = rand(0, 23) HOURS
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ SUBSYSTEM_DEF(profiler)
|
||||
..("F:[round(fetch_cost, 1)]ms | W:[round(write_cost, 1)]ms")
|
||||
|
||||
/datum/controller/subsystem/profiler/Initialize()
|
||||
if(!config.auto_profile)
|
||||
if(!GLOB.configuration.general.enable_auto_profiler)
|
||||
StopProfiling() //Stop the early start profiler if we dont want it on in the config
|
||||
flags |= SS_NO_FIRE
|
||||
return ..()
|
||||
@@ -22,7 +22,7 @@ SUBSYSTEM_DEF(profiler)
|
||||
DumpFile()
|
||||
|
||||
/datum/controller/subsystem/profiler/Shutdown()
|
||||
if(config.auto_profile)
|
||||
if(GLOB.configuration.general.enable_auto_profiler)
|
||||
DumpFile()
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
#define CALL_SHUTTLE_REASON_LENGTH 12
|
||||
/// Time elapsed from roundstart before shuttle calls are allowed
|
||||
#define SHUTTLE_REFUEL_DELAY 20 MINUTES
|
||||
|
||||
SUBSYSTEM_DEF(shuttle)
|
||||
name = "Shuttle"
|
||||
@@ -42,6 +44,8 @@ SUBSYSTEM_DEF(shuttle)
|
||||
var/sold_atoms = ""
|
||||
var/list/hidden_shuttle_turfs = list() //all turfs hidden from navigation computers associated with a list containing the image hiding them and the type of the turf they are pretending to be
|
||||
var/list/hidden_shuttle_turf_images = list() //only the images from the above list
|
||||
/// Default refuel delay
|
||||
var/refuel_delay = SHUTTLE_REFUEL_DELAY
|
||||
|
||||
/datum/controller/subsystem/shuttle/Initialize(start_timeofday)
|
||||
ordernum = rand(1,9000)
|
||||
@@ -97,7 +101,7 @@ SUBSYSTEM_DEF(shuttle)
|
||||
|
||||
/datum/controller/subsystem/shuttle/proc/secondsToRefuel()
|
||||
var/elapsed = world.time - SSticker.round_start_time
|
||||
var/remaining = round((config.shuttle_refuel_delay - elapsed) / 10)
|
||||
var/remaining = round((refuel_delay - elapsed) / 10)
|
||||
return remaining > 0 ? remaining : 0
|
||||
|
||||
/datum/controller/subsystem/shuttle/proc/requestEvac(mob/user, call_reason)
|
||||
@@ -115,7 +119,7 @@ SUBSYSTEM_DEF(shuttle)
|
||||
emergency = backup_shuttle
|
||||
|
||||
if(secondsToRefuel())
|
||||
to_chat(user, "The emergency shuttle is refueling. Please wait another [abs(round(((world.time - SSticker.round_start_time) - config.shuttle_refuel_delay)/600))] minutes before trying again.")
|
||||
to_chat(user, "The emergency shuttle is refueling. Please wait another [abs(round(((world.time - SSticker.round_start_time) - refuel_delay)/600))] minutes before trying again.")
|
||||
return
|
||||
|
||||
switch(emergency.mode)
|
||||
|
||||
@@ -77,9 +77,9 @@ SUBSYSTEM_DEF(ticker)
|
||||
switch(current_state)
|
||||
if(GAME_STATE_STARTUP)
|
||||
// This is ran as soon as the MC starts firing, and should only run ONCE, unless startup fails
|
||||
round_start_time = world.time + (config.pregame_timestart * 10)
|
||||
round_start_time = world.time + (GLOB.configuration.general.lobby_time * 10)
|
||||
to_chat(world, "<B><span class='darkmblue'>Welcome to the pre-game lobby!</span></B>")
|
||||
to_chat(world, "Please, setup your character and select ready. Game will start in [config.pregame_timestart] seconds")
|
||||
to_chat(world, "Please, setup your character and select ready. Game will start in [GLOB.configuration.general.lobby_time] seconds")
|
||||
current_state = GAME_STATE_PREGAME
|
||||
fire() // TG says this is a good idea
|
||||
for(var/mob/new_player/N in GLOB.player_list)
|
||||
@@ -280,6 +280,8 @@ SUBSYSTEM_DEF(ticker)
|
||||
else
|
||||
log_debug("Playercount: [playercount] versus trigger: [highpop_trigger] - keeping standard job config")
|
||||
|
||||
SSnightshift.check_nightshift()
|
||||
|
||||
#ifdef UNIT_TESTS
|
||||
RunUnitTests()
|
||||
#endif
|
||||
|
||||
@@ -220,10 +220,10 @@ SUBSYSTEM_DEF(tickets)
|
||||
"Man Up" = "Man Up",
|
||||
)
|
||||
|
||||
if(GLOB?.configuration?.url.banappeals_url)
|
||||
if(GLOB.configuration.url.banappeals_url)
|
||||
response_phrases["Appeal on the Forums"] = "Appealing a ban must occur on the forums. Privately messaging, or adminhelping about your ban will not resolve it. To appeal your ban, please head to <a href='[GLOB.configuration.url.banappeals_url]'>[GLOB.configuration.url.banappeals_url]</a>"
|
||||
|
||||
if(GLOB?.configuration?.url.github_url)
|
||||
if(GLOB.configuration.url.github_url)
|
||||
response_phrases["Github Issue Report"] = "To report a bug, please go to our <a href='[GLOB.configuration.url.github_url]'>Github page</a>. Then go to 'Issues'. Then 'New Issue'. Then fill out the report form. If the report would reveal current-round information, file it after the round ends."
|
||||
|
||||
var/sorted_responses = list()
|
||||
|
||||
@@ -53,9 +53,9 @@ SUBSYSTEM_DEF(vote)
|
||||
voting.Cut()
|
||||
current_votes.Cut()
|
||||
|
||||
if(auto_muted && !config.ooc_allowed && !(config.auto_toggle_ooc_during_round && SSticker.current_state == GAME_STATE_PLAYING))
|
||||
if(auto_muted && !GLOB.ooc_enabled && !(GLOB.configuration.general.auto_disable_ooc && SSticker.current_state == GAME_STATE_PLAYING))
|
||||
auto_muted = 0
|
||||
config.ooc_allowed = !( config.ooc_allowed )
|
||||
GLOB.ooc_enabled = TRUE
|
||||
to_chat(world, "<b>The OOC channel has been automatically enabled due to vote end.</b>")
|
||||
log_admin("OOC was toggled automatically due to vote end.")
|
||||
message_admins("OOC has been toggled on automatically.")
|
||||
@@ -257,21 +257,21 @@ SUBSYSTEM_DEF(vote)
|
||||
if(mode == "gamemode" && SSticker.ticker_going)
|
||||
SSticker.ticker_going = FALSE
|
||||
to_chat(world, "<font color='red'><b>Round start has been delayed.</b></font>")
|
||||
if(mode == "crew_transfer" && config.ooc_allowed)
|
||||
auto_muted = 1
|
||||
config.ooc_allowed = !( config.ooc_allowed )
|
||||
if(mode == "crew_transfer" && GLOB.ooc_enabled)
|
||||
auto_muted = TRUE
|
||||
GLOB.ooc_enabled = FALSE
|
||||
to_chat(world, "<b>The OOC channel has been automatically disabled due to a crew transfer vote.</b>")
|
||||
log_admin("OOC was toggled automatically due to crew_transfer vote.")
|
||||
message_admins("OOC has been toggled off automatically.")
|
||||
if(mode == "gamemode" && config.ooc_allowed)
|
||||
auto_muted = 1
|
||||
config.ooc_allowed = !( config.ooc_allowed )
|
||||
if(mode == "gamemode" && GLOB.ooc_enabled)
|
||||
auto_muted = TRUE
|
||||
GLOB.ooc_enabled = FALSE
|
||||
to_chat(world, "<b>The OOC channel has been automatically disabled due to the gamemode vote.</b>")
|
||||
log_admin("OOC was toggled automatically due to gamemode vote.")
|
||||
message_admins("OOC has been toggled off automatically.")
|
||||
if(mode == "custom" && config.ooc_allowed)
|
||||
auto_muted = 1
|
||||
config.ooc_allowed = !( config.ooc_allowed )
|
||||
if(mode == "custom" && GLOB.ooc_enabled)
|
||||
auto_muted = TRUE
|
||||
GLOB.ooc_enabled = FALSE
|
||||
to_chat(world, "<b>The OOC channel has been automatically disabled due to a custom vote.</b>")
|
||||
log_admin("OOC was toggled automatically due to custom vote.")
|
||||
message_admins("OOC has been toggled off automatically.")
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
return
|
||||
switch(controller)
|
||||
if("Configuration")
|
||||
debug_variables(config)
|
||||
debug_variables(GLOB.configuration)
|
||||
SSblackbox.record_feedback("tally", "admin_verb", 1, "Debug Config")
|
||||
if("pAI")
|
||||
debug_variables(GLOB.paiController)
|
||||
|
||||
Reference in New Issue
Block a user