diff --git a/Content.Client/Audio/AmbientSoundSystem.cs b/Content.Client/Audio/AmbientSoundSystem.cs index d66ee434a29..d39073fa330 100644 --- a/Content.Client/Audio/AmbientSoundSystem.cs +++ b/Content.Client/Audio/AmbientSoundSystem.cs @@ -28,6 +28,7 @@ public sealed class AmbientSoundSystem : SharedAmbientSoundSystem { [Dependency] private readonly AmbientSoundTreeSystem _treeSys = default!; [Dependency] private readonly SharedAudioSystem _audio = default!; + [Dependency] private readonly SharedTransformSystem _xformSystem = default!; [Dependency] private readonly IConfigurationManager _cfg = default!; [Dependency] private readonly IGameTiming _gameTiming = default!; [Dependency] private readonly IPlayerManager _playerManager = default!; @@ -172,7 +173,7 @@ public override void Update(float frameTime) _targetTime = _gameTiming.CurTime+TimeSpan.FromSeconds(_cooldown); - var player = _playerManager.LocalPlayer?.ControlledEntity; + var player = _playerManager.LocalEntity; if (!EntityManager.TryGetComponent(player, out TransformComponent? xform)) { ClearSounds(); @@ -198,13 +199,13 @@ private readonly struct QueryState public readonly Dictionary> SourceDict = new(); public readonly Vector2 MapPos; public readonly TransformComponent Player; - public readonly EntityQuery Query; + public readonly SharedTransformSystem TransformSystem; - public QueryState(Vector2 mapPos, TransformComponent player, EntityQuery query) + public QueryState(Vector2 mapPos, TransformComponent player, SharedTransformSystem transformSystem) { MapPos = mapPos; Player = player; - Query = query; + TransformSystem = transformSystem; } } @@ -218,7 +219,7 @@ private static bool Callback( var delta = xform.ParentUid == state.Player.ParentUid ? xform.LocalPosition - state.Player.LocalPosition - : xform.WorldPosition - state.MapPos; + : state.TransformSystem.GetWorldPosition(xform) - state.MapPos; var range = delta.Length(); if (range >= ambientComp.Range) @@ -244,7 +245,7 @@ private void ProcessNearbyAmbience(TransformComponent playerXform) { var query = GetEntityQuery(); var metaQuery = GetEntityQuery(); - var mapPos = playerXform.MapPosition; + var mapPos = _xformSystem.GetMapCoordinates(playerXform); // Remove out-of-range ambiences foreach (var (comp, sound) in _playingSounds) @@ -258,9 +259,10 @@ private void ProcessNearbyAmbience(TransformComponent playerXform) xform.MapID == playerXform.MapID && !metaQuery.GetComponent(entity).EntityPaused) { + // TODO: This is just trydistance for coordinates. var distance = (xform.ParentUid == playerXform.ParentUid) ? xform.LocalPosition - playerXform.LocalPosition - : xform.WorldPosition - mapPos.Position; + : _xformSystem.GetWorldPosition(xform) - mapPos.Position; if (distance.LengthSquared() < comp.Range * comp.Range) continue; @@ -277,7 +279,7 @@ private void ProcessNearbyAmbience(TransformComponent playerXform) return; var pos = mapPos.Position; - var state = new QueryState(pos, playerXform, query); + var state = new QueryState(pos, playerXform, _xformSystem); var worldAabb = new Box2(pos - MaxAmbientVector, pos + MaxAmbientVector); _treeSys.QueryAabb(ref state, Callback, mapPos.MapId, worldAabb); diff --git a/Content.Client/Audio/BackgroundAudioSystem.cs b/Content.Client/Audio/BackgroundAudioSystem.cs index 09ac1efcd65..27b2dcb1b73 100644 --- a/Content.Client/Audio/BackgroundAudioSystem.cs +++ b/Content.Client/Audio/BackgroundAudioSystem.cs @@ -1,6 +1,7 @@ using Content.Client.GameTicking.Managers; using Content.Client.Lobby; using Content.Shared.CCVar; +using Content.Shared.GameTicking; using JetBrains.Annotations; using Robust.Client; using Robust.Client.State; @@ -39,6 +40,8 @@ public override void Initialize() _client.PlayerLeaveServer += OnLeave; _gameTicker.LobbySongUpdated += LobbySongUpdated; + + SubscribeNetworkEvent(PlayRestartSound); } public override void Shutdown() @@ -129,4 +132,22 @@ private void EndLobbyMusic() { LobbyStream = _audio.Stop(LobbyStream); } + + private void PlayRestartSound(RoundRestartCleanupEvent ev) + { + if (!_configManager.GetCVar(CCVars.LobbyMusicEnabled)) + return; + + var file = _gameTicker.RestartSound; + if (string.IsNullOrEmpty(file)) + { + return; + } + + var volume = _lobbyParams.WithVolume(_lobbyParams.Volume + + SharedAudioSystem.GainToVolume( + _configManager.GetCVar(CCVars.LobbyMusicVolume))); + + _audio.PlayGlobal(file, Filter.Local(), false, volume); + } } diff --git a/Content.Client/Cargo/BUI/CargoOrderConsoleBoundUserInterface.cs b/Content.Client/Cargo/BUI/CargoOrderConsoleBoundUserInterface.cs index 6c9af85a2c6..0be3ebd97f8 100644 --- a/Content.Client/Cargo/BUI/CargoOrderConsoleBoundUserInterface.cs +++ b/Content.Client/Cargo/BUI/CargoOrderConsoleBoundUserInterface.cs @@ -50,8 +50,9 @@ protected override void Open() base.Open(); var spriteSystem = EntMan.System(); - _menu = new CargoConsoleMenu(IoCManager.Resolve(), spriteSystem); - var localPlayer = IoCManager.Resolve()?.LocalPlayer?.ControlledEntity; + var dependencies = IoCManager.Instance!; + _menu = new CargoConsoleMenu(Owner, EntMan, dependencies.Resolve(), spriteSystem); + var localPlayer = dependencies.Resolve().LocalEntity; var description = new FormattedMessage(); string orderRequester; diff --git a/Content.Client/Cargo/UI/CargoConsoleMenu.xaml.cs b/Content.Client/Cargo/UI/CargoConsoleMenu.xaml.cs index 0cc17a62469..5402a246676 100644 --- a/Content.Client/Cargo/UI/CargoConsoleMenu.xaml.cs +++ b/Content.Client/Cargo/UI/CargoConsoleMenu.xaml.cs @@ -1,6 +1,7 @@ using System.Linq; using Content.Client.UserInterface.Controls; using Content.Shared.Cargo; +using Content.Shared.Cargo.Components; using Content.Shared.Cargo.Prototypes; using Robust.Client.AutoGenerated; using Robust.Client.GameObjects; @@ -14,8 +15,10 @@ namespace Content.Client.Cargo.UI [GenerateTypedNameReferences] public sealed partial class CargoConsoleMenu : FancyWindow { + private IEntityManager _entityManager; private IPrototypeManager _protoManager; private SpriteSystem _spriteSystem; + private EntityUid _owner; public event Action? OnItemSelected; public event Action? OnOrderApproved; @@ -24,11 +27,13 @@ public sealed partial class CargoConsoleMenu : FancyWindow private readonly List _categoryStrings = new(); private string? _category; - public CargoConsoleMenu(IPrototypeManager protoManager, SpriteSystem spriteSystem) + public CargoConsoleMenu(EntityUid owner, IEntityManager entMan, IPrototypeManager protoManager, SpriteSystem spriteSystem) { RobustXamlLoader.Load(this); + _entityManager = entMan; _protoManager = protoManager; _spriteSystem = spriteSystem; + _owner = owner; Title = Loc.GetString("cargo-console-menu-title"); @@ -53,7 +58,21 @@ private void SetCategoryText(int id) Categories.SelectId(id); } - public IEnumerable ProductPrototypes => _protoManager.EnumeratePrototypes(); + public IEnumerable ProductPrototypes + { + get + { + var allowedGroups = _entityManager.GetComponentOrNull(_owner)?.AllowedGroups; + + foreach (var cargoPrototype in _protoManager.EnumeratePrototypes()) + { + if (!allowedGroups?.Contains(cargoPrototype.Group) ?? false) + continue; + + yield return cargoPrototype; + } + } + } /// /// Populates the list of products that will actually be shown, using the current filters. @@ -80,7 +99,7 @@ public void PopulateProducts() Product = prototype, ProductName = { Text = prototype.Name }, MainButton = { ToolTip = prototype.Description }, - PointCost = { Text = Loc.GetString("cargo-console-menu-points-amount", ("amount", prototype.PointCost.ToString())) }, + PointCost = { Text = Loc.GetString("cargo-console-menu-points-amount", ("amount", prototype.Cost.ToString())) }, Icon = { Texture = _spriteSystem.Frame0(prototype.Icon) }, }; button.MainButton.OnPressed += args => diff --git a/Content.Client/Communications/UI/CommunicationsConsoleBoundUserInterface.cs b/Content.Client/Communications/UI/CommunicationsConsoleBoundUserInterface.cs index dc7448aab1e..07492b310f3 100644 --- a/Content.Client/Communications/UI/CommunicationsConsoleBoundUserInterface.cs +++ b/Content.Client/Communications/UI/CommunicationsConsoleBoundUserInterface.cs @@ -1,5 +1,7 @@ -using Content.Shared.Communications; -using Robust.Client.GameObjects; +using Content.Shared.CCVar; +using Content.Shared.Chat; +using Content.Shared.Communications; +using Robust.Shared.Configuration; using Robust.Shared.Timing; namespace Content.Client.Communications.UI @@ -7,6 +9,7 @@ namespace Content.Client.Communications.UI public sealed class CommunicationsConsoleBoundUserInterface : BoundUserInterface { [Dependency] private readonly IGameTiming _gameTiming = default!; + [Dependency] private readonly IConfigurationManager _cfg = default!; [ViewVariables] private CommunicationsConsoleMenu? _menu; @@ -63,22 +66,9 @@ public void EmergencyShuttleButtonPressed() public void AnnounceButtonPressed(string message) { - var msg = (message.Length <= 256 ? message.Trim() : $"{message.Trim().Substring(0, 256)}...").ToCharArray(); - - // No more than 2 newlines, other replaced to spaces - var newlines = 0; - for (var i = 0; i < msg.Length; i++) - { - if (msg[i] != '\n') - continue; - - if (newlines >= 2) - msg[i] = ' '; - - newlines++; - } - - SendMessage(new CommunicationsConsoleAnnounceMessage(new string(msg))); + var maxLength = _cfg.GetCVar(CCVars.ChatMaxAnnouncementLength); + var msg = SharedChatSystem.SanitizeAnnouncement(message, maxLength); + SendMessage(new CommunicationsConsoleAnnounceMessage(msg)); } public void CallShuttle() diff --git a/Content.Client/Communications/UI/CommunicationsConsoleMenu.xaml.cs b/Content.Client/Communications/UI/CommunicationsConsoleMenu.xaml.cs index 8ab444f9baf..37fcdd5e29c 100644 --- a/Content.Client/Communications/UI/CommunicationsConsoleMenu.xaml.cs +++ b/Content.Client/Communications/UI/CommunicationsConsoleMenu.xaml.cs @@ -23,7 +23,7 @@ public CommunicationsConsoleMenu(CommunicationsConsoleBoundUserInterface owner) var loc = IoCManager.Resolve(); MessageInput.Placeholder = new Rope.Leaf(loc.GetString("comms-console-menu-announcement-placeholder")); - AnnounceButton.OnPressed += (_) => Owner.AnnounceButtonPressed(Rope.Collapse(MessageInput.TextRope).Trim()); + AnnounceButton.OnPressed += (_) => Owner.AnnounceButtonPressed(Rope.Collapse(MessageInput.TextRope)); AnnounceButton.Disabled = !owner.CanAnnounce; AlertLevelButton.OnItemSelected += args => diff --git a/Content.Client/GameTicking/Managers/ClientGameTicker.cs b/Content.Client/GameTicking/Managers/ClientGameTicker.cs index a62ebab1b7b..a33a7a8e722 100644 --- a/Content.Client/GameTicking/Managers/ClientGameTicker.cs +++ b/Content.Client/GameTicking/Managers/ClientGameTicker.cs @@ -35,6 +35,7 @@ public sealed class ClientGameTicker : SharedGameTicker [ViewVariables] public bool AreWeReady { get; private set; } [ViewVariables] public bool IsGameStarted { get; private set; } [ViewVariables] public string? LobbySong { get; private set; } + [ViewVariables] public string? RestartSound { get; private set; } [ViewVariables] public string? LobbyBackground { get; private set; } [ViewVariables] public bool DisallowedLateJoin { get; private set; } [ViewVariables] public string? ServerInfoBlob { get; private set; } @@ -151,6 +152,7 @@ private void RoundEnd(RoundEndMessageEvent message) { // Force an update in the event of this song being the same as the last. SetLobbySong(message.LobbySong, true); + RestartSound = message.RestartSound; // Don't open duplicate windows (mainly for replays). if (_window?.RoundId == message.RoundId) diff --git a/Content.Client/Lathe/UI/LatheBoundUserInterface.cs b/Content.Client/Lathe/UI/LatheBoundUserInterface.cs index ed2307b165d..456471598a4 100644 --- a/Content.Client/Lathe/UI/LatheBoundUserInterface.cs +++ b/Content.Client/Lathe/UI/LatheBoundUserInterface.cs @@ -43,7 +43,8 @@ protected override void UpdateState(BoundUserInterfaceState state) case LatheUpdateState msg: if (_menu != null) _menu.Recipes = msg.Recipes; - _menu?.PopulateRecipes(Owner); + _menu?.PopulateRecipes(); + _menu?.UpdateCategories(); _menu?.PopulateQueueList(msg.Queue); _menu?.SetQueueInfo(msg.CurrentlyProducing); break; diff --git a/Content.Client/Lathe/UI/LatheMenu.xaml b/Content.Client/Lathe/UI/LatheMenu.xaml index 1e60db68e26..2b97166f05a 100644 --- a/Content.Client/Lathe/UI/LatheMenu.xaml +++ b/Content.Client/Lathe/UI/LatheMenu.xaml @@ -26,14 +26,10 @@ PlaceHolder="{Loc 'lathe-menu-search-designs'}" HorizontalExpand="True"> - + > Recipes = new(); + public List>? Categories; + + public ProtoId? CurrentCategory; + public LatheMenu(LatheBoundUserInterface owner) { + _owner = owner.Owner; RobustXamlLoader.Load(this); IoCManager.InjectDependencies(this); @@ -40,13 +47,15 @@ public LatheMenu(LatheBoundUserInterface owner) SearchBar.OnTextChanged += _ => { - PopulateRecipes(owner.Owner); + PopulateRecipes(); }; AmountLineEdit.OnTextChanged += _ => { - PopulateRecipes(owner.Owner); + PopulateRecipes(); }; + FilterOption.OnItemSelected += OnItemSelected; + ServerListButton.OnPressed += a => OnServerListButtonPressed?.Invoke(a); if (_entityManager.TryGetComponent(owner.Owner, out var latheComponent)) @@ -63,10 +72,9 @@ public LatheMenu(LatheBoundUserInterface owner) /// /// Populates the list of all the recipes /// - /// - public void PopulateRecipes(EntityUid lathe) + public void PopulateRecipes() { - if (!_entityManager.TryGetComponent(lathe, out var component)) + if (!_entityManager.TryGetComponent(_owner, out var component)) return; var recipesToShow = new List(); @@ -75,6 +83,9 @@ public void PopulateRecipes(EntityUid lathe) if (!_prototypeManager.TryIndex(recipe, out var proto)) continue; + if (CurrentCategory != null && proto.Category != CurrentCategory) + continue; + if (SearchBar.Text.Trim().Length != 0) { if (proto.Name.ToLowerInvariant().Contains(SearchBar.Text.Trim().ToLowerInvariant())) @@ -89,8 +100,9 @@ public void PopulateRecipes(EntityUid lathe) if (!int.TryParse(AmountLineEdit.Text, out var quantity) || quantity <= 0) quantity = 1; + var sortedRecipesToShow = recipesToShow.OrderBy(p => p.Name); RecipeList.Children.Clear(); - foreach (var prototype in recipesToShow) + foreach (var prototype in sortedRecipesToShow) { StringBuilder sb = new(); var first = true; @@ -115,13 +127,16 @@ public void PopulateRecipes(EntityUid lathe) sb.Append(Loc.GetString("lathe-menu-tooltip-display", ("material", name), ("amount", amountText))); } - sb.Append('\n'); - sb.Append(Loc.GetString("lathe-menu-description-display", ("description", prototype.Description))); + if (!string.IsNullOrWhiteSpace(prototype.Description)) + { + sb.Append('\n'); + sb.Append(Loc.GetString("lathe-menu-description-display", ("description", prototype.Description))); + } var icon = prototype.Icon == null ? _spriteSystem.GetPrototypeIcon(prototype.Result).Default : _spriteSystem.Frame0(prototype.Icon); - var canProduce = _lathe.CanProduce(lathe, prototype, quantity); + var canProduce = _lathe.CanProduce(_owner, prototype, quantity); var control = new RecipeControl(prototype, sb.ToString(), canProduce, icon); control.OnButtonPressed += s => @@ -134,6 +149,41 @@ public void PopulateRecipes(EntityUid lathe) } } + public void UpdateCategories() + { + var currentCategories = new List>(); + foreach (var recipeId in Recipes) + { + var recipe = _prototypeManager.Index(recipeId); + + if (recipe.Category == null) + continue; + + if (currentCategories.Contains(recipe.Category.Value)) + continue; + + currentCategories.Add(recipe.Category.Value); + } + + if (Categories != null && (Categories.Count == currentCategories.Count || !Categories.All(currentCategories.Contains))) + return; + + Categories = currentCategories; + var sortedCategories = currentCategories + .Select(p => _prototypeManager.Index(p)) + .OrderBy(p => Loc.GetString(p.Name)) + .ToList(); + + FilterOption.Clear(); + FilterOption.AddItem(Loc.GetString("lathe-menu-category-all"), -1); + foreach (var category in sortedCategories) + { + FilterOption.AddItem(Loc.GetString(category.Name), Categories.IndexOf(category.ID)); + } + + FilterOption.SelectId(-1); + } + /// /// Populates the build queue list with all queued items /// @@ -162,4 +212,18 @@ public void SetQueueInfo(LatheRecipePrototype? recipe) : _spriteSystem.Frame0(recipe.Icon); NameLabel.Text = $"{recipe.Name}"; } + + private void OnItemSelected(OptionButton.ItemSelectedEventArgs obj) + { + FilterOption.SelectId(obj.Id); + if (obj.Id == -1) + { + CurrentCategory = null; + } + else + { + CurrentCategory = Categories?[obj.Id]; + } + PopulateRecipes(); + } } diff --git a/Content.Client/Lathe/UI/RecipeTooltip.xaml.cs b/Content.Client/Lathe/UI/RecipeTooltip.xaml.cs index 5d2e3ca081f..45d854e92f6 100644 --- a/Content.Client/Lathe/UI/RecipeTooltip.xaml.cs +++ b/Content.Client/Lathe/UI/RecipeTooltip.xaml.cs @@ -1,20 +1,17 @@ -using Content.Shared.Research.Prototypes; +using Content.Client.Message; using Robust.Client.AutoGenerated; -using Robust.Client.Graphics; using Robust.Client.UserInterface; using Robust.Client.UserInterface.XAML; -using Robust.Shared.Graphics; namespace Content.Client.Lathe.UI; [GenerateTypedNameReferences] public sealed partial class RecipeTooltip : Control { - public RecipeTooltip(string tooltip) { RobustXamlLoader.Load(this); - RecipeTooltipLabel.SetMessage(tooltip); + RecipeTooltipLabel.SetMarkup(tooltip); } } diff --git a/Content.Client/NukeOps/WarDeclaratorBoundUserInterface.cs b/Content.Client/NukeOps/WarDeclaratorBoundUserInterface.cs index 7394e27043a..20103a97432 100644 --- a/Content.Client/NukeOps/WarDeclaratorBoundUserInterface.cs +++ b/Content.Client/NukeOps/WarDeclaratorBoundUserInterface.cs @@ -1,13 +1,16 @@ -using Content.Shared.NukeOps; +using Content.Shared.CCVar; +using Content.Shared.Chat; +using Content.Shared.NukeOps; using JetBrains.Annotations; -using Robust.Client.GameObjects; -using Robust.Shared.Timing; +using Robust.Shared.Configuration; namespace Content.Client.NukeOps; [UsedImplicitly] public sealed class WarDeclaratorBoundUserInterface : BoundUserInterface { + [Dependency] private readonly IConfigurationManager _cfg = default!; + [ViewVariables] private WarDeclaratorWindow? _window; @@ -44,6 +47,8 @@ protected override void Dispose(bool disposing) private void OnWarDeclaratorActivated(string message) { - SendMessage(new WarDeclaratorActivateMessage(message)); + var maxLength = _cfg.GetCVar(CCVars.ChatMaxAnnouncementLength); + var msg = SharedChatSystem.SanitizeAnnouncement(message, maxLength); + SendMessage(new WarDeclaratorActivateMessage(msg)); } } diff --git a/Content.Client/NukeOps/WarDeclaratorWindow.xaml.cs b/Content.Client/NukeOps/WarDeclaratorWindow.xaml.cs index 8fb10b8215d..104e776daa4 100644 --- a/Content.Client/NukeOps/WarDeclaratorWindow.xaml.cs +++ b/Content.Client/NukeOps/WarDeclaratorWindow.xaml.cs @@ -2,7 +2,6 @@ using Content.Shared.NukeOps; using Robust.Client.AutoGenerated; using Robust.Client.Graphics; -using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.CustomControls; using Robust.Client.UserInterface.XAML; using Robust.Shared.Timing; @@ -27,7 +26,7 @@ public WarDeclaratorWindow() _gameTiming = IoCManager.Resolve(); - WarButton.OnPressed += ActivateWarDeclarator; + WarButton.OnPressed += (_) => OnActivated?.Invoke(Rope.Collapse(MessageEdit.TextRope)); var loc = IoCManager.Resolve(); MessageEdit.Placeholder = new Rope.Leaf(loc.GetString("war-declarator-message-placeholder")); @@ -129,10 +128,4 @@ public void UpdateTimer() return; } } - - private void ActivateWarDeclarator(BaseButton.ButtonEventArgs obj) - { - var message = Rope.Collapse(MessageEdit.TextRope); - OnActivated?.Invoke(message); - } } diff --git a/Content.Client/Preferences/UI/HumanoidProfileEditor.xaml.cs b/Content.Client/Preferences/UI/HumanoidProfileEditor.xaml.cs index 1d88977bb72..bf61d1bcb77 100644 --- a/Content.Client/Preferences/UI/HumanoidProfileEditor.xaml.cs +++ b/Content.Client/Preferences/UI/HumanoidProfileEditor.xaml.cs @@ -537,7 +537,12 @@ private void UpdateRoleRequirements() _jobCategories.Clear(); var firstCategory = true; - foreach (var department in _prototypeManager.EnumeratePrototypes()) + var departments = _prototypeManager.EnumeratePrototypes() + .OrderByDescending(department => department.Weight) + .ThenBy(department => Loc.GetString($"department-{department.ID}")) + .ToList(); + + foreach (var department in departments) { var departmentName = Loc.GetString($"department-{department.ID}"); @@ -581,8 +586,11 @@ private void UpdateRoleRequirements() _jobList.AddChild(category); } - var jobs = department.Roles.Select(o => _prototypeManager.Index(o)).Where(o => o.SetPreference).ToList(); - jobs.Sort((x, y) => -string.Compare(x.LocalizedName, y.LocalizedName, StringComparison.CurrentCultureIgnoreCase)); + var jobs = department.Roles.Select(jobId => _prototypeManager.Index(jobId)) + .Where(job => job.SetPreference) + .OrderByDescending(job => job.Weight) + .ThenBy(job => job.LocalizedName) + .ToList(); foreach (var job in jobs) { @@ -619,6 +627,11 @@ private void UpdateRoleRequirements() } } + + if (Profile is not null) + { + UpdateJobPriorities(); + } } private void OnFlavorTextChange(string content) diff --git a/Content.Client/Shuttles/UI/RadarControl.cs b/Content.Client/Shuttles/UI/RadarControl.cs index 764fb854a74..45e6da22f42 100644 --- a/Content.Client/Shuttles/UI/RadarControl.cs +++ b/Content.Client/Shuttles/UI/RadarControl.cs @@ -47,7 +47,7 @@ public sealed class RadarControl : MapGridControl /// /// Currently hovered docked to show on the map. /// - public EntityUid? HighlightedDock; + public NetEntity? HighlightedDock; /// /// Raised if the user left-clicks on the radar control with the relevant entitycoordinates. @@ -198,7 +198,7 @@ protected override void Draw(DrawingHandleScreen handle) var shown = new HashSet(); _grids.Clear(); - _mapManager.FindGridsIntersecting(xform.MapID, new Box2(pos - MaxRadarRangeVector, pos + MaxRadarRangeVector), ref _grids); + _mapManager.FindGridsIntersecting(xform.MapID, new Box2(pos - MaxRadarRangeVector, pos + MaxRadarRangeVector), ref _grids, approx: true, includeMap: false); // Draw other grids... differently foreach (var grid in _grids) @@ -325,14 +325,13 @@ private void DrawDocks(DrawingHandleScreen handle, EntityUid uid, Matrix3 matrix { foreach (var state in docks) { - var ent = _entManager.GetEntity(state.Entity); var position = state.Coordinates.Position; var uiPosition = matrix.Transform(position); if (uiPosition.Length() > WorldRange - DockScale) continue; - var color = HighlightedDock == ent ? state.HighlightedColor : state.Color; + var color = HighlightedDock == state.Entity ? state.HighlightedColor : state.Color; uiPosition.Y = -uiPosition.Y; diff --git a/Content.Client/Shuttles/UI/ShuttleConsoleWindow.xaml.cs b/Content.Client/Shuttles/UI/ShuttleConsoleWindow.xaml.cs index 828b98868fc..d67227549a9 100644 --- a/Content.Client/Shuttles/UI/ShuttleConsoleWindow.xaml.cs +++ b/Content.Client/Shuttles/UI/ShuttleConsoleWindow.xaml.cs @@ -234,7 +234,7 @@ private void UpdateDocks(List docks) private void OnDockMouseEntered(GUIMouseHoverEventArgs obj, DockingInterfaceState state) { - RadarScreen.HighlightedDock = _entManager.GetEntity(state.Entity); + RadarScreen.HighlightedDock = state.Entity; } private void OnDockMouseExited(GUIMouseHoverEventArgs obj, DockingInterfaceState state) diff --git a/Content.Client/Weapons/Ranged/Systems/GunSystem.AmmoCounter.cs b/Content.Client/Weapons/Ranged/Systems/GunSystem.AmmoCounter.cs index dfb5418f116..32343af56f0 100644 --- a/Content.Client/Weapons/Ranged/Systems/GunSystem.AmmoCounter.cs +++ b/Content.Client/Weapons/Ranged/Systems/GunSystem.AmmoCounter.cs @@ -58,11 +58,11 @@ private void UpdateAmmoCount(EntityUid uid, AmmoCounterComponent component) RaiseLocalEvent(uid, ev, false); } - protected override void UpdateAmmoCount(EntityUid uid) + protected override void UpdateAmmoCount(EntityUid uid, bool prediction = true) { // Don't use resolves because the method is shared and there's no compref and I'm trying to // share as much code as possible - if (!Timing.IsFirstTimePredicted || + if (prediction && !Timing.IsFirstTimePredicted || !TryComp(uid, out var clientComp)) { return; @@ -98,7 +98,7 @@ public DefaultStatusControl() { MinHeight = 15; HorizontalExpand = true; - VerticalAlignment = VAlignment.Center; + VerticalAlignment = Control.VAlignment.Center; AddChild(new BoxContainer { Orientation = BoxContainer.LayoutOrientation.Vertical, @@ -213,7 +213,7 @@ public BoxesStatusControl() { MinHeight = 15; HorizontalExpand = true; - VerticalAlignment = VAlignment.Center; + VerticalAlignment = Control.VAlignment.Center; AddChild(new BoxContainer { @@ -300,7 +300,7 @@ public ChamberMagazineStatusControl() { MinHeight = 15; HorizontalExpand = true; - VerticalAlignment = VAlignment.Center; + VerticalAlignment = Control.VAlignment.Center; AddChild(new BoxContainer { @@ -419,7 +419,7 @@ public RevolverStatusControl() { MinHeight = 15; HorizontalExpand = true; - VerticalAlignment = VAlignment.Center; + VerticalAlignment = Control.VAlignment.Center; AddChild((_bulletsList = new BoxContainer { Orientation = BoxContainer.LayoutOrientation.Horizontal, diff --git a/Content.IntegrationTests/Tests/CargoTest.cs b/Content.IntegrationTests/Tests/CargoTest.cs index a7e302ac81f..c869f22c922 100644 --- a/Content.IntegrationTests/Tests/CargoTest.cs +++ b/Content.IntegrationTests/Tests/CargoTest.cs @@ -44,7 +44,7 @@ await server.WaitAssertion(() => var ent = entManager.SpawnEntity(proto.Product, testMap.MapCoords); var price = pricing.GetPrice(ent); - Assert.That(price, Is.AtMost(proto.PointCost), $"Found arbitrage on {proto.ID} cargo product! Cost is {proto.PointCost} but sell is {price}!"); + Assert.That(price, Is.AtMost(proto.Cost), $"Found arbitrage on {proto.ID} cargo product! Cost is {proto.Cost} but sell is {price}!"); entManager.DeleteEntity(ent); } }); @@ -80,7 +80,7 @@ await server.WaitAssertion(() => foreach (var bounty in bounties) { if (cargo.IsBountyComplete(ent, bounty)) - Assert.That(proto.PointCost, Is.GreaterThanOrEqualTo(bounty.Reward), $"Found arbitrage on {bounty.ID} cargo bounty! Product {proto.ID} costs {proto.PointCost} but fulfills bounty {bounty.ID} with reward {bounty.Reward}!"); + Assert.That(proto.Cost, Is.GreaterThanOrEqualTo(bounty.Reward), $"Found arbitrage on {bounty.ID} cargo bounty! Product {proto.ID} costs {proto.Cost} but fulfills bounty {bounty.ID} with reward {bounty.Reward}!"); } entManager.DeleteEntity(ent); @@ -108,7 +108,7 @@ public async Task NoStaticPriceAndStackPrice() await server.WaitAssertion(() => { var mapId = testMap.MapId; - var grid = mapManager.CreateGrid(mapId); + var grid = mapManager.CreateGridEntity(mapId); var coord = new EntityCoordinates(grid.Owner, 0, 0); var protoIds = protoManager.EnumeratePrototypes() diff --git a/Content.IntegrationTests/Tests/Destructible/DestructibleTestPrototypes.cs b/Content.IntegrationTests/Tests/Destructible/DestructibleTestPrototypes.cs index a4f623e8b3f..12292f4652d 100644 --- a/Content.IntegrationTests/Tests/Destructible/DestructibleTestPrototypes.cs +++ b/Content.IntegrationTests/Tests/Destructible/DestructibleTestPrototypes.cs @@ -64,7 +64,7 @@ public static class DestructibleTestPrototypes behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroy - !type:SpawnEntitiesBehavior spawn: {SpawnedEntityId}: @@ -86,7 +86,7 @@ public static class DestructibleTestPrototypes behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroyHeavy - !type:SpawnEntitiesBehavior spawn: {SpawnedEntityId}: diff --git a/Content.IntegrationTests/Tests/Destructible/DestructibleThresholdActivationTest.cs b/Content.IntegrationTests/Tests/Destructible/DestructibleThresholdActivationTest.cs index 47c0d849772..80f750c715c 100644 --- a/Content.IntegrationTests/Tests/Destructible/DestructibleThresholdActivationTest.cs +++ b/Content.IntegrationTests/Tests/Destructible/DestructibleThresholdActivationTest.cs @@ -106,7 +106,6 @@ await server.WaitAssertion(() => Assert.Multiple(() => { Assert.That(actsThreshold.Acts, Is.EqualTo(ThresholdActs.Breakage)); - Assert.That(audio.GetSound(soundThreshold.Sound), Is.EqualTo("/Audio/Effects/woodhit.ogg")); Assert.That(spawnThreshold.Spawn, Is.Not.Null); Assert.That(spawnThreshold.Spawn, Has.Count.EqualTo(1)); Assert.That(spawnThreshold.Spawn.Single().Key, Is.EqualTo(SpawnedEntityId)); @@ -173,7 +172,6 @@ await server.WaitAssertion(() => Assert.Multiple(() => { Assert.That(actsThreshold.Acts, Is.EqualTo(ThresholdActs.Breakage)); - Assert.That(audio.GetSound(soundThreshold.Sound), Is.EqualTo("/Audio/Effects/woodhit.ogg")); Assert.That(spawnThreshold.Spawn, Is.Not.Null); Assert.That(spawnThreshold.Spawn, Has.Count.EqualTo(1)); Assert.That(spawnThreshold.Spawn.Single().Key, Is.EqualTo(SpawnedEntityId)); @@ -236,7 +234,6 @@ await server.WaitAssertion(() => Assert.Multiple(() => { Assert.That(actsThreshold.Acts, Is.EqualTo(ThresholdActs.Breakage)); - Assert.That(audio.GetSound(soundThreshold.Sound), Is.EqualTo("/Audio/Effects/woodhit.ogg")); Assert.That(spawnThreshold.Spawn, Is.Not.Null); Assert.That(spawnThreshold.Spawn, Has.Count.EqualTo(1)); Assert.That(spawnThreshold.Spawn.Single().Key, Is.EqualTo(SpawnedEntityId)); diff --git a/Content.IntegrationTests/Tests/DoAfter/DoAfterServerTest.cs b/Content.IntegrationTests/Tests/DoAfter/DoAfterServerTest.cs index 45c2759aa6e..45c384f86c7 100644 --- a/Content.IntegrationTests/Tests/DoAfter/DoAfterServerTest.cs +++ b/Content.IntegrationTests/Tests/DoAfter/DoAfterServerTest.cs @@ -21,6 +21,7 @@ public sealed partial class DoAfterServerTest - type: DoAfter "; + [Serializable, NetSerializable] private sealed partial class TestDoAfterEvent : DoAfterEvent { public override DoAfterEvent Clone() diff --git a/Content.IntegrationTests/Tests/EntityTest.cs b/Content.IntegrationTests/Tests/EntityTest.cs index ee20b78775d..d739fd32bdb 100644 --- a/Content.IntegrationTests/Tests/EntityTest.cs +++ b/Content.IntegrationTests/Tests/EntityTest.cs @@ -31,6 +31,7 @@ public async Task SpawnAndDeleteAllEntitiesOnDifferentMaps() var entityMan = server.ResolveDependency(); var mapManager = server.ResolveDependency(); var prototypeMan = server.ResolveDependency(); + var mapSystem = entityMan.System(); await server.WaitPost(() => { @@ -41,12 +42,13 @@ await server.WaitPost(() => .Where(p => !p.Components.ContainsKey("MapGrid")) // This will smash stuff otherwise. .Select(p => p.ID) .ToList(); + foreach (var protoId in protoIds) { var mapId = mapManager.CreateMap(); - var grid = mapManager.CreateGrid(mapId); + var grid = mapManager.CreateGridEntity(mapId); // TODO: Fix this better in engine. - grid.SetTile(Vector2i.Zero, new Tile(1)); + mapSystem.SetTile(grid.Owner, grid.Comp, Vector2i.Zero, new Tile(1)); var coord = new EntityCoordinates(grid.Owner, 0, 0); entityMan.SpawnEntity(protoId, coord); } @@ -61,7 +63,9 @@ await server.WaitPost(() => { var query = entityMan.AllEntityQueryEnumerator(); while (query.MoveNext(out var uid, out var meta)) + { yield return (uid, meta); + } } var entityMetas = Query(entityMan).ToList(); @@ -113,8 +117,10 @@ await server.WaitPost(() => { var query = entityMan.AllEntityQueryEnumerator(); while (query.MoveNext(out var uid, out var meta)) + { yield return (uid, meta); - }; + } + } var entityMetas = Query(entityMan).ToList(); foreach (var (uid, meta) in entityMetas) @@ -163,11 +169,11 @@ await server.WaitPost(() => foreach (var protoId in protoIds) { var mapId = mapManager.CreateMap(); - var grid = mapManager.CreateGrid(mapId); + var grid = mapManager.CreateGridEntity(mapId); var ent = sEntMan.SpawnEntity(protoId, new EntityCoordinates(grid.Owner, 0.5f, 0.5f)); foreach (var (_, component) in sEntMan.GetNetComponents(ent)) { - sEntMan.Dirty(component); + sEntMan.Dirty(ent, component); } } }); @@ -185,7 +191,9 @@ await server.WaitPost(() => { var query = entityMan.AllEntityQueryEnumerator(); while (query.MoveNext(out var uid, out var meta)) + { yield return (uid, meta); + } } var entityMetas = Query(sEntMan).ToList(); @@ -362,9 +370,10 @@ public async Task AllComponentsOneToOneDeleteTest() var entityManager = server.ResolveDependency(); var componentFactory = server.ResolveDependency(); var tileDefinitionManager = server.ResolveDependency(); + var mapSystem = entityManager.System(); var logmill = server.ResolveDependency().GetSawmill("EntityTest"); - MapGridComponent grid = default; + Entity grid = default!; await server.WaitPost(() => { @@ -373,13 +382,13 @@ await server.WaitPost(() => mapManager.AddUninitializedMap(mapId); - grid = mapManager.CreateGrid(mapId); + grid = mapManager.CreateGridEntity(mapId); var tileDefinition = tileDefinitionManager["Plating"]; var tile = new Tile(tileDefinition.TileId); - var coordinates = grid.ToCoordinates(); + var coordinates = new EntityCoordinates(grid.Owner, Vector2.Zero); - grid.SetTile(coordinates, tile); + mapSystem.SetTile(grid.Owner, grid.Comp!, coordinates, tile); mapManager.DoMapInitialize(mapId); }); @@ -390,7 +399,7 @@ await server.WaitAssertion(() => { Assert.Multiple(() => { - var testLocation = grid.ToCoordinates(); + var testLocation = new EntityCoordinates(grid.Owner, Vector2.Zero); foreach (var type in componentFactory.AllRegisteredTypes) { @@ -415,7 +424,6 @@ await server.WaitAssertion(() => continue; } - component.Owner = entity; logmill.Debug($"Adding component: {name}"); Assert.DoesNotThrow(() => diff --git a/Content.IntegrationTests/Tests/Shuttle/DockTest.cs b/Content.IntegrationTests/Tests/Shuttle/DockTest.cs index 3404c9fbbbe..b6fc273570a 100644 --- a/Content.IntegrationTests/Tests/Shuttle/DockTest.cs +++ b/Content.IntegrationTests/Tests/Shuttle/DockTest.cs @@ -32,6 +32,7 @@ public async Task TestDockingConfig(Vector2 dock1Pos, Vector2 dock2Pos, Angle do var entManager = server.ResolveDependency(); var mapManager = server.ResolveDependency(); var dockingSystem = entManager.System(); + var mapSystem = entManager.System(); var xformSystem = entManager.System(); var mapId = map.MapId; @@ -39,8 +40,8 @@ public async Task TestDockingConfig(Vector2 dock1Pos, Vector2 dock2Pos, Angle do await server.WaitAssertion(() => { entManager.DeleteEntity(map.GridUid); - var grid1 = mapManager.CreateGrid(mapId); - var grid2 = mapManager.CreateGrid(mapId); + var grid1 = mapManager.CreateGridEntity(mapId); + var grid2 = mapManager.CreateGridEntity(mapId); var grid1Ent = grid1.Owner; var grid2Ent = grid2.Owner; var grid2Offset = new Vector2(50f, 50f); @@ -57,7 +58,7 @@ await server.WaitAssertion(() => new(new Vector2i(0, 2), new Tile(1)), }; - grid1.SetTiles(tiles1); + mapSystem.SetTiles(grid1.Owner, grid1.Comp, tiles1); var dock1 = entManager.SpawnEntity("AirlockShuttle", new EntityCoordinates(grid1Ent, dock1Pos)); var dock1Xform = entManager.GetComponent(dock1); dock1Xform.LocalRotation = dock1Angle; @@ -71,7 +72,7 @@ await server.WaitAssertion(() => new(new Vector2i(1, 2), new Tile(1)), }; - grid2.SetTiles(tiles2); + mapSystem.SetTiles(grid2.Owner, grid2.Comp, tiles2); var dock2 = entManager.SpawnEntity("AirlockShuttle", new EntityCoordinates(grid2Ent, dock2Pos)); var dock2Xform = entManager.GetComponent(dock2); dock2Xform.LocalRotation = dock2Angle; @@ -94,9 +95,7 @@ public async Task TestPlanetDock() var otherMap = await pair.CreateTestMap(); var entManager = server.ResolveDependency(); - var mapManager = server.ResolveDependency(); var dockingSystem = entManager.System(); - var xformSystem = entManager.System(); var mapSystem = entManager.System(); var mapGrid = entManager.AddComponent(map.MapUid); diff --git a/Content.IntegrationTests/Tests/ShuttleTest.cs b/Content.IntegrationTests/Tests/ShuttleTest.cs index 304366adbf8..fb786373a5a 100644 --- a/Content.IntegrationTests/Tests/ShuttleTest.cs +++ b/Content.IntegrationTests/Tests/ShuttleTest.cs @@ -29,7 +29,7 @@ public async Task Test() await server.WaitAssertion(() => { var mapId = mapMan.CreateMap(); - var grid = mapMan.CreateGrid(mapId); + var grid = mapMan.CreateGridEntity(mapId); gridEnt = grid.Owner; Assert.Multiple(() => diff --git a/Content.Server/Ame/Components/AmeControllerComponent.cs b/Content.Server/Ame/Components/AmeControllerComponent.cs index abdb76c9e33..2b7a46e947a 100644 --- a/Content.Server/Ame/Components/AmeControllerComponent.cs +++ b/Content.Server/Ame/Components/AmeControllerComponent.cs @@ -59,7 +59,7 @@ public sealed partial class AmeControllerComponent : SharedAmeControllerComponen /// [DataField("injectSound")] [ViewVariables(VVAccess.ReadWrite)] - public SoundSpecifier InjectSound = new SoundPathSpecifier("/Audio/Effects/bang.ogg"); + public SoundSpecifier InjectSound = new SoundCollectionSpecifier("MetalThud"); /// /// The last time this could have injected fuel into the AME. diff --git a/Content.Server/Anomaly/Effects/TileAnomalySystem.cs b/Content.Server/Anomaly/Effects/TileAnomalySystem.cs index 16f32f6f4b1..08ec3a1c938 100644 --- a/Content.Server/Anomaly/Effects/TileAnomalySystem.cs +++ b/Content.Server/Anomaly/Effects/TileAnomalySystem.cs @@ -1,13 +1,8 @@ -using System.Linq; using System.Numerics; -using Content.Server.Maps; using Content.Shared.Anomaly.Components; using Content.Shared.Anomaly.Effects.Components; using Content.Shared.Maps; -using Content.Shared.Physics; using Robust.Shared.Map; -using Robust.Shared.Physics; -using Robust.Shared.Physics.Components; using Robust.Shared.Random; namespace Content.Server.Anomaly.Effects; diff --git a/Content.Server/Cargo/Components/CargoOrderConsoleComponent.cs b/Content.Server/Cargo/Components/CargoOrderConsoleComponent.cs deleted file mode 100644 index 1c418c9cc70..00000000000 --- a/Content.Server/Cargo/Components/CargoOrderConsoleComponent.cs +++ /dev/null @@ -1,17 +0,0 @@ -using Robust.Shared.Audio; - -namespace Content.Server.Cargo.Components -{ - /// - /// Handles sending order requests to cargo. Doesn't handle orders themselves via shuttle or telepads. - /// - [RegisterComponent] - public sealed partial class CargoOrderConsoleComponent : Component - { - [DataField("soundError")] public SoundSpecifier ErrorSound = - new SoundPathSpecifier("/Audio/Effects/Cargo/buzz_sigh.ogg"); - - [DataField("soundConfirm")] - public SoundSpecifier ConfirmSound = new SoundPathSpecifier("/Audio/Effects/Cargo/ping.ogg"); - } -} diff --git a/Content.Server/Cargo/Systems/CargoSystem.Orders.cs b/Content.Server/Cargo/Systems/CargoSystem.Orders.cs index e1af8dcdd08..c182bba00e9 100644 --- a/Content.Server/Cargo/Systems/CargoSystem.Orders.cs +++ b/Content.Server/Cargo/Systems/CargoSystem.Orders.cs @@ -261,6 +261,9 @@ private void OnAddOrderMessage(EntityUid uid, CargoOrderConsoleComponent compone return; } + if (!component.AllowedGroups.Contains(product.Group)) + return; + var data = GetOrderData(args, product, GenerateOrderId(orderDatabase)); if (!TryAddOrder(stationUid.Value, data, orderDatabase)) @@ -313,7 +316,7 @@ private void PlayDenySound(EntityUid uid, CargoOrderConsoleComponent component) private static CargoOrderData GetOrderData(CargoConsoleAddOrderMessage args, CargoProductPrototype cargoProduct, int id) { - return new CargoOrderData(id, cargoProduct.Product, cargoProduct.PointCost, args.Amount, args.Requester, args.Reason); + return new CargoOrderData(id, cargoProduct.Product, cargoProduct.Cost, args.Amount, args.Requester, args.Reason); } public static int GetOutstandingOrderCount(StationCargoOrderDatabaseComponent component) diff --git a/Content.Server/Cargo/Systems/CargoSystem.cs b/Content.Server/Cargo/Systems/CargoSystem.cs index c39ffb186a1..d4be68efc85 100644 --- a/Content.Server/Cargo/Systems/CargoSystem.cs +++ b/Content.Server/Cargo/Systems/CargoSystem.cs @@ -9,6 +9,7 @@ using Content.Shared.Access.Systems; using Content.Shared.Administration.Logs; using Content.Shared.Cargo; +using Content.Shared.Cargo.Components; using Content.Shared.Containers.ItemSlots; using Content.Shared.Mobs.Components; using JetBrains.Annotations; diff --git a/Content.Server/Cloning/CloningSystem.cs b/Content.Server/Cloning/CloningSystem.cs index 06d6396495b..963efcc48f3 100644 --- a/Content.Server/Cloning/CloningSystem.cs +++ b/Content.Server/Cloning/CloningSystem.cs @@ -205,19 +205,6 @@ public bool TryCloning(EntityUid uid, EntityUid bodyToClone, Entity(bodyToClone, out _)) - { - if (clonePod.ConnectedConsole != null) - { - _chatSystem.TrySendInGameICMessage(clonePod.ConnectedConsole.Value, - Loc.GetString("cloning-console-uncloneable-trait-error"), - InGameICChatType.Speak, false); - } - - return false; - } - // biomass checks var biomassAmount = _material.GetMaterialAmount(uid, clonePod.RequiredMaterial); diff --git a/Content.Server/Communications/CommunicationsConsoleSystem.cs b/Content.Server/Communications/CommunicationsConsoleSystem.cs index 1acd2448ff9..8789735a663 100644 --- a/Content.Server/Communications/CommunicationsConsoleSystem.cs +++ b/Content.Server/Communications/CommunicationsConsoleSystem.cs @@ -12,6 +12,7 @@ using Content.Shared.Access.Systems; using Content.Shared.Backmen.StationAI; using Content.Shared.CCVar; +using Content.Shared.Chat; using Content.Shared.Communications; using Content.Shared.Database; using Content.Shared.Emag.Components; @@ -36,8 +37,6 @@ public sealed class CommunicationsConsoleSystem : EntitySystem [Dependency] private readonly IConfigurationManager _cfg = default!; [Dependency] private readonly IAdminLogManager _adminLogger = default!; - private const int MaxMessageLength = 256; - private const int MaxMessageNewlines = 2; private const float UIUpdateInterval = 5.0f; public override void Initialize() @@ -232,22 +231,8 @@ private void OnSelectAlertLevelMessage(EntityUid uid, CommunicationsConsoleCompo private void OnAnnounceMessage(EntityUid uid, CommunicationsConsoleComponent comp, CommunicationsConsoleAnnounceMessage message) { - var msgWords = message.Message.Trim(); - var msgChars = (msgWords.Length <= MaxMessageLength ? msgWords : $"{msgWords[0..MaxMessageLength]}...").ToCharArray(); - - var newlines = 0; - for (var i = 0; i < msgChars.Length; i++) - { - if (msgChars[i] != '\n') - continue; - - if (newlines >= MaxMessageNewlines) - msgChars[i] = ' '; - - newlines++; - } - - var msg = new string(msgChars); + var maxLength = _cfg.GetCVar(CCVars.ChatMaxAnnouncementLength); + var msg = SharedChatSystem.SanitizeAnnouncement(message.Message, maxLength); var author = Loc.GetString("comms-console-announcement-unknown-sender"); if (message.Session.AttachedEntity is { Valid: true } mob) { diff --git a/Content.Server/DeviceLinking/Components/GunSignalControlComponent.cs b/Content.Server/DeviceLinking/Components/GunSignalControlComponent.cs new file mode 100644 index 00000000000..a9067951edb --- /dev/null +++ b/Content.Server/DeviceLinking/Components/GunSignalControlComponent.cs @@ -0,0 +1,24 @@ +using Content.Server.DeviceLinking.Systems; +using Content.Shared.DeviceLinking; +using Robust.Shared.Prototypes; + +namespace Content.Server.DeviceLinking.Components; + +/// +/// A system that allows you to fire GunComponent + AmmoProvider by receiving signals from DeviceLinking +/// +[RegisterComponent, Access(typeof(GunSignalControlSystem))] +public sealed partial class GunSignalControlComponent : Component +{ + [DataField] + public ProtoId TriggerPort = "Trigger"; + + [DataField] + public ProtoId TogglePort = "Toggle"; + + [DataField] + public ProtoId OnPort = "On"; + + [DataField] + public ProtoId OffPort = "Off"; +} diff --git a/Content.Server/DeviceLinking/Systems/GunSignalControlSystem.cs b/Content.Server/DeviceLinking/Systems/GunSignalControlSystem.cs new file mode 100644 index 00000000000..538a191ab94 --- /dev/null +++ b/Content.Server/DeviceLinking/Systems/GunSignalControlSystem.cs @@ -0,0 +1,46 @@ +using Content.Server.DeviceLinking.Components; +using Content.Server.DeviceLinking.Events; +using Content.Shared.Weapons.Ranged.Components; +using Content.Shared.Weapons.Ranged.Systems; +using Robust.Shared.Map; +using System.Numerics; + +namespace Content.Server.DeviceLinking.Systems; + +public sealed partial class GunSignalControlSystem : EntitySystem +{ + [Dependency] private readonly DeviceLinkSystem _signalSystem = default!; + [Dependency] private readonly SharedGunSystem _gun = default!; + + public override void Initialize() + { + SubscribeLocalEvent(OnInit); + SubscribeLocalEvent(OnSignalReceived); + } + + private void OnInit(Entity gunControl, ref MapInitEvent args) + { + _signalSystem.EnsureSinkPorts(gunControl, gunControl.Comp.TriggerPort, gunControl.Comp.TogglePort, gunControl.Comp.OnPort, gunControl.Comp.OffPort); + } + + private void OnSignalReceived(Entity gunControl, ref SignalReceivedEvent args) + { + if (!TryComp(gunControl, out var gun)) + return; + + if (args.Port == gunControl.Comp.TriggerPort) + _gun.AttemptShoot(gunControl, gun); + + if (!TryComp(gunControl, out var autoShoot)) + return; + + if (args.Port == gunControl.Comp.TogglePort) + _gun.SetEnabled(gunControl, autoShoot, !autoShoot.Enabled); + + if (args.Port == gunControl.Comp.OnPort) + _gun.SetEnabled(gunControl, autoShoot, true); + + if (args.Port == gunControl.Comp.OffPort) + _gun.SetEnabled(gunControl, autoShoot, false); + } +} diff --git a/Content.Server/GameTicking/GameTicker.GameRule.cs b/Content.Server/GameTicking/GameTicker.GameRule.cs index c04b8d67116..971e103c1b5 100644 --- a/Content.Server/GameTicking/GameTicker.GameRule.cs +++ b/Content.Server/GameTicking/GameTicker.GameRule.cs @@ -2,6 +2,7 @@ using Content.Server.Administration; using Content.Server.GameTicking.Rules.Components; using Content.Shared.Administration; +using Content.Shared.Database; using Content.Shared.Prototypes; using JetBrains.Annotations; using Robust.Shared.Console; @@ -59,6 +60,7 @@ public EntityUid AddGameRule(string ruleId) { var ruleEntity = Spawn(ruleId, MapCoordinates.Nullspace); _sawmill.Info($"Added game rule {ToPrettyString(ruleEntity)}"); + _adminLogger.Add(LogType.EventStarted, $"Added game rule {ToPrettyString(ruleEntity)}"); var ev = new GameRuleAddedEvent(ruleEntity, ruleId); RaiseLocalEvent(ruleEntity, ref ev, true); @@ -102,6 +104,7 @@ public bool StartGameRule(EntityUid ruleEntity, GameRuleComponent? ruleData = nu _allPreviousGameRules.Add((RoundDuration(), id)); _sawmill.Info($"Started game rule {ToPrettyString(ruleEntity)}"); + _adminLogger.Add(LogType.EventStarted, $"Started game rule {ToPrettyString(ruleEntity)}"); EnsureComp(ruleEntity); ruleData.ActivatedAt = _gameTiming.CurTime; @@ -131,6 +134,7 @@ public bool EndGameRule(EntityUid ruleEntity, GameRuleComponent? ruleData = null EnsureComp(ruleEntity); _sawmill.Info($"Ended game rule {ToPrettyString(ruleEntity)}"); + _adminLogger.Add(LogType.EventStopped, $"Ended game rule {ToPrettyString(ruleEntity)}"); var ev = new GameRuleEndedEvent(ruleEntity, id); RaiseLocalEvent(ruleEntity, ref ev, true); @@ -227,6 +231,14 @@ private void AddGameRuleCommand(IConsoleShell shell, string argstr, string[] arg foreach (var rule in args) { + if (shell.Player != null) + { + _adminLogger.Add(LogType.EventStarted, $"{shell.Player} tried to add game rule [{rule}] via command"); + } + else + { + _adminLogger.Add(LogType.EventStarted, $"Unknown tried to add game rule [{rule}] via command"); + } var ent = AddGameRule(rule); // Start rule if we're already in the middle of a round @@ -250,6 +262,14 @@ private void EndGameRuleCommand(IConsoleShell shell, string argstr, string[] arg { if (!NetEntity.TryParse(rule, out var ruleEntNet) || !TryGetEntity(ruleEntNet, out var ruleEnt)) continue; + if (shell.Player != null) + { + _adminLogger.Add(LogType.EventStopped, $"{shell.Player} tried to end game rule [{rule}] via command"); + } + else + { + _adminLogger.Add(LogType.EventStopped, $"Unknown tried to end game rule [{rule}] via command"); + } EndGameRule(ruleEnt.Value); } diff --git a/Content.Server/GameTicking/GameTicker.RoundFlow.cs b/Content.Server/GameTicking/GameTicker.RoundFlow.cs index 28a9758a045..c26ec09c2be 100644 --- a/Content.Server/GameTicking/GameTicker.RoundFlow.cs +++ b/Content.Server/GameTicking/GameTicker.RoundFlow.cs @@ -386,10 +386,11 @@ public void ShowRoundEndScoreboard(string text = "") // This ordering mechanism isn't great (no ordering of minds) but functions var listOfPlayerInfoFinal = listOfPlayerInfo.OrderBy(pi => pi.PlayerOOCName).ToArray(); + var sound = _audio.GetSound(new SoundCollectionSpecifier("RoundEnd")); RaiseNetworkEvent(new RoundEndMessageEvent(gamemodeTitle, roundEndText, roundDuration, RoundId, - listOfPlayerInfoFinal.Length, listOfPlayerInfoFinal, LobbySong)); - RaiseLocalEvent(new RoundEndedEvent(RoundId, roundDuration)); // Corvax + listOfPlayerInfoFinal.Length, listOfPlayerInfoFinal, LobbySong, sound)); + RaiseLocalEvent(new RoundEndedEvent(RoundId, roundDuration)); // Corvax } private async void SendRoundEndDiscordMessage() diff --git a/Content.Server/GameTicking/Rules/SecretRuleSystem.cs b/Content.Server/GameTicking/Rules/SecretRuleSystem.cs index afd6455f923..1e3858ceef6 100644 --- a/Content.Server/GameTicking/Rules/SecretRuleSystem.cs +++ b/Content.Server/GameTicking/Rules/SecretRuleSystem.cs @@ -1,8 +1,10 @@ +using Content.Server.Administration.Logs; using Content.Server.GameTicking.Presets; using Content.Server.GameTicking.Rules.Components; using Content.Shared.Random; using Content.Shared.Random.Helpers; using Content.Shared.CCVar; +using Content.Shared.Database; using Robust.Shared.Prototypes; using Robust.Shared.Random; using Robust.Shared.Configuration; @@ -14,6 +16,7 @@ public sealed class SecretRuleSystem : GameRuleSystem [Dependency] private readonly IPrototypeManager _prototypeManager = default!; [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly IConfigurationManager _configurationManager = default!; + [Dependency] private readonly IAdminLogManager _adminLogger = default!; protected override void Started(EntityUid uid, SecretRuleComponent component, GameRuleComponent gameRule, GameRuleStartedEvent args) { @@ -38,6 +41,7 @@ private void PickRule(SecretRuleComponent component) var presetString = _configurationManager.GetCVar(CCVars.SecretWeightPrototype); var preset = _prototypeManager.Index(presetString).Pick(_random); Logger.InfoS("gamepreset", $"Selected {preset} for secret."); + _adminLogger.Add(LogType.EventStarted, $"Selected {preset} for secret."); var rules = _prototypeManager.Index(preset).Rules; foreach (var rule in rules) diff --git a/Content.Server/ImmovableRod/ImmovableRodComponent.cs b/Content.Server/ImmovableRod/ImmovableRodComponent.cs index 75b82d117a0..f3605914795 100644 --- a/Content.Server/ImmovableRod/ImmovableRodComponent.cs +++ b/Content.Server/ImmovableRod/ImmovableRodComponent.cs @@ -8,7 +8,7 @@ public sealed partial class ImmovableRodComponent : Component public int MobCount = 0; [DataField("hitSound")] - public SoundSpecifier Sound = new SoundPathSpecifier("/Audio/Effects/bang.ogg"); + public SoundSpecifier Sound = new SoundCollectionSpecifier("MetalSlam"); [DataField("hitSoundProbability")] public float HitSoundProbability = 0.1f; diff --git a/Content.Server/Medical/DefibrillatorSystem.cs b/Content.Server/Medical/DefibrillatorSystem.cs index d8bbeb99824..e6ef8bf96a9 100644 --- a/Content.Server/Medical/DefibrillatorSystem.cs +++ b/Content.Server/Medical/DefibrillatorSystem.cs @@ -6,6 +6,7 @@ using Content.Server.Ghost; using Content.Server.Popups; using Content.Server.PowerCell; +using Content.Server.Traits.Assorted; using Content.Shared.Damage; using Content.Shared.DoAfter; using Content.Shared.Interaction; @@ -221,6 +222,11 @@ public void Zap(EntityUid uid, EntityUid target, EntityUid user, DefibrillatorCo _chatManager.TrySendInGameICMessage(uid, Loc.GetString("defibrillator-rotten"), InGameICChatType.Speak, true); } + else if (HasComp(target)) + { + _chatManager.TrySendInGameICMessage(uid, Loc.GetString("defibrillator-unrevivable"), + InGameICChatType.Speak, true); + } else { if (_mobState.IsDead(target, mob)) diff --git a/Content.Server/NukeOps/WarDeclaratorComponent.cs b/Content.Server/NukeOps/WarDeclaratorComponent.cs index 15279ee13ca..ef6a3db5af6 100644 --- a/Content.Server/NukeOps/WarDeclaratorComponent.cs +++ b/Content.Server/NukeOps/WarDeclaratorComponent.cs @@ -22,10 +22,6 @@ public sealed partial class WarDeclaratorComponent : Component [DataField] public bool AllowEditingMessage = true; - [ViewVariables(VVAccess.ReadWrite)] - [DataField] - public int MaxMessageLength = 512; - /// /// War declarement text color /// diff --git a/Content.Server/NukeOps/WarDeclaratorSystem.cs b/Content.Server/NukeOps/WarDeclaratorSystem.cs index dcf6c28d434..328990738e7 100644 --- a/Content.Server/NukeOps/WarDeclaratorSystem.cs +++ b/Content.Server/NukeOps/WarDeclaratorSystem.cs @@ -3,9 +3,12 @@ using Content.Server.GameTicking.Rules.Components; using Content.Server.Popups; using Content.Server.UserInterface; +using Content.Shared.CCVar; +using Content.Shared.Chat; using Content.Shared.Database; using Content.Shared.NukeOps; using Robust.Server.GameObjects; +using Robust.Shared.Configuration; namespace Content.Server.NukeOps; @@ -18,6 +21,7 @@ public sealed class WarDeclaratorSystem : EntitySystem [Dependency] private readonly IAdminLogManager _adminLogger = default!; [Dependency] private readonly NukeopsRuleSystem _nukeopsRuleSystem = default!; [Dependency] private readonly PopupSystem _popupSystem = default!; + [Dependency] private readonly IConfigurationManager _cfg = default!; public override void Initialize() { @@ -52,22 +56,8 @@ private void OnActivated(EntityUid uid, WarDeclaratorComponent component, WarDec return; } - var text = (args.Message.Length <= component.MaxMessageLength ? args.Message.Trim() : $"{args.Message.Trim().Substring(0, 256)}...").ToCharArray(); - - // No more than 2 newlines, other replaced to spaces - var newlines = 0; - for (var i = 0; i < text.Length; i++) - { - if (text[i] != '\n') - continue; - - if (newlines >= 2) - text[i] = ' '; - - newlines++; - } - - string message = new string(text); + var maxLength = _cfg.GetCVar(CCVars.ChatMaxAnnouncementLength); + var message = SharedChatSystem.SanitizeAnnouncement(args.Message, maxLength); if (component.AllowEditingMessage && message != string.Empty) { component.Message = message; diff --git a/Content.Server/ParticleAccelerator/EntitySystems/ParticleAcceleratorSystem.Parts.cs b/Content.Server/ParticleAccelerator/EntitySystems/ParticleAcceleratorSystem.Parts.cs index abc68543ff3..bdbc7b3f5bc 100644 --- a/Content.Server/ParticleAccelerator/EntitySystems/ParticleAcceleratorSystem.Parts.cs +++ b/Content.Server/ParticleAccelerator/EntitySystems/ParticleAcceleratorSystem.Parts.cs @@ -48,12 +48,12 @@ public void RescanParts(EntityUid uid, ICommonSession? user = null, ParticleAcce return; var gridUid = xform.GridUid; - if (gridUid == null || gridUid != xform.ParentUid || !_mapManager.TryGetGrid(gridUid, out var grid)) + if (gridUid == null || gridUid != xform.ParentUid || !TryComp(gridUid, out var grid)) return; // Find fuel chamber first by scanning cardinals. var fuelQuery = GetEntityQuery(); - foreach (var adjacent in grid.GetCardinalNeighborCells(xform.Coordinates)) + foreach (var adjacent in _mapSystem.GetCardinalNeighborCells(gridUid.Value, grid, xform.Coordinates)) { if (fuelQuery.HasComponent(adjacent) && partQuery.TryGetComponent(adjacent, out var partState) @@ -75,21 +75,23 @@ public void RescanParts(EntityUid uid, ICommonSession? user = null, ParticleAcce // You'll have to take my word for it that that breaks everything, yeah? controller.CurrentlyRescanning = true; - // Align ourselves to match fuel chamber orientation. - // This means that if you mess up the orientation of the control box it's not a big deal, - // because the sprite is far from obvious about the orientation. + // Automatically rotate the control box sprite to face the fuel chamber var fuelXform = xformQuery.GetComponent(controller.FuelChamber!.Value); - var rotation = fuelXform.LocalRotation; - _transformSystem.SetLocalRotation(uid, rotation, xform); + var fuelDir = (fuelXform.LocalPosition - xform.LocalPosition).GetDir(); + _transformSystem.SetLocalRotation(uid, fuelDir.ToAngle(), xform); // Calculate offsets for each of the parts of the PA. // These are all done relative to the fuel chamber BC that is basically the center of the machine. - var positionFuelChamber = grid.TileIndicesFor(fuelXform.Coordinates); // // - var positionEndCap = positionFuelChamber + (Vector2i) rotation.RotateVec(new Vector2(0, 1)); // n // n: End Cap - var positionPowerBox = positionFuelChamber + (Vector2i) rotation.RotateVec(new Vector2(0, -1)); // CF // C: Control Box, F: Fuel Chamber - var positionPortEmitter = positionFuelChamber + (Vector2i) rotation.RotateVec(new Vector2(1, -2)); // P // P: Power Box - var positionForeEmitter = positionFuelChamber + (Vector2i) rotation.RotateVec(new Vector2(0, -2)); // EEE // E: Emitter (Starboard, Fore, Port) - var positionStarboardEmitter = positionFuelChamber + (Vector2i) rotation.RotateVec(new Vector2(-1, -2)); // // + var rotation = fuelXform.LocalRotation; + var offsetVect = rotation.GetCardinalDir().ToIntVec(); + var orthoOffsetVect = new Vector2i(-offsetVect.Y, offsetVect.X); + + var positionFuelChamber = _mapSystem.TileIndicesFor(gridUid!.Value, grid, fuelXform.Coordinates); // n // n: End Cap + var positionEndCap = positionFuelChamber - offsetVect; // CF // C: Control Box, F: Fuel Chamber + var positionPowerBox = positionFuelChamber + offsetVect; // P // P: Power Box + var positionPortEmitter = positionFuelChamber + offsetVect * 2 + orthoOffsetVect; // EEE // E: Emitter (Starboard, Fore, Port) + var positionForeEmitter = positionFuelChamber + offsetVect * 2; + var positionStarboardEmitter = positionFuelChamber + offsetVect * 2 - orthoOffsetVect; ScanPart(gridUid!.Value, positionEndCap, rotation, out controller.EndCap, out var _, grid); ScanPart(gridUid!.Value, positionPowerBox, rotation, out controller.PowerBox, out var _, grid); @@ -137,7 +139,7 @@ private bool ScanPart(EntityUid uid, Vector2i coordinates, Angle? rotation, [ } var compQuery = GetEntityQuery(); - foreach (var entity in grid.GetAnchoredEntities(coordinates)) + foreach (var entity in _mapSystem.GetAnchoredEntities(uid, grid, coordinates)) { if (compQuery.TryGetComponent(entity, out comp) && TryComp(entity, out var partState) && partState.Master == null diff --git a/Content.Server/ParticleAccelerator/EntitySystems/ParticleAcceleratorSystem.cs b/Content.Server/ParticleAccelerator/EntitySystems/ParticleAcceleratorSystem.cs index c50e054281e..ddc7e2a0830 100644 --- a/Content.Server/ParticleAccelerator/EntitySystems/ParticleAcceleratorSystem.cs +++ b/Content.Server/ParticleAccelerator/EntitySystems/ParticleAcceleratorSystem.cs @@ -21,6 +21,7 @@ public sealed partial class ParticleAcceleratorSystem : EntitySystem [Dependency] private readonly SharedPhysicsSystem _physicsSystem = default!; [Dependency] private readonly SharedTransformSystem _transformSystem = default!; [Dependency] private readonly UserInterfaceSystem _uiSystem = default!; + [Dependency] private readonly MapSystem _mapSystem = default!; public override void Initialize() { diff --git a/Content.Server/Pinpointer/NavMapSystem.cs b/Content.Server/Pinpointer/NavMapSystem.cs index f2a23693a88..bf3a3b29988 100644 --- a/Content.Server/Pinpointer/NavMapSystem.cs +++ b/Content.Server/Pinpointer/NavMapSystem.cs @@ -225,7 +225,7 @@ private void OnGetState(EntityUid uid, NavMapComponent component, ref ComponentG // TODO: Make warp points use metadata name instead. string? name = beacon.Text; - if (name == null) + if (string.IsNullOrEmpty(name)) { if (TryComp(beaconUid, out var warpPoint) && warpPoint.Location != null) { diff --git a/Content.Server/PneumaticCannon/PneumaticCannonSystem.cs b/Content.Server/PneumaticCannon/PneumaticCannonSystem.cs index f16a327e6bf..9db9aa296d8 100644 --- a/Content.Server/PneumaticCannon/PneumaticCannonSystem.cs +++ b/Content.Server/PneumaticCannon/PneumaticCannonSystem.cs @@ -78,8 +78,8 @@ private void OnShoot(Entity cannon, ref GunShotEvent a if (gas == null && component.GasUsage > 0f) return; - if(TryComp(args.User, out var status) - && component.Power == PneumaticCannonPower.High) + if (TryComp(args.User, out var status) + && component.Power == PneumaticCannonPower.High) { _stun.TryParalyze(args.User, TimeSpan.FromSeconds(component.HighPowerStunTime), true, status); Popup.PopupEntity(Loc.GetString("pneumatic-cannon-component-power-stun", diff --git a/Content.Server/Power/Generator/ChemicalFuelGeneratorAdapterComponent.cs b/Content.Server/Power/Generator/ChemicalFuelGeneratorAdapterComponent.cs index 20d71493325..58e0e8b012a 100644 --- a/Content.Server/Power/Generator/ChemicalFuelGeneratorAdapterComponent.cs +++ b/Content.Server/Power/Generator/ChemicalFuelGeneratorAdapterComponent.cs @@ -2,6 +2,7 @@ using Content.Shared.Chemistry.Components.SolutionManager; using Content.Shared.Chemistry.Reagent; using Content.Shared.FixedPoint; +using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; namespace Content.Server.Power.Generator; @@ -13,11 +14,10 @@ namespace Content.Server.Power.Generator; public sealed partial class ChemicalFuelGeneratorAdapterComponent : Component { /// - /// The reagent to accept as fuel. + /// A dictionary relating a reagent to accept as fuel to a value to multiply reagent amount by to get fuel amount. /// - [DataField("reagent", customTypeSerializer: typeof(PrototypeIdSerializer))] - [ViewVariables(VVAccess.ReadWrite)] - public string Reagent = "WeldingFuel"; + [DataField] + public Dictionary, float> Reagents = new(); /// /// The name of . @@ -32,16 +32,10 @@ public sealed partial class ChemicalFuelGeneratorAdapterComponent : Component [DataField("solutionRef")] public Entity? Solution = null; - /// - /// Value to multiply reagent amount by to get fuel amount. - /// - [DataField("multiplier"), ViewVariables(VVAccess.ReadWrite)] - public float Multiplier = 1f; - /// /// How much reagent (can be fractional) is left in the generator. /// Stored in units of . /// - [DataField("fractionalReagent"), ViewVariables(VVAccess.ReadWrite)] - public float FractionalReagent; + [DataField] + public Dictionary, float> FractionalReagents = new(); } diff --git a/Content.Server/Power/Generator/GeneratorSystem.cs b/Content.Server/Power/Generator/GeneratorSystem.cs index a23b0b8eed2..fc6ac073400 100644 --- a/Content.Server/Power/Generator/GeneratorSystem.cs +++ b/Content.Server/Power/Generator/GeneratorSystem.cs @@ -1,4 +1,5 @@ -using Content.Server.Audio; +using System.Linq; +using Content.Server.Audio; using Content.Server.Chemistry.Containers.EntitySystems; using Content.Server.Fluids.EntitySystems; using Content.Server.Materials; @@ -81,7 +82,7 @@ private void ChemicalGetClogged(Entity en foreach (var reagentQuantity in solution) { - if (reagentQuantity.Reagent.Prototype != entity.Comp.Reagent) + if (!entity.Comp.Reagents.ContainsKey(reagentQuantity.Reagent.Prototype)) { args.Clogged = true; return; @@ -94,14 +95,21 @@ private void ChemicalUseFuel(Entity entit if (!_solutionContainer.ResolveSolution(entity.Owner, entity.Comp.SolutionName, ref entity.Comp.Solution, out var solution)) return; - var availableReagent = solution.GetTotalPrototypeQuantity(entity.Comp.Reagent).Value; - var toRemove = RemoveFractionalFuel( - ref entity.Comp.FractionalReagent, - args.FuelUsed, - entity.Comp.Multiplier * FixedPoint2.Epsilon.Float(), - availableReagent); - - _solutionContainer.RemoveReagent(entity.Comp.Solution.Value, entity.Comp.Reagent, FixedPoint2.FromCents(toRemove)); + var totalAvailableReagents = solution.GetTotalPrototypeQuantity(entity.Comp.Reagents.Keys.Select(p => p.Id).ToArray()).Value; + foreach (var (reagentId, multiplier) in entity.Comp.Reagents) + { + var availableReagent = solution.GetTotalPrototypeQuantity(reagentId).Value; + var removalPercentage = availableReagent / totalAvailableReagents; + var fractionalReagent = entity.Comp.FractionalReagents.GetValueOrDefault(reagentId); + var toRemove = RemoveFractionalFuel( + ref fractionalReagent, + args.FuelUsed * removalPercentage, + multiplier * FixedPoint2.Epsilon.Float(), + availableReagent); + + entity.Comp.FractionalReagents[reagentId] = fractionalReagent; + _solutionContainer.RemoveReagent(entity.Comp.Solution.Value, reagentId, FixedPoint2.FromCents(toRemove)); + } } private void ChemicalGetFuel(Entity entity, ref GeneratorGetFuelEvent args) @@ -109,9 +117,19 @@ private void ChemicalGetFuel(Entity entit if (!_solutionContainer.ResolveSolution(entity.Owner, entity.Comp.SolutionName, ref entity.Comp.Solution, out var solution)) return; - var availableReagent = solution.GetTotalPrototypeQuantity(entity.Comp.Reagent).Float(); - var reagent = entity.Comp.FractionalReagent * FixedPoint2.Epsilon.Float() + availableReagent; - args.Fuel = reagent * entity.Comp.Multiplier; + var totalAvailableReagents = solution.GetTotalPrototypeQuantity(entity.Comp.Reagents.Keys.Select(p => p.Id).ToArray()); + var fuel = 0f; + foreach (var (reagentId, multiplier) in entity.Comp.Reagents) + { + var availableReagent = solution.GetTotalPrototypeQuantity(reagentId); + var percentage = availableReagent / totalAvailableReagents; + var fractionalReagent = (availableReagent * percentage).Float(); + + var reagent = entity.Comp.FractionalReagents.GetValueOrDefault(reagentId) * FixedPoint2.Epsilon.Float() + fractionalReagent; + fuel += reagent * multiplier; + } + + args.Fuel = fuel; } private void SolidUseFuel(EntityUid uid, SolidFuelGeneratorAdapterComponent component, GeneratorUseFuel args) diff --git a/Content.Server/Salvage/FultonSystem.cs b/Content.Server/Salvage/FultonSystem.cs index 323b71daeae..a24bab45846 100644 --- a/Content.Server/Salvage/FultonSystem.cs +++ b/Content.Server/Salvage/FultonSystem.cs @@ -11,7 +11,6 @@ namespace Content.Server.Salvage; public sealed class FultonSystem : SharedFultonSystem { [Dependency] private readonly IRobustRandom _random = default!; - [Dependency] private readonly SharedContainerSystem _container = default!; public override void Initialize() { @@ -55,7 +54,8 @@ private void Fulton(EntityUid uid, FultonedComponent component) { if (!Deleted(component.Beacon) && TryComp(component.Beacon, out var beaconXform) && - !_container.IsEntityOrParentInContainer(component.Beacon.Value, xform: beaconXform)) + !Container.IsEntityOrParentInContainer(component.Beacon.Value, xform: beaconXform) && + CanFulton(uid)) { var xform = Transform(uid); var metadata = MetaData(uid); diff --git a/Content.Server/Shuttles/Systems/ThrusterSystem.cs b/Content.Server/Shuttles/Systems/ThrusterSystem.cs index 09607381c7a..73e1ab0bebe 100644 --- a/Content.Server/Shuttles/Systems/ThrusterSystem.cs +++ b/Content.Server/Shuttles/Systems/ThrusterSystem.cs @@ -45,7 +45,6 @@ public override void Initialize() SubscribeLocalEvent(OnThrusterShutdown); SubscribeLocalEvent(OnPowerChange); SubscribeLocalEvent(OnAnchorChange); - SubscribeLocalEvent(OnThrusterReAnchor); SubscribeLocalEvent(OnRotate); SubscribeLocalEvent(OnIsHotEvent); SubscribeLocalEvent(OnStartCollide); @@ -151,9 +150,9 @@ private void OnActivateThruster(EntityUid uid, ThrusterComponent component, Acti private void OnRotate(EntityUid uid, ThrusterComponent component, ref MoveEvent args) { // TODO: Disable visualizer for old direction + // TODO: Don't make them rotatable and make it require anchoring. if (!component.Enabled || - component.Type != ThrusterType.Linear || !EntityManager.TryGetComponent(uid, out TransformComponent? xform) || !EntityManager.TryGetComponent(xform.GridUid, out ShuttleComponent? shuttleComponent)) { @@ -176,22 +175,44 @@ private void OnRotate(EntityUid uid, ThrusterComponent component, ref MoveEvent // Disable if new tile invalid if (component.IsOn && !canEnable) { - DisableThruster(uid, component, xform, args.OldRotation); + DisableThruster(uid, component, args.OldPosition.EntityId, xform, args.OldRotation); return; } var oldDirection = (int) args.OldRotation.GetCardinalDir() / 2; var direction = (int) args.NewRotation.GetCardinalDir() / 2; + var oldShuttleComponent = shuttleComponent; - shuttleComponent.LinearThrust[oldDirection] -= component.Thrust; - shuttleComponent.BaseLinearThrust[oldDirection] -= component.BaseThrust; - DebugTools.Assert(shuttleComponent.LinearThrusters[oldDirection].Contains(uid)); - shuttleComponent.LinearThrusters[oldDirection].Remove(uid); + if (args.ParentChanged) + { + oldShuttleComponent = Comp(args.OldPosition.EntityId); + + // If no parent change doesn't matter for angular. + if (component.Type == ThrusterType.Angular) + { + oldShuttleComponent.AngularThrust -= component.Thrust; + DebugTools.Assert(oldShuttleComponent.AngularThrusters.Contains(uid)); + oldShuttleComponent.AngularThrusters.Remove(uid); + + shuttleComponent.AngularThrust += component.Thrust; + DebugTools.Assert(!shuttleComponent.AngularThrusters.Contains(uid)); + shuttleComponent.AngularThrusters.Add(uid); + return; + } + } - shuttleComponent.LinearThrust[direction] += component.Thrust; - shuttleComponent.BaseLinearThrust[direction] += component.BaseThrust; - DebugTools.Assert(!shuttleComponent.LinearThrusters[direction].Contains(uid)); - shuttleComponent.LinearThrusters[direction].Add(uid); + if (component.Type == ThrusterType.Linear) + { + oldShuttleComponent.LinearThrust[oldDirection] -= component.Thrust; + oldShuttleComponent.BaseLinearThrust[oldDirection] -= component.BaseThrust; + DebugTools.Assert(oldShuttleComponent.LinearThrusters[oldDirection].Contains(uid)); + oldShuttleComponent.LinearThrusters[oldDirection].Remove(uid); + + shuttleComponent.LinearThrust[direction] += component.Thrust; + shuttleComponent.BaseLinearThrust[direction] += component.BaseThrust; + DebugTools.Assert(!shuttleComponent.LinearThrusters[direction].Contains(uid)); + shuttleComponent.LinearThrusters[direction].Add(uid); + } } private void OnAnchorChange(EntityUid uid, ThrusterComponent component, ref AnchorStateChangedEvent args) @@ -206,14 +227,6 @@ private void OnAnchorChange(EntityUid uid, ThrusterComponent component, ref Anch } } - private void OnThrusterReAnchor(EntityUid uid, ThrusterComponent component, ref ReAnchorEvent args) - { - DisableThruster(uid, component, args.OldGrid); - - if (CanEnable(uid, component)) - EnableThruster(uid, component); - } - private void OnThrusterInit(EntityUid uid, ThrusterComponent component, ComponentInit args) { _ambient.SetAmbience(uid, false); diff --git a/Content.Server/Sound/EmitSoundSystem.cs b/Content.Server/Sound/EmitSoundSystem.cs index e4f9ebcb436..3c7713b305c 100644 --- a/Content.Server/Sound/EmitSoundSystem.cs +++ b/Content.Server/Sound/EmitSoundSystem.cs @@ -29,7 +29,7 @@ public override void Update(float frameTime) { if (soundSpammer.PopUp != null) Popup.PopupEntity(Loc.GetString(soundSpammer.PopUp), uid); - TryEmitSound(uid, soundSpammer); + TryEmitSound(uid, soundSpammer, predict: false); } } } @@ -44,12 +44,12 @@ public override void Initialize() private void HandleEmitSoundOnUIOpen(EntityUid uid, EmitSoundOnUIOpenComponent component, AfterActivatableUIOpenEvent args) { - TryEmitSound(uid, component, args.User); + TryEmitSound(uid, component, args.User, false); } private void HandleEmitSoundOnTrigger(EntityUid uid, EmitSoundOnTriggerComponent component, TriggerEvent args) { - TryEmitSound(uid, component); + TryEmitSound(uid, component, args.User, false); args.Handled = true; } } diff --git a/Content.Server/Spawners/Components/ConditionalSpawnerComponent.cs b/Content.Server/Spawners/Components/ConditionalSpawnerComponent.cs index 1910431eee3..5b98989bb3e 100644 --- a/Content.Server/Spawners/Components/ConditionalSpawnerComponent.cs +++ b/Content.Server/Spawners/Components/ConditionalSpawnerComponent.cs @@ -1,5 +1,4 @@ using Robust.Shared.Prototypes; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; namespace Content.Server.Spawners.Components { @@ -8,15 +7,15 @@ namespace Content.Server.Spawners.Components public partial class ConditionalSpawnerComponent : Component { [ViewVariables(VVAccess.ReadWrite)] - [DataField("prototypes", customTypeSerializer: typeof(PrototypeIdListSerializer))] - public List Prototypes { get; set; } = new(); + [DataField] + public List Prototypes { get; set; } = new(); [ViewVariables(VVAccess.ReadWrite)] - [DataField("gameRules", customTypeSerializer: typeof(PrototypeIdListSerializer))] - public List GameRules = new(); + [DataField] + public List GameRules = new(); [ViewVariables(VVAccess.ReadWrite)] - [DataField("chance")] + [DataField] public float Chance { get; set; } = 1.0f; } } diff --git a/Content.Server/Spawners/Components/RandomSpawnerComponent.cs b/Content.Server/Spawners/Components/RandomSpawnerComponent.cs index ece17de974a..9bf4d6d2531 100644 --- a/Content.Server/Spawners/Components/RandomSpawnerComponent.cs +++ b/Content.Server/Spawners/Components/RandomSpawnerComponent.cs @@ -1,5 +1,4 @@ using Robust.Shared.Prototypes; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; namespace Content.Server.Spawners.Components { @@ -7,15 +6,18 @@ namespace Content.Server.Spawners.Components public sealed partial class RandomSpawnerComponent : ConditionalSpawnerComponent { [ViewVariables(VVAccess.ReadWrite)] - [DataField("rarePrototypes", customTypeSerializer:typeof(PrototypeIdListSerializer))] - public List RarePrototypes { get; set; } = new(); + [DataField] + public List RarePrototypes { get; set; } = new(); [ViewVariables(VVAccess.ReadWrite)] - [DataField("rareChance")] + [DataField] public float RareChance { get; set; } = 0.05f; [ViewVariables(VVAccess.ReadWrite)] - [DataField("offset")] + [DataField] public float Offset { get; set; } = 0.2f; + + [DataField] + public bool DeleteSpawnerAfterSpawn = true; } } diff --git a/Content.Server/Spawners/EntitySystems/ConditionalSpawnerSystem.cs b/Content.Server/Spawners/EntitySystems/ConditionalSpawnerSystem.cs index 5248d512b89..66167465068 100644 --- a/Content.Server/Spawners/EntitySystems/ConditionalSpawnerSystem.cs +++ b/Content.Server/Spawners/EntitySystems/ConditionalSpawnerSystem.cs @@ -30,7 +30,8 @@ private void OnCondSpawnMapInit(EntityUid uid, ConditionalSpawnerComponent compo private void OnRandSpawnMapInit(EntityUid uid, RandomSpawnerComponent component, MapInitEvent args) { Spawn(uid, component); - QueueDel(uid); + if (component.DeleteSpawnerAfterSpawn) + QueueDel(uid); } private void OnRuleStarted(ref GameRuleStartedEvent args) diff --git a/Content.Server/Spreader/KudzuComponent.cs b/Content.Server/Spreader/KudzuComponent.cs index 36b1796b833..ed89a51a267 100644 --- a/Content.Server/Spreader/KudzuComponent.cs +++ b/Content.Server/Spreader/KudzuComponent.cs @@ -17,28 +17,33 @@ public sealed partial class KudzuComponent : Component /// /// Chance to spread whenever an edge spread is possible. /// - [DataField("spreadChance")] + [DataField] public float SpreadChance = 1f; /// /// How much damage is required to reduce growth level /// - [DataField("growthHealth")] + [DataField] public float GrowthHealth = 10.0f; /// /// How much damage is required to prevent growth /// - [DataField("growthBlock")] + [DataField] public float GrowthBlock = 20.0f; /// /// How much the kudzu heals each tick /// - [DataField("damageRecovery")] + [DataField] public DamageSpecifier? DamageRecovery = null; - [DataField("growthTickChance")] + [DataField] public float GrowthTickChance = 1f; + /// + /// number of sprite variations for kudzu + /// + [DataField] + public int SpriteVariants = 3; } diff --git a/Content.Server/Spreader/KudzuSystem.cs b/Content.Server/Spreader/KudzuSystem.cs index b59569b4e15..d15a2c667f4 100644 --- a/Content.Server/Spreader/KudzuSystem.cs +++ b/Content.Server/Spreader/KudzuSystem.cs @@ -92,7 +92,7 @@ private void SetupKudzu(EntityUid uid, KudzuComponent component, ComponentStartu return; } - _appearance.SetData(uid, KudzuVisuals.Variant, _robustRandom.Next(1, 3), appearance); + _appearance.SetData(uid, KudzuVisuals.Variant, _robustRandom.Next(1, component.SpriteVariants), appearance); _appearance.SetData(uid, KudzuVisuals.GrowthLevel, 1, appearance); } diff --git a/Content.Server/StationEvents/Events/CargoGiftsRule.cs b/Content.Server/StationEvents/Events/CargoGiftsRule.cs index f0f9586ad33..4d3ffa005d7 100644 --- a/Content.Server/StationEvents/Events/CargoGiftsRule.cs +++ b/Content.Server/StationEvents/Events/CargoGiftsRule.cs @@ -60,7 +60,7 @@ protected override void ActiveTick(EntityUid uid, CargoGiftsRuleComponent compon if (!_cargoSystem.AddAndApproveOrder( station!.Value, product.Product, - product.PointCost, + product.Cost, qty, Loc.GetString(component.Sender), Loc.GetString(component.Description), diff --git a/Content.Server/Traits/Assorted/UncloneableComponent.cs b/Content.Server/Traits/Assorted/UncloneableComponent.cs deleted file mode 100644 index 650b78cd0f2..00000000000 --- a/Content.Server/Traits/Assorted/UncloneableComponent.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Content.Server.Traits.Assorted; - -/// -/// This is used for the uncloneable trait. -/// -[RegisterComponent] -public sealed partial class UncloneableComponent : Component -{ - -} diff --git a/Content.Server/Traits/Assorted/UnrevivableComponent.cs b/Content.Server/Traits/Assorted/UnrevivableComponent.cs new file mode 100644 index 00000000000..b95c922d548 --- /dev/null +++ b/Content.Server/Traits/Assorted/UnrevivableComponent.cs @@ -0,0 +1,10 @@ +namespace Content.Server.Traits.Assorted; + +/// +/// This is used for the urevivable trait. +/// +[RegisterComponent] +public sealed partial class UnrevivableComponent : Component +{ + +} diff --git a/Content.Server/Weapons/Ranged/Systems/GunSystem.AutoFire.cs b/Content.Server/Weapons/Ranged/Systems/GunSystem.AutoFire.cs new file mode 100644 index 00000000000..39cd2486ed7 --- /dev/null +++ b/Content.Server/Weapons/Ranged/Systems/GunSystem.AutoFire.cs @@ -0,0 +1,29 @@ +using Content.Shared.Weapons.Ranged.Components; + +namespace Content.Server.Weapons.Ranged.Systems; + +public sealed partial class GunSystem +{ + public override void Update(float frameTime) + { + base.Update(frameTime); + + /* + * On server because client doesn't want to predict other's guns. + */ + + // Automatic firing without stopping if the AutoShootGunComponent component is exist and enabled + var query = EntityQueryEnumerator(); + + while (query.MoveNext(out var uid, out var autoShoot, out var gun)) + { + if (!autoShoot.Enabled) + continue; + + if (gun.NextFire > Timing.CurTime) + continue; + + AttemptShoot(uid, gun); + } + } +} diff --git a/Content.Server/Weapons/Ranged/Systems/GunSystem.cs b/Content.Server/Weapons/Ranged/Systems/GunSystem.cs index 96108c2e122..4f236c0fa74 100644 --- a/Content.Server/Weapons/Ranged/Systems/GunSystem.cs +++ b/Content.Server/Weapons/Ranged/Systems/GunSystem.cs @@ -212,7 +212,9 @@ public override void Shoot(EntityUid gunUid, GunComponent gun, List<(EntityUid? // can't use map coords above because funny FireEffects var fromEffect = fromCoordinates; var dir = mapDirection.Normalized(); - var lastUser = user; + + //in the situation when user == null, means that the cannon fires on its own (via signals). And we need the gun to not fire by itself in this case + var lastUser = user ?? gunUid; if (hitscan.Reflective != ReflectType.None) { diff --git a/Content.Server/Xenoarchaeology/Equipment/Systems/ArtifactCrusherSystem.cs b/Content.Server/Xenoarchaeology/Equipment/Systems/ArtifactCrusherSystem.cs index 7d6f2785c67..09fdc260d7c 100644 --- a/Content.Server/Xenoarchaeology/Equipment/Systems/ArtifactCrusherSystem.cs +++ b/Content.Server/Xenoarchaeology/Equipment/Systems/ArtifactCrusherSystem.cs @@ -1,4 +1,5 @@ using Content.Server.Body.Systems; +using Content.Server.Popups; using Content.Server.Power.Components; using Content.Server.Power.EntitySystems; using Content.Server.Stack; @@ -23,6 +24,7 @@ public sealed class ArtifactCrusherSystem : SharedArtifactCrusherSystem [Dependency] private readonly BodySystem _body = default!; [Dependency] private readonly DamageableSystem _damageable = default!; [Dependency] private readonly StackSystem _stack = default!; + [Dependency] private readonly PopupSystem _popup = default!; /// public override void Initialize() @@ -38,7 +40,8 @@ private void OnGetVerbs(Entity ent, ref GetVerbsEvent< if (!args.CanAccess || !args.CanInteract || args.Hands == null || ent.Comp.Crushing) return; - if (!TryComp(ent, out var entityStorageComp) || entityStorageComp.Contents.ContainedEntities.Count == 0) + if (!TryComp(ent, out var entityStorageComp) || + entityStorageComp.Contents.ContainedEntities.Count == 0) return; if (!this.IsPowered(ent, EntityManager)) @@ -61,11 +64,14 @@ private void OnPowerChanged(Entity ent, ref PowerChang public void StartCrushing(Entity ent) { - var (_, crusher, _) = ent; + var (uid, crusher, _) = ent; if (crusher.Crushing) return; + if (crusher.AutoLock) + _popup.PopupEntity(Loc.GetString("artifact-crusher-autolocks-enable"), uid); + crusher.Crushing = true; crusher.NextSecond = _timing.CurTime + TimeSpan.FromSeconds(1); crusher.CrushEndTime = _timing.CurTime + crusher.CrushDuration; diff --git a/Content.Shared/Anomaly/Effects/Components/TileSpawnAnomaly.cs b/Content.Shared/Anomaly/Effects/Components/TileSpawnAnomaly.cs index 69209680bb2..7e3125ba201 100644 --- a/Content.Shared/Anomaly/Effects/Components/TileSpawnAnomaly.cs +++ b/Content.Shared/Anomaly/Effects/Components/TileSpawnAnomaly.cs @@ -1,7 +1,5 @@ using Content.Shared.Maps; using Robust.Shared.Prototypes; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; namespace Content.Shared.Anomaly.Effects.Components; @@ -11,7 +9,7 @@ public sealed partial class TileSpawnAnomalyComponent : Component /// /// The maximum radius of tiles scales with stability /// - [DataField("spawnRange"), ViewVariables(VVAccess.ReadWrite)] + [DataField, ViewVariables(VVAccess.ReadWrite)] public float SpawnRange = 5f; /// @@ -23,6 +21,6 @@ public sealed partial class TileSpawnAnomalyComponent : Component /// /// The tile that is spawned by the anomaly's effect /// - [DataField("floorTileId", customTypeSerializer: typeof(PrototypeIdSerializer)), ViewVariables(VVAccess.ReadWrite)] - public string FloorTileId = "FloorFlesh"; + [DataField, ViewVariables(VVAccess.ReadWrite)] + public ProtoId FloorTileId = "FloorFlesh"; } diff --git a/Content.Shared/Buckle/SharedBuckleSystem.Buckle.cs b/Content.Shared/Buckle/SharedBuckleSystem.Buckle.cs index 63b7fc17a3e..9b2b8ce4c8a 100644 --- a/Content.Shared/Buckle/SharedBuckleSystem.Buckle.cs +++ b/Content.Shared/Buckle/SharedBuckleSystem.Buckle.cs @@ -362,8 +362,7 @@ public bool TryBuckle(EntityUid buckleUid, EntityUid userUid, EntityUid strapUid ReAttach(buckleUid, strapUid, buckleComp, strapComp); SetBuckledTo(buckleUid, strapUid, strapComp, buckleComp); // TODO user is currently set to null because if it isn't the sound fails to play in some situations, fix that - var audioSourceUid = userUid == buckleUid ? userUid : strapUid; - _audio.PlayPredicted(strapComp.BuckleSound, strapUid, audioSourceUid); + _audio.PlayPredicted(strapComp.BuckleSound, strapUid, userUid); var ev = new BuckleChangeEvent(strapUid, buckleUid, true); RaiseLocalEvent(ev.BuckledEntity, ref ev); diff --git a/Content.Shared/CCVar/CCVars.cs b/Content.Shared/CCVar/CCVars.cs index c44ce9fe61f..379bd422abe 100644 --- a/Content.Shared/CCVar/CCVars.cs +++ b/Content.Shared/CCVar/CCVars.cs @@ -1599,6 +1599,9 @@ public static readonly CVarDef public static readonly CVarDef ChatMaxMessageLength = CVarDef.Create("chat.max_message_length", 1000, CVar.SERVER | CVar.REPLICATED); + public static readonly CVarDef ChatMaxAnnouncementLength = + CVarDef.Create("chat.max_announcement_length", 256, CVar.SERVER | CVar.REPLICATED); + public static readonly CVarDef ChatSanitizerEnabled = CVarDef.Create("chat.chat_sanitizer_enabled", true, CVar.SERVERONLY); diff --git a/Content.Shared/Cargo/Components/CargoOrderConsoleComponent.cs b/Content.Shared/Cargo/Components/CargoOrderConsoleComponent.cs new file mode 100644 index 00000000000..a7d1f531754 --- /dev/null +++ b/Content.Shared/Cargo/Components/CargoOrderConsoleComponent.cs @@ -0,0 +1,25 @@ +using Content.Shared.Cargo.Prototypes; +using Robust.Shared.Audio; +using Robust.Shared.GameStates; + +namespace Content.Shared.Cargo.Components; + +/// +/// Handles sending order requests to cargo. Doesn't handle orders themselves via shuttle or telepads. +/// +[RegisterComponent, NetworkedComponent] +public sealed partial class CargoOrderConsoleComponent : Component +{ + [DataField("soundError")] public SoundSpecifier ErrorSound = + new SoundPathSpecifier("/Audio/Effects/Cargo/buzz_sigh.ogg"); + + [DataField("soundConfirm")] + public SoundSpecifier ConfirmSound = new SoundPathSpecifier("/Audio/Effects/Cargo/ping.ogg"); + + /// + /// All of the s that are supported. + /// + [DataField, ViewVariables(VVAccess.ReadWrite)] + public List AllowedGroups = new() { "market" }; +} + diff --git a/Content.Shared/Cargo/Prototypes/CargoProductPrototype.cs b/Content.Shared/Cargo/Prototypes/CargoProductPrototype.cs index 54876183094..1d0ca8abdb4 100644 --- a/Content.Shared/Cargo/Prototypes/CargoProductPrototype.cs +++ b/Content.Shared/Cargo/Prototypes/CargoProductPrototype.cs @@ -1,12 +1,22 @@ using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Array; using Robust.Shared.Utility; namespace Content.Shared.Cargo.Prototypes { - [Prototype("cargoProduct")] - public sealed partial class CargoProductPrototype : IPrototype + [Prototype] + public sealed partial class CargoProductPrototype : IPrototype, IInheritingPrototype { + /// + [ParentDataField(typeof(AbstractPrototypeIdArraySerializer))] + public string[]? Parents { get; } + + /// + [NeverPushInheritance] + [AbstractDataField] + public bool Abstract { get; } + [DataField("name")] private string _name = string.Empty; [DataField("description")] private string _description = string.Empty; @@ -58,31 +68,31 @@ public string Description /// /// Texture path used in the CargoConsole GUI. /// - [DataField("icon")] + [DataField] public SpriteSpecifier Icon { get; private set; } = SpriteSpecifier.Invalid; /// - /// The prototype name of the product. + /// The entity prototype ID of the product. /// - [DataField("product", customTypeSerializer: typeof(PrototypeIdSerializer))] - public string Product { get; private set; } = string.Empty; + [DataField] + public EntProtoId Product { get; private set; } = string.Empty; /// /// The point cost of the product. /// - [DataField("cost")] - public int PointCost { get; private set; } + [DataField] + public int Cost { get; private set; } /// /// The prototype category of the product. (e.g. Engineering, Medical) /// - [DataField("category")] + [DataField] public string Category { get; private set; } = string.Empty; /// /// The prototype group of the product. (e.g. Contraband) /// - [DataField("group")] - public string Group { get; private set; } = string.Empty; + [DataField] + public string Group { get; private set; } = "market"; } } diff --git a/Content.Shared/Chat/SharedChatSystem.cs b/Content.Shared/Chat/SharedChatSystem.cs index 16f6e587007..076f737ea63 100644 --- a/Content.Shared/Chat/SharedChatSystem.cs +++ b/Content.Shared/Chat/SharedChatSystem.cs @@ -185,4 +185,34 @@ public string SanitizeMessageCapitalizeTheWordI(string message, string theWordI return message; } + + public static string SanitizeAnnouncement(string message, int maxLength = 0, int maxNewlines = 2) + { + var trimmed = message.Trim(); + if (maxLength > 0 && trimmed.Length > maxLength) + { + trimmed = $"{message[..maxLength]}..."; + } + + // No more than max newlines, other replaced to spaces + if (maxNewlines > 0) + { + var chars = trimmed.ToCharArray(); + var newlines = 0; + for (var i = 0; i < chars.Length; i++) + { + if (chars[i] != '\n') + continue; + + if (newlines >= maxNewlines) + chars[i] = ' '; + + newlines++; + } + + return new string(chars); + } + + return trimmed; + } } diff --git a/Content.Shared/Doors/Components/DoorComponent.cs b/Content.Shared/Doors/Components/DoorComponent.cs index d4d121a87a6..135f8b0856d 100644 --- a/Content.Shared/Doors/Components/DoorComponent.cs +++ b/Content.Shared/Doors/Components/DoorComponent.cs @@ -100,7 +100,7 @@ public sealed partial class DoorComponent : Component /// Sound to play when a disarmed (hands comp with 0 hands) entity opens the door. What? /// [DataField("tryOpenDoorSound")] - public SoundSpecifier TryOpenDoorSound = new SoundPathSpecifier("/Audio/Effects/bang.ogg"); + public SoundSpecifier TryOpenDoorSound = new SoundCollectionSpecifier("MetalSlam"); /// /// Sound to play when door has been emagged or possibly electrically tampered diff --git a/Content.Shared/Foldable/FoldableSystem.cs b/Content.Shared/Foldable/FoldableSystem.cs index 7bf00a5d243..6f2e9f3ee5e 100644 --- a/Content.Shared/Foldable/FoldableSystem.cs +++ b/Content.Shared/Foldable/FoldableSystem.cs @@ -1,4 +1,5 @@ using Content.Shared.Buckle; +using Content.Shared.Buckle.Components; using Content.Shared.Storage.Components; using Content.Shared.Verbs; using Robust.Shared.Containers; @@ -26,6 +27,8 @@ public override void Initialize() SubscribeLocalEvent(OnInsertEvent); SubscribeLocalEvent(OnStoreThisAttempt); SubscribeLocalEvent(OnFoldableOpenAttempt); + + SubscribeLocalEvent(OnBuckleAttempt); } private void OnGetState(EntityUid uid, FoldableComponent component, ref ComponentGetState args) @@ -61,6 +64,12 @@ public void OnStoreThisAttempt(EntityUid uid, FoldableComponent comp, ref StoreM args.Cancelled = true; } + public void OnBuckleAttempt(EntityUid uid, FoldableComponent comp, ref BuckleAttemptEvent args) + { + if (args.Buckling && comp.IsFolded) + args.Cancelled = true; + } + /// /// Returns false if the entity isn't foldable. /// diff --git a/Content.Shared/GameTicking/SharedGameTicker.cs b/Content.Shared/GameTicking/SharedGameTicker.cs index dac33fe5a76..7778588f97c 100644 --- a/Content.Shared/GameTicking/SharedGameTicker.cs +++ b/Content.Shared/GameTicking/SharedGameTicker.cs @@ -166,6 +166,10 @@ public struct RoundEndPlayerInfo public int PlayerCount { get; } public RoundEndPlayerInfo[] AllPlayersEndInfo { get; } public string? LobbySong; + + /// + /// Sound gets networked due to how entity lifecycle works between client / server and to avoid clipping. + /// public string? RestartSound; public RoundEndMessageEvent( @@ -175,7 +179,8 @@ public RoundEndMessageEvent( int roundId, int playerCount, RoundEndPlayerInfo[] allPlayersEndInfo, - string? lobbySong) + string? lobbySong, + string? restartSound) { GamemodeTitle = gamemodeTitle; RoundEndText = roundEndText; @@ -184,6 +189,7 @@ public RoundEndMessageEvent( PlayerCount = playerCount; AllPlayersEndInfo = allPlayersEndInfo; LobbySong = lobbySong; + RestartSound = restartSound; } } diff --git a/Content.Shared/Lathe/Prototypes/LatheCategoryPrototype.cs b/Content.Shared/Lathe/Prototypes/LatheCategoryPrototype.cs new file mode 100644 index 00000000000..9af8e77352c --- /dev/null +++ b/Content.Shared/Lathe/Prototypes/LatheCategoryPrototype.cs @@ -0,0 +1,21 @@ +using Content.Shared.Research.Prototypes; +using Robust.Shared.Prototypes; + +namespace Content.Shared.Lathe.Prototypes; + +/// +/// This is a prototype for a category for +/// +[Prototype] +public sealed partial class LatheCategoryPrototype : IPrototype +{ + /// + [IdDataField] + public string ID { get; } = default!; + + /// + /// A localized string used in the UI + /// + [DataField] + public LocId Name; +} diff --git a/Content.Shared/Pinpointer/SharedNavMapSystem.cs b/Content.Shared/Pinpointer/SharedNavMapSystem.cs index 17f86ac7e68..7a62e6aabed 100644 --- a/Content.Shared/Pinpointer/SharedNavMapSystem.cs +++ b/Content.Shared/Pinpointer/SharedNavMapSystem.cs @@ -8,6 +8,13 @@ public abstract class SharedNavMapSystem : EntitySystem { public const byte ChunkSize = 4; + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnNavMapBeaconMapInit); + } + /// /// Converts the chunk's tile into a bitflag for the slot. /// @@ -31,6 +38,13 @@ public static Vector2i GetTile(int flag) return new Vector2i(x, y); } + private void OnNavMapBeaconMapInit(EntityUid uid, NavMapBeaconComponent component, MapInitEvent args) + { + component.Text ??= string.Empty; + component.Text = Loc.GetString(component.Text); + Dirty(uid, component); + } + [Serializable, NetSerializable] protected sealed class NavMapComponentState : ComponentState { diff --git a/Content.Shared/Pulling/Systems/SharedPullingSystem.Actions.cs b/Content.Shared/Pulling/Systems/SharedPullingSystem.Actions.cs index b3f9c0d1c04..1e2bb90c61e 100644 --- a/Content.Shared/Pulling/Systems/SharedPullingSystem.Actions.cs +++ b/Content.Shared/Pulling/Systems/SharedPullingSystem.Actions.cs @@ -59,7 +59,7 @@ public bool CanPull(EntityUid puller, EntityUid pulled) return false; } - if (!_containerSystem.IsInSameOrNoContainer(puller, pulled)) + if(_containerSystem.IsEntityInContainer(puller) || _containerSystem.IsEntityInContainer(pulled)) { return false; } diff --git a/Content.Shared/Research/Prototypes/LatheRecipePrototype.cs b/Content.Shared/Research/Prototypes/LatheRecipePrototype.cs index 709a592cc1d..8b0c866cbe3 100644 --- a/Content.Shared/Research/Prototypes/LatheRecipePrototype.cs +++ b/Content.Shared/Research/Prototypes/LatheRecipePrototype.cs @@ -1,3 +1,4 @@ +using Content.Shared.Lathe.Prototypes; using Content.Shared.Materials; using Robust.Shared.Prototypes; using Robust.Shared.Serialization; @@ -38,6 +39,7 @@ public sealed partial class LatheRecipePrototype : IPrototype [DataField("materials", customTypeSerializer: typeof(PrototypeIdDictionarySerializer))] private Dictionary _requiredMaterials = new(); + //todo make these function calls because we're eating tons of resolves here. /// /// Name displayed in the lathe GUI. /// @@ -46,7 +48,8 @@ public string Name { get { - if (_name.Trim().Length != 0) return _name; + if (_name.Trim().Length != 0) + return _name; var protoMan = IoCManager.Resolve(); protoMan.TryIndex(Result, out EntityPrototype? prototype); if (prototype?.Name != null) @@ -63,7 +66,8 @@ public string Description { get { - if (_description.Trim().Length != 0) return _description; + if (_description.Trim().Length != 0) + return _description; var protoMan = IoCManager.Resolve(); protoMan.TryIndex(Result, out EntityPrototype? prototype); if (prototype?.Description != null) @@ -93,5 +97,11 @@ public Dictionary RequiredMaterials [DataField("applyMaterialDiscount")] public bool ApplyMaterialDiscount = true; + + /// + /// A category used for visually sorting lathe recipes in the UI. + /// + [DataField] + public ProtoId? Category; } } diff --git a/Content.Shared/Roles/DepartmentPrototype.cs b/Content.Shared/Roles/DepartmentPrototype.cs index bdb28fb259e..445aadf3983 100644 --- a/Content.Shared/Roles/DepartmentPrototype.cs +++ b/Content.Shared/Roles/DepartmentPrototype.cs @@ -34,4 +34,10 @@ public sealed partial class DepartmentPrototype : IPrototype /// [DataField, ViewVariables(VVAccess.ReadWrite)] public bool Primary = true; + + /// + /// Departments with a higher weight sorted before other departments in UI. + /// + [DataField("weight")] + public int Weight { get; private set; } = 0; } diff --git a/Content.Shared/Salvage/Fulton/FultonComponent.cs b/Content.Shared/Salvage/Fulton/FultonComponent.cs index b3a0d461930..236ee18c3a3 100644 --- a/Content.Shared/Salvage/Fulton/FultonComponent.cs +++ b/Content.Shared/Salvage/Fulton/FultonComponent.cs @@ -39,9 +39,8 @@ public sealed partial class FultonComponent : Component { Components = new[] { - "EntityStorage", "Item", - "ReagentTank", + "Anchorable" } }; diff --git a/Content.Shared/Salvage/Fulton/SharedFultonSystem.cs b/Content.Shared/Salvage/Fulton/SharedFultonSystem.cs index d678b14b92f..adaef16608e 100644 --- a/Content.Shared/Salvage/Fulton/SharedFultonSystem.cs +++ b/Content.Shared/Salvage/Fulton/SharedFultonSystem.cs @@ -26,6 +26,7 @@ public abstract partial class SharedFultonSystem : EntitySystem [Dependency] protected readonly SharedAudioSystem Audio = default!; [Dependency] private readonly SharedDoAfterSystem _doAfter = default!; [Dependency] private readonly FoldableSystem _foldable = default!; + [Dependency] protected readonly SharedContainerSystem Container = default!; [Dependency] private readonly SharedPopupSystem _popup = default!; [Dependency] private readonly SharedStackSystem _stack = default!; [Dependency] protected readonly SharedTransformSystem TransformSystem = default!; @@ -138,7 +139,7 @@ private void OnFultonInteract(EntityUid uid, FultonComponent component, AfterInt return; } - if (!CanFulton(args.Target.Value, uid, component)) + if (!CanApplyFulton(args.Target.Value, component)) { _popup.PopupClient(Loc.GetString("fulton-invalid"), uid, uid); return; @@ -177,15 +178,27 @@ protected virtual void UpdateAppearance(EntityUid uid, FultonedComponent fultone return; } - private bool CanFulton(EntityUid targetUid, EntityUid uid, FultonComponent component) + protected bool CanApplyFulton(EntityUid targetUid, FultonComponent component) { - if (Transform(targetUid).Anchored) + if (!CanFulton(targetUid)) return false; if (component.Whitelist?.IsValid(targetUid, EntityManager) != true) - { return false; - } + + return true; + } + + protected bool CanFulton(EntityUid uid) + { + var xform = Transform(uid); + + if (xform.Anchored) + return false; + + // Shouldn't need recursive container checks I think. + if (Container.IsEntityInContainer(uid)) + return false; return true; } diff --git a/Content.Shared/Storage/EntitySystems/SharedEntityStorageSystem.cs b/Content.Shared/Storage/EntitySystems/SharedEntityStorageSystem.cs index 911c6e5380b..19e41848a1e 100644 --- a/Content.Shared/Storage/EntitySystems/SharedEntityStorageSystem.cs +++ b/Content.Shared/Storage/EntitySystems/SharedEntityStorageSystem.cs @@ -336,6 +336,17 @@ public bool CanOpen(EntityUid user, EntityUid target, bool silent = false, Share return false; } + if (_container.IsEntityInContainer(target)) + { + if (_container.TryGetOuterContainer(target,Transform(target) ,out var container) && + !HasComp(container.Owner)) + { + Popup.PopupClient(Loc.GetString("entity-storage-component-already-contains-user-message"), user, user); + + return false; + } + } + //Checks to see if the opening position, if offset, is inside of a wall. if (component.EnteringOffset != new Vector2(0, 0) && !HasComp(target)) //if the entering position is offset { diff --git a/Content.Shared/Timing/UseDelaySystem.cs b/Content.Shared/Timing/UseDelaySystem.cs index eb1819aeb7c..34f12fa55e2 100644 --- a/Content.Shared/Timing/UseDelaySystem.cs +++ b/Content.Shared/Timing/UseDelaySystem.cs @@ -61,4 +61,12 @@ public bool TryResetDelay(Entity ent, bool checkDelayed = fal Dirty(ent); return true; } + + public bool TryResetDelay(EntityUid uid, bool checkDelayed = false, UseDelayComponent? component = null) + { + if (!Resolve(uid, ref component, false)) + return false; + + return TryResetDelay((uid, component), checkDelayed); + } } diff --git a/Content.Shared/Weapons/Melee/MeleeWeaponComponent.cs b/Content.Shared/Weapons/Melee/MeleeWeaponComponent.cs index cec7402faca..27c3a5f0dfa 100644 --- a/Content.Shared/Weapons/Melee/MeleeWeaponComponent.cs +++ b/Content.Shared/Weapons/Melee/MeleeWeaponComponent.cs @@ -138,7 +138,7 @@ public sealed partial class MeleeWeaponComponent : Component /// [ViewVariables(VVAccess.ReadWrite)] [DataField("soundNoDamage"), AutoNetworkedField] - public SoundSpecifier NoDamageSound { get; set; } = new SoundPathSpecifier("/Audio/Weapons/tap.ogg"); + public SoundSpecifier NoDamageSound { get; set; } = new SoundCollectionSpecifier("WeakHit"); } /// diff --git a/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs b/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs index 6fa461860f6..11228bba9ec 100644 --- a/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs +++ b/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs @@ -740,22 +740,27 @@ public void PlayHitSound(EntityUid target, EntityUid? user, string? type, SoundS { var playedSound = false; + if (Deleted(target)) + return; + + // hitting can obv destroy an entity so we play at coords and not following them + var coords = Transform(target).Coordinates; // Play sound based off of highest damage type. if (TryComp(target, out var damageSoundComp)) { if (type == null && damageSoundComp.NoDamageSound != null) { - Audio.PlayPredicted(damageSoundComp.NoDamageSound, target, user, AudioParams.Default.WithVariation(DamagePitchVariation)); + Audio.PlayPredicted(damageSoundComp.NoDamageSound, coords, user, AudioParams.Default.WithVariation(DamagePitchVariation)); playedSound = true; } else if (type != null && damageSoundComp.SoundTypes?.TryGetValue(type, out var damageSoundType) == true) { - Audio.PlayPredicted(damageSoundType, target, user, AudioParams.Default.WithVariation(DamagePitchVariation)); + Audio.PlayPredicted(damageSoundType, coords, user, AudioParams.Default.WithVariation(DamagePitchVariation)); playedSound = true; } else if (type != null && damageSoundComp.SoundGroups?.TryGetValue(type, out var damageSoundGroup) == true) { - Audio.PlayPredicted(damageSoundGroup, target, user, AudioParams.Default.WithVariation(DamagePitchVariation)); + Audio.PlayPredicted(damageSoundGroup, coords, user, AudioParams.Default.WithVariation(DamagePitchVariation)); playedSound = true; } } @@ -765,12 +770,12 @@ public void PlayHitSound(EntityUid target, EntityUid? user, string? type, SoundS { if (hitSoundOverride != null) { - Audio.PlayPredicted(hitSoundOverride, target, user, AudioParams.Default.WithVariation(DamagePitchVariation)); + Audio.PlayPredicted(hitSoundOverride, coords, user, AudioParams.Default.WithVariation(DamagePitchVariation)); playedSound = true; } else if (hitSound != null) { - Audio.PlayPredicted(hitSound, target, user, AudioParams.Default.WithVariation(DamagePitchVariation)); + Audio.PlayPredicted(hitSound, coords, user, AudioParams.Default.WithVariation(DamagePitchVariation)); playedSound = true; } } @@ -789,10 +794,10 @@ public void PlayHitSound(EntityUid target, EntityUid? user, string? type, SoundS break; // No damage, fallback to tappies case null: - Audio.PlayPredicted(new SoundPathSpecifier("/Audio/Weapons/tap.ogg"), target, user, AudioParams.Default.WithVariation(DamagePitchVariation)); + Audio.PlayPredicted(new SoundCollectionSpecifier("WeakHit"), target, user, AudioParams.Default.WithVariation(DamagePitchVariation)); break; case "Brute": - Audio.PlayPredicted(new SoundPathSpecifier("/Audio/Weapons/smash.ogg"), target, user, AudioParams.Default.WithVariation(DamagePitchVariation)); + Audio.PlayPredicted(new SoundCollectionSpecifier("MetalThud"), target, user, AudioParams.Default.WithVariation(DamagePitchVariation)); break; } } diff --git a/Content.Shared/Weapons/Ranged/Components/AutoShootGunComponent.cs b/Content.Shared/Weapons/Ranged/Components/AutoShootGunComponent.cs new file mode 100644 index 00000000000..16b3110b85a --- /dev/null +++ b/Content.Shared/Weapons/Ranged/Components/AutoShootGunComponent.cs @@ -0,0 +1,14 @@ +using Content.Shared.Weapons.Ranged.Systems; +using Robust.Shared.GameStates; + +namespace Content.Shared.Weapons.Ranged.Components; + +/// +/// Allows GunSystem to automatically fire while this component is enabled +/// +[RegisterComponent, NetworkedComponent, Access(typeof(SharedGunSystem)), AutoGenerateComponentState] +public sealed partial class AutoShootGunComponent : Component +{ + [DataField, ViewVariables(VVAccess.ReadWrite), AutoNetworkedField] + public bool Enabled; +} diff --git a/Content.Shared/Weapons/Ranged/Components/GunComponent.cs b/Content.Shared/Weapons/Ranged/Components/GunComponent.cs index 350dd85d697..95853bbd2ea 100644 --- a/Content.Shared/Weapons/Ranged/Components/GunComponent.cs +++ b/Content.Shared/Weapons/Ranged/Components/GunComponent.cs @@ -5,7 +5,6 @@ using Robust.Shared.Map; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; namespace Content.Shared.Weapons.Ranged.Components; diff --git a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.AutoFire.cs b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.AutoFire.cs new file mode 100644 index 00000000000..4c19547a399 --- /dev/null +++ b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.AutoFire.cs @@ -0,0 +1,11 @@ +using Content.Shared.Weapons.Ranged.Components; + +namespace Content.Shared.Weapons.Ranged.Systems; + +public partial class SharedGunSystem +{ + public void SetEnabled(EntityUid uid, AutoShootGunComponent component, bool status) + { + component.Enabled = status; + } +} diff --git a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Revolver.cs b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Revolver.cs index d3d3b7fcdea..b8b00799c1b 100644 --- a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Revolver.cs +++ b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Revolver.cs @@ -8,6 +8,7 @@ using Robust.Shared.Utility; using System; using System.Linq; +using Content.Shared.Interaction.Events; using JetBrains.Annotations; namespace Content.Shared.Weapons.Ranged.Systems; @@ -25,6 +26,17 @@ protected virtual void InitializeRevolver() SubscribeLocalEvent>(OnRevolverVerbs); SubscribeLocalEvent(OnRevolverInteractUsing); SubscribeLocalEvent(OnRevolverGetAmmoCount); + SubscribeLocalEvent(OnRevolverUse); + } + + private void OnRevolverUse(EntityUid uid, RevolverAmmoProviderComponent component, UseInHandEvent args) + { + if (!_useDelay.TryResetDelay(uid)) + return; + + Cycle(component); + UpdateAmmoCount(uid, prediction: false); + Dirty(uid, component); } private void OnRevolverGetAmmoCount(EntityUid uid, RevolverAmmoProviderComponent component, ref GetAmmoCountEvent args) @@ -69,10 +81,9 @@ private void OnRevolverHandleState(EntityUid uid, RevolverAmmoProviderComponent } // Handle spins - if (Timing.IsFirstTimePredicted) + if (oldIndex != state.CurrentIndex) { - if (oldIndex != state.CurrentIndex) - UpdateAmmoCount(uid); + UpdateAmmoCount(uid, prediction: false); } } @@ -133,6 +144,7 @@ public bool TryRevolverInsert(EntityUid revolverUid, RevolverAmmoProviderCompone component.AmmoSlots[index] = ent.Value; Containers.Insert(ent.Value, component.AmmoContainer); + SetChamber(index, component, uid); if (ev.Ammo.Count == 0) break; @@ -140,8 +152,8 @@ public bool TryRevolverInsert(EntityUid revolverUid, RevolverAmmoProviderCompone DebugTools.Assert(ammo.Count == 0); UpdateRevolverAppearance(revolverUid, component); - UpdateAmmoCount(uid); - Dirty(uid, component); + UpdateAmmoCount(revolverUid); + Dirty(revolverUid, component); Audio.PlayPredicted(component.SoundInsert, revolverUid, user); Popup(Loc.GetString("gun-revolver-insert"), revolverUid, user); @@ -161,11 +173,12 @@ public bool TryRevolverInsert(EntityUid revolverUid, RevolverAmmoProviderCompone component.AmmoSlots[index] = uid; Containers.Insert(uid, component.AmmoContainer); + SetChamber(index, component, uid); Audio.PlayPredicted(component.SoundInsert, revolverUid, user); Popup(Loc.GetString("gun-revolver-insert"), revolverUid, user); UpdateRevolverAppearance(revolverUid, component); - UpdateAmmoCount(uid); - Dirty(uid, component); + UpdateAmmoCount(revolverUid); + Dirty(revolverUid, component); return true; } @@ -173,6 +186,17 @@ public bool TryRevolverInsert(EntityUid revolverUid, RevolverAmmoProviderCompone return false; } + private void SetChamber(int index, RevolverAmmoProviderComponent component, EntityUid uid) + { + if (TryComp(uid, out var cartridge) && cartridge.Spent) + { + component.Chambers[index] = false; + return; + } + + component.Chambers[index] = true; + } + private void OnRevolverVerbs(EntityUid uid, RevolverAmmoProviderComponent component, GetVerbsEvent args) { if (!args.CanAccess || !args.CanInteract || args.Hands == null) @@ -252,8 +276,7 @@ private int GetRevolverUnspentCount(RevolverAmmoProviderComponent component) public void EmptyRevolver(EntityUid revolverUid, RevolverAmmoProviderComponent component, EntityUid? user = null) { - var xform = Transform(revolverUid); - var mapCoordinates = xform.MapPosition; + var mapCoordinates = TransformSystem.GetMapCoordinates(revolverUid); var anyEmpty = false; for (var i = 0; i < component.Capacity; i++) @@ -284,6 +307,7 @@ public void EmptyRevolver(EntityUid revolverUid, RevolverAmmoProviderComponent c { component.AmmoSlots[i] = null; Containers.Remove(slot.Value, component.AmmoContainer); + component.Chambers[i] = null; if (!_netManager.IsClient) EjectCartridge(slot.Value); @@ -295,7 +319,7 @@ public void EmptyRevolver(EntityUid revolverUid, RevolverAmmoProviderComponent c if (anyEmpty) { Audio.PlayPredicted(component.SoundEject, revolverUid, user); - UpdateAmmoCount(revolverUid); + UpdateAmmoCount(revolverUid, prediction: false); UpdateRevolverAppearance(revolverUid, component); Dirty(revolverUid, component); } @@ -328,51 +352,63 @@ private void OnRevolverTakeAmmo(EntityUid uid, RevolverAmmoProviderComponent com { var index = (currentIndex + i) % component.Capacity; var chamber = component.Chambers[index]; + EntityUid? ent = null; - // Get unspawned ent first if possible. - if (chamber != null) + // Get contained entity if it exists. + if (component.AmmoSlots[index] != null) + { + ent = component.AmmoSlots[index]!; + component.Chambers[index] = false; + } + // Try to spawn a round if it's available. + else if (chamber != null) { if (chamber == true) { - // TODO: This is kinda sussy boy - var ent = Spawn(component.FillPrototype, args.Coordinates); + // Pretend it's always been there. + ent = Spawn(component.FillPrototype, args.Coordinates); - if (TryComp(ent, out var cartridge)) + if (!_netManager.IsClient) { - component.Chambers[index] = false; - SetCartridgeSpent(ent, cartridge, true); - var spawned = Spawn(cartridge.Prototype, args.Coordinates); - args.Ammo.Add((spawned, EnsureShootable(spawned))); - Del(ent); - continue; + component.AmmoSlots[index] = ent; + Containers.Insert(ent.Value, component.AmmoContainer); } - component.Chambers[i] = null; - args.Ammo.Add((ent, EnsureShootable(ent))); + component.Chambers[index] = false; } } - else if (component.AmmoSlots[index] != null) - { - var ent = component.AmmoSlots[index]!; - if (TryComp(ent, out var cartridge)) - { - if (cartridge.Spent) - continue; + // Chamber empty or spent + if (ent == null) + continue; - SetCartridgeSpent(ent.Value, cartridge, true); - var spawned = Spawn(cartridge.Prototype, args.Coordinates); - args.Ammo.Add((spawned, EnsureShootable(spawned))); + if (TryComp(ent, out var cartridge)) + { + if (cartridge.Spent) continue; - } - Containers.Remove(ent.Value, component.AmmoContainer); - component.AmmoSlots[index] = null; - args.Ammo.Add((ent.Value, EnsureShootable(ent.Value))); - TransformSystem.SetCoordinates(ent.Value, args.Coordinates); + // Mark cartridge as spent and if it's caseless delete from the chamber slot. + SetCartridgeSpent(ent.Value, cartridge, true); + var spawned = Spawn(cartridge.Prototype, args.Coordinates); + args.Ammo.Add((spawned, EnsureComp(spawned))); + + if (cartridge.DeleteOnSpawn) + component.Chambers[index] = null; + } + else + { + component.Chambers[index] = null; + args.Ammo.Add((ent.Value, EnsureComp(ent.Value))); + } + + // Delete the cartridge entity on client + if (_netManager.IsClient) + { + QueueDel(ent); } } + UpdateAmmoCount(uid, prediction: false); UpdateRevolverAppearance(uid, component); Dirty(uid, component); } diff --git a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs index 4e5d8b9762a..5d061a3f8a6 100644 --- a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs +++ b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs @@ -15,6 +15,7 @@ using Content.Shared.Projectiles; using Content.Shared.Tag; using Content.Shared.Throwing; +using Content.Shared.Timing; using Content.Shared.Verbs; using Content.Shared.Weapons.Melee; using Content.Shared.Weapons.Melee.Events; @@ -37,7 +38,7 @@ namespace Content.Shared.Weapons.Ranged.Systems; public abstract partial class SharedGunSystem : EntitySystem { - [Dependency] private readonly ActionBlockerSystem _actionBlockerSystem = default!; + [Dependency] private readonly ActionBlockerSystem _actionBlockerSystem = default!; [Dependency] protected readonly IGameTiming Timing = default!; [Dependency] protected readonly IMapManager MapManager = default!; [Dependency] private readonly INetManager _netManager = default!; @@ -61,6 +62,7 @@ public abstract partial class SharedGunSystem : EntitySystem [Dependency] protected readonly SharedTransformSystem TransformSystem = default!; [Dependency] protected readonly TagSystem TagSystem = default!; [Dependency] protected readonly ThrowingSystem ThrowingSystem = default!; + [Dependency] private readonly UseDelaySystem _useDelay = default!; private const float InteractNextFire = 0.3f; private const double SafetyNextFire = 0.5; @@ -214,6 +216,17 @@ public void AttemptShoot(EntityUid user, EntityUid gunUid, GunComponent gun, Ent gun.ShotCounter = 0; } + /// + /// Shoots by assuming the gun is the user at default coordinates. + /// + public void AttemptShoot(EntityUid gunUid, GunComponent gun) + { + var coordinates = new EntityCoordinates(gunUid, new Vector2(0, -1)); + gun.ShootCoordinates = coordinates; + AttemptShoot(gunUid, gunUid, gun); + gun.ShotCounter = 0; + } + private void AttemptShoot(EntityUid user, EntityUid gunUid, GunComponent gun) { if (gun.FireRate <= 0f || @@ -385,12 +398,9 @@ public void ShootProjectile(EntityUid uid, Vector2 direction, Vector2 gunVelocit var finalLinear = physics.LinearVelocity + targetMapVelocity - currentMapVelocity; Physics.SetLinearVelocity(uid, finalLinear, body: physics); - if (user != null) - { - var projectile = EnsureComp(uid); - Projectiles.SetShooter(uid, projectile, user.Value); - projectile.Weapon = gunUid; - } + var projectile = EnsureComp(uid); + Projectiles.SetShooter(uid, projectile, user ?? gunUid); + projectile.Weapon = gunUid; TransformSystem.SetWorldRotation(uid, direction.ToWorldAngle()); } @@ -400,7 +410,7 @@ public void ShootProjectile(EntityUid uid, Vector2 direction, Vector2 gunVelocit /// /// Call this whenever the ammo count for a gun changes. /// - protected virtual void UpdateAmmoCount(EntityUid uid) {} + protected virtual void UpdateAmmoCount(EntityUid uid, bool prediction = true) {} protected void SetCartridgeSpent(EntityUid uid, CartridgeAmmoComponent cartridge, bool spent) { diff --git a/Content.Shared/Xenoarchaeology/Equipment/ArtifactCrusherComponent.cs b/Content.Shared/Xenoarchaeology/Equipment/ArtifactCrusherComponent.cs index 6bfbe5d05e2..e21cedb6f9a 100644 --- a/Content.Shared/Xenoarchaeology/Equipment/ArtifactCrusherComponent.cs +++ b/Content.Shared/Xenoarchaeology/Equipment/ArtifactCrusherComponent.cs @@ -88,7 +88,7 @@ public sealed partial class ArtifactCrusherComponent : Component /// Sound played at the end of a successful crush. /// [DataField, AutoNetworkedField] - public SoundSpecifier? CrushingCompleteSound = new SoundPathSpecifier("/Audio/Effects/metal_crunch.ogg"); + public SoundSpecifier? CrushingCompleteSound = new SoundCollectionSpecifier("MetalCrunch"); /// /// Sound played throughout the entire crushing. Cut off if ended early. @@ -101,6 +101,12 @@ public sealed partial class ArtifactCrusherComponent : Component /// [DataField] public (EntityUid, AudioComponent)? CrushingSoundEntity; + + /// + /// When enabled, stops the artifact crusher from being opened when it is being crushed. + /// + [DataField, AutoNetworkedField, ViewVariables(VVAccess.ReadWrite)] + public bool AutoLock = false; } [Serializable, NetSerializable] diff --git a/Content.Shared/Xenoarchaeology/Equipment/SharedArtifactCrusherSystem.cs b/Content.Shared/Xenoarchaeology/Equipment/SharedArtifactCrusherSystem.cs index 44e1b91a906..da253ba80af 100644 --- a/Content.Shared/Xenoarchaeology/Equipment/SharedArtifactCrusherSystem.cs +++ b/Content.Shared/Xenoarchaeology/Equipment/SharedArtifactCrusherSystem.cs @@ -1,6 +1,8 @@ +using Content.Shared.Examine; using Content.Shared.Storage.Components; using Robust.Shared.Audio.Systems; using Robust.Shared.Containers; +using Content.Shared.Emag.Systems; namespace Content.Shared.Xenoarchaeology.Equipment; @@ -20,6 +22,9 @@ public override void Initialize() SubscribeLocalEvent(OnInit); SubscribeLocalEvent(OnStorageAfterOpen); + SubscribeLocalEvent(OnStorageOpenAttempt); + SubscribeLocalEvent(OnExamine); + SubscribeLocalEvent(OnEmagged); } private void OnInit(Entity ent, ref ComponentInit args) @@ -33,6 +38,23 @@ private void OnStorageAfterOpen(Entity ent, ref Storag ContainerSystem.EmptyContainer(ent.Comp.OutputContainer); } + private void OnEmagged(Entity ent, ref GotEmaggedEvent args) + { + ent.Comp.AutoLock = true; + args.Handled = true; + } + + private void OnStorageOpenAttempt(Entity ent, ref StorageOpenAttemptEvent args) + { + if (ent.Comp.AutoLock && ent.Comp.Crushing) + args.Cancelled = true; + } + + private void OnExamine(Entity ent, ref ExaminedEvent args) + { + args.PushMarkup(ent.Comp.AutoLock ? Loc.GetString("artifact-crusher-examine-autolocks") : Loc.GetString("artifact-crusher-examine-no-autolocks")); + } + public void StopCrushing(Entity ent, bool early = true) { var (_, crusher) = ent; diff --git a/Resources/Audio/Effects/attributions.yml b/Resources/Audio/Effects/attributions.yml index fecc4267ba5..f8568718461 100644 --- a/Resources/Audio/Effects/attributions.yml +++ b/Resources/Audio/Effects/attributions.yml @@ -77,12 +77,12 @@ license: "CC-BY-NC-SA-3.0" copyright: "Taken from DragishaRambo21 via freesound.org and mixed from stereo to mono." source: "https://freesound.org/people/DragishaRambo21/sounds/345920/" - + - files: ["tesla_consume.ogg"] license: "CC0-1.0" copyright: "Taken from egomassive via freesound.org and mixed from stereo to mono." source: "https://freesound.org/people/egomassive/sounds/536741/" - + - files: ["sizzle.ogg"] license: "CC-BY-SA-3.0" copyright: "Recorded by deltanedas for SS14" @@ -93,11 +93,6 @@ license: Custom source: https://gdc.sonniss.com -- files: ["wall_bonk.ogg"] - copyright: '"Nuts and Bolts" by 344 Audio of SONNISS.com. See https://sonniss.com/gdc-bundle-license/ for license.' - license: Custom - source: https://gdc.sonniss.com - - files: ["pop.ogg"] copyright: '"pop.ogg" by mirrorcult of GitHub.com' license: "CC0-1.0" @@ -132,6 +127,26 @@ license: "CC-BY-NC-4.0" source: "https://freesound.org/people/PNMCarrieRailfan/sounds/682439/" +- files: ["metal_slam5.ogg", "metal_break1.ogg", "metal_break1.ogg", "metal_break1.ogg", "metal_break1.ogg", "metal_break5.ogg", "metal_glass_break1.ogg", "metal_glass_break2.ogg"] + copyright: 'Created by and released in a sound pack by PNMCarrieRailfan on Freesound.org. Cut, edited and exported to mono .ogg by mirrorcult (github)' + license: "CC-BY-NC-4.0" + source: "https://freesound.org/people/PNMCarrieRailfan/packs/38016/" + +- files: ["glass_break1.ogg", "glass_break2.ogg", "glass_break3.ogg", "glass_break4.ogg", "glass_smack.ogg", "glass_smash.ogg", "metal_thud1.ogg", "metal_thud2.ogg", "metal_thud3.ogg", "weak_hit.ogg", "wood_destroy1.ogg", "window_shatter1.ogg", "window_shatter2.ogg", "window_shatter3.ogg"] + copyright: "CM-SS13 at 84dc482572649ae7c2264c71ea1fe9fd169e4774" + license: "CC-BY-SA-3.0" + source: "https://github.com/cmss13-devs/cmss13" + +- files: ["glass_crack1.ogg", "glass_crack2.ogg", "glass_crack3.ogg", "glass_crack4.ogg", "metal_scrape1.ogg", "metal_scrape2.ogg", "metal_scrape3.ogg"] + copyright: "Baystation 12 at 23c0d851246ebbaeb0df647318ce9874da895d3d" + license: "CC-BY-SA-3.0" + source: "https://github.com/Baystation12/Baystation12" + +- files: ["wood_destroy2.ogg", "wood_destroy3.ogg", "wood_destroy_heavy1.ogg", "metal_slam1.ogg", "metal_slam2.ogg", "metal_slam3.ogg"] + copyright: "Based on sounds from OpenSourceWeb at edb003dc8ff5009476a9bcb74e79206039fb3390, edited and reworked by mirrorcult" + license: "CC-BY-SA-3.0" + source: "https://github.com/Open-SourceWeb/OpenSourceWeb" + - files: ["voteding.ogg"] copyright: '"Bike, Bell Ding, Single, 01-01.wav" byInspectorJ (www.jshaw.co.uk) of Freesound.org; The volume has been reduced.' license: "CC-BY-4.0" diff --git a/Resources/Audio/Effects/bang.ogg b/Resources/Audio/Effects/bang.ogg deleted file mode 100644 index 656983f0980..00000000000 Binary files a/Resources/Audio/Effects/bang.ogg and /dev/null differ diff --git a/Resources/Audio/Effects/glass_break1.ogg b/Resources/Audio/Effects/glass_break1.ogg index fe14cdeda34..686ce671fec 100644 Binary files a/Resources/Audio/Effects/glass_break1.ogg and b/Resources/Audio/Effects/glass_break1.ogg differ diff --git a/Resources/Audio/Effects/glass_break2.ogg b/Resources/Audio/Effects/glass_break2.ogg index 79163acc19e..3404ddfe523 100644 Binary files a/Resources/Audio/Effects/glass_break2.ogg and b/Resources/Audio/Effects/glass_break2.ogg differ diff --git a/Resources/Audio/Effects/glass_break3.ogg b/Resources/Audio/Effects/glass_break3.ogg index bc45ab33324..28f7a3c9327 100644 Binary files a/Resources/Audio/Effects/glass_break3.ogg and b/Resources/Audio/Effects/glass_break3.ogg differ diff --git a/Resources/Audio/Effects/glass_break4.ogg b/Resources/Audio/Effects/glass_break4.ogg new file mode 100644 index 00000000000..46c251106d3 Binary files /dev/null and b/Resources/Audio/Effects/glass_break4.ogg differ diff --git a/Resources/Audio/Effects/glass_crack1.ogg b/Resources/Audio/Effects/glass_crack1.ogg new file mode 100644 index 00000000000..0221b238d7f Binary files /dev/null and b/Resources/Audio/Effects/glass_crack1.ogg differ diff --git a/Resources/Audio/Effects/glass_crack2.ogg b/Resources/Audio/Effects/glass_crack2.ogg new file mode 100644 index 00000000000..e5e37024588 Binary files /dev/null and b/Resources/Audio/Effects/glass_crack2.ogg differ diff --git a/Resources/Audio/Effects/glass_crack3.ogg b/Resources/Audio/Effects/glass_crack3.ogg new file mode 100644 index 00000000000..631c584462e Binary files /dev/null and b/Resources/Audio/Effects/glass_crack3.ogg differ diff --git a/Resources/Audio/Effects/glass_crack4.ogg b/Resources/Audio/Effects/glass_crack4.ogg new file mode 100644 index 00000000000..5d6302e88b2 Binary files /dev/null and b/Resources/Audio/Effects/glass_crack4.ogg differ diff --git a/Resources/Audio/Effects/glass_hit.ogg b/Resources/Audio/Effects/glass_hit.ogg deleted file mode 100644 index e6842104db5..00000000000 Binary files a/Resources/Audio/Effects/glass_hit.ogg and /dev/null differ diff --git a/Resources/Audio/Effects/wall_bonk.ogg b/Resources/Audio/Effects/glass_smack.ogg similarity index 60% rename from Resources/Audio/Effects/wall_bonk.ogg rename to Resources/Audio/Effects/glass_smack.ogg index b1c5505f61d..59931e6a73c 100644 Binary files a/Resources/Audio/Effects/wall_bonk.ogg and b/Resources/Audio/Effects/glass_smack.ogg differ diff --git a/Resources/Audio/Effects/glass_smash.ogg b/Resources/Audio/Effects/glass_smash.ogg new file mode 100644 index 00000000000..ed341b2306d Binary files /dev/null and b/Resources/Audio/Effects/glass_smash.ogg differ diff --git a/Resources/Audio/Effects/metal_break1.ogg b/Resources/Audio/Effects/metal_break1.ogg new file mode 100644 index 00000000000..cb3f3a21a1d Binary files /dev/null and b/Resources/Audio/Effects/metal_break1.ogg differ diff --git a/Resources/Audio/Effects/metal_break2.ogg b/Resources/Audio/Effects/metal_break2.ogg new file mode 100644 index 00000000000..976c59bc905 Binary files /dev/null and b/Resources/Audio/Effects/metal_break2.ogg differ diff --git a/Resources/Audio/Effects/metal_break3.ogg b/Resources/Audio/Effects/metal_break3.ogg new file mode 100644 index 00000000000..238a9f595c6 Binary files /dev/null and b/Resources/Audio/Effects/metal_break3.ogg differ diff --git a/Resources/Audio/Effects/metal_break4.ogg b/Resources/Audio/Effects/metal_break4.ogg new file mode 100644 index 00000000000..4be23f1a63f Binary files /dev/null and b/Resources/Audio/Effects/metal_break4.ogg differ diff --git a/Resources/Audio/Effects/metal_break5.ogg b/Resources/Audio/Effects/metal_break5.ogg new file mode 100644 index 00000000000..2aad88c27ac Binary files /dev/null and b/Resources/Audio/Effects/metal_break5.ogg differ diff --git a/Resources/Audio/Effects/metal_glass_break1.ogg b/Resources/Audio/Effects/metal_glass_break1.ogg new file mode 100644 index 00000000000..050fdf68d0c Binary files /dev/null and b/Resources/Audio/Effects/metal_glass_break1.ogg differ diff --git a/Resources/Audio/Effects/metal_glass_break2.ogg b/Resources/Audio/Effects/metal_glass_break2.ogg new file mode 100644 index 00000000000..af246179b5f Binary files /dev/null and b/Resources/Audio/Effects/metal_glass_break2.ogg differ diff --git a/Resources/Audio/Effects/metal_scrape1.ogg b/Resources/Audio/Effects/metal_scrape1.ogg new file mode 100644 index 00000000000..6fe0fd0db57 Binary files /dev/null and b/Resources/Audio/Effects/metal_scrape1.ogg differ diff --git a/Resources/Audio/Effects/metal_scrape2.ogg b/Resources/Audio/Effects/metal_scrape2.ogg new file mode 100644 index 00000000000..813976a7085 Binary files /dev/null and b/Resources/Audio/Effects/metal_scrape2.ogg differ diff --git a/Resources/Audio/Effects/metal_scrape3.ogg b/Resources/Audio/Effects/metal_scrape3.ogg new file mode 100644 index 00000000000..03f4a258c2d Binary files /dev/null and b/Resources/Audio/Effects/metal_scrape3.ogg differ diff --git a/Resources/Audio/Effects/metal_slam1.ogg b/Resources/Audio/Effects/metal_slam1.ogg new file mode 100644 index 00000000000..77f8ba35900 Binary files /dev/null and b/Resources/Audio/Effects/metal_slam1.ogg differ diff --git a/Resources/Audio/Effects/metal_slam2.ogg b/Resources/Audio/Effects/metal_slam2.ogg new file mode 100644 index 00000000000..4db58c51b38 Binary files /dev/null and b/Resources/Audio/Effects/metal_slam2.ogg differ diff --git a/Resources/Audio/Effects/metal_slam3.ogg b/Resources/Audio/Effects/metal_slam3.ogg new file mode 100644 index 00000000000..9d4ee03e4a6 Binary files /dev/null and b/Resources/Audio/Effects/metal_slam3.ogg differ diff --git a/Resources/Audio/Effects/metal_slam4.ogg b/Resources/Audio/Effects/metal_slam4.ogg new file mode 100644 index 00000000000..a994a2c9cd6 Binary files /dev/null and b/Resources/Audio/Effects/metal_slam4.ogg differ diff --git a/Resources/Audio/Effects/metal_slam5.ogg b/Resources/Audio/Effects/metal_slam5.ogg new file mode 100644 index 00000000000..ad840af0f96 Binary files /dev/null and b/Resources/Audio/Effects/metal_slam5.ogg differ diff --git a/Resources/Audio/Effects/metal_thud1.ogg b/Resources/Audio/Effects/metal_thud1.ogg new file mode 100644 index 00000000000..534e04f6ec5 Binary files /dev/null and b/Resources/Audio/Effects/metal_thud1.ogg differ diff --git a/Resources/Audio/Effects/metal_thud2.ogg b/Resources/Audio/Effects/metal_thud2.ogg new file mode 100644 index 00000000000..d6ae732ed3c Binary files /dev/null and b/Resources/Audio/Effects/metal_thud2.ogg differ diff --git a/Resources/Audio/Effects/metal_thud3.ogg b/Resources/Audio/Effects/metal_thud3.ogg new file mode 100644 index 00000000000..17962c5f2a8 Binary files /dev/null and b/Resources/Audio/Effects/metal_thud3.ogg differ diff --git a/Resources/Audio/Effects/metalbreak.ogg b/Resources/Audio/Effects/metalbreak.ogg deleted file mode 100644 index 0864824075e..00000000000 Binary files a/Resources/Audio/Effects/metalbreak.ogg and /dev/null differ diff --git a/Resources/Audio/Effects/weak_hit1.ogg b/Resources/Audio/Effects/weak_hit1.ogg new file mode 100644 index 00000000000..222879a40d3 Binary files /dev/null and b/Resources/Audio/Effects/weak_hit1.ogg differ diff --git a/Resources/Audio/Weapons/tap.ogg b/Resources/Audio/Effects/weak_hit2.ogg similarity index 100% rename from Resources/Audio/Weapons/tap.ogg rename to Resources/Audio/Effects/weak_hit2.ogg diff --git a/Resources/Audio/Effects/window_shatter1.ogg b/Resources/Audio/Effects/window_shatter1.ogg new file mode 100644 index 00000000000..aa841782df2 Binary files /dev/null and b/Resources/Audio/Effects/window_shatter1.ogg differ diff --git a/Resources/Audio/Effects/window_shatter2.ogg b/Resources/Audio/Effects/window_shatter2.ogg new file mode 100644 index 00000000000..3887e467bef Binary files /dev/null and b/Resources/Audio/Effects/window_shatter2.ogg differ diff --git a/Resources/Audio/Effects/window_shatter3.ogg b/Resources/Audio/Effects/window_shatter3.ogg new file mode 100644 index 00000000000..b639ca43e5f Binary files /dev/null and b/Resources/Audio/Effects/window_shatter3.ogg differ diff --git a/Resources/Audio/Effects/wood_destroy1.ogg b/Resources/Audio/Effects/wood_destroy1.ogg new file mode 100644 index 00000000000..12f9667bdde Binary files /dev/null and b/Resources/Audio/Effects/wood_destroy1.ogg differ diff --git a/Resources/Audio/Effects/wood_destroy2.ogg b/Resources/Audio/Effects/wood_destroy2.ogg new file mode 100644 index 00000000000..04b0d4f9559 Binary files /dev/null and b/Resources/Audio/Effects/wood_destroy2.ogg differ diff --git a/Resources/Audio/Effects/wood_destroy3.ogg b/Resources/Audio/Effects/wood_destroy3.ogg new file mode 100644 index 00000000000..13577ec8a6e Binary files /dev/null and b/Resources/Audio/Effects/wood_destroy3.ogg differ diff --git a/Resources/Audio/Effects/wood_destroy_heavy1.ogg b/Resources/Audio/Effects/wood_destroy_heavy1.ogg new file mode 100644 index 00000000000..d752de30d5c Binary files /dev/null and b/Resources/Audio/Effects/wood_destroy_heavy1.ogg differ diff --git a/Resources/Audio/Effects/woodhit.ogg b/Resources/Audio/Effects/woodhit.ogg deleted file mode 100644 index 04ff37f3c7a..00000000000 Binary files a/Resources/Audio/Effects/woodhit.ogg and /dev/null differ diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 3fc8eb71cdd..1387cafb880 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,128 +1,4 @@ Entries: -- author: deltanedas - changes: - - message: Fixed ninja calling in a dragon not actually spawning a dragon. - type: Fix - id: 5245 - time: '2023-12-02T20:41:36.0000000+00:00' -- author: EmoGarbage404 - changes: - - message: Improvised explosive devices now have unreliable timers that can take - anywhere from 0 to 60 seconds to explode. - type: Add - id: 5246 - time: '2023-12-03T02:21:51.0000000+00:00' -- author: liltenhead - changes: - - message: Replaced the Engivend's individual inflatables with the boxed version. - type: Tweak - id: 5247 - time: '2023-12-03T03:54:00.0000000+00:00' -- author: Doru991 - changes: - - message: Skeletons now regain more health when coming in contact with milk. - type: Tweak - id: 5248 - time: '2023-12-04T02:32:05.0000000+00:00' -- author: joshepvodka - changes: - - message: CentCom officers now finally have a jumpsuit that matches the ever stylish - green hue of CentCom equipment. - type: Tweak - id: 5249 - time: '2023-12-04T02:32:45.0000000+00:00' -- author: EmoGarbage404 - changes: - - message: Roller skates are slower and have less friction and acceleration. - type: Tweak - - message: Speed boots give a much more pronounced speed boost. Research them today! - type: Tweak - id: 5250 - time: '2023-12-04T04:31:11.0000000+00:00' -- author: Slava0135 - changes: - - message: Gas tanks now deal damage when thrown. Be sure to hold them when opening - valve... or not. - type: Tweak - id: 5251 - time: '2023-12-04T06:32:18.0000000+00:00' -- author: Chronophylos - changes: - - message: Included missing damage type localization for armor examination. - type: Fix - id: 5252 - time: '2023-12-04T12:57:29.0000000+00:00' -- author: EmoGarbage404 - changes: - - message: Storage now uses a grid-based system. You can drag around items in your - bag, left click to remove them, and use right click to rotate them while dragging. - type: Add - - message: The storage window is now a fixed singleton above the hands. You can - make it moveable by toggling "Static storage UI" in the controls menu. - type: Add - id: 5253 - time: '2023-12-04T23:04:39.0000000+00:00' -- author: qwerltaz - changes: - - message: When ghosting from a critical state, the ghost command now kills with - damage relative to current health instead of flat 200. - type: Fix - id: 5254 - time: '2023-12-04T23:06:11.0000000+00:00' -- author: MACMAN2003 - changes: - - message: Autolathes can now print the snazzy orange "sodium" and blue "exterior" - light tubes. - type: Tweak - id: 5255 - time: '2023-12-04T23:06:30.0000000+00:00' -- author: MACMAN2003 - changes: - - message: The jaws of life can now fit inside of regular toolbelts. - type: Fix - id: 5256 - time: '2023-12-04T23:06:46.0000000+00:00' -- author: Repo - changes: - - message: Doors can close over conveyor belts. - type: Fix - id: 5257 - time: '2023-12-04T23:07:48.0000000+00:00' -- author: 27alaing - changes: - - message: Pun Pun can become a revolutionary again - type: Tweak - id: 5258 - time: '2023-12-04T23:09:36.0000000+00:00' -- author: Bhijn and Myr - changes: - - message: Speech bubbles now display the name of whatever or whoever spoke them! - The options menu has a setting to disable this outright, or add a background - to the name for the sake of accessibility, for anyone who would like those options. - type: Add - - message: The bubbles associated with emotes and LOOC now display exactly what - the associated message prints in your chatbox. - type: Tweak - id: 5259 - time: '2023-12-04T23:10:49.0000000+00:00' -- author: brainfood1183 - changes: - - message: Clowns can now craft the Banana Clown outfit. - type: Add - id: 5260 - time: '2023-12-04T23:12:02.0000000+00:00' -- author: enumerate0 - changes: - - message: Fixed Christmas tree bounding box - type: Fix - id: 5261 - time: '2023-12-05T06:20:54.0000000+00:00' -- author: JoeHammad - changes: - - message: Paramedics are now available on barratry - type: Add - id: 5262 - time: '2023-12-05T07:35:36.0000000+00:00' - author: JoeHammad changes: - message: Paramedics are now available on marathon @@ -3777,3 +3653,143 @@ id: 5745 time: '2024-01-19T10:14:42.0000000+00:00' url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24283 +- author: mirrorcult + changes: + - message: Destruction & impact sounds have been reworked in general, you should + expect better sounds/more variance/actually playing sounds when applicable + type: Add + - message: Melee hit sounds being cut off when an entity is destroyed has been fixed + type: Fix + id: 5746 + time: '2024-01-19T15:33:08.0000000+00:00' + url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24282 +- author: SpeltIncorrectyl + changes: + - message: Emagging the artifact crusher now stops it from being opened while it + is crushing. + type: Add + id: 5747 + time: '2024-01-19T15:35:02.0000000+00:00' + url: https://api.github.com/repos/space-wizards/space-station-14/pulls/23957 +- author: EmoGarbage404 + changes: + - message: You can now sort lathe recipes by category. + type: Add + - message: Recipes in lathes are now sorted alphabetically. + type: Add + id: 5748 + time: '2024-01-20T00:45:04.0000000+00:00' + url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24247 +- author: Scribbles0 + changes: + - message: Added a new trait, the Unrevivable trait. + type: Add + id: 5749 + time: '2024-01-20T02:22:15.0000000+00:00' + url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24226 +- author: Drayff + changes: + - message: Animations for ToolBoxes! + type: Add + id: 5750 + time: '2024-01-20T02:29:13.0000000+00:00' + url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24305 +- author: Agoichi + changes: + - message: Rebalanced Lobbying Bundle + type: Tweak + id: 5751 + time: '2024-01-20T02:35:44.0000000+00:00' + url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24303 +- author: Dygon + changes: + - message: Storage objects can't be opened anymore while stored in a container. + type: Fix + id: 5752 + time: '2024-01-20T02:50:14.0000000+00:00' + url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24253 +- author: FairlySadPanda + changes: + - message: Lobby restart sound effects no longer cut-off. + type: Fix + id: 5753 + time: '2024-01-20T03:40:01.0000000+00:00' + url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24044 +- author: casperr04 + changes: + - message: Fixed players being able to re-anchor items after fultoning them. + type: Fix + - message: Changed which objects can be fultoned. + type: Tweak + id: 5754 + time: '2024-01-20T04:57:05.0000000+00:00' + url: https://api.github.com/repos/space-wizards/space-station-14/pulls/20628 +- author: Blackern5000 + changes: + - message: Crushers can no longer be researched. + type: Remove + id: 5755 + time: '2024-01-20T05:11:02.0000000+00:00' + url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24319 +- author: metalgearsloth + changes: + - message: Fix buckle sound playing twice in some instances. + type: Fix + id: 5756 + time: '2024-01-20T06:22:19.0000000+00:00' + url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24321 +- author: tday + changes: + - message: Added admin log messages for adding and ending game rules, and for the + commands to do so. + type: Add + - message: Added admin log messages for secret mode rule selection. + type: Add + id: 5757 + time: '2024-01-20T18:02:13.0000000+00:00' + url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24092 +- author: Nimfar11 + changes: + - message: Adds snake kebab and its recipe. + type: Add + id: 5758 + time: '2024-01-20T23:38:11.0000000+00:00' + url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24341 +- author: Alekshhh + changes: + - message: Cerberus now has a wideswing that works similarly to spears. + type: Tweak + id: 5759 + time: '2024-01-20T23:38:27.0000000+00:00' + url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24328 +- author: TheShuEd + changes: + - message: Added new Floral anomaly! + type: Add + id: 5760 + time: '2024-01-21T01:31:12.0000000+00:00' + url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24351 +- author: Menshin + changes: + - message: The PA control box should now properly detect the PA parts in all situations + (notably on Origin) + type: Fix + - message: The PA control box now automatically face the control box on part scanning + type: Tweak + id: 5761 + time: '2024-01-21T09:17:17.0000000+00:00' + url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24356 +- author: metalgearsloth + changes: + - message: Fix revolver prediction. + type: Fix + id: 5762 + time: '2024-01-21T11:16:46.0000000+00:00' + url: https://api.github.com/repos/space-wizards/space-station-14/pulls/19649 +- author: metalgearsloth + changes: + - message: Fix shuttle docking highlights being inaccurate. + type: Fix + id: 5763 + time: '2024-01-21T12:14:47.0000000+00:00' + url: https://api.github.com/repos/space-wizards/space-station-14/pulls/24369 diff --git a/Resources/Credits/GitHub.txt b/Resources/Credits/GitHub.txt index bc0a3e4e612..9331e0e2007 100644 --- a/Resources/Credits/GitHub.txt +++ b/Resources/Credits/GitHub.txt @@ -1 +1 @@ -08A, 0x6273, 2013HORSEMEATSCANDAL, 20kdc, 4dplanner, 612git, 778b, Ablankmann, Acruid, actioninja, adamsong, Admiral-Obvious-001, Adrian16199, Aerocrux, Aexxie, Ahion, AJCM-git, AjexRose, Alekshhh, AlexMorgan3817, AlmondFlour, AlphaQwerty, Altoids1, amylizzle, ancientpower, areitpog, Arendian, arimah, artak10t, Arteben, AruMoon, as334, AsikKEsel, asperger-sind, astriloqua, avghdev, AzzyIsNotHere, BananaFlambe, BasedUser, BGare, bhespiritu, BingoJohnson-zz, BismarckShuffle, Bixkitts, Blackern5000, Blazeror, Boaz1111, BobdaBiscuit, brainfood1183, Brandon-Huu, Bright0, brndd, BubblegumBlue, BYONDFuckery, c0rigin, c4llv07e, CakeQ, CaptainSqrBeard, Carbonhell, CatTheSystem, Centronias, chairbender, Charlese2, Cheackraze, cheesePizza2, Chief-Engineer, chromiumboy, Chronophylos, civilCornball, clement-or, Clyybber, ColdAutumnRain, collinlunn, ComicIronic, coolmankid12345, corentt, crazybrain23, creadth, CrigCrag, Crotalus, CrudeWax, CrzyPotato, Cyberboss, d34d10cc, Daemon, daerSeebaer, dahnte, dakamakat, DamianX, DangerRevolution, daniel-cr, Darkenson, DawBla, dch-GH, Deahaka, DEATHB4DEFEAT, DeathCamel58, deathride58, DebugOk, Decappi, degradka, Delete69, deltanedas, DerbyX, DmitriyMX, DoctorBeard, DogZeroX, dontbetank, Doru991, DoubleRiceEddiedd, DrMelon, drongood12, DrSmugleaf, drteaspoon420, DTanxxx, DubiousDoggo, Duddino, Dutch-VanDerLinde, Easypoller, eclips_e, EEASAS, Efruit, efzapa, ElectroSR, elthundercloud, Emisse, EmoGarbage404, Endecc, enumerate0, eoineoineoin, ERORR404V1, Errant-4, estacaoespacialpirata, exp111, Fahasor, FairlySadPanda, ficcialfaint, FillerVK, Fishfish458, Flareguy, FluffiestFloof, FluidRock, FoLoKe, fooberticus, forthbridge, Fortune117, freeman2651, Fromoriss, GalacticChimp, gbasood, Geekyhobo, Genkail, Git-Nivrak, github-actions[bot], gituhabu, GNF54, GoodWheatley, Gotimanga, graevy, GreyMario, gusxyz, h3half, Hardly3D, harikattar, Hebiman, Henry12116, HerCoyote23, HoofedEar, hord-brayden, hubismal, Hugal31, Hyenh, iacore, IamVelcroboy, icekot8, iczero, igorsaux, ike709, illersaver, Illiux, Ilya246, IlyaElDunaev, Injazz, InquisitivePenguin, Insineer, IntegerTempest, Interrobang01, IProduceWidgets, ItsMeThom, j-giebel, Jackal298, Jackrost, jamessimo, janekvap, JerryImMouse, Jessetriesagain, jessicamaybe, Jezithyr, jicksaw, JiimBob, JoeHammad1844, joelhed, JohnGinnane, johnku1, joshepvodka, jproads, Jrpl, juliangiebel, JustCone14, JustinTether, JustinTrotter, Kadeo64, KaiShibaa, kalane15, kalanosh, KEEYNy, Keikiru, Kelrak, kerisargit, keronshb, KIBORG04, KingFroozy, kira-er, Kit0vras, KittenColony, Klaypexx, Kmc2000, komunre, koteq, kxvvv, lajolico, Lamrr, LankLTE, laok233, lapatison, Leander-0, LetterN, Level10Cybermancer, lever1209, LightVillet, liltenhead, LittleBuilderJane, Lomcastar, LordCarve, LordEclipse, luckyshotpictures, LudwigVonChesterfield, Lukasz825700516, lunarcomets, luringens, lvvova1, lzimann, lzk228, M3739, MACMAN2003, Macoron, magmodius, MagnusCrowe, ManelNavola, matthst, Matz05, MehimoNemo, MeltedPixel, MemeProof, Menshin, Mervill, metalgearsloth, mhamsterr, MilenVolf, Minty642, Mirino97, mirrorcult, MishaUnity, MisterMecky, Mith-randalf, ModeratelyAware, Moneyl, Moomoobeef, moony, Morb0, mr-bo-jangles, Mr0maks, Myakot, Myctai, N3X15, Nails-n-Tape, Nairodian, Naive817, namespace-Memory, NickPowers43, nikthechampiongr, Nimfar11, Nirnael, nmajask, nok-ko, notafet, notquitehadouken, noudoit, noverd, nuke-haus, NULL882, Nylux, och-och, OctoRocket, OldDanceJacket, OliverOtter, onoira, Owai-Seek, pali6, Pangogie, patrikturi, PaulRitter, Peptide90, peptron1, pewter-wiz, Phantom-Lily, Phill101, PixelTheKermit, PJB3005, pofitlo, pointer-to-null, PoorMansDreams, potato1234x, ProfanedBane, ProPandaBear, PrPleGoo, Psychpsyo, psykzz, PuroSlavKing, PursuitInAshes, Putnam3145, quatre, QuietlyWhisper, qwerltaz, Radosvik, Radrark, Rainbeon, Rainfey, Rane, Ranger6012, ravage123321, rbertoche, Redict, RedlineTriad, RednoWCirabrab, RemberBM, RemieRichards, RemTim, rene-descartes2021, renodubois, RiceMar1244, RieBi, RIKELOLDABOSS, Rinkashikachi, Rockdtben, rok-povsic, rolfero, Saakra, SadAways, Samsterious, SamV522, SaphireLattice, ScalyChimp, scrato, Scribbles0, ScumbagDog, Serkket, SethLafuente, ShadowCommander, Shadowtheprotogen546, shaeone, SignalWalker, Simyon264, SirDragooon, Sirionaut, siyengar04, Skarletto, Skrauz, Skyedra, SlamBamActionman, Slava0135, snebl, Snowni, SonicHDC, SoulSloth, SpaceManiac, SpeltIncorrectyl, spoogemonster, ssdaniel24, Stanislav4ix, Stealthbomber16, StrawberryMoses, Subversionary, SweptWasTaken, Szunti, TaralGit, Tayrtahn, tday93, TekuNut, TemporalOroboros, tentekal, tgrkzus, thatrandomcanadianguy, TheArturZh, theashtronaut, thedraccx, themias, Theomund, theOperand, TheShuEd, ThunderBear2006, timothyteakettle, TimrodDX, Titian3, TK-A369, tkdrg, tmtmtl30, tom-leys, tomasalves8, Tomeno, tosatur, Tryded, TsjipTsjip, Tunguso4ka, TurboTrackerss14, Tyler-IN, Tyzemol, UbaserB, UKNOWH, Uriende, UristMcDorf, Vaaankas, Varen, VasilisThePikachu, veliebm, Veritius, Verslebas, VigersRay, Visne, volundr-, Vordenburg, vulppine, Warentan, waylon531, weaversam8, whateverusername0, Willhelm53, wixoaGit, WlarusFromDaSpace, wrexbe, WTCWR68, xRiriq, Ygg01, YotaXP, youarereadingthis, YuriyKiss, zach-hill, Zandario, ZelteHonor, zerorulez, ZeWaka, zionnBE, zlodo, ZNixian, ZoldorfTheWizard, Zth--, Zumorica, Zymem +08A, 0x6273, 2013HORSEMEATSCANDAL, 20kdc, 21Melkuu, 4dplanner, 612git, 778b, Ablankmann, Acruid, actioninja, adamsong, Admiral-Obvious-001, Adrian16199, Aerocrux, Aexxie, Ahion, AJCM-git, AjexRose, Alekshhh, AlexMorgan3817, AlmondFlour, AlphaQwerty, Altoids1, amylizzle, ancientpower, areitpog, Arendian, arimah, artak10t, Arteben, AruMoon, as334, AsikKEsel, asperger-sind, astriloqua, avghdev, AzzyIsNotHere, BananaFlambe, BasedUser, BGare, bhespiritu, BingoJohnson-zz, BismarckShuffle, Bixkitts, Blackern5000, Blazeror, Boaz1111, BobdaBiscuit, brainfood1183, Brandon-Huu, Bright0, brndd, BubblegumBlue, BYONDFuckery, c0rigin, c4llv07e, CakeQ, CaptainSqrBeard, Carbonhell, casperr04, CatTheSystem, Centronias, chairbender, Charlese2, Cheackraze, cheesePizza2, Chief-Engineer, chromiumboy, Chronophylos, civilCornball, clement-or, Clyybber, ColdAutumnRain, collinlunn, ComicIronic, coolmankid12345, corentt, crazybrain23, creadth, CrigCrag, Crotalus, CrudeWax, CrzyPotato, Cyberboss, d34d10cc, Daemon, daerSeebaer, dahnte, dakamakat, DamianX, DangerRevolution, daniel-cr, Darkenson, DawBla, dch-GH, Deahaka, DEATHB4DEFEAT, DeathCamel58, deathride58, DebugOk, Decappi, degradka, Delete69, deltanedas, DerbyX, DmitriyMX, DoctorBeard, DogZeroX, dontbetank, Doru991, DoubleRiceEddiedd, DrMelon, drongood12, DrSmugleaf, drteaspoon420, DTanxxx, DubiousDoggo, Duddino, Dutch-VanDerLinde, Easypoller, eclips_e, EEASAS, Efruit, efzapa, ElectroSR, elthundercloud, Emisse, EmoGarbage404, Endecc, enumerate0, eoineoineoin, ERORR404V1, Errant-4, estacaoespacialpirata, exp111, Fahasor, FairlySadPanda, ficcialfaint, FillerVK, Fishfish458, Flareguy, FluffiestFloof, FluidRock, FoLoKe, fooberticus, forthbridge, Fortune117, freeman2651, Fromoriss, GalacticChimp, gbasood, Geekyhobo, Genkail, Git-Nivrak, github-actions[bot], gituhabu, GNF54, GoodWheatley, Gotimanga, graevy, GreyMario, gusxyz, h3half, Hardly3D, harikattar, Hebiman, Henry12116, HerCoyote23, HoofedEar, hord-brayden, hubismal, Hugal31, Hyenh, iacore, IamVelcroboy, icekot8, iczero, igorsaux, ike709, illersaver, Illiux, Ilya246, IlyaElDunaev, Injazz, InquisitivePenguin, Insineer, IntegerTempest, Interrobang01, IProduceWidgets, ItsMeThom, j-giebel, Jackal298, Jackrost, jamessimo, janekvap, JerryImMouse, Jessetriesagain, jessicamaybe, Jezithyr, jicksaw, JiimBob, JoeHammad1844, joelhed, JohnGinnane, johnku1, joshepvodka, jproads, Jrpl, juliangiebel, JustCone14, JustinTether, JustinTrotter, Kadeo64, KaiShibaa, kalane15, kalanosh, KEEYNy, Keikiru, Kelrak, kerisargit, keronshb, KIBORG04, KingFroozy, kira-er, Kit0vras, KittenColony, Klaypexx, Kmc2000, komunre, koteq, Krunklehorn, kxvvv, lajolico, Lamrr, LankLTE, laok233, lapatison, Leander-0, LetterN, Level10Cybermancer, lever1209, LightVillet, liltenhead, LittleBuilderJane, Lomcastar, LordCarve, LordEclipse, luckyshotpictures, LudwigVonChesterfield, Lukasz825700516, lunarcomets, luringens, lvvova1, lzimann, lzk228, M3739, MACMAN2003, Macoron, magmodius, MagnusCrowe, ManelNavola, matthst, Matz05, MehimoNemo, MeltedPixel, MemeProof, Menshin, Mervill, metalgearsloth, mhamsterr, MilenVolf, Minty642, Mirino97, mirrorcult, MishaUnity, MisterMecky, Mith-randalf, ModeratelyAware, Moneyl, Moomoobeef, moony, Morb0, mr-bo-jangles, Mr0maks, Myakot, Myctai, N3X15, Nails-n-Tape, Nairodian, Naive817, namespace-Memory, NickPowers43, nikthechampiongr, Nimfar11, Nirnael, nmajask, nok-ko, notafet, notquitehadouken, noudoit, noverd, nuke-haus, NULL882, Nylux, och-och, OctoRocket, OldDanceJacket, OliverOtter, onoira, Owai-Seek, pali6, Pangogie, patrikturi, PaulRitter, Peptide90, peptron1, pewter-wiz, Phantom-Lily, Phill101, PixelTheKermit, PJB3005, pofitlo, pointer-to-null, PoorMansDreams, potato1234x, ProfanedBane, ProPandaBear, PrPleGoo, Psychpsyo, psykzz, PuroSlavKing, PursuitInAshes, Putnam3145, quatre, QuietlyWhisper, qwerltaz, Radosvik, Radrark, Rainbeon, Rainfey, Rane, Ranger6012, ravage123321, rbertoche, Redict, RedlineTriad, RednoWCirabrab, RemberBM, RemieRichards, RemTim, rene-descartes2021, renodubois, revsys413, RiceMar1244, RieBi, RIKELOLDABOSS, Rinkashikachi, Rockdtben, rok-povsic, rolfero, Saakra, SadAways, Samsterious, SamV522, SaphireLattice, ScalyChimp, scrato, Scribbles0, ScumbagDog, Serkket, SethLafuente, ShadowCommander, Shadowtheprotogen546, SignalWalker, Simyon264, SirDragooon, Sirionaut, siyengar04, Skarletto, Skrauz, Skyedra, SlamBamActionman, Slava0135, Snowni, SonicHDC, SoulSloth, SpaceManiac, SpeltIncorrectyl, spoogemonster, ssdaniel24, Stanislav4ix, Stealthbomber16, StrawberryMoses, Subversionary, SweptWasTaken, Szunti, TaralGit, Tayrtahn, tday93, TekuNut, TemporalOroboros, tentekal, tgrkzus, thatrandomcanadianguy, TheArturZh, theashtronaut, thedraccx, themias, Theomund, theOperand, TheShuEd, ThunderBear2006, timothyteakettle, TimrodDX, Titian3, TK-A369, tkdrg, tmtmtl30, tom-leys, tomasalves8, Tomeno, tosatur, Tryded, TsjipTsjip, Tunguso4ka, TurboTrackerss14, Tyler-IN, Tyzemol, UbaserB, UKNOWH, Uriende, UristMcDorf, Vaaankas, Varen, VasilisThePikachu, veliebm, Veritius, Verslebas, VigersRay, Visne, Volotomite, volundr-, Vordenburg, vulppine, Warentan, waylon531, weaversam8, Willhelm53, wixoaGit, WlarusFromDaSpace, wrexbe, WTCWR68, xRiriq, Ygg01, YotaXP, youarereadingthis, YuriyKiss, zach-hill, Zandario, ZelteHonor, zerorulez, ZeWaka, zionnBE, zlodo, ZNixian, ZoldorfTheWizard, Zth--, Zumorica, Zymem diff --git a/Resources/Locale/en-US/artifacts/artifact-crusher.ftl b/Resources/Locale/en-US/artifacts/artifact-crusher.ftl new file mode 100644 index 00000000000..d9f10f43344 --- /dev/null +++ b/Resources/Locale/en-US/artifacts/artifact-crusher.ftl @@ -0,0 +1,3 @@ +artifact-crusher-examine-no-autolocks = The machine's autolocks are [color=green]disabled[/color]. +artifact-crusher-examine-autolocks = The machine's autolocks are [color=red]enabled[/color]. +artifact-crusher-autolocks-enable = The machine's locks snap shut! diff --git a/Resources/Locale/en-US/flavors/flavor-profiles.ftl b/Resources/Locale/en-US/flavors/flavor-profiles.ftl index fb7edb0d427..bbe245b0162 100644 --- a/Resources/Locale/en-US/flavors/flavor-profiles.ftl +++ b/Resources/Locale/en-US/flavors/flavor-profiles.ftl @@ -57,6 +57,13 @@ flavor-base-terrible = terrible flavor-complex-nothing = like nothing flavor-complex-honey = like honey +# Condiments + +flavor-complex-ketchunaise = like tomatoes and mayonnaise +flavor-complex-mayonnaise = like mayonnaise +flavor-complex-mustard = like mustard + + # Food-specific flavors. ## Food chemicals. In case you get something that has this inside. diff --git a/Resources/Locale/en-US/lathe/lathe-categories.ftl b/Resources/Locale/en-US/lathe/lathe-categories.ftl new file mode 100644 index 00000000000..a7261c2b511 --- /dev/null +++ b/Resources/Locale/en-US/lathe/lathe-categories.ftl @@ -0,0 +1,8 @@ +lathe-category-ammo = Ammo +lathe-category-circuitry = Circuitry +lathe-category-lights = Lights +lathe-category-mechs = Mechs +lathe-category-parts = Parts +lathe-category-robotics = Robotics +lathe-category-tools = Tools +lathe-category-weapons = Weapons diff --git a/Resources/Locale/en-US/lathe/ui/lathe-menu.ftl b/Resources/Locale/en-US/lathe/ui/lathe-menu.ftl index 3ccdb2b0eb3..92f313086cb 100644 --- a/Resources/Locale/en-US/lathe/ui/lathe-menu.ftl +++ b/Resources/Locale/en-US/lathe/ui/lathe-menu.ftl @@ -3,11 +3,12 @@ lathe-menu-queue = Queue lathe-menu-server-list = Server list lathe-menu-sync = Sync lathe-menu-search-designs = Search designs -lathe-menu-search-filter = Filter +lathe-menu-category-all = All +lathe-menu-search-filter = Filter: lathe-menu-amount = Amount: lathe-menu-material-display = {$material} ({$amount}) lathe-menu-tooltip-display = {$amount} of {$material} -lathe-menu-description-display = {$description} +lathe-menu-description-display = [italic]{$description}[/italic] lathe-menu-material-amount = { $amount -> [1] {NATURALFIXED($amount, 2)} {$unit} *[other] {NATURALFIXED($amount, 2)} {MAKEPLURAL($unit)} diff --git a/Resources/Locale/en-US/medical/components/defibrillator.ftl b/Resources/Locale/en-US/medical/components/defibrillator.ftl index 1c32dd801d9..dc4a03aa3b1 100644 --- a/Resources/Locale/en-US/medical/components/defibrillator.ftl +++ b/Resources/Locale/en-US/medical/components/defibrillator.ftl @@ -1,3 +1,4 @@ defibrillator-not-on = The defibrillator isn't turned on. defibrillator-no-mind = No intelligence pattern can be detected in patient's brain. Further attempts futile. defibrillator-rotten = Body decomposition detected: resuscitation failed. +defibrillator-unrevivable = This patient is unable to be revived due to a unique body composition. diff --git a/Resources/Locale/en-US/navmap-beacons/station-beacons.ftl b/Resources/Locale/en-US/navmap-beacons/station-beacons.ftl new file mode 100644 index 00000000000..48f75cbd692 --- /dev/null +++ b/Resources/Locale/en-US/navmap-beacons/station-beacons.ftl @@ -0,0 +1,72 @@ +station-beacon-general = General + +station-beacon-command = Command +station-beacon-bridge = Bridge +station-beacon-vault = Vault +station-beacon-captain = Captain +station-beacon-hop = HOP + +station-beacon-security = Security +station-beacon-brig = Brig +station-beacon-warden = Warden +station-beacon-hos = HOS +station-beacon-armory = Armory +station-beacon-perma-brig = Perma +station-beacon-detective = Detective +station-beacon-courtroom = Courtroom +station-beacon-law = Law Office +station-beacon-security-checkpoint = Checkpoint + +station-beacon-medical = Medical +station-beacon-medbay = Medbay +station-beacon-chemistry = Chem +station-beacon-cryonics = Cryo +station-beacon-cmo = CMO +station-beacon-morgue = Morgue +station-beacon-surgery = Surgery + +station-beacon-science = Science +station-beacon-research-and-development = Research +station-beacon-research-server = Server +station-beacon-research-director = RD +station-beacon-robotics = Robotics +station-beacon-artifact-lab = Artifact +station-beacon-anomaly-gen = Anomaly + +station-beacon-supply = Supply +station-beacon-cargo = Cargo +station-beacon-cargo-bay = Cargo Bay +station-beacon-qm = QM +station-beacon-salvage = Salvage + +station-beacon-engineering = Engineering +station-beacon-ce = CE +station-beacon-ame = AME +station-beacon-solars = Solars +station-beacon-gravgen = Grav +station-beacon-pa = PA Control +station-beacon-smes = SMES +station-beacon-telecoms = Telecoms +station-beacon-atmos = Atmos +station-beacon-teg = TEG +station-beacon-tech-vault = Tech Vault + +station-beacon-service = Service +station-beacon-kitchen = Kitchen +station-beacon-bar = Bar +station-beacon-botany = Botany +station-beacon-janitor = Janitor + +station-beacon-ai = AI +station-beacon-ai-sat = AI Sat +station-beacon-ai-core = AI Core + +station-beacon-arrivals = Arrivals +station-beacon-evac = Evac +station-beacon-eva-storage = EVA Storage +station-beacon-chapel = Chapel +station-beacon-library = Library +station-beacon-dorms = Dorms +station-beacon-theater = Theater +station-beacon-tools = Tools +station-beacon-disposals = Disposals diff --git a/Resources/Locale/en-US/pinpointer/station_map.ftl b/Resources/Locale/en-US/navmap-beacons/station_map.ftl similarity index 100% rename from Resources/Locale/en-US/pinpointer/station_map.ftl rename to Resources/Locale/en-US/navmap-beacons/station_map.ftl diff --git a/Resources/Locale/en-US/research/technologies.ftl b/Resources/Locale/en-US/research/technologies.ftl index 973ef360a9d..411ce429ab7 100644 --- a/Resources/Locale/en-US/research/technologies.ftl +++ b/Resources/Locale/en-US/research/technologies.ftl @@ -45,6 +45,8 @@ research-technology-wave-particle-harnessing = Wave Particle Harnessing research-technology-advanced-riot-control = Advanced Riot Control research-technology-portable-microfusion-weaponry = Portable Microfusion Weaponry research-technology-experimental-battery-ammo = Experimental Battery Ammo +research-technology-basic-shuttle-armament = Shuttle basic armament +research-technology-advanced-shuttle-weapon = Advanced shuttle weapons research-technology-basic-robotics = Basic Robotics research-technology-basic-anomalous-research = Basic Anomalous Research diff --git a/Resources/Locale/en-US/store/uplink-catalog.ftl b/Resources/Locale/en-US/store/uplink-catalog.ftl index cb03a80c85f..cc10345bb7a 100644 --- a/Resources/Locale/en-US/store/uplink-catalog.ftl +++ b/Resources/Locale/en-US/store/uplink-catalog.ftl @@ -159,7 +159,7 @@ uplink-freedom-implanter-name = Freedom Implanter uplink-freedom-implanter-desc = Get away from those nasty sec officers with this three use implant! uplink-scram-implanter-name = Scram Implanter -uplink-scram-implanter-desc = A 3-use implant which teleports you within a large radius. Attempts to teleport you onto an unobstructed tile. May sometimes fail to do so. Life insurance not included. +uplink-scram-implanter-desc = A 2-use implant which teleports you within a large radius. Attempts to teleport you onto an unobstructed tile. May sometimes fail to do so. Life insurance not included. uplink-dna-scrambler-implanter-name = DNA Scrambler Implanter uplink-dna-scrambler-implanter-desc = A single use implant that can be activated to modify your DNA and give you a completely new look. diff --git a/Resources/Locale/en-US/traits/traits.ftl b/Resources/Locale/en-US/traits/traits.ftl index 3a8b1f3b59d..f8f8021e86f 100644 --- a/Resources/Locale/en-US/traits/traits.ftl +++ b/Resources/Locale/en-US/traits/traits.ftl @@ -18,6 +18,9 @@ trait-muted-desc = You can't speak trait-paracusia-name = Paracusia trait-paracusia-desc = You hear sounds that aren't really there +trait-unrevivable-name = Unrevivable +trait-unrevivable-desc = You are unable to be revived by defibrillators. + trait-pirate-accent-name = Pirate Accent trait-pirate-accent-desc = You can't stop speaking like a pirate! diff --git a/Resources/Maps/Shuttles/cargo_core.yml b/Resources/Maps/Shuttles/cargo_core.yml index b68562f2151..42aac814a02 100644 --- a/Resources/Maps/Shuttles/cargo_core.yml +++ b/Resources/Maps/Shuttles/cargo_core.yml @@ -30,7 +30,7 @@ entities: version: 6 0,-1: ind: 0,-1 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZAAAAAACWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAABWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZAAAAAABWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAACWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZAAAAAABWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZAAAAAACWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZAAAAAAAWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZAAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZAAAAAABWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 -1,-1: ind: -1,-1 @@ -56,13 +56,6 @@ entities: chunkCollection: version: 2 nodes: - - node: - angle: -1.5707963267948966 rad - color: '#FFFFFFFF' - id: Arrows - decals: - 10: 0,-5 - 11: 0,-3 - node: color: '#FFFFFFFF' id: Bot @@ -70,12 +63,13 @@ entities: 0: 2,0 1: -1,-3 2: -1,-5 + 34: 0,-5 + 35: 0,-3 - node: color: '#79150047' id: CheckerNWSE decals: 3: 1,-7 - 4: 1,-5 5: 1,-4 6: 1,-3 7: 1,-1 @@ -84,21 +78,22 @@ entities: color: '#FFFFFFFF' id: DirtHeavy decals: - 12: 0,-5 13: 1,-3 14: 2,1 15: 1,-7 + 27: 1,-5 - node: cleanable: True color: '#FFFFFFFF' id: DirtHeavyMonotile decals: - 16: 0,-4 17: 0,-1 18: 1,-6 19: 1,-9 20: 2,-8 21: 1,0 + 30: 0,-5 + 31: 0,-3 - node: cleanable: True color: '#FFFFFFFF' @@ -109,6 +104,8 @@ entities: 24: 1,1 25: 1,-8 26: -1,-3 + 32: 0,-4 + 33: 0,-4 - node: angle: 1.5707963267948966 rad color: '#FFFFFFFF' @@ -179,8 +176,11 @@ entities: - uid: 147 components: - type: Transform + anchored: True pos: 0.5,-6.5 parent: 2 + - type: Physics + bodyType: Static - type: AtmosDevice joinedGrid: 2 - proto: AirlockGlassShuttle @@ -594,7 +594,7 @@ entities: parent: 2 - type: DeviceLinkSink links: - - 92 + - 152 - uid: 75 components: - type: Transform @@ -603,7 +603,7 @@ entities: parent: 2 - type: DeviceLinkSink links: - - 92 + - 152 - uid: 76 components: - type: Transform @@ -612,7 +612,7 @@ entities: parent: 2 - type: DeviceLinkSink links: - - 92 + - 151 - uid: 77 components: - type: Transform @@ -621,7 +621,7 @@ entities: parent: 2 - type: DeviceLinkSink links: - - 92 + - 151 - proto: GasPassiveVent entities: - uid: 143 @@ -957,22 +957,29 @@ entities: parent: 2 - proto: TwoWayLever entities: - - uid: 92 + - uid: 151 components: - type: Transform - pos: 0.5,-3.5 + pos: 0.5,-2.5 parent: 2 - type: DeviceLinkSource linkedPorts: - 74: + 77: - Left: Forward - Right: Reverse - Middle: Off - 77: + 76: - Left: Forward - Right: Reverse - Middle: Off - 76: + - uid: 152 + components: + - type: Transform + pos: 0.5,-4.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 74: - Left: Forward - Right: Reverse - Middle: Off @@ -1136,6 +1143,15 @@ entities: rot: 1.5707963267948966 rad pos: 0.5,-9.5 parent: 2 +- proto: WarpPoint + entities: + - uid: 92 + components: + - type: Transform + pos: 1.5,-3.5 + parent: 2 + - type: WarpPoint + location: Cargo Shuttle - proto: WindoorSecureCargoLocked entities: - uid: 58 diff --git a/Resources/Maps/Shuttles/emergency_rod.yml b/Resources/Maps/Shuttles/emergency_rod.yml index 15dfc25fb4a..56480e2c334 100644 --- a/Resources/Maps/Shuttles/emergency_rod.yml +++ b/Resources/Maps/Shuttles/emergency_rod.yml @@ -3583,6 +3583,56 @@ entities: - type: Transform pos: 2.4661305,9.648575 parent: 2 +- proto: Screen + entities: + - uid: 28 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,17.5 + parent: 2 + - uid: 36 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,17.5 + parent: 2 + - uid: 57 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,5.5 + parent: 2 + - uid: 104 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,0.5 + parent: 2 + - uid: 122 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,0.5 + parent: 2 + - uid: 193 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-11.5 + parent: 2 + - uid: 234 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-2.5 + parent: 2 + - uid: 235 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-2.5 + parent: 2 - proto: ShotGunCabinetFilled entities: - uid: 187 diff --git a/Resources/Maps/Shuttles/emergency_transit.yml b/Resources/Maps/Shuttles/emergency_transit.yml index a7e17509a33..42afa994759 100644 --- a/Resources/Maps/Shuttles/emergency_transit.yml +++ b/Resources/Maps/Shuttles/emergency_transit.yml @@ -3124,6 +3124,32 @@ entities: - type: Transform pos: 6.5,-20.5 parent: 2 +- proto: Screen + entities: + - uid: 161 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-21.5 + parent: 2 + - uid: 196 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-16.5 + parent: 2 + - uid: 197 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-2.5 + parent: 2 + - uid: 198 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,-2.5 + parent: 2 - proto: ShotGunCabinetFilled entities: - uid: 609 @@ -3628,6 +3654,14 @@ entities: parent: 2 - proto: WallShuttle entities: + - uid: 3 + components: + - type: MetaData + flags: PvsPriority + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-2.5 + parent: 2 - uid: 316 components: - type: MetaData @@ -3782,13 +3816,6 @@ entities: - type: Transform pos: 14.5,-11.5 parent: 2 - - uid: 482 - components: - - type: MetaData - flags: PvsPriority - - type: Transform - pos: 6.5,-2.5 - parent: 2 - uid: 483 components: - type: MetaData diff --git a/Resources/Maps/Shuttles/trading_outpost.yml b/Resources/Maps/Shuttles/trading_outpost.yml index 2b7528be89f..f698c2d1454 100644 --- a/Resources/Maps/Shuttles/trading_outpost.yml +++ b/Resources/Maps/Shuttles/trading_outpost.yml @@ -31,19 +31,19 @@ entities: chunks: 0,0: ind: 0,0 - tiles: WQAAAAABWQAAAAABTQAAAAAATQAAAAAATQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAABWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAWQAAAAADWQAAAAADWQAAAAACWQAAAAADWQAAAAAAWQAAAAAAWQAAAAADWQAAAAAAWQAAAAABWQAAAAADWQAAAAAAIgAAAAABJQAAAAADeQAAAAAAAAAAAAAAAAAAAAAAIgAAAAAAIgAAAAAAIgAAAAABIgAAAAAAIgAAAAAAIgAAAAACIgAAAAABIgAAAAAAIgAAAAAAIgAAAAABIgAAAAACeQAAAAAAIgAAAAACeQAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAIgAAAAADeQAAAAAAAAAAAAAAAAAAAAAAdgAAAAAAdwAAAAABdwAAAAADdwAAAAACMQAAAAAAMQAAAAAAMQAAAAAAdwAAAAADdwAAAAABdwAAAAABdgAAAAACeQAAAAAAIgAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAdgAAAAADdwAAAAABdwAAAAADdwAAAAADdgAAAAADdgAAAAACdgAAAAADdwAAAAAAdwAAAAABdwAAAAAAdgAAAAACIgAAAAADJQAAAAACeQAAAAAAAAAAAAAAAAAAAAAAdgAAAAAAdgAAAAABdgAAAAACdgAAAAABdgAAAAAAdgAAAAACdgAAAAAAdgAAAAAAdgAAAAABdgAAAAADdgAAAAACeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: WQAAAAABWQAAAAABTQAAAAAATQAAAAAATQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAABWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAWQAAAAADWQAAAAADWQAAAAACWQAAAAADWQAAAAAAWQAAAAAAWQAAAAADWQAAAAAAWQAAAAABWQAAAAADWQAAAAAAIgAAAAABJQAAAAADeQAAAAAAAAAAAAAAAAAAAAAAIgAAAAAAIgAAAAAAIgAAAAABIgAAAAAAIgAAAAAAIgAAAAACIgAAAAABIgAAAAAAIgAAAAAAIgAAAAABIgAAAAACeQAAAAAATQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAATQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAdgAAAAAAdwAAAAABdwAAAAADdwAAAAACMQAAAAAAMQAAAAAAMQAAAAAAdwAAAAADdwAAAAABdwAAAAABdgAAAAACeQAAAAAATQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAdgAAAAADdwAAAAABdwAAAAADdwAAAAADdgAAAAADdgAAAAACdgAAAAADdwAAAAAAdwAAAAABdwAAAAAAdgAAAAACIgAAAAADJQAAAAACeQAAAAAAAAAAAAAAAAAAAAAAdgAAAAAAdgAAAAABdgAAAAACdgAAAAABdgAAAAAAdgAAAAACdgAAAAAAdgAAAAAAdgAAAAABdgAAAAADdgAAAAACeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 0,-1: ind: 0,-1 - tiles: eQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAIgAAAAAAeQAAAAAAeQAAAAAAIgAAAAABIgAAAAABHQAAAAACeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAIgAAAAABIgAAAAACIgAAAAAAIgAAAAAAIgAAAAABIgAAAAABIgAAAAACIgAAAAAAIgAAAAACeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAWQAAAAADWQAAAAADWQAAAAAAWQAAAAACWQAAAAADWQAAAAACWQAAAAADWQAAAAAAWQAAAAACWQAAAAABWQAAAAABeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAWQAAAAACWQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAAAWQAAAAABeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZAAAAAADWQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAACZAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAWQAAAAADWQAAAAABTQAAAAAATQAAAAAATQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAAAWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAWQAAAAACWQAAAAABTQAAAAAATQAAAAAATQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAADWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAZAAAAAAAWQAAAAABaQAAAAAAaQAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaQAAAAAAaQAAAAAAWQAAAAAAZAAAAAACeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAWQAAAAACWQAAAAAAaQAAAAAAaQAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaQAAAAAAaQAAAAAAWQAAAAADWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAZAAAAAAAWQAAAAAAaQAAAAAAaQAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaQAAAAAAaQAAAAAAWQAAAAABZAAAAAACeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAADTQAAAAAATQAAAAAATQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAADWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAWQAAAAABWQAAAAACTQAAAAAATQAAAAAATQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAABWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAZAAAAAACWQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAADZAAAAAADeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAA + tiles: eQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAIgAAAAAAeQAAAAAAeQAAAAAAIgAAAAABIgAAAAABHQAAAAACeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAIgAAAAABIgAAAAACIgAAAAAAIgAAAAAAIgAAAAABIgAAAAABIgAAAAACIgAAAAAAIgAAAAACeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAWQAAAAADWQAAAAADWQAAAAAAWQAAAAACWQAAAAADWQAAAAACWQAAAAADWQAAAAAAWQAAAAACWQAAAAABWQAAAAABeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAWQAAAAACWQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAAAWQAAAAABeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZAAAAAADWQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAACZAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAWQAAAAADWQAAAAABTQAAAAAATQAAAAAATQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAAAWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAWQAAAAACWQAAAAABTQAAAAAATQAAAAAATQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAADWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAZAAAAAAAWQAAAAABaQAAAAAAaQAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaQAAAAAAaQAAAAAAWQAAAAAAZAAAAAACeQAAAAAAIgAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAWQAAAAACWQAAAAAAaQAAAAAAaQAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaQAAAAAAaQAAAAAAWQAAAAADWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAZAAAAAAAWQAAAAAAaQAAAAAAaQAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaQAAAAAAaQAAAAAAWQAAAAABZAAAAAACeQAAAAAAIgAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAADTQAAAAAATQAAAAAATQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAADWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAWQAAAAABWQAAAAACTQAAAAAATQAAAAAATQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAABWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAZAAAAAACWQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAADZAAAAAADeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAA version: 6 -1,0: ind: -1,0 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAJQAAAAACIgAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAIgAAAAADeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAIgAAAAABeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAIgAAAAADeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAJQAAAAADIgAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAJQAAAAACIgAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAATQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAATQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAATQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAJQAAAAADIgAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 -1,-1: ind: -1,-1 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAA + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAIgAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAIgAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAA version: 6 0,-2: ind: 0,-2 @@ -73,6 +73,20 @@ entities: chunkCollection: version: 2 nodes: + - node: + angle: -1.5707963267948966 rad + color: '#FFFFFFFF' + id: Arrows + decals: + 71: 12,-6 + 72: 12,-4 + - node: + angle: 1.5707963267948966 rad + color: '#FFFFFFFF' + id: Arrows + decals: + 69: -2,-4 + 70: -2,-6 - node: color: '#FFFFFFFF' id: Bot @@ -443,8 +457,11 @@ entities: - uid: 387 components: - type: Transform + anchored: True pos: 4.5,-15.5 parent: 2 + - type: Physics + bodyType: Static - type: AtmosDevice joinedGrid: 2 - proto: AirlockCargo @@ -501,31 +518,31 @@ entities: rot: 3.141592653589793 rad pos: 11.5,-3.5 parent: 2 -- proto: AirlockGlassShuttle +- proto: AirlockExternalGlassShuttleLocked entities: - - uid: 586 + - uid: 313 components: - type: Transform rot: -1.5707963267948966 rad - pos: -2.5,-5.5 + pos: -2.5,-3.5 parent: 2 - - uid: 587 + - uid: 560 components: - type: Transform rot: -1.5707963267948966 rad - pos: -2.5,-3.5 + pos: -2.5,-5.5 parent: 2 - - uid: 588 + - uid: 562 components: - type: Transform rot: 1.5707963267948966 rad - pos: 13.5,-5.5 + pos: 13.5,-3.5 parent: 2 - - uid: 589 + - uid: 563 components: - type: Transform rot: 1.5707963267948966 rad - pos: 13.5,-3.5 + pos: 13.5,-5.5 parent: 2 - proto: AirSensor entities: @@ -582,6 +599,48 @@ entities: - type: Transform pos: 2.5,-14.5 parent: 2 +- proto: AtmosDeviceFanTiny + entities: + - uid: 947 + components: + - type: Transform + pos: 13.5,-5.5 + parent: 2 + - uid: 948 + components: + - type: Transform + pos: 13.5,-3.5 + parent: 2 + - uid: 949 + components: + - type: Transform + pos: 13.5,-2.5 + parent: 2 + - uid: 950 + components: + - type: Transform + pos: 13.5,-6.5 + parent: 2 + - uid: 951 + components: + - type: Transform + pos: -2.5,-6.5 + parent: 2 + - uid: 952 + components: + - type: Transform + pos: -2.5,-5.5 + parent: 2 + - uid: 953 + components: + - type: Transform + pos: -2.5,-3.5 + parent: 2 + - uid: 954 + components: + - type: Transform + pos: -2.5,-2.5 + parent: 2 - proto: BoxFolderClipboard entities: - uid: 779 @@ -2263,11 +2322,6 @@ entities: rot: 1.5707963267948966 rad pos: -1.5,2.5 parent: 2 - - uid: 313 - components: - - type: Transform - pos: -1.5,-3.5 - parent: 2 - uid: 528 components: - type: Transform @@ -2328,43 +2382,49 @@ entities: - type: Transform pos: 0.5,-26.5 parent: 2 - - uid: 560 + - uid: 571 components: - type: Transform - rot: 3.141592653589793 rad - pos: -1.5,-5.5 + pos: 8.5,-20.5 parent: 2 - - uid: 562 + - uid: 573 components: - type: Transform - rot: 3.141592653589793 rad - pos: 12.5,-3.5 + pos: 10.5,-20.5 parent: 2 - - uid: 563 + - uid: 578 components: - type: Transform - rot: 3.141592653589793 rad - pos: 12.5,-5.5 + pos: 9.5,-26.5 parent: 2 - - uid: 571 + - uid: 579 components: - type: Transform - pos: 8.5,-20.5 + pos: 10.5,-24.5 parent: 2 - - uid: 573 + - uid: 586 components: - type: Transform - pos: 10.5,-20.5 + rot: 1.5707963267948966 rad + pos: 13.5,-3.5 parent: 2 - - uid: 578 + - uid: 587 components: - type: Transform - pos: 9.5,-26.5 + rot: 1.5707963267948966 rad + pos: 13.5,-5.5 parent: 2 - - uid: 579 + - uid: 588 components: - type: Transform - pos: 10.5,-24.5 + rot: 1.5707963267948966 rad + pos: 11.5,-5.5 + parent: 2 + - uid: 589 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-3.5 parent: 2 - uid: 596 components: @@ -2466,6 +2526,30 @@ entities: - type: Transform pos: 10.5,-26.5 parent: 2 + - uid: 956 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-3.5 + parent: 2 + - uid: 957 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-5.5 + parent: 2 + - uid: 958 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-5.5 + parent: 2 + - uid: 959 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-3.5 + parent: 2 - proto: Chair entities: - uid: 38 @@ -4877,6 +4961,8 @@ entities: entities: - uid: 807 components: + - type: MetaData + name: shutters button - type: Transform pos: 0.5,7.5 parent: 2 @@ -6065,6 +6151,15 @@ entities: rot: 3.141592653589793 rad pos: -2.5,-4.5 parent: 2 +- proto: WarpPoint + entities: + - uid: 955 + components: + - type: Transform + pos: 5.5,-4.5 + parent: 2 + - type: WarpPoint + location: Automated Trade Station - proto: WindoorSecureEngineeringLocked entities: - uid: 371 diff --git a/Resources/Maps/core.yml b/Resources/Maps/core.yml index 9c4c459898e..537fab1f963 100644 --- a/Resources/Maps/core.yml +++ b/Resources/Maps/core.yml @@ -233,7 +233,7 @@ entities: version: 6 0,3: ind: 0,3 - tiles: WQAAAAAAHQAAAAADHQAAAAACHQAAAAADeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAADWQAAAAAAWQAAAAACWQAAAAADeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAADWQAAAAABWQAAAAABeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAABHQAAAAAAHQAAAAACWQAAAAADeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAADHQAAAAACHQAAAAACeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: WQAAAAAAHQAAAAADHQAAAAACIgAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAADWQAAAAAAWQAAAAACWQAAAAADeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAADWQAAAAABWQAAAAABeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAABHQAAAAAAHQAAAAACWQAAAAADeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAADHQAAAAACHQAAAAACeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 2,1: ind: 2,1 @@ -395,10 +395,10 @@ entities: decals: 1893: 69,-28 1894: 70,-28 - 2144: 7.759592,-44.793304 - 2145: 8.236585,-44.781075 - 6231: -44.266167,24.17379 - 6232: -43.71579,24.16156 + 2141: 7.759592,-44.793304 + 2142: 8.236585,-44.781075 + 6224: -44.266167,24.17379 + 6225: -43.71579,24.16156 - node: angle: 1.5707963267948966 rad color: '#FFFFFFFF' @@ -409,19 +409,19 @@ entities: 1329: -18,28 1787: 62,-25 1788: 62,-24 - 1960: 61,-18 - 1961: 61,-20 - 1985: 22,-38 - 1986: 22,-37 - 6229: -45.159,22.681658 - 6230: -45.17123,23.256496 + 1957: 61,-18 + 1958: 61,-20 + 1982: 22,-38 + 1983: 22,-37 + 6222: -45.159,22.681658 + 6223: -45.17123,23.256496 - node: cleanable: True angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: Arrows decals: - 3012: -25,37 + 3009: -25,37 - node: angle: 3.141592653589793 rad color: '#FFFFFFFF' @@ -432,29 +432,29 @@ entities: 1814: 68.96644,-11.160069 1815: 69.96644,-11.15081 1816: 67.97107,-11.15544 - 6227: -43.71579,21.837746 - 6228: -44.32732,21.837746 - 6755: -33,-12 + 6220: -43.71579,21.837746 + 6221: -44.32732,21.837746 + 6748: -33,-12 - node: angle: 4.71238898038469 rad color: '#FFFFFFFF' id: Arrows decals: 1274: 25,12 - 6225: -42.87188,22.669428 - 6226: -42.85965,23.219805 + 6218: -42.87188,22.669428 + 6219: -42.85965,23.219805 - node: color: '#FFFFFFFF' id: Basalt1 decals: 309: 26,-21 - 2262: 26,1 + 2259: 26,1 - node: cleanable: True color: '#FFFFFFFF' id: Basalt1 decals: - 3058: 80.98914,-5.89228 + 3055: 80.98914,-5.89228 - node: color: '#FFFFFFFF' id: Basalt2 @@ -465,7 +465,7 @@ entities: color: '#FFFFFFFF' id: Basalt2 decals: - 3060: 79.36655,-6.805498 + 3057: 79.36655,-6.805498 - node: color: '#FFFFFFFF' id: Basalt3 @@ -477,14 +477,14 @@ entities: color: '#FFFFFFFF' id: Basalt3 decals: - 3057: 80.410225,-6.9767265 + 3054: 80.410225,-6.9767265 - node: color: '#FFFFFFFF' id: Basalt4 decals: 315: 26,-24 941: -48,-27 - 1945: 56,-23 + 1943: 56,-23 - node: color: '#FFFFFFFF' id: Basalt5 @@ -492,8 +492,8 @@ entities: 311: 26,-22 314: 25,-23 940: -48,-28 - 1943: 54,-21 - 2263: 25,1 + 1941: 54,-21 + 2260: 25,1 - node: color: '#FFFFFFFF' id: Basalt6 @@ -506,13 +506,13 @@ entities: 310: 25,-22 938: -49,-29 1751: 57,18 - 1944: 57,-23 + 1942: 57,-23 - node: cleanable: True color: '#FFFFFFFF' id: Basalt7 decals: - 3059: 80.88314,-7.8817906 + 3056: 80.88314,-7.8817906 - node: color: '#FFFFFFFF' id: Basalt8 @@ -530,31 +530,31 @@ entities: color: '#FFFFFFFF' id: Basalt9 decals: - 3061: 79.17086,-7.824714 + 3058: 79.17086,-7.824714 - node: color: '#D4D4D428' id: Bot decals: - 2217: -36,-58 - 2218: -36,-59 - 2219: -36,-60 - 2220: -36,-61 - 2221: -36,-62 - 2222: -36,-63 - 2223: -36,-64 - 2224: -60,-58 - 2225: -60,-59 - 2226: -60,-60 - 2227: -60,-61 - 2228: -60,-62 - 2229: -60,-63 - 2230: -60,-64 + 2214: -36,-58 + 2215: -36,-59 + 2216: -36,-60 + 2217: -36,-61 + 2218: -36,-62 + 2219: -36,-63 + 2220: -36,-64 + 2221: -60,-58 + 2222: -60,-59 + 2223: -60,-60 + 2224: -60,-61 + 2225: -60,-62 + 2226: -60,-63 + 2227: -60,-64 - node: color: '#DE3A3A41' id: Bot decals: - 6680: -38,-45 - 6681: -38,-45 + 6673: -38,-45 + 6674: -38,-45 - node: color: '#EFB34196' id: Bot @@ -628,7 +628,7 @@ entities: color: '#EFB341FF' id: Bot decals: - 6149: 15,41 + 6142: 15,41 - node: angle: -1.5707963267948966 rad color: '#FFFFFFFF' @@ -638,8 +638,8 @@ entities: 1790: 63,-24 1791: 65,-25 1792: 65,-24 - 2185: -10,-41 - 2186: -10,-40 + 2182: -10,-41 + 2183: -10,-40 - node: color: '#FFFFFFFF' id: Bot @@ -734,178 +734,174 @@ entities: 1873: 63,-19 1878: 70,-22 1907: 69,-13 - 1965: 22,-39 - 1984: 22,-36 - 2025: 28,-36 - 2026: 29,-36 - 2027: 28,-47 - 2082: 12,-46 - 2083: 13,-46 - 2130: -2,-35 - 2131: -1,-35 - 2132: 3,-38 - 2133: 3,-37 - 2153: 9,-46 - 2154: 9,-47 - 2155: 7,-47 - 2156: 7,-46 - 2157: 10,-41 - 2163: 12,-38 - 2182: -6,-34 - 2183: -5,-34 - 2184: -4,-34 - 2234: 41,-10 - 2235: -23,12 - 2851: 66,-23 - 2883: -27,30 - 2896: 57,15 - 3185: 75,-13 - 3186: 75,-15 - 3191: 75,-19 - 3192: 75,-17 - 6463: 48,-10 - 6464: 51,5 - 6465: 53,10 - 6608: -36,-65 - 6609: -60,-65 - 6743: -34,-11 - 6744: -34,-10 - 6745: -32,-11 - 6746: -32,-10 - 6765: 61,-21 - 6773: -24,-42 + 1962: 22,-39 + 1981: 22,-36 + 2022: 28,-36 + 2023: 29,-36 + 2024: 28,-47 + 2079: 12,-46 + 2080: 13,-46 + 2127: -2,-35 + 2128: -1,-35 + 2129: 3,-38 + 2130: 3,-37 + 2150: 9,-46 + 2151: 9,-47 + 2152: 7,-47 + 2153: 7,-46 + 2154: 10,-41 + 2160: 12,-38 + 2179: -6,-34 + 2180: -5,-34 + 2181: -4,-34 + 2231: 41,-10 + 2232: -23,12 + 2848: 66,-23 + 2880: -27,30 + 2893: 57,15 + 3181: 75,-13 + 3182: 75,-15 + 3187: 75,-19 + 3188: 75,-17 + 6456: 48,-10 + 6457: 51,5 + 6458: 53,10 + 6601: -36,-65 + 6602: -60,-65 + 6736: -34,-11 + 6737: -34,-10 + 6738: -32,-11 + 6739: -32,-10 + 6758: 61,-21 + 6765: -24,-42 + 6775: 3,48 - node: cleanable: True color: '#FFFFFFFF' id: Bot decals: - 2980: -25,34 - 2981: -25,35 - 2982: -30,35 - 2983: -30,34 - 3009: -23,38 - 3010: -10,38 - 3011: -9,38 - 3062: 78,-8 - 3063: 79,-8 + 2977: -25,34 + 2978: -25,35 + 2979: -30,35 + 2980: -30,34 + 3006: -23,38 + 3007: -10,38 + 3008: -9,38 + 3059: 78,-8 + 3060: 79,-8 - node: angle: 3.141592653589793 rad color: '#FFFFFFFF' id: Bot decals: - 6626: 91,-19 - 6627: 91,-18 - 6628: 92,-18 - 6629: 92,-19 - 6630: 87,-19 - 6631: 88,-19 - 6632: 88,-18 - 6633: 87,-18 - - node: - color: '#32CD32FF' - id: BotGreyscale - decals: - 1744: 59,17 + 6619: 91,-19 + 6620: 91,-18 + 6621: 92,-18 + 6622: 92,-19 + 6623: 87,-19 + 6624: 88,-19 + 6625: 88,-18 + 6626: 87,-18 - node: color: '#52B4E996' id: BotGreyscale decals: - 6368: 55,8 - 6369: 55,8 - 6370: 56,8 - 6371: 56,8 - 6385: 57,1 - 6386: 57,1 - 6387: 56,1 - 6388: 56,1 - 6389: 55,4 - 6390: 55,4 - 6391: 56,4 - 6392: 56,4 - 6393: 57,4 - 6394: 57,4 + 6361: 55,8 + 6362: 55,8 + 6363: 56,8 + 6364: 56,8 + 6378: 57,1 + 6379: 57,1 + 6380: 56,1 + 6381: 56,1 + 6382: 55,4 + 6383: 55,4 + 6384: 56,4 + 6385: 56,4 + 6386: 57,4 + 6387: 57,4 - node: cleanable: True color: '#D4D4D428' id: BotGreyscale decals: - 3032: 76,-28 - 3033: 80,-28 - 3034: 78,-30 - 3035: 78,-26 + 3029: 76,-28 + 3030: 80,-28 + 3031: 78,-30 + 3032: 78,-26 - node: cleanable: True color: '#EFB341FF' id: BotLeft decals: - 6145: 6,-14 - 6147: 6,-14 + 6138: 6,-14 + 6140: 6,-14 - node: color: '#FFFFFFFF' id: BotLeft decals: 1871: 74,-13 1872: 74,-12 - 1966: 23,-39 - 1967: 24,-39 - 1968: 25,-39 - 2161: 12,-39 - 6588: -3,33 + 1963: 23,-39 + 1964: 24,-39 + 1965: 25,-39 + 2158: 12,-39 + 6581: -3,33 - node: cleanable: True color: '#FFFFFFFF' id: BotLeft decals: - 6142: 6,-14 + 6135: 6,-14 - node: angle: -6.283185307179586 rad color: '#EFB34196' id: BotLeftGreyscale decals: - 6668: -1,-20 - 6669: -1,-21 + 6661: -1,-20 + 6662: -1,-21 - node: cleanable: True color: '#EFB341FF' id: BotLeftGreyscale decals: - 6146: 6,-14 + 6139: 6,-14 - node: angle: -6.283185307179586 rad color: '#EFB34196' id: BotRight decals: - 6670: -2,-21 - 6671: -2,-20 + 6663: -2,-21 + 6664: -2,-20 - node: cleanable: True color: '#EFB341FF' id: BotRight decals: - 6148: 6,-15 + 6141: 6,-15 - node: color: '#FFFFFFFF' id: BotRight decals: 1869: 73,-12 1870: 73,-13 - 1969: 23,-36 - 1970: 24,-36 - 1971: 25,-36 - 2162: 12,-40 - 6589: -3,34 + 1966: 23,-36 + 1967: 24,-36 + 1968: 25,-36 + 2159: 12,-40 + 6582: -3,34 - node: cleanable: True color: '#FFFFFFFF' id: BotRight decals: - 6143: 6,-15 + 6136: 6,-15 - node: cleanable: True color: '#EFB341FF' id: BotRightGreyscale decals: - 6144: 6,-15 + 6137: 6,-15 - node: color: '#FFFFFFFF' id: Box @@ -914,15 +910,15 @@ entities: 1089: 34,0 1118: -57,-24 1119: -56,-24 - 1999: 19,-37 - 2000: 19,-36 - 6653: 92,-20 + 1996: 19,-37 + 1997: 19,-36 + 6646: 92,-20 - node: color: '#FFFFFFFF' id: BrickTileDarkBox decals: - 2126: 18,-56 - 2127: 19,-56 + 2123: 18,-56 + 2124: 19,-56 - node: color: '#FFFFFFFF' id: BrickTileDarkCornerNe @@ -931,7 +927,7 @@ entities: 1067: 28,-29 1432: 58,-34 1886: 69,-29 - 2108: 22,-53 + 2105: 22,-53 - node: color: '#FFFFFFFF' id: BrickTileDarkCornerNw @@ -941,7 +937,7 @@ entities: 1065: 24,-29 1429: 56,-34 1885: 70,-29 - 2111: 15,-53 + 2108: 15,-53 - node: color: '#FFFFFFFF' id: BrickTileDarkCornerSe @@ -951,8 +947,8 @@ entities: 1066: 28,-34 1430: 58,-36 1888: 69,-30 - 2084: 17,-53 - 2110: 22,-60 + 2081: 17,-53 + 2107: 22,-60 - node: color: '#FFFFFFFF' id: BrickTileDarkCornerSw @@ -962,8 +958,8 @@ entities: 1068: 24,-34 1431: 56,-36 1887: 70,-30 - 2085: 20,-53 - 2109: 15,-60 + 2082: 20,-53 + 2106: 15,-60 - node: color: '#FFFFFFFF' id: BrickTileDarkInnerNe @@ -975,10 +971,10 @@ entities: 1810: 70,-11 1865: 74,-17 1868: 74,-14 - 2102: 15,-60 - 2107: 22,-53 - 2114: 21,-53 - 2115: 22,-54 + 2099: 15,-60 + 2104: 22,-53 + 2111: 21,-53 + 2112: 22,-54 - node: color: '#FFFFFFFF' id: BrickTileDarkInnerNw @@ -989,10 +985,10 @@ entities: 1153: -1,21 1423: 58,-36 1809: 68,-11 - 2103: 22,-60 - 2106: 15,-53 - 2112: 16,-53 - 2113: 15,-54 + 2100: 22,-60 + 2103: 15,-53 + 2109: 16,-53 + 2110: 15,-54 - node: color: '#FFFFFFFF' id: BrickTileDarkInnerSe @@ -1002,10 +998,10 @@ entities: 1422: 56,-34 1866: 74,-15 1867: 74,-19 - 2101: 15,-53 - 2104: 22,-60 - 2116: 22,-59 - 2117: 21,-60 + 2098: 15,-53 + 2101: 22,-60 + 2113: 22,-59 + 2114: 21,-60 - node: color: '#FFFFFFFF' id: BrickTileDarkInnerSw @@ -1013,10 +1009,10 @@ entities: 45: -12,-14 478: -25,-1 1421: 58,-34 - 2100: 22,-53 - 2105: 15,-60 - 2118: 15,-59 - 2119: 16,-60 + 2097: 22,-53 + 2102: 15,-60 + 2115: 15,-59 + 2116: 16,-60 - node: color: '#FFFFFFFF' id: BrickTileDarkLineE @@ -1104,25 +1100,25 @@ entities: 1425: 58,-35 1881: 69,-30 1882: 69,-29 - 1962: 22,-39 - 1963: 22,-38 - 1964: 22,-37 - 2005: 27,-47 - 2006: 27,-46 - 2007: 27,-45 - 2008: 27,-44 - 2009: 27,-43 - 2010: 27,-42 - 2095: 15,-59 - 2096: 15,-58 - 2097: 15,-57 - 2098: 15,-55 - 2099: 15,-54 - 2124: 16,-60 - 2146: 9,-47 - 2147: 9,-46 - 6466: 53,12 - 6467: 53,11 + 1959: 22,-39 + 1960: 22,-38 + 1961: 22,-37 + 2002: 27,-47 + 2003: 27,-46 + 2004: 27,-45 + 2005: 27,-44 + 2006: 27,-43 + 2007: 27,-42 + 2092: 15,-59 + 2093: 15,-58 + 2094: 15,-57 + 2095: 15,-55 + 2096: 15,-54 + 2121: 16,-60 + 2143: 9,-47 + 2144: 9,-46 + 6459: 53,12 + 6460: 53,11 - node: color: '#FFFFFFFF' id: BrickTileDarkLineN @@ -1207,24 +1203,24 @@ entities: 1808: 71,-11 1891: 71,-29 1892: 68,-29 - 2019: 28,-43 - 2020: 29,-43 - 2088: 16,-60 - 2089: 21,-60 - 2120: 15,-57 - 2121: 22,-57 - 2138: 7,-46 - 2139: 9,-46 - 2140: 8,-46 - 6132: -14,-23 - 6133: -15,-23 - 6134: -16,-23 - 6641: 87,-20 - 6642: 88,-20 - 6643: 89,-20 - 6644: 90,-20 - 6645: 91,-20 - 6646: 92,-20 + 2016: 28,-43 + 2017: 29,-43 + 2085: 16,-60 + 2086: 21,-60 + 2117: 15,-57 + 2118: 22,-57 + 2135: 7,-46 + 2136: 9,-46 + 2137: 8,-46 + 6125: -14,-23 + 6126: -15,-23 + 6127: -16,-23 + 6634: 87,-20 + 6635: 88,-20 + 6636: 89,-20 + 6637: 90,-20 + 6638: 91,-20 + 6639: 92,-20 - node: color: '#FFFFFFFF' id: BrickTileDarkLineS @@ -1299,51 +1295,51 @@ entities: 1518: -40,-54 1889: 68,-30 1890: 71,-30 - 2021: 28,-46 - 2022: 29,-46 - 2086: 16,-53 - 2087: 21,-53 - 2122: 22,-55 - 2123: 15,-55 - 2150: 8,-47 - 2151: 7,-47 - 2152: 9,-47 - 2168: 10,-40 - 2169: 11,-40 - 2233: -42,-54 - 6129: -14,-25 - 6130: -15,-25 - 6131: -16,-25 - 6234: -3,43 - 6235: -2,43 - 6236: -1,43 - 6267: 45,14 - 6268: 47,14 - 6269: 46,14 - 6440: 49,-11 - 6441: 52,-11 - 6605: -29,-17 - 6647: 87,-21 - 6648: 89,-21 - 6649: 88,-21 - 6650: 90,-21 - 6651: 91,-21 - 6652: 92,-21 + 2018: 28,-46 + 2019: 29,-46 + 2083: 16,-53 + 2084: 21,-53 + 2119: 22,-55 + 2120: 15,-55 + 2147: 8,-47 + 2148: 7,-47 + 2149: 9,-47 + 2165: 10,-40 + 2166: 11,-40 + 2230: -42,-54 + 6122: -14,-25 + 6123: -15,-25 + 6124: -16,-25 + 6227: -3,43 + 6228: -2,43 + 6229: -1,43 + 6260: 45,14 + 6261: 47,14 + 6262: 46,14 + 6433: 49,-11 + 6434: 52,-11 + 6598: -29,-17 + 6640: 87,-21 + 6641: 89,-21 + 6642: 88,-21 + 6643: 90,-21 + 6644: 91,-21 + 6645: 92,-21 - node: cleanable: True color: '#FFFFFFFF' id: BrickTileDarkLineS decals: - 2984: -30,36 - 2985: -29,36 - 2986: -28,36 - 2987: -27,36 - 2988: -26,36 - 3008: -30,36 - 3028: 76,-25 - 3029: 77,-25 - 3030: 78,-25 - 3031: 79,-25 + 2981: -30,36 + 2982: -29,36 + 2983: -28,36 + 2984: -27,36 + 2985: -26,36 + 3005: -30,36 + 3025: 76,-25 + 3026: 77,-25 + 3027: 78,-25 + 3028: 79,-25 - node: color: '#FFFFFFFF' id: BrickTileDarkLineW @@ -1431,14 +1427,14 @@ entities: 1426: 56,-35 1883: 70,-30 1884: 70,-29 - 2090: 22,-59 - 2091: 22,-58 - 2092: 22,-57 - 2093: 22,-55 - 2094: 22,-54 - 2125: 21,-60 - 2148: 7,-47 - 2149: 7,-46 + 2087: 22,-59 + 2088: 22,-58 + 2089: 22,-57 + 2090: 22,-55 + 2091: 22,-54 + 2122: 21,-60 + 2145: 7,-47 + 2146: 7,-46 - node: color: '#FFFFFFFF' id: BrickTileSteelCornerNe @@ -1450,28 +1446,28 @@ entities: id: BrickTileSteelInnerNe decals: 703: -39,-34 - 1954: 57,-21 - 6750: -33,-12 + 1952: 57,-21 + 6743: -33,-12 - node: color: '#FFFFFFFF' id: BrickTileSteelInnerNw decals: 702: -30,-34 - 1953: 54,-21 - 6749: -33,-12 + 1951: 54,-21 + 6742: -33,-12 - node: color: '#FFFFFFFF' id: BrickTileSteelInnerSe decals: 701: -39,-25 - 1955: 57,-23 + 1953: 57,-23 - node: color: '#FFFFFFFF' id: BrickTileSteelInnerSw decals: 700: -30,-25 1416: 44,5 - 1956: 54,-23 + 1954: 54,-23 - node: color: '#FFFFFFFF' id: BrickTileSteelLineE @@ -1538,20 +1534,20 @@ entities: 1165: -11,28 1879: 69,-28 1880: 70,-28 - 2128: 0,-37 - 2129: 1,-37 - 2134: 2,-37 - 2880: -27,27 - 2881: -26,27 - 2882: -25,27 - 6747: -34,-12 - 6748: -32,-12 + 2125: 0,-37 + 2126: 1,-37 + 2131: 2,-37 + 2877: -27,27 + 2878: -26,27 + 2879: -25,27 + 6740: -34,-12 + 6741: -32,-12 - node: cleanable: True color: '#FFFFFF35' id: BrickTileSteelLineS decals: - 6170: 83,-35 + 6163: 83,-35 - node: color: '#FFFFFFFF' id: BrickTileSteelLineS @@ -1582,17 +1578,17 @@ entities: 1414: 42,5 1415: 43,5 1478: 41,5 - 3067: 51,22 - 3068: 50,22 - 3069: 52,22 - 6603: -34,-17 - 6604: -33,-17 + 3064: 51,22 + 3065: 50,22 + 3066: 52,22 + 6596: -34,-17 + 6597: -33,-17 - node: cleanable: True color: '#FFFFFF35' id: BrickTileSteelLineW decals: - 6169: 81,-34 + 6162: 81,-34 - node: color: '#FFFFFFFF' id: BrickTileSteelLineW @@ -1640,18 +1636,18 @@ entities: color: '#DE3A3A96' id: BrickTileWhiteCornerNe decals: - 6737: 52,-26 + 6730: 52,-26 - node: color: '#EFB34196' id: BrickTileWhiteCornerNe decals: - 2857: -4,14 + 2854: -4,14 - node: cleanable: True color: '#EFB34196' id: BrickTileWhiteCornerNe decals: - 2993: -25,38 + 2990: -25,38 - node: color: '#A4610696' id: BrickTileWhiteCornerNw @@ -1668,19 +1664,19 @@ entities: color: '#DE3A3A96' id: BrickTileWhiteCornerNw decals: - 6736: 51,-26 + 6729: 51,-26 - node: color: '#EFB34196' id: BrickTileWhiteCornerNw decals: - 2213: -54,9 - 2856: -2,14 + 2210: -54,9 + 2853: -2,14 - node: cleanable: True color: '#EFB34196' id: BrickTileWhiteCornerNw decals: - 2992: -30,38 + 2989: -30,38 - node: color: '#A4610696' id: BrickTileWhiteCornerSe @@ -1699,7 +1695,7 @@ entities: color: '#DE3A3A96' id: BrickTileWhiteCornerSe decals: - 6735: 52,-27 + 6728: 52,-27 - node: color: '#A4610696' id: BrickTileWhiteCornerSw @@ -1715,12 +1711,12 @@ entities: color: '#DE3A3A96' id: BrickTileWhiteCornerSw decals: - 6738: 51,-27 + 6731: 51,-27 - node: color: '#EFB34196' id: BrickTileWhiteEndE decals: - 2879: 63,9 + 2876: 63,9 - node: color: '#334E6DC8' id: BrickTileWhiteInnerNe @@ -1734,8 +1730,8 @@ entities: decals: 1480: 41,5 1760: 57,-7 - 6414: 48,-1 - 6431: 49,-7 + 6407: 48,-1 + 6424: 49,-7 - node: color: '#A4610696' id: BrickTileWhiteInnerNe @@ -1761,8 +1757,8 @@ entities: id: BrickTileWhiteInnerNw decals: 1479: 45,5 - 6413: 52,-1 - 6430: 51,-7 + 6406: 52,-1 + 6423: 51,-7 - node: color: '#EFB34196' id: BrickTileWhiteInnerNw @@ -1778,9 +1774,9 @@ entities: id: BrickTileWhiteInnerSe decals: 1482: 45,4 - 6412: 48,-8 - 6429: 49,-2 - 6433: 50,-8 + 6405: 48,-8 + 6422: 49,-2 + 6426: 50,-8 - node: color: '#A4610696' id: BrickTileWhiteInnerSe @@ -1805,9 +1801,9 @@ entities: color: '#52B4E996' id: BrickTileWhiteInnerSw decals: - 6411: 52,-8 - 6428: 51,-2 - 6432: 50,-8 + 6404: 52,-8 + 6421: 51,-2 + 6425: 50,-8 - node: color: '#A4610696' id: BrickTileWhiteInnerSw @@ -1841,43 +1837,43 @@ entities: 1757: 57,-6 1758: 57,-5 1759: 57,-4 - 6316: 42,9 - 6317: 42,7 - 6323: 47,9 - 6324: 47,8 - 6325: 47,7 - 6341: 51,1 - 6342: 51,2 - 6343: 51,3 - 6344: 51,4 - 6345: 51,6 - 6346: 51,7 - 6347: 51,8 - 6348: 51,9 - 6349: 51,10 - 6350: 51,11 - 6351: 51,12 - 6352: 51,13 - 6353: 51,14 - 6354: 51,15 - 6359: 56,10 - 6360: 56,11 - 6361: 56,12 - 6365: 56,6 - 6366: 56,7 - 6367: 56,8 - 6403: 52,-1 - 6404: 52,-2 - 6405: 52,-3 - 6406: 52,-4 - 6407: 52,-5 - 6408: 52,-6 - 6409: 52,-7 - 6410: 52,-8 - 6424: 49,-6 - 6425: 49,-5 - 6426: 49,-4 - 6427: 49,-3 + 6309: 42,9 + 6310: 42,7 + 6316: 47,9 + 6317: 47,8 + 6318: 47,7 + 6334: 51,1 + 6335: 51,2 + 6336: 51,3 + 6337: 51,4 + 6338: 51,6 + 6339: 51,7 + 6340: 51,8 + 6341: 51,9 + 6342: 51,10 + 6343: 51,11 + 6344: 51,12 + 6345: 51,13 + 6346: 51,14 + 6347: 51,15 + 6352: 56,10 + 6353: 56,11 + 6354: 56,12 + 6358: 56,6 + 6359: 56,7 + 6360: 56,8 + 6396: 52,-1 + 6397: 52,-2 + 6398: 52,-3 + 6399: 52,-4 + 6400: 52,-5 + 6401: 52,-6 + 6402: 52,-7 + 6403: 52,-8 + 6417: 49,-6 + 6418: 49,-5 + 6419: 49,-4 + 6420: 49,-3 - node: color: '#9FED5896' id: BrickTileWhiteLineE @@ -1937,9 +1933,9 @@ entities: 1137: -1,24 1144: -1,25 1325: -18,28 - 6672: -37,-44 - 6673: -37,-45 - 6686: -37,-46 + 6665: -37,-44 + 6666: -37,-45 + 6679: -37,-46 - node: color: '#EFB34196' id: BrickTileWhiteLineE @@ -1950,20 +1946,20 @@ entities: 1459: 41,12 1469: 47,13 1470: 47,11 - 2190: -4,-37 - 2191: -4,-35 - 2894: -39,-38 + 2187: -4,-37 + 2188: -4,-35 + 2891: -39,-38 - node: cleanable: True color: '#EFB34196' id: BrickTileWhiteLineE decals: - 2991: -25,37 - 2998: -32,38 - 2999: -32,37 - 3000: -32,36 - 3001: -32,35 - 3002: -32,34 + 2988: -25,37 + 2995: -32,38 + 2996: -32,37 + 2997: -32,36 + 2998: -32,35 + 2999: -32,34 - node: color: '#FFFFFFFF' id: BrickTileWhiteLineE @@ -1978,10 +1974,10 @@ entities: 1018: 41,-34 1048: 38,-34 1049: 42,-34 - 1978: 19,-36 - 1979: 20,-36 - 1983: 21,-36 - 2013: 24,-46 + 1975: 19,-36 + 1976: 20,-36 + 1980: 21,-36 + 2010: 24,-46 - node: color: '#474F52A7' id: BrickTileWhiteLineN @@ -2009,16 +2005,16 @@ entities: 1754: 60,-7 1755: 61,-7 1756: 62,-7 - 6376: 53,3 - 6377: 54,3 - 6378: 55,3 - 6379: 57,3 - 6415: 51,-1 - 6416: 50,-1 - 6417: 49,-1 - 6437: 49,-10 - 6438: 50,-10 - 6439: 51,-10 + 6369: 53,3 + 6370: 54,3 + 6371: 55,3 + 6372: 57,3 + 6408: 51,-1 + 6409: 50,-1 + 6410: 49,-1 + 6430: 49,-10 + 6431: 50,-10 + 6432: 51,-10 - node: color: '#79150096' id: BrickTileWhiteLineN @@ -2030,7 +2026,7 @@ entities: decals: 1264: -1,53 1265: 0,53 - 2011: 24,-43 + 2008: 24,-43 - node: color: '#A4610696' id: BrickTileWhiteLineN @@ -2056,13 +2052,13 @@ entities: 1847: 75,-13 1848: 77,-17 1849: 75,-17 - 3187: 76,-13 - 3190: 76,-17 + 3183: 76,-13 + 3186: 76,-17 - node: color: '#D4D4D496' id: BrickTileWhiteLineN decals: - 2012: 25,-43 + 2009: 25,-43 - node: color: '#DE3A3A96' id: BrickTileWhiteLineN @@ -2070,7 +2066,7 @@ entities: 1205: -3,32 1206: -2,32 1207: -1,32 - 2014: 25,-46 + 2011: 25,-46 - node: color: '#EFB34196' id: BrickTileWhiteLineN @@ -2091,28 +2087,28 @@ entities: 1453: 43,11 1454: 46,11 1455: 45,11 - 2187: 0,-35 - 2188: 1,-35 - 2214: -53,9 - 2892: -62,-21 - 2893: -61,-21 + 2184: 0,-35 + 2185: 1,-35 + 2211: -53,9 + 2889: -62,-21 + 2890: -61,-21 - node: cleanable: True color: '#EFB34196' id: BrickTileWhiteLineN decals: - 2994: -29,38 - 2995: -28,38 - 2996: -27,38 - 2997: -26,38 + 2991: -29,38 + 2992: -28,38 + 2993: -27,38 + 2994: -26,38 - node: color: '#FFFFFFFF' id: BrickTileWhiteLineN decals: - 2244: 13,25 - 2245: 14,25 - 2246: 15,25 - 6215: 14,22 + 2241: 13,25 + 2242: 14,25 + 2243: 15,25 + 6208: 14,22 - node: color: '#334E6DC8' id: BrickTileWhiteLineS @@ -2123,11 +2119,11 @@ entities: 356: 47,-22 357: 48,-22 358: 49,-22 - 1980: 19,-39 - 1981: 20,-39 - 1982: 21,-39 - 6716: 52,-37 - 6717: 51,-37 + 1977: 19,-39 + 1978: 20,-39 + 1979: 21,-39 + 6709: 52,-37 + 6710: 51,-37 - node: color: '#474F52A7' id: BrickTileWhiteLineS @@ -2148,18 +2144,18 @@ entities: 1481: 46,4 1720: 60,0 1721: 59,0 - 2017: 24,-46 - 6380: 57,2 - 6381: 56,2 - 6382: 55,2 - 6383: 54,2 - 6384: 53,2 - 6418: 49,-8 - 6419: 51,-8 - 6434: 48,-11 - 6435: 51,-11 - 6436: 53,-11 - 6442: 50,-11 + 2014: 24,-46 + 6373: 57,2 + 6374: 56,2 + 6375: 55,2 + 6376: 54,2 + 6377: 53,2 + 6411: 49,-8 + 6412: 51,-8 + 6427: 48,-11 + 6428: 51,-11 + 6429: 53,-11 + 6435: 50,-11 - node: color: '#79150096' id: BrickTileWhiteLineS @@ -2191,7 +2187,7 @@ entities: 1357: 28,17 1387: 34,17 1388: 35,17 - 2015: 24,-43 + 2012: 24,-43 - node: color: '#D381C996' id: BrickTileWhiteLineS @@ -2209,9 +2205,9 @@ entities: 1851: 77,-19 1852: 75,-15 1853: 77,-15 - 2018: 25,-43 - 3188: 76,-15 - 3189: 76,-19 + 2015: 25,-43 + 3184: 76,-15 + 3185: 76,-19 - node: color: '#DE3A3A96' id: BrickTileWhiteLineS @@ -2244,12 +2240,12 @@ entities: 1456: 44,13 1457: 45,13 1458: 46,13 - 2016: 25,-46 - 2160: 9,-41 - 2868: 61,-31 - 2869: 62,-31 - 2870: 63,-31 - 6243: 42,13 + 2013: 25,-46 + 2157: 9,-41 + 2865: 61,-31 + 2866: 62,-31 + 2867: 63,-31 + 6236: 42,13 - node: color: '#FFFFFFFF' id: BrickTileWhiteLineS @@ -2272,41 +2268,41 @@ entities: color: '#52B4E996' id: BrickTileWhiteLineW decals: - 6318: 46,7 - 6319: 46,9 - 6320: 41,9 - 6321: 41,8 - 6322: 41,7 - 6326: 49,1 - 6327: 49,2 - 6328: 49,3 - 6329: 49,4 - 6330: 49,5 - 6331: 49,6 - 6332: 49,7 - 6333: 49,8 - 6334: 49,9 - 6335: 49,10 - 6336: 49,11 - 6337: 49,12 - 6338: 49,13 - 6339: 49,14 - 6340: 49,15 - 6362: 53,6 - 6363: 53,7 - 6364: 53,8 - 6395: 48,-8 - 6396: 48,-7 - 6397: 48,-6 - 6398: 48,-5 - 6399: 48,-4 - 6400: 48,-3 - 6401: 48,-2 - 6402: 48,-1 - 6420: 51,-6 - 6421: 51,-5 - 6422: 51,-4 - 6423: 51,-3 + 6311: 46,7 + 6312: 46,9 + 6313: 41,9 + 6314: 41,8 + 6315: 41,7 + 6319: 49,1 + 6320: 49,2 + 6321: 49,3 + 6322: 49,4 + 6323: 49,5 + 6324: 49,6 + 6325: 49,7 + 6326: 49,8 + 6327: 49,9 + 6328: 49,10 + 6329: 49,11 + 6330: 49,12 + 6331: 49,13 + 6332: 49,14 + 6333: 49,15 + 6355: 53,6 + 6356: 53,7 + 6357: 53,8 + 6388: 48,-8 + 6389: 48,-7 + 6390: 48,-6 + 6391: 48,-5 + 6392: 48,-4 + 6393: 48,-3 + 6394: 48,-2 + 6395: 48,-1 + 6413: 51,-6 + 6414: 51,-5 + 6415: 51,-4 + 6416: 51,-3 - node: color: '#9FED5896' id: BrickTileWhiteLineW @@ -2370,10 +2366,10 @@ entities: color: '#EFB3413B' id: BrickTileWhiteLineW decals: - 6165: 14,39 - 6166: 14,40 - 6167: 14,41 - 6168: 14,42 + 6158: 14,39 + 6159: 14,40 + 6160: 14,41 + 6161: 14,42 - node: color: '#EFB34196' id: BrickTileWhiteLineW @@ -2390,29 +2386,29 @@ entities: 1471: 41,11 1472: 41,12 1473: 41,13 - 2158: 8,-40 - 2159: 8,-39 - 2189: -2,-36 - 2192: -6,-37 - 2193: -6,-36 - 2194: -6,-35 - 2203: 39,-15 - 2204: 39,-17 - 2205: 39,-16 - 2886: -22,34 - 2887: -22,35 + 2155: 8,-40 + 2156: 8,-39 + 2186: -2,-36 + 2189: -6,-37 + 2190: -6,-36 + 2191: -6,-35 + 2200: 39,-15 + 2201: 39,-17 + 2202: 39,-16 + 2883: -22,34 + 2884: -22,35 - node: cleanable: True color: '#EFB34196' id: BrickTileWhiteLineW decals: - 2989: -30,36 - 2990: -30,37 - 3003: -34,34 - 3004: -34,35 - 3005: -34,36 - 3006: -34,37 - 3007: -34,38 + 2986: -30,36 + 2987: -30,37 + 3000: -34,34 + 3001: -34,35 + 3002: -34,36 + 3003: -34,37 + 3004: -34,38 - node: color: '#FFFFFFFF' id: BrickTileWhiteLineW @@ -2440,7 +2436,7 @@ entities: id: BushCOne decals: 862: -45,4 - 1935: 56,-21 + 1933: 56,-21 - node: color: '#FFFFFFFF' id: BushCThree @@ -2450,7 +2446,7 @@ entities: 866: -48,-2 1107: 42,-30 1485: -49,-49 - 2258: 24,1 + 2255: 24,1 - node: color: '#FFFFFFFF' id: BushCTwo @@ -2459,13 +2455,13 @@ entities: 321: 26,-23 525: -38,6 1486: -46,-49 - 1936: 56,-22 + 1934: 56,-22 - node: cleanable: True color: '#FFFFFFFF' id: BushCTwo decals: - 3038: 81,-8 + 3035: 81,-8 - node: color: '#FFFFFFFF' id: BushDTwo @@ -2477,14 +2473,14 @@ entities: decals: 523: -39,5 925: -48,-28 - 1938: 57,-23 - 1957: 54,-23 + 1936: 57,-23 + 1955: 54,-23 - node: cleanable: True color: '#FFFFFFFF' id: Busha1 decals: - 3039: 82,-6 + 3036: 82,-6 - node: color: '#FFFFFFFF' id: Busha2 @@ -2492,7 +2488,7 @@ entities: 531: -30,7 926: -47,-29 1727: 58,19 - 1937: 55,-23 + 1935: 55,-23 - node: color: '#FFFFFFFF' id: Busha3 @@ -2513,7 +2509,7 @@ entities: color: '#FFFFFFFF' id: Bushb1 decals: - 3036: 81,-7 + 3033: 81,-7 - node: color: '#FFFFFFFF' id: Bushb2 @@ -2521,7 +2517,7 @@ entities: 558: -24,7 916: -47,-8 1746: 57,19 - 1933: 54,-21 + 1931: 54,-21 - node: color: '#FFFFFFFF' id: Bushb3 @@ -2538,27 +2534,27 @@ entities: 530: -29,6 867: -45,-2 929: -49,-27 - 1934: 55,-22 + 1932: 55,-22 - node: cleanable: True color: '#FFFFFFFF' id: Bushc1 decals: - 3037: 82,-7 + 3034: 82,-7 - node: color: '#FFFFFFFF' id: Bushc2 decals: 528: -28,6 1487: -47,-49 - 2260: 25,1 + 2257: 25,1 - node: color: '#FFFFFFFF' id: Bushc3 decals: 35: -5,-12 1484: -51,-49 - 2259: 26,1 + 2256: 26,1 - node: color: '#FFFFFFFF' id: Bushd2 @@ -2595,7 +2591,7 @@ entities: color: '#FFFFFFFF' id: Bushi1 decals: - 3042: 80,-7 + 3039: 80,-7 - node: color: '#FFFFFFFF' id: Bushi2 @@ -2604,9 +2600,9 @@ entities: 876: -51,4 913: -48,-8 914: -51,-9 - 1939: 54,-22 - 1958: 53.45864,-23.10261 - 2261: 24,1 + 1937: 54,-22 + 1956: 53.45864,-23.10261 + 2258: 24,1 - node: color: '#FFFFFFFF' id: Bushi3 @@ -2619,7 +2615,7 @@ entities: color: '#FFFFFFFF' id: Bushi3 decals: - 3040: 82,-8 + 3037: 82,-8 - node: color: '#FFFFFFFF' id: Bushi4 @@ -2629,14 +2625,14 @@ entities: 915: -46,-7 1108: 42,-31 1492: -45,-49 - 1940: 56,-23 - 1946: 57.568016,-22.290323 + 1938: 56,-23 + 1944: 57.568016,-22.290323 - node: cleanable: True color: '#FFFFFFFF' id: Bushi4 decals: - 3041: 81,-6 + 3038: 81,-6 - node: color: '#FFFFFFFF' id: Bushj3 @@ -2656,17 +2652,17 @@ entities: color: '#FFFFFFFF' id: Caution decals: - 1991: 24,-37 - 1995: 23,-37 - 1996: 25,-37 + 1988: 24,-37 + 1992: 23,-37 + 1993: 25,-37 - node: angle: 3.141592653589793 rad color: '#FFFFFFFF' id: Caution decals: - 1992: 24,-38 - 1993: 23,-38 - 1994: 25,-38 + 1989: 24,-38 + 1990: 23,-38 + 1991: 25,-38 - node: color: '#EFB34196' id: CheckerNESW @@ -2676,28 +2672,28 @@ entities: 1466: 44,12 1467: 45,12 1468: 46,12 - 6246: 46,15 - 6247: 46,14 + 6239: 46,15 + 6240: 46,14 - node: color: '#334E6DC8' id: CheckerNWSE decals: - 1987: 20,-37 - 1988: 21,-37 - 1989: 21,-38 - 1990: 20,-38 + 1984: 20,-37 + 1985: 21,-37 + 1986: 21,-38 + 1987: 20,-38 - node: color: '#474F528F' id: CheckerNWSE decals: - 2236: -17,11 - 2237: -16,11 - 2238: -16,12 - 2239: -17,12 - 2240: -17,13 - 2241: -16,13 - 2242: -16,14 - 2243: -17,14 + 2233: -17,11 + 2234: -16,11 + 2235: -16,12 + 2236: -17,12 + 2237: -17,13 + 2238: -16,13 + 2239: -16,14 + 2240: -17,14 - node: color: '#52B4E996' id: CheckerNWSE @@ -2717,22 +2713,22 @@ entities: color: '#DE3A3A41' id: CheckerNWSE decals: - 6674: -36,-46 - 6675: -36,-45 - 6676: -36,-44 - 6677: -35,-44 - 6678: -35,-45 - 6679: -35,-46 + 6667: -36,-46 + 6668: -36,-45 + 6669: -36,-44 + 6670: -35,-44 + 6671: -35,-45 + 6672: -35,-46 - node: cleanable: True color: '#EFB34125' id: CheckerNWSE decals: - 6160: 15,40 - 6161: 13,42 - 6162: 13,41 - 6163: 13,40 - 6164: 13,39 + 6153: 15,40 + 6154: 13,42 + 6155: 13,41 + 6156: 13,40 + 6157: 13,39 - node: color: '#EFB34196' id: CheckerNWSE @@ -2743,65 +2739,65 @@ entities: 149: -2,-27 150: -3,-27 151: -3,-28 - 2198: 37,-15 - 2199: 37,-16 - 2200: 37,-17 - 2201: 38,-16 - 2202: 38,-15 - 2206: 38,-17 - 2207: 38,6 - 2208: 38,7 - 2209: -54,10 - 2210: -53,10 - 2211: -55,10 - 2212: -55,9 - 2852: -4,15 - 2853: -3,15 - 2854: -2,15 - 2855: -3,14 - 2858: -38,-54 - 2859: -38,-53 - 2860: -37,-53 - 2861: -37,-54 - 2862: 61,-32 - 2863: 62,-32 - 2864: 63,-32 - 2865: 63,-33 - 2866: 62,-33 - 2867: 61,-33 - 2871: 63,10 - 2872: 64,10 - 2873: 65,10 - 2874: 65,9 - 2875: 65,8 - 2876: 64,8 - 2877: 63,8 - 2878: 64,9 - 2884: -23,34 - 2885: -23,35 - 2888: 14,-39 - 2889: 15,-39 - 2890: -61,-20 - 2891: -62,-20 - 2895: -38,-38 - 6727: 51,-30 - 6728: 51,-29 - 6729: 52,-29 - 6730: 52,-30 + 2195: 37,-15 + 2196: 37,-16 + 2197: 37,-17 + 2198: 38,-16 + 2199: 38,-15 + 2203: 38,-17 + 2204: 38,6 + 2205: 38,7 + 2206: -54,10 + 2207: -53,10 + 2208: -55,10 + 2209: -55,9 + 2849: -4,15 + 2850: -3,15 + 2851: -2,15 + 2852: -3,14 + 2855: -38,-54 + 2856: -38,-53 + 2857: -37,-53 + 2858: -37,-54 + 2859: 61,-32 + 2860: 62,-32 + 2861: 63,-32 + 2862: 63,-33 + 2863: 62,-33 + 2864: 61,-33 + 2868: 63,10 + 2869: 64,10 + 2870: 65,10 + 2871: 65,9 + 2872: 65,8 + 2873: 64,8 + 2874: 63,8 + 2875: 64,9 + 2881: -23,34 + 2882: -23,35 + 2885: 14,-39 + 2886: 15,-39 + 2887: -61,-20 + 2888: -62,-20 + 2892: -38,-38 + 6720: 51,-30 + 6721: 51,-29 + 6722: 52,-29 + 6723: 52,-30 - node: color: '#D4D4D496' id: Delivery decals: - 6610: 0,30 - 6611: 0,31 + 6603: 0,30 + 6604: 0,31 - node: color: '#DE3A3A41' id: Delivery decals: - 6682: -38,-46 - 6683: -38,-46 - 6684: -38,-44 - 6685: -38,-44 + 6675: -38,-46 + 6676: -38,-46 + 6677: -38,-44 + 6678: -38,-44 - node: color: '#DE3A3A96' id: Delivery @@ -2817,8 +2813,8 @@ entities: id: Delivery decals: 60: -7,-20 - 6258: 47,16 - 6259: 47,16 + 6251: 47,16 + 6252: 47,16 - node: color: '#EFB341FF' id: Delivery @@ -2871,140 +2867,140 @@ entities: 1449: 46,3 1450: 46,3 1772: 60,-12 - 1997: 26,-37 - 1998: 26,-38 - 2001: 31,-37 - 2002: 31,-38 - 2170: 8,-41 - 3081: 3,20 - 3082: -9,19 - 3083: -9,20 - 3084: -9,21 - 3085: -17,21 - 3086: -17,20 - 3087: -17,19 - 3088: 3,21 - 3089: 3,19 - 3090: 17,19 - 3091: 17,20 - 3092: 17,21 - 3093: 19,17 - 3094: 21,17 - 3095: 20,17 - 3096: 21,6 - 3097: 20,6 - 3098: 19,6 - 3099: 29,2 - 3100: 29,4 - 3101: 29,3 - 3102: 39,2 - 3103: 39,3 - 3104: 39,4 - 3105: 43,0 - 3106: 42,0 - 3107: 41,0 - 3108: 43,-14 - 3109: 42,-14 - 3110: 41,-14 - 3111: 46,-21 - 3112: 46,-19 - 3113: 46,-20 - 3114: 38,-19 - 3115: 38,-21 - 3116: 38,-20 - 3117: 30,-21 - 3118: 30,-20 - 3119: 30,-19 - 3120: 30,-20 - 3121: 21,-28 - 3122: 20,-28 - 3123: 19,-28 - 3124: 18,-32 - 3125: 18,-33 - 3126: 18,-34 - 3127: 10,-34 - 3128: 10,-33 - 3129: 10,-32 - 3130: 4,-32 - 3131: 4,-31 - 3132: 4,-30 - 3133: -9,-32 - 3134: -9,-31 - 3135: -9,-30 - 3136: -20,-32 - 3137: -20,-30 - 3138: -20,-31 - 3139: -24,-22 - 3140: -25,-22 - 3141: -26,-22 - 3142: -42,-29 - 3143: -42,-28 - 3144: -27,-29 - 3145: -27,-28 - 3146: -26,-12 - 3147: -25,-12 - 3148: -24,-12 - 3149: -23,-6 - 3150: -24,-6 - 3151: -25,-6 - 3152: -25,10 - 3153: -26,10 - 3154: -27,10 - 3155: -42,0 - 3156: -42,1 - 3157: -42,2 - 3158: -53,-5 - 3159: -54,-5 - 3160: -55,-5 - 3161: -55,-19 - 3162: -54,-19 - 3163: -53,-19 - 3164: -49,-34 - 3165: -47,-34 - 3166: -48,-34 - 3167: -47,-45 - 3168: -48,-45 - 3169: -49,-45 - 3170: -41,-49 - 3171: -42,-49 - 3172: -40,-49 - 3173: -54,-49 - 3174: -55,-49 - 3175: -56,-49 - 3176: -56,-55 - 3177: -55,-55 - 3178: -54,-55 - 3179: -42,-55 - 3180: -41,-55 - 3181: -40,-55 - 6612: 60,-24 - 6613: 60,-23 - 6712: 32,21 + 1994: 26,-37 + 1995: 26,-38 + 1998: 31,-37 + 1999: 31,-38 + 2167: 8,-41 + 3077: 3,20 + 3078: -9,19 + 3079: -9,20 + 3080: -9,21 + 3081: -17,21 + 3082: -17,20 + 3083: -17,19 + 3084: 3,21 + 3085: 3,19 + 3086: 17,19 + 3087: 17,20 + 3088: 17,21 + 3089: 19,17 + 3090: 21,17 + 3091: 20,17 + 3092: 21,6 + 3093: 20,6 + 3094: 19,6 + 3095: 29,2 + 3096: 29,4 + 3097: 29,3 + 3098: 39,2 + 3099: 39,3 + 3100: 39,4 + 3101: 43,0 + 3102: 42,0 + 3103: 41,0 + 3104: 43,-14 + 3105: 42,-14 + 3106: 41,-14 + 3107: 46,-21 + 3108: 46,-19 + 3109: 46,-20 + 3110: 38,-19 + 3111: 38,-21 + 3112: 38,-20 + 3113: 30,-21 + 3114: 30,-20 + 3115: 30,-19 + 3116: 30,-20 + 3117: 21,-28 + 3118: 20,-28 + 3119: 19,-28 + 3120: 18,-32 + 3121: 18,-33 + 3122: 18,-34 + 3123: 10,-34 + 3124: 10,-33 + 3125: 10,-32 + 3126: 4,-32 + 3127: 4,-31 + 3128: 4,-30 + 3129: -9,-32 + 3130: -9,-31 + 3131: -9,-30 + 3132: -20,-32 + 3133: -20,-30 + 3134: -20,-31 + 3135: -24,-22 + 3136: -25,-22 + 3137: -26,-22 + 3138: -42,-29 + 3139: -42,-28 + 3140: -27,-29 + 3141: -27,-28 + 3142: -26,-12 + 3143: -25,-12 + 3144: -24,-12 + 3145: -23,-6 + 3146: -24,-6 + 3147: -25,-6 + 3148: -25,10 + 3149: -26,10 + 3150: -27,10 + 3151: -42,0 + 3152: -42,1 + 3153: -42,2 + 3154: -53,-5 + 3155: -54,-5 + 3156: -55,-5 + 3157: -55,-19 + 3158: -54,-19 + 3159: -53,-19 + 3160: -49,-34 + 3161: -47,-34 + 3162: -48,-34 + 3163: -47,-45 + 3164: -48,-45 + 3165: -49,-45 + 3166: -41,-49 + 3167: -42,-49 + 3168: -40,-49 + 3169: -54,-49 + 3170: -55,-49 + 3171: -56,-49 + 3172: -56,-55 + 3173: -55,-55 + 3174: -54,-55 + 3175: -42,-55 + 3176: -41,-55 + 3177: -40,-55 + 6605: 60,-24 + 6606: 60,-23 + 6705: 32,21 - node: cleanable: True angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: Delivery decals: - 3013: 24,5 - 3014: 25,5 - 3015: 26,5 - 3016: 14,1 - 3017: 14,-12 - 3018: 0,14 - 3019: -6,14 + 3010: 24,5 + 3011: 25,5 + 3012: 26,5 + 3013: 14,1 + 3014: 14,-12 + 3015: 0,14 + 3016: -6,14 - node: color: '#52B4E996' id: DeliveryGreyscale decals: 1761: 59,-5 1762: 61,-5 - 6372: 48,2 - 6373: 48,2 - 6374: 48,1 - 6375: 48,1 - 6606: 50,-5 - 6607: 50,-5 + 6365: 48,2 + 6366: 48,2 + 6367: 48,1 + 6368: 48,1 + 6599: 50,-5 + 6600: 50,-5 - node: color: '#DE3A3A96' id: DeliveryGreyscale @@ -3015,3380 +3011,3392 @@ entities: color: '#FFFFFFFF' id: DeliveryGreyscale decals: - 2247: 9,23 - 2248: 9,24 + 2244: 9,23 + 2245: 9,24 - node: cleanable: True color: '#835432FF' id: Dirt decals: - 2898: -37,28 - 2899: -36,27 - 2900: -37,27 - 2901: -37,25 - 2902: -37,24 - 2903: -36,25 - 2904: -36,24 - 2905: -36,25 + 2895: -37,28 + 2896: -36,27 + 2897: -37,27 + 2898: -37,25 + 2899: -37,24 + 2900: -36,25 + 2901: -36,24 + 2902: -36,25 + 2903: -38,28 + 2904: -39,29 + 2905: -40,28 2906: -38,28 - 2907: -39,29 - 2908: -40,28 - 2909: -38,28 - 2910: -37,27 - 2911: -37,28 - 2912: -37,27 - 2913: -36,25 - 2914: -36,24 - 2915: -34,24 - 2916: -34,23 - 2917: -34,22 - 2918: -36,22 - 2919: -37,22 - 2920: -36,24 - 2921: -37,24 - 2922: -36,23 - 2923: -37,25 - 2924: -36,25 - 2925: -37,26 - 2926: -38,27 - 2927: -38,28 - 2928: -39,27 - 2929: -39,26 - 2930: -39,26 + 2907: -37,27 + 2908: -37,28 + 2909: -37,27 + 2910: -36,25 + 2911: -36,24 + 2912: -34,24 + 2913: -34,23 + 2914: -34,22 + 2915: -36,22 + 2916: -37,22 + 2917: -36,24 + 2918: -37,24 + 2919: -36,23 + 2920: -37,25 + 2921: -36,25 + 2922: -37,26 + 2923: -38,27 + 2924: -38,28 + 2925: -39,27 + 2926: -39,26 + 2927: -39,26 - node: cleanable: True color: '#A4610696' id: Dirt decals: - 5478: -34,-26 - 5479: -37,-25 - 5480: -39,-28 - 5481: -40,-28 - 5482: -40,-31 - 5483: -39,-33 - 5484: -37,-33 - 5485: -32,-33 - 5486: -29,-33 - 5487: -29,-31 - 5488: -30,-28 - 5489: -29,-27 - 5490: -25,-30 - 5491: -25,-27 - 5492: -25,-26 - 5493: -25,-23 - 5494: -24,-21 - 5495: -25,-18 - 5496: -29,-20 - 5497: -29,-19 - 5498: -33,-19 - 5499: -33,-20 - 5500: -31,-14 - 5501: -29,-15 - 5502: -33,-16 - 5503: -29,-13 - 5504: -29,-11 - 5505: -38,-11 - 5506: -37,-15 - 5507: -36,-16 - 5508: -40,-10 - 5509: -38,-17 - 5510: -47,-8 - 5511: -45,0 - 5512: -47,0 - 5513: -44,2 - 5514: -48,-2 - 5515: -47,-1 - 5516: -49,3 - 5517: -50,-1 - 5518: -45,1 - 5519: -53,4 - 5520: -48,5 - 5521: -50,6 - 5522: -47,1 - 5523: -38,-1 - 5524: -36,1 - 5525: -35,-1 - 5526: -32,-1 - 5527: -33,0 - 5528: -33,-3 - 5529: -24,-2 - 5530: -28,3 - 5531: -26,3 - 5532: -26,8 - 5533: -27,13 - 5534: -26,14 - 5535: -26,18 - 5536: -33,13 - 5537: -32,15 - 5538: -32,14 - 5539: -22,13 - 5540: -20,12 - 5541: -22,13 - 5542: -24,19 - 5543: -20,20 - 5544: -18,19 - 5545: -16,20 - 5546: -13,19 - 5547: -15,24 - 5548: -14,24 - 5549: -13,27 - 5550: -14,28 - 5551: -13,27 - 5552: -5,28 - 5553: -20,28 - 5554: -18,25 - 5555: -13,31 - 5556: -15,32 - 5557: -14,34 - 5558: -17,32 - 5559: -8,32 - 5560: -8,32 - 5561: -6,33 - 5562: -6,27 - 5563: -3,28 - 5564: -1,30 - 5565: -2,33 - 5566: -2,33 - 5567: -2,36 - 5568: -2,43 - 5569: -7,42 - 5570: -5,45 - 5571: -3,47 - 5572: 0,45 - 5573: -2,47 - 5574: -1,47 - 5575: -2,51 - 5576: 1,51 - 5577: -1,52 - 5578: 1,52 - 5579: 2,45 - 5580: 2,47 - 5581: 2,42 - 5582: 1,40 - 5583: 6,41 - 5584: 8,39 - 5585: 6,41 - 5586: 5,31 - 5587: 3,31 - 5588: 5,30 - 5589: 4,30 - 5590: 3,26 - 5591: 2,27 - 5592: 4,25 - 5593: 3,23 - 5594: 2,24 - 5595: 1,23 - 5596: -2,24 - 5597: 1,21 - 5598: -1,19 - 5599: 4,20 - 5600: 9,20 - 5601: 9,20 - 5602: 15,19 - 5603: 11,24 - 5604: 14,23 - 5605: 14,25 - 5606: 15,24 - 5607: 14,29 - 5608: 14,31 - 5609: 17,25 - 5610: 17,23 - 5611: 16,20 - 5612: 20,20 - 5613: 20,18 - 5614: 20,15 - 5615: 21,15 - 5616: 20,12 - 5617: 22,12 - 5618: 20,11 - 5619: 27,12 - 5620: 27,11 - 5621: 26,14 - 5622: 25,19 - 5623: 30,19 - 5624: 31,16 - 5625: 31,12 - 5626: 35,14 - 5627: 35,14 - 5628: 35,14 - 5629: 32,8 - 5630: 34,9 - 5631: 32,7 - 5632: 26,7 - 5633: 24,7 - 5634: 24,3 - 5635: 24,2 - 5636: 23,2 - 5637: 20,6 - 5638: 20,9 - 5639: 23,3 - 5640: 32,3 - 5641: 34,2 - 5642: 32,-2 - 5643: 32,-2 - 5644: 32,-4 - 5645: 38,-3 - 5646: 37,-4 - 5647: 37,-2 - 5648: 36,3 - 5649: 42,2 - 5650: 37,-3 - 5651: 38,-2 - 5652: 37,-2 - 5653: 42,-5 - 5654: 42,-2 - 5655: 42,-4 - 5656: 43,6 - 5657: 44,12 - 5658: 43,11 - 5659: 46,12 - 5660: 44,12 - 5661: 52,12 - 5662: 50,14 - 5663: 50,7 - 5664: 53,14 - 5665: 59,15 - 5666: 60,17 - 5667: 55,7 - 5668: 54,7 - 5669: 50,7 - 5670: 49,0 - 5671: 45,-1 - 5672: 46,-5 - 5673: 46,-8 - 5674: 50,-4 - 5675: 50,-7 - 5676: 55,-5 - 5677: 53,-5 - 5678: 58,-6 - 5679: 61,-5 - 5680: 59,-7 - 5681: 59,-7 - 5682: 60,-6 - 5683: 59,-14 - 5684: 60,-14 - 5685: 59,-14 - 5686: 59,-18 - 5687: 59,-20 - 5688: 60,-18 - 5689: 60,-17 - 5690: 64,-13 - 5691: 64,-17 - 5692: 65,-19 - 5693: 64,-19 - 5694: 64,-25 - 5695: 65,-24 - 5696: 63,-26 - 5697: 63,-24 - 5698: 62,-26 - 5699: 64,-26 - 5700: 70,-28 - 5701: 71,-26 - 5702: 69,-27 - 5703: 69,-23 - 5704: 70,-24 - 5705: 69,-22 - 5706: 66,-18 - 5707: 70,-18 - 5708: 71,-17 - 5709: 69,-13 - 5710: 71,-14 - 5711: 69,-12 - 5712: 70,-14 - 5713: 76,-17 - 5714: 77,-18 - 5715: 74,-15 - 5716: 76,-14 - 5717: 74,-14 - 5718: 68,-8 - 5719: 70,-10 - 5720: 76,-6 - 5721: 48,-25 - 5722: 48,-26 - 5723: 48,-27 - 5724: 48,-30 - 5725: 48,-31 - 5726: 47,-31 - 5727: 49,-34 - 5728: 47,-36 - 5729: 46,-36 - 5730: 44,-37 - 5731: 42,-35 - 5732: 42,-36 - 5733: 38,-36 - 5734: 38,-35 - 5735: 37,-37 - 5736: 32,-35 - 5737: 32,-36 - 5738: 32,-33 - 5739: 33,-31 - 5740: 32,-31 - 5741: 33,-27 - 5742: 32,-25 - 5743: 33,-24 - 5744: 35,-26 - 5745: 37,-26 - 5746: 41,-25 - 5747: 40,-26 - 5748: 41,-29 - 5749: 40,-29 - 5750: 40,-31 - 5751: 43,-29 - 5752: 44,-31 - 5753: 45,-30 - 5754: 27,-34 - 5755: 25,-34 - 5756: 24,-32 - 5757: 26,-29 - 5758: 23,-29 - 5759: 23,-31 - 5760: 25,-38 - 5761: 24,-37 - 5762: 22,-38 - 5763: 21,-37 - 5764: 21,-38 - 5765: 29,-39 - 5766: 28,-41 - 5767: 29,-44 - 5768: 28,-42 - 5769: 28,-45 - 5770: 26,-45 - 5771: 27,-44 - 5772: 24,-43 - 5773: 25,-46 - 5774: 27,-45 - 5775: 25,-46 - 5776: 32,-30 - 5777: 33,-28 - 5778: 36,-26 - 5779: 35,-26 - 5780: 36,-23 - 5781: 36,-30 - 5782: 42,-28 - 5783: 43,-29 - 5784: 52,-31 - 5785: 52,-35 - 5786: 55,-29 - 5787: 55,-30 - 5788: 57,-30 - 5789: 55,-34 - 5790: 55,-34 - 5791: 55,-36 - 5792: 57,-34 - 5793: 20,-45 - 5794: 17,-44 - 5795: 18,-45 - 5796: 19,-46 - 5797: 18,-48 - 5798: 19,-49 - 5799: 18,-50 - 5800: 20,-53 - 5801: 18,-54 - 5802: 17,-54 - 5803: 16,-54 - 5804: 16,-58 - 5805: 16,-59 - 5806: 19,-58 - 5807: 21,-58 - 5808: 21,-59 - 5809: 13,-47 - 5810: 14,-47 - 5811: 13,-48 - 5812: 13,-45 - 5813: 12,-45 - 5814: 9,-45 - 5815: 8,-45 - 5816: 10,-39 - 5817: 11,-39 - 5818: 0,-37 - 5819: 0,-36 - 5820: 1,-36 - 5821: 2,-38 - 5822: 0,-36 - 5823: -1,-37 - 5824: -2,-36 - 5825: -5,-36 - 5826: -4,-36 - 5827: -6,-36 - 5828: -7,-32 - 5829: -8,-32 - 5830: -7,-30 - 5831: -11,-31 - 5832: -12,-32 - 5833: -15,-32 - 5834: -16,-32 - 5835: -13,-30 - 5836: -16,-30 - 5837: -17,-30 - 5838: -22,-30 - 5839: -23,-30 - 5840: -24,-30 - 5841: -24,-29 - 5842: -24,-28 - 5843: -22,-32 - 5844: -24,-32 - 5845: -25,-32 - 5846: -26,-30 - 5847: -26,-28 - 5848: -26,-26 - 5849: -26,-24 - 5850: -24,-24 - 5851: -24,-22 - 5852: -24,-19 - 5853: -26,-21 - 5854: -26,-18 - 5855: -26,-17 - 5856: -24,-14 - 5857: -25,-15 - 5858: -27,-15 - 5859: -30,-15 - 5860: -30,-15 - 5861: -34,-15 - 5862: -35,-14 - 5863: -37,-15 - 5864: -38,-14 - 5865: -35,-15 - 5866: -34,-14 - 5867: -37,-10 - 5868: -38,-10 - 5869: -36,-9 - 5870: -29,-10 - 5871: -29,-11 - 5872: -33,-20 - 5873: -34,-20 - 5874: -33,-18 - 5875: -32,-20 - 5876: -34,-19 - 5877: -33,-18 - 5878: -29,-19 - 5879: -30,-21 - 5880: -29,-19 - 5881: -30,-20 - 5882: -37,-18 - 5883: -40,-18 - 5884: -39,-20 - 5885: -37,-19 - 5886: -39,-19 - 5887: -32,-26 - 5888: -35,-25 - 5889: -39,-26 - 5890: -39,-26 - 5891: -39,-27 - 5892: -40,-28 - 5893: -38,-30 - 5894: -39,-32 - 5895: -39,-33 - 5896: -37,-33 - 5897: -34,-33 - 5898: -31,-33 - 5899: -34,-34 - 5900: -30,-33 - 5901: -30,-31 - 5902: -31,-28 - 5903: -29,-27 - 5904: -29,-30 - 5905: -43,-30 - 5906: -44,-28 - 5907: -45,-31 - 5908: -46,-27 - 5909: -45,-25 - 5910: -45,-25 - 5911: -47,-25 - 5912: -49,-25 - 5913: -51,-26 - 5914: -50,-29 - 5915: -51,-30 - 5916: -51,-30 - 5917: -50,-32 - 5918: -47,-32 - 5919: -48,-33 - 5920: -44,-31 - 5921: -44,-29 - 5922: -55,-25 - 5923: -56,-25 - 5924: -55,-29 - 5925: -56,-29 - 5926: -55,-29 - 5927: -60,-27 - 5928: -60,-29 - 5929: -62,-27 - 5930: -61,-21 - 5931: -61,-21 - 5932: -54,-21 - 5933: -54,-21 - 5934: -55,-16 - 5935: -53,-14 - 5936: -54,-13 - 5937: -53,-10 - 5938: -54,-7 - 5939: -53,-5 - 5940: -55,-2 - 5941: -54,0 - 5942: -53,1 - 5943: -53,-4 - 5944: -54,-3 - 5945: -54,-4 - 5946: -54,-9 - 5947: -46,-4 - 5948: -47,-4 - 5949: -48,-3 - 5950: -50,0 - 5951: -45,1 - 5952: -47,1 - 5953: -44,1 - 5954: -47,1 - 5955: -46,7 - 5956: -49,7 - 5957: -49,11 - 5958: -46,11 - 5959: -49,10 - 5960: -48,13 - 5961: -45,11 - 5962: -54,10 - 5963: -54,9 - 5964: -53,10 - 5965: -39,1 - 5966: -37,0 - 5967: -39,-1 - 5968: -34,-1 - 5969: -37,-1 - 5970: -36,0 - 5971: -35,2 - 5972: -31,2 - 5973: -31,2 - 5974: -33,1 - 5975: -28,0 - 5976: -30,-1 - 5977: -27,-1 - 5978: -33,-4 - 5979: -27,-5 - 5980: -24,-3 - 5981: -24,1 - 5982: -22,3 - 5983: -23,-2 - 5984: -22,-3 - 5985: -17,-3 - 5986: -19,-3 - 5987: -17,-3 - 5988: -18,-4 - 5989: -14,-4 - 5990: -18,-4 - 5991: -17,-4 - 5992: -17,-4 - 5993: -19,-4 - 5994: -19,-2 - 5995: -19,-2 - 5996: -20,-3 - 5997: -20,-5 - 5998: -16,0 - 5999: -16,1 - 6000: -16,3 - 6001: -15,0 - 6002: -15,6 - 6003: -17,5 - 6004: -15,7 - 6005: -21,5 - 6006: -21,6 - 6007: -20,7 - 6008: -22,8 - 6009: -24,9 - 6010: -21,9 - 6011: -23,8 - 6012: -22,8 - 6013: -23,8 - 6014: -21,13 - 6015: -22,11 - 6016: -20,13 - 6017: -22,14 - 6018: -26,12 - 6019: -26,16 - 6020: -26,17 - 6021: -26,20 - 6022: -19,20 - 6023: -25,20 - 6024: -22,19 - 6025: -24,26 - 6026: -25,26 - 6027: -26,26 - 6028: -25,29 - 6029: -26,29 - 6030: -26,26 - 6031: -26,27 - 6032: -25,29 - 6033: -29,26 - 6034: -29,26 - 6035: -19,26 - 6036: -21,26 - 6037: -19,28 - 6038: -18,26 - 6039: -14,28 - 6040: -14,26 - 6041: -13,28 - 6042: -11,23 - 6043: -7,32 - 6044: -9,32 - 6045: -14,32 - 6046: -15,33 - 6047: -18,32 - 6048: -3,28 - 6049: -4,27 - 6050: -1,29 - 6051: -2,23 - 6052: -1,19 - 6053: -3,14 - 6054: -3,14 - 6055: -2,15 - 6056: -4,15 - 6057: -3,15 - 6058: 2,-14 - 6059: 2,-16 - 6060: -1,-17 - 6061: -2,-14 - 6062: -7,-17 - 6063: -6,-16 - 6064: -7,-19 - 6065: -7,-19 - 6066: -7,-23 - 6067: -1,-24 - 6068: 4,-20 - 6069: 6,-23 - 6070: 6,-20 - 6071: 7,-22 - 6072: 7,-20 - 6073: 11,-18 - 6074: 13,-18 - 6075: 13,-22 - 6076: 13,-22 - 6077: 12,-22 - 6078: 15,-26 - 6079: 12,-26 - 6080: 12,-29 - 6081: 7,-30 - 6082: 8,-32 - 6083: 7,-32 - 6084: 10,-34 - 6085: 13,-33 - 6086: 16,-32 - 6087: 21,-37 - 6088: 20,-38 - 6089: 24,-38 - 6090: 25,-37 - 6091: 28,-34 - 6092: 25,-34 - 6093: 27,-29 - 6094: 24,-29 - 6095: 33,-34 - 6096: 32,-37 - 6097: 35,-37 - 6098: 38,-36 - 6099: 40,-36 - 6100: 39,-30 - 6101: 44,-25 - 6102: 43,-25 - 6103: 42,-20 - 6104: 42,-18 - 6105: 41,-16 - 6106: 38,-16 - 6107: 37,-17 - 6108: 37,-15 - 6109: 37,-17 - 6110: 37,-16 - 6111: 37,-16 - 6112: 37,-16 - 6113: 38,-3 - 6114: 38,-4 - 6115: 33,-3 - 6116: 33,-3 - 6117: 33,-2 - 6118: 38,7 - 6119: 36,13 - 6120: 37,13 - 6121: 35,13 - 6122: 34,13 - 6123: 34,14 - 6124: 36,13 - 6125: 36,13 - 6126: 34,14 - 6127: 35,18 - 6128: 36,18 + 5471: -34,-26 + 5472: -37,-25 + 5473: -39,-28 + 5474: -40,-28 + 5475: -40,-31 + 5476: -39,-33 + 5477: -37,-33 + 5478: -32,-33 + 5479: -29,-33 + 5480: -29,-31 + 5481: -30,-28 + 5482: -29,-27 + 5483: -25,-30 + 5484: -25,-27 + 5485: -25,-26 + 5486: -25,-23 + 5487: -24,-21 + 5488: -25,-18 + 5489: -29,-20 + 5490: -29,-19 + 5491: -33,-19 + 5492: -33,-20 + 5493: -31,-14 + 5494: -29,-15 + 5495: -33,-16 + 5496: -29,-13 + 5497: -29,-11 + 5498: -38,-11 + 5499: -37,-15 + 5500: -36,-16 + 5501: -40,-10 + 5502: -38,-17 + 5503: -47,-8 + 5504: -45,0 + 5505: -47,0 + 5506: -44,2 + 5507: -48,-2 + 5508: -47,-1 + 5509: -49,3 + 5510: -50,-1 + 5511: -45,1 + 5512: -53,4 + 5513: -48,5 + 5514: -50,6 + 5515: -47,1 + 5516: -38,-1 + 5517: -36,1 + 5518: -35,-1 + 5519: -32,-1 + 5520: -33,0 + 5521: -33,-3 + 5522: -24,-2 + 5523: -28,3 + 5524: -26,3 + 5525: -26,8 + 5526: -27,13 + 5527: -26,14 + 5528: -26,18 + 5529: -33,13 + 5530: -32,15 + 5531: -32,14 + 5532: -22,13 + 5533: -20,12 + 5534: -22,13 + 5535: -24,19 + 5536: -20,20 + 5537: -18,19 + 5538: -16,20 + 5539: -13,19 + 5540: -15,24 + 5541: -14,24 + 5542: -13,27 + 5543: -14,28 + 5544: -13,27 + 5545: -5,28 + 5546: -20,28 + 5547: -18,25 + 5548: -13,31 + 5549: -15,32 + 5550: -14,34 + 5551: -17,32 + 5552: -8,32 + 5553: -8,32 + 5554: -6,33 + 5555: -6,27 + 5556: -3,28 + 5557: -1,30 + 5558: -2,33 + 5559: -2,33 + 5560: -2,36 + 5561: -2,43 + 5562: -7,42 + 5563: -5,45 + 5564: -3,47 + 5565: 0,45 + 5566: -2,47 + 5567: -1,47 + 5568: -2,51 + 5569: 1,51 + 5570: -1,52 + 5571: 1,52 + 5572: 2,45 + 5573: 2,47 + 5574: 2,42 + 5575: 1,40 + 5576: 6,41 + 5577: 8,39 + 5578: 6,41 + 5579: 5,31 + 5580: 3,31 + 5581: 5,30 + 5582: 4,30 + 5583: 3,26 + 5584: 2,27 + 5585: 4,25 + 5586: 3,23 + 5587: 2,24 + 5588: 1,23 + 5589: -2,24 + 5590: 1,21 + 5591: -1,19 + 5592: 4,20 + 5593: 9,20 + 5594: 9,20 + 5595: 15,19 + 5596: 11,24 + 5597: 14,23 + 5598: 14,25 + 5599: 15,24 + 5600: 14,29 + 5601: 14,31 + 5602: 17,25 + 5603: 17,23 + 5604: 16,20 + 5605: 20,20 + 5606: 20,18 + 5607: 20,15 + 5608: 21,15 + 5609: 20,12 + 5610: 22,12 + 5611: 20,11 + 5612: 27,12 + 5613: 27,11 + 5614: 26,14 + 5615: 25,19 + 5616: 30,19 + 5617: 31,16 + 5618: 31,12 + 5619: 35,14 + 5620: 35,14 + 5621: 35,14 + 5622: 32,8 + 5623: 34,9 + 5624: 32,7 + 5625: 26,7 + 5626: 24,7 + 5627: 24,3 + 5628: 24,2 + 5629: 23,2 + 5630: 20,6 + 5631: 20,9 + 5632: 23,3 + 5633: 32,3 + 5634: 34,2 + 5635: 32,-2 + 5636: 32,-2 + 5637: 32,-4 + 5639: 37,-4 + 5641: 36,3 + 5642: 42,2 + 5644: 38,-2 + 5646: 42,-5 + 5647: 42,-2 + 5648: 42,-4 + 5649: 43,6 + 5650: 44,12 + 5651: 43,11 + 5652: 46,12 + 5653: 44,12 + 5654: 52,12 + 5655: 50,14 + 5656: 50,7 + 5657: 53,14 + 5658: 59,15 + 5659: 60,17 + 5660: 55,7 + 5661: 54,7 + 5662: 50,7 + 5663: 49,0 + 5664: 45,-1 + 5665: 46,-5 + 5666: 46,-8 + 5667: 50,-4 + 5668: 50,-7 + 5669: 55,-5 + 5670: 53,-5 + 5671: 58,-6 + 5672: 61,-5 + 5673: 59,-7 + 5674: 59,-7 + 5675: 60,-6 + 5676: 59,-14 + 5677: 60,-14 + 5678: 59,-14 + 5679: 59,-18 + 5680: 59,-20 + 5681: 60,-18 + 5682: 60,-17 + 5683: 64,-13 + 5684: 64,-17 + 5685: 65,-19 + 5686: 64,-19 + 5687: 64,-25 + 5688: 65,-24 + 5689: 63,-26 + 5690: 63,-24 + 5691: 62,-26 + 5692: 64,-26 + 5693: 70,-28 + 5694: 71,-26 + 5695: 69,-27 + 5696: 69,-23 + 5697: 70,-24 + 5698: 69,-22 + 5699: 66,-18 + 5700: 70,-18 + 5701: 71,-17 + 5702: 69,-13 + 5703: 71,-14 + 5704: 69,-12 + 5705: 70,-14 + 5706: 76,-17 + 5707: 77,-18 + 5708: 74,-15 + 5709: 76,-14 + 5710: 74,-14 + 5711: 68,-8 + 5712: 70,-10 + 5713: 76,-6 + 5714: 48,-25 + 5715: 48,-26 + 5716: 48,-27 + 5717: 48,-30 + 5718: 48,-31 + 5719: 47,-31 + 5720: 49,-34 + 5721: 47,-36 + 5722: 46,-36 + 5723: 44,-37 + 5724: 42,-35 + 5725: 42,-36 + 5726: 38,-36 + 5727: 38,-35 + 5728: 37,-37 + 5729: 32,-35 + 5730: 32,-36 + 5731: 32,-33 + 5732: 33,-31 + 5733: 32,-31 + 5734: 33,-27 + 5735: 32,-25 + 5736: 33,-24 + 5737: 35,-26 + 5738: 37,-26 + 5739: 41,-25 + 5740: 40,-26 + 5741: 41,-29 + 5742: 40,-29 + 5743: 40,-31 + 5744: 43,-29 + 5745: 44,-31 + 5746: 45,-30 + 5747: 27,-34 + 5748: 25,-34 + 5749: 24,-32 + 5750: 26,-29 + 5751: 23,-29 + 5752: 23,-31 + 5753: 25,-38 + 5754: 24,-37 + 5755: 22,-38 + 5756: 21,-37 + 5757: 21,-38 + 5758: 29,-39 + 5759: 28,-41 + 5760: 29,-44 + 5761: 28,-42 + 5762: 28,-45 + 5763: 26,-45 + 5764: 27,-44 + 5765: 24,-43 + 5766: 25,-46 + 5767: 27,-45 + 5768: 25,-46 + 5769: 32,-30 + 5770: 33,-28 + 5771: 36,-26 + 5772: 35,-26 + 5773: 36,-23 + 5774: 36,-30 + 5775: 42,-28 + 5776: 43,-29 + 5777: 52,-31 + 5778: 52,-35 + 5779: 55,-29 + 5780: 55,-30 + 5781: 57,-30 + 5782: 55,-34 + 5783: 55,-34 + 5784: 55,-36 + 5785: 57,-34 + 5786: 20,-45 + 5787: 17,-44 + 5788: 18,-45 + 5789: 19,-46 + 5790: 18,-48 + 5791: 19,-49 + 5792: 18,-50 + 5793: 20,-53 + 5794: 18,-54 + 5795: 17,-54 + 5796: 16,-54 + 5797: 16,-58 + 5798: 16,-59 + 5799: 19,-58 + 5800: 21,-58 + 5801: 21,-59 + 5802: 13,-47 + 5803: 14,-47 + 5804: 13,-48 + 5805: 13,-45 + 5806: 12,-45 + 5807: 9,-45 + 5808: 8,-45 + 5809: 10,-39 + 5810: 11,-39 + 5811: 0,-37 + 5812: 0,-36 + 5813: 1,-36 + 5814: 2,-38 + 5815: 0,-36 + 5816: -1,-37 + 5817: -2,-36 + 5818: -5,-36 + 5819: -4,-36 + 5820: -6,-36 + 5821: -7,-32 + 5822: -8,-32 + 5823: -7,-30 + 5824: -11,-31 + 5825: -12,-32 + 5826: -15,-32 + 5827: -16,-32 + 5828: -13,-30 + 5829: -16,-30 + 5830: -17,-30 + 5831: -22,-30 + 5832: -23,-30 + 5833: -24,-30 + 5834: -24,-29 + 5835: -24,-28 + 5836: -22,-32 + 5837: -24,-32 + 5838: -25,-32 + 5839: -26,-30 + 5840: -26,-28 + 5841: -26,-26 + 5842: -26,-24 + 5843: -24,-24 + 5844: -24,-22 + 5845: -24,-19 + 5846: -26,-21 + 5847: -26,-18 + 5848: -26,-17 + 5849: -24,-14 + 5850: -25,-15 + 5851: -27,-15 + 5852: -30,-15 + 5853: -30,-15 + 5854: -34,-15 + 5855: -35,-14 + 5856: -37,-15 + 5857: -38,-14 + 5858: -35,-15 + 5859: -34,-14 + 5860: -37,-10 + 5861: -38,-10 + 5862: -36,-9 + 5863: -29,-10 + 5864: -29,-11 + 5865: -33,-20 + 5866: -34,-20 + 5867: -33,-18 + 5868: -32,-20 + 5869: -34,-19 + 5870: -33,-18 + 5871: -29,-19 + 5872: -30,-21 + 5873: -29,-19 + 5874: -30,-20 + 5875: -37,-18 + 5876: -40,-18 + 5877: -39,-20 + 5878: -37,-19 + 5879: -39,-19 + 5880: -32,-26 + 5881: -35,-25 + 5882: -39,-26 + 5883: -39,-26 + 5884: -39,-27 + 5885: -40,-28 + 5886: -38,-30 + 5887: -39,-32 + 5888: -39,-33 + 5889: -37,-33 + 5890: -34,-33 + 5891: -31,-33 + 5892: -34,-34 + 5893: -30,-33 + 5894: -30,-31 + 5895: -31,-28 + 5896: -29,-27 + 5897: -29,-30 + 5898: -43,-30 + 5899: -44,-28 + 5900: -45,-31 + 5901: -46,-27 + 5902: -45,-25 + 5903: -45,-25 + 5904: -47,-25 + 5905: -49,-25 + 5906: -51,-26 + 5907: -50,-29 + 5908: -51,-30 + 5909: -51,-30 + 5910: -50,-32 + 5911: -47,-32 + 5912: -48,-33 + 5913: -44,-31 + 5914: -44,-29 + 5915: -55,-25 + 5916: -56,-25 + 5917: -55,-29 + 5918: -56,-29 + 5919: -55,-29 + 5920: -60,-27 + 5921: -60,-29 + 5922: -62,-27 + 5923: -61,-21 + 5924: -61,-21 + 5925: -54,-21 + 5926: -54,-21 + 5927: -55,-16 + 5928: -53,-14 + 5929: -54,-13 + 5930: -53,-10 + 5931: -54,-7 + 5932: -53,-5 + 5933: -55,-2 + 5934: -54,0 + 5935: -53,1 + 5936: -53,-4 + 5937: -54,-3 + 5938: -54,-4 + 5939: -54,-9 + 5940: -46,-4 + 5941: -47,-4 + 5942: -48,-3 + 5943: -50,0 + 5944: -45,1 + 5945: -47,1 + 5946: -44,1 + 5947: -47,1 + 5948: -46,7 + 5949: -49,7 + 5950: -49,11 + 5951: -46,11 + 5952: -49,10 + 5953: -48,13 + 5954: -45,11 + 5955: -54,10 + 5956: -54,9 + 5957: -53,10 + 5958: -39,1 + 5959: -37,0 + 5960: -39,-1 + 5961: -34,-1 + 5962: -37,-1 + 5963: -36,0 + 5964: -35,2 + 5965: -31,2 + 5966: -31,2 + 5967: -33,1 + 5968: -28,0 + 5969: -30,-1 + 5970: -27,-1 + 5971: -33,-4 + 5972: -27,-5 + 5973: -24,-3 + 5974: -24,1 + 5975: -22,3 + 5976: -23,-2 + 5977: -22,-3 + 5978: -17,-3 + 5979: -19,-3 + 5980: -17,-3 + 5981: -18,-4 + 5982: -14,-4 + 5983: -18,-4 + 5984: -17,-4 + 5985: -17,-4 + 5986: -19,-4 + 5987: -19,-2 + 5988: -19,-2 + 5989: -20,-3 + 5990: -20,-5 + 5991: -16,0 + 5992: -16,1 + 5993: -16,3 + 5994: -15,0 + 5995: -15,6 + 5996: -17,5 + 5997: -15,7 + 5998: -21,5 + 5999: -21,6 + 6000: -20,7 + 6001: -22,8 + 6002: -24,9 + 6003: -21,9 + 6004: -23,8 + 6005: -22,8 + 6006: -23,8 + 6007: -21,13 + 6008: -22,11 + 6009: -20,13 + 6010: -22,14 + 6011: -26,12 + 6012: -26,16 + 6013: -26,17 + 6014: -26,20 + 6015: -19,20 + 6016: -25,20 + 6017: -22,19 + 6018: -24,26 + 6019: -25,26 + 6020: -26,26 + 6021: -25,29 + 6022: -26,29 + 6023: -26,26 + 6024: -26,27 + 6025: -25,29 + 6026: -29,26 + 6027: -29,26 + 6028: -19,26 + 6029: -21,26 + 6030: -19,28 + 6031: -18,26 + 6032: -14,28 + 6033: -14,26 + 6034: -13,28 + 6035: -11,23 + 6036: -7,32 + 6037: -9,32 + 6038: -14,32 + 6039: -15,33 + 6040: -18,32 + 6041: -3,28 + 6042: -4,27 + 6043: -1,29 + 6044: -2,23 + 6045: -1,19 + 6046: -3,14 + 6047: -3,14 + 6048: -2,15 + 6049: -4,15 + 6050: -3,15 + 6051: 2,-14 + 6052: 2,-16 + 6053: -1,-17 + 6054: -2,-14 + 6055: -7,-17 + 6056: -6,-16 + 6057: -7,-19 + 6058: -7,-19 + 6059: -7,-23 + 6060: -1,-24 + 6061: 4,-20 + 6062: 6,-23 + 6063: 6,-20 + 6064: 7,-22 + 6065: 7,-20 + 6066: 11,-18 + 6067: 13,-18 + 6068: 13,-22 + 6069: 13,-22 + 6070: 12,-22 + 6071: 15,-26 + 6072: 12,-26 + 6073: 12,-29 + 6074: 7,-30 + 6075: 8,-32 + 6076: 7,-32 + 6077: 10,-34 + 6078: 13,-33 + 6079: 16,-32 + 6080: 21,-37 + 6081: 20,-38 + 6082: 24,-38 + 6083: 25,-37 + 6084: 28,-34 + 6085: 25,-34 + 6086: 27,-29 + 6087: 24,-29 + 6088: 33,-34 + 6089: 32,-37 + 6090: 35,-37 + 6091: 38,-36 + 6092: 40,-36 + 6093: 39,-30 + 6094: 44,-25 + 6095: 43,-25 + 6096: 42,-20 + 6097: 42,-18 + 6098: 41,-16 + 6099: 38,-16 + 6100: 37,-17 + 6101: 37,-15 + 6102: 37,-17 + 6103: 37,-16 + 6104: 37,-16 + 6105: 37,-16 + 6107: 38,-4 + 6108: 33,-3 + 6109: 33,-3 + 6110: 33,-2 + 6111: 38,7 + 6112: 36,13 + 6113: 37,13 + 6114: 35,13 + 6115: 34,13 + 6116: 34,14 + 6117: 36,13 + 6118: 36,13 + 6119: 34,14 + 6120: 35,18 + 6121: 36,18 + - node: + cleanable: True + color: '#D4D4D447' + id: Dirt + decals: + 6780: 37,-3 + 6781: 37,-2 + 6782: 37,-2 + 6783: 38,-3 + 6784: 39,-2 + 6785: 39,-2 + 6786: 38,-3 + 6787: 38,-2 + 6788: 36,-3 + 6789: 36,-3 + 6790: 36,-2 + 6791: 36,-2 + 6792: 39,-3 + 6793: 37,-3 + 6794: 37,-3 - node: cleanable: True color: '#FFFFFF47' id: Dirt decals: - 6691: 15,-30 - 6692: 15,-30 - 6693: 16,-27 - 6694: 16,-27 + 6684: 15,-30 + 6685: 15,-30 + 6686: 16,-27 + 6687: 16,-27 - node: cleanable: True color: '#FFFFFFFF' id: Dirt decals: - 6140: 51,20 - 6141: 50,21 - 6198: 81,-34 - 6199: 83,-35 - 6200: 81,-34 - 6201: 81,-34 - 6202: 83,-35 - 6203: 81,-35 - 6204: 82,-35 - 6205: 82,-35 - 6206: 80,-35 - 6207: 83,-36 - 6212: 82,-34 - 6769: -25,-42 + 6133: 51,20 + 6134: 50,21 + 6191: 81,-34 + 6192: 83,-35 + 6193: 81,-34 + 6194: 81,-34 + 6195: 83,-35 + 6196: 81,-35 + 6197: 82,-35 + 6198: 82,-35 + 6199: 80,-35 + 6200: 83,-36 + 6205: 82,-34 + 6761: -25,-42 - node: cleanable: True angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: Dirt decals: - 3024: -44,16 - 3025: -43,17 - 3026: -41,14 + 3021: -44,16 + 3022: -43,17 + 3023: -41,14 - node: cleanable: True color: '#1D1D21FF' id: DirtHeavy decals: - 2949: -39,26 - 2950: -40,29 - 2951: -38,28 - 2952: -36,29 - 2953: -35,27 - 2954: -35,26 - 2955: -35,26 - 2956: -37,26 - 2957: -37,26 - 2958: -37,25 - 2959: -39,26 - 2960: -34,25 - 2961: -34,25 - 2962: -36,24 + 2946: -39,26 + 2947: -40,29 + 2948: -38,28 + 2949: -36,29 + 2950: -35,27 + 2951: -35,26 + 2952: -35,26 + 2953: -37,26 + 2954: -37,26 + 2955: -37,25 + 2956: -39,26 + 2957: -34,25 + 2958: -34,25 + 2959: -36,24 - node: cleanable: True color: '#835432FF' id: DirtHeavy decals: - 2941: -36,26 - 2942: -35,27 - 2943: -37,26 - 2944: -37,27 - 2945: -37,25 - 2946: -39,26 - 2947: -38,27 - 2948: -38,28 + 2938: -36,26 + 2939: -35,27 + 2940: -37,26 + 2941: -37,27 + 2942: -37,25 + 2943: -39,26 + 2944: -38,27 + 2945: -38,28 - node: cleanable: True angle: -6.283185307179586 rad color: '#FFFFFFFF' id: DirtHeavy decals: - 6656: 89,-20 - 6657: 87,-21 - 6658: 92,-21 + 6649: 89,-20 + 6650: 87,-21 + 6651: 92,-21 - node: cleanable: True color: '#FFFFFFFF' id: DirtHeavy decals: - 2969: -8,-40 - 2970: -7,-39 - 2971: -5,-40 - 2972: -6,-42 - 2973: -4,-39 - 2974: -6,-40 - 2975: -6,-40 - 2976: -7,-40 - 2977: -7,-39 - 2978: -7,-39 - 2979: -8,-39 - 3662: -60,-66 - 3663: -59,-65 - 3664: -59,-63 - 3665: -59,-61 - 3666: -59,-59 - 3667: -59,-57 - 3668: -60,-57 - 3669: -57,-57 - 3670: -58,-58 - 3671: -56,-57 - 3672: -56,-58 - 3673: -56,-60 - 3674: -56,-62 - 3675: -56,-64 - 3676: -56,-66 - 3677: -58,-66 - 3678: -55,-56 - 3679: -54,-54 - 3680: -54,-52 - 3681: -54,-50 - 3682: -56,-53 - 3683: -56,-52 - 3684: -56,-47 - 3685: -53,-48 - 3686: -52,-46 - 3687: -54,-46 - 3688: -51,-46 - 3689: -50,-48 - 3690: -47,-48 - 3691: -45,-48 - 3692: -43,-46 - 3693: -45,-46 - 3694: -43,-48 - 3695: -42,-48 - 3696: -40,-48 - 3697: -40,-50 - 3698: -40,-52 - 3699: -40,-54 - 3700: -42,-51 - 3701: -42,-53 - 3702: -42,-54 - 3703: -41,-56 - 3704: -39,-57 - 3705: -40,-58 - 3706: -37,-57 - 3707: -37,-58 - 3708: -37,-61 - 3709: -37,-64 - 3710: -37,-65 - 3711: -36,-65 - 3712: -36,-66 - 3713: -39,-66 - 3714: -40,-65 - 3715: -40,-63 - 3716: -40,-60 - 3717: -47,-44 - 3718: -47,-42 - 3719: -47,-39 - 3720: -47,-35 - 3721: -47,-33 - 3722: -49,-33 - 3723: -49,-37 - 3724: -49,-39 - 3725: -49,-41 - 3726: -49,-44 - 3727: -49,-44 - 3728: -49,-43 - 3729: -44,-32 - 3730: -44,-30 - 3731: -43,-31 - 3732: -43,-27 - 3733: -44,-26 - 3734: -43,-26 - 3735: -44,-25 - 3736: -52,-32 - 3737: -52,-30 - 3738: -52,-29 - 3739: -52,-25 - 3740: -52,-22 - 3741: -54,-22 - 3742: -55,-22 - 3743: -52,-20 - 3744: -50,-20 - 3745: -47,-20 - 3746: -46,-20 - 3747: -45,-20 - 3748: -44,-20 - 3749: -44,-22 - 3750: -51,-18 - 3751: -51,-17 - 3752: -49,-17 - 3753: -48,-15 - 3754: -48,-13 - 3755: -50,-13 - 3756: -51,-14 - 3757: -51,-15 - 3758: -44,-15 - 3759: -46,-15 - 3760: -46,-14 - 3761: -54,-24 - 3762: -56,-24 - 3763: -54,-30 - 3764: -56,-29 - 3765: -57,-28 - 3766: -54,-28 - 3767: -61,-29 - 3768: -59,-29 - 3769: -59,-27 - 3770: -59,-25 - 3771: -61,-25 - 3772: -55,-17 - 3773: -55,-15 - 3774: -55,-13 - 3775: -55,-10 - 3776: -53,-17 - 3777: -53,-14 - 3778: -53,-12 - 3779: -53,-11 - 3780: -53,-9 - 3781: -53,-7 - 3782: -53,-6 - 3783: -53,-4 - 3784: -55,-3 - 3785: -55,-7 - 3786: -55,-8 - 3787: -53,0 - 3788: -53,-2 - 3789: -51,-4 - 3790: -49,-4 - 3791: -50,-5 - 3792: -48,-5 - 3801: -53,2 - 3802: -53,4 - 3803: -53,6 - 3804: -53,7 - 3805: -55,7 - 3806: -55,5 - 3807: -55,-1 - 3808: -51,6 - 3809: -50,7 - 3810: -47,7 - 3811: -48,6 - 3812: -46,6 - 3813: -45,7 - 3814: -47,9 - 3815: -45,9 - 3816: -44,9 - 3817: -50,9 - 3818: -50,9 - 3819: -51,11 - 3820: -51,13 - 3821: -50,13 - 3822: -48,13 - 3823: -46,13 - 3824: -48,12 - 3825: -43,11 - 3826: -44,12 - 3827: -43,13 - 3828: -43,12 - 3829: -54,10 - 3830: -53,9 - 3831: -54,9 - 3854: -43,1 - 3855: -40,2 - 3856: -39,1 - 3857: -39,1 - 3858: -40,-1 - 3859: -38,-1 - 3860: -40,-2 - 3861: -39,-2 - 3862: -40,-4 - 3863: -39,-5 - 3864: -38,-5 - 3865: -37,-5 - 3866: -36,-5 - 3867: -38,-4 - 3868: -36,-3 - 3869: -36,-2 - 3870: -36,-4 - 3871: -34,-3 - 3872: -32,-4 - 3873: -34,-1 - 3874: -32,0 - 3875: -35,0 - 3876: -39,3 - 3877: -40,4 - 3878: -38,4 - 3879: -33,1 - 3880: -31,2 - 3881: -31,-1 - 3882: -29,0 - 3883: -32,-2 - 3884: -31,-3 - 3885: -33,-4 - 3886: -32,-5 - 3887: -31,-4 - 3888: -30,-3 - 3889: -28,-3 - 3890: -28,-4 - 3891: -26,-5 - 3892: -27,-2 - 3893: -27,-3 - 3894: -29,0 - 3895: -27,0 - 3896: -27,2 - 3897: -28,3 - 3898: -27,3 - 3899: -27,1 - 3900: -26,-1 - 3901: -32,-1 - 3902: -28,4 - 3903: -26,5 - 3904: -26,6 - 3905: -26,3 - 3906: -26,3 - 3907: -24,2 - 3908: -23,1 - 3909: -25,0 - 3910: -23,-2 - 3911: -25,-3 - 3912: -23,-3 - 3913: -25,-4 - 3914: -23,-5 - 3915: -25,-5 - 3916: -24,-1 - 3917: -25,-1 - 3918: -23,3 - 3919: -15,-1 - 3920: -16,-1 - 3921: -15,0 - 3922: -16,1 - 3923: -16,3 - 3924: -15,3 - 3925: -15,2 - 3926: -15,1 - 3927: -15,1 - 3928: -27,6 - 3929: -27,7 - 3930: -27,9 - 3931: -20,5 - 3932: -21,5 - 3937: -17,5 - 3938: -16,5 - 3939: -16,5 - 3940: -22,11 - 3941: -21,11 - 3942: -22,13 - 3943: -20,14 - 3944: -22,13 - 3945: -22,15 - 3946: -20,14 - 3947: -20,13 - 3948: -20,12 - 3949: -19,11 - 3950: -22,14 - 3951: -23,14 - 3952: -17,11 - 3953: -17,11 - 3954: -17,12 - 3955: -16,11 + 2966: -8,-40 + 2967: -7,-39 + 2968: -5,-40 + 2969: -6,-42 + 2970: -4,-39 + 2971: -6,-40 + 2972: -6,-40 + 2973: -7,-40 + 2974: -7,-39 + 2975: -7,-39 + 2976: -8,-39 + 3658: -60,-66 + 3659: -59,-65 + 3660: -59,-63 + 3661: -59,-61 + 3662: -59,-59 + 3663: -59,-57 + 3664: -60,-57 + 3665: -57,-57 + 3666: -58,-58 + 3667: -56,-57 + 3668: -56,-58 + 3669: -56,-60 + 3670: -56,-62 + 3671: -56,-64 + 3672: -56,-66 + 3673: -58,-66 + 3674: -55,-56 + 3675: -54,-54 + 3676: -54,-52 + 3677: -54,-50 + 3678: -56,-53 + 3679: -56,-52 + 3680: -56,-47 + 3681: -53,-48 + 3682: -52,-46 + 3683: -54,-46 + 3684: -51,-46 + 3685: -50,-48 + 3686: -47,-48 + 3687: -45,-48 + 3688: -43,-46 + 3689: -45,-46 + 3690: -43,-48 + 3691: -42,-48 + 3692: -40,-48 + 3693: -40,-50 + 3694: -40,-52 + 3695: -40,-54 + 3696: -42,-51 + 3697: -42,-53 + 3698: -42,-54 + 3699: -41,-56 + 3700: -39,-57 + 3701: -40,-58 + 3702: -37,-57 + 3703: -37,-58 + 3704: -37,-61 + 3705: -37,-64 + 3706: -37,-65 + 3707: -36,-65 + 3708: -36,-66 + 3709: -39,-66 + 3710: -40,-65 + 3711: -40,-63 + 3712: -40,-60 + 3713: -47,-44 + 3714: -47,-42 + 3715: -47,-39 + 3716: -47,-35 + 3717: -47,-33 + 3718: -49,-33 + 3719: -49,-37 + 3720: -49,-39 + 3721: -49,-41 + 3722: -49,-44 + 3723: -49,-44 + 3724: -49,-43 + 3725: -44,-32 + 3726: -44,-30 + 3727: -43,-31 + 3728: -43,-27 + 3729: -44,-26 + 3730: -43,-26 + 3731: -44,-25 + 3732: -52,-32 + 3733: -52,-30 + 3734: -52,-29 + 3735: -52,-25 + 3736: -52,-22 + 3737: -54,-22 + 3738: -55,-22 + 3739: -52,-20 + 3740: -50,-20 + 3741: -47,-20 + 3742: -46,-20 + 3743: -45,-20 + 3744: -44,-20 + 3745: -44,-22 + 3746: -51,-18 + 3747: -51,-17 + 3748: -49,-17 + 3749: -48,-15 + 3750: -48,-13 + 3751: -50,-13 + 3752: -51,-14 + 3753: -51,-15 + 3754: -44,-15 + 3755: -46,-15 + 3756: -46,-14 + 3757: -54,-24 + 3758: -56,-24 + 3759: -54,-30 + 3760: -56,-29 + 3761: -57,-28 + 3762: -54,-28 + 3763: -61,-29 + 3764: -59,-29 + 3765: -59,-27 + 3766: -59,-25 + 3767: -61,-25 + 3768: -55,-17 + 3769: -55,-15 + 3770: -55,-13 + 3771: -55,-10 + 3772: -53,-17 + 3773: -53,-14 + 3774: -53,-12 + 3775: -53,-11 + 3776: -53,-9 + 3777: -53,-7 + 3778: -53,-6 + 3779: -53,-4 + 3780: -55,-3 + 3781: -55,-7 + 3782: -55,-8 + 3783: -53,0 + 3784: -53,-2 + 3785: -51,-4 + 3786: -49,-4 + 3787: -50,-5 + 3788: -48,-5 + 3797: -53,2 + 3798: -53,4 + 3799: -53,6 + 3800: -53,7 + 3801: -55,7 + 3802: -55,5 + 3803: -55,-1 + 3804: -51,6 + 3805: -50,7 + 3806: -47,7 + 3807: -48,6 + 3808: -46,6 + 3809: -45,7 + 3810: -47,9 + 3811: -45,9 + 3812: -44,9 + 3813: -50,9 + 3814: -50,9 + 3815: -51,11 + 3816: -51,13 + 3817: -50,13 + 3818: -48,13 + 3819: -46,13 + 3820: -48,12 + 3821: -43,11 + 3822: -44,12 + 3823: -43,13 + 3824: -43,12 + 3825: -54,10 + 3826: -53,9 + 3827: -54,9 + 3850: -43,1 + 3851: -40,2 + 3852: -39,1 + 3853: -39,1 + 3854: -40,-1 + 3855: -38,-1 + 3856: -40,-2 + 3857: -39,-2 + 3858: -40,-4 + 3859: -39,-5 + 3860: -38,-5 + 3861: -37,-5 + 3862: -36,-5 + 3863: -38,-4 + 3864: -36,-3 + 3865: -36,-2 + 3866: -36,-4 + 3867: -34,-3 + 3868: -32,-4 + 3869: -34,-1 + 3870: -32,0 + 3871: -35,0 + 3872: -39,3 + 3873: -40,4 + 3874: -38,4 + 3875: -33,1 + 3876: -31,2 + 3877: -31,-1 + 3878: -29,0 + 3879: -32,-2 + 3880: -31,-3 + 3881: -33,-4 + 3882: -32,-5 + 3883: -31,-4 + 3884: -30,-3 + 3885: -28,-3 + 3886: -28,-4 + 3887: -26,-5 + 3888: -27,-2 + 3889: -27,-3 + 3890: -29,0 + 3891: -27,0 + 3892: -27,2 + 3893: -28,3 + 3894: -27,3 + 3895: -27,1 + 3896: -26,-1 + 3897: -32,-1 + 3898: -28,4 + 3899: -26,5 + 3900: -26,6 + 3901: -26,3 + 3902: -26,3 + 3903: -24,2 + 3904: -23,1 + 3905: -25,0 + 3906: -23,-2 + 3907: -25,-3 + 3908: -23,-3 + 3909: -25,-4 + 3910: -23,-5 + 3911: -25,-5 + 3912: -24,-1 + 3913: -25,-1 + 3914: -23,3 + 3915: -15,-1 + 3916: -16,-1 + 3917: -15,0 + 3918: -16,1 + 3919: -16,3 + 3920: -15,3 + 3921: -15,2 + 3922: -15,1 + 3923: -15,1 + 3924: -27,6 + 3925: -27,7 + 3926: -27,9 + 3927: -20,5 + 3928: -21,5 + 3933: -17,5 + 3934: -16,5 + 3935: -16,5 + 3936: -22,11 + 3937: -21,11 + 3938: -22,13 + 3939: -20,14 + 3940: -22,13 + 3941: -22,15 + 3942: -20,14 + 3943: -20,13 + 3944: -20,12 + 3945: -19,11 + 3946: -22,14 + 3947: -23,14 + 3948: -17,11 + 3949: -17,11 + 3950: -17,12 + 3951: -16,11 + 3952: -16,12 + 3953: -17,13 + 3954: -16,14 + 3955: -17,14 3956: -16,12 - 3957: -17,13 - 3958: -16,14 - 3959: -17,14 - 3960: -16,12 - 3961: -17,12 - 3962: -17,11 - 3965: -34,12 - 3966: -35,12 - 3967: -34,14 - 3968: -35,15 - 3969: -34,16 - 3970: -34,17 + 3957: -17,12 + 3958: -17,11 + 3961: -34,12 + 3962: -35,12 + 3963: -34,14 + 3964: -35,15 + 3965: -34,16 + 3966: -34,17 + 3967: -33,16 + 3968: -32,15 + 3969: -31,17 + 3970: -32,17 3971: -33,16 - 3972: -32,15 - 3973: -31,17 - 3974: -32,17 - 3975: -33,16 - 3976: -34,15 - 3977: -34,15 - 3978: -37,14 - 3979: -38,14 - 3980: -39,14 - 3981: -39,12 - 3982: -39,11 - 3983: -38,11 - 3984: -38,11 - 3985: -27,11 - 3986: -27,13 - 3987: -27,16 - 3988: -27,17 - 3989: -27,19 - 3990: -27,20 - 3991: -27,21 - 3992: -25,18 - 3993: -25,16 - 3994: -25,14 - 3995: -25,12 - 3996: -25,11 - 3997: -24,18 - 3998: -22,18 - 3999: -23,17 - 4000: -21,17 - 4001: -20,18 - 4002: -19,17 - 4003: -20,20 - 4004: -22,20 - 4005: -24,20 - 4006: -20,21 - 4007: -17,19 - 4008: -16,19 - 4009: -14,19 - 4010: -17,21 - 4011: -15,21 - 4012: -13,21 - 4013: -11,21 - 4014: -13,19 - 4015: -10,19 - 4016: -8,19 - 4017: -6,19 - 4018: -9,21 - 4019: -7,21 - 4020: -5,21 - 4021: -3,21 + 3972: -34,15 + 3973: -34,15 + 3974: -37,14 + 3975: -38,14 + 3976: -39,14 + 3977: -39,12 + 3978: -39,11 + 3979: -38,11 + 3980: -38,11 + 3981: -27,11 + 3982: -27,13 + 3983: -27,16 + 3984: -27,17 + 3985: -27,19 + 3986: -27,20 + 3987: -27,21 + 3988: -25,18 + 3989: -25,16 + 3990: -25,14 + 3991: -25,12 + 3992: -25,11 + 3993: -24,18 + 3994: -22,18 + 3995: -23,17 + 3996: -21,17 + 3997: -20,18 + 3998: -19,17 + 3999: -20,20 + 4000: -22,20 + 4001: -24,20 + 4002: -20,21 + 4003: -17,19 + 4004: -16,19 + 4005: -14,19 + 4006: -17,21 + 4007: -15,21 + 4008: -13,21 + 4009: -11,21 + 4010: -13,19 + 4011: -10,19 + 4012: -8,19 + 4013: -6,19 + 4014: -9,21 + 4015: -7,21 + 4016: -5,21 + 4017: -3,21 + 4018: 0,21 + 4019: -5,19 + 4020: -2,19 + 4021: 0,19 4022: 0,21 - 4023: -5,19 - 4024: -2,19 - 4025: 0,19 - 4026: 0,21 - 4027: 2,21 - 4028: 5,21 - 4029: 6,21 - 4030: 2,19 - 4031: 4,19 - 4032: 7,19 - 4033: 10,19 - 4034: 8,21 - 4035: 10,21 - 4036: 11,21 - 4037: 13,21 - 4038: 12,19 - 4039: 14,19 - 4040: 15,19 - 4041: 17,19 - 4042: 15,23 - 4043: 14,23 - 4044: 13,24 - 4045: 15,25 - 4046: 15,24 - 4047: 11,23 - 4048: 10,23 - 4049: 11,24 - 4050: 17,23 - 4051: 17,25 - 4052: 17,25 - 4053: 16,23 - 4054: 18,19 - 4055: 19,19 - 4056: 19,21 - 4057: 17,21 - 4058: 16,21 - 4059: 21,20 - 4060: 21,18 - 4061: 21,17 - 4062: 19,18 - 4063: 19,15 - 4064: 19,12 - 4065: 19,11 - 4066: 21,16 - 4067: 21,13 - 4068: 21,12 - 4069: 21,10 - 4070: 21,8 - 4071: 21,7 - 4072: 19,9 - 4073: 19,7 - 4074: 19,6 - 4075: 23,10 - 4076: 24,10 - 4077: 26,10 - 4078: 27,10 - 4079: 28,7 - 4080: 27,8 - 4081: 27,6 - 4082: 28,6 - 4083: 30,6 - 4084: 30,8 - 4085: 30,9 - 4086: 30,10 - 4087: 33,10 - 4088: 34,10 - 4089: 31,12 - 4090: 31,13 - 4091: 30,14 - 4092: 31,17 - 4093: 30,17 - 4094: 31,19 - 4095: 31,20 - 4096: 31,22 - 4097: 30,22 - 4098: 28,22 - 4099: 29,23 - 4100: 26,22 - 4101: 24,22 - 4102: 23,22 - 4103: 23,23 - 4104: 23,20 - 4105: 23,18 - 4106: 25,18 - 4107: 25,17 - 4108: 26,18 - 4109: 27,17 - 4110: 26,19 - 4111: 27,20 - 4112: 29,18 - 4113: 27,18 - 4114: 30,17 - 4115: 33,22 - 4116: 35,22 - 4117: 33,19 - 4118: 33,18 - 4119: 35,18 - 4120: 36,17 - 4121: 34,17 - 4122: 35,17 - 4123: 33,13 - 4124: 33,15 - 4125: 33,15 - 4126: 32,13 - 4127: 26,7 - 4128: 23,2 - 4129: 26,2 - 4130: 20,2 - 4131: 21,2 - 4132: 19,4 - 4138: 31,2 - 4139: 33,2 - 4140: 33,4 - 4141: 32,4 - 4142: 35,4 - 4143: 37,4 - 4144: 37,2 - 4145: 40,2 - 4146: 41,2 - 4147: 41,1 - 4148: 38,2 - 4149: 37,-2 - 4150: 38,-3 - 4151: 39,-2 - 4152: 39,-4 - 4153: 37,-4 - 4154: 39,-5 - 4155: 33,-1 - 4156: 31,-1 - 4157: 31,0 - 4158: 33,0 - 4159: 32,1 - 4160: 38,7 - 4161: 46,11 - 4162: 47,13 - 4163: 44,11 - 4164: 44,13 - 4165: 42,12 - 4166: 42,11 - 4167: 44,12 - 4168: 54,14 - 4169: 58,14 - 4170: 59,14 - 4171: 60,14 - 4172: 58,16 - 4173: 55,10 - 4174: 55,12 - 4175: 54,12 - 4176: 54,6 - 4177: 59,3 - 4178: 60,4 - 4179: 59,0 - 4180: 55,-5 - 4181: 56,-4 - 4182: 57,-5 - 4183: 58,-7 - 4184: 59,-8 - 4185: 60,-7 - 4186: 62,-8 - 4187: 62,-7 - 4188: 41,-1 - 4189: 41,-3 - 4190: 41,-5 - 4191: 41,-7 - 4192: 41,-10 - 4193: 41,-11 - 4194: 43,-12 - 4195: 43,-14 - 4196: 43,-16 - 4197: 43,-17 - 4198: 41,-15 - 4199: 41,-16 - 4200: 41,-17 - 4201: 41,-19 - 4202: 40,-19 - 4203: 40,-21 - 4204: 42,-21 - 4205: 43,-21 - 4206: 45,-21 - 4211: 45,-19 - 4212: 47,-19 - 4213: 48,-19 - 4214: 51,-19 - 4215: 47,-21 - 4216: 49,-21 - 4217: 47,-22 - 4218: 51,-21 - 4219: 52,-21 - 4220: 52,-23 - 4221: 53,-24 - 4222: 56,-24 - 4223: 57,-24 - 4224: 58,-24 - 4225: 58,-23 - 4226: 59,-21 - 4227: 60,-21 - 4228: 61,-20 - 4229: 59,-19 - 4230: 61,-19 - 4231: 60,-17 - 4232: 60,-17 - 4233: 58,-18 - 4234: 58,-19 - 4235: 56,-19 - 4236: 55,-19 - 4237: 53,-19 - 4238: 60,-15 - 4239: 58,-15 - 4240: 59,-14 - 4241: 57,-13 - 4242: 57,-12 - 4243: 60,-13 - 4244: 60,-12 - 4245: 60,-14 - 4246: 61,-13 - 4247: 63,-13 - 4248: 64,-12 - 4249: 65,-14 - 4250: 63,-14 - 4251: 63,-16 - 4252: 65,-16 - 4253: 65,-18 - 4254: 65,-20 - 4255: 63,-18 - 4256: 63,-20 - 4257: 63,-21 - 4258: 65,-21 - 4259: 62,-23 - 4260: 61,-24 - 4261: 64,-24 - 4262: 63,-25 - 4263: 64,-26 - 4264: 65,-27 - 4265: 66,-26 - 4266: 65,-24 - 4267: 65,-23 - 4268: 65,-23 - 4272: 68,-21 - 4273: 69,-21 - 4274: 69,-23 - 4275: 69,-24 - 4277: 69,-27 - 4278: 70,-26 - 4279: 70,-26 - 4280: 71,-27 - 4281: 71,-28 - 4282: 70,-28 - 4283: 68,-28 - 4284: 69,-29 - 4285: 70,-30 - 4286: 69,-30 - 4287: 70,-29 - 4288: 70,-29 - 4289: 70,-29 - 4290: 71,-30 - 4291: 71,-17 - 4292: 68,-17 - 4293: 67,-19 - 4294: 70,-17 - 4295: 70,-19 - 4296: 71,-18 - 4297: 68,-18 - 4298: 69,-19 - 4318: 69,-9 - 4319: 68,-9 - 4320: 67,-9 - 4321: 70,-10 - 4322: 77,-18 - 4323: 75,-18 - 4324: 76,-19 - 4325: 77,-18 - 4326: 76,-17 - 4327: 76,-15 - 4328: 75,-15 - 4329: 76,-13 - 4330: 77,-14 - 4331: 74,-14 - 4332: 74,-16 - 4333: 73,-14 - 4334: 74,-17 - 4335: 74,-18 - 4336: 72,-17 - 4337: 73,-19 - 4338: 73,-17 - 4339: 74,-16 - 4340: 73,-15 - 4341: 74,-16 - 4342: 74,-15 - 4343: 76,-18 - 4344: 79,-14 - 4345: 80,-13 - 4346: 81,-14 - 4347: 79,-14 - 4348: 80,-15 - 4349: 81,-13 - 4350: 80,-19 - 4351: 79,-18 - 4352: 80,-18 - 4353: 80,-19 - 4354: 79,-19 - 4355: 80,-19 - 4356: 81,-19 - 4357: 80,-17 - 4358: 80,-18 - 4359: 79,-19 - 4360: 50,-13 - 4361: 51,-14 - 4362: 50,-13 - 4363: 51,-13 - 4364: 50,-14 - 4365: 50,-14 - 4366: 48,-13 - 4367: 48,-14 - 4368: 48,-13 + 4023: 2,21 + 4024: 5,21 + 4025: 6,21 + 4026: 2,19 + 4027: 4,19 + 4028: 7,19 + 4029: 10,19 + 4030: 8,21 + 4031: 10,21 + 4032: 11,21 + 4033: 13,21 + 4034: 12,19 + 4035: 14,19 + 4036: 15,19 + 4037: 17,19 + 4038: 15,23 + 4039: 14,23 + 4040: 13,24 + 4041: 15,25 + 4042: 15,24 + 4043: 11,23 + 4044: 10,23 + 4045: 11,24 + 4046: 17,23 + 4047: 17,25 + 4048: 17,25 + 4049: 16,23 + 4050: 18,19 + 4051: 19,19 + 4052: 19,21 + 4053: 17,21 + 4054: 16,21 + 4055: 21,20 + 4056: 21,18 + 4057: 21,17 + 4058: 19,18 + 4059: 19,15 + 4060: 19,12 + 4061: 19,11 + 4062: 21,16 + 4063: 21,13 + 4064: 21,12 + 4065: 21,10 + 4066: 21,8 + 4067: 21,7 + 4068: 19,9 + 4069: 19,7 + 4070: 19,6 + 4071: 23,10 + 4072: 24,10 + 4073: 26,10 + 4074: 27,10 + 4075: 28,7 + 4076: 27,8 + 4077: 27,6 + 4078: 28,6 + 4079: 30,6 + 4080: 30,8 + 4081: 30,9 + 4082: 30,10 + 4083: 33,10 + 4084: 34,10 + 4085: 31,12 + 4086: 31,13 + 4087: 30,14 + 4088: 31,17 + 4089: 30,17 + 4090: 31,19 + 4091: 31,20 + 4092: 31,22 + 4093: 30,22 + 4094: 28,22 + 4095: 29,23 + 4096: 26,22 + 4097: 24,22 + 4098: 23,22 + 4099: 23,23 + 4100: 23,20 + 4101: 23,18 + 4102: 25,18 + 4103: 25,17 + 4104: 26,18 + 4105: 27,17 + 4106: 26,19 + 4107: 27,20 + 4108: 29,18 + 4109: 27,18 + 4110: 30,17 + 4111: 33,22 + 4112: 35,22 + 4113: 33,19 + 4114: 33,18 + 4115: 35,18 + 4116: 36,17 + 4117: 34,17 + 4118: 35,17 + 4119: 33,13 + 4120: 33,15 + 4121: 33,15 + 4122: 32,13 + 4123: 26,7 + 4124: 23,2 + 4125: 26,2 + 4126: 20,2 + 4127: 21,2 + 4128: 19,4 + 4134: 31,2 + 4135: 33,2 + 4136: 33,4 + 4137: 32,4 + 4138: 35,4 + 4139: 37,4 + 4140: 37,2 + 4141: 40,2 + 4142: 41,2 + 4143: 41,1 + 4144: 38,2 + 4148: 39,-4 + 4149: 37,-4 + 4150: 39,-5 + 4151: 33,-1 + 4152: 31,-1 + 4153: 31,0 + 4154: 33,0 + 4155: 32,1 + 4156: 38,7 + 4157: 46,11 + 4158: 47,13 + 4159: 44,11 + 4160: 44,13 + 4161: 42,12 + 4162: 42,11 + 4163: 44,12 + 4164: 54,14 + 4165: 58,14 + 4166: 59,14 + 4167: 60,14 + 4168: 58,16 + 4169: 55,10 + 4170: 55,12 + 4171: 54,12 + 4172: 54,6 + 4173: 59,3 + 4174: 60,4 + 4175: 59,0 + 4176: 55,-5 + 4177: 56,-4 + 4178: 57,-5 + 4179: 58,-7 + 4180: 59,-8 + 4181: 60,-7 + 4182: 62,-8 + 4183: 62,-7 + 4184: 41,-1 + 4185: 41,-3 + 4186: 41,-5 + 4187: 41,-7 + 4188: 41,-10 + 4189: 41,-11 + 4190: 43,-12 + 4191: 43,-14 + 4192: 43,-16 + 4193: 43,-17 + 4194: 41,-15 + 4195: 41,-16 + 4196: 41,-17 + 4197: 41,-19 + 4198: 40,-19 + 4199: 40,-21 + 4200: 42,-21 + 4201: 43,-21 + 4202: 45,-21 + 4207: 45,-19 + 4208: 47,-19 + 4209: 48,-19 + 4210: 51,-19 + 4211: 47,-21 + 4212: 49,-21 + 4213: 47,-22 + 4214: 51,-21 + 4215: 52,-21 + 4216: 52,-23 + 4217: 53,-24 + 4218: 56,-24 + 4219: 57,-24 + 4220: 58,-24 + 4221: 58,-23 + 4222: 59,-21 + 4223: 60,-21 + 4224: 61,-20 + 4225: 59,-19 + 4226: 61,-19 + 4227: 60,-17 + 4228: 60,-17 + 4229: 58,-18 + 4230: 58,-19 + 4231: 56,-19 + 4232: 55,-19 + 4233: 53,-19 + 4234: 60,-15 + 4235: 58,-15 + 4236: 59,-14 + 4237: 57,-13 + 4238: 57,-12 + 4239: 60,-13 + 4240: 60,-12 + 4241: 60,-14 + 4242: 61,-13 + 4243: 63,-13 + 4244: 64,-12 + 4245: 65,-14 + 4246: 63,-14 + 4247: 63,-16 + 4248: 65,-16 + 4249: 65,-18 + 4250: 65,-20 + 4251: 63,-18 + 4252: 63,-20 + 4253: 63,-21 + 4254: 65,-21 + 4255: 62,-23 + 4256: 61,-24 + 4257: 64,-24 + 4258: 63,-25 + 4259: 64,-26 + 4260: 65,-27 + 4261: 66,-26 + 4262: 65,-24 + 4263: 65,-23 + 4264: 65,-23 + 4268: 68,-21 + 4269: 69,-21 + 4270: 69,-23 + 4271: 69,-24 + 4273: 69,-27 + 4274: 70,-26 + 4275: 70,-26 + 4276: 71,-27 + 4277: 71,-28 + 4278: 70,-28 + 4279: 68,-28 + 4280: 69,-29 + 4281: 70,-30 + 4282: 69,-30 + 4283: 70,-29 + 4284: 70,-29 + 4285: 70,-29 + 4286: 71,-30 + 4287: 71,-17 + 4288: 68,-17 + 4289: 67,-19 + 4290: 70,-17 + 4291: 70,-19 + 4292: 71,-18 + 4293: 68,-18 + 4294: 69,-19 + 4314: 69,-9 + 4315: 68,-9 + 4316: 67,-9 + 4317: 70,-10 + 4318: 77,-18 + 4319: 75,-18 + 4320: 76,-19 + 4321: 77,-18 + 4322: 76,-17 + 4323: 76,-15 + 4324: 75,-15 + 4325: 76,-13 + 4326: 77,-14 + 4327: 74,-14 + 4328: 74,-16 + 4329: 73,-14 + 4330: 74,-17 + 4331: 74,-18 + 4332: 72,-17 + 4333: 73,-19 + 4334: 73,-17 + 4335: 74,-16 + 4336: 73,-15 + 4337: 74,-16 + 4338: 74,-15 + 4339: 76,-18 + 4340: 79,-14 + 4341: 80,-13 + 4342: 81,-14 + 4343: 79,-14 + 4344: 80,-15 + 4345: 81,-13 + 4346: 80,-19 + 4347: 79,-18 + 4348: 80,-18 + 4349: 80,-19 + 4350: 79,-19 + 4351: 80,-19 + 4352: 81,-19 + 4353: 80,-17 + 4354: 80,-18 + 4355: 79,-19 + 4356: 50,-13 + 4357: 51,-14 + 4358: 50,-13 + 4359: 51,-13 + 4360: 50,-14 + 4361: 50,-14 + 4362: 48,-13 + 4363: 48,-14 + 4364: 48,-13 + 4365: 53,-13 + 4366: 53,-14 + 4367: 53,-12 + 4368: 53,-14 4369: 53,-13 4370: 53,-14 - 4371: 53,-12 - 4372: 53,-14 - 4373: 53,-13 - 4374: 53,-14 - 4375: 50,-15 - 4376: 51,-15 - 4377: 50,-14 - 4378: 51,-13 - 4379: 50,-12 - 4380: 50,-12 - 4381: 48,-12 - 4382: 50,-12 - 4383: 51,-13 - 4384: 47,-24 - 4385: 49,-25 - 4386: 48,-26 - 4387: 47,-25 - 4388: 49,-25 - 4389: 48,-23 - 4390: 47,-28 - 4391: 49,-29 - 4392: 47,-30 - 4393: 48,-32 - 4394: 49,-31 - 4395: 48,-33 - 4396: 47,-33 - 4397: 49,-33 - 4398: 48,-34 - 4399: 47,-34 - 4400: 43,-36 + 4371: 50,-15 + 4372: 51,-15 + 4373: 50,-14 + 4374: 51,-13 + 4375: 50,-12 + 4376: 50,-12 + 4377: 48,-12 + 4378: 50,-12 + 4379: 51,-13 + 4380: 47,-24 + 4381: 49,-25 + 4382: 48,-26 + 4383: 47,-25 + 4384: 49,-25 + 4385: 48,-23 + 4386: 47,-28 + 4387: 49,-29 + 4388: 47,-30 + 4389: 48,-32 + 4390: 49,-31 + 4391: 48,-33 + 4392: 47,-33 + 4393: 49,-33 + 4394: 48,-34 + 4395: 47,-34 + 4396: 43,-36 + 4397: 40,-36 + 4398: 37,-35 + 4399: 36,-35 + 4400: 37,-36 4401: 40,-36 - 4402: 37,-35 - 4403: 36,-35 - 4404: 37,-36 - 4405: 40,-36 - 4406: 43,-35 - 4407: 43,-35 - 4408: 41,-35 - 4409: 43,-35 - 4410: 43,-34 - 4436: 33,-34 - 4437: 31,-34 - 4438: 33,-32 - 4439: 32,-32 - 4440: 32,-31 - 4441: 32,-30 - 4442: 33,-28 - 4443: 31,-29 - 4444: 33,-31 - 4445: 33,-31 - 4446: 35,-30 - 4447: 36,-30 - 4448: 36,-29 + 4402: 43,-35 + 4403: 43,-35 + 4404: 41,-35 + 4405: 43,-35 + 4406: 43,-34 + 4432: 33,-34 + 4433: 31,-34 + 4434: 33,-32 + 4435: 32,-32 + 4436: 32,-31 + 4437: 32,-30 + 4438: 33,-28 + 4439: 31,-29 + 4440: 33,-31 + 4441: 33,-31 + 4442: 35,-30 + 4443: 36,-30 + 4444: 36,-29 + 4445: 33,-25 + 4446: 31,-25 + 4447: 33,-25 + 4448: 31,-25 4449: 33,-25 - 4450: 31,-25 - 4451: 33,-25 - 4452: 31,-25 - 4453: 33,-25 - 4454: 32,-26 - 4455: 31,-25 - 4456: 32,-24 - 4457: 32,-25 - 4458: 31,-24 - 4459: 40,-25 - 4460: 39,-24 - 4461: 40,-26 - 4462: 42,-25 - 4463: 42,-25 - 4464: 44,-24 - 4465: 42,-25 - 4466: 44,-25 - 4467: 45,-25 - 4468: 42,-26 - 4469: 43,-25 - 4470: 43,-25 - 4471: 41,-25 - 4472: 40,-25 - 4473: 40,-25 - 4474: 40,-24 - 4475: 35,-23 - 4476: 37,-23 - 4477: 36,-23 - 4478: 35,-23 - 4479: 38,-21 - 4480: 35,-21 - 4481: 33,-21 - 4482: 33,-22 - 4483: 32,-22 - 4484: 32,-21 - 4485: 37,-19 - 4486: 34,-19 - 4487: 32,-19 - 4488: 31,-19 - 4489: 28,-19 - 4490: 27,-19 - 4491: 27,-20 - 4492: 27,-21 - 4493: 30,-21 - 4494: 29,-21 - 4495: 29,-23 - 4496: 29,-24 - 4497: 29,-25 - 4498: 29,-26 - 4499: 27,-22 - 4500: 27,-24 - 4501: 27,-25 - 4502: 26,-25 - 4503: 25,-25 - 4504: 29,-27 - 4505: 27,-27 - 4506: 25,-27 - 4507: 24,-27 - 4508: 21,-27 - 4509: 21,-25 - 4510: 20,-25 - 4511: 19,-25 - 4512: 19,-26 - 4513: 19,-28 - 4514: 19,-28 - 4515: 19,-30 - 4516: 19,-31 - 4517: 19,-32 - 4518: 21,-30 - 4519: 21,-33 - 4520: 21,-34 - 4521: 21,-34 - 4522: 19,-34 - 4523: 20,-36 - 4524: 20,-37 - 4525: 19,-37 - 4526: 20,-39 - 4527: 21,-38 - 4528: 22,-39 - 4529: 21,-37 - 4530: 24,-37 - 4531: 23,-38 - 4532: 25,-37 - 4533: 25,-38 - 4534: 24,-38 - 4535: 25,-38 - 4536: 17,-34 - 4537: 17,-35 - 4538: 16,-34 - 4539: 14,-34 - 4540: 17,-32 - 4541: 15,-32 - 4542: 13,-32 - 4543: 11,-32 - 4544: 10,-32 - 4545: 12,-34 - 4546: 9,-34 - 4547: 8,-34 - 4548: 7,-34 - 4549: 7,-32 - 4550: 7,-32 - 4551: 6,-32 - 4552: 9,-30 - 4553: 8,-29 - 4554: 7,-29 - 4555: 7,-29 - 4556: 6,-28 - 4557: 8,-27 - 4558: 9,-27 - 4559: 7,-28 - 4560: 6,-27 - 4561: 5,-29 - 4562: 7,-30 - 4563: 9,-30 - 4564: 3,-30 - 4565: 1,-30 - 4566: 3,-32 - 4567: 2,-32 - 4568: 2,-33 - 4569: 0,-33 - 4570: -1,-33 - 4571: -1,-32 - 4572: 0,-30 - 4573: -3,-30 - 4574: -4,-30 - 4575: -6,-30 - 4576: -7,-30 - 4577: -9,-30 - 4578: -6,-32 - 4579: -5,-32 - 4580: -3,-32 - 4581: -8,-32 - 4582: -8,-33 - 4583: -9,-32 - 4584: -10,-32 - 4585: -11,-32 - 4586: -13,-32 - 4587: -10,-30 - 4588: -11,-30 - 4589: -13,-30 - 4590: -15,-30 - 4591: -16,-30 - 4592: -12,-29 - 4593: -12,-30 - 4594: -16,-32 - 4595: -17,-33 - 4596: -17,-32 - 4597: -19,-32 - 4598: -18,-30 - 4599: -20,-30 - 4600: -22,-30 - 4601: -23,-30 - 4602: -23,-29 - 4603: -22,-32 - 4604: -24,-32 - 4605: -24,-32 - 4606: -26,-30 - 4607: -26,-29 - 4608: -26,-27 - 4609: -26,-25 - 4610: -24,-27 - 4611: -24,-26 - 4612: -24,-25 - 4613: -24,-24 - 4614: -26,-23 - 4615: -26,-22 - 4616: -26,-20 - 4617: -24,-21 - 4618: -24,-19 - 4619: -24,-18 - 4620: -24,-16 - 4621: -26,-17 - 4622: -26,-16 - 4623: -26,-14 - 4624: -26,-13 - 4625: -26,-12 - 4626: -26,-10 - 4627: -26,-9 - 4628: -25,-9 - 4629: -24,-11 - 4630: -23,-11 - 4631: -23,-10 - 4632: -23,-9 - 4633: -24,-5 - 4634: -24,-4 - 4635: -24,-2 - 4636: -19,-11 - 4637: -19,-10 - 4638: -20,-10 - 4639: -20,-9 - 4640: -19,-9 - 4641: -30,-21 - 4642: -30,-19 - 4643: -29,-19 - 4644: -30,-18 - 4645: -32,-21 - 4646: -32,-19 - 4647: -33,-18 - 4648: -34,-18 - 4649: -36,-15 - 4650: -36,-14 - 4651: -33,-14 - 4652: -33,-14 - 4653: -33,-15 - 4654: -30,-14 - 4655: -36,-10 - 4656: -37,-9 - 4657: -37,-10 - 4658: -29,-10 - 4659: -30,-11 - 4660: -30,-9 - 4661: -28,-10 - 4662: -40,-11 + 4450: 32,-26 + 4451: 31,-25 + 4452: 32,-24 + 4453: 32,-25 + 4454: 31,-24 + 4455: 40,-25 + 4456: 39,-24 + 4457: 40,-26 + 4458: 42,-25 + 4459: 42,-25 + 4460: 44,-24 + 4461: 42,-25 + 4462: 44,-25 + 4463: 45,-25 + 4464: 42,-26 + 4465: 43,-25 + 4466: 43,-25 + 4467: 41,-25 + 4468: 40,-25 + 4469: 40,-25 + 4470: 40,-24 + 4471: 35,-23 + 4472: 37,-23 + 4473: 36,-23 + 4474: 35,-23 + 4475: 38,-21 + 4476: 35,-21 + 4477: 33,-21 + 4478: 33,-22 + 4479: 32,-22 + 4480: 32,-21 + 4481: 37,-19 + 4482: 34,-19 + 4483: 32,-19 + 4484: 31,-19 + 4485: 28,-19 + 4486: 27,-19 + 4487: 27,-20 + 4488: 27,-21 + 4489: 30,-21 + 4490: 29,-21 + 4491: 29,-23 + 4492: 29,-24 + 4493: 29,-25 + 4494: 29,-26 + 4495: 27,-22 + 4496: 27,-24 + 4497: 27,-25 + 4498: 26,-25 + 4499: 25,-25 + 4500: 29,-27 + 4501: 27,-27 + 4502: 25,-27 + 4503: 24,-27 + 4504: 21,-27 + 4505: 21,-25 + 4506: 20,-25 + 4507: 19,-25 + 4508: 19,-26 + 4509: 19,-28 + 4510: 19,-28 + 4511: 19,-30 + 4512: 19,-31 + 4513: 19,-32 + 4514: 21,-30 + 4515: 21,-33 + 4516: 21,-34 + 4517: 21,-34 + 4518: 19,-34 + 4519: 20,-36 + 4520: 20,-37 + 4521: 19,-37 + 4522: 20,-39 + 4523: 21,-38 + 4524: 22,-39 + 4525: 21,-37 + 4526: 24,-37 + 4527: 23,-38 + 4528: 25,-37 + 4529: 25,-38 + 4530: 24,-38 + 4531: 25,-38 + 4532: 17,-34 + 4533: 17,-35 + 4534: 16,-34 + 4535: 14,-34 + 4536: 17,-32 + 4537: 15,-32 + 4538: 13,-32 + 4539: 11,-32 + 4540: 10,-32 + 4541: 12,-34 + 4542: 9,-34 + 4543: 8,-34 + 4544: 7,-34 + 4545: 7,-32 + 4546: 7,-32 + 4547: 6,-32 + 4548: 9,-30 + 4549: 8,-29 + 4550: 7,-29 + 4551: 7,-29 + 4552: 6,-28 + 4553: 8,-27 + 4554: 9,-27 + 4555: 7,-28 + 4556: 6,-27 + 4557: 5,-29 + 4558: 7,-30 + 4559: 9,-30 + 4560: 3,-30 + 4561: 1,-30 + 4562: 3,-32 + 4563: 2,-32 + 4564: 2,-33 + 4565: 0,-33 + 4566: -1,-33 + 4567: -1,-32 + 4568: 0,-30 + 4569: -3,-30 + 4570: -4,-30 + 4571: -6,-30 + 4572: -7,-30 + 4573: -9,-30 + 4574: -6,-32 + 4575: -5,-32 + 4576: -3,-32 + 4577: -8,-32 + 4578: -8,-33 + 4579: -9,-32 + 4580: -10,-32 + 4581: -11,-32 + 4582: -13,-32 + 4583: -10,-30 + 4584: -11,-30 + 4585: -13,-30 + 4586: -15,-30 + 4587: -16,-30 + 4588: -12,-29 + 4589: -12,-30 + 4590: -16,-32 + 4591: -17,-33 + 4592: -17,-32 + 4593: -19,-32 + 4594: -18,-30 + 4595: -20,-30 + 4596: -22,-30 + 4597: -23,-30 + 4598: -23,-29 + 4599: -22,-32 + 4600: -24,-32 + 4601: -24,-32 + 4602: -26,-30 + 4603: -26,-29 + 4604: -26,-27 + 4605: -26,-25 + 4606: -24,-27 + 4607: -24,-26 + 4608: -24,-25 + 4609: -24,-24 + 4610: -26,-23 + 4611: -26,-22 + 4612: -26,-20 + 4613: -24,-21 + 4614: -24,-19 + 4615: -24,-18 + 4616: -24,-16 + 4617: -26,-17 + 4618: -26,-16 + 4619: -26,-14 + 4620: -26,-13 + 4621: -26,-12 + 4622: -26,-10 + 4623: -26,-9 + 4624: -25,-9 + 4625: -24,-11 + 4626: -23,-11 + 4627: -23,-10 + 4628: -23,-9 + 4629: -24,-5 + 4630: -24,-4 + 4631: -24,-2 + 4632: -19,-11 + 4633: -19,-10 + 4634: -20,-10 + 4635: -20,-9 + 4636: -19,-9 + 4637: -30,-21 + 4638: -30,-19 + 4639: -29,-19 + 4640: -30,-18 + 4641: -32,-21 + 4642: -32,-19 + 4643: -33,-18 + 4644: -34,-18 + 4645: -36,-15 + 4646: -36,-14 + 4647: -33,-14 + 4648: -33,-14 + 4649: -33,-15 + 4650: -30,-14 + 4651: -36,-10 + 4652: -37,-9 + 4653: -37,-10 + 4654: -29,-10 + 4655: -30,-11 + 4656: -30,-9 + 4657: -28,-10 + 4658: -40,-11 + 4659: -41,-10 + 4660: -41,-9 + 4661: -40,-9 + 4662: -41,-10 4663: -41,-10 - 4664: -41,-9 - 4665: -40,-9 - 4666: -41,-10 - 4667: -41,-10 - 4668: -49,-18 - 4669: -38,-33 - 4670: -36,-33 - 4671: -33,-33 - 4672: -32,-33 - 4673: -31,-33 - 4674: -31,-31 - 4675: -31,-29 - 4676: -31,-28 - 4677: -31,-26 - 4678: -33,-26 - 4679: -35,-26 - 4680: -36,-26 - 4681: -37,-26 - 4682: -38,-26 - 4683: -38,-27 - 4684: -38,-29 - 4685: -38,-30 - 4686: -38,-31 - 4687: -38,-29 - 4688: -38,-26 - 4689: -40,-26 - 4690: -40,-25 - 4691: -41,-25 - 4692: -41,-26 - 4693: -41,-28 - 4694: -41,-29 - 4695: -41,-30 - 4696: -41,-32 - 4697: -41,-33 - 4698: -41,-34 - 4699: -39,-33 - 4700: -40,-34 - 4701: -35,-34 - 4702: -34,-34 - 4703: -32,-34 - 4704: -31,-34 - 4705: -30,-34 - 4706: -30,-33 - 4707: -28,-34 - 4708: -28,-32 - 4709: -28,-31 - 4710: -28,-29 - 4711: -28,-27 - 4712: -28,-26 - 4713: -29,-25 - 4714: -30,-25 - 4715: -30,-26 - 4716: -32,-25 - 4717: -33,-26 - 4718: -35,-25 - 4719: -32,6 - 4720: -32,7 - 4721: -32,6 - 4722: -36,6 - 4723: -36,5 - 4724: -36,7 - 4725: -34,6 - 4726: -34,5 - 4727: -35,6 - 4728: -33,6 - 4729: -35,-4 - 4730: -35,-2 - 4731: -36,-5 - 4732: -35,-2 - 4733: -34,-2 - 4734: -35,-1 - 4746: -25,28 - 4747: -26,28 - 4748: -18,32 - 4749: -17,31 - 4750: -17,33 - 4751: -18,32 - 4752: -15,34 - 4753: -15,32 - 4754: -15,31 - 4755: -13,31 - 4756: -12,31 - 4757: -15,34 - 4758: -15,34 - 4759: -12,39 - 4760: -13,40 - 4761: -14,40 - 4762: -15,40 - 4763: -16,40 - 4764: -16,40 - 4765: -13,40 - 4766: -12,40 - 4767: -12,38 - 4768: -12,40 - 4774: -5,40 - 4775: -6,40 - 4776: -6,42 - 4777: -6,43 - 4778: -5,42 - 4779: -6,43 - 4780: -6,45 - 4781: -6,46 - 4782: -6,47 - 4783: -5,46 - 4784: -4,48 - 4785: -5,46 - 4786: -2,48 - 4787: -4,46 - 4788: -1,47 - 4789: -3,45 - 4790: 0,46 - 4791: -3,47 - 4792: -1,45 - 4793: -3,46 - 4794: 1,45 - 4795: 1,47 - 4796: 0,46 - 4797: 1,48 - 4798: 2,48 - 4799: 3,47 - 4800: 2,45 - 4801: 2,44 - 4802: 2,43 - 4803: 2,42 - 4804: 1,42 - 4805: 3,42 - 4806: -2,43 - 4807: -1,41 - 4808: -3,40 - 4809: -3,40 - 4810: 1,51 - 4811: -2,50 - 4812: -3,50 - 4813: -2,51 - 4814: 0,51 - 4815: -1,52 - 4816: -2,51 - 4817: -2,53 - 4818: 1,53 - 4819: 2,51 - 4820: 2,50 - 4821: 0,50 - 4822: -4,45 - 4823: -4,47 - 4850: 6,42 - 4851: 5,41 - 4852: 5,39 - 4853: 7,39 - 4854: 8,39 - 4855: 9,41 - 4856: 9,40 - 4857: 8,42 - 4858: 8,41 - 4859: 15,37 - 4860: 14,37 - 4861: 14,35 - 4862: 14,34 - 4863: 13,35 - 4864: 13,36 - 4865: 15,34 - 4866: 16,35 - 4867: 15,36 - 4868: 15,34 - 4869: 15,35 - 4870: 15,37 - 4871: 14,37 - 4872: 15,30 - 4873: 14,29 - 4874: 14,29 - 4875: 15,28 - 4876: 14,29 - 4877: 14,32 - 4878: 13,32 - 4879: 15,24 - 4903: 2,24 - 4904: 1,24 - 4905: 1,24 - 4906: 2,23 - 4907: 4,23 - 4908: 4,24 - 4909: 3,26 - 4910: 4,28 - 4911: 2,27 - 4912: 2,27 - 4913: 3,27 - 4914: -2,25 - 4915: -3,25 - 4916: -3,23 - 4917: -2,24 - 4918: -4,23 - 4919: -4,25 - 4955: -14,28 - 4956: -15,28 - 4957: -14,29 - 4958: -13,26 - 4959: -10,26 - 4960: -9,27 - 4961: -10,28 - 4962: -7,28 - 4963: -8,26 - 4964: -5,28 - 4965: -7,24 - 4966: -8,24 - 4967: -7,23 - 4968: -6,24 - 4969: -6,23 - 4970: -7,23 - 4971: -8,23 - 4972: -8,23 - 4973: -12,23 - 4974: -11,24 - 4975: -10,23 - 4976: -10,24 - 4977: -10,24 - 4978: -12,24 - 4979: -12,24 - 4980: -14,24 - 4981: -14,23 - 4982: -16,24 - 4983: -14,24 - 4984: -15,23 - 4985: -16,24 - 4986: -14,25 - 4987: -10,25 - 4988: -7,25 - 4989: -1,28 - 4990: -3,27 - 4991: -1,30 - 4992: -1,33 - 4993: -1,34 - 4994: -1,37 - 4995: -3,37 - 4996: -3,38 - 4997: -1,37 - 4998: -2,37 - 4999: -1,40 - 5000: -3,41 - 5001: -3,43 - 5002: -2,43 - 5003: -20,25 - 5004: -21,25 - 5005: -19,25 - 5006: -21,25 - 5007: -22,17 - 5008: -23,17 - 5009: -22,5 - 5010: -22,5 - 5011: -22,5 - 5012: -19,-28 - 5013: -16,-28 - 5014: -16,-27 - 5015: -15,-28 - 5016: -16,-26 - 5017: -15,-27 - 5018: -15,-28 - 5019: -15,-26 - 5020: -15,-26 - 5021: -14,-26 - 5032: -25,-34 - 5033: -23,-34 - 5034: -22,-34 - 5035: -21,-34 - 5036: -20,-34 - 5037: -20,-37 - 5038: -20,-36 - 5039: -19,-38 - 5040: -19,-36 - 5041: -22,-37 - 5042: -23,-37 - 5043: -23,-38 - 5044: -23,-36 - 5045: -24,-37 - 5046: -26,-37 - 5047: -26,-36 - 5048: -26,-37 - 5049: -28,-40 - 5050: -27,-40 - 5051: -25,-40 - 5052: -24,-40 - 5053: -23,-40 - 5054: -21,-40 - 5055: -19,-40 - 5056: -21,-40 - 5057: -24,-40 - 5058: -26,-40 - 5059: -32,-40 - 5060: -31,-40 - 5061: -33,-39 + 4664: -49,-18 + 4665: -38,-33 + 4666: -36,-33 + 4667: -33,-33 + 4668: -32,-33 + 4669: -31,-33 + 4670: -31,-31 + 4671: -31,-29 + 4672: -31,-28 + 4673: -31,-26 + 4674: -33,-26 + 4675: -35,-26 + 4676: -36,-26 + 4677: -37,-26 + 4678: -38,-26 + 4679: -38,-27 + 4680: -38,-29 + 4681: -38,-30 + 4682: -38,-31 + 4683: -38,-29 + 4684: -38,-26 + 4685: -40,-26 + 4686: -40,-25 + 4687: -41,-25 + 4688: -41,-26 + 4689: -41,-28 + 4690: -41,-29 + 4691: -41,-30 + 4692: -41,-32 + 4693: -41,-33 + 4694: -41,-34 + 4695: -39,-33 + 4696: -40,-34 + 4697: -35,-34 + 4698: -34,-34 + 4699: -32,-34 + 4700: -31,-34 + 4701: -30,-34 + 4702: -30,-33 + 4703: -28,-34 + 4704: -28,-32 + 4705: -28,-31 + 4706: -28,-29 + 4707: -28,-27 + 4708: -28,-26 + 4709: -29,-25 + 4710: -30,-25 + 4711: -30,-26 + 4712: -32,-25 + 4713: -33,-26 + 4714: -35,-25 + 4715: -32,6 + 4716: -32,7 + 4717: -32,6 + 4718: -36,6 + 4719: -36,5 + 4720: -36,7 + 4721: -34,6 + 4722: -34,5 + 4723: -35,6 + 4724: -33,6 + 4725: -35,-4 + 4726: -35,-2 + 4727: -36,-5 + 4728: -35,-2 + 4729: -34,-2 + 4730: -35,-1 + 4742: -25,28 + 4743: -26,28 + 4744: -18,32 + 4745: -17,31 + 4746: -17,33 + 4747: -18,32 + 4748: -15,34 + 4749: -15,32 + 4750: -15,31 + 4751: -13,31 + 4752: -12,31 + 4753: -15,34 + 4754: -15,34 + 4755: -12,39 + 4756: -13,40 + 4757: -14,40 + 4758: -15,40 + 4759: -16,40 + 4760: -16,40 + 4761: -13,40 + 4762: -12,40 + 4763: -12,38 + 4764: -12,40 + 4770: -5,40 + 4771: -6,40 + 4772: -6,42 + 4773: -6,43 + 4774: -5,42 + 4775: -6,43 + 4776: -6,45 + 4777: -6,46 + 4778: -6,47 + 4779: -5,46 + 4780: -4,48 + 4781: -5,46 + 4782: -2,48 + 4783: -4,46 + 4784: -1,47 + 4785: -3,45 + 4786: 0,46 + 4787: -3,47 + 4788: -1,45 + 4789: -3,46 + 4790: 1,45 + 4791: 1,47 + 4792: 0,46 + 4793: 1,48 + 4794: 2,48 + 4795: 3,47 + 4796: 2,45 + 4797: 2,44 + 4798: 2,43 + 4799: 2,42 + 4800: 1,42 + 4801: 3,42 + 4802: -2,43 + 4803: -1,41 + 4804: -3,40 + 4805: -3,40 + 4806: 1,51 + 4807: -2,50 + 4808: -3,50 + 4809: -2,51 + 4810: 0,51 + 4811: -1,52 + 4812: -2,51 + 4813: -2,53 + 4814: 1,53 + 4815: 2,51 + 4816: 2,50 + 4817: 0,50 + 4818: -4,45 + 4819: -4,47 + 4846: 6,42 + 4847: 5,41 + 4848: 5,39 + 4849: 7,39 + 4850: 8,39 + 4851: 9,41 + 4852: 9,40 + 4853: 8,42 + 4854: 8,41 + 4855: 15,37 + 4856: 14,37 + 4857: 14,35 + 4858: 14,34 + 4859: 13,35 + 4860: 13,36 + 4861: 15,34 + 4862: 16,35 + 4863: 15,36 + 4864: 15,34 + 4865: 15,35 + 4866: 15,37 + 4867: 14,37 + 4868: 15,30 + 4869: 14,29 + 4870: 14,29 + 4871: 15,28 + 4872: 14,29 + 4873: 14,32 + 4874: 13,32 + 4875: 15,24 + 4899: 2,24 + 4900: 1,24 + 4901: 1,24 + 4902: 2,23 + 4903: 4,23 + 4904: 4,24 + 4905: 3,26 + 4906: 4,28 + 4907: 2,27 + 4908: 2,27 + 4909: 3,27 + 4910: -2,25 + 4911: -3,25 + 4912: -3,23 + 4913: -2,24 + 4914: -4,23 + 4915: -4,25 + 4951: -14,28 + 4952: -15,28 + 4953: -14,29 + 4954: -13,26 + 4955: -10,26 + 4956: -9,27 + 4957: -10,28 + 4958: -7,28 + 4959: -8,26 + 4960: -5,28 + 4961: -7,24 + 4962: -8,24 + 4963: -7,23 + 4964: -6,24 + 4965: -6,23 + 4966: -7,23 + 4967: -8,23 + 4968: -8,23 + 4969: -12,23 + 4970: -11,24 + 4971: -10,23 + 4972: -10,24 + 4973: -10,24 + 4974: -12,24 + 4975: -12,24 + 4976: -14,24 + 4977: -14,23 + 4978: -16,24 + 4979: -14,24 + 4980: -15,23 + 4981: -16,24 + 4982: -14,25 + 4983: -10,25 + 4984: -7,25 + 4985: -1,28 + 4986: -3,27 + 4987: -1,30 + 4988: -1,33 + 4989: -1,34 + 4990: -1,37 + 4991: -3,37 + 4992: -3,38 + 4993: -1,37 + 4994: -2,37 + 4995: -1,40 + 4996: -3,41 + 4997: -3,43 + 4998: -2,43 + 4999: -20,25 + 5000: -21,25 + 5001: -19,25 + 5002: -21,25 + 5003: -22,17 + 5004: -23,17 + 5005: -22,5 + 5006: -22,5 + 5007: -22,5 + 5008: -19,-28 + 5009: -16,-28 + 5010: -16,-27 + 5011: -15,-28 + 5012: -16,-26 + 5013: -15,-27 + 5014: -15,-28 + 5015: -15,-26 + 5016: -15,-26 + 5017: -14,-26 + 5028: -25,-34 + 5029: -23,-34 + 5030: -22,-34 + 5031: -21,-34 + 5032: -20,-34 + 5033: -20,-37 + 5034: -20,-36 + 5035: -19,-38 + 5036: -19,-36 + 5037: -22,-37 + 5038: -23,-37 + 5039: -23,-38 + 5040: -23,-36 + 5041: -24,-37 + 5042: -26,-37 + 5043: -26,-36 + 5044: -26,-37 + 5045: -28,-40 + 5046: -27,-40 + 5047: -25,-40 + 5048: -24,-40 + 5049: -23,-40 + 5050: -21,-40 + 5051: -19,-40 + 5052: -21,-40 + 5053: -24,-40 + 5054: -26,-40 + 5055: -32,-40 + 5056: -31,-40 + 5057: -33,-39 + 5058: -33,-40 + 5059: -32,-39 + 5060: -31,-39 + 5061: -34,-39 5062: -33,-40 - 5063: -32,-39 - 5064: -31,-39 - 5065: -34,-39 - 5066: -33,-40 - 5067: -39,-38 - 5068: -38,-38 - 5069: -29,-46 + 5063: -39,-38 + 5064: -38,-38 + 5065: -29,-46 + 5066: -30,-45 + 5067: -30,-45 + 5068: -30,-44 + 5069: -29,-45 5070: -30,-45 - 5071: -30,-45 - 5072: -30,-44 - 5075: -29,-45 - 5076: -30,-45 - 5078: -30,-44 - 5079: -29,-45 - 5080: -38,-53 - 5081: -38,-54 - 5082: -37,-53 - 5083: -37,-54 - 5084: -14,-39 - 5085: -13,-38 - 5086: -13,-39 - 5087: -13,-40 - 5088: -13,-41 - 5089: -13,-39 - 5090: -13,-40 - 5091: -13,-41 - 5092: -13,-39 - 5093: -13,-40 - 5094: -13,-39 - 5095: -13,-40 - 5098: -5,-41 - 5099: -5,-40 - 5100: -6,-42 - 5101: -5,-36 - 5102: -6,-36 - 5103: -4,-35 - 5104: -4,-36 - 5105: 0,-36 - 5106: -2,-36 - 5107: 1,-35 - 5108: 1,-37 - 5109: 1,-38 - 5110: 2,-37 - 5111: 2,-38 - 5112: 0,-37 - 5113: 3,-37 - 5114: -1,-36 - 5118: -6,-28 - 5119: -6,-27 - 5120: -5,-27 - 5121: -6,-26 + 5071: -30,-44 + 5072: -29,-45 + 5073: -38,-53 + 5074: -38,-54 + 5075: -37,-53 + 5076: -37,-54 + 5077: -14,-39 + 5078: -13,-38 + 5079: -13,-39 + 5080: -13,-40 + 5081: -13,-41 + 5082: -13,-39 + 5083: -13,-40 + 5084: -13,-41 + 5085: -13,-39 + 5086: -13,-40 + 5087: -13,-39 + 5088: -13,-40 + 5091: -5,-41 + 5092: -5,-40 + 5093: -6,-42 + 5094: -5,-36 + 5095: -6,-36 + 5096: -4,-35 + 5097: -4,-36 + 5098: 0,-36 + 5099: -2,-36 + 5100: 1,-35 + 5101: 1,-37 + 5102: 1,-38 + 5103: 2,-37 + 5104: 2,-38 + 5105: 0,-37 + 5106: 3,-37 + 5107: -1,-36 + 5111: -6,-28 + 5112: -6,-27 + 5113: -5,-27 + 5114: -6,-26 + 5115: -2,-27 + 5116: -3,-26 + 5117: -2,-28 + 5118: -1,-27 + 5119: 0,-27 + 5120: 0,-27 + 5121: -2,-27 5122: -2,-27 - 5123: -3,-26 - 5124: -2,-28 - 5125: -1,-27 - 5126: 0,-27 - 5127: 0,-27 - 5128: -2,-27 - 5129: -2,-27 - 5130: 0,-24 - 5131: -2,-24 - 5132: -2,-23 - 5133: 0,-22 - 5134: 1,-22 - 5135: 1,-21 - 5136: -4,-19 - 5137: -5,-19 - 5138: -7,-19 - 5139: -9,-19 - 5140: -6,-19 - 5141: -7,-17 - 5142: -8,-17 - 5143: -9,-16 - 5144: -9,-16 - 5145: -5,-16 - 5146: -4,-14 - 5147: -5,-15 - 5148: -8,-16 - 5149: -8,-15 - 5150: -14,-14 - 5151: -12,-14 - 5152: -12,-16 - 5153: -13,-18 - 5154: -14,-16 - 5155: -13,-16 - 5156: -13,-19 - 5157: -14,-19 - 5158: -2,-17 - 5159: -2,-15 - 5160: -2,-13 - 5161: -2,-12 - 5162: -1,-15 - 5163: -1,-16 - 5164: -1,-17 - 5165: 1,-17 - 5166: -1,-18 - 5167: 2,-18 + 5123: 0,-24 + 5124: -2,-24 + 5125: -2,-23 + 5126: 0,-22 + 5127: 1,-22 + 5128: 1,-21 + 5129: -4,-19 + 5130: -5,-19 + 5131: -7,-19 + 5132: -9,-19 + 5133: -6,-19 + 5134: -7,-17 + 5135: -8,-17 + 5136: -9,-16 + 5137: -9,-16 + 5138: -5,-16 + 5139: -4,-14 + 5140: -5,-15 + 5141: -8,-16 + 5142: -8,-15 + 5143: -14,-14 + 5144: -12,-14 + 5145: -12,-16 + 5146: -13,-18 + 5147: -14,-16 + 5148: -13,-16 + 5149: -13,-19 + 5150: -14,-19 + 5151: -2,-17 + 5152: -2,-15 + 5153: -2,-13 + 5154: -2,-12 + 5155: -1,-15 + 5156: -1,-16 + 5157: -1,-17 + 5158: 1,-17 + 5159: -1,-18 + 5160: 2,-18 + 5161: 2,-16 + 5162: 2,-15 + 5163: 2,-13 + 5164: 1,-12 + 5165: 1,-14 + 5166: -1,-13 + 5167: 0,-14 5168: 2,-16 - 5169: 2,-15 - 5170: 2,-13 - 5171: 1,-12 - 5172: 1,-14 - 5173: -1,-13 - 5174: 0,-14 - 5175: 2,-16 - 5176: -4,-14 - 5177: -7,-24 - 5178: -7,-22 - 5179: -8,-23 - 5180: -10,-23 - 5181: -9,-23 - 5182: -1,-24 - 5183: 8,-23 - 5184: 8,-22 - 5185: 10,-22 - 5186: 9,-23 - 5187: 8,-25 - 5188: 8,-21 - 5189: 8,-19 - 5190: 8,-18 - 5191: 6,-18 - 5192: 5,-18 - 5193: 0,-27 - 5194: 2,-27 - 5195: 10,-23 - 5196: 13,-23 - 5197: 12,-23 - 5198: 13,-21 - 5199: 14,-22 - 5200: 13,-18 - 5201: 14,-18 - 5202: 14,-17 - 5203: 12,-18 - 5204: 11,-18 - 5205: 11,-16 - 5206: 13,-17 - 5207: 11,-30 - 5208: 11,-28 - 5209: 11,-27 - 5210: 11,-26 - 5211: 17,-26 - 5212: 17,-28 - 5213: 17,-28 - 5214: 17,-30 - 5215: 17,-30 - 5216: 18,-23 - 5217: 20,-22 - 5218: 21,-23 - 5219: 19,-22 - 5220: 21,-22 - 5221: 20,-21 - 5222: 24,-22 - 5223: 23,-23 - 5224: 23,-21 - 5225: 23,-23 - 5226: 17,-16 - 5227: 19,-14 - 5228: 18,-13 - 5229: 20,-13 - 5230: 19,-12 - 5231: 22,-11 + 5169: -4,-14 + 5170: -7,-24 + 5171: -7,-22 + 5172: -8,-23 + 5173: -10,-23 + 5174: -9,-23 + 5175: -1,-24 + 5176: 8,-23 + 5177: 8,-22 + 5178: 10,-22 + 5179: 9,-23 + 5180: 8,-25 + 5181: 8,-21 + 5182: 8,-19 + 5183: 8,-18 + 5184: 6,-18 + 5185: 5,-18 + 5186: 0,-27 + 5187: 2,-27 + 5188: 10,-23 + 5189: 13,-23 + 5190: 12,-23 + 5191: 13,-21 + 5192: 14,-22 + 5193: 13,-18 + 5194: 14,-18 + 5195: 14,-17 + 5196: 12,-18 + 5197: 11,-18 + 5198: 11,-16 + 5199: 13,-17 + 5200: 11,-30 + 5201: 11,-28 + 5202: 11,-27 + 5203: 11,-26 + 5204: 17,-26 + 5205: 17,-28 + 5206: 17,-28 + 5207: 17,-30 + 5208: 17,-30 + 5209: 18,-23 + 5210: 20,-22 + 5211: 21,-23 + 5212: 19,-22 + 5213: 21,-22 + 5214: 20,-21 + 5215: 24,-22 + 5216: 23,-23 + 5217: 23,-21 + 5218: 23,-23 + 5219: 17,-16 + 5220: 19,-14 + 5221: 18,-13 + 5222: 20,-13 + 5223: 19,-12 + 5224: 22,-11 + 5225: 22,-13 + 5226: 20,-11 + 5227: 24,-13 + 5228: 26,-11 + 5229: 21,-11 + 5230: 20,-11 + 5231: 25,-13 5232: 22,-13 - 5233: 20,-11 - 5234: 24,-13 - 5235: 26,-11 - 5236: 21,-11 - 5237: 20,-11 - 5238: 25,-13 - 5239: 22,-13 - 5240: 23,-12 - 5241: 26,-12 - 5242: 19,-12 - 5243: 23,-13 - 5244: 23,-11 - 5245: 19,-10 - 5246: 26,-11 - 5247: 28,-12 - 5248: 25,-12 - 5249: 23,-16 - 5250: 23,-16 - 5251: 13,-19 - 5252: 23,-34 - 5253: 23,-31 - 5254: 23,-30 - 5255: 23,-29 - 5256: 23,-32 - 5257: 29,-34 - 5258: 29,-33 - 5259: 29,-32 - 5260: 29,-30 - 5261: 29,-29 - 5262: 32,-34 - 5263: 32,-31 - 5264: 32,-30 - 5265: 36,-30 - 5266: 35,-29 - 5267: 33,-26 - 5268: 36,-21 - 5269: 38,-16 - 5270: 37,-15 - 5271: 39,-16 - 5272: 38,-17 - 5273: 38,-15 - 5274: 37,-15 - 5275: 62,-31 - 5276: 62,-33 - 5277: 61,-31 - 5278: 63,-33 - 5279: 63,-33 - 5280: 63,-32 - 5281: 62,-32 - 5282: 62,-32 - 5283: 64,8 - 5284: 63,9 - 5285: 65,9 - 5286: 64,8 - 5287: 64,9 - 5288: 64,10 - 5289: 67,6 - 5290: 68,4 - 5291: 68,6 - 5292: 67,5 - 5293: 68,0 - 5294: 68,1 - 5295: 68,2 - 5296: 67,0 - 5297: 68,-2 - 5298: 67,-3 - 5299: 68,-4 - 5300: 68,-3 - 5301: 68,-3 - 5302: 76,-6 - 5308: 54,-30 - 5309: 52,-31 + 5233: 23,-12 + 5234: 26,-12 + 5235: 19,-12 + 5236: 23,-13 + 5237: 23,-11 + 5238: 19,-10 + 5239: 26,-11 + 5240: 28,-12 + 5241: 25,-12 + 5242: 23,-16 + 5243: 23,-16 + 5244: 13,-19 + 5245: 23,-34 + 5246: 23,-31 + 5247: 23,-30 + 5248: 23,-29 + 5249: 23,-32 + 5250: 29,-34 + 5251: 29,-33 + 5252: 29,-32 + 5253: 29,-30 + 5254: 29,-29 + 5255: 32,-34 + 5256: 32,-31 + 5257: 32,-30 + 5258: 36,-30 + 5259: 35,-29 + 5260: 33,-26 + 5261: 36,-21 + 5262: 38,-16 + 5263: 37,-15 + 5264: 39,-16 + 5265: 38,-17 + 5266: 38,-15 + 5267: 37,-15 + 5268: 62,-31 + 5269: 62,-33 + 5270: 61,-31 + 5271: 63,-33 + 5272: 63,-33 + 5273: 63,-32 + 5274: 62,-32 + 5275: 62,-32 + 5276: 64,8 + 5277: 63,9 + 5278: 65,9 + 5279: 64,8 + 5280: 64,9 + 5281: 64,10 + 5282: 67,6 + 5283: 68,4 + 5284: 68,6 + 5285: 67,5 + 5286: 68,0 + 5287: 68,1 + 5288: 68,2 + 5289: 67,0 + 5290: 68,-2 + 5291: 67,-3 + 5292: 68,-4 + 5293: 68,-3 + 5294: 68,-3 + 5295: 76,-6 + 5301: 54,-30 + 5302: 52,-31 + 5303: 51,-31 + 5304: 52,-33 + 5305: 52,-34 + 5306: 51,-33 + 5307: 51,-32 + 5308: 52,-35 + 5309: 51,-33 5310: 51,-31 - 5311: 52,-33 - 5312: 52,-34 - 5313: 51,-33 - 5314: 51,-32 - 5315: 52,-35 - 5316: 51,-33 - 5317: 51,-31 - 5318: 52,-35 - 5319: 52,-35 - 5320: 55,-35 - 5321: 54,-34 - 5322: 56,-33 - 5323: 57,-33 - 5324: 55,-34 - 5325: 55,-36 - 5326: 54,-35 - 5327: 55,-34 - 5328: 54,-35 - 5329: 55,-35 - 5330: 55,-34 - 5331: 40,-31 - 5332: 40,-30 - 5333: 40,-30 - 5334: 41,-31 - 5335: 41,-29 - 5336: 42,-29 - 5337: 43,-29 - 5338: 44,-29 - 5339: 44,-31 - 5340: 43,-30 - 5341: 33,-29 - 5342: 15,-39 - 5343: 14,-39 - 5344: 14,-39 - 5345: 9,-40 - 5346: 9,-39 - 5347: 9,-41 - 5348: 8,-40 - 5349: 9,-45 - 5350: 8,-45 - 5351: 8,-45 - 5352: 19,-45 - 5353: 17,-45 - 5354: 16,-44 - 5355: 16,-45 - 5356: 16,-43 - 5357: 19,-45 - 5358: 20,-44 - 5359: 20,-45 - 5360: 18,-44 - 5361: 21,-45 - 5362: 21,-43 - 5363: 15,-48 - 5364: 14,-48 - 5365: 12,-47 - 5366: 12,-48 - 5367: 14,-48 - 5368: 16,-47 - 5369: 14,-48 - 5370: 13,-48 - 5371: 15,-47 - 5378: 21,-54 - 5379: 20,-54 - 5380: 18,-54 - 5381: 16,-54 - 5382: 16,-55 - 5383: 18,-53 - 5384: 19,-53 - 5385: 21,-55 - 5386: 21,-58 - 5387: 21,-59 - 5388: 20,-58 - 5389: 18,-58 - 5390: 17,-58 - 5391: 16,-58 - 5392: 16,-59 - 5393: 19,-59 - 5394: 19,-59 - 5395: 18,-59 - 5396: 27,-46 - 5397: 26,-45 - 5398: 26,-44 - 5399: 27,-45 - 5400: 27,-45 - 5401: 28,-42 - 5402: 29,-42 - 5403: 29,-40 - 5404: 28,-39 - 5405: 28,-39 - 5406: 28,-40 - 5407: 29,-47 - 5408: 28,-47 - 5409: 66,-52 - 5410: 65,-51 - 5411: 66,-52 - 5412: 66,-51 - 5413: 65,-52 - 5414: 66,-51 - 5415: 27,15 - 5416: 28,15 - 5417: 27,14 - 5418: 27,12 - 5419: -23,34 - 5420: -23,35 - 5421: -22,34 - 5422: -27,36 - 5423: -27,34 - 5424: -28,35 - 5425: -27,35 - 5426: -29,36 - 5427: -30,37 - 5428: -30,38 - 5429: -28,35 - 5430: -28,34 - 5431: -29,35 - 5432: -26,36 - 5433: -25,38 - 5434: -26,37 - 5435: -32,36 - 5436: -33,35 - 5437: -33,37 - 5438: -33,35 - 5439: -34,36 - 5440: -33,38 - 5441: -33,35 - 5442: -36,5 - 5443: -42,6 - 5444: -43,4 - 5445: -43,6 - 5446: -42,7 - 5447: -51,9 - 5448: -49,13 - 5449: -42,-5 - 5450: -43,-5 - 5451: -42,-3 - 5452: -45,-4 - 5453: -45,-5 - 5454: -46,-4 - 5455: -43,-3 - 5456: -43,-2 - 5457: -42,-2 - 5458: -60,-29 - 5459: -60,-29 - 5460: -57,-36 - 5461: -58,-36 - 5462: -59,-36 - 5463: -57,-37 - 5464: -58,-35 - 5465: -58,-34 - 5466: -57,-35 - 5467: -59,-34 - 5468: -58,-34 - 5469: -59,-34 - 5470: -60,-34 - 5471: -60,-35 - 5472: -61,-21 - 5473: -62,-21 - 5474: -62,-20 - 5475: -61,-20 - 5476: -61,-20 - 5477: 13,35 - 6136: 52,20 - 6137: 51,21 - 6138: 53,20 - 6139: 53,21 - 6260: 46,14 - 6261: 45,15 - 6262: 46,16 - 6468: 49,-7 - 6469: 48,-6 - 6470: 48,-4 - 6471: 49,-4 - 6472: 52,-7 - 6473: 52,-5 - 6474: 51,-6 - 6475: 52,-2 - 6476: 52,-3 - 6477: 48,-1 - 6478: 48,-2 - 6498: 49,-12 - 6499: 49,-14 - 6500: 49,-15 - 6501: 49,-13 - 6502: 52,-14 - 6503: 52,-13 - 6504: 52,-12 - 6505: 52,-15 - 6506: 52,-15 - 6507: 52,-10 - 6508: 51,1 - 6509: 51,3 - 6510: 51,4 - 6511: 51,6 - 6512: 51,8 - 6513: 51,9 - 6514: 51,11 - 6515: 51,13 - 6516: 49,13 - 6517: 49,11 - 6518: 49,9 - 6519: 49,7 - 6520: 49,5 - 6521: 49,3 - 6522: 49,1 - 6535: 42,9 - 6536: 43,9 - 6537: 42,7 - 6538: 43,7 - 6539: 45,7 - 6540: 45,9 - 6541: 46,7 - 6542: 40,4 - 6543: 42,4 - 6544: 43,4 - 6545: 43,2 - 6546: 43,1 - 6547: 43,-2 - 6548: 43,-4 - 6549: 43,-7 - 6550: 43,-6 - 6551: 43,-10 - 6552: 43,-11 - 6553: 45,5 - 6554: 42,5 - 6555: 41,5 - 6634: 90,-18 - 6635: 89,-18 - 6718: 51,-39 - 6719: 52,-39 - 6720: 54,-39 - 6721: 52,-37 - 6731: 51,-30 - 6732: 52,-29 - 6756: -33,-12 - 6757: -33,-10 - 6774: -36,-45 - 6775: -35,-44 - 6776: -35,-46 + 5311: 52,-35 + 5312: 52,-35 + 5313: 55,-35 + 5314: 54,-34 + 5315: 56,-33 + 5316: 57,-33 + 5317: 55,-34 + 5318: 55,-36 + 5319: 54,-35 + 5320: 55,-34 + 5321: 54,-35 + 5322: 55,-35 + 5323: 55,-34 + 5324: 40,-31 + 5325: 40,-30 + 5326: 40,-30 + 5327: 41,-31 + 5328: 41,-29 + 5329: 42,-29 + 5330: 43,-29 + 5331: 44,-29 + 5332: 44,-31 + 5333: 43,-30 + 5334: 33,-29 + 5335: 15,-39 + 5336: 14,-39 + 5337: 14,-39 + 5338: 9,-40 + 5339: 9,-39 + 5340: 9,-41 + 5341: 8,-40 + 5342: 9,-45 + 5343: 8,-45 + 5344: 8,-45 + 5345: 19,-45 + 5346: 17,-45 + 5347: 16,-44 + 5348: 16,-45 + 5349: 16,-43 + 5350: 19,-45 + 5351: 20,-44 + 5352: 20,-45 + 5353: 18,-44 + 5354: 21,-45 + 5355: 21,-43 + 5356: 15,-48 + 5357: 14,-48 + 5358: 12,-47 + 5359: 12,-48 + 5360: 14,-48 + 5361: 16,-47 + 5362: 14,-48 + 5363: 13,-48 + 5364: 15,-47 + 5371: 21,-54 + 5372: 20,-54 + 5373: 18,-54 + 5374: 16,-54 + 5375: 16,-55 + 5376: 18,-53 + 5377: 19,-53 + 5378: 21,-55 + 5379: 21,-58 + 5380: 21,-59 + 5381: 20,-58 + 5382: 18,-58 + 5383: 17,-58 + 5384: 16,-58 + 5385: 16,-59 + 5386: 19,-59 + 5387: 19,-59 + 5388: 18,-59 + 5389: 27,-46 + 5390: 26,-45 + 5391: 26,-44 + 5392: 27,-45 + 5393: 27,-45 + 5394: 28,-42 + 5395: 29,-42 + 5396: 29,-40 + 5397: 28,-39 + 5398: 28,-39 + 5399: 28,-40 + 5400: 29,-47 + 5401: 28,-47 + 5402: 66,-52 + 5403: 65,-51 + 5404: 66,-52 + 5405: 66,-51 + 5406: 65,-52 + 5407: 66,-51 + 5408: 27,15 + 5409: 28,15 + 5410: 27,14 + 5411: 27,12 + 5412: -23,34 + 5413: -23,35 + 5414: -22,34 + 5415: -27,36 + 5416: -27,34 + 5417: -28,35 + 5418: -27,35 + 5419: -29,36 + 5420: -30,37 + 5421: -30,38 + 5422: -28,35 + 5423: -28,34 + 5424: -29,35 + 5425: -26,36 + 5426: -25,38 + 5427: -26,37 + 5428: -32,36 + 5429: -33,35 + 5430: -33,37 + 5431: -33,35 + 5432: -34,36 + 5433: -33,38 + 5434: -33,35 + 5435: -36,5 + 5436: -42,6 + 5437: -43,4 + 5438: -43,6 + 5439: -42,7 + 5440: -51,9 + 5441: -49,13 + 5442: -42,-5 + 5443: -43,-5 + 5444: -42,-3 + 5445: -45,-4 + 5446: -45,-5 + 5447: -46,-4 + 5448: -43,-3 + 5449: -43,-2 + 5450: -42,-2 + 5451: -60,-29 + 5452: -60,-29 + 5453: -57,-36 + 5454: -58,-36 + 5455: -59,-36 + 5456: -57,-37 + 5457: -58,-35 + 5458: -58,-34 + 5459: -57,-35 + 5460: -59,-34 + 5461: -58,-34 + 5462: -59,-34 + 5463: -60,-34 + 5464: -60,-35 + 5465: -61,-21 + 5466: -62,-21 + 5467: -62,-20 + 5468: -61,-20 + 5469: -61,-20 + 5470: 13,35 + 6129: 52,20 + 6130: 51,21 + 6131: 53,20 + 6132: 53,21 + 6253: 46,14 + 6254: 45,15 + 6255: 46,16 + 6461: 49,-7 + 6462: 48,-6 + 6463: 48,-4 + 6464: 49,-4 + 6465: 52,-7 + 6466: 52,-5 + 6467: 51,-6 + 6468: 52,-2 + 6469: 52,-3 + 6470: 48,-1 + 6471: 48,-2 + 6491: 49,-12 + 6492: 49,-14 + 6493: 49,-15 + 6494: 49,-13 + 6495: 52,-14 + 6496: 52,-13 + 6497: 52,-12 + 6498: 52,-15 + 6499: 52,-15 + 6500: 52,-10 + 6501: 51,1 + 6502: 51,3 + 6503: 51,4 + 6504: 51,6 + 6505: 51,8 + 6506: 51,9 + 6507: 51,11 + 6508: 51,13 + 6509: 49,13 + 6510: 49,11 + 6511: 49,9 + 6512: 49,7 + 6513: 49,5 + 6514: 49,3 + 6515: 49,1 + 6528: 42,9 + 6529: 43,9 + 6530: 42,7 + 6531: 43,7 + 6532: 45,7 + 6533: 45,9 + 6534: 46,7 + 6535: 40,4 + 6536: 42,4 + 6537: 43,4 + 6538: 43,2 + 6539: 43,1 + 6540: 43,-2 + 6541: 43,-4 + 6542: 43,-7 + 6543: 43,-6 + 6544: 43,-10 + 6545: 43,-11 + 6546: 45,5 + 6547: 42,5 + 6548: 41,5 + 6627: 90,-18 + 6628: 89,-18 + 6711: 51,-39 + 6712: 52,-39 + 6713: 54,-39 + 6714: 52,-37 + 6724: 51,-30 + 6725: 52,-29 + 6749: -33,-12 + 6750: -33,-10 + 6766: -36,-45 + 6767: -35,-44 + 6768: -35,-46 - node: cleanable: True angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: DirtHeavy decals: - 3023: -43,17 + 3020: -43,17 - node: cleanable: True color: '#835432FF' id: DirtHeavyMonotile decals: - 2931: -38,29 - 2932: -36,28 - 2933: -34,26 - 2934: -34,24 - 2935: -36,22 - 2936: -37,25 - 2937: -37,26 - 2938: -37,27 - 2939: -38,27 - 2940: -36,26 + 2928: -38,29 + 2929: -36,28 + 2930: -34,26 + 2931: -34,24 + 2932: -36,22 + 2933: -37,25 + 2934: -37,26 + 2935: -37,27 + 2936: -38,27 + 2937: -36,26 - node: cleanable: True angle: -6.283185307179586 rad color: '#FFFFFFFF' id: DirtHeavyMonotile decals: - 6659: 88,-21 - 6660: 88,-20 - 6661: 91,-20 - 6664: 87,-20 - 6667: 88,-19 + 6652: 88,-21 + 6653: 88,-20 + 6654: 91,-20 + 6657: 87,-20 + 6660: 88,-19 - node: cleanable: True color: '#FFFFFFFF' id: DirtHeavyMonotile decals: - 3193: 4,-31 - 3194: 0,-31 - 3195: -4,-31 - 3196: -8,-31 - 3197: -10,-31 - 3198: -13,-31 - 3199: -17,-31 - 3200: -18,-31 - 3201: -21,-31 - 3202: -25,-31 - 3203: -25,-27 - 3204: -25,-24 - 3205: -25,-22 - 3206: -25,-19 - 3207: -25,-18 - 3208: -25,-13 - 3209: -25,-11 - 3210: -24,-10 - 3211: -24,-8 - 3212: -22,-2 - 3213: -22,0 - 3214: -22,3 - 3215: -20,8 - 3216: -22,9 - 3217: -24,8 - 3218: -25,9 - 3219: -26,8 - 3220: -26,12 - 3221: -26,15 - 3222: -26,17 - 3223: -25,20 - 3224: -23,19 - 3225: -20,19 - 3226: -18,20 - 3227: -15,20 - 3228: -12,20 - 3229: -7,20 - 3230: -3,20 - 3231: -1,20 - 3232: 2,20 - 3233: 6,20 - 3234: 9,20 - 3235: 11,20 - 3236: 14,20 - 3237: 17,20 - 3238: 20,19 - 3239: 20,17 - 3240: 20,15 - 3241: 20,11 - 3242: 20,9 - 3243: 20,6 - 3244: 20,3 - 3245: 22,3 - 3246: 25,3 - 3247: 27,3 - 3248: 30,3 - 3249: 33,3 - 3250: 36,3 - 3251: 41,3 - 3252: 42,2 - 3253: 42,0 - 3254: 42,-3 - 3255: 42,-6 - 3256: 42,-9 - 3257: 42,-11 - 3258: 42,-15 - 3259: 42,-18 - 3260: 42,-20 - 3261: 44,-20 - 3262: 42,-13 - 3263: 42,-10 - 3264: 42,-7 - 3265: 42,-5 - 3266: 42,-2 - 3267: 42,1 - 3268: 39,3 - 3269: 37,3 - 3270: 35,3 - 3271: 32,3 - 3272: 31,3 - 3273: 26,3 - 3274: 22,3 - 3275: 20,6 - 3276: 20,9 - 3277: 20,12 - 3278: 20,15 - 3279: 20,19 - 3280: 19,20 - 3281: 12,20 - 3282: 8,20 - 3283: 5,20 - 3284: 2,20 - 3285: -1,20 - 3286: -5,20 - 3287: -9,20 - 3288: -12,20 - 3289: -16,20 - 3291: -19,19 - 3292: -26,20 - 3293: -26,16 - 3294: -26,11 - 3295: -26,8 - 3296: -23,8 - 3297: -22,9 - 3298: -21,8 - 3299: -20,9 - 3300: -22,3 - 3301: -22,0 - 3302: -22,-3 - 3303: -22,-5 - 3304: -23,-7 - 3305: -25,-7 - 3306: -23,-8 - 3307: -25,-10 - 3308: -25,-10 - 3309: -25,-14 - 3310: -25,-18 - 3311: -25,-21 - 3312: -25,-25 - 3313: -25,-28 - 3314: -23,-31 - 3315: -20,-31 - 3316: -15,-31 - 3317: -9,-31 - 3318: -5,-31 - 3319: 1,-31 - 3320: 1,-32 - 3321: 7,-31 - 3322: 5,-31 - 3323: 8,-32 - 3324: 9,-33 - 3325: 12,-33 - 3326: 15,-33 - 3327: 18,-33 - 3328: 19,-33 - 3329: 20,-29 - 3330: 20,-27 - 3331: 21,-26 - 3332: 24,-26 - 3333: 27,-26 - 3334: 28,-26 - 3335: 28,-22 - 3336: 28,-21 - 3337: 28,-20 - 3338: 32,-20 - 3339: 35,-20 - 3340: 39,-20 - 3341: 42,-20 - 3342: 40,-20 - 3343: 42,-17 - 3344: 42,-19 - 3345: 49,-20 - 3346: 52,-20 - 3347: 47,-20 - 3348: 53,-20 - 3349: 53,-22 - 3350: 53,-23 - 3351: 54,-20 - 3352: 56,-20 - 3353: 58,-20 - 3354: 58,-20 - 3355: 58,-22 - 3356: 58,-23 - 3357: 58,-22 - 3358: 49,-20 - 3359: 50,-20 - 3360: 44,-13 - 3361: 41,-13 - 3362: 39,-1 - 3363: 37,-1 - 3364: 36,-1 - 3365: 50,6 - 3366: 50,2 - 3367: 50,14 - 3368: 46,-7 - 3369: 45,-8 - 3370: 46,-4 - 3371: 46,-5 - 3372: 45,-1 - 3373: 46,-2 - 3374: 54,-1 - 3375: 55,-1 - 3376: 55,-7 - 3377: 58,-4 - 3378: 59,-6 - 3379: 60,-5 - 3380: 62,-6 - 3381: 61,-6 - 3382: 55,7 - 3383: 54,7 - 3384: 59,15 - 3385: 58,15 - 3386: 60,16 - 3387: 60,3 - 3388: 60,1 - 3389: 63,1 - 3390: 62,1 - 3391: 62,0 - 3392: 62,3 - 3393: 62,4 - 3394: 28,3 - 3395: 28,3 - 3396: 24,8 + 3189: 4,-31 + 3190: 0,-31 + 3191: -4,-31 + 3192: -8,-31 + 3193: -10,-31 + 3194: -13,-31 + 3195: -17,-31 + 3196: -18,-31 + 3197: -21,-31 + 3198: -25,-31 + 3199: -25,-27 + 3200: -25,-24 + 3201: -25,-22 + 3202: -25,-19 + 3203: -25,-18 + 3204: -25,-13 + 3205: -25,-11 + 3206: -24,-10 + 3207: -24,-8 + 3208: -22,-2 + 3209: -22,0 + 3210: -22,3 + 3211: -20,8 + 3212: -22,9 + 3213: -24,8 + 3214: -25,9 + 3215: -26,8 + 3216: -26,12 + 3217: -26,15 + 3218: -26,17 + 3219: -25,20 + 3220: -23,19 + 3221: -20,19 + 3222: -18,20 + 3223: -15,20 + 3224: -12,20 + 3225: -7,20 + 3226: -3,20 + 3227: -1,20 + 3228: 2,20 + 3229: 6,20 + 3230: 9,20 + 3231: 11,20 + 3232: 14,20 + 3233: 17,20 + 3234: 20,19 + 3235: 20,17 + 3236: 20,15 + 3237: 20,11 + 3238: 20,9 + 3239: 20,6 + 3240: 20,3 + 3241: 22,3 + 3242: 25,3 + 3243: 27,3 + 3244: 30,3 + 3245: 33,3 + 3246: 36,3 + 3247: 41,3 + 3248: 42,2 + 3249: 42,0 + 3250: 42,-3 + 3251: 42,-6 + 3252: 42,-9 + 3253: 42,-11 + 3254: 42,-15 + 3255: 42,-18 + 3256: 42,-20 + 3257: 44,-20 + 3258: 42,-13 + 3259: 42,-10 + 3260: 42,-7 + 3261: 42,-5 + 3262: 42,-2 + 3263: 42,1 + 3264: 39,3 + 3265: 37,3 + 3266: 35,3 + 3267: 32,3 + 3268: 31,3 + 3269: 26,3 + 3270: 22,3 + 3271: 20,6 + 3272: 20,9 + 3273: 20,12 + 3274: 20,15 + 3275: 20,19 + 3276: 19,20 + 3277: 12,20 + 3278: 8,20 + 3279: 5,20 + 3280: 2,20 + 3281: -1,20 + 3282: -5,20 + 3283: -9,20 + 3284: -12,20 + 3285: -16,20 + 3287: -19,19 + 3288: -26,20 + 3289: -26,16 + 3290: -26,11 + 3291: -26,8 + 3292: -23,8 + 3293: -22,9 + 3294: -21,8 + 3295: -20,9 + 3296: -22,3 + 3297: -22,0 + 3298: -22,-3 + 3299: -22,-5 + 3300: -23,-7 + 3301: -25,-7 + 3302: -23,-8 + 3303: -25,-10 + 3304: -25,-10 + 3305: -25,-14 + 3306: -25,-18 + 3307: -25,-21 + 3308: -25,-25 + 3309: -25,-28 + 3310: -23,-31 + 3311: -20,-31 + 3312: -15,-31 + 3313: -9,-31 + 3314: -5,-31 + 3315: 1,-31 + 3316: 1,-32 + 3317: 7,-31 + 3318: 5,-31 + 3319: 8,-32 + 3320: 9,-33 + 3321: 12,-33 + 3322: 15,-33 + 3323: 18,-33 + 3324: 19,-33 + 3325: 20,-29 + 3326: 20,-27 + 3327: 21,-26 + 3328: 24,-26 + 3329: 27,-26 + 3330: 28,-26 + 3331: 28,-22 + 3332: 28,-21 + 3333: 28,-20 + 3334: 32,-20 + 3335: 35,-20 + 3336: 39,-20 + 3337: 42,-20 + 3338: 40,-20 + 3339: 42,-17 + 3340: 42,-19 + 3341: 49,-20 + 3342: 52,-20 + 3343: 47,-20 + 3344: 53,-20 + 3345: 53,-22 + 3346: 53,-23 + 3347: 54,-20 + 3348: 56,-20 + 3349: 58,-20 + 3350: 58,-20 + 3351: 58,-22 + 3352: 58,-23 + 3353: 58,-22 + 3354: 49,-20 + 3355: 50,-20 + 3356: 44,-13 + 3357: 41,-13 + 3358: 39,-1 + 3359: 37,-1 + 3360: 36,-1 + 3361: 50,6 + 3362: 50,2 + 3363: 50,14 + 3364: 46,-7 + 3365: 45,-8 + 3366: 46,-4 + 3367: 46,-5 + 3368: 45,-1 + 3369: 46,-2 + 3370: 54,-1 + 3371: 55,-1 + 3372: 55,-7 + 3373: 58,-4 + 3374: 59,-6 + 3375: 60,-5 + 3376: 62,-6 + 3377: 61,-6 + 3378: 55,7 + 3379: 54,7 + 3380: 59,15 + 3381: 58,15 + 3382: 60,16 + 3383: 60,3 + 3384: 60,1 + 3385: 63,1 + 3386: 62,1 + 3387: 62,0 + 3388: 62,3 + 3389: 62,4 + 3390: 28,3 + 3391: 28,3 + 3392: 24,8 + 3393: 24,6 + 3394: 23,8 + 3395: 25,7 + 3396: 24,7 3397: 24,6 - 3398: 23,8 - 3399: 25,7 - 3400: 24,7 - 3401: 24,6 - 3402: 25,11 - 3403: 25,13 - 3404: 25,14 - 3405: 23,15 - 3406: 22,12 - 3407: 23,12 - 3408: 23,14 - 3409: 23,11 - 3410: 26,19 - 3411: 24,20 - 3412: 25,21 - 3413: 26,19 - 3414: 25,20 - 3415: 29,20 - 3416: 29,19 - 3417: 30,19 - 3418: 29,21 - 3419: -19,26 - 3420: -21,28 - 3421: -20,26 - 3422: -20,28 - 3423: -7,40 - 3424: 3,40 - 3425: -26,19 - 3426: -17,11 - 3427: -16,11 - 3428: -16,13 - 3429: -17,13 - 3430: -33,11 - 3431: -33,13 - 3432: -33,14 - 3433: -32,14 - 3434: -30,14 - 3435: -29,14 - 3436: -31,14 - 3437: -30,3 - 3438: -32,3 - 3439: -37,3 - 3440: -36,2 - 3441: -35,2 - 3442: -37,1 - 3443: -33,1 - 3444: -32,2 - 3445: -32,1 - 3446: -31,2 - 3447: -33,2 - 3448: -38,0 - 3449: -37,0 - 3450: -34,0 - 3451: -33,0 - 3452: -31,0 - 3453: -30,0 - 3454: -55,6 - 3455: -54,6 - 3456: -54,4 - 3457: -54,2 - 3458: -56,5 - 3459: -55,4 - 3460: -53,1 - 3461: -51,1 - 3462: -49,1 - 3463: -47,1 - 3464: -45,1 - 3465: -44,1 - 3466: -43,1 - 3467: -54,1 - 3468: -54,-4 - 3469: -55,-4 - 3470: -54,-8 - 3471: -54,-10 - 3472: -54,-12 - 3473: -54,-14 - 3474: -54,-16 - 3475: -54,-19 - 3476: -53,-21 - 3477: -51,-21 - 3478: -54,-21 - 3479: -54,-20 - 3480: -54,-18 - 3481: -48,-21 - 3482: -48,-23 - 3483: -48,-24 - 3484: -50,-25 - 3485: -47,-25 - 3486: -45,-25 - 3487: -45,-26 - 3488: -45,-29 - 3489: -44,-28 - 3490: -43,-28 - 3491: -45,-31 - 3492: -48,-32 - 3493: -49,-32 - 3494: -51,-32 - 3495: -51,-30 - 3496: -51,-28 - 3497: -51,-26 - 3498: -48,-33 - 3499: -54,-26 - 3500: -56,-25 - 3501: -55,-25 - 3502: -56,-26 - 3503: -57,-26 - 3504: -55,-26 - 3505: -56,-25 - 3506: -48,-36 - 3507: -48,-38 - 3508: -48,-40 - 3509: -48,-42 - 3510: -48,-44 - 3511: -48,-47 - 3512: -49,-47 - 3513: -51,-47 - 3514: -53,-47 - 3515: -54,-47 - 3516: -45,-47 - 3517: -45,-47 - 3518: -43,-47 - 3519: -41,-47 - 3520: -41,-47 - 3521: -41,-50 - 3522: -41,-51 - 3523: -41,-54 - 3524: -36,-58 - 3525: -36,-60 - 3526: -36,-63 - 3527: -36,-64 - 3528: -36,-56 - 3529: -37,-56 - 3530: -41,-61 - 3531: -42,-62 - 3532: -41,-64 - 3533: -41,-64 - 3534: -42,-62 - 3535: -41,-48 - 3536: -53,-47 - 3537: -55,-47 - 3538: -55,-49 - 3539: -55,-52 - 3540: -55,-54 - 3541: -60,-58 - 3542: -60,-60 - 3543: -60,-62 - 3544: -60,-63 - 3545: -60,-64 - 3546: -58,-56 - 3547: -60,-56 - 3548: -55,-64 - 3549: -55,-62 - 3550: -54,-61 - 3551: -54,-63 - 3552: -54,-64 - 3553: -8,-28 - 3554: -7,-26 - 3555: -8,-27 - 3556: -8,-27 - 3557: 7,-22 - 3558: 5,-22 - 3559: 4,-23 - 3560: 4,-20 - 3561: 4,-19 - 3562: 7,-20 - 3563: 7,-21 - 3564: 7,-24 - 3565: 7,-25 - 3566: 10,-16 - 3567: 10,-18 - 3568: 10,-18 - 3569: 12,-29 - 3570: 12,-28 - 3571: 12,-26 - 3572: 13,-25 - 3573: 14,-25 - 3574: 14,-26 - 3575: 15,-25 - 3576: 16,-26 - 3577: 16,-29 - 3578: -4,-36 - 3579: -4,-37 - 3580: -6,-37 - 3581: 34,-2 - 3582: 33,-2 - 3583: 34,-3 - 3584: 32,-2 - 3585: 32,-3 - 3586: 31,-2 - 3587: 31,-3 - 3588: 31,-35 - 3589: 33,-35 - 3590: 32,-37 - 3591: 33,-36 - 3592: 33,-38 - 3593: 32,-36 - 3594: 31,-38 - 3595: 47,-36 - 3596: 47,-35 - 3597: 49,-35 - 3598: 49,-37 - 3599: 47,-37 - 3600: 47,-38 - 3601: 49,-38 - 3602: 47,-39 - 3603: 24,-29 - 3604: 26,-29 - 3605: 27,-29 - 3606: 28,-29 - 3607: 25,-34 - 3608: 27,-34 - 3609: 28,-34 - 3610: 26,-34 - 3611: 28,-43 - 3612: 29,-43 - 3613: 28,-45 - 3614: 29,-45 - 3615: 28,-46 - 3616: 29,-46 - 3617: 19,-46 - 3618: 18,-46 - 3619: 18,-47 - 3620: 19,-49 - 3621: 19,-49 - 3622: 18,-50 - 3623: 19,-50 - 3624: 18,-48 - 3625: 16,-48 - 3626: 14,-48 - 3627: 12,-47 - 3628: 10,-40 - 3629: 11,-39 - 3630: 11,-40 - 3631: 11,-40 - 3632: 8,-31 - 3633: 8,-31 - 3634: 5,-14 - 3635: 6,-14 - 3636: 6,-15 - 3637: 5,-15 - 3638: 4,-15 - 3639: 4,-15 - 3640: 25,7 - 3641: 20,16 - 3642: 20,18 - 3643: 15,26 - 3644: 14,26 - 3645: 13,26 - 3646: 13,26 - 3647: -44,10 - 3648: -45,10 - 3649: -46,10 - 3650: -47,10 - 3651: -49,10 - 3652: -50,10 - 3653: -50,12 - 3654: -47,12 - 3655: -48,1 - 3656: -47,1 - 3657: -48,-41 - 3658: -38,-56 - 3659: -38,-56 - 3660: -42,-57 - 3661: -55,-57 - 3793: -50,0 - 3794: -50,2 - 3795: -48,2 - 3796: -46,2 - 3797: -45,2 - 3798: -44,0 - 3799: -46,0 - 3800: -48,0 - 3832: -51,3 - 3833: -49,3 - 3834: -47,3 - 3835: -45,3 - 3836: -44,5 - 3837: -46,5 - 3838: -48,5 - 3839: -50,5 - 3840: -50,-1 - 3841: -49,-1 - 3842: -47,-1 - 3843: -46,-1 - 3844: -44,-1 - 3845: -44,-3 - 3846: -46,-3 - 3847: -47,-3 - 3848: -49,-3 - 3849: -50,-3 - 3850: -48,-3 - 3851: -46,-3 - 3852: -48,3 - 3853: -46,3 - 3933: -21,6 - 3934: -21,7 - 3935: -22,6 - 3936: -21,7 - 4133: 19,1 - 4134: 21,1 - 4135: 22,1 - 4136: 23,1 - 4137: 23,1 - 4207: 40,-22 - 4208: 41,-22 - 4209: 43,-22 - 4210: 44,-22 - 4269: 61,-25 - 4270: 62,-25 - 4271: 62,-26 - 4276: 68,-23 - 4299: 68,-15 - 4300: 68,-13 - 4301: 68,-14 - 4302: 67,-12 - 4303: 70,-12 - 4304: 70,-14 - 4305: 68,-11 - 4306: 71,-12 - 4307: 70,-14 - 4308: 70,-15 - 4309: 71,-13 - 4310: 69,-13 - 4311: 69,-12 - 4312: 68,-10 - 4313: 67,-10 - 4314: 68,-8 - 4315: 69,-8 - 4316: 70,-9 - 4317: 70,-10 - 4411: 39,-34 - 4412: 40,-34 - 4413: 39,-34 - 4414: 42,-34 - 4415: 40,-34 - 4416: 41,-33 - 4417: 34,-36 - 4418: 34,-35 - 4419: 35,-36 - 4420: 38,-37 - 4421: 43,-37 - 4422: 43,-37 - 4423: 46,-37 - 4424: 46,-35 - 4425: 46,-37 - 4426: 47,-37 - 4427: 48,-36 - 4428: 48,-37 - 4429: 46,-39 - 4430: 44,-39 - 4431: 41,-39 - 4432: 37,-39 - 4433: 35,-39 - 4434: 39,-38 - 4435: 33,-38 + 3398: 25,11 + 3399: 25,13 + 3400: 25,14 + 3401: 23,15 + 3402: 22,12 + 3403: 23,12 + 3404: 23,14 + 3405: 23,11 + 3406: 26,19 + 3407: 24,20 + 3408: 25,21 + 3409: 26,19 + 3410: 25,20 + 3411: 29,20 + 3412: 29,19 + 3413: 30,19 + 3414: 29,21 + 3415: -19,26 + 3416: -21,28 + 3417: -20,26 + 3418: -20,28 + 3419: -7,40 + 3420: 3,40 + 3421: -26,19 + 3422: -17,11 + 3423: -16,11 + 3424: -16,13 + 3425: -17,13 + 3426: -33,11 + 3427: -33,13 + 3428: -33,14 + 3429: -32,14 + 3430: -30,14 + 3431: -29,14 + 3432: -31,14 + 3433: -30,3 + 3434: -32,3 + 3435: -37,3 + 3436: -36,2 + 3437: -35,2 + 3438: -37,1 + 3439: -33,1 + 3440: -32,2 + 3441: -32,1 + 3442: -31,2 + 3443: -33,2 + 3444: -38,0 + 3445: -37,0 + 3446: -34,0 + 3447: -33,0 + 3448: -31,0 + 3449: -30,0 + 3450: -55,6 + 3451: -54,6 + 3452: -54,4 + 3453: -54,2 + 3454: -56,5 + 3455: -55,4 + 3456: -53,1 + 3457: -51,1 + 3458: -49,1 + 3459: -47,1 + 3460: -45,1 + 3461: -44,1 + 3462: -43,1 + 3463: -54,1 + 3464: -54,-4 + 3465: -55,-4 + 3466: -54,-8 + 3467: -54,-10 + 3468: -54,-12 + 3469: -54,-14 + 3470: -54,-16 + 3471: -54,-19 + 3472: -53,-21 + 3473: -51,-21 + 3474: -54,-21 + 3475: -54,-20 + 3476: -54,-18 + 3477: -48,-21 + 3478: -48,-23 + 3479: -48,-24 + 3480: -50,-25 + 3481: -47,-25 + 3482: -45,-25 + 3483: -45,-26 + 3484: -45,-29 + 3485: -44,-28 + 3486: -43,-28 + 3487: -45,-31 + 3488: -48,-32 + 3489: -49,-32 + 3490: -51,-32 + 3491: -51,-30 + 3492: -51,-28 + 3493: -51,-26 + 3494: -48,-33 + 3495: -54,-26 + 3496: -56,-25 + 3497: -55,-25 + 3498: -56,-26 + 3499: -57,-26 + 3500: -55,-26 + 3501: -56,-25 + 3502: -48,-36 + 3503: -48,-38 + 3504: -48,-40 + 3505: -48,-42 + 3506: -48,-44 + 3507: -48,-47 + 3508: -49,-47 + 3509: -51,-47 + 3510: -53,-47 + 3511: -54,-47 + 3512: -45,-47 + 3513: -45,-47 + 3514: -43,-47 + 3515: -41,-47 + 3516: -41,-47 + 3517: -41,-50 + 3518: -41,-51 + 3519: -41,-54 + 3520: -36,-58 + 3521: -36,-60 + 3522: -36,-63 + 3523: -36,-64 + 3524: -36,-56 + 3525: -37,-56 + 3526: -41,-61 + 3527: -42,-62 + 3528: -41,-64 + 3529: -41,-64 + 3530: -42,-62 + 3531: -41,-48 + 3532: -53,-47 + 3533: -55,-47 + 3534: -55,-49 + 3535: -55,-52 + 3536: -55,-54 + 3537: -60,-58 + 3538: -60,-60 + 3539: -60,-62 + 3540: -60,-63 + 3541: -60,-64 + 3542: -58,-56 + 3543: -60,-56 + 3544: -55,-64 + 3545: -55,-62 + 3546: -54,-61 + 3547: -54,-63 + 3548: -54,-64 + 3549: -8,-28 + 3550: -7,-26 + 3551: -8,-27 + 3552: -8,-27 + 3553: 7,-22 + 3554: 5,-22 + 3555: 4,-23 + 3556: 4,-20 + 3557: 4,-19 + 3558: 7,-20 + 3559: 7,-21 + 3560: 7,-24 + 3561: 7,-25 + 3562: 10,-16 + 3563: 10,-18 + 3564: 10,-18 + 3565: 12,-29 + 3566: 12,-28 + 3567: 12,-26 + 3568: 13,-25 + 3569: 14,-25 + 3570: 14,-26 + 3571: 15,-25 + 3572: 16,-26 + 3573: 16,-29 + 3574: -4,-36 + 3575: -4,-37 + 3576: -6,-37 + 3577: 34,-2 + 3578: 33,-2 + 3579: 34,-3 + 3580: 32,-2 + 3581: 32,-3 + 3582: 31,-2 + 3583: 31,-3 + 3584: 31,-35 + 3585: 33,-35 + 3586: 32,-37 + 3587: 33,-36 + 3588: 33,-38 + 3589: 32,-36 + 3590: 31,-38 + 3591: 47,-36 + 3592: 47,-35 + 3593: 49,-35 + 3594: 49,-37 + 3595: 47,-37 + 3596: 47,-38 + 3597: 49,-38 + 3598: 47,-39 + 3599: 24,-29 + 3600: 26,-29 + 3601: 27,-29 + 3602: 28,-29 + 3603: 25,-34 + 3604: 27,-34 + 3605: 28,-34 + 3606: 26,-34 + 3607: 28,-43 + 3608: 29,-43 + 3609: 28,-45 + 3610: 29,-45 + 3611: 28,-46 + 3612: 29,-46 + 3613: 19,-46 + 3614: 18,-46 + 3615: 18,-47 + 3616: 19,-49 + 3617: 19,-49 + 3618: 18,-50 + 3619: 19,-50 + 3620: 18,-48 + 3621: 16,-48 + 3622: 14,-48 + 3623: 12,-47 + 3624: 10,-40 + 3625: 11,-39 + 3626: 11,-40 + 3627: 11,-40 + 3628: 8,-31 + 3629: 8,-31 + 3630: 5,-14 + 3631: 6,-14 + 3632: 6,-15 + 3633: 5,-15 + 3634: 4,-15 + 3635: 4,-15 + 3636: 25,7 + 3637: 20,16 + 3638: 20,18 + 3639: 15,26 + 3640: 14,26 + 3641: 13,26 + 3642: 13,26 + 3643: -44,10 + 3644: -45,10 + 3645: -46,10 + 3646: -47,10 + 3647: -49,10 + 3648: -50,10 + 3649: -50,12 + 3650: -47,12 + 3651: -48,1 + 3652: -47,1 + 3653: -48,-41 + 3654: -38,-56 + 3655: -38,-56 + 3656: -42,-57 + 3657: -55,-57 + 3789: -50,0 + 3790: -50,2 + 3791: -48,2 + 3792: -46,2 + 3793: -45,2 + 3794: -44,0 + 3795: -46,0 + 3796: -48,0 + 3828: -51,3 + 3829: -49,3 + 3830: -47,3 + 3831: -45,3 + 3832: -44,5 + 3833: -46,5 + 3834: -48,5 + 3835: -50,5 + 3836: -50,-1 + 3837: -49,-1 + 3838: -47,-1 + 3839: -46,-1 + 3840: -44,-1 + 3841: -44,-3 + 3842: -46,-3 + 3843: -47,-3 + 3844: -49,-3 + 3845: -50,-3 + 3846: -48,-3 + 3847: -46,-3 + 3848: -48,3 + 3849: -46,3 + 3929: -21,6 + 3930: -21,7 + 3931: -22,6 + 3932: -21,7 + 4129: 19,1 + 4130: 21,1 + 4131: 22,1 + 4132: 23,1 + 4133: 23,1 + 4203: 40,-22 + 4204: 41,-22 + 4205: 43,-22 + 4206: 44,-22 + 4265: 61,-25 + 4266: 62,-25 + 4267: 62,-26 + 4272: 68,-23 + 4295: 68,-15 + 4296: 68,-13 + 4297: 68,-14 + 4298: 67,-12 + 4299: 70,-12 + 4300: 70,-14 + 4301: 68,-11 + 4302: 71,-12 + 4303: 70,-14 + 4304: 70,-15 + 4305: 71,-13 + 4306: 69,-13 + 4307: 69,-12 + 4308: 68,-10 + 4309: 67,-10 + 4310: 68,-8 + 4311: 69,-8 + 4312: 70,-9 + 4313: 70,-10 + 4407: 39,-34 + 4408: 40,-34 + 4409: 39,-34 + 4410: 42,-34 + 4411: 40,-34 + 4412: 41,-33 + 4413: 34,-36 + 4414: 34,-35 + 4415: 35,-36 + 4416: 38,-37 + 4417: 43,-37 + 4418: 43,-37 + 4419: 46,-37 + 4420: 46,-35 + 4421: 46,-37 + 4422: 47,-37 + 4423: 48,-36 + 4424: 48,-37 + 4425: 46,-39 + 4426: 44,-39 + 4427: 41,-39 + 4428: 37,-39 + 4429: 35,-39 + 4430: 39,-38 + 4431: 33,-38 + 4731: -20,6 + 4732: -20,7 + 4733: -21,6 + 4734: -20,7 4735: -20,6 - 4736: -20,7 - 4737: -21,6 - 4738: -20,7 - 4739: -20,6 - 4740: -21,12 - 4741: -25,29 - 4742: -25,28 - 4743: -26,30 - 4744: -26,28 - 4745: -26,29 - 4769: -16,40 - 4770: -17,41 - 4771: -15,39 - 4772: -13,41 - 4773: -12,39 - 4824: -2,46 - 4825: -4,46 - 4826: -1,48 - 4827: 0,47 - 4828: -3,50 - 4829: 0,51 - 4830: 2,47 - 4831: 2,45 - 4832: 2,43 - 4833: 2,40 - 4834: -6,40 - 4835: -7,40 - 4836: -7,40 - 4837: -4,46 - 4838: -5,45 - 4839: -6,46 - 4840: 7,41 - 4841: 6,42 - 4842: 9,40 - 4843: 6,39 - 4844: 8,40 - 4845: 6,39 - 4846: 8,39 - 4847: 7,42 - 4848: 7,41 - 4849: 5,41 - 4880: 14,34 - 4881: 13,36 - 4882: 14,37 - 4883: 16,37 - 4884: 14,36 - 4885: 5,30 - 4886: 4,30 - 4887: 3,32 - 4888: 5,32 - 4889: 5,32 - 4890: 4,31 - 4891: 4,31 - 4892: 3,32 - 4893: 3,28 - 4894: 2,27 - 4895: 1,28 - 4896: 3,27 - 4897: 4,26 - 4898: 3,25 - 4899: 4,24 - 4900: 3,23 - 4901: 1,24 - 4902: 2,23 - 4920: -3,25 - 4921: -4,23 - 4922: -2,23 - 4923: -3,24 - 4924: 0,24 - 4925: 0,23 - 4926: -16,29 - 4927: -15,26 - 4928: -15,28 - 4929: -13,28 - 4930: -13,29 - 4931: -9,28 - 4932: -10,26 - 4933: -9,27 - 4934: -11,28 - 4935: -8,29 - 4936: -9,26 - 4937: -6,27 - 4938: -6,26 - 4939: -6,28 - 4940: -3,29 - 4941: -4,27 - 4942: -1,28 - 4943: -3,29 - 4944: -2,30 - 4945: -3,32 - 4946: -2,33 - 4947: -2,34 - 4948: -8,33 - 4949: -7,32 - 4950: -8,32 - 4951: -9,33 - 4952: -6,34 - 4953: -6,33 - 4954: -13,34 - 5022: -17,-28 - 5023: -19,-28 - 5024: -20,-27 - 5025: -20,-26 - 5026: -20,-27 - 5027: -15,-28 - 5028: -14,-28 - 5029: -14,-27 - 5030: -14,-29 - 5031: -17,-29 - 5096: -14,-38 - 5097: -14,-38 - 5115: -6,-37 - 5116: -5,-37 - 5117: -4,-37 - 5303: 78,-28 - 5304: 79,-28 - 5305: 78,-28 - 5306: 78,-27 - 5307: 78,-29 - 5372: 13,-45 - 5373: 12,-45 - 5374: 12,-50 - 5375: 12,-49 - 5376: 16,-49 - 5377: 15,-49 - 6208: 81,-34 - 6209: 82,-35 - 6210: 81,-35 - 6211: 81,-35 - 6237: -2,41 - 6238: -2,42 - 6239: -3,42 - 6240: -3,42 - 6241: -1,43 - 6263: 46,15 - 6264: 47,15 - 6265: 47,15 - 6266: 45,16 - 6479: 49,-1 - 6480: 51,-1 - 6481: 50,-2 - 6482: 49,-3 - 6483: 49,-5 - 6484: 51,-5 - 6485: 51,-3 - 6486: 50,-8 - 6487: 49,-8 - 6488: 48,-7 - 6489: 52,-8 - 6490: 54,-7 - 6491: 49,-10 - 6492: 50,-11 - 6493: 48,-11 - 6494: 51,-10 - 6495: 51,-11 - 6496: 52,-11 - 6497: 53,-11 - 6523: 50,2 - 6524: 50,4 - 6525: 50,9 - 6526: 50,12 - 6527: 50,13 - 6528: 47,9 - 6529: 47,7 - 6530: 41,8 - 6531: 41,7 - 6532: 40,8 - 6533: 40,7 - 6534: 44,8 - 6556: 46,4 - 6557: 45,4 - 6558: 46,2 - 6559: 45,2 - 6560: 45,1 - 6561: 46,5 - 6562: 40,5 - 6563: 44,4 - 6564: 44,7 - 6565: 55,3 - 6566: 54,2 - 6567: 53,3 - 6568: 55,4 - 6569: 57,4 - 6570: 56,2 - 6571: 55,1 - 6572: 55,6 - 6573: 53,7 - 6574: 53,6 - 6575: 55,8 - 6576: 56,10 - 6577: 55,10 - 6578: 53,12 - 6579: 53,11 - 6580: 57,14 - 6590: -1,-23 - 6591: 0,-23 - 6592: -4,-23 - 6593: -5,-23 - 6594: 35,19 - 6595: 34,19 - 6596: 35,20 - 6597: -8,27 - 6598: -12,27 - 6599: -10,27 - 6600: -14,27 - 6601: -15,27 - 6602: -15,27 - 6636: 88,-18 - 6637: 87,-18 - 6638: 91,-19 - 6639: 91,-18 - 6640: 92,-19 - 6722: 51,-36 - 6723: 51,-37 - 6724: 53,-39 - 6725: 54,-40 - 6726: 51,-35 - 6733: 51,-29 - 6739: 51,-26 - 6740: 52,-27 - 6741: 56,-27 - 6742: 56,-29 - 6758: -32,-12 - 6759: -34,-11 - 6760: -32,-10 - 6761: -33,-9 - 6762: -34,-9 - 6766: 61,-21 - 6767: -24,-42 - 6770: -25,-42 - 6771: -22,-42 - 6772: -22,-42 - 6779: -37,-45 - 6780: -38,-44 - 6781: -38,-46 - 6782: -37,-46 + 4736: -21,12 + 4737: -25,29 + 4738: -25,28 + 4739: -26,30 + 4740: -26,28 + 4741: -26,29 + 4765: -16,40 + 4766: -17,41 + 4767: -15,39 + 4768: -13,41 + 4769: -12,39 + 4820: -2,46 + 4821: -4,46 + 4822: -1,48 + 4823: 0,47 + 4824: -3,50 + 4825: 0,51 + 4826: 2,47 + 4827: 2,45 + 4828: 2,43 + 4829: 2,40 + 4830: -6,40 + 4831: -7,40 + 4832: -7,40 + 4833: -4,46 + 4834: -5,45 + 4835: -6,46 + 4836: 7,41 + 4837: 6,42 + 4838: 9,40 + 4839: 6,39 + 4840: 8,40 + 4841: 6,39 + 4842: 8,39 + 4843: 7,42 + 4844: 7,41 + 4845: 5,41 + 4876: 14,34 + 4877: 13,36 + 4878: 14,37 + 4879: 16,37 + 4880: 14,36 + 4881: 5,30 + 4882: 4,30 + 4883: 3,32 + 4884: 5,32 + 4885: 5,32 + 4886: 4,31 + 4887: 4,31 + 4888: 3,32 + 4889: 3,28 + 4890: 2,27 + 4891: 1,28 + 4892: 3,27 + 4893: 4,26 + 4894: 3,25 + 4895: 4,24 + 4896: 3,23 + 4897: 1,24 + 4898: 2,23 + 4916: -3,25 + 4917: -4,23 + 4918: -2,23 + 4919: -3,24 + 4920: 0,24 + 4921: 0,23 + 4922: -16,29 + 4923: -15,26 + 4924: -15,28 + 4925: -13,28 + 4926: -13,29 + 4927: -9,28 + 4928: -10,26 + 4929: -9,27 + 4930: -11,28 + 4931: -8,29 + 4932: -9,26 + 4933: -6,27 + 4934: -6,26 + 4935: -6,28 + 4936: -3,29 + 4937: -4,27 + 4938: -1,28 + 4939: -3,29 + 4940: -2,30 + 4941: -3,32 + 4942: -2,33 + 4943: -2,34 + 4944: -8,33 + 4945: -7,32 + 4946: -8,32 + 4947: -9,33 + 4948: -6,34 + 4949: -6,33 + 4950: -13,34 + 5018: -17,-28 + 5019: -19,-28 + 5020: -20,-27 + 5021: -20,-26 + 5022: -20,-27 + 5023: -15,-28 + 5024: -14,-28 + 5025: -14,-27 + 5026: -14,-29 + 5027: -17,-29 + 5089: -14,-38 + 5090: -14,-38 + 5108: -6,-37 + 5109: -5,-37 + 5110: -4,-37 + 5296: 78,-28 + 5297: 79,-28 + 5298: 78,-28 + 5299: 78,-27 + 5300: 78,-29 + 5365: 13,-45 + 5366: 12,-45 + 5367: 12,-50 + 5368: 12,-49 + 5369: 16,-49 + 5370: 15,-49 + 6201: 81,-34 + 6202: 82,-35 + 6203: 81,-35 + 6204: 81,-35 + 6230: -2,41 + 6231: -2,42 + 6232: -3,42 + 6233: -3,42 + 6234: -1,43 + 6256: 46,15 + 6257: 47,15 + 6258: 47,15 + 6259: 45,16 + 6472: 49,-1 + 6473: 51,-1 + 6474: 50,-2 + 6475: 49,-3 + 6476: 49,-5 + 6477: 51,-5 + 6478: 51,-3 + 6479: 50,-8 + 6480: 49,-8 + 6481: 48,-7 + 6482: 52,-8 + 6483: 54,-7 + 6484: 49,-10 + 6485: 50,-11 + 6486: 48,-11 + 6487: 51,-10 + 6488: 51,-11 + 6489: 52,-11 + 6490: 53,-11 + 6516: 50,2 + 6517: 50,4 + 6518: 50,9 + 6519: 50,12 + 6520: 50,13 + 6521: 47,9 + 6522: 47,7 + 6523: 41,8 + 6524: 41,7 + 6525: 40,8 + 6526: 40,7 + 6527: 44,8 + 6549: 46,4 + 6550: 45,4 + 6551: 46,2 + 6552: 45,2 + 6553: 45,1 + 6554: 46,5 + 6555: 40,5 + 6556: 44,4 + 6557: 44,7 + 6558: 55,3 + 6559: 54,2 + 6560: 53,3 + 6561: 55,4 + 6562: 57,4 + 6563: 56,2 + 6564: 55,1 + 6565: 55,6 + 6566: 53,7 + 6567: 53,6 + 6568: 55,8 + 6569: 56,10 + 6570: 55,10 + 6571: 53,12 + 6572: 53,11 + 6573: 57,14 + 6583: -1,-23 + 6584: 0,-23 + 6585: -4,-23 + 6586: -5,-23 + 6587: 35,19 + 6588: 34,19 + 6589: 35,20 + 6590: -8,27 + 6591: -12,27 + 6592: -10,27 + 6593: -14,27 + 6594: -15,27 + 6595: -15,27 + 6629: 88,-18 + 6630: 87,-18 + 6631: 91,-19 + 6632: 91,-18 + 6633: 92,-19 + 6715: 51,-36 + 6716: 51,-37 + 6717: 53,-39 + 6718: 54,-40 + 6719: 51,-35 + 6726: 51,-29 + 6732: 51,-26 + 6733: 52,-27 + 6734: 56,-27 + 6735: 56,-29 + 6751: -32,-12 + 6752: -34,-11 + 6753: -32,-10 + 6754: -33,-9 + 6755: -34,-9 + 6759: 61,-21 + 6760: -24,-42 + 6762: -25,-42 + 6763: -22,-42 + 6764: -22,-42 + 6771: -37,-45 + 6772: -38,-44 + 6773: -38,-46 + 6774: -37,-46 - node: cleanable: True angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: DirtHeavyMonotile decals: - 3022: -44,17 - 6687: 13,-30 - 6688: 16,-30 - 6689: 12,-30 - 6690: 12,-30 + 3019: -44,17 + 6680: 13,-30 + 6681: 16,-30 + 6682: 12,-30 + 6683: 12,-30 - node: cleanable: True angle: -6.283185307179586 rad color: '#FFFFFFFF' id: DirtLight decals: - 6662: 89,-21 - 6663: 90,-20 + 6655: 89,-21 + 6656: 90,-20 - node: cleanable: True color: '#FFFFFFFF' id: DirtLight decals: - 6581: 57,4 - 6582: 57,2 - 6583: 54,3 - 6584: 56,1 - 6585: 49,-15 - 6586: 52,-15 - 6587: 43,4 - 6778: -36,-44 + 6574: 57,4 + 6575: 57,2 + 6576: 54,3 + 6577: 56,1 + 6578: 49,-15 + 6579: 52,-15 + 6580: 43,4 + 6770: -36,-44 - node: cleanable: True angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: DirtLight decals: - 3021: -44,16 + 3018: -44,16 - node: cleanable: True color: '#FFFFFF47' id: DirtMedium decals: - 6695: 11,-29 - 6696: 11,-29 + 6688: 11,-29 + 6689: 11,-29 - node: cleanable: True angle: -6.283185307179586 rad color: '#FFFFFFFF' id: DirtMedium decals: - 6665: 91,-21 - 6666: 90,-21 + 6658: 91,-21 + 6659: 90,-21 - node: cleanable: True color: '#FFFFFFFF' id: DirtMedium decals: - 3963: -16,11 - 3964: -17,12 - 6734: 52,-30 - 6763: -32,-9 - 6764: -34,-12 - 6777: -36,-46 + 3959: -16,11 + 3960: -17,12 + 6727: 52,-30 + 6756: -32,-9 + 6757: -34,-12 + 6769: -36,-46 - node: cleanable: True angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: DirtMedium decals: - 3020: -44,15 + 3017: -44,15 - node: color: '#FFFFFFFF' id: FlowersBROne decals: 880: -47,-2 907: -50,-7 - 1942: 56,-22 + 1940: 56,-22 - node: color: '#FFFFFFFF' id: FlowersBRThree @@ -6399,7 +6407,7 @@ entities: color: '#FFFFFFFF' id: FlowersBRThree decals: - 3054: 80.70172,-6.173584 + 3051: 80.70172,-6.173584 - node: color: '#FFFFFFFF' id: FlowersBRTwo @@ -6430,7 +6438,7 @@ entities: color: '#FFFFFFFF' id: Flowerspv1 decals: - 3055: 80.04127,-7.0725327 + 3052: 80.04127,-7.0725327 - node: color: '#FFFFFFFF' id: Flowerspv3 @@ -6444,7 +6452,7 @@ entities: color: '#FFFFFFFF' id: Flowersy1 decals: - 1941: 55,-23 + 1939: 55,-23 - node: color: '#FFFFFFFF' id: Flowersy2 @@ -6458,14 +6466,14 @@ entities: color: '#FFFFFFFF' id: Flowersy2 decals: - 3056: 81.08699,-7.6962934 + 3053: 81.08699,-7.6962934 - node: color: '#FFFFFFFF' id: Flowersy3 decals: 877: -50,4 908: -47,-7 - 2264: 25,1 + 2261: 25,1 - node: color: '#FFFFFFFF' id: Flowersy4 @@ -6476,13 +6484,13 @@ entities: color: '#EFB34196' id: FullTileOverlayGreyscale decals: - 6242: 43,13 + 6235: 43,13 - node: cleanable: True color: '#FFFFFFFF' id: Grassa2 decals: - 3044: 80,-6 + 3041: 80,-6 - node: color: '#FFFFFFFF' id: Grassa3 @@ -6493,20 +6501,20 @@ entities: id: Grassa4 decals: 1494: -47,-49 - 1948: 53.52114,-21.634073 + 1946: 53.52114,-21.634073 - node: cleanable: True color: '#FFFFFFFF' id: Grassa4 decals: - 3043: 80,-8 + 3040: 80,-8 - node: color: '#FFFFFFFF' id: Grassa5 decals: 898: -49,-7 1495: -45,-49 - 1949: 57.536766,-22.899698 + 1947: 57.536766,-22.899698 - node: color: '#FFFFFFFF' id: Grassb1 @@ -6530,7 +6538,7 @@ entities: decals: 897: -48,-9 1493: -50,-49 - 1947: 54.661766,-23.446573 + 1945: 54.661766,-23.446573 - node: color: '#FFFFFFFF' id: Grassb5 @@ -6546,7 +6554,7 @@ entities: color: '#FFFFFFFF' id: Grassc1 decals: - 3046: 79.637665,-6.118546 + 3043: 79.637665,-6.118546 - node: color: '#FFFFFFFF' id: Grassc2 @@ -6557,7 +6565,7 @@ entities: color: '#FFFFFFFF' id: Grassc2 decals: - 3047: 81.362175,-7.1642623 + 3044: 81.362175,-7.1642623 - node: color: '#FFFFFFFF' id: Grassc4 @@ -6569,7 +6577,7 @@ entities: color: '#FFFFFFFF' id: Grassc4 decals: - 3045: 79.56428,-7.366067 + 3042: 79.56428,-7.366067 - node: color: '#FFFFFFFF' id: Grassd1 @@ -6581,27 +6589,27 @@ entities: color: '#FFFFFFFF' id: Grassd1 decals: - 3048: 79.14232,-8.063211 + 3045: 79.14232,-8.063211 - node: color: '#FFFFFFFF' id: Grassd2 decals: 891: -45,-9 - 1951: 53.52114,-22.368448 + 1949: 53.52114,-22.368448 - node: color: '#FFFFFFFF' id: Grassd3 decals: 890: -48,-7 935: -48,-27 - 1952: 57.73989,-21.884073 + 1950: 57.73989,-21.884073 - node: cleanable: True color: '#FFFFFFFF' id: Grassd3 decals: - 3049: 79.05059,-6.320351 - 3050: 80.53661,-6.6872687 + 3046: 79.05059,-6.320351 + 3047: 80.53661,-6.6872687 - node: color: '#FFFFFFFF' id: Grasse1 @@ -6613,13 +6621,13 @@ entities: color: '#FFFFFFFF' id: Grasse1 decals: - 3053: 81.784134,-6.4304266 + 3050: 81.784134,-6.4304266 - node: cleanable: True color: '#FFFFFFFF' id: Grasse2 decals: - 3051: 80.518265,-8.02652 + 3048: 80.518265,-8.02652 - node: color: '#FFFFFFFF' id: Grasse3 @@ -6627,18 +6635,18 @@ entities: 887: -50,-7 934: -47,-30 1749: 57,19 - 1950: 55.95864,-23.352823 + 1948: 55.95864,-23.352823 - node: cleanable: True color: '#FFFFFFFF' id: Grasse3 decals: - 3052: 80.72007,-6.0451627 + 3049: 80.72007,-6.0451627 - node: color: '#52B4E996' id: HalfTileOverlayGreyscale decals: - 6312: 44,7 + 6305: 44,7 - node: color: '#A4610696' id: HalfTileOverlayGreyscale @@ -6685,7 +6693,7 @@ entities: color: '#52B4E996' id: HalfTileOverlayGreyscale180 decals: - 6313: 44,9 + 6306: 44,9 - node: color: '#A4610696' id: HalfTileOverlayGreyscale180 @@ -6709,7 +6717,7 @@ entities: color: '#52B4E996' id: HalfTileOverlayGreyscale270 decals: - 6314: 45,8 + 6307: 45,8 - node: color: '#DE3A3A96' id: HalfTileOverlayGreyscale270 @@ -6724,7 +6732,7 @@ entities: color: '#52B4E996' id: HalfTileOverlayGreyscale90 decals: - 6315: 43,8 + 6308: 43,8 - node: color: '#A4610696' id: HalfTileOverlayGreyscale90 @@ -6770,8 +6778,8 @@ entities: color: '#FFFFFFFF' id: LoadingArea decals: - 6654: 89,-20 - 6655: 90,-20 + 6647: 89,-20 + 6648: 90,-20 - node: angle: -1.5707963267948966 rad color: '#FFFFFFFF' @@ -6779,25 +6787,25 @@ entities: decals: 1793: 58,-24 1794: 58,-23 - 2197: -4,-36 - 2215: -56,-59 - 2216: -56,-66 + 2194: -4,-36 + 2212: -56,-59 + 2213: -56,-66 - node: color: '#FFFFFFFF' id: LoadingArea decals: 352: 39,-22 - 3183: 25,22 - 3184: 29,22 - 6221: -44,24 + 3179: 25,22 + 3180: 29,22 + 6214: -44,24 - node: angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: LoadingArea decals: - 2231: -40,-59 - 2232: -40,-66 - 6222: -45,23 + 2228: -40,-59 + 2229: -40,-66 + 6215: -45,23 - node: angle: 3.141592653589793 rad color: '#FFFFFFFF' @@ -6805,27 +6813,27 @@ entities: decals: 351: 45,-22 1774: 63,-26 - 6223: -44,22 + 6216: -44,22 - node: angle: 4.71238898038469 rad color: '#FFFFFFFF' id: LoadingArea decals: 1273: 23,12 - 6224: -43,23 + 6217: -43,23 - node: color: '#52B4E996' id: MiniTileCheckerAOverlay decals: - 2249: 13,25 - 2250: 14,25 - 2251: 15,25 - 2252: 15,24 - 2253: 15,23 - 2254: 14,23 - 2255: 14,24 - 2256: 13,24 - 2257: 13,23 + 2246: 13,25 + 2247: 14,25 + 2248: 15,25 + 2249: 15,24 + 2250: 15,23 + 2251: 14,23 + 2252: 14,24 + 2253: 13,24 + 2254: 13,23 - node: color: '#FFFFFFFF' id: MiniTileDarkLineN @@ -6840,7 +6848,7 @@ entities: color: '#FFFFFFFF' id: MiniTileDarkLineN decals: - 3290: -19,20 + 3286: -19,20 - node: color: '#FFFFFFFF' id: MiniTileDarkLineS @@ -6855,640 +6863,640 @@ entities: color: '#9D9D97FF' id: MiniTileWhiteCornerNe decals: - 2435: -43,-25 - 2521: -40,-46 + 2432: -43,-25 + 2518: -40,-46 - node: color: '#9D9D97FF' id: MiniTileWhiteCornerNw decals: - 2335: -26,-9 - 2379: -55,7 - 2520: -56,-46 - 2621: 27,-19 - 2831: -27,21 + 2332: -26,-9 + 2376: -55,7 + 2517: -56,-46 + 2618: 27,-19 + 2828: -27,21 - node: color: '#9D9D97FF' id: MiniTileWhiteCornerSe decals: - 2323: -23,-11 - 2447: -46,-33 - 2451: -43,-32 + 2320: -23,-11 + 2444: -46,-33 + 2448: -43,-32 - node: color: '#9D9D97FF' id: MiniTileWhiteCornerSw decals: - 2443: -52,-32 - 2446: -50,-33 - 2597: 7,-34 - 2701: 40,1 - 2730: 19,2 + 2440: -52,-32 + 2443: -50,-33 + 2594: 7,-34 + 2698: 40,1 + 2727: 19,2 - node: color: '#9D9D97FF' id: MiniTileWhiteInnerNe decals: - 2298: -23,-30 - 2347: -25,9 - 2436: -44,-25 - 2566: -28,-30 - 2849: 77,-19 - 2850: 77,-15 + 2295: -23,-30 + 2344: -25,9 + 2433: -44,-25 + 2563: -28,-30 + 2846: 77,-19 + 2847: 77,-15 - node: color: '#9D9D97FF' id: MiniTileWhiteInnerNw decals: - 2336: -25,-9 - 2565: -41,-30 - 2613: 27,-25 - 2665: 57,-19 + 2333: -25,-9 + 2562: -41,-30 + 2610: 27,-25 + 2662: 57,-19 - node: color: '#9D9D97FF' id: MiniTileWhiteInnerSe decals: - 2322: -24,-11 - 2448: -46,-32 - 2454: -47,-33 - 2519: -54,-48 - 2564: -28,-27 - 2669: 59,-21 - 2847: 77,-13 - 2848: 77,-17 + 2319: -24,-11 + 2445: -46,-32 + 2451: -47,-33 + 2516: -54,-48 + 2561: -28,-27 + 2666: 59,-21 + 2844: 77,-13 + 2845: 77,-17 - node: color: '#9D9D97FF' id: MiniTileWhiteInnerSw decals: - 2445: -50,-32 - 2455: -49,-33 - 2518: -42,-48 - 2563: -41,-27 - 2595: 7,-32 - 2674: 52,-21 - 2700: 41,1 - 2702: 40,2 - 2770: 19,19 + 2442: -50,-32 + 2452: -49,-33 + 2515: -42,-48 + 2560: -41,-27 + 2592: 7,-32 + 2671: 52,-21 + 2697: 41,1 + 2699: 40,2 + 2767: 19,19 - node: color: '#9D9D97FF' id: MiniTileWhiteLineE decals: - 2299: -23,-29 - 2300: -24,-25 - 2301: -24,-24 - 2302: -24,-23 - 2303: -24,-23 - 2304: -24,-20 - 2305: -24,-20 + 2296: -23,-29 + 2297: -24,-25 + 2298: -24,-24 + 2299: -24,-23 + 2300: -24,-23 + 2301: -24,-20 + 2302: -24,-20 + 2303: -24,-20 + 2304: -24,-21 + 2305: -24,-21 2306: -24,-20 - 2307: -24,-21 - 2308: -24,-21 - 2309: -24,-20 - 2310: -24,-19 - 2311: -24,-19 - 2312: -24,-19 - 2313: -24,-17 - 2314: -24,-17 - 2315: -24,-16 - 2316: -24,-16 - 2317: -24,-16 - 2318: -24,-15 - 2319: -24,-14 - 2320: -24,-14 - 2321: -24,-13 - 2324: -23,-10 - 2325: -23,-9 - 2326: -23,-8 - 2337: -25,4 - 2338: -25,5 - 2339: -25,6 - 2340: -25,7 - 2352: -43,0 - 2353: -43,1 - 2354: -43,2 - 2355: -43,3 - 2356: -43,-1 - 2395: -53,-6 - 2396: -53,-7 - 2397: -53,-7 - 2398: -53,-8 - 2399: -53,-9 - 2400: -53,-9 - 2401: -53,-10 - 2402: -53,-12 - 2410: -53,-13 - 2411: -53,-13 - 2412: -53,-15 - 2413: -53,-15 - 2414: -53,-15 - 2416: -53,-14 - 2417: -53,-16 - 2418: -53,-17 - 2419: -53,-18 - 2425: -44,-20 - 2426: -44,-21 - 2427: -44,-22 - 2428: -44,-22 - 2429: -44,-23 - 2430: -44,-23 - 2431: -44,-24 - 2432: -43,-25 - 2433: -43,-26 - 2434: -43,-27 - 2452: -43,-31 - 2453: -43,-30 - 2458: -47,-35 - 2459: -47,-36 - 2460: -47,-36 - 2461: -47,-38 - 2462: -47,-39 - 2463: -47,-40 - 2474: -47,-41 - 2475: -47,-42 - 2476: -47,-42 - 2477: -47,-43 - 2478: -47,-44 - 2479: -47,-44 - 2530: -40,-47 - 2531: -40,-48 - 2532: -40,-50 - 2533: -40,-50 - 2534: -40,-51 - 2535: -40,-51 - 2536: -40,-51 - 2537: -40,-52 - 2538: -40,-53 - 2539: -40,-53 - 2540: -40,-53 - 2541: -40,-54 - 2542: -54,-51 - 2543: -54,-51 - 2544: -54,-52 - 2545: -54,-52 - 2546: -54,-53 - 2547: -54,-53 - 2548: -54,-54 - 2559: -28,-29 - 2560: -28,-28 - 2670: 59,-22 - 2675: 43,-17 - 2676: 43,-16 - 2677: 43,-15 - 2678: 43,-15 - 2684: 43,-12 - 2685: 43,-11 - 2750: 21,10 - 2751: 21,11 - 2752: 21,11 - 2753: 21,12 - 2754: 21,12 - 2755: 21,12 - 2756: 21,13 - 2757: 21,14 - 2758: 21,15 - 2845: 77,-14 - 2846: 77,-18 - 3182: -54,-50 + 2307: -24,-19 + 2308: -24,-19 + 2309: -24,-19 + 2310: -24,-17 + 2311: -24,-17 + 2312: -24,-16 + 2313: -24,-16 + 2314: -24,-16 + 2315: -24,-15 + 2316: -24,-14 + 2317: -24,-14 + 2318: -24,-13 + 2321: -23,-10 + 2322: -23,-9 + 2323: -23,-8 + 2334: -25,4 + 2335: -25,5 + 2336: -25,6 + 2337: -25,7 + 2349: -43,0 + 2350: -43,1 + 2351: -43,2 + 2352: -43,3 + 2353: -43,-1 + 2392: -53,-6 + 2393: -53,-7 + 2394: -53,-7 + 2395: -53,-8 + 2396: -53,-9 + 2397: -53,-9 + 2398: -53,-10 + 2399: -53,-12 + 2407: -53,-13 + 2408: -53,-13 + 2409: -53,-15 + 2410: -53,-15 + 2411: -53,-15 + 2413: -53,-14 + 2414: -53,-16 + 2415: -53,-17 + 2416: -53,-18 + 2422: -44,-20 + 2423: -44,-21 + 2424: -44,-22 + 2425: -44,-22 + 2426: -44,-23 + 2427: -44,-23 + 2428: -44,-24 + 2429: -43,-25 + 2430: -43,-26 + 2431: -43,-27 + 2449: -43,-31 + 2450: -43,-30 + 2455: -47,-35 + 2456: -47,-36 + 2457: -47,-36 + 2458: -47,-38 + 2459: -47,-39 + 2460: -47,-40 + 2471: -47,-41 + 2472: -47,-42 + 2473: -47,-42 + 2474: -47,-43 + 2475: -47,-44 + 2476: -47,-44 + 2527: -40,-47 + 2528: -40,-48 + 2529: -40,-50 + 2530: -40,-50 + 2531: -40,-51 + 2532: -40,-51 + 2533: -40,-51 + 2534: -40,-52 + 2535: -40,-53 + 2536: -40,-53 + 2537: -40,-53 + 2538: -40,-54 + 2539: -54,-51 + 2540: -54,-51 + 2541: -54,-52 + 2542: -54,-52 + 2543: -54,-53 + 2544: -54,-53 + 2545: -54,-54 + 2556: -28,-29 + 2557: -28,-28 + 2667: 59,-22 + 2672: 43,-17 + 2673: 43,-16 + 2674: 43,-15 + 2675: 43,-15 + 2681: 43,-12 + 2682: 43,-11 + 2747: 21,10 + 2748: 21,11 + 2749: 21,11 + 2750: 21,12 + 2751: 21,12 + 2752: 21,12 + 2753: 21,13 + 2754: 21,14 + 2755: 21,15 + 2842: 77,-14 + 2843: 77,-18 + 3178: -54,-50 - node: color: '#9D9D97FF' id: MiniTileWhiteLineN decals: - 2292: -22,-30 - 2293: -21,-30 - 2294: -20,-30 - 2295: -20,-30 - 2296: -18,-30 - 2297: -19,-30 - 2341: -19,9 - 2342: -20,9 - 2343: -21,9 - 2344: -22,9 - 2345: -24,9 - 2346: -23,9 - 2366: -51,7 - 2367: -50,7 - 2368: -49,7 - 2369: -48,7 - 2370: -47,7 - 2371: -47,7 - 2372: -46,7 - 2373: -45,7 - 2374: -42,7 - 2375: -43,7 - 2376: -54,7 - 2377: -55,7 - 2378: -53,7 - 2480: -54,-46 + 2289: -22,-30 + 2290: -21,-30 + 2291: -20,-30 + 2292: -20,-30 + 2293: -18,-30 + 2294: -19,-30 + 2338: -19,9 + 2339: -20,9 + 2340: -21,9 + 2341: -22,9 + 2342: -24,9 + 2343: -23,9 + 2363: -51,7 + 2364: -50,7 + 2365: -49,7 + 2366: -48,7 + 2367: -47,7 + 2368: -47,7 + 2369: -46,7 + 2370: -45,7 + 2371: -42,7 + 2372: -43,7 + 2373: -54,7 + 2374: -55,7 + 2375: -53,7 + 2477: -54,-46 + 2478: -51,-46 + 2479: -50,-46 + 2480: -50,-46 2481: -51,-46 - 2482: -50,-46 - 2483: -50,-46 - 2484: -51,-46 + 2482: -53,-46 + 2483: -54,-46 + 2484: -54,-46 2485: -53,-46 - 2486: -54,-46 + 2486: -52,-46 2487: -54,-46 - 2488: -53,-46 - 2489: -52,-46 - 2490: -54,-46 - 2491: -55,-46 - 2492: -46,-46 - 2493: -45,-46 - 2494: -45,-46 - 2495: -44,-46 - 2496: -44,-46 - 2497: -43,-46 - 2498: -43,-46 - 2499: -42,-46 - 2500: -42,-46 - 2501: -41,-46 - 2585: -11,-30 - 2586: -10,-30 - 2587: -10,-30 - 2611: 25,-25 - 2612: 26,-25 - 2622: 28,-19 - 2623: 29,-19 - 2624: 29,-19 - 2625: 31,-19 - 2626: 31,-19 - 2627: 32,-19 - 2628: 32,-19 - 2629: 32,-19 - 2630: 34,-19 - 2631: 34,-19 - 2632: 34,-19 - 2633: 33,-19 - 2634: 35,-19 - 2635: 35,-19 - 2636: 36,-19 - 2637: 36,-19 - 2638: 37,-19 - 2639: 37,-19 - 2640: 39,-19 - 2641: 39,-19 - 2642: 40,-19 - 2643: 40,-19 - 2644: 40,-19 - 2645: 41,-19 - 2646: 42,-19 - 2647: 42,-19 - 2648: 43,-19 - 2649: 44,-19 - 2650: 44,-19 - 2651: 45,-19 - 2652: 47,-19 - 2653: 47,-19 - 2654: 48,-19 - 2655: 49,-19 - 2656: 49,-19 - 2657: 50,-19 - 2658: 51,-19 - 2659: 52,-19 - 2660: 52,-19 - 2661: 54,-19 - 2662: 55,-19 - 2663: 56,-19 - 2664: 53,-19 - 2707: 37,4 - 2708: 35,4 - 2709: 34,4 - 2710: 33,4 - 2711: 32,4 - 2712: 32,4 - 2713: 31,4 - 2773: 20,21 - 2774: 19,21 - 2775: 19,21 - 2776: 18,21 + 2488: -55,-46 + 2489: -46,-46 + 2490: -45,-46 + 2491: -45,-46 + 2492: -44,-46 + 2493: -44,-46 + 2494: -43,-46 + 2495: -43,-46 + 2496: -42,-46 + 2497: -42,-46 + 2498: -41,-46 + 2582: -11,-30 + 2583: -10,-30 + 2584: -10,-30 + 2608: 25,-25 + 2609: 26,-25 + 2619: 28,-19 + 2620: 29,-19 + 2621: 29,-19 + 2622: 31,-19 + 2623: 31,-19 + 2624: 32,-19 + 2625: 32,-19 + 2626: 32,-19 + 2627: 34,-19 + 2628: 34,-19 + 2629: 34,-19 + 2630: 33,-19 + 2631: 35,-19 + 2632: 35,-19 + 2633: 36,-19 + 2634: 36,-19 + 2635: 37,-19 + 2636: 37,-19 + 2637: 39,-19 + 2638: 39,-19 + 2639: 40,-19 + 2640: 40,-19 + 2641: 40,-19 + 2642: 41,-19 + 2643: 42,-19 + 2644: 42,-19 + 2645: 43,-19 + 2646: 44,-19 + 2647: 44,-19 + 2648: 45,-19 + 2649: 47,-19 + 2650: 47,-19 + 2651: 48,-19 + 2652: 49,-19 + 2653: 49,-19 + 2654: 50,-19 + 2655: 51,-19 + 2656: 52,-19 + 2657: 52,-19 + 2658: 54,-19 + 2659: 55,-19 + 2660: 56,-19 + 2661: 53,-19 + 2704: 37,4 + 2705: 35,4 + 2706: 34,4 + 2707: 33,4 + 2708: 32,4 + 2709: 32,4 + 2710: 31,4 + 2770: 20,21 + 2771: 19,21 + 2772: 19,21 + 2773: 18,21 + 2774: 16,21 + 2775: 16,21 + 2776: 16,21 2777: 16,21 - 2778: 16,21 - 2779: 16,21 - 2780: 16,21 - 2781: 15,21 - 2782: 13,21 - 2783: 13,21 - 2784: 12,21 - 2785: 11,21 - 2786: 10,21 - 2787: 10,21 - 2788: 9,21 - 2789: 8,21 - 2828: -26,21 - 2838: 66,-17 - 2839: 68,-17 - 2840: 67,-17 - 2841: 69,-17 - 2842: 70,-17 - 2843: 70,-17 - 2844: 71,-17 + 2778: 15,21 + 2779: 13,21 + 2780: 13,21 + 2781: 12,21 + 2782: 11,21 + 2783: 10,21 + 2784: 10,21 + 2785: 9,21 + 2786: 8,21 + 2825: -26,21 + 2835: 66,-17 + 2836: 68,-17 + 2837: 67,-17 + 2838: 69,-17 + 2839: 70,-17 + 2840: 70,-17 + 2841: 71,-17 - node: color: '#9D9D97FF' id: MiniTileWhiteLineS decals: - 2282: -25,-32 - 2283: -23,-32 - 2284: -24,-32 - 2285: -22,-32 - 2286: -22,-32 - 2287: -21,-32 - 2288: -19,-32 - 2289: -19,-32 - 2290: -18,-32 - 2291: -18,-32 - 2357: -45,-5 - 2358: -46,-5 - 2359: -47,-5 - 2360: -48,-5 - 2361: -48,-5 - 2362: -50,-5 - 2363: -50,-5 - 2364: -49,-5 - 2365: -51,-5 - 2444: -51,-32 - 2449: -45,-32 - 2450: -44,-32 - 2502: -53,-48 - 2503: -52,-48 - 2504: -51,-48 + 2279: -25,-32 + 2280: -23,-32 + 2281: -24,-32 + 2282: -22,-32 + 2283: -22,-32 + 2284: -21,-32 + 2285: -19,-32 + 2286: -19,-32 + 2287: -18,-32 + 2288: -18,-32 + 2354: -45,-5 + 2355: -46,-5 + 2356: -47,-5 + 2357: -48,-5 + 2358: -48,-5 + 2359: -50,-5 + 2360: -50,-5 + 2361: -49,-5 + 2362: -51,-5 + 2441: -51,-32 + 2446: -45,-32 + 2447: -44,-32 + 2499: -53,-48 + 2500: -52,-48 + 2501: -51,-48 + 2502: -50,-48 + 2503: -50,-48 + 2504: -49,-48 2505: -50,-48 2506: -50,-48 - 2507: -49,-48 - 2508: -50,-48 - 2509: -50,-48 - 2510: -48,-48 - 2511: -48,-48 - 2512: -47,-48 - 2513: -47,-48 - 2514: -46,-48 - 2515: -45,-48 - 2516: -44,-48 - 2517: -43,-48 - 2567: -16,-32 - 2568: -14,-32 + 2507: -48,-48 + 2508: -48,-48 + 2509: -47,-48 + 2510: -47,-48 + 2511: -46,-48 + 2512: -45,-48 + 2513: -44,-48 + 2514: -43,-48 + 2564: -16,-32 + 2565: -14,-32 + 2566: -14,-32 + 2567: -14,-32 + 2568: -15,-32 2569: -14,-32 2570: -14,-32 - 2571: -15,-32 - 2572: -14,-32 - 2573: -14,-32 - 2574: -13,-32 - 2575: -12,-32 - 2576: -12,-32 - 2577: -11,-32 - 2578: -11,-32 - 2579: -10,-32 - 2580: -10,-32 - 2581: -7,-32 - 2582: -6,-32 - 2583: -5,-32 - 2584: -5,-32 - 2588: -4,-32 - 2589: -3,-32 - 2590: -3,-32 - 2591: -3,-32 - 2592: -2,-32 - 2593: 3,-32 - 2594: 6,-32 - 2598: 8,-34 - 2599: 9,-34 - 2600: 9,-34 - 2601: 11,-34 - 2602: 11,-34 - 2603: 12,-34 - 2604: 12,-34 - 2605: 13,-34 - 2606: 13,-34 - 2607: 14,-34 - 2608: 15,-34 - 2609: 15,-34 - 2610: 16,-34 - 2668: 60,-21 + 2571: -13,-32 + 2572: -12,-32 + 2573: -12,-32 + 2574: -11,-32 + 2575: -11,-32 + 2576: -10,-32 + 2577: -10,-32 + 2578: -7,-32 + 2579: -6,-32 + 2580: -5,-32 + 2581: -5,-32 + 2585: -4,-32 + 2586: -3,-32 + 2587: -3,-32 + 2588: -3,-32 + 2589: -2,-32 + 2590: 3,-32 + 2591: 6,-32 + 2595: 8,-34 + 2596: 9,-34 + 2597: 9,-34 + 2598: 11,-34 + 2599: 11,-34 + 2600: 12,-34 + 2601: 12,-34 + 2602: 13,-34 + 2603: 13,-34 + 2604: 14,-34 + 2605: 15,-34 + 2606: 15,-34 + 2607: 16,-34 + 2665: 60,-21 + 2700: 38,2 + 2701: 36,2 + 2702: 37,2 2703: 38,2 - 2704: 36,2 - 2705: 37,2 - 2706: 38,2 - 2714: 34,2 - 2715: 33,2 - 2716: 32,2 - 2717: 31,2 - 2718: 31,2 - 2719: 27,2 - 2720: 26,2 - 2721: 26,2 - 2722: 25,2 - 2723: 24,2 - 2724: 23,2 - 2725: 23,2 - 2726: 21,2 - 2727: 21,2 - 2728: 22,2 - 2729: 20,2 - 2771: 18,19 - 2772: 16,19 - 2790: 14,19 - 2791: 13,19 - 2792: 12,19 - 2793: 11,19 - 2794: 10,19 - 2795: 10,19 - 2796: 9,19 - 2797: 9,19 - 2798: 8,19 - 2799: 6,19 - 2800: 6,19 - 2801: 7,19 - 2802: 5,19 - 2803: 0,19 - 2804: 0,19 - 2805: -1,19 - 2806: -1,19 - 2807: -2,19 - 2808: -3,19 - 2809: -3,19 - 2810: -4,19 - 2811: -5,19 - 2812: -6,19 - 2813: -6,19 - 2814: -7,19 - 2815: -7,19 - 2816: -8,19 - 2817: -8,19 - 2818: -8,19 - 2819: -11,19 - 2820: -11,19 - 2821: -13,19 - 2822: -13,19 - 2823: -14,19 - 2824: -12,19 - 2825: -16,19 - 2826: -16,19 - 2827: -18,19 - 2832: 66,-19 - 2833: 67,-19 - 2834: 68,-19 - 2835: 69,-19 - 2836: 70,-19 - 2837: 71,-19 - 3079: 1,19 - 3080: 2,19 + 2711: 34,2 + 2712: 33,2 + 2713: 32,2 + 2714: 31,2 + 2715: 31,2 + 2716: 27,2 + 2717: 26,2 + 2718: 26,2 + 2719: 25,2 + 2720: 24,2 + 2721: 23,2 + 2722: 23,2 + 2723: 21,2 + 2724: 21,2 + 2725: 22,2 + 2726: 20,2 + 2768: 18,19 + 2769: 16,19 + 2787: 14,19 + 2788: 13,19 + 2789: 12,19 + 2790: 11,19 + 2791: 10,19 + 2792: 10,19 + 2793: 9,19 + 2794: 9,19 + 2795: 8,19 + 2796: 6,19 + 2797: 6,19 + 2798: 7,19 + 2799: 5,19 + 2800: 0,19 + 2801: 0,19 + 2802: -1,19 + 2803: -1,19 + 2804: -2,19 + 2805: -3,19 + 2806: -3,19 + 2807: -4,19 + 2808: -5,19 + 2809: -6,19 + 2810: -6,19 + 2811: -7,19 + 2812: -7,19 + 2813: -8,19 + 2814: -8,19 + 2815: -8,19 + 2816: -11,19 + 2817: -11,19 + 2818: -13,19 + 2819: -13,19 + 2820: -14,19 + 2821: -12,19 + 2822: -16,19 + 2823: -16,19 + 2824: -18,19 + 2829: 66,-19 + 2830: 67,-19 + 2831: 68,-19 + 2832: 69,-19 + 2833: 70,-19 + 2834: 71,-19 + 3075: 1,19 + 3076: 2,19 - node: color: '#9D9D97FF' id: MiniTileWhiteLineW decals: - 2265: -26,-21 - 2266: -26,-20 - 2267: -26,-18 - 2268: -26,-19 - 2269: -26,-17 - 2274: -26,-25 - 2275: -26,-24 - 2276: -26,-27 - 2277: -26,-26 - 2278: -26,-28 - 2279: -26,-29 - 2280: -26,-30 - 2281: -26,-31 - 2327: -25,-8 - 2328: -26,-10 - 2329: -26,-11 - 2330: -26,-16 - 2331: -26,-15 - 2332: -26,-15 - 2333: -26,-14 - 2334: -26,-13 - 2348: -27,7 - 2349: -27,8 - 2350: -27,6 - 2351: -27,5 - 2380: -55,5 - 2381: -55,3 - 2382: -55,2 - 2383: -55,1 - 2384: -55,0 - 2385: -55,-1 - 2386: -55,-3 - 2387: -55,-6 - 2388: -55,-6 - 2389: -55,-7 - 2390: -55,-7 - 2391: -55,-8 - 2392: -55,-9 - 2393: -55,-9 - 2394: -55,-11 - 2403: -55,-10 - 2404: -55,-11 - 2405: -55,-12 - 2406: -55,-13 - 2407: -55,-13 - 2408: -55,-15 - 2409: -55,-15 - 2415: -55,-14 - 2420: -55,-16 - 2421: -55,-17 - 2422: -55,-18 - 2423: -55,-20 - 2424: -55,-21 - 2437: -52,-28 - 2438: -52,-29 - 2439: -52,-30 - 2440: -52,-30 - 2441: -52,-31 - 2442: -52,-32 - 2456: -49,-35 - 2457: -49,-36 - 2464: -49,-38 - 2465: -49,-38 - 2466: -49,-39 - 2467: -49,-40 - 2468: -49,-40 - 2469: -49,-41 - 2470: -49,-42 - 2471: -49,-43 - 2472: -49,-43 - 2473: -49,-44 - 2522: -42,-50 - 2523: -42,-50 - 2524: -42,-51 - 2525: -42,-51 - 2526: -42,-52 - 2527: -42,-52 - 2528: -42,-53 - 2529: -42,-54 - 2549: -56,-54 - 2550: -56,-53 - 2551: -56,-52 - 2552: -56,-52 - 2553: -56,-51 - 2554: -56,-51 - 2555: -56,-48 - 2556: -56,-48 - 2557: -56,-47 - 2558: -56,-50 - 2561: -41,-29 - 2562: -41,-28 - 2596: 7,-33 - 2614: 27,-23 - 2615: 27,-23 - 2616: 27,-23 - 2617: 27,-22 - 2618: 27,-24 - 2619: 27,-21 - 2620: 27,-20 - 2666: 57,-18 - 2667: 57,-17 - 2671: 52,-24 - 2672: 52,-23 - 2673: 52,-22 - 2679: 41,-17 - 2680: 41,-16 - 2681: 41,-15 - 2682: 41,-12 - 2683: 41,-11 - 2686: 41,-9 - 2687: 41,-8 - 2688: 41,-7 - 2689: 41,-7 - 2690: 41,-6 - 2691: 41,-5 - 2692: 41,-5 - 2693: 41,-4 - 2694: 41,-3 - 2695: 41,-3 - 2696: 41,-1 - 2697: 41,-1 - 2698: 41,-1 - 2699: 41,-2 - 2731: 19,3 - 2732: 19,4 - 2733: 19,4 - 2734: 19,4 - 2735: 19,5 - 2736: 19,5 - 2737: 19,7 - 2738: 19,8 - 2739: 19,8 - 2740: 19,8 + 2262: -26,-21 + 2263: -26,-20 + 2264: -26,-18 + 2265: -26,-19 + 2266: -26,-17 + 2271: -26,-25 + 2272: -26,-24 + 2273: -26,-27 + 2274: -26,-26 + 2275: -26,-28 + 2276: -26,-29 + 2277: -26,-30 + 2278: -26,-31 + 2324: -25,-8 + 2325: -26,-10 + 2326: -26,-11 + 2327: -26,-16 + 2328: -26,-15 + 2329: -26,-15 + 2330: -26,-14 + 2331: -26,-13 + 2345: -27,7 + 2346: -27,8 + 2347: -27,6 + 2348: -27,5 + 2377: -55,5 + 2378: -55,3 + 2379: -55,2 + 2380: -55,1 + 2381: -55,0 + 2382: -55,-1 + 2383: -55,-3 + 2384: -55,-6 + 2385: -55,-6 + 2386: -55,-7 + 2387: -55,-7 + 2388: -55,-8 + 2389: -55,-9 + 2390: -55,-9 + 2391: -55,-11 + 2400: -55,-10 + 2401: -55,-11 + 2402: -55,-12 + 2403: -55,-13 + 2404: -55,-13 + 2405: -55,-15 + 2406: -55,-15 + 2412: -55,-14 + 2417: -55,-16 + 2418: -55,-17 + 2419: -55,-18 + 2420: -55,-20 + 2421: -55,-21 + 2434: -52,-28 + 2435: -52,-29 + 2436: -52,-30 + 2437: -52,-30 + 2438: -52,-31 + 2439: -52,-32 + 2453: -49,-35 + 2454: -49,-36 + 2461: -49,-38 + 2462: -49,-38 + 2463: -49,-39 + 2464: -49,-40 + 2465: -49,-40 + 2466: -49,-41 + 2467: -49,-42 + 2468: -49,-43 + 2469: -49,-43 + 2470: -49,-44 + 2519: -42,-50 + 2520: -42,-50 + 2521: -42,-51 + 2522: -42,-51 + 2523: -42,-52 + 2524: -42,-52 + 2525: -42,-53 + 2526: -42,-54 + 2546: -56,-54 + 2547: -56,-53 + 2548: -56,-52 + 2549: -56,-52 + 2550: -56,-51 + 2551: -56,-51 + 2552: -56,-48 + 2553: -56,-48 + 2554: -56,-47 + 2555: -56,-50 + 2558: -41,-29 + 2559: -41,-28 + 2593: 7,-33 + 2611: 27,-23 + 2612: 27,-23 + 2613: 27,-23 + 2614: 27,-22 + 2615: 27,-24 + 2616: 27,-21 + 2617: 27,-20 + 2663: 57,-18 + 2664: 57,-17 + 2668: 52,-24 + 2669: 52,-23 + 2670: 52,-22 + 2676: 41,-17 + 2677: 41,-16 + 2678: 41,-15 + 2679: 41,-12 + 2680: 41,-11 + 2683: 41,-9 + 2684: 41,-8 + 2685: 41,-7 + 2686: 41,-7 + 2687: 41,-6 + 2688: 41,-5 + 2689: 41,-5 + 2690: 41,-4 + 2691: 41,-3 + 2692: 41,-3 + 2693: 41,-1 + 2694: 41,-1 + 2695: 41,-1 + 2696: 41,-2 + 2728: 19,3 + 2729: 19,4 + 2730: 19,4 + 2731: 19,4 + 2732: 19,5 + 2733: 19,5 + 2734: 19,7 + 2735: 19,8 + 2736: 19,8 + 2737: 19,8 + 2738: 19,10 + 2739: 19,10 + 2740: 19,11 2741: 19,10 2742: 19,10 - 2743: 19,11 + 2743: 19,12 2744: 19,10 - 2745: 19,10 - 2746: 19,12 - 2747: 19,10 - 2748: 19,9 - 2749: 19,9 - 2759: 19,13 - 2760: 19,14 - 2761: 19,14 - 2762: 19,14 - 2763: 19,15 - 2764: 19,15 - 2765: 19,15 - 2766: 19,16 - 2767: 19,16 - 2768: 19,18 - 2769: 19,18 - 2829: -27,20 - 2830: -27,18 + 2745: 19,9 + 2746: 19,9 + 2756: 19,13 + 2757: 19,14 + 2758: 19,14 + 2759: 19,14 + 2760: 19,15 + 2761: 19,15 + 2762: 19,15 + 2763: 19,16 + 2764: 19,16 + 2765: 19,18 + 2766: 19,18 + 2826: -27,20 + 2827: -27,18 - node: color: '#52B4E996' id: MonoOverlay decals: - 6307: 44,8 + 6300: 44,8 - node: color: '#334E6DC8' id: QuarterTileOverlayGreyscale @@ -7498,7 +7506,7 @@ entities: color: '#52B4E996' id: QuarterTileOverlayGreyscale decals: - 6309: 43,9 + 6302: 43,9 - node: color: '#9FED5896' id: QuarterTileOverlayGreyscale @@ -7559,17 +7567,17 @@ entities: 1699: 27,4 1700: 23,4 1701: 22,4 - 1920: 57,-17 - 1921: 58,-17 - 1922: 59,-17 - 1923: 60,-17 - 1924: 61,-17 - 2180: -1,-33 - 6288: 38,4 - 6289: 40,4 - 6290: 41,4 - 6291: 42,4 - 6292: 43,4 + 1919: 57,-17 + 1920: 58,-17 + 1921: 59,-17 + 1922: 60,-17 + 1923: 61,-17 + 2177: -1,-33 + 6281: 38,4 + 6282: 40,4 + 6283: 41,4 + 6284: 42,4 + 6285: 43,4 - node: color: '#DE3A3A96' id: QuarterTileOverlayGreyscale @@ -7611,34 +7619,34 @@ entities: 1712: 34,-21 1713: 36,-21 1714: 35,-21 - 1931: 51,-21 - 2028: 29,-21 - 2029: 29,-22 - 2030: 29,-23 - 2031: 29,-24 - 2032: 29,-25 - 2033: 29,-26 - 2034: 29,-27 - 2035: 28,-27 - 2036: 27,-27 - 2037: 26,-27 - 2038: 25,-27 - 2039: 24,-27 - 2040: 23,-27 - 2041: 21,-27 - 2042: 21,-29 - 2043: 21,-30 - 2044: 21,-31 - 2045: 21,-32 - 2046: 21,-33 - 2047: 21,-34 - 2048: 20,-34 - 2049: 19,-34 + 1929: 51,-21 + 2025: 29,-21 + 2026: 29,-22 + 2027: 29,-23 + 2028: 29,-24 + 2029: 29,-25 + 2030: 29,-26 + 2031: 29,-27 + 2032: 28,-27 + 2033: 27,-27 + 2034: 26,-27 + 2035: 25,-27 + 2036: 24,-27 + 2037: 23,-27 + 2038: 21,-27 + 2039: 21,-29 + 2040: 21,-30 + 2041: 21,-31 + 2042: 21,-32 + 2043: 21,-33 + 2044: 21,-34 + 2045: 20,-34 + 2046: 19,-34 - node: color: '#52B4E996' id: QuarterTileOverlayGreyscale180 decals: - 6310: 45,7 + 6303: 45,7 - node: color: '#A4610696' id: QuarterTileOverlayGreyscale180 @@ -7663,28 +7671,28 @@ entities: 1707: 21,18 1708: 21,19 1709: 21,20 - 1925: 61,-17 - 1926: 61,-18 - 1927: 61,-19 - 1928: 61,-20 - 2176: -1,-33 - 2177: 0,-33 - 2178: 1,-33 - 2179: 2,-33 - 6293: 43,4 - 6294: 43,3 - 6295: 43,2 - 6296: 43,1 - 6297: 43,-1 - 6298: 43,-2 - 6299: 43,-3 - 6300: 43,-4 - 6301: 43,-5 - 6302: 43,-6 - 6303: 43,-7 - 6304: 43,-8 - 6305: 43,-9 - 6306: 43,-10 + 1924: 61,-17 + 1925: 61,-18 + 1926: 61,-19 + 1927: 61,-20 + 2173: -1,-33 + 2174: 0,-33 + 2175: 1,-33 + 2176: 2,-33 + 6286: 43,4 + 6287: 43,3 + 6288: 43,2 + 6289: 43,1 + 6290: 43,-1 + 6291: 43,-2 + 6292: 43,-3 + 6293: 43,-4 + 6294: 43,-5 + 6295: 43,-6 + 6296: 43,-7 + 6297: 43,-8 + 6298: 43,-9 + 6299: 43,-10 - node: color: '#DE3A3A96' id: QuarterTileOverlayGreyscale180 @@ -7707,7 +7715,7 @@ entities: 1599: 19,-27 1600: 19,-29 1601: 19,-30 - 6311: 43,7 + 6304: 43,7 - node: color: '#D4D4D428' id: QuarterTileOverlayGreyscale270 @@ -7730,17 +7738,17 @@ entities: 1717: 36,-21 1718: 37,-21 1719: 50,-21 - 1932: 51,-21 - 2050: 19,-34 - 2051: 20,-34 - 2052: 21,-34 - 2059: 23,-27 - 2060: 24,-27 - 2061: 25,-27 - 2062: 26,-27 - 2063: 27,-27 - 2064: 28,-27 - 2065: 29,-27 + 1930: 51,-21 + 2047: 19,-34 + 2048: 20,-34 + 2049: 21,-34 + 2056: 23,-27 + 2057: 24,-27 + 2058: 25,-27 + 2059: 26,-27 + 2060: 27,-27 + 2061: 28,-27 + 2062: 29,-27 - node: color: '#DE3A3A96' id: QuarterTileOverlayGreyscale270 @@ -7753,10 +7761,10 @@ entities: 1567: 5,-29 1568: 5,-28 1569: 5,-27 - 2171: -1,-33 - 2172: 1,-33 - 2173: 0,-33 - 2174: 2,-33 + 2168: -1,-33 + 2169: 1,-33 + 2170: 0,-33 + 2171: 2,-33 - node: color: '#334E6DC8' id: QuarterTileOverlayGreyscale90 @@ -7771,25 +7779,25 @@ entities: 1594: 21,-25 1595: 22,-25 1596: 23,-25 - 6270: 40,4 - 6271: 38,4 - 6272: 41,4 - 6273: 42,4 - 6274: 43,4 - 6275: 43,3 - 6276: 43,2 - 6277: 43,1 - 6278: 43,-1 - 6279: 43,-2 - 6280: 43,-3 - 6281: 43,-4 - 6282: 43,-5 - 6283: 43,-6 - 6284: 43,-7 - 6285: 43,-10 - 6286: 43,-9 - 6287: 43,-8 - 6308: 45,9 + 6263: 40,4 + 6264: 38,4 + 6265: 41,4 + 6266: 42,4 + 6267: 43,4 + 6268: 43,3 + 6269: 43,2 + 6270: 43,1 + 6271: 43,-1 + 6272: 43,-2 + 6273: 43,-3 + 6274: 43,-4 + 6275: 43,-5 + 6276: 43,-6 + 6277: 43,-7 + 6278: 43,-10 + 6279: 43,-9 + 6280: 43,-8 + 6301: 45,9 - node: color: '#79150096' id: QuarterTileOverlayGreyscale90 @@ -7837,7 +7845,7 @@ entities: 1916: 61,-18 1917: 61,-19 1918: 61,-20 - 1930: 57,-17 + 1928: 57,-17 - node: color: '#D4D4D428' id: QuarterTileOverlayGreyscale90 @@ -7860,18 +7868,18 @@ entities: 1648: -48,-20 1649: -52,-20 1650: -62,-22 - 2053: 21,-34 - 2054: 21,-33 - 2055: 21,-32 - 2056: 21,-31 - 2057: 21,-30 - 2058: 21,-29 - 2066: 29,-27 - 2067: 29,-26 - 2068: 29,-25 - 2069: 29,-24 - 2070: 29,-23 - 2071: 29,-22 + 2050: 21,-34 + 2051: 21,-33 + 2052: 21,-32 + 2053: 21,-31 + 2054: 21,-30 + 2055: 21,-29 + 2063: 29,-27 + 2064: 29,-26 + 2065: 29,-25 + 2066: 29,-24 + 2067: 29,-23 + 2068: 29,-22 - node: color: '#DE3A3A96' id: QuarterTileOverlayGreyscale90 @@ -7910,7 +7918,7 @@ entities: 1564: 1,-30 1565: 2,-30 1566: 3,-30 - 2175: 2,-33 + 2172: 2,-33 - node: color: '#FFFFFFFF' id: Rock01 @@ -7953,12 +7961,12 @@ entities: color: '#FFFFFFFF' id: Rust decals: - 2963: -5,-39 - 2964: -7,-40 - 2965: -6,-41 - 2966: -7,-41 - 2967: -8,-39 - 2968: -8,-42 + 2960: -5,-39 + 2961: -7,-40 + 2962: -6,-41 + 2963: -7,-41 + 2964: -8,-39 + 2965: -8,-42 - node: color: '#FFFFFFFF' id: SpaceStationSign1 @@ -8043,19 +8051,19 @@ entities: color: '#FFFFFFB1' id: VentSmall decals: - 2897: -36,22 + 2894: -36,22 - node: color: '#FFFFFFFF' id: WarnCornerNE decals: 1184: 6,32 - 6624: 91,-13 + 6617: 91,-13 - node: color: '#FFFFFFFF' id: WarnCornerNW decals: 1183: 3,32 - 6625: 88,-13 + 6618: 88,-13 - node: color: '#EFB34196' id: WarnCornerSE @@ -8065,7 +8073,7 @@ entities: color: '#FFFFFFFF' id: WarnCornerSE decals: - 6623: 91,-16 + 6616: 91,-16 - node: color: '#EFB34196' id: WarnCornerSW @@ -8075,18 +8083,30 @@ entities: color: '#FFFFFFFF' id: WarnCornerSW decals: - 6622: 88,-16 + 6615: 88,-16 + - node: + color: '#52B4E996' + id: WarnCornerSmallGreyscaleSE + decals: + 6778: 49,-11 + 6779: 52,-11 + - node: + color: '#52B4E996' + id: WarnCornerSmallGreyscaleSW + decals: + 6776: 49,-11 + 6777: 52,-11 - node: color: '#EFB34118' id: WarnCornerSmallNE decals: - 6702: 12,-30 - 6703: 12,-30 + 6695: 12,-30 + 6696: 12,-30 - node: color: '#EFB3416C' id: WarnCornerSmallNE decals: - 6701: 12,-30 + 6694: 12,-30 - node: color: '#EFB34196' id: WarnCornerSmallNE @@ -8097,27 +8117,27 @@ entities: color: '#EFB341A1' id: WarnCornerSmallNE decals: - 6158: 14,39 + 6151: 14,39 - node: color: '#FFFFFFFF' id: WarnCornerSmallNE decals: 1317: 25,23 1318: 29,23 - 2080: 11,-47 - 6358: 51,13 - 6446: 51,-11 + 2077: 11,-47 + 6351: 51,13 + 6439: 51,-11 - node: color: '#EFB34118' id: WarnCornerSmallNW decals: - 6704: 16,-30 - 6705: 16,-30 + 6697: 16,-30 + 6698: 16,-30 - node: color: '#EFB3416C' id: WarnCornerSmallNW decals: - 6700: 16,-30 + 6693: 16,-30 - node: color: '#EFB34196' id: WarnCornerSmallNW @@ -8129,7 +8149,7 @@ entities: color: '#EFB341A1' id: WarnCornerSmallNW decals: - 6159: 16,39 + 6152: 16,39 - node: color: '#FFFFFFFF' id: WarnCornerSmallNW @@ -8137,7 +8157,7 @@ entities: 1080: 39,-1 1319: 25,23 1320: 29,23 - 2081: 14,-47 + 2078: 14,-47 - node: color: '#EFB34196' id: WarnCornerSmallSE @@ -8151,13 +8171,13 @@ entities: color: '#EFB341A1' id: WarnCornerSmallSE decals: - 6157: 14,42 + 6150: 14,42 - node: color: '#FFFFFFFF' id: WarnCornerSmallSE decals: 1439: 55,-33 - 6357: 51,15 + 6350: 51,15 - node: color: '#EFB34196' id: WarnCornerSmallSW @@ -8169,7 +8189,7 @@ entities: color: '#EFB341A1' id: WarnCornerSmallSW decals: - 6156: 16,42 + 6149: 16,42 - node: color: '#EFB34196' id: WarnLineE @@ -8197,17 +8217,17 @@ entities: 279: 29,-13 280: 29,-12 281: 29,-11 - 6254: 47,14 - 6255: 47,14 - 6256: 47,15 - 6257: 47,15 + 6247: 47,14 + 6248: 47,14 + 6249: 47,15 + 6250: 47,15 - node: cleanable: True color: '#EFB341A1' id: WarnLineE decals: - 6154: 14,41 - 6155: 14,40 + 6147: 14,41 + 6148: 14,40 - node: color: '#FFFFFFFF' id: WarnLineE @@ -8223,40 +8243,40 @@ entities: 1857: 73,-16 1858: 73,-18 1859: 73,-19 - 6220: -45,23 - 6355: 51,14 - 6445: 51,-10 - 6620: 91,-15 - 6621: 91,-14 - 6713: 56,-29 - 6714: 56,-28 - 6715: 56,-27 - 6753: -33,-11 - 6754: -33,-10 + 6213: -45,23 + 6348: 51,14 + 6438: 51,-10 + 6613: 91,-15 + 6614: 91,-14 + 6706: 56,-29 + 6707: 56,-28 + 6708: 56,-27 + 6746: -33,-11 + 6747: -33,-10 - node: color: '#52B4E996' id: WarnLineGreyscaleE decals: - 6447: 52,-12 - 6448: 52,-13 - 6449: 52,-14 - 6450: 52,-15 - 6451: 49,-12 - 6452: 49,-13 - 6453: 49,-14 - 6454: 49,-15 + 6440: 52,-12 + 6441: 52,-13 + 6442: 52,-14 + 6443: 52,-15 + 6444: 49,-12 + 6445: 49,-13 + 6446: 49,-14 + 6447: 49,-15 - node: color: '#52B4E996' id: WarnLineGreyscaleW decals: - 6455: 49,-15 - 6456: 49,-14 - 6457: 49,-13 - 6458: 49,-12 - 6459: 52,-12 - 6460: 52,-13 - 6461: 52,-14 - 6462: 52,-15 + 6448: 49,-15 + 6449: 49,-14 + 6450: 49,-13 + 6451: 49,-12 + 6452: 52,-12 + 6453: 52,-13 + 6454: 52,-14 + 6455: 52,-15 - node: color: '#EFB34196' id: WarnLineN @@ -8275,14 +8295,14 @@ entities: 272: 27,-14 273: 28,-14 1474: 46,14 - 6244: 46,14 - 6245: 46,14 + 6237: 46,14 + 6238: 46,14 - node: cleanable: True color: '#EFB341A1' id: WarnLineN decals: - 6153: 15,42 + 6146: 15,42 - node: color: '#FFFFFFFF' id: WarnLineN @@ -8293,24 +8313,24 @@ entities: 1900: 68,-30 1901: 70,-30 1902: 71,-30 - 1975: 23,-38 - 1976: 24,-38 - 1977: 25,-38 - 2072: 11,-48 - 2073: 12,-48 - 2074: 14,-48 - 2075: 13,-48 - 2076: 15,-48 - 2077: 16,-48 - 2135: 0,-38 - 2136: 1,-38 - 2137: 2,-38 - 2141: 7,-45 - 2142: 8,-45 - 2143: 9,-45 - 6217: -44,24 - 6614: 89,-16 - 6615: 90,-16 + 1972: 23,-38 + 1973: 24,-38 + 1974: 25,-38 + 2069: 11,-48 + 2070: 12,-48 + 2071: 14,-48 + 2072: 13,-48 + 2073: 15,-48 + 2074: 16,-48 + 2132: 0,-38 + 2133: 1,-38 + 2134: 2,-38 + 2138: 7,-45 + 2139: 8,-45 + 2140: 9,-45 + 6210: -44,24 + 6607: 89,-16 + 6608: 90,-16 - node: color: '#EFB34196' id: WarnLineS @@ -8338,50 +8358,50 @@ entities: 275: 16,-11 276: 16,-10 277: 16,-9 - 6248: 45,16 - 6249: 45,15 - 6250: 45,14 - 6251: 45,14 - 6252: 45,15 - 6253: 45,16 + 6241: 45,16 + 6242: 45,15 + 6243: 45,14 + 6244: 45,14 + 6245: 45,15 + 6246: 45,16 - node: cleanable: True color: '#EFB341A1' id: WarnLineS decals: - 6151: 16,40 - 6152: 16,41 + 6144: 16,40 + 6145: 16,41 - node: color: '#FFFFFFFF' id: WarnLineS decals: 1773: 61,-24 1786: 61,-23 - 2003: 26,-43 - 2004: 26,-46 - 6218: -43,23 - 6356: 57,14 - 6618: 88,-15 - 6619: 88,-14 - 6751: -33,-10 - 6752: -33,-11 + 2000: 26,-43 + 2001: 26,-46 + 6211: -43,23 + 6349: 57,14 + 6611: 88,-15 + 6612: 88,-14 + 6744: -33,-10 + 6745: -33,-11 - node: color: '#EFB34118' id: WarnLineW decals: - 6706: 13,-30 - 6707: 13,-30 - 6708: 14,-30 - 6709: 14,-30 - 6710: 15,-30 - 6711: 15,-30 + 6699: 13,-30 + 6700: 13,-30 + 6701: 14,-30 + 6702: 14,-30 + 6703: 15,-30 + 6704: 15,-30 - node: color: '#EFB3416C' id: WarnLineW decals: - 6697: 13,-30 - 6698: 14,-30 - 6699: 15,-30 + 6690: 13,-30 + 6691: 14,-30 + 6692: 15,-30 - node: color: '#EFB34196' id: WarnLineW @@ -8399,7 +8419,7 @@ entities: color: '#EFB341A1' id: WarnLineW decals: - 6150: 15,39 + 6143: 15,39 - node: color: '#FFFFFFFF' id: WarnLineW @@ -8422,30 +8442,30 @@ entities: 1896: 70,-29 1897: 69,-29 1898: 71,-29 - 1972: 23,-37 - 1973: 25,-37 - 1974: 24,-37 - 2023: 28,-38 - 2024: 29,-38 - 2078: 12,-47 - 2079: 13,-47 - 2164: 9,-39 - 2165: 10,-39 - 2166: 8,-39 - 2167: 11,-39 - 2181: -5,-35 - 2195: -6,-35 - 2196: -4,-35 - 6219: -44,22 - 6443: 52,-11 - 6444: 53,-11 - 6616: 89,-13 - 6617: 90,-13 + 1969: 23,-37 + 1970: 25,-37 + 1971: 24,-37 + 2020: 28,-38 + 2021: 29,-38 + 2075: 12,-47 + 2076: 13,-47 + 2161: 9,-39 + 2162: 10,-39 + 2163: 8,-39 + 2164: 11,-39 + 2178: -5,-35 + 2192: -6,-35 + 2193: -4,-35 + 6212: -44,22 + 6436: 52,-11 + 6437: 53,-11 + 6609: 89,-13 + 6610: 90,-13 - node: color: '#FFFFFFFF' id: WoodTrimThinBox decals: - 6216: -44,23 + 6209: -44,23 - node: color: '#FFFFFFFF' id: WoodTrimThinCornerNe @@ -8464,7 +8484,7 @@ entities: decals: 401: -18,-16 501: -32,5 - 3075: -31,-45 + 3071: -31,-45 - node: color: '#FFFFFFFF' id: WoodTrimThinCornerSw @@ -8580,7 +8600,7 @@ entities: 1875: 69,-23 1876: 69,-22 1877: 69,-21 - 3072: -30,-46 + 3068: -30,-46 - node: color: '#FFFFFFFF' id: WoodTrimThinLineN @@ -8678,15 +8698,15 @@ entities: 1177: -14,31 1178: -13,31 1179: -12,31 - 3070: -30,-45 - 6135: -35,3 - 6214: 36,-24 + 3067: -30,-45 + 6128: -35,3 + 6207: 36,-24 - node: cleanable: True color: '#FFFFFFFF' id: WoodTrimThinLineN decals: - 3027: 80,-25 + 3024: 80,-25 - node: color: '#FFFFFFFF' id: WoodTrimThinLineS @@ -8770,12 +8790,12 @@ entities: 1724: 58,19 1725: 59,19 1726: 60,19 - 3073: -31,-45 - 3076: 65,-52 - 3077: 66,-52 - 3078: 67,-52 - 6213: 36,-24 - 6233: -38,-17 + 3069: -31,-45 + 3072: 65,-52 + 3073: 66,-52 + 3074: 67,-52 + 6206: 36,-24 + 6226: -38,-17 - node: color: '#FFFFFFFF' id: WoodTrimThinLineW @@ -8825,41 +8845,41 @@ entities: 1091: -59,-27 1092: -59,-26 1745: 58,19 - 2270: -27,-16 - 2271: -27,-15 - 2272: -27,-14 - 2273: -27,-13 - 3074: -31,-44 + 2267: -27,-16 + 2268: -27,-15 + 2269: -27,-14 + 2270: -27,-13 + 3070: -31,-44 - node: cleanable: True color: '#FFFFFFFF' id: bushsnowa1 decals: - 6171: 80.134224,-34.739353 + 6164: 80.134224,-34.739353 - node: cleanable: True color: '#FFFFFFFF' id: bushsnowa2 decals: - 6172: 81.98104,-35.791183 + 6165: 81.98104,-35.791183 - node: cleanable: True color: '#FFFFFFFF' id: bushsnowa3 decals: - 6173: 80.43999,-36.158104 + 6166: 80.43999,-36.158104 - node: cleanable: True color: '#FFFFFFFF' id: bushsnowb1 decals: - 6174: 83.2041,-35.583263 + 6167: 83.2041,-35.583263 - node: cleanable: True color: '#FFFFFFFF' id: bushsnowb3 decals: - 6175: 83.020645,-36.060257 + 6168: 83.020645,-36.060257 - node: color: '#FFFFFFFF' id: e @@ -8870,113 +8890,113 @@ entities: color: '#FFFFFFFF' id: grasssnow01 decals: - 6188: 83.460945,-36.10918 - 6189: 80.01192,-34.201206 + 6181: 83.460945,-36.10918 + 6182: 80.01192,-34.201206 - node: cleanable: True color: '#FFFFFFFF' id: grasssnow03 decals: - 6185: 81.7242,-35.840107 + 6178: 81.7242,-35.840107 - node: cleanable: True color: '#FFFFFFFF' id: grasssnow05 decals: - 6190: 81.07172,-34.84943 + 6183: 81.07172,-34.84943 - node: cleanable: True color: '#FFFFFFFF' id: grasssnow06 decals: - 6194: 80.39903,-34.335743 + 6187: 80.39903,-34.335743 - node: cleanable: True color: '#FFFFFFFF' id: grasssnow07 decals: - 6183: 80.04861,-36.219257 + 6176: 80.04861,-36.219257 - node: cleanable: True color: '#FFFFFFFF' id: grasssnow08 decals: - 6184: 80.8436,-35.974644 + 6177: 80.8436,-35.974644 - node: cleanable: True color: '#FFFFFFFF' id: grasssnow09 decals: - 6186: 82.201195,-35.974644 - 6193: 81.98901,-35.155193 + 6179: 82.201195,-35.974644 + 6186: 81.98901,-35.155193 - node: cleanable: True color: '#FFFFFFFF' id: grasssnow10 decals: - 6181: 80.02415,-34.922813 + 6174: 80.02415,-34.922813 - node: cleanable: True color: '#FFFFFFFF' id: grasssnow11 decals: - 6182: 80.42776,-35.546574 - 6187: 83.24079,-35.7178 + 6175: 80.42776,-35.546574 + 6180: 83.24079,-35.7178 - node: cleanable: True color: '#FFFFFFFF' id: grasssnow12 decals: - 6191: 82.99192,-34.910583 + 6184: 82.99192,-34.910583 - node: cleanable: True color: '#FFFFFFFF' id: grasssnow13 decals: - 6192: 82.56385,-34.88612 + 6185: 82.56385,-34.88612 - node: cleanable: True color: '#FFFFFFFF' id: grasssnowa1 decals: - 6178: 82.82495,-35.571033 + 6171: 82.82495,-35.571033 - node: cleanable: True color: '#FFFFFFFF' id: grasssnowa2 decals: - 6197: 83.059845,-34.91084 + 6190: 83.059845,-34.91084 - node: cleanable: True color: '#FFFFFFFF' id: grasssnowa3 decals: - 6176: 79.9263,-35.46096 + 6169: 79.9263,-35.46096 - node: cleanable: True color: '#FFFFFFFF' id: grasssnowb2 decals: - 6177: 81.369514,-35.70557 - 6195: 80.8828,-34.87415 + 6170: 81.369514,-35.70557 + 6188: 80.8828,-34.87415 - node: cleanable: True color: '#FFFFFFFF' id: grasssnowb3 decals: - 6196: 79.87989,-33.993546 + 6189: 79.87989,-33.993546 - node: cleanable: True color: '#FFFFFFFF' id: grasssnowc2 decals: - 6180: 79.79176,-36.060257 + 6173: 79.79176,-36.060257 - node: cleanable: True color: '#FFFFFFFF' id: grasssnowc3 decals: - 6179: 81.10044,-36.13364 + 6172: 81.10044,-36.13364 - node: color: '#FFFFFFFF' id: h @@ -8986,9 +9006,9 @@ entities: color: '#FFFF0066' id: shop decals: - 3064: 50.31763,23.128677 - 3065: 51.239506,23.738052 - 3066: 52.00513,23.034927 + 3061: 50.31763,23.128677 + 3062: 51.239506,23.738052 + 3063: 52.00513,23.034927 - node: color: '#FFFFFFFF' id: w @@ -10420,10 +10440,13 @@ entities: 0: 65520 -7,-12: 0: 65522 + 3: 1 -6,-12: 0: 65520 + 3: 15 -5,-12: 0: 65520 + 3: 15 -12,4: 0: 34952 -11,5: @@ -10611,6 +10634,7 @@ entities: 0: 3 11,6: 0: 22005 + 3: 10 11,7: 0: 21 -16,-18: @@ -10759,6 +10783,10 @@ entities: 0: 64435 12,-12: 0: 19968 + -6,-13: + 3: 61440 + -5,-13: + 3: 61440 uniqueMixes: - volume: 2500 temperature: 293.15 @@ -11116,13 +11144,13 @@ entities: parent: 2 - type: DeviceList devices: + - 18417 + - 18416 + - 18418 + - 8753 - 8749 - 8750 - 8751 - - 8753 - - 18418 - - 18417 - - 18416 - type: AtmosDevice joinedGrid: 2 - uid: 8370 @@ -13604,6 +13632,7 @@ entities: components: - type: MetaData flags: PvsPriority + name: Bathroom airlock - type: Transform pos: 14.5,22.5 parent: 2 @@ -13611,6 +13640,7 @@ entities: components: - type: MetaData flags: PvsPriority + name: Toilet Stall Airlock - type: Transform pos: 16.5,25.5 parent: 2 @@ -13621,6 +13651,7 @@ entities: components: - type: MetaData flags: PvsPriority + name: Toilet Stall Airlock - type: Transform pos: 16.5,23.5 parent: 2 @@ -14172,6 +14203,7 @@ entities: components: - type: MetaData flags: PvsPriority + name: South Solars airlock - type: Transform pos: 0.5,-33.5 parent: 2 @@ -14179,6 +14211,7 @@ entities: components: - type: MetaData flags: PvsPriority + name: South Solars airlock - type: Transform pos: 1.5,-33.5 parent: 2 @@ -14752,7 +14785,7 @@ entities: pos: -16.5,19.5 parent: 2 - type: Door - secondsUntilStateChange: -28399.771 + secondsUntilStateChange: -30193.105 state: Opening - uid: 4196 components: @@ -15136,6 +15169,8 @@ entities: parent: 2 - uid: 5386 components: + - type: MetaData + name: Arcade airlock - type: Transform pos: -47.5,8.5 parent: 2 @@ -15434,6 +15469,7 @@ entities: components: - type: MetaData flags: PvsPriority + name: Bathroom airlock - type: Transform pos: -5.5,41.5 parent: 2 @@ -15441,6 +15477,7 @@ entities: components: - type: MetaData flags: PvsPriority + name: Bathroom airlock - type: Transform rot: 3.141592653589793 rad pos: 2.5,41.5 @@ -16027,6 +16064,7 @@ entities: components: - type: MetaData flags: PvsPriority + name: Morgue airlock - type: Transform rot: 1.5707963267948966 rad pos: 47.5,-10.5 @@ -16171,6 +16209,7 @@ entities: components: - type: MetaData flags: PvsPriority + name: Morgue airlock - type: Transform rot: -1.5707963267948966 rad pos: 51.5,-8.5 @@ -16179,6 +16218,7 @@ entities: components: - type: MetaData flags: PvsPriority + name: Morgue airlock - type: Transform rot: -1.5707963267948966 rad pos: 49.5,-8.5 @@ -16187,6 +16227,7 @@ entities: components: - type: MetaData flags: PvsPriority + name: Cryogenics airlock - type: Transform rot: -1.5707963267948966 rad pos: 54.5,-4.5 @@ -16195,6 +16236,7 @@ entities: components: - type: MetaData flags: PvsPriority + name: Cryogenics airlock - type: Transform rot: -1.5707963267948966 rad pos: 54.5,-3.5 @@ -16221,6 +16263,7 @@ entities: components: - type: MetaData flags: PvsPriority + name: Server room airlock - type: Transform pos: 69.5,-24.5 parent: 2 @@ -16369,6 +16412,7 @@ entities: components: - type: MetaData flags: PvsPriority + name: News room airlock - type: Transform rot: 3.141592653589793 rad pos: -57.5,-27.5 @@ -16379,7 +16423,7 @@ entities: components: - type: MetaData flags: PvsPriority - name: Musician airlock + name: Musician room airlock - type: Transform pos: -37.5,-16.5 parent: 2 @@ -16387,7 +16431,7 @@ entities: components: - type: MetaData flags: PvsPriority - name: Mime airlock + name: Mime room airlock - type: Transform pos: -32.5,-16.5 parent: 2 @@ -16395,7 +16439,7 @@ entities: components: - type: MetaData flags: PvsPriority - name: Mime airlock + name: Mime room airlock - type: Transform pos: -33.5,-16.5 parent: 2 @@ -16403,7 +16447,7 @@ entities: components: - type: MetaData flags: PvsPriority - name: Clown airlock + name: Clown room airlock - type: Transform pos: -28.5,-16.5 parent: 2 @@ -16416,6 +16460,9 @@ entities: - type: Transform pos: 56.5,14.5 parent: 2 + - type: DeviceLinkSink + links: + - 21451 - proto: AirlockVirologyLocked entities: - uid: 2043 @@ -16618,6 +16665,10 @@ entities: rot: 3.141592653589793 rad pos: 44.5,12.5 parent: 2 + - type: DeviceNetwork + deviceLists: + - 8369 + - 17550 - uid: 18428 components: - type: Transform @@ -56847,43 +56898,6 @@ entities: - type: Transform pos: 81.49037,-22.441114 parent: 2 -- proto: ClosetBase - entities: - - uid: 16650 - components: - - type: Transform - pos: 16.5,37.5 - parent: 2 - - type: EntityStorage - air: - volume: 200 - immutable: False - temperature: 293.14673 - moles: - - 1.7459903 - - 6.568249 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - type: ContainerContainer - containers: - entity_storage: !type:Container - showEnts: False - occludes: True - ents: - - 16652 - - 16651 - paper_label: !type:ContainerSlot - showEnts: False - occludes: True - ent: null - proto: ClosetBombFilled entities: - uid: 5086 @@ -57362,6 +57376,43 @@ entities: - type: Transform pos: 51.5,4.5 parent: 2 +- proto: ClosetSteelBase + entities: + - uid: 16650 + components: + - type: Transform + pos: 16.5,37.5 + parent: 2 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.14673 + moles: + - 1.7459903 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 16652 + - 16651 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null - proto: ClosetToolFilled entities: - uid: 876 @@ -58183,10 +58234,17 @@ entities: - type: InsideEntityStorage - proto: ClothingNeckAromanticPin entities: - - uid: 21369 + - uid: 21450 components: - type: Transform - pos: -19.497414,17.596235 + pos: -19.327265,17.651068 + parent: 2 +- proto: ClothingNeckAsexualPin + entities: + - uid: 5233 + components: + - type: Transform + pos: -19.65906,17.512405 parent: 2 - proto: ClothingNeckBling entities: @@ -58230,11 +58288,6 @@ entities: - type: Transform pos: -53.317593,-60.37925 parent: 2 - - uid: 21370 - components: - - type: Transform - pos: -19.622414,17.48686 - parent: 2 - proto: ClothingNeckScarfStripedBlue entities: - uid: 7065 @@ -59896,6 +59949,13 @@ entities: - type: Transform pos: -31.385849,-8.650845 parent: 2 +- proto: CryogenicSleepUnit + entities: + - uid: 6029 + components: + - type: Transform + pos: 3.5,48.5 + parent: 2 - proto: CryogenicSleepUnitSpawner entities: - uid: 5 @@ -59957,6 +60017,13 @@ entities: - type: Transform pos: -17.367237,-13.48901 parent: 2 +- proto: DawInstrumentMachineCircuitboard + entities: + - uid: 21449 + components: + - type: Transform + pos: -39.486645,-19.226738 + parent: 2 - proto: DefaultStationBeaconAICore entities: - uid: 20820 @@ -60027,6 +60094,11 @@ entities: - type: Transform pos: 40.5,-34.5 parent: 2 + - uid: 21456 + components: + - type: Transform + pos: 26.5,-30.5 + parent: 2 - proto: DefaultStationBeaconBrig entities: - uid: 20831 @@ -60097,6 +60169,11 @@ entities: - type: Transform pos: -24.5,27.5 parent: 2 + - uid: 21458 + components: + - type: Transform + pos: -18.5,27.5 + parent: 2 - proto: DefaultStationBeaconDisposals entities: - uid: 20842 @@ -60104,6 +60181,21 @@ entities: - type: Transform pos: -12.5,-38.5 parent: 2 + - uid: 21452 + components: + - type: Transform + pos: 66.5,-52.5 + parent: 2 + - uid: 21453 + components: + - type: Transform + pos: 89.5,-18.5 + parent: 2 + - uid: 21454 + components: + - type: Transform + pos: 14.5,24.5 + parent: 2 - proto: DefaultStationBeaconDorms entities: - uid: 20840 @@ -60160,6 +60252,11 @@ entities: - type: Transform pos: -15.5,-26.5 parent: 2 + - uid: 21457 + components: + - type: Transform + pos: -33.5,-28.5 + parent: 2 - proto: DefaultStationBeaconKitchen entities: - uid: 20848 @@ -60279,6 +60376,11 @@ entities: - type: Transform pos: -33.5,0.5 parent: 2 + - uid: 21455 + components: + - type: Transform + pos: -47.5,10.5 + parent: 2 - proto: DefaultStationBeaconSingularity entities: - uid: 17163 @@ -60326,6 +60428,11 @@ entities: - type: Transform pos: 28.5,-43.5 parent: 2 + - uid: 21370 + components: + - type: Transform + pos: 14.5,-46.5 + parent: 2 - proto: DefaultStationBeaconTheater entities: - uid: 20874 @@ -65494,6 +65601,18 @@ entities: - type: Transform pos: 51.5,-38.5 parent: 2 + - uid: 4732 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,29.5 + parent: 2 + - uid: 5991 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 60.5,2.5 + parent: 2 - uid: 17356 components: - type: Transform @@ -66169,6 +66288,18 @@ entities: rot: 3.141592653589793 rad pos: 55.5,-23.5 parent: 2 + - uid: 21369 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,36.5 + parent: 2 + - uid: 21372 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-4.5 + parent: 2 - proto: EmergencyRollerBed entities: - uid: 985 @@ -66780,11 +66911,11 @@ entities: parent: 2 - type: DeviceList devices: + - 18418 + - 8753 - 8749 - 8750 - 8751 - - 8753 - - 18418 - type: AtmosDevice joinedGrid: 2 - uid: 17551 @@ -69217,12 +69348,20 @@ entities: - type: Transform pos: 48.5,13.5 parent: 2 + - type: DeviceNetwork + deviceLists: + - 8369 + - 17550 - uid: 8753 components: - type: Transform rot: 3.141592653589793 rad pos: 42.5,14.5 parent: 2 + - type: DeviceNetwork + deviceLists: + - 8369 + - 17550 - uid: 8754 components: - type: Transform @@ -69785,12 +69924,6 @@ entities: - type: Transform pos: 70.5,-26.5 parent: 2 - - uid: 8752 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 46.5,13.5 - parent: 2 - uid: 8756 components: - type: Transform @@ -71174,11 +71307,19 @@ entities: - type: Transform pos: 42.5,10.5 parent: 2 + - type: DeviceNetwork + deviceLists: + - 8369 + - 17550 - uid: 8750 components: - type: Transform pos: 46.5,10.5 parent: 2 + - type: DeviceNetwork + deviceLists: + - 8369 + - 17550 - uid: 8755 components: - type: Transform @@ -90285,6 +90426,9 @@ entities: - type: Transform pos: 43.5,12.5 parent: 2 + - type: DeviceNetwork + deviceLists: + - 8369 - type: AtmosDevice joinedGrid: 2 - type: AtmosPipeColor @@ -91656,6 +91800,9 @@ entities: rot: 3.141592653589793 rad pos: 45.5,12.5 parent: 2 + - type: DeviceNetwork + deviceLists: + - 8369 - type: AtmosDevice joinedGrid: 2 - type: AtmosPipeColor @@ -101378,6 +101525,14 @@ entities: - type: Transform pos: 14.5,32.5 parent: 2 +- proto: OreBox + entities: + - uid: 21459 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-0.5 + parent: 21128 - proto: OreProcessor entities: - uid: 5541 @@ -101633,6 +101788,9 @@ entities: parent: 2 - uid: 5454 components: + - type: MetaData + desc: I pray to god you read this at least once. + name: Singularity notes - type: Transform pos: 1.74702,-14.689409 parent: 2 @@ -101716,6 +101874,8 @@ entities: parent: 2 - uid: 21421 components: + - type: MetaData + name: Central substation note - type: Transform pos: -2.5038486,15.512904 parent: 2 @@ -102096,13 +102256,6 @@ entities: - type: Transform pos: 36.49126,20.946766 parent: 2 -- proto: PillCanisterTricordrazine - entities: - - uid: 21372 - components: - - type: Transform - pos: 45.033794,13.53962 - parent: 2 - proto: PlaqueAtmos entities: - uid: 1548 @@ -102927,11 +103080,6 @@ entities: - type: Transform pos: -14.5,34.5 parent: 2 - - uid: 5233 - components: - - type: Transform - pos: 3.5,48.5 - parent: 2 - uid: 5566 components: - type: Transform @@ -104181,14 +104329,6 @@ entities: - type: Transform pos: 11.5,21.5 parent: 2 - - uid: 4732 - components: - - type: MetaData - flags: PvsPriority - - type: Transform - rot: -1.5707963267948966 rad - pos: -15.5,13.5 - parent: 2 - uid: 4733 components: - type: MetaData @@ -105185,6 +105325,12 @@ entities: - type: Transform pos: -32.5,-8.5 parent: 2 + - uid: 8752 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,13.5 + parent: 2 - uid: 10543 components: - type: Transform @@ -113180,6 +113326,11 @@ entities: - 16704 - proto: ShuttleConsoleCircuitboard entities: + - uid: 6028 + components: + - type: Transform + pos: -32.418903,38.479107 + parent: 2 - uid: 21318 components: - type: Transform @@ -113339,6 +113490,8 @@ entities: entities: - uid: 2100 components: + - type: MetaData + name: shutters button - type: Transform rot: -1.5707963267948966 rad pos: 48.5,12.5 @@ -113419,6 +113572,8 @@ entities: - Pressed: Toggle - uid: 6961 components: + - type: MetaData + name: containment button - type: Transform rot: 1.5707963267948966 rad pos: 56.5,16.5 @@ -113743,6 +113898,8 @@ entities: - Pressed: Toggle - uid: 17517 components: + - type: MetaData + name: shutters button - type: Transform pos: 46.5,-5.5 parent: 2 @@ -113754,6 +113911,8 @@ entities: - Pressed: Toggle - uid: 17518 components: + - type: MetaData + name: shutters button - type: Transform pos: 46.5,-2.5 parent: 2 @@ -113765,6 +113924,8 @@ entities: - Pressed: Toggle - uid: 17519 components: + - type: MetaData + name: shutters button - type: Transform pos: 46.5,0.5 parent: 2 @@ -113871,6 +114032,20 @@ entities: - Pressed: Toggle 21192: - Pressed: Toggle + - uid: 21451 + components: + - type: MetaData + name: lockdown button + - type: Transform + rot: 1.5707963267948966 rad + pos: 56.47196,16.864159 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 6727: + - Pressed: DoorBolt + - Pressed: Close + - Pressed: AutoClose - proto: SignAnomaly entities: - uid: 8366 @@ -147161,11 +147336,6 @@ entities: parent: 2 - proto: WindoorSecureChemistryLocked entities: - - uid: 6029 - components: - - type: Transform - pos: 46.5,14.5 - parent: 2 - uid: 6036 components: - type: Transform @@ -147856,16 +148026,6 @@ entities: rot: 3.141592653589793 rad pos: 44.5,3.5 parent: 2 - - uid: 5991 - components: - - type: Transform - pos: 47.5,14.5 - parent: 2 - - uid: 6028 - components: - - type: Transform - pos: 45.5,14.5 - parent: 2 - uid: 6699 components: - type: Transform diff --git a/Resources/Prototypes/Backmen/Adminbuse/mechi_silicon.yml b/Resources/Prototypes/Backmen/Adminbuse/mechi_silicon.yml index 50395e6576c..27a54653a6f 100644 --- a/Resources/Prototypes/Backmen/Adminbuse/mechi_silicon.yml +++ b/Resources/Prototypes/Backmen/Adminbuse/mechi_silicon.yml @@ -27,7 +27,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:ExplodeBehavior - !type:SpawnEntitiesBehavior spawn: @@ -73,7 +73,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:ExplodeBehavior - !type:SpawnEntitiesBehavior spawn: @@ -162,7 +162,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:ExplodeBehavior - !type:SpawnEntitiesBehavior spawn: @@ -198,7 +198,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:ExplodeBehavior - !type:SpawnEntitiesBehavior spawn: @@ -257,7 +257,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:ExplodeBehavior - !type:SpawnEntitiesBehavior spawn: @@ -318,7 +318,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:ExplodeBehavior - !type:SpawnEntitiesBehavior spawn: @@ -396,7 +396,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:ExplodeBehavior - !type:SpawnEntitiesBehavior spawn: @@ -472,7 +472,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:ExplodeBehavior - !type:SpawnEntitiesBehavior spawn: @@ -534,7 +534,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:ExplodeBehavior - !type:SpawnEntitiesBehavior spawn: diff --git a/Resources/Prototypes/Backmen/Entities/Mobs/NPC/robots.yml b/Resources/Prototypes/Backmen/Entities/Mobs/NPC/robots.yml index 4f87e66bc40..f2a41fd9a6e 100644 --- a/Resources/Prototypes/Backmen/Entities/Mobs/NPC/robots.yml +++ b/Resources/Prototypes/Backmen/Entities/Mobs/NPC/robots.yml @@ -138,7 +138,7 @@ acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - type: Fixtures fixtures: fix1: @@ -224,7 +224,7 @@ acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - type: Fixtures fixtures: fix1: @@ -319,7 +319,7 @@ acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - type: Fixtures fixtures: fix1: diff --git a/Resources/Prototypes/Backmen/Entities/Structures/Doors/Airlocks/Glass/double_glass_airlock.yml b/Resources/Prototypes/Backmen/Entities/Structures/Doors/Airlocks/Glass/double_glass_airlock.yml index f5c66a0ca5f..2021a85866a 100644 --- a/Resources/Prototypes/Backmen/Entities/Structures/Doors/Airlocks/Glass/double_glass_airlock.yml +++ b/Resources/Prototypes/Backmen/Entities/Structures/Doors/Airlocks/Glass/double_glass_airlock.yml @@ -7,8 +7,7 @@ - type: MeleeSound soundGroups: Brute: - path: - "/Audio/Effects/glass_hit.ogg" + collection: GlassSmack - type: Door occludes: false - type: Occluder @@ -46,4 +45,4 @@ - type: Tag tags: - GlassAirlock - # This tag is used to nagivate the Airlock construction graph. It's needed because the construction graph is shared between Airlock, AirlockGlass, and HighSecDoor \ No newline at end of file + # This tag is used to nagivate the Airlock construction graph. It's needed because the construction graph is shared between Airlock, AirlockGlass, and HighSecDoor diff --git a/Resources/Prototypes/Backmen/Entities/Structures/Furniture/Tables/tables.yml b/Resources/Prototypes/Backmen/Entities/Structures/Furniture/Tables/tables.yml index e37ca12b410..56f933713c5 100644 --- a/Resources/Prototypes/Backmen/Entities/Structures/Furniture/Tables/tables.yml +++ b/Resources/Prototypes/Backmen/Entities/Structures/Furniture/Tables/tables.yml @@ -24,7 +24,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: GlassBreak - !type:SpawnEntitiesBehavior spawn: MaterialWoodPlank: diff --git a/Resources/Prototypes/Backmen/Entities/Structures/Machines/laundry.yml b/Resources/Prototypes/Backmen/Entities/Structures/Machines/laundry.yml index 3a4995f2e71..dd4097260ad 100644 --- a/Resources/Prototypes/Backmen/Entities/Structures/Machines/laundry.yml +++ b/Resources/Prototypes/Backmen/Entities/Structures/Machines/laundry.yml @@ -105,7 +105,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: SheetSteel1: @@ -170,7 +170,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: SheetSteel1: diff --git a/Resources/Prototypes/Backmen/Entities/Structures/Walls/walls.yml b/Resources/Prototypes/Backmen/Entities/Structures/Walls/walls.yml index 5c8ff8562d4..b3555bd7c8d 100644 --- a/Resources/Prototypes/Backmen/Entities/Structures/Walls/walls.yml +++ b/Resources/Prototypes/Backmen/Entities/Structures/Walls/walls.yml @@ -25,7 +25,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: GlassBreak - !type:DoActsBehavior acts: ["Destruction"] - type: IconSmooth @@ -69,7 +69,7 @@ thresholds: - trigger: !type:DamageTrigger - damage: 300 + damage: 300 behaviors: - !type:DoActsBehavior acts: ["Destruction"] @@ -79,13 +79,13 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:ChangeConstructionNodeBehavior node: girder - !type:DoActsBehavior acts: ["Destruction"] destroySound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - type: IconSmooth key: walls - base: paperwall \ No newline at end of file + base: paperwall diff --git a/Resources/Prototypes/Backmen/Entities/Weapons/Melee/blunt.yml b/Resources/Prototypes/Backmen/Entities/Weapons/Melee/blunt.yml index fdb4342a431..4aae5e0e436 100644 --- a/Resources/Prototypes/Backmen/Entities/Weapons/Melee/blunt.yml +++ b/Resources/Prototypes/Backmen/Entities/Weapons/Melee/blunt.yml @@ -15,10 +15,10 @@ types: Blunt: 4 soundHit: - path: /Audio/Effects/woodhit.ogg + collection: GlassBreak - type: StaminaDamageOnHit damage: 10 - type: Item size: Huge sprite: Backmen/Objects/Weapons/Melee/shinai.rsi - - type: DisarmMalus \ No newline at end of file + - type: DisarmMalus diff --git a/Resources/Prototypes/Backmen/Recipes/Construction/furniture.yml b/Resources/Prototypes/Backmen/Recipes/Construction/furniture.yml index 2bcfe82fe32..095d3d9cbb8 100644 --- a/Resources/Prototypes/Backmen/Recipes/Construction/furniture.yml +++ b/Resources/Prototypes/Backmen/Recipes/Construction/furniture.yml @@ -1,138 +1,138 @@ -- type: construction - name: nanotrasen altar - id: AltarNanotrasen - graph: Altar - startNode: start - targetNode: nanotrasen - category: construction-category-furniture - description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. - icon: - sprite: Structures/Furniture/Altars/Gods/nanotrasen.rsi - state: nanotrasen - objectType: Structure - placementMode: SnapgridCenter - canBuildInImpassable: false - conditions: - - !type:TileNotBlocked - -- type: construction - name: chaos altar - id: AltarChaos - graph: Altar - startNode: start - targetNode: chaos - category: construction-category-furniture - description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. - icon: - sprite: Structures/Furniture/Altars/Gods/nanotrasen.rsi - state: chaos - objectType: Structure - placementMode: SnapgridCenter - canBuildInImpassable: false - conditions: - - !type:TileNotBlocked - -- type: construction - name: druid altar - id: AltarDruid - graph: Altar - startNode: start - targetNode: druid - category: construction-category-furniture - description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. - icon: - sprite: Structures/Furniture/Altars/Gods/nanotrasen.rsi - state: druid - objectType: Structure - placementMode: SnapgridCenter - canBuildInImpassable: false - conditions: - - !type:TileNotBlocked +#- type: construction +# name: nanotrasen altar +# id: AltarNanotrasen +# graph: Altar +# startNode: start +# targetNode: nanotrasen +# category: construction-category-furniture +# description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. +# icon: +# sprite: Structures/Furniture/Altars/Gods/nanotrasen.rsi +# state: nanotrasen +# objectType: Structure +# placementMode: SnapgridCenter +# canBuildInImpassable: false +# conditions: +# - !type:TileNotBlocked -- type: construction - name: toolbox altar - id: AltarToolbox - graph: Altar - startNode: start - targetNode: toolbox - category: construction-category-furniture - description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. - icon: - sprite: Structures/Furniture/Altars/Gods/nanotrasen.rsi - state: toolbox - objectType: Structure - placementMode: SnapgridCenter - canBuildInImpassable: false - conditions: - - !type:TileNotBlocked +#- type: construction +# name: chaos altar +# id: AltarChaos +# graph: Altar +# startNode: start +# targetNode: chaos +# category: construction-category-furniture +# description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. +# icon: +# sprite: Structures/Furniture/Altars/Gods/nanotrasen.rsi +# state: chaos +# objectType: Structure +# placementMode: SnapgridCenter +# canBuildInImpassable: false +# conditions: +# - !type:TileNotBlocked -- type: construction - name: space-christian altar - id: AltarSpaceChristian - graph: Altar - startNode: start - targetNode: spacechristian - category: construction-category-furniture - description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. - icon: - sprite: Structures/Furniture/Altars/Gods/nanotrasen.rsi - state: space-christian - objectType: Structure - placementMode: SnapgridCenter - canBuildInImpassable: false - conditions: - - !type:TileNotBlocked +#- type: construction +# name: druid altar +# id: AltarDruid +# graph: Altar +# startNode: start +# targetNode: druid +# category: construction-category-furniture +# description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. +# icon: +# sprite: Structures/Furniture/Altars/Gods/nanotrasen.rsi +# state: druid +# objectType: Structure +# placementMode: SnapgridCenter +# canBuildInImpassable: false +# conditions: +# - !type:TileNotBlocked -- type: construction - name: satanic altar - id: AltarSatana - graph: Altar - startNode: start - targetNode: satana - category: construction-category-furniture - description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. - icon: - sprite: Structures/Furniture/Altars/Gods/nanotrasen.rsi - state: satana - objectType: Structure - placementMode: SnapgridCenter - canBuildInImpassable: false - conditions: - - !type:TileNotBlocked +#- type: construction +# name: toolbox altar +# id: AltarToolbox +# graph: Altar +# startNode: start +# targetNode: toolbox +# category: construction-category-furniture +# description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. +# icon: +# sprite: Structures/Furniture/Altars/Gods/nanotrasen.rsi +# state: toolbox +# objectType: Structure +# placementMode: SnapgridCenter +# canBuildInImpassable: false +# conditions: +# - !type:TileNotBlocked -- type: construction - name: technology altar - id: AltarTechnology - graph: Altar - startNode: start - targetNode: technology - category: construction-category-furniture - description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. - icon: - sprite: Structures/Furniture/Altars/Gods/nanotrasen.rsi - state: technology - objectType: Structure - placementMode: SnapgridCenter - canBuildInImpassable: false - conditions: - - !type:TileNotBlocked +#- type: construction +# name: space-christian altar +# id: AltarSpaceChristian +# graph: Altar +# startNode: start +# targetNode: spacechristian +# category: construction-category-furniture +# description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. +# icon: +# sprite: Structures/Furniture/Altars/Gods/nanotrasen.rsi +# state: space-christian +# objectType: Structure +# placementMode: SnapgridCenter +# canBuildInImpassable: false +# conditions: +# - !type:TileNotBlocked -- type: construction - name: festival altar - id: AltarConvertFestival - graph: Altar - startNode: start - targetNode: festival - category: construction-category-furniture - description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. - icon: - sprite: Structures/Furniture/Altars/Gods/convertaltar.rsi - state: festival - objectType: Structure - placementMode: SnapgridCenter - canBuildInImpassable: false - conditions: - - !type:TileNotBlocked +#- type: construction +# name: satanic altar +# id: AltarSatana +# graph: Altar +# startNode: start +# targetNode: satana +# category: construction-category-furniture +# description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. +# icon: +# sprite: Structures/Furniture/Altars/Gods/nanotrasen.rsi +# state: satana +# objectType: Structure +# placementMode: SnapgridCenter +# canBuildInImpassable: false +# conditions: +# - !type:TileNotBlocked +# +#- type: construction +# name: technology altar +# id: AltarTechnology +# graph: Altar +# startNode: start +# targetNode: technology +# category: construction-category-furniture +# description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. +# icon: +# sprite: Structures/Furniture/Altars/Gods/nanotrasen.rsi +# state: technology +# objectType: Structure +# placementMode: SnapgridCenter +# canBuildInImpassable: false +# conditions: +# - !type:TileNotBlocked +# +#- type: construction +# name: festival altar +# id: AltarConvertFestival +# graph: Altar +# startNode: start +# targetNode: festival +# category: construction-category-furniture +# description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. +# icon: +# sprite: Structures/Furniture/Altars/Gods/convertaltar.rsi +# state: festival +# objectType: Structure +# placementMode: SnapgridCenter +# canBuildInImpassable: false +# conditions: +# - !type:TileNotBlocked #- type: construction # name: maint altar @@ -151,158 +151,158 @@ # conditions: # - !type:TileNotBlocked -- type: construction - name: blue altar - id: AltarConvertBlue - graph: Altar - startNode: start - targetNode: blue - category: construction-category-furniture - description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. - icon: - sprite: Structures/Furniture/Altars/Gods/convertaltar.rsi - state: blue - objectType: Structure - placementMode: SnapgridCenter - canBuildInImpassable: false - conditions: - - !type:TileNotBlocked - -- type: construction - name: burden altar - id: AltarConvertBurden - graph: Altar - startNode: start - targetNode: burden - category: construction-category-furniture - description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. - icon: - sprite: Structures/Furniture/Altars/Gods/convertaltar.rsi - state: burden - objectType: Structure - placementMode: SnapgridCenter - canBuildInImpassable: false - conditions: - - !type:TileNotBlocked - -- type: construction - name: convert altar - id: AltarConvert - graph: Altar - startNode: start - targetNode: convert - category: construction-category-furniture - description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. - icon: - sprite: Structures/Furniture/Altars/Gods/convertaltar.rsi - state: convertaltar - objectType: Structure - placementMode: SnapgridCenter - canBuildInImpassable: false - conditions: - - !type:TileNotBlocked - -- type: construction - name: orange altar - id: AltarConvertOrange - graph: Altar - startNode: start - targetNode: orange - category: construction-category-furniture - description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. - icon: - sprite: Structures/Furniture/Altars/Gods/convertaltar.rsi - state: orange - objectType: Structure - placementMode: SnapgridCenter - canBuildInImpassable: false - conditions: - - !type:TileNotBlocked - -- type: construction - name: red altar - id: AltarConvertRed - graph: Altar - startNode: start - targetNode: red - category: construction-category-furniture - description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. - icon: - sprite: Structures/Furniture/Altars/Gods/convertaltar.rsi - state: red - objectType: Structure - placementMode: SnapgridCenter - canBuildInImpassable: false - conditions: - - !type:TileNotBlocked - -- type: construction - name: white altar - id: AltarConvertWhite - graph: Altar - startNode: start - targetNode: white - category: construction-category-furniture - description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. - icon: - sprite: Structures/Furniture/Altars/Gods/convertaltar.rsi - state: white - objectType: Structure - placementMode: SnapgridCenter - canBuildInImpassable: false - conditions: - - !type:TileNotBlocked - -- type: construction - name: yellow altar - id: AltarConvertYellow - graph: Altar - startNode: start - targetNode: yellow - category: construction-category-furniture - description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. - icon: - sprite: Structures/Furniture/Altars/Gods/convertaltar.rsi - state: yellow - objectType: Structure - placementMode: SnapgridCenter - canBuildInImpassable: false - conditions: - - !type:TileNotBlocked - -- type: construction - name: heaven altar - id: AltarHeaven - graph: Altar - startNode: start - targetNode: heaven - category: construction-category-furniture - description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. - icon: - sprite: Structures/Furniture/Altars/Cults/heaven.rsi - state: full - objectType: Structure - placementMode: SnapgridCenter - canBuildInImpassable: false - conditions: - - !type:TileNotBlocked - -- type: construction - name: fanged altar - id: AltarFangs - graph: Altar - startNode: start - targetNode: fanged - category: construction-category-furniture - description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. - icon: - sprite: Structures/Furniture/Altars/Cults/fangs.rsi - state: full - objectType: Structure - placementMode: SnapgridCenter - canBuildInImpassable: false - conditions: - - !type:TileNotBlocked +#- type: construction +# name: blue altar +# id: AltarConvertBlue +# graph: Altar +# startNode: start +# targetNode: blue +# category: construction-category-furniture +# description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. +# icon: +# sprite: Structures/Furniture/Altars/Gods/convertaltar.rsi +# state: blue +# objectType: Structure +# placementMode: SnapgridCenter +# canBuildInImpassable: false +# conditions: +# - !type:TileNotBlocked +# +#- type: construction +# name: burden altar +# id: AltarConvertBurden +# graph: Altar +# startNode: start +# targetNode: burden +# category: construction-category-furniture +# description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. +# icon: +# sprite: Structures/Furniture/Altars/Gods/convertaltar.rsi +# state: burden +# objectType: Structure +# placementMode: SnapgridCenter +# canBuildInImpassable: false +# conditions: +# - !type:TileNotBlocked +# +#- type: construction +# name: convert altar +# id: AltarConvert +# graph: Altar +# startNode: start +# targetNode: convert +# category: construction-category-furniture +# description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. +# icon: +# sprite: Structures/Furniture/Altars/Gods/convertaltar.rsi +# state: convertaltar +# objectType: Structure +# placementMode: SnapgridCenter +# canBuildInImpassable: false +# conditions: +# - !type:TileNotBlocked +# +#- type: construction +# name: orange altar +# id: AltarConvertOrange +# graph: Altar +# startNode: start +# targetNode: orange +# category: construction-category-furniture +# description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. +# icon: +# sprite: Structures/Furniture/Altars/Gods/convertaltar.rsi +# state: orange +# objectType: Structure +# placementMode: SnapgridCenter +# canBuildInImpassable: false +# conditions: +# - !type:TileNotBlocked +# +#- type: construction +# name: red altar +# id: AltarConvertRed +# graph: Altar +# startNode: start +# targetNode: red +# category: construction-category-furniture +# description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. +# icon: +# sprite: Structures/Furniture/Altars/Gods/convertaltar.rsi +# state: red +# objectType: Structure +# placementMode: SnapgridCenter +# canBuildInImpassable: false +# conditions: +# - !type:TileNotBlocked +# +#- type: construction +# name: white altar +# id: AltarConvertWhite +# graph: Altar +# startNode: start +# targetNode: white +# category: construction-category-furniture +# description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. +# icon: +# sprite: Structures/Furniture/Altars/Gods/convertaltar.rsi +# state: white +# objectType: Structure +# placementMode: SnapgridCenter +# canBuildInImpassable: false +# conditions: +# - !type:TileNotBlocked +# +#- type: construction +# name: yellow altar +# id: AltarConvertYellow +# graph: Altar +# startNode: start +# targetNode: yellow +# category: construction-category-furniture +# description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. +# icon: +# sprite: Structures/Furniture/Altars/Gods/convertaltar.rsi +# state: yellow +# objectType: Structure +# placementMode: SnapgridCenter +# canBuildInImpassable: false +# conditions: +# - !type:TileNotBlocked +# +#- type: construction +# name: heaven altar +# id: AltarHeaven +# graph: Altar +# startNode: start +# targetNode: heaven +# category: construction-category-furniture +# description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. +# icon: +# sprite: Structures/Furniture/Altars/Cults/heaven.rsi +# state: full +# objectType: Structure +# placementMode: SnapgridCenter +# canBuildInImpassable: false +# conditions: +# - !type:TileNotBlocked +# +#- type: construction +# name: fanged altar +# id: AltarFangs +# graph: Altar +# startNode: start +# targetNode: fanged +# category: construction-category-furniture +# description: Altar of the Gods. Those with some divine potential can sacrifice psionics on top of it. +# icon: +# sprite: Structures/Furniture/Altars/Cults/fangs.rsi +# state: full +# objectType: Structure +# placementMode: SnapgridCenter +# canBuildInImpassable: false +# conditions: +# - !type:TileNotBlocked #- type: construction # name: reinforced wood table diff --git a/Resources/Prototypes/Catalog/Fills/Items/briefcases.yml b/Resources/Prototypes/Catalog/Fills/Items/briefcases.yml index c69be77b177..4af166ca731 100644 --- a/Resources/Prototypes/Catalog/Fills/Items/briefcases.yml +++ b/Resources/Prototypes/Catalog/Fills/Items/briefcases.yml @@ -34,5 +34,30 @@ - type: StorageFill contents: - id: ClothingEyesGlassesSunglasses - - id: SpaceCash1000 - amount: 5 + - id: SpaceCash30000 + amount: 1 + - id: EncryptionKeySyndie + - id: RubberStampTrader + - id: PhoneInstrumentSyndicate + - id: ClothingUniformJumpsuitTacticool + - id: ClothingOuterCoatJensen + - id: ClothingHandsGlovesCombat + - id: ClothingMaskNeckGaiter + - id: SyndieHandyFlag + +- type: entity + id: BriefcaseThiefBribingBundleFilled + name: brown briefcase + parent: BriefcaseSyndie + suffix: Thief, Spesos + components: + - type: StorageFill + contents: + - id: ClothingEyesGlassesSunglasses + - id: SpaceCash20000 + amount: 1 + - id: ClothingUniformJumpsuitTacticool + - id: ClothingOuterCoatJensen + - id: ClothingHandsGlovesCombat + - id: ClothingMaskNeckGaiter + - id: ToyFigurineThief \ No newline at end of file diff --git a/Resources/Prototypes/Catalog/thief_toolbox_sets.yml b/Resources/Prototypes/Catalog/thief_toolbox_sets.yml index fb6873f5409..2c98b0b89da 100644 --- a/Resources/Prototypes/Catalog/thief_toolbox_sets.yml +++ b/Resources/Prototypes/Catalog/thief_toolbox_sets.yml @@ -90,7 +90,7 @@ - EncryptionKeyStationMaster - CyberPen - SpyCrewMonitor - - BriefcaseSyndieLobbyingBundleFilled + - BriefcaseThiefBribingBundleFilled - ClothingMaskGasVoiceChameleon #- todo Chameleon Stamp diff --git a/Resources/Prototypes/Damage/modifier_sets.yml b/Resources/Prototypes/Damage/modifier_sets.yml index 45f0b6ef897..ef21e6e2be8 100644 --- a/Resources/Prototypes/Damage/modifier_sets.yml +++ b/Resources/Prototypes/Damage/modifier_sets.yml @@ -60,6 +60,16 @@ Heat: 5 Piercing: 10 +# for fragile electronics like consoles or shuttle engines. +- type: damageModifierSet + id: Electronic + coefficients: + Blunt: 0.7 + Slash: 0.5 + Piercing: 0.7 + Shock: 2 + Heat: 3 + # Like metallic, but without flat reduction so it can be damaged with fists. - type: damageModifierSet id: FlimsyMetallic diff --git a/Resources/Prototypes/Entities/Effects/mobspawn.yml b/Resources/Prototypes/Entities/Effects/mobspawn.yml index c82adc7ba0f..4529497021e 100644 --- a/Resources/Prototypes/Entities/Effects/mobspawn.yml +++ b/Resources/Prototypes/Entities/Effects/mobspawn.yml @@ -57,4 +57,56 @@ sprite: /Textures/Effects/mobspawn.rsi state: crab_uranium - type: SpawnOnDespawn - prototype: MobUraniumCrab \ No newline at end of file + prototype: MobUraniumCrab + +- type: entity + id: EffectAnomalyFloraBulb + noSpawn: true + components: + - type: TimedDespawn + lifetime: 0.4 + - type: Sprite + drawdepth: Effects + noRot: true + layers: + - shader: unshaded + map: ["enum.EffectLayers.Unshaded"] + sprite: Effects/emp.rsi + state: emp_disable + - type: EffectVisuals + - type: Tag + tags: + - HideContextMenu + - type: AnimationPlayer + - type: RandomSpawner + deleteSpawnerAfterSpawn: false + rareChance: 0.1 + offset: 0.3 + chance: 1 + prototypes: + - FoodAmbrosiaVulgaris + - FoodAloe + - FoodCabbage + - FoodCarrot + - FoodGalaxythistle + - FoodLemon + - FoodLime + - FoodPeaPod + - FoodPineapple + - FoodOnionRed + - FoodWatermelon + - FoodAmbrosiaVulgaris + - FoodAloe + - FoodCabbage + - FoodCarrot + - FoodGalaxythistle + - FoodLemon + - FoodLime + - FoodPeaPod + - FoodPineapple + - FoodOnionRed + - FoodWatermelon + - FoodGatfruit + rarePrototypes: + - MobLuminousEntity + - MobLuminousObject \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Markers/Spawners/Random/Food_Drinks/food_single.yml b/Resources/Prototypes/Entities/Markers/Spawners/Random/Food_Drinks/food_single.yml index 36386b55a06..829ae92fc9d 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/Random/Food_Drinks/food_single.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/Random/Food_Drinks/food_single.yml @@ -74,6 +74,7 @@ - FoodMeatLizardtailKebab - FoodMeatRatKebab - FoodMeatRatdoubleKebab + - FoodMeatSnakeKebab - FoodPizzaArnoldSlice - FoodTacoRat rareChance: 0.05 diff --git a/Resources/Prototypes/Entities/Markers/Spawners/Random/anomaly.yml b/Resources/Prototypes/Entities/Markers/Spawners/Random/anomaly.yml index 3b5d33ee06d..6d2149965f7 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/Random/anomaly.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/Random/anomaly.yml @@ -18,5 +18,6 @@ - AnomalyIce - AnomalyRock - AnomalyLiquid + - AnomalyFlora chance: 1 offset: 0.15 # not to put it higher. The anomaly sychnronizer looks for anomalies within this radius, and if the radius is higher, the anomaly can be attracted from a neighboring tile. diff --git a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml index bd50a591ff7..2f6a9b9998f 100644 --- a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml +++ b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml @@ -14,7 +14,7 @@ types: Blunt: 5 soundHit: - path: /Audio/Effects/hit_kick.ogg + collection: MetalThud - type: CombatMode - type: NoSlip - type: StaticPrice @@ -159,7 +159,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:EmptyContainersBehaviour containers: - borg_brain @@ -251,4 +251,4 @@ channels: - Syndicate - type: ShowSyndicateIcons - - type: MovementAlwaysTouching \ No newline at end of file + - type: MovementAlwaysTouching diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/living_light.yml b/Resources/Prototypes/Entities/Mobs/NPCs/living_light.yml index 52a0a1c5897..cc75405e103 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/living_light.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/living_light.yml @@ -18,8 +18,8 @@ - SimpleHostile - type: MovementIgnoreGravity - type: MovementSpeedModifier - baseWalkSpeed: 5.5 - baseSprintSpeed: 5.5 + baseWalkSpeed: 3.5 + baseSprintSpeed: 3.5 - type: Sprite drawdepth: Mobs sprite: Mobs/Elemental/living_light/luminous_person.rsi @@ -33,7 +33,10 @@ - type: MobThresholds thresholds: 0: Alive - 100: Dead + 50: Dead + - type: SlowOnDamage + speedModifierThresholds: + 20: 0.5 - type: DamageStateVisuals states: Alive: @@ -70,15 +73,15 @@ types: Heat: -0.2 - type: NoSlip + - type: Pullable - type: ZombieImmune - type: NameIdentifier group: GenericNumber - type: GhostTakeoverAvailable - type: PointLight - color: "#e4de6c" - radius: 8 - softness: 2 - energy: 5 + radius: 3.0 + energy: 4.5 + color: "#6270bb" - type: FootstepModifier footstepSoundCollection: collection: FootstepBells @@ -87,16 +90,17 @@ - type: Tag tags: - FootstepSound - - DoorBumpOpener - type: Destructible thresholds: - - trigger: - !type:DamageTypeTrigger - damageType: Heat - damage: 150 - behaviors: - - !type:DoActsBehavior - acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 50 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: GlassBreak - type: entity id: MobLuminousPerson @@ -105,7 +109,7 @@ - type: MeleeWeapon damage: types: - Heat: 16 + Heat: 10 animation: WeaponArcFist - type: StaminaDamageOnHit damage: 16 @@ -139,16 +143,7 @@ - type: MeleeWeapon damage: types: - Heat: 8 - - type: Destructible - thresholds: - - trigger: - !type:DamageTypeTrigger - damageType: Heat - damage: 80 - behaviors: - - !type:DoActsBehavior - acts: [ "Destruction" ] + Heat: 6 - type: entity id: MobLuminousEntity @@ -167,7 +162,7 @@ - type: MobThresholds thresholds: 0: Alive - 60: Dead + 40: Dead - type: DamageStateVisuals states: Alive: @@ -181,7 +176,7 @@ types: Heat: 5 - type: HitscanBatteryAmmoProvider - proto: Pulse + proto: RedLaser fireCost: 140 - type: Battery maxCharge: 1000 @@ -200,12 +195,3 @@ path: /Audio/Weapons/Guns/Gunshots/laser3.ogg soundEmpty: path: /Audio/Items/Lighters/lighter_off.ogg - - type: Destructible - thresholds: - - trigger: - !type:DamageTypeTrigger - damageType: Heat - damage: 100 - behaviors: - - !type:DoActsBehavior - acts: [ "Destruction" ] diff --git a/Resources/Prototypes/Entities/Mobs/Player/familiars.yml b/Resources/Prototypes/Entities/Mobs/Player/familiars.yml index 70b3ba12bce..c86438d8214 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/familiars.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/familiars.yml @@ -53,7 +53,7 @@ rules: ghost-role-information-cerberus-rules - type: GhostTakeoverAvailable - type: MeleeWeapon - angle: 0 + altDisarm: false animation: WeaponArcBite damage: types: diff --git a/Resources/Prototypes/Entities/Mobs/Player/guardian.yml b/Resources/Prototypes/Entities/Mobs/Player/guardian.yml index 08c37b56feb..06eda05ee15 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/guardian.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/guardian.yml @@ -26,7 +26,7 @@ types: Blunt: 5 soundHit: - path: /Audio/Effects/hit_kick.ogg + collection: MetalThud - type: RandomSprite available: - enum.DamageStateVisualLayers.Base: diff --git a/Resources/Prototypes/Entities/Mobs/Player/silicon.yml b/Resources/Prototypes/Entities/Mobs/Player/silicon.yml index 750e27acd73..539c2e8bb95 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/silicon.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/silicon.yml @@ -13,7 +13,7 @@ types: Blunt: 5 soundHit: - path: /Audio/Effects/hit_kick.ogg + collection: MetalThud - type: Clickable - type: Damageable damageContainer: Inorganic diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/produce.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/produce.yml index 1fc47c8c43e..b137cadae0d 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/produce.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/produce.yml @@ -254,6 +254,8 @@ - type: Extractable juiceSolution: reagents: + - ReagentId: JuiceBanana + Quantity: 10 - ReagentId: Nothing Quantity: 5 - type: Tag diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/skewer.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/skewer.yml index 4cbd975a081..c313f2d0465 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/skewer.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/skewer.yml @@ -157,3 +157,21 @@ - state: skewer-corn2 - state: skewer-mushroom2 - state: skewer-tomato1 + +- type: entity + name: snake kebab + parent: FoodSkewerBase + id: FoodMeatSnakeKebab + description: Snake meat on a stick. It's a little tough. + components: + - type: Sprite + layers: + - state: skewer + - state: skewer-snake1 + - state: skewer-snake2 + - type: SolutionContainerManager + solutions: + food: + reagents: + - ReagentId: Nutriment + Quantity: 12 diff --git a/Resources/Prototypes/Entities/Objects/Decoration/containers.yml b/Resources/Prototypes/Entities/Objects/Decoration/containers.yml index 461820cd39f..80098305d54 100644 --- a/Resources/Prototypes/Entities/Objects/Decoration/containers.yml +++ b/Resources/Prototypes/Entities/Objects/Decoration/containers.yml @@ -37,7 +37,7 @@ max: 20 - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:DoActsBehavior acts: [ "Destruction" ] diff --git a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml index 672d6488e35..6581fecbac8 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml @@ -661,6 +661,29 @@ - type: StaticPrice price: 15 +- type: entity + id: PowerCageRechargerCircuitboard + parent: BaseMachineCircuitboard + name: cage recharger machine board + description: A machine printed circuit board for a energy cage recharger. + components: + - type: Sprite + sprite: Objects/Misc/module.rsi + state: charger_APC + - type: MachineBoard + prototype: PowerCageRecharger + requirements: + Capacitor: 4 + materialRequirements: + Steel: 5 + Cable: 10 + - type: PhysicalComposition + materialComposition: + Steel: 30 + Plastic: 30 + - type: StaticPrice + price: 30 + - type: entity id: BorgChargerCircuitboard parent: BaseMachineCircuitboard @@ -1229,3 +1252,90 @@ Steel: 5 CableHV: 5 Uranium: 2 + +- type: entity + id: ShuttleGunSvalinnMachineGunCircuitboard + parent: BaseMachineCircuitboard + name: LSE-400c "Svalinn machine gun" machine board + description: A machine printed circuit board for an LSE-400c "Svalinn machine gun" + components: + - type: Sprite + state: security + - type: MachineBoard + prototype: ShuttleGunSvalinnMachineGun + requirements: + MatterBin: 2 + Manipulator: 4 + materialRequirements: + Steel: 5 + CableHV: 5 + +- type: entity + id: ShuttleGunPerforatorCircuitboard + parent: BaseMachineCircuitboard + name: LSE-1200c "Perforator" machine board + description: A machine printed circuit board for an LSE-1200c "Perforator" + components: + - type: Sprite + state: security + - type: MachineBoard + prototype: ShuttleGunPerforator + requirements: + MatterBin: 4 + Manipulator: 6 + materialRequirements: + Steel: 10 + CableHV: 5 + +- type: entity + id: ShuttleGunFriendshipCircuitboard + parent: BaseMachineCircuitboard + name: EXP-320g "Friendship" machine board + description: A machine printed circuit board for an EXP-320g "Friendship" + components: + - type: Sprite + state: security + - type: MachineBoard + prototype: ShuttleGunFriendship + requirements: + MatterBin: 3 + Manipulator: 2 + materialRequirements: + Steel: 7 + CableHV: 5 + +- type: entity + id: ShuttleGunDusterCircuitboard + parent: BaseMachineCircuitboard + name: EXP-2100g "Duster" machine board + description: A machine printed circuit board for an EXP-2100g "Duster" + components: + - type: Sprite + state: security + - type: MachineBoard + prototype: ShuttleGunDuster + requirements: + MatterBin: 6 + Manipulator: 4 + materialRequirements: + Steel: 10 + CableHV: 5 + Uranium: 2 + +- type: entity + id: ShuttleGunKineticCircuitboard + parent: BaseMachineCircuitboard + name: PTK-800 "Matter Dematerializer" machine board + description: A machine printed circuit board for an PTK-800 "Matter Dematerializer" + components: + - type: Sprite + state: security + - type: MachineBoard + prototype: ShuttleGunKinetic + requirements: + MatterBin: 2 + Manipulator: 3 + materialRequirements: + Steel: 5 + CableHV: 2 + \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Devices/station_beacon.yml b/Resources/Prototypes/Entities/Objects/Devices/station_beacon.yml index 8dd3023a0ef..bdf869d9b11 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/station_beacon.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/station_beacon.yml @@ -22,7 +22,7 @@ False: {state: icon} - type: ConfigurableNavMapBeacon - type: NavMapBeacon - text: general + text: station-beacon-general color: "#D4D4D496" - type: WarpPoint - type: ActivatableUI @@ -62,7 +62,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -8 - !type:SpawnEntitiesBehavior @@ -118,7 +118,7 @@ suffix: Command components: - type: NavMapBeacon - text: Command + text: station-beacon-command color: "#FFFF00" - type: entity @@ -127,7 +127,7 @@ suffix: Bridge components: - type: NavMapBeacon - text: Bridge + text: station-beacon-bridge - type: entity parent: DefaultStationBeaconCommand @@ -135,7 +135,7 @@ suffix: Vault components: - type: NavMapBeacon - text: Vault + text: station-beacon-vault - type: entity parent: DefaultStationBeaconCommand @@ -143,7 +143,7 @@ suffix: Captain's Quarters components: - type: NavMapBeacon - text: Captain + text: station-beacon-captain - type: entity parent: DefaultStationBeaconCommand @@ -151,7 +151,7 @@ suffix: HOP's Office components: - type: NavMapBeacon - text: HOP + text: station-beacon-hop - type: entity parent: DefaultStationBeacon @@ -159,7 +159,7 @@ suffix: Security components: - type: NavMapBeacon - text: Security + text: station-beacon-security color: "#DE3A3A" - type: entity @@ -168,7 +168,7 @@ suffix: Brig components: - type: NavMapBeacon - text: Brig + text: station-beacon-brig - type: entity parent: DefaultStationBeaconSecurity @@ -176,7 +176,7 @@ suffix: Warden's Office components: - type: NavMapBeacon - text: Warden + text: station-beacon-warden - type: entity parent: DefaultStationBeaconSecurity @@ -184,7 +184,7 @@ suffix: HOS’s Room components: - type: NavMapBeacon - text: HOS + text: station-beacon-hos - type: entity parent: DefaultStationBeaconSecurity @@ -192,7 +192,7 @@ suffix: Armory components: - type: NavMapBeacon - text: Armory + text: station-beacon-armory - type: entity parent: DefaultStationBeaconSecurity @@ -200,7 +200,7 @@ suffix: Perma Brig components: - type: NavMapBeacon - text: Perma + text: station-beacon-perma-brig - type: entity parent: DefaultStationBeaconSecurity @@ -208,7 +208,7 @@ suffix: Detective's Room components: - type: NavMapBeacon - text: Detective + text: station-beacon-detective - type: entity parent: DefaultStationBeaconSecurity @@ -216,7 +216,7 @@ suffix: Courtroom components: - type: NavMapBeacon - text: Courtroom + text: station-beacon-courtroom - type: entity parent: DefaultStationBeaconSecurity @@ -224,7 +224,7 @@ suffix: Law Office components: - type: NavMapBeacon - text: Law Office + text: station-beacon-law - type: entity parent: DefaultStationBeaconSecurity @@ -232,7 +232,7 @@ suffix: Sec Checkpoint components: - type: NavMapBeacon - text: Checkpoint + text: station-beacon-security-checkpoint - type: entity parent: DefaultStationBeacon @@ -240,7 +240,7 @@ suffix: Medical components: - type: NavMapBeacon - text: Medical + text: station-beacon-medical color: "#52B4E9" - type: entity @@ -249,7 +249,7 @@ suffix: Medbay components: - type: NavMapBeacon - text: Medbay + text: station-beacon-medbay - type: entity parent: DefaultStationBeaconMedical @@ -257,7 +257,7 @@ suffix: Chemistry components: - type: NavMapBeacon - text: Chem + text: station-beacon-chemistry - type: entity parent: DefaultStationBeaconMedical @@ -265,7 +265,7 @@ suffix: Cryonics components: - type: NavMapBeacon - text: Cryo + text: station-beacon-cryonics - type: entity parent: DefaultStationBeaconMedical @@ -273,7 +273,7 @@ suffix: CMO's room components: - type: NavMapBeacon - text: CMO + text: station-beacon-cmo - type: entity parent: DefaultStationBeaconMedical @@ -281,7 +281,7 @@ suffix: Morgue components: - type: NavMapBeacon - text: Morgue + text: station-beacon-morgue - type: entity parent: DefaultStationBeaconMedical @@ -289,7 +289,7 @@ suffix: Surgery components: - type: NavMapBeacon - text: Surgery + text: station-beacon-surgery - type: entity parent: DefaultStationBeacon @@ -297,7 +297,7 @@ suffix: Science components: - type: NavMapBeacon - text: Science + text: station-beacon-science color: "#D381C9" - type: entity @@ -306,7 +306,7 @@ suffix: Research and Development components: - type: NavMapBeacon - text: Research + text: station-beacon-research-and-development - type: entity parent: DefaultStationBeaconScience @@ -314,7 +314,7 @@ suffix: Research Server Room components: - type: NavMapBeacon - text: Server + text: station-beacon-research-server - type: entity parent: DefaultStationBeaconScience @@ -322,7 +322,7 @@ suffix: RD's Room components: - type: NavMapBeacon - text: RD + text: station-beacon-research-director - type: entity parent: DefaultStationBeaconScience @@ -330,7 +330,7 @@ suffix: Robotics components: - type: NavMapBeacon - text: Robotics + text: station-beacon-robotics - type: entity parent: DefaultStationBeaconScience @@ -338,7 +338,7 @@ suffix: Artifact Lab components: - type: NavMapBeacon - text: Artifact + text: station-beacon-artifact-lab - type: entity parent: DefaultStationBeaconScience @@ -346,7 +346,7 @@ suffix: Anomaly Generator components: - type: NavMapBeacon - text: Anomaly + text: station-beacon-anomaly-gen - type: entity parent: DefaultStationBeacon @@ -354,7 +354,7 @@ suffix: Supply components: - type: NavMapBeacon - text: Supply + text: station-beacon-supply color: "#A46106" - type: entity @@ -363,7 +363,7 @@ suffix: Cargo Reception components: - type: NavMapBeacon - text: Cargo + text: station-beacon-cargo - type: entity parent: DefaultStationBeaconSupply @@ -371,7 +371,7 @@ suffix: Cargo Bay components: - type: NavMapBeacon - text: Cargo Bay + text: station-beacon-cargo-bay - type: entity parent: DefaultStationBeaconSupply @@ -379,7 +379,7 @@ suffix: QM's Room components: - type: NavMapBeacon - text: QM + text: station-beacon-qm - type: entity parent: DefaultStationBeaconSupply @@ -387,7 +387,7 @@ suffix: Salvage components: - type: NavMapBeacon - text: Salvage + text: station-beacon-salvage - type: entity parent: DefaultStationBeacon @@ -395,7 +395,7 @@ suffix: Engineering components: - type: NavMapBeacon - text: Engineering + text: station-beacon-engineering color: "#EFB341" - type: entity @@ -404,7 +404,7 @@ suffix: CE's Room components: - type: NavMapBeacon - text: CE + text: station-beacon-ce - type: entity parent: DefaultStationBeaconEngineering @@ -412,7 +412,7 @@ suffix: AME components: - type: NavMapBeacon - text: AME + text: station-beacon-ame - type: entity parent: DefaultStationBeaconEngineering @@ -420,7 +420,7 @@ suffix: Solars components: - type: NavMapBeacon - text: Solars + text: station-beacon-solars - type: entity parent: DefaultStationBeaconEngineering @@ -428,7 +428,7 @@ suffix: Grav Gen components: - type: NavMapBeacon - text: Grav + text: station-beacon-gravgen - type: entity parent: DefaultStationBeaconEngineering @@ -436,7 +436,7 @@ suffix: PA Control components: - type: NavMapBeacon - text: PA Control + text: station-beacon-pa - type: entity parent: DefaultStationBeaconEngineering @@ -444,7 +444,7 @@ suffix: SMES Power Bank components: - type: NavMapBeacon - text: SMES + text: station-beacon-smes - type: entity parent: DefaultStationBeaconEngineering @@ -452,7 +452,7 @@ suffix: Telecoms components: - type: NavMapBeacon - text: Telecoms + text: station-beacon-telecoms - type: entity parent: DefaultStationBeaconEngineering @@ -460,7 +460,7 @@ suffix: Atmospherics components: - type: NavMapBeacon - text: Atmos + text: station-beacon-atmos - type: entity parent: DefaultStationBeaconEngineering @@ -468,15 +468,7 @@ suffix: TEG components: - type: NavMapBeacon - text: TEG - -- type: entity - parent: DefaultStationBeaconEngineering - id: DefaultStationBeaconTeslaEngine - suffix: Tesla Engine (Do Not Map - use PA Control instead) - components: - - type: NavMapBeacon - text: Tesla + text: station-beacon-teg - type: entity parent: DefaultStationBeaconEngineering @@ -484,7 +476,7 @@ suffix: Tech Vault components: - type: NavMapBeacon - text: Tech Vault + text: station-beacon-tech-vault - type: entity parent: DefaultStationBeacon @@ -492,7 +484,7 @@ suffix: Service components: - type: NavMapBeacon - text: Service + text: station-beacon-service color: "#9FED58" - type: entity @@ -501,7 +493,7 @@ suffix: Kitchen components: - type: NavMapBeacon - text: Kitchen + text: station-beacon-kitchen - type: entity parent: DefaultStationBeaconService @@ -509,7 +501,7 @@ suffix: Bar components: - type: NavMapBeacon - text: Bar + text: station-beacon-bar - type: entity parent: DefaultStationBeaconService @@ -517,7 +509,7 @@ suffix: Botany components: - type: NavMapBeacon - text: Botany + text: station-beacon-botany - type: entity parent: DefaultStationBeaconService @@ -525,7 +517,7 @@ suffix: Janitor's Closet components: - type: NavMapBeacon - text: Janitor + text: station-beacon-janitor - type: entity parent: DefaultStationBeacon @@ -533,7 +525,7 @@ suffix: AI components: - type: NavMapBeacon - text: AI + text: station-beacon-ai color: "#2ed2fd" - type: entity @@ -542,7 +534,7 @@ suffix: AI Satellite components: - type: NavMapBeacon - text: AI Sat + text: station-beacon-ai-sat - type: entity parent: DefaultStationBeaconAI @@ -550,7 +542,7 @@ suffix: AI Core components: - type: NavMapBeacon - text: AI Core + text: station-beacon-ai-core - type: entity parent: DefaultStationBeacon @@ -558,7 +550,7 @@ suffix: Arrivals components: - type: NavMapBeacon - text: Arrivals + text: station-beacon-arrivals - type: entity parent: DefaultStationBeacon @@ -566,7 +558,7 @@ suffix: Evac components: - type: NavMapBeacon - text: Evac + text: station-beacon-evac - type: entity parent: DefaultStationBeacon @@ -574,7 +566,7 @@ suffix: EVA Storage components: - type: NavMapBeacon - text: EVA Storage + text: station-beacon-eva-storage - type: entity parent: DefaultStationBeacon @@ -582,7 +574,7 @@ suffix: Chapel components: - type: NavMapBeacon - text: Chapel + text: station-beacon-chapel - type: entity parent: DefaultStationBeacon @@ -590,7 +582,7 @@ suffix: Library components: - type: NavMapBeacon - text: Library + text: station-beacon-library - type: entity parent: DefaultStationBeacon @@ -598,7 +590,7 @@ suffix: Theater components: - type: NavMapBeacon - text: Theater + text: station-beacon-theater - type: entity parent: DefaultStationBeacon @@ -606,7 +598,7 @@ suffix: Dorms components: - type: NavMapBeacon - text: Dorms + text: station-beacon-dorms - type: entity parent: DefaultStationBeacon @@ -614,7 +606,7 @@ suffix: Tool Room components: - type: NavMapBeacon - text: Tools + text: station-beacon-tools - type: entity parent: DefaultStationBeacon @@ -622,5 +614,5 @@ suffix: Disposals components: - type: NavMapBeacon - text: Disposals + text: station-beacon-disposals diff --git a/Resources/Prototypes/Entities/Objects/Materials/ore.yml b/Resources/Prototypes/Entities/Objects/Materials/ore.yml index b19842a2a25..2fed6498bdd 100644 --- a/Resources/Prototypes/Entities/Objects/Materials/ore.yml +++ b/Resources/Prototypes/Entities/Objects/Materials/ore.yml @@ -87,9 +87,7 @@ ironore: reagents: - ReagentId: Iron - Quantity: 9 - - ReagentId: Carbon - Quantity: 1 + Quantity: 10 - type: entity id: SteelOre1 diff --git a/Resources/Prototypes/Entities/Objects/Misc/fluff_lights.yml b/Resources/Prototypes/Entities/Objects/Misc/fluff_lights.yml index 867f65afade..c3902f96c11 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/fluff_lights.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/fluff_lights.yml @@ -227,7 +227,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/glass_break1.ogg + collection: GlassBreak - !type:SpawnEntitiesBehavior spawn: FloodlightBroken: @@ -263,7 +263,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalGlassBreak - !type:SpawnEntitiesBehavior spawn: SheetSteel1: diff --git a/Resources/Prototypes/Entities/Objects/Misc/kudzu.yml b/Resources/Prototypes/Entities/Objects/Misc/kudzu.yml index 5f3f8bb5cb6..eefce3a851c 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/kudzu.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/kudzu.yml @@ -103,6 +103,59 @@ - type: Kudzu spreadChance: 0.3 +- type: entity + id: KudzuFlowerFriendly + name: floral carpet + suffix: Friendly, Floral Anomaly + description: A colorful carpet of flowers sprawling in every direction. You're not sure whether to take it down or leave it up. + parent: Kudzu + components: + - type: Sprite + drawdepth: FloorObjects + sprite: Objects/Misc/kudzuflower.rsi + state: kudzu_11 + - type: Kudzu + spriteVariants: 5 + spreadChance: 0.01 + - type: SlowContacts + walkSpeedModifier: 0.8 + sprintSpeedModifier: 0.8 + ignoreWhitelist: + components: + - IgnoreKudzu + - type: RandomSpawner + deleteSpawnerAfterSpawn: false + rareChance: 0.15 + offset: 0.2 + chance: 0.05 + prototypes: + - FloraTree01 + - FloraTree02 + - FloraTree03 + - FloraTree04 + - FloraTree05 + - FloraTree06 + - FloraTreeLarge01 + - FloraTreeLarge02 + - FloraTreeLarge03 + - CrystalCyan + rarePrototypes: + - AnomalyFloraBulb + +- type: entity + id: KudzuFlowerAngry + suffix: Angry, Floral Anomaly + parent: KudzuFlowerFriendly + components: + - type: Kudzu + spreadChance: 0.4 + - type: RandomSpawner + chance: 0.1 + rarePrototypes: + - AnomalyFloraBulb + - MobLuminousEntity + - MobLuminousObject + - type: entity id: FleshKudzu name: tendons diff --git a/Resources/Prototypes/Entities/Objects/Misc/space_cash.yml b/Resources/Prototypes/Entities/Objects/Misc/space_cash.yml index 26996e5381a..8cf8ccd0127 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/space_cash.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/space_cash.yml @@ -137,6 +137,28 @@ - type: Stack count: 10000 +- type: entity + parent: SpaceCash + id: SpaceCash20000 + suffix: 20000 + components: + - type: Icon + sprite: Objects/Economy/cash.rsi + state: cash_1000 + - type: Stack + count: 20000 + +- type: entity + parent: SpaceCash + id: SpaceCash30000 + suffix: 30000 + components: + - type: Icon + sprite: Objects/Economy/cash.rsi + state: cash_1000 + - type: Stack + count: 30000 + - type: entity parent: SpaceCash id: SpaceCash1000000 diff --git a/Resources/Prototypes/Entities/Objects/Misc/tiles.yml b/Resources/Prototypes/Entities/Objects/Misc/tiles.yml index 71bd2753faa..361efb52663 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/tiles.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/tiles.yml @@ -34,7 +34,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -8 - !type:DoActsBehavior diff --git a/Resources/Prototypes/Entities/Objects/Power/lights.yml b/Resources/Prototypes/Entities/Objects/Power/lights.yml index 9a30ec4da3d..40f6bf6dbed 100644 --- a/Resources/Prototypes/Entities/Objects/Power/lights.yml +++ b/Resources/Prototypes/Entities/Objects/Power/lights.yml @@ -6,8 +6,7 @@ - type: MeleeSound soundGroups: Brute: - path: - "/Audio/Effects/glass_hit.ogg" + collection: GlassSmash - type: Sprite sprite: Objects/Power/light_bulb.rsi layers: diff --git a/Resources/Prototypes/Entities/Objects/Power/powercells.yml b/Resources/Prototypes/Entities/Objects/Power/powercells.yml index 841288c479d..758d5f7b423 100644 --- a/Resources/Prototypes/Entities/Objects/Power/powercells.yml +++ b/Resources/Prototypes/Entities/Objects/Power/powercells.yml @@ -267,3 +267,139 @@ - type: BatterySelfRecharger autoRecharge: true autoRechargeRate: 40 + +# Power cage (big heavy power cell for big devices) + +- type: entity + id: BasePowerCage + abstract: true + parent: BasePowerCell + components: + - type: Item + size: Ginormous + - type: MultiHandedItem + - type: SolutionContainerManager + solutions: + battery: + maxVol: 15 + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Zinc + Quantity: 15 + - type: Tag + tags: + - PowerCage + - type: HitscanBatteryAmmoProvider + proto: RedShuttleLaser + fireCost: 150 + - type: ClothingSpeedModifier + walkModifier: 0.8 + sprintModifier: 0.8 + - type: HeldSpeedModifier + +- type: entity + id: PowerCageSmall + parent: BasePowerCage + name: small-capacity power cage + description: A rechargeable power cage for big devices. This is the cheapest kind you can find. + components: + - type: Sprite + sprite: Objects/Power/power_cages.rsi + layers: + - map: [ "enum.PowerCellVisualLayers.Base" ] + state: small + - map: [ "enum.PowerCellVisualLayers.Unshaded" ] + state: o2 + shader: unshaded + - type: Battery + maxCharge: 1400 + startingCharge: 1400 + +- type: entity + id: PowerCageMedium + parent: BasePowerCage + name: medium-capacity power cage + description: A rechargeable power cage for big devices. The gold standard of capacity and cost. + components: + - type: Sprite + sprite: Objects/Power/power_cages.rsi + layers: + - map: [ "enum.PowerCellVisualLayers.Base" ] + state: medium + - map: [ "enum.PowerCellVisualLayers.Unshaded" ] + state: o2 + shader: unshaded + - type: Battery + maxCharge: 2700 + startingCharge: 2700 + +- type: entity + id: PowerCageHigh + parent: BasePowerCage + name: high-capacity power cage + description: A rechargeable power cage for big devices. Increased capacity for increased power levels. + components: + - type: Sprite + sprite: Objects/Power/power_cages.rsi + layers: + - map: [ "enum.PowerCellVisualLayers.Base" ] + state: high + - map: [ "enum.PowerCellVisualLayers.Unshaded" ] + state: o2 + shader: unshaded + - type: Battery + maxCharge: 6200 + startingCharge: 6200 + +- type: entity + id: PowerCageSmallEmpty + parent: PowerCageSmall + suffix: Empty + components: + - type: Sprite + sprite: Objects/Power/power_cages.rsi + layers: + - map: [ "enum.PowerCellVisualLayers.Base" ] + state: small + - map: [ "enum.PowerCellVisualLayers.Unshaded" ] + state: o2 + shader: unshaded + visible: false + - type: Battery + maxCharge: 1400 + startingCharge: 0 + +- type: entity + id: PowerCageMediumEmpty + parent: PowerCageMedium + suffix: Empty + components: + - type: Sprite + sprite: Objects/Power/power_cages.rsi + layers: + - map: [ "enum.PowerCellVisualLayers.Base" ] + state: small + - map: [ "enum.PowerCellVisualLayers.Unshaded" ] + state: o2 + shader: unshaded + visible: false + - type: Battery + startingCharge: 0 + +- type: entity + id: PowerCageHighEmpty + parent: PowerCageHigh + suffix: Empty + components: + - type: Sprite + sprite: Objects/Power/power_cages.rsi + layers: + - map: [ "enum.PowerCellVisualLayers.Base" ] + state: small + - map: [ "enum.PowerCellVisualLayers.Unshaded" ] + state: o2 + shader: unshaded + visible: false + - type: Battery + startingCharge: 0 \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Shields/shields.yml b/Resources/Prototypes/Entities/Objects/Shields/shields.yml index 4761e81de8c..7427b7f87a3 100644 --- a/Resources/Prototypes/Entities/Objects/Shields/shields.yml +++ b/Resources/Prototypes/Entities/Objects/Shields/shields.yml @@ -47,7 +47,8 @@ - !type:DoActsBehavior acts: [ "Destruction" ] - !type:PlaySoundBehavior - sound: /Audio/Effects/metalbreak.ogg + sound: + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: SheetSteel: @@ -160,7 +161,8 @@ - !type:DoActsBehavior acts: [ "Destruction" ] - !type:PlaySoundBehavior - sound: /Audio/Effects/metalbreak.ogg + sound: + collection: WoodDestroy - !type:SpawnEntitiesBehavior spawn: MaterialWoodPlank: @@ -215,7 +217,8 @@ - !type:DoActsBehavior acts: [ "Destruction" ] - !type:PlaySoundBehavior - sound: /Audio/Effects/metalbreak.ogg + sound: + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: SheetSteel: @@ -273,7 +276,7 @@ max: 1 - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroy #Magic/Cult Shields (give these to wizard for now) @@ -346,7 +349,8 @@ - !type:DoActsBehavior acts: [ "Destruction" ] - !type:PlaySoundBehavior - sound: /Audio/Effects/glass_break1.ogg + sound: + collection: GlassBreak - !type:SpawnEntitiesBehavior spawn: SheetGlass: @@ -440,7 +444,8 @@ - !type:DoActsBehavior acts: [ "Destruction" ] - !type:PlaySoundBehavior - sound: /Audio/Effects/metalbreak.ogg + sound: + collection: GlassBreak - !type:SpawnEntitiesBehavior spawn: BrokenEnergyShield: @@ -518,7 +523,8 @@ - !type:DoActsBehavior acts: [ "Destruction" ] - !type:PlaySoundBehavior - sound: /Audio/Effects/metalbreak.ogg + sound: + collection: MetalGlassBreak - !type:SpawnEntitiesBehavior spawn: SheetSteel: diff --git a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml index e284944a537..3f53b3e1cea 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml @@ -401,7 +401,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - type: ItemMapper mapLayers: cart_plunger: @@ -544,7 +544,7 @@ acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - type: entity name: plunger diff --git a/Resources/Prototypes/Entities/Objects/Specific/Kitchen/foodcarts.yml b/Resources/Prototypes/Entities/Objects/Specific/Kitchen/foodcarts.yml index 380b2d35630..0894d6a7547 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Kitchen/foodcarts.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Kitchen/foodcarts.yml @@ -40,7 +40,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - type: Appearance - type: UserInterface interfaces: diff --git a/Resources/Prototypes/Entities/Objects/Specific/Security/barrier.yml b/Resources/Prototypes/Entities/Objects/Specific/Security/barrier.yml index b83b2c8ee2b..035185487de 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Security/barrier.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Security/barrier.yml @@ -67,7 +67,7 @@ max: 5 - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:DoActsBehavior acts: [ "Destruction" ] - type: PointLight diff --git a/Resources/Prototypes/Entities/Objects/Specific/Security/target.yml b/Resources/Prototypes/Entities/Objects/Specific/Security/target.yml index 0bbebe3dede..adbb7cde40b 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Security/target.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Security/target.yml @@ -44,7 +44,7 @@ max: 5 - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:DoActsBehavior acts: [ "Destruction" ] @@ -107,6 +107,6 @@ max: 10 - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:DoActsBehavior acts: [ "Destruction" ] diff --git a/Resources/Prototypes/Entities/Objects/Specific/Service/vending_machine_restock.yml b/Resources/Prototypes/Entities/Objects/Specific/Service/vending_machine_restock.yml index 67125c8dffb..953c05f107e 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Service/vending_machine_restock.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Service/vending_machine_restock.yml @@ -39,7 +39,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:DumpRestockInventory - !type:DoActsBehavior acts: [ "Destruction" ] diff --git a/Resources/Prototypes/Entities/Objects/Tools/toolbox.yml b/Resources/Prototypes/Entities/Objects/Tools/toolbox.yml index 64efe53f43d..250f570c5f9 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/toolbox.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/toolbox.yml @@ -4,6 +4,9 @@ abstract: true components: - type: Sprite + layers: + - map: [ base ] + state: icon - type: EmitSoundOnLand sound: path: /Audio/Items/toolbox_drop.ogg @@ -23,6 +26,13 @@ tags: - DroneUsable - Toolbox + - type: GenericVisualizer + visuals: + enum.StorageVisuals.Open: + base: + True: { state: icon-open } + False: { state: icon } + - type: Appearance - type: entity name: emergency toolbox diff --git a/Resources/Prototypes/Entities/Objects/Vehicles/buckleable.yml b/Resources/Prototypes/Entities/Objects/Vehicles/buckleable.yml index f3213fdbc93..cf30f69754d 100644 --- a/Resources/Prototypes/Entities/Objects/Vehicles/buckleable.yml +++ b/Resources/Prototypes/Entities/Objects/Vehicles/buckleable.yml @@ -37,7 +37,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalGlassBreak - !type:ExplodeBehavior - type: entity @@ -125,7 +125,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalGlassBreak - !type:ExplodeBehavior - !type:SpawnEntitiesBehavior # in future should also emit a cloud of hot gas spawn: @@ -402,7 +402,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - type: entity parent: VehicleUnicycle diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/grenade.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/grenade.yml new file mode 100644 index 00000000000..0b23ebc9666 --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/grenade.yml @@ -0,0 +1,87 @@ +- type: entity + id: BaseMagazineGrenade + name: grenade cartridge + parent: BaseItem + abstract: true + components: + - type: Tag + tags: + - MagazineGrenade + - type: BallisticAmmoProvider + mayTransfer: true + whitelist: + tags: + - Grenade + capacity: 5 + soundRack: + path: /Audio/Weapons/Guns/Bolt/lmg_bolt_closed.ogg + params: + variation: 0.05 + soundInsert: + path: /Audio/Weapons/Guns/MagIn/rifle_load.ogg + params: + variation: 0.05 + - type: Item + size: Large + - type: ContainerContainer + containers: + ballistic-ammo: !type:Container + - type: Sprite + sprite: Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi + layers: + - state: base + map: ["enum.GunVisualLayers.Base"] + - state: mag-4 + map: ["enum.GunVisualLayers.Mag"] + - type: MagazineVisuals + magState: mag + steps: 5 + zeroVisible: false + - type: Appearance + +- type: entity + id: MagazineGrenadeEmpty + name: grenade cartridge + parent: BaseMagazineGrenade + components: + - type: BallisticAmmoProvider + +- type: entity + id: MagazineGrenadeFrag + name: frag grenade cartridge + parent: BaseMagazineGrenade + components: + - type: BallisticAmmoProvider + proto: GrenadeFrag + +- type: entity + id: MagazineGrenadeEMP + name: EMP grenade cartridge + parent: BaseMagazineGrenade + components: + - type: BallisticAmmoProvider + proto: GrenadeEMP + +- type: entity + id: MagazineGrenadeFlash + name: flash grenade cartridge + parent: BaseMagazineGrenade + components: + - type: BallisticAmmoProvider + proto: GrenadeFlash + +- type: entity + id: MagazineGrenadeBlast + name: blast grenade cartridge + parent: BaseMagazineGrenade + components: + - type: BallisticAmmoProvider + proto: GrenadeBlast + +- type: entity + id: MagazineGrenadeBaton + name: baton grenade cartridge + parent: BaseMagazineGrenade + components: + - type: BallisticAmmoProvider + proto: GrenadeBaton \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/explosives.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/explosives.yml index 9d04ee82617..152de7e92f2 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/explosives.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/explosives.yml @@ -122,12 +122,44 @@ - type: SpentAmmoVisuals state: frag suffix: false + +- type: entity + id: GrenadeEMP + name: EMP grenade + parent: BaseGrenade + components: + - type: CartridgeAmmo + proto: BulletGrenadeEMP + - type: Sprite + sprite: Objects/Weapons/Guns/Ammunition/Explosives/explosives.rsi + layers: + - state: emp + map: ["enum.AmmoVisualLayers.Base"] + - type: Appearance + - type: SpentAmmoVisuals + state: frag + suffix: false + +# Cannon Balls +- type: entity + id: BaseCannonBall + name: base cannon ball + parent: BaseItem + abstract: true + components: + - type: Tag + tags: + - CannonBall + - type: Item + size: Small + - type: Sprite + - type: entity id: CannonBall name: cannonball suffix: Pirate - parent: BaseGrenade + parent: BaseCannonBall components: - type: CartridgeAmmo proto: BulletCannonBall @@ -137,10 +169,10 @@ state: ball - type: entity - id: Grapeshot + id: CannonBallGrapeshot name: grapeshot suffix: Pirate - parent: BaseGrenade + parent: BaseCannonBall components: - type: CartridgeAmmo proto: PelletGrapeshot @@ -152,10 +184,10 @@ state: grapeshot - type: entity - id: Glassshot + id: CannonBallGlassshot name: glassshot suffix: Pirate - parent: BaseGrenade + parent: BaseCannonBall components: - type: CartridgeAmmo proto: PelletGlass diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml index f17773e4fb8..ed17805f51f 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml @@ -145,7 +145,7 @@ - type: BallisticAmmoProvider whitelist: tags: - - Grenade + - CannonBall capacity: 1 proto: CannonBall soundInsert: diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml index cb4e813943e..99c4a7bdf21 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml @@ -121,3 +121,20 @@ impactFlash: sprite: Objects/Weapons/Guns/Projectiles/projectiles.rsi state: impact_blue + +- type: hitscan + id: RedShuttleLaser + maxLength: 60 + damage: + types: + Heat: 45 + Structural: 10 + muzzleFlash: + sprite: Objects/Weapons/Guns/Projectiles/projectiles.rsi + state: muzzle_beam_heavy2 + travelFlash: + sprite: Objects/Weapons/Guns/Projectiles/projectiles.rsi + state: beam_heavy2 + impactFlash: + sprite: Objects/Weapons/Guns/Projectiles/projectiles.rsi + state: impact_beam_heavy2 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml index f67e3591a7f..f06bbe9d427 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml @@ -255,7 +255,7 @@ types: Heat: 5 soundHit: - path: "/Audio/Weapons/tap.ogg" + collection: WeakHit forceSound: true - type: entity @@ -295,7 +295,7 @@ types: Heat: 1 soundHit: - path: "/Audio/Weapons/tap.ogg" + collection: WeakHit forceSound: true - type: entity @@ -420,6 +420,32 @@ - type: TimedDespawn lifetime: 0.4 +- type: entity + id: BulletKineticShuttle + parent: BaseBullet + noSpawn: true + components: + - type: Sprite + noRot: false + sprite: Objects/Weapons/Guns/Projectiles/magic.rsi + layers: + - state: chronobolt + shader: unshaded + - type: Projectile + impactEffect: BulletImpactEffectKinetic + damage: + types: + Blunt: 30 + Structural: 35 + - type: Ammo + muzzleFlash: HitscanEffect + - type: TimedDespawn + lifetime: 1.5 + - type: PointLight + radius: 2.5 + color: white + energy: 0.5 + - type: entity id: BulletCharge name: charge bolt @@ -715,6 +741,27 @@ intensitySlope: 1 maxIntensity: 10 +- type: entity + id: BulletGrenadeEMP + name: EMP rocket + parent: BaseBulletTrigger + noSpawn: true + components: + - type: Sprite + sprite: Objects/Weapons/Guns/Projectiles/projectiles2.rsi + layers: + - state: frag + - type: EmpOnTrigger + range: 5 + energyConsumption: 50000 + disableDuration: 10 + - type: Ammo + muzzleFlash: null + - type: PointLight + radius: 3.5 + color: blue + energy: 0.5 + - type: entity id: BulletCap name: cap bullet @@ -942,7 +989,7 @@ types: Heat: 2 soundHit: - path: "/Audio/Weapons/tap.ogg" + collection: WeakHit forceSound: true - type: entity diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Revolvers/revolvers.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Revolvers/revolvers.yml index 2bd346a0cf5..de411f53075 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Revolvers/revolvers.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Revolvers/revolvers.yml @@ -21,6 +21,7 @@ slots: - suitStorage - Belt + - type: AmmoCounter - type: Gun selectedMode: SemiAuto fireRate: 1.5 @@ -28,6 +29,8 @@ - SemiAuto soundGunshot: path: /Audio/Weapons/Guns/Gunshots/revolver.ogg + - type: UseDelay + delay: 0.66 - type: ContainerContainer containers: revolver-ammo: !type:Container diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/turrets.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/turrets.yml index 632e86e4fcc..3f75faf75e1 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/turrets.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/turrets.yml @@ -23,7 +23,7 @@ acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalGlassBreak - !type:SpawnEntitiesBehavior spawn: SheetSteel1: @@ -86,7 +86,7 @@ acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalGlassBreak - !type:SpawnEntitiesBehavior spawn: SheetSteel1: diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/bola.yml b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/bola.yml index 54ee2d90a50..ca3edf68c0d 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/bola.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/bola.yml @@ -31,7 +31,8 @@ damage: 15 behaviors: - !type:PlaySoundBehavior - sound: /Audio/Effects/metalbreak.ogg + sound: + collection: MetalBreak - !type:DoActsBehavior acts: [ "Destruction" ] - type: DamageOnLand diff --git a/Resources/Prototypes/Entities/Objects/base_item.yml b/Resources/Prototypes/Entities/Objects/base_item.yml index bcc8e0dce49..528069106b1 100644 --- a/Resources/Prototypes/Entities/Objects/base_item.yml +++ b/Resources/Prototypes/Entities/Objects/base_item.yml @@ -10,7 +10,7 @@ - type: MovedByPressure - type: EmitSoundOnCollide sound: - path: /Audio/Effects/wall_bonk.ogg + collection: WeakHit - type: EmitSoundOnLand sound: path: /Audio/Effects/drop.ogg @@ -21,7 +21,7 @@ types: Blunt: 5 soundHit: - path: /Audio/Effects/hit_kick.ogg + collection: MetalThud - type: CollisionWake - type: TileFrictionModifier modifier: 0.5 diff --git a/Resources/Prototypes/Entities/Structures/Decoration/showcase.yml b/Resources/Prototypes/Entities/Structures/Decoration/showcase.yml index 3172989d4ff..53cc75faa61 100644 --- a/Resources/Prototypes/Entities/Structures/Decoration/showcase.yml +++ b/Resources/Prototypes/Entities/Structures/Decoration/showcase.yml @@ -23,7 +23,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: PartRodMetal1: diff --git a/Resources/Prototypes/Entities/Structures/Dispensers/base_structuredispensers.yml b/Resources/Prototypes/Entities/Structures/Dispensers/base_structuredispensers.yml index c54e9f548be..d87c5e700ab 100644 --- a/Resources/Prototypes/Entities/Structures/Dispensers/base_structuredispensers.yml +++ b/Resources/Prototypes/Entities/Structures/Dispensers/base_structuredispensers.yml @@ -53,7 +53,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalGlassBreak - type: ReagentDispenser storageWhitelist: tags: diff --git a/Resources/Prototypes/Entities/Structures/Dispensers/chem.yml b/Resources/Prototypes/Entities/Structures/Dispensers/chem.yml index 2d98b9ff356..79a17153abf 100644 --- a/Resources/Prototypes/Entities/Structures/Dispensers/chem.yml +++ b/Resources/Prototypes/Entities/Structures/Dispensers/chem.yml @@ -22,6 +22,9 @@ !type:DamageTrigger damage: 100 behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalGlassBreak - !type:ChangeConstructionNodeBehavior node: machineFrame - !type:DoActsBehavior diff --git a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/airlocks.yml b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/airlocks.yml index 80d5011ce36..549a42c2641 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/airlocks.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/airlocks.yml @@ -129,7 +129,7 @@ components: - type: Sprite sprite: Structures/Doors/Airlocks/Standard/hatch_maint.rsi - + # Glass - type: entity @@ -140,8 +140,7 @@ - type: MeleeSound soundGroups: Brute: - path: - "/Audio/Effects/glass_hit.ogg" + collection: GlassSmack - type: Door occludes: false - type: Occluder diff --git a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml index 4e0e9021836..747b0b1140c 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml @@ -119,6 +119,10 @@ behaviors: - !type:DoActsBehavior acts: ["Destruction"] + # TODO this should go to the broken node first + - !type:PlaySoundBehavior + sound: + collection: MetalSlam - type: Construction graph: Airlock node: airlock diff --git a/Resources/Prototypes/Entities/Structures/Doors/MaterialDoors/material_doors.yml b/Resources/Prototypes/Entities/Structures/Doors/MaterialDoors/material_doors.yml index f661b507bd7..d3b8521a9bc 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/MaterialDoors/material_doors.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/MaterialDoors/material_doors.yml @@ -233,7 +233,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroy - !type:SpawnEntitiesBehavior spawn: MaterialWebSilk: diff --git a/Resources/Prototypes/Entities/Structures/Doors/Windoors/base_structurewindoors.yml b/Resources/Prototypes/Entities/Structures/Doors/Windoors/base_structurewindoors.yml index e3fab04da88..4281177b4b9 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Windoors/base_structurewindoors.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Windoors/base_structurewindoors.yml @@ -8,8 +8,7 @@ - type: MeleeSound soundGroups: Brute: - path: - "/Audio/Effects/glass_hit.ogg" + collection: GlassSmash - type: InteractionOutline - type: Physics - type: Fixtures diff --git a/Resources/Prototypes/Entities/Structures/Furniture/Tables/tables.yml b/Resources/Prototypes/Entities/Structures/Furniture/Tables/tables.yml index b984693a300..63d950969d5 100644 --- a/Resources/Prototypes/Entities/Structures/Furniture/Tables/tables.yml +++ b/Resources/Prototypes/Entities/Structures/Furniture/Tables/tables.yml @@ -41,7 +41,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -6 - !type:SpawnEntitiesBehavior @@ -98,7 +98,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroy - !type:SpawnEntitiesBehavior spawn: MaterialWoodPlank1: @@ -141,7 +141,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -6 - !type:SpawnEntitiesBehavior @@ -182,7 +182,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -6 - !type:SpawnEntitiesBehavior @@ -220,7 +220,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -6 - !type:SpawnEntitiesBehavior @@ -267,13 +267,16 @@ behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: GlassBreak - trigger: !type:DamageTrigger damage: 5 behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/glass_break2.ogg + collection: GlassBreak - !type:SpawnEntitiesBehavior spawn: ShardGlass: @@ -316,13 +319,16 @@ behaviors: #excess damage (nuke?). avoid computational cost of spawning entities. - !type:DoActsBehavior acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: GlassBreak - trigger: !type:DamageTrigger damage: 20 behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/glass_break2.ogg + collection: GlassBreak - !type:ChangeConstructionNodeBehavior node: TableFrame - !type:SpawnEntitiesBehavior @@ -368,13 +374,16 @@ behaviors: #excess damage (nuke?). avoid computational cost of spawning entities. - !type:DoActsBehavior acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: GlassBreak - trigger: !type:DamageTrigger damage: 50 behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/glass_break2.ogg + collection: GlassBreak - !type:ChangeConstructionNodeBehavior node: TableFrame - !type:SpawnEntitiesBehavior @@ -414,13 +423,16 @@ behaviors: #excess damage (nuke?). avoid computational cost of spawning entities. - !type:DoActsBehavior acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: GlassBreak - trigger: !type:DamageTrigger damage: 15 behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroy - !type:SpawnEntitiesBehavior spawn: MaterialWoodPlank: @@ -458,7 +470,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroy - !type:SpawnEntitiesBehavior spawn: MaterialWoodPlank: @@ -589,7 +601,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroy - !type:SpawnEntitiesBehavior spawn: MaterialWoodPlank1: @@ -632,7 +644,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -6 - !type:SpawnEntitiesBehavior diff --git a/Resources/Prototypes/Entities/Structures/Furniture/altar.yml b/Resources/Prototypes/Entities/Structures/Furniture/altar.yml index 09393da34c7..d0959ec06f4 100644 --- a/Resources/Prototypes/Entities/Structures/Furniture/altar.yml +++ b/Resources/Prototypes/Entities/Structures/Furniture/altar.yml @@ -47,32 +47,32 @@ state: nanotrasen - type: Destructible thresholds: - - trigger: - !type:DamageTrigger - damage: 125 - behaviors: - - !type:DoActsBehavior - acts: [ "Destruction" ] - - trigger: - !type:DamageTrigger - damage: 25 - behaviors: - - !type:PlaySoundBehavior - sound: - path: /Audio/Effects/metalbreak.ogg - - !type:SpawnEntitiesBehavior - spawn: - SheetPlasteel1: - min: 1 - max: 5 - MaterialBluespace: - min: 1 - max: 2 - - !type:DoActsBehavior - acts: [ "Destruction" ] - - type: Construction - graph: Altar - node: nanotrasen + - trigger: + !type:DamageTrigger + damage: 125 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 25 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalBreak + - !type:SpawnEntitiesBehavior + spawn: + SheetSteel1: + min: 1 + max: 5 + MaterialCloth1: + min: 1 + max: 3 + MaterialBluespace: + min: 1 + max: 2 + - !type:DoActsBehavior + acts: [ "Destruction" ] - type: StealTarget stealGroup: AltarNanotrasen @@ -192,45 +192,45 @@ parent: AltarBase name: festival altar components: - - type: Sprite - sprite: Structures/Furniture/Altars/Gods/convertaltar.rsi - state: festival - - type: Icon - sprite: Structures/Furniture/Altars/Gods/convertaltar.rsi - state: festival - - type: Damageable - damageModifierSet: Wood - - type: Destructible - thresholds: - - trigger: - !type:DamageTrigger - damage: 100 - behaviors: - - !type:DoActsBehavior - acts: [ "Destruction" ] - - trigger: - !type:DamageTrigger - damage: 15 - behaviors: - - !type:PlaySoundBehavior - sound: - path: /Audio/Effects/woodhit.ogg - - !type:SpawnEntitiesBehavior - spawn: - SheetPlasteel1: - min: 1 - max: 5 - MaterialBluespace: - min: 1 - max: 2 - - !type:DoActsBehavior - acts: [ "Destruction" ] - - type: Tag - tags: - - Wooden - - type: Construction - graph: Altar - node: festival + - type: Sprite + sprite: Structures/Furniture/Altars/Gods/convertaltar.rsi + state: festival + - type: Icon + sprite: Structures/Furniture/Altars/Gods/convertaltar.rsi + state: festival + - type: Damageable + damageModifierSet: Wood + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 100 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 15 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: WoodDestroyHeavy + - !type:SpawnEntitiesBehavior + spawn: + MaterialWoodPlank: + min: 1 + max: 5 + MaterialCloth1: + min: 1 + max: 3 + MaterialBluespace: + min: 1 + max: 2 + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: Tag + tags: + - Wooden - type: entity id: AltarConvertMaint @@ -413,47 +413,44 @@ parent: AltarBase name: heaven altar components: - - type: Sprite - sprite: Structures/Furniture/Altars/Cults/heaven.rsi - layers: - - state: full - - state: blood - shader: unshaded - - type: Icon - sprite: Structures/Furniture/Altars/Cults/heaven.rsi - state: full - - type: Destructible - thresholds: - - trigger: - !type:DamageTrigger - damage: 125 - behaviors: - - !type:DoActsBehavior - acts: [ "Destruction" ] - - trigger: - !type:DamageTrigger - damage: 25 - behaviors: - - !type:PlaySoundBehavior - sound: - path: /Audio/Effects/metalbreak.ogg - - !type:SpawnEntitiesBehavior - spawn: - SheetPlasteel1: - min: 1 - max: 5 - MaterialBluespace: - min: 1 - max: 2 - - !type:DoActsBehavior - acts: [ "Destruction" ] - - type: PointLight - radius: 1.5 - energy: 1 - color: "#f08080" - - type: Construction - graph: Altar - node: heaven + - type: Sprite + sprite: Structures/Furniture/Altars/Cults/heaven.rsi + layers: + - state: full + - state: blood + shader: unshaded + - type: Icon + sprite: Structures/Furniture/Altars/Cults/heaven.rsi + state: full + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 125 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 25 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalBreak + - !type:SpawnEntitiesBehavior + spawn: + SheetSteel1: + min: 1 + max: 5 + MaterialBluespace: + min: 1 + max: 2 + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: PointLight + radius: 1.5 + energy: 1 + color: "#f08080" - type: entity id: AltarFangs diff --git a/Resources/Prototypes/Entities/Structures/Furniture/beds.yml b/Resources/Prototypes/Entities/Structures/Furniture/beds.yml index 3f0234a089c..7a1c066c189 100644 --- a/Resources/Prototypes/Entities/Structures/Furniture/beds.yml +++ b/Resources/Prototypes/Entities/Structures/Furniture/beds.yml @@ -105,7 +105,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroy - !type:SpawnEntitiesBehavior spawn: MaterialWoodPlank: @@ -144,7 +144,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroy - !type:SpawnEntitiesBehavior spawn: MaterialWebSilk: diff --git a/Resources/Prototypes/Entities/Structures/Furniture/bookshelf.yml b/Resources/Prototypes/Entities/Structures/Furniture/bookshelf.yml index 38392a6804d..6a8301e06ae 100644 --- a/Resources/Prototypes/Entities/Structures/Furniture/bookshelf.yml +++ b/Resources/Prototypes/Entities/Structures/Furniture/bookshelf.yml @@ -26,7 +26,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroyHeavy - !type:SpawnEntitiesBehavior spawn: MaterialWoodPlank: diff --git a/Resources/Prototypes/Entities/Structures/Furniture/chairs.yml b/Resources/Prototypes/Entities/Structures/Furniture/chairs.yml index 26829aba2d7..a235cd2546d 100644 --- a/Resources/Prototypes/Entities/Structures/Furniture/chairs.yml +++ b/Resources/Prototypes/Entities/Structures/Furniture/chairs.yml @@ -45,7 +45,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - type: StaticPrice price: 10 @@ -191,7 +191,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroy - !type:SpawnEntitiesBehavior spawn: MaterialWoodPlank: @@ -289,7 +289,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroy - !type:SpawnEntitiesBehavior spawn: MaterialWebSilk: diff --git a/Resources/Prototypes/Entities/Structures/Furniture/rollerbeds.yml b/Resources/Prototypes/Entities/Structures/Furniture/rollerbeds.yml index 53abcf592a8..161ea25bc43 100644 --- a/Resources/Prototypes/Entities/Structures/Furniture/rollerbeds.yml +++ b/Resources/Prototypes/Entities/Structures/Furniture/rollerbeds.yml @@ -22,7 +22,8 @@ visible: false - type: MovedByPressure - type: DamageOnHighSpeedImpact - soundHit: /Audio/Effects/bang.ogg + soundHit: + collection: MetalThud - type: InteractionOutline - type: Physics - type: Fixtures diff --git a/Resources/Prototypes/Entities/Structures/Furniture/sink.yml b/Resources/Prototypes/Entities/Structures/Furniture/sink.yml index 9ae1a2bb3df..22f0e2dc2a9 100644 --- a/Resources/Prototypes/Entities/Structures/Furniture/sink.yml +++ b/Resources/Prototypes/Entities/Structures/Furniture/sink.yml @@ -58,7 +58,7 @@ acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - type: AmbientSound enabled: false volume: -8 diff --git a/Resources/Prototypes/Entities/Structures/Lighting/base_lighting.yml b/Resources/Prototypes/Entities/Structures/Lighting/base_lighting.yml index 0e10722e814..fedb49a0b32 100644 --- a/Resources/Prototypes/Entities/Structures/Lighting/base_lighting.yml +++ b/Resources/Prototypes/Entities/Structures/Lighting/base_lighting.yml @@ -13,8 +13,7 @@ - type: MeleeSound soundGroups: Brute: - path: - "/Audio/Effects/glass_hit.ogg" + collection: GlassSmash - type: Transform anchored: true - type: Clickable @@ -50,6 +49,9 @@ behaviors: #excess damage, don't spawn entities. - !type:DoActsBehavior acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: GlassBreak - trigger: !type:DamageTrigger damage: 50 @@ -62,6 +64,9 @@ max: 2 - !type:DoActsBehavior acts: ["Destruction"] + - !type:PlaySoundBehavior + sound: + collection: GlassBreak placement: mode: SnapgridCenter snap: diff --git a/Resources/Prototypes/Entities/Structures/Lighting/ground_lighting.yml b/Resources/Prototypes/Entities/Structures/Lighting/ground_lighting.yml index 6eda921ca40..470733ea188 100644 --- a/Resources/Prototypes/Entities/Structures/Lighting/ground_lighting.yml +++ b/Resources/Prototypes/Entities/Structures/Lighting/ground_lighting.yml @@ -41,7 +41,7 @@ - !type:EmptyAllContainersBehaviour - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalGlassBreak - type: entity parent: BaseLightStructure diff --git a/Resources/Prototypes/Entities/Structures/Machines/Computers/base_structurecomputers.yml b/Resources/Prototypes/Entities/Structures/Machines/Computers/base_structurecomputers.yml index d1b870646d6..a5e26463b99 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/Computers/base_structurecomputers.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/Computers/base_structurecomputers.yml @@ -8,8 +8,7 @@ - type: MeleeSound soundGroups: Brute: - path: - "/Audio/Effects/glass_hit.ogg" + collection: GlassSmash - type: Construction graph: Computer node: computer @@ -53,6 +52,8 @@ - type: EmitSoundOnUIOpen sound: collection: Keyboard + params: + volume: -1 - type: ContainerContainer containers: board: !type:Container diff --git a/Resources/Prototypes/Entities/Structures/Machines/Computers/frame.yml b/Resources/Prototypes/Entities/Structures/Machines/Computers/frame.yml index b1804e6b7b1..08e3173334b 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/Computers/frame.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/Computers/frame.yml @@ -26,7 +26,7 @@ drawdepth: Objects - type: Damageable damageContainer: Inorganic - damageModifierSet: Metallic + damageModifierSet: Electronic - type: Destructible thresholds: - trigger: @@ -90,7 +90,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalGlassBreak params: volume: -6 - !type:SpawnEntitiesBehavior diff --git a/Resources/Prototypes/Entities/Structures/Machines/Medical/cryo_pod.yml b/Resources/Prototypes/Entities/Structures/Machines/Medical/cryo_pod.yml index 2184ee73ea6..f150a3f63b0 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/Medical/cryo_pod.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/Medical/cryo_pod.yml @@ -63,6 +63,9 @@ damage: 100 behaviors: - !type:EmptyAllContainersBehaviour + - !type:PlaySoundBehavior + sound: + collection: WindowShatter - !type:ChangeConstructionNodeBehavior node: machineFrame - !type:DoActsBehavior diff --git a/Resources/Prototypes/Entities/Structures/Machines/anomaly_equipment.yml b/Resources/Prototypes/Entities/Structures/Machines/anomaly_equipment.yml index 3fad77648f3..f846eea0050 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/anomaly_equipment.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/anomaly_equipment.yml @@ -85,7 +85,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalGlassBreak - !type:ExplodeBehavior - type: GuideHelp guides: diff --git a/Resources/Prototypes/Entities/Structures/Machines/base_structuremachines.yml b/Resources/Prototypes/Entities/Structures/Machines/base_structuremachines.yml index b4665a9b79a..621d9a1a7ec 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/base_structuremachines.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/base_structuremachines.yml @@ -40,7 +40,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - type: entity abstract: true diff --git a/Resources/Prototypes/Entities/Structures/Machines/chem_master.yml b/Resources/Prototypes/Entities/Structures/Machines/chem_master.yml index e215a70f4c0..d7df219663e 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/chem_master.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/chem_master.yml @@ -38,6 +38,9 @@ !type:DamageTrigger damage: 50 behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalGlassBreak - !type:ChangeConstructionNodeBehavior node: machineFrame - !type:DoActsBehavior diff --git a/Resources/Prototypes/Entities/Structures/Machines/cloning_machine.yml b/Resources/Prototypes/Entities/Structures/Machines/cloning_machine.yml index 6067149c8ae..5d9ab0dd7e4 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/cloning_machine.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/cloning_machine.yml @@ -39,6 +39,9 @@ !type:DamageTrigger damage: 100 behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalGlassBreak - !type:ChangeConstructionNodeBehavior node: machineFrame - !type:DoActsBehavior diff --git a/Resources/Prototypes/Entities/Structures/Machines/crew_monitor_server.yml b/Resources/Prototypes/Entities/Structures/Machines/crew_monitor_server.yml index 403fed9dd88..30e42d59ab5 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/crew_monitor_server.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/crew_monitor_server.yml @@ -50,7 +50,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalGlassBreak - !type:SpawnEntitiesBehavior spawn: SheetSteel1: diff --git a/Resources/Prototypes/Entities/Structures/Machines/fatextractor.yml b/Resources/Prototypes/Entities/Structures/Machines/fatextractor.yml index 33186f0a1dd..9f09e49059c 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/fatextractor.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/fatextractor.yml @@ -88,6 +88,9 @@ !type:DamageTrigger damage: 100 behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalGlassBreak - !type:ChangeConstructionNodeBehavior node: machineFrame - !type:DoActsBehavior diff --git a/Resources/Prototypes/Entities/Structures/Machines/frame.yml b/Resources/Prototypes/Entities/Structures/Machines/frame.yml index 29806e08226..3b3f0402aa2 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/frame.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/frame.yml @@ -45,6 +45,9 @@ !type:DamageTrigger damage: 100 behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalBreak - !type:ChangeConstructionNodeBehavior node: start - !type:DoActsBehavior @@ -97,6 +100,9 @@ !type:DamageTrigger damage: 100 behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalBreak - !type:ChangeConstructionNodeBehavior node: missingWires - !type:DoActsBehavior diff --git a/Resources/Prototypes/Entities/Structures/Machines/gravity_generator.yml b/Resources/Prototypes/Entities/Structures/Machines/gravity_generator.yml index 657c597b148..2eb4f57fab5 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/gravity_generator.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/gravity_generator.yml @@ -113,7 +113,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalGlassBreak - !type:SpawnEntitiesBehavior spawn: MachineFrameDestroyed: diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index 31cce3b04ca..56c58cec7e2 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -25,6 +25,9 @@ !type:DamageTrigger damage: 100 behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalBreak - !type:ChangeConstructionNodeBehavior node: machineFrame - !type:DoActsBehavior @@ -170,6 +173,7 @@ - MagazineBoxMagnum - MagazineBoxRifle - MagazineBoxLightRifle + - GrenadeBlast emagDynamicRecipes: - CartridgePistolRubber - CartridgeMagnumRubber @@ -198,6 +202,12 @@ - MagazineBoxMagnumUranium - MagazineBoxLightRifleUranium - MagazineBoxRifleUranium + - PowerCageSmall + - PowerCageMedium + - PowerCageHigh + - MagazineGrenadeEmpty + - GrenadeEMP + - GrenadeFlash - type: entity id: AutolatheHyperConvection @@ -295,9 +305,6 @@ - HolofanProjector - BluespaceBeaker - SyringeBluespace - - WeaponCrusher - - WeaponCrusherDagger - - WeaponCrusherGlaive - WeaponForceGun - WeaponLaserSvalinn - WeaponProtoKineticAccelerator @@ -434,10 +441,12 @@ - WallmountGeneratorElectronics - WallmountGeneratorAPUElectronics - WallmountSubstationElectronics + - PowerCageRechargerCircuitboard - EmitterCircuitboard - ThrusterMachineCircuitboard - GyroscopeMachineCircuitboard - MiniGravityGeneratorCircuitboard + - ShuttleGunKineticCircuitboard - GasRecyclerMachineCircuitboard - SeedExtractorMachineCircuitboard - AnalysisComputerCircuitboard @@ -704,6 +713,9 @@ - MagazineBoxMagnumRubber - MagazineBoxPistolRubber - MagazineBoxRifleRubber + - MagazineGrenadeEmpty + - GrenadeEMP + - GrenadeFlash - ShellShotgunBeanbag - ShellShotgunIncendiary - ShellShotgunUranium @@ -723,6 +735,13 @@ - ClothingHeadHelmetInsulated - ShellSoulbreaker - WeaponXrayCannon + - PowerCageSmall + - PowerCageMedium + - PowerCageHigh + - ShuttleGunSvalinnMachineGunCircuitboard + - ShuttleGunPerforatorCircuitboard + - ShuttleGunFriendshipCircuitboard + - ShuttleGunDusterCircuitboard - type: MaterialStorage whitelist: tags: diff --git a/Resources/Prototypes/Entities/Structures/Machines/material_reclaimer.yml b/Resources/Prototypes/Entities/Structures/Machines/material_reclaimer.yml index 699c3491f1c..829525439ed 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/material_reclaimer.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/material_reclaimer.yml @@ -51,6 +51,9 @@ !type:DamageTrigger damage: 100 behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalGlassBreak - !type:ChangeConstructionNodeBehavior node: machineFrame - !type:DoActsBehavior diff --git a/Resources/Prototypes/Entities/Structures/Machines/medical_scanner.yml b/Resources/Prototypes/Entities/Structures/Machines/medical_scanner.yml index 3cadb180c98..6f05baee944 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/medical_scanner.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/medical_scanner.yml @@ -59,6 +59,9 @@ !type:DamageTrigger damage: 100 behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalGlassBreak - !type:ChangeConstructionNodeBehavior node: machineFrame - !type:DoActsBehavior diff --git a/Resources/Prototypes/Entities/Structures/Machines/research.yml b/Resources/Prototypes/Entities/Structures/Machines/research.yml index f5003b17127..66ea8e538ad 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/research.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/research.yml @@ -45,7 +45,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: SheetSteel1: @@ -112,7 +112,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: SheetSteel1: diff --git a/Resources/Prototypes/Entities/Structures/Machines/smartfridge.yml b/Resources/Prototypes/Entities/Structures/Machines/smartfridge.yml index 95ce0b9d923..5a62b74ac0a 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/smartfridge.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/smartfridge.yml @@ -82,7 +82,7 @@ acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - type: Damageable damageContainer: Inorganic damageModifierSet: Metallic @@ -91,4 +91,4 @@ types: Blunt: 5 soundHit: - path: /Audio/Effects/bang.ogg + collection: MetalThud diff --git a/Resources/Prototypes/Entities/Structures/Machines/telecomms.yml b/Resources/Prototypes/Entities/Structures/Machines/telecomms.yml index 0f84f200bb0..e12826a8ce4 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/telecomms.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/telecomms.yml @@ -41,6 +41,9 @@ !type:DamageTrigger damage: 100 behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalBreak - !type:ChangeConstructionNodeBehavior node: machineFrame - !type:DoActsBehavior diff --git a/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml b/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml index b24cfb8aeaf..39339b22fc6 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml @@ -52,7 +52,7 @@ acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalGlassBreak - type: ActivatableUI key: enum.VendingMachineUiKey.Key - type: ActivatableUIRequiresPower diff --git a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/binary.yml b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/binary.yml index b99b88483c2..4bea87f8175 100644 --- a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/binary.yml +++ b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/binary.yml @@ -382,6 +382,9 @@ !type:DamageTrigger damage: 100 behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalGlassBreak - !type:ChangeConstructionNodeBehavior node: machineFrame - !type:DoActsBehavior diff --git a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/pipes.yml b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/pipes.yml index 881976f68a3..e5b77095b0e 100644 --- a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/pipes.yml +++ b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/pipes.yml @@ -33,7 +33,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -8 - !type:SpawnEntitiesBehavior diff --git a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/portable.yml b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/portable.yml index b6f1e6ec4be..e3ae06fa509 100644 --- a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/portable.yml +++ b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/portable.yml @@ -87,7 +87,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: SheetSteel1: diff --git a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/unary.yml b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/unary.yml index 45030bd28bd..c2f8fa339da 100644 --- a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/unary.yml +++ b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/unary.yml @@ -452,7 +452,7 @@ solution: tank - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - type: NodeContainer nodes: pipe: diff --git a/Resources/Prototypes/Entities/Structures/Piping/Disposal/high_pressure_machine_frame.yml b/Resources/Prototypes/Entities/Structures/Piping/Disposal/high_pressure_machine_frame.yml index 80737339453..6f3d0705cbb 100644 --- a/Resources/Prototypes/Entities/Structures/Piping/Disposal/high_pressure_machine_frame.yml +++ b/Resources/Prototypes/Entities/Structures/Piping/Disposal/high_pressure_machine_frame.yml @@ -37,6 +37,9 @@ !type:DamageTrigger damage: 100 behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalBreak - !type:ChangeConstructionNodeBehavior node: start - !type:DoActsBehavior diff --git a/Resources/Prototypes/Entities/Structures/Piping/Disposal/pipes.yml b/Resources/Prototypes/Entities/Structures/Piping/Disposal/pipes.yml index d4b7c1d3c96..218b532efcd 100644 --- a/Resources/Prototypes/Entities/Structures/Piping/Disposal/pipes.yml +++ b/Resources/Prototypes/Entities/Structures/Piping/Disposal/pipes.yml @@ -43,6 +43,9 @@ !type:DamageTrigger damage: 50 behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalBreak - !type:DoActsBehavior acts: ["Breakage"] - !type:ChangeConstructionNodeBehavior diff --git a/Resources/Prototypes/Entities/Structures/Piping/Disposal/units.yml b/Resources/Prototypes/Entities/Structures/Piping/Disposal/units.yml index 2fcc18e1b36..c5f04d80a14 100644 --- a/Resources/Prototypes/Entities/Structures/Piping/Disposal/units.yml +++ b/Resources/Prototypes/Entities/Structures/Piping/Disposal/units.yml @@ -55,7 +55,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -6 - !type:SpawnEntitiesBehavior diff --git a/Resources/Prototypes/Entities/Structures/Power/Generation/Singularity/emitter.yml b/Resources/Prototypes/Entities/Structures/Power/Generation/Singularity/emitter.yml index 646f890f90f..55ec35c6956 100644 --- a/Resources/Prototypes/Entities/Structures/Power/Generation/Singularity/emitter.yml +++ b/Resources/Prototypes/Entities/Structures/Power/Generation/Singularity/emitter.yml @@ -69,7 +69,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: SheetSteel1: diff --git a/Resources/Prototypes/Entities/Structures/Power/Generation/Tesla/coil.yml b/Resources/Prototypes/Entities/Structures/Power/Generation/Tesla/coil.yml index 8d5621206db..f236bb8a41e 100644 --- a/Resources/Prototypes/Entities/Structures/Power/Generation/Tesla/coil.yml +++ b/Resources/Prototypes/Entities/Structures/Power/Generation/Tesla/coil.yml @@ -96,7 +96,7 @@ acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: SheetSteel1: @@ -162,7 +162,7 @@ messages: WindowMessages - type: Repairable - type: Damageable - damageContainer: StructuralInorganic + damageContainer: StructuralInorganic - type: DamageVisuals thresholds: [8, 16, 25] damageDivisor: 3.333 @@ -174,12 +174,12 @@ - trigger: !type:DamageTrigger damage: 300 - behaviors: + behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: SheetSteel1: diff --git a/Resources/Prototypes/Entities/Structures/Power/Generation/generators.yml b/Resources/Prototypes/Entities/Structures/Power/Generation/generators.yml index 2bcd65533f6..4948231b909 100644 --- a/Resources/Prototypes/Entities/Structures/Power/Generation/generators.yml +++ b/Resources/Prototypes/Entities/Structures/Power/Generation/generators.yml @@ -71,7 +71,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:ExplodeBehavior - type: Explosive explosionType: Default @@ -261,7 +261,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: GeneratorRTGDamaged: @@ -305,7 +305,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: SheetSteel1: diff --git a/Resources/Prototypes/Entities/Structures/Power/Generation/portable_generator.yml b/Resources/Prototypes/Entities/Structures/Power/Generation/portable_generator.yml index 74fa0b2531b..d1f84f5b6e1 100644 --- a/Resources/Prototypes/Entities/Structures/Power/Generation/portable_generator.yml +++ b/Resources/Prototypes/Entities/Structures/Power/Generation/portable_generator.yml @@ -72,7 +72,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:ChangeConstructionNodeBehavior node: machineFrame - !type:DoActsBehavior @@ -177,7 +177,7 @@ - output_mv sprite: Structures/Power/Generation/portable_generator.rsi state: portgen0 - + - type: entity name: S.U.P.E.R.P.A.C.M.A.N.-type portable generator description: |- @@ -233,7 +233,7 @@ - output_mv sprite: Structures/Power/Generation/portable_generator.rsi state: portgen1 - + - type: entity name: J.R.P.A.C.M.A.N.-type portable generator description: |- @@ -292,7 +292,8 @@ fuelEfficiencyConstant: 0.3 - type: ChemicalFuelGeneratorAdapter solution: tank - reagent: WeldingFuel + reagents: + WeldingFuel: 1 - type: SolutionContainerManager solutions: tank: @@ -307,7 +308,7 @@ nodes: output: !type:CableDeviceNode - nodeGroupID: Apc + nodeGroupID: Apc - type: PowerMonitoringDevice group: Generator loadNode: output @@ -340,7 +341,7 @@ solution: tank - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:ChangeConstructionNodeBehavior node: machineFrame - !type:DoActsBehavior diff --git a/Resources/Prototypes/Entities/Structures/Power/Generation/solar.yml b/Resources/Prototypes/Entities/Structures/Power/Generation/solar.yml index 445ee0728d2..5a28c4962c1 100644 --- a/Resources/Prototypes/Entities/Structures/Power/Generation/solar.yml +++ b/Resources/Prototypes/Entities/Structures/Power/Generation/solar.yml @@ -8,8 +8,7 @@ - type: MeleeSound soundGroups: Brute: - path: - "/Audio/Effects/glass_hit.ogg" + collection: GlassSmash - type: Clickable - type: InteractionOutline - type: Transform diff --git a/Resources/Prototypes/Entities/Structures/Power/apc.yml b/Resources/Prototypes/Entities/Structures/Power/apc.yml index ff8b7752eff..7efa53e2542 100644 --- a/Resources/Prototypes/Entities/Structures/Power/apc.yml +++ b/Resources/Prototypes/Entities/Structures/Power/apc.yml @@ -112,6 +112,9 @@ behaviors: #excess damage, don't spawn entities. - !type:DoActsBehavior acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: MetalGlassBreak - trigger: !type:DamageTrigger damage: 50 @@ -123,6 +126,9 @@ max: 1 - !type:DoActsBehavior acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: MetalGlassBreak - type: StationInfiniteBatteryTarget - type: Electrified onHandInteract: false @@ -177,6 +183,9 @@ SheetSteel1: min: 1 max: 1 + - !type:PlaySoundBehavior + sound: + collection: MetalBreak - !type:DoActsBehavior acts: [ "Destruction" ] diff --git a/Resources/Prototypes/Entities/Structures/Power/chargers.yml b/Resources/Prototypes/Entities/Structures/Power/chargers.yml index f9ea39b63f1..44f748307cc 100644 --- a/Resources/Prototypes/Entities/Structures/Power/chargers.yml +++ b/Resources/Prototypes/Entities/Structures/Power/chargers.yml @@ -32,7 +32,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - type: StaticPrice price: 25 @@ -107,6 +107,46 @@ blacklist: tags: - PotatoBattery + +- type: entity + parent: [ BaseItemRecharger, ConstructibleMachine ] + id: PowerCageRecharger + name: cage recharger + components: + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.25,-0.35,0.25,0.35" + density: 190 + mask: + - MachineMask + layer: + - MachineLayer + - type: LitOnPowered + - type: PointLight + radius: 1.5 + color: "#03fc4e" + energy: 0.7 + - type: Charger + chargeRate: 50 + - type: Sprite + sprite: Structures/Power/cage_recharger.rsi + - type: PowerCellSlot + cellSlotId: charger_slot + - type: ItemSlots + slots: + charger_slot: + ejectOnInteract: true + name: Power cage + whitelist: + tags: + - PowerCage + - type: Machine + board: PowerCageRechargerCircuitboard + - type: StaticPrice + price: 500 - type: entity parent: BaseItemRecharger diff --git a/Resources/Prototypes/Entities/Structures/Power/substation.yml b/Resources/Prototypes/Entities/Structures/Power/substation.yml index 2155baa6ade..9d701564eb4 100644 --- a/Resources/Prototypes/Entities/Structures/Power/substation.yml +++ b/Resources/Prototypes/Entities/Structures/Power/substation.yml @@ -76,7 +76,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalGlassBreak - !type:ExplodeBehavior - !type:SpawnEntitiesBehavior spawn: @@ -210,7 +210,7 @@ - !type:ExplodeBehavior - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalGlassBreak - type: Construction graph: WallmountSubstation node: substation diff --git a/Resources/Prototypes/Entities/Structures/Shuttles/cannons.yml b/Resources/Prototypes/Entities/Structures/Shuttles/cannons.yml new file mode 100644 index 00000000000..d3408f54e5e --- /dev/null +++ b/Resources/Prototypes/Entities/Structures/Shuttles/cannons.yml @@ -0,0 +1,375 @@ +- type: entity + id: ShuttleGunBase + name: shittle gun + abstract: true + placement: + mode: SnapgridCenter + components: + - type: Appearance + - type: Clickable + - type: InteractionOutline + - type: Anchorable + - type: Pullable + - type: Rotatable + - type: Physics + bodyType: Static + - type: ContainerContainer + - type: Gun + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.45,-0.45,0.45,0.45" + density: 450 + mask: + - MachineMask + layer: + - MachineLayer + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Electronic + - type: Transform + anchored: true + - type: DeviceNetwork + deviceNetId: Wireless + receiveFrequencyId: BasicDevice + - type: WirelessNetworkConnection + range: 200 + - type: DeviceLinkSink + ports: + - Trigger + - Toggle + - On + - Off + - type: AutoShootGun + - type: GunSignalControl + - type: StaticPrice + price: 1500 + +# ---- Laser weapon branch ---- +# naming: LSE (Laser) + conventional power + suffix (c for PowerCage, e for wired energy) + Name +# example: LSE-100e "Clown destroyer" (powered by the wiring, very weak) + +- type: entity + id: ShuttleGunSvalinnMachineGun + parent: [ ShuttleGunBase, ConstructibleMachine] + name: LSE-400c "Svalinn machine gun" + description: Basic stationary laser unit. Effective against live targets and electronics. Uses regular power cells to fire, and has an extremely high rate of fire + components: + - type: Sprite + sprite: Objects/Weapons/Guns/Shuttles/laser.rsi + layers: + - state: lse-400c + - state: mag-unshaded-9 + map: ["enum.GunVisualLayers.MagUnshaded"] + shader: unshaded + - type: ContainerContainer + containers: + machine_board: !type:Container + machine_parts: !type:Container + gun_magazine: !type:ContainerSlot + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 150 + behaviors: + - !type:ChangeConstructionNodeBehavior + node: machineFrame + - !type:DoActsBehavior + acts: ["Destruction"] + - type: Gun + fireRate: 5 + useKey: false + selectedMode: SemiAuto + availableModes: + - SemiAuto + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/laser_cannon.ogg + params: + variation: 0.05 + - type: MagazineVisuals + magState: mag + steps: 10 + zeroVisible: true + - type: Machine + board: ShuttleGunSvalinnMachineGunCircuitboard + - type: ItemSlots + slots: + gun_magazine: + name: Magazine + insertSound: /Audio/Weapons/Guns/MagIn/batrifle_magin.ogg + ejectSound: /Audio/Weapons/Guns/MagOut/batrifle_magout.ogg + whitelist: + tags: + - PowerCell + - PowerCellSmall + - type: MagazineAmmoProvider + +- type: entity + id: ShuttleGunPerforator + parent: [ ShuttleGunBase, ConstructibleMachine] + name: LSE-1200c "Perforator" + description: Advanced stationary laser unit. Annihilates electronics and is extremely dangerous to health! Uses the power cage to fire. + components: + - type: Sprite + sprite: Objects/Weapons/Guns/Shuttles/laser.rsi + layers: + - state: lse-1200c + - state: mag-unshaded-9 + map: ["enum.GunVisualLayers.MagUnshaded"] + shader: unshaded + - type: ContainerContainer + containers: + machine_board: !type:Container + machine_parts: !type:Container + gun_magazine: !type:ContainerSlot + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 300 + behaviors: + - !type:ChangeConstructionNodeBehavior + node: machineFrame + - !type:DoActsBehavior + acts: ["Destruction"] + - type: Gun + fireRate: 1 + useKey: false + selectedMode: SemiAuto + availableModes: + - SemiAuto + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/laser_cannon2.ogg + params: + variation: 0.05 + - type: MagazineVisuals + magState: mag + steps: 10 + zeroVisible: true + - type: Machine + board: ShuttleGunPerforatorCircuitboard + - type: ItemSlots + slots: + gun_magazine: + name: Magazine + insertSound: /Audio/Weapons/Guns/MagIn/batrifle_magin.ogg + ejectSound: /Audio/Weapons/Guns/MagOut/batrifle_magout.ogg + whitelist: + tags: + - PowerCage + - type: MagazineAmmoProvider + +# ---- Launchers ---- +# naming: EXP (Explosion) + conventional power + suffix (g for Grenade, c for RPG Cartridge) + Name +# example: EXP-100c "Poppy" + +- type: entity + id: ShuttleGunFriendship + parent: [ShuttleGunBase, ConstructibleMachine] + name: EXP-320g "Friendship" + description: A small stationary grenade launcher that holds 2 grenades. + components: + - type: Sprite + sprite: Objects/Weapons/Guns/Shuttles/launcher.rsi + layers: + - state: exp-320g + - state: mag-7 + map: ["enum.GunVisualLayers.Mag"] + - type: ContainerContainer + containers: + machine_board: !type:Container + machine_parts: !type:Container + ballistic-ammo: !type:Container + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 200 + behaviors: + - !type:ChangeConstructionNodeBehavior + node: machineFrame + - !type:DoActsBehavior + acts: ["Destruction"] + - type: Gun + projectileSpeed: 80 + fireRate: 4 + angleDecay: 45 + minAngle: 0 + maxAngle: 15 + selectedMode: FullAuto + availableModes: + - FullAuto + soundGunshot: + path: /Audio/Items/Mining/fultext_launch.ogg + params: + pitch: 0.8 + soundEmpty: + path: /Audio/Weapons/Guns/Empty/empty.ogg + - type: BallisticAmmoProvider + whitelist: + tags: + - Grenade + capacity: 2 + soundInsert: + path: /Audio/Weapons/Guns/MagIn/batrifle_magin.ogg + - type: Machine + board: ShuttleGunFriendshipCircuitboard + - type: MagazineVisuals + magState: mag + steps: 8 + zeroVisible: false + +- type: entity + id: ShuttleGunDuster + parent: [ShuttleGunBase, ConstructibleMachine] + name: EXP-2100g "Duster" + description: A powerful stationary grenade launcher. A cartridge is required for use. + components: + - type: Sprite + sprite: Objects/Weapons/Guns/Shuttles/launcher.rsi + layers: + - state: exp-2100g + - state: mag-7 + map: ["enum.GunVisualLayers.Mag"] + - type: ContainerContainer + containers: + machine_board: !type:Container + machine_parts: !type:Container + gun_magazine: !type:ContainerSlot + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 350 + behaviors: + - !type:ChangeConstructionNodeBehavior + node: machineFrame + - !type:DoActsBehavior + acts: ["Destruction"] + - type: Gun + projectileSpeed: 40 + fireRate: 0.3 + selectedMode: FullAuto + availableModes: + - FullAuto + soundGunshot: + path: /Audio/Items/Mining/fultext_launch.ogg + params: + variation: 0.05 + pitch: 0.8 + soundEmpty: + path: /Audio/Weapons/Guns/Empty/empty.ogg + - type: Machine + board: ShuttleGunDusterCircuitboard + - type: MagazineAmmoProvider + - type: MagazineVisuals + magState: mag + steps: 8 + zeroVisible: false + - type: ItemSlots + slots: + gun_magazine: + name: Magazine + priority: 2 + whitelist: + tags: + - MagazineGrenade + insertSound: + path: /Audio/Weapons/Guns/MagIn/kinetic_reload.ogg + params: + pitch: 2 + ejectSound: /Audio/Weapons/Guns/MagOut/smg_magout.ogg + +# ---- Other weapon ---- + +- type: entity + id: ShuttleGunPirateCannon + parent: ShuttleGunBase + name: pirate ship cannon + description: Kaboom! + components: + - type: ContainerContainer + containers: + ballistic-ammo: !type:Container + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Metallic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 300 + behaviors: + - !type:DoActsBehavior + acts: ["Destruction"] + - type: Sprite + sprite: Objects/Weapons/Guns/Shuttles/pirate_cannon.rsi + layers: + - state: base + - type: Gun + fireRate: 1 + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/mateba.ogg + - type: BallisticAmmoProvider + whitelist: + tags: + - CannonBall + capacity: 1 + proto: CannonBall + soundInsert: + path: /Audio/Weapons/Guns/Gunshots/grenade_launcher.ogg + +- type: entity + id: ShuttleGunKinetic + parent: [ ShuttleGunBase, ConstructibleMachine] + name: PTK-800 "Matter Dematerializer" + description: Salvage stationary mining turret. Gradually accumulates charges on its own, extremely effective for asteroid excavation. + components: + - type: Sprite + sprite: Objects/Weapons/Guns/Shuttles/kinetic.rsi + layers: + - state: ptk-800 + - state: mag-7 + - type: ContainerContainer + containers: + machine_board: !type:Container + machine_parts: !type:Container + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 100 + behaviors: + - !type:ChangeConstructionNodeBehavior + node: machineFrame + - !type:DoActsBehavior + acts: ["Destruction"] + - type: Gun + projectileSpeed: 20 + fireRate: 2 + selectedMode: SemiAuto + angleDecay: 45 + minAngle: 5 + maxAngle: 15 + availableModes: + - SemiAuto + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/kinetic_accel.ogg + params: + variation: 0.12 + - type: RechargeBasicEntityAmmo + rechargeCooldown: 2 + rechargeSound: + path: /Audio/Weapons/Guns/Bolt/lmg_bolt_closed.ogg + params: + pitch: 1.2 + variation: 0.08 + - type: BasicEntityAmmoProvider + proto: BulletKineticShuttle + capacity: 5 + count: 5 + - type: Machine + board: ShuttleGunKineticCircuitboard diff --git a/Resources/Prototypes/Entities/Structures/Shuttles/thrusters.yml b/Resources/Prototypes/Entities/Structures/Shuttles/thrusters.yml index fb053d46a47..eb299e3f3a6 100644 --- a/Resources/Prototypes/Entities/Structures/Shuttles/thrusters.yml +++ b/Resources/Prototypes/Entities/Structures/Shuttles/thrusters.yml @@ -5,6 +5,17 @@ description: A thruster that allows a shuttle to move. abstract: true components: + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.45,-0.45,0.45,0.45" + density: 60 + mask: + - MachineMask + layer: + - MachineLayer - type: AmbientSound enabled: false range: 4 @@ -30,18 +41,18 @@ - type: ExtensionCableReceiver - type: Damageable damageContainer: Inorganic - damageModifierSet: Metallic + damageModifierSet: Electronic - type: Destructible thresholds: - trigger: !type:DamageTrigger - damage: 300 # Considering we need a lot of thrusters didn't want to make an individual one too tanky + damage: 100 # Considering we need a lot of thrusters didn't want to make an individual one too tanky behaviors: - !type:DoActsBehavior acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - type: StaticPrice price: 300 placement: @@ -70,7 +81,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:ChangeConstructionNodeBehavior node: machineFrame - type: Sprite @@ -179,12 +190,15 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:ChangeConstructionNodeBehavior node: machineFrame - type: UpgradePowerDraw powerDrawMultiplier: 0.75 scaling: Exponential + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Electronic - type: StaticPrice price: 2000 diff --git a/Resources/Prototypes/Entities/Structures/Specific/Anomaly/anomalies.yml b/Resources/Prototypes/Entities/Structures/Specific/Anomaly/anomalies.yml index fdda7ea0a4a..aecef8c637b 100644 --- a/Resources/Prototypes/Entities/Structures/Specific/Anomaly/anomalies.yml +++ b/Resources/Prototypes/Entities/Structures/Specific/Anomaly/anomalies.yml @@ -208,7 +208,6 @@ types: Radiation: 10 - - type: entity id: AnomalyIce parent: BaseAnomaly @@ -290,6 +289,86 @@ - WallSpawnAsteroid - SpawnMobOreCrab +- type: entity + id: AnomalyFlora + parent: BaseAnomaly + suffix: Flora + components: + - type: Sprite + drawdepth: Mobs + sprite: Structures/Specific/Anomalies/flora_anom.rsi + layers: + - state: anom + map: ["enum.AnomalyVisualLayers.Base"] + - state: pulse + map: ["enum.AnomalyVisualLayers.Animated"] + visible: false + - type: PointLight + radius: 8.0 + energy: 8.5 + color: "#6270bb" + - type: Anomaly + animationTime: 6 + offset: 0.05, 0 + corePrototype: AnomalyCoreFlora + coreInertPrototype: AnomalyCoreFloraInert + anomalyContactDamage: + types: + Slash: 0 + - type: TileSpawnAnomaly + floorTileId: FloorAstroGrass + spawnRange: 6 + - type: EntitySpawnAnomaly + maxSpawnAmount: 15 + spawnRange: 6 + superCriticalSpawns: + - KudzuFlowerAngry + spawns: + - KudzuFlowerFriendly + +- type: entity + id: AnomalyFloraBulb + name: strange glowing berry + parent: BaseStructure + description: It's a beautiful strange glowing berry. It seems to have something growing inside it... + suffix: Flora Anomaly + components: + - type: Transform + anchored: true + - type: Physics + bodyType: Static + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.2 + - type: InteractionOutline + - type: Damageable + damageContainer: Biological + damageModifierSet: Diona + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 1 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:SpawnEntitiesBehavior + spawn: + EffectAnomalyFloraBulb: + min: 1 + max: 1 + - type: PointLight + radius: 2.0 + energy: 4.5 + color: "#6270bb" + - type: Sprite + noRot: true + sprite: Structures/Specific/Anomalies/flora_anom.rsi + state: bulb + - type: entity id: AnomalyLiquid parent: BaseAnomaly diff --git a/Resources/Prototypes/Entities/Structures/Specific/Anomaly/cores.yml b/Resources/Prototypes/Entities/Structures/Specific/Anomaly/cores.yml index 6679b2d5333..928516f21b2 100644 --- a/Resources/Prototypes/Entities/Structures/Specific/Anomaly/cores.yml +++ b/Resources/Prototypes/Entities/Structures/Specific/Anomaly/cores.yml @@ -135,6 +135,19 @@ castShadows: false - type: Electrified +- type: entity + parent: BaseAnomalyCore + id: AnomalyCoreFlora + suffix: Flora + components: + - type: Sprite + sprite: Structures/Specific/Anomalies/Cores/flora_core.rsi + - type: PointLight + radius: 1.5 + energy: 2.0 + color: "#6270bb" + castShadows: false + # Inert cores - type: entity @@ -255,3 +268,16 @@ energy: 2.0 color: "#ffffaa" castShadows: false + +- type: entity + parent: BaseAnomalyInertCore + id: AnomalyCoreFloraInert + suffix: Flora, Inert + components: + - type: Sprite + sprite: Structures/Specific/Anomalies/Cores/flora_core.rsi + - type: PointLight + radius: 1.5 + energy: 2.0 + color: "#6270bb" + castShadows: false diff --git a/Resources/Prototypes/Entities/Structures/Storage/Canisters/gas_canisters.yml b/Resources/Prototypes/Entities/Structures/Storage/Canisters/gas_canisters.yml index d02b0d02b1a..760eb31755b 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/Canisters/gas_canisters.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/Canisters/gas_canisters.yml @@ -52,7 +52,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: GasCanisterBrokenBase: @@ -141,7 +141,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: StorageCanisterBroken: @@ -183,7 +183,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: AirCanisterBroken: @@ -222,7 +222,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: OxygenCanisterBroken: @@ -277,7 +277,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: NitrogenCanisterBroken: @@ -334,7 +334,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: CarbonDioxideCanisterBroken: @@ -395,7 +395,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: PlasmaCanisterBroken: @@ -440,7 +440,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: TritiumCanisterBroken: @@ -486,7 +486,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: WaterVaporCanisterBroken: @@ -531,7 +531,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: AmmoniaCanisterBroken: @@ -579,7 +579,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: NitrousOxideCanisterBroken: @@ -626,7 +626,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: FrezonCanisterBroken: @@ -660,7 +660,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: SheetPlasteel1: diff --git a/Resources/Prototypes/Entities/Structures/Storage/Closets/Lockers/base_structurelockers.yml b/Resources/Prototypes/Entities/Structures/Storage/Closets/Lockers/base_structurelockers.yml index 34f4db1ede5..4448d551e33 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/Closets/Lockers/base_structurelockers.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/Closets/Lockers/base_structurelockers.yml @@ -35,7 +35,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -6 - !type:SpawnEntitiesBehavior diff --git a/Resources/Prototypes/Entities/Structures/Storage/Closets/base_structureclosets.yml b/Resources/Prototypes/Entities/Structures/Storage/Closets/base_structureclosets.yml index 02729556c9f..d1a60566d4e 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/Closets/base_structureclosets.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/Closets/base_structureclosets.yml @@ -33,7 +33,7 @@ types: Blunt: 5 soundHit: - path: /Audio/Effects/bang.ogg + collection: MetalThud - type: InteractionOutline - type: Physics - type: Fixtures @@ -75,7 +75,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -6 - !type:SpawnEntitiesBehavior @@ -163,7 +163,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -6 - !type:SpawnEntitiesBehavior @@ -230,7 +230,7 @@ types: Blunt: 5 soundHit: - path: /Audio/Effects/bang.ogg + collection: MetalThud - type: InteractionOutline - type: Physics - type: Fixtures @@ -271,7 +271,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -6 - !type:SpawnEntitiesBehavior diff --git a/Resources/Prototypes/Entities/Structures/Storage/Crates/base_structurecrates.yml b/Resources/Prototypes/Entities/Structures/Storage/Crates/base_structurecrates.yml index 8b0f4c26e0f..76a88e7858f 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/Crates/base_structurecrates.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/Crates/base_structurecrates.yml @@ -48,6 +48,9 @@ behaviors: - !type:DoActsBehavior acts: ["Destruction"] + - !type:PlaySoundBehavior + sound: + collection: MetalBreak - type: Appearance - type: EntityStorageVisuals stateDoorOpen: open @@ -111,6 +114,9 @@ behaviors: - !type:DoActsBehavior acts: ["Destruction"] + - !type:PlaySoundBehavior + sound: + collection: MetalBreak - type: Construction graph: CrateSecure node: cratesecure diff --git a/Resources/Prototypes/Entities/Structures/Storage/Crates/crates.yml b/Resources/Prototypes/Entities/Structures/Storage/Crates/crates.yml index 2757d129ab0..31340114da2 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/Crates/crates.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/Crates/crates.yml @@ -151,7 +151,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroy - !type:SpawnEntitiesBehavior spawn: MaterialWebSilk: @@ -317,7 +317,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroyHeavy - !type:SpawnEntitiesBehavior spawn: MaterialWoodPlank1: @@ -367,7 +367,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: MetalGlassBreak - !type:SpawnEntitiesBehavior spawn: SheetPlastic: @@ -462,7 +462,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroy - !type:SpawnEntitiesBehavior spawn: MaterialWoodPlank1: @@ -500,7 +500,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroy - !type:SpawnEntitiesBehavior spawn: MaterialWoodPlank1: diff --git a/Resources/Prototypes/Entities/Structures/Storage/Tanks/base_structuretanks.yml b/Resources/Prototypes/Entities/Structures/Storage/Tanks/base_structuretanks.yml index eef5ef6ed6c..79015e2d049 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/Tanks/base_structuretanks.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/Tanks/base_structuretanks.yml @@ -53,7 +53,7 @@ solution: tank - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:DoActsBehavior acts: ["Destruction"] - type: SolutionContainerManager diff --git a/Resources/Prototypes/Entities/Structures/Storage/filing_cabinets.yml b/Resources/Prototypes/Entities/Structures/Storage/filing_cabinets.yml index ea49d5f04da..d341c017a70 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/filing_cabinets.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/filing_cabinets.yml @@ -56,7 +56,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: SheetSteel1: @@ -145,7 +145,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: SheetSteel1: diff --git a/Resources/Prototypes/Entities/Structures/Storage/storage.yml b/Resources/Prototypes/Entities/Structures/Storage/storage.yml index 2069fb1e3f1..79a1e357998 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/storage.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/storage.yml @@ -47,7 +47,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -6 - !type:SpawnEntitiesBehavior diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/bar_sign.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/bar_sign.yml index 109741e8623..8e957abfe7f 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/bar_sign.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/bar_sign.yml @@ -7,8 +7,7 @@ - type: MeleeSound soundGroups: Brute: - path: - "/Audio/Effects/glass_hit.ogg" + collection: GlassSmash - type: WallMount - type: Sprite drawdepth: Objects diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/air_alarm.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/air_alarm.yml index be1834ce5e8..9af8f8dd3de 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/air_alarm.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/air_alarm.yml @@ -102,7 +102,7 @@ acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalGlassBreak params: volume: -4 diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/bell.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/bell.yml index a4ea19d15e8..24e5cfda2af 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/bell.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/bell.yml @@ -16,7 +16,7 @@ - state: bell - type: InteractionPopup successChance: 1 - interactSuccessSound: + interactSuccessSound: path: /Audio/Weapons/boxingbell.ogg - type: Clickable - type: MeleeSound @@ -44,4 +44,4 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/defib_cabinet.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/defib_cabinet.yml index d5132100db1..517d2d697d9 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/defib_cabinet.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/defib_cabinet.yml @@ -54,7 +54,7 @@ acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalGlassBreak placement: mode: SnapgridCenter diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/extinguisher_cabinet.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/extinguisher_cabinet.yml index ca2b381142f..a0775641ef2 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/extinguisher_cabinet.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/extinguisher_cabinet.yml @@ -54,7 +54,7 @@ acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalGlassBreak params: volume: -4 placement: diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/fire_alarm.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/fire_alarm.yml index d8830477f46..05988fbc217 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/fire_alarm.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/fire_alarm.yml @@ -99,7 +99,7 @@ acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalGlassBreak params: volume: -4 placement: diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/fireaxe_cabinet.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/fireaxe_cabinet.yml index 1e78eb501f2..070c6e526d4 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/fireaxe_cabinet.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/fireaxe_cabinet.yml @@ -9,8 +9,7 @@ - type: MeleeSound soundGroups: Brute: - path: - "/Audio/Effects/glass_hit.ogg" + collection: GlassSmash - type: WallMount - type: Clickable - type: InteractionOutline diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/intercom.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/intercom.yml index 9848993b082..037a89a9886 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/intercom.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/intercom.yml @@ -89,7 +89,7 @@ acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalGlassBreak params: volume: -4 - type: GenericVisualizer diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/noticeboard.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/noticeboard.yml index bad84227c85..4a442d0542f 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/noticeboard.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/noticeboard.yml @@ -29,7 +29,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroy - !type:SpawnEntitiesBehavior spawn: MaterialWoodPlank: diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/surveillance_camera.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/surveillance_camera.yml index c85a5b03ae1..dfbe99b2d2a 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/surveillance_camera.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/surveillance_camera.yml @@ -64,7 +64,7 @@ acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -8 placement: diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/switch.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/switch.yml index 60e097a46d9..1b285348d5b 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/switch.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/switch.yml @@ -91,7 +91,7 @@ acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -8 diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/walldispenser.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/walldispenser.yml index 4d0e3cb5321..c8778aea50a 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/walldispenser.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/walldispenser.yml @@ -4,7 +4,7 @@ description: Wallmount reagent dispenser. placement: mode: SnapgridCenter - snap: + snap: - Wallmount components: - type: WallMount @@ -50,7 +50,7 @@ solution: tank - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:DoActsBehavior acts: ["Destruction"] - type: SolutionContainerManager @@ -86,4 +86,4 @@ - Welding weldingDamage: types: - Heat: 20 \ No newline at end of file + Heat: 20 diff --git a/Resources/Prototypes/Entities/Structures/Walls/fence_metal.yml b/Resources/Prototypes/Entities/Structures/Walls/fence_metal.yml index 583ea2ebb24..559970aa91f 100644 --- a/Resources/Prototypes/Entities/Structures/Walls/fence_metal.yml +++ b/Resources/Prototypes/Entities/Structures/Walls/fence_metal.yml @@ -37,7 +37,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: PartRodMetal1: @@ -125,7 +125,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak - !type:SpawnEntitiesBehavior spawn: PartRodMetal1: diff --git a/Resources/Prototypes/Entities/Structures/Walls/girders.yml b/Resources/Prototypes/Entities/Structures/Walls/girders.yml index a1ed2332b99..3c9a2e70335 100644 --- a/Resources/Prototypes/Entities/Structures/Walls/girders.yml +++ b/Resources/Prototypes/Entities/Structures/Walls/girders.yml @@ -49,6 +49,9 @@ max: 1 - !type:DoActsBehavior acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: MetalBreak - type: StaticPrice price: 10 @@ -72,6 +75,9 @@ behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: MetalBreak - trigger: !type:DamageTrigger damage: 50 @@ -86,5 +92,8 @@ max: 1 - !type:DoActsBehavior acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: MetalBreak - type: StaticPrice price: 66 diff --git a/Resources/Prototypes/Entities/Structures/Walls/railing.yml b/Resources/Prototypes/Entities/Structures/Walls/railing.yml index 87a89dfc574..95d16742d58 100644 --- a/Resources/Prototypes/Entities/Structures/Walls/railing.yml +++ b/Resources/Prototypes/Entities/Structures/Walls/railing.yml @@ -43,7 +43,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -6 - !type:SpawnEntitiesBehavior @@ -112,7 +112,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -6 - !type:SpawnEntitiesBehavior @@ -172,7 +172,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -6 - !type:SpawnEntitiesBehavior @@ -247,7 +247,7 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -6 - !type:SpawnEntitiesBehavior diff --git a/Resources/Prototypes/Entities/Structures/Walls/walls.yml b/Resources/Prototypes/Entities/Structures/Walls/walls.yml index 35ca29c1895..4aa5178c72d 100644 --- a/Resources/Prototypes/Entities/Structures/Walls/walls.yml +++ b/Resources/Prototypes/Entities/Structures/Walls/walls.yml @@ -293,6 +293,9 @@ !type:DamageTrigger damage: 300 behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalSlam - !type:DoActsBehavior acts: ["Destruction"] - trigger: @@ -301,13 +304,11 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalSlam - !type:ChangeConstructionNodeBehavior node: girder - !type:DoActsBehavior acts: ["Destruction"] - destroySound: - path: /Audio/Effects/metalbreak.ogg - type: IconSmooth key: walls base: gold @@ -364,6 +365,9 @@ !type:DamageTrigger damage: 300 behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalSlam - !type:DoActsBehavior acts: ["Destruction"] - trigger: @@ -372,13 +376,11 @@ behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalSlam - !type:ChangeConstructionNodeBehavior node: girder - !type:DoActsBehavior acts: ["Destruction"] - destroySound: - path: /Audio/Effects/metalbreak.ogg - type: IconSmooth key: walls base: plasma @@ -409,19 +411,20 @@ behaviors: - !type:DoActsBehavior acts: ["Destruction"] + - !type:PlaySoundBehavior + sound: + collection: MetalSlam - trigger: !type:DamageTrigger damage: 150 behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalSlam - !type:ChangeConstructionNodeBehavior node: girder - !type:DoActsBehavior acts: ["Destruction"] - destroySound: - path: /Audio/Effects/metalbreak.ogg - type: IconSmooth key: walls base: plastic @@ -562,19 +565,20 @@ behaviors: - !type:DoActsBehavior acts: ["Destruction"] + - !type:PlaySoundBehavior + sound: + collection: MetalSlam - trigger: !type:DamageTrigger damage: 400 behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalSlam - !type:ChangeConstructionNodeBehavior node: girder - !type:DoActsBehavior acts: ["Destruction"] - destroySound: - path: /Audio/Effects/metalbreak.ogg - type: IconSmooth key: walls base: reinf_over @@ -685,19 +689,20 @@ behaviors: - !type:DoActsBehavior acts: ["Destruction"] + - !type:PlaySoundBehavior + sound: + collection: MetalSlam - trigger: !type:DamageTrigger damage: 150 behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalSlam - !type:ChangeConstructionNodeBehavior node: girder - !type:DoActsBehavior acts: ["Destruction"] - destroySound: - path: /Audio/Effects/metalbreak.ogg - type: IconSmooth key: walls base: silver @@ -764,6 +769,9 @@ behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: MetalSlam - trigger: !type:DamageTrigger damage: 300 @@ -772,7 +780,7 @@ node: girder - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalSlam - !type:DoActsBehavior acts: ["Destruction"] - type: Construction @@ -854,19 +862,20 @@ behaviors: - !type:DoActsBehavior acts: ["Destruction"] + - !type:PlaySoundBehavior + sound: + collection: MetalSlam - trigger: !type:DamageTrigger damage: 200 behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalSlam - !type:ChangeConstructionNodeBehavior node: girder - !type:DoActsBehavior acts: ["Destruction"] - destroySound: - path: /Audio/Effects/metalbreak.ogg - type: IconSmooth key: walls base: solid @@ -915,19 +924,20 @@ behaviors: - !type:DoActsBehavior acts: ["Destruction"] + - !type:PlaySoundBehavior + sound: + collection: MetalSlam - trigger: !type:DamageTrigger damage: 200 behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalSlam - !type:ChangeConstructionNodeBehavior node: girder - !type:DoActsBehavior acts: ["Destruction"] - destroySound: - path: /Audio/Effects/metalbreak.ogg - type: IconSmooth key: walls base: solidrust @@ -952,19 +962,20 @@ behaviors: - !type:DoActsBehavior acts: ["Destruction"] + - !type:PlaySoundBehavior + sound: + collection: MetalSlam - trigger: !type:DamageTrigger damage: 150 behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalSlam - !type:ChangeConstructionNodeBehavior node: girder - !type:DoActsBehavior acts: ["Destruction"] - destroySound: - path: /Audio/Effects/metalbreak.ogg - type: IconSmooth key: walls base: uranium @@ -991,19 +1002,20 @@ behaviors: - !type:DoActsBehavior acts: ["Destruction"] + - !type:PlaySoundBehavior + sound: + collection: WoodDestroyHeavy - trigger: !type:DamageTrigger damage: 150 behaviors: - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: WoodDestroyHeavy - !type:ChangeConstructionNodeBehavior node: girder - !type:DoActsBehavior acts: ["Destruction"] - destroySound: - path: /Audio/Effects/metalbreak.ogg - type: IconSmooth key: walls base: wood @@ -1045,7 +1057,7 @@ max: 1 - !type:PlaySoundBehavior sound: - path: /Audio/Effects/woodhit.ogg + collection: WoodDestroy - type: IconSmooth key: walls base: wall diff --git a/Resources/Prototypes/Entities/Structures/Windows/mining.yml b/Resources/Prototypes/Entities/Structures/Windows/mining.yml index 0004cf4ec07..fc49b9e401c 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/mining.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/mining.yml @@ -28,7 +28,7 @@ behaviors: - !type:PlaySoundBehavior sound: - collection: GlassBreak + collection: WindowShatter - !type:SpawnEntitiesBehavior spawn: ShardGlassReinforced: diff --git a/Resources/Prototypes/Entities/Structures/Windows/plasma.yml b/Resources/Prototypes/Entities/Structures/Windows/plasma.yml index 96627966984..20a86c8704d 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/plasma.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/plasma.yml @@ -19,13 +19,16 @@ behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: WindowShatter - trigger: !type:DamageTrigger damage: 60 behaviors: - !type:PlaySoundBehavior sound: - collection: GlassBreak + collection: WindowShatter - !type:SpawnEntitiesBehavior spawn: ShardGlassPlasma: @@ -84,7 +87,7 @@ behaviors: - !type:PlaySoundBehavior sound: - collection: GlassBreak + collection: WindowShatter - !type:SpawnEntitiesBehavior spawn: ShardGlassPlasma: diff --git a/Resources/Prototypes/Entities/Structures/Windows/reinforced.yml b/Resources/Prototypes/Entities/Structures/Windows/reinforced.yml index 1a12fdfdfde..0980a3f8c16 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/reinforced.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/reinforced.yml @@ -22,13 +22,16 @@ behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: WindowShatter - trigger: !type:DamageTrigger damage: 75 behaviors: - !type:PlaySoundBehavior sound: - collection: GlassBreak + collection: WindowShatter - !type:SpawnEntitiesBehavior spawn: ShardGlassReinforced: @@ -104,7 +107,7 @@ behaviors: - !type:PlaySoundBehavior sound: - collection: GlassBreak + collection: WindowShatter - !type:SpawnEntitiesBehavior spawn: ShardGlassReinforced: diff --git a/Resources/Prototypes/Entities/Structures/Windows/rplasma.yml b/Resources/Prototypes/Entities/Structures/Windows/rplasma.yml index 8b61c605c5c..8e07a096c19 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/rplasma.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/rplasma.yml @@ -21,13 +21,16 @@ behaviors: #excess damage, don't spawn entities. - !type:DoActsBehavior acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: WindowShatter - trigger: !type:DamageTrigger damage: 100 behaviors: - !type:PlaySoundBehavior sound: - collection: GlassBreak + collection: WindowShatter - !type:SpawnEntitiesBehavior spawn: ShardGlassPlasma: @@ -93,7 +96,7 @@ behaviors: - !type:PlaySoundBehavior sound: - collection: GlassBreak + collection: WindowShatter - !type:SpawnEntitiesBehavior spawn: ShardGlassPlasma: diff --git a/Resources/Prototypes/Entities/Structures/Windows/ruranium.yml b/Resources/Prototypes/Entities/Structures/Windows/ruranium.yml index d1dba163b81..90199295711 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/ruranium.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/ruranium.yml @@ -25,7 +25,7 @@ behaviors: - !type:PlaySoundBehavior sound: - collection: GlassBreak + collection: WindowShatter - !type:SpawnEntitiesBehavior spawn: ShardGlassUranium: diff --git a/Resources/Prototypes/Entities/Structures/Windows/shuttle.yml b/Resources/Prototypes/Entities/Structures/Windows/shuttle.yml index 07a5d4db99a..c882bb13a06 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/shuttle.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/shuttle.yml @@ -28,7 +28,7 @@ behaviors: - !type:PlaySoundBehavior sound: - collection: GlassBreak + collection: WindowShatter - !type:SpawnEntitiesBehavior spawn: ShardGlassReinforced: diff --git a/Resources/Prototypes/Entities/Structures/Windows/uranium.yml b/Resources/Prototypes/Entities/Structures/Windows/uranium.yml index b5b414385dd..a857160b785 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/uranium.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/uranium.yml @@ -26,7 +26,7 @@ behaviors: - !type:PlaySoundBehavior sound: - collection: GlassBreak + collection: WindowShatter - !type:SpawnEntitiesBehavior spawn: ShardGlassUranium: diff --git a/Resources/Prototypes/Entities/Structures/Windows/window.yml b/Resources/Prototypes/Entities/Structures/Windows/window.yml index 27bdb803490..e8a463b5284 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/window.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/window.yml @@ -11,8 +11,7 @@ - type: MeleeSound soundGroups: Brute: - path: - "/Audio/Effects/glass_hit.ogg" + collection: GlassSmack - type: WallMount arc: 360 # interact despite grilles - type: Tag @@ -49,6 +48,9 @@ !type:DamageTrigger damage: 100 behaviors: + - !type:PlaySoundBehavior + sound: + collection: WindowShatter - !type:DoActsBehavior acts: [ "Destruction" ] - trigger: @@ -57,7 +59,7 @@ behaviors: - !type:PlaySoundBehavior sound: - collection: GlassBreak + collection: WindowShatter - !type:SpawnEntitiesBehavior spawn: ShardGlass: @@ -106,8 +108,7 @@ - type: MeleeSound soundGroups: Brute: - path: - "/Audio/Effects/glass_hit.ogg" + collection: GlassSmack - type: Sprite drawdepth: Mobs sprite: Structures/Windows/directional.rsi @@ -146,13 +147,16 @@ behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: WindowShatter - trigger: !type:DamageTrigger damage: 50 behaviors: - !type:PlaySoundBehavior sound: - collection: GlassBreak + collection: WindowShatter - !type:SpawnEntitiesBehavior spawn: ShardGlass: diff --git a/Resources/Prototypes/Entities/Structures/hydro_tray.yml b/Resources/Prototypes/Entities/Structures/hydro_tray.yml index 4408213804a..4113287b9af 100644 --- a/Resources/Prototypes/Entities/Structures/hydro_tray.yml +++ b/Resources/Prototypes/Entities/Structures/hydro_tray.yml @@ -73,6 +73,9 @@ behaviors: - !type:ChangeConstructionNodeBehavior node: machineFrame + - !type:PlaySoundBehavior + sound: + collection: MetalGlassBreak - !type:DoActsBehavior acts: ["Destruction"] - type: Machine diff --git a/Resources/Prototypes/Entities/Structures/meat_spike.yml b/Resources/Prototypes/Entities/Structures/meat_spike.yml index a312fcb835e..086066f5c26 100644 --- a/Resources/Prototypes/Entities/Structures/meat_spike.yml +++ b/Resources/Prototypes/Entities/Structures/meat_spike.yml @@ -31,7 +31,7 @@ acts: ["Destruction"] - !type:PlaySoundBehavior sound: - path: /Audio/Effects/metalbreak.ogg + collection: MetalBreak params: volume: -4 - !type:SpawnEntitiesBehavior diff --git a/Resources/Prototypes/Flavors/flavors.yml b/Resources/Prototypes/Flavors/flavors.yml index 57f37295d60..8962de2bb29 100644 --- a/Resources/Prototypes/Flavors/flavors.yml +++ b/Resources/Prototypes/Flavors/flavors.yml @@ -174,6 +174,21 @@ flavorType: Base description: flavor-base-clean +- type: flavor + id: mustard + flavorType: Complex + description: flavor-complex-mustard + +- type: flavor + id: mayonnaise + flavorType: Complex + description: flavor-complex-mayonnaise + +- type: flavor + id: ketchunaise + flavorType: Complex + description: flavor-complex-ketchunaise + - type: flavor id: nothing flavorType: Complex @@ -888,4 +903,3 @@ id: light flavorType: Complex description: flavor-complex-light - \ No newline at end of file diff --git a/Resources/Prototypes/Hydroponics/seeds.yml b/Resources/Prototypes/Hydroponics/seeds.yml index 818ecbb3caa..7c94546602c 100644 --- a/Resources/Prototypes/Hydroponics/seeds.yml +++ b/Resources/Prototypes/Hydroponics/seeds.yml @@ -127,6 +127,10 @@ Min: 1 Max: 5 PotencyDivisor: 20 + Oculine: + Min: 2 + Max: 6 + PotencyDivisor: 20 Vitamin: Min: 1 Max: 4 diff --git a/Resources/Prototypes/Reagents/Consumable/Food/condiments.yml b/Resources/Prototypes/Reagents/Consumable/Food/condiments.yml index 5e7520835d8..48a9f8a3241 100644 --- a/Resources/Prototypes/Reagents/Consumable/Food/condiments.yml +++ b/Resources/Prototypes/Reagents/Consumable/Food/condiments.yml @@ -73,8 +73,7 @@ group: Foods desc: reagent-desc-ketchunaise physicalDesc: reagent-physical-desc-saucey - #I love it when people just make up fake prototypes. - #flavor: piquant + flavor: ketchunaise color: "#fba399" recognizable: true @@ -84,7 +83,7 @@ group: Foods desc: reagent-desc-mayo physicalDesc: reagent-physical-desc-thick - flavor: sour + flavor: mayonnaise color: "#f9f5e5" recognizable: true @@ -94,7 +93,7 @@ group: Foods desc: reagent-desc-mustard physicalDesc: reagent-physical-desc-thick - flavor: sour + flavor: mustard color: "#ffdb58" recognizable: true diff --git a/Resources/Prototypes/Recipes/Cooking/meal_recipes.yml b/Resources/Prototypes/Recipes/Cooking/meal_recipes.yml index 8416430cebc..0b66658d163 100644 --- a/Resources/Prototypes/Recipes/Cooking/meal_recipes.yml +++ b/Resources/Prototypes/Recipes/Cooking/meal_recipes.yml @@ -1818,6 +1818,17 @@ FoodMeatLizard: 1 FoodKebabSkewer: 1 +- type: microwaveMealRecipe + id: RecipeSnakeKebab + name: snake kebab recipe + result: FoodMeatSnakeKebab + time: 15 + reagents: + Wine: 5 + solids: + FoodMeatSnake: 1 + FoodKebabSkewer: 1 + - type: microwaveMealRecipe id: RecipeFoodMealSoftTaco name: soft taco recipe diff --git a/Resources/Prototypes/Recipes/Lathes/Parts.yml b/Resources/Prototypes/Recipes/Lathes/Parts.yml index 658248c140e..90cff2174d6 100644 --- a/Resources/Prototypes/Recipes/Lathes/Parts.yml +++ b/Resources/Prototypes/Recipes/Lathes/Parts.yml @@ -1,6 +1,7 @@ - type: latheRecipe id: CapacitorStockPart result: CapacitorStockPart + category: Parts completetime: 1 materials: Steel: 50 @@ -9,6 +10,7 @@ - type: latheRecipe id: MatterBinStockPart result: MatterBinStockPart + category: Parts completetime: 1 materials: Steel: 50 @@ -17,6 +19,7 @@ - type: latheRecipe id: MicroManipulatorStockPart result: MicroManipulatorStockPart + category: Parts completetime: 1 materials: Steel: 50 diff --git a/Resources/Prototypes/Recipes/Lathes/categories.yml b/Resources/Prototypes/Recipes/Lathes/categories.yml new file mode 100644 index 00000000000..8faa67af1b3 --- /dev/null +++ b/Resources/Prototypes/Recipes/Lathes/categories.yml @@ -0,0 +1,31 @@ +- type: latheCategory + id: Ammo + name: lathe-category-ammo + +- type: latheCategory + id: Circuitry + name: lathe-category-circuitry + +- type: latheCategory + id: Lights + name: lathe-category-lights + +- type: latheCategory + id: Mech + name: lathe-category-mechs + +- type: latheCategory + id: Parts + name: lathe-category-parts + +- type: latheCategory + id: Robotics + name: lathe-category-robotics + +- type: latheCategory + id: Tools + name: lathe-category-tools + +- type: latheCategory + id: Weapons + name: lathe-category-weapons diff --git a/Resources/Prototypes/Recipes/Lathes/devices.yml b/Resources/Prototypes/Recipes/Lathes/devices.yml index 1a1f5326e39..62582fad9cf 100644 --- a/Resources/Prototypes/Recipes/Lathes/devices.yml +++ b/Resources/Prototypes/Recipes/Lathes/devices.yml @@ -1,6 +1,7 @@ - type: latheRecipe id: TimerTrigger result: TimerTrigger + category: Parts completetime: 2 materials: Steel: 300 @@ -9,6 +10,7 @@ - type: latheRecipe id: SignalTrigger result: SignalTrigger + category: Parts completetime: 2 materials: Steel: 300 @@ -17,6 +19,7 @@ - type: latheRecipe id: VoiceTrigger result: VoiceTrigger + category: Parts completetime: 2 materials: Steel: 300 @@ -25,6 +28,7 @@ - type: latheRecipe id: Igniter result: Igniter + category: Parts completetime: 2 materials: Steel: 300 @@ -34,6 +38,7 @@ - type: latheRecipe id: ChemicalPayload result: ChemicalPayload + category: Weapons completetime: 2 materials: Steel: 200 @@ -42,6 +47,7 @@ - type: latheRecipe id: FlashPayload result: FlashPayload + category: Weapons completetime: 2 materials: Steel: 50 @@ -52,6 +58,7 @@ - type: latheRecipe id: ExplosivePayload result: ExplosivePayload + category: Weapons completetime: 4 materials: Steel: 100 @@ -63,6 +70,7 @@ - type: latheRecipe id: Signaller result: RemoteSignaller + category: Parts completetime: 2 materials: Steel: 100 @@ -72,6 +80,7 @@ - type: latheRecipe id: AnomalyLocator result: AnomalyLocatorEmpty + category: Tools completetime: 3 materials: Steel: 400 @@ -80,6 +89,7 @@ - type: latheRecipe id: AnomalyLocatorWide result: AnomalyLocatorWideEmpty + category: Tools completetime: 3 materials: Steel: 400 @@ -88,6 +98,7 @@ - type: latheRecipe id: AnomalyScanner result: AnomalyScanner + category: Tools completetime: 2 materials: Plastic: 200 @@ -96,6 +107,7 @@ - type: latheRecipe id: WeaponPistolCHIMP result: WeaponPistolCHIMP + category: Tools completetime: 5 materials: Steel: 500 @@ -104,6 +116,7 @@ - type: latheRecipe id: WeaponGauntletGorilla result: WeaponGauntletGorilla + category: Tools completetime: 5 materials: Steel: 1500 @@ -152,36 +165,10 @@ Plasma: 1500 Uranium: 150 -- type: latheRecipe - id: WeaponCrusher - result: WeaponCrusher - completetime: 5 - materials: - Steel: 1000 - Glass: 250 - Plastic: 100 - -- type: latheRecipe - id: WeaponCrusherDagger - result: WeaponCrusherDagger - completetime: 5 - materials: - Steel: 500 - Glass: 250 - Plastic: 50 - -- type: latheRecipe - id: WeaponCrusherGlaive - result: WeaponCrusherGlaive - completetime: 5 - materials: - Steel: 1500 - Glass: 250 - Silver: 250 - - type: latheRecipe id: WeaponForceGun result: WeaponForceGun + category: Tools completetime: 5 materials: Steel: 500 @@ -200,6 +187,7 @@ - type: latheRecipe id: WeaponProtoKineticAccelerator result: WeaponProtoKineticAccelerator + category: Weapons completetime: 5 materials: Steel: 1000 @@ -209,6 +197,7 @@ - type: latheRecipe id: WeaponTetherGun result: WeaponTetherGun + category: Tools completetime: 5 materials: Steel: 500 @@ -218,6 +207,7 @@ - type: latheRecipe id: WeaponGrapplingGun result: WeaponGrapplingGun + category: Tools completetime: 5 materials: Steel: 500 diff --git a/Resources/Prototypes/Recipes/Lathes/electronics.yml b/Resources/Prototypes/Recipes/Lathes/electronics.yml index 123b7f60367..3af8eb4e529 100644 --- a/Resources/Prototypes/Recipes/Lathes/electronics.yml +++ b/Resources/Prototypes/Recipes/Lathes/electronics.yml @@ -1,6 +1,7 @@ - type: latheRecipe id: FirelockElectronics result: FirelockElectronics + category: Circuitry completetime: 2 materials: Steel: 100 @@ -9,6 +10,7 @@ - type: latheRecipe id: MailingUnitElectronics result: MailingUnitElectronics + category: Circuitry completetime: 4 materials: Steel: 50 @@ -17,6 +19,7 @@ - type: latheRecipe id: CellRechargerCircuitboard result: CellRechargerCircuitboard + category: Circuitry completetime: 2 materials: Steel: 50 @@ -25,6 +28,7 @@ - type: latheRecipe id: BorgChargerCircuitboard result: BorgChargerCircuitboard + category: Circuitry completetime: 2 materials: Steel: 50 @@ -33,6 +37,7 @@ - type: latheRecipe id: WeaponCapacitorRechargerCircuitboard result: WeaponCapacitorRechargerCircuitboard + category: Circuitry completetime: 2 materials: Steel: 50 @@ -41,6 +46,7 @@ - type: latheRecipe id: TurboItemRechargerCircuitboard result: TurboItemRechargerCircuitboard + category: Circuitry completetime: 2 materials: Steel: 500 @@ -50,6 +56,7 @@ - type: latheRecipe id: DoorElectronics result: DoorElectronics + category: Circuitry completetime: 2 materials: Steel: 50 @@ -58,6 +65,7 @@ - type: latheRecipe id: AirAlarmElectronics result: AirAlarmElectronics + category: Circuitry completetime: 2 materials: Steel: 100 @@ -66,6 +74,7 @@ - type: latheRecipe id: StationMapElectronics result: StationMapCircuitboard + category: Circuitry completetime: 2 materials: Steel: 50 @@ -74,6 +83,7 @@ - type: latheRecipe id: IntercomElectronics result: IntercomElectronics + category: Circuitry completetime: 2 materials: Steel: 50 @@ -82,6 +92,7 @@ - type: latheRecipe id: FireAlarmElectronics result: FireAlarmElectronics + category: Circuitry completetime: 2 materials: Steel: 100 @@ -90,6 +101,7 @@ - type: latheRecipe id: SignalTimerElectronics result: SignalTimerElectronics + category: Circuitry completetime: 2 materials: Steel: 50 @@ -98,6 +110,7 @@ - type: latheRecipe id: CloningPodMachineCircuitboard result: CloningPodMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -107,6 +120,7 @@ - type: latheRecipe id: ThermomachineFreezerMachineCircuitBoard result: ThermomachineFreezerMachineCircuitBoard + category: Circuitry completetime: 4 materials: Steel: 150 @@ -116,6 +130,7 @@ - type: latheRecipe id: HellfireFreezerMachineCircuitBoard result: HellfireFreezerMachineCircuitBoard + category: Circuitry completetime: 4 materials: Steel: 150 @@ -125,6 +140,7 @@ - type: latheRecipe id: CondenserMachineCircuitBoard result: CondenserMachineCircuitBoard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -133,6 +149,7 @@ - type: latheRecipe id: PortableScrubberMachineCircuitBoard result: PortableScrubberMachineCircuitBoard + category: Circuitry completetime: 4 materials: Steel: 150 @@ -142,6 +159,7 @@ - type: latheRecipe id: MedicalScannerMachineCircuitboard result: MedicalScannerMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -150,6 +168,7 @@ - type: latheRecipe id: CryoPodMachineCircuitboard result: CryoPodMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -159,6 +178,7 @@ - type: latheRecipe id: ChemMasterMachineCircuitboard result: ChemMasterMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -167,6 +187,7 @@ - type: latheRecipe id: ChemDispenserMachineCircuitboard result: ChemDispenserMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -176,6 +197,7 @@ - type: latheRecipe id: BiomassReclaimerMachineCircuitboard result: BiomassReclaimerMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -185,6 +207,7 @@ - type: latheRecipe id: BiofabricatorMachineCircuitboard result: BiofabricatorMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -194,6 +217,7 @@ - type: latheRecipe id: HydroponicsTrayMachineCircuitboard result: HydroponicsTrayMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -202,6 +226,7 @@ - type: latheRecipe id: AutolatheMachineCircuitboard result: AutolatheMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -210,6 +235,7 @@ - type: latheRecipe id: ProtolatheMachineCircuitboard result: ProtolatheMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -218,6 +244,7 @@ - type: latheRecipe id: AutolatheHyperConvectionMachineCircuitboard result: AutolatheHyperConvectionMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -227,6 +254,7 @@ - type: latheRecipe id: ProtolatheHyperConvectionMachineCircuitboard result: ProtolatheHyperConvectionMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -236,6 +264,7 @@ - type: latheRecipe id: CircuitImprinterMachineCircuitboard result: CircuitImprinterMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -244,6 +273,7 @@ - type: latheRecipe id: ExosuitFabricatorMachineCircuitboard result: ExosuitFabricatorMachineCircuitboard + category: Circuitry completetime: 5 materials: Steel: 100 @@ -252,6 +282,7 @@ - type: latheRecipe id: UniformPrinterMachineCircuitboard result: UniformPrinterMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -260,6 +291,7 @@ - type: latheRecipe id: VaccinatorMachineCircuitboard result: VaccinatorMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -269,6 +301,7 @@ - type: latheRecipe id: DiagnoserMachineCircuitboard result: DiagnoserMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -278,6 +311,7 @@ - type: latheRecipe id: ArtifactAnalyzerMachineCircuitboard result: ArtifactAnalyzerMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -287,6 +321,7 @@ - type: latheRecipe id: TraversalDistorterMachineCircuitboard result: TraversalDistorterMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -296,6 +331,7 @@ - type: latheRecipe id: ArtifactCrusherMachineCircuitboard result: ArtifactCrusherMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -305,6 +341,7 @@ - type: latheRecipe id: AnomalyVesselCircuitboard result: AnomalyVesselCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -313,6 +350,7 @@ - type: latheRecipe id: AnomalyVesselExperimentalCircuitboard result: AnomalyVesselExperimentalCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -322,6 +360,7 @@ - type: latheRecipe id: AnomalySynchronizerCircuitboard result: AnomalySynchronizerCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -331,6 +370,7 @@ - type: latheRecipe id: APECircuitboard result: APECircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -339,6 +379,7 @@ - type: latheRecipe id: ReagentGrinderMachineCircuitboard result: ReagentGrinderMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -347,6 +388,7 @@ - type: latheRecipe id: HotplateMachineCircuitboard result: HotplateMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -355,6 +397,7 @@ - type: latheRecipe id: AnalysisComputerCircuitboard result: AnalysisComputerCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -364,6 +407,7 @@ - type: latheRecipe id: TechDiskComputerCircuitboard result: TechDiskComputerCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -373,6 +417,7 @@ - type: latheRecipe id: ShuttleConsoleCircuitboard result: ShuttleConsoleCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -382,6 +427,7 @@ - type: latheRecipe id: RadarConsoleCircuitboard result: RadarConsoleCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -390,6 +436,7 @@ - type: latheRecipe id: DawInstrumentMachineCircuitboard result: DawInstrumentMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -398,6 +445,7 @@ - type: latheRecipe id: StasisBedMachineCircuitboard result: StasisBedMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -407,6 +455,7 @@ - type: latheRecipe id: ElectrolysisUnitMachineCircuitboard result: ElectrolysisUnitMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -415,6 +464,7 @@ - type: latheRecipe id: CentrifugeMachineCircuitboard result: CentrifugeMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -423,6 +473,7 @@ - type: latheRecipe id: MaterialReclaimerMachineCircuitboard result: MaterialReclaimerMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -431,6 +482,7 @@ - type: latheRecipe id: OreProcessorMachineCircuitboard result: OreProcessorMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -439,6 +491,7 @@ - type: latheRecipe id: OreProcessorIndustrialMachineCircuitboard result: OreProcessorIndustrialMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -448,6 +501,7 @@ - type: latheRecipe id: RipleyCentralElectronics result: RipleyCentralElectronics + category: Circuitry completetime: 4 materials: Steel: 100 @@ -457,6 +511,7 @@ - type: latheRecipe id: RipleyPeripheralsElectronics result: RipleyPeripheralsElectronics + category: Circuitry completetime: 4 materials: Steel: 100 @@ -466,6 +521,7 @@ - type: latheRecipe id: HonkerCentralElectronics result: HonkerCentralElectronics + category: Circuitry completetime: 4 materials: Steel: 100 @@ -475,6 +531,7 @@ - type: latheRecipe id: HonkerPeripheralsElectronics result: HonkerPeripheralsElectronics + category: Circuitry completetime: 4 materials: Steel: 100 @@ -484,6 +541,7 @@ - type: latheRecipe id: HonkerTargetingElectronics result: HonkerTargetingElectronics + category: Circuitry completetime: 4 materials: Steel: 100 @@ -493,6 +551,7 @@ - type: latheRecipe id: HamtrCentralElectronics result: HamtrCentralElectronics + category: Circuitry completetime: 4 materials: Steel: 100 @@ -502,6 +561,7 @@ - type: latheRecipe id: HamtrPeripheralsElectronics result: HamtrPeripheralsElectronics + category: Circuitry completetime: 4 materials: Steel: 100 @@ -512,6 +572,7 @@ - type: latheRecipe id: APCElectronics result: APCElectronics + category: Circuitry completetime: 2 materials: Steel: 50 @@ -520,6 +581,7 @@ - type: latheRecipe id: SubstationMachineCircuitboard result: SubstationMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 50 @@ -528,6 +590,7 @@ - type: latheRecipe id: WallmountSubstationElectronics result: WallmountSubstationElectronics + category: Circuitry completetime: 4 materials: Steel: 50 @@ -536,6 +599,7 @@ - type: latheRecipe id: SMESMachineCircuitboard result: SMESMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -544,6 +608,7 @@ - type: latheRecipe id: PortableGeneratorPacmanMachineCircuitboard result: PortableGeneratorPacmanMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 50 @@ -552,6 +617,7 @@ - type: latheRecipe id: PortableGeneratorSuperPacmanMachineCircuitboard result: PortableGeneratorSuperPacmanMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 50 @@ -560,6 +626,7 @@ - type: latheRecipe id: PortableGeneratorJrPacmanMachineCircuitboard result: PortableGeneratorJrPacmanMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 50 @@ -568,6 +635,7 @@ - type: latheRecipe id: WallmountGeneratorElectronics result: WallmountGeneratorElectronics + category: Circuitry completetime: 4 materials: Steel: 50 @@ -576,6 +644,7 @@ - type: latheRecipe id: WallmountGeneratorAPUElectronics result: WallmountGeneratorAPUElectronics + category: Circuitry completetime: 4 materials: Steel: 50 @@ -584,6 +653,7 @@ - type: latheRecipe id: SolarControlComputerCircuitboard result: SolarControlComputerCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -592,6 +662,7 @@ - type: latheRecipe id: SolarTrackerElectronics result: SolarTrackerElectronics + category: Circuitry completetime: 4 materials: Steel: 150 @@ -600,6 +671,7 @@ - type: latheRecipe id: PowerComputerCircuitboard result: PowerComputerCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -608,6 +680,7 @@ - type: latheRecipe id: CloningConsoleComputerCircuitboard result: CloningConsoleComputerCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -616,6 +689,7 @@ - type: latheRecipe id: MicrowaveMachineCircuitboard result: MicrowaveMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -624,6 +698,7 @@ - type: latheRecipe id: ElectricGrillMachineCircuitboard result: ElectricGrillMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -632,6 +707,7 @@ - type: latheRecipe id: FatExtractorMachineCircuitboard result: FatExtractorMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -640,6 +716,7 @@ - type: latheRecipe id: FlatpackerMachineCircuitboard result: FlatpackerMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -649,6 +726,7 @@ - type: latheRecipe id: SheetifierMachineCircuitboard result: SheetifierMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -657,6 +735,7 @@ - type: latheRecipe id: SurveillanceCameraRouterCircuitboard result: SurveillanceCameraRouterCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -665,6 +744,7 @@ - type: latheRecipe id: SurveillanceCameraWirelessRouterCircuitboard result: SurveillanceCameraWirelessRouterCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -673,6 +753,7 @@ - type: latheRecipe id: SurveillanceWirelessCameraAnchoredCircuitboard result: SurveillanceWirelessCameraAnchoredCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -681,6 +762,7 @@ - type: latheRecipe id: SurveillanceWirelessCameraMovableCircuitboard result: SurveillanceWirelessCameraMovableCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -689,6 +771,7 @@ - type: latheRecipe id: SurveillanceCameraMonitorCircuitboard result: SurveillanceCameraMonitorCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -697,6 +780,7 @@ - type: latheRecipe id: SurveillanceWirelessCameraMonitorCircuitboard result: SurveillanceWirelessCameraMonitorCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -705,6 +789,7 @@ - type: latheRecipe id: ComputerTelevisionCircuitboard result: ComputerTelevisionCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -713,6 +798,7 @@ - type: latheRecipe id: EmitterCircuitboard result: EmitterCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -721,6 +807,7 @@ - type: latheRecipe id: ThrusterMachineCircuitboard result: ThrusterMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -729,6 +816,7 @@ - type: latheRecipe id: GyroscopeMachineCircuitboard result: GyroscopeMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -737,6 +825,7 @@ - type: latheRecipe id: GasRecyclerMachineCircuitboard result: GasRecyclerMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -745,6 +834,7 @@ - type: latheRecipe id: SeedExtractorMachineCircuitboard result: SeedExtractorMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -753,6 +843,7 @@ - type: latheRecipe id: BoozeDispenserMachineCircuitboard result: BoozeDispenserMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -761,6 +852,7 @@ - type: latheRecipe id: CargoTelepadMachineCircuitboard result: CargoTelepadMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -770,6 +862,7 @@ - type: latheRecipe id: SodaDispenserMachineCircuitboard result: SodaDispenserMachineCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -778,6 +871,7 @@ - type: latheRecipe id: TelecomServerCircuitboard result: TelecomServerCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -786,6 +880,7 @@ - type: latheRecipe id: MassMediaCircuitboard result: ComputerMassMediaCircuitboard + category: Circuitry completetime: 4 materials: Steel: 100 @@ -794,8 +889,60 @@ - type: latheRecipe id: MiniGravityGeneratorCircuitboard result: MiniGravityGeneratorCircuitboard + category: Circuitry completetime: 6 materials: Steel: 100 Glass: 900 Gold: 100 + +- type: latheRecipe + id: PowerCageRechargerCircuitboard + result: PowerCageRechargerCircuitboard + completetime: 6 + materials: + Steel: 100 + Glass: 900 + +- type: latheRecipe + id: ShuttleGunSvalinnMachineGunCircuitboard + result: ShuttleGunSvalinnMachineGunCircuitboard + completetime: 6 + materials: + Steel: 100 + Glass: 900 + +- type: latheRecipe + id: ShuttleGunPerforatorCircuitboard + result: ShuttleGunPerforatorCircuitboard + completetime: 10 + materials: + Steel: 100 + Glass: 900 + Gold: 100 + +- type: latheRecipe + id: ShuttleGunKineticCircuitboard + result: ShuttleGunKineticCircuitboard + completetime: 6 + materials: + Steel: 100 + Glass: 900 + +- type: latheRecipe + id: ShuttleGunFriendshipCircuitboard + result: ShuttleGunFriendshipCircuitboard + completetime: 8 + materials: + Steel: 100 + Glass: 900 + Gold: 50 + +- type: latheRecipe + id: ShuttleGunDusterCircuitboard + result: ShuttleGunDusterCircuitboard + completetime: 12 + materials: + Steel: 100 + Glass: 900 + Gold: 100 diff --git a/Resources/Prototypes/Recipes/Lathes/mech_parts.yml b/Resources/Prototypes/Recipes/Lathes/mech_parts.yml index 462e285cf19..4f9f84d0dc8 100644 --- a/Resources/Prototypes/Recipes/Lathes/mech_parts.yml +++ b/Resources/Prototypes/Recipes/Lathes/mech_parts.yml @@ -2,6 +2,7 @@ - type: latheRecipe id: RipleyHarness result: RipleyHarness + category: Mech completetime: 10 materials: Steel: 1500 @@ -10,6 +11,7 @@ - type: latheRecipe id: RipleyLArm result: RipleyLArm + category: Mech completetime: 10 materials: Steel: 1000 @@ -18,6 +20,7 @@ - type: latheRecipe id: RipleyLLeg result: RipleyLLeg + category: Mech completetime: 10 materials: Steel: 1000 @@ -26,6 +29,7 @@ - type: latheRecipe id: RipleyRLeg result: RipleyRLeg + category: Mech completetime: 10 materials: Steel: 1000 @@ -34,6 +38,7 @@ - type: latheRecipe id: RipleyRArm result: RipleyRArm + category: Mech completetime: 10 materials: Steel: 1000 @@ -42,6 +47,7 @@ - type: latheRecipe id: MechEquipmentGrabber result: MechEquipmentGrabber + category: Mech completetime: 10 materials: Steel: 500 @@ -51,6 +57,7 @@ - type: latheRecipe id: HonkerHarness result: HonkerHarness + category: Mech completetime: 10 materials: Steel: 3000 @@ -60,6 +67,7 @@ - type: latheRecipe id: HonkerLArm result: HonkerLArm + category: Mech completetime: 10 materials: Steel: 3000 @@ -69,6 +77,7 @@ - type: latheRecipe id: HonkerLLeg result: HonkerLLeg + category: Mech completetime: 10 materials: Steel: 3000 @@ -78,6 +87,7 @@ - type: latheRecipe id: HonkerRLeg result: HonkerRLeg + category: Mech completetime: 10 materials: Steel: 3000 @@ -87,6 +97,7 @@ - type: latheRecipe id: HonkerRArm result: HonkerRArm + category: Mech completetime: 10 materials: Steel: 3000 @@ -96,6 +107,7 @@ - type: latheRecipe id: MechEquipmentHorn result: MechEquipmentHorn + category: Mech completetime: 10 materials: Steel: 500 @@ -105,6 +117,7 @@ - type: latheRecipe id: HamtrHarness result: HamtrHarness + category: Mech completetime: 10 materials: Steel: 1200 @@ -113,6 +126,7 @@ - type: latheRecipe id: HamtrLArm result: HamtrLArm + category: Mech completetime: 10 materials: Steel: 800 @@ -121,6 +135,7 @@ - type: latheRecipe id: HamtrLLeg result: HamtrLLeg + category: Mech completetime: 10 materials: Steel: 800 @@ -129,6 +144,7 @@ - type: latheRecipe id: HamtrRLeg result: HamtrRLeg + category: Mech completetime: 10 materials: Steel: 800 @@ -137,6 +153,7 @@ - type: latheRecipe id: HamtrRArm result: HamtrRArm + category: Mech completetime: 10 materials: Steel: 800 @@ -145,6 +162,7 @@ - type: latheRecipe id: MechEquipmentGrabberSmall result: MechEquipmentGrabberSmall + category: Mech completetime: 10 materials: Steel: 400 @@ -154,6 +172,7 @@ - type: latheRecipe id: VimHarness result: VimHarness + category: Mech completetime: 5 materials: Steel: 500 diff --git a/Resources/Prototypes/Recipes/Lathes/medical.yml b/Resources/Prototypes/Recipes/Lathes/medical.yml index e1d1e9a1f26..a714d4f2d1e 100644 --- a/Resources/Prototypes/Recipes/Lathes/medical.yml +++ b/Resources/Prototypes/Recipes/Lathes/medical.yml @@ -1,6 +1,7 @@ - type: latheRecipe id: Scalpel result: Scalpel + category: Tools completetime: 2 materials: Steel: 200 @@ -8,6 +9,7 @@ - type: latheRecipe id: Retractor result: Retractor + category: Tools completetime: 2 materials: Steel: 200 @@ -15,6 +17,7 @@ - type: latheRecipe id: Cautery result: Cautery + category: Tools completetime: 2 materials: Steel: 200 @@ -22,6 +25,7 @@ - type: latheRecipe id: Drill result: Drill + category: Tools completetime: 2 materials: Steel: 200 @@ -30,6 +34,7 @@ - type: latheRecipe id: Saw result: Saw + category: Tools completetime: 2 materials: Steel: 200 @@ -37,6 +42,7 @@ - type: latheRecipe id: Hemostat result: Hemostat + category: Tools completetime: 2 materials: Steel: 200 @@ -74,6 +80,7 @@ - type: latheRecipe id: HandheldCrewMonitor result: HandheldCrewMonitorEmpty + category: Tools completetime: 2 materials: Glass: 1200 @@ -83,6 +90,7 @@ - type: latheRecipe id: HandheldHealthAnalyzer result: HandheldHealthAnalyzerEmpty + category: Tools completetime: 4 materials: Glass: 500 @@ -192,6 +200,7 @@ - type: latheRecipe id: HandLabeler result: HandLabeler + category: Tools completetime: 2 materials: Plastic: 100 @@ -210,7 +219,7 @@ materials: Steel: 500 Plastic: 300 - + - type: latheRecipe id: RollerBedSpawnFolded result: RollerBedSpawnFolded diff --git a/Resources/Prototypes/Recipes/Lathes/misc.yml b/Resources/Prototypes/Recipes/Lathes/misc.yml index 96cd83a7fea..a7c294a0df6 100644 --- a/Resources/Prototypes/Recipes/Lathes/misc.yml +++ b/Resources/Prototypes/Recipes/Lathes/misc.yml @@ -1,6 +1,7 @@ - type: latheRecipe id: LightTube result: LightTube + category: Lights completetime: 2 materials: Steel: 50 @@ -9,6 +10,7 @@ - type: latheRecipe id: SodiumLightTube result: SodiumLightTube + category: Lights completetime: 2 materials: Steel: 50 @@ -17,6 +19,7 @@ - type: latheRecipe id: ExteriorLightTube result: ExteriorLightTube + category: Lights completetime: 2 materials: Steel: 50 @@ -25,6 +28,7 @@ - type: latheRecipe id: LightBulb result: LightBulb + category: Lights completetime: 2 materials: Steel: 50 @@ -33,6 +37,7 @@ - type: latheRecipe id: GlowstickRed result: GlowstickRed + category: Lights completetime: 2 materials: Plastic: 50 @@ -40,6 +45,7 @@ - type: latheRecipe id: Flare result: Flare + category: Lights completetime: 2 materials: Plastic: 50 @@ -47,6 +53,7 @@ - type: latheRecipe id: FlashlightLantern result: EmptyFlashlightLantern + category: Lights completetime: 2 materials: Steel: 100 @@ -56,6 +63,7 @@ - type: latheRecipe id: FireExtinguisher result: FireExtinguisher + category: Tools completetime: 2 materials: Steel: 200 @@ -88,6 +96,7 @@ - type: latheRecipe id: NodeScanner result: NodeScanner + category: Tools completetime: 2 materials: Steel: 100 diff --git a/Resources/Prototypes/Recipes/Lathes/powercells.yml b/Resources/Prototypes/Recipes/Lathes/powercells.yml index 2982c070be2..21928a53d2a 100644 --- a/Resources/Prototypes/Recipes/Lathes/powercells.yml +++ b/Resources/Prototypes/Recipes/Lathes/powercells.yml @@ -1,6 +1,7 @@ - type: latheRecipe id: PowerCellSmall result: PowerCellSmallPrinted + category: Parts completetime: 1 materials: Steel: 100 @@ -9,6 +10,7 @@ - type: latheRecipe id: PowerCellMedium result: PowerCellMediumPrinted + category: Parts completetime: 6 materials: Steel: 300 @@ -19,6 +21,7 @@ - type: latheRecipe id: PowerCellHigh result: PowerCellHighPrinted + category: Parts completetime: 10 materials: Steel: 300 @@ -29,9 +32,38 @@ - type: latheRecipe id: PowerCellMicroreactor result: PowerCellMicroreactorPrinted + category: Parts completetime: 10 materials: Steel: 500 Glass: 400 Uranium: 200 Gold: 100 + +- type: latheRecipe + id: PowerCageSmall + result: PowerCageSmall + completetime: 3 + materials: + Steel: 200 + Plastic: 100 + +- type: latheRecipe + id: PowerCageMedium + result: PowerCageMedium + completetime: 6 + materials: + Steel: 500 + Glass: 500 + Plastic: 250 + Gold: 40 + +- type: latheRecipe + id: PowerCageHigh + result: PowerCageHigh + completetime: 10 + materials: + Steel: 600 + Glass: 800 + Plastic: 400 + Gold: 100 \ No newline at end of file diff --git a/Resources/Prototypes/Recipes/Lathes/robotics.yml b/Resources/Prototypes/Recipes/Lathes/robotics.yml index c8a5810925c..1d840e3b4cb 100644 --- a/Resources/Prototypes/Recipes/Lathes/robotics.yml +++ b/Resources/Prototypes/Recipes/Lathes/robotics.yml @@ -1,6 +1,7 @@ - type: latheRecipe id: ProximitySensor result: ProximitySensor + category: Robotics completetime: 2 materials: Steel: 200 @@ -9,6 +10,7 @@ - type: latheRecipe id: SciFlash result: SciFlash + category: Robotics completetime: 2 materials: Glass: 100 @@ -18,6 +20,7 @@ - type: latheRecipe id: CyborgEndoskeleton result: CyborgEndoskeleton + category: Robotics completetime: 3 materials: Steel: 1500 @@ -25,6 +28,7 @@ - type: latheRecipe id: LeftArmBorg result: LeftArmBorg + category: Robotics completetime: 2 materials: Steel: 250 @@ -33,6 +37,7 @@ - type: latheRecipe id: RightArmBorg result: RightArmBorg + category: Robotics completetime: 2 materials: Steel: 250 @@ -41,6 +46,7 @@ - type: latheRecipe id: LeftLegBorg result: LeftLegBorg + category: Robotics completetime: 2 materials: Steel: 250 @@ -49,6 +55,7 @@ - type: latheRecipe id: RightLegBorg result: RightLegBorg + category: Robotics completetime: 2 materials: Steel: 250 @@ -57,6 +64,7 @@ - type: latheRecipe id: LightHeadBorg result: LightHeadBorg + category: Robotics completetime: 2 materials: Steel: 250 @@ -65,6 +73,7 @@ - type: latheRecipe id: TorsoBorg result: TorsoBorg + category: Robotics completetime: 2 materials: Steel: 250 @@ -73,6 +82,7 @@ - type: latheRecipe id: LeftArmBorgEngineer result: LeftArmBorgEngineer + category: Robotics completetime: 2 materials: Steel: 250 @@ -81,6 +91,7 @@ - type: latheRecipe id: RightArmBorgEngineer result: RightArmBorgEngineer + category: Robotics completetime: 2 materials: Steel: 250 @@ -89,6 +100,7 @@ - type: latheRecipe id: LeftLegBorgEngineer result: LeftLegBorgEngineer + category: Robotics completetime: 2 materials: Steel: 250 @@ -97,6 +109,7 @@ - type: latheRecipe id: RightLegBorgEngineer result: RightLegBorgEngineer + category: Robotics completetime: 2 materials: Steel: 250 @@ -105,6 +118,7 @@ - type: latheRecipe id: HeadBorgEngineer result: HeadBorgEngineer + category: Robotics completetime: 2 materials: Steel: 250 @@ -113,6 +127,7 @@ - type: latheRecipe id: TorsoBorgEngineer result: TorsoBorgEngineer + category: Robotics completetime: 2 materials: Steel: 250 @@ -121,6 +136,7 @@ - type: latheRecipe id: LeftArmBorgMedical result: LeftArmBorgMedical + category: Robotics completetime: 2 materials: Steel: 250 @@ -129,6 +145,7 @@ - type: latheRecipe id: RightArmBorgMedical result: RightArmBorgMedical + category: Robotics completetime: 2 materials: Steel: 250 @@ -137,6 +154,7 @@ - type: latheRecipe id: LeftLegBorgMedical result: LeftLegBorgMedical + category: Robotics completetime: 2 materials: Steel: 250 @@ -145,6 +163,7 @@ - type: latheRecipe id: RightLegBorgMedical result: RightLegBorgMedical + category: Robotics completetime: 2 materials: Steel: 250 @@ -153,6 +172,7 @@ - type: latheRecipe id: HeadBorgMedical result: HeadBorgMedical + category: Robotics completetime: 2 materials: Steel: 250 @@ -161,6 +181,7 @@ - type: latheRecipe id: TorsoBorgMedical result: TorsoBorgMedical + category: Robotics completetime: 2 materials: Steel: 250 @@ -169,6 +190,7 @@ - type: latheRecipe id: LeftArmBorgMining result: LeftArmBorgMining + category: Robotics completetime: 2 materials: Steel: 250 @@ -177,6 +199,7 @@ - type: latheRecipe id: RightArmBorgMining result: RightArmBorgMining + category: Robotics completetime: 2 materials: Steel: 250 @@ -185,6 +208,7 @@ - type: latheRecipe id: LeftLegBorgMining result: LeftLegBorgMining + category: Robotics completetime: 2 materials: Steel: 250 @@ -193,6 +217,7 @@ - type: latheRecipe id: RightLegBorgMining result: RightLegBorgMining + category: Robotics completetime: 2 materials: Steel: 250 @@ -201,6 +226,7 @@ - type: latheRecipe id: HeadBorgMining result: HeadBorgMining + category: Robotics completetime: 2 materials: Steel: 250 @@ -209,6 +235,7 @@ - type: latheRecipe id: TorsoBorgMining result: TorsoBorgMining + category: Robotics completetime: 2 materials: Steel: 250 @@ -217,6 +244,7 @@ - type: latheRecipe id: LeftArmBorgService result: LeftArmBorgService + category: Robotics completetime: 2 materials: Steel: 250 @@ -225,6 +253,7 @@ - type: latheRecipe id: RightArmBorgService result: RightArmBorgService + category: Robotics completetime: 2 materials: Steel: 250 @@ -233,6 +262,7 @@ - type: latheRecipe id: LeftLegBorgService result: LeftLegBorgService + category: Robotics completetime: 2 materials: Steel: 250 @@ -241,6 +271,7 @@ - type: latheRecipe id: RightLegBorgService result: RightLegBorgService + category: Robotics completetime: 2 materials: Steel: 250 @@ -249,6 +280,7 @@ - type: latheRecipe id: HeadBorgService result: HeadBorgService + category: Robotics completetime: 2 materials: Steel: 250 @@ -257,6 +289,7 @@ - type: latheRecipe id: TorsoBorgService result: TorsoBorgService + category: Robotics completetime: 2 materials: Steel: 250 @@ -265,6 +298,7 @@ - type: latheRecipe id: LeftLegBorgJanitor result: LeftLegBorgJanitor + category: Robotics completetime: 2 materials: Steel: 250 @@ -273,6 +307,7 @@ - type: latheRecipe id: RightLegBorgJanitor result: RightLegBorgJanitor + category: Robotics completetime: 2 materials: Steel: 250 @@ -281,6 +316,7 @@ - type: latheRecipe id: HeadBorgJanitor result: HeadBorgJanitor + category: Robotics completetime: 4 materials: Steel: 500 @@ -289,6 +325,7 @@ - type: latheRecipe id: TorsoBorgJanitor result: TorsoBorgJanitor + category: Robotics completetime: 4 materials: Steel: 500 @@ -297,6 +334,7 @@ - type: latheRecipe id: MMI result: MMI + category: Robotics completetime: 3 icon: sprite: Objects/Specific/Robotics/mmi.rsi @@ -310,6 +348,7 @@ - type: latheRecipe id: PositronicBrain result: PositronicBrain + category: Robotics completetime: 3 materials: Steel: 500 @@ -321,6 +360,7 @@ - type: latheRecipe id: BorgModuleCable result: BorgModuleCable + category: Robotics completetime: 3 materials: Steel: 250 @@ -330,6 +370,7 @@ - type: latheRecipe id: BorgModuleFireExtinguisher result: BorgModuleFireExtinguisher + category: Robotics completetime: 3 materials: Steel: 250 @@ -339,6 +380,7 @@ - type: latheRecipe id: BorgModuleGPS result: BorgModuleGPS + category: Robotics completetime: 3 materials: Steel: 250 @@ -348,6 +390,7 @@ - type: latheRecipe id: BorgModuleRadiationDetection result: BorgModuleRadiationDetection + category: Robotics completetime: 3 materials: Steel: 250 @@ -357,6 +400,7 @@ - type: latheRecipe id: BorgModuleTool result: BorgModuleTool + category: Robotics completetime: 3 materials: Steel: 250 @@ -366,6 +410,7 @@ - type: latheRecipe id: BorgModuleAppraisal result: BorgModuleAppraisal + category: Robotics completetime: 3 materials: Steel: 250 @@ -375,6 +420,7 @@ - type: latheRecipe id: BorgModuleMining result: BorgModuleMining + category: Robotics completetime: 3 materials: Steel: 250 @@ -384,6 +430,7 @@ - type: latheRecipe id: BorgModuleGrapplingGun result: BorgModuleGrapplingGun + category: Robotics completetime: 3 materials: Steel: 500 @@ -394,6 +441,7 @@ - type: latheRecipe id: BorgModuleAdvancedTool result: BorgModuleAdvancedTool + category: Robotics completetime: 3 materials: Steel: 500 @@ -404,6 +452,7 @@ - type: latheRecipe id: BorgModuleConstruction result: BorgModuleConstruction + category: Robotics completetime: 3 materials: Steel: 500 @@ -413,6 +462,7 @@ - type: latheRecipe id: BorgModuleGasAnalyzer result: BorgModuleGasAnalyzer + category: Robotics completetime: 3 materials: Steel: 250 @@ -422,6 +472,7 @@ - type: latheRecipe id: BorgModuleRCD result: BorgModuleRCD + category: Robotics completetime: 3 materials: Steel: 500 @@ -432,6 +483,7 @@ - type: latheRecipe id: BorgModuleLightReplacer result: BorgModuleLightReplacer + category: Robotics completetime: 3 materials: Steel: 250 @@ -441,6 +493,7 @@ - type: latheRecipe id: BorgModuleCleaning result: BorgModuleCleaning + category: Robotics completetime: 3 materials: Steel: 250 @@ -450,6 +503,7 @@ - type: latheRecipe id: BorgModuleAdvancedCleaning result: BorgModuleAdvancedCleaning + category: Robotics completetime: 3 materials: Steel: 250 @@ -460,6 +514,7 @@ - type: latheRecipe id: BorgModuleDiagnosis result: BorgModuleDiagnosis + category: Robotics completetime: 3 materials: Steel: 250 @@ -469,6 +524,7 @@ - type: latheRecipe id: BorgModuleTreatment result: BorgModuleTreatment + category: Robotics completetime: 3 materials: Steel: 250 @@ -478,6 +534,7 @@ - type: latheRecipe id: BorgModuleAdvancedTreatment result: BorgModuleAdvancedTreatment + category: Robotics completetime: 3 materials: Steel: 500 @@ -488,6 +545,7 @@ - type: latheRecipe id: BorgModuleDefibrillator result: BorgModuleDefibrillator + category: Robotics completetime: 3 materials: Steel: 500 @@ -498,6 +556,7 @@ - type: latheRecipe id: BorgModuleArtifact result: BorgModuleArtifact + category: Robotics completetime: 3 materials: Steel: 250 @@ -507,6 +566,7 @@ - type: latheRecipe id: BorgModuleAnomaly result: BorgModuleAnomaly + category: Robotics completetime: 3 materials: Steel: 250 @@ -516,6 +576,7 @@ - type: latheRecipe id: BorgModuleService result: BorgModuleService + category: Robotics completetime: 3 materials: Steel: 250 @@ -525,6 +586,7 @@ - type: latheRecipe id: BorgModuleMusique result: BorgModuleMusique + category: Robotics completetime: 3 materials: Steel: 250 @@ -534,6 +596,7 @@ - type: latheRecipe id: BorgModuleGardening result: BorgModuleGardening + category: Robotics completetime: 3 materials: Steel: 250 @@ -543,6 +606,7 @@ - type: latheRecipe id: BorgModuleHarvesting result: BorgModuleHarvesting + category: Robotics completetime: 3 materials: Steel: 250 @@ -552,6 +616,7 @@ - type: latheRecipe id: BorgModuleClowning result: BorgModuleClowning + category: Robotics completetime: 3 materials: Steel: 250 diff --git a/Resources/Prototypes/Recipes/Lathes/security.yml b/Resources/Prototypes/Recipes/Lathes/security.yml index 4e3e1978596..aa066d1d591 100644 --- a/Resources/Prototypes/Recipes/Lathes/security.yml +++ b/Resources/Prototypes/Recipes/Lathes/security.yml @@ -15,6 +15,7 @@ - type: latheRecipe id: Stunbaton result: Stunbaton + category: Weapons completetime: 2 materials: Steel: 300 @@ -23,6 +24,7 @@ - type: latheRecipe id: Truncheon result: Truncheon + category: Weapons completetime: 2 materials: Steel: 300 @@ -31,6 +33,7 @@ - type: latheRecipe id: WeaponLaserCarbine result: WeaponEarthGovLaserRifle + category: Weapons completetime: 8 materials: Steel: 2000 @@ -40,6 +43,7 @@ - type: latheRecipe id: WeaponAdvancedLaser result: WeaponAdvancedLaser + category: Weapons completetime: 5 materials: Steel: 1500 @@ -49,6 +53,7 @@ - type: latheRecipe id: WeaponLaserCannon result: WeaponEarthGovLaserSniper + category: Weapons completetime: 5 materials: Steel: 1250 @@ -58,6 +63,7 @@ - type: latheRecipe id: WeaponLaserSvalinn result: WeaponLaserSvalinn + category: Weapons completetime: 5 materials: Steel: 2000 @@ -66,6 +72,7 @@ - type: latheRecipe id: WeaponXrayCannon result: WeaponEarthGovXRay + category: Weapons completetime: 5 materials: Steel: 1500 @@ -133,6 +140,7 @@ - type: latheRecipe id: ShellShotgunBeanbag result: ShellShotgunBeanbag + category: Ammo completetime: 2 materials: Plastic: 15 @@ -141,6 +149,7 @@ - type: latheRecipe id: CartridgePistolRubber result: CartridgePistolRubber + category: Ammo completetime: 2 materials: Plastic: 5 @@ -149,6 +158,7 @@ - type: latheRecipe id: CartridgeMagnumRubber result: CartridgeMagnumRubber + category: Ammo completetime: 2 materials: Plastic: 5 @@ -157,6 +167,7 @@ - type: latheRecipe id: CartridgeRifle result: CartridgeRifle + category: Ammo completetime: 2 materials: Steel: 15 @@ -164,6 +175,7 @@ - type: latheRecipe id: CartridgeLightRifleRubber result: CartridgeLightRifleRubber + category: Ammo completetime: 2 materials: Plastic: 10 @@ -172,6 +184,7 @@ - type: latheRecipe id: CartridgeRifleRubber result: CartridgeRifleRubber + category: Ammo completetime: 2 materials: Plastic: 10 @@ -180,6 +193,7 @@ - type: latheRecipe id: CartridgePistol result: CartridgePistol + category: Ammo completetime: 2 materials: Steel: 10 @@ -187,6 +201,7 @@ - type: latheRecipe id: ShellShotgun result: ShellShotgun + category: Ammo completetime: 2 materials: Steel: 20 @@ -194,6 +209,7 @@ - type: latheRecipe id: CartridgeMagnum result: CartridgeMagnum + category: Ammo completetime: 2 materials: Steel: 20 @@ -201,6 +217,7 @@ - type: latheRecipe id: CartridgeLightRifle result: CartridgeLightRifle + category: Ammo completetime: 2 materials: Steel: 30 @@ -208,6 +225,7 @@ - type: latheRecipe id: ShellShotgunFlare result: ShellShotgunFlare + category: Ammo completetime: 2 materials: Plastic: 20 @@ -216,6 +234,7 @@ - type: latheRecipe id: ShellTranquilizer result: ShellTranquilizer + category: Ammo completetime: 4 materials: Plastic: 15 @@ -251,6 +270,7 @@ - type: latheRecipe id: MagazinePistol result: MagazinePistol + category: Ammo completetime: 5 materials: Steel: 100 @@ -258,6 +278,7 @@ - type: latheRecipe id: MagazinePistolSubMachineGun result: MagazinePistolSubMachineGun + category: Ammo completetime: 5 materials: Steel: 300 @@ -265,6 +286,7 @@ - type: latheRecipe id: MagazinePistolSubMachineGunTopMounted result: MagazinePistolTopSubMachineGun + category: Ammo completetime: 5 materials: Steel: 300 @@ -272,6 +294,7 @@ - type: latheRecipe id: MagazineBoxPistol result: MagazineBoxPistol + category: Ammo completetime: 5 materials: Steel: 650 @@ -279,6 +302,7 @@ - type: latheRecipe id: MagazineBoxPistolRubber result: MagazineBoxPistolRubber + category: Ammo completetime: 5 materials: Steel: 350 @@ -287,6 +311,7 @@ - type: latheRecipe id: MagazineBoxMagnum result: MagazineBoxMagnum + category: Ammo completetime: 5 materials: Steel: 1250 @@ -294,6 +319,7 @@ - type: latheRecipe id: MagazineBoxMagnumRubber result: MagazineBoxMagnumRubber + category: Ammo completetime: 5 materials: Steel: 350 @@ -302,6 +328,7 @@ - type: latheRecipe id: MagazineRifle result: MagazineRifle + category: Ammo completetime: 5 materials: Steel: 375 @@ -309,6 +336,7 @@ - type: latheRecipe id: MagazineLightRifle result: MagazineLightRifle + category: Ammo completetime: 5 materials: Steel: 375 @@ -316,6 +344,7 @@ - type: latheRecipe id: MagazineBoxRifle result: MagazineBoxRifle + category: Ammo completetime: 5 materials: Steel: 950 @@ -323,6 +352,7 @@ - type: latheRecipe id: MagazineBoxRifleRubber result: MagazineBoxRifleRubber + category: Ammo completetime: 5 materials: Steel: 350 @@ -331,6 +361,7 @@ - type: latheRecipe id: MagazineBoxLightRifle result: MagazineBoxLightRifle + category: Ammo completetime: 5 materials: Steel: 1800 @@ -338,6 +369,7 @@ - type: latheRecipe id: MagazineBoxLightRifleRubber result: MagazineBoxLightRifleRubber + category: Ammo completetime: 5 materials: Steel: 350 @@ -346,6 +378,7 @@ - type: latheRecipe id: SpeedLoaderMagnum result: SpeedLoaderMagnum + category: Ammo completetime: 5 materials: Steel: 200 @@ -353,6 +386,7 @@ - type: latheRecipe id: ShellShotgunIncendiary result: ShellShotgunIncendiary + category: Ammo completetime: 2 materials: Plastic: 20 @@ -360,6 +394,7 @@ - type: latheRecipe id: CartridgePistolIncendiary result: CartridgePistolIncendiary + category: Ammo completetime: 2 materials: Plastic: 10 @@ -367,6 +402,7 @@ - type: latheRecipe id: CartridgeMagnumIncendiary result: CartridgeMagnumIncendiary + category: Ammo completetime: 2 materials: Plastic: 20 @@ -374,6 +410,7 @@ - type: latheRecipe id: CartridgeLightRifleIncendiary result: CartridgeLightRifleIncendiary + category: Ammo completetime: 2 materials: Plastic: 20 @@ -381,6 +418,7 @@ - type: latheRecipe id: CartridgeRifleIncendiary result: CartridgeRifleIncendiary + category: Ammo completetime: 2 materials: Plastic: 15 @@ -388,6 +426,7 @@ - type: latheRecipe id: MagazineBoxPistolIncendiary result: MagazineBoxPistolIncendiary + category: Ammo completetime: 5 materials: Plastic: 650 @@ -395,6 +434,7 @@ - type: latheRecipe id: MagazineBoxMagnumIncendiary result: MagazineBoxMagnumIncendiary + category: Ammo completetime: 5 materials: Plastic: 1250 @@ -402,6 +442,7 @@ - type: latheRecipe id: MagazineBoxLightRifleIncendiary result: MagazineBoxLightRifleIncendiary + category: Ammo completetime: 5 materials: Plastic: 1800 @@ -409,6 +450,7 @@ - type: latheRecipe id: MagazineBoxRifleIncendiary result: MagazineBoxRifleIncendiary + category: Ammo completetime: 5 materials: Plastic: 950 @@ -416,6 +458,7 @@ - type: latheRecipe id: ShellShotgunPractice result: ShellShotgunPractice + category: Ammo completetime: 2 materials: Plastic: 20 @@ -423,6 +466,7 @@ - type: latheRecipe id: MagazineBoxPistolPractice result: MagazineBoxPistolPractice + category: Ammo completetime: 5 materials: Plastic: 600 @@ -430,6 +474,7 @@ - type: latheRecipe id: MagazineBoxMagnumPractice result: MagazineBoxMagnumPractice + category: Ammo completetime: 5 materials: Plastic: 1200 @@ -437,6 +482,7 @@ - type: latheRecipe id: MagazineBoxLightRiflePractice result: MagazineBoxLightRiflePractice + category: Ammo completetime: 5 materials: Plastic: 1000 @@ -444,6 +490,7 @@ - type: latheRecipe id: MagazineBoxRiflePractice result: MagazineBoxRiflePractice + category: Ammo completetime: 5 materials: Plastic: 900 @@ -451,6 +498,7 @@ - type: latheRecipe id: WeaponLaserCarbinePractice result: WeaponLaserCarbinePractice + category: Weapons completetime: 6 materials: Steel: 1800 @@ -460,6 +508,7 @@ - type: latheRecipe id: WeaponDisablerPractice result: WeaponDisablerPractice + category: Weapons completetime: 4 materials: Steel: 500 @@ -469,6 +518,7 @@ - type: latheRecipe id: ShellShotgunUranium result: ShellShotgunUranium + category: Ammo completetime: 2 materials: Plastic: 15 @@ -477,6 +527,7 @@ - type: latheRecipe id: CartridgePistolUranium result: CartridgePistolUranium + category: Ammo completetime: 2 materials: Plastic: 5 @@ -485,6 +536,7 @@ - type: latheRecipe id: CartridgeMagnumUranium result: CartridgeMagnumUranium + category: Ammo completetime: 2 materials: Plastic: 20 @@ -493,6 +545,7 @@ - type: latheRecipe id: CartridgeLightRifleUranium result: CartridgeLightRifleUranium + category: Ammo completetime: 2 materials: Plastic: 20 @@ -501,6 +554,7 @@ - type: latheRecipe id: CartridgeRifleUranium result: CartridgeRifleUranium + category: Ammo completetime: 2 materials: Plastic: 15 @@ -509,6 +563,7 @@ - type: latheRecipe id: MagazineBoxPistolUranium result: MagazineBoxPistolUranium + category: Ammo completetime: 5 materials: Plastic: 650 @@ -517,6 +572,7 @@ - type: latheRecipe id: MagazineBoxMagnumUranium result: MagazineBoxMagnumUranium + category: Ammo completetime: 5 materials: Plastic: 1250 @@ -525,6 +581,7 @@ - type: latheRecipe id: MagazineBoxLightRifleUranium result: MagazineBoxLightRifleUranium + category: Ammo completetime: 5 materials: Plastic: 1800 @@ -533,16 +590,53 @@ - type: latheRecipe id: MagazineBoxRifleUranium result: MagazineBoxRifleUranium + category: Ammo completetime: 5 materials: Plastic: 950 Uranium: 95 - + - type: latheRecipe id: WeaponDisablerSMG result: WeaponDisablerSMG + category: Weapons completetime: 6 materials: Steel: 1000 Glass: 500 Plastic: 500 + +- type: latheRecipe + id: MagazineGrenadeEmpty + result: MagazineGrenadeEmpty + completetime: 3 + materials: + Steel: 150 + Plastic: 50 + +- type: latheRecipe + id: GrenadeEMP + result: GrenadeEMP + completetime: 3 + materials: + Steel: 150 + Plastic: 100 + Glass: 20 + +- type: latheRecipe + id: GrenadeBlast + result: GrenadeBlast + completetime: 3 + materials: + Steel: 150 + Plastic: 100 + Gold: 50 + +- type: latheRecipe + id: GrenadeFlash + result: GrenadeFlash + completetime: 3 + materials: + Steel: 150 + Plastic: 100 + Glass: 20 diff --git a/Resources/Prototypes/Recipes/Lathes/tools.yml b/Resources/Prototypes/Recipes/Lathes/tools.yml index 6c7612436e6..ce3f4cda3ce 100644 --- a/Resources/Prototypes/Recipes/Lathes/tools.yml +++ b/Resources/Prototypes/Recipes/Lathes/tools.yml @@ -4,6 +4,7 @@ sprite: Objects/Tools/wirecutters.rsi state: cutters-map result: Wirecutter + category: Tools completetime: 2 materials: Steel: 200 @@ -15,6 +16,7 @@ sprite: Objects/Tools/screwdriver.rsi state: screwdriver-map result: Screwdriver + category: Tools completetime: 2 materials: Steel: 200 @@ -23,6 +25,7 @@ - type: latheRecipe id: Welder result: Welder + category: Tools completetime: 2 materials: Steel: 400 @@ -30,6 +33,7 @@ - type: latheRecipe id: Wrench result: Wrench + category: Tools completetime: 2 materials: Steel: 200 @@ -37,6 +41,7 @@ - type: latheRecipe id: CableStack result: CableApcStack1 + category: Parts completetime: 2 materials: Steel: 30 @@ -44,6 +49,7 @@ - type: latheRecipe id: CableMVStack result: CableMVStack1 + category: Parts completetime: 2 materials: Steel: 30 @@ -51,6 +57,7 @@ - type: latheRecipe id: CableHVStack result: CableHVStack1 + category: Parts completetime: 2 materials: Steel: 30 @@ -58,6 +65,7 @@ - type: latheRecipe id: Crowbar result: Crowbar + category: Tools completetime: 2 materials: Steel: 200 @@ -65,6 +73,7 @@ - type: latheRecipe id: Pickaxe result: Pickaxe + category: Tools completetime: 4 materials: Steel: 1000 @@ -73,6 +82,7 @@ - type: latheRecipe id: Shovel result: Shovel + category: Tools completetime: 2 materials: Steel: 200 @@ -81,6 +91,7 @@ - type: latheRecipe id: Multitool result: Multitool + category: Tools completetime: 2 materials: Steel: 200 @@ -89,6 +100,7 @@ - type: latheRecipe id: NetworkConfigurator result: NetworkConfigurator + category: Tools completetime: 2 materials: Steel: 200 @@ -97,6 +109,7 @@ - type: latheRecipe id: PowerDrill result: PowerDrill + category: Tools completetime: 2 materials: Steel: 600 @@ -105,6 +118,7 @@ - type: latheRecipe id: RCD result: RCDEmpty + category: Tools completetime: 4 materials: Steel: 1000 @@ -113,6 +127,7 @@ - type: latheRecipe id: RCDAmmo result: RCDAmmo + category: Tools completetime: 2.4 materials: Steel: 500 @@ -121,6 +136,7 @@ - type: latheRecipe id: HandheldGPSBasic result: HandheldGPSBasic + category: Tools completetime: 2 materials: Steel: 800 @@ -129,6 +145,7 @@ - type: latheRecipe id: TRayScanner result: trayScanner + category: Tools completetime: 2 materials: Steel: 800 @@ -137,6 +154,7 @@ - type: latheRecipe id: GasAnalyzer result: GasAnalyzer + category: Tools completetime: 2 materials: Steel: 800 @@ -145,6 +163,7 @@ - type: latheRecipe id: SprayPainter result: SprayPainter + category: Tools completetime: 2 materials: Steel: 300 @@ -153,6 +172,7 @@ - type: latheRecipe id: UtilityBelt result: ClothingBeltUtility + category: Tools completetime: 2 materials: Cloth: 100 @@ -161,6 +181,7 @@ - type: latheRecipe id: HolofanProjector result: HolofanProjector + category: Tools completetime: 8 materials: # Inherited materials and time from PowerCellMedium recipe Steel: 600 @@ -171,6 +192,7 @@ - type: latheRecipe id: RPED result: RPED + category: Tools completetime: 10 materials: Steel: 650 @@ -180,6 +202,7 @@ - type: latheRecipe id: MiningDrill result: MiningDrill + category: Tools completetime: 3 materials: Steel: 500 @@ -188,6 +211,7 @@ - type: latheRecipe id: WelderExperimental result: WelderExperimental + category: Tools completetime: 6 materials: Steel: 800 @@ -196,27 +220,30 @@ - type: latheRecipe id: JawsOfLife result: JawsOfLife + category: Tools completetime: 6 materials: Steel: 1000 Glass: 500 Plasma: 300 Gold: 50 - + - type: latheRecipe id: HoloprojectorField result: HoloprojectorField + category: Tools completetime: 3 materials: Steel: 500 Plasma: 300 Glass: 100 - + - type: latheRecipe id: WeaponParticleDecelerator result: WeaponParticleDecelerator + category: Tools completetime: 6 materials: Steel: 750 Plasma: 150 - Uranium: 150 \ No newline at end of file + Uranium: 150 diff --git a/Resources/Prototypes/Recipes/Reactions/food.yml b/Resources/Prototypes/Recipes/Reactions/food.yml index cc471c1b2c6..f758babde5e 100644 --- a/Resources/Prototypes/Recipes/Reactions/food.yml +++ b/Resources/Prototypes/Recipes/Reactions/food.yml @@ -307,8 +307,8 @@ JuiceBanana: amount: 10 products: - Sugar: 9 - Potassium: 1 + Sugar: 5 + Potassium: 5 - type: reaction id: OilBreakdown diff --git a/Resources/Prototypes/Research/arsenal.yml b/Resources/Prototypes/Research/arsenal.yml index b32ecae6a34..71e85c691aa 100644 --- a/Resources/Prototypes/Research/arsenal.yml +++ b/Resources/Prototypes/Research/arsenal.yml @@ -11,11 +11,8 @@ cost: 5000 recipeUnlocks: - WeaponProtoKineticAccelerator + - ShuttleGunKineticCircuitboard # These are roundstart but not replenishable for salvage - - WeaponCrusher - - WeaponCrusherDagger - # This is not roundstart since its a direct upgrade - - WeaponCrusherGlaive - type: technology id: DraconicMunitions @@ -149,6 +146,27 @@ - HoloprojectorSecurity - WeaponDisablerSMG +- type: technology + id: BasicShuttleArmament + name: research-technology-basic-shuttle-armament + icon: + sprite: Structures/Power/cage_recharger.rsi + state: full + discipline: Arsenal + tier: 2 + cost: 10500 + recipeUnlocks: + - PowerCageRechargerCircuitboard + - PowerCageSmall + - PowerCageMedium + - MagazineGrenadeEmpty + - GrenadeFlash + - ShuttleGunSvalinnMachineGunCircuitboard + - ShuttleGunPerforatorCircuitboard + - ShuttleGunFriendshipCircuitboard + technologyPrerequisites: + - SalvageWeapons + # Tier 3 - type: technology @@ -174,3 +192,19 @@ cost: 15000 recipeUnlocks: - WeaponLaserSvalinn + +- type: technology + id: AdvancedShuttleWeapon + name: research-technology-advanced-shuttle-weapon + icon: + sprite: Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi + state: icon + discipline: Arsenal + tier: 3 + cost: 15000 + recipeUnlocks: + - GrenadeEMP + - PowerCageHigh + - ShuttleGunDusterCircuitboard + technologyPrerequisites: + - BasicShuttleArmament \ No newline at end of file diff --git a/Resources/Prototypes/Roles/Jobs/departments.yml b/Resources/Prototypes/Roles/Jobs/departments.yml index 7254f344724..3ae4b377483 100644 --- a/Resources/Prototypes/Roles/Jobs/departments.yml +++ b/Resources/Prototypes/Roles/Jobs/departments.yml @@ -12,6 +12,7 @@ id: Civilian description: department-Civilian-description color: "#9FED58" + weight: -10 roles: - Bartender - Borg @@ -50,6 +51,7 @@ - SAI accountNumber: 1317 #backmen: currency primary: false + weight: 100 - type: department id: Engineering @@ -79,6 +81,7 @@ id: Security description: department-Security-description color: "#DE3A3A" + weight: 20 roles: - HeadOfSecurity - SecurityCadet @@ -104,6 +107,7 @@ id: Specific description: department-Specific-description color: "#9FED58" + weight: 10 roles: - Boxer - Reporter diff --git a/Resources/Prototypes/SoundCollections/destruction.yml b/Resources/Prototypes/SoundCollections/destruction.yml new file mode 100644 index 00000000000..1e1545b5f5d --- /dev/null +++ b/Resources/Prototypes/SoundCollections/destruction.yml @@ -0,0 +1,63 @@ +- type: soundCollection + id: GlassBreak + files: + - /Audio/Effects/glass_break1.ogg + - /Audio/Effects/glass_break2.ogg + - /Audio/Effects/glass_break3.ogg + - /Audio/Effects/glass_break4.ogg + +- type: soundCollection + id: GlassCrack + files: + - /Audio/Effects/glass_crack1.ogg + - /Audio/Effects/glass_crack2.ogg + - /Audio/Effects/glass_crack3.ogg + - /Audio/Effects/glass_crack4.ogg + +- type: soundCollection + id: WindowShatter + files: + - /Audio/Effects/window_shatter1.ogg + - /Audio/Effects/window_shatter2.ogg + - /Audio/Effects/window_shatter3.ogg + +- type: soundCollection + id: WoodDestroy + files: + - /Audio/Effects/wood_destroy1.ogg + - /Audio/Effects/wood_destroy2.ogg + - /Audio/Effects/wood_destroy3.ogg + +- type: soundCollection + id: WoodDestroyHeavy + files: + - /Audio/Effects/wood_destroy_heavy1.ogg + +- type: soundCollection + id: MetalCrunch + files: + - /Audio/Effects/metal_crunch.ogg + +- type: soundCollection + id: MetalBreak + files: + - /Audio/Effects/metal_break1.ogg + - /Audio/Effects/metal_break2.ogg + - /Audio/Effects/metal_break3.ogg + - /Audio/Effects/metal_break4.ogg + - /Audio/Effects/metal_break5.ogg + +- type: soundCollection + id: MetalGlassBreak + files: + - /Audio/Effects/metal_glass_break1.ogg + - /Audio/Effects/metal_glass_break2.ogg + +- type: soundCollection + id: MetalSlam + files: + - /Audio/Effects/metal_slam1.ogg + - /Audio/Effects/metal_slam2.ogg + - /Audio/Effects/metal_slam3.ogg + - /Audio/Effects/metal_slam4.ogg + - /Audio/Effects/metal_slam5.ogg diff --git a/Resources/Prototypes/SoundCollections/glassbreak.yml b/Resources/Prototypes/SoundCollections/glassbreak.yml deleted file mode 100644 index 67417b22d49..00000000000 --- a/Resources/Prototypes/SoundCollections/glassbreak.yml +++ /dev/null @@ -1,6 +0,0 @@ -- type: soundCollection - id: GlassBreak - files: - - /Audio/Effects/glass_break1.ogg - - /Audio/Effects/glass_break2.ogg - - /Audio/Effects/glass_break3.ogg diff --git a/Resources/Prototypes/SoundCollections/impacts.yml b/Resources/Prototypes/SoundCollections/gun_impacts.yml similarity index 100% rename from Resources/Prototypes/SoundCollections/impacts.yml rename to Resources/Prototypes/SoundCollections/gun_impacts.yml diff --git a/Resources/Prototypes/SoundCollections/hit_impacts.yml b/Resources/Prototypes/SoundCollections/hit_impacts.yml new file mode 100644 index 00000000000..b0e805f30df --- /dev/null +++ b/Resources/Prototypes/SoundCollections/hit_impacts.yml @@ -0,0 +1,29 @@ +- type: soundCollection + id: MetalThud + files: + - /Audio/Effects/metal_thud1.ogg + - /Audio/Effects/metal_thud2.ogg + - /Audio/Effects/metal_thud3.ogg + +- type: soundCollection + id: MetalScrape + files: + - /Audio/Effects/metal_scrape1.ogg + - /Audio/Effects/metal_scrape2.ogg + - /Audio/Effects/metal_scrape3.ogg + +- type: soundCollection + id: WeakHit + files: + - /Audio/Effects/weak_hit1.ogg + - /Audio/Effects/weak_hit2.ogg + +- type: soundCollection + id: GlassSmack + files: + - /Audio/Effects/glass_smack.ogg + +- type: soundCollection + id: GlassSmash + files: + - /Audio/Effects/glass_smash.ogg diff --git a/Resources/Prototypes/SoundCollections/traits.yml b/Resources/Prototypes/SoundCollections/traits.yml index 557632c6bba..e0d7206c635 100644 --- a/Resources/Prototypes/SoundCollections/traits.yml +++ b/Resources/Prototypes/SoundCollections/traits.yml @@ -20,9 +20,9 @@ - /Audio/Effects/bodyfall4.ogg - /Audio/Effects/demon_dies.ogg - /Audio/Effects/demon_attack1.ogg - - /Audio/Effects/bang.ogg - /Audio/Effects/clang.ogg - - /Audio/Effects/metalbreak.ogg + - /Audio/Effects/metal_slam1.ogg + - /Audio/Effects/metal_slam5.ogg - /Audio/Effects/minibombcountdown.ogg - /Audio/Effects/sadtrombone.ogg - /Audio/Effects/sparks1.ogg diff --git a/Resources/Prototypes/Traits/disabilities.yml b/Resources/Prototypes/Traits/disabilities.yml index 4f4bb6febb4..1aaf0a85fe8 100644 --- a/Resources/Prototypes/Traits/disabilities.yml +++ b/Resources/Prototypes/Traits/disabilities.yml @@ -57,6 +57,13 @@ sounds: collection: Paracusia +- type: trait + id: Unrevivable + name: trait-unrevivable-name + description: trait-unrevivable-desc + components: + - type: Unrevivable + - type: trait id: Muted name: trait-muted-name @@ -69,18 +76,6 @@ components: - type: Muted -- type: trait - id: Uncloneable - name: trait-uncloneable-name - description: trait-uncloneable-desc - blacklist: - components: - - BSSDrone #backmen: bssdrone - - StationAI # backmen: AI - - BorgChassis - components: - - type: Uncloneable - - type: trait id: WheelchairBound name: trait-wheelchair-bound-name diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml index 937f1072efe..a48804b82b3 100644 --- a/Resources/Prototypes/tags.yml +++ b/Resources/Prototypes/tags.yml @@ -253,6 +253,9 @@ - type: Tag id: CanPilot +- type: Tag + id: CannonBall + - type: Tag id: CannonRestrict @@ -796,6 +799,9 @@ - type: Tag id: MagazinePistolSubMachineGun +- type: Tag + id: MagazineGrenade + - type: Tag id: MailingUnitElectronics @@ -952,6 +958,9 @@ - type: Tag id: PowerCellSmall +- type: Tag + id: PowerCage + - type: Tag id: Powerdrill diff --git a/Resources/Textures/Objects/Consumable/Food/skewer.rsi/meta.json b/Resources/Textures/Objects/Consumable/Food/skewer.rsi/meta.json index 0416b444609..03fb0afdaea 100644 --- a/Resources/Textures/Objects/Consumable/Food/skewer.rsi/meta.json +++ b/Resources/Textures/Objects/Consumable/Food/skewer.rsi/meta.json @@ -93,6 +93,12 @@ }, { "name": "skewer-rat2" + }, + { + "name": "skewer-snake1" + }, + { + "name": "skewer-snake2" } ] } diff --git a/Resources/Textures/Objects/Consumable/Food/skewer.rsi/skewer-snake1.png b/Resources/Textures/Objects/Consumable/Food/skewer.rsi/skewer-snake1.png new file mode 100644 index 00000000000..a3a7ce808b9 Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Food/skewer.rsi/skewer-snake1.png differ diff --git a/Resources/Textures/Objects/Consumable/Food/skewer.rsi/skewer-snake2.png b/Resources/Textures/Objects/Consumable/Food/skewer.rsi/skewer-snake2.png new file mode 100644 index 00000000000..aac0763b6ee Binary files /dev/null and b/Resources/Textures/Objects/Consumable/Food/skewer.rsi/skewer-snake2.png differ diff --git a/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_11.png b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_11.png new file mode 100644 index 00000000000..10b9c0e59a2 Binary files /dev/null and b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_11.png differ diff --git a/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_12.png b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_12.png new file mode 100644 index 00000000000..ded87828507 Binary files /dev/null and b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_12.png differ diff --git a/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_13.png b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_13.png new file mode 100644 index 00000000000..9c73d8487a5 Binary files /dev/null and b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_13.png differ diff --git a/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_14.png b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_14.png new file mode 100644 index 00000000000..68446ce6561 Binary files /dev/null and b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_14.png differ diff --git a/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_15.png b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_15.png new file mode 100644 index 00000000000..ded87828507 Binary files /dev/null and b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_15.png differ diff --git a/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_21.png b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_21.png new file mode 100644 index 00000000000..d89c1ab913a Binary files /dev/null and b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_21.png differ diff --git a/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_22.png b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_22.png new file mode 100644 index 00000000000..dc862b11ebd Binary files /dev/null and b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_22.png differ diff --git a/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_23.png b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_23.png new file mode 100644 index 00000000000..387f61e3458 Binary files /dev/null and b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_23.png differ diff --git a/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_24.png b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_24.png new file mode 100644 index 00000000000..6909b3c1572 Binary files /dev/null and b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_24.png differ diff --git a/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_25.png b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_25.png new file mode 100644 index 00000000000..2598af3d4fe Binary files /dev/null and b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_25.png differ diff --git a/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_31.png b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_31.png new file mode 100644 index 00000000000..59beb95b95b Binary files /dev/null and b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_31.png differ diff --git a/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_32.png b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_32.png new file mode 100644 index 00000000000..6640797aad0 Binary files /dev/null and b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_32.png differ diff --git a/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_33.png b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_33.png new file mode 100644 index 00000000000..e44eb74978f Binary files /dev/null and b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_33.png differ diff --git a/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_34.png b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_34.png new file mode 100644 index 00000000000..cc226a27219 Binary files /dev/null and b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_34.png differ diff --git a/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_35.png b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_35.png new file mode 100644 index 00000000000..379ae4c176d Binary files /dev/null and b/Resources/Textures/Objects/Misc/kudzuflower.rsi/kudzu_35.png differ diff --git a/Resources/Textures/Objects/Misc/kudzuflower.rsi/meta.json b/Resources/Textures/Objects/Misc/kudzuflower.rsi/meta.json new file mode 100644 index 00000000000..b37660be1c2 --- /dev/null +++ b/Resources/Textures/Objects/Misc/kudzuflower.rsi/meta.json @@ -0,0 +1,56 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "https://github.com/tgstation/tgstation/commit/15bf91049e33979a855995579b48592e34bcdd8c, edited by TheShuEd", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "kudzu_35" + }, + { + "name": "kudzu_34" + }, + { + "name": "kudzu_33" + }, + { + "name": "kudzu_32" + }, + { + "name": "kudzu_31" + }, + { + "name": "kudzu_25" + }, + { + "name": "kudzu_24" + }, + { + "name": "kudzu_23" + }, + { + "name": "kudzu_22" + }, + { + "name": "kudzu_21" + }, + { + "name": "kudzu_15" + }, + { + "name": "kudzu_14" + }, + { + "name": "kudzu_13" + }, + { + "name": "kudzu_12" + }, + { + "name": "kudzu_11" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Objects/Power/power_cages.rsi/high.png b/Resources/Textures/Objects/Power/power_cages.rsi/high.png new file mode 100644 index 00000000000..703cdcac080 Binary files /dev/null and b/Resources/Textures/Objects/Power/power_cages.rsi/high.png differ diff --git a/Resources/Textures/Objects/Power/power_cages.rsi/inhand-left.png b/Resources/Textures/Objects/Power/power_cages.rsi/inhand-left.png new file mode 100644 index 00000000000..43701b4e03c Binary files /dev/null and b/Resources/Textures/Objects/Power/power_cages.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Power/power_cages.rsi/inhand-right.png b/Resources/Textures/Objects/Power/power_cages.rsi/inhand-right.png new file mode 100644 index 00000000000..43701b4e03c Binary files /dev/null and b/Resources/Textures/Objects/Power/power_cages.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Power/power_cages.rsi/medium.png b/Resources/Textures/Objects/Power/power_cages.rsi/medium.png new file mode 100644 index 00000000000..1e2a8b74f51 Binary files /dev/null and b/Resources/Textures/Objects/Power/power_cages.rsi/medium.png differ diff --git a/Resources/Textures/Objects/Power/power_cages.rsi/meta.json b/Resources/Textures/Objects/Power/power_cages.rsi/meta.json new file mode 100644 index 00000000000..705a82df96b --- /dev/null +++ b/Resources/Textures/Objects/Power/power_cages.rsi/meta.json @@ -0,0 +1,34 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Created by TheShuEd (github) for Space Station 14", + "states": [ + { + "name": "small" + }, + { + "name": "medium" + }, + { + "name": "high" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "o1" + }, + { + "name": "o2" + } + ] +} diff --git a/Resources/Textures/Objects/Power/power_cages.rsi/o1.png b/Resources/Textures/Objects/Power/power_cages.rsi/o1.png new file mode 100644 index 00000000000..bfc4817fe54 Binary files /dev/null and b/Resources/Textures/Objects/Power/power_cages.rsi/o1.png differ diff --git a/Resources/Textures/Objects/Power/power_cages.rsi/o2.png b/Resources/Textures/Objects/Power/power_cages.rsi/o2.png new file mode 100644 index 00000000000..9e2ae02d592 Binary files /dev/null and b/Resources/Textures/Objects/Power/power_cages.rsi/o2.png differ diff --git a/Resources/Textures/Objects/Power/power_cages.rsi/small.png b/Resources/Textures/Objects/Power/power_cages.rsi/small.png new file mode 100644 index 00000000000..fb7df076431 Binary files /dev/null and b/Resources/Textures/Objects/Power/power_cages.rsi/small.png differ diff --git a/Resources/Textures/Objects/Tools/Cowtools/cow_toolbox.rsi/icon-open.png b/Resources/Textures/Objects/Tools/Cowtools/cow_toolbox.rsi/icon-open.png new file mode 100644 index 00000000000..e66d0bc97cb Binary files /dev/null and b/Resources/Textures/Objects/Tools/Cowtools/cow_toolbox.rsi/icon-open.png differ diff --git a/Resources/Textures/Objects/Tools/Cowtools/cow_toolbox.rsi/cow_toolbox.png b/Resources/Textures/Objects/Tools/Cowtools/cow_toolbox.rsi/icon.png similarity index 100% rename from Resources/Textures/Objects/Tools/Cowtools/cow_toolbox.rsi/cow_toolbox.png rename to Resources/Textures/Objects/Tools/Cowtools/cow_toolbox.rsi/icon.png diff --git a/Resources/Textures/Objects/Tools/Cowtools/cow_toolbox.rsi/meta.json b/Resources/Textures/Objects/Tools/Cowtools/cow_toolbox.rsi/meta.json index 2a6c8b12995..47e2e44ab7e 100644 --- a/Resources/Textures/Objects/Tools/Cowtools/cow_toolbox.rsi/meta.json +++ b/Resources/Textures/Objects/Tools/Cowtools/cow_toolbox.rsi/meta.json @@ -8,7 +8,10 @@ }, "states": [ { - "name": "cow_toolbox" + "name": "icon" + }, + { + "name": "icon-open" }, { "name": "inhand-left", diff --git a/Resources/Textures/Objects/Tools/Toolboxes/toolbox_blue.rsi/icon-open.png b/Resources/Textures/Objects/Tools/Toolboxes/toolbox_blue.rsi/icon-open.png new file mode 100644 index 00000000000..e4005aaed7d Binary files /dev/null and b/Resources/Textures/Objects/Tools/Toolboxes/toolbox_blue.rsi/icon-open.png differ diff --git a/Resources/Textures/Objects/Tools/Toolboxes/toolbox_blue.rsi/meta.json b/Resources/Textures/Objects/Tools/Toolboxes/toolbox_blue.rsi/meta.json index 82f4d5d611d..e6723a64449 100644 --- a/Resources/Textures/Objects/Tools/Toolboxes/toolbox_blue.rsi/meta.json +++ b/Resources/Textures/Objects/Tools/Toolboxes/toolbox_blue.rsi/meta.json @@ -17,6 +17,9 @@ }, { "name": "icon" + }, + { + "name": "icon-open" } ] } diff --git a/Resources/Textures/Objects/Tools/Toolboxes/toolbox_gold.rsi/icon-open.png b/Resources/Textures/Objects/Tools/Toolboxes/toolbox_gold.rsi/icon-open.png new file mode 100644 index 00000000000..6ba8ef5dcba Binary files /dev/null and b/Resources/Textures/Objects/Tools/Toolboxes/toolbox_gold.rsi/icon-open.png differ diff --git a/Resources/Textures/Objects/Tools/Toolboxes/toolbox_gold.rsi/meta.json b/Resources/Textures/Objects/Tools/Toolboxes/toolbox_gold.rsi/meta.json index afe64cd8392..becb302333b 100644 --- a/Resources/Textures/Objects/Tools/Toolboxes/toolbox_gold.rsi/meta.json +++ b/Resources/Textures/Objects/Tools/Toolboxes/toolbox_gold.rsi/meta.json @@ -39,6 +39,31 @@ 0.2 ] ] + }, + { + "name": "icon-open", + "delays": [ + [ + 0.2, + 0.2, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.2, + 0.2, + 0.2, + 0.2, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.2, + 0.2 + ] + ] } ] } diff --git a/Resources/Textures/Objects/Tools/Toolboxes/toolbox_green.rsi/icon-open.png b/Resources/Textures/Objects/Tools/Toolboxes/toolbox_green.rsi/icon-open.png new file mode 100644 index 00000000000..7656cfbf015 Binary files /dev/null and b/Resources/Textures/Objects/Tools/Toolboxes/toolbox_green.rsi/icon-open.png differ diff --git a/Resources/Textures/Objects/Tools/Toolboxes/toolbox_green.rsi/meta.json b/Resources/Textures/Objects/Tools/Toolboxes/toolbox_green.rsi/meta.json index 82f4d5d611d..e6723a64449 100644 --- a/Resources/Textures/Objects/Tools/Toolboxes/toolbox_green.rsi/meta.json +++ b/Resources/Textures/Objects/Tools/Toolboxes/toolbox_green.rsi/meta.json @@ -17,6 +17,9 @@ }, { "name": "icon" + }, + { + "name": "icon-open" } ] } diff --git a/Resources/Textures/Objects/Tools/Toolboxes/toolbox_red.rsi/icon-open.png b/Resources/Textures/Objects/Tools/Toolboxes/toolbox_red.rsi/icon-open.png new file mode 100644 index 00000000000..0c224442316 Binary files /dev/null and b/Resources/Textures/Objects/Tools/Toolboxes/toolbox_red.rsi/icon-open.png differ diff --git a/Resources/Textures/Objects/Tools/Toolboxes/toolbox_red.rsi/meta.json b/Resources/Textures/Objects/Tools/Toolboxes/toolbox_red.rsi/meta.json index 82f4d5d611d..e6723a64449 100644 --- a/Resources/Textures/Objects/Tools/Toolboxes/toolbox_red.rsi/meta.json +++ b/Resources/Textures/Objects/Tools/Toolboxes/toolbox_red.rsi/meta.json @@ -17,6 +17,9 @@ }, { "name": "icon" + }, + { + "name": "icon-open" } ] } diff --git a/Resources/Textures/Objects/Tools/Toolboxes/toolbox_syn.rsi/icon-open.png b/Resources/Textures/Objects/Tools/Toolboxes/toolbox_syn.rsi/icon-open.png new file mode 100644 index 00000000000..42fc6724051 Binary files /dev/null and b/Resources/Textures/Objects/Tools/Toolboxes/toolbox_syn.rsi/icon-open.png differ diff --git a/Resources/Textures/Objects/Tools/Toolboxes/toolbox_syn.rsi/meta.json b/Resources/Textures/Objects/Tools/Toolboxes/toolbox_syn.rsi/meta.json index 82f4d5d611d..f4c473b8cad 100644 --- a/Resources/Textures/Objects/Tools/Toolboxes/toolbox_syn.rsi/meta.json +++ b/Resources/Textures/Objects/Tools/Toolboxes/toolbox_syn.rsi/meta.json @@ -16,7 +16,10 @@ "directions": 4 }, { - "name": "icon" + "name": "icon" + }, + { + "name": "icon-open" } ] } diff --git a/Resources/Textures/Objects/Tools/Toolboxes/toolbox_yellow.rsi/icon-open.png b/Resources/Textures/Objects/Tools/Toolboxes/toolbox_yellow.rsi/icon-open.png new file mode 100644 index 00000000000..67273713b72 Binary files /dev/null and b/Resources/Textures/Objects/Tools/Toolboxes/toolbox_yellow.rsi/icon-open.png differ diff --git a/Resources/Textures/Objects/Tools/Toolboxes/toolbox_yellow.rsi/meta.json b/Resources/Textures/Objects/Tools/Toolboxes/toolbox_yellow.rsi/meta.json index 82f4d5d611d..e6723a64449 100644 --- a/Resources/Textures/Objects/Tools/Toolboxes/toolbox_yellow.rsi/meta.json +++ b/Resources/Textures/Objects/Tools/Toolboxes/toolbox_yellow.rsi/meta.json @@ -17,6 +17,9 @@ }, { "name": "icon" + }, + { + "name": "icon-open" } ] } diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Explosives/explosives.rsi/emp.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Explosives/explosives.rsi/emp.png new file mode 100644 index 00000000000..ea8f23516e6 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Explosives/explosives.rsi/emp.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Explosives/explosives.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Explosives/explosives.rsi/meta.json index 3faf26ebe57..15ed620c3e0 100644 --- a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Explosives/explosives.rsi/meta.json +++ b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Explosives/explosives.rsi/meta.json @@ -5,7 +5,7 @@ "y": 32 }, "license": "CC-BY-SA-3.0", - "copyright": "https://github.com/discordia-space/CEV-Eris/raw/e1d495c3faf4642b6ec1c4be8acc7cd5bc51d785/icons/obj/ammo.dmi, ball, glassshot and grapeshot Made by Alekshhh (Github) for ss14", + "copyright": "https://github.com/discordia-space/CEV-Eris/raw/e1d495c3faf4642b6ec1c4be8acc7cd5bc51d785/icons/obj/ammo.dmi, ball, glassshot and grapeshot Made by Alekshhh (Github) for ss1, emp made by TheShuEd (github)", "states": [ { "name": "baton" @@ -25,6 +25,9 @@ { "name": "ball" }, + { + "name": "emp" + }, { "name": "grapeshot" }, diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/base.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/base.png new file mode 100644 index 00000000000..27c6f16dc75 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/base.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/icon.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/icon.png new file mode 100644 index 00000000000..93359d84096 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/inhand-left.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/inhand-left.png new file mode 100644 index 00000000000..14265b1c7da Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/inhand-right.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/inhand-right.png new file mode 100644 index 00000000000..826d0bb3f7a Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/mag-1.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/mag-1.png new file mode 100644 index 00000000000..6b233bee38f Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/mag-1.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/mag-2.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/mag-2.png new file mode 100644 index 00000000000..6b233bee38f Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/mag-2.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/mag-3.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/mag-3.png new file mode 100644 index 00000000000..f8e3f08c8fe Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/mag-3.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/mag-4.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/mag-4.png new file mode 100644 index 00000000000..b3ea88e15fc Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/mag-4.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/meta.json new file mode 100644 index 00000000000..32d2f5b7f04 --- /dev/null +++ b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Grenade/grenade_cartridge.rsi/meta.json @@ -0,0 +1,37 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "created by TheShuEd (github) for Space Station 14", + "states": [ + { + "name": "base" + }, + { + "name": "icon" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "mag-1" + }, + { + "name": "mag-2" + }, + { + "name": "mag-3" + }, + { + "name": "mag-4" + } + ] +} diff --git a/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles.rsi/beam_heavy2.png b/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles.rsi/beam_heavy2.png new file mode 100644 index 00000000000..b171a562cb0 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles.rsi/beam_heavy2.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles.rsi/impact_beam_heavy2.png b/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles.rsi/impact_beam_heavy2.png new file mode 100644 index 00000000000..b5d43d2bf06 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles.rsi/impact_beam_heavy2.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles.rsi/meta.json index 804ab0bc910..0a835a14d76 100644 --- a/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles.rsi/meta.json +++ b/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles.rsi/meta.json @@ -73,6 +73,36 @@ ] ] }, + { + "name": "muzzle_beam_heavy2", + "delays": [ + [ + 0.060000002, + 0.060000002, + 0.060000002, + 0.060000002, + 0.060000002, + 0.060000002, + 0.060000002, + 0.060000002 + ] + ] + }, + { + "name": "beam_heavy2", + "delays": [ + [ + 0.060000002, + 0.060000002, + 0.060000002, + 0.060000002, + 0.060000002, + 0.060000002, + 0.060000002, + 0.060000002 + ] + ] + }, { "name": "beam_heavy", "delays": [ @@ -103,6 +133,21 @@ ] ] }, + { + "name": "impact_beam_heavy2", + "delays": [ + [ + 0.060000002, + 0.060000002, + 0.060000002, + 0.060000002, + 0.060000002, + 0.060000002, + 0.060000002, + 0.060000002 + ] + ] + }, { "name": "muzzle_omni", "delays": [ diff --git a/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles.rsi/muzzle_beam_heavy2.png b/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles.rsi/muzzle_beam_heavy2.png new file mode 100644 index 00000000000..fe3365b6807 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles.rsi/muzzle_beam_heavy2.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-1.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-1.png new file mode 100644 index 00000000000..99f8264d14a Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-1.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-2.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-2.png new file mode 100644 index 00000000000..9ccfc11bb38 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-2.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-3.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-3.png new file mode 100644 index 00000000000..6facc2d8f6a Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-3.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-4.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-4.png new file mode 100644 index 00000000000..72473343c8d Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-4.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-5.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-5.png new file mode 100644 index 00000000000..cea633b3bce Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-5.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-6.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-6.png new file mode 100644 index 00000000000..4a892b1ef2a Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-6.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-7.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-7.png new file mode 100644 index 00000000000..f2540aac061 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/mag-7.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/meta.json new file mode 100644 index 00000000000..537e6f85385 --- /dev/null +++ b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/meta.json @@ -0,0 +1,35 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by TheShuEd (github) for Space Station 14", + "size": { + "x": 64, + "y": 64 + }, + "states": [ + { + "name": "ptk-800" + }, + { + "name": "mag-1" + }, + { + "name": "mag-2" + }, + { + "name": "mag-3" + }, + { + "name": "mag-4" + }, + { + "name": "mag-5" + }, + { + "name": "mag-6" + }, + { + "name": "mag-7" + } + ] +} diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/ptk-800.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/ptk-800.png new file mode 100644 index 00000000000..7a11cb93a5b Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/kinetic.rsi/ptk-800.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/lse-1200c.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/lse-1200c.png new file mode 100644 index 00000000000..600ff52d250 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/lse-1200c.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/lse-400c.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/lse-400c.png new file mode 100644 index 00000000000..7bbc5758479 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/lse-400c.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-0.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-0.png new file mode 100644 index 00000000000..135ff86ab58 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-0.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-1.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-1.png new file mode 100644 index 00000000000..e617be2bf91 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-1.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-2.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-2.png new file mode 100644 index 00000000000..eb16f29278e Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-2.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-3.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-3.png new file mode 100644 index 00000000000..a7c4b3df061 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-3.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-4.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-4.png new file mode 100644 index 00000000000..3541031ce54 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-4.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-5.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-5.png new file mode 100644 index 00000000000..1d76b9e0d45 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-5.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-6.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-6.png new file mode 100644 index 00000000000..591fda56aac Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-6.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-7.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-7.png new file mode 100644 index 00000000000..bbab730d892 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-7.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-8.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-8.png new file mode 100644 index 00000000000..7cdab8829a5 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-8.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-9.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-9.png new file mode 100644 index 00000000000..8bba7f1a0f5 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/mag-unshaded-9.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/meta.json new file mode 100644 index 00000000000..3760eca2c27 --- /dev/null +++ b/Resources/Textures/Objects/Weapons/Guns/Shuttles/laser.rsi/meta.json @@ -0,0 +1,107 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by TheShuEd (github) for Space Station 14", + "size": { + "x": 64, + "y": 64 + }, + "states": [ + { + "name": "lse-400c" + }, + { + "name": "lse-1200c" + }, + { + "name": "mag-unshaded-0", + "delays": [ + [ + 0.6, + 0.6 + ] + ] + }, + { + "name": "mag-unshaded-1", + "delays": [ + [ + 0.3, + 0.3 + ] + ] + }, + { + "name": "mag-unshaded-2", + "delays": [ + [ + 0.3, + 0.3 + ] + ] + }, + { + "name": "mag-unshaded-3", + "delays": [ + [ + 0.3, + 0.3 + ] + ] + }, + { + "name": "mag-unshaded-4", + "delays": [ + [ + 0.3, + 0.3 + ] + ] + }, + { + "name": "mag-unshaded-5", + "delays": [ + [ + 0.3, + 0.3 + ] + ] + }, + { + "name": "mag-unshaded-6", + "delays": [ + [ + 0.3, + 0.3 + ] + ] + }, + { + "name": "mag-unshaded-7", + "delays": [ + [ + 0.3, + 0.3 + ] + ] + }, + { + "name": "mag-unshaded-8", + "delays": [ + [ + 0.3, + 0.3 + ] + ] + }, + { + "name": "mag-unshaded-9", + "delays": [ + [ + 0.3, + 0.3 + ] + ] + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/exp-2100g.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/exp-2100g.png new file mode 100644 index 00000000000..c6e151ad6f3 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/exp-2100g.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/exp-320g.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/exp-320g.png new file mode 100644 index 00000000000..bc76168636a Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/exp-320g.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-1.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-1.png new file mode 100644 index 00000000000..20c6f2797e0 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-1.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-2.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-2.png new file mode 100644 index 00000000000..eef8e7aca58 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-2.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-3.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-3.png new file mode 100644 index 00000000000..0dd49f10651 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-3.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-4.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-4.png new file mode 100644 index 00000000000..5615c7b5c3b Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-4.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-5.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-5.png new file mode 100644 index 00000000000..e32c827b21a Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-5.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-6.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-6.png new file mode 100644 index 00000000000..efdb0bdac0c Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-6.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-7.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-7.png new file mode 100644 index 00000000000..1e1dfaef55c Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/mag-7.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/meta.json new file mode 100644 index 00000000000..75a018b6650 --- /dev/null +++ b/Resources/Textures/Objects/Weapons/Guns/Shuttles/launcher.rsi/meta.json @@ -0,0 +1,38 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by TheShuEd (github) for Space Station 14", + "size": { + "x": 64, + "y": 64 + }, + "states": [ + { + "name": "exp-320g" + }, + { + "name": "exp-2100g" + }, + { + "name": "mag-1" + }, + { + "name": "mag-2" + }, + { + "name": "mag-3" + }, + { + "name": "mag-4" + }, + { + "name": "mag-5" + }, + { + "name": "mag-6" + }, + { + "name": "mag-7" + } + ] +} diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/pirate_cannon.rsi/base.png b/Resources/Textures/Objects/Weapons/Guns/Shuttles/pirate_cannon.rsi/base.png new file mode 100644 index 00000000000..eb000ac7b50 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Shuttles/pirate_cannon.rsi/base.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Shuttles/pirate_cannon.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Shuttles/pirate_cannon.rsi/meta.json new file mode 100644 index 00000000000..7219f4626a2 --- /dev/null +++ b/Resources/Textures/Objects/Weapons/Guns/Shuttles/pirate_cannon.rsi/meta.json @@ -0,0 +1,14 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by TheShuEd (github) for Space Station 14", + "size": { + "x": 64, + "y": 64 + }, + "states": [ + { + "name": "base" + } + ] +} diff --git a/Resources/Textures/Structures/Power/Generation/PA/control_box.rsi/completed.png b/Resources/Textures/Structures/Power/Generation/PA/control_box.rsi/completed.png index 0636a46df9b..932eed803e8 100644 Binary files a/Resources/Textures/Structures/Power/Generation/PA/control_box.rsi/completed.png and b/Resources/Textures/Structures/Power/Generation/PA/control_box.rsi/completed.png differ diff --git a/Resources/Textures/Structures/Power/Generation/PA/control_box.rsi/wired.png b/Resources/Textures/Structures/Power/Generation/PA/control_box.rsi/wired.png index 6e0409e9cf0..6e4a695d766 100644 Binary files a/Resources/Textures/Structures/Power/Generation/PA/control_box.rsi/wired.png and b/Resources/Textures/Structures/Power/Generation/PA/control_box.rsi/wired.png differ diff --git a/Resources/Textures/Structures/Power/cage_recharger.rsi/empty.png b/Resources/Textures/Structures/Power/cage_recharger.rsi/empty.png new file mode 100644 index 00000000000..28d040cd322 Binary files /dev/null and b/Resources/Textures/Structures/Power/cage_recharger.rsi/empty.png differ diff --git a/Resources/Textures/Structures/Power/cage_recharger.rsi/full.png b/Resources/Textures/Structures/Power/cage_recharger.rsi/full.png new file mode 100644 index 00000000000..ed52d0851f2 Binary files /dev/null and b/Resources/Textures/Structures/Power/cage_recharger.rsi/full.png differ diff --git a/Resources/Textures/Structures/Power/cage_recharger.rsi/light-charged.png b/Resources/Textures/Structures/Power/cage_recharger.rsi/light-charged.png new file mode 100644 index 00000000000..bf313a1e5ce Binary files /dev/null and b/Resources/Textures/Structures/Power/cage_recharger.rsi/light-charged.png differ diff --git a/Resources/Textures/Structures/Power/cage_recharger.rsi/light-charging.png b/Resources/Textures/Structures/Power/cage_recharger.rsi/light-charging.png new file mode 100644 index 00000000000..869aee685a4 Binary files /dev/null and b/Resources/Textures/Structures/Power/cage_recharger.rsi/light-charging.png differ diff --git a/Resources/Textures/Structures/Power/cage_recharger.rsi/light-empty.png b/Resources/Textures/Structures/Power/cage_recharger.rsi/light-empty.png new file mode 100644 index 00000000000..b241479b680 Binary files /dev/null and b/Resources/Textures/Structures/Power/cage_recharger.rsi/light-empty.png differ diff --git a/Resources/Textures/Structures/Power/cage_recharger.rsi/light-off.png b/Resources/Textures/Structures/Power/cage_recharger.rsi/light-off.png new file mode 100644 index 00000000000..1bdf052387e Binary files /dev/null and b/Resources/Textures/Structures/Power/cage_recharger.rsi/light-off.png differ diff --git a/Resources/Textures/Structures/Power/cage_recharger.rsi/meta.json b/Resources/Textures/Structures/Power/cage_recharger.rsi/meta.json new file mode 100644 index 00000000000..8a1714eac0c --- /dev/null +++ b/Resources/Textures/Structures/Power/cage_recharger.rsi/meta.json @@ -0,0 +1,52 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Created by TheShuEd (github) for Space Station 14", + "states": [ + { + "name": "light-off" + }, + { + "name": "empty" + }, + { + "name": "full" + }, + { + "name": "open" + }, + { + "name": "light-charging", + "delays": [ + [ + 0.3, + 0.3, + 0.3, + 0.3 + ] + ] + }, + { + "name": "light-charged", + "delays": [ + [ + 0.6, + 0.6 + ] + ] + }, + { + "name": "light-empty", + "delays": [ + [ + 0.8, + 0.8 + ] + ] + } + ] +} diff --git a/Resources/Textures/Structures/Power/cage_recharger.rsi/open.png b/Resources/Textures/Structures/Power/cage_recharger.rsi/open.png new file mode 100644 index 00000000000..28d040cd322 Binary files /dev/null and b/Resources/Textures/Structures/Power/cage_recharger.rsi/open.png differ diff --git a/Resources/Textures/Structures/Specific/Anomalies/Cores/flora_core.rsi/core.png b/Resources/Textures/Structures/Specific/Anomalies/Cores/flora_core.rsi/core.png new file mode 100644 index 00000000000..eddf23c9883 Binary files /dev/null and b/Resources/Textures/Structures/Specific/Anomalies/Cores/flora_core.rsi/core.png differ diff --git a/Resources/Textures/Structures/Specific/Anomalies/Cores/flora_core.rsi/meta.json b/Resources/Textures/Structures/Specific/Anomalies/Cores/flora_core.rsi/meta.json new file mode 100644 index 00000000000..94ffa2be6eb --- /dev/null +++ b/Resources/Textures/Structures/Specific/Anomalies/Cores/flora_core.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC0-1.0", + "copyright": "Created by TheShuEd (github) for ss14", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "core" + }, + { + "name": "pulse", + "delays": [ + [ + 0.15625, + 0.15625, + 0.15625, + 0.15625 + ] + ] + } + ] +} diff --git a/Resources/Textures/Structures/Specific/Anomalies/Cores/flora_core.rsi/pulse.png b/Resources/Textures/Structures/Specific/Anomalies/Cores/flora_core.rsi/pulse.png new file mode 100644 index 00000000000..5bfd2271968 Binary files /dev/null and b/Resources/Textures/Structures/Specific/Anomalies/Cores/flora_core.rsi/pulse.png differ diff --git a/Resources/Textures/Structures/Specific/Anomalies/flora_anom.rsi/anom.png b/Resources/Textures/Structures/Specific/Anomalies/flora_anom.rsi/anom.png new file mode 100644 index 00000000000..c71c52652df Binary files /dev/null and b/Resources/Textures/Structures/Specific/Anomalies/flora_anom.rsi/anom.png differ diff --git a/Resources/Textures/Structures/Specific/Anomalies/flora_anom.rsi/bulb.png b/Resources/Textures/Structures/Specific/Anomalies/flora_anom.rsi/bulb.png new file mode 100644 index 00000000000..d0690820437 Binary files /dev/null and b/Resources/Textures/Structures/Specific/Anomalies/flora_anom.rsi/bulb.png differ diff --git a/Resources/Textures/Structures/Specific/Anomalies/flora_anom.rsi/meta.json b/Resources/Textures/Structures/Specific/Anomalies/flora_anom.rsi/meta.json new file mode 100644 index 00000000000..31c0fc14e07 --- /dev/null +++ b/Resources/Textures/Structures/Specific/Anomalies/flora_anom.rsi/meta.json @@ -0,0 +1,44 @@ +{ + "version": 1, + "license": "CC0-1.0", + "copyright": "Created by TheShuEd (github) for ss14", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "anom", + "delays": [ + [ + 0.38625, + 0.38625, + 0.38625, + 0.38625 + ] + ] + }, + { + "name": "pulse", + "delays": [ + [ + 0.25625, + 0.25625, + 0.25625, + 0.25625 + ] + ] + }, + { + "name": "bulb", + "delays": [ + [ + 0.25625, + 0.25625, + 0.25625, + 0.25625 + ] + ] + } + ] +} diff --git a/Resources/Textures/Structures/Specific/Anomalies/flora_anom.rsi/pulse.png b/Resources/Textures/Structures/Specific/Anomalies/flora_anom.rsi/pulse.png new file mode 100644 index 00000000000..06580ddfe33 Binary files /dev/null and b/Resources/Textures/Structures/Specific/Anomalies/flora_anom.rsi/pulse.png differ diff --git a/Resources/Textures/Structures/Wallmounts/Lighting/light_tube.rsi/base.png b/Resources/Textures/Structures/Wallmounts/Lighting/light_tube.rsi/base.png index 0a2e1ae76b9..02e8764173f 100644 Binary files a/Resources/Textures/Structures/Wallmounts/Lighting/light_tube.rsi/base.png and b/Resources/Textures/Structures/Wallmounts/Lighting/light_tube.rsi/base.png differ diff --git a/Resources/Textures/Structures/Wallmounts/Lighting/light_tube.rsi/broken.png b/Resources/Textures/Structures/Wallmounts/Lighting/light_tube.rsi/broken.png index 1565cdc86d7..9d10428af8d 100644 Binary files a/Resources/Textures/Structures/Wallmounts/Lighting/light_tube.rsi/broken.png and b/Resources/Textures/Structures/Wallmounts/Lighting/light_tube.rsi/broken.png differ diff --git a/Resources/Textures/Structures/Wallmounts/Lighting/light_tube.rsi/burned.png b/Resources/Textures/Structures/Wallmounts/Lighting/light_tube.rsi/burned.png index 7e14e2c2b39..160db7c5cbb 100644 Binary files a/Resources/Textures/Structures/Wallmounts/Lighting/light_tube.rsi/burned.png and b/Resources/Textures/Structures/Wallmounts/Lighting/light_tube.rsi/burned.png differ diff --git a/Resources/Textures/Structures/Wallmounts/Lighting/light_tube.rsi/empty.png b/Resources/Textures/Structures/Wallmounts/Lighting/light_tube.rsi/empty.png index 5ead53beb0e..0f8f9478bd8 100644 Binary files a/Resources/Textures/Structures/Wallmounts/Lighting/light_tube.rsi/empty.png and b/Resources/Textures/Structures/Wallmounts/Lighting/light_tube.rsi/empty.png differ diff --git a/Resources/Textures/Structures/Wallmounts/Lighting/light_tube.rsi/glow.png b/Resources/Textures/Structures/Wallmounts/Lighting/light_tube.rsi/glow.png index edffdfe50c2..e1258d83dc3 100644 Binary files a/Resources/Textures/Structures/Wallmounts/Lighting/light_tube.rsi/glow.png and b/Resources/Textures/Structures/Wallmounts/Lighting/light_tube.rsi/glow.png differ diff --git a/Resources/Textures/Structures/Wallmounts/camera.rsi/meta.json b/Resources/Textures/Structures/Wallmounts/camera.rsi/meta.json index 95d2b24378e..b8cedc6db63 100644 --- a/Resources/Textures/Structures/Wallmounts/camera.rsi/meta.json +++ b/Resources/Textures/Structures/Wallmounts/camera.rsi/meta.json @@ -1,490 +1,73 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from TauCetiClassic at commit https://github.com/TauCetiStation/TauCetiClassic/commit/f878e95210d81e1328b023feb96ec0d0b6113d8c", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "camera", - "directions": 8, - "delays": [ - [ - 0.25, - 0.25, - 0.6, - 0.25, - 0.25, - 0.25, - 0.6, - 0.25, - 0.25 - ], - [ - 0.25, - 0.25, - 0.6, - 0.25, - 0.25, - 0.25, - 0.6, - 0.25, - 0.25 - ], - [ - 0.25, - 0.25, - 0.6, - 0.25, - 0.25, - 0.25, - 0.6, - 0.25, - 0.25 - ], - [ - 0.25, - 0.25, - 0.6, - 0.25, - 0.25, - 0.25, - 0.6, - 0.25, - 0.25 - ], - [ - 0.25, - 0.25, - 0.6, - 0.25, - 0.25, - 0.25, - 0.6, - 0.25, - 0.25 - ], - [ - 0.25, - 0.25, - 0.6, - 0.25, - 0.25, - 0.25, - 0.6, - 0.25, - 0.25 - ], - [ - 0.25, - 0.25, - 0.6, - 0.25, - 0.25, - 0.25, - 0.6, - 0.25, - 0.25 - ], - [ - 0.25, - 0.25, - 0.6, - 0.25, - 0.25, - 0.25, - 0.6, - 0.25, - 0.25 - ] - ] + "version": 1, + "size": { + "x": 32, + "y": 32 }, - { - "name": "camera_in_use", - "directions": 8, - "delays": [ - [ - 0.25, - 0.25, - 0.6, - 0.25, - 0.25, - 0.25, - 0.6, - 0.25 - ], - [ - 0.25, - 0.25, - 0.6, - 0.25, - 0.25, - 0.25, - 0.6, - 0.25 - ], - [ - 0.25, - 0.25, - 0.6, - 0.25, - 0.25, - 0.25, - 0.6, - 0.25 - ], - [ - 0.25, - 0.25, - 0.6, - 0.25, - 0.25, - 0.25, - 0.6, - 0.25 - ], - [ - 0.25, - 0.25, - 0.6, - 0.25, - 0.25, - 0.25, - 0.6, - 0.25 - ], - [ - 0.25, - 0.25, - 0.6, - 0.25, - 0.25, - 0.25, - 0.6, - 0.25 - ], - [ - 0.25, - 0.25, - 0.6, - 0.25, - 0.25, - 0.25, - 0.6, - 0.25 - ], - [ - 0.25, - 0.25, - 0.6, - 0.25, - 0.25, - 0.25, - 0.6, - 0.25 - ] - ] - }, - { - "name": "camera_off", - "directions": 8 - }, - { - "name": "camera_emp", - "directions": 8, - "delays": [ - [ - 0.2, - 0.2, - 0.2, - 0.2 - ], - [ - 0.2, - 0.2, - 0.2, - 0.2 - ], - [ - 0.2, - 0.2, - 0.2, - 0.2 - ], - [ - 0.2, - 0.2, - 0.2, - 0.2 - ], - [ - 0.2, - 0.2, - 0.2, - 0.2 - ], - [ - 0.2, - 0.2, - 0.2, - 0.2 - ], - [ - 0.2, - 0.2, - 0.2, - 0.2 - ], - [ - 0.2, - 0.2, - 0.2, - 0.2 - ] - ] - }, - { - "name": "camera_assembly", - "directions": 8 - }, - { - "name": "xraycamera", - "directions": 8, - "delays": [ - [ - 0.25, - 0.25, - 0.6, - 0.25, - 0.25, - 0.25, - 0.6, - 0.25 - ], - [ - 0.25, - 0.25, - 0.6, - 0.25, - 0.25, - 0.25, - 0.6, - 0.25 - ], - [ - 0.25, - 0.25, - 0.6, - 0.25, - 0.25, - 0.25, - 0.6, - 0.25 - ], - [ - 0.25, - 0.25, - 0.6, - 0.25, - 0.25, - 0.25, - 0.6, - 0.25 - ], - [ - 0.25, - 0.25, - 0.6, - 0.25, - 0.25, - 0.25, - 0.6, - 0.25 - ], - [ - 0.25, - 0.25, - 0.6, - 0.25, - 0.25, - 0.25, - 0.6, - 0.25 - ], - [ - 0.25, - 0.25, - 0.6, - 0.25, - 0.25, - 0.25, - 0.6, - 0.25 - ], - [ - 0.25, - 0.25, - 0.6, - 0.25, - 0.25, - 0.25, - 0.6, - 0.25 - ] - ] - }, - { - "name": "xraycamera_emp", - "directions": 8, - "delays": [ - [ - 0.2, - 0.2, - 0.2, - 0.2 - ], - [ - 0.2, - 0.2, - 0.2, - 0.2 - ], - [ - 0.2, - 0.2, - 0.2, - 0.2 - ], - [ - 0.2, - 0.2, - 0.2, - 0.2 - ], - [ - 0.2, - 0.2, - 0.2, - 0.2 - ], - [ - 0.2, - 0.2, - 0.2, - 0.2 - ], - [ - 0.2, - 0.2, - 0.2, - 0.2 - ], - [ - 0.2, - 0.2, - 0.2, - 0.2 - ] - ] - }, - { - "name": "xraycamera_off", - "directions": 8 - }, - { - "name": "xraycamera_assembly", - "directions": 8 - }, - { - "name": "cameracase" - }, - { - "name": "xraycamera_in_use", - "directions": 8, - "delays": [ - [ - 0.25, - 0.25, - 0.6, - 0.25, - 0.25, - 0.25, - 0.6, - 0.25 - ], - [ - 0.25, - 0.25, - 0.6, - 0.25, - 0.25, - 0.25, - 0.6, - 0.25 - ], - [ - 0.25, - 0.25, - 0.6, - 0.25, - 0.25, - 0.25, - 0.6, - 0.25 - ], - [ - 0.25, - 0.25, - 0.6, - 0.25, - 0.25, - 0.25, - 0.6, - 0.25 - ], - [ - 0.25, - 0.25, - 0.6, - 0.25, - 0.25, - 0.25, - 0.6, - 0.25 - ], - [ - 0.25, - 0.25, - 0.6, - 0.25, - 0.25, - 0.25, - 0.6, - 0.25 - ], - [ - 0.25, - 0.25, - 0.6, - 0.25, - 0.25, - 0.25, - 0.6, - 0.25 - ], - [ - 0.25, - 0.25, - 0.6, - 0.25, - 0.25, - 0.25, - 0.6, - 0.25 - ] - ] - } - ] -} + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/6bfe3b2e4fcbcdac9159dc4f0327a82ddf05ba7bi", + "states": [ + { + "name": "camera", + "directions": 1, + "delays": [ + [ 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3 ] + ] + }, + { + "name": "camera_assembly", + "directions": 1 + }, + { + "name": "camera_emp", + "directions": 1, + "delays": [ + [ 0.2, 0.2, 0.1, 0.1 ] + ] + }, + { + "name": "camera_in_use", + "directions": 1, + "delays": [ + [ 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3 ] + ] + }, + { + "name": "camera_off", + "directions": 1 + }, + { + "name": "cameracase", + "directions": 1 + }, + { + "name": "xraycamera", + "directions": 1, + "delays": [ + [ 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3 ] + ] + }, + { + "name": "xraycamera_assembly", + "directions": 1 + }, + { + "name": "xraycamera_emp", + "directions": 1, + "delays": [ + [ 0.2, 0.2, 0.1, 0.1 ] + ] + }, + { + "name": "xraycamera_in_use", + "directions": 1, + "delays": [ + [ 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3 ] + ] + }, + { + "name": "xraycamera_off", + "directions": 1 + } + ] +} \ No newline at end of file diff --git a/Resources/engineCommandPerms.yml b/Resources/engineCommandPerms.yml index 423da9cdc8f..b425d06099c 100644 --- a/Resources/engineCommandPerms.yml +++ b/Resources/engineCommandPerms.yml @@ -67,6 +67,7 @@ - scene - replay_recording_stats - print_pvs_ack + - merge_grids - Flags: MAPPING diff --git a/Resources/migration.yml b/Resources/migration.yml index a6649699540..c6dbf4c11e1 100644 --- a/Resources/migration.yml +++ b/Resources/migration.yml @@ -291,3 +291,6 @@ SpaceMedipen: null # 2024-01-18 ClothingHeadHelmetVoidParamed: null + +# 2024-01-19 +DefaultStationBeaconTeslaEngine: null diff --git a/RobustToolbox b/RobustToolbox index 0cf842cacce..bcaa97a79be 160000 --- a/RobustToolbox +++ b/RobustToolbox @@ -1 +1 @@ -Subproject commit 0cf842caccebb43aa06ac05f76eb5dc89196dfe0 +Subproject commit bcaa97a79be1afb9823832a790dbf9b5512965cd