From 5baa4d3d92156fbe6bb3cfcdc91758421ea533a7 Mon Sep 17 00:00:00 2001 From: Ed Date: Sun, 9 Aug 2026 11:05:51 +0300 Subject: [PATCH 01/10] mapping patch --- Resources/Maps/_CE/Shaar/Shaar-1.yml | 138 +- Resources/Maps/_CE/Shaar/Shaar-2.yml | 1251 +++++++++-------- Resources/Maps/_CE/Shaar/Shaar0.yml | 8 +- Resources/Maps/_CE/Shaar/Shaar1.yml | 46 +- Resources/Maps/_CE/Shaar/Shaar2.yml | 4 +- Resources/Maps/_CE/Shaar/Shaar3.yml | 2 +- .../_CE/Entities/Objects/Bureaucracy/pen.yml | 3 +- Resources/Prototypes/_CE/Maps/shaar.yml | 4 +- 8 files changed, 738 insertions(+), 718 deletions(-) diff --git a/Resources/Maps/_CE/Shaar/Shaar-1.yml b/Resources/Maps/_CE/Shaar/Shaar-1.yml index 5472456b7b..eb984ad7b9 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 c1f500142d..df7dd125c0 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 57afb35bf4..1f1c6461e7 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 2842b3158d..3e148871d3 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 90c3e9d4f8..2255c898e1 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 8c8e0c8573..7382aa065f 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/_CE/Entities/Objects/Bureaucracy/pen.yml b/Resources/Prototypes/_CE/Entities/Objects/Bureaucracy/pen.yml index 1ea4e53b01..fe34cacb89 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/Maps/shaar.yml b/Resources/Prototypes/_CE/Maps/shaar.yml index 4d480041cc..4a31ec11f5 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 ] From 766ed36ca7255de878c16b6a91f3d4840c6a2dfa Mon Sep 17 00:00:00 2001 From: Ed Date: Sun, 9 Aug 2026 11:29:35 +0300 Subject: [PATCH 02/10] pipe breakage refactor --- .../CEPipeBreakageRuleComponent.cs | 29 +++++ .../StationEvents/CEPipeBreakageRuleSystem.cs | 111 ++++++++++++++++++ Resources/Prototypes/_CE/GameRules/events.yml | 12 +- 3 files changed, 146 insertions(+), 6 deletions(-) create mode 100644 Content.Server/_CE/StationEvents/CEPipeBreakageRuleComponent.cs create mode 100644 Content.Server/_CE/StationEvents/CEPipeBreakageRuleSystem.cs diff --git a/Content.Server/_CE/StationEvents/CEPipeBreakageRuleComponent.cs b/Content.Server/_CE/StationEvents/CEPipeBreakageRuleComponent.cs new file mode 100644 index 0000000000..9e3065e223 --- /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 0000000000..e3003ed9d8 --- /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 (!TryComp(uid, out var xform) || HasOtherAnchoredEntities(uid, xform)) + 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/Resources/Prototypes/_CE/GameRules/events.yml b/Resources/Prototypes/_CE/GameRules/events.yml index c64dc325eb..9a671546d9 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 From 6acc80c75ac781597d56b4cf42ff332c20709844 Mon Sep 17 00:00:00 2001 From: Ed Date: Sun, 9 Aug 2026 11:29:43 +0300 Subject: [PATCH 03/10] give student a key --- Resources/Prototypes/_CE/Roles/Jobs/Academy/student.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/Resources/Prototypes/_CE/Roles/Jobs/Academy/student.yml b/Resources/Prototypes/_CE/Roles/Jobs/Academy/student.yml index 9325ec80ff..06b8712302 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 From 2527553eba877c2571847bf41bbc26ba93e01092 Mon Sep 17 00:00:00 2001 From: Ed Date: Sun, 9 Aug 2026 11:29:52 +0300 Subject: [PATCH 04/10] stamina buff --- Content.Shared/Damage/Components/StaminaComponent.cs | 4 ++-- Content.Shared/_CE/MeleeWeapon/CESharedWeaponSystem.Costs.cs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Content.Shared/Damage/Components/StaminaComponent.cs b/Content.Shared/Damage/Components/StaminaComponent.cs index 07429cbab7..4821ec51d5 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/MeleeWeapon/CESharedWeaponSystem.Costs.cs b/Content.Shared/_CE/MeleeWeapon/CESharedWeaponSystem.Costs.cs index 915ba0651e..c935b0162f 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(); } From bbf426c15ebad67d85eca8ccd1f896ad48a2b514 Mon Sep 17 00:00:00 2001 From: Ed Date: Sun, 9 Aug 2026 11:49:44 +0300 Subject: [PATCH 05/10] add magic vision to ghosts by default --- .../MagicVision/CEClientMagicVisionSystem.cs | 57 +++++++++---------- .../MagicVision/CEMagicVisionNoirOverlay.cs | 35 ------------ .../_CE/MagicVision/CEMagicVisionSystem.cs | 45 ++++++++++++--- .../Components/CEMagicVisionComponent.cs | 12 +++- .../CEPermanentMagicVisionComponent.cs | 9 +++ .../Events/CECheckMagicVisionEvent.cs | 10 +++- .../Entities/Mobs/Player/observer.yml | 2 + .../Specific/Thaumaturgy/research_project.yml | 2 +- .../Structures/Specific/Thaumaturgy/node.yml | 2 +- .../_CE/Recipes/Workbench/melting_furnace.yml | 14 +++++ Resources/Prototypes/_CE/Shaders/shaders.yml | 5 -- .../Textures/_CE/Shaders/magic_vision.swsl | 43 -------------- 12 files changed, 110 insertions(+), 126 deletions(-) delete mode 100644 Content.Client/_CE/MagicVision/CEMagicVisionNoirOverlay.cs create mode 100644 Content.Shared/_CE/MagicVision/Components/CEPermanentMagicVisionComponent.cs delete mode 100644 Resources/Textures/_CE/Shaders/magic_vision.swsl diff --git a/Content.Client/_CE/MagicVision/CEClientMagicVisionSystem.cs b/Content.Client/_CE/MagicVision/CEClientMagicVisionSystem.cs index dba0930caf..e6cbd3beca 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 f0191c557b..0000000000 --- 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.Server/_CE/MagicVision/CEMagicVisionSystem.cs b/Content.Server/_CE/MagicVision/CEMagicVisionSystem.cs index 2deae32c24..0d3d7878fb 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.Shared/_CE/MagicVision/Components/CEMagicVisionComponent.cs b/Content.Shared/_CE/MagicVision/Components/CEMagicVisionComponent.cs index 6817a88e9d..e1daa801cf 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 0000000000..cc092d90b4 --- /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 f5e9102d87..7d86683221 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/Resources/Prototypes/Entities/Mobs/Player/observer.yml b/Resources/Prototypes/Entities/Mobs/Player/observer.yml index 1ad9b2cd4f..340357287f 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/Entities/Objects/Specific/Thaumaturgy/research_project.yml b/Resources/Prototypes/_CE/Entities/Objects/Specific/Thaumaturgy/research_project.yml index d7ebf3df45..54e6e2f1b9 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/Structures/Specific/Thaumaturgy/node.yml b/Resources/Prototypes/_CE/Entities/Structures/Specific/Thaumaturgy/node.yml index d141ba9a6b..0e71e7fa09 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/Recipes/Workbench/melting_furnace.yml b/Resources/Prototypes/_CE/Recipes/Workbench/melting_furnace.yml index 87745bb56f..6e288c217f 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/Shaders/shaders.yml b/Resources/Prototypes/_CE/Shaders/shaders.yml index 1231b135a3..864afbe6db 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/Textures/_CE/Shaders/magic_vision.swsl b/Resources/Textures/_CE/Shaders/magic_vision.swsl deleted file mode 100644 index 6d04b4e057..0000000000 --- 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); - } -} From f8634aa3b9f4ffafb435e2fa4b75f98127aa297e Mon Sep 17 00:00:00 2001 From: Ed Date: Sun, 9 Aug 2026 11:53:54 +0300 Subject: [PATCH 06/10] -2 roadnmap entry --- Resources/Locale/en-US/_CE/roadmap/entry.ftl | 6 ------ Resources/Locale/ru-RU/_CE/roadmap/entry.ftl | 6 ------ Resources/Prototypes/_CE/Roadmap/entries.yml | 14 -------------- 3 files changed, 26 deletions(-) diff --git a/Resources/Locale/en-US/_CE/roadmap/entry.ftl b/Resources/Locale/en-US/_CE/roadmap/entry.ftl index ad8385d17e..46d07ef75e 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/ru-RU/_CE/roadmap/entry.ftl b/Resources/Locale/ru-RU/_CE/roadmap/entry.ftl index d3a25afdcc..7ea4e892e7 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/Prototypes/_CE/Roadmap/entries.yml b/Resources/Prototypes/_CE/Roadmap/entries.yml index 189f12988c..efafc609f3 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 From b1a1e5c42a59c12a4f0ab1fd91f25e95e31b15b4 Mon Sep 17 00:00:00 2001 From: Ed Date: Sun, 9 Aug 2026 12:11:06 +0300 Subject: [PATCH 07/10] back to vanilla hunger system --- .../_CE/Satiation/CEClientSatiationSystem.cs | 7 - .../_CE/Satiation/CESatiationSystem.cs | 34 ---- .../OldCESatiateEntityEffectsSystem.cs | 23 --- .../_CE/Satiation/CESatiationTypePrototype.cs | 32 ---- .../_CE/Satiation/CESatiationsComponent.cs | 16 -- .../_CE/Satiation/CESharedSatiationSystem.cs | 166 ------------------ Resources/Locale/en-US/_CE/alerts/alerts.ftl | 27 --- Resources/Locale/ru-RU/_CE/alerts/alerts.ftl | 28 --- Resources/Prototypes/_CE/Alerts/hunger.yml | 32 ---- Resources/Prototypes/_CE/Alerts/thirst.yml | 31 ---- .../Prototypes/_CE/Body/species_base.yml | 6 +- .../_CE/Entities/StatusEffects/satiations.yml | 151 ---------------- Resources/Prototypes/_CE/Reagents/drink.yml | 5 +- Resources/Prototypes/_CE/Reagents/food.yml | 8 +- Resources/Prototypes/_CE/Satiations/types.yml | 23 --- .../Interface/Alerts/hunger.rsi/deadfed.png | Bin 425 -> 0 bytes .../_CE/Interface/Alerts/hunger.rsi/fed.png | Bin 238 -> 0 bytes .../_CE/Interface/Alerts/hunger.rsi/meta.json | 20 +-- .../Interface/Alerts/hunger.rsi/overfed.png | Bin 769 -> 0 bytes .../Interface/Alerts/hunger.rsi/wellfed.png | Bin 304 -> 0 bytes .../Interface/Alerts/thirst.rsi/deadfed.png | Bin 484 -> 0 bytes .../_CE/Interface/Alerts/thirst.rsi/fed.png | Bin 282 -> 0 bytes .../_CE/Interface/Alerts/thirst.rsi/meta.json | 29 --- .../Interface/Alerts/thirst.rsi/overfed.png | Bin 813 -> 0 bytes .../Interface/Alerts/thirst.rsi/wellfed.png | Bin 364 -> 0 bytes 25 files changed, 6 insertions(+), 632 deletions(-) delete mode 100644 Content.Client/_CE/Satiation/CEClientSatiationSystem.cs delete mode 100644 Content.Server/_CE/Satiation/CESatiationSystem.cs delete mode 100644 Content.Shared/_CE/EntityEffects/Effects/OldCESatiateEntityEffectsSystem.cs delete mode 100644 Content.Shared/_CE/Satiation/CESatiationTypePrototype.cs delete mode 100644 Content.Shared/_CE/Satiation/CESatiationsComponent.cs delete mode 100644 Content.Shared/_CE/Satiation/CESharedSatiationSystem.cs delete mode 100644 Resources/Prototypes/_CE/Alerts/thirst.yml delete mode 100644 Resources/Prototypes/_CE/Entities/StatusEffects/satiations.yml delete mode 100644 Resources/Prototypes/_CE/Satiations/types.yml delete mode 100644 Resources/Textures/_CE/Interface/Alerts/hunger.rsi/deadfed.png delete mode 100644 Resources/Textures/_CE/Interface/Alerts/hunger.rsi/fed.png delete mode 100644 Resources/Textures/_CE/Interface/Alerts/hunger.rsi/overfed.png delete mode 100644 Resources/Textures/_CE/Interface/Alerts/hunger.rsi/wellfed.png delete mode 100644 Resources/Textures/_CE/Interface/Alerts/thirst.rsi/deadfed.png delete mode 100644 Resources/Textures/_CE/Interface/Alerts/thirst.rsi/fed.png delete mode 100644 Resources/Textures/_CE/Interface/Alerts/thirst.rsi/meta.json delete mode 100644 Resources/Textures/_CE/Interface/Alerts/thirst.rsi/overfed.png delete mode 100644 Resources/Textures/_CE/Interface/Alerts/thirst.rsi/wellfed.png diff --git a/Content.Client/_CE/Satiation/CEClientSatiationSystem.cs b/Content.Client/_CE/Satiation/CEClientSatiationSystem.cs deleted file mode 100644 index 609dbf194f..0000000000 --- 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/Satiation/CESatiationSystem.cs b/Content.Server/_CE/Satiation/CESatiationSystem.cs deleted file mode 100644 index e4380393dd..0000000000 --- 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.Shared/_CE/EntityEffects/Effects/OldCESatiateEntityEffectsSystem.cs b/Content.Shared/_CE/EntityEffects/Effects/OldCESatiateEntityEffectsSystem.cs deleted file mode 100644 index 6b09cd3ba4..0000000000 --- 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/Satiation/CESatiationTypePrototype.cs b/Content.Shared/_CE/Satiation/CESatiationTypePrototype.cs deleted file mode 100644 index f4070d961e..0000000000 --- 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 e48598c2a1..0000000000 --- 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 b5e3076fb9..0000000000 --- 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/Resources/Locale/en-US/_CE/alerts/alerts.ftl b/Resources/Locale/en-US/_CE/alerts/alerts.ftl index 17bdc9806b..91baa09cb5 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/ru-RU/_CE/alerts/alerts.ftl b/Resources/Locale/ru-RU/_CE/alerts/alerts.ftl index 792c56afe1..b80874dea9 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/Prototypes/_CE/Alerts/hunger.yml b/Resources/Prototypes/_CE/Alerts/hunger.yml index 1b04bed382..f65398b8ac 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 2f08267e77..0000000000 --- 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 544ab638e3..6db4372f12 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/StatusEffects/satiations.yml b/Resources/Prototypes/_CE/Entities/StatusEffects/satiations.yml deleted file mode 100644 index 68a0017897..0000000000 --- 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/Reagents/drink.yml b/Resources/Prototypes/_CE/Reagents/drink.yml index 3cc060a0d4..414bc35045 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 0b47e762c2..b4ac50f94e 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/Satiations/types.yml b/Resources/Prototypes/_CE/Satiations/types.yml deleted file mode 100644 index ac328525fa..0000000000 --- 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/Textures/_CE/Interface/Alerts/hunger.rsi/deadfed.png b/Resources/Textures/_CE/Interface/Alerts/hunger.rsi/deadfed.png deleted file mode 100644 index 3cdeb16a810ebce8883ec92f7cec41e00fdb81f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmV;a0apHrP)Px$V@X6oR9J=0R=W+tFch>AlTc-VG!ZpJgpxjDmWVzj3_*=(JOCA|gaR3y$NM^t z#FdVH@BHp;$GHMHZ>lkO?W%-;Iq)S&unz2>4;A+;0kE*P=pvwUaNblSmyx0wkgUMO z6cZq|KNg1b7WYibNwxsWSFRIS7m9X3b1I;S$%I2)qq`bHFbkzThxmk$DlUDapuH2+ zr(h`&Yb&W0lC7!?q>C&$(eRlUNrV=jAq4-E0V?rre^LvvY=R9*B!a~+$4)JV0-6C1 z*W3MPSGhvcE|UVVHexndML>(udq65)V&@U!JwSzTw{0dzvh7c-Fe=>W;GwQZsojwf z&c#G6o;rV7D+q6<$@E32@zkz z-L~=RLRg&I9X5`MQa{H-2!05`Lt@GXjYyLKEg`oi%Yr##sG=!~{E*~yO00000NkvXXu0mjf+b6TK 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 7973116496f7d8f23a14b79be0f40f8c4b80d7a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}D?D8sLn2y} z6C_v{H@F1sy!pW1^lb8??X4=-4c8K`FtRWjW;R@V*|Oj%^D~B75q@hHUfDE9aQed| z8F}CLHiZ74z?AY^;p7pPY>l(l#ce9aCyN;LPM<7f@#Ru-;#;zl*@H2~vf)a_vR%w8 zUUGCTVwkS1r0%D7i)R(9s?NiO(eJWyJFoN2nv$}+U+(w`)*UiVn-@)qaKB(9E!4#% l7G>Qa;oj2}Xt02R;V-NGAx6=E(m*#ec)I$ztaD0e0sy>9SK0so diff --git a/Resources/Textures/_CE/Interface/Alerts/hunger.rsi/meta.json b/Resources/Textures/_CE/Interface/Alerts/hunger.rsi/meta.json index 724a7ca296..103391b38f 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 c00682c143d3200e34f89c5e83a8f8d980c7b693..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 769 zcmV+c1OEJpP)Px%yGcYrRA_7RL7spr z9iu4Cyn`#MXlhDt5uM2Koa5UVveM?S0NL2zx%~D3z_-5jUrT)T22#|_q^3TvTNTao zGi3vB4?u3<<}qJDO-K{0nMwUiDtZn`9UBC8unCzHEJQZsLCHZ7sCg+BKu$pTYl8!P zhCe6?0BK;M`X@aAGi-zB%seV;;x&5TmI=-E{+LSfPOzbE*h_i^Wq1gSa(P9FoP%S$ zAh&N&Uf_~BHYNz{F~|XN6>;+jf@_gj+3$;#absdWh4B_ni!tp#|z87@eDiL%M0!Zs^ z4j#n?fiu6D-gd#Gs-ovBV62(>;9aU)CG70xhDRkm3tU4Xz+8XFXjA~k^mnKSaB^k2 zDthnys_4P#0X~f>@ep{Id&iVGC4>iXRKQsGo^Q7B^yhcde4l%dS>J>QU~YmT?#+#v zZ?>P_<0fK`y%6{2#&GLnTiD)`xuq zWm)Q6t>E(l)65X^c%HDW06@1v(p`SO*?OU#UtS0EVgtbiVZPatP-eEL>-}KfX|)&x zA$UU=2s^?qs9Zq+fDgm7*XOd^%%lzpLa+($x=!r6PS^m?FRz*cH8timKohHq9;%}M z07gyMdzh~G&R)0Ym`dJQNOo~d?&B~dyXF`(09oz<4tzk2z(j2Jv(kST^06;Av!d@YRLN^m7JDr3`wfJGM@cI6YCe(Nr)< z`5b2?A2V~DkkFa79}EkB9A*EojL}O+olU`dLRz4JWucMdX-SC;0j3vX`sdFd%`!a7 z=TOdKCcir>TF7MnB8`ThT(h4V%)fkv@kF1)c9C!?2lkM)DU*DB{!Nw=HCg?%Oy0I{ zqQ^$dmNY(vYl0=3T_0T;U0n^g${2F7i7+s92Bj{NlfAME=xYW~S3j3^P6Px$o=HSOR9J<@mpyXAFc5|1jITgP<;qu}pwSVSNkc)E6R6A~I0S_oW;8hg4Fy-A zqN3vvO0~{vy^>ZxNnQgs*1k{DYS$>$K+`a~(y?zX0BY2=2*Rzv{&5$@t^%OOQqu*1 zHg*nlIqr&}reSm(06>P|dTNYea)CIA{o~#N1P9YAB5EiF!bTxDYR&@W0MXxKTM*Jb zKpX40*&WU=FTnG5RhQ$g)5f}wug^umSR!((5Covc97M<<216mdEr^*)gbk-*bfKig z*P=@Jyj{KTl9M5=3Em1|qZou#5{T?xP+F)$ik|u30>D1WI?%#ARLr!oE(@U6kW&;O zXU3%st!vQ<0RSo_zQ5jV)#-h;hzrm6*toP4!Z`R`Z?;OQpQ8%}jsx+wK-vjo_raVK zuCxFr&H-(#OKlfyK@5UwCQo%jTnVWGURp^l!N6=KJe*&SHYPCTW{028P2_nCYC9o~ zk?I`)n(PHM5bcb$Vzc@$1S?R~3#7pG6midFWp56EG#SP312|yIcY=Taa~jNn)GSkF aTdHs0&?wiOL<*At0000^$Ia{JGmOlJPFzI&fctjQmn{fo#`959G%b|{a5O6;0^{~A;nG332)So z^CyQo2c~XWuiqhfGa+W$1LhD;MlTu1!crekz6D*(9jrTKyhPapgt(aRDJ_ajb@BXY d!{sK%z`(H}>5=S>^B~_dc)I$ztaD0e0s#NkXmS7m 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 180f8f35f4..0000000000 --- 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 6a9acf3c467fac3c4db25c24da9f3c7685c97099..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 813 zcmV+|1JeA7P)Px%=Sf6CRA_V<=ui7~w%Q*0;_W<6!Iy>7 z{?J>2l8_bho**_&msQX+plD0f%Nqt{8fC_1 z{GdHRt9{@aFqs9P?~S@5wQAN%>YPfnH}c>y(}5Ny4Fhj z$lCC@p7Rc}WJ1PwrcTISz}xzs@2=BA+Y4OcZRIg&$=n118{W!@MUBiV5ltcR{M@!O z;@IV8iD)X?5}T&WoF%~FwPTT|KNsx<-m@{p;W->Z^YrJUXkGb+Be7H7EmlbUpB;A@dx*7~3QKR_z={{y7I2Px$CP_p=R9J=WmOT!GFbqaR)eBT=H!i}!!rBd~D~I499HJ`{TUQnaF2Y8o9)V6q z`Lh#;Ahi;2szCAgaGZh=2L}kB*LC4s59JiI*k1~u#BTM^l5iL3ow?lK>>4s>ZlD|* zW19>CDsT@J0SNaAj5VZ25GJu#XRHOVr=tRkx?9)uP3bLW9m3EjgJ4<4B@}JAs18s< z!2)_wC|uOt;@Sdvt@D2X3$%sUq=XQnYG>v8G!CmQDG)kXSTK-gxqwbNI{>D7vFGDv z6-u)l4YonPjv+kFa^qgr&W04lG!Dvd=&1J$V8{~FI4D7s1mOH2>6vTc+t@eh+j20000< KMNUMnLSTZ@&5;BE From a8f42e7dc3e2dd048d4c2886b94515c4d61fc5a1 Mon Sep 17 00:00:00 2001 From: Ed Date: Sun, 9 Aug 2026 12:16:36 +0300 Subject: [PATCH 08/10] fix flyer chasming --- .../_CE/ZLevels/Flight/CESharedZFlightSystem.cs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/Content.Shared/_CE/ZLevels/Flight/CESharedZFlightSystem.cs b/Content.Shared/_CE/ZLevels/Flight/CESharedZFlightSystem.cs index 08e999d49e..2c05443998 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) From 345cc95ac47036c120dfc93d7b36c5ffef1b9912 Mon Sep 17 00:00:00 2001 From: Ed Date: Sun, 9 Aug 2026 12:21:09 +0300 Subject: [PATCH 09/10] remove altar stabilization system --- .../CEInfusionAltarSystem.Examine.cs | 3 - .../CEInfusionAltarSystem.Pedestal.cs | 12 +--- .../CEInfusionAltarSystem.Stabilizers.cs | 64 ------------------- .../Components/CEInfusionAltarComponent.cs | 20 +----- .../CEInfusionAltarStabilizerComponent.cs | 14 ---- .../en-US/_CE/thaumaturgy/infusion_altar.ftl | 1 - .../ru-RU/_CE/thaumaturgy/infusion_altar.ftl | 1 - .../Entities/Objects/Decoration/candles.yml | 2 - .../InfusionAltar/InfusionAltar.xml | 10 --- 9 files changed, 4 insertions(+), 123 deletions(-) delete mode 100644 Content.Server/_CE/InfusionAltar/CEInfusionAltarSystem.Stabilizers.cs delete mode 100644 Content.Shared/_CE/InfusionAltar/Components/CEInfusionAltarStabilizerComponent.cs diff --git a/Content.Server/_CE/InfusionAltar/CEInfusionAltarSystem.Examine.cs b/Content.Server/_CE/InfusionAltar/CEInfusionAltarSystem.Examine.cs index 724b690996..82f3d9bf11 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 d825619fa1..8bcc4e7aa9 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 cdb3f5caeb..0000000000 --- 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.Shared/_CE/InfusionAltar/Components/CEInfusionAltarComponent.cs b/Content.Shared/_CE/InfusionAltar/Components/CEInfusionAltarComponent.cs index d429fa0eb0..aeebb71924 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 9c75916ecb..0000000000 --- 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/Resources/Locale/en-US/_CE/thaumaturgy/infusion_altar.ftl b/Resources/Locale/en-US/_CE/thaumaturgy/infusion_altar.ftl index 2e7defca41..198d2b80cd 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/thaumaturgy/infusion_altar.ftl b/Resources/Locale/ru-RU/_CE/thaumaturgy/infusion_altar.ftl index 5f72648b75..ece50e959d 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/Prototypes/_CE/Entities/Objects/Decoration/candles.yml b/Resources/Prototypes/_CE/Entities/Objects/Decoration/candles.yml index 6087d83601..03a5adf6e3 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/ServerInfo/_CE/Guidebook_EN/Thaumaturgy/InfusionAltar/InfusionAltar.xml b/Resources/ServerInfo/_CE/Guidebook_EN/Thaumaturgy/InfusionAltar/InfusionAltar.xml index 36771eb6a0..955e18d3aa 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. From a69d4190fe8ff90fb877862a78bc945d03a3a581 Mon Sep 17 00:00:00 2001 From: Ed Date: Sun, 9 Aug 2026 12:36:50 +0300 Subject: [PATCH 10/10] Update CEPipeBreakageRuleSystem.cs --- Content.Server/_CE/StationEvents/CEPipeBreakageRuleSystem.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Content.Server/_CE/StationEvents/CEPipeBreakageRuleSystem.cs b/Content.Server/_CE/StationEvents/CEPipeBreakageRuleSystem.cs index e3003ed9d8..104895d55c 100644 --- a/Content.Server/_CE/StationEvents/CEPipeBreakageRuleSystem.cs +++ b/Content.Server/_CE/StationEvents/CEPipeBreakageRuleSystem.cs @@ -59,7 +59,7 @@ protected override void Started(EntityUid ruleUid, continue; if (meta.EntityPrototype is null || !component.ReplacementMap.ContainsKey(meta.EntityPrototype)) continue; - if (!TryComp(uid, out var xform) || HasOtherAnchoredEntities(uid, xform)) + if (HasOtherAnchoredEntities(uid, Transform(uid))) continue; BreakPipe(component, uid, Transform(uid).Coordinates, alwaysBreak: false, spawnVfx: false);