diff --git a/Content.Client/_CE/MagicVision/CEClientMagicVisionSystem.cs b/Content.Client/_CE/MagicVision/CEClientMagicVisionSystem.cs index dba0930caf4..e6cbd3beca1 100644 --- a/Content.Client/_CE/MagicVision/CEClientMagicVisionSystem.cs +++ b/Content.Client/_CE/MagicVision/CEClientMagicVisionSystem.cs @@ -17,7 +17,6 @@ public sealed partial class CEClientMagicVisionSystem : EntitySystem [Dependency] private IGameTiming _timing = default!; private CEMagicVisionOverlay? _overlay; - private CEMagicVisionNoirOverlay? _noirOverlay; private readonly SoundSpecifier _startSound = new SoundPathSpecifier(new ResPath("/Audio/Effects/eye_open.ogg")); private readonly SoundSpecifier _endSound = new SoundPathSpecifier(new ResPath("/Audio/Effects/eye_close.ogg")); @@ -28,6 +27,7 @@ public override void Initialize() SubscribeLocalEvent(OnStartup); SubscribeLocalEvent(OnShutdown); + SubscribeLocalEvent(OnHandleState); SubscribeLocalEvent(OnPlayerAttached); SubscribeLocalEvent(OnPlayerDetached); @@ -38,7 +38,8 @@ private void OnStartup(Entity ent, ref ComponentStartup if (ent.Owner != _player.LocalEntity) return; - ApplyOverlay(ent); + SyncOverlay(ent); + _audio.PlayGlobal(_startSound, ent.Owner); } private void OnShutdown(Entity ent, ref ComponentShutdown args) @@ -46,22 +47,37 @@ private void OnShutdown(Entity ent, ref ComponentShutdow if (ent.Owner != _player.LocalEntity) return; - RemoveOverlay(ent); + RemoveOverlay(); + _audio.PlayGlobal(_endSound, ent.Owner); + } + + private void OnHandleState(Entity ent, ref AfterAutoHandleStateEvent args) + { + if (ent.Owner != _player.LocalEntity) + return; + + SyncOverlay(ent); } private void OnPlayerAttached(LocalPlayerAttachedEvent args) { if (TryComp(args.Entity, out var comp)) - ApplyOverlay((args.Entity, comp)); + SyncOverlay((args.Entity, comp)); } private void OnPlayerDetached(LocalPlayerDetachedEvent args) { - RemoveOverlay(null); + RemoveOverlay(); } - private void ApplyOverlay(Entity ent) + private void SyncOverlay(Entity ent) { + if (!ent.Comp.ShowOverlay) + { + RemoveOverlay(); + return; + } + if (_overlay == null) { _overlay = new CEMagicVisionOverlay(); @@ -69,35 +85,14 @@ private void ApplyOverlay(Entity ent) } _overlay.StartOverlay = _timing.CurTime; - - // TEMP: noir/color-correction overlay disabled, re-enable this block to restore it - // if (_noirOverlay == null) - // { - // _noirOverlay = new CEMagicVisionNoirOverlay(); - // _overlayMan.AddOverlay(_noirOverlay); - // } - - _audio.PlayGlobal(_startSound, ent.Owner); } - private void RemoveOverlay(Entity? ent) + private void RemoveOverlay() { - if (_overlay == null && _noirOverlay == null) + if (_overlay == null) return; - if (_overlay != null) - { - _overlayMan.RemoveOverlay(_overlay); - _overlay = null; - } - - if (_noirOverlay != null) - { - _overlayMan.RemoveOverlay(_noirOverlay); - _noirOverlay = null; - } - - if (ent is { } target) - _audio.PlayGlobal(_endSound, target.Owner); + _overlayMan.RemoveOverlay(_overlay); + _overlay = null; } } diff --git a/Content.Client/_CE/MagicVision/CEMagicVisionNoirOverlay.cs b/Content.Client/_CE/MagicVision/CEMagicVisionNoirOverlay.cs deleted file mode 100644 index f0191c557bb..00000000000 --- a/Content.Client/_CE/MagicVision/CEMagicVisionNoirOverlay.cs +++ /dev/null @@ -1,35 +0,0 @@ -using Robust.Client.Graphics; -using Robust.Shared.Enums; -using Robust.Shared.Prototypes; - -namespace Content.Client._CE.MagicVision; - -public sealed partial class CEMagicVisionNoirOverlay : Overlay -{ - [Dependency] private IPrototypeManager _prototypeManager = default!; - - public override OverlaySpace Space => OverlaySpace.WorldSpace; - public override bool RequestScreenTexture => true; - private readonly ShaderInstance _noirShader; - - private readonly ProtoId _noirShaderProto = "CEMagicVision"; - - public CEMagicVisionNoirOverlay() - { - IoCManager.InjectDependencies(this); - _noirShader = _prototypeManager.Index(_noirShaderProto).InstanceUnique(); - ZIndex = 9; // draw this over the DamageOverlay, RainbowOverlay etc, but before the black and white shader - } - - protected override void Draw(in OverlayDrawArgs args) - { - if (ScreenTexture == null) - return; - - var handle = args.WorldHandle; - _noirShader.SetParameter("SCREEN_TEXTURE", ScreenTexture); - handle.UseShader(_noirShader); - handle.DrawRect(args.WorldBounds, Color.White); - handle.UseShader(null); - } -} diff --git a/Content.Client/_CE/Satiation/CEClientSatiationSystem.cs b/Content.Client/_CE/Satiation/CEClientSatiationSystem.cs deleted file mode 100644 index 609dbf194f1..00000000000 --- a/Content.Client/_CE/Satiation/CEClientSatiationSystem.cs +++ /dev/null @@ -1,7 +0,0 @@ -using Content.Shared._CE.Satiation; - -namespace Content.Client._CE.Satiation; - -public sealed partial class CEClientSatiationSystem : CESharedSatiationSystem -{ -} diff --git a/Content.Server/_CE/InfusionAltar/CEInfusionAltarSystem.Examine.cs b/Content.Server/_CE/InfusionAltar/CEInfusionAltarSystem.Examine.cs index 724b6909965..82f3d9bf112 100644 --- a/Content.Server/_CE/InfusionAltar/CEInfusionAltarSystem.Examine.cs +++ b/Content.Server/_CE/InfusionAltar/CEInfusionAltarSystem.Examine.cs @@ -26,9 +26,6 @@ private void OnAltarExamined(Entity ent, ref ExaminedE var instabilityPercent = (int)MathF.Round(altar.Instability / altar.MaxInstability * 100f); args.PushMarkup(Loc.GetString("ce-infusion-altar-examine-instability", ("percent", instabilityPercent))); - var stabilizationPercent = (int)MathF.Round((1f - altar.StabilizerFactor) * 100f); - args.PushMarkup(Loc.GetString("ce-infusion-altar-examine-stabilizers", ("percent", stabilizationPercent))); - if (altar.AttemptingRecipe is { } recipeId && _proto.TryIndex(recipeId, out var recipe) && recipe.RitualDuration > TimeSpan.Zero) diff --git a/Content.Server/_CE/InfusionAltar/CEInfusionAltarSystem.Pedestal.cs b/Content.Server/_CE/InfusionAltar/CEInfusionAltarSystem.Pedestal.cs index d825619fa16..8bcc4e7aa95 100644 --- a/Content.Server/_CE/InfusionAltar/CEInfusionAltarSystem.Pedestal.cs +++ b/Content.Server/_CE/InfusionAltar/CEInfusionAltarSystem.Pedestal.cs @@ -31,12 +31,6 @@ public override void Update(float frameTime) var query = EntityQueryEnumerator(); while (query.MoveNext(out var uid, out var altar)) { - if (_timing.CurTime >= altar.NextStabilizerScan) - { - altar.NextStabilizerScan = _timing.CurTime + altar.StabilizerScanInterval; - ScanStabilizers((uid, altar)); - } - if (_timing.CurTime < altar.NextCheckTime) continue; altar.NextCheckTime = _timing.CurTime + altar.CheckInterval; @@ -96,14 +90,14 @@ private void TickAltar(Entity ent, float dt) // as broken conditions, except progress resets instead of pausing (there's no // attempt to resume). altar.Instability = MathF.Min(altar.MaxInstability, - altar.Instability + altar.BrokenConditionInstabilityRate * altar.StabilizerFactor * dt); + altar.Instability + altar.BrokenConditionInstabilityRate * dt); altar.RitualProgress = TimeSpan.Zero; } else if (essenceSatisfied && pedestalsSatisfied) { altar.RitualProgress += TimeSpan.FromSeconds(dt); altar.Instability = MathF.Min(altar.MaxInstability, - altar.Instability + recipe.Instability * altar.StabilizerFactor * dt); + altar.Instability + recipe.Instability * dt); if (altar.RitualProgress >= recipe.RitualDuration) { @@ -117,7 +111,7 @@ private void TickAltar(Entity ent, float dt) { // Conditions currently broken - progress is paused (not reset) until fixed. altar.Instability = MathF.Min(altar.MaxInstability, - altar.Instability + altar.BrokenConditionInstabilityRate * altar.StabilizerFactor * dt); + altar.Instability + altar.BrokenConditionInstabilityRate * dt); } } diff --git a/Content.Server/_CE/InfusionAltar/CEInfusionAltarSystem.Stabilizers.cs b/Content.Server/_CE/InfusionAltar/CEInfusionAltarSystem.Stabilizers.cs deleted file mode 100644 index cdb3f5caeb6..00000000000 --- a/Content.Server/_CE/InfusionAltar/CEInfusionAltarSystem.Stabilizers.cs +++ /dev/null @@ -1,64 +0,0 @@ -using Content.Shared._CE.InfusionAltar.Components; -using Robust.Shared.Map; - -namespace Content.Server._CE.InfusionAltar; - -public sealed partial class CEInfusionAltarSystem -{ - [Dependency] private EntityLookupSystem _lookup = default!; - - private const float PairedStabilizationWeight = 0.05f; - private const float UnpairedStabilizationPenalty = 0.02f; - private const float MinStabilizerFactor = 0.1f; - - /// - /// Periodically scans the area around the altar for loose - /// items (never placed on sub-pedestals) and recomputes . - /// For each pair of antipodal tile offsets, only the symmetric (matched) portion of the two sides' - /// stabilizing power dampens instability growth; any unmatched remainder instead slightly raises it. - /// - private void ScanStabilizers(Entity ent) - { - var altar = ent.Comp; - - if (!TryGetTile(ent.Owner, out var altarGrid, out var altarTile)) - { - altar.StabilizerFactor = 1f; - return; - } - - var altarCoords = Transform(ent.Owner).Coordinates; - var stabilizers = _lookup.GetEntitiesInRange(altarCoords, altar.StabilizerScanRadius); - - var byOffset = new Dictionary(); - foreach (var stabilizer in stabilizers) - { - if (!TryGetTile(stabilizer.Owner, out var grid, out var tile) || grid != altarGrid) - continue; - - var offset = tile - altarTile; - byOffset[offset] = byOffset.GetValueOrDefault(offset) + stabilizer.Comp.StabilizingPower; - } - - var factor = 1f; - var handled = new HashSet(); - - foreach (var (offset, amount) in byOffset) - { - if (!handled.Add(offset)) - continue; - - var antipode = -offset; - handled.Add(antipode); - - var opposite = byOffset.GetValueOrDefault(antipode); - var paired = MathF.Min(amount, opposite); - var excess = MathF.Abs(amount - opposite); - - factor -= paired * PairedStabilizationWeight; - factor += excess * UnpairedStabilizationPenalty; - } - - altar.StabilizerFactor = MathF.Max(factor, MinStabilizerFactor); - } -} diff --git a/Content.Server/_CE/MagicVision/CEMagicVisionSystem.cs b/Content.Server/_CE/MagicVision/CEMagicVisionSystem.cs index 2deae32c245..0d3d7878fb0 100644 --- a/Content.Server/_CE/MagicVision/CEMagicVisionSystem.cs +++ b/Content.Server/_CE/MagicVision/CEMagicVisionSystem.cs @@ -10,7 +10,8 @@ namespace Content.Server._CE.MagicVision; /// /// Grants entities magic vision (the marker, which drives the /// visibility mask and the client-side overlay) based on however many sources currently want them to -/// have it - clothing (), and potentially skills or other +/// have it - clothing (), innate sources +/// (, e.g. ghosts), and potentially skills or other /// sources in the future, all decided fresh each time via . This /// is entirely server-authoritative: the component is networked and drives PVS filtering, so the /// client only ever mirrors it from replicated state and never predicts it. @@ -28,6 +29,10 @@ public override void Initialize() SubscribeLocalEvent>(OnClothingCheckVision); SubscribeLocalEvent(OnClothingEquipped); SubscribeLocalEvent(OnClothingUnequipped); + + SubscribeLocalEvent(OnPermanentCheckVision); + SubscribeLocalEvent(OnPermanentInit); + SubscribeLocalEvent(OnPermanentShutdown); } private void OnGetVisMask(Entity ent, ref GetVisMaskEvent args) @@ -56,6 +61,22 @@ private void OnClothingUnequipped(Entity ent, re RefreshMagicVision(args.EquipTarget); } + private void OnPermanentCheckVision(Entity ent, ref CECheckMagicVisionEvent args) + { + // Innate vision isn't a worn artifact straining the wearer, so no overlay. + args.GrantVision(showOverlay: false); + } + + private void OnPermanentInit(Entity ent, ref ComponentInit args) + { + RefreshMagicVision(ent.Owner); + } + + private void OnPermanentShutdown(Entity ent, ref ComponentShutdown args) + { + RefreshMagicVision(ent.Owner); + } + /// /// Recomputes whether currently has magic vision by asking every subscribed /// source via , then adds or removes @@ -74,14 +95,24 @@ public void RefreshMagicVision(EntityUid uid) var ev = new CECheckMagicVisionEvent(); RaiseLocalEvent(uid, ev); - if (ev.HasVision == HasComp(uid)) + if (!ev.HasVision) + { + if (RemComp(uid)) + _eye.RefreshVisibilityMask(uid); + return; + } + + var isNew = !HasComp(uid); + var comp = EnsureComp(uid); - if (ev.HasVision) - EnsureComp(uid); - else - RemComp(uid); + if (isNew) + _eye.RefreshVisibilityMask(uid); - _eye.RefreshVisibilityMask(uid); + if (comp.ShowOverlay != ev.ShowOverlay) + { + comp.ShowOverlay = ev.ShowOverlay; + Dirty(uid, comp); + } } } diff --git a/Content.Server/_CE/Satiation/CESatiationSystem.cs b/Content.Server/_CE/Satiation/CESatiationSystem.cs deleted file mode 100644 index e4380393ddd..00000000000 --- a/Content.Server/_CE/Satiation/CESatiationSystem.cs +++ /dev/null @@ -1,34 +0,0 @@ -using Content.Shared._CE.Satiation; -using Robust.Shared.Prototypes; -using Robust.Shared.Timing; - -namespace Content.Server._CE.Satiation; - -public sealed partial class CESatiationSystem : CESharedSatiationSystem -{ - [Dependency] private IGameTiming _timing = default!; - [Dependency] private IPrototypeManager _proto = default!; - - public override void Update(float frameTime) - { - base.Update(frameTime); - - var query = EntityQueryEnumerator(); - while (query.MoveNext(out var uid, out var satiationComp)) - { - if (satiationComp.NextUpdateTime > _timing.CurTime) - continue; - - satiationComp.NextUpdateTime = _timing.CurTime + TimeSpan.FromSeconds(1f); - - foreach (var (satiationProto, _) in satiationComp.Satiations) - { - if (!_proto.Resolve(satiationProto, out var satiationType)) - continue; - - // Apply decay rate (negative value to decrease satiation) - EditSatiationLevel((uid, satiationComp), satiationProto, -satiationType.DecayRate); - } - } - } -} diff --git a/Content.Server/_CE/StationEvents/CEPipeBreakageRuleComponent.cs b/Content.Server/_CE/StationEvents/CEPipeBreakageRuleComponent.cs new file mode 100644 index 00000000000..9e3065e223f --- /dev/null +++ b/Content.Server/_CE/StationEvents/CEPipeBreakageRuleComponent.cs @@ -0,0 +1,29 @@ +using Robust.Shared.Audio; +using Robust.Shared.Prototypes; + +namespace Content.Server._CE.StationEvents; + +/// +/// Station event component that breaks a random big pipe together with all pipes found nearby within a radius. +/// +[RegisterComponent] +public sealed partial class CEPipeBreakageRuleComponent : Component +{ + [DataField] + public Dictionary ReplacementMap = new(); + + [DataField(required: true)] + public EntProtoId CenterPrototype; + + [DataField] + public float Radius = 5f; + + [DataField] + public float BreakChance = 0.8f; + + [DataField] + public EntProtoId? CenterVfx; + + [DataField] + public SoundSpecifier? BreakSound; +} diff --git a/Content.Server/_CE/StationEvents/CEPipeBreakageRuleSystem.cs b/Content.Server/_CE/StationEvents/CEPipeBreakageRuleSystem.cs new file mode 100644 index 00000000000..104895d55c4 --- /dev/null +++ b/Content.Server/_CE/StationEvents/CEPipeBreakageRuleSystem.cs @@ -0,0 +1,111 @@ +using Content.Server.GameTicking.Rules; +using Content.Server.StationEvents.Events; +using Content.Shared.GameTicking.Components; +using Robust.Server.GameObjects; +using Robust.Shared.Audio.Systems; +using Robust.Shared.Map; +using Robust.Shared.Map.Components; +using Robust.Shared.Random; + +namespace Content.Server._CE.StationEvents; + +/// +/// Station event system that picks a random center pipe, always breaks it, then breaks every nearby pipe +/// within a radius with an independent chance. +/// +public sealed partial class CEPipeBreakageRuleSystem : StationEventSystem +{ + [Dependency] private IRobustRandom _random = default!; + [Dependency] private SharedAudioSystem _audio = default!; + [Dependency] private MapSystem _map = default!; + [Dependency] private EntityLookupSystem _lookup = default!; + [Dependency] private SharedTransformSystem _transform = default!; + + private readonly List _anchoredEntities = new(); + + protected override void Started(EntityUid ruleUid, + CEPipeBreakageRuleComponent component, + GameRuleComponent gameRule, + GameRuleStartedEvent args) + { + base.Started(ruleUid, component, gameRule, args); + + var centerCandidates = new List(); + + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var xform, out var meta)) + { + if (meta.EntityPrototype is null || !component.CenterPrototype.Equals(meta.EntityPrototype)) + continue; + if (HasOtherAnchoredEntities(uid, xform)) + continue; + + centerCandidates.Add(uid); + } + + if (centerCandidates.Count == 0) + return; + + var center = _random.Pick(centerCandidates); + var centerXform = Transform(center); + var centerCoords = centerXform.Coordinates; + var mapCoords = _transform.GetMapCoordinates(center, centerXform); + + BreakPipe(component, center, centerCoords, alwaysBreak: true, spawnVfx: true); + + foreach (var (uid, meta) in _lookup.GetEntitiesInRange(mapCoords, component.Radius)) + { + if (uid == center) + continue; + if (meta.EntityPrototype is null || !component.ReplacementMap.ContainsKey(meta.EntityPrototype)) + continue; + if (HasOtherAnchoredEntities(uid, Transform(uid))) + continue; + + BreakPipe(component, uid, Transform(uid).Coordinates, alwaysBreak: false, spawnVfx: false); + } + } + + private void BreakPipe(CEPipeBreakageRuleComponent component, + EntityUid target, + EntityCoordinates coordinates, + bool alwaysBreak, + bool spawnVfx) + { + if (!alwaysBreak && !_random.Prob(component.BreakChance)) + return; + + var proto = MetaData(target).EntityPrototype; + if (proto is null || !component.ReplacementMap.TryGetValue(proto, out var replacement)) + return; + + if (spawnVfx && component.CenterVfx is not null) + SpawnAtPosition(component.CenterVfx, coordinates); + + SpawnAtPosition(replacement, coordinates); + _audio.PlayPvs(component.BreakSound, coordinates); + QueueDel(target); + } + + /// + /// Checks whether any anchored entity other than itself occupies the same tile. + /// Used to avoid replacing pipes sharing a tile with walls, carpets, etc. + /// + private bool HasOtherAnchoredEntities(EntityUid uid, TransformComponent xform) + { + if (xform.GridUid is not { } grid || !TryComp(grid, out var gridComp)) + return false; + + var tile = _map.TileIndicesFor(grid, gridComp, xform.Coordinates); + _anchoredEntities.Clear(); + _map.GetAnchoredEntities((grid, gridComp), tile, _anchoredEntities); + + foreach (var other in _anchoredEntities) + { + if (other != uid) + return true; + } + + return false; + } +} diff --git a/Content.Shared/Damage/Components/StaminaComponent.cs b/Content.Shared/Damage/Components/StaminaComponent.cs index 07429cbab7e..4821ec51d5d 100644 --- a/Content.Shared/Damage/Components/StaminaComponent.cs +++ b/Content.Shared/Damage/Components/StaminaComponent.cs @@ -24,7 +24,7 @@ public sealed partial class StaminaComponent : Component /// How much stamina reduces per second. /// [ViewVariables(VVAccess.ReadWrite), DataField, AutoNetworkedField] - public float Decay = 3f; + public float Decay = 10f; //CrystallEdge 3 -> 10 /// /// How much time after receiving damage until stamina starts decreasing. @@ -76,7 +76,7 @@ public sealed partial class StaminaComponent : Component /// This float determines how fast stamina will regenerate after exiting the stamina crit. /// [DataField, AutoNetworkedField] - public float AfterCritDecayMultiplier = 5f; + public float AfterCritDecayMultiplier = 1f; //CrystallEdge 3 -> 1 /// /// This is how much stamina damage a mob takes when it forces itself to stand up before modifiers diff --git a/Content.Shared/_CE/EntityEffects/Effects/OldCESatiateEntityEffectsSystem.cs b/Content.Shared/_CE/EntityEffects/Effects/OldCESatiateEntityEffectsSystem.cs deleted file mode 100644 index 6b09cd3ba4c..00000000000 --- a/Content.Shared/_CE/EntityEffects/Effects/OldCESatiateEntityEffectsSystem.cs +++ /dev/null @@ -1,23 +0,0 @@ -using Content.Shared._CE.Satiation; -using Content.Shared.EntityEffects; -using Robust.Shared.Prototypes; - -namespace Content.Shared._CE.EntityEffects.Effects; -public sealed partial class CESatiateEntityEffectsSystem : EntityEffectSystem -{ - [Dependency] private CESharedSatiationSystem _satiation = default!; - - protected override void Effect(Entity entity, ref EntityEffectEvent args) - { - _satiation.EditSatiationLevel((entity, entity.Comp), args.Effect.SatiationType, args.Effect.Amount * args.Scale); - } -} - -public sealed partial class CESatiate : EntityEffectBase -{ - [DataField(required: true)] - public ProtoId SatiationType; - - [DataField(required: true)] - public float Amount; -} diff --git a/Content.Shared/_CE/InfusionAltar/Components/CEInfusionAltarComponent.cs b/Content.Shared/_CE/InfusionAltar/Components/CEInfusionAltarComponent.cs index d429fa0eb0c..aeebb71924b 100644 --- a/Content.Shared/_CE/InfusionAltar/Components/CEInfusionAltarComponent.cs +++ b/Content.Shared/_CE/InfusionAltar/Components/CEInfusionAltarComponent.cs @@ -93,7 +93,7 @@ public sealed partial class CEInfusionAltarComponent : Component public float PoweredIdleInstabilityRate = 0.17f; /// - /// Instability growth per second (scaled by ) whenever the ritual + /// Instability growth per second whenever the ritual /// isn't actively progressing while powered with a catalyst inserted: either no recipe's /// catalyst requirement matches it (an attempt that can never succeed), or a recipe is /// identified but its conditions are currently unmet (missing essence/pedestal items). @@ -122,22 +122,4 @@ public sealed partial class CEInfusionAltarComponent : Component /// [DataField] public List CriticalMishaps = new(); - - /// - /// Cached multiplier applied to instability growth, recomputed periodically by - /// 's stabilizer scan. Symmetric - /// pairs of nearby items reduce it, unpaired ones - /// raise it. - /// - [DataField] - public float StabilizerFactor = 1f; - - [DataField] - public float StabilizerScanRadius = 3f; - - [DataField] - public TimeSpan StabilizerScanInterval = TimeSpan.FromSeconds(5); - - [DataField, AutoPausedField] - public TimeSpan NextStabilizerScan = TimeSpan.Zero; } diff --git a/Content.Shared/_CE/InfusionAltar/Components/CEInfusionAltarStabilizerComponent.cs b/Content.Shared/_CE/InfusionAltar/Components/CEInfusionAltarStabilizerComponent.cs deleted file mode 100644 index 9c75916ecb7..00000000000 --- a/Content.Shared/_CE/InfusionAltar/Components/CEInfusionAltarStabilizerComponent.cs +++ /dev/null @@ -1,14 +0,0 @@ -namespace Content.Shared._CE.InfusionAltar.Components; - -/// -/// Marks an item as an infusion altar stabilizer. Placed loose on the ground within an altar's -/// (not on a sub-pedestal), a stabilizer -/// reduces the altar's instability growth rate if a matching stabilizer sits at the antipodal tile -/// offset; unpaired stabilizing power instead slightly raises it. -/// -[RegisterComponent] -public sealed partial class CEInfusionAltarStabilizerComponent : Component -{ - [DataField] - public float StabilizingPower = 1f; -} diff --git a/Content.Shared/_CE/MagicVision/Components/CEMagicVisionComponent.cs b/Content.Shared/_CE/MagicVision/Components/CEMagicVisionComponent.cs index 6817a88e9d2..e1daa801cf4 100644 --- a/Content.Shared/_CE/MagicVision/Components/CEMagicVisionComponent.cs +++ b/Content.Shared/_CE/MagicVision/Components/CEMagicVisionComponent.cs @@ -8,5 +8,13 @@ namespace Content.Shared._CE.MagicVision.Components; /// or remove this directly, as doing so would desync it from the sources that are supposed to be /// granting it. The client only ever mirrors this from replicated state. /// -[RegisterComponent, NetworkedComponent] -public sealed partial class CEMagicVisionComponent : Component; +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState(true)] +public sealed partial class CEMagicVisionComponent : Component +{ + /// + /// Whether the client should show the screen-distorting overlay on top of just revealing the + /// hidden magic-vision layer. See . + /// + [DataField, AutoNetworkedField] + public bool ShowOverlay; +} diff --git a/Content.Shared/_CE/MagicVision/Components/CEPermanentMagicVisionComponent.cs b/Content.Shared/_CE/MagicVision/Components/CEPermanentMagicVisionComponent.cs new file mode 100644 index 00000000000..cc092d90b46 --- /dev/null +++ b/Content.Shared/_CE/MagicVision/Components/CEPermanentMagicVisionComponent.cs @@ -0,0 +1,9 @@ +namespace Content.Shared._CE.MagicVision.Components; + +/// +/// Marker for entities that innately, permanently perceive with magic vision (e.g. ghosts) - not +/// contingent on any worn item. Unlike clothing-granted vision, this does not show the client's +/// screen-distorting overlay, since it isn't meant to represent the strain of a worn artifact. +/// +[RegisterComponent] +public sealed partial class CEPermanentMagicVisionComponent : Component; diff --git a/Content.Shared/_CE/MagicVision/Events/CECheckMagicVisionEvent.cs b/Content.Shared/_CE/MagicVision/Events/CECheckMagicVisionEvent.cs index f5e9102d870..7d86683221c 100644 --- a/Content.Shared/_CE/MagicVision/Events/CECheckMagicVisionEvent.cs +++ b/Content.Shared/_CE/MagicVision/Events/CECheckMagicVisionEvent.cs @@ -14,8 +14,16 @@ public sealed class CECheckMagicVisionEvent : EntityEventArgs, IInventoryRelayEv public bool HasVision { get; private set; } - public void GrantVision() + /// + /// Whether the client's screen-distorting overlay should be shown. Innate sources (e.g. ghosts, + /// who always perceive magic) opt out so the effect doesn't nag them constantly - it's meant to + /// represent the temporary strain of a worn artifact, not a permanent ability. + /// + public bool ShowOverlay { get; private set; } + + public void GrantVision(bool showOverlay = true) { HasVision = true; + ShowOverlay |= showOverlay; } } diff --git a/Content.Shared/_CE/MeleeWeapon/CESharedWeaponSystem.Costs.cs b/Content.Shared/_CE/MeleeWeapon/CESharedWeaponSystem.Costs.cs index 915ba0651e6..c935b0162fb 100644 --- a/Content.Shared/_CE/MeleeWeapon/CESharedWeaponSystem.Costs.cs +++ b/Content.Shared/_CE/MeleeWeapon/CESharedWeaponSystem.Costs.cs @@ -25,7 +25,7 @@ private void OnStaminaCostAttempt(Entity ent, ref if (!TryComp(args.User, out var stamina)) return; - if (stamina.Critical || stamina.StaminaDamage + cost >= stamina.CritThreshold) + if (stamina.Critical) args.Cancel(); } diff --git a/Content.Shared/_CE/Satiation/CESatiationTypePrototype.cs b/Content.Shared/_CE/Satiation/CESatiationTypePrototype.cs deleted file mode 100644 index f4070d961e7..00000000000 --- a/Content.Shared/_CE/Satiation/CESatiationTypePrototype.cs +++ /dev/null @@ -1,32 +0,0 @@ -using Robust.Shared.Prototypes; - -namespace Content.Shared._CE.Satiation; - -[Prototype("satiationType")] -public sealed partial class CESatiationTypePrototype : IPrototype -{ - [IdDataField] - public string ID { get; private set; } = default!; - - [DataField] - public float Min = 0; - - [DataField] - public float Max = 100; - - /// - /// Decaying per second - /// - [DataField] - public float DecayRate = 0.001f; - - /// - /// What status effect should be applied to the entity, at what saturation level? - /// - /// - /// Fills with the status effect from the specified value until the next entry. - /// That is, if you specify, for example, [10, Effect1], Effect1 will be applied to the entity starting from 10 saturation and above to infinity. - /// - [DataField] - public Dictionary StatusEffectsThresholds = new(); -} diff --git a/Content.Shared/_CE/Satiation/CESatiationsComponent.cs b/Content.Shared/_CE/Satiation/CESatiationsComponent.cs deleted file mode 100644 index e48598c2a14..00000000000 --- a/Content.Shared/_CE/Satiation/CESatiationsComponent.cs +++ /dev/null @@ -1,16 +0,0 @@ -using Robust.Shared.Prototypes; - -namespace Content.Shared._CE.Satiation; - -/// -/// Stores satiation values (such as hunger and thirst) for an entity and tracks when they should be updated. -/// -[RegisterComponent, Access(typeof(CESharedSatiationSystem)), AutoGenerateComponentPause] -public sealed partial class CESatiationsComponent : Component -{ - [DataField(serverOnly: true)] - public Dictionary, float> Satiations = new(); - - [DataField(serverOnly: true), AutoPausedField] - public TimeSpan NextUpdateTime = TimeSpan.Zero; -} diff --git a/Content.Shared/_CE/Satiation/CESharedSatiationSystem.cs b/Content.Shared/_CE/Satiation/CESharedSatiationSystem.cs deleted file mode 100644 index b5e3076fb9f..00000000000 --- a/Content.Shared/_CE/Satiation/CESharedSatiationSystem.cs +++ /dev/null @@ -1,166 +0,0 @@ -using System.Linq; -using Content.Shared.StatusEffectNew; -using Robust.Shared.Network; -using Robust.Shared.Prototypes; - -namespace Content.Shared._CE.Satiation; - -public abstract partial class CESharedSatiationSystem : EntitySystem -{ - [Dependency] private IPrototypeManager _proto = default!; - [Dependency] private StatusEffectsSystem _statusEffects = default!; - [Dependency] private INetManager _net = default!; - - public override void Initialize() - { - base.Initialize(); - - SubscribeLocalEvent(OnMapInit); - } - - private void OnMapInit(Entity ent, ref MapInitEvent args) - { - foreach (var satiation in ent.Comp.Satiations) - { - SetSatiationLevel((ent, ent.Comp), satiation.Key, satiation.Value, forceEffectUpdate: true); - } - } - - /// - /// Adds a new satiation type to an entity with an optional default value. - /// - /// Entity to add satiation type to - /// Type of satiation to add - /// Initial satiation value. If null, uses the prototype's default value - /// True if satiation type was successfully added, false if it already exists or prototype is invalid - public void AddSatiationType(EntityUid ent, ProtoId satiationType, float defaultValue) - { - if (_net.IsClient) - return; - - var satiationComp = EnsureComp(ent); - - if (!satiationComp.Satiations.TryAdd(satiationType, defaultValue)) - return; - - SetSatiationLevel((ent, satiationComp), satiationType, defaultValue); - } - - /// - /// Removes a satiation type from an entity and clears any associated status effects. - /// - /// Entity to remove satiation type from - /// Type of satiation to remove - /// True if satiation type was successfully removed, false if it doesn't exist - public void RemoveSatiationType(Entity ent, ProtoId satiationType) - { - if (_net.IsClient) - return; - - if (!Resolve(ent, ref ent.Comp, false)) - return; - - if (!ent.Comp.Satiations.TryGetValue(satiationType, out var currentValue)) - return; - - // Remove any active status effect before removing the satiation type - if (_proto.Resolve(satiationType, out var indexedSatiationType)) - { - var statusEffect = GetStatusEffectForValue(indexedSatiationType, currentValue); - if (statusEffect != null) - _statusEffects.TryRemoveStatusEffect(ent, statusEffect.Value); - } - - ent.Comp.Satiations.Remove(satiationType); - } - - /// - /// Modifies the satiation value by adding or subtracting a delta amount. - /// - /// Entity with satiation component - /// Type of satiation to modify - /// Amount to add (positive) or subtract (negative) from current value - /// True if value was successfully modified, false otherwise - public void EditSatiationLevel(Entity ent, ProtoId satiationType, float delta) - { - if (_net.IsClient) - return; - - if (!Resolve(ent, ref ent.Comp, false)) - return; - - if (!ent.Comp.Satiations.TryGetValue(satiationType, out var currentValue)) - return; - - var newValue = currentValue + delta; - SetSatiationLevel((ent, ent.Comp), satiationType, newValue); - } - - /// - /// Sets the satiation value for a given satiation type and applies appropriate status effects based on thresholds. - /// - /// Entity with satiation component - /// Type of satiation to modify - /// New satiation value to set - /// True if value was successfully set, false otherwise - public void SetSatiationLevel(Entity ent, ProtoId satiationType, float newValue, bool forceEffectUpdate = false) - { - if (_net.IsClient) - return; - - if (!Resolve(ent, ref ent.Comp, false)) - return; - - if (!_proto.Resolve(satiationType, out var indexedSatiationType)) - return; - - if (!ent.Comp.Satiations.TryGetValue(satiationType, out var oldValue)) - return; - - // Clamp value to min/max - newValue = Math.Clamp(newValue, indexedSatiationType.Min, indexedSatiationType.Max); - - ent.Comp.Satiations[satiationType] = newValue; - - // Determine which status effects should be active for old and new values - var oldStatusEffect = GetStatusEffectForValue(indexedSatiationType, oldValue); - var newStatusEffect = GetStatusEffectForValue(indexedSatiationType, newValue); - - // If the status effect has changed, remove the old one and apply the new one - if (oldStatusEffect != newStatusEffect || forceEffectUpdate) - { - // Remove old status effect if it exists - if (oldStatusEffect != null) - _statusEffects.TryRemoveStatusEffect(ent, oldStatusEffect.Value); - - // Apply new status effect if it exists (permanent effect with null duration) - if (newStatusEffect != null) - _statusEffects.TrySetStatusEffectDuration(ent, newStatusEffect.Value, duration: null); - } - } - - /// - /// Gets the appropriate status effect for a given satiation value based on thresholds. - /// - /// Satiation type prototype - /// Current satiation value - /// Status effect proto ID or null if no effect should be applied - private EntProtoId? GetStatusEffectForValue(CESatiationTypePrototype satiationType, float value) - { - if (satiationType.StatusEffectsThresholds.Count == 0) - return null; - - // Sort thresholds in descending order and find the first one that's <= current value - var sortedThresholds = satiationType.StatusEffectsThresholds - .OrderByDescending(kvp => kvp.Key) - .ToList(); - - foreach (var (threshold, effect) in sortedThresholds) - { - if (value >= threshold) - return effect; - } - - return null; - } -} diff --git a/Content.Shared/_CE/ZLevels/Flight/CESharedZFlightSystem.cs b/Content.Shared/_CE/ZLevels/Flight/CESharedZFlightSystem.cs index 08e999d49e7..2c054439989 100644 --- a/Content.Shared/_CE/ZLevels/Flight/CESharedZFlightSystem.cs +++ b/Content.Shared/_CE/ZLevels/Flight/CESharedZFlightSystem.cs @@ -46,6 +46,23 @@ public override void Initialize() SubscribeLocalEvent(OnKnockDowned); SubscribeLocalEvent(OnMobStateChanged); SubscribeLocalEvent(OnDamageDealt); + SubscribeLocalEvent(OnFlightChasmAttempt); + } + + private void OnFlightChasmAttempt(Entity ent, ref CEZLevelChasmAttempt args) + { + if (!ent.Comp.Active || args.Cancelled) + return; + + args.Cancel(); + + if (!ZPhyzQuery.TryComp(ent.Owner, out var zPhys)) + return; + + _zLevel.SetZPosition((ent.Owner, zPhys), 0f); + + if (zPhys.Velocity < 0) + _zLevel.SetZVelocity((ent.Owner, zPhys), 0f); } private void CheckWeightless(Entity ent, ref IsWeightlessEvent args) diff --git a/Resources/Locale/en-US/_CE/alerts/alerts.ftl b/Resources/Locale/en-US/_CE/alerts/alerts.ftl index 17bdc9806bf..91baa09cb5c 100644 --- a/Resources/Locale/en-US/_CE/alerts/alerts.ftl +++ b/Resources/Locale/en-US/_CE/alerts/alerts.ftl @@ -6,36 +6,9 @@ ce-alerts-confused-aura-desc = Your magical aura is altered, and you leave false ce-alerts-aircaught-name = Caught in the air ce-alerts-aircaught-desc = You are caught by an air current that prevents you from falling lower or rising higher. -# Hunger - -ce-alerts-fed-name = Fed -ce-alerts-fed-desc = You've eaten well, feel satisfied, and your health is passively recovering. - -ce-alerts-well-fed-name = Stuffed -ce-alerts-well-fed-desc = You've eaten a bit too much! Your health is passively recovering, even more than usual, but it's harder for you to move because of your full stomach. - -ce-alerts-overfed-name = Overstuffed -ce-alerts-overfed-desc = You've eaten WAY too much! Really, this is over the top. You're experiencing physical pain from your overfilled stomach, and it's hard for you to move. - -ce-alerts-deadfed-name = Death by gluttony -ce-alerts-deadfed-desc = Gluttony is a deadly sin. And you've broken it. ce-alerts-good-food-aftertaste-name = Pleasant aftertaste ce-alerts-good-food-aftertaste-desc = High-quality prepared food provides you with an additional bonus to health regeneration. ce-alerts-bad-food-aftertaste-name = Disgusting aftertaste ce-alerts-bad-food-aftertaste-desc = Poorly prepared food causes you to feel nauseous. - -# Thirst - -ce-alerts-hydrated-name = Hydrated -ce-alerts-hydrated-desc = You've drunk well and feel refreshed. Your stamina capacity is increased. - -ce-alerts-well-hydrated-name = Well quenched -ce-alerts-well-hydrated-desc = You've drunk plenty! Your stamina capacity is greatly increased, but it's harder for you to move due to the excess fluid. - -ce-alerts-overhydrated-name = Waterlogged -ce-alerts-overhydrated-desc = You've drunk WAY too much! Your body is struggling with the excess fluid, and your movements are severely hindered. - -ce-alerts-deadhydrated-name = Death by hydration -ce-alerts-deadhydrated-desc = Hyponatremia is no joke. Your body couldn't handle the water overload. diff --git a/Resources/Locale/en-US/_CE/roadmap/entry.ftl b/Resources/Locale/en-US/_CE/roadmap/entry.ftl index ad8385d17ee..46d07ef75ec 100644 --- a/Resources/Locale/en-US/_CE/roadmap/entry.ftl +++ b/Resources/Locale/en-US/_CE/roadmap/entry.ftl @@ -10,9 +10,6 @@ ce-roadmap-farming-magic-mutations-desc = The ability to mutate ordinary boring ce-roadmap-general-weather-name = Weather effects ce-roadmap-general-weather-desc = Dynamic weather, the effects of which affect the gameplay. Rains irrigate the beds and fill the water basins, and snowstorms cover roads and roofs with snow, leaving snowdrifts. -ce-roadmap-engineering-automation-name = Floating island technicians -ce-roadmap-engineering-automation-desc = The department of gaming roles, which supports the infrastructure of the floating city, automating the production of energy and necessary materials using conveyors and various machines. - ce-roadmap-antagonists-lurker-name = Lurker ce-roadmap-antagonists-lurker-desc = Small antagonist, terrorizing and terrifying the inhabitants of the flying island. Hiding in the shadows and catching lonely victims, he conducts a dark ritual... @@ -28,9 +25,6 @@ ce-roadmap-general-random-game-events-desc = Random events will occur every game ce-roadmap-medical-hospital-name = Hospital ce-roadmap-medical-hospital-desc = A building and an entire faction of roles dedicated to healing wounds and injuries. -ce-roadmap-guard-magic-vision-name = Magic Vision -ce-roadmap-guard-magic-vision-desc = Various actions can leave traces in the information field - and creatures with magic vision (or using a special device) can track who, when and where these actions were performed. Magic traces fade and dissolve in space over time, and a new "Investigator" role among the guard specializes in investigating crimes, relying in part on magic vision. - ce-roadmap-adventures-expeditions-name = Expeditions and Mercenaries ce-roadmap-adventures-expeditions-desc = A separate guild building and a whole layer of roles related to resource extraction from the surrounding world. A flying single-seat cargo transport on which miners fly through the fragments of destroyed floating islands in search of valuable resources, encountering dangerous flora and fauna in the process. diff --git a/Resources/Locale/en-US/_CE/thaumaturgy/infusion_altar.ftl b/Resources/Locale/en-US/_CE/thaumaturgy/infusion_altar.ftl index 2e7defca410..198d2b80cd0 100644 --- a/Resources/Locale/en-US/_CE/thaumaturgy/infusion_altar.ftl +++ b/Resources/Locale/en-US/_CE/thaumaturgy/infusion_altar.ftl @@ -1,5 +1,4 @@ ce-infusion-altar-catalyst-slot-name = catalyst ce-infusion-altar-pedestal-slot-name = item ce-infusion-altar-examine-instability = Chaos: {$percent}% -ce-infusion-altar-examine-stabilizers = Stabilization: {$percent}% ce-infusion-altar-examine-progress = Ritual progress: {$percent}% diff --git a/Resources/Locale/ru-RU/_CE/alerts/alerts.ftl b/Resources/Locale/ru-RU/_CE/alerts/alerts.ftl index 792c56afe1e..b80874dea9f 100644 --- a/Resources/Locale/ru-RU/_CE/alerts/alerts.ftl +++ b/Resources/Locale/ru-RU/_CE/alerts/alerts.ftl @@ -7,36 +7,8 @@ ce-alerts-confused-aura-desc = Ваша магическая аура измен ce-alerts-aircaught-name = В воздушной ловушке ce-alerts-aircaught-desc = Вы подхвачены воздушным потоком, который не дает вам упасть ниже или подняться выше. -# Hunger - -ce-alerts-fed-name = Сытость -ce-alerts-fed-desc = Вы отлично поели, чувствуете себя сыто, и ваше здоровье пассивно восстанавливается. - -ce-alerts-well-fed-name = Объелся -ce-alerts-well-fed-desc = Вы немного переели! Ваше здоровье пассивно восстанавливается, и даже сильнее обычного, но вам тяжелее двигаться из-за переполненного живота. - -ce-alerts-overfed-name = Обожрался -ce-alerts-overfed-desc = Вы съели СЛИШКОМ много! Нет, правда, это уже перебор. Вы испытываете физические боли от переполненного желудка, и вам тяжело передвигаться. - -ce-alerts-deadfed-name = Смерть от обжорства -ce-alerts-deadfed-desc = Обжорство - смертный грех. И вы его нарушили. - ce-alerts-good-food-aftertaste-name = Приятное послевкусие ce-alerts-good-food-aftertaste-desc = Качественно приготовленная еда дает вам дополнительный бонус к регенерации здоровья. ce-alerts-bad-food-aftertaste-name = Отвратительное послевкусие ce-alerts-bad-food-aftertaste-desc = Ужасно приготовленная еда вызывает у вас рвотные позывы. - -# Thirst - -ce-alerts-hydrated-name = Напился -ce-alerts-hydrated-desc = Вы напились и чувствуете себя отлично. Объем вашей выносливости повышен. - -ce-alerts-well-hydrated-name = Слегка перепил -ce-alerts-well-hydrated-desc = Вы много пили! Объем вашей выносливости сильно повышен, но вам тяжелее двигаться из-за избытка жидкости. - -ce-alerts-overhydrated-name = Перенасыщен водой -ce-alerts-overhydrated-desc = Вы СЛИШКОМ много пили! Ваше тело с трудом справляется с избытком жидкости, ваши движения серьёзно затруднены. - -ce-alerts-deadhydrated-name = Смерть от гидратации -ce-alerts-deadhydrated-desc = Гипонатриемия это не шутка. Ваше тело не смогло выдержать перегрузку водой. diff --git a/Resources/Locale/ru-RU/_CE/roadmap/entry.ftl b/Resources/Locale/ru-RU/_CE/roadmap/entry.ftl index d3a25afdcc0..7ea4e892e71 100644 --- a/Resources/Locale/ru-RU/_CE/roadmap/entry.ftl +++ b/Resources/Locale/ru-RU/_CE/roadmap/entry.ftl @@ -10,9 +10,6 @@ ce-roadmap-farming-magic-mutations-desc = Возможность мутации ce-roadmap-general-weather-name = Погодные эффекты ce-roadmap-general-weather-desc = Динамическая погода, эффекты которой влияют на геймплей. Дожди орошают грядки, и заполняют водосборники, а метели заметают снегом дороги и крыши, оставляя сугробы. -ce-roadmap-engineering-automation-name = Техники парящего острова -ce-roadmap-engineering-automation-desc = Отдел игровых ролей, занимающиеся поддержкой инфраструктуры парящего города, автоматизирующие производство энергии и нужных материалов при помощи конвееров и различных устройств. - ce-roadmap-antagonists-lurker-name = Луркер ce-roadmap-antagonists-lurker-desc = Малый антагонист, наводящий террор и ужас на жителей летающего острова. Скрываясь в тени и ловя одиноких жертв, он проводит темный ритуал... @@ -28,9 +25,6 @@ ce-roadmap-general-random-game-events-desc = Каждый игровой ден ce-roadmap-medical-hospital-name = Госпиталь ce-roadmap-medical-hospital-desc = Строение и целая фракция ролей, занимающаяся исцелением ран и увечий. -ce-roadmap-guard-magic-vision-name = Магическое зрение -ce-roadmap-guard-magic-vision-desc = Различные действия могут оставлять следы в информационном поле - и существа обладающие магическим зрением (или при помощи специального устройства) могут отслеживать кто, когда и где эти действия совершил. Магические следы со временем гаснут и растворяются в пространстве, и новая роль "Дознавателя" среди стражи специализируется на расследовании преступлений полагаясь в том числе на магическое зрение. - ce-roadmap-adventures-expeditions-name = Экспедиции и наемники ce-roadmap-adventures-expeditions-desc = Отдельное здание гильдии и целый пласт ролей, связанных с добычей ресурсов из окружающего мира. Грузовой летающий одноместный транспорт, на котором шахтеры летают по осколкам разрушенных парящих островов в поисках ценных ресурсов, сталкиваясь с опасной флорой и фауной в процессе. diff --git a/Resources/Locale/ru-RU/_CE/thaumaturgy/infusion_altar.ftl b/Resources/Locale/ru-RU/_CE/thaumaturgy/infusion_altar.ftl index 5f72648b759..ece50e959db 100644 --- a/Resources/Locale/ru-RU/_CE/thaumaturgy/infusion_altar.ftl +++ b/Resources/Locale/ru-RU/_CE/thaumaturgy/infusion_altar.ftl @@ -1,5 +1,4 @@ ce-infusion-altar-catalyst-slot-name = катализатор ce-infusion-altar-pedestal-slot-name = предмет ce-infusion-altar-examine-instability = Хаос: {$percent}% -ce-infusion-altar-examine-stabilizers = Стабилизация: {$percent}% ce-infusion-altar-examine-progress = Прогресс ритуала: {$percent}% diff --git a/Resources/Maps/_CE/Shaar/Shaar-1.yml b/Resources/Maps/_CE/Shaar/Shaar-1.yml index 5472456b7b8..eb984ad7b9c 100644 --- a/Resources/Maps/_CE/Shaar/Shaar-1.yml +++ b/Resources/Maps/_CE/Shaar/Shaar-1.yml @@ -4,8 +4,8 @@ meta: engineVersion: 277.0.0 forkId: "" forkVersion: "" - time: 08/07/2026 11:30:15 - entityCount: 1972 + time: 08/09/2026 08:03:12 + entityCount: 1974 maps: - 1 grids: @@ -94,7 +94,7 @@ entities: version: 7 -2,0: ind: -2,0 - tiles: BQAAAAAAABIAAAAAAgAFAAAAAAAAEgAAAAABAAMAAAAACgACAAAAAAEAAgAAAAAFAAIAAAAABQACAAAAAAgAAQAAAAABAAMAAAAAAgADAAAAAAAAAwAAAAAMAAIAAAAADAACAAAAAAsAAgAAAAAJAAUAAAAAAAASAAAAAAEABQAAAAAAABIAAAAAAAADAAAAAAQAAgAAAAAHAAIAAAAABgADAAAAAAgAAwAAAAADAAMAAAAACAADAAAAAAoAAwAAAAABAAIAAAAADQABAAAAAAQAAQAAAAADAAIAAAAAAAASAAAAAAIAFAAAAAACABQAAAAAAQASAAAAAAEAAgAAAAAFAAIAAAAAAAACAAAAAAgAAgAAAAADAAIAAAAABwADAAAAAAgAAwAAAAAKAAIAAAAADwACAAAAAA8AAQAAAAACAAIAAAAAAQACAAAAAAEABQAAAAAAABIAAAAAAAAFAAAAAAAABQAAAAAAAAIAAAAABAACAAAAAAEAAgAAAAAGAAIAAAAABwACAAAAAAkAAwAAAAAGAAMAAAAACAACAAAAAAYAAQAAAAABAAEAAAAAAAADAAAAAAUAAgAAAAAKAAUAAAAAAAASAAAAAAIABQAAAAAAAAUAAAAAAAACAAAAAAEAAgAAAAAFAAIAAAAAAAACAAAAAAcAAgAAAAANAAIAAAAACQACAAAAAAAAAwAAAAAFAAEAAAAAAQADAAAAAAgAAwAAAAAFAAIAAAAADAAFAAAAAAAAEgAAAAACAAUAAAAAAAADAAAAAAwAAgAAAAAAAAIAAAAABgABAAAAAAMAAQAAAAAEAAEAAAAAAQABAAAAAAQAAQAAAAABAAMAAAAABgACAAAAAAgAAwAAAAALAAIAAAAADQACAAAAAAAAEgAAAAACABQAAAAAAgAUAAAAAAAAEgAAAAACAAIAAAAACgACAAAAAAMAAgAAAAACAAIAAAAAAAABAAAAAAAAAQAAAAABAAIAAAAAAQACAAAAAAQAAgAAAAANAAIAAAAACQACAAAAAAAAAgAAAAAMAAUAAAAAAAASAAAAAAIABQAAAAAAAAMAAAAACwACAAAAAAAABgAAAAADAAYAAAAAAQAGAAAAAAAABgAAAAADAAYAAAAAAgAGAAAAAAAABAAAAAAGAAYAAAAAAwAGAAAAAAAABgAAAAAAAAYAAAAAAQAFAAAAAAAABQAAAAAAAAMAAAAAAgADAAAAAA0AAgAAAAAEAAIAAAAABAACAAAAAAcAAgAAAAABAAIAAAAAAAACAAAAAAUAAgAAAAAFAAIAAAAACgACAAAAAA4AAgAAAAABAAIAAAAADgACAAAAAAMABQAAAAAAAAUAAAAAAAADAAAAAAIAAwAAAAANAAMAAAAACgACAAAAAAkAAgAAAAAHAAIAAAAABQACAAAAAA4AAgAAAAAFAAIAAAAABAACAAAAAAIAAgAAAAAOAAIAAAAADAACAAAAAAQAAgAAAAALAAUAAAAAAAAFAAAAAAAAAwAAAAACAAMAAAAAAwADAAAAAAMAAgAAAAAOAAIAAAAAAgACAAAAAAIAAgAAAAAIAAIAAAAACQACAAAAAAIAAgAAAAAAAAIAAAAABAACAAAAAAsAAgAAAAAPAAIAAAAADQAFAAAAAAAABQAAAAAAAAUAAAAAAAADAAAAAAUAAwAAAAAMAAIAAAAAAQACAAAAAAsAAgAAAAAIAAIAAAAABQACAAAAAA0AAgAAAAABAAIAAAAABAACAAAAAAsAAgAAAAAIAAIAAAAADQACAAAAAAYAEgAAAAABABQAAAAAAgAUAAAAAAEAAwAAAAANAAMAAAAACgACAAAAAAkAAgAAAAAOAAIAAAAACgACAAAAAAUAAgAAAAAIAAIAAAAACwACAAAAAAgAAgAAAAAMAAIAAAAACAACAAAAAAEAAgAAAAADAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAABAAAAAAAAAQAAAAADAAIAAAAADQACAAAAAAEAAgAAAAAMAAIAAAAACAACAAAAAA8AAgAAAAAIAAIAAAAADAACAAAAAAAAAgAAAAALAAIAAAAAAwAFAAAAAAAABQAAAAAAAAUAAAAAAAASAAAAAAEAAQAAAAABAAEAAAAABAABAAAAAAEAAgAAAAAOAAIAAAAADwACAAAAAAMAAgAAAAAMAAIAAAAAAgACAAAAAAAAAgAAAAAJAAIAAAAACwACAAAAAAMABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAABIAAAAAAQASAAAAAAAAEgAAAAAAAAEAAAAAAgAGAAAAAAEABgAAAAABAAYAAAAAAgAGAAAAAAIAAgAAAAADAAIAAAAAAAACAAAAAAgAAgAAAAAEAA== + tiles: BQAAAAAAABIAAAAAAgAFAAAAAAAAEgAAAAABAAMAAAAACgACAAAAAAEAAgAAAAAFAAIAAAAABQACAAAAAAgAAQAAAAABAAMAAAAAAgADAAAAAAAAAwAAAAAMAAIAAAAADAACAAAAAAsAAgAAAAAJAAUAAAAAAAASAAAAAAEABQAAAAAAABIAAAAAAAADAAAAAAQAAgAAAAAHAAIAAAAABgADAAAAAAgAAwAAAAADAAMAAAAACAADAAAAAAoAAwAAAAABAAIAAAAADQABAAAAAAQAAQAAAAADAAIAAAAAAAASAAAAAAIAFAAAAAACABQAAAAAAQASAAAAAAEAAgAAAAAFAAIAAAAAAAACAAAAAAgAAgAAAAADAAIAAAAABwADAAAAAAgAAwAAAAAKAAIAAAAADwACAAAAAA8AAQAAAAACAAIAAAAAAQACAAAAAAEABQAAAAAAABIAAAAAAAASAAAAAAAAEgAAAAAAAAIAAAAABAACAAAAAAEAAgAAAAAGAAIAAAAABwACAAAAAAkAAwAAAAAGAAMAAAAACAACAAAAAAYAAQAAAAABAAEAAAAAAAADAAAAAAUAAgAAAAAKAAUAAAAAAAASAAAAAAIAEgAAAAAAABIAAAAAAAACAAAAAAEAAgAAAAAFAAIAAAAAAAACAAAAAAcAAgAAAAANAAIAAAAACQACAAAAAAAAAwAAAAAFAAEAAAAAAQADAAAAAAgAAwAAAAAFAAIAAAAADAAFAAAAAAAAEgAAAAACABIAAAAAAAAFAAAAAAAAAgAAAAAAAAIAAAAABgABAAAAAAMAAQAAAAAEAAEAAAAAAQABAAAAAAQAAQAAAAABAAMAAAAABgACAAAAAAgAAwAAAAALAAIAAAAADQACAAAAAAAAEgAAAAACABQAAAAAAgAUAAAAAAAABQAAAAAAAAIAAAAACgACAAAAAAMAAgAAAAACAAIAAAAAAAABAAAAAAAAAQAAAAABAAIAAAAAAQACAAAAAAQAAgAAAAANAAIAAAAACQACAAAAAAAAAgAAAAAMAAUAAAAAAAASAAAAAAIAEgAAAAAAAAMAAAAACwACAAAAAAAABgAAAAADAAYAAAAAAQAGAAAAAAAABgAAAAADAAYAAAAAAgAGAAAAAAAABAAAAAAGAAYAAAAAAwAGAAAAAAAABgAAAAAAAAYAAAAAAQAFAAAAAAAAEgAAAAAAAAMAAAAAAgADAAAAAA0AAgAAAAAEAAIAAAAABAACAAAAAAcAAgAAAAABAAIAAAAAAAACAAAAAAUAAgAAAAAFAAIAAAAACgACAAAAAA4AAgAAAAABAAIAAAAADgACAAAAAAMABQAAAAAAABIAAAAAAAADAAAAAAIAAwAAAAANAAMAAAAACgACAAAAAAkAAgAAAAAHAAIAAAAABQACAAAAAA4AAgAAAAAFAAIAAAAABAACAAAAAAIAAgAAAAAOAAIAAAAADAACAAAAAAQAAgAAAAALAAUAAAAAAAASAAAAAAAAAwAAAAACAAMAAAAAAwADAAAAAAMAAgAAAAAOAAIAAAAAAgACAAAAAAIAAgAAAAAIAAIAAAAACQACAAAAAAIAAgAAAAAAAAIAAAAABAACAAAAAAsAAgAAAAAPAAIAAAAADQAFAAAAAAAAEgAAAAAAAAUAAAAAAAADAAAAAAUAAwAAAAAMAAIAAAAAAQACAAAAAAsAAgAAAAAIAAIAAAAABQACAAAAAA0AAgAAAAABAAIAAAAABAACAAAAAAsAAgAAAAAIAAIAAAAADQACAAAAAAYAEgAAAAABABQAAAAAAgAUAAAAAAEAAwAAAAANAAMAAAAACgACAAAAAAkAAgAAAAAOAAIAAAAACgACAAAAAAUAAgAAAAAIAAIAAAAACwACAAAAAAgAAgAAAAAMAAIAAAAACAACAAAAAAEAAgAAAAADAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAABAAAAAAAAAQAAAAADAAIAAAAADQACAAAAAAEAAgAAAAAMAAIAAAAACAACAAAAAA8AAgAAAAAIAAIAAAAADAACAAAAAAAAAgAAAAALAAIAAAAAAwAFAAAAAAAABQAAAAAAAAUAAAAAAAASAAAAAAEAAQAAAAABAAEAAAAABAABAAAAAAEAAgAAAAAOAAIAAAAADwACAAAAAAMAAgAAAAAMAAIAAAAAAgACAAAAAAAAAgAAAAAJAAIAAAAACwACAAAAAAMABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAABIAAAAAAQASAAAAAAAAEgAAAAAAAAEAAAAAAgAGAAAAAAEABgAAAAABAAYAAAAAAgAGAAAAAAIAAgAAAAADAAIAAAAAAAACAAAAAAgAAgAAAAAEAA== version: 7 1,0: ind: 1,0 @@ -228,6 +228,13 @@ entities: - type: Transform pos: -4.5,-9.5 parent: 1 +- proto: CEBell + entities: + - uid: 1024 + components: + - type: Transform + pos: -33.29012,-14.993995 + parent: 1 - proto: CEBenchWoodDark entities: - uid: 1691 @@ -1451,11 +1458,6 @@ entities: damage: 150 triggersOnce: False triggered: False - - uid: 268 - components: - - type: Transform - pos: -24.5,-11.5 - parent: 1 - uid: 279 components: - type: Transform @@ -2675,6 +2677,29 @@ entities: triggered: False - proto: CEFenceBrass entities: + - uid: 61 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,3.5 + parent: 1 + - uid: 485 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,4.5 + parent: 1 + - uid: 517 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,5.5 + parent: 1 + - uid: 539 + components: + - type: Transform + pos: -29.5,2.5 + parent: 1 - uid: 541 components: - type: Transform @@ -2687,8 +2712,30 @@ entities: rot: 1.5707963267948966 rad pos: -15.5,18.5 parent: 1 + - uid: 1012 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,6.5 + parent: 1 + - uid: 1013 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,7.5 + parent: 1 + - uid: 1026 + components: + - type: Transform + pos: -28.5,2.5 + parent: 1 - proto: CEFenceGateBigIron entities: + - uid: 57 + components: + - type: Transform + pos: -24.5,-11.5 + parent: 1 - uid: 1255 components: - type: Transform @@ -2850,12 +2897,6 @@ entities: rot: 1.5707963267948966 rad pos: -14.5,-6.5 parent: 1 - - uid: 1171 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -28.5,6.5 - parent: 1 - uid: 1548 components: - type: Transform @@ -3321,6 +3362,13 @@ entities: - type: Transform pos: 2.0400443,-20.79391 parent: 1 +- proto: CEIronDoor + entities: + - uid: 95 + components: + - type: Transform + pos: -15.5,17.5 + parent: 1 - proto: CEIronDoorAcademyHall entities: - uid: 265 @@ -3345,13 +3393,6 @@ entities: rot: 3.141592653589793 rad pos: -31.5,-12.5 parent: 1 -- proto: CEIronDoorEngineeringHallMirrored - entities: - - uid: 539 - components: - - type: Transform - pos: -15.5,17.5 - parent: 1 - proto: CEIronDoorEngineeringTunnels entities: - uid: 210 @@ -3491,6 +3532,11 @@ entities: parent: 1 - proto: CELargeWoodenCrateFilled entities: + - uid: 1031 + components: + - type: Transform + pos: -28.5,3.5 + parent: 1 - uid: 1112 components: - type: Transform @@ -3555,11 +3601,6 @@ entities: - type: Transform pos: -23.5,14.5 parent: 1 - - uid: 1642 - components: - - type: Transform - pos: -27.5,7.5 - parent: 1 - uid: 1792 components: - type: Transform @@ -6185,6 +6226,11 @@ entities: parent: 1 - proto: CESmallWoodenCrateFilled entities: + - uid: 268 + components: + - type: Transform + pos: -28.5,8.5 + parent: 1 - uid: 1125 components: - type: Transform @@ -6195,6 +6241,11 @@ entities: - type: Transform pos: -4.5,12.5 parent: 1 + - uid: 1171 + components: + - type: Transform + pos: -28.5,4.5 + parent: 1 - uid: 1308 components: - type: Transform @@ -6212,16 +6263,6 @@ entities: - type: Transform pos: -7.5,-19.5 parent: 1 - - uid: 1643 - components: - - type: Transform - pos: -25.5,8.5 - parent: 1 - - uid: 1644 - components: - - type: Transform - pos: -24.5,8.5 - parent: 1 - uid: 1645 components: - type: Transform @@ -7860,11 +7901,6 @@ entities: - type: Transform pos: -27.5,2.5 parent: 1 - - uid: 57 - components: - - type: Transform - pos: -28.5,7.5 - parent: 1 - uid: 58 components: - type: Transform @@ -7880,11 +7916,6 @@ entities: - type: Transform pos: -28.5,11.5 parent: 1 - - uid: 61 - components: - - type: Transform - pos: -28.5,8.5 - parent: 1 - uid: 65 components: - type: Transform @@ -7900,11 +7931,6 @@ entities: - type: Transform pos: 8.5,4.5 parent: 1 - - uid: 95 - components: - - type: Transform - pos: -28.5,5.5 - parent: 1 - uid: 97 components: - type: Transform @@ -8400,11 +8426,6 @@ entities: - type: Transform pos: -27.5,10.5 parent: 1 - - uid: 517 - components: - - type: Transform - pos: -27.5,8.5 - parent: 1 - uid: 518 components: - type: Transform @@ -10015,11 +10036,6 @@ entities: - type: Transform pos: -26.5,4.5 parent: 1 - - uid: 1391 - components: - - type: Transform - pos: -26.5,8.5 - parent: 1 - uid: 1392 components: - type: Transform diff --git a/Resources/Maps/_CE/Shaar/Shaar-2.yml b/Resources/Maps/_CE/Shaar/Shaar-2.yml index c1f500142d3..df7dd125c08 100644 --- a/Resources/Maps/_CE/Shaar/Shaar-2.yml +++ b/Resources/Maps/_CE/Shaar/Shaar-2.yml @@ -4,8 +4,8 @@ meta: engineVersion: 277.0.0 forkId: "" forkVersion: "" - time: 08/07/2026 11:30:15 - entityCount: 1659 + time: 08/09/2026 08:03:12 + entityCount: 1653 maps: - 1 grids: @@ -77,7 +77,7 @@ entities: version: 7 -2,0: ind: -2,0 - tiles: BQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAQAAAAAAQAGAAAAAAEAEwAAAAACAAYAAAAAAAATAAAAAAMABgAAAAABAAYAAAAAAAABAAAAAAMAAQAAAAADAAIAAAAACgABAAAAAAMAAQAAAAADAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAACAAAAAAIABgAAAAACAAYAAAAAAAAGAAAAAAEABgAAAAABAAYAAAAAAAAGAAAAAAAAAQAAAAAEAAsAAAAAAAALAAAAAAIACwAAAAABAAsAAAAAAwAFAAAAAAAABQAAAAAAAAUAAAAAAAASAAAAAAEADQAAAAACAAIAAAAAAAANAAAAAAAADQAAAAAAAA0AAAAAAQACAAAAAAcAAgAAAAABAAIAAAAAAQAUAAAAAAEAFAAAAAABABQAAAAAAgAUAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAAEgAAAAACAAYAAAAAAAAGAAAAAAMABgAAAAAAAAYAAAAAAwAGAAAAAAIABgAAAAAAAAYAAAAAAAADAAAAAAEAFAAAAAADABQAAAAAAQAUAAAAAAMAFAAAAAABAAUAAAAAAAAFAAAAAAAABQAAAAAAABIAAAAAAQAGAAAAAAMACwAAAAADAAsAAAAAAgALAAAAAAAACwAAAAACAAsAAAAAAgAGAAAAAAEAAwAAAAAKABQAAAAAAAAUAAAAAAEAFAAAAAAAABQAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAASAAAAAAEABgAAAAAAAAsAAAAAAQALAAAAAAIACwAAAAACAAsAAAAAAQALAAAAAAMABgAAAAABAAEAAAAAAwAUAAAAAAIAFAAAAAABABQAAAAAAQAUAAAAAAEABQAAAAAAAAUAAAAAAAAFAAAAAAAAEgAAAAABAAYAAAAAAAALAAAAAAMACwAAAAABAAsAAAAAAAALAAAAAAMACwAAAAABAAYAAAAAAQANAAAAAAIAFAAAAAABABQAAAAAAgAUAAAAAAAAFAAAAAAAAAUAAAAAAAAFAAAAAAAAAgAAAAADABIAAAAAAAAGAAAAAAIABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAABAAYAAAAAAAAGAAAAAAMADQAAAAAAAAsAAAAAAgALAAAAAAIACwAAAAACAAsAAAAAAAAFAAAAAAAABQAAAAAAAAIAAAAAAgACAAAAAAYAAgAAAAACAAIAAAAACAACAAAAAAUAAgAAAAAMAA0AAAAAAQACAAAAAAkAAgAAAAANAAMAAAAACwADAAAAAAEAAwAAAAAJAAEAAAAAAAABAAAAAAEABQAAAAAAAAUAAAAAAAACAAAAAAYAAgAAAAAKAAIAAAAACgACAAAAAAAAAgAAAAAAAAIAAAAAAwACAAAAAAIABgAAAAAAAAYAAAAAAgAGAAAAAAAABgAAAAACAAYAAAAAAQAGAAAAAAMABgAAAAAAAAUAAAAAAAAFAAAAAAAAAgAAAAAAAAIAAAAABgACAAAAAAQAAgAAAAAOAAIAAAAAAAACAAAAAAkAAgAAAAAKAAIAAAAAAAATAAAAAAMABgAAAAAAAAYAAAAAAAAGAAAAAAEABgAAAAADAAYAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAACAAAAAAcAAgAAAAAHAAIAAAAAAgACAAAAAAAAAgAAAAAEAAIAAAAAAwACAAAAAAAAAgAAAAAAAAYAAAAAAQAGAAAAAAEACwAAAAAAAAsAAAAAAAALAAAAAAAABQAAAAAAABIAAAAAAgAFAAAAAAAAAgAAAAAMAAIAAAAACAACAAAAAAIAAgAAAAAOAAIAAAAADgACAAAAAAQABgAAAAACAAYAAAAAAQAGAAAAAAEABgAAAAABAAsAAAAAAAALAAAAAAAACwAAAAAAAAUAAAAAAAASAAAAAAIABQAAAAAAAAUAAAAAAAASAAAAAAIAAgAAAAANAAIAAAAACQACAAAAAAcAAgAAAAADAAYAAAAAAAATAAAAAAMABgAAAAABAAYAAAAAAAAGAAAAAAIABgAAAAADAAYAAAAAAwASAAAAAAAAEgAAAAACABIAAAAAAgASAAAAAAEAEgAAAAACABIAAAAAAgACAAAAAAEAAgAAAAAHAAIAAAAADgAGAAAAAAAABgAAAAACAAYAAAAAAgAGAAAAAAMABgAAAAAAAAYAAAAAAQAGAAAAAAEABQAAAAAAABIAAAAAAgAFAAAAAAAABQAAAAAAAAUAAAAAAAASAAAAAAEAAgAAAAAEAAMAAAAABQADAAAAAAQAAwAAAAAGAAMAAAAADAADAAAAAAoAAwAAAAAFAAMAAAAAAQACAAAAAA4AAgAAAAANAA== + tiles: BQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAQAAAAAAQAGAAAAAAEAEwAAAAACAAYAAAAAAAATAAAAAAMABgAAAAABAAYAAAAAAAABAAAAAAMAAQAAAAADAAIAAAAACgABAAAAAAMAAQAAAAADAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAACAAAAAAIABgAAAAACAAYAAAAAAAAGAAAAAAEABgAAAAABAAYAAAAAAAAGAAAAAAAAAQAAAAAEAAsAAAAAAAALAAAAAAIACwAAAAABAAsAAAAAAwAFAAAAAAAABQAAAAAAAAUAAAAAAAASAAAAAAEADQAAAAACAAIAAAAAAAANAAAAAAAADQAAAAAAAA0AAAAAAQACAAAAAAcAAgAAAAABAAIAAAAAAQAUAAAAAAEAFAAAAAABABQAAAAAAgAUAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAAEgAAAAACAAYAAAAAAAAGAAAAAAMABgAAAAAAAAYAAAAAAwAGAAAAAAIABgAAAAAAAAYAAAAAAAADAAAAAAEAFAAAAAADABQAAAAAAQAUAAAAAAMAFAAAAAABAAUAAAAAAAAFAAAAAAAABQAAAAAAABIAAAAAAQAGAAAAAAMACwAAAAADAAsAAAAAAgALAAAAAAAACwAAAAACAAsAAAAAAgAGAAAAAAEAAwAAAAAKABQAAAAAAAAUAAAAAAEAFAAAAAAAABQAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAASAAAAAAEABgAAAAAAAAsAAAAAAQALAAAAAAIACwAAAAACAAsAAAAAAQALAAAAAAMABgAAAAABAAEAAAAAAwAUAAAAAAIAFAAAAAABABQAAAAAAQAUAAAAAAEABQAAAAAAAAUAAAAAAAAFAAAAAAAACwAAAAAAAAYAAAAAAAALAAAAAAMACwAAAAABAAsAAAAAAAALAAAAAAMACwAAAAABAAYAAAAAAQANAAAAAAIAFAAAAAABABQAAAAAAgAUAAAAAAAAFAAAAAAAAAUAAAAAAAAFAAAAAAAAAgAAAAADABIAAAAAAAAGAAAAAAIABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAABAAYAAAAAAAAGAAAAAAMADQAAAAAAAAsAAAAAAgALAAAAAAIACwAAAAACAAsAAAAAAAAFAAAAAAAABQAAAAAAAAIAAAAAAgACAAAAAAYAAgAAAAACAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAMAAAAACwADAAAAAAEAAwAAAAAJAAEAAAAAAAABAAAAAAEABQAAAAAAAAUAAAAAAAACAAAAAAYAAgAAAAAKAAIAAAAACgAGAAAAAAAABgAAAAAAAAsAAAAAAAALAAAAAAAABgAAAAAAAAYAAAAAAgAGAAAAAAAABgAAAAACAAYAAAAAAQAGAAAAAAMABgAAAAAAAAUAAAAAAAAFAAAAAAAAAgAAAAAAAAIAAAAABgACAAAAAAQABgAAAAAAAAYAAAAAAAALAAAAAAAACwAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAACAAAAAAcAAgAAAAAHAAYAAAAAAAAGAAAAAAAACwAAAAAAAAsAAAAAAAAGAAAAAAAABgAAAAAAAAIAAAAAAAABAAAAAAAAAQAAAAAAAAEAAAAAAAACAAAAAAAABQAAAAAAABIAAAAAAgAFAAAAAAAAAgAAAAAMAAIAAAAACAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAACAAYAAAAAAQACAAAAAAAAAQAAAAAAAAIAAAAAAAACAAAAAAAAAgAAAAAAAAUAAAAAAAASAAAAAAIABQAAAAAAAAUAAAAAAAASAAAAAAIABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAASAAAAAAAAEgAAAAACABIAAAAAAgASAAAAAAEAEgAAAAACAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAAABgAAAAACAAMAAAAAAAACAAAAAAAAAgAAAAAAAAIAAAAAAAABAAAAAAAABQAAAAAAABIAAAAAAgAFAAAAAAAABQAAAAAAAAUAAAAAAAASAAAAAAEAAgAAAAAEAAMAAAAABQADAAAAAAQAAwAAAAAGAAMAAAAADAADAAAAAAoAAwAAAAAFAAMAAAAAAQACAAAAAA4AAgAAAAANAA== version: 7 1,-1: ind: 1,-1 @@ -101,11 +101,11 @@ entities: version: 7 -1,0: ind: -1,0 - tiles: AgAAAAAIAAYAAAAAAQAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAIABgAAAAABAAYAAAAAAgAGAAAAAAEAAgAAAAANABIAAAAAAAASAAAAAAIAEgAAAAACABIAAAAAAAASAAAAAAEABQAAAAAAAAEAAAAAAQAGAAAAAAEABgAAAAADAAYAAAAAAAAGAAAAAAAABgAAAAABAAYAAAAAAgAGAAAAAAAABgAAAAADAAIAAAAABQAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAANAAAAAAIABgAAAAABAAYAAAAAAAAGAAAAAAMABgAAAAAAAAYAAAAAAwAGAAAAAAMABgAAAAABAAYAAAAAAgACAAAAAAMAEgAAAAACAAUAAAAAAAAFAAAAAAAABQAAAAAAABIAAAAAAgAFAAAAAAAADQAAAAABAAYAAAAAAQAGAAAAAAMABgAAAAAAAAYAAAAAAQAGAAAAAAIABgAAAAACAAYAAAAAAgAGAAAAAAIAAwAAAAABAAMAAAAAAwASAAAAAAIABQAAAAAAAAUAAAAAAAASAAAAAAIABQAAAAAAAAMAAAAAAgAGAAAAAAMABgAAAAAAAAYAAAAAAAAGAAAAAAEABgAAAAAAAAYAAAAAAQAGAAAAAAMABgAAAAAAAAMAAAAACgADAAAAAAAAAgAAAAANABIAAAAAAQAFAAAAAAAAEgAAAAAAABIAAAAAAgADAAAAAAgABgAAAAACAAYAAAAAAQAGAAAAAAIABgAAAAABAAYAAAAAAgAGAAAAAAAABgAAAAADAAYAAAAAAgADAAAAAAoAAwAAAAAJAAIAAAAACwADAAAAAAgAAwAAAAAMAAEAAAAAAQADAAAAAAwAAwAAAAAIAAYAAAAAAQATAAAAAAEACwAAAAAAAAsAAAAAAwALAAAAAAMACwAAAAADABMAAAAAAgAGAAAAAAIAAwAAAAABAAEAAAAAAAACAAAAAA8AAwAAAAANAAMAAAAABQACAAAAAAsAAgAAAAAKAAIAAAAABAAGAAAAAAMABgAAAAADAAYAAAAAAQAGAAAAAAMABgAAAAACAAYAAAAAAgAGAAAAAAEABgAAAAAAAAIAAAAABAABAAAAAAAAAgAAAAAMAAMAAAAABQADAAAAAAEAAgAAAAAEAAIAAAAAAAACAAAAAAEAAgAAAAABAAEAAAAAAQADAAAAAAUAAgAAAAAEAAIAAAAAAwACAAAAAAEAAgAAAAANAAIAAAAAAQACAAAAAAEAAQAAAAAEAAEAAAAAAAACAAAAAAcAAgAAAAAKAAIAAAAADwACAAAAAAQABgAAAAACAAYAAAAAAQABAAAAAAAAAwAAAAAJAAYAAAAAAwAGAAAAAAEABgAAAAACAAYAAAAAAwAGAAAAAAMABgAAAAABAAYAAAAAAAACAAAAAAEAAgAAAAAEAAIAAAAADwACAAAAAA0AAgAAAAAGABMAAAAAAwAGAAAAAAEAAwAAAAAFAAMAAAAACAAGAAAAAAEABgAAAAAAAAMAAAAACQADAAAAAAkAAQAAAAACAAEAAAAAAQABAAAAAAEAAwAAAAALAAEAAAAAAQABAAAAAAQAAgAAAAANAAMAAAAABwAGAAAAAAMABgAAAAACAAEAAAAAAwADAAAAAA0ABgAAAAACAAYAAAAAAgABAAAAAAMAAQAAAAADAAEAAAAAAAADAAAAAAMAEwAAAAACAAEAAAAAAwATAAAAAAEAAwAAAAAJABMAAAAAAgADAAAAAAcABgAAAAABAAYAAAAAAQADAAAAAAQAAgAAAAAHAAYAAAAAAwAGAAAAAAAAAwAAAAAJAAMAAAAABwADAAAAAAEAAQAAAAAEAAMAAAAABAADAAAAAAAAAwAAAAABAAMAAAAACgADAAAAAAcAAwAAAAACABMAAAAAAAAGAAAAAAMAAwAAAAAIAAIAAAAADAAGAAAAAAIABgAAAAACAAsAAAAAAwADAAAAAAgAAwAAAAABAAMAAAAAAgATAAAAAAEAAwAAAAAGABMAAAAAAQABAAAAAAQAEwAAAAACAAIAAAAADAAGAAAAAAEABgAAAAABAAEAAAAABAACAAAAAAgABgAAAAACAAYAAAAAAgAGAAAAAAEABgAAAAABAAYAAAAAAwAGAAAAAAAABgAAAAACAAYAAAAAAQAGAAAAAAIABgAAAAAAAAYAAAAAAAAGAAAAAAIAAgAAAAAJAAIAAAAAAwABAAAAAAIAAgAAAAADAAYAAAAAAwAGAAAAAAMABgAAAAABAAYAAAAAAAAGAAAAAAIABgAAAAACAAYAAAAAAQABAAAAAAIAAwAAAAAAAAEAAAAAAgABAAAAAAMAAwAAAAAGAA== + tiles: AgAAAAAIAAYAAAAAAQAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAIABgAAAAABAAYAAAAAAgAGAAAAAAEAAgAAAAANABIAAAAAAAASAAAAAAIAEgAAAAACABIAAAAAAAASAAAAAAEABQAAAAAAAAEAAAAAAQAGAAAAAAEABgAAAAADAAYAAAAAAAAGAAAAAAAABgAAAAABAAYAAAAAAgAGAAAAAAAABgAAAAADAAIAAAAABQAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAANAAAAAAIABgAAAAABAAYAAAAAAAAGAAAAAAMABgAAAAAAAAYAAAAAAwAGAAAAAAMABgAAAAABAAYAAAAAAgACAAAAAAMAEgAAAAACAAUAAAAAAAAFAAAAAAAABQAAAAAAABIAAAAAAgAFAAAAAAAADQAAAAABAAYAAAAAAQAGAAAAAAMABgAAAAAAAAYAAAAAAQAGAAAAAAIABgAAAAACAAYAAAAAAgAGAAAAAAIAAwAAAAABAAMAAAAAAwASAAAAAAIABQAAAAAAAAUAAAAAAAASAAAAAAIABQAAAAAAAAMAAAAAAgAGAAAAAAMABgAAAAAAAAYAAAAAAAAGAAAAAAEABgAAAAAAAAYAAAAAAQAGAAAAAAMABgAAAAAAAAMAAAAACgADAAAAAAAAAgAAAAANABIAAAAAAQAFAAAAAAAAEgAAAAAAABIAAAAAAgADAAAAAAgABgAAAAACAAYAAAAAAQAGAAAAAAIABgAAAAABAAYAAAAAAgAGAAAAAAAABgAAAAADAAYAAAAAAgADAAAAAAoAAwAAAAAJAAIAAAAACwADAAAAAAgAAwAAAAAMAAEAAAAAAQADAAAAAAwAAwAAAAAIAAYAAAAAAQATAAAAAAEACwAAAAAAAAsAAAAAAwALAAAAAAMACwAAAAADABMAAAAAAgAGAAAAAAIAAwAAAAABAAEAAAAAAAACAAAAAA8AAwAAAAANAAMAAAAABQACAAAAAAsAAgAAAAAKAAIAAAAABAAGAAAAAAMABgAAAAADAAYAAAAAAQAGAAAAAAMABgAAAAACAAYAAAAAAgAGAAAAAAEABgAAAAAAAAIAAAAABAABAAAAAAAAAgAAAAAMAAMAAAAABQADAAAAAAEAAgAAAAAEAAIAAAAAAAACAAAAAAEAAgAAAAABAAEAAAAAAQADAAAAAAUAAgAAAAAEAAIAAAAAAwACAAAAAAEAAgAAAAANAAIAAAAAAQACAAAAAAEAAQAAAAAEAAEAAAAAAAACAAAAAAcAAgAAAAAKAAIAAAAADwACAAAAAAQABgAAAAACAAYAAAAAAQABAAAAAAAAAwAAAAAJAAYAAAAAAwAGAAAAAAEABgAAAAACAAYAAAAAAwAGAAAAAAMABgAAAAABAAYAAAAAAAACAAAAAAEAAgAAAAAEAAIAAAAADwACAAAAAA0AAgAAAAAGAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAEABgAAAAAAAAMAAAAACQADAAAAAAkAAQAAAAACAAEAAAAAAQABAAAAAAEAAwAAAAALAAEAAAAAAQABAAAAAAQAAgAAAAANAAMAAAAABwADAAAAAAAABgAAAAAAAAEAAAAAAwADAAAAAA0ABgAAAAACAAYAAAAAAgABAAAAAAMAAQAAAAADAAEAAAAAAAADAAAAAAMAEwAAAAACAAEAAAAAAwATAAAAAAEAAwAAAAAJABMAAAAAAgADAAAAAAcAAgAAAAAAAAYAAAAAAAADAAAAAAQAAgAAAAAHAAYAAAAAAwAGAAAAAAAAAwAAAAAJAAMAAAAABwADAAAAAAEAAQAAAAAEAAMAAAAABAADAAAAAAAAAwAAAAABAAMAAAAACgADAAAAAAcAAwAAAAACAAYAAAAAAAAGAAAAAAAABgAAAAAAAAYAAAAAAAAGAAAAAAIABgAAAAACAAsAAAAAAwADAAAAAAgAAwAAAAABAAMAAAAAAgATAAAAAAEAAwAAAAAGABMAAAAAAQABAAAAAAQAEwAAAAACAAIAAAAADAACAAAAAAAABgAAAAAAAAEAAAAABAACAAAAAAgABgAAAAACAAYAAAAAAgAGAAAAAAEABgAAAAABAAYAAAAAAwAGAAAAAAAABgAAAAACAAYAAAAAAQAGAAAAAAIABgAAAAAAAAYAAAAAAAAGAAAAAAIAAgAAAAAJAAYAAAAAAAABAAAAAAIAAgAAAAADAAYAAAAAAwAGAAAAAAMABgAAAAABAAYAAAAAAAAGAAAAAAIABgAAAAACAAYAAAAAAQABAAAAAAIAAwAAAAAAAAEAAAAAAgABAAAAAAMAAwAAAAAGAA== version: 7 -1,1: ind: -1,1 - tiles: AgAAAAAJAAEAAAAAAgABAAAAAAEAAgAAAAAMAAYAAAAAAAADAAAAAAkAAwAAAAAAAAMAAAAABQADAAAAAAMAAwAAAAAJAAMAAAAAAwADAAAAAAwAAwAAAAABAAMAAAAACQADAAAAAAcAAwAAAAANAAYAAAAAAQAGAAAAAAAABgAAAAABAAIAAAAABQACAAAAAAkAAgAAAAAOAAIAAAAABwACAAAAAA0AAgAAAAANAAIAAAAADAACAAAAAAMAAgAAAAANAAIAAAAACAADAAAAAAYAAwAAAAAGAAMAAAAACQAGAAAAAAAABgAAAAABAAYAAAAAAwADAAAAAAQAAwAAAAAIAAIAAAAAAAACAAAAAA4AAgAAAAAPAAIAAAAACAACAAAAAAgAAgAAAAABAAIAAAAABgACAAAAAAMAAwAAAAAHAAMAAAAAAAADAAAAAAkABgAAAAACAAYAAAAAAgAGAAAAAAMAAwAAAAAHAAMAAAAABgADAAAAAAMAAwAAAAANAAMAAAAABgAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAYAAAAAAwAGAAAAAAIABgAAAAABAAMAAAAABAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAGAAAAAAAABgAAAAABAAYAAAAAAwAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAA== + tiles: BgAAAAAAAAYAAAAAAAAGAAAAAAAAAgAAAAAMAAYAAAAAAAADAAAAAAkAAwAAAAAAAAMAAAAABQADAAAAAAMAAwAAAAAJAAMAAAAAAwADAAAAAAwAAwAAAAABAAMAAAAACQADAAAAAAcAAwAAAAANAAYAAAAAAQAGAAAAAAAABgAAAAABAAIAAAAABQACAAAAAAkAAgAAAAAOAAIAAAAABwACAAAAAA0AAgAAAAANAAIAAAAADAACAAAAAAMAAgAAAAANAAIAAAAACAADAAAAAAYAAwAAAAAGAAMAAAAACQAGAAAAAAAABgAAAAABAAYAAAAAAwADAAAAAAQAAwAAAAAIAAIAAAAAAAACAAAAAA4AAgAAAAAPAAIAAAAACAACAAAAAAgAAgAAAAABAAIAAAAABgACAAAAAAMAAwAAAAAHAAMAAAAAAAADAAAAAAkABgAAAAACAAYAAAAAAgAGAAAAAAMAAwAAAAAHAAMAAAAABgADAAAAAAMAAwAAAAANAAMAAAAABgAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAYAAAAAAwAGAAAAAAIABgAAAAABAAMAAAAABAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAGAAAAAAAABgAAAAABAAYAAAAAAwAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAA== version: 7 0,1: ind: 0,1 @@ -117,7 +117,7 @@ entities: version: 7 -2,1: ind: -2,1 - tiles: BQAAAAAAABIAAAAAAQAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAADAAAAAA0AAwAAAAABAAMAAAAABwADAAAAAAgAAwAAAAADAAMAAAAACgACAAAAAA4AAQAAAAABAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAAAwAAAAAHAAMAAAAACgADAAAAAAQAAwAAAAAFAAMAAAAAAwADAAAAAAYABgAAAAACAAYAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAAAwAAAAADAAYAAAAAAAAGAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAGAAAAAAIABgAAAAADAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABgAAAAADAAYAAAAAAgAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAYAAAAAAAAGAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAA== + tiles: BQAAAAAAABIAAAAAAQAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAIAAAAAAAADAAAAAA0AAwAAAAABAAMAAAAABwADAAAAAAgAAwAAAAADAAMAAAAACgAGAAAAAAAABgAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAAAwAAAAAHAAMAAAAACgADAAAAAAQAAwAAAAAFAAMAAAAAAwADAAAAAAYABgAAAAACAAYAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAMAAAAAAAADAAAAAAAAAwAAAAADAAYAAAAAAAAGAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAGAAAAAAIABgAAAAADAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABgAAAAADAAYAAAAAAgAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAYAAAAAAAAGAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAAUAAAAAAAAFAAAAAAAABQAAAAAAAA== version: 7 - type: SpreaderGrid updateAccumulator: 0.93349075 @@ -287,21 +287,20 @@ entities: parent: 1 - proto: CEBedsideTableFilledTechnician entities: - - uid: 574 + - uid: 669 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -15.5,11.5 + pos: -24.5,12.5 parent: 1 - - uid: 891 + - uid: 701 components: - type: Transform - pos: -19.5,13.5 + pos: -23.5,12.5 parent: 1 - - uid: 901 + - uid: 709 components: - type: Transform - pos: -18.5,13.5 + pos: -22.5,12.5 parent: 1 - proto: CEBedsideTableWooden entities: @@ -310,6 +309,50 @@ entities: - type: Transform pos: 22.5,-17.5 parent: 1 +- proto: CEBell + entities: + - uid: 571 + components: + - type: Transform + pos: -20.545252,9.773753 + parent: 1 +- proto: CEBenchWood + entities: + - uid: 430 + components: + - type: Transform + pos: -14.5,12.5 + parent: 1 + - uid: 432 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,12.5 + parent: 1 + - uid: 445 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,11.5 + parent: 1 + - uid: 626 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,13.5 + parent: 1 + - uid: 647 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,14.5 + parent: 1 + - uid: 704 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,13.5 + parent: 1 - proto: CEBigBrassPipe30 entities: - uid: 889 @@ -615,12 +658,6 @@ entities: rot: -1.5707963267948966 rad pos: -14.388999,19.75788 parent: 1 - - uid: 1415 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -17.614037,16.51556 - parent: 1 - proto: CEChestFilledAcademyProfessor entities: - uid: 964 @@ -637,20 +674,20 @@ entities: parent: 1 - proto: CEChestFilledTechnician entities: - - uid: 716 + - uid: 718 components: - type: Transform - pos: -15.5,10.5 + pos: -25.5,8.5 parent: 1 - - uid: 890 + - uid: 719 components: - type: Transform - pos: -19.5,10.5 + pos: -25.5,9.5 parent: 1 - - uid: 954 + - uid: 721 components: - type: Transform - pos: -19.5,11.5 + pos: -25.5,10.5 parent: 1 - proto: CEClothingEyesMiningGlasses entities: @@ -1110,7 +1147,7 @@ entities: rot: 1.5707963267948966 rad pos: -31.177856,-21.56854 parent: 1 -- proto: CECurtainsRedOpened +- proto: CECurtainsRed entities: - uid: 1565 components: @@ -1316,17 +1353,15 @@ entities: rot: 3.141592653589793 rad pos: -11.5,-3.5 parent: 1 - - uid: 402 + - uid: 211 components: - type: Transform - rot: 3.141592653589793 rad - pos: -18.5,17.5 + pos: -12.5,7.5 parent: 1 - - uid: 404 + - uid: 448 components: - type: Transform - rot: 3.141592653589793 rad - pos: -12.5,17.5 + pos: 1.5,15.5 parent: 1 - uid: 508 components: @@ -1372,12 +1407,6 @@ entities: - type: Transform pos: -13.5,-3.5 parent: 1 - - uid: 966 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -13.5,14.5 - parent: 1 - uid: 1024 components: - type: Transform @@ -1402,6 +1431,41 @@ entities: rot: 1.5707963267948966 rad pos: -7.5,4.5 parent: 1 + - uid: 1033 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,15.5 + parent: 1 + - uid: 1037 + components: + - type: Transform + pos: -11.5,7.5 + parent: 1 + - uid: 1057 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,7.5 + parent: 1 + - uid: 1058 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,7.5 + parent: 1 + - uid: 1090 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,-13.5 + parent: 1 + - uid: 1091 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,-13.5 + parent: 1 - uid: 1109 components: - type: Transform @@ -1582,6 +1646,26 @@ entities: rot: -1.5707963267948966 rad pos: -15.5,-11.5 parent: 1 + - uid: 627 + components: + - type: Transform + pos: -23.5,15.5 + parent: 1 + - uid: 628 + components: + - type: Transform + pos: -24.5,15.5 + parent: 1 + - uid: 632 + components: + - type: Transform + pos: -22.5,15.5 + parent: 1 + - uid: 650 + components: + - type: Transform + pos: -21.5,15.5 + parent: 1 - uid: 980 components: - type: Transform @@ -1666,6 +1750,24 @@ entities: parent: 1 - proto: CEFenceWindowIron entities: + - uid: 403 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,9.5 + parent: 1 + - uid: 404 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,9.5 + parent: 1 + - uid: 406 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,9.5 + parent: 1 - uid: 1411 components: - type: Transform @@ -1884,11 +1986,6 @@ entities: - type: Transform pos: 2.5,11.5 parent: 1 - - uid: 1372 - components: - - type: Transform - pos: 2.5,15.5 - parent: 1 - uid: 1373 components: - type: Transform @@ -2107,10 +2204,10 @@ entities: parent: 1 - proto: CEIronDoorAcademyTechnical entities: - - uid: 1633 + - uid: 555 components: - type: Transform - pos: -31.5,-11.5 + pos: -31.5,-15.5 parent: 1 - proto: CEIronDoorEngineeringBrigadier entities: @@ -2150,32 +2247,6 @@ entities: - type: Transform pos: -14.5,17.5 parent: 1 -- proto: CEIronDoorEngineeringStaff - entities: - - uid: 582 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -16.5,9.5 - parent: 1 - - uid: 627 - components: - - type: Transform - pos: -17.5,14.5 - parent: 1 -- proto: CEIronDoorEngineeringStaffMirrored - entities: - - uid: 430 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -17.5,9.5 - parent: 1 - - uid: 628 - components: - - type: Transform - pos: -16.5,14.5 - parent: 1 - proto: CEIronDoorEngineeringStorageMirrored entities: - uid: 912 @@ -2186,6 +2257,12 @@ entities: parent: 1 - proto: CEIronDoorEngineeringTunnelsMirrored entities: + - uid: 414 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,9.5 + parent: 1 - uid: 855 components: - type: Transform @@ -2199,24 +2276,12 @@ entities: rot: 1.5707963267948966 rad pos: -21.5,8.5 parent: 1 - - uid: 887 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -14.5,8.5 - parent: 1 - uid: 979 components: - type: Transform rot: -1.5707963267948966 rad pos: -22.5,2.5 parent: 1 - - uid: 1414 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -12.5,14.5 - parent: 1 - proto: CEIronRod30 entities: - uid: 942 @@ -2243,6 +2308,14 @@ entities: parent: 1 - proto: CEIsolator entities: + - uid: 1089 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,-11.5 + parent: 1 + - type: Fixtures + fixtures: {} - uid: 1562 components: - type: Transform @@ -2539,6 +2612,16 @@ entities: - type: Conveyed - proto: CELargeWoodenCrateFilled entities: + - uid: 573 + components: + - type: Transform + pos: -18.5,14.5 + parent: 1 + - uid: 630 + components: + - type: Transform + pos: -10.5,16.5 + parent: 1 - uid: 777 components: - type: Transform @@ -2622,10 +2705,10 @@ entities: storage: 908 - proto: CEMachineFrame entities: - - uid: 888 + - uid: 400 components: - type: Transform - pos: -15.5,7.5 + pos: -20.5,7.5 parent: 1 - uid: 902 components: @@ -3119,402 +3202,507 @@ entities: parent: 1 - proto: CEPipeBrassMedium entities: - - uid: 13 + - uid: 20 components: - type: Transform - pos: -32.5,-13.5 + pos: -17.5,10.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 105 + - uid: 58 components: - type: Transform - pos: -28.5,-11.5 + pos: -22.5,12.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 383 + - uid: 62 components: - type: Transform - pos: -4.5,14.5 + pos: -32.5,-11.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 392 + - uid: 105 components: - type: Transform - pos: 4.5,12.5 + pos: -28.5,-11.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 433 + - uid: 231 components: - type: Transform - pos: -6.5,14.5 + pos: -22.5,11.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 439 + - uid: 309 components: - type: Transform - pos: -3.5,14.5 + pos: -14.5,10.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 497 + - uid: 312 components: - type: Transform - pos: -12.5,14.5 + pos: -15.5,10.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 547 + - uid: 313 components: - type: Transform - pos: -12.5,12.5 + pos: -16.5,10.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 610 + - uid: 374 components: - type: Transform - pos: -12.5,13.5 + pos: -14.5,13.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 651 + - uid: 383 components: - type: Transform - pos: -27.5,-11.5 + pos: -4.5,14.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 652 + - uid: 392 components: - type: Transform - pos: -26.5,-11.5 + pos: 4.5,12.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 653 + - uid: 402 components: - type: Transform - pos: -25.5,-11.5 + pos: -20.5,10.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 654 + - uid: 418 components: - type: Transform - pos: -24.5,-11.5 + pos: -20.5,11.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 731 + - uid: 421 components: - type: Transform - pos: -6.5,3.5 + pos: -13.5,13.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 732 + - uid: 426 components: - type: Transform - pos: -7.5,3.5 + pos: -20.5,12.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 831 + - uid: 427 components: - type: Transform - pos: -13.5,-1.5 + pos: -20.5,13.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 884 + - uid: 433 components: - type: Transform - pos: -12.5,10.5 + pos: -6.5,14.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 886 + - uid: 439 components: - type: Transform - pos: -12.5,11.5 + pos: -3.5,14.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1040 + - uid: 462 components: - type: Transform - pos: -0.5,12.5 + pos: -18.5,10.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1041 + - uid: 475 components: - type: Transform - pos: 1.5,12.5 + pos: -19.5,10.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1046 + - uid: 478 components: - type: Transform - pos: 2.5,12.5 + pos: -31.5,-14.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1050 + - uid: 490 components: - type: Transform - pos: -16.5,10.5 + pos: -30.5,-16.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1051 + - uid: 492 components: - type: Transform - pos: -12.5,15.5 + pos: -31.5,-16.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1052 + - uid: 497 components: - type: Transform - pos: -12.5,9.5 + pos: -12.5,14.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1053 + - uid: 547 components: - type: Transform - pos: -13.5,15.5 + pos: -12.5,12.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1054 + - uid: 574 components: - type: Transform - pos: -14.5,15.5 + pos: -15.5,13.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1055 + - uid: 605 components: - type: Transform - pos: -15.5,15.5 + pos: -30.5,-14.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1056 + - uid: 610 components: - type: Transform - pos: -16.5,15.5 + pos: -12.5,13.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1057 + - uid: 618 components: - type: Transform - pos: -17.5,15.5 + pos: -31.5,-15.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1058 + - uid: 651 components: - type: Transform - pos: -18.5,15.5 + pos: -27.5,-11.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1059 + - uid: 652 components: - type: Transform - pos: -15.5,16.5 + pos: -26.5,-11.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1060 + - uid: 653 components: - type: Transform - pos: -15.5,17.5 + pos: -25.5,-11.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1062 + - uid: 654 components: - type: Transform - pos: -13.5,12.5 + pos: -24.5,-11.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1066 + - uid: 703 components: - type: Transform - pos: -10.5,12.5 + pos: -13.5,10.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1067 + - uid: 711 components: - type: Transform - pos: -10.5,13.5 + pos: -21.5,8.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1068 + - uid: 714 components: - type: Transform - pos: -10.5,14.5 + pos: -20.5,8.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1070 + - uid: 731 components: - type: Transform - pos: -12.5,8.5 + pos: -6.5,3.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1071 + - uid: 732 components: - type: Transform - pos: -13.5,8.5 + pos: -7.5,3.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1072 + - uid: 831 components: - type: Transform - pos: -14.5,8.5 + pos: -13.5,-1.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1073 + - uid: 884 components: - type: Transform - pos: -15.5,8.5 + pos: -12.5,10.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1074 + - uid: 886 components: - type: Transform - pos: -16.5,8.5 + pos: -12.5,11.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1075 + - uid: 901 components: - type: Transform - pos: -17.5,8.5 + pos: -25.5,12.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1076 + - uid: 954 components: - type: Transform - pos: -18.5,8.5 + pos: -25.5,9.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1077 + - uid: 966 components: - type: Transform - pos: -19.5,8.5 + pos: -22.5,9.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1078 + - uid: 970 components: - type: Transform - pos: -16.5,9.5 + pos: -25.5,8.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1079 + - uid: 1035 components: - type: Transform - pos: -16.5,11.5 + pos: -23.5,8.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1080 + - uid: 1036 components: - type: Transform - pos: -16.5,12.5 + pos: -24.5,8.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1081 + - uid: 1040 components: - type: Transform - pos: -16.5,13.5 + pos: -0.5,12.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1082 + - uid: 1041 components: - type: Transform - pos: -16.5,14.5 + pos: 1.5,12.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1083 + - uid: 1046 components: - type: Transform - pos: -15.5,10.5 + pos: 2.5,12.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1084 + - uid: 1051 components: - type: Transform - pos: -15.5,12.5 + pos: -12.5,15.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1085 + - uid: 1052 components: - type: Transform - pos: -17.5,12.5 + pos: -12.5,9.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1086 + - uid: 1053 components: - type: Transform - pos: -18.5,12.5 + pos: -13.5,15.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1087 + - uid: 1054 components: - type: Transform - pos: -19.5,12.5 + pos: -14.5,15.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1090 + - uid: 1055 components: - type: Transform - pos: -17.5,10.5 + pos: -15.5,15.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1091 + - uid: 1056 components: - type: Transform - pos: -18.5,10.5 + pos: -25.5,11.5 + parent: 1 + - type: Fixtures + fixtures: {} + - uid: 1059 + components: + - type: Transform + pos: -15.5,16.5 parent: 1 - type: Fixtures fixtures: {} - - uid: 1092 + - uid: 1060 components: - type: Transform - pos: -19.5,10.5 + pos: -15.5,17.5 + parent: 1 + - type: Fixtures + fixtures: {} + - uid: 1062 + components: + - type: Transform + pos: -22.5,8.5 + parent: 1 + - type: Fixtures + fixtures: {} + - uid: 1066 + components: + - type: Transform + pos: -10.5,12.5 + parent: 1 + - type: Fixtures + fixtures: {} + - uid: 1067 + components: + - type: Transform + pos: -10.5,13.5 + parent: 1 + - type: Fixtures + fixtures: {} + - uid: 1068 + components: + - type: Transform + pos: -10.5,14.5 + parent: 1 + - type: Fixtures + fixtures: {} + - uid: 1070 + components: + - type: Transform + pos: -12.5,8.5 + parent: 1 + - type: Fixtures + fixtures: {} + - uid: 1071 + components: + - type: Transform + pos: -13.5,8.5 + parent: 1 + - type: Fixtures + fixtures: {} + - uid: 1072 + components: + - type: Transform + pos: -14.5,8.5 + parent: 1 + - type: Fixtures + fixtures: {} + - uid: 1073 + components: + - type: Transform + pos: -15.5,8.5 + parent: 1 + - type: Fixtures + fixtures: {} + - uid: 1074 + components: + - type: Transform + pos: -16.5,8.5 + parent: 1 + - type: Fixtures + fixtures: {} + - uid: 1075 + components: + - type: Transform + pos: -17.5,8.5 + parent: 1 + - type: Fixtures + fixtures: {} + - uid: 1076 + components: + - type: Transform + pos: -18.5,8.5 + parent: 1 + - type: Fixtures + fixtures: {} + - uid: 1077 + components: + - type: Transform + pos: -19.5,8.5 + parent: 1 + - type: Fixtures + fixtures: {} + - uid: 1078 + components: + - type: Transform + pos: -25.5,10.5 + parent: 1 + - type: Fixtures + fixtures: {} + - uid: 1083 + components: + - type: Transform + pos: -22.5,10.5 parent: 1 - type: Fixtures fixtures: {} @@ -5011,12 +5199,42 @@ entities: parent: 1 - proto: CESmallWoodenCrateFilled entities: + - uid: 446 + components: + - type: Transform + pos: -9.5,8.5 + parent: 1 - uid: 458 components: - type: Transform rot: 1.5707963267948966 rad pos: 9.5,1.5 parent: 1 + - uid: 569 + components: + - type: Transform + pos: -17.5,16.5 + parent: 1 + - uid: 580 + components: + - type: Transform + pos: -11.5,18.5 + parent: 1 + - uid: 582 + components: + - type: Transform + pos: -10.5,19.5 + parent: 1 + - uid: 585 + components: + - type: Transform + pos: -12.5,19.5 + parent: 1 + - uid: 710 + components: + - type: Transform + pos: -11.5,16.5 + parent: 1 - uid: 778 components: - type: Transform @@ -5070,12 +5288,6 @@ entities: rot: 1.5707963267948966 rad pos: -30.5,-12.5 parent: 1 - - uid: 1644 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -31.5,-14.5 - parent: 1 - proto: CESolutionNormalizer entities: - uid: 1495 @@ -5100,17 +5312,15 @@ entities: parent: 1 - proto: CESpawnPointTechnician entities: - - uid: 427 + - uid: 2 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -17.5,11.5 + pos: -23.5,9.5 parent: 1 - - uid: 650 + - uid: 27 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -18.5,12.5 + pos: -23.5,11.5 parent: 1 - uid: 1010 components: @@ -5140,18 +5350,6 @@ entities: rot: 3.141592653589793 rad pos: -10.5,14.5 parent: 1 - - uid: 1418 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -18.5,16.5 - parent: 1 - - uid: 1419 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -18.5,15.5 - parent: 1 - uid: 1606 components: - type: Transform @@ -5184,6 +5382,12 @@ entities: parent: 1 - proto: CETableWoodenMetallicCounter entities: + - uid: 285 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,9.5 + parent: 1 - uid: 696 components: - type: Transform @@ -5304,6 +5508,18 @@ entities: rot: 1.5707963267948966 rad pos: -21.5,-2.5 parent: 1 + - uid: 1034 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,9.5 + parent: 1 + - uid: 1079 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,9.5 + parent: 1 - uid: 1133 components: - type: Transform @@ -5416,6 +5632,11 @@ entities: parent: 1 - proto: CEWallCrystalCore entities: + - uid: 59 + components: + - type: Transform + pos: 2.5,15.5 + parent: 1 - uid: 114 components: - type: Transform @@ -5742,26 +5963,6 @@ entities: parent: 1 - type: CEZPhysics localPosition: 1 - - uid: 57 - components: - - type: Transform - pos: -31.5,-18.5 - parent: 1 - - uid: 58 - components: - - type: Transform - pos: -30.5,-17.5 - parent: 1 - - uid: 59 - components: - - type: Transform - pos: -31.5,-17.5 - parent: 1 - - uid: 62 - components: - - type: Transform - pos: -30.5,-16.5 - parent: 1 - uid: 66 components: - type: Transform @@ -6281,11 +6482,6 @@ entities: parent: 1 - type: CEZPhysics localPosition: 1 - - uid: 669 - components: - - type: Transform - pos: -30.5,-18.5 - parent: 1 - uid: 670 components: - type: Transform @@ -6406,35 +6602,41 @@ entities: parent: 1 - proto: CEWallLight entities: - - uid: 374 + - uid: 5 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,9.5 + parent: 1 + - uid: 13 components: - type: Transform rot: -1.5707963267948966 rad - pos: -15.5,10.5 + pos: -22.5,9.5 parent: 1 - - uid: 445 + - uid: 44 components: - type: Transform - rot: 3.141592653589793 rad - pos: -18.5,15.5 + rot: -1.5707963267948966 rad + pos: -22.5,11.5 parent: 1 - - uid: 477 + - uid: 57 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -12.5,9.5 + rot: 1.5707963267948966 rad + pos: -20.5,10.5 parent: 1 - - uid: 490 + - uid: 283 components: - type: Transform - rot: 3.141592653589793 rad - pos: -15.5,15.5 + rot: -1.5707963267948966 rad + pos: -30.5,-14.5 parent: 1 - - uid: 492 + - uid: 477 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -13.5,12.5 + rot: -1.5707963267948966 rad + pos: -12.5,9.5 parent: 1 - uid: 553 components: @@ -6442,34 +6644,27 @@ entities: rot: 3.141592653589793 rad pos: -15.5,18.5 parent: 1 - - uid: 555 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -15.5,12.5 - parent: 1 - - uid: 573 + - uid: 556 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -19.5,12.5 + pos: -30.5,-16.5 parent: 1 - uid: 581 components: - type: Transform pos: -15.5,16.5 parent: 1 - - uid: 630 + - uid: 631 components: - type: Transform rot: 1.5707963267948966 rad - pos: -19.5,10.5 + pos: -28.5,-11.5 parent: 1 - - uid: 631 + - uid: 658 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -28.5,-11.5 + rot: -1.5707963267948966 rad + pos: -15.5,13.5 parent: 1 - uid: 705 components: @@ -6477,6 +6672,12 @@ entities: rot: -1.5707963267948966 rad pos: -12.5,15.5 parent: 1 + - uid: 708 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,13.5 + parent: 1 - uid: 837 components: - type: Transform @@ -6511,6 +6712,12 @@ entities: rot: 1.5707963267948966 rad pos: -18.5,-3.5 parent: 1 + - uid: 892 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,-11.5 + parent: 1 - uid: 897 components: - type: Transform @@ -6534,11 +6741,6 @@ entities: - type: Transform pos: -14.5,4.5 parent: 1 - - uid: 970 - components: - - type: Transform - pos: -18.5,8.5 - parent: 1 - uid: 971 components: - type: Transform @@ -6624,18 +6826,6 @@ entities: - type: Transform pos: -9.5,14.5 parent: 1 - - uid: 1632 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -32.5,-13.5 - parent: 1 - - uid: 1634 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -32.5,-10.5 - parent: 1 - uid: 1635 components: - type: Transform @@ -6757,21 +6947,11 @@ entities: fixtures: {} - proto: CEWallStone entities: - - uid: 2 - components: - - type: Transform - pos: -19.5,17.5 - parent: 1 - uid: 3 components: - type: Transform pos: -5.5,-16.5 parent: 1 - - uid: 5 - components: - - type: Transform - pos: -29.5,-17.5 - parent: 1 - uid: 6 components: - type: Transform @@ -6792,16 +6972,6 @@ entities: - type: Transform pos: 12.5,-5.5 parent: 1 - - uid: 20 - components: - - type: Transform - pos: -11.5,18.5 - parent: 1 - - uid: 27 - components: - - type: Transform - pos: -21.5,17.5 - parent: 1 - uid: 33 components: - type: Transform @@ -6829,11 +6999,6 @@ entities: - type: Transform pos: -25.5,-22.5 parent: 1 - - uid: 44 - components: - - type: Transform - pos: -22.5,17.5 - parent: 1 - uid: 45 components: - type: Transform @@ -6847,7 +7012,7 @@ entities: - uid: 52 components: - type: Transform - pos: -31.5,-16.5 + pos: -18.5,16.5 parent: 1 - uid: 60 components: @@ -6924,26 +7089,11 @@ entities: - type: Transform pos: 14.5,3.5 parent: 1 - - uid: 99 - components: - - type: Transform - pos: -8.5,19.5 - parent: 1 - - uid: 107 - components: - - type: Transform - pos: -20.5,17.5 - parent: 1 - uid: 111 components: - type: Transform pos: 13.5,3.5 parent: 1 - - uid: 115 - components: - - type: Transform - pos: -10.5,19.5 - parent: 1 - uid: 120 components: - type: Transform @@ -7154,11 +7304,6 @@ entities: - type: Transform pos: 9.5,-6.5 parent: 1 - - uid: 211 - components: - - type: Transform - pos: -20.5,15.5 - parent: 1 - uid: 212 components: - type: Transform @@ -7233,11 +7378,6 @@ entities: - type: Transform pos: 9.5,-2.5 parent: 1 - - uid: 231 - components: - - type: Transform - pos: -22.5,15.5 - parent: 1 - uid: 233 components: - type: Transform @@ -7263,11 +7403,6 @@ entities: - type: Transform pos: 16.5,1.5 parent: 1 - - uid: 238 - components: - - type: Transform - pos: -23.5,15.5 - parent: 1 - uid: 242 components: - type: Transform @@ -7378,16 +7513,6 @@ entities: - type: Transform pos: -23.5,-8.5 parent: 1 - - uid: 283 - components: - - type: Transform - pos: -21.5,16.5 - parent: 1 - - uid: 285 - components: - - type: Transform - pos: -19.5,15.5 - parent: 1 - uid: 287 components: - type: Transform @@ -7450,26 +7575,11 @@ entities: parent: 1 - type: CEZPhysics localPosition: 1 - - uid: 309 - components: - - type: Transform - pos: -24.5,15.5 - parent: 1 - uid: 311 components: - type: Transform pos: -25.5,-8.5 parent: 1 - - uid: 312 - components: - - type: Transform - pos: -19.5,16.5 - parent: 1 - - uid: 313 - components: - - type: Transform - pos: -23.5,16.5 - parent: 1 - uid: 315 components: - type: Transform @@ -7704,41 +7814,6 @@ entities: - type: Transform pos: -3.5,-4.5 parent: 1 - - uid: 406 - components: - - type: Transform - pos: -22.5,16.5 - parent: 1 - - uid: 414 - components: - - type: Transform - pos: -11.5,19.5 - parent: 1 - - uid: 418 - components: - - type: Transform - pos: -21.5,15.5 - parent: 1 - - uid: 432 - components: - - type: Transform - pos: -24.5,8.5 - parent: 1 - - uid: 446 - components: - - type: Transform - pos: -20.5,16.5 - parent: 1 - - uid: 448 - components: - - type: Transform - pos: -23.5,17.5 - parent: 1 - - uid: 478 - components: - - type: Transform - pos: -9.5,19.5 - parent: 1 - uid: 533 components: - type: Transform @@ -7769,6 +7844,11 @@ entities: - type: Transform pos: -2.5,-7.5 parent: 1 + - uid: 617 + components: + - type: Transform + pos: -20.5,15.5 + parent: 1 - uid: 624 components: - type: Transform @@ -7788,130 +7868,60 @@ entities: parent: 1 - type: CEZPhysics localPosition: 1 - - uid: 666 - components: - - type: Transform - pos: -28.5,-14.5 - parent: 1 - - uid: 667 - components: - - type: Transform - pos: -28.5,-15.5 - parent: 1 - - uid: 668 - components: - - type: Transform - pos: -27.5,-14.5 - parent: 1 - - uid: 673 - components: - - type: Transform - pos: -32.5,-21.5 - parent: 1 - - type: CEZPhysics - localPosition: 1 - - uid: 700 - components: - - type: Transform - pos: -25.5,8.5 - parent: 1 - - uid: 701 - components: - - type: Transform - pos: -26.5,8.5 - parent: 1 - - uid: 702 - components: - - type: Transform - pos: -27.5,8.5 - parent: 1 - - uid: 703 - components: - - type: Transform - pos: -25.5,9.5 - parent: 1 - - uid: 704 - components: - - type: Transform - pos: -26.5,9.5 - parent: 1 - - uid: 706 - components: - - type: Transform - pos: -26.5,10.5 - parent: 1 - - uid: 707 - components: - - type: Transform - pos: -25.5,10.5 - parent: 1 - - uid: 708 - components: - - type: Transform - pos: -25.5,11.5 - parent: 1 - - uid: 709 - components: - - type: Transform - pos: -25.5,13.5 - parent: 1 - - uid: 710 - components: - - type: Transform - pos: -25.5,12.5 - parent: 1 - - uid: 711 + - uid: 659 components: - type: Transform - pos: -23.5,12.5 + pos: -19.5,15.5 parent: 1 - - uid: 712 + - uid: 660 components: - type: Transform - pos: -33.5,-21.5 + pos: -19.5,17.5 parent: 1 - - type: CEZPhysics - localPosition: 1 - - uid: 713 + - uid: 662 components: - type: Transform - pos: -23.5,13.5 + pos: -18.5,17.5 parent: 1 - - uid: 714 + - uid: 666 components: - type: Transform - pos: -23.5,14.5 + pos: -28.5,-14.5 parent: 1 - - uid: 717 + - uid: 667 components: - type: Transform - pos: -29.5,8.5 + pos: -28.5,-15.5 parent: 1 - - uid: 718 + - uid: 668 components: - type: Transform - pos: -29.5,9.5 + pos: -27.5,-14.5 parent: 1 - - uid: 719 + - uid: 673 components: - type: Transform - pos: -29.5,10.5 + pos: -32.5,-21.5 parent: 1 - - uid: 720 + - type: CEZPhysics + localPosition: 1 + - uid: 700 components: - type: Transform - pos: -28.5,11.5 + pos: -19.5,14.5 parent: 1 - - uid: 721 + - uid: 702 components: - type: Transform - pos: -28.5,12.5 + pos: -27.5,8.5 parent: 1 - - uid: 722 + - uid: 712 components: - type: Transform - pos: -28.5,10.5 + pos: -33.5,-21.5 parent: 1 + - type: CEZPhysics + localPosition: 1 - uid: 742 components: - type: Transform @@ -8032,6 +8042,21 @@ entities: - type: Transform pos: 22.5,-11.5 parent: 1 + - uid: 887 + components: + - type: Transform + pos: -19.5,16.5 + parent: 1 + - uid: 888 + components: + - type: Transform + pos: -28.5,7.5 + parent: 1 + - uid: 891 + components: + - type: Transform + pos: -29.5,10.5 + parent: 1 - uid: 894 components: - type: Transform @@ -8102,6 +8127,16 @@ entities: - type: Transform pos: 2.5,4.5 parent: 1 + - uid: 1081 + components: + - type: Transform + pos: -20.5,16.5 + parent: 1 + - uid: 1084 + components: + - type: Transform + pos: -18.5,15.5 + parent: 1 - uid: 1129 components: - type: Transform @@ -8356,6 +8391,11 @@ entities: - type: Transform pos: -29.5,-7.5 parent: 1 + - uid: 99 + components: + - type: Transform + pos: -17.5,9.5 + parent: 1 - uid: 100 components: - type: Transform @@ -8366,6 +8406,11 @@ entities: - type: Transform pos: -29.5,-9.5 parent: 1 + - uid: 107 + components: + - type: Transform + pos: -21.5,11.5 + parent: 1 - uid: 110 components: - type: Transform @@ -8376,6 +8421,11 @@ entities: - type: Transform pos: -16.5,-15.5 parent: 1 + - uid: 115 + components: + - type: Transform + pos: -15.5,9.5 + parent: 1 - uid: 117 components: - type: Transform @@ -8409,7 +8459,7 @@ entities: - uid: 153 components: - type: Transform - pos: -30.5,-11.5 + pos: -21.5,10.5 parent: 1 - uid: 154 components: @@ -8446,6 +8496,11 @@ entities: - type: Transform pos: -26.5,-2.5 parent: 1 + - uid: 238 + components: + - type: Transform + pos: -14.5,9.5 + parent: 1 - uid: 239 components: - type: Transform @@ -8516,21 +8571,11 @@ entities: - type: Transform pos: -7.5,-2.5 parent: 1 - - uid: 400 - components: - - type: Transform - pos: -14.5,13.5 - parent: 1 - uid: 401 components: - type: Transform pos: -17.5,-1.5 parent: 1 - - uid: 403 - components: - - type: Transform - pos: -14.5,10.5 - parent: 1 - uid: 405 components: - type: Transform @@ -8571,11 +8616,6 @@ entities: - type: Transform pos: -17.5,17.5 parent: 1 - - uid: 421 - components: - - type: Transform - pos: -14.5,14.5 - parent: 1 - uid: 422 components: - type: Transform @@ -8586,11 +8626,6 @@ entities: - type: Transform pos: -13.5,20.5 parent: 1 - - uid: 426 - components: - - type: Transform - pos: -20.5,11.5 - parent: 1 - uid: 428 components: - type: Transform @@ -8636,11 +8671,6 @@ entities: - type: Transform pos: -21.5,7.5 parent: 1 - - uid: 462 - components: - - type: Transform - pos: -11.5,16.5 - parent: 1 - uid: 464 components: - type: Transform @@ -8656,11 +8686,6 @@ entities: - type: Transform pos: -26.5,7.5 parent: 1 - - uid: 475 - components: - - type: Transform - pos: -20.5,9.5 - parent: 1 - uid: 476 components: - type: Transform @@ -8716,11 +8741,6 @@ entities: - type: Transform pos: -11.5,15.5 parent: 1 - - uid: 556 - components: - - type: Transform - pos: -20.5,10.5 - parent: 1 - uid: 561 components: - type: Transform @@ -8741,16 +8761,6 @@ entities: - type: Transform pos: -5.5,9.5 parent: 1 - - uid: 569 - components: - - type: Transform - pos: -20.5,12.5 - parent: 1 - - uid: 571 - components: - - type: Transform - pos: -14.5,9.5 - parent: 1 - uid: 572 components: - type: Transform @@ -8761,11 +8771,6 @@ entities: - type: Transform pos: -26.5,3.5 parent: 1 - - uid: 580 - components: - - type: Transform - pos: -22.5,9.5 - parent: 1 - uid: 583 components: - type: Transform @@ -8776,26 +8781,16 @@ entities: - type: Transform pos: -25.5,3.5 parent: 1 - - uid: 585 - components: - - type: Transform - pos: -14.5,12.5 - parent: 1 - uid: 586 components: - type: Transform - pos: -19.5,9.5 + pos: -14.5,8.5 parent: 1 - uid: 597 components: - type: Transform pos: -22.5,3.5 parent: 1 - - uid: 605 - components: - - type: Transform - pos: -18.5,9.5 - parent: 1 - uid: 613 components: - type: Transform @@ -8804,77 +8799,57 @@ entities: - uid: 614 components: - type: Transform - pos: -20.5,13.5 + pos: -30.5,-11.5 parent: 1 - uid: 616 components: - type: Transform pos: -23.5,3.5 parent: 1 - - uid: 617 - components: - - type: Transform - pos: -14.5,11.5 - parent: 1 - - uid: 618 - components: - - type: Transform - pos: -15.5,9.5 - parent: 1 - - uid: 626 - components: - - type: Transform - pos: -18.5,14.5 - parent: 1 - uid: 629 components: - type: Transform pos: -15.5,17.5 parent: 1 - - uid: 632 - components: - - type: Transform - pos: -22.5,14.5 - parent: 1 - - uid: 647 + - uid: 663 components: - type: Transform - pos: -22.5,13.5 + pos: -15.5,-12.5 parent: 1 - - uid: 658 + - uid: 664 components: - type: Transform - pos: -15.5,14.5 + pos: -36.5,-7.5 parent: 1 - - uid: 659 + - uid: 665 components: - type: Transform - pos: -21.5,14.5 + pos: -33.5,-7.5 parent: 1 - - uid: 660 + - uid: 706 components: - type: Transform - pos: -19.5,14.5 + pos: -14.5,13.5 parent: 1 - - uid: 662 + - uid: 707 components: - type: Transform - pos: -20.5,14.5 + pos: -26.5,12.5 parent: 1 - - uid: 663 + - uid: 713 components: - type: Transform - pos: -15.5,-12.5 + pos: -26.5,8.5 parent: 1 - - uid: 664 + - uid: 716 components: - type: Transform - pos: -36.5,-7.5 + pos: -26.5,9.5 parent: 1 - - uid: 665 + - uid: 722 components: - type: Transform - pos: -33.5,-7.5 + pos: -26.5,13.5 parent: 1 - uid: 810 components: @@ -9009,12 +8984,7 @@ entities: - uid: 878 components: - type: Transform - pos: -11.5,7.5 - parent: 1 - - uid: 892 - components: - - type: Transform - pos: -12.5,7.5 + pos: -23.5,13.5 parent: 1 - uid: 903 components: @@ -9181,6 +9151,21 @@ entities: - type: Transform pos: -9.5,15.5 parent: 1 + - uid: 1080 + components: + - type: Transform + pos: -21.5,12.5 + parent: 1 + - uid: 1082 + components: + - type: Transform + pos: -22.5,13.5 + parent: 1 + - uid: 1085 + components: + - type: Transform + pos: -21.5,13.5 + parent: 1 - uid: 1130 components: - type: Transform @@ -9366,11 +9351,6 @@ entities: - type: Transform pos: -40.5,-7.5 parent: 1 - - uid: 1506 - components: - - type: Transform - pos: -32.5,-11.5 - parent: 1 - uid: 1515 components: - type: Transform @@ -9381,11 +9361,6 @@ entities: - type: Transform pos: -33.5,-8.5 parent: 1 - - uid: 1517 - components: - - type: Transform - pos: -31.5,-15.5 - parent: 1 - uid: 1522 components: - type: Transform @@ -9411,11 +9386,6 @@ entities: - type: Transform pos: -33.5,-12.5 parent: 1 - - uid: 1684 - components: - - type: Transform - pos: -33.5,-13.5 - parent: 1 - uid: 1685 components: - type: Transform @@ -9644,8 +9614,28 @@ entities: rot: 1.5707963267948966 rad pos: -10.5,9.5 parent: 1 + - uid: 1087 + components: + - type: Transform + pos: -11.5,7.5 + parent: 1 + - uid: 1088 + components: + - type: Transform + pos: -12.5,7.5 + parent: 1 - proto: CEWindowStone entities: + - uid: 717 + components: + - type: Transform + pos: -26.5,10.5 + parent: 1 + - uid: 720 + components: + - type: Transform + pos: -25.5,13.5 + parent: 1 - uid: 824 components: - type: Transform @@ -9671,6 +9661,16 @@ entities: - type: Transform pos: -13.5,-3.5 parent: 1 + - uid: 1050 + components: + - type: Transform + pos: -26.5,11.5 + parent: 1 + - uid: 1086 + components: + - type: Transform + pos: -24.5,13.5 + parent: 1 - proto: CEWindowStonePurple entities: - uid: 7 @@ -9953,6 +9953,11 @@ entities: rot: -1.5707963267948966 rad pos: -9.5,-2.5 parent: 1 + - uid: 890 + components: + - type: Transform + pos: -28.5,6.5 + parent: 1 - proto: CEZLevelLadderWooden entities: - uid: 761 diff --git a/Resources/Maps/_CE/Shaar/Shaar0.yml b/Resources/Maps/_CE/Shaar/Shaar0.yml index 57afb35bf4a..1f1c6461e74 100644 --- a/Resources/Maps/_CE/Shaar/Shaar0.yml +++ b/Resources/Maps/_CE/Shaar/Shaar0.yml @@ -4,7 +4,7 @@ meta: engineVersion: 277.0.0 forkId: "" forkVersion: "" - time: 08/07/2026 11:30:14 + time: 08/09/2026 08:03:11 entityCount: 1757 maps: - 1 @@ -1502,7 +1502,7 @@ entities: parent: 1 - type: CollisionWake enabled: False -- proto: CECurtainsBlueOpened +- proto: CECurtainsBlue entities: - uid: 602 components: @@ -1526,7 +1526,7 @@ entities: rot: 3.141592653589793 rad pos: 18.5,-2.5 parent: 1 -- proto: CECurtainsRedOpened +- proto: CECurtainsRed entities: - uid: 90 components: @@ -3360,7 +3360,7 @@ entities: pos: 6.5,16.5 parent: 1 - type: Door - secondsUntilStateChange: -51387.805 + secondsUntilStateChange: -52278.484 state: Opening - uid: 619 components: diff --git a/Resources/Maps/_CE/Shaar/Shaar1.yml b/Resources/Maps/_CE/Shaar/Shaar1.yml index 2842b3158da..3e148871d3a 100644 --- a/Resources/Maps/_CE/Shaar/Shaar1.yml +++ b/Resources/Maps/_CE/Shaar/Shaar1.yml @@ -4,8 +4,8 @@ meta: engineVersion: 277.0.0 forkId: "" forkVersion: "" - time: 08/07/2026 11:30:15 - entityCount: 1491 + time: 08/09/2026 08:03:13 + entityCount: 1490 maps: - 1 grids: @@ -1095,7 +1095,7 @@ entities: rot: 3.141592653589793 rad pos: 33.47054,-7.565652 parent: 1 -- proto: CECurtainsBlueOpened +- proto: CECurtainsBlue entities: - uid: 297 components: @@ -1202,26 +1202,6 @@ entities: pos: 15.5,0.5 parent: 1 - proto: CECurtainsRed - entities: - - uid: 148 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -1.5,4.5 - parent: 1 - - uid: 233 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -1.5,2.5 - parent: 1 - - uid: 240 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -1.5,3.5 - parent: 1 -- proto: CECurtainsRedOpened entities: - uid: 110 components: @@ -1293,6 +1273,24 @@ entities: - type: Transform pos: -14.5,3.5 parent: 1 + - uid: 148 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,4.5 + parent: 1 + - uid: 233 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,2.5 + parent: 1 + - uid: 240 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,3.5 + parent: 1 - uid: 1033 components: - type: Transform @@ -1333,7 +1331,7 @@ entities: rot: 3.141592653589793 rad pos: -37.5,-16.5 parent: 1 -- proto: CECurtainsWhiteOpened +- proto: CECurtainsWhite entities: - uid: 1160 components: diff --git a/Resources/Maps/_CE/Shaar/Shaar2.yml b/Resources/Maps/_CE/Shaar/Shaar2.yml index 90c3e9d4f81..2255c898e15 100644 --- a/Resources/Maps/_CE/Shaar/Shaar2.yml +++ b/Resources/Maps/_CE/Shaar/Shaar2.yml @@ -4,7 +4,7 @@ meta: engineVersion: 277.0.0 forkId: "" forkVersion: "" - time: 08/07/2026 11:30:16 + time: 08/09/2026 08:03:13 entityCount: 646 maps: - 1 @@ -526,7 +526,7 @@ entities: rot: 3.141592653589793 rad pos: 20.671946,-5.7441397 parent: 1 -- proto: CECurtainsWhiteOpened +- proto: CECurtainsWhite entities: - uid: 617 components: diff --git a/Resources/Maps/_CE/Shaar/Shaar3.yml b/Resources/Maps/_CE/Shaar/Shaar3.yml index 8c8e0c85735..7382aa065fe 100644 --- a/Resources/Maps/_CE/Shaar/Shaar3.yml +++ b/Resources/Maps/_CE/Shaar/Shaar3.yml @@ -4,7 +4,7 @@ meta: engineVersion: 277.0.0 forkId: "" forkVersion: "" - time: 08/07/2026 11:30:16 + time: 08/09/2026 08:03:13 entityCount: 118 maps: - 1 diff --git a/Resources/Prototypes/Entities/Mobs/Player/observer.yml b/Resources/Prototypes/Entities/Mobs/Player/observer.yml index 1ad9b2cd4f4..340357287f5 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/observer.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/observer.yml @@ -32,6 +32,8 @@ autoStep: false velocityGravity: false - type: CEZLevelGhostMover + - type: CEPermanentMagicVision + # shared parent between aghosts, replay spectators and normal observers - type: entity diff --git a/Resources/Prototypes/_CE/Alerts/hunger.yml b/Resources/Prototypes/_CE/Alerts/hunger.yml index 1b04bed382f..f65398b8ac0 100644 --- a/Resources/Prototypes/_CE/Alerts/hunger.yml +++ b/Resources/Prototypes/_CE/Alerts/hunger.yml @@ -1,35 +1,3 @@ -- type: alert - id: CEFed - icons: - - sprite: /Textures/_CE/Interface/Alerts/hunger.rsi - state: fed - name: ce-alerts-fed-name - description: ce-alerts-fed-desc - -- type: alert - id: CEWellFed - icons: - - sprite: /Textures/_CE/Interface/Alerts/hunger.rsi - state: wellfed - name: ce-alerts-well-fed-name - description: ce-alerts-well-fed-desc - -- type: alert - id: CEOverFed - icons: - - sprite: /Textures/_CE/Interface/Alerts/hunger.rsi - state: overfed - name: ce-alerts-overfed-name - description: ce-alerts-overfed-desc - -- type: alert - id: CEDeadFed - icons: - - sprite: /Textures/_CE/Interface/Alerts/hunger.rsi - state: deadfed - name: ce-alerts-deadfed-name - description: ce-alerts-deadfed-desc - - type: alert id: CEGoodFoodAftertaste icons: diff --git a/Resources/Prototypes/_CE/Alerts/thirst.yml b/Resources/Prototypes/_CE/Alerts/thirst.yml deleted file mode 100644 index 2f08267e77b..00000000000 --- a/Resources/Prototypes/_CE/Alerts/thirst.yml +++ /dev/null @@ -1,31 +0,0 @@ -- type: alert - id: CEHydrated - icons: - - sprite: /Textures/_CE/Interface/Alerts/thirst.rsi - state: fed - name: ce-alerts-hydrated-name - description: ce-alerts-hydrated-desc - -- type: alert - id: CEWellHydrated - icons: - - sprite: /Textures/_CE/Interface/Alerts/thirst.rsi - state: wellfed - name: ce-alerts-well-hydrated-name - description: ce-alerts-well-hydrated-desc - -- type: alert - id: CEOverHydrated - icons: - - sprite: /Textures/_CE/Interface/Alerts/thirst.rsi - state: overfed - name: ce-alerts-overhydrated-name - description: ce-alerts-overhydrated-desc - -- type: alert - id: CEDeadHydrated - icons: - - sprite: /Textures/_CE/Interface/Alerts/thirst.rsi - state: deadfed - name: ce-alerts-deadhydrated-name - description: ce-alerts-deadhydrated-desc diff --git a/Resources/Prototypes/_CE/Body/species_base.yml b/Resources/Prototypes/_CE/Body/species_base.yml index 544ab638e3c..6db4372f125 100644 --- a/Resources/Prototypes/_CE/Body/species_base.yml +++ b/Resources/Prototypes/_CE/Body/species_base.yml @@ -212,10 +212,8 @@ weightlessModifier: 0.6 - type: CEBlinker - type: CESkillStorage - - type: CESatiations - satiations: - Hunger: 10 - Thirst: 10 + - type: Hunger + - type: Thirst - type: CEAnimationController - type: CEIdleAnimation animation: diff --git a/Resources/Prototypes/_CE/Entities/Objects/Bureaucracy/pen.yml b/Resources/Prototypes/_CE/Entities/Objects/Bureaucracy/pen.yml index 1ea4e53b018..fe34cacb895 100644 --- a/Resources/Prototypes/_CE/Entities/Objects/Bureaucracy/pen.yml +++ b/Resources/Prototypes/_CE/Entities/Objects/Bureaucracy/pen.yml @@ -26,5 +26,6 @@ Steel: 0 #Parenting from vanilla moment - type: CEMagicEssenceStructure essences: + Flight: { min: 2, max: 4 } Order: { min: 1, max: 3 } - Metal: { min: 0, max: 1 } + Air: { min: 0, max: 1 } diff --git a/Resources/Prototypes/_CE/Entities/Objects/Decoration/candles.yml b/Resources/Prototypes/_CE/Entities/Objects/Decoration/candles.yml index 6087d83601c..03a5adf6e3e 100644 --- a/Resources/Prototypes/_CE/Entities/Objects/Decoration/candles.yml +++ b/Resources/Prototypes/_CE/Entities/Objects/Decoration/candles.yml @@ -39,8 +39,6 @@ essences: Fire: { min: 1, max: 3 } Light: { min: 1, max: 3 } - - type: CEInfusionAltarStabilizer - stabilizingPower: 1 - type: entity id: CECandle diff --git a/Resources/Prototypes/_CE/Entities/Objects/Specific/Thaumaturgy/research_project.yml b/Resources/Prototypes/_CE/Entities/Objects/Specific/Thaumaturgy/research_project.yml index d7ebf3df458..54e6e2f1b91 100644 --- a/Resources/Prototypes/_CE/Entities/Objects/Specific/Thaumaturgy/research_project.yml +++ b/Resources/Prototypes/_CE/Entities/Objects/Specific/Thaumaturgy/research_project.yml @@ -35,7 +35,7 @@ - type: Item size: Tiny shape: - - 0, 0, 0, 2 + - 0, 0, 1, 0 - type: CEDiscoveryProject - type: Tag tags: diff --git a/Resources/Prototypes/_CE/Entities/StatusEffects/satiations.yml b/Resources/Prototypes/_CE/Entities/StatusEffects/satiations.yml deleted file mode 100644 index 68a00178971..00000000000 --- a/Resources/Prototypes/_CE/Entities/StatusEffects/satiations.yml +++ /dev/null @@ -1,151 +0,0 @@ - -- type: entity - parent: StatusEffectBase - id: CEStatusEffectFed - name: fed - components: - - type: StatusEffectAlert - alert: CEFed - - type: CEStatusEffectApplyEntityEffect - effects: - - !type:Damage - ignoreResistances: true - interruptDoAfters: false - colorFlash: false - damage: - types: - Blunt: -0.1 - Slash: -0.1 - Piercing: -0.1 - Heat: -0.1 - -- type: entity - parent: StatusEffectBase - id: CEStatusEffectWellFed - name: well-fed - components: - - type: StatusEffectAlert - alert: CEWellFed - - type: CESpeedModifyStatusEffect - walk: 0.8 - sprint: 0.7 - - type: CEStatusEffectApplyEntityEffect - effects: - - !type:Damage - ignoreResistances: true - interruptDoAfters: false - colorFlash: false - damage: - types: - Blunt: -0.2 - Slash: -0.2 - Piercing: -0.2 - Heat: -0.2 - -- type: entity - parent: StatusEffectBase - id: CEStatusEffectOverfed - name: overfed - components: - - type: StatusEffectAlert - alert: CEOverFed - - type: CESpeedModifyStatusEffect - walk: 0.6 - sprint: 0.5 - - type: CEStatusEffectApplyEntityEffect - effects: - - !type:Damage - ignoreResistances: true - interruptDoAfters: false - colorFlash: false - damage: - types: - Heat: -0.1 - Blunt: 0.5 - -- type: entity - parent: StatusEffectBase - id: CEStatusEffectOverfedInstantDeath - name: overfed - components: - - type: StatusEffectAlert - alert: CEDeadFed - - type: CESpeedModifyStatusEffect - walk: 0.3 - sprint: 0.2 - - type: CEStatusEffectApplyEntityEffect - effects: - - !type:Damage - ignoreResistances: true - interruptDoAfters: false - colorFlash: false - damage: - types: - Blunt: 60 - -# Thirst - -- type: entity - parent: StatusEffectBase - id: CEStatusEffectHydrated - name: hydrated - components: - - type: StatusEffectAlert - alert: CEHydrated - - type: StaminaModifierStatusEffect - modifier: 1.2 - -- type: entity - parent: StatusEffectBase - id: CEStatusEffectWellHydrated - name: well-hydrated - components: - - type: StatusEffectAlert - alert: CEWellHydrated - - type: CESpeedModifyStatusEffect - walk: 0.8 - sprint: 0.7 - - type: StaminaModifierStatusEffect - modifier: 1.4 - -- type: entity - parent: StatusEffectBase - id: CEStatusEffectOverhydrated - name: overhydrated - components: - - type: StatusEffectAlert - alert: CEOverHydrated - - type: CESpeedModifyStatusEffect - walk: 0.6 - sprint: 0.5 - - type: StaminaModifierStatusEffect - modifier: 1.4 - - type: CEStatusEffectApplyEntityEffect - effects: - - !type:Damage - ignoreResistances: true - interruptDoAfters: false - colorFlash: false - damage: - types: - Blunt: 0.5 - -- type: entity - parent: StatusEffectBase - id: CEStatusEffectOverhydratedInstantCollapse - name: overhydrated - components: - - type: StatusEffectAlert - alert: CEDeadHydrated - - type: CESpeedModifyStatusEffect - walk: 0.3 - sprint: 0.2 - - type: CEStatusEffectApplyEntityEffect - effects: - - !type:Damage - ignoreResistances: true - interruptDoAfters: false - colorFlash: false - damage: - types: - Blunt: 60 diff --git a/Resources/Prototypes/_CE/Entities/Structures/Specific/Thaumaturgy/node.yml b/Resources/Prototypes/_CE/Entities/Structures/Specific/Thaumaturgy/node.yml index d141ba9a6b1..0e71e7fa094 100644 --- a/Resources/Prototypes/_CE/Entities/Structures/Specific/Thaumaturgy/node.yml +++ b/Resources/Prototypes/_CE/Entities/Structures/Specific/Thaumaturgy/node.yml @@ -2,7 +2,7 @@ id: CEMagicEssenceNode categories: [ ForkFiltered ] name: magic essence node - description: TODO + description: A cluster of magical essence that briefly took shape in physical reality. components: - type: CEMagicEssenceNode - type: Solution diff --git a/Resources/Prototypes/_CE/GameRules/events.yml b/Resources/Prototypes/_CE/GameRules/events.yml index c64dc325eb3..9a671546d9f 100644 --- a/Resources/Prototypes/_CE/GameRules/events.yml +++ b/Resources/Prototypes/_CE/GameRules/events.yml @@ -27,13 +27,13 @@ weight: 5 duration: 1 minimumPlayers: 5 - - type: CEEntityReplacementRule + - type: CEPipeBreakageRule replacementMap: CEPipeBrassMedium: CEPipeBrassMediumBroken CEPipeBrassBig: CEPipeBrassBigBroken - range: - min: 3 - max: 10 - replaceVfx: CEOverchargeBrightVFX - replaceSound: + centerPrototype: CEPipeBrassBig + radius: 5 + breakChance: 0.8 + centerVfx: CEShockWaveStrongVFX + breakSound: collection: MetalBreak diff --git a/Resources/Prototypes/_CE/Maps/shaar.yml b/Resources/Prototypes/_CE/Maps/shaar.yml index 4d480041ccf..4a31ec11f5d 100644 --- a/Resources/Prototypes/_CE/Maps/shaar.yml +++ b/Resources/Prototypes/_CE/Maps/shaar.yml @@ -17,14 +17,14 @@ CEGuard: [ 4, 4 ] #Engineering (4) CEBrigadier: [ 1, 1 ] - CETechnician: [ 3, 3 ] + CETechnician: [ 3, 4 ] #Tavern (4) CETavernmaster: [ 1, 1 ] CEChef: [ 3, 3 ] #Academy CEAcademyRector: [ 1, 1 ] CEAcademyProfessor: [ 2, 2 ] - CEAcademyStudent: [ 2, 2 ] + CEAcademyStudent: [ 2, 3 ] #Citizens CEBard: [ 2, 2 ] CETownfolk: [ -1, -1 ] diff --git a/Resources/Prototypes/_CE/Reagents/drink.yml b/Resources/Prototypes/_CE/Reagents/drink.yml index 3cc060a0d41..414bc35045c 100644 --- a/Resources/Prototypes/_CE/Reagents/drink.yml +++ b/Resources/Prototypes/_CE/Reagents/drink.yml @@ -12,6 +12,5 @@ metabolisms: Digestion: effects: - - !type:CESatiate - satiationType: Thirst - amount: 0.5 + - !type:SatiateThirst + factor: 4 diff --git a/Resources/Prototypes/_CE/Reagents/food.yml b/Resources/Prototypes/_CE/Reagents/food.yml index 0b47e762c2e..b4ac50f94ef 100644 --- a/Resources/Prototypes/_CE/Reagents/food.yml +++ b/Resources/Prototypes/_CE/Reagents/food.yml @@ -9,11 +9,5 @@ metabolisms: Metabolites: effects: - - !type:CESatiate - satiationType: Hunger - amount: 0.5 - conditions: - - !type:MetabolizerTypeCondition - type: [ CEVampire ] - inverted: true + - !type:SatiateHunger pricePerUnit: 0.2 diff --git a/Resources/Prototypes/_CE/Recipes/Workbench/melting_furnace.yml b/Resources/Prototypes/_CE/Recipes/Workbench/melting_furnace.yml index 87745bb56f4..6e288c217f4 100644 --- a/Resources/Prototypes/_CE/Recipes/Workbench/melting_furnace.yml +++ b/Resources/Prototypes/_CE/Recipes/Workbench/melting_furnace.yml @@ -99,3 +99,17 @@ count: 1 result: CEBrassRod1 resultCount: 5 + +#MARK: Ash + +- type: CERecipe + id: CEAsh1 + parent: CEBaseMeltingFurnaceRecipe + category: Materials + craftTime: 1.5 + requirements: + - !type:MaterialResource + material: CEWood + count: 2 + result: CEAsh1 + resultCount: 1 diff --git a/Resources/Prototypes/_CE/Roadmap/entries.yml b/Resources/Prototypes/_CE/Roadmap/entries.yml index 189f12988cc..efafc609f3d 100644 --- a/Resources/Prototypes/_CE/Roadmap/entries.yml +++ b/Resources/Prototypes/_CE/Roadmap/entries.yml @@ -2,13 +2,6 @@ # Backlog -- type: roadmapItem - id: Automation - name: ce-roadmap-engineering-automation-name - desc: ce-roadmap-engineering-automation-desc - category: Engineering - status: Backlog - - type: roadmapItem id: PersonalRealEstate name: ce-roadmap-general-personal-real-estate-name @@ -72,13 +65,6 @@ category: Medical status: Backlog -- type: roadmapItem - id: MagicVision - name: ce-roadmap-guard-magic-vision-name - desc: ce-roadmap-guard-magic-vision-desc - category: Guard - status: Backlog - - type: roadmapItem id: Expeditions name: ce-roadmap-adventures-expeditions-name diff --git a/Resources/Prototypes/_CE/Roles/Jobs/Academy/student.yml b/Resources/Prototypes/_CE/Roles/Jobs/Academy/student.yml index 9325ec80ffc..06b8712302c 100644 --- a/Resources/Prototypes/_CE/Roles/Jobs/Academy/student.yml +++ b/Resources/Prototypes/_CE/Roles/Jobs/Academy/student.yml @@ -74,4 +74,5 @@ - type: StorageFill contents: - id: CEKeyAcademyHall + - id: CEKeyAcademyTechnical - id: CEKeyAcademyLab diff --git a/Resources/Prototypes/_CE/Satiations/types.yml b/Resources/Prototypes/_CE/Satiations/types.yml deleted file mode 100644 index ac328525fa4..00000000000 --- a/Resources/Prototypes/_CE/Satiations/types.yml +++ /dev/null @@ -1,23 +0,0 @@ -- type: satiationType - id: Hunger - min: 0 - max: 100 - decayRate: 0.0347 # ~29 second for 1 point, 24 minutes (1 ingame day) from 50 to 0 - statusEffectsThresholds: - 0: null - 5: CEStatusEffectFed - 50: CEStatusEffectWellFed - 75: CEStatusEffectOverfed - 95: CEStatusEffectOverfedInstantDeath - -- type: satiationType - id: Thirst - min: 0 - max: 100 - decayRate: 0.0347 # ~29 second for 1 point, 24 minutes (1 ingame day) from 50 to 0 - statusEffectsThresholds: - 0: null - 5: CEStatusEffectHydrated - 50: CEStatusEffectWellHydrated - 75: CEStatusEffectOverhydrated - 95: CEStatusEffectOverhydratedInstantCollapse diff --git a/Resources/Prototypes/_CE/Shaders/shaders.yml b/Resources/Prototypes/_CE/Shaders/shaders.yml index 1231b135a39..864afbe6db6 100644 --- a/Resources/Prototypes/_CE/Shaders/shaders.yml +++ b/Resources/Prototypes/_CE/Shaders/shaders.yml @@ -28,8 +28,3 @@ id: CEShockWave kind: source path: "/Textures/_CE/Shaders/shock_wave.swsl" - -- type: shader - id: CEMagicVision - kind: source - path: "/Textures/_CE/Shaders/magic_vision.swsl" diff --git a/Resources/ServerInfo/_CE/Guidebook_EN/Thaumaturgy/InfusionAltar/InfusionAltar.xml b/Resources/ServerInfo/_CE/Guidebook_EN/Thaumaturgy/InfusionAltar/InfusionAltar.xml index 36771eb6a06..955e18d3aab 100644 --- a/Resources/ServerInfo/_CE/Guidebook_EN/Thaumaturgy/InfusionAltar/InfusionAltar.xml +++ b/Resources/ServerInfo/_CE/Guidebook_EN/Thaumaturgy/InfusionAltar/InfusionAltar.xml @@ -25,7 +25,6 @@ You can examine the altar while wearing thaumaturgic goggles to see the availabl - Place a catalyst item on the central altar. - Place the required items on the surrounding pedestals. -- Arrange candles and other stabilizers symmetrically around the altar to reduce chaos. - Spray the required essence around the altar. - Power the altar and all pedestals from the grid using pipes. @@ -42,15 +41,6 @@ If that happens, you need to quickly restore the ritual's conditions, or cancel An unpowered altar gradually loses chaos, but this takes some time, during which negative effects can still occur with a decreasing chance. -## Stabilizers -Candles and candelabras placed on the floor around the altar dampen chaos growth - but only if arranged symmetrically, in pairs on opposite sides of the altar. -An unpaired stabilizer, on the other hand, slightly raises chaos. - - - - - - ## Gaining knowledge Whatever you create with the infusion altar counts as a scientific interest. You can study the result with a thaumaturgic magnifying glass to gain knowledge. diff --git a/Resources/Textures/_CE/Interface/Alerts/hunger.rsi/deadfed.png b/Resources/Textures/_CE/Interface/Alerts/hunger.rsi/deadfed.png deleted file mode 100644 index 3cdeb16a810..00000000000 Binary files a/Resources/Textures/_CE/Interface/Alerts/hunger.rsi/deadfed.png and /dev/null differ diff --git a/Resources/Textures/_CE/Interface/Alerts/hunger.rsi/fed.png b/Resources/Textures/_CE/Interface/Alerts/hunger.rsi/fed.png deleted file mode 100644 index 7973116496f..00000000000 Binary files a/Resources/Textures/_CE/Interface/Alerts/hunger.rsi/fed.png and /dev/null differ diff --git a/Resources/Textures/_CE/Interface/Alerts/hunger.rsi/meta.json b/Resources/Textures/_CE/Interface/Alerts/hunger.rsi/meta.json index 724a7ca296d..103391b38fd 100644 --- a/Resources/Textures/_CE/Interface/Alerts/hunger.rsi/meta.json +++ b/Resources/Textures/_CE/Interface/Alerts/hunger.rsi/meta.json @@ -7,26 +7,8 @@ "y": 32 }, "states": [ - { - "name": "fed" - }, - { - "name": "wellfed" - }, - { - "name": "overfed", - "delays": [ - [ - 0.2, - 0.2 - ] - ] - }, - { - "name": "deadfed" - }, { "name": "love" } ] -} +} \ No newline at end of file diff --git a/Resources/Textures/_CE/Interface/Alerts/hunger.rsi/overfed.png b/Resources/Textures/_CE/Interface/Alerts/hunger.rsi/overfed.png deleted file mode 100644 index c00682c143d..00000000000 Binary files a/Resources/Textures/_CE/Interface/Alerts/hunger.rsi/overfed.png and /dev/null differ diff --git a/Resources/Textures/_CE/Interface/Alerts/hunger.rsi/wellfed.png b/Resources/Textures/_CE/Interface/Alerts/hunger.rsi/wellfed.png deleted file mode 100644 index 3afe7a142d6..00000000000 Binary files a/Resources/Textures/_CE/Interface/Alerts/hunger.rsi/wellfed.png and /dev/null differ diff --git a/Resources/Textures/_CE/Interface/Alerts/thirst.rsi/deadfed.png b/Resources/Textures/_CE/Interface/Alerts/thirst.rsi/deadfed.png deleted file mode 100644 index 2374246aecb..00000000000 Binary files a/Resources/Textures/_CE/Interface/Alerts/thirst.rsi/deadfed.png and /dev/null differ diff --git a/Resources/Textures/_CE/Interface/Alerts/thirst.rsi/fed.png b/Resources/Textures/_CE/Interface/Alerts/thirst.rsi/fed.png deleted file mode 100644 index 1e321b349a8..00000000000 Binary files a/Resources/Textures/_CE/Interface/Alerts/thirst.rsi/fed.png and /dev/null differ diff --git a/Resources/Textures/_CE/Interface/Alerts/thirst.rsi/meta.json b/Resources/Textures/_CE/Interface/Alerts/thirst.rsi/meta.json deleted file mode 100644 index 180f8f35f48..00000000000 --- a/Resources/Textures/_CE/Interface/Alerts/thirst.rsi/meta.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "version": 1, - "license": "CC-BY-SA-4.0", - "copyright": "Created by TheShuEd", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "fed" - }, - { - "name": "wellfed" - }, - { - "name": "overfed", - "delays": [ - [ - 0.2, - 0.2 - ] - ] - }, - { - "name": "deadfed" - } - ] -} diff --git a/Resources/Textures/_CE/Interface/Alerts/thirst.rsi/overfed.png b/Resources/Textures/_CE/Interface/Alerts/thirst.rsi/overfed.png deleted file mode 100644 index 6a9acf3c467..00000000000 Binary files a/Resources/Textures/_CE/Interface/Alerts/thirst.rsi/overfed.png and /dev/null differ diff --git a/Resources/Textures/_CE/Interface/Alerts/thirst.rsi/wellfed.png b/Resources/Textures/_CE/Interface/Alerts/thirst.rsi/wellfed.png deleted file mode 100644 index 4594d1e37b0..00000000000 Binary files a/Resources/Textures/_CE/Interface/Alerts/thirst.rsi/wellfed.png and /dev/null differ diff --git a/Resources/Textures/_CE/Shaders/magic_vision.swsl b/Resources/Textures/_CE/Shaders/magic_vision.swsl deleted file mode 100644 index 6d04b4e057a..00000000000 --- a/Resources/Textures/_CE/Shaders/magic_vision.swsl +++ /dev/null @@ -1,43 +0,0 @@ -uniform sampler2D SCREEN_TEXTURE; - -const highp float BlueHue = 210.0; -const highp float HueRange = 80.0; -const highp float MinSaturation = 0.1; - -// https://en.wikipedia.org/wiki/HSL_and_HSV#From_RGB -highp vec3 rgb2hsv(highp vec3 c) { - highp float xMax = max(c.r, max(c.g, c.b)); - highp float xMin = min(c.r, min(c.g, c.b)); - highp float delta = xMax - xMin; - - highp float hue = 0.0; - if (delta > 0.0) { - if (xMax == c.r) { - hue = mod((c.g - c.b) / delta, 6.0); - } else if (xMax == c.g) { - hue = (c.b - c.r) / delta + 2.0; - } else { - hue = (c.r - c.g) / delta + 4.0; - } - hue *= 60.0; - if (hue < 0.0) hue += 360.0; - } - - highp float sat = (xMax == 0.0) ? 0.0 : delta / xMax; - return vec3(hue, sat, xMax); -} - -void fragment() { - highp vec4 color = zTextureSpec(SCREEN_TEXTURE, UV); - highp vec3 gray = vec3(zGrayscale(color.rgb)); - highp vec3 hsv = rgb2hsv(color.rgb); - - bool is_blue = hsv.x > (BlueHue - HueRange) && hsv.x < (BlueHue + HueRange); - bool saturated_enough = hsv.y > MinSaturation; - - if (is_blue && saturated_enough) { - COLOR = color; - } else { - COLOR = vec4(gray, color.a); - } -}