diff --git a/Content.Server/Administration/Systems/AdminTestArenaSystem.cs b/Content.Server/Administration/Systems/AdminTestArenaSystem.cs index 12bf0eba648..4aa989da274 100644 --- a/Content.Server/Administration/Systems/AdminTestArenaSystem.cs +++ b/Content.Server/Administration/Systems/AdminTestArenaSystem.cs @@ -1,3 +1,4 @@ +using Robust.Shared.EntitySerialization; using Robust.Shared.EntitySerialization.Systems; using Robust.Shared.Network; using Robust.Shared.Player; @@ -33,7 +34,12 @@ public sealed class AdminTestArenaSystem : EntitySystem } var path = new ResPath(ArenaMapPath); - if (!_loader.TryLoadMap(path, out var map, out var grids)) + if (!_loader.TryLoadMap(path, out var map, out var grids, new DeserializationOptions + { + InitializeMaps = true, + PauseMaps = false, + StoreYamlUids = true + })) throw new Exception($"Failed to load admin arena"); ArenaMap[admin.UserId] = map.Value.Owner; diff --git a/Content.Server/Backmen/Chapel/SacrificialAltarSystem.cs b/Content.Server/Backmen/Chapel/SacrificialAltarSystem.cs index c15bb67adc6..67e1f5bf534 100644 --- a/Content.Server/Backmen/Chapel/SacrificialAltarSystem.cs +++ b/Content.Server/Backmen/Chapel/SacrificialAltarSystem.cs @@ -20,6 +20,7 @@ using Content.Shared.Backmen.Chapel.Components; using Content.Shared.Backmen.Psionics.Glimmer; using Content.Shared.Backmen.Soul; +using Content.Shared.Ghost; using Content.Shared.Hands.Components; using Content.Shared.Players; using Robust.Server.Audio; @@ -53,61 +54,57 @@ public override void Initialize() } + [ValidatePrototypeId] + private const string MaterialBluespace = "MaterialBluespace1"; private void OnDoAfter(EntityUid uid, SacrificialAltarComponent component, SacrificeDoAfterEvent args) { _audioSystem.Stop(component.SacrificeStingStream,component.SacrificeStingStream); component.DoAfter = null; - if (args.Cancelled || args.Handled || args.Args.Target == null) + if (args.Cancelled || args.Handled || args.Args.Target is not { } target) return; - // note: we checked this twice in case they could have gone SSD in the doafter time. - if (!TryComp(args.Args.Target.Value, out var actor)) + if (!_mindSystem.TryGetMind(target, out var mindId, out var mind)) return; - if (!_mindSystem.TryGetMind(args.Args.Target.Value, out var mindId, out var mind)) - return; - - _adminLogger.Add(LogType.Action, LogImpact.Extreme, $"{ToPrettyString(args.Args.User):player} sacrificed {ToPrettyString(args.Args.Target.Value):target} on {ToPrettyString(uid):altar}"); + _adminLogger.Add(LogType.Action, LogImpact.Extreme, $"{ToPrettyString(args.Args.User):player} sacrificed {ToPrettyString(target):target} on {ToPrettyString(uid):altar}"); - if (!_prototypeManager.TryIndex(component.RewardPool, out var pool)) - return; + var pool = _prototypeManager.Index(component.RewardPool); var chance = HasComp(args.Args.User) ? component.RewardPoolChanceBibleUser : component.RewardPoolChance; + var pos = Transform(uid).Coordinates; + if (_robustRandom.Prob(chance)) - Spawn(pool.Pick(), Transform(uid).Coordinates); + Spawn(pool.Pick(), pos); - int i = _robustRandom.Next(component.BluespaceRewardMin, component.BlueSpaceRewardMax); + var i = _robustRandom.Next(component.BluespaceRewardMin, component.BlueSpaceRewardMax); while (i > 0) { - Spawn("MaterialBluespace1", Transform(uid).Coordinates); + Spawn(MaterialBluespace, pos); i--; } int reduction = _robustRandom.Next(component.GlimmerReductionMin, component.GlimmerReductionMax); _glimmerSystem.Glimmer -= reduction; - if (actor.PlayerSession.ContentData()?.Mind != null) - { - var trap = Spawn(component.TrapPrototype, Transform(uid).Coordinates); - _mindSystem.TransferTo(mindId, trap); + var trap = Spawn(component.TrapPrototype, pos); + _mindSystem.TransferTo(mindId, trap, mind: mind); - if (TryComp(trap, out var crystalComponent)) - crystalComponent.TrueName = Name(args.Args.Target.Value); + if (TryComp(trap, out var crystalComponent)) + crystalComponent.TrueName = Name(target); - _metaDataSystem.SetEntityName(trap, Loc.GetString("soul-entity-name", ("trapped", args.Args.Target))); - _metaDataSystem.SetEntityDescription(trap, Loc.GetString("soul-entity-name", ("trapped", args.Args.Target))); - } + _metaDataSystem.SetEntityName(trap, Loc.GetString("soul-entity-name", ("trapped", target))); + _metaDataSystem.SetEntityDescription(trap, Loc.GetString("soul-entity-name", ("trapped", target))); - if (TryComp(args.Args.Target, out var body)) + if (TryComp(target, out var body)) { - _bodySystem.GibBody(args.Args.Target.Value, false, body, false); + _bodySystem.GibBody(target, false, body, true); } else { - QueueDel(args.Args.Target.Value); + QueueDel(target); } } @@ -122,39 +119,39 @@ protected override void AttemptSacrifice(EntityUid agent, EntityUid patient, Ent // can't sacrifice yourself if (agent == patient) { - _popups.PopupEntity(Loc.GetString("altar-failure-reason-self"), altar, agent, Shared.Popups.PopupType.SmallCaution); + _popups.PopupEntity(Loc.GetString("altar-failure-reason-self"), altar, agent, Shared.Popups.PopupType.MediumCaution); return; } // you need psionic OR bible user - if (!HasComp(agent) && !HasComp(agent)) + if (!(HasComp(agent) || HasComp(agent) || HasComp(agent))) { - _popups.PopupEntity(Loc.GetString("altar-failure-reason-user"), altar, agent, Shared.Popups.PopupType.SmallCaution); + _popups.PopupEntity(Loc.GetString("altar-failure-reason-user"), altar, agent, Shared.Popups.PopupType.MediumCaution); return; } // and no golems or familiars or whatever should be sacrificing - if (!HasComp(agent)) + if (!(HasComp(agent) || HasComp(agent))) { - _popups.PopupEntity(Loc.GetString("altar-failure-reason-user-humanoid"), altar, agent, Shared.Popups.PopupType.SmallCaution); + _popups.PopupEntity(Loc.GetString("altar-failure-reason-user-humanoid"), altar, agent, Shared.Popups.PopupType.MediumCaution); return; } if (!HasComp(patient)) { - _popups.PopupEntity(Loc.GetString("altar-failure-reason-target", ("target", patient)), altar, agent, Shared.Popups.PopupType.SmallCaution); + _popups.PopupEntity(Loc.GetString("altar-failure-reason-target", ("target", patient)), altar, agent, Shared.Popups.PopupType.MediumCaution); return; } if (!HasComp(patient) && !HasComp(patient)) { - _popups.PopupEntity(Loc.GetString("altar-failure-reason-target-humanoid", ("target", patient)), altar, agent, Shared.Popups.PopupType.SmallCaution); + _popups.PopupEntity(Loc.GetString("altar-failure-reason-target-humanoid", ("target", patient)), altar, agent, Shared.Popups.PopupType.MediumCaution); return; } if (!HasComp(patient)) { - _popups.PopupEntity(Loc.GetString("altar-failure-reason-target-ssd", ("target", patient)), altar, agent, Shared.Popups.PopupType.SmallCaution); + _popups.PopupEntity(Loc.GetString("altar-failure-reason-target-ssd", ("target", patient)), altar, agent, Shared.Popups.PopupType.MediumCaution); return; } diff --git a/Content.Server/Backmen/Psionics/Glimmer/Structures/GlimmerStructuresSystem.cs b/Content.Server/Backmen/Psionics/Glimmer/Structures/GlimmerStructuresSystem.cs index 23d0eb204f6..baa17974dc1 100644 --- a/Content.Server/Backmen/Psionics/Glimmer/Structures/GlimmerStructuresSystem.cs +++ b/Content.Server/Backmen/Psionics/Glimmer/Structures/GlimmerStructuresSystem.cs @@ -130,9 +130,12 @@ private void OnAnomalySupercritical(EntityUid uid, GlimmerSourceComponent compon public override void Update(float frameTime) { base.Update(frameTime); - var q = EntityQueryEnumerator(); - while (q.MoveNext(out var owner, out var source)) + var q = EntityQueryEnumerator(); + while (q.MoveNext(out var owner, out var source, out var md)) { + if(Paused(owner, md)) + continue; + if (!source.Active) continue; diff --git a/Content.Server/Backmen/StationEvents/Events/GlimmerRevenantSpawnRule.cs b/Content.Server/Backmen/StationEvents/Events/GlimmerRevenantSpawnRule.cs index 168bc75cdfd..a394be545f0 100644 --- a/Content.Server/Backmen/StationEvents/Events/GlimmerRevenantSpawnRule.cs +++ b/Content.Server/Backmen/StationEvents/Events/GlimmerRevenantSpawnRule.cs @@ -27,6 +27,9 @@ protected override void Started(EntityUid uid, GlimmerRevenantRuleComponent comp var query = EntityQueryEnumerator(); while (query.MoveNext(out var source, out _, out var transform)) { + if(Paused(source)) + continue; + if (_stationSystem.GetOwningStation(source, transform) == station) glimmerSources.Add(source); } diff --git a/Content.Server/Backmen/StationEvents/Events/GlimmerWispSpawnRule.cs b/Content.Server/Backmen/StationEvents/Events/GlimmerWispSpawnRule.cs index e95b1fbb7c4..72a4cf130dd 100644 --- a/Content.Server/Backmen/StationEvents/Events/GlimmerWispSpawnRule.cs +++ b/Content.Server/Backmen/StationEvents/Events/GlimmerWispSpawnRule.cs @@ -38,6 +38,9 @@ protected override void Started(EntityUid uid, GlimmerWispRuleComponent componen var locations = EntityQueryEnumerator(); while (locations.MoveNext(out var sUid, out _, out var transform)) { + if(Paused(sUid)) + continue; + if (_stationSystem.GetOwningStation(sUid, transform) == station) { glimmerSources.Add(transform.Coordinates); diff --git a/Content.Shared/Backmen/Chapel/Components/SacrificialAltarComponent.cs b/Content.Shared/Backmen/Chapel/Components/SacrificialAltarComponent.cs index 7af4f71d4b2..5eed1781d20 100644 --- a/Content.Shared/Backmen/Chapel/Components/SacrificialAltarComponent.cs +++ b/Content.Shared/Backmen/Chapel/Components/SacrificialAltarComponent.cs @@ -1,7 +1,9 @@ using Content.Shared.DoAfter; +using Content.Shared.Random; using Robust.Shared.Audio; using Robust.Shared.Audio.Components; using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; namespace Content.Shared.Backmen.Chapel.Components; @@ -20,28 +22,28 @@ public sealed partial class SacrificialAltarComponent : Component public Entity? SacrificeStingStream; [DataField("rewardPool")] - public string RewardPool = "PsionicArtifactPool"; + public ProtoId RewardPool = "PsionicArtifactPool"; [DataField("rewardPoolChance")] - public float RewardPoolChance = 0.1f; + public float RewardPoolChance = 0.3f; [DataField("rewardPoolChanceBibleUser")] - public float RewardPoolChanceBibleUser = 0.5f; + public float RewardPoolChanceBibleUser = 0.8f; [DataField("bluespaceRewardMin")] - public int BluespaceRewardMin = 1; + public int BluespaceRewardMin = 4; [DataField("bluespaceRewardMax")] - public int BlueSpaceRewardMax = 4; + public int BlueSpaceRewardMax = 8; [DataField("glimmerReductionMin")] - public int GlimmerReductionMin = 30; + public int GlimmerReductionMin = 500; [DataField("glimmerReductionMax")] - public int GlimmerReductionMax = 60; + public int GlimmerReductionMax = 900; [DataField("trapPrototype")] - public string TrapPrototype = "CrystalSoul"; + public EntProtoId TrapPrototype = "CrystalSoul"; /// /// Antiexploit. diff --git a/Content.Shared/Backmen/Chapel/SharedSacrificialAltarSystem.cs b/Content.Shared/Backmen/Chapel/SharedSacrificialAltarSystem.cs index c2dd14fdd43..542fb2ea311 100644 --- a/Content.Shared/Backmen/Chapel/SharedSacrificialAltarSystem.cs +++ b/Content.Shared/Backmen/Chapel/SharedSacrificialAltarSystem.cs @@ -2,6 +2,7 @@ using Content.Shared.Buckle.Components; using Content.Shared.Cuffs; using Content.Shared.Cuffs.Components; +using Content.Shared.DoAfter; using Content.Shared.Verbs; namespace Content.Shared.Backmen.Chapel; @@ -10,6 +11,9 @@ public abstract class SharedSacrificialAltarSystem : EntitySystem { [Dependency] private readonly SharedCuffableSystem _cuffable = default!; + + [Dependency] private readonly SharedDoAfterSystem _doAfterSystem = default!; + public override void Initialize() { base.Initialize(); @@ -28,6 +32,11 @@ private void OnUnstrappedEvent(EntityUid uid, SacrificialAltarComponent componen args.Cancelled = true; return; } + if (component.DoAfter is {} id) + { + _doAfterSystem.Cancel(id); + component.DoAfter = null; + } } private void OnStrappedEvent(EntityUid uid, SacrificialAltarComponent component, ref StrapAttemptEvent args) diff --git a/Resources/Changelog/ChangelogBkm.yml b/Resources/Changelog/ChangelogBkm.yml index a4a59d905e6..2b43c3d1e3f 100644 --- a/Resources/Changelog/ChangelogBkm.yml +++ b/Resources/Changelog/ChangelogBkm.yml @@ -1487,3 +1487,17 @@ id: 98 time: '2025-02-23T20:19:00.0000000+00:00' url: https://github.com/Rxup/space-station-14/pull/1072 +- author: Rxup + changes: + - message: "\u0422\u0435\u043F\u0435\u0440\u044C \u044D\u043A\u0442\u043E\u043F\u043B\ + \u0430\u0437\u043C\u0430 \u0434\u0430\u0435\u0442 \u044D\u043A\u0442\u043E\u043F\ + \u043B\u0430\u0437\u043C\u0443!" + type: Tweak + - message: "\u0418\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0438 \u0441\u0438\u044F\ + \u043D\u0438\u044F \u043D\u0430 \u043F\u0430\u0443\u0437\u0435 \u043D\u0435\ + \ \u0431\u0443\u0434\u0435\u0442 \u0434\u0430\u0432\u0430\u0442\u044C \u0441\ + \u0438\u044F\u043D\u0438\u0435!" + type: Fix + id: 99 + time: '2025-02-24T11:49:08.0000000+00:00' + url: https://github.com/Rxup/space-station-14/pull/1074 diff --git a/Resources/Maps/Test/admin_test_arena.yml b/Resources/Maps/Test/admin_test_arena.yml index d69ab603b19..bfc2fe5d625 100644 --- a/Resources/Maps/Test/admin_test_arena.yml +++ b/Resources/Maps/Test/admin_test_arena.yml @@ -1,22 +1,22 @@ meta: format: 7 - category: Grid - engineVersion: 247.0.0 + category: Map + engineVersion: 247.1.0 forkId: "" forkVersion: "" - time: 02/19/2025 11:09:46 - entityCount: 160 -maps: [] + time: 02/24/2025 11:26:26 + entityCount: 162 +maps: +- 161 grids: - 104 -orphans: -- 104 +orphans: [] nullspace: [] tilemap: 0: Space 64: FloorMetalDiamond - 92: FloorSteel - 125: Plating + 89: FloorSteel + 121: Plating entities: - proto: "" entities: @@ -25,24 +25,24 @@ entities: - type: MetaData - type: Transform pos: 0.43750095,0.583333 - parent: invalid + parent: 161 - type: MapGrid chunks: -1,-1: ind: -1,-1 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAQAAAAAAAQAAAAAAA + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAQAAAAAAAQAAAAAAA version: 6 -1,0: ind: -1,0 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 0,0: ind: 0,0 - tiles: QAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: QAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 0,-1: ind: 0,-1 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 - type: Broadphase - type: Physics @@ -59,63 +59,223 @@ entities: - type: DecalGrid chunkCollection: version: 2 - nodes: [] + nodes: + - node: + color: '#FF0038FF' + id: MiniTileSteelCornerNe + decals: + 30: 3,3 + - node: + color: '#FF0038FF' + id: MiniTileSteelCornerNw + decals: + 29: -5,3 + - node: + color: '#FF0038FF' + id: MiniTileSteelCornerSe + decals: + 32: 3,-5 + - node: + color: '#FF0038FF' + id: MiniTileSteelCornerSw + decals: + 31: -5,-5 + - node: + color: '#FF0038FF' + id: MiniTileSteelLineE + decals: + 33: 3,-4 + 34: 3,-3 + 35: 3,-2 + 36: 3,-1 + 37: 3,0 + 38: 3,1 + 39: 3,2 + - node: + color: '#FF0038FF' + id: MiniTileSteelLineN + decals: + 54: -4,3 + 55: -3,3 + 56: -2,3 + 57: -1,3 + 58: 0,3 + 59: 1,3 + 60: 2,3 + - node: + color: '#FF0038FF' + id: MiniTileSteelLineS + decals: + 40: -4,-5 + 41: -3,-5 + 42: -2,-5 + 43: -1,-5 + 44: 0,-5 + 45: 1,-5 + 46: 2,-5 + - node: + color: '#FF0038FF' + id: MiniTileSteelLineW + decals: + 47: -5,-4 + 48: -5,-3 + 49: -5,-2 + 50: -5,-1 + 51: -5,0 + 52: -5,1 + 53: -5,2 + - node: + color: '#FF0038FF' + id: Omni + decals: + 26: 1,2 + - node: + color: '#FF0038FF' + id: SpaceStationSign1 + decals: + 9: -3,-3 + - node: + color: '#FF0038FF' + id: SpaceStationSign2 + decals: + 10: -2,-3 + - node: + color: '#FF0038FF' + id: SpaceStationSign3 + decals: + 11: -1,-3 + - node: + color: '#FF0038FF' + id: SpaceStationSign4 + decals: + 12: 0,-3 + - node: + color: '#FF0038FF' + id: SpaceStationSign5 + decals: + 13: 1,-3 + - node: + color: '#FF0038FF' + id: SpaceStationSign6 + decals: + 14: 2,-3 + - node: + color: '#FF0038FF' + id: SpaceStationSign7 + decals: + 15: 3,-3 + - node: + color: '#FF0038FF' + id: Tunnel + decals: + 25: -1,-1 + - node: + color: '#FF0038FF' + id: cyr_b + decals: + 6: 0,1 + 20: -3,2 + - node: + color: '#FF0038FF' + id: cyr_eh + decals: + 8: -1,1 + - node: + color: '#FF0038FF' + id: cyr_g + decals: + 5: -3,1 + - node: + color: '#FF0038FF' + id: cyr_l + decals: + 7: -2,1 + 22: -1,2 + - node: + color: '#FF0038FF' + id: cyr_u + decals: + 21: -2,2 + - node: + color: '#FF0038FF' + id: danger + decals: + 19: 0,3 + - node: + color: '#FF0038FF' + id: evac + decals: + 64: -1,-5 + - node: + color: '#FF0038FF' + id: food + decals: + 63: 2,0 + - node: + color: '#FF0038FF' + id: ghost + decals: + 61: -3,-1 + 62: 1,-1 + - node: + color: '#FF0038FF' + id: nay + decals: + 27: -1,4 + 28: -1,-6 + - node: + color: '#FF0038FF' + id: peace + decals: + 17: -4,-3 + 18: 3,-3 + - node: + color: '#FF0038FF' + id: t + decals: + 23: -3,3 + 24: -1,3 + - node: + color: '#FF0038FF' + id: y + decals: + 16: -2,3 - type: GridAtmosphere version: 2 data: tiles: - -1,-1: - 0: 65535 - -1,0: - 0: 65535 - 0,0: - 0: 65535 - 0,-1: - 0: 65535 -2,-3: - 0: 52224 + 0: 32768 -2,-2: - 0: 52428 + 0: 32904 -2,-1: - 0: 52428 + 0: 34952 -1,-3: - 0: 65280 + 0: 61440 -1,-2: + 0: 63743 + -1,-1: 0: 65535 - -3,1: - 0: 52428 - -3,2: - 0: 12 - -2,1: - 0: 65535 - -2,2: - 0: 15 -2,0: - 0: 52428 - -1,1: - 0: 65535 - -1,2: - 0: 15 - 0,1: + 0: 34952 + -1,0: 0: 65535 - 0,2: - 0: 15 - 1,0: - 0: 4369 - 1,1: - 0: 4369 - 1,2: - 0: 1 0,-3: - 0: 65280 + 0: 61440 0,-2: + 0: 61695 + 0,-1: + 0: 65535 + -3,1: + 0: 34944 + -2,1: + 0: 48048 + -1,1: + 0: 65528 + 0,0: 0: 65535 - 1,-3: - 0: 4352 - 1,-2: - 0: 4369 - 1,-1: - 0: 4369 + 0,1: + 0: 65520 uniqueMixes: - volume: 2500 temperature: 293.15 @@ -149,6 +309,19 @@ entities: - type: GravityShake shakeTimes: 10 - type: GasTileOverlay + - uid: 161 + components: + - type: MetaData + name: Map Entity + - type: Transform + - type: Map + mapPaused: True + - type: PhysicsMap + - type: GridTree + - type: MovedGrids + - type: Broadphase + - type: OccluderTree + - type: MapAtmosphere - proto: AirlockCommandLocked entities: - uid: 37 @@ -524,6 +697,13 @@ entities: - type: Transform pos: -7.5,4.5 parent: 104 +- proto: CrayonYellow + entities: + - uid: 162 + components: + - type: Transform + pos: -2.7291613,6.145059 + parent: 104 - proto: GeneratorBasic15kW entities: - uid: 34 diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/morgue.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/morgue.yml index 9f783bb2295..026e622d175 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Medical/morgue.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/morgue.yml @@ -154,9 +154,11 @@ maxVol: 50 reagents: - ReagentId: Ash - Quantity: 25 + Quantity: 10 - ReagentId: Necrosol - Quantity: 25 + Quantity: 10 + - ReagentId: Ectoplasm + Quantity: 5 - type: GuideHelp guides: - MinorAntagonists diff --git a/Resources/Prototypes/_Backmen/GameRules/events.yml b/Resources/Prototypes/_Backmen/GameRules/events.yml index 0e507754316..f629018f8d3 100644 --- a/Resources/Prototypes/_Backmen/GameRules/events.yml +++ b/Resources/Prototypes/_Backmen/GameRules/events.yml @@ -112,10 +112,9 @@ abstract: true components: - type: StationEvent - # Favor glimmer events just a little more than regular events. weight: 12 earliestStart: 1 - reoccurrenceDelay: 1 + reoccurrenceDelay: 5 - type: GlimmerEvent ## Glimmer events @@ -134,7 +133,7 @@ components: - type: GlimmerEvent minimumGlimmer: 300 - maximumGlimmer: 900 + maximumGlimmer: 1000 - type: NoosphericFryRule @@ -157,8 +156,8 @@ components: - type: GlimmerEvent minimumGlimmer: 400 - glimmerBurnLower: 20 - glimmerBurnUpper: 70 + glimmerBurnLower: 50 + glimmerBurnUpper: 200 - type: MassMindSwapRule - type: entity @@ -169,6 +168,8 @@ - type: GlimmerEvent minimumGlimmer: 300 maximumGlimmer: 1000 + glimmerBurnLower: 90 + glimmerBurnUpper: 120 report: glimmer-event-report-signatures - type: GlimmerWispRule @@ -177,6 +178,10 @@ parent: BaseGlimmerEvent categories: [ HideSpawnMenu ] components: + - type: StationEvent + weight: 12 + earliestStart: 1 + reoccurrenceDelay: 1 - type: GlimmerEvent minimumGlimmer: 0 maximumGlimmer: 100 @@ -190,6 +195,10 @@ parent: BaseGlimmerEvent categories: [ HideSpawnMenu ] components: + - type: StationEvent + weight: 12 + earliestStart: 1 + reoccurrenceDelay: 1 - type: GlimmerEvent minimumGlimmer: 300 maximumGlimmer: 1000 diff --git a/Resources/Prototypes/_Backmen/Reactions/psionic.yml b/Resources/Prototypes/_Backmen/Reactions/psionic.yml index 77fd3dae0f2..46594d5aa1a 100644 --- a/Resources/Prototypes/_Backmen/Reactions/psionic.yml +++ b/Resources/Prototypes/_Backmen/Reactions/psionic.yml @@ -18,15 +18,15 @@ minTemp: 400 reactants: Ash: - amount: 10 + amount: 5 Water: - amount: 10 + amount: 5 Blood: - amount: 10 + amount: 5 Ectoplasm: - amount: 10 + amount: 5 Plasma: - amount: 10 + amount: 5 catalyst: true effects: - !type:CreateEntityReactionEffect diff --git a/Resources/ServerInfo/_Backmen/Guidebook/Epistemics/Psionics.xml b/Resources/ServerInfo/_Backmen/Guidebook/Epistemics/Psionics.xml index 3ed9a9560d2..fdf6bd36b7b 100644 --- a/Resources/ServerInfo/_Backmen/Guidebook/Epistemics/Psionics.xml +++ b/Resources/ServerInfo/_Backmen/Guidebook/Epistemics/Psionics.xml @@ -54,6 +54,9 @@ [color=#a4885c]Снаряды Soulbreaker[/color] удаляют псионику у псиоников, в которых они попадают. + [color=#a4885c] Эктоплазма[/color], смешанная в мензурке с равными частями воды, золы, крови и плазмы, при достаточном нагревании даст нормальный кристалл. [color=#fcdf03]Используйте для этого горячую плиту.[/color] + +