From 67b5b784cdf3833da50f9b72623a8df3b09f1c6c Mon Sep 17 00:00:00 2001 From: 778b Date: Mon, 5 Feb 2024 06:18:17 +0300 Subject: [PATCH 1/4] added default systems --- Content.Client/Entry/EntryPoint.cs | 3 +- .../Rules/TS/MasterRORuleSystem.cs | 101 +++++++++++++++--- Content.Server/TS/MissionGridPrototype.cs | 20 ++++ ...ridPrototype.cs => MissionMapPrototype.cs} | 2 +- Resources/Prototypes/Maps/mission_grids.yml | 26 ++--- Resources/Prototypes/TS/Entities/Markers.yml | 4 + 6 files changed, 126 insertions(+), 30 deletions(-) create mode 100644 Content.Server/TS/MissionGridPrototype.cs rename Content.Server/TS/{MissionMapGridPrototype.cs => MissionMapPrototype.cs} (88%) create mode 100644 Resources/Prototypes/TS/Entities/Markers.yml diff --git a/Content.Client/Entry/EntryPoint.cs b/Content.Client/Entry/EntryPoint.cs index 5180c32107..4321808ccc 100644 --- a/Content.Client/Entry/EntryPoint.cs +++ b/Content.Client/Entry/EntryPoint.cs @@ -123,7 +123,8 @@ public override void Init() _prototypeManager.RegisterIgnore("alertLevels"); _prototypeManager.RegisterIgnore("nukeopsRole"); _prototypeManager.RegisterIgnore("secretPool"); - _prototypeManager.RegisterIgnore("missionMapGrid"); + _prototypeManager.RegisterIgnore("missionGrid"); + _prototypeManager.RegisterIgnore("missionMap"); _prototypeManager.RegisterIgnore("stationGoal"); // Corvax-StationGoal _prototypeManager.RegisterIgnore("loadout"); // Corvax-Loadout diff --git a/Content.Server/GameTicking/Rules/TS/MasterRORuleSystem.cs b/Content.Server/GameTicking/Rules/TS/MasterRORuleSystem.cs index b891f35e70..c3e9d60a7e 100644 --- a/Content.Server/GameTicking/Rules/TS/MasterRORuleSystem.cs +++ b/Content.Server/GameTicking/Rules/TS/MasterRORuleSystem.cs @@ -1,6 +1,15 @@ +using System.Linq; +using System.Numerics; using Content.Server.Chat.Systems; using Content.Server.GameTicking.Rules.Components; +using Content.Server.TS; +using Robust.Server.GameObjects; +using Robust.Server.Maps; +using Robust.Shared.Map; +using Robust.Shared.Prototypes; +using Robust.Shared.Random; +using Robust.Shared.Timing; namespace Content.Server.GameTicking.Rules; @@ -8,29 +17,91 @@ namespace Content.Server.GameTicking.Rules; public sealed class MasterRORuleSystem : GameRuleSystem { [Dependency] private readonly ChatSystem _chat = default!; - - protected override void Added(EntityUid uid, MasterRORuleComponent component, GameRuleComponent gameRule, GameRuleAddedEvent args) - { - _chat.DispatchGlobalAnnouncement("Added gamerule", "SpecialForces", true, null, Color.BetterViolet); - } - + [Dependency] private readonly MapSystem _mapSystem = default!; + [Dependency] private readonly MapLoaderSystem _mapLoader = default!; + [Dependency] private readonly IMapManager _mapManager = default!; + [Dependency] private readonly IEntityManager _entMan = default!; + [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly ILogManager _logManager = default!; + [Dependency] private readonly ITimerManager _timerManager = default!; + [Dependency] private readonly IPrototypeManager _prototypeManager = default!; protected override void Started(EntityUid uid, MasterRORuleComponent component, GameRuleComponent gameRule, GameRuleStartedEvent args) { - _chat.DispatchGlobalAnnouncement("Started gamerule", "SpecialForces", true, null, Color.BetterViolet); + var randDelay = 60000; //_random.Next(400000, 600000); + _timerManager.AddTimer(new Timer(randDelay, false, startEvent)); } - /// - /// Called when the gamerule ends - /// - protected override void Ended(EntityUid uid, MasterRORuleComponent component, GameRuleComponent gameRule, GameRuleEndedEvent args) + private void startEvent() { - _chat.DispatchGlobalAnnouncement("Ended gamerule", "SpecialForces", true, null, Color.BetterViolet); + var smallestValue = 1; + for (; smallestValue < 25; ++smallestValue) // 25 is magic number + { + if (_mapManager.MapExists(new MapId(smallestValue))) + continue; + break; + } + + if (smallestValue == 25) + { + _logManager.GetSawmill("RORule").Error("Event cant spawn map, because maps already more than 24"); + return; + } + var mapId = new MapId(smallestValue); + + var allFoundMaps = _prototypeManager.EnumeratePrototypes().ToList(); + + if (!allFoundMaps.Any()) + { + _logManager.GetSawmill("RORule").Error("Event cant spawn map, because cant find any mission map prototype"); + return; + } + + var allFoundGrids = _prototypeManager.EnumeratePrototypes().ToList(); + + _chat.DispatchGlobalAnnouncement("research-mission-message", "research-mission-sender", true, null, Color.Blue); + + var indexMap = _random.Next(allFoundMaps.Count() - 1); + + if (!_mapLoader.TryLoad(mapId, allFoundMaps[indexMap].MapPath.ToString(), out var entityList)) + { + return; + } + + var grids = _mapManager.GetAllMapGrids(mapId); + + if (!grids.Any()) + { + _logManager.GetSawmill("RORule").Error("Event cant found main grid!"); + return; + } + var entityMap = _mapManager.GetMapEntityId(mapId); + + var centerMap = _mapSystem.LocalToWorld(entityMap, grids.First(), Vector2.Zero); + + var ftlPoint = _entMan.SpawnEntity("FTLPointUnknown", new MapCoordinates(centerMap, mapId)); + + int objectCount = _random.Next(6); + float angleDelta = 360 / objectCount; + var xDelta = _random.NextFloat(0.5f, 1); + var startVector = new Vector2(xDelta, 1 - (xDelta * xDelta)); // hard math of point on normalized circle, Y found by Pifagor's theorem + for (var i = 0; i < objectCount; ++i) + { + var indexGrid = _random.Next(allFoundGrids.Count() - 1); + float currentAngle = angleDelta * i; + var tempOptions = new MapLoadOptions(); + tempOptions.Offset = new Vector2( + (startVector.X * Single.Cos(currentAngle) - startVector.Y * Single.Sin(currentAngle) ), + (startVector.X * Single.Sin(currentAngle) + startVector.Y * Single.Cos(currentAngle) ) + ) * _random.NextFloat(140f, 220f) + centerMap; + tempOptions.Rotation = _random.NextAngle(0, 360); + + if (!_mapLoader.TryLoad(mapId, allFoundGrids[indexGrid].GridPath.ToString(), out _, tempOptions)) continue; + } + _mapManager.DoMapInitialize(mapId); } - /// - /// Called on an active gamerule entity in the Update function - /// + protected override void ActiveTick(EntityUid uid, MasterRORuleComponent component, GameRuleComponent gameRule, float frameTime) { //_chat.DispatchGlobalAnnouncement("Added gamerule", "SpecialForces", true, null, Color.BetterViolet); diff --git a/Content.Server/TS/MissionGridPrototype.cs b/Content.Server/TS/MissionGridPrototype.cs new file mode 100644 index 0000000000..33f23bf021 --- /dev/null +++ b/Content.Server/TS/MissionGridPrototype.cs @@ -0,0 +1,20 @@ +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; +using Robust.Shared.Utility; + +namespace Content.Server.TS; + +/// +/// Stores data for generic queries. +/// Each query is run in turn to get the final available results. +/// These results are then run through the considerations. +/// +[Prototype] +public sealed partial class MissionGridPrototype : IPrototype +{ + [IdDataField] + public string ID { get; private set; } = default!; + + [DataField(required: true)] + public ResPath GridPath; +} diff --git a/Content.Server/TS/MissionMapGridPrototype.cs b/Content.Server/TS/MissionMapPrototype.cs similarity index 88% rename from Content.Server/TS/MissionMapGridPrototype.cs rename to Content.Server/TS/MissionMapPrototype.cs index 9014a0762c..acdec485dd 100644 --- a/Content.Server/TS/MissionMapGridPrototype.cs +++ b/Content.Server/TS/MissionMapPrototype.cs @@ -10,7 +10,7 @@ namespace Content.Server.TS; /// These results are then run through the considerations. /// [Prototype] -public sealed partial class MissionMapGridPrototype : IPrototype +public sealed partial class MissionMapPrototype : IPrototype { [IdDataField] public string ID { get; private set; } = default!; diff --git a/Resources/Prototypes/Maps/mission_grids.yml b/Resources/Prototypes/Maps/mission_grids.yml index 9fe9def54f..f8e8df2296 100644 --- a/Resources/Prototypes/Maps/mission_grids.yml +++ b/Resources/Prototypes/Maps/mission_grids.yml @@ -1,27 +1,27 @@ -- type: missionMapGrid +- type: missionMap id: MissionAspidBroken mapPath: /Maps/Mission/broken-aspid.yml -- type: missionMapGrid +- type: missionGrid id: MissionVanillaMediumVault1 - mapPath: /Maps/Mission/medium-vault-1.yml + gridPath: /Maps/Mission/medium-vault-1.yml -- type: missionMapGrid +- type: missionGrid id: MissionVanillaRuinCargoSalvage - mapPath: /Maps/Mission/ruin-cargo-salvage.yml + gridPath: /Maps/Mission/ruin-cargo-salvage.yml -- type: missionMapGrid +- type: missionGrid id: MissionVanillaSmallChapel - mapPath: /Maps/Mission/small-chapel.yml + gridPath: /Maps/Mission/small-chapel.yml -- type: missionMapGrid +- type: missionGrid id: MissionVanillaSmallShip1 - mapPath: /Maps/Mission/small-ship-1.yml + gridPath: /Maps/Mission/small-ship-1.yml -- type: missionMapGrid +- type: missionGrid id: MissionVanillaSmallSyndicate - mapPath: /Maps/Mission/small-syndicate.yml + gridPath: /Maps/Mission/small-syndicate.yml -- type: missionMapGrid +- type: missionGrid id: MissionVanillaTickColony - mapPath: /Maps/Mission/tick-colony.yml + gridPath: /Maps/Mission/tick-colony.yml diff --git a/Resources/Prototypes/TS/Entities/Markers.yml b/Resources/Prototypes/TS/Entities/Markers.yml new file mode 100644 index 0000000000..1acd27a3f0 --- /dev/null +++ b/Resources/Prototypes/TS/Entities/Markers.yml @@ -0,0 +1,4 @@ +- type: entity + id: FTLPointUnknown + parent: FTLPoint + name: Unknown point From c435d616aee358699a15c313fc0a4bffc32f4f3b Mon Sep 17 00:00:00 2001 From: 778b Date: Mon, 5 Feb 2024 20:52:58 +0300 Subject: [PATCH 2/4] Update MasterRORuleSystem.cs --- .../Rules/TS/MasterRORuleSystem.cs | 170 +++++++++++++++--- 1 file changed, 149 insertions(+), 21 deletions(-) diff --git a/Content.Server/GameTicking/Rules/TS/MasterRORuleSystem.cs b/Content.Server/GameTicking/Rules/TS/MasterRORuleSystem.cs index c3e9d60a7e..cbdcdceab9 100644 --- a/Content.Server/GameTicking/Rules/TS/MasterRORuleSystem.cs +++ b/Content.Server/GameTicking/Rules/TS/MasterRORuleSystem.cs @@ -7,6 +7,7 @@ using Robust.Server.GameObjects; using Robust.Server.Maps; using Robust.Shared.Map; +using Robust.Shared.Map.Components; using Robust.Shared.Prototypes; using Robust.Shared.Random; using Robust.Shared.Timing; @@ -26,13 +27,9 @@ public sealed class MasterRORuleSystem : GameRuleSystem [Dependency] private readonly ITimerManager _timerManager = default!; [Dependency] private readonly IPrototypeManager _prototypeManager = default!; + private static MapId _currentMissionMapId; + private static Vector2 _currentCenterMissionMap; protected override void Started(EntityUid uid, MasterRORuleComponent component, GameRuleComponent gameRule, GameRuleStartedEvent args) - { - var randDelay = 60000; //_random.Next(400000, 600000); - _timerManager.AddTimer(new Timer(randDelay, false, startEvent)); - } - - private void startEvent() { var smallestValue = 1; for (; smallestValue < 25; ++smallestValue) // 25 is magic number @@ -47,7 +44,7 @@ private void startEvent() _logManager.GetSawmill("RORule").Error("Event cant spawn map, because maps already more than 24"); return; } - var mapId = new MapId(smallestValue); + _currentMissionMapId = new MapId(smallestValue); var allFoundMaps = _prototypeManager.EnumeratePrototypes().ToList(); @@ -58,30 +55,28 @@ private void startEvent() } var allFoundGrids = _prototypeManager.EnumeratePrototypes().ToList(); - - _chat.DispatchGlobalAnnouncement("research-mission-message", "research-mission-sender", true, null, Color.Blue); - var indexMap = _random.Next(allFoundMaps.Count() - 1); - if (!_mapLoader.TryLoad(mapId, allFoundMaps[indexMap].MapPath.ToString(), out var entityList)) + if (!_mapLoader.TryLoad(_currentMissionMapId, allFoundMaps[indexMap].MapPath.ToString(), out var entityList)) { return; } - var grids = _mapManager.GetAllMapGrids(mapId); + var grids = _mapManager.GetAllMapGrids(_currentMissionMapId); + var mainGrid = grids.First(); if (!grids.Any()) { _logManager.GetSawmill("RORule").Error("Event cant found main grid!"); return; } - var entityMap = _mapManager.GetMapEntityId(mapId); + var entityMap = _mapManager.GetMapEntityId(_currentMissionMapId); - var centerMap = _mapSystem.LocalToWorld(entityMap, grids.First(), Vector2.Zero); + _currentCenterMissionMap = _mapSystem.LocalToWorld(entityMap, mainGrid, Vector2.Zero); - var ftlPoint = _entMan.SpawnEntity("FTLPointUnknown", new MapCoordinates(centerMap, mapId)); + int objectCount = _random.Next(5, 9); + _logManager.GetSawmill("RORule").Info("Side grid count = {0}", objectCount); - int objectCount = _random.Next(6); float angleDelta = 360 / objectCount; var xDelta = _random.NextFloat(0.5f, 1); var startVector = new Vector2(xDelta, 1 - (xDelta * xDelta)); // hard math of point on normalized circle, Y found by Pifagor's theorem @@ -91,14 +86,115 @@ private void startEvent() float currentAngle = angleDelta * i; var tempOptions = new MapLoadOptions(); tempOptions.Offset = new Vector2( - (startVector.X * Single.Cos(currentAngle) - startVector.Y * Single.Sin(currentAngle) ), - (startVector.X * Single.Sin(currentAngle) + startVector.Y * Single.Cos(currentAngle) ) - ) * _random.NextFloat(140f, 220f) + centerMap; + (startVector.X * Single.Cos(currentAngle) - startVector.Y * Single.Sin(currentAngle)), + (startVector.X * Single.Sin(currentAngle) + startVector.Y * Single.Cos(currentAngle)) + ) * _random.NextFloat(140f, 220f) + _currentCenterMissionMap; tempOptions.Rotation = _random.NextAngle(0, 360); - if (!_mapLoader.TryLoad(mapId, allFoundGrids[indexGrid].GridPath.ToString(), out _, tempOptions)) continue; + _mapLoader.TryLoad(_currentMissionMapId, allFoundGrids[indexGrid].GridPath.ToString(), out _, tempOptions); + } + _mapManager.DoMapInitialize(_currentMissionMapId); + + var allSecretPools = _prototypeManager.EnumeratePrototypes().ToList(); + + if (!allSecretPools.Any()) + { + _logManager.GetSawmill("RORule").Error("No one secretPoolPrototype found!"); + return; + } + + var missionItemSpawners = new List(); + + foreach (var tempEnt in entityList) // there is no other way to get entity by ID in current map + { + if (_entMan.TryGetComponent(tempEnt, out var tempMeta)) + { + if (tempMeta.EntityPrototype == null) + continue; + _logManager.GetSawmill("RORule").Info("EntityName = {0}, EntityID = {1}", tempMeta.EntityName, tempMeta.EntityPrototype.ID); + if (tempMeta.EntityPrototype.ID.Equals("MissionItemSpawn")) + { + missionItemSpawners.Add(tempEnt); + } + } + } + + if (missionItemSpawners.Any()) + { + _logManager.GetSawmill("RORule").Error("No one MissionItemPrototype found!"); + return; + } + else + _logManager.GetSawmill("RORule").Info("Found {0} mission item's spawners on RO map", missionItemSpawners.Count()); + + // @todo antag player system balance + var guaranteedPointsCount = 3; + var sidePointsCount = 2; + int debugCountItems = 0; + + var tempPoolIndex = _random.Next(allSecretPools.Count() - 1); + + var tempTupleSpawnerList = new List>(); + foreach (var tempMissionItem in missionItemSpawners) + { + tempTupleSpawnerList.Add(new Tuple(tempMissionItem, false)); + } + + if (missionItemSpawners.Count() <= guaranteedPointsCount) + { + foreach (var tempMissionItem in missionItemSpawners) + { + if (spawnMissionItem(allSecretPools[tempPoolIndex], tempMissionItem, entityMap, mainGrid)) + ++debugCountItems; + } } - _mapManager.DoMapInitialize(mapId); + else + { + for (var i = 0; i < guaranteedPointsCount; ++i) + { + var tempRandMissionIndex = _random.Next(missionItemSpawners.Count()); + + if (spawnMissionItem(allSecretPools[tempPoolIndex], missionItemSpawners[tempRandMissionIndex], + entityMap, mainGrid)) + { + missionItemSpawners.Remove(missionItemSpawners[tempRandMissionIndex]); + ++debugCountItems; + } + } + + if (missionItemSpawners.Any()) + { + if (missionItemSpawners.Count() <= sidePointsCount) + { + foreach (var tempMissionItem in missionItemSpawners) + { + if (_random.Next(100) > 60) + continue; // 40% chance + + if (spawnMissionItem(allSecretPools[tempPoolIndex], tempMissionItem, entityMap, mainGrid)) + ++debugCountItems; + } + } + else + { + for (var i = 0; i < sidePointsCount; ++i) + { + var tempRandMissionIndex = _random.Next(missionItemSpawners.Count()); + if (spawnMissionItem(allSecretPools[tempPoolIndex], missionItemSpawners[tempRandMissionIndex], + entityMap, mainGrid)) + { + missionItemSpawners.Remove(missionItemSpawners[tempRandMissionIndex]); + ++debugCountItems; + } + } + } + } + } + + _logManager.GetSawmill("RORule").Info("Spawned {0} mission items on RO map", debugCountItems); + + var randDelay = 60000; // 1 min //_random.Next(400000, 600000); // 5-10 min + _timerManager.AddTimer(new Timer(randDelay, false, startEvent)); } @@ -106,4 +202,36 @@ protected override void ActiveTick(EntityUid uid, MasterRORuleComponent componen { //_chat.DispatchGlobalAnnouncement("Added gamerule", "SpecialForces", true, null, Color.BetterViolet); } + + + private void startEvent() + { + var ftlPoint = _entMan.SpawnEntity("FTLPointUnknown", new MapCoordinates(_currentCenterMissionMap, _currentMissionMapId)); + + _chat.DispatchGlobalAnnouncement("research-mission-message", "research-mission-sender", true, null, Color.Blue); + } + + + private bool spawnMissionItem(SecretPoolPrototype secretPool, EntityUid missionItemSpawner, EntityUid entityMap, MapGridComponent mainGrid) + { + if (!TryComp(missionItemSpawner, out TransformComponent? xComp)) + { + _logManager.GetSawmill("RORule") + .Error( + "Item {0} has no transform component, cant spawn random guaranteed mission item!", missionItemSpawner.Id); + return false; + } + + var tempItemPoolIndex = _random.Next(secretPool.PoolItems.Count() - 1); + _entMan.Spawn( + secretPool.PoolItems[tempItemPoolIndex], + new MapCoordinates(_mapSystem.LocalToWorld(entityMap, mainGrid, xComp.LocalPosition), + _currentMissionMapId) + ); + return true; + } + + + + } From a8677cbb3c0487584ead0293a6b9f8e8bc9c9728 Mon Sep 17 00:00:00 2001 From: 778b Date: Mon, 5 Feb 2024 23:37:50 +0300 Subject: [PATCH 3/4] fixed rule spawn --- .../Rules/TS/MasterRORuleSystem.cs | 20 +++-- .../Locale/ru-RU/TS/research-mission.ftl | 2 + Resources/Maps/Mission/broken-aspid.yml | 74 ------------------- 3 files changed, 17 insertions(+), 79 deletions(-) create mode 100644 Resources/Locale/ru-RU/TS/research-mission.ftl diff --git a/Content.Server/GameTicking/Rules/TS/MasterRORuleSystem.cs b/Content.Server/GameTicking/Rules/TS/MasterRORuleSystem.cs index cbdcdceab9..0922b1ed0a 100644 --- a/Content.Server/GameTicking/Rules/TS/MasterRORuleSystem.cs +++ b/Content.Server/GameTicking/Rules/TS/MasterRORuleSystem.cs @@ -26,6 +26,7 @@ public sealed class MasterRORuleSystem : GameRuleSystem [Dependency] private readonly ILogManager _logManager = default!; [Dependency] private readonly ITimerManager _timerManager = default!; [Dependency] private readonly IPrototypeManager _prototypeManager = default!; + [Dependency] private readonly ILocalizationManager _localizationManager = default!; private static MapId _currentMissionMapId; private static Vector2 _currentCenterMissionMap; @@ -104,22 +105,28 @@ protected override void Started(EntityUid uid, MasterRORuleComponent component, } var missionItemSpawners = new List(); + var tempEntities = _entMan.GetEntities(); - foreach (var tempEnt in entityList) // there is no other way to get entity by ID in current map + foreach (var tempEnt in tempEntities) // there is no other way to get entity by ID in current map { + if (_entMan.TryGetComponent(tempEnt, out var tempTransform)) + { + if (tempTransform.MapID != _currentMissionMapId) continue; + } + if (_entMan.TryGetComponent(tempEnt, out var tempMeta)) { if (tempMeta.EntityPrototype == null) continue; - _logManager.GetSawmill("RORule").Info("EntityName = {0}, EntityID = {1}", tempMeta.EntityName, tempMeta.EntityPrototype.ID); - if (tempMeta.EntityPrototype.ID.Equals("MissionItemSpawn")) + + if (tempMeta.EntityPrototype.ID == "MissionItemSpawn") { missionItemSpawners.Add(tempEnt); } } } - if (missionItemSpawners.Any()) + if (!missionItemSpawners.Any()) { _logManager.GetSawmill("RORule").Error("No one MissionItemPrototype found!"); return; @@ -208,7 +215,10 @@ private void startEvent() { var ftlPoint = _entMan.SpawnEntity("FTLPointUnknown", new MapCoordinates(_currentCenterMissionMap, _currentMissionMapId)); - _chat.DispatchGlobalAnnouncement("research-mission-message", "research-mission-sender", true, null, Color.Blue); + var senderLocale = _localizationManager.GetString("research-mission-sender"); + var messageLocale = _localizationManager.GetString("research-mission-message"); + + _chat.DispatchGlobalAnnouncement(messageLocale, senderLocale, true, null, Color.GreenYellow); } diff --git a/Resources/Locale/ru-RU/TS/research-mission.ftl b/Resources/Locale/ru-RU/TS/research-mission.ftl new file mode 100644 index 0000000000..5ee3eaa4de --- /dev/null +++ b/Resources/Locale/ru-RU/TS/research-mission.ftl @@ -0,0 +1,2 @@ +research-mission-sender = Центральный военный штаб +research-mission-message = Внимание! Одна из наших станций послала сигнал SOS, по последним данным станционного ИИ, на борту живых членов экипажа нет. Приказываем собрать группу, разведать ситуацию, эвакуировать важные документы, устранить имеющиеся угрозы. diff --git a/Resources/Maps/Mission/broken-aspid.yml b/Resources/Maps/Mission/broken-aspid.yml index e69edb295e..e0fd2545d2 100644 --- a/Resources/Maps/Mission/broken-aspid.yml +++ b/Resources/Maps/Mission/broken-aspid.yml @@ -40219,80 +40219,6 @@ entities: - type: Transform pos: -28.5,58.5 parent: 1 -- proto: DeployableBarrier - entities: - - uid: 3438 - components: - - type: Transform - anchored: True - pos: 7.5,13.5 - parent: 1 - - type: Physics - bodyType: Static - - type: Lock - locked: True - - type: PointLight - enabled: True - - uid: 6158 - components: - - type: Transform - anchored: True - pos: 7.5,15.5 - parent: 1 - - type: Physics - bodyType: Static - - type: Lock - locked: True - - type: PointLight - enabled: True - - uid: 6161 - components: - - type: Transform - anchored: True - pos: 10.5,15.5 - parent: 1 - - type: Physics - bodyType: Static - - type: Lock - locked: True - - type: PointLight - enabled: True - - uid: 8387 - components: - - type: Transform - anchored: True - pos: -28.5,37.5 - parent: 1 - - type: Physics - bodyType: Static - - type: Lock - locked: True - - type: PointLight - enabled: True - - uid: 9502 - components: - - type: Transform - anchored: True - pos: 10.5,14.5 - parent: 1 - - type: Physics - bodyType: Static - - type: Lock - locked: True - - type: PointLight - enabled: True - - uid: 9533 - components: - - type: Transform - anchored: True - pos: -28.5,38.5 - parent: 1 - - type: Physics - bodyType: Static - - type: Lock - locked: True - - type: PointLight - enabled: True - proto: DeskBell entities: - uid: 5855 From 0d81e14ab277af5b76895bc5de261a855d32af52 Mon Sep 17 00:00:00 2001 From: 778b Date: Mon, 5 Feb 2024 23:53:35 +0300 Subject: [PATCH 4/4] Update broken-aspid.yml --- Resources/Maps/Mission/broken-aspid.yml | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/Resources/Maps/Mission/broken-aspid.yml b/Resources/Maps/Mission/broken-aspid.yml index e0fd2545d2..73e1e74d35 100644 --- a/Resources/Maps/Mission/broken-aspid.yml +++ b/Resources/Maps/Mission/broken-aspid.yml @@ -57,7 +57,6 @@ entities: - type: MetaData - type: Transform pos: 0.13793182,0.57805127 - parent: invalid - type: MapGrid chunks: -1,-1: @@ -8397,13 +8396,6 @@ entities: rot: -1.5707963267948966 rad pos: -2.5,48.5 parent: 1 - - type: DeviceLinkSink - links: - - 99 - - type: DeviceLinkSource - linkedPorts: - invalid: - - DoorStatus: Close - uid: 99 components: - type: Transform @@ -58976,10 +58968,6 @@ entities: rot: -1.5707963267948966 rad pos: -4.5,-37.5 parent: 1 - - type: DeviceLinkSource - linkedPorts: - invalid: - - Pressed: Toggle - uid: 8753 components: - type: Transform