Files
crystall-punk-14/Content.Shared/CCVar/CCVars.cs

2392 lines
107 KiB
C#
Raw Normal View History

using Content.Shared.Maps;
using Content.Shared.Roles;
2021-01-05 13:00:12 -08:00
using Robust.Shared;
using Robust.Shared.Configuration;
using Robust.Shared.Physics.Components;
namespace Content.Shared.CCVar
{
// ReSharper disable once InconsistentNaming
[CVarDefs]
public sealed class CCVars : CVars
{
/*
* Server
*/
/// <summary>
/// Change this to have the changelog and rules "last seen" date stored separately.
/// </summary>
public static readonly CVarDef<string> ServerId =
CVarDef.Create("server.id", "unknown_server_id", CVar.REPLICATED | CVar.SERVER);
/// <summary>
/// Guide Entry Prototype ID to be displayed as the server rules.
/// </summary>
public static readonly CVarDef<string> RulesFile =
CVarDef.Create("server.rules_file", "DefaultRuleset", CVar.REPLICATED | CVar.SERVER);
/// <summary>
/// Guide entry that is displayed by default when a guide is opened.
/// </summary>
public static readonly CVarDef<string> DefaultGuide =
CVarDef.Create("server.default_guide", "NewPlayer", CVar.REPLICATED | CVar.SERVER);
/// <summary>
/// If greater than 0, automatically restart the server after this many minutes of uptime.
/// </summary>
/// <remarks>
/// <para>
/// This is intended to work around various bugs and performance issues caused by long continuous server uptime.
/// </para>
/// <para>
/// This uses the same non-disruptive logic as update restarts,
/// i.e. the game will only restart at round end or when there is nobody connected.
/// </para>
/// </remarks>
public static readonly CVarDef<int> ServerUptimeRestartMinutes =
CVarDef.Create("server.uptime_restart_minutes", 0, CVar.SERVERONLY);
/*
* Ambience
*/
/// <summary>
/// How long we'll wait until re-sampling nearby objects for ambience. Should be pretty fast, but doesn't have to match the tick rate.
/// </summary>
public static readonly CVarDef<float> AmbientCooldown =
CVarDef.Create("ambience.cooldown", 0.1f, CVar.ARCHIVE | CVar.CLIENTONLY);
/// <summary>
/// How large of a range to sample for ambience.
/// </summary>
public static readonly CVarDef<float> AmbientRange =
CVarDef.Create("ambience.range", 8f, CVar.REPLICATED | CVar.SERVER);
/// <summary>
/// Maximum simultaneous ambient sounds.
/// </summary>
public static readonly CVarDef<int> MaxAmbientSources =
CVarDef.Create("ambience.max_sounds", 16, CVar.ARCHIVE | CVar.CLIENTONLY);
/// <summary>
/// The minimum value the user can set for ambience.max_sounds
/// </summary>
public static readonly CVarDef<int> MinMaxAmbientSourcesConfigured =
CVarDef.Create("ambience.min_max_sounds_configured", 16, CVar.REPLICATED | CVar.SERVER | CVar.CHEAT);
/// <summary>
/// The maximum value the user can set for ambience.max_sounds
/// </summary>
public static readonly CVarDef<int> MaxMaxAmbientSourcesConfigured =
CVarDef.Create("ambience.max_max_sounds_configured", 64, CVar.REPLICATED | CVar.SERVER | CVar.CHEAT);
/// <summary>
/// Ambience volume.
/// </summary>
public static readonly CVarDef<float> AmbienceVolume =
CVarDef.Create("ambience.volume", 1.5f, CVar.ARCHIVE | CVar.CLIENTONLY);
2022-11-04 00:15:37 +00:00
/// <summary>
2023-05-29 10:44:11 +10:00
/// Ambience music volume.
/// </summary>
2023-05-29 10:44:11 +10:00
public static readonly CVarDef<float> AmbientMusicVolume =
CVarDef.Create("ambience.music_volume", 1.5f, CVar.ARCHIVE | CVar.CLIENTONLY);
/// <summary>
2023-05-29 10:44:11 +10:00
/// Lobby / round end music volume.
/// </summary>
2023-05-29 10:44:11 +10:00
public static readonly CVarDef<float> LobbyMusicVolume =
CVarDef.Create("ambience.lobby_music_volume", 0.50f, CVar.ARCHIVE | CVar.CLIENTONLY);
/// <summary>
/// UI volume.
/// </summary>
public static readonly CVarDef<float> InterfaceVolume =
CVarDef.Create("audio.interface_volume", 0.50f, CVar.ARCHIVE | CVar.CLIENTONLY);
/*
* Status
*/
public static readonly CVarDef<string> StatusMoMMIUrl =
CVarDef.Create("status.mommiurl", "", CVar.SERVERONLY);
public static readonly CVarDef<string> StatusMoMMIPassword =
CVarDef.Create("status.mommipassword", "", CVar.SERVERONLY | CVar.CONFIDENTIAL);
/*
* Events
*/
/// <summary>
/// Controls if the game should run station events
/// </summary>
public static readonly CVarDef<bool>
EventsEnabled = CVarDef.Create("events.enabled", true, CVar.ARCHIVE | CVar.SERVERONLY);
/*
* Game
*/
/// <summary>
/// Disables most functionality in the GameTicker.
/// </summary>
public static readonly CVarDef<bool>
GameDummyTicker = CVarDef.Create("game.dummyticker", false, CVar.ARCHIVE | CVar.SERVERONLY);
/// <summary>
/// Controls if the lobby is enabled. If it is not, and there are no available jobs, you may get stuck on a black screen.
/// </summary>
public static readonly CVarDef<bool>
2022-12-16 23:26:24 +01:00
GameLobbyEnabled = CVarDef.Create("game.lobbyenabled", true, CVar.ARCHIVE);
/// <summary>
/// Controls the duration of the lobby timer in seconds. Defaults to 2 minutes and 30 seconds.
/// </summary>
public static readonly CVarDef<int>
GameLobbyDuration = CVarDef.Create("game.lobbyduration", 150, CVar.ARCHIVE);
/// <summary>
/// Controls if players can latejoin at all.
/// </summary>
public static readonly CVarDef<bool>
GameDisallowLateJoins = CVarDef.Create("game.disallowlatejoins", false, CVar.ARCHIVE | CVar.SERVERONLY);
/// <summary>
/// Controls the default game preset.
/// </summary>
public static readonly CVarDef<string>
GameLobbyDefaultPreset = CVarDef.Create("game.defaultpreset", "secret", CVar.ARCHIVE);
/// <summary>
/// Controls if the game can force a different preset if the current preset's criteria are not met.
/// </summary>
2020-10-17 13:39:23 +02:00
public static readonly CVarDef<bool>
GameLobbyFallbackEnabled = CVarDef.Create("game.fallbackenabled", true, CVar.ARCHIVE);
/// <summary>
/// The preset for the game to fall back to if the selected preset could not be used, and fallback is enabled.
/// </summary>
public static readonly CVarDef<string>
GameLobbyFallbackPreset = CVarDef.Create("game.fallbackpreset", "Traitor,Extended", CVar.ARCHIVE);
/// <summary>
/// Controls if people can win the game in Suspicion or Deathmatch.
/// </summary>
public static readonly CVarDef<bool>
GameLobbyEnableWin = CVarDef.Create("game.enablewin", true, CVar.ARCHIVE);
/// <summary>
/// Controls the maximum number of character slots a player is allowed to have.
/// </summary>
public static readonly CVarDef<int>
GameMaxCharacterSlots = CVarDef.Create("game.maxcharacterslots", 30, CVar.ARCHIVE | CVar.SERVERONLY);
/// <summary>
/// Controls the game map prototype to load. SS14 stores these prototypes in Prototypes/Maps.
/// </summary>
2020-11-15 04:08:58 +01:00
public static readonly CVarDef<string>
GameMap = CVarDef.Create("game.map", string.Empty, CVar.SERVERONLY);
/// <summary>
/// Controls whether to use world persistence or not.
/// </summary>
public static readonly CVarDef<bool>
UsePersistence = CVarDef.Create("game.usepersistence", false, CVar.ARCHIVE);
/// <summary>
/// If world persistence is used, what map prototype should be initially loaded.
/// If the save file exists, it replaces MapPath but everything else stays the same (station name and such).
/// </summary>
public static readonly CVarDef<string>
PersistenceMap = CVarDef.Create("game.persistencemap", "Empty", CVar.ARCHIVE);
/// <summary>
/// Prototype to use for map pool.
/// </summary>
public static readonly CVarDef<string>
GameMapPool = CVarDef.Create("game.map_pool", "DefaultMapPool", CVar.SERVERONLY); //CrystallEdge mapPool
/// <summary>
/// The depth of the queue used to calculate which map is next in rotation.
/// This is how long the game "remembers" that some map was put in play. Default is 16 rounds.
/// </summary>
public static readonly CVarDef<int>
GameMapMemoryDepth = CVarDef.Create("game.map_memory_depth", 16, CVar.SERVERONLY);
/// <summary>
/// Is map rotation enabled?
/// </summary>
public static readonly CVarDef<bool>
GameMapRotation = CVarDef.Create("game.map_rotation", true, CVar.SERVERONLY);
/// <summary>
/// If roles should be restricted based on time.
/// </summary>
public static readonly CVarDef<bool>
GameRoleTimers = CVarDef.Create("game.role_timers", true, CVar.SERVER | CVar.REPLICATED);
/// <summary>
/// Override default role requirements using a <see cref="JobRequirementOverridePrototype"/>
/// </summary>
public static readonly CVarDef<string>
GameRoleTimerOverride = CVarDef.Create("game.role_timer_override", "", CVar.SERVER | CVar.REPLICATED);
/// <summary>
/// If roles should be restricted based on whether or not they are whitelisted.
/// </summary>
public static readonly CVarDef<bool>
GameRoleWhitelist = CVarDef.Create("game.role_whitelist", true, CVar.SERVER | CVar.REPLICATED);
/// <summary>
/// Whether or not disconnecting inside of a cryopod should remove the character or just store them until they reconnect.
/// </summary>
public static readonly CVarDef<bool>
GameCryoSleepRejoining = CVarDef.Create("game.cryo_sleep_rejoining", false, CVar.SERVER | CVar.REPLICATED);
/// <summary>
/// When enabled, guests will be assigned permanent UIDs and will have their preferences stored.
/// </summary>
public static readonly CVarDef<bool> GamePersistGuests =
CVarDef.Create("game.persistguests", true, CVar.ARCHIVE | CVar.SERVERONLY);
public static readonly CVarDef<bool> GameDiagonalMovement =
CVarDef.Create("game.diagonalmovement", true, CVar.ARCHIVE);
public static readonly CVarDef<int> SoftMaxPlayers =
CVarDef.Create("game.soft_max_players", 30, CVar.SERVERONLY | CVar.ARCHIVE);
/// <summary>
/// If a player gets denied connection to the server,
/// how long they are forced to wait before attempting to reconnect.
/// </summary>
public static readonly CVarDef<int> GameServerFullReconnectDelay =
CVarDef.Create("game.server_full_reconnect_delay", 30, CVar.SERVERONLY);
/// <summary>
/// Whether or not panic bunker is currently enabled.
/// </summary>
public static readonly CVarDef<bool> PanicBunkerEnabled =
CVarDef.Create("game.panic_bunker.enabled", false, CVar.NOTIFY | CVar.REPLICATED | CVar.SERVER);
/// <summary>
/// Whether or not the panic bunker will disable when an admin comes online.
/// </summary>
public static readonly CVarDef<bool> PanicBunkerDisableWithAdmins =
CVarDef.Create("game.panic_bunker.disable_with_admins", false, CVar.SERVERONLY);
/// <summary>
/// Whether or not the panic bunker will enable when no admins are online.
/// </summary>
public static readonly CVarDef<bool> PanicBunkerEnableWithoutAdmins =
CVarDef.Create("game.panic_bunker.enable_without_admins", false, CVar.SERVERONLY);
/// <summary>
/// Whether or not the panic bunker will count deadminned admins for
/// <see cref="PanicBunkerDisableWithAdmins"/> and
/// <see cref="PanicBunkerEnableWithoutAdmins"/>
/// </summary>
public static readonly CVarDef<bool> PanicBunkerCountDeadminnedAdmins =
CVarDef.Create("game.panic_bunker.count_deadminned_admins", false, CVar.SERVERONLY);
/// <summary>
/// Show reason of disconnect for user or not.
/// </summary>
public static readonly CVarDef<bool> PanicBunkerShowReason =
CVarDef.Create("game.panic_bunker.show_reason", false, CVar.SERVERONLY);
/// <summary>
/// Minimum age of the account (from server's PoV, so from first-seen date) in minutes.
/// </summary>
public static readonly CVarDef<int> PanicBunkerMinAccountAge =
CVarDef.Create("game.panic_bunker.min_account_age", 1440, CVar.SERVERONLY);
/// <summary>
/// Minimal overall played time.
/// </summary>
public static readonly CVarDef<int> PanicBunkerMinOverallMinutes =
CVarDef.Create("game.panic_bunker.min_overall_minutes", 600, CVar.SERVERONLY);
/// <summary>
/// A custom message that will be used for connections denied to the panic bunker
/// If not empty, then will overwrite <see cref="PanicBunkerShowReason"/>
/// </summary>
public static readonly CVarDef<string> PanicBunkerCustomReason =
CVarDef.Create("game.panic_bunker.custom_reason", string.Empty, CVar.SERVERONLY);
/// <summary>
/// Allow bypassing the panic bunker if the user is whitelisted.
/// </summary>
public static readonly CVarDef<bool> BypassBunkerWhitelist =
CVarDef.Create("game.panic_bunker.whitelisted_can_bypass", true, CVar.SERVERONLY);
/*
* TODO: Remove baby jail code once a more mature gateway process is established. This code is only being issued as a stopgap to help with potential tiding in the immediate future.
*/
/// <summary>
/// Whether the baby jail is currently enabled.
/// </summary>
public static readonly CVarDef<bool> BabyJailEnabled =
CVarDef.Create("game.baby_jail.enabled", false, CVar.NOTIFY | CVar.REPLICATED | CVar.SERVER);
/// <summary>
/// Show reason of disconnect for user or not.
/// </summary>
public static readonly CVarDef<bool> BabyJailShowReason =
CVarDef.Create("game.baby_jail.show_reason", false, CVar.SERVERONLY);
/// <summary>
/// Maximum age of the account (from server's PoV, so from first-seen date) in minutes that can access baby
/// jailed servers.
/// </summary>
public static readonly CVarDef<int> BabyJailMaxAccountAge =
CVarDef.Create("game.baby_jail.max_account_age", 1440, CVar.SERVERONLY);
/// <summary>
/// Maximum overall played time allowed to access baby jailed servers.
/// </summary>
public static readonly CVarDef<int> BabyJailMaxOverallMinutes =
CVarDef.Create("game.baby_jail.max_overall_minutes", 120, CVar.SERVERONLY);
/// <summary>
/// A custom message that will be used for connections denied due to the baby jail.
/// If not empty, then will overwrite <see cref="BabyJailShowReason"/>
/// </summary>
public static readonly CVarDef<string> BabyJailCustomReason =
CVarDef.Create("game.baby_jail.custom_reason", string.Empty, CVar.SERVERONLY);
/// <summary>
/// Allow bypassing the baby jail if the user is whitelisted.
/// </summary>
public static readonly CVarDef<bool> BypassBabyJailWhitelist =
CVarDef.Create("game.baby_jail.whitelisted_can_bypass", true, CVar.SERVERONLY);
/// <summary>
/// Make people bonk when trying to climb certain objects like tables.
/// </summary>
public static readonly CVarDef<bool> GameTableBonk =
2023-04-17 04:15:36 +12:00
CVarDef.Create("game.table_bonk", false, CVar.REPLICATED);
2023-06-27 20:31:53 -04:00
/// <summary>
/// Whether or not status icons are rendered for everyone.
/// </summary>
public static readonly CVarDef<bool> GlobalStatusIconsEnabled =
CVarDef.Create("game.global_status_icons_enabled", true, CVar.SERVER | CVar.REPLICATED);
/// <summary>
/// Whether or not status icons are rendered on this specific client.
/// </summary>
public static readonly CVarDef<bool> LocalStatusIconsEnabled =
CVarDef.Create("game.local_status_icons_enabled", true, CVar.CLIENTONLY);
/// <summary>
/// Whether or not coordinates on the Debug overlay should only be available to admins.
/// </summary>
public static readonly CVarDef<bool> DebugCoordinatesAdminOnly =
CVarDef.Create("game.debug_coordinates_admin_only", true, CVar.SERVER | CVar.REPLICATED);
#if EXCEPTION_TOLERANCE
/// <summary>
/// Amount of times round start must fail before the server is shut down.
/// Set to 0 or a negative number to disable.
/// </summary>
public static readonly CVarDef<int> RoundStartFailShutdownCount =
CVarDef.Create("game.round_start_fail_shutdown_count", 5, CVar.SERVERONLY | CVar.SERVER);
#endif
/// <summary>
/// Delay between station alert level changes.
/// </summary>
public static readonly CVarDef<int> GameAlertLevelChangeDelay =
CVarDef.Create("game.alert_level_change_delay", 30, CVar.SERVERONLY);
/// <summary>
/// The time in seconds that the server should wait before restarting the round.
/// Defaults to 2 minutes.
/// </summary>
public static readonly CVarDef<float> RoundRestartTime =
CVarDef.Create("game.round_restart_time", 120f, CVar.SERVERONLY);
/// <summary>
/// The prototype to use for secret weights.
/// </summary>
public static readonly CVarDef<string> SecretWeightPrototype =
CVarDef.Create("game.secret_weight_prototype", "Secret", CVar.SERVERONLY);
/// <summary>
/// The id of the sound collection to randomly choose a sound from and play when the round ends.
/// </summary>
public static readonly CVarDef<string> RoundEndSoundCollection =
CVarDef.Create("game.round_end_sound_collection", "RoundEnd", CVar.SERVERONLY);
/// <summary>
/// Whether or not to add every player as a global override to PVS at round end.
/// This will allow all players to see their clothing in the round screen player list screen,
/// but may cause lag during round end with very high player counts.
/// </summary>
public static readonly CVarDef<bool> RoundEndPVSOverrides =
CVarDef.Create("game.round_end_pvs_overrides", true, CVar.SERVERONLY);
/// <summary>
/// If true, players can place objects onto tabletop games like chess boards.
/// </summary>
/// <remarks>
/// This feature is currently highly abusable and can easily be used to crash the server,
/// so it's off by default.
/// </remarks>
public static readonly CVarDef<bool> GameTabletopPlace =
CVarDef.Create("game.tabletop_place", false, CVar.SERVERONLY);
/// <summary>
/// If true, contraband severity can be viewed in the examine menu
/// </summary>
public static readonly CVarDef<bool> ContrabandExamine =
CVarDef.Create("game.contraband_examine", true, CVar.SERVER | CVar.REPLICATED);
2024-09-23 19:28:42 +12:00
/// <summary>
/// Size of the lookup area for adding entities to the context menu
/// </summary>
public static readonly CVarDef<float> GameEntityMenuLookup =
CVarDef.Create("game.entity_menu_lookup", 0.25f, CVar.CLIENTONLY | CVar.ARCHIVE);
/// <summary>
/// Should the clients window show the server hostname in the title?
/// </summary>
public static readonly CVarDef<bool> GameHostnameInTitlebar =
CVarDef.Create("game.hostname_in_titlebar", true, CVar.SERVER | CVar.REPLICATED);
2021-12-22 13:34:09 +01:00
/*
* Discord
*/
/// <summary>
/// The role that will get mentioned if a new SOS ahelp comes in.
/// </summary>
public static readonly CVarDef<string> DiscordAhelpMention =
CVarDef.Create("discord.on_call_ping", string.Empty, CVar.SERVERONLY | CVar.CONFIDENTIAL);
/// <summary>
/// URL of the discord webhook to relay unanswered ahelp messages.
/// </summary>
public static readonly CVarDef<string> DiscordOnCallWebhook =
CVarDef.Create("discord.on_call_webhook", string.Empty, CVar.SERVERONLY | CVar.CONFIDENTIAL);
2022-09-11 17:43:38 +02:00
/// <summary>
/// URL of the Discord webhook which will relay all ahelp messages.
/// </summary>
2021-12-22 13:34:09 +01:00
public static readonly CVarDef<string> DiscordAHelpWebhook =
CVarDef.Create("discord.ahelp_webhook", string.Empty, CVar.SERVERONLY | CVar.CONFIDENTIAL);
2021-12-22 13:34:09 +01:00
2022-09-11 17:43:38 +02:00
/// <summary>
/// The server icon to use in the Discord ahelp embed footer.
/// Valid values are specified at https://discord.com/developers/docs/resources/channel#embed-object-embed-footer-structure.
/// </summary>
public static readonly CVarDef<string> DiscordAHelpFooterIcon =
CVarDef.Create("discord.ahelp_footer_icon", string.Empty, CVar.SERVERONLY);
/// <summary>
/// The avatar to use for the webhook. Should be an URL.
/// </summary>
public static readonly CVarDef<string> DiscordAHelpAvatar =
CVarDef.Create("discord.ahelp_avatar", string.Empty, CVar.SERVERONLY);
/// <summary>
/// URL of the Discord webhook which will relay all custom votes. If left empty, disables the webhook.
/// </summary>
public static readonly CVarDef<string> DiscordVoteWebhook =
CVarDef.Create("discord.vote_webhook", string.Empty, CVar.SERVERONLY);
/// <summary>
/// URL of the Discord webhook which will relay all votekick votes. If left empty, disables the webhook.
/// </summary>
public static readonly CVarDef<string> DiscordVotekickWebhook =
CVarDef.Create("discord.votekick_webhook", string.Empty, CVar.SERVERONLY);
/// URL of the Discord webhook which will relay round restart messages.
/// </summary>
public static readonly CVarDef<string> DiscordRoundUpdateWebhook =
CVarDef.Create("discord.round_update_webhook", string.Empty, CVar.SERVERONLY | CVar.CONFIDENTIAL);
/// <summary>
/// Role id for the Discord webhook to ping when the round ends.
/// </summary>
public static readonly CVarDef<string> DiscordRoundEndRoleWebhook =
CVarDef.Create("discord.round_end_role", string.Empty, CVar.SERVERONLY);
/*
* Tips
*/
/// <summary>
/// Whether tips being shown is enabled at all.
/// </summary>
public static readonly CVarDef<bool> TipsEnabled =
CVarDef.Create("tips.enabled", true);
/// <summary>
/// The dataset prototype to use when selecting a random tip.
/// </summary>
public static readonly CVarDef<string> TipsDataset =
CVarDef.Create("tips.dataset", "CP14Tips");
/// <summary>
/// The number of seconds between each tip being displayed when the round is not actively going
/// (i.e. postround or lobby)
/// </summary>
public static readonly CVarDef<float> TipFrequencyOutOfRound =
2023-01-17 12:43:51 -06:00
CVarDef.Create("tips.out_of_game_frequency", 60f * 1.5f);
/// <summary>
/// The number of seconds between each tip being displayed when the round is actively going
/// </summary>
public static readonly CVarDef<float> TipFrequencyInRound =
2023-01-17 12:43:51 -06:00
CVarDef.Create("tips.in_game_frequency", 60f * 60);
public static readonly CVarDef<string> LoginTipsDataset =
CVarDef.Create("tips.login_dataset", "Tips");
/// <summary>
/// The chance for Tippy to replace a normal tip message.
/// </summary>
public static readonly CVarDef<float> TipsTippyChance =
CVarDef.Create("tips.tippy_chance", 0.01f);
/*
* Console
*/
Upstream suka (#45) * Make BaseMedicalPDA abstract (#26567) * Fix GasMixers/Filters not working (#26568) * Fix GasMixers/Filters not working * OKAY GAS FILTERS TOO --------- Co-authored-by: Plykiya <plykiya@protonmail.com> * Industrial Reagent Grinder Hotfix (#26571) fixed * Give stores the ability to check for owner only (#26573) adds a check if the store belongs to the user * Fix round start crash (causing instant restart) (#26579) * Fix round start crash * Make `TryCreateObjective` more error tolerant * Update engine to v217.1.0 (#26588) * Fix initial infected icon hiding (#26585) * Fix Meta evac shuttle name (#26587) * Make timer ignore client predict setting (#26554) * Make timer ignore client predict setting * making tests run --------- Co-authored-by: wrexbe <wrexbe@protonmail.com> * Make advertise system survive no map inits (#26553) * Make advertise system survive no map inits * Add comment to try prevent future bugs * Update Credits (#26589) Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com> * Fix fox spawn on reach (#26584) Co-authored-by: wrexbe <wrexbe@protonmail.com> * Removes SCAF armor (#26566) * removes scaf armor * replace maint loot spawner spot with basic helmet * Update Patrons.yml (#26578) * Automatic changelog update * Make aghost command work on other players using optional argument (#26546) * Translations * Make aghost command work on other players using optional argument * Reviews * Automatic changelog update * Add new component to Make sound on interact (#26523) * Adds new Component: EmitSoundOnInteractUsing * Missed an import * File-scoping * Replace ID check with Prototype check * Moved component and system to shared. Set prediction to true. * Removed impoper imports and changed namespace of component to reflect changed folder. * Following function naming theme * All this code is basically deltanedas's, but it was a learning experience for me * Update Content.Shared/Sound/Components/EmitSoundOnInteractUsingComponent.cs * Update Content.Shared/Sound/Components/EmitSoundOnInteractUsingComponent.cs --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> * Increase syndi duffelbag storage (#26565) * Increase syndi duffelbag storage * weh * Automatic changelog update * Adds construction/decon graphs for plastic flaps (#26341) * Adds construction/decon graphs for plastic flaps * Dang arbitrage * undo conflict --------- Co-authored-by: Velcroboy <velcroboy333@hotmail.com> * Automatic changelog update * Makes secglasses roundstart (#26487) * makes secglasses roundstart * fix epic fail * fix tests questionmark? * Update Resources/Prototypes/Entities/Clothing/Eyes/glasses.yml Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> --------- Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> * Automatic changelog update * Toilet Upgrade (needs review) (#22133) * Toilet Draft * fixes * toilets now have secret stash to place items in cistern. * fixes * plungers now unblock toilets. * fix sprite * new sprites and fix * fixes * improve seat sprites. * fix * removed visualisersystem changed to genericvisualizers * flush sound for toilets and copyright for toilet sprites. * fix atrributions * fixes * fix datafield flushtime * sprite improvements * fixes * multiple changes * fix * fix * fixes remove vv * moved stash related functions to secret stash system from toilet. * fix * fix * changes for recent review. * fix * fix * Automatic changelog update * Uplink store interface searchable with a searchbar. (#24287) * Can now search the uplink store interface with a searchbar. * Search text updates no longer send server messages. Persists listings locally. * Formatting fixes and tidying. * Added helper method to get localised name and description (or otherwise, entity name and description) of store listing items. * Update Content.Client/Store/Ui/StoreMenu.xaml * Review change; moved localisation helper functions to their own class. * Prevent thread-unsafe behaviour as-per review. * Remove dummy boxcontainer --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Automatic changelog update * Improved RCDs (#22799) * Initial radial menu prototyping for the RCD * Radial UI buttons can send messages to the server * Beginning to update RCDSystem * RCD building system in progress * Further updates * Added extra effects, RCDSystem now reads RCD prototype data * Replacing tiles is instant, multiple constructions are allowed, deconstruction is broken * Added extra functionality to RadialContainers plus documentation * Fixed localization of RCD UI strings * Menu opens near cursor, added basic RCD * Avoiding merge conflict * Implemented atomized construction / deconstruction rules * Increased RCD ammo base charges * Moved input context definition to content * Removed obsoleted code * Updates to system * Switch machine and computer frames for electrical cabling * Added construction ghosts * Fixed issue with keybind detection code * Fixed RCD construction ghost mispredications * Code clean up * Updated deconstruction effects * RCDs effects don't rotate * Code clean up * Balancing for ammo counts * Code clean up * Added missing localized strings * More clean up * Made directional window handling more robust * Added documentation to radial menus and made them no longer dependent on Content * Made radial containers more robust * Further robustness to the radial menu * The RCD submenu buttons are only shown when the destination layer has at least one children * Expanded upon deconstructing plus construction balance * Fixed line endings * Updated list of RCD deconstructable entities. Now needs a component to deconstruct instead of a tag * Bug fixes * Revert unnecessary change * Updated RCD strings * Fixed bug * More fixes * Deconstructed tiles/subflooring convert to lattice instead * Fixed failed tests (Linux doesn't like invalid spritespecifer paths) * Fixing merge conflict * Updated airlock assembly * Fixing merge conflict * Fixing merge conflict * More fixing... * Removed erroneous project file change * Fixed string handling issue * Trying to fix merge conflict * Still fixing merge conflicts * Balancing * Hidden RCD construction ghosts when in 'build' mode * Fixing merge conflict * Implemented requested changes (Part 1) * Added more requested changes * Fix for failed test. Removed sussy null suppression * Made requested changes - custom construction ghost system was replaced * Fixing merge conflict * Fixed merge conflict * Fixed bug in RCD construction ghost validation * Fixing merge conflict * Merge conflict fixed * Made required update * Removed lingering RCD deconstruct tag * Fixing merge conflict * Merge conflict fixed * Made requested changes * Bug fixes and balancing * Made string names more consistent * Can no longer stack catwalks * Automatic changelog update * Update submodule to 217.2.0 (#26592) * Southern accent (#26543) * created the AccentComponent and the AccentSystem * word replacement schtuhff * made it a trait fr ongg!!1 * Update Content.Server/Speech/EntitySystems/SouthernAccentSystem.cs --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> * Prevent storing liquids in equipped buckets (#24412) * Block access to solutions in equipped spillables. * Stop Drink verb appearing if the solution can't be accessed. * Automatic changelog update * Fix 'Hypopen shouldn't display solution examine text' (#26453) * stealthy hypo * ExaminableSolution hand check when in covert implement. ExaminableSolution now has 'hidden' datafield to enable chemical inspection only in hand. * cleaning code * more cleaning * Hidden datafield renamed to HeldOnly * review --------- Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Automatic changelog update * Revert Paint (#26593) * Revert "Fix build (#26258)" This reverts commit 6de5fbfafbde700d711a566f6a43f05f7a99e455. * Revert "Spray Paint (Review Ready) (#23003)" This reverts commit e4d5e7f1aebfc37b1bc3453fdb39578f3897b6a1. # Conflicts: # Resources/Prototypes/Entities/Structures/Holographic/projections.yml * Fix: Prevent single-use hyposprays from getting the toggle draw verb (#26595) Prevent single-use hyposprays from getting the toggle draw verb Co-authored-by: Plykiya <plykiya@protonmail.com> * MeleeHitSoundSystem (#25005) * Began work to unscrew melee noises * finished * cleanup * cleanup * Update Content.Server/Weapons/Melee/MeleeWeaponSystem.cs Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com> * _Style * Fix merge --------- Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Remove physics comp from VendingMachineWallmount (#25632) * Remove physics comp from VendingMachineWallmount * Fixtures removal --------- Co-authored-by: Jeff <velcroboy333@hotmail.com> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Remake hairflowers (#25475) * Add more lily usage (orange hairflower and flowercrown) * comit 2 * ee * more fixes * w * im stupid * bring poppy in authodrobe * weh --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> * Automatic changelog update * Injector UI shows TransferAmount change, Spilling liquid changes Injector mode (#26596) * Injector UI shows TransferAmount change, spill changes mode * Update Content.Shared/Fluids/SharedPuddleSystem.Spillable.cs * Update Content.Shared/Fluids/SharedPuddleSystem.Spillable.cs --------- Co-authored-by: Plykiya <plykiya@protonmail.com> Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> * Update submodule to 217.2.1 (#26599) * disallow unanchoring or opening panels on locked emitters/APEs (#26600) * disallow unanchoring or opening panels on locked emitters/APEs * no locking open panels * oops * needback feedback * Update Content.Shared/Lock/LockSystem.cs * Update Content.Shared/Lock/LockSystem.cs * Update Content.Shared/Lock/LockSystem.cs * sanity --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Automatic changelog update * Fix grave digging sound indefinitely playing if dug by aghost. (#26420) Admins bypass doafters. As such, the code that runs on doafter completion is ran before the sound is actually created. This then leads to the sound never being stopped, and as such it would infinitely play. This commit gets around the issue by manually stopping the sound should the doafter fail to start. If we could be sure that the doafter would never fail, then we could just move the call to StartDigging above starting the doafter but this is currently not possible. Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Make the buttons on the map ui not squished (#26604) Make the map ui work Co-authored-by: wrexbe <wrexbe@protonmail.com> * Combine flower crown and wreath (#26605) * Combine flower crown and wreath * huh * huuh :trollface: * Automatic changelog update * Add AP damage to throwing knives (#26380) * add * ap * no more stam dmg * Automatic changelog update * cancelable brig timers (#26557) brig timers now cancelable. also some screensystem yakshave * Fix orientation of roller skate sprites (#26627) Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es> * Automatic changelog update * Fix GastTileOverlay sending redundant data (#26623) Fix GastTileOverlay not updating properly * Auto DeAdmin sooner (#26551) Co-authored-by: wrexbe <wrexbe@protonmail.com> * Add briefcase to curadrobe and lawdrobe, and some briefcases cleanup (#26527) * Add briefcase to curadrobe and some briefcases cleanup * also add to lawdrobe * Automatic changelog update * Fix some text overflow bugs in HUD (#26615) * Don't clip text in item status * Fix overflow in examine tooltip --------- Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es> * Adds two milk cartons to the BoozeOMat (#26635) * Automatic changelog update * made the hover text less vague (sorry) (#26630) * blacklisted throwing knifes from pneumatic cannon (#26628) * Fix radio jammer not blocking suit sensors. (#26632) As it turns out, they are not in fact on their own netid. They are actually just on wireless. The way I had tested my previous pr led to this mistake being made. I originally had the radio jammer block wireless as well, but decided to take out under the flase assumption that it suit sensors were actually on their own netid and did not require the ability to block all wireless packets at the last moment. * Fix dirt decals in reach not being cleanable (#26636) made all dirt decals cleanable Co-authored-by: hamurlik <renoDeath@protonmail.com> * Automatic changelog update * Replace drill_hit.ogg and drill_use.ogg with better sounds (#26622) * Replace drill_hit.ogg and drill_use.ogg with better sounds * Fix attribution source for drill_hit.ogg * Update Resources/Audio/Items/attributions.yml Co-authored-by: Kara <lunarautomaton6@gmail.com> * Update Resources/Audio/Items/attributions.yml Co-authored-by: Kara <lunarautomaton6@gmail.com> --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Co-authored-by: Kara <lunarautomaton6@gmail.com> * Gave Blast door access permissions (#26606) Added access reader to all blast doors. Added pre configured blast doors for engineering and science. * Gives all wheeled objects low friction (#26601) * gives all wheeled objects friction * adjustments to sum stuff * Automatic changelog update * Combine solution injection systems; Fix embeddable injectors (#26268) * Combine injection systems * Update Content.Server/Chemistry/EntitySystems/SolutionInjectOnEventSystem.cs --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> * Automatic changelog update * Add ValueList import (#26640) * Change assault borg modules texture (#26502) * Update borg_modules.yml * Fix borg_modules.yml? * Uh --------- Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Automatic changelog update * Add Cyborg Emote Sounds (#26594) * Hal 9000's first emote * Add Chime emote & Change variation to 0.05 * Modify Buzz emote * Add Buzz-two emote * modified Horn * add ping emote * add slowclap emote * Convert slowclap.ogg to mono, reflect change in attribution.yml * fix capitalization for all chatMessages && change all catagory to category * remove all traces of slowclap.ogg * forgor one file smh * collating copywrite * spelling mistakes will be the death of me * more spelling mistakes * change yml string to list * Automatic changelog update * Coordinates Disks & Shuttle FTL Travel (#23240) * Adds the CentComm Disk and configures it to work with direct-use shuttles * Added functionality for drone shuttles (i.e. cargo shuttle) * Adds support for pods, and a disk console object for disks to be inserted into. Also sprites. * Added the disk to HoP's locker * Removed leftover logs & comments * Fix for integration test * Apply suggestions from code review (formatting & proper DataField) Co-authored-by: 0x6273 <0x40@keemail.me> * Fix integration test & changes based on code review * Includes Disk Cases to contain Coordinate Disks, which are now CDs instead of Floppy Disks * Check pods & non-evac shuttles for CentCom travel, even in FTL * Import * Remove CentCom travel restrictions & pod disk consoles * Major changes that changes the coordinates disk system to work with salvage expeditions * Missed CC diskcase removal * Fix build * Review suggestions and changes * Major additional changes after merge * Minor tag miss * Integration test fix * review --------- Co-authored-by: 0x6273 <0x40@keemail.me> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Automatic changelog update * Add door electronics access configuration menu (#17778) * Add door electronics configuration menu * Use file-scoped namespaces Signed-off-by: c4llv07e <kseandi@gmail.com> * Open door electronics configuration menu only with network configurator Signed-off-by: c4llv07e <kseandi@gmail.com> * Doors will now try to move their AccessReaderComponent to their door electronics when the map is initialized Signed-off-by: c4llv07e <kseandi@gmail.com> * Make the access list in the id card computer a separate control Signed-off-by: c4llv07e <kseandi@gmail.com> * Fix merge conflict Signed-off-by: c4llv07e <kseandi@gmail.com> * Remove DoorElectronics tag Signed-off-by: c4llv07e <kseandi@gmail.com> * Integrate doors with #17927 Signed-off-by: c4llv07e <kseandi@gmail.com> * Move door electornics ui stuff to the right place Signed-off-by: c4llv07e <kseandi@gmail.com> * Some review fixes Signed-off-by: c4llv07e <kseandi@gmail.com> * More fixes Signed-off-by: c4llv07e <kseandi@gmail.com> * review fix Signed-off-by: c4llv07e <kseandi@gmail.com> * move all accesses from airlock prototypes to door electronics Signed-off-by: c4llv07e <kseandi@gmail.com> * rework door electronics config access list Signed-off-by: c4llv07e <kseandi@gmail.com> * Remove Linq from the door electronics user interface * [WIP] Add EntityWhitelist to the activatable ui component Signed-off-by: c4llv07e <kseandi@gmail.com> * Better interaction system Signed-off-by: c4llv07e <kseandi@gmail.com> * Refactor Signed-off-by: c4llv07e <kseandi@gmail.com> * Fix some door electronics not working without AccessReaderComponent Signed-off-by: c4llv07e <kseandi@gmail.com> * Move AccessReaderComponent update code to the AccessReaderSystem Signed-off-by: c4llv07e <kseandi@gmail.com> * Remove unnecesary newlines in the door access prototypes Signed-off-by: c4llv07e <kseandi@gmail.com> * Remove unused variables in access level control Signed-off-by: c4llv07e <kseandi@gmail.com> * Remove unnecessary method from the door electronics configuration menu Signed-off-by: c4llv07e <kseandi@gmail.com> * [WIP] change access type from string to ProtoId<AccessLevelPrototype> Signed-off-by: c4llv07e <kseandi@gmail.com> * Remove unused methods Signed-off-by: c4llv07e <kseandi@gmail.com> * Newline fix Signed-off-by: c4llv07e <kseandi@gmail.com> * Restored to a functional state Signed-off-by: c4llv07e <kseandi@gmail.com> * Fix access configurator not working with door electronics AccessReaderComponent Signed-off-by: c4llv07e <kseandi@gmail.com> * Replace all string access fields with ProtoId Signed-off-by: c4llv07e <kseandi@gmail.com> * move access level control initialization into Populate method Signed-off-by: c4llv07e <kseandi@gmail.com> * Review --------- Signed-off-by: c4llv07e <kseandi@gmail.com> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Automatic changelog update * scoopable ash and foam, solution transfer prediction (#25832) * move SolutionTransfer to shared and predict as much as possible * fully move OpenableSystem to shared now that SolutionTransfer is * fix imports for everything * doc for solution transfer system * trolling * add scoopable system * make ash and foam scoopable * untroll * untroll real * make clickable it work * troll * the scooping room --------- Co-authored-by: deltanedas <@deltanedas:kde.org> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Replace the teleportation logic on the SCRAM implant! (#26429) * Replace the teleportation logic on the SCRAM implant! Now instead of just trying to pick a random tile in range 20 times, the scram teleportation logic now: - Gets a list of grids in range - Until a suitable tile is picked it picks a random grid - From that grid it picks a random tile. - If the tile is suitable, then it is set as the target and the user will be teleported there. - Grids and tiles are randomly picked as outlined above until a valid tile is found, or all valid grids and tiles are exhausted. - Should no suitable tile be found then they get teleported to the same position they are at. Effectively not teleporting them. * Actually make the defaults sane which I forgor in the last commit * Extract tile section to its own function. Bias selection for current grid. Use proper coords for box. * Address reviews as much as possible * Address reviews * Refactored AdvertiseComponent (#26598) * Made it better * ok * alright --------- Co-authored-by: wrexbe <wrexbe@protonmail.com> * Bartender "Essentials" (#25367) * drinks round 1 saving my progress before my hard drive explodes * test 2 please work * name fixes whoops * Update drinks.yml * various fixes am dumb * add sol dry to vends more fixes and changes, yippee! * more fixes & ingame testing shrimple tests * last fixes :trollface: should be ready for pr now * Update soda.yml sate thirst * Automatic changelog update * Add ERT Chaplain (#25956) * ERT Chaplain * Make BibleUser * It was not intended * reword my poor words * 1984 a comment that I decided was unnecessary. * Update Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> * Changes in chemicals page in guidebook (#25831) * Added pages to chemical categories The chemical categories have their own page now. Added the "Chemical Tabs" in /ServerInfo/Guidebook. Moved the Chemicals code from shiftsandjobs.yml to its own .yml file which is "chemicals.yml". * Update guides.ftl * Update chemicals.yml Changed the guide entry's ID for the medical tab from Medicine to Medicinal. Hope this works... * Update Resources/ServerInfo/Guidebook/Chemical Tabs/Biological.xml Co-authored-by: exincore <me@exin.xyz> * Update Resources/ServerInfo/Guidebook/Chemical Tabs/Foods.xml Co-authored-by: exincore <me@exin.xyz> * Update Resources/ServerInfo/Guidebook/Chemical Tabs/Elements.xml Co-authored-by: exincore <me@exin.xyz> * Update Resources/ServerInfo/Guidebook/Chemical Tabs/Narcotics.xml Co-authored-by: exincore <me@exin.xyz> * Update Resources/ServerInfo/Guidebook/Chemical Tabs/Toxins.xml Co-authored-by: exincore <me@exin.xyz> * Fixed a few errors and stuff! A few typos have been fixed thanks to exincore. Added dedicated .xml files to be used for the dedicated category pages (Medicinal and Botanical pages). Made it so it doesn't use any duplicated IDs anymore. If there's more problems, please do tell so I can fix it! * Update settings.json * Fix? --------- Co-authored-by: exincore <me@exin.xyz> * Automatic changelog update * Anomalies behaviours (#24683) * Added new anomaly particle * Add basic anomaly behaviour * +2 parametres * add functional to new particle * add components to behaviours * big content * add shuffle, moved thing to server * clean up * fixes * random pick redo * bonjour behavioUr * fix AJCM * fix * add some new behaviours * power modifier behaviour * rmeove timer * new event for update ui fix * refactor! * fixes * enum * Fix mapinit * Minor touches --------- Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Automatic changelog update * Fix clipping/overlap in lathe machine UIs (#26646) * Add scrollbars to lathe material list when necessary * Fix bug where shrinking window would cause elements to overlap --------- Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es> * Added chat window transparency slider to options (#24990) * Adds a new slider to the misc tab in options that lets the player set chat window transparency * Tweaked variable names * Fixed order to match UI * Renamed set chat window transparency function * Changed and refactored to opacity instead of transparency * Remove unnecessary int to float conversions Slider used to be 0-100 while the CCVar was 0.0-1.0f. This is confusing and was only used for rounding to 2 decimal points. * Round the value to two decimal points * Remove rounding for now * Rename * Unhardcode chat color by moving to stylesheet * Fix indent * Make opacity slider only change opacity --------- Co-authored-by: Your Name <you@example.com> Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com> * Automatic changelog update * Infinity books (#25840) * setup text data * roundstart reshuffling keywords with gibberish words * saved data categorized * add book with hints * start redrawing books * +4 book design * +books +random visual upgrade * finish first file * finish lore file * finish with books.rsi now authorbooks.rsi... * aurora! and some fix * nuke author books * speelbuke update * finish respriting work * fix scientist guide visual * setup datasets * setup stupid funny random story * restore author books, upgrade hint generation * add variety to story generator * add learning system * minor textgen edit * file restruct, hint count variation * more restruct * more renaming add basis learning system logic. Spears locked for special book for test. * nuke all systems, for splitting PR gods * typo fix * update migration with deleted books * add random story books to maint * Update construction-system.ftl * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * typo fix * interchangeably * final * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com> * "." * Update Content.Server/Paper/PaperRandomStorySystem.cs Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com> * Ubazer fix * inadequate * localized * Update meta.json * fuck merge conflicts * fix jani book --------- Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com> * Automatic changelog update * Resprite ambuzol plus pills (#26651) * Automatic changelog update * Fixed air injector visuals (#26654) * Make cyborgs hands explosion proof. (#26515) * Make the advanced treatment modules beakers explosion-proof. * undo changes * Epic rename fail * Explosion recursion data field * Logic for data field * Automatic changelog update * Automatic changelog update * Make typing indicator shaded (#26678) * Automatic changelog update * Validate wire layout prototypes and remove invalid WiresComponents (#26682) Validate wire layout prototypes; delete invalid wirescomponents. * Increase time inbetween anomaly pulses (#26677) nerf anomaly pulse delays * Automatic changelog update * Fix for items dropped being rotated to world north (#26662) * Fix rotation of dropped items * combined world position rotation function for dumpable * scuffed implementation? * less scuffed? * even less scuffed... I guess * capital D --------- Co-authored-by: Plykiya <plykiya@protonmail.com> * Automatic changelog update * fix double interaction popup (#26684) change popentity to popupclient * disable foam scooping (#26686) Co-authored-by: deltanedas <@deltanedas:kde.org> * Automatic changelog update * Little disk printer sprite tweaks (#26711) * Little disk printer sprite tweaks * ill change this aswell * fixed white_box.png (#26714) * Delete Resources/Textures/Decals/bricktile.rsi/white_box.png * Readded fixed version one pixel change * New lobby art: TerminalStation (#26505) woop woop * Automatic changelog update * Unidentified corpses respect gender pronouns (#26715) fix: LGBT erasure /j * Things that can't go in disposals now don't "Miss" (#26716) * Moved is canInsert check to before miss check * Update Content.Server/Disposal/Unit/EntitySystems/DisposalUnitSystem.cs --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> * Clean up YAML issues in animals.yml (#26696) * Cleaned up YAML issues in animals.yml * Cleaned up TimedSpawnerComponent * fix health analyzer crash (#26700) Co-authored-by: deltanedas <@deltanedas:kde.org> * Automatic changelog update * Make the station start with random broken wiring (#26695) Random wire cutting on round start * Fix turned off thrusters consume power (#26690) * Mail Unit Fix (whitelist) (#26688) Fix Mail Unit * Automatic changelog update * OOC Patron Color Toggle (#26653) * Adds the option for you to toggle your OOC Patron color visibility to yourself and others. * Makes the button magically disappear if you arent a patron * Automatic changelog update * Fix random clothing slots being able to hide character's nose and hair (#26708) Fix bug and formatting * Automatic changelog update * Make Zombie, Initial Infected fix (#26665) Make zombie fix * Suit Sensors No Longer Use a Hardcoded 'Total Health' (#26658) * Suit sensors now know the 'total health' of an entity * Missed the constructor :pensive: * Stop mop buckets from spilling when you push them (#26706) * Automatic changelog update * Robotists technology icon fix (#26723) fix Co-authored-by: GeneralGaws <limonmessi@mail.ru> * Make ducks more viable as an alternative to chickens. (#26729) Quick tweak to make ducks on par with chickens at cargo * Automatic changelog update * Make the nutribrick one bite smaller (#26719) Update snacks.yml * Task/fix nightvision huds (#26726) * StatusIcon: add field to set if icon should be rendered with shading * set/unset shader based on icon field * set new field to true for hud icons * re-shade health bars * Automatic changelog update * Rework Identifier Overrides to prevent showing Law Priority (#26680) Does-The-Fix Co-authored-by: Mephisto72 <Mephisto.Respectator@proton.me> * Make practice projectiles consistent in damage (#26731) * Make practice weapon damage consistent to 1 * Add book reference to description * Automatic changelog update * fix mopbucket water level (#26740) * Damage popup type can now be changed with a left click if allowed via component boolean. (#26734) * Update DamagePopupSystem.cs * Update DamagePopupSystem.cs * Add ability to allow or deny type change via component bool * Automatic changelog update * CCVars.cs: Minor inconsistency fixes. (#26744) Update CCVars.cs * Fixes one file format inconsistency. * Adds missing </summary> closing tag. * Make baseball bat crafting require a slicing tool (#26742) Make baseball bat crafting harder * make fulton recipe faster and require cloth (#26747) Co-authored-by: deltanedas <@deltanedas:kde.org> * Automatic changelog update * -fixed Broadcast button never enabling (#26750) * Automatic changelog update * Let Mindshields be effected by statusIcon shading (#26754) Phone Webedit Ops Original PR author forgot about mindshields for making status icons shaded. This can be done with other antag icons as well, I remember people mentioning revs being able to see each other in the dark was lame. * Automatic changelog update * Dionae now bleed sap, and this can be used to make syrup. (#25748) * SapAndSyrup * centrifug * morewatervapor * whyisitnotpushing * nymphs * lessrealmorefun * Automatic changelog update * Alerts crash fix (#26602) - If the client tries to call ShowAlert while applying gamestates (e.g. initialising an entity) then this will cause problems. I need to double-check the initial PR before I'd be comfortable with this being merged. * made thin firelocks constructable/deconstructable (#26745) * Automatic changelog update * Fire sprite change for mice (#26758) * Add new fire sprite for mice that fits them better * Add the sprite change to rats as well * Moffroach and hamsters now also have more fitting fire sprites * made the meta.json easier to read * Automatic changelog update * Change speed threshold for barefeet walking on glass shards and D4 (#26763) Allow walking over glass shards and D4 Co-authored-by: Plykiya <plykiya@protonmail.com> * Automatic changelog update --------- Signed-off-by: c4llv07e <kseandi@gmail.com> Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com> Co-authored-by: Plykiya <58439124+Plykiya@users.noreply.github.com> Co-authored-by: Plykiya <plykiya@protonmail.com> Co-authored-by: Boaz1111 <149967078+Boaz1111@users.noreply.github.com> Co-authored-by: keronshb <54602815+keronshb@users.noreply.github.com> Co-authored-by: Wrexbe (Josh) <81056464+wrexbe@users.noreply.github.com> Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com> Co-authored-by: wrexbe <wrexbe@protonmail.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com> Co-authored-by: Flareguy <78941145+Flareguy@users.noreply.github.com> Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com> Co-authored-by: Simon <63975668+Simyon264@users.noreply.github.com> Co-authored-by: blueDev2 <89804215+blueDev2@users.noreply.github.com> Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Co-authored-by: Velcroboy <107660393+IamVelcroboy@users.noreply.github.com> Co-authored-by: Velcroboy <velcroboy333@hotmail.com> Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> Co-authored-by: brainfood1183 <113240905+brainfood1183@users.noreply.github.com> Co-authored-by: J. Brown <DrMelon@users.noreply.github.com> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> Co-authored-by: UBlueberry <161545003+UBlueberry@users.noreply.github.com> Co-authored-by: Tayrtahn <tayrtahn@gmail.com> Co-authored-by: drteaspoon420 <87363733+drteaspoon420@users.noreply.github.com> Co-authored-by: Bixkitts <72874643+Bixkitts@users.noreply.github.com> Co-authored-by: nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com> Co-authored-by: Ubaser <134914314+UbaserB@users.noreply.github.com> Co-authored-by: avery <51971268+graevy@users.noreply.github.com> Co-authored-by: eoineoineoin <github@eoinrul.es> Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es> Co-authored-by: RiceMar1244 <138547931+RiceMar1244@users.noreply.github.com> Co-authored-by: Zealith-Gamer <61980908+Zealith-Gamer@users.noreply.github.com> Co-authored-by: hamurlik <75280571+hamurlik@users.noreply.github.com> Co-authored-by: hamurlik <renoDeath@protonmail.com> Co-authored-by: no <165581243+pissdemon@users.noreply.github.com> Co-authored-by: Kara <lunarautomaton6@gmail.com> Co-authored-by: SoulFN <164462467+SoulFN@users.noreply.github.com> Co-authored-by: Keer-Sar <144283718+Keer-Sar@users.noreply.github.com> Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com> Co-authored-by: 0x6273 <0x40@keemail.me> Co-authored-by: c4llv07e <38111072+c4llv07e@users.noreply.github.com> Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com> Co-authored-by: Firewatch <54725557+musicmanvr@users.noreply.github.com> Co-authored-by: IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com> Co-authored-by: f0x-n3rd <150924715+f0x-n3rd@users.noreply.github.com> Co-authored-by: exincore <me@exin.xyz> Co-authored-by: Sk1tch <ben.peter.smith@gmail.com> Co-authored-by: Your Name <you@example.com> Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com> Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com> Co-authored-by: osjarw <62134478+osjarw@users.noreply.github.com> Co-authored-by: lunarcomets <140772713+lunarcomets@users.noreply.github.com> Co-authored-by: ThatOneGoblin25 <145570657+ThatOneGoblin25@users.noreply.github.com> Co-authored-by: Terraspark4941 <terraspark4941@gmail.com> Co-authored-by: Brandon Hu <103440971+Brandon-Huu@users.noreply.github.com> Co-authored-by: beck-thompson <107373427+beck-thompson@users.noreply.github.com> Co-authored-by: Aexxie <codyfox.077@gmail.com> Co-authored-by: DinoWattz <116862698+DinoWattz@users.noreply.github.com> Co-authored-by: Pspritechologist <81725545+Pspritechologist@users.noreply.github.com> Co-authored-by: Vasilis <vasilis@pikachu.systems> Co-authored-by: GeneralGaws <122978178+GeneralGaws@users.noreply.github.com> Co-authored-by: GeneralGaws <limonmessi@mail.ru> Co-authored-by: Dae <60460608+ZeroDayDaemon@users.noreply.github.com> Co-authored-by: potato1234_x <79580518+potato1234x@users.noreply.github.com> Co-authored-by: PrPleGoo <PrPleGoo@users.noreply.github.com> Co-authored-by: Mephisto72 <66994453+Mephisto72@users.noreply.github.com> Co-authored-by: Mephisto72 <Mephisto.Respectator@proton.me> Co-authored-by: TsjipTsjip <19798667+TsjipTsjip@users.noreply.github.com> Co-authored-by: Verm <32827189+Vermidia@users.noreply.github.com> Co-authored-by: superjj18 <gagnonjake@gmail.com> Co-authored-by: Golinth <amh2023@gmail.com> Co-authored-by: Alzore <140123969+Blackern5000@users.noreply.github.com> Co-authored-by: BITTERLYNX <166083655+PaigeMaeForrest@users.noreply.github.com>
2024-04-06 13:13:22 +03:00
public static readonly CVarDef<bool> ConsoleLoginLocal =
CVarDef.Create("console.loginlocal", true, CVar.ARCHIVE | CVar.SERVERONLY);
/// <summary>
/// Automatically log in the given user as host, equivalent to the <c>promotehost</c> command.
/// </summary>
public static readonly CVarDef<string> ConsoleLoginHostUser =
CVarDef.Create("console.login_host_user", "", CVar.ARCHIVE | CVar.SERVERONLY);
/*
* Database stuff
*/
public static readonly CVarDef<string> DatabaseEngine =
CVarDef.Create("database.engine", "sqlite", CVar.SERVERONLY);
public static readonly CVarDef<string> DatabaseSqliteDbPath =
CVarDef.Create("database.sqlite_dbpath", "preferences.db", CVar.SERVERONLY);
/// <summary>
/// Milliseconds to asynchronously delay all SQLite database acquisitions with.
/// </summary>
/// <remarks>
/// Defaults to 1 on DEBUG, 0 on RELEASE.
/// This is intended to help catch .Result deadlock bugs that only happen on postgres
/// (because SQLite is not actually asynchronous normally)
/// </remarks>
public static readonly CVarDef<int> DatabaseSqliteDelay =
CVarDef.Create("database.sqlite_delay", DefaultSqliteDelay, CVar.SERVERONLY);
/// <summary>
/// Amount of concurrent SQLite database operations.
/// </summary>
/// <remarks>
/// Note that SQLite is not a properly asynchronous database and also has limited read/write concurrency.
/// Increasing this number may allow more concurrent reads, but it probably won't matter much.
/// SQLite operations are normally ran on the thread pool, which may cause thread pool starvation if the concurrency is too high.
/// </remarks>
public static readonly CVarDef<int> DatabaseSqliteConcurrency =
CVarDef.Create("database.sqlite_concurrency", 3, CVar.SERVERONLY);
#if DEBUG
private const int DefaultSqliteDelay = 1;
#else
private const int DefaultSqliteDelay = 0;
#endif
public static readonly CVarDef<string> DatabasePgHost =
CVarDef.Create("database.pg_host", "localhost", CVar.SERVERONLY);
public static readonly CVarDef<int> DatabasePgPort =
CVarDef.Create("database.pg_port", 5432, CVar.SERVERONLY);
public static readonly CVarDef<string> DatabasePgDatabase =
CVarDef.Create("database.pg_database", "ss14", CVar.SERVERONLY);
public static readonly CVarDef<string> DatabasePgUsername =
2022-10-04 14:24:19 +11:00
CVarDef.Create("database.pg_username", "postgres", CVar.SERVERONLY);
public static readonly CVarDef<string> DatabasePgPassword =
CVarDef.Create("database.pg_password", "", CVar.SERVERONLY | CVar.CONFIDENTIAL);
2020-11-02 00:04:58 +01:00
/// <summary>
/// Max amount of concurrent Postgres database operations.
/// </summary>
public static readonly CVarDef<int> DatabasePgConcurrency =
CVarDef.Create("database.pg_concurrency", 8, CVar.SERVERONLY);
2023-12-10 16:30:12 +01:00
/// <summary>
/// Milliseconds to asynchronously delay all PostgreSQL database operations with.
/// </summary>
/// <remarks>
/// This is intended for performance testing. It works different from <see cref="DatabaseSqliteDelay"/>,
/// as the lag is applied after acquiring the database lock.
/// </remarks>
public static readonly CVarDef<int> DatabasePgFakeLag =
CVarDef.Create("database.pg_fake_lag", 0, CVar.SERVERONLY);
2020-12-30 01:18:39 +01:00
// Basically only exists for integration tests to avoid race conditions.
public static readonly CVarDef<bool> DatabaseSynchronous =
CVarDef.Create("database.sync", false, CVar.SERVERONLY);
/*
* Interface
*/
2024-04-07 11:35:55 +10:00
public static readonly CVarDef<string> UIDefaultInterfaceTheme =
CVarDef.Create("interface.default_theme", "SS14DefaultTheme", CVar.CLIENTONLY);
2024-04-07 11:35:55 +10:00
public static readonly CVarDef<string> UIClickSound =
CVarDef.Create("interface.click_sound", "/Audio/UserInterface/click.ogg", CVar.REPLICATED);
public static readonly CVarDef<string> UIHoverSound =
CVarDef.Create("interface.hover_sound", "/Audio/UserInterface/hover.ogg", CVar.REPLICATED);
/*
* Outline
*/
public static readonly CVarDef<bool> OutlineEnabled =
CVarDef.Create("outline.enabled", true, CVar.CLIENTONLY);
/*
* Parallax
*/
public static readonly CVarDef<bool> ParallaxEnabled =
2020-12-04 11:04:43 +01:00
CVarDef.Create("parallax.enabled", true, CVar.CLIENTONLY);
public static readonly CVarDef<bool> ParallaxDebug =
2020-12-04 11:04:43 +01:00
CVarDef.Create("parallax.debug", false, CVar.CLIENTONLY);
2022-05-04 17:55:21 +01:00
public static readonly CVarDef<bool> ParallaxLowQuality =
CVarDef.Create("parallax.low_quality", false, CVar.ARCHIVE | CVar.CLIENTONLY);
Physics (#3485) * Content side new physics structure * BroadPhase outline done * But we need to fix WorldAABB * Fix static pvs AABB * Fix import * Rando fixes * B is for balloon * Change human mob hitbox to circle * Decent movement * Start adding friction to player controller I think it's the best way to go about it to keep other objects somewhat consistent for physics. * This baby can fit so many physics bugs in it. * Slight mob mover optimisations. * Player mover kinda works okay. * Beginnings of testbed * More testbed * Circlestack bed * Namespaces * BB fixes * Pull WorldAABB * Joint pulling * Semi-decent movement I guess. * Pulling better * Bullet controller + old movement * im too dumb for this shit * Use kinematic mob controller again It's probably for the best TBH * Stashed shitcode * Remove SlipController * In which movement code is entirely refactored * Singularity fix * Fix ApplyLinearImpulse * MoveRelay fix * Fix door collisions * Disable subfloor collisions Saves on broadphase a fair bit * Re-implement ClimbController * Zumzum's pressure * Laggy item throwing * Minor atmos change * Some caching * Optimise controllers * Optimise CollideWith to hell and back * Re-do throwing and tile friction * Landing too * Optimise controllers * Move CCVars and other stuff swept is beautiful * Cleanup a bunch of controllers * Fix shooting and high pressure movement controller * Flashing improvements * Stuff and things * Combat collisions * Combat mode collisions * Pulling distance joint again * Cleanup physics interfaces * More like scuffedularity * Shit's fucked * Haha tests go green * Bigmoneycrab * Fix dupe pulling * Zumzum's based fix * Don't run tile friction for non-predicted bodies * Experimental pulling improvement * Everything's a poly now * Optimise AI region debugging a bit Could still be better but should improve default performance a LOT * Mover no updater * Crazy kinematic body idea * Good collisions * KinematicController * Fix aghost * Throwing refactor * Pushing cleanup * Fix throwing and footstep sounds * Frametime in ICollideBehavior * Fix stuff * Actually fix weightlessness * Optimise collision behaviors a lot * Make open lockers still collide with walls * powwweeerrrrr * Merge master proper * AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA * AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA * AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA * Ch ch ch changesss * SHIP IT * Fix #if DEBUG * Fix vaulting and item locker collision * Fix throwing * Editing yaml by hand what can go wrong * on * Last yaml fixes * Okay now it's fixed * Linter Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com> Co-authored-by: Vera Aguilera Puerto <zddm@outlook.es>
2021-03-08 04:09:59 +11:00
/*
* Physics
*/
/// <summary>
/// When a mob is walking should its X / Y movement be relative to its parent (true) or the map (false).
/// </summary>
public static readonly CVarDef<bool> RelativeMovement =
CVarDef.Create("physics.relative_movement", true, CVar.ARCHIVE | CVar.REPLICATED | CVar.SERVER);
Physics (#3485) * Content side new physics structure * BroadPhase outline done * But we need to fix WorldAABB * Fix static pvs AABB * Fix import * Rando fixes * B is for balloon * Change human mob hitbox to circle * Decent movement * Start adding friction to player controller I think it's the best way to go about it to keep other objects somewhat consistent for physics. * This baby can fit so many physics bugs in it. * Slight mob mover optimisations. * Player mover kinda works okay. * Beginnings of testbed * More testbed * Circlestack bed * Namespaces * BB fixes * Pull WorldAABB * Joint pulling * Semi-decent movement I guess. * Pulling better * Bullet controller + old movement * im too dumb for this shit * Use kinematic mob controller again It's probably for the best TBH * Stashed shitcode * Remove SlipController * In which movement code is entirely refactored * Singularity fix * Fix ApplyLinearImpulse * MoveRelay fix * Fix door collisions * Disable subfloor collisions Saves on broadphase a fair bit * Re-implement ClimbController * Zumzum's pressure * Laggy item throwing * Minor atmos change * Some caching * Optimise controllers * Optimise CollideWith to hell and back * Re-do throwing and tile friction * Landing too * Optimise controllers * Move CCVars and other stuff swept is beautiful * Cleanup a bunch of controllers * Fix shooting and high pressure movement controller * Flashing improvements * Stuff and things * Combat collisions * Combat mode collisions * Pulling distance joint again * Cleanup physics interfaces * More like scuffedularity * Shit's fucked * Haha tests go green * Bigmoneycrab * Fix dupe pulling * Zumzum's based fix * Don't run tile friction for non-predicted bodies * Experimental pulling improvement * Everything's a poly now * Optimise AI region debugging a bit Could still be better but should improve default performance a LOT * Mover no updater * Crazy kinematic body idea * Good collisions * KinematicController * Fix aghost * Throwing refactor * Pushing cleanup * Fix throwing and footstep sounds * Frametime in ICollideBehavior * Fix stuff * Actually fix weightlessness * Optimise collision behaviors a lot * Make open lockers still collide with walls * powwweeerrrrr * Merge master proper * AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA * AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA * AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA * Ch ch ch changesss * SHIP IT * Fix #if DEBUG * Fix vaulting and item locker collision * Fix throwing * Editing yaml by hand what can go wrong * on * Last yaml fixes * Okay now it's fixed * Linter Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com> Co-authored-by: Vera Aguilera Puerto <zddm@outlook.es>
2021-03-08 04:09:59 +11:00
public static readonly CVarDef<float> TileFrictionModifier =
CVarDef.Create("physics.tile_friction", 40.0f, CVar.ARCHIVE | CVar.REPLICATED | CVar.SERVER);
Physics (#3485) * Content side new physics structure * BroadPhase outline done * But we need to fix WorldAABB * Fix static pvs AABB * Fix import * Rando fixes * B is for balloon * Change human mob hitbox to circle * Decent movement * Start adding friction to player controller I think it's the best way to go about it to keep other objects somewhat consistent for physics. * This baby can fit so many physics bugs in it. * Slight mob mover optimisations. * Player mover kinda works okay. * Beginnings of testbed * More testbed * Circlestack bed * Namespaces * BB fixes * Pull WorldAABB * Joint pulling * Semi-decent movement I guess. * Pulling better * Bullet controller + old movement * im too dumb for this shit * Use kinematic mob controller again It's probably for the best TBH * Stashed shitcode * Remove SlipController * In which movement code is entirely refactored * Singularity fix * Fix ApplyLinearImpulse * MoveRelay fix * Fix door collisions * Disable subfloor collisions Saves on broadphase a fair bit * Re-implement ClimbController * Zumzum's pressure * Laggy item throwing * Minor atmos change * Some caching * Optimise controllers * Optimise CollideWith to hell and back * Re-do throwing and tile friction * Landing too * Optimise controllers * Move CCVars and other stuff swept is beautiful * Cleanup a bunch of controllers * Fix shooting and high pressure movement controller * Flashing improvements * Stuff and things * Combat collisions * Combat mode collisions * Pulling distance joint again * Cleanup physics interfaces * More like scuffedularity * Shit's fucked * Haha tests go green * Bigmoneycrab * Fix dupe pulling * Zumzum's based fix * Don't run tile friction for non-predicted bodies * Experimental pulling improvement * Everything's a poly now * Optimise AI region debugging a bit Could still be better but should improve default performance a LOT * Mover no updater * Crazy kinematic body idea * Good collisions * KinematicController * Fix aghost * Throwing refactor * Pushing cleanup * Fix throwing and footstep sounds * Frametime in ICollideBehavior * Fix stuff * Actually fix weightlessness * Optimise collision behaviors a lot * Make open lockers still collide with walls * powwweeerrrrr * Merge master proper * AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA * AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA * AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA * Ch ch ch changesss * SHIP IT * Fix #if DEBUG * Fix vaulting and item locker collision * Fix throwing * Editing yaml by hand what can go wrong * on * Last yaml fixes * Okay now it's fixed * Linter Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com> Co-authored-by: Vera Aguilera Puerto <zddm@outlook.es>
2021-03-08 04:09:59 +11:00
public static readonly CVarDef<float> StopSpeed =
CVarDef.Create("physics.stop_speed", 0.1f, CVar.ARCHIVE | CVar.REPLICATED | CVar.SERVER);
/// <summary>
/// Whether mobs can push objects like lockers.
/// </summary>
/// <remarks>
/// Technically client doesn't need to know about it but this may prevent a bug in the distant future so it stays.
/// </remarks>
public static readonly CVarDef<bool> MobPushing =
CVarDef.Create("physics.mob_pushing", false, CVar.REPLICATED | CVar.SERVER);
/*
* Music
*/
public static readonly CVarDef<bool> LobbyMusicEnabled =
CVarDef.Create("ambience.lobby_music_enabled", true, CVar.ARCHIVE | CVar.CLIENTONLY);
public static readonly CVarDef<bool> EventMusicEnabled =
CVarDef.Create("ambience.event_music_enabled", true, CVar.ARCHIVE | CVar.CLIENTONLY);
/*
* Specific Sounds
*/
// Round end sound (APC Destroyed)
public static readonly CVarDef<bool> RestartSoundsEnabled =
CVarDef.Create("ambience.restart_sounds_enabled", true, CVar.ARCHIVE | CVar.CLIENTONLY);
/*
* Admin sounds
*/
public static readonly CVarDef<bool> AdminSoundsEnabled =
CVarDef.Create("audio.admin_sounds_enabled", true, CVar.ARCHIVE | CVar.CLIENTONLY);
public static readonly CVarDef<string> AdminChatSoundPath =
CVarDef.Create("audio.admin_chat_sound_path", "/Audio/Items/pop.ogg", CVar.ARCHIVE | CVar.CLIENT | CVar.REPLICATED);
public static readonly CVarDef<float> AdminChatSoundVolume =
CVarDef.Create("audio.admin_chat_sound_volume", -5f, CVar.ARCHIVE | CVar.CLIENT | CVar.REPLICATED);
2023-12-13 01:51:30 -07:00
public static readonly CVarDef<string> AHelpSound =
CVarDef.Create("audio.ahelp_sound", "/Audio/Effects/adminhelp.ogg", CVar.ARCHIVE | CVar.CLIENTONLY);
/*
* HUD
*/
public static readonly CVarDef<int> HudTheme =
CVarDef.Create("hud.theme", 0, CVar.ARCHIVE | CVar.CLIENTONLY);
public static readonly CVarDef<bool> HudHeldItemShow =
CVarDef.Create("hud.held_item_show", true, CVar.ARCHIVE | CVar.CLIENTONLY);
public static readonly CVarDef<bool> CombatModeIndicatorsPointShow =
CVarDef.Create("hud.combat_mode_indicators_point_show", true, CVar.ARCHIVE | CVar.CLIENTONLY);
2024-04-07 11:35:55 +10:00
public static readonly CVarDef<bool> LoocAboveHeadShow =
CVarDef.Create("hud.show_looc_above_head", true, CVar.ARCHIVE | CVar.CLIENTONLY);
public static readonly CVarDef<float> HudHeldItemOffset =
CVarDef.Create("hud.held_item_offset", 28f, CVar.ARCHIVE | CVar.CLIENTONLY);
public static readonly CVarDef<bool> HudFpsCounterVisible =
CVarDef.Create("hud.fps_counter_visible", false, CVar.CLIENTONLY | CVar.ARCHIVE);
/*
2021-12-05 14:08:35 +11:00
* NPCs
*/
2021-12-05 14:08:35 +11:00
public static readonly CVarDef<int> NPCMaxUpdates =
2022-09-30 14:39:48 +10:00
CVarDef.Create("npc.max_updates", 128);
2021-12-05 14:08:35 +11:00
public static readonly CVarDef<bool> NPCEnabled = CVarDef.Create("npc.enabled", true);
2022-12-12 14:33:43 +11:00
/// <summary>
/// Should NPCs pathfind when steering. For debug purposes.
/// </summary>
public static readonly CVarDef<bool> NPCPathfinding = CVarDef.Create("npc.pathfinding", true);
/*
* Net
*/
public static readonly CVarDef<float> NetAtmosDebugOverlayTickRate =
CVarDef.Create("net.atmosdbgoverlaytickrate", 3.0f);
public static readonly CVarDef<float> NetGasOverlayTickRate =
CVarDef.Create("net.gasoverlaytickrate", 3.0f);
public static readonly CVarDef<int> GasOverlayThresholds =
CVarDef.Create("net.gasoverlaythresholds", 20);
2020-11-02 00:04:58 +01:00
/*
* Admin
2020-11-02 00:04:58 +01:00
*/
public static readonly CVarDef<bool> AdminAnnounceLogin =
CVarDef.Create("admin.announce_login", true, CVar.SERVERONLY);
public static readonly CVarDef<bool> AdminAnnounceLogout =
CVarDef.Create("admin.announce_logout", true, CVar.SERVERONLY);
Upstrearm sync (#94) * Fix for the salvage ice labs map. (#26928) * done * more work * Automatic changelog update * Update Credits (#26938) Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com> * Fix cryostorage identifying unknown characters as captain (#26927) Fixed cryostorage getting captain's record for unknown jobs. Also localized Unknown job string. * Automatic changelog update * Fixed Honkbot/jonkbot honking like crazy, gave honkbot/jonkbot standard idle ai. (#26939) * Fixed Honkbot/jonkbot honking like crazy, gave honkbot/jonkbot standard idle ai. * Update Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml --------- Co-authored-by: Tayrtahn <tayrtahn@gmail.com> * Automatic changelog update * Bug fix: Force cancellation of RCD constructions if the construction type is changed (#26935) Force cancellation of RCD constructions if the construction type is changed * Fix standart -> standard and dressfilled test fail (#26942) Fix standart -> standard * Add Ability to stop sound when MobState is Dead (#26905) * Add stopsWhenEntityDead to sound components * Convert component * Review * Fix dupe sub --------- Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Automatic changelog update * Fix rockets and lasers looking like they have nothing loaded (#26933) * Automatic changelog update * You can now see paper on crates (with color!) (#26834) * Implement changes on not-cooked branch * Made it work * Fix update appearance calls * Fix extra indents, clean-up code, fix tests hopefully * Fix hammy cagecrate * Fix messing up the yml, add artifact crate specific labels back in * Visual Studio hates yml, sad * Seperate the colors for cargonia * sorry json * make label move with artifact door * Apply suggestion changes Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> * Fix remaining crate offsets, add a few for livestock and graves (why are you labeling graves) and coffin label sprites (why are you labeling coffins??) --------- Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> * Make UtensilSystem and SharpSystem not run AfterInteract if it has already been handled (#25826) * Make UtensilSystem and SharpSystem not run AfterInteract if it has already been handled * merge conflicts --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Automatic changelog update * Add two-message overload to PopupPredicted (#26907) Added two-message overload to PopupPredicted * Update submodule to 218.0.0 (#26945) * Autism pins! (#25597) * hee hee he ha ha * added gold varients, forgive me for my spritework * maints loot, copying from past PRs * Trying to fix RSI * speedran these sprites in break time, pictures will be later * Fixed/Tweaked glows * consensus * gregregation * dam copiryte * oops i forgot to delete 2 fields hope this works * Automatic changelog update * Fix database round start date issues (#26838) How can ONE DATABASE COLUMN have so many cursed issues I don't know, but it certainly pissed off the devil in its previous life. The start_date column on round entities in the database was added by https://github.com/space-wizards/space-station-14/pull/21153. For some reason, this PR gave the column a nonsensical default value instead of making it nullable. This default value causes the code from #25280 to break. It actually trips an assert though that's not what the original issue report ran into. This didn't get noticed on wizden servers because we at some point backfilled the start_date column based on the stored admin logs. So I change the database model to make this column nullable, updated the C# code to match, and made the existing migration set the invalid values to be NULL instead. Cool. Wait how's SQLite handle in this scenario anyways? Well actually turns out the column was *completely broken* in the first place! The code for inserting into the round table was copy pasted between SQLite and PostgreSQL, with the only difference being that the SQLite key manually assigned the primary key instead of letting SQLite AUTOINCREMENT it. And then the code to give a start_date value was only added to the PostgreSQL version (which is actually in the base class already). So for SQLite that column's been filled up with the same invalid default the whole time. Why was the code manually assigning a PK? I checked the SQLite docs for AUTOINCREMENT[1], and the behavior seems appropriate. I removed the SQLite-specific code path and it just seems to work regardless. The migration just sets the old values to NULL too. BUT WAIT, THERE'S MORE! Turns out just doing the migration on SQLite is a pain in the ass! EF Core has to create a new table to apply the nullability change, because SQLite doesn't support proper ALTER COLUMN. This causes the generated SQL commands to be weird and the UPDATE for the migration goes BEFORE the nullability change... I ended up having to make TWO migrations for SQLite. Yay. Fixes #26800 [1]: https://www.sqlite.org/autoinc.html * Fix options menu crashing in replays (#26911) Not having the nullable set properly is annoying but fixing that would probably be a significant amount of work. * Greyscale color clothing (#26943) * greyscales color gloves, color jumpsuits, and shoes * remove popbob * fix test fails * Automatic changelog update * WT550 Buffs + Burst Mode for WT550 & C-20R (#26886) * Slightly increased WT550 Firerate, drastically reduced recoil, and given it the option to fire in 5 round bursts. * Given the C-20 a 5 round burst aswell * Automatic changelog update * make holoparasites actually holographic (#26862) it's over * Automatic changelog update * Add character sheets to board game crate (#26926) add character sheets to board game crate * Automatic changelog update * Game server admin API (#26880) * Reapply "Game server api" (#26871) This reverts commit 3aee19792391cbfb06edb65d6f16f77da0f36f13. * Rewrite 75% of the code it's good now * Wield recoil components (#26915) * WieldRecoilComponents * WieldRecoilComponents * Update Content.Shared/Weapons/Ranged/Components/GunWieldBonusComponent.cs Co-authored-by: Whisper <121047731+QuietlyWhisper@users.noreply.github.com> * Update Content.Shared/Weapons/Ranged/Components/GunWieldBonusComponent.cs --------- Co-authored-by: Whisper <121047731+QuietlyWhisper@users.noreply.github.com> Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> * Clown shoes make you waddle, as God intended (#26338) * Clown shoes make you waddle, as God intended * OOPS * Toned down, client system name fix * Tidy namespacing for @deltanedas * Refactor to handle prediction better, etc. * Resolve PR comments. * Automatic changelog update * Use round time instead of server time for criminal history (#26949) make criminal records computer use round time for history instead of the server time * Rotate and Offset station CCVar nuke (#26175) * no content * add noRot to Europa * bruh. and this * yay * fix * Update debug.yml --------- Co-authored-by: Boaz1111 <149967078+Boaz1111@users.noreply.github.com> Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Tayrtahn <tayrtahn@gmail.com> Co-authored-by: superjj18 <gagnonjake@gmail.com> Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Co-authored-by: GreaseMonk <1354802+GreaseMonk@users.noreply.github.com> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> Co-authored-by: DrSmugleaf <10968691+DrSmugleaf@users.noreply.github.com> Co-authored-by: Verm <32827189+Vermidia@users.noreply.github.com> Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> Co-authored-by: Terraspark4941 <terraspark4941@gmail.com> Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com> Co-authored-by: Flareguy <78941145+Flareguy@users.noreply.github.com> Co-authored-by: BramvanZijp <56019239+BramvanZijp@users.noreply.github.com> Co-authored-by: Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com> Co-authored-by: Tyzemol <85772526+Tyzemol@users.noreply.github.com> Co-authored-by: Froffy025 <78222136+Froffy025@users.noreply.github.com> Co-authored-by: Whisper <121047731+QuietlyWhisper@users.noreply.github.com> Co-authored-by: Hannah Giovanna Dawson <karakkaraz@gmail.com> Co-authored-by: ilya.mikheev.coder <imc-ext+github@ilyamikcoder.com>
2024-04-14 20:34:16 +03:00
/// <summary>
/// The token used to authenticate with the admin API. Leave empty to disable the admin API. This is a secret! Do not share!
/// </summary>
public static readonly CVarDef<string> AdminApiToken =
CVarDef.Create("admin.api_token", string.Empty, CVar.SERVERONLY | CVar.CONFIDENTIAL);
/// <summary>
/// Should users be able to see their own notes? Admins will be able to see and set notes regardless
/// </summary>
public static readonly CVarDef<bool> SeeOwnNotes =
CVarDef.Create("admin.see_own_notes", false, CVar.ARCHIVE | CVar.REPLICATED | CVar.SERVER);
/// <summary>
/// Should the server play a quick sound to the active admins whenever a new player joins?
/// </summary>
public static readonly CVarDef<bool> AdminNewPlayerJoinSound =
CVarDef.Create("admin.new_player_join_sound", false, CVar.SERVERONLY);
/// <summary>
/// The amount of days before the note starts fading. It will slowly lose opacity until it reaches stale. Set to 0 to disable.
/// </summary>
public static readonly CVarDef<double> NoteFreshDays =
CVarDef.Create("admin.note_fresh_days", 91.31055, CVar.ARCHIVE | CVar.REPLICATED | CVar.SERVER);
/// <summary>
/// The amount of days before the note completely fades, and can only be seen by admins if they press "see more notes". Set to 0
/// if you want the note to immediately disappear without fading.
/// </summary>
public static readonly CVarDef<double> NoteStaleDays =
CVarDef.Create("admin.note_stale_days", 365.2422, CVar.ARCHIVE | CVar.REPLICATED | CVar.SERVER);
/// <summary>
/// How much time does the user have to wait in seconds before confirming that they saw an admin message?
/// </summary>
public static readonly CVarDef<float> MessageWaitTime =
CVarDef.Create("admin.message_wait_time", 3f, CVar.ARCHIVE | CVar.REPLICATED | CVar.SERVER);
/// <summary>
/// Default severity for role bans
/// </summary>
public static readonly CVarDef<string> RoleBanDefaultSeverity =
CVarDef.Create("admin.role_ban_default_severity", "medium", CVar.ARCHIVE | CVar.SERVER | CVar.REPLICATED);
/// <summary>
/// Default severity for department bans
/// </summary>
public static readonly CVarDef<string> DepartmentBanDefaultSeverity =
CVarDef.Create("admin.department_ban_default_severity", "medium", CVar.ARCHIVE | CVar.SERVER | CVar.REPLICATED);
/// <summary>
/// Default severity for server bans
/// </summary>
public static readonly CVarDef<string> ServerBanDefaultSeverity =
CVarDef.Create("admin.server_ban_default_severity", "High", CVar.ARCHIVE | CVar.SERVER | CVar.REPLICATED);
/// <summary>
/// Whether a server ban will ban the player's ip by default.
/// </summary>
public static readonly CVarDef<bool> ServerBanIpBanDefault =
CVarDef.Create("admin.server_ban_ip_ban_default", true, CVar.ARCHIVE | CVar.SERVER | CVar.REPLICATED);
/// <summary>
/// Whether a server ban will ban the player's hardware id by default.
/// </summary>
public static readonly CVarDef<bool> ServerBanHwidBanDefault =
CVarDef.Create("admin.server_ban_hwid_ban_default", true, CVar.ARCHIVE | CVar.SERVER | CVar.REPLICATED);
/// <summary>
/// Whether to use details from last connection for ip/hwid in the BanPanel.
/// </summary>
public static readonly CVarDef<bool> ServerBanUseLastDetails =
CVarDef.Create("admin.server_ban_use_last_details", true, CVar.ARCHIVE | CVar.SERVER | CVar.REPLICATED);
/// <summary>
/// Whether to erase a player's chat messages and their entity from the game when banned.
/// </summary>
public static readonly CVarDef<bool> ServerBanErasePlayer =
CVarDef.Create("admin.server_ban_erase_player", false, CVar.ARCHIVE | CVar.SERVER | CVar.REPLICATED);
/// <summary>
/// Minimum players sharing a connection required to create an alert. -1 to disable the alert.
/// </summary>
/// <remarks>
/// If you set this to 0 or 1 then it will alert on every connection, so probably don't do that.
/// </remarks>
public static readonly CVarDef<int> AdminAlertMinPlayersSharingConnection =
CVarDef.Create("admin.alert.min_players_sharing_connection", -1, CVar.SERVERONLY);
/// <summary>
/// Minimum explosion intensity to create an admin alert message. -1 to disable the alert.
/// </summary>
public static readonly CVarDef<int> AdminAlertExplosionMinIntensity =
CVarDef.Create("admin.alert.explosion_min_intensity", 60, CVar.SERVERONLY);
/// <summary>
/// Minimum particle accelerator strength to create an admin alert message.
/// </summary>
public static readonly CVarDef<int> AdminAlertParticleAcceleratorMinPowerState =
CVarDef.Create("admin.alert.particle_accelerator_min_power_state", 5, CVar.SERVERONLY); // strength 4
/// <summary>
/// Should the ban details in admin channel include PII? (IP, HWID, etc)
Upstream suka (#45) * Make BaseMedicalPDA abstract (#26567) * Fix GasMixers/Filters not working (#26568) * Fix GasMixers/Filters not working * OKAY GAS FILTERS TOO --------- Co-authored-by: Plykiya <plykiya@protonmail.com> * Industrial Reagent Grinder Hotfix (#26571) fixed * Give stores the ability to check for owner only (#26573) adds a check if the store belongs to the user * Fix round start crash (causing instant restart) (#26579) * Fix round start crash * Make `TryCreateObjective` more error tolerant * Update engine to v217.1.0 (#26588) * Fix initial infected icon hiding (#26585) * Fix Meta evac shuttle name (#26587) * Make timer ignore client predict setting (#26554) * Make timer ignore client predict setting * making tests run --------- Co-authored-by: wrexbe <wrexbe@protonmail.com> * Make advertise system survive no map inits (#26553) * Make advertise system survive no map inits * Add comment to try prevent future bugs * Update Credits (#26589) Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com> * Fix fox spawn on reach (#26584) Co-authored-by: wrexbe <wrexbe@protonmail.com> * Removes SCAF armor (#26566) * removes scaf armor * replace maint loot spawner spot with basic helmet * Update Patrons.yml (#26578) * Automatic changelog update * Make aghost command work on other players using optional argument (#26546) * Translations * Make aghost command work on other players using optional argument * Reviews * Automatic changelog update * Add new component to Make sound on interact (#26523) * Adds new Component: EmitSoundOnInteractUsing * Missed an import * File-scoping * Replace ID check with Prototype check * Moved component and system to shared. Set prediction to true. * Removed impoper imports and changed namespace of component to reflect changed folder. * Following function naming theme * All this code is basically deltanedas's, but it was a learning experience for me * Update Content.Shared/Sound/Components/EmitSoundOnInteractUsingComponent.cs * Update Content.Shared/Sound/Components/EmitSoundOnInteractUsingComponent.cs --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> * Increase syndi duffelbag storage (#26565) * Increase syndi duffelbag storage * weh * Automatic changelog update * Adds construction/decon graphs for plastic flaps (#26341) * Adds construction/decon graphs for plastic flaps * Dang arbitrage * undo conflict --------- Co-authored-by: Velcroboy <velcroboy333@hotmail.com> * Automatic changelog update * Makes secglasses roundstart (#26487) * makes secglasses roundstart * fix epic fail * fix tests questionmark? * Update Resources/Prototypes/Entities/Clothing/Eyes/glasses.yml Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> --------- Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> * Automatic changelog update * Toilet Upgrade (needs review) (#22133) * Toilet Draft * fixes * toilets now have secret stash to place items in cistern. * fixes * plungers now unblock toilets. * fix sprite * new sprites and fix * fixes * improve seat sprites. * fix * removed visualisersystem changed to genericvisualizers * flush sound for toilets and copyright for toilet sprites. * fix atrributions * fixes * fix datafield flushtime * sprite improvements * fixes * multiple changes * fix * fix * fixes remove vv * moved stash related functions to secret stash system from toilet. * fix * fix * changes for recent review. * fix * fix * Automatic changelog update * Uplink store interface searchable with a searchbar. (#24287) * Can now search the uplink store interface with a searchbar. * Search text updates no longer send server messages. Persists listings locally. * Formatting fixes and tidying. * Added helper method to get localised name and description (or otherwise, entity name and description) of store listing items. * Update Content.Client/Store/Ui/StoreMenu.xaml * Review change; moved localisation helper functions to their own class. * Prevent thread-unsafe behaviour as-per review. * Remove dummy boxcontainer --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Automatic changelog update * Improved RCDs (#22799) * Initial radial menu prototyping for the RCD * Radial UI buttons can send messages to the server * Beginning to update RCDSystem * RCD building system in progress * Further updates * Added extra effects, RCDSystem now reads RCD prototype data * Replacing tiles is instant, multiple constructions are allowed, deconstruction is broken * Added extra functionality to RadialContainers plus documentation * Fixed localization of RCD UI strings * Menu opens near cursor, added basic RCD * Avoiding merge conflict * Implemented atomized construction / deconstruction rules * Increased RCD ammo base charges * Moved input context definition to content * Removed obsoleted code * Updates to system * Switch machine and computer frames for electrical cabling * Added construction ghosts * Fixed issue with keybind detection code * Fixed RCD construction ghost mispredications * Code clean up * Updated deconstruction effects * RCDs effects don't rotate * Code clean up * Balancing for ammo counts * Code clean up * Added missing localized strings * More clean up * Made directional window handling more robust * Added documentation to radial menus and made them no longer dependent on Content * Made radial containers more robust * Further robustness to the radial menu * The RCD submenu buttons are only shown when the destination layer has at least one children * Expanded upon deconstructing plus construction balance * Fixed line endings * Updated list of RCD deconstructable entities. Now needs a component to deconstruct instead of a tag * Bug fixes * Revert unnecessary change * Updated RCD strings * Fixed bug * More fixes * Deconstructed tiles/subflooring convert to lattice instead * Fixed failed tests (Linux doesn't like invalid spritespecifer paths) * Fixing merge conflict * Updated airlock assembly * Fixing merge conflict * Fixing merge conflict * More fixing... * Removed erroneous project file change * Fixed string handling issue * Trying to fix merge conflict * Still fixing merge conflicts * Balancing * Hidden RCD construction ghosts when in 'build' mode * Fixing merge conflict * Implemented requested changes (Part 1) * Added more requested changes * Fix for failed test. Removed sussy null suppression * Made requested changes - custom construction ghost system was replaced * Fixing merge conflict * Fixed merge conflict * Fixed bug in RCD construction ghost validation * Fixing merge conflict * Merge conflict fixed * Made required update * Removed lingering RCD deconstruct tag * Fixing merge conflict * Merge conflict fixed * Made requested changes * Bug fixes and balancing * Made string names more consistent * Can no longer stack catwalks * Automatic changelog update * Update submodule to 217.2.0 (#26592) * Southern accent (#26543) * created the AccentComponent and the AccentSystem * word replacement schtuhff * made it a trait fr ongg!!1 * Update Content.Server/Speech/EntitySystems/SouthernAccentSystem.cs --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> * Prevent storing liquids in equipped buckets (#24412) * Block access to solutions in equipped spillables. * Stop Drink verb appearing if the solution can't be accessed. * Automatic changelog update * Fix 'Hypopen shouldn't display solution examine text' (#26453) * stealthy hypo * ExaminableSolution hand check when in covert implement. ExaminableSolution now has 'hidden' datafield to enable chemical inspection only in hand. * cleaning code * more cleaning * Hidden datafield renamed to HeldOnly * review --------- Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Automatic changelog update * Revert Paint (#26593) * Revert "Fix build (#26258)" This reverts commit 6de5fbfafbde700d711a566f6a43f05f7a99e455. * Revert "Spray Paint (Review Ready) (#23003)" This reverts commit e4d5e7f1aebfc37b1bc3453fdb39578f3897b6a1. # Conflicts: # Resources/Prototypes/Entities/Structures/Holographic/projections.yml * Fix: Prevent single-use hyposprays from getting the toggle draw verb (#26595) Prevent single-use hyposprays from getting the toggle draw verb Co-authored-by: Plykiya <plykiya@protonmail.com> * MeleeHitSoundSystem (#25005) * Began work to unscrew melee noises * finished * cleanup * cleanup * Update Content.Server/Weapons/Melee/MeleeWeaponSystem.cs Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com> * _Style * Fix merge --------- Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Remove physics comp from VendingMachineWallmount (#25632) * Remove physics comp from VendingMachineWallmount * Fixtures removal --------- Co-authored-by: Jeff <velcroboy333@hotmail.com> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Remake hairflowers (#25475) * Add more lily usage (orange hairflower and flowercrown) * comit 2 * ee * more fixes * w * im stupid * bring poppy in authodrobe * weh --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> * Automatic changelog update * Injector UI shows TransferAmount change, Spilling liquid changes Injector mode (#26596) * Injector UI shows TransferAmount change, spill changes mode * Update Content.Shared/Fluids/SharedPuddleSystem.Spillable.cs * Update Content.Shared/Fluids/SharedPuddleSystem.Spillable.cs --------- Co-authored-by: Plykiya <plykiya@protonmail.com> Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> * Update submodule to 217.2.1 (#26599) * disallow unanchoring or opening panels on locked emitters/APEs (#26600) * disallow unanchoring or opening panels on locked emitters/APEs * no locking open panels * oops * needback feedback * Update Content.Shared/Lock/LockSystem.cs * Update Content.Shared/Lock/LockSystem.cs * Update Content.Shared/Lock/LockSystem.cs * sanity --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Automatic changelog update * Fix grave digging sound indefinitely playing if dug by aghost. (#26420) Admins bypass doafters. As such, the code that runs on doafter completion is ran before the sound is actually created. This then leads to the sound never being stopped, and as such it would infinitely play. This commit gets around the issue by manually stopping the sound should the doafter fail to start. If we could be sure that the doafter would never fail, then we could just move the call to StartDigging above starting the doafter but this is currently not possible. Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Make the buttons on the map ui not squished (#26604) Make the map ui work Co-authored-by: wrexbe <wrexbe@protonmail.com> * Combine flower crown and wreath (#26605) * Combine flower crown and wreath * huh * huuh :trollface: * Automatic changelog update * Add AP damage to throwing knives (#26380) * add * ap * no more stam dmg * Automatic changelog update * cancelable brig timers (#26557) brig timers now cancelable. also some screensystem yakshave * Fix orientation of roller skate sprites (#26627) Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es> * Automatic changelog update * Fix GastTileOverlay sending redundant data (#26623) Fix GastTileOverlay not updating properly * Auto DeAdmin sooner (#26551) Co-authored-by: wrexbe <wrexbe@protonmail.com> * Add briefcase to curadrobe and lawdrobe, and some briefcases cleanup (#26527) * Add briefcase to curadrobe and some briefcases cleanup * also add to lawdrobe * Automatic changelog update * Fix some text overflow bugs in HUD (#26615) * Don't clip text in item status * Fix overflow in examine tooltip --------- Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es> * Adds two milk cartons to the BoozeOMat (#26635) * Automatic changelog update * made the hover text less vague (sorry) (#26630) * blacklisted throwing knifes from pneumatic cannon (#26628) * Fix radio jammer not blocking suit sensors. (#26632) As it turns out, they are not in fact on their own netid. They are actually just on wireless. The way I had tested my previous pr led to this mistake being made. I originally had the radio jammer block wireless as well, but decided to take out under the flase assumption that it suit sensors were actually on their own netid and did not require the ability to block all wireless packets at the last moment. * Fix dirt decals in reach not being cleanable (#26636) made all dirt decals cleanable Co-authored-by: hamurlik <renoDeath@protonmail.com> * Automatic changelog update * Replace drill_hit.ogg and drill_use.ogg with better sounds (#26622) * Replace drill_hit.ogg and drill_use.ogg with better sounds * Fix attribution source for drill_hit.ogg * Update Resources/Audio/Items/attributions.yml Co-authored-by: Kara <lunarautomaton6@gmail.com> * Update Resources/Audio/Items/attributions.yml Co-authored-by: Kara <lunarautomaton6@gmail.com> --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Co-authored-by: Kara <lunarautomaton6@gmail.com> * Gave Blast door access permissions (#26606) Added access reader to all blast doors. Added pre configured blast doors for engineering and science. * Gives all wheeled objects low friction (#26601) * gives all wheeled objects friction * adjustments to sum stuff * Automatic changelog update * Combine solution injection systems; Fix embeddable injectors (#26268) * Combine injection systems * Update Content.Server/Chemistry/EntitySystems/SolutionInjectOnEventSystem.cs --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> * Automatic changelog update * Add ValueList import (#26640) * Change assault borg modules texture (#26502) * Update borg_modules.yml * Fix borg_modules.yml? * Uh --------- Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Automatic changelog update * Add Cyborg Emote Sounds (#26594) * Hal 9000's first emote * Add Chime emote & Change variation to 0.05 * Modify Buzz emote * Add Buzz-two emote * modified Horn * add ping emote * add slowclap emote * Convert slowclap.ogg to mono, reflect change in attribution.yml * fix capitalization for all chatMessages && change all catagory to category * remove all traces of slowclap.ogg * forgor one file smh * collating copywrite * spelling mistakes will be the death of me * more spelling mistakes * change yml string to list * Automatic changelog update * Coordinates Disks & Shuttle FTL Travel (#23240) * Adds the CentComm Disk and configures it to work with direct-use shuttles * Added functionality for drone shuttles (i.e. cargo shuttle) * Adds support for pods, and a disk console object for disks to be inserted into. Also sprites. * Added the disk to HoP's locker * Removed leftover logs & comments * Fix for integration test * Apply suggestions from code review (formatting & proper DataField) Co-authored-by: 0x6273 <0x40@keemail.me> * Fix integration test & changes based on code review * Includes Disk Cases to contain Coordinate Disks, which are now CDs instead of Floppy Disks * Check pods & non-evac shuttles for CentCom travel, even in FTL * Import * Remove CentCom travel restrictions & pod disk consoles * Major changes that changes the coordinates disk system to work with salvage expeditions * Missed CC diskcase removal * Fix build * Review suggestions and changes * Major additional changes after merge * Minor tag miss * Integration test fix * review --------- Co-authored-by: 0x6273 <0x40@keemail.me> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Automatic changelog update * Add door electronics access configuration menu (#17778) * Add door electronics configuration menu * Use file-scoped namespaces Signed-off-by: c4llv07e <kseandi@gmail.com> * Open door electronics configuration menu only with network configurator Signed-off-by: c4llv07e <kseandi@gmail.com> * Doors will now try to move their AccessReaderComponent to their door electronics when the map is initialized Signed-off-by: c4llv07e <kseandi@gmail.com> * Make the access list in the id card computer a separate control Signed-off-by: c4llv07e <kseandi@gmail.com> * Fix merge conflict Signed-off-by: c4llv07e <kseandi@gmail.com> * Remove DoorElectronics tag Signed-off-by: c4llv07e <kseandi@gmail.com> * Integrate doors with #17927 Signed-off-by: c4llv07e <kseandi@gmail.com> * Move door electornics ui stuff to the right place Signed-off-by: c4llv07e <kseandi@gmail.com> * Some review fixes Signed-off-by: c4llv07e <kseandi@gmail.com> * More fixes Signed-off-by: c4llv07e <kseandi@gmail.com> * review fix Signed-off-by: c4llv07e <kseandi@gmail.com> * move all accesses from airlock prototypes to door electronics Signed-off-by: c4llv07e <kseandi@gmail.com> * rework door electronics config access list Signed-off-by: c4llv07e <kseandi@gmail.com> * Remove Linq from the door electronics user interface * [WIP] Add EntityWhitelist to the activatable ui component Signed-off-by: c4llv07e <kseandi@gmail.com> * Better interaction system Signed-off-by: c4llv07e <kseandi@gmail.com> * Refactor Signed-off-by: c4llv07e <kseandi@gmail.com> * Fix some door electronics not working without AccessReaderComponent Signed-off-by: c4llv07e <kseandi@gmail.com> * Move AccessReaderComponent update code to the AccessReaderSystem Signed-off-by: c4llv07e <kseandi@gmail.com> * Remove unnecesary newlines in the door access prototypes Signed-off-by: c4llv07e <kseandi@gmail.com> * Remove unused variables in access level control Signed-off-by: c4llv07e <kseandi@gmail.com> * Remove unnecessary method from the door electronics configuration menu Signed-off-by: c4llv07e <kseandi@gmail.com> * [WIP] change access type from string to ProtoId<AccessLevelPrototype> Signed-off-by: c4llv07e <kseandi@gmail.com> * Remove unused methods Signed-off-by: c4llv07e <kseandi@gmail.com> * Newline fix Signed-off-by: c4llv07e <kseandi@gmail.com> * Restored to a functional state Signed-off-by: c4llv07e <kseandi@gmail.com> * Fix access configurator not working with door electronics AccessReaderComponent Signed-off-by: c4llv07e <kseandi@gmail.com> * Replace all string access fields with ProtoId Signed-off-by: c4llv07e <kseandi@gmail.com> * move access level control initialization into Populate method Signed-off-by: c4llv07e <kseandi@gmail.com> * Review --------- Signed-off-by: c4llv07e <kseandi@gmail.com> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Automatic changelog update * scoopable ash and foam, solution transfer prediction (#25832) * move SolutionTransfer to shared and predict as much as possible * fully move OpenableSystem to shared now that SolutionTransfer is * fix imports for everything * doc for solution transfer system * trolling * add scoopable system * make ash and foam scoopable * untroll * untroll real * make clickable it work * troll * the scooping room --------- Co-authored-by: deltanedas <@deltanedas:kde.org> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Replace the teleportation logic on the SCRAM implant! (#26429) * Replace the teleportation logic on the SCRAM implant! Now instead of just trying to pick a random tile in range 20 times, the scram teleportation logic now: - Gets a list of grids in range - Until a suitable tile is picked it picks a random grid - From that grid it picks a random tile. - If the tile is suitable, then it is set as the target and the user will be teleported there. - Grids and tiles are randomly picked as outlined above until a valid tile is found, or all valid grids and tiles are exhausted. - Should no suitable tile be found then they get teleported to the same position they are at. Effectively not teleporting them. * Actually make the defaults sane which I forgor in the last commit * Extract tile section to its own function. Bias selection for current grid. Use proper coords for box. * Address reviews as much as possible * Address reviews * Refactored AdvertiseComponent (#26598) * Made it better * ok * alright --------- Co-authored-by: wrexbe <wrexbe@protonmail.com> * Bartender "Essentials" (#25367) * drinks round 1 saving my progress before my hard drive explodes * test 2 please work * name fixes whoops * Update drinks.yml * various fixes am dumb * add sol dry to vends more fixes and changes, yippee! * more fixes & ingame testing shrimple tests * last fixes :trollface: should be ready for pr now * Update soda.yml sate thirst * Automatic changelog update * Add ERT Chaplain (#25956) * ERT Chaplain * Make BibleUser * It was not intended * reword my poor words * 1984 a comment that I decided was unnecessary. * Update Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> * Changes in chemicals page in guidebook (#25831) * Added pages to chemical categories The chemical categories have their own page now. Added the "Chemical Tabs" in /ServerInfo/Guidebook. Moved the Chemicals code from shiftsandjobs.yml to its own .yml file which is "chemicals.yml". * Update guides.ftl * Update chemicals.yml Changed the guide entry's ID for the medical tab from Medicine to Medicinal. Hope this works... * Update Resources/ServerInfo/Guidebook/Chemical Tabs/Biological.xml Co-authored-by: exincore <me@exin.xyz> * Update Resources/ServerInfo/Guidebook/Chemical Tabs/Foods.xml Co-authored-by: exincore <me@exin.xyz> * Update Resources/ServerInfo/Guidebook/Chemical Tabs/Elements.xml Co-authored-by: exincore <me@exin.xyz> * Update Resources/ServerInfo/Guidebook/Chemical Tabs/Narcotics.xml Co-authored-by: exincore <me@exin.xyz> * Update Resources/ServerInfo/Guidebook/Chemical Tabs/Toxins.xml Co-authored-by: exincore <me@exin.xyz> * Fixed a few errors and stuff! A few typos have been fixed thanks to exincore. Added dedicated .xml files to be used for the dedicated category pages (Medicinal and Botanical pages). Made it so it doesn't use any duplicated IDs anymore. If there's more problems, please do tell so I can fix it! * Update settings.json * Fix? --------- Co-authored-by: exincore <me@exin.xyz> * Automatic changelog update * Anomalies behaviours (#24683) * Added new anomaly particle * Add basic anomaly behaviour * +2 parametres * add functional to new particle * add components to behaviours * big content * add shuffle, moved thing to server * clean up * fixes * random pick redo * bonjour behavioUr * fix AJCM * fix * add some new behaviours * power modifier behaviour * rmeove timer * new event for update ui fix * refactor! * fixes * enum * Fix mapinit * Minor touches --------- Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Automatic changelog update * Fix clipping/overlap in lathe machine UIs (#26646) * Add scrollbars to lathe material list when necessary * Fix bug where shrinking window would cause elements to overlap --------- Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es> * Added chat window transparency slider to options (#24990) * Adds a new slider to the misc tab in options that lets the player set chat window transparency * Tweaked variable names * Fixed order to match UI * Renamed set chat window transparency function * Changed and refactored to opacity instead of transparency * Remove unnecessary int to float conversions Slider used to be 0-100 while the CCVar was 0.0-1.0f. This is confusing and was only used for rounding to 2 decimal points. * Round the value to two decimal points * Remove rounding for now * Rename * Unhardcode chat color by moving to stylesheet * Fix indent * Make opacity slider only change opacity --------- Co-authored-by: Your Name <you@example.com> Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com> * Automatic changelog update * Infinity books (#25840) * setup text data * roundstart reshuffling keywords with gibberish words * saved data categorized * add book with hints * start redrawing books * +4 book design * +books +random visual upgrade * finish first file * finish lore file * finish with books.rsi now authorbooks.rsi... * aurora! and some fix * nuke author books * speelbuke update * finish respriting work * fix scientist guide visual * setup datasets * setup stupid funny random story * restore author books, upgrade hint generation * add variety to story generator * add learning system * minor textgen edit * file restruct, hint count variation * more restruct * more renaming add basis learning system logic. Spears locked for special book for test. * nuke all systems, for splitting PR gods * typo fix * update migration with deleted books * add random story books to maint * Update construction-system.ftl * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * typo fix * interchangeably * final * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com> * "." * Update Content.Server/Paper/PaperRandomStorySystem.cs Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com> * Ubazer fix * inadequate * localized * Update meta.json * fuck merge conflicts * fix jani book --------- Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com> * Automatic changelog update * Resprite ambuzol plus pills (#26651) * Automatic changelog update * Fixed air injector visuals (#26654) * Make cyborgs hands explosion proof. (#26515) * Make the advanced treatment modules beakers explosion-proof. * undo changes * Epic rename fail * Explosion recursion data field * Logic for data field * Automatic changelog update * Automatic changelog update * Make typing indicator shaded (#26678) * Automatic changelog update * Validate wire layout prototypes and remove invalid WiresComponents (#26682) Validate wire layout prototypes; delete invalid wirescomponents. * Increase time inbetween anomaly pulses (#26677) nerf anomaly pulse delays * Automatic changelog update * Fix for items dropped being rotated to world north (#26662) * Fix rotation of dropped items * combined world position rotation function for dumpable * scuffed implementation? * less scuffed? * even less scuffed... I guess * capital D --------- Co-authored-by: Plykiya <plykiya@protonmail.com> * Automatic changelog update * fix double interaction popup (#26684) change popentity to popupclient * disable foam scooping (#26686) Co-authored-by: deltanedas <@deltanedas:kde.org> * Automatic changelog update * Little disk printer sprite tweaks (#26711) * Little disk printer sprite tweaks * ill change this aswell * fixed white_box.png (#26714) * Delete Resources/Textures/Decals/bricktile.rsi/white_box.png * Readded fixed version one pixel change * New lobby art: TerminalStation (#26505) woop woop * Automatic changelog update * Unidentified corpses respect gender pronouns (#26715) fix: LGBT erasure /j * Things that can't go in disposals now don't "Miss" (#26716) * Moved is canInsert check to before miss check * Update Content.Server/Disposal/Unit/EntitySystems/DisposalUnitSystem.cs --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> * Clean up YAML issues in animals.yml (#26696) * Cleaned up YAML issues in animals.yml * Cleaned up TimedSpawnerComponent * fix health analyzer crash (#26700) Co-authored-by: deltanedas <@deltanedas:kde.org> * Automatic changelog update * Make the station start with random broken wiring (#26695) Random wire cutting on round start * Fix turned off thrusters consume power (#26690) * Mail Unit Fix (whitelist) (#26688) Fix Mail Unit * Automatic changelog update * OOC Patron Color Toggle (#26653) * Adds the option for you to toggle your OOC Patron color visibility to yourself and others. * Makes the button magically disappear if you arent a patron * Automatic changelog update * Fix random clothing slots being able to hide character's nose and hair (#26708) Fix bug and formatting * Automatic changelog update * Make Zombie, Initial Infected fix (#26665) Make zombie fix * Suit Sensors No Longer Use a Hardcoded 'Total Health' (#26658) * Suit sensors now know the 'total health' of an entity * Missed the constructor :pensive: * Stop mop buckets from spilling when you push them (#26706) * Automatic changelog update * Robotists technology icon fix (#26723) fix Co-authored-by: GeneralGaws <limonmessi@mail.ru> * Make ducks more viable as an alternative to chickens. (#26729) Quick tweak to make ducks on par with chickens at cargo * Automatic changelog update * Make the nutribrick one bite smaller (#26719) Update snacks.yml * Task/fix nightvision huds (#26726) * StatusIcon: add field to set if icon should be rendered with shading * set/unset shader based on icon field * set new field to true for hud icons * re-shade health bars * Automatic changelog update * Rework Identifier Overrides to prevent showing Law Priority (#26680) Does-The-Fix Co-authored-by: Mephisto72 <Mephisto.Respectator@proton.me> * Make practice projectiles consistent in damage (#26731) * Make practice weapon damage consistent to 1 * Add book reference to description * Automatic changelog update * fix mopbucket water level (#26740) * Damage popup type can now be changed with a left click if allowed via component boolean. (#26734) * Update DamagePopupSystem.cs * Update DamagePopupSystem.cs * Add ability to allow or deny type change via component bool * Automatic changelog update * CCVars.cs: Minor inconsistency fixes. (#26744) Update CCVars.cs * Fixes one file format inconsistency. * Adds missing </summary> closing tag. * Make baseball bat crafting require a slicing tool (#26742) Make baseball bat crafting harder * make fulton recipe faster and require cloth (#26747) Co-authored-by: deltanedas <@deltanedas:kde.org> * Automatic changelog update * -fixed Broadcast button never enabling (#26750) * Automatic changelog update * Let Mindshields be effected by statusIcon shading (#26754) Phone Webedit Ops Original PR author forgot about mindshields for making status icons shaded. This can be done with other antag icons as well, I remember people mentioning revs being able to see each other in the dark was lame. * Automatic changelog update * Dionae now bleed sap, and this can be used to make syrup. (#25748) * SapAndSyrup * centrifug * morewatervapor * whyisitnotpushing * nymphs * lessrealmorefun * Automatic changelog update * Alerts crash fix (#26602) - If the client tries to call ShowAlert while applying gamestates (e.g. initialising an entity) then this will cause problems. I need to double-check the initial PR before I'd be comfortable with this being merged. * made thin firelocks constructable/deconstructable (#26745) * Automatic changelog update * Fire sprite change for mice (#26758) * Add new fire sprite for mice that fits them better * Add the sprite change to rats as well * Moffroach and hamsters now also have more fitting fire sprites * made the meta.json easier to read * Automatic changelog update * Change speed threshold for barefeet walking on glass shards and D4 (#26763) Allow walking over glass shards and D4 Co-authored-by: Plykiya <plykiya@protonmail.com> * Automatic changelog update --------- Signed-off-by: c4llv07e <kseandi@gmail.com> Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com> Co-authored-by: Plykiya <58439124+Plykiya@users.noreply.github.com> Co-authored-by: Plykiya <plykiya@protonmail.com> Co-authored-by: Boaz1111 <149967078+Boaz1111@users.noreply.github.com> Co-authored-by: keronshb <54602815+keronshb@users.noreply.github.com> Co-authored-by: Wrexbe (Josh) <81056464+wrexbe@users.noreply.github.com> Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com> Co-authored-by: wrexbe <wrexbe@protonmail.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com> Co-authored-by: Flareguy <78941145+Flareguy@users.noreply.github.com> Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com> Co-authored-by: Simon <63975668+Simyon264@users.noreply.github.com> Co-authored-by: blueDev2 <89804215+blueDev2@users.noreply.github.com> Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Co-authored-by: Velcroboy <107660393+IamVelcroboy@users.noreply.github.com> Co-authored-by: Velcroboy <velcroboy333@hotmail.com> Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> Co-authored-by: brainfood1183 <113240905+brainfood1183@users.noreply.github.com> Co-authored-by: J. Brown <DrMelon@users.noreply.github.com> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> Co-authored-by: UBlueberry <161545003+UBlueberry@users.noreply.github.com> Co-authored-by: Tayrtahn <tayrtahn@gmail.com> Co-authored-by: drteaspoon420 <87363733+drteaspoon420@users.noreply.github.com> Co-authored-by: Bixkitts <72874643+Bixkitts@users.noreply.github.com> Co-authored-by: nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com> Co-authored-by: Ubaser <134914314+UbaserB@users.noreply.github.com> Co-authored-by: avery <51971268+graevy@users.noreply.github.com> Co-authored-by: eoineoineoin <github@eoinrul.es> Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es> Co-authored-by: RiceMar1244 <138547931+RiceMar1244@users.noreply.github.com> Co-authored-by: Zealith-Gamer <61980908+Zealith-Gamer@users.noreply.github.com> Co-authored-by: hamurlik <75280571+hamurlik@users.noreply.github.com> Co-authored-by: hamurlik <renoDeath@protonmail.com> Co-authored-by: no <165581243+pissdemon@users.noreply.github.com> Co-authored-by: Kara <lunarautomaton6@gmail.com> Co-authored-by: SoulFN <164462467+SoulFN@users.noreply.github.com> Co-authored-by: Keer-Sar <144283718+Keer-Sar@users.noreply.github.com> Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com> Co-authored-by: 0x6273 <0x40@keemail.me> Co-authored-by: c4llv07e <38111072+c4llv07e@users.noreply.github.com> Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com> Co-authored-by: Firewatch <54725557+musicmanvr@users.noreply.github.com> Co-authored-by: IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com> Co-authored-by: f0x-n3rd <150924715+f0x-n3rd@users.noreply.github.com> Co-authored-by: exincore <me@exin.xyz> Co-authored-by: Sk1tch <ben.peter.smith@gmail.com> Co-authored-by: Your Name <you@example.com> Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com> Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com> Co-authored-by: osjarw <62134478+osjarw@users.noreply.github.com> Co-authored-by: lunarcomets <140772713+lunarcomets@users.noreply.github.com> Co-authored-by: ThatOneGoblin25 <145570657+ThatOneGoblin25@users.noreply.github.com> Co-authored-by: Terraspark4941 <terraspark4941@gmail.com> Co-authored-by: Brandon Hu <103440971+Brandon-Huu@users.noreply.github.com> Co-authored-by: beck-thompson <107373427+beck-thompson@users.noreply.github.com> Co-authored-by: Aexxie <codyfox.077@gmail.com> Co-authored-by: DinoWattz <116862698+DinoWattz@users.noreply.github.com> Co-authored-by: Pspritechologist <81725545+Pspritechologist@users.noreply.github.com> Co-authored-by: Vasilis <vasilis@pikachu.systems> Co-authored-by: GeneralGaws <122978178+GeneralGaws@users.noreply.github.com> Co-authored-by: GeneralGaws <limonmessi@mail.ru> Co-authored-by: Dae <60460608+ZeroDayDaemon@users.noreply.github.com> Co-authored-by: potato1234_x <79580518+potato1234x@users.noreply.github.com> Co-authored-by: PrPleGoo <PrPleGoo@users.noreply.github.com> Co-authored-by: Mephisto72 <66994453+Mephisto72@users.noreply.github.com> Co-authored-by: Mephisto72 <Mephisto.Respectator@proton.me> Co-authored-by: TsjipTsjip <19798667+TsjipTsjip@users.noreply.github.com> Co-authored-by: Verm <32827189+Vermidia@users.noreply.github.com> Co-authored-by: superjj18 <gagnonjake@gmail.com> Co-authored-by: Golinth <amh2023@gmail.com> Co-authored-by: Alzore <140123969+Blackern5000@users.noreply.github.com> Co-authored-by: BITTERLYNX <166083655+PaigeMaeForrest@users.noreply.github.com>
2024-04-06 13:13:22 +03:00
/// </summary>
public static readonly CVarDef<bool> AdminShowPIIOnBan =
CVarDef.Create("admin.show_pii_onban", false, CVar.SERVERONLY);
/// <summary>
/// If an admin joins a round by reading up or using the late join button, automatically
/// de-admin them.
/// </summary>
public static readonly CVarDef<bool> AdminDeadminOnJoin =
CVarDef.Create("admin.deadmin_on_join", false, CVar.SERVERONLY);
/// <summary>
/// Overrides the name the client sees in ahelps. Set empty to disable.
/// </summary>
public static readonly CVarDef<string> AdminAhelpOverrideClientName =
CVarDef.Create("admin.override_adminname_in_client_ahelp", string.Empty, CVar.SERVERONLY);
/// <summary>
/// The threshold of minutes to appear as a "new player" in the ahelp menu
/// If 0, appearing as a new player is disabled.
/// </summary>
public static readonly CVarDef<int> NewPlayerThreshold =
CVarDef.Create("admin.new_player_threshold", 0, CVar.ARCHIVE | CVar.REPLICATED | CVar.SERVER);
/// <summary>
/// How long an admin client can go without any input before being considered AFK.
/// </summary>
public static readonly CVarDef<float> AdminAfkTime =
CVarDef.Create("admin.afk_time", 600f, CVar.SERVERONLY);
/// <summary>
/// If true, admins are able to connect even if
/// <see cref="SoftMaxPlayers"/> would otherwise block regular players.
/// </summary>
public static readonly CVarDef<bool> AdminBypassMaxPlayers =
CVarDef.Create("admin.bypass_max_players", true, CVar.SERVERONLY);
/// <summary>
/// Determine if custom rank names are used.
/// If it is false, it'd use the actual rank name regardless of the individual's title.
/// </summary>
/// <seealso cref="AhelpAdminPrefix"/>
/// <seealso cref="AhelpAdminPrefixWebhook"/>
public static readonly CVarDef<bool> AdminUseCustomNamesAdminRank =
CVarDef.Create("admin.use_custom_names_admin_rank", true, CVar.SERVERONLY);
/*
* AHELP
*/
/// <summary>
/// Ahelp rate limit values are accounted in periods of this size (seconds).
/// After the period has passed, the count resets.
/// </summary>
/// <seealso cref="AhelpRateLimitCount"/>
public static readonly CVarDef<float> AhelpRateLimitPeriod =
CVarDef.Create("ahelp.rate_limit_period", 2f, CVar.SERVERONLY);
/// <summary>
/// How many ahelp messages are allowed in a single rate limit period.
/// </summary>
/// <seealso cref="AhelpRateLimitPeriod"/>
public static readonly CVarDef<int> AhelpRateLimitCount =
CVarDef.Create("ahelp.rate_limit_count", 10, CVar.SERVERONLY);
/// <summary>
/// Should the administrator's position be displayed in ahelp.
/// If it is is false, only the admin's ckey will be displayed in the ahelp.
/// </summary>
/// <seealso cref="AdminUseCustomNamesAdminRank"/>
/// <seealso cref="AhelpAdminPrefixWebhook"/>
public static readonly CVarDef<bool> AhelpAdminPrefix =
CVarDef.Create("ahelp.admin_prefix", false, CVar.SERVERONLY);
/// <summary>
/// Should the administrator's position be displayed in the webhook.
/// If it is is false, only the admin's ckey will be displayed in webhook.
/// </summary>
/// <seealso cref="AdminUseCustomNamesAdminRank"/>
/// <seealso cref="AhelpAdminPrefix"/>
public static readonly CVarDef<bool> AhelpAdminPrefixWebhook =
CVarDef.Create("ahelp.admin_prefix_webhook", false, CVar.SERVERONLY);
Explosion refactor (#5230) * Explosions * fix yaml typo and prevent silly UI inputs * oop * Use modified contains() checks And remove IEnumerable * Buff nuke, nerf meteors * optimize the entity lookup stuff a bit * fix tile (0,0) error forgot to do an initial Enumerator.MoveNext(), so the first tile was always the "null" tile. * remove celebration * byte -> int * remove diag edge tile dict * fix one bug but there is another * fix the other bug turns out dividing a ushort leads to rounding errors. Why TF is the grid tile size even a ushort in the first place. * improve edge map * fix minor bug If the initial-explosion tile had an airtight entity on it, the tile was processed twice. * some reviews (transform queries, eye.mapid, and tilesizes in overlays) * Apply suggestions from code review Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> * is map paused * GetAllTiles ignores space by default * WriteLine -> WriteError * First -> FirstOrDefault() * default prototype const string * entity query * misc review changes * grid edge max distance * fix fire texture defn bad use of type serializer and ioc-resolves * Remove ExplosionLaunched And allow nukes to throw items towards the outer part of an explosion * no hot-reload disclaimer * replace prototype id string with int index * optimise damage a tiiiiny bit. * entity queries * comments * misc mirror comments * cvars * admin logs * move intensity-per-state to prototype * update tile event to ECS event * git mv * Tweak rpg & minibomb also fix merge bug * you don't exist anymore go away * Fix build Co-authored-by: moonheart08 <moonheart08@users.noreply.github.com> Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2022-04-01 15:39:26 +13:00
/*
* Explosions
*/
/// <summary>
/// How many tiles the explosion system will process per tick
/// </summary>
/// <remarks>
/// Setting this too high will put a large load on a single tick. Setting this too low will lead to
/// unnaturally "slow" explosions.
/// </remarks>
public static readonly CVarDef<int> ExplosionTilesPerTick =
CVarDef.Create("explosion.tiles_per_tick", 100, CVar.SERVERONLY);
/// <summary>
/// Upper limit on the size of an explosion before physics-throwing is disabled.
/// </summary>
/// <remarks>
/// Large nukes tend to generate a lot of shrapnel that flies through space. This can functionally cripple
/// the server TPS for a while after an explosion (or even during, if the explosion is processed
/// incrementally.
Explosion refactor (#5230) * Explosions * fix yaml typo and prevent silly UI inputs * oop * Use modified contains() checks And remove IEnumerable * Buff nuke, nerf meteors * optimize the entity lookup stuff a bit * fix tile (0,0) error forgot to do an initial Enumerator.MoveNext(), so the first tile was always the "null" tile. * remove celebration * byte -> int * remove diag edge tile dict * fix one bug but there is another * fix the other bug turns out dividing a ushort leads to rounding errors. Why TF is the grid tile size even a ushort in the first place. * improve edge map * fix minor bug If the initial-explosion tile had an airtight entity on it, the tile was processed twice. * some reviews (transform queries, eye.mapid, and tilesizes in overlays) * Apply suggestions from code review Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> * is map paused * GetAllTiles ignores space by default * WriteLine -> WriteError * First -> FirstOrDefault() * default prototype const string * entity query * misc review changes * grid edge max distance * fix fire texture defn bad use of type serializer and ioc-resolves * Remove ExplosionLaunched And allow nukes to throw items towards the outer part of an explosion * no hot-reload disclaimer * replace prototype id string with int index * optimise damage a tiiiiny bit. * entity queries * comments * misc mirror comments * cvars * admin logs * move intensity-per-state to prototype * update tile event to ECS event * git mv * Tweak rpg & minibomb also fix merge bug * you don't exist anymore go away * Fix build Co-authored-by: moonheart08 <moonheart08@users.noreply.github.com> Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2022-04-01 15:39:26 +13:00
/// </remarks>
public static readonly CVarDef<int> ExplosionThrowLimit =
CVarDef.Create("explosion.throw_limit", 400, CVar.SERVERONLY);
/// <summary>
/// If this is true, explosion processing will pause the NodeGroupSystem to pause updating.
/// </summary>
/// <remarks>
/// This only takes effect if an explosion needs more than one tick to process (i.e., covers more than <see
/// cref="ExplosionTilesPerTick"/> tiles). If this is not enabled, the node-system will rebuild its graph
/// every tick as the explosion shreds the station, causing significant slowdown.
/// </remarks>
public static readonly CVarDef<bool> ExplosionSleepNodeSys =
CVarDef.Create("explosion.node_sleep", true, CVar.SERVERONLY);
/// <summary>
/// Upper limit on the total area that an explosion can affect before the neighbor-finding algorithm just
/// stops. Defaults to a 60-rile radius explosion.
/// </summary>
/// <remarks>
/// Actual area may be larger, as it currently doesn't terminate mid neighbor finding. I.e., area may be that of a ~51 tile radius circle instead.
/// </remarks>
public static readonly CVarDef<int> ExplosionMaxArea =
2022-07-04 23:49:19 -07:00
CVarDef.Create("explosion.max_area", (int) 3.14f * 256 * 256, CVar.SERVERONLY);
Explosion refactor (#5230) * Explosions * fix yaml typo and prevent silly UI inputs * oop * Use modified contains() checks And remove IEnumerable * Buff nuke, nerf meteors * optimize the entity lookup stuff a bit * fix tile (0,0) error forgot to do an initial Enumerator.MoveNext(), so the first tile was always the "null" tile. * remove celebration * byte -> int * remove diag edge tile dict * fix one bug but there is another * fix the other bug turns out dividing a ushort leads to rounding errors. Why TF is the grid tile size even a ushort in the first place. * improve edge map * fix minor bug If the initial-explosion tile had an airtight entity on it, the tile was processed twice. * some reviews (transform queries, eye.mapid, and tilesizes in overlays) * Apply suggestions from code review Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> * is map paused * GetAllTiles ignores space by default * WriteLine -> WriteError * First -> FirstOrDefault() * default prototype const string * entity query * misc review changes * grid edge max distance * fix fire texture defn bad use of type serializer and ioc-resolves * Remove ExplosionLaunched And allow nukes to throw items towards the outer part of an explosion * no hot-reload disclaimer * replace prototype id string with int index * optimise damage a tiiiiny bit. * entity queries * comments * misc mirror comments * cvars * admin logs * move intensity-per-state to prototype * update tile event to ECS event * git mv * Tweak rpg & minibomb also fix merge bug * you don't exist anymore go away * Fix build Co-authored-by: moonheart08 <moonheart08@users.noreply.github.com> Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2022-04-01 15:39:26 +13:00
/// <summary>
/// Upper limit on the number of neighbor finding steps for the explosion system neighbor-finding algorithm.
/// </summary>
/// <remarks>
/// Effectively places an upper limit on the range that any explosion can have. In the vast majority of
/// instances, <see cref="ExplosionMaxArea"/> will likely be hit before this becomes a limiting factor.
/// </remarks>
public static readonly CVarDef<int> ExplosionMaxIterations =
2022-07-04 23:49:19 -07:00
CVarDef.Create("explosion.max_iterations", 500, CVar.SERVERONLY);
Explosion refactor (#5230) * Explosions * fix yaml typo and prevent silly UI inputs * oop * Use modified contains() checks And remove IEnumerable * Buff nuke, nerf meteors * optimize the entity lookup stuff a bit * fix tile (0,0) error forgot to do an initial Enumerator.MoveNext(), so the first tile was always the "null" tile. * remove celebration * byte -> int * remove diag edge tile dict * fix one bug but there is another * fix the other bug turns out dividing a ushort leads to rounding errors. Why TF is the grid tile size even a ushort in the first place. * improve edge map * fix minor bug If the initial-explosion tile had an airtight entity on it, the tile was processed twice. * some reviews (transform queries, eye.mapid, and tilesizes in overlays) * Apply suggestions from code review Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> * is map paused * GetAllTiles ignores space by default * WriteLine -> WriteError * First -> FirstOrDefault() * default prototype const string * entity query * misc review changes * grid edge max distance * fix fire texture defn bad use of type serializer and ioc-resolves * Remove ExplosionLaunched And allow nukes to throw items towards the outer part of an explosion * no hot-reload disclaimer * replace prototype id string with int index * optimise damage a tiiiiny bit. * entity queries * comments * misc mirror comments * cvars * admin logs * move intensity-per-state to prototype * update tile event to ECS event * git mv * Tweak rpg & minibomb also fix merge bug * you don't exist anymore go away * Fix build Co-authored-by: moonheart08 <moonheart08@users.noreply.github.com> Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2022-04-01 15:39:26 +13:00
/// <summary>
/// Max Time in milliseconds to spend processing explosions every tick.
/// </summary>
/// <remarks>
/// This time limiting is not perfectly implemented. Firstly, a significant chunk of processing time happens
/// due to queued entity deletions, which happen outside of the system update code. Secondly, explosion
/// spawning cannot currently be interrupted & resumed, and may lead to exceeding this time limit.
/// </remarks>
public static readonly CVarDef<float> ExplosionMaxProcessingTime =
CVarDef.Create("explosion.max_tick_time", 7f, CVar.SERVERONLY);
/// <summary>
/// If the explosion is being processed incrementally over several ticks, this variable determines whether
/// updating the grid tiles should be done incrementally at the end of every tick, or only once the explosion has finished processing.
/// </summary>
/// <remarks>
/// The most notable consequence of this change is that explosions will only punch a hole in the station &
/// create a vacumm once they have finished exploding. So airlocks will no longer slam shut as the explosion
/// expands, just suddenly at the end.
/// </remarks>
public static readonly CVarDef<bool> ExplosionIncrementalTileBreaking =
CVarDef.Create("explosion.incremental_tile", false, CVar.SERVERONLY);
/// <summary>
/// This determines for how many seconds an explosion should stay visible once it has finished expanding.
Explosion refactor (#5230) * Explosions * fix yaml typo and prevent silly UI inputs * oop * Use modified contains() checks And remove IEnumerable * Buff nuke, nerf meteors * optimize the entity lookup stuff a bit * fix tile (0,0) error forgot to do an initial Enumerator.MoveNext(), so the first tile was always the "null" tile. * remove celebration * byte -> int * remove diag edge tile dict * fix one bug but there is another * fix the other bug turns out dividing a ushort leads to rounding errors. Why TF is the grid tile size even a ushort in the first place. * improve edge map * fix minor bug If the initial-explosion tile had an airtight entity on it, the tile was processed twice. * some reviews (transform queries, eye.mapid, and tilesizes in overlays) * Apply suggestions from code review Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> * is map paused * GetAllTiles ignores space by default * WriteLine -> WriteError * First -> FirstOrDefault() * default prototype const string * entity query * misc review changes * grid edge max distance * fix fire texture defn bad use of type serializer and ioc-resolves * Remove ExplosionLaunched And allow nukes to throw items towards the outer part of an explosion * no hot-reload disclaimer * replace prototype id string with int index * optimise damage a tiiiiny bit. * entity queries * comments * misc mirror comments * cvars * admin logs * move intensity-per-state to prototype * update tile event to ECS event * git mv * Tweak rpg & minibomb also fix merge bug * you don't exist anymore go away * Fix build Co-authored-by: moonheart08 <moonheart08@users.noreply.github.com> Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2022-04-01 15:39:26 +13:00
/// </summary>
public static readonly CVarDef<float> ExplosionPersistence =
CVarDef.Create("explosion.persistence", 1.0f, CVar.SERVERONLY);
Explosion refactor (#5230) * Explosions * fix yaml typo and prevent silly UI inputs * oop * Use modified contains() checks And remove IEnumerable * Buff nuke, nerf meteors * optimize the entity lookup stuff a bit * fix tile (0,0) error forgot to do an initial Enumerator.MoveNext(), so the first tile was always the "null" tile. * remove celebration * byte -> int * remove diag edge tile dict * fix one bug but there is another * fix the other bug turns out dividing a ushort leads to rounding errors. Why TF is the grid tile size even a ushort in the first place. * improve edge map * fix minor bug If the initial-explosion tile had an airtight entity on it, the tile was processed twice. * some reviews (transform queries, eye.mapid, and tilesizes in overlays) * Apply suggestions from code review Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> * is map paused * GetAllTiles ignores space by default * WriteLine -> WriteError * First -> FirstOrDefault() * default prototype const string * entity query * misc review changes * grid edge max distance * fix fire texture defn bad use of type serializer and ioc-resolves * Remove ExplosionLaunched And allow nukes to throw items towards the outer part of an explosion * no hot-reload disclaimer * replace prototype id string with int index * optimise damage a tiiiiny bit. * entity queries * comments * misc mirror comments * cvars * admin logs * move intensity-per-state to prototype * update tile event to ECS event * git mv * Tweak rpg & minibomb also fix merge bug * you don't exist anymore go away * Fix build Co-authored-by: moonheart08 <moonheart08@users.noreply.github.com> Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2022-04-01 15:39:26 +13:00
/// <summary>
/// If an explosion covers a larger area than this number, the damaging/processing will always start during
/// the next tick, instead of during the same tick that the explosion was generated in.
/// </summary>
/// <remarks>
/// This value can be used to ensure that for large explosions the area/tile calculation and the explosion
/// processing/damaging occurs in separate ticks. This helps reduce the single-tick lag if both <see
/// cref="ExplosionMaxProcessingTime"/> and <see cref="ExplosionTilesPerTick"/> are large. I.e., instead of
/// a single tick explosion, this cvar allows for a configuration that results in a two-tick explosion,
/// though most of the computational cost is still in the second tick.
/// </remarks>
public static readonly CVarDef<int> ExplosionSingleTickAreaLimit =
CVarDef.Create("explosion.single_tick_area_limit", 400, CVar.SERVERONLY);
/// <summary>
/// Whether or not explosions are allowed to create tiles that have
/// <see cref="ContentTileDefinition.MapAtmosphere"/> set to true.
/// </summary>
public static readonly CVarDef<bool> ExplosionCanCreateVacuum =
CVarDef.Create("explosion.can_create_vacuum", true, CVar.SERVERONLY);
2022-10-11 05:09:10 +02:00
/*
* Radiation
*/
/// <summary>
/// What is the smallest radiation dose in rads that can be received by object.
/// Extremely small values may impact performance.
/// </summary>
public static readonly CVarDef<float> RadiationMinIntensity =
CVarDef.Create("radiation.min_intensity", 0.1f, CVar.SERVERONLY);
/// <summary>
/// Rate of radiation system update in seconds.
/// </summary>
public static readonly CVarDef<float> RadiationGridcastUpdateRate =
CVarDef.Create("radiation.gridcast.update_rate", 1.0f, CVar.SERVERONLY);
/// <summary>
/// If both radiation source and receiver are placed on same grid, ignore grids between them.
/// May get inaccurate result in some cases, but greatly boost performance in general.
/// </summary>
public static readonly CVarDef<bool> RadiationGridcastSimplifiedSameGrid =
CVarDef.Create("radiation.gridcast.simplified_same_grid", true, CVar.SERVERONLY);
/// <summary>
/// Max distance that radiation ray can travel in meters.
/// </summary>
public static readonly CVarDef<float> RadiationGridcastMaxDistance =
CVarDef.Create("radiation.gridcast.max_distance", 50f, CVar.SERVERONLY);
/*
* Admin logs
*/
/// <summary>
/// Controls if admin logs are enabled. Highly recommended to shut this off for development.
/// </summary>
public static readonly CVarDef<bool> AdminLogsEnabled =
CVarDef.Create("adminlogs.enabled", true, CVar.SERVERONLY);
public static readonly CVarDef<float> AdminLogsQueueSendDelay =
CVarDef.Create("adminlogs.queue_send_delay_seconds", 5f, CVar.SERVERONLY);
// When to skip the waiting time to save in-round admin logs, if no admin logs are currently being saved
public static readonly CVarDef<int> AdminLogsQueueMax =
CVarDef.Create("adminlogs.queue_max", 5000, CVar.SERVERONLY);
// When to skip the waiting time to save pre-round admin logs, if no admin logs are currently being saved
public static readonly CVarDef<int> AdminLogsPreRoundQueueMax =
CVarDef.Create("adminlogs.pre_round_queue_max", 5000, CVar.SERVERONLY);
// When to start dropping logs
public static readonly CVarDef<int> AdminLogsDropThreshold =
CVarDef.Create("adminlogs.drop_threshold", 20000, CVar.SERVERONLY);
// How many logs to send to the client at once
public static readonly CVarDef<int> AdminLogsClientBatchSize =
CVarDef.Create("adminlogs.client_batch_size", 1000, CVar.SERVERONLY);
public static readonly CVarDef<string> AdminLogsServerName =
CVarDef.Create("adminlogs.server_name", "unknown", CVar.SERVERONLY);
/*
* Atmos
*/
/// <summary>
/// Whether gas differences will move entities.
/// </summary>
public static readonly CVarDef<bool> SpaceWind =
CVarDef.Create("atmos.space_wind", false, CVar.SERVERONLY);
/// <summary>
/// Divisor from maxForce (pressureDifference * 2.25f) to force applied on objects.
/// </summary>
public static readonly CVarDef<float> SpaceWindPressureForceDivisorThrow =
CVarDef.Create("atmos.space_wind_pressure_force_divisor_throw", 15f, CVar.SERVERONLY);
/// <summary>
/// Divisor from maxForce (pressureDifference * 2.25f) to force applied on objects.
/// </summary>
public static readonly CVarDef<float> SpaceWindPressureForceDivisorPush =
CVarDef.Create("atmos.space_wind_pressure_force_divisor_push", 2500f, CVar.SERVERONLY);
/// <summary>
/// The maximum velocity (not force) that may be applied to an object by atmospheric pressure differences.
/// Useful to prevent clipping through objects.
/// </summary>
public static readonly CVarDef<float> SpaceWindMaxVelocity =
CVarDef.Create("atmos.space_wind_max_velocity", 30f, CVar.SERVERONLY);
/// <summary>
/// The maximum force that may be applied to an object by pushing (i.e. not throwing) atmospheric pressure differences.
/// A "throwing" atmospheric pressure difference ignores this limit, but not the max. velocity limit.
/// </summary>
public static readonly CVarDef<float> SpaceWindMaxPushForce =
CVarDef.Create("atmos.space_wind_max_push_force", 20f, CVar.SERVERONLY);
/// <summary>
/// Whether monstermos tile equalization is enabled.
/// </summary>
public static readonly CVarDef<bool> MonstermosEqualization =
CVarDef.Create("atmos.monstermos_equalization", true, CVar.SERVERONLY);
/// <summary>
/// Whether monstermos explosive depressurization is enabled.
/// Needs <see cref="MonstermosEqualization"/> to be enabled to work.
/// </summary>
public static readonly CVarDef<bool> MonstermosDepressurization =
CVarDef.Create("atmos.monstermos_depressurization", true, CVar.SERVERONLY);
/// <summary>
/// Whether monstermos explosive depressurization will rip tiles..
/// Needs <see cref="MonstermosEqualization"/> and <see cref="MonstermosDepressurization"/> to be enabled to work.
/// WARNING: This cvar causes MAJOR contrast issues, and usually tends to make any spaced scene look very cluttered.
/// This not only usually looks strange, but can also reduce playability for people with impaired vision. Please think twice before enabling this on your server.
/// Also looks weird on slow spacing for unrelated reasons. If you do want to enable this, you should probably turn on instaspacing.
/// </summary>
public static readonly CVarDef<bool> MonstermosRipTiles =
CVarDef.Create("atmos.monstermos_rip_tiles", false, CVar.SERVERONLY);
/// <summary>
/// Whether explosive depressurization will cause the grid to gain an impulse.
/// Needs <see cref="MonstermosEqualization"/> and <see cref="MonstermosDepressurization"/> to be enabled to work.
/// </summary>
public static readonly CVarDef<bool> AtmosGridImpulse =
CVarDef.Create("atmos.grid_impulse", false, CVar.SERVERONLY);
/// <summary>
/// What fraction of air from a spaced tile escapes every tick.
/// 1.0 for instant spacing, 0.2 means 20% of remaining air lost each time
/// </summary>
public static readonly CVarDef<float> AtmosSpacingEscapeRatio =
CVarDef.Create("atmos.mmos_spacing_speed", 0.15f, CVar.SERVERONLY);
/// <summary>
/// Minimum amount of air allowed on a spaced tile before it is reset to 0 immediately in kPa
/// Since the decay due to SpacingEscapeRatio follows a curve, it would never reach 0.0 exactly
/// unless we truncate it somewhere.
/// </summary>
public static readonly CVarDef<float> AtmosSpacingMinGas =
CVarDef.Create("atmos.mmos_min_gas", 2.0f, CVar.SERVERONLY);
/// <summary>
/// How much wind can go through a single tile before that tile doesn't depressurize itself
/// (I.e spacing is limited in large rooms heading into smaller spaces)
/// </summary>
public static readonly CVarDef<float> AtmosSpacingMaxWind =
CVarDef.Create("atmos.mmos_max_wind", 500f, CVar.SERVERONLY);
/// <summary>
/// Whether atmos superconduction is enabled.
/// </summary>
/// <remarks> Disabled by default, superconduction is awful. </remarks>
public static readonly CVarDef<bool> Superconduction =
CVarDef.Create("atmos.superconduction", false, CVar.SERVERONLY);
/// <summary>
/// Heat loss per tile due to radiation at 20 degC, in W.
/// </summary>
public static readonly CVarDef<float> SuperconductionTileLoss =
CVarDef.Create("atmos.superconduction_tile_loss", 30f, CVar.SERVERONLY);
/// <summary>
/// Whether excited groups will be processed and created.
/// </summary>
public static readonly CVarDef<bool> ExcitedGroups =
CVarDef.Create("atmos.excited_groups", true, CVar.SERVERONLY);
/// <summary>
/// Whether all tiles in an excited group will clear themselves once being exposed to space.
/// Similar to <see cref="MonstermosDepressurization"/>, without none of the tile ripping or
/// things being thrown around very violently.
/// Needs <see cref="ExcitedGroups"/> to be enabled to work.
/// </summary>
public static readonly CVarDef<bool> ExcitedGroupsSpaceIsAllConsuming =
CVarDef.Create("atmos.excited_groups_space_is_all_consuming", false, CVar.SERVERONLY);
/// <summary>
/// Maximum time in milliseconds that atmos can take processing.
/// </summary>
public static readonly CVarDef<float> AtmosMaxProcessTime =
CVarDef.Create("atmos.max_process_time", 3f, CVar.SERVERONLY);
/// <summary>
/// Atmos tickrate in TPS. Atmos processing will happen every 1/TPS seconds.
/// </summary>
public static readonly CVarDef<float> AtmosTickRate =
CVarDef.Create("atmos.tickrate", 15f, CVar.SERVERONLY);
/// <summary>
/// Scale factor for how fast things happen in our atmosphere
/// simulation compared to real life. 1x means pumps run at 1x
/// speed. Players typically expect things to happen faster
/// in-game.
/// </summary>
public static readonly CVarDef<float> AtmosSpeedup =
CVarDef.Create("atmos.speedup", 8f, CVar.SERVERONLY);
/// <summary>
/// Like atmos.speedup, but only for gas and reaction heat values. 64x means
/// gases heat up and cool down 64x faster than real life.
/// </summary>
public static readonly CVarDef<float> AtmosHeatScale =
CVarDef.Create("atmos.heat_scale", 8f, CVar.SERVERONLY);
/// <summary>
/// Maximum explosion radius for explosions caused by bursting a gas tank ("max caps").
/// Setting this to zero disables the explosion but still allows the tank to burst and leak.
/// </summary>
public static readonly CVarDef<float> AtmosTankFragment =
CVarDef.Create("atmos.max_explosion_range", 26f, CVar.SERVERONLY);
/*
* MIDI instruments
*/
public static readonly CVarDef<int> MaxMidiEventsPerSecond =
CVarDef.Create("midi.max_events_per_second", 1000, CVar.REPLICATED | CVar.SERVER);
public static readonly CVarDef<int> MaxMidiEventsPerBatch =
CVarDef.Create("midi.max_events_per_batch", 60, CVar.REPLICATED | CVar.SERVER);
public static readonly CVarDef<int> MaxMidiBatchesDropped =
CVarDef.Create("midi.max_batches_dropped", 1, CVar.SERVERONLY);
public static readonly CVarDef<int> MaxMidiLaggedBatches =
CVarDef.Create("midi.max_lagged_batches", 8, CVar.SERVERONLY);
2021-02-12 10:45:22 +01:00
/*
* Holidays
*/
public static readonly CVarDef<bool> HolidaysEnabled = CVarDef.Create("holidays.enabled", true, CVar.SERVERONLY);
/*
* Branding stuff
*/
public static readonly CVarDef<bool> BrandingSteam = CVarDef.Create("branding.steam", false, CVar.CLIENTONLY);
2021-02-16 20:14:32 +01:00
/*
* OOC
*/
public static readonly CVarDef<bool> OocEnabled = CVarDef.Create("ooc.enabled", true, CVar.NOTIFY | CVar.REPLICATED);
2021-02-16 20:14:32 +01:00
public static readonly CVarDef<bool> AdminOocEnabled =
CVarDef.Create("ooc.enabled_admin", true, CVar.NOTIFY);
/// <summary>
/// If true, whenever OOC is disabled the Discord OOC relay will also be disabled.
/// </summary>
public static readonly CVarDef<bool> DisablingOOCDisablesRelay = CVarDef.Create("ooc.disabling_ooc_disables_relay", true, CVar.SERVERONLY);
2022-06-20 16:59:04 -04:00
/// <summary>
/// Whether or not OOC chat should be enabled during a round.
/// </summary>
public static readonly CVarDef<bool> OocEnableDuringRound =
CVarDef.Create("ooc.enable_during_round", false, CVar.NOTIFY | CVar.REPLICATED | CVar.SERVER);
2024-04-07 11:35:55 +10:00
Upstream suka (#45) * Make BaseMedicalPDA abstract (#26567) * Fix GasMixers/Filters not working (#26568) * Fix GasMixers/Filters not working * OKAY GAS FILTERS TOO --------- Co-authored-by: Plykiya <plykiya@protonmail.com> * Industrial Reagent Grinder Hotfix (#26571) fixed * Give stores the ability to check for owner only (#26573) adds a check if the store belongs to the user * Fix round start crash (causing instant restart) (#26579) * Fix round start crash * Make `TryCreateObjective` more error tolerant * Update engine to v217.1.0 (#26588) * Fix initial infected icon hiding (#26585) * Fix Meta evac shuttle name (#26587) * Make timer ignore client predict setting (#26554) * Make timer ignore client predict setting * making tests run --------- Co-authored-by: wrexbe <wrexbe@protonmail.com> * Make advertise system survive no map inits (#26553) * Make advertise system survive no map inits * Add comment to try prevent future bugs * Update Credits (#26589) Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com> * Fix fox spawn on reach (#26584) Co-authored-by: wrexbe <wrexbe@protonmail.com> * Removes SCAF armor (#26566) * removes scaf armor * replace maint loot spawner spot with basic helmet * Update Patrons.yml (#26578) * Automatic changelog update * Make aghost command work on other players using optional argument (#26546) * Translations * Make aghost command work on other players using optional argument * Reviews * Automatic changelog update * Add new component to Make sound on interact (#26523) * Adds new Component: EmitSoundOnInteractUsing * Missed an import * File-scoping * Replace ID check with Prototype check * Moved component and system to shared. Set prediction to true. * Removed impoper imports and changed namespace of component to reflect changed folder. * Following function naming theme * All this code is basically deltanedas's, but it was a learning experience for me * Update Content.Shared/Sound/Components/EmitSoundOnInteractUsingComponent.cs * Update Content.Shared/Sound/Components/EmitSoundOnInteractUsingComponent.cs --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> * Increase syndi duffelbag storage (#26565) * Increase syndi duffelbag storage * weh * Automatic changelog update * Adds construction/decon graphs for plastic flaps (#26341) * Adds construction/decon graphs for plastic flaps * Dang arbitrage * undo conflict --------- Co-authored-by: Velcroboy <velcroboy333@hotmail.com> * Automatic changelog update * Makes secglasses roundstart (#26487) * makes secglasses roundstart * fix epic fail * fix tests questionmark? * Update Resources/Prototypes/Entities/Clothing/Eyes/glasses.yml Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> --------- Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> * Automatic changelog update * Toilet Upgrade (needs review) (#22133) * Toilet Draft * fixes * toilets now have secret stash to place items in cistern. * fixes * plungers now unblock toilets. * fix sprite * new sprites and fix * fixes * improve seat sprites. * fix * removed visualisersystem changed to genericvisualizers * flush sound for toilets and copyright for toilet sprites. * fix atrributions * fixes * fix datafield flushtime * sprite improvements * fixes * multiple changes * fix * fix * fixes remove vv * moved stash related functions to secret stash system from toilet. * fix * fix * changes for recent review. * fix * fix * Automatic changelog update * Uplink store interface searchable with a searchbar. (#24287) * Can now search the uplink store interface with a searchbar. * Search text updates no longer send server messages. Persists listings locally. * Formatting fixes and tidying. * Added helper method to get localised name and description (or otherwise, entity name and description) of store listing items. * Update Content.Client/Store/Ui/StoreMenu.xaml * Review change; moved localisation helper functions to their own class. * Prevent thread-unsafe behaviour as-per review. * Remove dummy boxcontainer --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Automatic changelog update * Improved RCDs (#22799) * Initial radial menu prototyping for the RCD * Radial UI buttons can send messages to the server * Beginning to update RCDSystem * RCD building system in progress * Further updates * Added extra effects, RCDSystem now reads RCD prototype data * Replacing tiles is instant, multiple constructions are allowed, deconstruction is broken * Added extra functionality to RadialContainers plus documentation * Fixed localization of RCD UI strings * Menu opens near cursor, added basic RCD * Avoiding merge conflict * Implemented atomized construction / deconstruction rules * Increased RCD ammo base charges * Moved input context definition to content * Removed obsoleted code * Updates to system * Switch machine and computer frames for electrical cabling * Added construction ghosts * Fixed issue with keybind detection code * Fixed RCD construction ghost mispredications * Code clean up * Updated deconstruction effects * RCDs effects don't rotate * Code clean up * Balancing for ammo counts * Code clean up * Added missing localized strings * More clean up * Made directional window handling more robust * Added documentation to radial menus and made them no longer dependent on Content * Made radial containers more robust * Further robustness to the radial menu * The RCD submenu buttons are only shown when the destination layer has at least one children * Expanded upon deconstructing plus construction balance * Fixed line endings * Updated list of RCD deconstructable entities. Now needs a component to deconstruct instead of a tag * Bug fixes * Revert unnecessary change * Updated RCD strings * Fixed bug * More fixes * Deconstructed tiles/subflooring convert to lattice instead * Fixed failed tests (Linux doesn't like invalid spritespecifer paths) * Fixing merge conflict * Updated airlock assembly * Fixing merge conflict * Fixing merge conflict * More fixing... * Removed erroneous project file change * Fixed string handling issue * Trying to fix merge conflict * Still fixing merge conflicts * Balancing * Hidden RCD construction ghosts when in 'build' mode * Fixing merge conflict * Implemented requested changes (Part 1) * Added more requested changes * Fix for failed test. Removed sussy null suppression * Made requested changes - custom construction ghost system was replaced * Fixing merge conflict * Fixed merge conflict * Fixed bug in RCD construction ghost validation * Fixing merge conflict * Merge conflict fixed * Made required update * Removed lingering RCD deconstruct tag * Fixing merge conflict * Merge conflict fixed * Made requested changes * Bug fixes and balancing * Made string names more consistent * Can no longer stack catwalks * Automatic changelog update * Update submodule to 217.2.0 (#26592) * Southern accent (#26543) * created the AccentComponent and the AccentSystem * word replacement schtuhff * made it a trait fr ongg!!1 * Update Content.Server/Speech/EntitySystems/SouthernAccentSystem.cs --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> * Prevent storing liquids in equipped buckets (#24412) * Block access to solutions in equipped spillables. * Stop Drink verb appearing if the solution can't be accessed. * Automatic changelog update * Fix 'Hypopen shouldn't display solution examine text' (#26453) * stealthy hypo * ExaminableSolution hand check when in covert implement. ExaminableSolution now has 'hidden' datafield to enable chemical inspection only in hand. * cleaning code * more cleaning * Hidden datafield renamed to HeldOnly * review --------- Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Automatic changelog update * Revert Paint (#26593) * Revert "Fix build (#26258)" This reverts commit 6de5fbfafbde700d711a566f6a43f05f7a99e455. * Revert "Spray Paint (Review Ready) (#23003)" This reverts commit e4d5e7f1aebfc37b1bc3453fdb39578f3897b6a1. # Conflicts: # Resources/Prototypes/Entities/Structures/Holographic/projections.yml * Fix: Prevent single-use hyposprays from getting the toggle draw verb (#26595) Prevent single-use hyposprays from getting the toggle draw verb Co-authored-by: Plykiya <plykiya@protonmail.com> * MeleeHitSoundSystem (#25005) * Began work to unscrew melee noises * finished * cleanup * cleanup * Update Content.Server/Weapons/Melee/MeleeWeaponSystem.cs Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com> * _Style * Fix merge --------- Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Remove physics comp from VendingMachineWallmount (#25632) * Remove physics comp from VendingMachineWallmount * Fixtures removal --------- Co-authored-by: Jeff <velcroboy333@hotmail.com> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Remake hairflowers (#25475) * Add more lily usage (orange hairflower and flowercrown) * comit 2 * ee * more fixes * w * im stupid * bring poppy in authodrobe * weh --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> * Automatic changelog update * Injector UI shows TransferAmount change, Spilling liquid changes Injector mode (#26596) * Injector UI shows TransferAmount change, spill changes mode * Update Content.Shared/Fluids/SharedPuddleSystem.Spillable.cs * Update Content.Shared/Fluids/SharedPuddleSystem.Spillable.cs --------- Co-authored-by: Plykiya <plykiya@protonmail.com> Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> * Update submodule to 217.2.1 (#26599) * disallow unanchoring or opening panels on locked emitters/APEs (#26600) * disallow unanchoring or opening panels on locked emitters/APEs * no locking open panels * oops * needback feedback * Update Content.Shared/Lock/LockSystem.cs * Update Content.Shared/Lock/LockSystem.cs * Update Content.Shared/Lock/LockSystem.cs * sanity --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Automatic changelog update * Fix grave digging sound indefinitely playing if dug by aghost. (#26420) Admins bypass doafters. As such, the code that runs on doafter completion is ran before the sound is actually created. This then leads to the sound never being stopped, and as such it would infinitely play. This commit gets around the issue by manually stopping the sound should the doafter fail to start. If we could be sure that the doafter would never fail, then we could just move the call to StartDigging above starting the doafter but this is currently not possible. Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Make the buttons on the map ui not squished (#26604) Make the map ui work Co-authored-by: wrexbe <wrexbe@protonmail.com> * Combine flower crown and wreath (#26605) * Combine flower crown and wreath * huh * huuh :trollface: * Automatic changelog update * Add AP damage to throwing knives (#26380) * add * ap * no more stam dmg * Automatic changelog update * cancelable brig timers (#26557) brig timers now cancelable. also some screensystem yakshave * Fix orientation of roller skate sprites (#26627) Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es> * Automatic changelog update * Fix GastTileOverlay sending redundant data (#26623) Fix GastTileOverlay not updating properly * Auto DeAdmin sooner (#26551) Co-authored-by: wrexbe <wrexbe@protonmail.com> * Add briefcase to curadrobe and lawdrobe, and some briefcases cleanup (#26527) * Add briefcase to curadrobe and some briefcases cleanup * also add to lawdrobe * Automatic changelog update * Fix some text overflow bugs in HUD (#26615) * Don't clip text in item status * Fix overflow in examine tooltip --------- Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es> * Adds two milk cartons to the BoozeOMat (#26635) * Automatic changelog update * made the hover text less vague (sorry) (#26630) * blacklisted throwing knifes from pneumatic cannon (#26628) * Fix radio jammer not blocking suit sensors. (#26632) As it turns out, they are not in fact on their own netid. They are actually just on wireless. The way I had tested my previous pr led to this mistake being made. I originally had the radio jammer block wireless as well, but decided to take out under the flase assumption that it suit sensors were actually on their own netid and did not require the ability to block all wireless packets at the last moment. * Fix dirt decals in reach not being cleanable (#26636) made all dirt decals cleanable Co-authored-by: hamurlik <renoDeath@protonmail.com> * Automatic changelog update * Replace drill_hit.ogg and drill_use.ogg with better sounds (#26622) * Replace drill_hit.ogg and drill_use.ogg with better sounds * Fix attribution source for drill_hit.ogg * Update Resources/Audio/Items/attributions.yml Co-authored-by: Kara <lunarautomaton6@gmail.com> * Update Resources/Audio/Items/attributions.yml Co-authored-by: Kara <lunarautomaton6@gmail.com> --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Co-authored-by: Kara <lunarautomaton6@gmail.com> * Gave Blast door access permissions (#26606) Added access reader to all blast doors. Added pre configured blast doors for engineering and science. * Gives all wheeled objects low friction (#26601) * gives all wheeled objects friction * adjustments to sum stuff * Automatic changelog update * Combine solution injection systems; Fix embeddable injectors (#26268) * Combine injection systems * Update Content.Server/Chemistry/EntitySystems/SolutionInjectOnEventSystem.cs --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> * Automatic changelog update * Add ValueList import (#26640) * Change assault borg modules texture (#26502) * Update borg_modules.yml * Fix borg_modules.yml? * Uh --------- Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Automatic changelog update * Add Cyborg Emote Sounds (#26594) * Hal 9000's first emote * Add Chime emote & Change variation to 0.05 * Modify Buzz emote * Add Buzz-two emote * modified Horn * add ping emote * add slowclap emote * Convert slowclap.ogg to mono, reflect change in attribution.yml * fix capitalization for all chatMessages && change all catagory to category * remove all traces of slowclap.ogg * forgor one file smh * collating copywrite * spelling mistakes will be the death of me * more spelling mistakes * change yml string to list * Automatic changelog update * Coordinates Disks & Shuttle FTL Travel (#23240) * Adds the CentComm Disk and configures it to work with direct-use shuttles * Added functionality for drone shuttles (i.e. cargo shuttle) * Adds support for pods, and a disk console object for disks to be inserted into. Also sprites. * Added the disk to HoP's locker * Removed leftover logs & comments * Fix for integration test * Apply suggestions from code review (formatting & proper DataField) Co-authored-by: 0x6273 <0x40@keemail.me> * Fix integration test & changes based on code review * Includes Disk Cases to contain Coordinate Disks, which are now CDs instead of Floppy Disks * Check pods & non-evac shuttles for CentCom travel, even in FTL * Import * Remove CentCom travel restrictions & pod disk consoles * Major changes that changes the coordinates disk system to work with salvage expeditions * Missed CC diskcase removal * Fix build * Review suggestions and changes * Major additional changes after merge * Minor tag miss * Integration test fix * review --------- Co-authored-by: 0x6273 <0x40@keemail.me> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Automatic changelog update * Add door electronics access configuration menu (#17778) * Add door electronics configuration menu * Use file-scoped namespaces Signed-off-by: c4llv07e <kseandi@gmail.com> * Open door electronics configuration menu only with network configurator Signed-off-by: c4llv07e <kseandi@gmail.com> * Doors will now try to move their AccessReaderComponent to their door electronics when the map is initialized Signed-off-by: c4llv07e <kseandi@gmail.com> * Make the access list in the id card computer a separate control Signed-off-by: c4llv07e <kseandi@gmail.com> * Fix merge conflict Signed-off-by: c4llv07e <kseandi@gmail.com> * Remove DoorElectronics tag Signed-off-by: c4llv07e <kseandi@gmail.com> * Integrate doors with #17927 Signed-off-by: c4llv07e <kseandi@gmail.com> * Move door electornics ui stuff to the right place Signed-off-by: c4llv07e <kseandi@gmail.com> * Some review fixes Signed-off-by: c4llv07e <kseandi@gmail.com> * More fixes Signed-off-by: c4llv07e <kseandi@gmail.com> * review fix Signed-off-by: c4llv07e <kseandi@gmail.com> * move all accesses from airlock prototypes to door electronics Signed-off-by: c4llv07e <kseandi@gmail.com> * rework door electronics config access list Signed-off-by: c4llv07e <kseandi@gmail.com> * Remove Linq from the door electronics user interface * [WIP] Add EntityWhitelist to the activatable ui component Signed-off-by: c4llv07e <kseandi@gmail.com> * Better interaction system Signed-off-by: c4llv07e <kseandi@gmail.com> * Refactor Signed-off-by: c4llv07e <kseandi@gmail.com> * Fix some door electronics not working without AccessReaderComponent Signed-off-by: c4llv07e <kseandi@gmail.com> * Move AccessReaderComponent update code to the AccessReaderSystem Signed-off-by: c4llv07e <kseandi@gmail.com> * Remove unnecesary newlines in the door access prototypes Signed-off-by: c4llv07e <kseandi@gmail.com> * Remove unused variables in access level control Signed-off-by: c4llv07e <kseandi@gmail.com> * Remove unnecessary method from the door electronics configuration menu Signed-off-by: c4llv07e <kseandi@gmail.com> * [WIP] change access type from string to ProtoId<AccessLevelPrototype> Signed-off-by: c4llv07e <kseandi@gmail.com> * Remove unused methods Signed-off-by: c4llv07e <kseandi@gmail.com> * Newline fix Signed-off-by: c4llv07e <kseandi@gmail.com> * Restored to a functional state Signed-off-by: c4llv07e <kseandi@gmail.com> * Fix access configurator not working with door electronics AccessReaderComponent Signed-off-by: c4llv07e <kseandi@gmail.com> * Replace all string access fields with ProtoId Signed-off-by: c4llv07e <kseandi@gmail.com> * move access level control initialization into Populate method Signed-off-by: c4llv07e <kseandi@gmail.com> * Review --------- Signed-off-by: c4llv07e <kseandi@gmail.com> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Automatic changelog update * scoopable ash and foam, solution transfer prediction (#25832) * move SolutionTransfer to shared and predict as much as possible * fully move OpenableSystem to shared now that SolutionTransfer is * fix imports for everything * doc for solution transfer system * trolling * add scoopable system * make ash and foam scoopable * untroll * untroll real * make clickable it work * troll * the scooping room --------- Co-authored-by: deltanedas <@deltanedas:kde.org> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Replace the teleportation logic on the SCRAM implant! (#26429) * Replace the teleportation logic on the SCRAM implant! Now instead of just trying to pick a random tile in range 20 times, the scram teleportation logic now: - Gets a list of grids in range - Until a suitable tile is picked it picks a random grid - From that grid it picks a random tile. - If the tile is suitable, then it is set as the target and the user will be teleported there. - Grids and tiles are randomly picked as outlined above until a valid tile is found, or all valid grids and tiles are exhausted. - Should no suitable tile be found then they get teleported to the same position they are at. Effectively not teleporting them. * Actually make the defaults sane which I forgor in the last commit * Extract tile section to its own function. Bias selection for current grid. Use proper coords for box. * Address reviews as much as possible * Address reviews * Refactored AdvertiseComponent (#26598) * Made it better * ok * alright --------- Co-authored-by: wrexbe <wrexbe@protonmail.com> * Bartender "Essentials" (#25367) * drinks round 1 saving my progress before my hard drive explodes * test 2 please work * name fixes whoops * Update drinks.yml * various fixes am dumb * add sol dry to vends more fixes and changes, yippee! * more fixes & ingame testing shrimple tests * last fixes :trollface: should be ready for pr now * Update soda.yml sate thirst * Automatic changelog update * Add ERT Chaplain (#25956) * ERT Chaplain * Make BibleUser * It was not intended * reword my poor words * 1984 a comment that I decided was unnecessary. * Update Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> * Changes in chemicals page in guidebook (#25831) * Added pages to chemical categories The chemical categories have their own page now. Added the "Chemical Tabs" in /ServerInfo/Guidebook. Moved the Chemicals code from shiftsandjobs.yml to its own .yml file which is "chemicals.yml". * Update guides.ftl * Update chemicals.yml Changed the guide entry's ID for the medical tab from Medicine to Medicinal. Hope this works... * Update Resources/ServerInfo/Guidebook/Chemical Tabs/Biological.xml Co-authored-by: exincore <me@exin.xyz> * Update Resources/ServerInfo/Guidebook/Chemical Tabs/Foods.xml Co-authored-by: exincore <me@exin.xyz> * Update Resources/ServerInfo/Guidebook/Chemical Tabs/Elements.xml Co-authored-by: exincore <me@exin.xyz> * Update Resources/ServerInfo/Guidebook/Chemical Tabs/Narcotics.xml Co-authored-by: exincore <me@exin.xyz> * Update Resources/ServerInfo/Guidebook/Chemical Tabs/Toxins.xml Co-authored-by: exincore <me@exin.xyz> * Fixed a few errors and stuff! A few typos have been fixed thanks to exincore. Added dedicated .xml files to be used for the dedicated category pages (Medicinal and Botanical pages). Made it so it doesn't use any duplicated IDs anymore. If there's more problems, please do tell so I can fix it! * Update settings.json * Fix? --------- Co-authored-by: exincore <me@exin.xyz> * Automatic changelog update * Anomalies behaviours (#24683) * Added new anomaly particle * Add basic anomaly behaviour * +2 parametres * add functional to new particle * add components to behaviours * big content * add shuffle, moved thing to server * clean up * fixes * random pick redo * bonjour behavioUr * fix AJCM * fix * add some new behaviours * power modifier behaviour * rmeove timer * new event for update ui fix * refactor! * fixes * enum * Fix mapinit * Minor touches --------- Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Automatic changelog update * Fix clipping/overlap in lathe machine UIs (#26646) * Add scrollbars to lathe material list when necessary * Fix bug where shrinking window would cause elements to overlap --------- Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es> * Added chat window transparency slider to options (#24990) * Adds a new slider to the misc tab in options that lets the player set chat window transparency * Tweaked variable names * Fixed order to match UI * Renamed set chat window transparency function * Changed and refactored to opacity instead of transparency * Remove unnecessary int to float conversions Slider used to be 0-100 while the CCVar was 0.0-1.0f. This is confusing and was only used for rounding to 2 decimal points. * Round the value to two decimal points * Remove rounding for now * Rename * Unhardcode chat color by moving to stylesheet * Fix indent * Make opacity slider only change opacity --------- Co-authored-by: Your Name <you@example.com> Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com> * Automatic changelog update * Infinity books (#25840) * setup text data * roundstart reshuffling keywords with gibberish words * saved data categorized * add book with hints * start redrawing books * +4 book design * +books +random visual upgrade * finish first file * finish lore file * finish with books.rsi now authorbooks.rsi... * aurora! and some fix * nuke author books * speelbuke update * finish respriting work * fix scientist guide visual * setup datasets * setup stupid funny random story * restore author books, upgrade hint generation * add variety to story generator * add learning system * minor textgen edit * file restruct, hint count variation * more restruct * more renaming add basis learning system logic. Spears locked for special book for test. * nuke all systems, for splitting PR gods * typo fix * update migration with deleted books * add random story books to maint * Update construction-system.ftl * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * typo fix * interchangeably * final * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com> * "." * Update Content.Server/Paper/PaperRandomStorySystem.cs Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com> * Ubazer fix * inadequate * localized * Update meta.json * fuck merge conflicts * fix jani book --------- Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com> * Automatic changelog update * Resprite ambuzol plus pills (#26651) * Automatic changelog update * Fixed air injector visuals (#26654) * Make cyborgs hands explosion proof. (#26515) * Make the advanced treatment modules beakers explosion-proof. * undo changes * Epic rename fail * Explosion recursion data field * Logic for data field * Automatic changelog update * Automatic changelog update * Make typing indicator shaded (#26678) * Automatic changelog update * Validate wire layout prototypes and remove invalid WiresComponents (#26682) Validate wire layout prototypes; delete invalid wirescomponents. * Increase time inbetween anomaly pulses (#26677) nerf anomaly pulse delays * Automatic changelog update * Fix for items dropped being rotated to world north (#26662) * Fix rotation of dropped items * combined world position rotation function for dumpable * scuffed implementation? * less scuffed? * even less scuffed... I guess * capital D --------- Co-authored-by: Plykiya <plykiya@protonmail.com> * Automatic changelog update * fix double interaction popup (#26684) change popentity to popupclient * disable foam scooping (#26686) Co-authored-by: deltanedas <@deltanedas:kde.org> * Automatic changelog update * Little disk printer sprite tweaks (#26711) * Little disk printer sprite tweaks * ill change this aswell * fixed white_box.png (#26714) * Delete Resources/Textures/Decals/bricktile.rsi/white_box.png * Readded fixed version one pixel change * New lobby art: TerminalStation (#26505) woop woop * Automatic changelog update * Unidentified corpses respect gender pronouns (#26715) fix: LGBT erasure /j * Things that can't go in disposals now don't "Miss" (#26716) * Moved is canInsert check to before miss check * Update Content.Server/Disposal/Unit/EntitySystems/DisposalUnitSystem.cs --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> * Clean up YAML issues in animals.yml (#26696) * Cleaned up YAML issues in animals.yml * Cleaned up TimedSpawnerComponent * fix health analyzer crash (#26700) Co-authored-by: deltanedas <@deltanedas:kde.org> * Automatic changelog update * Make the station start with random broken wiring (#26695) Random wire cutting on round start * Fix turned off thrusters consume power (#26690) * Mail Unit Fix (whitelist) (#26688) Fix Mail Unit * Automatic changelog update * OOC Patron Color Toggle (#26653) * Adds the option for you to toggle your OOC Patron color visibility to yourself and others. * Makes the button magically disappear if you arent a patron * Automatic changelog update * Fix random clothing slots being able to hide character's nose and hair (#26708) Fix bug and formatting * Automatic changelog update * Make Zombie, Initial Infected fix (#26665) Make zombie fix * Suit Sensors No Longer Use a Hardcoded 'Total Health' (#26658) * Suit sensors now know the 'total health' of an entity * Missed the constructor :pensive: * Stop mop buckets from spilling when you push them (#26706) * Automatic changelog update * Robotists technology icon fix (#26723) fix Co-authored-by: GeneralGaws <limonmessi@mail.ru> * Make ducks more viable as an alternative to chickens. (#26729) Quick tweak to make ducks on par with chickens at cargo * Automatic changelog update * Make the nutribrick one bite smaller (#26719) Update snacks.yml * Task/fix nightvision huds (#26726) * StatusIcon: add field to set if icon should be rendered with shading * set/unset shader based on icon field * set new field to true for hud icons * re-shade health bars * Automatic changelog update * Rework Identifier Overrides to prevent showing Law Priority (#26680) Does-The-Fix Co-authored-by: Mephisto72 <Mephisto.Respectator@proton.me> * Make practice projectiles consistent in damage (#26731) * Make practice weapon damage consistent to 1 * Add book reference to description * Automatic changelog update * fix mopbucket water level (#26740) * Damage popup type can now be changed with a left click if allowed via component boolean. (#26734) * Update DamagePopupSystem.cs * Update DamagePopupSystem.cs * Add ability to allow or deny type change via component bool * Automatic changelog update * CCVars.cs: Minor inconsistency fixes. (#26744) Update CCVars.cs * Fixes one file format inconsistency. * Adds missing </summary> closing tag. * Make baseball bat crafting require a slicing tool (#26742) Make baseball bat crafting harder * make fulton recipe faster and require cloth (#26747) Co-authored-by: deltanedas <@deltanedas:kde.org> * Automatic changelog update * -fixed Broadcast button never enabling (#26750) * Automatic changelog update * Let Mindshields be effected by statusIcon shading (#26754) Phone Webedit Ops Original PR author forgot about mindshields for making status icons shaded. This can be done with other antag icons as well, I remember people mentioning revs being able to see each other in the dark was lame. * Automatic changelog update * Dionae now bleed sap, and this can be used to make syrup. (#25748) * SapAndSyrup * centrifug * morewatervapor * whyisitnotpushing * nymphs * lessrealmorefun * Automatic changelog update * Alerts crash fix (#26602) - If the client tries to call ShowAlert while applying gamestates (e.g. initialising an entity) then this will cause problems. I need to double-check the initial PR before I'd be comfortable with this being merged. * made thin firelocks constructable/deconstructable (#26745) * Automatic changelog update * Fire sprite change for mice (#26758) * Add new fire sprite for mice that fits them better * Add the sprite change to rats as well * Moffroach and hamsters now also have more fitting fire sprites * made the meta.json easier to read * Automatic changelog update * Change speed threshold for barefeet walking on glass shards and D4 (#26763) Allow walking over glass shards and D4 Co-authored-by: Plykiya <plykiya@protonmail.com> * Automatic changelog update --------- Signed-off-by: c4llv07e <kseandi@gmail.com> Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com> Co-authored-by: Plykiya <58439124+Plykiya@users.noreply.github.com> Co-authored-by: Plykiya <plykiya@protonmail.com> Co-authored-by: Boaz1111 <149967078+Boaz1111@users.noreply.github.com> Co-authored-by: keronshb <54602815+keronshb@users.noreply.github.com> Co-authored-by: Wrexbe (Josh) <81056464+wrexbe@users.noreply.github.com> Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com> Co-authored-by: wrexbe <wrexbe@protonmail.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com> Co-authored-by: Flareguy <78941145+Flareguy@users.noreply.github.com> Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com> Co-authored-by: Simon <63975668+Simyon264@users.noreply.github.com> Co-authored-by: blueDev2 <89804215+blueDev2@users.noreply.github.com> Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Co-authored-by: Velcroboy <107660393+IamVelcroboy@users.noreply.github.com> Co-authored-by: Velcroboy <velcroboy333@hotmail.com> Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> Co-authored-by: brainfood1183 <113240905+brainfood1183@users.noreply.github.com> Co-authored-by: J. Brown <DrMelon@users.noreply.github.com> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> Co-authored-by: UBlueberry <161545003+UBlueberry@users.noreply.github.com> Co-authored-by: Tayrtahn <tayrtahn@gmail.com> Co-authored-by: drteaspoon420 <87363733+drteaspoon420@users.noreply.github.com> Co-authored-by: Bixkitts <72874643+Bixkitts@users.noreply.github.com> Co-authored-by: nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com> Co-authored-by: Ubaser <134914314+UbaserB@users.noreply.github.com> Co-authored-by: avery <51971268+graevy@users.noreply.github.com> Co-authored-by: eoineoineoin <github@eoinrul.es> Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es> Co-authored-by: RiceMar1244 <138547931+RiceMar1244@users.noreply.github.com> Co-authored-by: Zealith-Gamer <61980908+Zealith-Gamer@users.noreply.github.com> Co-authored-by: hamurlik <75280571+hamurlik@users.noreply.github.com> Co-authored-by: hamurlik <renoDeath@protonmail.com> Co-authored-by: no <165581243+pissdemon@users.noreply.github.com> Co-authored-by: Kara <lunarautomaton6@gmail.com> Co-authored-by: SoulFN <164462467+SoulFN@users.noreply.github.com> Co-authored-by: Keer-Sar <144283718+Keer-Sar@users.noreply.github.com> Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com> Co-authored-by: 0x6273 <0x40@keemail.me> Co-authored-by: c4llv07e <38111072+c4llv07e@users.noreply.github.com> Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com> Co-authored-by: Firewatch <54725557+musicmanvr@users.noreply.github.com> Co-authored-by: IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com> Co-authored-by: f0x-n3rd <150924715+f0x-n3rd@users.noreply.github.com> Co-authored-by: exincore <me@exin.xyz> Co-authored-by: Sk1tch <ben.peter.smith@gmail.com> Co-authored-by: Your Name <you@example.com> Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com> Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com> Co-authored-by: osjarw <62134478+osjarw@users.noreply.github.com> Co-authored-by: lunarcomets <140772713+lunarcomets@users.noreply.github.com> Co-authored-by: ThatOneGoblin25 <145570657+ThatOneGoblin25@users.noreply.github.com> Co-authored-by: Terraspark4941 <terraspark4941@gmail.com> Co-authored-by: Brandon Hu <103440971+Brandon-Huu@users.noreply.github.com> Co-authored-by: beck-thompson <107373427+beck-thompson@users.noreply.github.com> Co-authored-by: Aexxie <codyfox.077@gmail.com> Co-authored-by: DinoWattz <116862698+DinoWattz@users.noreply.github.com> Co-authored-by: Pspritechologist <81725545+Pspritechologist@users.noreply.github.com> Co-authored-by: Vasilis <vasilis@pikachu.systems> Co-authored-by: GeneralGaws <122978178+GeneralGaws@users.noreply.github.com> Co-authored-by: GeneralGaws <limonmessi@mail.ru> Co-authored-by: Dae <60460608+ZeroDayDaemon@users.noreply.github.com> Co-authored-by: potato1234_x <79580518+potato1234x@users.noreply.github.com> Co-authored-by: PrPleGoo <PrPleGoo@users.noreply.github.com> Co-authored-by: Mephisto72 <66994453+Mephisto72@users.noreply.github.com> Co-authored-by: Mephisto72 <Mephisto.Respectator@proton.me> Co-authored-by: TsjipTsjip <19798667+TsjipTsjip@users.noreply.github.com> Co-authored-by: Verm <32827189+Vermidia@users.noreply.github.com> Co-authored-by: superjj18 <gagnonjake@gmail.com> Co-authored-by: Golinth <amh2023@gmail.com> Co-authored-by: Alzore <140123969+Blackern5000@users.noreply.github.com> Co-authored-by: BITTERLYNX <166083655+PaigeMaeForrest@users.noreply.github.com>
2024-04-06 13:13:22 +03:00
public static readonly CVarDef<bool> ShowOocPatronColor =
CVarDef.Create("ooc.show_ooc_patron_color", true, CVar.ARCHIVE | CVar.REPLICATED | CVar.CLIENT);
2022-06-20 16:59:04 -04:00
/*
2022-01-11 16:29:55 +03:00
* LOOC
*/
public static readonly CVarDef<bool> LoocEnabled = CVarDef.Create("looc.enabled", true, CVar.NOTIFY | CVar.REPLICATED);
2022-01-11 16:29:55 +03:00
public static readonly CVarDef<bool> AdminLoocEnabled =
CVarDef.Create("looc.enabled_admin", true, CVar.NOTIFY);
/// <summary>
/// True: Dead players can use LOOC
/// False: Dead player LOOC gets redirected to dead chat
/// </summary>
public static readonly CVarDef<bool> DeadLoocEnabled = CVarDef.Create("looc.enabled_dead", false, CVar.NOTIFY | CVar.REPLICATED);
/// <summary>
/// True: Crit players can use LOOC
/// False: Crit player LOOC gets redirected to dead chat
/// </summary>
public static readonly CVarDef<bool> CritLoocEnabled = CVarDef.Create("looc.enabled_crit", false, CVar.NOTIFY | CVar.REPLICATED);
2022-01-11 16:29:55 +03:00
/*
* Entity Menu Grouping Types
*/
public static readonly CVarDef<int> EntityMenuGroupingType = CVarDef.Create("entity_menu", 0, CVar.CLIENTONLY);
2022-01-04 06:37:06 -07:00
/*
* Whitelist
*/
/// <summary>
/// Controls whether the server will deny any players that are not whitelisted in the DB.
/// </summary>
public static readonly CVarDef<bool> WhitelistEnabled =
CVarDef.Create("whitelist.enabled", false, CVar.SERVERONLY);
2023-01-30 23:57:45 -06:00
/// <summary>
/// Specifies the whitelist prototypes to be used by the server. This should be a comma-separated list of prototypes.
/// If a whitelists conditions to be active fail (for example player count), the next whitelist will be used instead. If no whitelist is valid, the player will be allowed to connect.
2023-01-30 23:57:45 -06:00
/// </summary>
public static readonly CVarDef<string> WhitelistPrototypeList =
CVarDef.Create("whitelist.prototype_list", "basicWhitelist", CVar.SERVERONLY);
2023-01-30 23:57:45 -06:00
/*
* VOTE
*/
/// <summary>
/// Allows enabling/disabling player-started votes for ultimate authority
/// </summary>
public static readonly CVarDef<bool> VoteEnabled =
CVarDef.Create("vote.enabled", true, CVar.SERVERONLY);
/// <summary>
/// See vote.enabled, but specific to restart votes
/// </summary>
public static readonly CVarDef<bool> VoteRestartEnabled =
CVarDef.Create("vote.restart_enabled", true, CVar.SERVERONLY);
/// <summary>
/// Config for when the restart vote should be allowed to be called regardless with less than this amount of players.
/// </summary>
public static readonly CVarDef<int> VoteRestartMaxPlayers =
CVarDef.Create("vote.restart_max_players", 20, CVar.SERVERONLY);
/// <summary>
/// Config for when the restart vote should be allowed to be called based on percentage of ghosts.
///
public static readonly CVarDef<int> VoteRestartGhostPercentage =
CVarDef.Create("vote.restart_ghost_percentage", 55, CVar.SERVERONLY);
/// <summary>
/// See vote.enabled, but specific to preset votes
/// </summary>
public static readonly CVarDef<bool> VotePresetEnabled =
CVarDef.Create("vote.preset_enabled", true, CVar.SERVERONLY);
/// <summary>
/// See vote.enabled, but specific to map votes
/// </summary>
public static readonly CVarDef<bool> VoteMapEnabled =
CVarDef.Create("vote.map_enabled", false, CVar.SERVERONLY);
/// <summary>
/// The required ratio of the server that must agree for a restart round vote to go through.
/// </summary>
public static readonly CVarDef<float> VoteRestartRequiredRatio =
CVarDef.Create("vote.restart_required_ratio", 0.85f, CVar.SERVERONLY);
/// <summary>
/// Whether or not to prevent the restart vote from having any effect when there is an online admin
/// </summary>
public static readonly CVarDef<bool> VoteRestartNotAllowedWhenAdminOnline =
CVarDef.Create("vote.restart_not_allowed_when_admin_online", true, CVar.SERVERONLY);
2022-07-04 15:14:04 +10:00
/// <summary>
/// The delay which two votes of the same type are allowed to be made by separate people, in seconds.
/// </summary>
public static readonly CVarDef<float> VoteSameTypeTimeout =
CVarDef.Create("vote.same_type_timeout", 240f, CVar.SERVERONLY);
/// <summary>
/// Sets the duration of the map vote timer.
/// </summary>
public static readonly CVarDef<int>
VoteTimerMap = CVarDef.Create("vote.timermap", 90, CVar.SERVERONLY);
/// <summary>
/// Sets the duration of the restart vote timer.
/// </summary>
public static readonly CVarDef<int>
VoteTimerRestart = CVarDef.Create("vote.timerrestart", 60, CVar.SERVERONLY);
/// <summary>
/// Sets the duration of the gamemode/preset vote timer.
/// </summary>
public static readonly CVarDef<int>
VoteTimerPreset = CVarDef.Create("vote.timerpreset", 30, CVar.SERVERONLY);
/// <summary>
/// Sets the duration of the map vote timer when ALONE.
/// </summary>
public static readonly CVarDef<int>
VoteTimerAlone = CVarDef.Create("vote.timeralone", 10, CVar.SERVERONLY);
2024-09-26 18:32:13 +02:00
/*
* VOTEKICK
*/
/// <summary>
/// Allows enabling/disabling player-started votekick for ultimate authority
/// </summary>
public static readonly CVarDef<bool> VotekickEnabled =
CVarDef.Create("votekick.enabled", true, CVar.SERVERONLY);
/// <summary>
/// Config for when the votekick should be allowed to be called based on number of eligible voters.
/// </summary>
public static readonly CVarDef<int> VotekickEligibleNumberRequirement =
CVarDef.Create("votekick.eligible_number", 5, CVar.SERVERONLY);
2024-09-26 18:32:13 +02:00
/// <summary>
/// Whether a votekick initiator must be a ghost or not.
/// </summary>
public static readonly CVarDef<bool> VotekickInitiatorGhostRequirement =
CVarDef.Create("votekick.initiator_ghost_requirement", true, CVar.SERVERONLY);
/// <summary>
/// Should the initiator be whitelisted to initiate a votekick?
/// </summary>
public static readonly CVarDef<bool> VotekickInitiatorWhitelistedRequirement =
CVarDef.Create("votekick.initiator_whitelist_requirement", true, CVar.SERVERONLY);
/// <summary>
/// Should the initiator be able to start a votekick if they are bellow the votekick.voter_playtime requirement?
/// </summary>
public static readonly CVarDef<bool> VotekickInitiatorTimeRequirement =
CVarDef.Create("votekick.initiator_time_requirement", false, CVar.SERVERONLY);
2024-09-26 18:32:13 +02:00
/// <summary>
/// Whether a votekick voter must be a ghost or not.
/// </summary>
public static readonly CVarDef<bool> VotekickVoterGhostRequirement =
CVarDef.Create("votekick.voter_ghost_requirement", true, CVar.SERVERONLY);
/// <summary>
/// Config for how many hours playtime a player must have to be able to vote on a votekick.
/// </summary>
public static readonly CVarDef<int> VotekickEligibleVoterPlaytime =
CVarDef.Create("votekick.voter_playtime", 100, CVar.SERVERONLY);
/// <summary>
/// Config for how many seconds a player must have been dead to initiate a votekick / be able to vote on a votekick.
/// </summary>
public static readonly CVarDef<int> VotekickEligibleVoterDeathtime =
CVarDef.Create("votekick.voter_deathtime", 30, CVar.REPLICATED | CVar.SERVER);
2024-09-26 18:32:13 +02:00
/// <summary>
/// The required ratio of eligible voters that must agree for a votekick to go through.
/// </summary>
public static readonly CVarDef<float> VotekickRequiredRatio =
CVarDef.Create("votekick.required_ratio", 0.6f, CVar.SERVERONLY);
/// <summary>
/// Whether or not to prevent the votekick from having any effect when there is an online admin.
/// </summary>
public static readonly CVarDef<bool> VotekickNotAllowedWhenAdminOnline =
CVarDef.Create("votekick.not_allowed_when_admin_online", true, CVar.SERVERONLY);
/// <summary>
/// The delay for which two votekicks are allowed to be made by separate people, in seconds.
/// </summary>
public static readonly CVarDef<float> VotekickTimeout =
CVarDef.Create("votekick.timeout", 120f, CVar.SERVERONLY);
/// <summary>
/// Sets the duration of the votekick vote timer.
/// </summary>
public static readonly CVarDef<int>
VotekickTimer = CVarDef.Create("votekick.timer", 60, CVar.SERVERONLY);
/// <summary>
/// Config for how many hours playtime a player must have to get protection from the Raider votekick type when playing as an antag.
/// </summary>
public static readonly CVarDef<int> VotekickAntagRaiderProtection =
CVarDef.Create("votekick.antag_raider_protection", 10, CVar.SERVERONLY);
/// <summary>
/// Default severity for votekick bans
/// </summary>
public static readonly CVarDef<string> VotekickBanDefaultSeverity =
CVarDef.Create("votekick.ban_default_severity", "High", CVar.ARCHIVE | CVar.SERVER | CVar.REPLICATED);
/// <summary>
/// Duration of a ban caused by a votekick (in minutes).
/// </summary>
public static readonly CVarDef<int> VotekickBanDuration =
CVarDef.Create("votekick.ban_duration", 180, CVar.SERVERONLY);
/// <summary>
/// Whether the ghost requirement settings for votekicks should be ignored for the lobby.
/// </summary>
public static readonly CVarDef<bool> VotekickIgnoreGhostReqInLobby =
CVarDef.Create("votekick.ignore_ghost_req_in_lobby", true, CVar.SERVERONLY);
2021-04-09 19:28:03 +02:00
/*
* BAN
*/
public static readonly CVarDef<bool> BanHardwareIds =
2021-11-04 00:28:01 +01:00
CVarDef.Create("ban.hardware_ids", true, CVar.SERVERONLY);
2023-03-10 16:41:22 +11:00
/*
* Procgen
*/
/// <summary>
/// Should we pre-load all of the procgen atlasses.
/// </summary>
public static readonly CVarDef<bool> ProcgenPreload =
CVarDef.Create("procgen.preload", true, CVar.SERVERONLY);
/*
* Shuttles
*/
2022-08-29 15:05:53 +10:00
// Look this is technically eye behavior but its main impact is shuttles so I just dumped it here.
/// <summary>
/// If true then the camera will match the grid / map and is unchangeable.
/// - When traversing grids it will snap to 0 degrees rotation.
/// False means the player has control over the camera rotation.
/// - When traversing grids it will snap to the nearest cardinal which will generally be imperceptible.
/// </summary>
public static readonly CVarDef<bool> CameraRotationLocked =
CVarDef.Create("shuttle.camera_rotation_locked", false, CVar.REPLICATED);
2022-08-29 15:05:53 +10:00
/// <summary>
/// Whether the arrivals terminal should be on a planet map.
/// </summary>
public static readonly CVarDef<bool> ArrivalsPlanet =
CVarDef.Create("shuttle.arrivals_planet", true, CVar.SERVERONLY);
/// <summary>
/// Whether the arrivals shuttle is enabled.
/// </summary>
public static readonly CVarDef<bool> ArrivalsShuttles =
2024-08-05 21:08:10 +03:00
CVarDef.Create("shuttle.arrivals", false, CVar.SERVERONLY); //CP14 arrivals disabled
/// <summary>
/// The map to use for the arrivals station.
/// </summary>
public static readonly CVarDef<string> ArrivalsMap =
CVarDef.Create("shuttle.arrivals_map", "/Maps/Misc/terminal.yml", CVar.SERVERONLY);
/// <summary>
/// Cooldown between arrivals departures. This should be longer than the FTL time or it will double cycle.
/// </summary>
public static readonly CVarDef<float> ArrivalsCooldown =
2023-05-14 18:00:36 +10:00
CVarDef.Create("shuttle.arrivals_cooldown", 50f, CVar.SERVERONLY);
/// <summary>
/// Are players allowed to return on the arrivals shuttle.
/// </summary>
public static readonly CVarDef<bool> ArrivalsReturns =
CVarDef.Create("shuttle.arrivals_returns", false, CVar.SERVERONLY);
/// <summary>
/// Should all players who spawn at arrivals have godmode until they leave the map?
/// </summary>
public static readonly CVarDef<bool> GodmodeArrivals =
CVarDef.Create("shuttle.godmode_arrivals", false, CVar.SERVERONLY);
/// <summary>
/// If a grid is split then hide any smaller ones under this mass (kg) from the map.
/// This is useful to avoid split grids spamming out labels.
/// </summary>
public static readonly CVarDef<int> HideSplitGridsUnder =
CVarDef.Create("shuttle.hide_split_grids_under", 30, CVar.SERVERONLY);
/// <summary>
/// Whether to automatically spawn escape shuttles.
/// </summary>
2023-05-31 11:13:02 +10:00
public static readonly CVarDef<bool> GridFill =
CVarDef.Create("shuttle.grid_fill", true, CVar.SERVERONLY);
/// <summary>
/// Whether to automatically preloading grids by GridPreloaderSystem
/// </summary>
public static readonly CVarDef<bool> PreloadGrids =
CVarDef.Create("shuttle.preload_grids", true, CVar.SERVERONLY);
/// <summary>
/// How long the warmup time before FTL start should be.
/// </summary>
public static readonly CVarDef<float> FTLStartupTime =
CVarDef.Create("shuttle.startup_time", 5.5f, CVar.SERVERONLY);
/// <summary>
/// How long a shuttle spends in FTL.
/// </summary>
public static readonly CVarDef<float> FTLTravelTime =
CVarDef.Create("shuttle.travel_time", 20f, CVar.SERVERONLY);
/// <summary>
/// How long the final stage of FTL before arrival should be.
/// </summary>
public static readonly CVarDef<float> FTLArrivalTime =
CVarDef.Create("shuttle.arrival_time", 5f, CVar.SERVERONLY);
/// <summary>
/// How much time needs to pass before a shuttle can FTL again.
/// </summary>
public static readonly CVarDef<float> FTLCooldown =
CVarDef.Create("shuttle.cooldown", 10f, CVar.SERVERONLY);
/// <summary>
/// The maximum <see cref="PhysicsComponent.Mass"/> a grid can have before it becomes unable to FTL.
/// Any value equal to or less than zero will disable this check.
/// </summary>
public static readonly CVarDef<float> FTLMassLimit =
CVarDef.Create("shuttle.mass_limit", 300f, CVar.SERVERONLY);
/// <summary>
/// How long to knock down entities for if they aren't buckled when FTL starts and stops.
/// </summary>
public static readonly CVarDef<float> HyperspaceKnockdownTime =
CVarDef.Create("shuttle.hyperspace_knockdown_time", 5f, CVar.SERVERONLY);
/*
* Emergency
*/
/// <summary>
/// Is the emergency shuttle allowed to be early launched.
/// </summary>
public static readonly CVarDef<bool> EmergencyEarlyLaunchAllowed =
CVarDef.Create("shuttle.emergency_early_launch_allowed", false, CVar.SERVERONLY);
/// <summary>
/// How long the emergency shuttle remains docked with the station, in seconds.
/// </summary>
public static readonly CVarDef<float> EmergencyShuttleDockTime =
CVarDef.Create("shuttle.emergency_dock_time", 180f, CVar.SERVERONLY);
/// <summary>
/// If the emergency shuttle can't dock at a priority port, the dock time will be multiplied with this value.
/// </summary>
public static readonly CVarDef<float> EmergencyShuttleDockTimeMultiplierOtherDock =
CVarDef.Create("shuttle.emergency_dock_time_multiplier_other_dock", 1.6667f, CVar.SERVERONLY);
/// <summary>
/// If the emergency shuttle can't dock at all, the dock time will be multiplied with this value.
/// </summary>
public static readonly CVarDef<float> EmergencyShuttleDockTimeMultiplierNoDock =
CVarDef.Create("shuttle.emergency_dock_time_multiplier_no_dock", 2f, CVar.SERVERONLY);
/// <summary>
/// How long after the console is authorized for the shuttle to early launch.
/// </summary>
public static readonly CVarDef<float> EmergencyShuttleAuthorizeTime =
CVarDef.Create("shuttle.emergency_authorize_time", 10f, CVar.SERVERONLY);
/// <summary>
/// The minimum time for the emergency shuttle to arrive at centcomm.
/// Actual minimum travel time cannot be less than <see cref="ShuttleSystem.DefaultArrivalTime"/>
/// </summary>
public static readonly CVarDef<float> EmergencyShuttleMinTransitTime =
CVarDef.Create("shuttle.emergency_transit_time_min", 60f, CVar.SERVERONLY);
/// <summary>
/// The maximum time for the emergency shuttle to arrive at centcomm.
/// </summary>
public static readonly CVarDef<float> EmergencyShuttleMaxTransitTime =
CVarDef.Create("shuttle.emergency_transit_time_max", 180f, CVar.SERVERONLY);
/// <summary>
/// Whether the emergency shuttle is enabled or should the round just end.
/// </summary>
public static readonly CVarDef<bool> EmergencyShuttleEnabled =
2024-08-05 21:08:10 +03:00
CVarDef.Create("shuttle.emergency", false, CVar.SERVERONLY); //CP14 Emergency disabled
/// <summary>
/// The percentage of time passed from the initial call to when the shuttle can no longer be recalled.
/// ex. a call time of 10min and turning point of 0.5 means the shuttle cannot be recalled after 5 minutes.
/// </summary>
public static readonly CVarDef<float> EmergencyRecallTurningPoint =
CVarDef.Create("shuttle.recall_turning_point", 0.5f, CVar.SERVERONLY);
/// <summary>
/// Time in minutes after round start to auto-call the shuttle. Set to zero to disable.
/// </summary>
public static readonly CVarDef<int> EmergencyShuttleAutoCallTime =
CVarDef.Create("shuttle.auto_call_time", 90, CVar.SERVERONLY);
/// <summary>
/// Time in minutes after the round was extended (by recalling the shuttle) to call
/// the shuttle again.
/// </summary>
public static readonly CVarDef<int> EmergencyShuttleAutoCallExtensionTime =
CVarDef.Create("shuttle.auto_call_extension_time", 45, CVar.SERVERONLY);
/*
* Crew Manifests
*/
/// <summary>
/// Setting this allows a crew manifest to be opened from any window
/// that has a crew manifest button, and sends the correct message.
/// If this is false, only in-game entities will allow you to see
/// the crew manifest, if the functionality is coded in.
/// Having administrator priveledge ignores this, but will still
/// hide the button in UI windows.
/// </summary>
public static readonly CVarDef<bool> CrewManifestWithoutEntity =
CVarDef.Create("crewmanifest.no_entity", true, CVar.REPLICATED);
/// <summary>
/// Setting this allows the crew manifest to be viewed from 'unsecure'
/// entities, such as the PDA.
/// </summary>
public static readonly CVarDef<bool> CrewManifestUnsecure =
CVarDef.Create("crewmanifest.unsecure", true, CVar.REPLICATED);
/*
* Biomass
*/
/// <summary>
/// Enabled: Cloning has 70% cost and reclaimer will refuse to reclaim corpses with souls. (For LRP).
/// Disabled: Cloning has full biomass cost and reclaimer can reclaim corpses with souls. (Playtested and balanced for MRP+).
/// </summary>
public static readonly CVarDef<bool> BiomassEasyMode =
CVarDef.Create("biomass.easy_mode", true, CVar.SERVERONLY);
/*
* Anomaly
*/
/// <summary>
/// A scale factor applied to a grid's bounds when trying to find a spot to randomly generate an anomaly.
/// </summary>
public static readonly CVarDef<float> AnomalyGenerationGridBoundsScale =
CVarDef.Create("anomaly.generation_grid_bounds_scale", 0.6f, CVar.SERVERONLY);
2021-04-19 09:52:40 +02:00
/*
* VIEWPORT
*/
public static readonly CVarDef<bool> ViewportStretch =
CVarDef.Create("viewport.stretch", true, CVar.CLIENTONLY | CVar.ARCHIVE);
public static readonly CVarDef<int> ViewportFixedScaleFactor =
CVarDef.Create("viewport.fixed_scale_factor", 2, CVar.CLIENTONLY | CVar.ARCHIVE);
// This default is basically specifically chosen so fullscreen/maximized 1080p hits a 2x snap and does NN.
public static readonly CVarDef<int> ViewportSnapToleranceMargin =
CVarDef.Create("viewport.snap_tolerance_margin", 64, CVar.CLIENTONLY | CVar.ARCHIVE);
2021-04-19 09:52:40 +02:00
public static readonly CVarDef<int> ViewportSnapToleranceClip =
CVarDef.Create("viewport.snap_tolerance_clip", 32, CVar.CLIENTONLY | CVar.ARCHIVE);
2021-04-19 09:52:40 +02:00
public static readonly CVarDef<bool> ViewportScaleRender =
CVarDef.Create("viewport.scale_render", true, CVar.CLIENTONLY | CVar.ARCHIVE);
public static readonly CVarDef<int> ViewportMinimumWidth =
CVarDef.Create("viewport.minimum_width", 15, CVar.REPLICATED | CVar.SERVER);
public static readonly CVarDef<int> ViewportMaximumWidth =
CVarDef.Create("viewport.maximum_width", 21, CVar.REPLICATED | CVar.SERVER);
public static readonly CVarDef<int> ViewportWidth =
CVarDef.Create("viewport.width", 21, CVar.CLIENTONLY | CVar.ARCHIVE);
public static readonly CVarDef<bool> ViewportVerticalFit =
CVarDef.Create("viewport.vertical_fit", true, CVar.CLIENTONLY | CVar.ARCHIVE);
/*
* UI
*/
public static readonly CVarDef<string> UILayout =
CVarDef.Create("ui.layout", "Default", CVar.CLIENTONLY | CVar.ARCHIVE);
2023-03-06 11:06:57 -08:00
public static readonly CVarDef<string> DefaultScreenChatSize =
CVarDef.Create("ui.default_chat_size", "", CVar.CLIENTONLY | CVar.ARCHIVE);
public static readonly CVarDef<string> SeparatedScreenChatSize =
CVarDef.Create("ui.separated_chat_size", "0.6,0", CVar.CLIENTONLY | CVar.ARCHIVE);
/*
* Accessibility
*/
Upstream, Yay (#27) * Make BaseMedicalPDA abstract (#26567) * Fix GasMixers/Filters not working (#26568) * Fix GasMixers/Filters not working * OKAY GAS FILTERS TOO --------- Co-authored-by: Plykiya <plykiya@protonmail.com> * Industrial Reagent Grinder Hotfix (#26571) fixed * Give stores the ability to check for owner only (#26573) adds a check if the store belongs to the user * Fix round start crash (causing instant restart) (#26579) * Fix round start crash * Make `TryCreateObjective` more error tolerant * Update engine to v217.1.0 (#26588) * Fix initial infected icon hiding (#26585) * Fix Meta evac shuttle name (#26587) * Make timer ignore client predict setting (#26554) * Make timer ignore client predict setting * making tests run --------- Co-authored-by: wrexbe <wrexbe@protonmail.com> * Make advertise system survive no map inits (#26553) * Make advertise system survive no map inits * Add comment to try prevent future bugs * Update Credits (#26589) Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com> * Fix fox spawn on reach (#26584) Co-authored-by: wrexbe <wrexbe@protonmail.com> * Removes SCAF armor (#26566) * removes scaf armor * replace maint loot spawner spot with basic helmet * Update Patrons.yml (#26578) * Automatic changelog update * Make aghost command work on other players using optional argument (#26546) * Translations * Make aghost command work on other players using optional argument * Reviews * Automatic changelog update * Add new component to Make sound on interact (#26523) * Adds new Component: EmitSoundOnInteractUsing * Missed an import * File-scoping * Replace ID check with Prototype check * Moved component and system to shared. Set prediction to true. * Removed impoper imports and changed namespace of component to reflect changed folder. * Following function naming theme * All this code is basically deltanedas's, but it was a learning experience for me * Update Content.Shared/Sound/Components/EmitSoundOnInteractUsingComponent.cs * Update Content.Shared/Sound/Components/EmitSoundOnInteractUsingComponent.cs --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> * Increase syndi duffelbag storage (#26565) * Increase syndi duffelbag storage * weh * Automatic changelog update * Adds construction/decon graphs for plastic flaps (#26341) * Adds construction/decon graphs for plastic flaps * Dang arbitrage * undo conflict --------- Co-authored-by: Velcroboy <velcroboy333@hotmail.com> * Automatic changelog update * Makes secglasses roundstart (#26487) * makes secglasses roundstart * fix epic fail * fix tests questionmark? * Update Resources/Prototypes/Entities/Clothing/Eyes/glasses.yml Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> --------- Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> * Automatic changelog update * Toilet Upgrade (needs review) (#22133) * Toilet Draft * fixes * toilets now have secret stash to place items in cistern. * fixes * plungers now unblock toilets. * fix sprite * new sprites and fix * fixes * improve seat sprites. * fix * removed visualisersystem changed to genericvisualizers * flush sound for toilets and copyright for toilet sprites. * fix atrributions * fixes * fix datafield flushtime * sprite improvements * fixes * multiple changes * fix * fix * fixes remove vv * moved stash related functions to secret stash system from toilet. * fix * fix * changes for recent review. * fix * fix * Automatic changelog update * Uplink store interface searchable with a searchbar. (#24287) * Can now search the uplink store interface with a searchbar. * Search text updates no longer send server messages. Persists listings locally. * Formatting fixes and tidying. * Added helper method to get localised name and description (or otherwise, entity name and description) of store listing items. * Update Content.Client/Store/Ui/StoreMenu.xaml * Review change; moved localisation helper functions to their own class. * Prevent thread-unsafe behaviour as-per review. * Remove dummy boxcontainer --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Automatic changelog update * Improved RCDs (#22799) * Initial radial menu prototyping for the RCD * Radial UI buttons can send messages to the server * Beginning to update RCDSystem * RCD building system in progress * Further updates * Added extra effects, RCDSystem now reads RCD prototype data * Replacing tiles is instant, multiple constructions are allowed, deconstruction is broken * Added extra functionality to RadialContainers plus documentation * Fixed localization of RCD UI strings * Menu opens near cursor, added basic RCD * Avoiding merge conflict * Implemented atomized construction / deconstruction rules * Increased RCD ammo base charges * Moved input context definition to content * Removed obsoleted code * Updates to system * Switch machine and computer frames for electrical cabling * Added construction ghosts * Fixed issue with keybind detection code * Fixed RCD construction ghost mispredications * Code clean up * Updated deconstruction effects * RCDs effects don't rotate * Code clean up * Balancing for ammo counts * Code clean up * Added missing localized strings * More clean up * Made directional window handling more robust * Added documentation to radial menus and made them no longer dependent on Content * Made radial containers more robust * Further robustness to the radial menu * The RCD submenu buttons are only shown when the destination layer has at least one children * Expanded upon deconstructing plus construction balance * Fixed line endings * Updated list of RCD deconstructable entities. Now needs a component to deconstruct instead of a tag * Bug fixes * Revert unnecessary change * Updated RCD strings * Fixed bug * More fixes * Deconstructed tiles/subflooring convert to lattice instead * Fixed failed tests (Linux doesn't like invalid spritespecifer paths) * Fixing merge conflict * Updated airlock assembly * Fixing merge conflict * Fixing merge conflict * More fixing... * Removed erroneous project file change * Fixed string handling issue * Trying to fix merge conflict * Still fixing merge conflicts * Balancing * Hidden RCD construction ghosts when in 'build' mode * Fixing merge conflict * Implemented requested changes (Part 1) * Added more requested changes * Fix for failed test. Removed sussy null suppression * Made requested changes - custom construction ghost system was replaced * Fixing merge conflict * Fixed merge conflict * Fixed bug in RCD construction ghost validation * Fixing merge conflict * Merge conflict fixed * Made required update * Removed lingering RCD deconstruct tag * Fixing merge conflict * Merge conflict fixed * Made requested changes * Bug fixes and balancing * Made string names more consistent * Can no longer stack catwalks * Automatic changelog update * Update submodule to 217.2.0 (#26592) * Southern accent (#26543) * created the AccentComponent and the AccentSystem * word replacement schtuhff * made it a trait fr ongg!!1 * Update Content.Server/Speech/EntitySystems/SouthernAccentSystem.cs --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> * Prevent storing liquids in equipped buckets (#24412) * Block access to solutions in equipped spillables. * Stop Drink verb appearing if the solution can't be accessed. * Automatic changelog update * Fix 'Hypopen shouldn't display solution examine text' (#26453) * stealthy hypo * ExaminableSolution hand check when in covert implement. ExaminableSolution now has 'hidden' datafield to enable chemical inspection only in hand. * cleaning code * more cleaning * Hidden datafield renamed to HeldOnly * review --------- Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Automatic changelog update * Revert Paint (#26593) * Revert "Fix build (#26258)" This reverts commit 6de5fbfafbde700d711a566f6a43f05f7a99e455. * Revert "Spray Paint (Review Ready) (#23003)" This reverts commit e4d5e7f1aebfc37b1bc3453fdb39578f3897b6a1. # Conflicts: # Resources/Prototypes/Entities/Structures/Holographic/projections.yml * Fix: Prevent single-use hyposprays from getting the toggle draw verb (#26595) Prevent single-use hyposprays from getting the toggle draw verb Co-authored-by: Plykiya <plykiya@protonmail.com> * MeleeHitSoundSystem (#25005) * Began work to unscrew melee noises * finished * cleanup * cleanup * Update Content.Server/Weapons/Melee/MeleeWeaponSystem.cs Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com> * _Style * Fix merge --------- Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Remove physics comp from VendingMachineWallmount (#25632) * Remove physics comp from VendingMachineWallmount * Fixtures removal --------- Co-authored-by: Jeff <velcroboy333@hotmail.com> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Remake hairflowers (#25475) * Add more lily usage (orange hairflower and flowercrown) * comit 2 * ee * more fixes * w * im stupid * bring poppy in authodrobe * weh --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> * Automatic changelog update * Injector UI shows TransferAmount change, Spilling liquid changes Injector mode (#26596) * Injector UI shows TransferAmount change, spill changes mode * Update Content.Shared/Fluids/SharedPuddleSystem.Spillable.cs * Update Content.Shared/Fluids/SharedPuddleSystem.Spillable.cs --------- Co-authored-by: Plykiya <plykiya@protonmail.com> Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> * Update submodule to 217.2.1 (#26599) * disallow unanchoring or opening panels on locked emitters/APEs (#26600) * disallow unanchoring or opening panels on locked emitters/APEs * no locking open panels * oops * needback feedback * Update Content.Shared/Lock/LockSystem.cs * Update Content.Shared/Lock/LockSystem.cs * Update Content.Shared/Lock/LockSystem.cs * sanity --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Automatic changelog update * Fix grave digging sound indefinitely playing if dug by aghost. (#26420) Admins bypass doafters. As such, the code that runs on doafter completion is ran before the sound is actually created. This then leads to the sound never being stopped, and as such it would infinitely play. This commit gets around the issue by manually stopping the sound should the doafter fail to start. If we could be sure that the doafter would never fail, then we could just move the call to StartDigging above starting the doafter but this is currently not possible. Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Make the buttons on the map ui not squished (#26604) Make the map ui work Co-authored-by: wrexbe <wrexbe@protonmail.com> * Combine flower crown and wreath (#26605) * Combine flower crown and wreath * huh * huuh :trollface: * Automatic changelog update * Add AP damage to throwing knives (#26380) * add * ap * no more stam dmg * Automatic changelog update * cancelable brig timers (#26557) brig timers now cancelable. also some screensystem yakshave * Fix orientation of roller skate sprites (#26627) Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es> * Automatic changelog update * Fix GastTileOverlay sending redundant data (#26623) Fix GastTileOverlay not updating properly * Auto DeAdmin sooner (#26551) Co-authored-by: wrexbe <wrexbe@protonmail.com> * Add briefcase to curadrobe and lawdrobe, and some briefcases cleanup (#26527) * Add briefcase to curadrobe and some briefcases cleanup * also add to lawdrobe * Automatic changelog update * Fix some text overflow bugs in HUD (#26615) * Don't clip text in item status * Fix overflow in examine tooltip --------- Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es> * Adds two milk cartons to the BoozeOMat (#26635) * Automatic changelog update * made the hover text less vague (sorry) (#26630) * blacklisted throwing knifes from pneumatic cannon (#26628) * Fix radio jammer not blocking suit sensors. (#26632) As it turns out, they are not in fact on their own netid. They are actually just on wireless. The way I had tested my previous pr led to this mistake being made. I originally had the radio jammer block wireless as well, but decided to take out under the flase assumption that it suit sensors were actually on their own netid and did not require the ability to block all wireless packets at the last moment. * Fix dirt decals in reach not being cleanable (#26636) made all dirt decals cleanable Co-authored-by: hamurlik <renoDeath@protonmail.com> * Automatic changelog update * Replace drill_hit.ogg and drill_use.ogg with better sounds (#26622) * Replace drill_hit.ogg and drill_use.ogg with better sounds * Fix attribution source for drill_hit.ogg * Update Resources/Audio/Items/attributions.yml Co-authored-by: Kara <lunarautomaton6@gmail.com> * Update Resources/Audio/Items/attributions.yml Co-authored-by: Kara <lunarautomaton6@gmail.com> --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Co-authored-by: Kara <lunarautomaton6@gmail.com> * Gave Blast door access permissions (#26606) Added access reader to all blast doors. Added pre configured blast doors for engineering and science. * Gives all wheeled objects low friction (#26601) * gives all wheeled objects friction * adjustments to sum stuff * Automatic changelog update * Combine solution injection systems; Fix embeddable injectors (#26268) * Combine injection systems * Update Content.Server/Chemistry/EntitySystems/SolutionInjectOnEventSystem.cs --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> * Automatic changelog update * Add ValueList import (#26640) * Change assault borg modules texture (#26502) * Update borg_modules.yml * Fix borg_modules.yml? * Uh --------- Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Automatic changelog update * Add Cyborg Emote Sounds (#26594) * Hal 9000's first emote * Add Chime emote & Change variation to 0.05 * Modify Buzz emote * Add Buzz-two emote * modified Horn * add ping emote * add slowclap emote * Convert slowclap.ogg to mono, reflect change in attribution.yml * fix capitalization for all chatMessages && change all catagory to category * remove all traces of slowclap.ogg * forgor one file smh * collating copywrite * spelling mistakes will be the death of me * more spelling mistakes * change yml string to list * Automatic changelog update * Coordinates Disks & Shuttle FTL Travel (#23240) * Adds the CentComm Disk and configures it to work with direct-use shuttles * Added functionality for drone shuttles (i.e. cargo shuttle) * Adds support for pods, and a disk console object for disks to be inserted into. Also sprites. * Added the disk to HoP's locker * Removed leftover logs & comments * Fix for integration test * Apply suggestions from code review (formatting & proper DataField) Co-authored-by: 0x6273 <0x40@keemail.me> * Fix integration test & changes based on code review * Includes Disk Cases to contain Coordinate Disks, which are now CDs instead of Floppy Disks * Check pods & non-evac shuttles for CentCom travel, even in FTL * Import * Remove CentCom travel restrictions & pod disk consoles * Major changes that changes the coordinates disk system to work with salvage expeditions * Missed CC diskcase removal * Fix build * Review suggestions and changes * Major additional changes after merge * Minor tag miss * Integration test fix * review --------- Co-authored-by: 0x6273 <0x40@keemail.me> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Automatic changelog update * Add door electronics access configuration menu (#17778) * Add door electronics configuration menu * Use file-scoped namespaces Signed-off-by: c4llv07e <kseandi@gmail.com> * Open door electronics configuration menu only with network configurator Signed-off-by: c4llv07e <kseandi@gmail.com> * Doors will now try to move their AccessReaderComponent to their door electronics when the map is initialized Signed-off-by: c4llv07e <kseandi@gmail.com> * Make the access list in the id card computer a separate control Signed-off-by: c4llv07e <kseandi@gmail.com> * Fix merge conflict Signed-off-by: c4llv07e <kseandi@gmail.com> * Remove DoorElectronics tag Signed-off-by: c4llv07e <kseandi@gmail.com> * Integrate doors with #17927 Signed-off-by: c4llv07e <kseandi@gmail.com> * Move door electornics ui stuff to the right place Signed-off-by: c4llv07e <kseandi@gmail.com> * Some review fixes Signed-off-by: c4llv07e <kseandi@gmail.com> * More fixes Signed-off-by: c4llv07e <kseandi@gmail.com> * review fix Signed-off-by: c4llv07e <kseandi@gmail.com> * move all accesses from airlock prototypes to door electronics Signed-off-by: c4llv07e <kseandi@gmail.com> * rework door electronics config access list Signed-off-by: c4llv07e <kseandi@gmail.com> * Remove Linq from the door electronics user interface * [WIP] Add EntityWhitelist to the activatable ui component Signed-off-by: c4llv07e <kseandi@gmail.com> * Better interaction system Signed-off-by: c4llv07e <kseandi@gmail.com> * Refactor Signed-off-by: c4llv07e <kseandi@gmail.com> * Fix some door electronics not working without AccessReaderComponent Signed-off-by: c4llv07e <kseandi@gmail.com> * Move AccessReaderComponent update code to the AccessReaderSystem Signed-off-by: c4llv07e <kseandi@gmail.com> * Remove unnecesary newlines in the door access prototypes Signed-off-by: c4llv07e <kseandi@gmail.com> * Remove unused variables in access level control Signed-off-by: c4llv07e <kseandi@gmail.com> * Remove unnecessary method from the door electronics configuration menu Signed-off-by: c4llv07e <kseandi@gmail.com> * [WIP] change access type from string to ProtoId<AccessLevelPrototype> Signed-off-by: c4llv07e <kseandi@gmail.com> * Remove unused methods Signed-off-by: c4llv07e <kseandi@gmail.com> * Newline fix Signed-off-by: c4llv07e <kseandi@gmail.com> * Restored to a functional state Signed-off-by: c4llv07e <kseandi@gmail.com> * Fix access configurator not working with door electronics AccessReaderComponent Signed-off-by: c4llv07e <kseandi@gmail.com> * Replace all string access fields with ProtoId Signed-off-by: c4llv07e <kseandi@gmail.com> * move access level control initialization into Populate method Signed-off-by: c4llv07e <kseandi@gmail.com> * Review --------- Signed-off-by: c4llv07e <kseandi@gmail.com> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Automatic changelog update * scoopable ash and foam, solution transfer prediction (#25832) * move SolutionTransfer to shared and predict as much as possible * fully move OpenableSystem to shared now that SolutionTransfer is * fix imports for everything * doc for solution transfer system * trolling * add scoopable system * make ash and foam scoopable * untroll * untroll real * make clickable it work * troll * the scooping room --------- Co-authored-by: deltanedas <@deltanedas:kde.org> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Replace the teleportation logic on the SCRAM implant! (#26429) * Replace the teleportation logic on the SCRAM implant! Now instead of just trying to pick a random tile in range 20 times, the scram teleportation logic now: - Gets a list of grids in range - Until a suitable tile is picked it picks a random grid - From that grid it picks a random tile. - If the tile is suitable, then it is set as the target and the user will be teleported there. - Grids and tiles are randomly picked as outlined above until a valid tile is found, or all valid grids and tiles are exhausted. - Should no suitable tile be found then they get teleported to the same position they are at. Effectively not teleporting them. * Actually make the defaults sane which I forgor in the last commit * Extract tile section to its own function. Bias selection for current grid. Use proper coords for box. * Address reviews as much as possible * Address reviews * Refactored AdvertiseComponent (#26598) * Made it better * ok * alright --------- Co-authored-by: wrexbe <wrexbe@protonmail.com> * Bartender "Essentials" (#25367) * drinks round 1 saving my progress before my hard drive explodes * test 2 please work * name fixes whoops * Update drinks.yml * various fixes am dumb * add sol dry to vends more fixes and changes, yippee! * more fixes & ingame testing shrimple tests * last fixes :trollface: should be ready for pr now * Update soda.yml sate thirst * Automatic changelog update * Add ERT Chaplain (#25956) * ERT Chaplain * Make BibleUser * It was not intended * reword my poor words * 1984 a comment that I decided was unnecessary. * Update Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> * Changes in chemicals page in guidebook (#25831) * Added pages to chemical categories The chemical categories have their own page now. Added the "Chemical Tabs" in /ServerInfo/Guidebook. Moved the Chemicals code from shiftsandjobs.yml to its own .yml file which is "chemicals.yml". * Update guides.ftl * Update chemicals.yml Changed the guide entry's ID for the medical tab from Medicine to Medicinal. Hope this works... * Update Resources/ServerInfo/Guidebook/Chemical Tabs/Biological.xml Co-authored-by: exincore <me@exin.xyz> * Update Resources/ServerInfo/Guidebook/Chemical Tabs/Foods.xml Co-authored-by: exincore <me@exin.xyz> * Update Resources/ServerInfo/Guidebook/Chemical Tabs/Elements.xml Co-authored-by: exincore <me@exin.xyz> * Update Resources/ServerInfo/Guidebook/Chemical Tabs/Narcotics.xml Co-authored-by: exincore <me@exin.xyz> * Update Resources/ServerInfo/Guidebook/Chemical Tabs/Toxins.xml Co-authored-by: exincore <me@exin.xyz> * Fixed a few errors and stuff! A few typos have been fixed thanks to exincore. Added dedicated .xml files to be used for the dedicated category pages (Medicinal and Botanical pages). Made it so it doesn't use any duplicated IDs anymore. If there's more problems, please do tell so I can fix it! * Update settings.json * Fix? --------- Co-authored-by: exincore <me@exin.xyz> * Automatic changelog update * Anomalies behaviours (#24683) * Added new anomaly particle * Add basic anomaly behaviour * +2 parametres * add functional to new particle * add components to behaviours * big content * add shuffle, moved thing to server * clean up * fixes * random pick redo * bonjour behavioUr * fix AJCM * fix * add some new behaviours * power modifier behaviour * rmeove timer * new event for update ui fix * refactor! * fixes * enum * Fix mapinit * Minor touches --------- Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> * Automatic changelog update * Fix clipping/overlap in lathe machine UIs (#26646) * Add scrollbars to lathe material list when necessary * Fix bug where shrinking window would cause elements to overlap --------- Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es> * Added chat window transparency slider to options (#24990) * Adds a new slider to the misc tab in options that lets the player set chat window transparency * Tweaked variable names * Fixed order to match UI * Renamed set chat window transparency function * Changed and refactored to opacity instead of transparency * Remove unnecessary int to float conversions Slider used to be 0-100 while the CCVar was 0.0-1.0f. This is confusing and was only used for rounding to 2 decimal points. * Round the value to two decimal points * Remove rounding for now * Rename * Unhardcode chat color by moving to stylesheet * Fix indent * Make opacity slider only change opacity --------- Co-authored-by: Your Name <you@example.com> Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com> * Automatic changelog update * Infinity books (#25840) * setup text data * roundstart reshuffling keywords with gibberish words * saved data categorized * add book with hints * start redrawing books * +4 book design * +books +random visual upgrade * finish first file * finish lore file * finish with books.rsi now authorbooks.rsi... * aurora! and some fix * nuke author books * speelbuke update * finish respriting work * fix scientist guide visual * setup datasets * setup stupid funny random story * restore author books, upgrade hint generation * add variety to story generator * add learning system * minor textgen edit * file restruct, hint count variation * more restruct * more renaming add basis learning system logic. Spears locked for special book for test. * nuke all systems, for splitting PR gods * typo fix * update migration with deleted books * add random story books to maint * Update construction-system.ftl * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> * typo fix * interchangeably * final * Update Resources/Prototypes/Datasets/Names/books.yml Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com> * "." * Update Content.Server/Paper/PaperRandomStorySystem.cs Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com> * Ubazer fix * inadequate * localized * Update meta.json * fuck merge conflicts * fix jani book --------- Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com> * Automatic changelog update * Resprite ambuzol plus pills (#26651) * Automatic changelog update * Fixed air injector visuals (#26654) * Make cyborgs hands explosion proof. (#26515) * Make the advanced treatment modules beakers explosion-proof. * undo changes * Epic rename fail * Explosion recursion data field * Logic for data field * Automatic changelog update * Automatic changelog update * Make typing indicator shaded (#26678) * Automatic changelog update * Validate wire layout prototypes and remove invalid WiresComponents (#26682) Validate wire layout prototypes; delete invalid wirescomponents. * Increase time inbetween anomaly pulses (#26677) nerf anomaly pulse delays * Automatic changelog update * Fix for items dropped being rotated to world north (#26662) * Fix rotation of dropped items * combined world position rotation function for dumpable * scuffed implementation? * less scuffed? * even less scuffed... I guess * capital D --------- Co-authored-by: Plykiya <plykiya@protonmail.com> * Automatic changelog update * fix typo --------- Signed-off-by: c4llv07e <kseandi@gmail.com> Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com> Co-authored-by: Plykiya <58439124+Plykiya@users.noreply.github.com> Co-authored-by: Plykiya <plykiya@protonmail.com> Co-authored-by: Boaz1111 <149967078+Boaz1111@users.noreply.github.com> Co-authored-by: keronshb <54602815+keronshb@users.noreply.github.com> Co-authored-by: Wrexbe (Josh) <81056464+wrexbe@users.noreply.github.com> Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com> Co-authored-by: wrexbe <wrexbe@protonmail.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com> Co-authored-by: Flareguy <78941145+Flareguy@users.noreply.github.com> Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com> Co-authored-by: Simon <63975668+Simyon264@users.noreply.github.com> Co-authored-by: blueDev2 <89804215+blueDev2@users.noreply.github.com> Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Co-authored-by: Velcroboy <107660393+IamVelcroboy@users.noreply.github.com> Co-authored-by: Velcroboy <velcroboy333@hotmail.com> Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> Co-authored-by: brainfood1183 <113240905+brainfood1183@users.noreply.github.com> Co-authored-by: J. Brown <DrMelon@users.noreply.github.com> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com> Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> Co-authored-by: UBlueberry <161545003+UBlueberry@users.noreply.github.com> Co-authored-by: Tayrtahn <tayrtahn@gmail.com> Co-authored-by: drteaspoon420 <87363733+drteaspoon420@users.noreply.github.com> Co-authored-by: Bixkitts <72874643+Bixkitts@users.noreply.github.com> Co-authored-by: nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com> Co-authored-by: Ubaser <134914314+UbaserB@users.noreply.github.com> Co-authored-by: avery <51971268+graevy@users.noreply.github.com> Co-authored-by: eoineoineoin <github@eoinrul.es> Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es> Co-authored-by: RiceMar1244 <138547931+RiceMar1244@users.noreply.github.com> Co-authored-by: Zealith-Gamer <61980908+Zealith-Gamer@users.noreply.github.com> Co-authored-by: hamurlik <75280571+hamurlik@users.noreply.github.com> Co-authored-by: hamurlik <renoDeath@protonmail.com> Co-authored-by: no <165581243+pissdemon@users.noreply.github.com> Co-authored-by: Kara <lunarautomaton6@gmail.com> Co-authored-by: SoulFN <164462467+SoulFN@users.noreply.github.com> Co-authored-by: Keer-Sar <144283718+Keer-Sar@users.noreply.github.com> Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com> Co-authored-by: 0x6273 <0x40@keemail.me> Co-authored-by: c4llv07e <38111072+c4llv07e@users.noreply.github.com> Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com> Co-authored-by: Firewatch <54725557+musicmanvr@users.noreply.github.com> Co-authored-by: IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com> Co-authored-by: f0x-n3rd <150924715+f0x-n3rd@users.noreply.github.com> Co-authored-by: exincore <me@exin.xyz> Co-authored-by: Sk1tch <ben.peter.smith@gmail.com> Co-authored-by: Your Name <you@example.com> Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com> Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com> Co-authored-by: osjarw <62134478+osjarw@users.noreply.github.com>
2024-04-03 10:33:34 +03:00
/// <summary>
/// Chat window opacity slider, controlling the alpha of the chat window background.
/// Goes from to 0 (completely transparent) to 1 (completely opaque)
/// </summary>
public static readonly CVarDef<float> ChatWindowOpacity =
CVarDef.Create("accessibility.chat_window_transparency", 0.85f, CVar.CLIENTONLY | CVar.ARCHIVE);
/// <summary>
/// Toggle for visual effects that may potentially cause motion sickness.
/// Where reasonable, effects affected by this CVar should use an alternate effect.
/// Please do not use this CVar as a bandaid for effects that could otherwise be made accessible without issue.
/// </summary>
public static readonly CVarDef<bool> ReducedMotion =
CVarDef.Create("accessibility.reduced_motion", false, CVar.CLIENTONLY | CVar.ARCHIVE);
public static readonly CVarDef<bool> ChatEnableColorName =
CVarDef.Create("accessibility.enable_color_name", true, CVar.CLIENTONLY | CVar.ARCHIVE, "Toggles displaying names with individual colors.");
/// <summary>
/// Screen shake intensity slider, controlling the intensity of the CameraRecoilSystem.
/// Goes from 0 (no recoil at all) to 1 (regular amounts of recoil)
/// </summary>
public static readonly CVarDef<float> ScreenShakeIntensity =
CVarDef.Create("accessibility.screen_shake_intensity", 1f, CVar.CLIENTONLY | CVar.ARCHIVE);
/// <summary>
/// A generic toggle for various visual effects that are color sensitive.
/// As of 2/16/24, only applies to progress bar colors.
/// </summary>
public static readonly CVarDef<bool> AccessibilityColorblindFriendly =
CVarDef.Create("accessibility.colorblind_friendly", false, CVar.CLIENTONLY | CVar.ARCHIVE);
/*
* CHAT
*/
/// <summary>
/// Chat rate limit values are accounted in periods of this size (seconds).
/// After the period has passed, the count resets.
/// </summary>
/// <seealso cref="ChatRateLimitCount"/>
public static readonly CVarDef<float> ChatRateLimitPeriod =
CVarDef.Create("chat.rate_limit_period", 2f, CVar.SERVERONLY);
/// <summary>
/// How many chat messages are allowed in a single rate limit period.
/// </summary>
/// <remarks>
/// The total rate limit throughput per second is effectively
/// <see cref="ChatRateLimitCount"/> divided by <see cref="ChatRateLimitCount"/>.
/// </remarks>
/// <seealso cref="ChatRateLimitPeriod"/>
public static readonly CVarDef<int> ChatRateLimitCount =
CVarDef.Create("chat.rate_limit_count", 10, CVar.SERVERONLY);
/// <summary>
/// Minimum delay (in seconds) between notifying admins about chat message rate limit violations.
/// A negative value disables admin announcements.
/// </summary>
public static readonly CVarDef<int> ChatRateLimitAnnounceAdminsDelay =
CVarDef.Create("chat.rate_limit_announce_admins_delay", 15, CVar.SERVERONLY);
public static readonly CVarDef<int> ChatMaxMessageLength =
CVarDef.Create("chat.max_message_length", 1000, CVar.SERVER | CVar.REPLICATED);
public static readonly CVarDef<int> ChatMaxAnnouncementLength =
CVarDef.Create("chat.max_announcement_length", 256, CVar.SERVER | CVar.REPLICATED);
public static readonly CVarDef<bool> ChatSanitizerEnabled =
CVarDef.Create("chat.chat_sanitizer_enabled", true, CVar.SERVERONLY);
public static readonly CVarDef<bool> ChatShowTypingIndicator =
CVarDef.Create("chat.show_typing_indicator", true, CVar.ARCHIVE | CVar.REPLICATED | CVar.SERVER);
public static readonly CVarDef<bool> ChatEnableFancyBubbles =
CVarDef.Create("chat.enable_fancy_bubbles", true, CVar.CLIENTONLY | CVar.ARCHIVE, "Toggles displaying fancy speech bubbles, which display the speaking character's name.");
public static readonly CVarDef<bool> ChatFancyNameBackground =
CVarDef.Create("chat.fancy_name_background", false, CVar.CLIENTONLY | CVar.ARCHIVE, "Toggles displaying a background under the speaking character's name.");
/// <summary>
/// A message broadcast to each player that joins the lobby.
/// May be changed by admins ingame through use of the "set-motd" command.
/// In this case the new value, if not empty, is broadcast to all connected players and saved between rounds.
/// May be requested by any player through use of the "get-motd" command.
/// </summary>
public static readonly CVarDef<string> MOTD =
CVarDef.Create("chat.motd", "", CVar.SERVER | CVar.SERVERONLY | CVar.ARCHIVE, "A message broadcast to each player that joins the lobby.");
/*
* AFK
*/
/// <summary>
/// How long a client can go without any input before being considered AFK.
/// </summary>
public static readonly CVarDef<float> AfkTime =
CVarDef.Create("afk.time", 60f, CVar.SERVERONLY);
/*
* IC
*/
/// <summary>
/// Restricts IC character names to alphanumeric chars.
/// </summary>
public static readonly CVarDef<bool> RestrictedNames =
CVarDef.Create("ic.restricted_names", true, CVar.SERVER | CVar.REPLICATED);
2022-05-14 08:58:45 +10:00
/// <summary>
/// Allows flavor text (character descriptions)
/// </summary>
public static readonly CVarDef<bool> FlavorText =
CVarDef.Create("ic.flavor_text", false, CVar.SERVER | CVar.REPLICATED);
/// <summary>
/// Adds a period at the end of a sentence if the sentence ends in a letter.
/// </summary>
public static readonly CVarDef<bool> ChatPunctuation =
CVarDef.Create("ic.punctuation", false, CVar.SERVER);
/// <summary>
/// Enables automatically forcing IC name rules. Uppercases the first letter of the first and last words of the name
/// </summary>
public static readonly CVarDef<bool> ICNameCase =
CVarDef.Create("ic.name_case", true, CVar.SERVER | CVar.REPLICATED);
/// <summary>
/// Whether or not players' characters are randomly generated rather than using their selected characters in the creator.
/// </summary>
public static readonly CVarDef<bool> ICRandomCharacters =
CVarDef.Create("ic.random_characters", false, CVar.SERVER);
/// <summary>
/// A weighted random prototype used to determine the species selected for random characters.
/// </summary>
public static readonly CVarDef<string> ICRandomSpeciesWeights =
CVarDef.Create("ic.random_species_weights", "SpeciesWeights", CVar.SERVER);
2023-09-11 08:52:56 +03:00
/// <summary>
/// Control displaying SSD indicators near players
/// </summary>
public static readonly CVarDef<bool> ICShowSSDIndicator =
CVarDef.Create("ic.show_ssd_indicator", true, CVar.CLIENTONLY);
/*
* Salvage
*/
2023-04-21 15:05:50 +10:00
/// <summary>
2023-09-19 22:52:01 +10:00
/// Duration for missions
2023-04-21 15:05:50 +10:00
/// </summary>
public static readonly CVarDef<float>
SalvageExpeditionDuration = CVarDef.Create("salvage.expedition_duration", 660f, CVar.REPLICATED);
Flavor profiles (#10991) * flavor profiles TODO: every single flavor! yeah!!! * adds basic localization, and flavors/lastFlavor values for when you get the flavor profile message * multiple and single flavor messages * start on flavor localization, multiple flavors in localized flavors * flavor prototypes * a few more flavors, descriptions on what each section of the flavor file should be doing * localization for flavor profiles in drink/food system * adds an event that allows a flavor profile list to be transformed base on the user entity * raises it on the food entity too * changes a field in flavor, adds some more flavors, starts adding flavor prototypes * adds basic flavors to several entities, and consumable drinks, renames flavor field to 'flavors' * changes call ordering in flavorprofile, adds flavor to ignored components server-side flavor is really just a popup message, and those are all processed server-side * fixes where food tried to get the flavor of the user instead of the food * single flavors will now get the localized string * getting the flavor message now ensures that flavors are deduplicated * makes flavor processing more strictly unique bu making everything hashsets * yeah, that could just not have distinctby now * adds flavorprofile directly to food base instead for generic food taste * FlavorProfileModificationEvent now passes a hashset of strings and not flavorprototypes * flavorprofilesystem now broadcasts the flavor profile modification event * adds more flavors to the flavor profile loc file * skips a flavor, if the flavor string is null/empty * adds some more flavors, adds generic medicine flavor to medicinal chemicals * more food flavors, adds flavors to swallowing * adds some cocktails to the set of flavor profiles * regenerates flavor prototypes * adds flavor type to all flavors, adds whitespace between variants * adds more flavors, adds flavors to several chemicals and food items this is the part that took the longest * changes backup flavor message * spelling mistake * more flavors, and flavors on food * readds all the type fields, whoops * fixes localization strings for forcefeeding food/drink * fixes multiple flavor profile * adds flavor limit for flavors * makes that fetch the cvardef instead
2022-09-08 16:14:49 -07:00
2023-09-19 22:52:01 +10:00
/// <summary>
/// Cooldown for missions.
/// </summary>
2023-04-21 15:05:50 +10:00
public static readonly CVarDef<float>
2023-09-19 22:52:01 +10:00
SalvageExpeditionCooldown = CVarDef.Create("salvage.expedition_cooldown", 780f, CVar.REPLICATED);
2023-04-21 15:05:50 +10:00
/*
Flavor profiles (#10991) * flavor profiles TODO: every single flavor! yeah!!! * adds basic localization, and flavors/lastFlavor values for when you get the flavor profile message * multiple and single flavor messages * start on flavor localization, multiple flavors in localized flavors * flavor prototypes * a few more flavors, descriptions on what each section of the flavor file should be doing * localization for flavor profiles in drink/food system * adds an event that allows a flavor profile list to be transformed base on the user entity * raises it on the food entity too * changes a field in flavor, adds some more flavors, starts adding flavor prototypes * adds basic flavors to several entities, and consumable drinks, renames flavor field to 'flavors' * changes call ordering in flavorprofile, adds flavor to ignored components server-side flavor is really just a popup message, and those are all processed server-side * fixes where food tried to get the flavor of the user instead of the food * single flavors will now get the localized string * getting the flavor message now ensures that flavors are deduplicated * makes flavor processing more strictly unique bu making everything hashsets * yeah, that could just not have distinctby now * adds flavorprofile directly to food base instead for generic food taste * FlavorProfileModificationEvent now passes a hashset of strings and not flavorprototypes * flavorprofilesystem now broadcasts the flavor profile modification event * adds more flavors to the flavor profile loc file * skips a flavor, if the flavor string is null/empty * adds some more flavors, adds generic medicine flavor to medicinal chemicals * more food flavors, adds flavors to swallowing * adds some cocktails to the set of flavor profiles * regenerates flavor prototypes * adds flavor type to all flavors, adds whitespace between variants * adds more flavors, adds flavors to several chemicals and food items this is the part that took the longest * changes backup flavor message * spelling mistake * more flavors, and flavors on food * readds all the type fields, whoops * fixes localization strings for forcefeeding food/drink * fixes multiple flavor profile * adds flavor limit for flavors * makes that fetch the cvardef instead
2022-09-08 16:14:49 -07:00
* Flavor
*/
/// <summary>
/// Flavor limit. This is to ensure that having a large mass of flavors in
/// some food object won't spam a user with flavors.
/// </summary>
public static readonly CVarDef<int>
FlavorLimit = CVarDef.Create("flavor.limit", 10, CVar.SERVERONLY);
2022-09-03 06:39:28 -07:00
/*
* Mapping
*/
/// <summary>
/// Will mapping mode enable autosaves when it's activated?
/// </summary>
public static readonly CVarDef<bool>
AutosaveEnabled = CVarDef.Create("mapping.autosave", true, CVar.SERVERONLY);
/// <summary>
/// Autosave interval in seconds.
/// </summary>
public static readonly CVarDef<float>
AutosaveInterval = CVarDef.Create("mapping.autosave_interval", 600f, CVar.SERVERONLY);
/// <summary>
/// Directory in server user data to save to. Saves will be inside folders in this directory.
/// </summary>
public static readonly CVarDef<string>
AutosaveDirectory = CVarDef.Create("mapping.autosave_dir", "Autosaves", CVar.SERVERONLY);
Flavor profiles (#10991) * flavor profiles TODO: every single flavor! yeah!!! * adds basic localization, and flavors/lastFlavor values for when you get the flavor profile message * multiple and single flavor messages * start on flavor localization, multiple flavors in localized flavors * flavor prototypes * a few more flavors, descriptions on what each section of the flavor file should be doing * localization for flavor profiles in drink/food system * adds an event that allows a flavor profile list to be transformed base on the user entity * raises it on the food entity too * changes a field in flavor, adds some more flavors, starts adding flavor prototypes * adds basic flavors to several entities, and consumable drinks, renames flavor field to 'flavors' * changes call ordering in flavorprofile, adds flavor to ignored components server-side flavor is really just a popup message, and those are all processed server-side * fixes where food tried to get the flavor of the user instead of the food * single flavors will now get the localized string * getting the flavor message now ensures that flavors are deduplicated * makes flavor processing more strictly unique bu making everything hashsets * yeah, that could just not have distinctby now * adds flavorprofile directly to food base instead for generic food taste * FlavorProfileModificationEvent now passes a hashset of strings and not flavorprototypes * flavorprofilesystem now broadcasts the flavor profile modification event * adds more flavors to the flavor profile loc file * skips a flavor, if the flavor string is null/empty * adds some more flavors, adds generic medicine flavor to medicinal chemicals * more food flavors, adds flavors to swallowing * adds some cocktails to the set of flavor profiles * regenerates flavor prototypes * adds flavor type to all flavors, adds whitespace between variants * adds more flavors, adds flavors to several chemicals and food items this is the part that took the longest * changes backup flavor message * spelling mistake * more flavors, and flavors on food * readds all the type fields, whoops * fixes localization strings for forcefeeding food/drink * fixes multiple flavor profile * adds flavor limit for flavors * makes that fetch the cvardef instead
2022-09-08 16:14:49 -07:00
/*
* Rules
*/
/// <summary>
/// Time that players have to wait before rules can be accepted.
/// </summary>
public static readonly CVarDef<float> RulesWaitTime =
CVarDef.Create("rules.time", 45f, CVar.SERVER | CVar.REPLICATED);
/// <summary>
/// Don't show rules to localhost/loopback interface.
/// </summary>
public static readonly CVarDef<bool> RulesExemptLocal =
CVarDef.Create("rules.exempt_local", true, CVar.SERVERONLY);
/*
* Autogeneration
*/
public static readonly CVarDef<string> DestinationFile =
CVarDef.Create("autogen.destination_file", "", CVar.SERVER | CVar.SERVERONLY);
/*
* Network Resource Manager
*/
/// <summary>
/// Whether uploaded files will be stored in the server's database.
/// This is useful to keep "logs" on what files admins have uploaded in the past.
/// </summary>
public static readonly CVarDef<bool> ResourceUploadingStoreEnabled =
CVarDef.Create("netres.store_enabled", true, CVar.SERVER | CVar.SERVERONLY);
/// <summary>
/// Numbers of days before stored uploaded files are deleted. Set to zero or negative to disable auto-delete.
/// This is useful to free some space automatically. Auto-deletion runs only on server boot.
/// </summary>
public static readonly CVarDef<int> ResourceUploadingStoreDeletionDays =
CVarDef.Create("netres.store_deletion_days", 30, CVar.SERVER | CVar.SERVERONLY);
2022-04-09 09:17:52 +12:00
/*
* Controls
*/
/// <summary>
/// Deadzone for drag-drop interactions.
/// </summary>
public static readonly CVarDef<float> DragDropDeadZone =
CVarDef.Create("control.drag_dead_zone", 12f, CVar.CLIENTONLY | CVar.ARCHIVE);
/// <summary>
/// Toggles whether the walking key is a toggle or a held key.
/// </summary>
public static readonly CVarDef<bool> ToggleWalk =
CVarDef.Create("control.toggle_walk", false, CVar.CLIENTONLY | CVar.ARCHIVE);
/*
* Interactions
*/
// The rationale behind the default limit is simply that I can easily get to 7 interactions per second by just
// trying to spam toggle a light switch or lever (though the UseDelay component limits the actual effect of the
// interaction). I don't want to accidentally spam admins with alerts just because somebody is spamming a
// key manually, nor do we want to alert them just because the player is having network issues and the server
// receives multiple interactions at once. But we also want to try catch people with modified clients that spam
// many interactions on the same tick. Hence, a very short period, with a relatively high count.
/// <summary>
/// Maximum number of interactions that a player can perform within <see cref="InteractionRateLimitCount"/> seconds
/// </summary>
public static readonly CVarDef<int> InteractionRateLimitCount =
CVarDef.Create("interaction.rate_limit_count", 5, CVar.SERVER | CVar.REPLICATED);
/// <seealso cref="InteractionRateLimitCount"/>
public static readonly CVarDef<float> InteractionRateLimitPeriod =
CVarDef.Create("interaction.rate_limit_period", 0.5f, CVar.SERVER | CVar.REPLICATED);
/// <summary>
/// Minimum delay (in seconds) between notifying admins about interaction rate limit violations. A negative
/// value disables admin announcements.
/// </summary>
public static readonly CVarDef<int> InteractionRateLimitAnnounceAdminsDelay =
CVarDef.Create("interaction.rate_limit_announce_admins_delay", 120, CVar.SERVERONLY);
/*
* STORAGE
*/
/// <summary>
/// Whether or not the storage UI is static and bound to the hotbar, or unbound and allowed to be dragged anywhere.
/// </summary>
public static readonly CVarDef<bool> StaticStorageUI =
CVarDef.Create("control.static_storage_ui", true, CVar.CLIENTONLY | CVar.ARCHIVE);
/// <summary>
/// Whether or not the storage window uses a transparent or opaque sprite.
/// </summary>
public static readonly CVarDef<bool> OpaqueStorageWindow =
CVarDef.Create("control.opaque_storage_background", false, CVar.CLIENTONLY | CVar.ARCHIVE);
/*
* UPDATE
*/
/// <summary>
/// If a server update restart is pending, the delay after the last player leaves before we actually restart. In seconds.
/// </summary>
public static readonly CVarDef<float> UpdateRestartDelay =
CVarDef.Create("update.restart_delay", 20f, CVar.SERVERONLY);
/*
* Ghost
*/
/// <summary>
/// The time you must spend reading the rules, before the "Request" button is enabled
/// </summary>
public static readonly CVarDef<float> GhostRoleTime =
CVarDef.Create("ghost.role_time", 3f, CVar.REPLICATED | CVar.SERVER);
/// <summary>
/// If ghost role lotteries should be made near-instanteous.
/// </summary>
public static readonly CVarDef<bool> GhostQuickLottery =
CVarDef.Create("ghost.quick_lottery", false, CVar.SERVERONLY);
/// <summary>
/// Whether or not to kill the player's mob on ghosting, when it is in a critical health state.
/// </summary>
public static readonly CVarDef<bool> GhostKillCrit =
CVarDef.Create("ghost.kill_crit", true, CVar.REPLICATED | CVar.SERVER);
/*
* Fire alarm
*/
/// <summary>
/// If fire alarms should have all access, or if activating/resetting these
/// should be restricted to what is dictated on a player's access card.
/// Defaults to true.
/// </summary>
public static readonly CVarDef<bool> FireAlarmAllAccess =
CVarDef.Create("firealarm.allaccess", true, CVar.SERVERONLY);
/*
* PLAYTIME
*/
/// <summary>
/// Time between play time autosaves, in seconds.
/// </summary>
public static readonly CVarDef<float>
PlayTimeSaveInterval = CVarDef.Create("playtime.save_interval", 900f, CVar.SERVERONLY);
2022-12-03 02:23:43 +01:00
/*
* INFOLINKS
*/
/// <summary>
/// Link to Discord server to show in the launcher.
/// </summary>
public static readonly CVarDef<string> InfoLinksDiscord =
CVarDef.Create("infolinks.discord", "", CVar.SERVER | CVar.REPLICATED);
/// <summary>
/// Link to website to show in the launcher.
/// </summary>
public static readonly CVarDef<string> InfoLinksForum =
CVarDef.Create("infolinks.forum", "", CVar.SERVER | CVar.REPLICATED);
/// <summary>
/// Link to GitHub page to show in the launcher.
/// </summary>
public static readonly CVarDef<string> InfoLinksGithub =
CVarDef.Create("infolinks.github", "", CVar.SERVER | CVar.REPLICATED);
/// <summary>
/// Link to website to show in the launcher.
/// </summary>
public static readonly CVarDef<string> InfoLinksWebsite =
CVarDef.Create("infolinks.website", "", CVar.SERVER | CVar.REPLICATED);
/// <summary>
/// Link to wiki to show in the launcher.
/// </summary>
public static readonly CVarDef<string> InfoLinksWiki =
CVarDef.Create("infolinks.wiki", "", CVar.SERVER | CVar.REPLICATED);
/// <summary>
/// Link to Patreon. Not shown in the launcher currently.
/// </summary>
public static readonly CVarDef<string> InfoLinksPatreon =
CVarDef.Create("infolinks.patreon", "", CVar.SERVER | CVar.REPLICATED);
/// <summary>
/// Link to the bug report form.
/// </summary>
public static readonly CVarDef<string> InfoLinksBugReport =
CVarDef.Create("infolinks.bug_report", "", CVar.SERVER | CVar.REPLICATED);
2022-12-16 23:26:24 +01:00
/// <summary>
/// Link to site handling ban appeals. Shown in ban disconnect messages.
/// </summary>
public static readonly CVarDef<string> InfoLinksAppeal =
CVarDef.Create("infolinks.appeal", "", CVar.SERVER | CVar.REPLICATED);
2022-12-16 23:26:24 +01:00
/*
* CONFIG
*/
// These are server-only for now since I don't foresee a client use yet,
// and I don't wanna have to start coming up with like .client suffixes and stuff like that.
/// <summary>
/// Configuration presets to load during startup.
/// Multiple presets can be separated by comma and are loaded in order.
/// </summary>
/// <remarks>
/// Loaded presets must be located under the <c>ConfigPresets/</c> resource directory and end with the <c>.toml</c> extension.
/// Only the file name (without extension) must be given for this variable.
/// </remarks>
public static readonly CVarDef<string> ConfigPresets =
CVarDef.Create("config.presets", "", CVar.SERVERONLY);
/// <summary>
/// Whether to load the preset development CVars.
/// This disables some things like lobby to make development easier.
/// Even when true, these are only loaded if the game is compiled with <c>DEVELOPMENT</c> set.
/// </summary>
public static readonly CVarDef<bool> ConfigPresetDevelopment =
CVarDef.Create("config.preset_development", true, CVar.SERVERONLY);
/// <summary>
/// Whether to load the preset debug CVars.
/// Even when true, these are only loaded if the game is compiled with <c>DEBUG</c> set.
/// </summary>
public static readonly CVarDef<bool> ConfigPresetDebug =
CVarDef.Create("config.preset_debug", true, CVar.SERVERONLY);
/*
* World Generation
*/
/// <summary>
/// Whether or not world generation is enabled.
/// </summary>
public static readonly CVarDef<bool> WorldgenEnabled =
CVarDef.Create("worldgen.enabled", false, CVar.SERVERONLY);
/// <summary>
/// The worldgen config to use.
/// </summary>
public static readonly CVarDef<string> WorldgenConfig =
CVarDef.Create("worldgen.worldgen_config", "Default", CVar.SERVERONLY);
/// <summary>
/// The maximum amount of time the entity GC can process, in ms.
/// </summary>
public static readonly CVarDef<int> GCMaximumTimeMs =
CVarDef.Create("entgc.maximum_time_ms", 5, CVar.SERVERONLY);
2023-06-05 16:33:49 +12:00
/*
* Replays
*/
/// <summary>
/// Whether or not to record admin chat. If replays are being publicly distributes, this should probably be
/// false.
/// </summary>
public static readonly CVarDef<bool> ReplayRecordAdminChat =
CVarDef.Create("replay.record_admin_chat", false, CVar.ARCHIVE);
/// <summary>
/// Automatically record full rounds as replays.
/// </summary>
public static readonly CVarDef<bool> ReplayAutoRecord =
CVarDef.Create("replay.auto_record", false, CVar.SERVERONLY);
/// <summary>
/// The file name to record automatic replays to. The path is relative to <see cref="CVars.ReplayDirectory"/>.
/// </summary>
/// <remarks>
/// <para>
/// If the path includes slashes, directories will be automatically created if necessary.
/// </para>
/// <para>
/// A number of substitutions can be used to automatically fill in the file name: <c>{year}</c>, <c>{month}</c>, <c>{day}</c>, <c>{hour}</c>, <c>{minute}</c>, <c>{round}</c>.
/// </para>
/// </remarks>
public static readonly CVarDef<string> ReplayAutoRecordName =
CVarDef.Create("replay.auto_record_name", "{year}_{month}_{day}-{hour}_{minute}-round_{round}.zip", CVar.SERVERONLY);
/// <summary>
/// Path that, if provided, automatic replays are initially recorded in.
/// When the recording is done, the file is moved into its final destination.
/// Unless this path is rooted, it will be relative to <see cref="CVars.ReplayDirectory"/>.
/// </summary>
public static readonly CVarDef<string> ReplayAutoRecordTempDir =
CVarDef.Create("replay.auto_record_temp_dir", "", CVar.SERVERONLY);
/*
* Miscellaneous
*/
public static readonly CVarDef<bool> GatewayGeneratorEnabled =
CVarDef.Create("gateway.generator_enabled", true);
// Clippy!
public static readonly CVarDef<string> TippyEntity =
CVarDef.Create("tippy.entity", "Tippy", CVar.SERVER | CVar.REPLICATED);
/// <summary>
/// The number of seconds that must pass for a single entity to be able to point at something again.
/// </summary>
public static readonly CVarDef<float> PointingCooldownSeconds =
CVarDef.Create("pointing.cooldown_seconds", 0.5f, CVar.SERVERONLY);
/*
* DEBUG
*/
/// <summary>
/// A simple toggle to test <c>OptionsVisualizerComponent</c>.
/// </summary>
public static readonly CVarDef<bool> DebugOptionVisualizerTest =
CVarDef.Create("debug.option_visualizer_test", false, CVar.CLIENTONLY);
/// <summary>
/// Set to true to disable parallel processing in the pow3r solver.
/// </summary>
public static readonly CVarDef<bool> DebugPow3rDisableParallel =
CVarDef.Create("debug.pow3r_disable_parallel", true, CVar.SERVERONLY);
}
}