From 69c0f8773f05e12b78bf45303a0ec99bfeced773 Mon Sep 17 00:00:00 2001 From: cohanna Date: Mon, 4 Nov 2024 03:10:29 -0700 Subject: [PATCH 01/18] we hate powergaming --- .../Recipes/Construction/Graphs/structures/window.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/structures/window.yml b/Resources/Prototypes/Recipes/Construction/Graphs/structures/window.yml index b9e6eae0815..1782c5924bf 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/structures/window.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/structures/window.yml @@ -223,11 +223,6 @@ - material: Uranium amount: 2 doAfter: 1 - - to: shuttleWindow - steps: - - material: Plasteel - amount: 2 - doAfter: 3 - node: reinforcedPlasmaWindow entity: ReinforcedPlasmaWindow From 18971f270539a69c54b203a87b40573eacbbabaa Mon Sep 17 00:00:00 2001 From: cohanna Date: Wed, 6 Nov 2024 21:39:02 -0700 Subject: [PATCH 02/18] Reverted #31978 --- .../Entities/Structures/Windows/clockwork.yml | 20 +-- .../Entities/Structures/Windows/mining.yml | 4 +- .../Entities/Structures/Windows/plasma.yml | 25 +-- .../Structures/Windows/plastitanium.yml | 8 +- .../Structures/Windows/reinforced.yml | 35 +++- .../Entities/Structures/Windows/rplasma.yml | 14 +- .../Entities/Structures/Windows/ruranium.yml | 16 +- .../Entities/Structures/Windows/shuttle.yml | 4 +- .../Entities/Structures/Windows/uranium.yml | 24 +-- .../Entities/Structures/Windows/window.yml | 30 +--- .../Construction/Graphs/structures/window.yml | 170 +++++++----------- .../Graphs/structures/window_diagonal.yml | 146 ++++++--------- .../Graphs/structures/windowdirectional.yml | 146 ++++----------- .../Recipes/Construction/structures.yml | 42 ++--- ...ageOverlay_20.png => DamageOverlay_12.png} | Bin ...amageOverlay_5.png => DamageOverlay_4.png} | Bin ...mageOverlay_10.png => DamageOverlay_8.png} | Bin .../Structures/Windows/cracks.rsi/meta.json | 6 +- ...ageOverlay_20.png => DamageOverlay_12.png} | Bin ...amageOverlay_5.png => DamageOverlay_4.png} | Bin ...mageOverlay_10.png => DamageOverlay_8.png} | Bin .../Windows/cracks_diagonal.rsi/meta.json | 6 +- ...ageOverlay_20.png => DamageOverlay_12.png} | Bin ...amageOverlay_5.png => DamageOverlay_4.png} | Bin ...mageOverlay_10.png => DamageOverlay_8.png} | Bin .../Windows/cracks_directional.rsi/meta.json | 6 +- 26 files changed, 247 insertions(+), 455 deletions(-) rename Resources/Textures/Structures/Windows/cracks.rsi/{DamageOverlay_20.png => DamageOverlay_12.png} (100%) rename Resources/Textures/Structures/Windows/cracks.rsi/{DamageOverlay_5.png => DamageOverlay_4.png} (100%) rename Resources/Textures/Structures/Windows/cracks.rsi/{DamageOverlay_10.png => DamageOverlay_8.png} (100%) rename Resources/Textures/Structures/Windows/cracks_diagonal.rsi/{DamageOverlay_20.png => DamageOverlay_12.png} (100%) rename Resources/Textures/Structures/Windows/cracks_diagonal.rsi/{DamageOverlay_5.png => DamageOverlay_4.png} (100%) rename Resources/Textures/Structures/Windows/cracks_diagonal.rsi/{DamageOverlay_10.png => DamageOverlay_8.png} (100%) rename Resources/Textures/Structures/Windows/cracks_directional.rsi/{DamageOverlay_20.png => DamageOverlay_12.png} (100%) rename Resources/Textures/Structures/Windows/cracks_directional.rsi/{DamageOverlay_5.png => DamageOverlay_4.png} (100%) rename Resources/Textures/Structures/Windows/cracks_directional.rsi/{DamageOverlay_10.png => DamageOverlay_8.png} (100%) diff --git a/Resources/Prototypes/Entities/Structures/Windows/clockwork.yml b/Resources/Prototypes/Entities/Structures/Windows/clockwork.yml index 3449d1d11a0..992dfcda1cb 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/clockwork.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/clockwork.yml @@ -47,8 +47,8 @@ node: clockworkWindow - type: Appearance - type: DamageVisuals - thresholds: [5, 10, 20] - damageDivisor: 3 + thresholds: [4, 8, 12] + damageDivisor: 4 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks.rsi @@ -74,8 +74,8 @@ node: windowClockworkDirectional - type: Appearance - type: DamageVisuals - thresholds: [5, 10, 20] - damageDivisor: 1.5 + thresholds: [4, 8, 12] + damageDivisor: 10 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks_directional.rsi @@ -85,17 +85,7 @@ thresholds: - trigger: !type:DamageTrigger - damage: 75 - behaviors: - - !type:DoActsBehavior - acts: [ "Destruction" ] - - !type:PlaySoundBehavior - sound: - collection: WindowShatter - - trigger: - !type:DamageTrigger - damage: 37 - behaviors: + damage: 150 - !type:PlaySoundBehavior sound: collection: WindowShatter diff --git a/Resources/Prototypes/Entities/Structures/Windows/mining.yml b/Resources/Prototypes/Entities/Structures/Windows/mining.yml index f0b77e66893..82d11b732b6 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/mining.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/mining.yml @@ -43,8 +43,8 @@ base: mwindow - type: Appearance - type: DamageVisuals - thresholds: [5, 10, 20] - damageDivisor: 4 + thresholds: [4, 8, 12] + damageDivisor: 6 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks.rsi diff --git a/Resources/Prototypes/Entities/Structures/Windows/plasma.yml b/Resources/Prototypes/Entities/Structures/Windows/plasma.yml index 58991b92869..66fac515a77 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/plasma.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/plasma.yml @@ -10,12 +10,12 @@ sprite: Structures/Windows/plasma_window.rsi - type: Damageable damageContainer: StructuralInorganic - damageModifierSet: Glass + damageModifierSet: RGlass - type: Destructible thresholds: - trigger: !type:DamageTrigger - damage: 150 + damage: 120 behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] @@ -24,7 +24,7 @@ collection: WindowShatter - trigger: !type:DamageTrigger - damage: 75 + damage: 60 behaviors: - !type:PlaySoundBehavior sound: @@ -43,8 +43,8 @@ node: plasmaWindow - type: Appearance - type: DamageVisuals - thresholds: [5, 10, 20] - damageDivisor: 3 + thresholds: [4, 8, 12] + damageDivisor: 3.333 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks.rsi @@ -74,8 +74,8 @@ node: plasmaWindowDirectional - type: Appearance - type: DamageVisuals - thresholds: [5, 10, 20] - damageDivisor: 1.5 + thresholds: [4, 8, 12] + damageDivisor: 3.333 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks_directional.rsi @@ -83,16 +83,7 @@ thresholds: - trigger: !type:DamageTrigger - damage: 75 - behaviors: - - !type:DoActsBehavior - acts: [ "Destruction" ] - - !type:PlaySoundBehavior - sound: - collection: WindowShatter - - trigger: - !type:DamageTrigger - damage: 37 + damage: 200 behaviors: - !type:PlaySoundBehavior sound: diff --git a/Resources/Prototypes/Entities/Structures/Windows/plastitanium.yml b/Resources/Prototypes/Entities/Structures/Windows/plastitanium.yml index e7af4b6c677..2134cfe8927 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/plastitanium.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/plastitanium.yml @@ -98,8 +98,8 @@ - !type:DoActsBehavior acts: [ "Destruction" ] - type: DamageVisuals - thresholds: [5, 10, 20] - damageDivisor: 20 + thresholds: [4, 8, 12] + damageDivisor: 28 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks.rsi @@ -185,8 +185,8 @@ - !type:DoActsBehavior acts: [ "Destruction" ] - type: DamageVisuals - thresholds: [5, 10, 20] - damageDivisor: 20 + thresholds: [4, 8, 12] + damageDivisor: 28 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks_diagonal.rsi diff --git a/Resources/Prototypes/Entities/Structures/Windows/reinforced.yml b/Resources/Prototypes/Entities/Structures/Windows/reinforced.yml index 9e80d46e649..503d2eec6e3 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/reinforced.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/reinforced.yml @@ -50,12 +50,31 @@ node: reinforcedWindow - type: Appearance - type: DamageVisuals - thresholds: [5, 10, 20] - damageDivisor: 3 + thresholds: [4, 8, 12] + damageDivisor: 4 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks.rsi +- type: entity + parent: ReinforcedWindow + id: TintedWindow + name: tinted window + components: + - type: Sprite + drawdepth: WallTops + sprite: Structures/Windows/tinted_window.rsi + - type: Icon + sprite: Structures/Windows/tinted_window.rsi + - type: IconSmooth + base: twindow + - type: Construction + graph: Window + node: tintedWindow + - type: Occluder + - type: StaticPrice + price: 45 + - type: entity id: WindowReinforcedDirectional parent: WindowDirectional @@ -77,8 +96,8 @@ node: windowReinforcedDirectional - type: Appearance - type: DamageVisuals - thresholds: [5, 10, 20] - damageDivisor: 1.5 + thresholds: [4, 8, 12] + damageDivisor: 10 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks_directional.rsi @@ -92,16 +111,16 @@ thresholds: - trigger: !type:DamageTrigger - damage: 75 + damage: 150 #excess damage (nuke?). avoid computational cost of spawning entities. behaviors: - - !type:DoActsBehavior - acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: collection: WindowShatter + - !type:DoActsBehavior + acts: [ "Destruction" ] - trigger: !type:DamageTrigger - damage: 37 + damage: 50 behaviors: - !type:PlaySoundBehavior sound: diff --git a/Resources/Prototypes/Entities/Structures/Windows/rplasma.yml b/Resources/Prototypes/Entities/Structures/Windows/rplasma.yml index 0dfe893a5c3..0940ac308a5 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/rplasma.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/rplasma.yml @@ -17,7 +17,7 @@ thresholds: - trigger: !type:DamageTrigger - damage: 300 + damage: 200 behaviors: #excess damage, don't spawn entities. - !type:DoActsBehavior acts: [ "Destruction" ] @@ -26,7 +26,7 @@ collection: WindowShatter - trigger: !type:DamageTrigger - damage: 150 + damage: 100 behaviors: - !type:PlaySoundBehavior sound: @@ -48,7 +48,7 @@ node: reinforcedPlasmaWindow - type: Appearance - type: DamageVisuals - thresholds: [5, 10, 20] + thresholds: [4, 8, 12] damageDivisor: 6 trackAllDamage: true damageOverlay: @@ -77,8 +77,8 @@ node: plasmaReinforcedWindowDirectional - type: Appearance - type: DamageVisuals - thresholds: [5, 10, 20] - damageDivisor: 3 + thresholds: [4, 8, 12] + damageDivisor: 36 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks_directional.rsi @@ -88,13 +88,13 @@ thresholds: - trigger: !type:DamageTrigger - damage: 150 + damage: 1000 behaviors: #excess damage, don't spawn entities. - !type:DoActsBehavior acts: [ "Destruction" ] - trigger: !type:DamageTrigger - damage: 75 + damage: 600 behaviors: - !type:PlaySoundBehavior sound: diff --git a/Resources/Prototypes/Entities/Structures/Windows/ruranium.yml b/Resources/Prototypes/Entities/Structures/Windows/ruranium.yml index 2231ab6a497..b9b47c00ea9 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/ruranium.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/ruranium.yml @@ -43,7 +43,7 @@ node: reinforcedUraniumWindow - type: Appearance - type: DamageVisuals - thresholds: [5, 10, 20] + thresholds: [4, 8, 12] damageDivisor: 6 trackAllDamage: true damageOverlay: @@ -74,8 +74,8 @@ node: uraniumReinforcedWindowDirectional - type: Appearance - type: DamageVisuals - thresholds: [5, 10, 20] - damageDivisor: 3 + thresholds: [4, 8, 12] + damageDivisor: 3.333 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks_directional.rsi @@ -83,13 +83,7 @@ thresholds: - trigger: !type:DamageTrigger - damage: 150 - behaviors: - - !type:DoActsBehavior - acts: [ "Destruction" ] - - trigger: - !type:DamageTrigger - damage: 75 + damage: 200 behaviors: - !type:PlaySoundBehavior sound: @@ -99,7 +93,7 @@ ShardGlassUranium: min: 1 max: 2 - PartRodMetal: + PartRodMetal1: min: 1 max: 2 - !type:DoActsBehavior diff --git a/Resources/Prototypes/Entities/Structures/Windows/shuttle.yml b/Resources/Prototypes/Entities/Structures/Windows/shuttle.yml index 659f5b8a20e..1b4c96c1709 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/shuttle.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/shuttle.yml @@ -46,8 +46,8 @@ node: shuttleWindow - type: Appearance - type: DamageVisuals - thresholds: [5, 10, 20] - damageDivisor: 20 + thresholds: [4, 8, 12] + damageDivisor: 28 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks.rsi diff --git a/Resources/Prototypes/Entities/Structures/Windows/uranium.yml b/Resources/Prototypes/Entities/Structures/Windows/uranium.yml index 514463f1d32..c7b7312a709 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/uranium.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/uranium.yml @@ -11,18 +11,18 @@ state: full - type: Damageable damageContainer: StructuralInorganic - damageModifierSet: Glass + damageModifierSet: RGlass - type: Destructible thresholds: - trigger: !type:DamageTrigger - damage: 150 + damage: 100 behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] - trigger: !type:DamageTrigger - damage: 75 + damage: 60 behaviors: - !type:PlaySoundBehavior sound: @@ -41,8 +41,8 @@ node: uraniumWindow - type: Appearance - type: DamageVisuals - thresholds: [5, 10, 20] - damageDivisor: 3 + thresholds: [4, 8, 12] + damageDivisor: 3.333 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks.rsi @@ -72,8 +72,8 @@ node: uraniumWindowDirectional - type: Appearance - type: DamageVisuals - thresholds: [5, 10, 20] - damageDivisor: 1.5 + thresholds: [4, 8, 12] + damageDivisor: 3.333 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks_directional.rsi @@ -81,13 +81,7 @@ thresholds: - trigger: !type:DamageTrigger - damage: 75 - behaviors: - - !type:DoActsBehavior - acts: [ "Destruction" ] - - trigger: - !type:DamageTrigger - damage: 37 + damage: 200 behaviors: - !type:PlaySoundBehavior sound: @@ -96,7 +90,7 @@ spawn: ShardGlassUranium: min: 1 - max: 1 + max: 2 - !type:DoActsBehavior acts: [ "Destruction" ] - type: StaticPrice diff --git a/Resources/Prototypes/Entities/Structures/Windows/window.yml b/Resources/Prototypes/Entities/Structures/Windows/window.yml index fdf4c2ccead..56a38f82fcf 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/window.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/window.yml @@ -84,8 +84,8 @@ node: window - type: Appearance - type: DamageVisuals - thresholds: [5, 10, 20] - damageDivisor: 2 + thresholds: [4, 8, 12] + damageDivisor: 3.333 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks.rsi @@ -93,25 +93,6 @@ price: 100 - type: BlockWeather -- type: entity - parent: Window - id: TintedWindow - name: tinted window - components: - - type: Sprite - drawdepth: WallTops - sprite: Structures/Windows/tinted_window.rsi - - type: Icon - sprite: Structures/Windows/tinted_window.rsi - - type: IconSmooth - base: twindow - - type: Construction - graph: Window - node: tintedWindow - - type: Occluder - - type: StaticPrice - price: 70 - - type: entity id: WindowRCDResistant parent: Window @@ -177,7 +158,7 @@ thresholds: - trigger: !type:DamageTrigger - damage: 50 #excess damage (nuke?). avoid computational cost of spawning entities. + damage: 150 #excess damage (nuke?). avoid computational cost of spawning entities. behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] @@ -207,7 +188,8 @@ node: windowDirectional - type: Appearance - type: DamageVisuals - thresholds: [5, 10, 20] + thresholds: [4, 8, 12] + damageDivisor: 3.333 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks_directional.rsi @@ -238,8 +220,6 @@ - type: Icon sprite: Structures/Windows/directional.rsi state: frosted_window - - type: StaticPrice - price: 35 - type: entity parent: Window diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/structures/window.yml b/Resources/Prototypes/Recipes/Construction/Graphs/structures/window.yml index 1782c5924bf..37682eb0913 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/structures/window.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/structures/window.yml @@ -4,63 +4,61 @@ graph: - node: start edges: - - to: window # 50 hp + - to: plasmaWindow steps: - - material: Glass + - material: PlasmaGlass amount: 2 doAfter: 2 - - to: tintedWindow # 50 hp + - to: reinforcedWindow steps: - - material: Glass + - material: ReinforcedGlass amount: 2 - - material: Plastic + doAfter: 2 + + - to: tintedWindow + steps: + - material: ReinforcedGlass amount: 2 doAfter: 2 - - to: plasmaWindow # 75 hp + - to: reinforcedPlasmaWindow steps: - - material: PlasmaGlass + - material: ReinforcedPlasmaGlass amount: 2 doAfter: 3 - - to: uraniumWindow # 75 hp + - to: uraniumWindow steps: - material: UraniumGlass amount: 2 - doAfter: 3 + doAfter: 2 - - to: clockworkWindow # 75 hp reinforced damage mod + - to: reinforcedUraniumWindow steps: - - material: ClockworkGlass + - material: ReinforcedUraniumGlass amount: 2 doAfter: 3 - - to: reinforcedWindow # 75 hp reinforced damage mod + - to: window steps: - - material: ReinforcedGlass + - material: Glass amount: 2 doAfter: 3 - - to: reinforcedPlasmaWindow # 150 hp reinforced damage mod + - to: shuttleWindow steps: - - material: ReinforcedPlasmaGlass + - material: Plasteel amount: 2 - doAfter: 4 - - - to: reinforcedUraniumWindow # 150 hp reinforced damage mod - steps: - - material: ReinforcedUraniumGlass + - material: ReinforcedGlass amount: 2 doAfter: 4 - - - to: shuttleWindow # 500 hp reinforced damage mod (wow) + + - to: clockworkWindow steps: - - material: Plasteel - amount: 2 - - material: ReinforcedGlass + - material: ClockworkGlass amount: 2 - doAfter: 6 + doAfter: 3 - node: window entity: Window @@ -76,81 +74,56 @@ doAfter: 1 - tool: Anchoring doAfter: 2 - - to: tintedWindow - steps: - - material: Plastic - amount: 2 - doAfter: 0.5 - - to: plasmaWindow - steps: - - material: Plasma - amount: 2 - doAfter: 1 - - to: uraniumWindow - steps: - - material: Uranium - amount: 2 - doAfter: 1 - - to: clockworkWindow - steps: - - material: Brass - amount: 2 - doAfter: 2 - - to: reinforcedWindow - steps: - - material: MetalRod - amount: 2 - doAfter: 2 - - node: tintedWindow - entity: TintedWindow + - node: reinforcedWindow + entity: ReinforcedWindow edges: - to: start completed: - !type:SpawnPrototype - prototype: SheetGlass1 - amount: 2 - - !type:SpawnPrototype - prototype: SheetPlastic1 + prototype: SheetRGlass1 amount: 2 - !type:DeleteEntity {} steps: + - tool: Welding + doAfter: 5 + - tool: Screwing + doAfter: 1 + - tool: Prying + doAfter: 2 + - tool: Welding + doAfter: 5 - tool: Screwing doAfter: 1 - tool: Anchoring doAfter: 2 - - node: plasmaWindow - entity: PlasmaWindow + - node: tintedWindow + entity: TintedWindow edges: - to: start completed: - !type:SpawnPrototype - prototype: SheetPGlass1 + prototype: SheetRGlass1 amount: 2 - !type:DeleteEntity {} steps: - tool: Screwing - doAfter: 2 + doAfter: 1 - tool: Prying - doAfter: 3 - - tool: Screwing doAfter: 2 - - tool: Anchoring - doAfter: 3 - - to: reinforcedPlasmaWindow - steps: - - material: MetalRod - amount: 2 + - tool: Screwing doAfter: 1 + - tool: Anchoring + doAfter: 2 - - node: uraniumWindow - entity: UraniumWindow + - node: plasmaWindow + entity: PlasmaWindow edges: - to: start completed: - !type:SpawnPrototype - prototype: SheetUGlass1 + prototype: SheetPGlass1 amount: 2 - !type:DeleteEntity {} steps: @@ -162,19 +135,14 @@ doAfter: 2 - tool: Anchoring doAfter: 3 - - to: reinforcedUraniumWindow - steps: - - material: MetalRod - amount: 2 - doAfter: 1 - - node: clockworkWindow - entity: ClockworkWindow + - node: reinforcedPlasmaWindow + entity: ReinforcedPlasmaWindow edges: - to: start completed: - !type:SpawnPrototype - prototype: SheetClockworkGlass1 + prototype: SheetRPGlass1 amount: 2 - !type:DeleteEntity {} steps: @@ -191,46 +159,32 @@ - tool: Anchoring doAfter: 3 - - node: reinforcedWindow - entity: ReinforcedWindow + - node: uraniumWindow + entity: UraniumWindow edges: - to: start completed: - !type:SpawnPrototype - prototype: SheetRGlass1 + prototype: SheetUGlass1 amount: 2 - !type:DeleteEntity {} steps: - - tool: Welding - doAfter: 5 - tool: Screwing - doAfter: 1 - - tool: Prying doAfter: 2 - - tool: Welding - doAfter: 5 + - tool: Prying + doAfter: 3 - tool: Screwing - doAfter: 1 - - tool: Anchoring doAfter: 2 - - to: reinforcedPlasmaWindow - steps: - - material: Plasma - amount: 2 - doAfter: 1 - - to: reinforcedUraniumWindow - steps: - - material: Uranium - amount: 2 - doAfter: 1 + - tool: Anchoring + doAfter: 3 - - node: reinforcedPlasmaWindow - entity: ReinforcedPlasmaWindow + - node: reinforcedUraniumWindow + entity: ReinforcedUraniumWindow edges: - to: start completed: - !type:SpawnPrototype - prototype: SheetRPGlass1 + prototype: SheetRUGlass1 amount: 2 - !type:DeleteEntity {} steps: @@ -247,13 +201,13 @@ - tool: Anchoring doAfter: 3 - - node: reinforcedUraniumWindow - entity: ReinforcedUraniumWindow + - node: clockworkWindow + entity: ClockworkWindow edges: - to: start completed: - !type:SpawnPrototype - prototype: SheetRUGlass1 + prototype: SheetClockworkGlass1 amount: 2 - !type:DeleteEntity {} steps: @@ -299,4 +253,4 @@ - tool: Welding doAfter: 4 - tool: Anchoring - doAfter: 1 + doAfter: 1 \ No newline at end of file diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/structures/window_diagonal.yml b/Resources/Prototypes/Recipes/Construction/Graphs/structures/window_diagonal.yml index 63788ae5ad0..1efe1a8eac8 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/structures/window_diagonal.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/structures/window_diagonal.yml @@ -4,45 +4,45 @@ graph: - node: start edges: - - to: windowDiagonal - steps: - - material: Glass - amount: 2 - doAfter: 2 - - to: plasmaWindowDiagonal steps: - material: PlasmaGlass amount: 2 doAfter: 2 - - to: uraniumWindowDiagonal + - to: reinforcedWindowDiagonal steps: - - material: UraniumGlass + - material: ReinforcedGlass amount: 2 doAfter: 2 - - to: clockworkWindowDiagonal + - to: reinforcedPlasmaWindowDiagonal steps: - - material: ClockworkGlass + - material: ReinforcedPlasmaGlass amount: 2 doAfter: 3 - - to: reinforcedWindowDiagonal + - to: uraniumWindowDiagonal steps: - - material: ReinforcedGlass + - material: UraniumGlass amount: 2 doAfter: 2 - - to: reinforcedPlasmaWindowDiagonal + - to: reinforcedUraniumWindowDiagonal steps: - - material: ReinforcedPlasmaGlass + - material: ReinforcedUraniumGlass amount: 2 doAfter: 3 - - to: reinforcedUraniumWindowDiagonal + - to: clockworkWindowDiagonal steps: - - material: ReinforcedUraniumGlass + - material: ClockworkGlass + amount: 2 + doAfter: 3 + + - to: windowDiagonal + steps: + - material: Glass amount: 2 doAfter: 3 @@ -60,74 +60,29 @@ doAfter: 1 - tool: Anchoring doAfter: 2 - - to: plasmaWindowDiagonal - steps: - - material: Plasma - amount: 2 - doAfter: 1 - - to: uraniumWindowDiagonal - steps: - - material: Uranium - amount: 2 - doAfter: 1 - - to: clockworkWindowDiagonal - steps: - - material: Brass - amount: 2 - doAfter: 2 - - to: reinforcedWindowDiagonal - steps: - - material: MetalRod - amount: 2 - doAfter: 2 - - node: plasmaWindowDiagonal - entity: PlasmaWindowDiagonal + - node: reinforcedWindowDiagonal + entity: ReinforcedWindowDiagonal edges: - to: start completed: - !type:SpawnPrototype - prototype: SheetPGlass1 + prototype: SheetRGlass1 amount: 2 - !type:DeleteEntity {} steps: + - tool: Welding + doAfter: 5 - tool: Screwing - doAfter: 2 - - tool: Prying - doAfter: 3 - - tool: Screwing - doAfter: 2 - - tool: Anchoring - doAfter: 3 - - to: reinforcedPlasmaWindowDiagonal - steps: - - material: MetalRod - amount: 2 doAfter: 1 - - - node: uraniumWindowDiagonal - entity: UraniumWindowDiagonal - edges: - - to: start - completed: - - !type:SpawnPrototype - prototype: SheetUGlass1 - amount: 2 - - !type:DeleteEntity {} - steps: - - tool: Screwing - doAfter: 2 - tool: Prying - doAfter: 3 - - tool: Screwing doAfter: 2 - - tool: Anchoring - doAfter: 3 - - to: reinforcedUraniumWindowDiagonal - steps: - - material: MetalRod - amount: 2 + - tool: Welding + doAfter: 5 + - tool: Screwing doAfter: 1 + - tool: Anchoring + doAfter: 2 - node: clockworkWindowDiagonal entity: ClockworkWindowDiagonal @@ -152,38 +107,24 @@ - tool: Anchoring doAfter: 2 - - node: reinforcedWindowDiagonal - entity: ReinforcedWindowDiagonal + - node: plasmaWindowDiagonal + entity: PlasmaWindowDiagonal edges: - to: start completed: - !type:SpawnPrototype - prototype: SheetRGlass1 + prototype: SheetPGlass1 amount: 2 - !type:DeleteEntity {} steps: - - tool: Welding - doAfter: 5 - tool: Screwing - doAfter: 1 - - tool: Prying doAfter: 2 - - tool: Welding - doAfter: 5 + - tool: Prying + doAfter: 3 - tool: Screwing - doAfter: 1 - - tool: Anchoring doAfter: 2 - - to: reinforcedPlasmaWindowDiagonal - steps: - - material: Plasma - amount: 2 - doAfter: 1 - - to: reinforcedUraniumWindowDiagonal - steps: - - material: Uranium - amount: 2 - doAfter: 1 + - tool: Anchoring + doAfter: 3 - node: reinforcedPlasmaWindowDiagonal entity: ReinforcedPlasmaWindowDiagonal @@ -208,6 +149,25 @@ - tool: Anchoring doAfter: 3 + - node: uraniumWindowDiagonal + entity: UraniumWindowDiagonal + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetUGlass1 + amount: 2 + - !type:DeleteEntity {} + steps: + - tool: Screwing + doAfter: 2 + - tool: Prying + doAfter: 3 + - tool: Screwing + doAfter: 2 + - tool: Anchoring + doAfter: 3 + - node: reinforcedUraniumWindowDiagonal entity: ReinforcedUraniumWindowDiagonal edges: @@ -229,4 +189,4 @@ - tool: Screwing doAfter: 2 - tool: Anchoring - doAfter: 3 + doAfter: 3 \ No newline at end of file diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/structures/windowdirectional.yml b/Resources/Prototypes/Recipes/Construction/Graphs/structures/windowdirectional.yml index 7d3ace33c7f..dc10ce9ecbb 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/structures/windowdirectional.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/structures/windowdirectional.yml @@ -4,55 +4,47 @@ graph: - node: start edges: - - to: windowDirectional # 25 hp - steps: - - material: Glass - amount: 1 - doAfter: 1 - - to: windowFrostedDirectional # 25 hp + - to: windowDirectional steps: - material: Glass amount: 1 - - material: Plastic - amount: 1 - doAfter: 1 + doAfter: 2 - - to: plasmaWindowDirectional # 37 hp + - to: windowReinforcedDirectional steps: - - material: PlasmaGlass + - material: ReinforcedGlass amount: 1 - doAfter: 1.5 + doAfter: 3 - - to: uraniumWindowDirectional # 37 hp + - to: plasmaWindowDirectional steps: - - material: UraniumGlass + - material: PlasmaGlass amount: 1 - doAfter: 1.5 + doAfter: 2 - - to: windowClockworkDirectional # 37 hp reinforced damage mod + - to: plasmaReinforcedWindowDirectional steps: - - material: ClockworkGlass + - material: ReinforcedPlasmaGlass amount: 1 - doAfter: 1.5 - - - to: windowReinforcedDirectional # 37 hp reinforced damage mod + doAfter: 3 + - to: uraniumWindowDirectional steps: - - material: ReinforcedGlass + - material: UraniumGlass amount: 1 - doAfter: 1.5 + doAfter: 2 - - to: plasmaReinforcedWindowDirectional # 75 hp reinforced damage mod + - to: uraniumReinforcedWindowDirectional steps: - - material: ReinforcedPlasmaGlass + - material: ReinforcedUraniumGlass amount: 1 - doAfter: 2 + doAfter: 3 - - to: uraniumReinforcedWindowDirectional # 75 hp reinforced damage mod + - to: windowClockworkDirectional steps: - - material: ReinforcedUraniumGlass + - material: ClockworkGlass amount: 1 - doAfter: 2 + doAfter: 3 - node: windowDirectional entity: WindowDirectional @@ -68,45 +60,21 @@ doAfter: 1 - tool: Anchoring doAfter: 2 - - to: windowFrostedDirectional - steps: - - material: Plastic - amount: 1 - doAfter: 0.5 - - to: plasmaWindowDirectional - steps: - - material: Plasma - amount: 1 - doAfter: 0.5 - - to: uraniumWindowDirectional - steps: - - material: Uranium - amount: 1 - doAfter: 0.5 - - to: windowClockworkDirectional - steps: - - material: Brass - amount: 1 - doAfter: 1 - - to: windowReinforcedDirectional - steps: - - material: MetalRod - amount: 1 - doAfter: 1 - - node: windowFrostedDirectional - entity: WindowFrostedDirectional + - node: windowReinforcedDirectional + entity: WindowReinforcedDirectional edges: - to: start completed: - !type:SpawnPrototype - prototype: SheetGlass1 - amount: 1 - - !type:SpawnPrototype - prototype: SheetPlastic1 + prototype: SheetRGlass1 amount: 1 - !type:DeleteEntity {} steps: + - tool: Screwing + doAfter: 1 + - tool: Prying + doAfter: 2 - tool: Screwing doAfter: 1 - tool: Anchoring @@ -130,19 +98,14 @@ doAfter: 2 - tool: Anchoring doAfter: 3 - - to: plasmaReinforcedWindowDirectional - steps: - - material: MetalRod - amount: 1 - doAfter: 0.5 - - node: uraniumWindowDirectional - entity: UraniumWindowDirectional + - node: windowClockworkDirectional + entity: WindowClockworkDirectional edges: - to: start completed: - !type:SpawnPrototype - prototype: SheetUGlass1 + prototype: SheetClockworkGlass1 amount: 1 - !type:DeleteEntity {} steps: @@ -154,19 +117,14 @@ doAfter: 2 - tool: Anchoring doAfter: 3 - - to: uraniumReinforcedWindowDirectional - steps: - - material: MetalRod - amount: 1 - doAfter: 0.5 - - node: windowClockworkDirectional - entity: WindowClockworkDirectional + - node: plasmaReinforcedWindowDirectional + entity: PlasmaReinforcedWindowDirectional edges: - to: start completed: - !type:SpawnPrototype - prototype: SheetClockworkGlass1 + prototype: SheetRPGlass1 amount: 1 - !type:DeleteEntity {} steps: @@ -178,43 +136,13 @@ doAfter: 2 - tool: Anchoring doAfter: 3 - - - node: windowReinforcedDirectional - entity: WindowReinforcedDirectional - edges: - - to: start - completed: - - !type:SpawnPrototype - prototype: SheetRGlass1 - amount: 1 - - !type:DeleteEntity {} - steps: - - tool: Screwing - doAfter: 1 - - tool: Prying - doAfter: 2 - - tool: Screwing - doAfter: 1 - - tool: Anchoring - doAfter: 2 - - to: plasmaReinforcedWindowDirectional - steps: - - material: Plasma - amount: 1 - doAfter: 0.5 - - to: uraniumReinforcedWindowDirectional - steps: - - material: Uranium - amount: 1 - doAfter: 0.5 - - - node: plasmaReinforcedWindowDirectional - entity: PlasmaReinforcedWindowDirectional + - node: uraniumWindowDirectional + entity: UraniumWindowDirectional edges: - to: start completed: - !type:SpawnPrototype - prototype: SheetRPGlass1 + prototype: SheetUGlass1 amount: 1 - !type:DeleteEntity {} steps: @@ -244,4 +172,4 @@ - tool: Screwing doAfter: 2 - tool: Anchoring - doAfter: 3 + doAfter: 3 \ No newline at end of file diff --git a/Resources/Prototypes/Recipes/Construction/structures.yml b/Resources/Prototypes/Recipes/Construction/structures.yml index 71fdbeedafd..31e1264ab08 100644 --- a/Resources/Prototypes/Recipes/Construction/structures.yml +++ b/Resources/Prototypes/Recipes/Construction/structures.yml @@ -455,7 +455,7 @@ startNode: start targetNode: tintedWindow category: construction-category-structures - description: Not clear, but lasers still pass through. + description: Not clear but tough. canBuildInImpassable: true conditions: - !type:EmptyOrWindowValidInTile @@ -512,7 +512,7 @@ targetNode: plasmaWindow category: construction-category-structures canBuildInImpassable: true - description: Clear, with a purple tint. + description: Clear and even tougher, with a purple tint. conditions: - !type:EmptyOrWindowValidInTile - !type:NoWindowsInTile @@ -531,7 +531,7 @@ targetNode: reinforcedPlasmaWindow category: construction-category-structures canBuildInImpassable: true - description: Clear and even tougher, with a purple tint. + description: Fire resistant and even tougher, with a purple tint. conditions: - !type:EmptyOrWindowValidInTile - !type:NoWindowsInTile @@ -569,7 +569,7 @@ targetNode: plasmaWindowDiagonal category: construction-category-structures canBuildInImpassable: true - description: Clear, with a purple tint. + description: Clear and even tougher, with a purple tint. conditions: - !type:EmptyOrWindowValidInTile - !type:NoWindowsInTile @@ -587,7 +587,7 @@ targetNode: reinforcedPlasmaWindowDiagonal category: construction-category-structures canBuildInImpassable: true - description: Clear and even tougher, with a purple tint. + description: Fire resistant and even tougher, with a purple tint. conditions: - !type:EmptyOrWindowValidInTile - !type:NoWindowsInTile @@ -659,7 +659,7 @@ targetNode: plasmaWindowDirectional category: construction-category-structures canBuildInImpassable: true - description: Clear, with a purple tint. + description: Clear and even tougher, with a purple tint. conditions: - !type:EmptyOrWindowValidInTile - !type:NoWindowsInTile @@ -677,7 +677,7 @@ targetNode: plasmaReinforcedWindowDirectional category: construction-category-structures canBuildInImpassable: true - description: Clear and even tougher, with a purple tint. + description: Fire resistant and even tougher, with a purple tint. conditions: - !type:EmptyOrWindowValidInTile - !type:NoWindowsInTile @@ -695,7 +695,7 @@ targetNode: uraniumWindow category: construction-category-structures canBuildInImpassable: true - description: Clear, with added RadAbsorb to protect you from deadly radiation. + description: Clear and much tougher than regular glass, with added RadAbsorb to protect you from deadly radiation. conditions: - !type:EmptyOrWindowValidInTile - !type:NoWindowsInTile @@ -714,7 +714,7 @@ targetNode: reinforcedUraniumWindow category: construction-category-structures canBuildInImpassable: true - description: Clear and even tougher, with added RadAbsorb to protect you from deadly radiation. + description: Clear and much tougher than regular glass, with added RadAbsorb to protect you from deadly radiation. conditions: - !type:EmptyOrWindowValidInTile - !type:NoWindowsInTile @@ -733,7 +733,7 @@ targetNode: uraniumWindowDiagonal category: construction-category-structures canBuildInImpassable: true - description: Clear, with added RadAbsorb to protect you from deadly radiation. + description: Clear and much tougher than regular glass, with added RadAbsorb to protect you from deadly radiation. conditions: - !type:EmptyOrWindowValidInTile - !type:NoWindowsInTile @@ -751,7 +751,7 @@ targetNode: reinforcedUraniumWindowDiagonal category: construction-category-structures canBuildInImpassable: true - description: Clear and even tougher, with added RadAbsorb to protect you from deadly radiation. + description: Clear and much tougher than regular glass, with added RadAbsorb to protect you from deadly radiation. conditions: - !type:EmptyOrWindowValidInTile - !type:NoWindowsInTile @@ -1456,24 +1456,6 @@ # Same here. - 20kdc - !type:TileNotBlocked -- type: construction - name: emergency light - id: EmergencyLightFixture - graph: LightFixture - startNode: start - targetNode: emergencyLight - category: construction-category-structures - description: An emergency light. - icon: - sprite: Structures/Wallmounts/Lighting/emergency_light.rsi - state: base - objectType: Structure - placementMode: SnapgridCenter - canRotate: true - canBuildInImpassable: false - conditions: - - !type:TileNotBlocked - - type: construction name: ground light post id: LightGroundFixture @@ -1746,4 +1728,4 @@ sprite: Structures/Doors/secret_door.rsi state: closed conditions: - - !type:TileNotBlocked + - !type:TileNotBlocked \ No newline at end of file diff --git a/Resources/Textures/Structures/Windows/cracks.rsi/DamageOverlay_20.png b/Resources/Textures/Structures/Windows/cracks.rsi/DamageOverlay_12.png similarity index 100% rename from Resources/Textures/Structures/Windows/cracks.rsi/DamageOverlay_20.png rename to Resources/Textures/Structures/Windows/cracks.rsi/DamageOverlay_12.png diff --git a/Resources/Textures/Structures/Windows/cracks.rsi/DamageOverlay_5.png b/Resources/Textures/Structures/Windows/cracks.rsi/DamageOverlay_4.png similarity index 100% rename from Resources/Textures/Structures/Windows/cracks.rsi/DamageOverlay_5.png rename to Resources/Textures/Structures/Windows/cracks.rsi/DamageOverlay_4.png diff --git a/Resources/Textures/Structures/Windows/cracks.rsi/DamageOverlay_10.png b/Resources/Textures/Structures/Windows/cracks.rsi/DamageOverlay_8.png similarity index 100% rename from Resources/Textures/Structures/Windows/cracks.rsi/DamageOverlay_10.png rename to Resources/Textures/Structures/Windows/cracks.rsi/DamageOverlay_8.png diff --git a/Resources/Textures/Structures/Windows/cracks.rsi/meta.json b/Resources/Textures/Structures/Windows/cracks.rsi/meta.json index ca012e8fc5c..9d0cc9a505d 100644 --- a/Resources/Textures/Structures/Windows/cracks.rsi/meta.json +++ b/Resources/Textures/Structures/Windows/cracks.rsi/meta.json @@ -7,8 +7,8 @@ "license": "CC-BY-SA-3.0", "copyright": "Taken from https://github.com/tgstation/tgstation at commit e06b82a7f4b2b09216fb28fd384c95a2e1dc50e5", "states": [ - {"name": "DamageOverlay_5", "directions": 1}, - {"name": "DamageOverlay_10", "directions": 1}, - {"name": "DamageOverlay_20", "directions": 1} + {"name": "DamageOverlay_4", "directions": 1}, + {"name": "DamageOverlay_8", "directions": 1}, + {"name": "DamageOverlay_12", "directions": 1} ] } diff --git a/Resources/Textures/Structures/Windows/cracks_diagonal.rsi/DamageOverlay_20.png b/Resources/Textures/Structures/Windows/cracks_diagonal.rsi/DamageOverlay_12.png similarity index 100% rename from Resources/Textures/Structures/Windows/cracks_diagonal.rsi/DamageOverlay_20.png rename to Resources/Textures/Structures/Windows/cracks_diagonal.rsi/DamageOverlay_12.png diff --git a/Resources/Textures/Structures/Windows/cracks_diagonal.rsi/DamageOverlay_5.png b/Resources/Textures/Structures/Windows/cracks_diagonal.rsi/DamageOverlay_4.png similarity index 100% rename from Resources/Textures/Structures/Windows/cracks_diagonal.rsi/DamageOverlay_5.png rename to Resources/Textures/Structures/Windows/cracks_diagonal.rsi/DamageOverlay_4.png diff --git a/Resources/Textures/Structures/Windows/cracks_diagonal.rsi/DamageOverlay_10.png b/Resources/Textures/Structures/Windows/cracks_diagonal.rsi/DamageOverlay_8.png similarity index 100% rename from Resources/Textures/Structures/Windows/cracks_diagonal.rsi/DamageOverlay_10.png rename to Resources/Textures/Structures/Windows/cracks_diagonal.rsi/DamageOverlay_8.png diff --git a/Resources/Textures/Structures/Windows/cracks_diagonal.rsi/meta.json b/Resources/Textures/Structures/Windows/cracks_diagonal.rsi/meta.json index ca012e8fc5c..9d0cc9a505d 100644 --- a/Resources/Textures/Structures/Windows/cracks_diagonal.rsi/meta.json +++ b/Resources/Textures/Structures/Windows/cracks_diagonal.rsi/meta.json @@ -7,8 +7,8 @@ "license": "CC-BY-SA-3.0", "copyright": "Taken from https://github.com/tgstation/tgstation at commit e06b82a7f4b2b09216fb28fd384c95a2e1dc50e5", "states": [ - {"name": "DamageOverlay_5", "directions": 1}, - {"name": "DamageOverlay_10", "directions": 1}, - {"name": "DamageOverlay_20", "directions": 1} + {"name": "DamageOverlay_4", "directions": 1}, + {"name": "DamageOverlay_8", "directions": 1}, + {"name": "DamageOverlay_12", "directions": 1} ] } diff --git a/Resources/Textures/Structures/Windows/cracks_directional.rsi/DamageOverlay_20.png b/Resources/Textures/Structures/Windows/cracks_directional.rsi/DamageOverlay_12.png similarity index 100% rename from Resources/Textures/Structures/Windows/cracks_directional.rsi/DamageOverlay_20.png rename to Resources/Textures/Structures/Windows/cracks_directional.rsi/DamageOverlay_12.png diff --git a/Resources/Textures/Structures/Windows/cracks_directional.rsi/DamageOverlay_5.png b/Resources/Textures/Structures/Windows/cracks_directional.rsi/DamageOverlay_4.png similarity index 100% rename from Resources/Textures/Structures/Windows/cracks_directional.rsi/DamageOverlay_5.png rename to Resources/Textures/Structures/Windows/cracks_directional.rsi/DamageOverlay_4.png diff --git a/Resources/Textures/Structures/Windows/cracks_directional.rsi/DamageOverlay_10.png b/Resources/Textures/Structures/Windows/cracks_directional.rsi/DamageOverlay_8.png similarity index 100% rename from Resources/Textures/Structures/Windows/cracks_directional.rsi/DamageOverlay_10.png rename to Resources/Textures/Structures/Windows/cracks_directional.rsi/DamageOverlay_8.png diff --git a/Resources/Textures/Structures/Windows/cracks_directional.rsi/meta.json b/Resources/Textures/Structures/Windows/cracks_directional.rsi/meta.json index 9555aa5ab35..df077f67d2b 100644 --- a/Resources/Textures/Structures/Windows/cracks_directional.rsi/meta.json +++ b/Resources/Textures/Structures/Windows/cracks_directional.rsi/meta.json @@ -8,15 +8,15 @@ "copyright": "Adapted from https://github.com/space-wizards/space-station-14/ at commit f57e8ec6b9b4b72ef56c8146be0bc159ed2691ee, originally added by Zumorica, and modified for directional use by Darkie", "states": [ { - "name": "DamageOverlay_5", + "name": "DamageOverlay_4", "directions": 4 }, { - "name": "DamageOverlay_10", + "name": "DamageOverlay_8", "directions": 4 }, { - "name": "DamageOverlay_20", + "name": "DamageOverlay_12", "directions": 4 } ] From 6c7336b0a8330369f8a96bff752dda570e3ffb59 Mon Sep 17 00:00:00 2001 From: cohanna Date: Wed, 6 Nov 2024 22:01:10 -0700 Subject: [PATCH 03/18] oops reverted too much --- Resources/Prototypes/Entities/Structures/Windows/clockwork.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Resources/Prototypes/Entities/Structures/Windows/clockwork.yml b/Resources/Prototypes/Entities/Structures/Windows/clockwork.yml index 992dfcda1cb..6abeae5760b 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/clockwork.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/clockwork.yml @@ -86,6 +86,7 @@ - trigger: !type:DamageTrigger damage: 150 + behaviors: - !type:PlaySoundBehavior sound: collection: WindowShatter @@ -142,4 +143,4 @@ sprite: Structures/Windows/cracks_diagonal.rsi - type: Construction graph: WindowDiagonal - node: clockworkWindowDiagonal + node: clockworkWindowDiagonal \ No newline at end of file From e9f6a02f18959577f8f56c6ba511749cb34d0ce0 Mon Sep 17 00:00:00 2001 From: cohanna Date: Tue, 12 Nov 2024 19:05:56 -0700 Subject: [PATCH 04/18] un-reverted fixes --- .../Entities/Structures/Windows/clockwork.yml | 19 ++++++--- .../Entities/Structures/Windows/mining.yml | 6 +-- .../Entities/Structures/Windows/plasma.yml | 29 ++++++++------ .../Structures/Windows/plastitanium.yml | 10 ++--- .../Structures/Windows/reinforced.yml | 37 +++++------------- .../Entities/Structures/Windows/rplasma.yml | 18 ++++----- .../Entities/Structures/Windows/ruranium.yml | 20 ++++++---- .../Entities/Structures/Windows/shuttle.yml | 6 +-- .../Entities/Structures/Windows/uranium.yml | 28 +++++++------ .../Entities/Structures/Windows/window.yml | 32 ++++++++++++--- ...mageOverlay_8.png => DamageOverlay_10.png} | Bin ...ageOverlay_12.png => DamageOverlay_20.png} | Bin ...amageOverlay_4.png => DamageOverlay_5.png} | Bin .../Structures/Windows/cracks.rsi/meta.json | 6 +-- ...mageOverlay_8.png => DamageOverlay_10.png} | Bin ...ageOverlay_12.png => DamageOverlay_20.png} | Bin ...amageOverlay_4.png => DamageOverlay_5.png} | Bin .../Windows/cracks_diagonal.rsi/meta.json | 6 +-- ...mageOverlay_8.png => DamageOverlay_10.png} | Bin ...ageOverlay_12.png => DamageOverlay_20.png} | Bin ...amageOverlay_4.png => DamageOverlay_5.png} | Bin .../Windows/cracks_directional.rsi/meta.json | 6 +-- 22 files changed, 123 insertions(+), 100 deletions(-) rename Resources/Textures/Structures/Windows/cracks.rsi/{DamageOverlay_8.png => DamageOverlay_10.png} (100%) rename Resources/Textures/Structures/Windows/cracks.rsi/{DamageOverlay_12.png => DamageOverlay_20.png} (100%) rename Resources/Textures/Structures/Windows/cracks.rsi/{DamageOverlay_4.png => DamageOverlay_5.png} (100%) rename Resources/Textures/Structures/Windows/cracks_diagonal.rsi/{DamageOverlay_8.png => DamageOverlay_10.png} (100%) rename Resources/Textures/Structures/Windows/cracks_diagonal.rsi/{DamageOverlay_12.png => DamageOverlay_20.png} (100%) rename Resources/Textures/Structures/Windows/cracks_diagonal.rsi/{DamageOverlay_4.png => DamageOverlay_5.png} (100%) rename Resources/Textures/Structures/Windows/cracks_directional.rsi/{DamageOverlay_8.png => DamageOverlay_10.png} (100%) rename Resources/Textures/Structures/Windows/cracks_directional.rsi/{DamageOverlay_12.png => DamageOverlay_20.png} (100%) rename Resources/Textures/Structures/Windows/cracks_directional.rsi/{DamageOverlay_4.png => DamageOverlay_5.png} (100%) diff --git a/Resources/Prototypes/Entities/Structures/Windows/clockwork.yml b/Resources/Prototypes/Entities/Structures/Windows/clockwork.yml index 6abeae5760b..8421b6b4dc6 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/clockwork.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/clockwork.yml @@ -47,8 +47,8 @@ node: clockworkWindow - type: Appearance - type: DamageVisuals - thresholds: [4, 8, 12] - damageDivisor: 4 + thresholds: [5, 10, 20] + damageDivisor: 3 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks.rsi @@ -74,8 +74,8 @@ node: windowClockworkDirectional - type: Appearance - type: DamageVisuals - thresholds: [4, 8, 12] - damageDivisor: 10 + thresholds: [5, 10, 20] + damageDivisor: 1.5 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks_directional.rsi @@ -85,7 +85,16 @@ thresholds: - trigger: !type:DamageTrigger - damage: 150 + damage: 75 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: WindowShatter + - trigger: + !type:DamageTrigger + damage: 37 behaviors: - !type:PlaySoundBehavior sound: diff --git a/Resources/Prototypes/Entities/Structures/Windows/mining.yml b/Resources/Prototypes/Entities/Structures/Windows/mining.yml index 82d11b732b6..9d05fbb5e23 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/mining.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/mining.yml @@ -43,8 +43,8 @@ base: mwindow - type: Appearance - type: DamageVisuals - thresholds: [4, 8, 12] - damageDivisor: 6 + thresholds: [5, 10, 20] + damageDivisor: 4 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks.rsi @@ -91,4 +91,4 @@ - East - type: DamageVisuals damageOverlay: - sprite: Structures/Windows/cracks_diagonal.rsi + sprite: Structures/Windows/cracks_diagonal.rsi \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Structures/Windows/plasma.yml b/Resources/Prototypes/Entities/Structures/Windows/plasma.yml index 66fac515a77..bdeb37c6bb7 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/plasma.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/plasma.yml @@ -10,12 +10,12 @@ sprite: Structures/Windows/plasma_window.rsi - type: Damageable damageContainer: StructuralInorganic - damageModifierSet: RGlass + damageModifierSet: Glass - type: Destructible thresholds: - trigger: !type:DamageTrigger - damage: 120 + damage: 150 behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] @@ -24,7 +24,7 @@ collection: WindowShatter - trigger: !type:DamageTrigger - damage: 60 + damage: 75 behaviors: - !type:PlaySoundBehavior sound: @@ -43,8 +43,8 @@ node: plasmaWindow - type: Appearance - type: DamageVisuals - thresholds: [4, 8, 12] - damageDivisor: 3.333 + thresholds: [5, 10, 20] + damageDivisor: 3 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks.rsi @@ -74,8 +74,8 @@ node: plasmaWindowDirectional - type: Appearance - type: DamageVisuals - thresholds: [4, 8, 12] - damageDivisor: 3.333 + thresholds: [5, 10, 20] + damageDivisor: 1.5 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks_directional.rsi @@ -83,7 +83,16 @@ thresholds: - trigger: !type:DamageTrigger - damage: 200 + damage: 75 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: WindowShatter + - trigger: + !type:DamageTrigger + damage: 37 behaviors: - !type:PlaySoundBehavior sound: @@ -97,8 +106,6 @@ acts: [ "Destruction" ] - type: StaticPrice price: 50 - - type: RadiationBlocker - resistance: 1 - type: entity parent: PlasmaWindow @@ -143,4 +150,4 @@ sprite: Structures/Windows/cracks_diagonal.rsi - type: Construction graph: WindowDiagonal - node: plasmaWindowDiagonal + node: plasmaWindowDiagonal \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Structures/Windows/plastitanium.yml b/Resources/Prototypes/Entities/Structures/Windows/plastitanium.yml index 2134cfe8927..c50bc6e030b 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/plastitanium.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/plastitanium.yml @@ -98,8 +98,8 @@ - !type:DoActsBehavior acts: [ "Destruction" ] - type: DamageVisuals - thresholds: [4, 8, 12] - damageDivisor: 28 + thresholds: [5, 10, 20] + damageDivisor: 20 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks.rsi @@ -185,8 +185,8 @@ - !type:DoActsBehavior acts: [ "Destruction" ] - type: DamageVisuals - thresholds: [4, 8, 12] - damageDivisor: 28 + thresholds: [5, 10, 20] + damageDivisor: 20 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks_diagonal.rsi @@ -195,4 +195,4 @@ doAfterDelay: 3 - type: Damageable damageContainer: StructuralInorganic - damageModifierSet: RGlass + damageModifierSet: RGlass \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Structures/Windows/reinforced.yml b/Resources/Prototypes/Entities/Structures/Windows/reinforced.yml index 503d2eec6e3..238b71e3fde 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/reinforced.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/reinforced.yml @@ -50,31 +50,12 @@ node: reinforcedWindow - type: Appearance - type: DamageVisuals - thresholds: [4, 8, 12] - damageDivisor: 4 + thresholds: [5, 10, 20] + damageDivisor: 3 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks.rsi -- type: entity - parent: ReinforcedWindow - id: TintedWindow - name: tinted window - components: - - type: Sprite - drawdepth: WallTops - sprite: Structures/Windows/tinted_window.rsi - - type: Icon - sprite: Structures/Windows/tinted_window.rsi - - type: IconSmooth - base: twindow - - type: Construction - graph: Window - node: tintedWindow - - type: Occluder - - type: StaticPrice - price: 45 - - type: entity id: WindowReinforcedDirectional parent: WindowDirectional @@ -96,8 +77,8 @@ node: windowReinforcedDirectional - type: Appearance - type: DamageVisuals - thresholds: [4, 8, 12] - damageDivisor: 10 + thresholds: [5, 10, 20] + damageDivisor: 1.5 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks_directional.rsi @@ -111,16 +92,16 @@ thresholds: - trigger: !type:DamageTrigger - damage: 150 #excess damage (nuke?). avoid computational cost of spawning entities. + damage: 75 behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: collection: WindowShatter - - !type:DoActsBehavior - acts: [ "Destruction" ] - trigger: !type:DamageTrigger - damage: 50 + damage: 37 behaviors: - !type:PlaySoundBehavior sound: @@ -178,4 +159,4 @@ sprite: Structures/Windows/cracks_diagonal.rsi - type: Construction graph: WindowDiagonal - node: reinforcedWindowDiagonal + node: reinforcedWindowDiagonal \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Structures/Windows/rplasma.yml b/Resources/Prototypes/Entities/Structures/Windows/rplasma.yml index 0940ac308a5..2ea710e6e77 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/rplasma.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/rplasma.yml @@ -17,7 +17,7 @@ thresholds: - trigger: !type:DamageTrigger - damage: 200 + damage: 300 behaviors: #excess damage, don't spawn entities. - !type:DoActsBehavior acts: [ "Destruction" ] @@ -26,7 +26,7 @@ collection: WindowShatter - trigger: !type:DamageTrigger - damage: 100 + damage: 150 behaviors: - !type:PlaySoundBehavior sound: @@ -48,7 +48,7 @@ node: reinforcedPlasmaWindow - type: Appearance - type: DamageVisuals - thresholds: [4, 8, 12] + thresholds: [5, 10, 20] damageDivisor: 6 trackAllDamage: true damageOverlay: @@ -77,24 +77,22 @@ node: plasmaReinforcedWindowDirectional - type: Appearance - type: DamageVisuals - thresholds: [4, 8, 12] - damageDivisor: 36 + thresholds: [5, 10, 20] + damageDivisor: 3 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks_directional.rsi - - type: RadiationBlocker - resistance: 2 - type: Destructible thresholds: - trigger: !type:DamageTrigger - damage: 1000 + damage: 150 behaviors: #excess damage, don't spawn entities. - !type:DoActsBehavior acts: [ "Destruction" ] - trigger: !type:DamageTrigger - damage: 600 + damage: 75 behaviors: - !type:PlaySoundBehavior sound: @@ -155,4 +153,4 @@ sprite: Structures/Windows/cracks_diagonal.rsi - type: Construction graph: WindowDiagonal - node: reinforcedPlasmaWindowDiagonal + node: reinforcedPlasmaWindowDiagonal \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Structures/Windows/ruranium.yml b/Resources/Prototypes/Entities/Structures/Windows/ruranium.yml index b9b47c00ea9..fe40b21ba26 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/ruranium.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/ruranium.yml @@ -43,7 +43,7 @@ node: reinforcedUraniumWindow - type: Appearance - type: DamageVisuals - thresholds: [4, 8, 12] + thresholds: [5, 10, 20] damageDivisor: 6 trackAllDamage: true damageOverlay: @@ -74,8 +74,8 @@ node: uraniumReinforcedWindowDirectional - type: Appearance - type: DamageVisuals - thresholds: [4, 8, 12] - damageDivisor: 3.333 + thresholds: [5, 10, 20] + damageDivisor: 3 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks_directional.rsi @@ -83,7 +83,13 @@ thresholds: - trigger: !type:DamageTrigger - damage: 200 + damage: 150 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 75 behaviors: - !type:PlaySoundBehavior sound: @@ -93,15 +99,13 @@ ShardGlassUranium: min: 1 max: 2 - PartRodMetal1: + PartRodMetal: min: 1 max: 2 - !type:DoActsBehavior acts: [ "Destruction" ] - type: StaticPrice price: 110 - - type: RadiationBlocker - resistance: 2.5 - type: entity parent: ReinforcedUraniumWindow @@ -146,4 +150,4 @@ sprite: Structures/Windows/cracks_diagonal.rsi - type: Construction graph: WindowDiagonal - node: reinforcedUraniumWindowDiagonal + node: reinforcedUraniumWindowDiagonal \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Structures/Windows/shuttle.yml b/Resources/Prototypes/Entities/Structures/Windows/shuttle.yml index 1b4c96c1709..f70b684abd2 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/shuttle.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/shuttle.yml @@ -46,8 +46,8 @@ node: shuttleWindow - type: Appearance - type: DamageVisuals - thresholds: [4, 8, 12] - damageDivisor: 28 + thresholds: [5, 10, 20] + damageDivisor: 20 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks.rsi @@ -94,4 +94,4 @@ - East - type: DamageVisuals damageOverlay: - sprite: Structures/Windows/cracks_diagonal.rsi + sprite: Structures/Windows/cracks_diagonal.rsi \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Structures/Windows/uranium.yml b/Resources/Prototypes/Entities/Structures/Windows/uranium.yml index c7b7312a709..25ad1b876ed 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/uranium.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/uranium.yml @@ -11,18 +11,18 @@ state: full - type: Damageable damageContainer: StructuralInorganic - damageModifierSet: RGlass + damageModifierSet: Glass - type: Destructible thresholds: - trigger: !type:DamageTrigger - damage: 100 + damage: 150 behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] - trigger: !type:DamageTrigger - damage: 60 + damage: 75 behaviors: - !type:PlaySoundBehavior sound: @@ -41,8 +41,8 @@ node: uraniumWindow - type: Appearance - type: DamageVisuals - thresholds: [4, 8, 12] - damageDivisor: 3.333 + thresholds: [5, 10, 20] + damageDivisor: 3 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks.rsi @@ -72,8 +72,8 @@ node: uraniumWindowDirectional - type: Appearance - type: DamageVisuals - thresholds: [4, 8, 12] - damageDivisor: 3.333 + thresholds: [5, 10, 20] + damageDivisor: 1.5 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks_directional.rsi @@ -81,7 +81,13 @@ thresholds: - trigger: !type:DamageTrigger - damage: 200 + damage: 75 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 37 behaviors: - !type:PlaySoundBehavior sound: @@ -90,13 +96,11 @@ spawn: ShardGlassUranium: min: 1 - max: 2 + max: 1 - !type:DoActsBehavior acts: [ "Destruction" ] - type: StaticPrice price: 100 - - type: RadiationBlocker - resistance: 1.5 - type: entity parent: UraniumWindow @@ -141,4 +145,4 @@ sprite: Structures/Windows/cracks_diagonal.rsi - type: Construction graph: WindowDiagonal - node: uraniumWindowDiagonal + node: uraniumWindowDiagonal \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Structures/Windows/window.yml b/Resources/Prototypes/Entities/Structures/Windows/window.yml index 56a38f82fcf..5b6530a9e5d 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/window.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/window.yml @@ -84,8 +84,8 @@ node: window - type: Appearance - type: DamageVisuals - thresholds: [4, 8, 12] - damageDivisor: 3.333 + thresholds: [5, 10, 20] + damageDivisor: 2 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks.rsi @@ -93,6 +93,25 @@ price: 100 - type: BlockWeather +- type: entity + parent: Window + id: TintedWindow + name: tinted window + components: + - type: Sprite + drawdepth: WallTops + sprite: Structures/Windows/tinted_window.rsi + - type: Icon + sprite: Structures/Windows/tinted_window.rsi + - type: IconSmooth + base: twindow + - type: Construction + graph: Window + node: tintedWindow + - type: Occluder + - type: StaticPrice + price: 70 + - type: entity id: WindowRCDResistant parent: Window @@ -158,7 +177,7 @@ thresholds: - trigger: !type:DamageTrigger - damage: 150 #excess damage (nuke?). avoid computational cost of spawning entities. + damage: 50 #excess damage (nuke?). avoid computational cost of spawning entities. behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] @@ -188,8 +207,7 @@ node: windowDirectional - type: Appearance - type: DamageVisuals - thresholds: [4, 8, 12] - damageDivisor: 3.333 + thresholds: [5, 10, 20] trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks_directional.rsi @@ -220,6 +238,8 @@ - type: Icon sprite: Structures/Windows/directional.rsi state: frosted_window + - type: StaticPrice + price: 35 - type: entity parent: Window @@ -264,4 +284,4 @@ sprite: Structures/Windows/cracks_diagonal.rsi - type: Construction graph: WindowDiagonal - node: windowDiagonal + node: windowDiagonal \ No newline at end of file diff --git a/Resources/Textures/Structures/Windows/cracks.rsi/DamageOverlay_8.png b/Resources/Textures/Structures/Windows/cracks.rsi/DamageOverlay_10.png similarity index 100% rename from Resources/Textures/Structures/Windows/cracks.rsi/DamageOverlay_8.png rename to Resources/Textures/Structures/Windows/cracks.rsi/DamageOverlay_10.png diff --git a/Resources/Textures/Structures/Windows/cracks.rsi/DamageOverlay_12.png b/Resources/Textures/Structures/Windows/cracks.rsi/DamageOverlay_20.png similarity index 100% rename from Resources/Textures/Structures/Windows/cracks.rsi/DamageOverlay_12.png rename to Resources/Textures/Structures/Windows/cracks.rsi/DamageOverlay_20.png diff --git a/Resources/Textures/Structures/Windows/cracks.rsi/DamageOverlay_4.png b/Resources/Textures/Structures/Windows/cracks.rsi/DamageOverlay_5.png similarity index 100% rename from Resources/Textures/Structures/Windows/cracks.rsi/DamageOverlay_4.png rename to Resources/Textures/Structures/Windows/cracks.rsi/DamageOverlay_5.png diff --git a/Resources/Textures/Structures/Windows/cracks.rsi/meta.json b/Resources/Textures/Structures/Windows/cracks.rsi/meta.json index 9d0cc9a505d..ca012e8fc5c 100644 --- a/Resources/Textures/Structures/Windows/cracks.rsi/meta.json +++ b/Resources/Textures/Structures/Windows/cracks.rsi/meta.json @@ -7,8 +7,8 @@ "license": "CC-BY-SA-3.0", "copyright": "Taken from https://github.com/tgstation/tgstation at commit e06b82a7f4b2b09216fb28fd384c95a2e1dc50e5", "states": [ - {"name": "DamageOverlay_4", "directions": 1}, - {"name": "DamageOverlay_8", "directions": 1}, - {"name": "DamageOverlay_12", "directions": 1} + {"name": "DamageOverlay_5", "directions": 1}, + {"name": "DamageOverlay_10", "directions": 1}, + {"name": "DamageOverlay_20", "directions": 1} ] } diff --git a/Resources/Textures/Structures/Windows/cracks_diagonal.rsi/DamageOverlay_8.png b/Resources/Textures/Structures/Windows/cracks_diagonal.rsi/DamageOverlay_10.png similarity index 100% rename from Resources/Textures/Structures/Windows/cracks_diagonal.rsi/DamageOverlay_8.png rename to Resources/Textures/Structures/Windows/cracks_diagonal.rsi/DamageOverlay_10.png diff --git a/Resources/Textures/Structures/Windows/cracks_diagonal.rsi/DamageOverlay_12.png b/Resources/Textures/Structures/Windows/cracks_diagonal.rsi/DamageOverlay_20.png similarity index 100% rename from Resources/Textures/Structures/Windows/cracks_diagonal.rsi/DamageOverlay_12.png rename to Resources/Textures/Structures/Windows/cracks_diagonal.rsi/DamageOverlay_20.png diff --git a/Resources/Textures/Structures/Windows/cracks_diagonal.rsi/DamageOverlay_4.png b/Resources/Textures/Structures/Windows/cracks_diagonal.rsi/DamageOverlay_5.png similarity index 100% rename from Resources/Textures/Structures/Windows/cracks_diagonal.rsi/DamageOverlay_4.png rename to Resources/Textures/Structures/Windows/cracks_diagonal.rsi/DamageOverlay_5.png diff --git a/Resources/Textures/Structures/Windows/cracks_diagonal.rsi/meta.json b/Resources/Textures/Structures/Windows/cracks_diagonal.rsi/meta.json index 9d0cc9a505d..ca012e8fc5c 100644 --- a/Resources/Textures/Structures/Windows/cracks_diagonal.rsi/meta.json +++ b/Resources/Textures/Structures/Windows/cracks_diagonal.rsi/meta.json @@ -7,8 +7,8 @@ "license": "CC-BY-SA-3.0", "copyright": "Taken from https://github.com/tgstation/tgstation at commit e06b82a7f4b2b09216fb28fd384c95a2e1dc50e5", "states": [ - {"name": "DamageOverlay_4", "directions": 1}, - {"name": "DamageOverlay_8", "directions": 1}, - {"name": "DamageOverlay_12", "directions": 1} + {"name": "DamageOverlay_5", "directions": 1}, + {"name": "DamageOverlay_10", "directions": 1}, + {"name": "DamageOverlay_20", "directions": 1} ] } diff --git a/Resources/Textures/Structures/Windows/cracks_directional.rsi/DamageOverlay_8.png b/Resources/Textures/Structures/Windows/cracks_directional.rsi/DamageOverlay_10.png similarity index 100% rename from Resources/Textures/Structures/Windows/cracks_directional.rsi/DamageOverlay_8.png rename to Resources/Textures/Structures/Windows/cracks_directional.rsi/DamageOverlay_10.png diff --git a/Resources/Textures/Structures/Windows/cracks_directional.rsi/DamageOverlay_12.png b/Resources/Textures/Structures/Windows/cracks_directional.rsi/DamageOverlay_20.png similarity index 100% rename from Resources/Textures/Structures/Windows/cracks_directional.rsi/DamageOverlay_12.png rename to Resources/Textures/Structures/Windows/cracks_directional.rsi/DamageOverlay_20.png diff --git a/Resources/Textures/Structures/Windows/cracks_directional.rsi/DamageOverlay_4.png b/Resources/Textures/Structures/Windows/cracks_directional.rsi/DamageOverlay_5.png similarity index 100% rename from Resources/Textures/Structures/Windows/cracks_directional.rsi/DamageOverlay_4.png rename to Resources/Textures/Structures/Windows/cracks_directional.rsi/DamageOverlay_5.png diff --git a/Resources/Textures/Structures/Windows/cracks_directional.rsi/meta.json b/Resources/Textures/Structures/Windows/cracks_directional.rsi/meta.json index df077f67d2b..9555aa5ab35 100644 --- a/Resources/Textures/Structures/Windows/cracks_directional.rsi/meta.json +++ b/Resources/Textures/Structures/Windows/cracks_directional.rsi/meta.json @@ -8,15 +8,15 @@ "copyright": "Adapted from https://github.com/space-wizards/space-station-14/ at commit f57e8ec6b9b4b72ef56c8146be0bc159ed2691ee, originally added by Zumorica, and modified for directional use by Darkie", "states": [ { - "name": "DamageOverlay_4", + "name": "DamageOverlay_5", "directions": 4 }, { - "name": "DamageOverlay_8", + "name": "DamageOverlay_10", "directions": 4 }, { - "name": "DamageOverlay_12", + "name": "DamageOverlay_20", "directions": 4 } ] From 21074bd98d3844dd8f6ae18f9f423752304fa7bd Mon Sep 17 00:00:00 2001 From: cohanna Date: Tue, 12 Nov 2024 19:14:28 -0700 Subject: [PATCH 05/18] oops --- .../Entities/Structures/Windows/plasma.yml | 2 + .../Entities/Structures/Windows/rplasma.yml | 2 + .../Entities/Structures/Windows/ruranium.yml | 2 + .../Entities/Structures/Windows/uranium.yml | 2 + .../Recipes/Construction/structures.yml | 40 ++++++++++++++----- 5 files changed, 37 insertions(+), 11 deletions(-) diff --git a/Resources/Prototypes/Entities/Structures/Windows/plasma.yml b/Resources/Prototypes/Entities/Structures/Windows/plasma.yml index bdeb37c6bb7..8758e1075eb 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/plasma.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/plasma.yml @@ -106,6 +106,8 @@ acts: [ "Destruction" ] - type: StaticPrice price: 50 + - type: RadiationBlocker + resistance: 1 - type: entity parent: PlasmaWindow diff --git a/Resources/Prototypes/Entities/Structures/Windows/rplasma.yml b/Resources/Prototypes/Entities/Structures/Windows/rplasma.yml index 2ea710e6e77..2ad0eb84105 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/rplasma.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/rplasma.yml @@ -82,6 +82,8 @@ trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks_directional.rsi + - type: RadiationBlocker + resistance: 2 - type: Destructible thresholds: - trigger: diff --git a/Resources/Prototypes/Entities/Structures/Windows/ruranium.yml b/Resources/Prototypes/Entities/Structures/Windows/ruranium.yml index fe40b21ba26..daae6a4726d 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/ruranium.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/ruranium.yml @@ -106,6 +106,8 @@ acts: [ "Destruction" ] - type: StaticPrice price: 110 + - type: RadiationBlocker + resistance: 2.5 - type: entity parent: ReinforcedUraniumWindow diff --git a/Resources/Prototypes/Entities/Structures/Windows/uranium.yml b/Resources/Prototypes/Entities/Structures/Windows/uranium.yml index 25ad1b876ed..db932280090 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/uranium.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/uranium.yml @@ -101,6 +101,8 @@ acts: [ "Destruction" ] - type: StaticPrice price: 100 + - type: RadiationBlocker + resistance: 1.5 - type: entity parent: UraniumWindow diff --git a/Resources/Prototypes/Recipes/Construction/structures.yml b/Resources/Prototypes/Recipes/Construction/structures.yml index 31e1264ab08..44a7134597d 100644 --- a/Resources/Prototypes/Recipes/Construction/structures.yml +++ b/Resources/Prototypes/Recipes/Construction/structures.yml @@ -455,7 +455,7 @@ startNode: start targetNode: tintedWindow category: construction-category-structures - description: Not clear but tough. + description: Not clear, but lasers still pass through. canBuildInImpassable: true conditions: - !type:EmptyOrWindowValidInTile @@ -512,7 +512,7 @@ targetNode: plasmaWindow category: construction-category-structures canBuildInImpassable: true - description: Clear and even tougher, with a purple tint. + description: Clear, with a purple tint. conditions: - !type:EmptyOrWindowValidInTile - !type:NoWindowsInTile @@ -531,7 +531,7 @@ targetNode: reinforcedPlasmaWindow category: construction-category-structures canBuildInImpassable: true - description: Fire resistant and even tougher, with a purple tint. + description: Clear and even tougher, with a purple tint. conditions: - !type:EmptyOrWindowValidInTile - !type:NoWindowsInTile @@ -569,7 +569,7 @@ targetNode: plasmaWindowDiagonal category: construction-category-structures canBuildInImpassable: true - description: Clear and even tougher, with a purple tint. + description: Clear, with a purple tint. conditions: - !type:EmptyOrWindowValidInTile - !type:NoWindowsInTile @@ -587,7 +587,7 @@ targetNode: reinforcedPlasmaWindowDiagonal category: construction-category-structures canBuildInImpassable: true - description: Fire resistant and even tougher, with a purple tint. + description: Clear and even tougher, with a purple tint. conditions: - !type:EmptyOrWindowValidInTile - !type:NoWindowsInTile @@ -659,7 +659,7 @@ targetNode: plasmaWindowDirectional category: construction-category-structures canBuildInImpassable: true - description: Clear and even tougher, with a purple tint. + description: Clear, with a purple tint. conditions: - !type:EmptyOrWindowValidInTile - !type:NoWindowsInTile @@ -677,7 +677,7 @@ targetNode: plasmaReinforcedWindowDirectional category: construction-category-structures canBuildInImpassable: true - description: Fire resistant and even tougher, with a purple tint. + description: Clear and even tougher, with a purple tint. conditions: - !type:EmptyOrWindowValidInTile - !type:NoWindowsInTile @@ -695,7 +695,7 @@ targetNode: uraniumWindow category: construction-category-structures canBuildInImpassable: true - description: Clear and much tougher than regular glass, with added RadAbsorb to protect you from deadly radiation. + description: Clear, with added RadAbsorb to protect you from deadly radiation. conditions: - !type:EmptyOrWindowValidInTile - !type:NoWindowsInTile @@ -714,7 +714,7 @@ targetNode: reinforcedUraniumWindow category: construction-category-structures canBuildInImpassable: true - description: Clear and much tougher than regular glass, with added RadAbsorb to protect you from deadly radiation. + description: Clear and even tougher, with added RadAbsorb to protect you from deadly radiation. conditions: - !type:EmptyOrWindowValidInTile - !type:NoWindowsInTile @@ -733,7 +733,7 @@ targetNode: uraniumWindowDiagonal category: construction-category-structures canBuildInImpassable: true - description: Clear and much tougher than regular glass, with added RadAbsorb to protect you from deadly radiation. + description: Clear, with added RadAbsorb to protect you from deadly radiation. conditions: - !type:EmptyOrWindowValidInTile - !type:NoWindowsInTile @@ -751,7 +751,7 @@ targetNode: reinforcedUraniumWindowDiagonal category: construction-category-structures canBuildInImpassable: true - description: Clear and much tougher than regular glass, with added RadAbsorb to protect you from deadly radiation. + description: Clear and even tougher, with added RadAbsorb to protect you from deadly radiation. conditions: - !type:EmptyOrWindowValidInTile - !type:NoWindowsInTile @@ -1456,6 +1456,24 @@ # Same here. - 20kdc - !type:TileNotBlocked +- type: construction + name: emergency light + id: EmergencyLightFixture + graph: LightFixture + startNode: start + targetNode: emergencyLight + category: construction-category-structures + description: An emergency light. + icon: + sprite: Structures/Wallmounts/Lighting/emergency_light.rsi + state: base + objectType: Structure + placementMode: SnapgridCenter + canRotate: true + canBuildInImpassable: false + conditions: + - !type:TileNotBlocked + - type: construction name: ground light post id: LightGroundFixture From 75ec5465509edcb1f4b3b9c43f44e0f123a6f5c1 Mon Sep 17 00:00:00 2001 From: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com> Date: Thu, 14 Nov 2024 14:57:05 +0100 Subject: [PATCH 06/18] Update Label workflows to use new labels (#33310) * Update labeler.yml * Update labeler-needsreview.yml * Update labeler-staging.yml * Update labeler-stable.yml * Update labeler-untriaged.yml * Create labeler-size.yml * Update labeler-size.yml * Update labeler-size.yml * Update conflict-labeler.yml * Rename conflict-labeler.yml to labeler-conflict.yml --- .github/labeler.yml | 2 +- ...flict-labeler.yml => labeler-conflict.yml} | 2 +- .github/workflows/labeler-needsreview.yml | 4 ++-- .github/workflows/labeler-size.yml | 20 +++++++++++++++++++ .github/workflows/labeler-stable.yml | 2 +- .github/workflows/labeler-staging.yml | 2 +- .github/workflows/labeler-untriaged.yml | 4 +++- 7 files changed, 29 insertions(+), 7 deletions(-) rename .github/workflows/{conflict-labeler.yml => labeler-conflict.yml} (93%) create mode 100644 .github/workflows/labeler-size.yml diff --git a/.github/labeler.yml b/.github/labeler.yml index 97b402eda9f..69b2ca87749 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -16,7 +16,7 @@ - changed-files: - any-glob-to-any-file: '**/*.swsl' -"No C#": +"Changes: No C#": - changed-files: # Equiv to any-glob-to-all as long as this has one matcher. If ALL changed files are not C# files, then apply label. - all-globs-to-all-files: "!**/*.cs" diff --git a/.github/workflows/conflict-labeler.yml b/.github/workflows/labeler-conflict.yml similarity index 93% rename from .github/workflows/conflict-labeler.yml rename to .github/workflows/labeler-conflict.yml index 1e2125c30a2..ebcc54d4604 100644 --- a/.github/workflows/conflict-labeler.yml +++ b/.github/workflows/labeler-conflict.yml @@ -16,6 +16,6 @@ jobs: - name: Check for Merge Conflicts uses: eps1lon/actions-label-merge-conflict@v3.0.0 with: - dirtyLabel: "Merge Conflict" + dirtyLabel: "S: Merge Conflict" repoToken: "${{ secrets.GITHUB_TOKEN }}" commentOnDirty: "This pull request has conflicts, please resolve those before we can evaluate the pull request." diff --git a/.github/workflows/labeler-needsreview.yml b/.github/workflows/labeler-needsreview.yml index 311048acb0f..819b34b7bbd 100644 --- a/.github/workflows/labeler-needsreview.yml +++ b/.github/workflows/labeler-needsreview.yml @@ -10,7 +10,7 @@ jobs: steps: - uses: actions-ecosystem/action-add-labels@v1 with: - labels: "Status: Needs Review" + labels: "S: Needs Review" - uses: actions-ecosystem/action-remove-labels@v1 with: - labels: "Status: Awaiting Changes" + labels: "S: Awaiting Changes" diff --git a/.github/workflows/labeler-size.yml b/.github/workflows/labeler-size.yml new file mode 100644 index 00000000000..ad6e35c8292 --- /dev/null +++ b/.github/workflows/labeler-size.yml @@ -0,0 +1,20 @@ +name: "Labels: Size" +on: pull_request_target +jobs: + size-label: + runs-on: ubuntu-latest + steps: + - name: size-label + uses: "pascalgn/size-label-action@v0.5.5" + env: + GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" + with: + # Custom size configuration + sizes: > + { + "0": "XS", + "10": "S", + "30": "M", + "100": "L", + "1000": "XL" + } diff --git a/.github/workflows/labeler-stable.yml b/.github/workflows/labeler-stable.yml index 491d6a76fad..f6fd2033a11 100644 --- a/.github/workflows/labeler-stable.yml +++ b/.github/workflows/labeler-stable.yml @@ -13,4 +13,4 @@ jobs: steps: - uses: actions-ecosystem/action-add-labels@v1 with: - labels: "Branch: stable" + labels: "Branch: Stable" diff --git a/.github/workflows/labeler-staging.yml b/.github/workflows/labeler-staging.yml index e31a5a482f2..b46a198aefb 100644 --- a/.github/workflows/labeler-staging.yml +++ b/.github/workflows/labeler-staging.yml @@ -13,4 +13,4 @@ jobs: steps: - uses: actions-ecosystem/action-add-labels@v1 with: - labels: "Branch: staging" + labels: "Branch: Staging" diff --git a/.github/workflows/labeler-untriaged.yml b/.github/workflows/labeler-untriaged.yml index 775aab26546..ec1d194851c 100644 --- a/.github/workflows/labeler-untriaged.yml +++ b/.github/workflows/labeler-untriaged.yml @@ -3,6 +3,8 @@ on: issues: types: [opened] + pull_request_target: + types: [opened] jobs: add_label: @@ -11,4 +13,4 @@ jobs: - uses: actions-ecosystem/action-add-labels@v1 if: join(github.event.issue.labels) == '' with: - labels: "Status: Untriaged" + labels: "S: Untriaged" From 815e37e512ce7d1df152bac1642b769cf3e9bb32 Mon Sep 17 00:00:00 2001 From: CheddaCheez Date: Thu, 14 Nov 2024 10:56:21 -0600 Subject: [PATCH 07/18] Fix mime broken vow alert (#33303) Swap VowAlert and VowBrokenAlert on lines 149 and 150 so that the proper alerts are cleared and shown --- Content.Server/Abilities/Mime/MimePowersSystem.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Content.Server/Abilities/Mime/MimePowersSystem.cs b/Content.Server/Abilities/Mime/MimePowersSystem.cs index 20889f293c3..bd8cf7c1766 100644 --- a/Content.Server/Abilities/Mime/MimePowersSystem.cs +++ b/Content.Server/Abilities/Mime/MimePowersSystem.cs @@ -146,8 +146,8 @@ public void RetakeVow(EntityUid uid, MimePowersComponent? mimePowers = null) mimePowers.ReadyToRepent = false; mimePowers.VowBroken = false; AddComp(uid); - _alertsSystem.ClearAlert(uid, mimePowers.VowAlert); - _alertsSystem.ShowAlert(uid, mimePowers.VowBrokenAlert); + _alertsSystem.ClearAlert(uid, mimePowers.VowBrokenAlert); + _alertsSystem.ShowAlert(uid, mimePowers.VowAlert); _actionsSystem.AddAction(uid, ref mimePowers.InvisibleWallActionEntity, mimePowers.InvisibleWallAction, uid); } } From 669bc148f91980f983b691d1e516b1b8d627a315 Mon Sep 17 00:00:00 2001 From: PJBot Date: Thu, 14 Nov 2024 16:57:29 +0000 Subject: [PATCH 08/18] Automatic changelog update --- Resources/Changelog/Changelog.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 9cc788c96f7..eb3f7268008 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: Blackern5000 - changes: - - message: Combat medical kits now contain saline syringes. - type: Add - id: 7108 - time: '2024-08-14T06:25:54.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/29954 - author: TheShuEd changes: - message: added morbilliard variants of procedural tacos and kebabs @@ -3941,3 +3934,10 @@ id: 7607 time: '2024-11-13T23:36:37.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/33201 +- author: CheddaCheez + changes: + - message: Fixed mimes being unable to break their vow more than once. Despicable! + type: Fix + id: 7608 + time: '2024-11-14T16:56:22.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/33303 From 1bebb3390ccedfdae173f0f681be6578146057ca Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Thu, 14 Nov 2024 18:08:35 +0100 Subject: [PATCH 09/18] Borg type switching. (#32586) * Borg type switching. This allows borgs (new spawn or constructed) to select their chassis type on creation, like in SS13. This removes the need for the many different chassis types, and means round-start borgs can actually play the game immediately instead of waiting for science to unlock everything. New borgs have an additional action that allows them to select their type. This opens a nice window with basic information about the borgs and a select button. Once a type has been selected it is permanent for that borg chassis. These borg types also immediately start the borg with specific modules, so they do not need to be printed. Additional modules can still be inserted for upgrades, though this is now less critical. The built-in modules cannot be removed, but are shown in the UI. The modules that each borg type starts with: * Generic: tools * Engineering: advanced tools, construction, RCD, cable * Salvage: Grappling gun, appraisal, mining * Janitor: cleaning, light replacer * Medical: treatment * Service: music, service, clowning Specialized borgs have 3 additional module slots available on top of the ones listed above, generic borgs have 5. Borg types are specified in a new BorgTypePrototype. These prototypes specify all information about the borg type. It is assigned to the borg entity through a mix of client side, server, and shared code. Some of the involved components were made networked, others are just ensured they're set on both sides of the wire. The most gnarly change is the inventory template prototype, which needs to change purely to modify the borg hat offset. I managed to bodge this in with an API that *probably* won't explode for specifically for this use case, but it's still not the most clean of API designs. Parts for specific borg chassis have been removed (so much deleted YAML) and specialized borg modules that are in the base set of a type have been removed from the exosuit fab as there's no point to printing those. The ability to "downgrade" a borg so it can select a new chassis, like in SS13, is something that would be nice, but was not high enough priority for me to block the feature on. I did keep it in mind with some of the code, so it may be possible in the future. There is no fancy animation when selecting borg types like in SS13, because I didn't think it was high priority, and it would add a lot of complex code. * Fix sandbox failure due to collection expression. * Module tweak Fix salvage borg modules still having research/lathe recipes Engie borg has regular tool module, not advanced. * Fix inventory system breakage * Fix migrations Some things were missing * Guidebook rewordings & review * MinWidth on confirm selection button --- .../Clothing/ClientClothingSystem.cs | 24 +- .../Inventory/ClientInventorySystem.cs | 16 +- Content.Client/Overlays/EquipmentHudSystem.cs | 3 +- .../Overlays/ShowHealthBarsSystem.cs | 7 + .../Overlays/ShowHealthIconsSystem.cs | 7 + .../Silicons/Borgs/BorgMenu.xaml.cs | 3 +- .../Silicons/Borgs/BorgModuleControl.xaml.cs | 3 +- .../Silicons/Borgs/BorgSelectTypeMenu.xaml | 43 ++ .../Silicons/Borgs/BorgSelectTypeMenu.xaml.cs | 81 +++ .../Borgs/BorgSelectTypeUserInterface.cs | 30 ++ .../Borgs/BorgSwitchableTypeSystem.cs | 81 +++ Content.Client/Silicons/Borgs/BorgSystem.cs | 14 + .../Borgs/BorgSwitchableTypeSystem.cs | 82 +++ .../Silicons/Borgs/BorgSystem.Modules.cs | 39 ++ .../Silicons/Borgs/BorgSystem.Transponder.cs | 17 + .../Silicons/Borgs/BorgSystem.Ui.cs | 3 + Content.Server/Silicons/Borgs/BorgSystem.cs | 15 +- .../Interaction/InteractionPopupSystem.cs | 22 + .../Inventory/InventoryComponent.cs | 10 +- .../Inventory/InventorySystem.Slots.cs | 49 ++ .../Overlays/ShowHealthBarsComponent.cs | 2 + .../Overlays/ShowHealthIconsComponent.cs | 2 + .../Silicons/Borgs/BorgTypePrototype.cs | 155 ++++++ .../Borgs/Components/BorgChassisComponent.cs | 15 +- .../Borgs/Components/BorgModuleComponent.cs | 8 + .../Components/BorgSwitchableTypeComponent.cs | 72 +++ .../Borgs/SharedBorgSwitchableTypeSystem.cs | 125 +++++ .../Silicons/Borgs/SharedBorgSystem.cs | 9 + Resources/Locale/en-US/borg/borg.ftl | 37 ++ Resources/Prototypes/Actions/borgs.yml | 12 + Resources/Prototypes/Body/Parts/silicon.yml | 47 +- .../Mobs/Cyborgs/base_borg_chassis.yml | 7 + .../Entities/Mobs/Cyborgs/borg_chassis.yml | 319 ++--------- .../Entities/Mobs/Player/silicon.yml | 21 +- .../Objects/Specific/Robotics/borg_parts.yml | 503 ------------------ .../Specific/Robotics/endoskeleton.yml | 169 +----- .../Entities/Structures/Machines/lathe.yml | 40 -- .../Prototypes/InventoryTemplates/borg.yml | 3 +- .../Construction/Graphs/machines/cyborg.yml | 173 +----- .../Prototypes/Recipes/Lathes/robotics.yml | 220 -------- .../Prototypes/Research/civilianservices.yml | 3 - Resources/Prototypes/Research/industrial.yml | 3 - .../Prototypes/Roles/Jobs/Science/borg.yml | 2 +- Resources/Prototypes/borg_types.yml | 218 ++++++++ Resources/Prototypes/tags.yml | 99 +--- .../ServerInfo/Guidebook/Science/Cyborgs.xml | 16 +- .../Actions/actions_borg.rsi/meta.json | 5 +- .../Actions/actions_borg.rsi/select-type.png | Bin 0 -> 408 bytes Resources/migration.yml | 35 ++ 49 files changed, 1336 insertions(+), 1533 deletions(-) create mode 100644 Content.Client/Silicons/Borgs/BorgSelectTypeMenu.xaml create mode 100644 Content.Client/Silicons/Borgs/BorgSelectTypeMenu.xaml.cs create mode 100644 Content.Client/Silicons/Borgs/BorgSelectTypeUserInterface.cs create mode 100644 Content.Client/Silicons/Borgs/BorgSwitchableTypeSystem.cs create mode 100644 Content.Server/Silicons/Borgs/BorgSwitchableTypeSystem.cs create mode 100644 Content.Shared/Silicons/Borgs/BorgTypePrototype.cs create mode 100644 Content.Shared/Silicons/Borgs/Components/BorgSwitchableTypeComponent.cs create mode 100644 Content.Shared/Silicons/Borgs/SharedBorgSwitchableTypeSystem.cs delete mode 100644 Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_parts.yml create mode 100644 Resources/Prototypes/borg_types.yml create mode 100644 Resources/Textures/Interface/Actions/actions_borg.rsi/select-type.png diff --git a/Content.Client/Clothing/ClientClothingSystem.cs b/Content.Client/Clothing/ClientClothingSystem.cs index 3462fc92360..46f879e8156 100644 --- a/Content.Client/Clothing/ClientClothingSystem.cs +++ b/Content.Client/Clothing/ClientClothingSystem.cs @@ -58,6 +58,7 @@ public override void Initialize() base.Initialize(); SubscribeLocalEvent(OnGetVisuals); + SubscribeLocalEvent(OnInventoryTemplateUpdated); SubscribeLocalEvent(OnVisualsChanged); SubscribeLocalEvent(OnDidUnequip); @@ -70,11 +71,7 @@ private void OnAppearanceUpdate(EntityUid uid, InventoryComponent component, ref if (args.Sprite == null) return; - var enumerator = _inventorySystem.GetSlotEnumerator((uid, component)); - while (enumerator.NextItem(out var item, out var slot)) - { - RenderEquipment(uid, item, slot.Name, component); - } + UpdateAllSlots(uid, component); // No clothing equipped -> make sure the layer is hidden, though this should already be handled by on-unequip. if (args.Sprite.LayerMapTryGet(HumanoidVisualLayers.StencilMask, out var layer)) @@ -84,6 +81,23 @@ private void OnAppearanceUpdate(EntityUid uid, InventoryComponent component, ref } } + private void OnInventoryTemplateUpdated(Entity ent, ref InventoryTemplateUpdated args) + { + UpdateAllSlots(ent.Owner, clothing: ent.Comp); + } + + private void UpdateAllSlots( + EntityUid uid, + InventoryComponent? inventoryComponent = null, + ClothingComponent? clothing = null) + { + var enumerator = _inventorySystem.GetSlotEnumerator((uid, inventoryComponent)); + while (enumerator.NextItem(out var item, out var slot)) + { + RenderEquipment(uid, item, slot.Name, inventoryComponent, clothingComponent: clothing); + } + } + private void OnGetVisuals(EntityUid uid, ClothingComponent item, GetEquipmentVisualsEvent args) { if (!TryComp(args.Equipee, out InventoryComponent? inventory)) diff --git a/Content.Client/Inventory/ClientInventorySystem.cs b/Content.Client/Inventory/ClientInventorySystem.cs index 87cea4e3d2f..dce401eefda 100644 --- a/Content.Client/Inventory/ClientInventorySystem.cs +++ b/Content.Client/Inventory/ClientInventorySystem.cs @@ -235,9 +235,23 @@ public void UIInventoryAltActivateItem(string slot, EntityUid uid) EntityManager.RaisePredictiveEvent(new InteractInventorySlotEvent(GetNetEntity(item.Value), altInteract: true)); } + protected override void UpdateInventoryTemplate(Entity ent) + { + base.UpdateInventoryTemplate(ent); + + if (TryComp(ent, out InventorySlotsComponent? inventorySlots)) + { + foreach (var slot in ent.Comp.Slots) + { + if (inventorySlots.SlotData.TryGetValue(slot.Name, out var slotData)) + slotData.SlotDef = slot; + } + } + } + public sealed class SlotData { - public readonly SlotDefinition SlotDef; + public SlotDefinition SlotDef; public EntityUid? HeldEntity => Container?.ContainedEntity; public bool Blocked; public bool Highlighted; diff --git a/Content.Client/Overlays/EquipmentHudSystem.cs b/Content.Client/Overlays/EquipmentHudSystem.cs index c7578b6793f..502a1f36274 100644 --- a/Content.Client/Overlays/EquipmentHudSystem.cs +++ b/Content.Client/Overlays/EquipmentHudSystem.cs @@ -14,6 +14,7 @@ public abstract class EquipmentHudSystem : EntitySystem where T : IComponent { [Dependency] private readonly IPlayerManager _player = default!; + [ViewVariables] protected bool IsActive; protected virtual SlotFlags TargetSlots => ~SlotFlags.POCKET; @@ -102,7 +103,7 @@ protected virtual void OnRefreshComponentHud(EntityUid uid, T component, Refresh args.Components.Add(component); } - private void RefreshOverlay(EntityUid uid) + protected void RefreshOverlay(EntityUid uid) { if (uid != _player.LocalSession?.AttachedEntity) return; diff --git a/Content.Client/Overlays/ShowHealthBarsSystem.cs b/Content.Client/Overlays/ShowHealthBarsSystem.cs index 1eb712a8988..b23209ff202 100644 --- a/Content.Client/Overlays/ShowHealthBarsSystem.cs +++ b/Content.Client/Overlays/ShowHealthBarsSystem.cs @@ -21,9 +21,16 @@ public override void Initialize() { base.Initialize(); + SubscribeLocalEvent(OnHandleState); + _overlay = new(EntityManager, _prototype); } + private void OnHandleState(Entity ent, ref AfterAutoHandleStateEvent args) + { + RefreshOverlay(ent); + } + protected override void UpdateInternal(RefreshEquipmentHudEvent component) { base.UpdateInternal(component); diff --git a/Content.Client/Overlays/ShowHealthIconsSystem.cs b/Content.Client/Overlays/ShowHealthIconsSystem.cs index 8c22c78f17c..b4d845e4217 100644 --- a/Content.Client/Overlays/ShowHealthIconsSystem.cs +++ b/Content.Client/Overlays/ShowHealthIconsSystem.cs @@ -17,6 +17,7 @@ public sealed class ShowHealthIconsSystem : EquipmentHudSystem DamageContainers = new(); public override void Initialize() @@ -24,6 +25,7 @@ public override void Initialize() base.Initialize(); SubscribeLocalEvent(OnGetStatusIconsEvent); + SubscribeLocalEvent(OnHandleState); } protected override void UpdateInternal(RefreshEquipmentHudEvent component) @@ -43,6 +45,11 @@ protected override void DeactivateInternal() DamageContainers.Clear(); } + private void OnHandleState(Entity ent, ref AfterAutoHandleStateEvent args) + { + RefreshOverlay(ent); + } + private void OnGetStatusIconsEvent(Entity entity, ref GetStatusIconsEvent args) { if (!IsActive) diff --git a/Content.Client/Silicons/Borgs/BorgMenu.xaml.cs b/Content.Client/Silicons/Borgs/BorgMenu.xaml.cs index f6a861aa057..b8f0e69c022 100644 --- a/Content.Client/Silicons/Borgs/BorgMenu.xaml.cs +++ b/Content.Client/Silicons/Borgs/BorgMenu.xaml.cs @@ -131,7 +131,8 @@ private void UpdateModulePanel() _modules.Clear(); foreach (var module in chassis.ModuleContainer.ContainedEntities) { - var control = new BorgModuleControl(module, _entity); + var moduleComponent = _entity.GetComponent(module); + var control = new BorgModuleControl(module, _entity, !moduleComponent.DefaultModule); control.RemoveButtonPressed += () => { RemoveModuleButtonPressed?.Invoke(module); diff --git a/Content.Client/Silicons/Borgs/BorgModuleControl.xaml.cs b/Content.Client/Silicons/Borgs/BorgModuleControl.xaml.cs index d5cf05ba63e..245425524ca 100644 --- a/Content.Client/Silicons/Borgs/BorgModuleControl.xaml.cs +++ b/Content.Client/Silicons/Borgs/BorgModuleControl.xaml.cs @@ -9,7 +9,7 @@ public sealed partial class BorgModuleControl : PanelContainer { public Action? RemoveButtonPressed; - public BorgModuleControl(EntityUid entity, IEntityManager entityManager) + public BorgModuleControl(EntityUid entity, IEntityManager entityManager, bool canRemove) { RobustXamlLoader.Load(this); @@ -20,6 +20,7 @@ public BorgModuleControl(EntityUid entity, IEntityManager entityManager) { RemoveButtonPressed?.Invoke(); }; + RemoveButton.Visible = canRemove; } } diff --git a/Content.Client/Silicons/Borgs/BorgSelectTypeMenu.xaml b/Content.Client/Silicons/Borgs/BorgSelectTypeMenu.xaml new file mode 100644 index 00000000000..f51c2f53fd0 --- /dev/null +++ b/Content.Client/Silicons/Borgs/BorgSelectTypeMenu.xaml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + diff --git a/Content.Client/Silicons/Borgs/BorgSelectTypeMenu.xaml.cs b/Content.Client/Silicons/Borgs/BorgSelectTypeMenu.xaml.cs new file mode 100644 index 00000000000..e1fbd376b54 --- /dev/null +++ b/Content.Client/Silicons/Borgs/BorgSelectTypeMenu.xaml.cs @@ -0,0 +1,81 @@ +using System.Linq; +using Content.Client.UserInterface.Controls; +using Content.Client.UserInterface.Systems.Guidebook; +using Content.Shared.Guidebook; +using Content.Shared.Silicons.Borgs; +using Content.Shared.Silicons.Borgs.Components; +using Robust.Client.AutoGenerated; +using Robust.Client.UserInterface.Controls; +using Robust.Client.UserInterface.XAML; +using Robust.Shared.Prototypes; + +namespace Content.Client.Silicons.Borgs; + +/// +/// Menu used by borgs to select their type. +/// +/// +/// +[GenerateTypedNameReferences] +public sealed partial class BorgSelectTypeMenu : FancyWindow +{ + [Dependency] private readonly IPrototypeManager _prototypeManager = default!; + + private BorgTypePrototype? _selectedBorgType; + + public event Action>? ConfirmedBorgType; + + [ValidatePrototypeId] + private static readonly List> GuidebookEntries = new() { "Cyborgs", "Robotics" }; + + public BorgSelectTypeMenu() + { + RobustXamlLoader.Load(this); + IoCManager.InjectDependencies(this); + + var group = new ButtonGroup(); + foreach (var borgType in _prototypeManager.EnumeratePrototypes().OrderBy(PrototypeName)) + { + var button = new Button + { + Text = PrototypeName(borgType), + Group = group, + }; + button.OnPressed += _ => + { + _selectedBorgType = borgType; + UpdateInformation(borgType); + }; + SelectionsContainer.AddChild(button); + } + + ConfirmTypeButton.OnPressed += ConfirmButtonPressed; + HelpGuidebookIds = GuidebookEntries; + } + + private void UpdateInformation(BorgTypePrototype prototype) + { + _selectedBorgType = prototype; + + InfoContents.Visible = true; + InfoPlaceholder.Visible = false; + ConfirmTypeButton.Disabled = false; + + NameLabel.Text = PrototypeName(prototype); + DescriptionLabel.Text = Loc.GetString($"borg-type-{prototype.ID}-desc"); + ChassisView.SetPrototype(prototype.DummyPrototype); + } + + private void ConfirmButtonPressed(BaseButton.ButtonEventArgs obj) + { + if (_selectedBorgType == null) + return; + + ConfirmedBorgType?.Invoke(_selectedBorgType); + } + + private static string PrototypeName(BorgTypePrototype prototype) + { + return Loc.GetString($"borg-type-{prototype.ID}-name"); + } +} diff --git a/Content.Client/Silicons/Borgs/BorgSelectTypeUserInterface.cs b/Content.Client/Silicons/Borgs/BorgSelectTypeUserInterface.cs new file mode 100644 index 00000000000..8c76fade8c9 --- /dev/null +++ b/Content.Client/Silicons/Borgs/BorgSelectTypeUserInterface.cs @@ -0,0 +1,30 @@ +using Content.Shared.Silicons.Borgs.Components; +using JetBrains.Annotations; +using Robust.Client.UserInterface; + +namespace Content.Client.Silicons.Borgs; + +/// +/// User interface used by borgs to select their type. +/// +/// +/// +/// +[UsedImplicitly] +public sealed class BorgSelectTypeUserInterface : BoundUserInterface +{ + [ViewVariables] + private BorgSelectTypeMenu? _menu; + + public BorgSelectTypeUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey) + { + } + + protected override void Open() + { + base.Open(); + + _menu = this.CreateWindow(); + _menu.ConfirmedBorgType += prototype => SendMessage(new BorgSelectTypeMessage(prototype)); + } +} diff --git a/Content.Client/Silicons/Borgs/BorgSwitchableTypeSystem.cs b/Content.Client/Silicons/Borgs/BorgSwitchableTypeSystem.cs new file mode 100644 index 00000000000..346dc5c276e --- /dev/null +++ b/Content.Client/Silicons/Borgs/BorgSwitchableTypeSystem.cs @@ -0,0 +1,81 @@ +using Content.Shared.Movement.Components; +using Content.Shared.Silicons.Borgs; +using Content.Shared.Silicons.Borgs.Components; +using Robust.Client.GameObjects; + +namespace Content.Client.Silicons.Borgs; + +/// +/// Client side logic for borg type switching. Sets up primarily client-side visual information. +/// +/// +/// +public sealed class BorgSwitchableTypeSystem : SharedBorgSwitchableTypeSystem +{ + [Dependency] private readonly BorgSystem _borgSystem = default!; + [Dependency] private readonly AppearanceSystem _appearance = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(AfterStateHandler); + SubscribeLocalEvent(OnComponentStartup); + } + + private void OnComponentStartup(Entity ent, ref ComponentStartup args) + { + UpdateEntityAppearance(ent); + } + + private void AfterStateHandler(Entity ent, ref AfterAutoHandleStateEvent args) + { + UpdateEntityAppearance(ent); + } + + protected override void UpdateEntityAppearance( + Entity entity, + BorgTypePrototype prototype) + { + if (TryComp(entity, out SpriteComponent? sprite)) + { + sprite.LayerSetState(BorgVisualLayers.Body, prototype.SpriteBodyState); + sprite.LayerSetState(BorgVisualLayers.LightStatus, prototype.SpriteToggleLightState); + } + + if (TryComp(entity, out BorgChassisComponent? chassis)) + { + _borgSystem.SetMindStates( + (entity.Owner, chassis), + prototype.SpriteHasMindState, + prototype.SpriteNoMindState); + + if (TryComp(entity, out AppearanceComponent? appearance)) + { + // Queue update so state changes apply. + _appearance.QueueUpdate(entity, appearance); + } + } + + if (prototype.SpriteBodyMovementState is { } movementState) + { + var spriteMovement = EnsureComp(entity); + spriteMovement.NoMovementLayers.Clear(); + spriteMovement.NoMovementLayers["movement"] = new PrototypeLayerData + { + State = prototype.SpriteBodyState, + }; + spriteMovement.MovementLayers.Clear(); + spriteMovement.MovementLayers["movement"] = new PrototypeLayerData + { + State = movementState, + }; + } + else + { + RemComp(entity); + } + + base.UpdateEntityAppearance(entity, prototype); + } +} diff --git a/Content.Client/Silicons/Borgs/BorgSystem.cs b/Content.Client/Silicons/Borgs/BorgSystem.cs index e92ce5cc777..387a56384e9 100644 --- a/Content.Client/Silicons/Borgs/BorgSystem.cs +++ b/Content.Client/Silicons/Borgs/BorgSystem.cs @@ -92,4 +92,18 @@ private void OnMMIAppearanceChanged(EntityUid uid, MMIComponent component, ref A sprite.LayerSetState(MMIVisualLayers.Base, state); } } + + /// + /// Sets the sprite states used for the borg "is there a mind or not" indication. + /// + /// The entity and component to modify. + /// The state to use if the borg has a mind. + /// The state to use if the borg has no mind. + /// + /// + public void SetMindStates(Entity borg, string hasMindState, string noMindState) + { + borg.Comp.HasMindState = hasMindState; + borg.Comp.NoMindState = noMindState; + } } diff --git a/Content.Server/Silicons/Borgs/BorgSwitchableTypeSystem.cs b/Content.Server/Silicons/Borgs/BorgSwitchableTypeSystem.cs new file mode 100644 index 00000000000..d1a32a6a5ba --- /dev/null +++ b/Content.Server/Silicons/Borgs/BorgSwitchableTypeSystem.cs @@ -0,0 +1,82 @@ +using Content.Server.Inventory; +using Content.Server.Radio.Components; +using Content.Shared.Inventory; +using Content.Shared.Silicons.Borgs; +using Content.Shared.Silicons.Borgs.Components; +using Robust.Shared.Prototypes; +using Robust.Shared.Utility; + +namespace Content.Server.Silicons.Borgs; + +/// +/// Server-side logic for borg type switching. Handles more heavyweight and server-specific switching logic. +/// +public sealed class BorgSwitchableTypeSystem : SharedBorgSwitchableTypeSystem +{ + [Dependency] private readonly BorgSystem _borgSystem = default!; + [Dependency] private readonly ServerInventorySystem _inventorySystem = default!; + + protected override void SelectBorgModule(Entity ent, ProtoId borgType) + { + var prototype = Prototypes.Index(borgType); + + // Assign radio channels + string[] radioChannels = [.. ent.Comp.InherentRadioChannels, .. prototype.RadioChannels]; + if (TryComp(ent, out IntrinsicRadioTransmitterComponent? transmitter)) + transmitter.Channels = [.. radioChannels]; + + if (TryComp(ent, out ActiveRadioComponent? activeRadio)) + activeRadio.Channels = [.. radioChannels]; + + // Borg transponder for the robotics console + if (TryComp(ent, out BorgTransponderComponent? transponder)) + { + _borgSystem.SetTransponderSprite( + (ent.Owner, transponder), + new SpriteSpecifier.Rsi(new ResPath("Mobs/Silicon/chassis.rsi"), prototype.SpriteBodyState)); + + _borgSystem.SetTransponderName( + (ent.Owner, transponder), + Loc.GetString($"borg-type-{borgType}-transponder")); + } + + // Configure modules + if (TryComp(ent, out BorgChassisComponent? chassis)) + { + var chassisEnt = (ent.Owner, chassis); + _borgSystem.SetMaxModules( + chassisEnt, + prototype.ExtraModuleCount + prototype.DefaultModules.Length); + + _borgSystem.SetModuleWhitelist(chassisEnt, prototype.ModuleWhitelist); + + foreach (var module in prototype.DefaultModules) + { + var moduleEntity = Spawn(module); + var borgModule = Comp(moduleEntity); + _borgSystem.SetBorgModuleDefault((moduleEntity, borgModule), true); + _borgSystem.InsertModule(chassisEnt, moduleEntity); + } + } + + // Configure special components + if (Prototypes.TryIndex(ent.Comp.SelectedBorgType, out var previousPrototype)) + { + if (previousPrototype.AddComponents is { } removeComponents) + EntityManager.RemoveComponents(ent, removeComponents); + } + + if (prototype.AddComponents is { } addComponents) + { + EntityManager.AddComponents(ent, addComponents); + } + + // Configure inventory template (used for hat spacing) + if (TryComp(ent, out InventoryComponent? inventory)) + { + _inventorySystem.SetTemplateId((ent.Owner, inventory), prototype.InventoryTemplateId); + } + + base.SelectBorgModule(ent, borgType); + } +} diff --git a/Content.Server/Silicons/Borgs/BorgSystem.Modules.cs b/Content.Server/Silicons/Borgs/BorgSystem.Modules.cs index d5a429db030..f95a5807360 100644 --- a/Content.Server/Silicons/Borgs/BorgSystem.Modules.cs +++ b/Content.Server/Silicons/Borgs/BorgSystem.Modules.cs @@ -2,6 +2,7 @@ using Content.Shared.Hands.Components; using Content.Shared.Interaction.Components; using Content.Shared.Silicons.Borgs.Components; +using Content.Shared.Whitelist; using Robust.Shared.Containers; namespace Content.Server.Silicons.Borgs; @@ -300,6 +301,24 @@ public bool CanInsertModule(EntityUid uid, EntityUid module, BorgChassisComponen return true; } + /// + /// Check if a module can be removed from a borg. + /// + /// The borg that the module is being removed from. + /// The module to remove from the borg. + /// The user attempting to remove the module. + /// True if the module can be removed. + public bool CanRemoveModule( + Entity borg, + Entity module, + EntityUid? user = null) + { + if (module.Comp.DefaultModule) + return false; + + return true; + } + /// /// Installs and activates all modules currently inside the borg's module container /// @@ -369,4 +388,24 @@ public void UninstallModule(EntityUid uid, EntityUid module, BorgChassisComponen var ev = new BorgModuleUninstalledEvent(uid); RaiseLocalEvent(module, ref ev); } + + /// + /// Sets . + /// + /// The borg to modify. + /// The new max module count. + public void SetMaxModules(Entity ent, int maxModules) + { + ent.Comp.MaxModules = maxModules; + } + + /// + /// Sets . + /// + /// The borg to modify. + /// The new module whitelist. + public void SetModuleWhitelist(Entity ent, EntityWhitelist? whitelist) + { + ent.Comp.ModuleWhitelist = whitelist; + } } diff --git a/Content.Server/Silicons/Borgs/BorgSystem.Transponder.cs b/Content.Server/Silicons/Borgs/BorgSystem.Transponder.cs index 781f847be35..b4ba1400441 100644 --- a/Content.Server/Silicons/Borgs/BorgSystem.Transponder.cs +++ b/Content.Server/Silicons/Borgs/BorgSystem.Transponder.cs @@ -8,6 +8,7 @@ using Content.Server.DeviceNetwork.Components; using Content.Server.DeviceNetwork.Systems; using Content.Server.Explosion.Components; +using Robust.Shared.Utility; namespace Content.Server.Silicons.Borgs; @@ -134,4 +135,20 @@ private bool CheckEmagged(EntityUid uid, string name) return false; } + + /// + /// Sets . + /// + public void SetTransponderSprite(Entity ent, SpriteSpecifier sprite) + { + ent.Comp.Sprite = sprite; + } + + /// + /// Sets . + /// + public void SetTransponderName(Entity ent, string name) + { + ent.Comp.Name = name; + } } diff --git a/Content.Server/Silicons/Borgs/BorgSystem.Ui.cs b/Content.Server/Silicons/Borgs/BorgSystem.Ui.cs index d0e9f80e364..40c2c3bf332 100644 --- a/Content.Server/Silicons/Borgs/BorgSystem.Ui.cs +++ b/Content.Server/Silicons/Borgs/BorgSystem.Ui.cs @@ -82,6 +82,9 @@ private void OnRemoveModuleBuiMessage(EntityUid uid, BorgChassisComponent compon if (!component.ModuleContainer.Contains(module)) return; + if (!CanRemoveModule((uid, component), (module, Comp(module)), args.Actor)) + return; + _adminLog.Add(LogType.Action, LogImpact.Medium, $"{ToPrettyString(args.Actor):player} removed module {ToPrettyString(module)} from borg {ToPrettyString(uid)}"); _container.Remove(module, component.ModuleContainer); diff --git a/Content.Server/Silicons/Borgs/BorgSystem.cs b/Content.Server/Silicons/Borgs/BorgSystem.cs index bd85282a0f5..ff204bfa8ce 100644 --- a/Content.Server/Silicons/Borgs/BorgSystem.cs +++ b/Content.Server/Silicons/Borgs/BorgSystem.cs @@ -129,7 +129,7 @@ private void OnChassisInteractUsing(EntityUid uid, BorgChassisComponent componen if (module != null && CanInsertModule(uid, used, component, module, args.User)) { - _container.Insert(used, component.ModuleContainer); + InsertModule((uid, component), used); _adminLog.Add(LogType.Action, LogImpact.Low, $"{ToPrettyString(args.User):player} installed module {ToPrettyString(used)} into borg {ToPrettyString(uid)}"); args.Handled = true; @@ -137,6 +137,19 @@ private void OnChassisInteractUsing(EntityUid uid, BorgChassisComponent componen } } + /// + /// Inserts a new module into a borg, the same as if a player inserted it manually. + /// + /// + /// This does not run checks to see if the borg is actually allowed to be inserted, such as whitelists. + /// + /// The borg to insert into. + /// The module to insert. + public void InsertModule(Entity ent, EntityUid module) + { + _container.Insert(module, ent.Comp.ModuleContainer); + } + // todo: consider transferring over the ghost role? managing that might suck. protected override void OnInserted(EntityUid uid, BorgChassisComponent component, EntInsertedIntoContainerMessage args) { diff --git a/Content.Shared/Interaction/InteractionPopupSystem.cs b/Content.Shared/Interaction/InteractionPopupSystem.cs index 20c079dfd8c..8df0035fc98 100644 --- a/Content.Shared/Interaction/InteractionPopupSystem.cs +++ b/Content.Shared/Interaction/InteractionPopupSystem.cs @@ -159,4 +159,26 @@ private void SharedInteract( _audio.PlayEntity(sfx, Filter.Empty().FromEntities(target), target, false); } } + + /// + /// Sets . + /// + /// + /// This field is not networked automatically, so this method must be called on both sides of the network. + /// + public void SetInteractSuccessString(Entity ent, string str) + { + ent.Comp.InteractSuccessString = str; + } + + /// + /// Sets . + /// + /// + /// This field is not networked automatically, so this method must be called on both sides of the network. + /// + public void SetInteractFailureString(Entity ent, string str) + { + ent.Comp.InteractFailureString = str; + } } diff --git a/Content.Shared/Inventory/InventoryComponent.cs b/Content.Shared/Inventory/InventoryComponent.cs index 629cf1169c4..61e0114ff24 100644 --- a/Content.Shared/Inventory/InventoryComponent.cs +++ b/Content.Shared/Inventory/InventoryComponent.cs @@ -7,10 +7,12 @@ namespace Content.Shared.Inventory; [RegisterComponent, NetworkedComponent] [Access(typeof(InventorySystem))] +[AutoGenerateComponentState(true)] public sealed partial class InventoryComponent : Component { [DataField("templateId", customTypeSerializer: typeof(PrototypeIdSerializer))] - public string TemplateId { get; private set; } = "human"; + [AutoNetworkedField] + public string TemplateId { get; set; } = "human"; [DataField("speciesId")] public string? SpeciesId { get; set; } @@ -32,3 +34,9 @@ public sealed partial class InventoryComponent : Component [DataField] public Dictionary MaleDisplacements = new(); } + +/// +/// Raised if the of an inventory changed. +/// +[ByRefEvent] +public struct InventoryTemplateUpdated; diff --git a/Content.Shared/Inventory/InventorySystem.Slots.cs b/Content.Shared/Inventory/InventorySystem.Slots.cs index 2522dd5d0a3..04d58c1cd52 100644 --- a/Content.Shared/Inventory/InventorySystem.Slots.cs +++ b/Content.Shared/Inventory/InventorySystem.Slots.cs @@ -1,4 +1,5 @@ using System.Diagnostics.CodeAnalysis; +using System.Linq; using Content.Shared.Inventory.Events; using Content.Shared.Storage; using Robust.Shared.Containers; @@ -19,6 +20,8 @@ private void InitializeSlots() _vvm.GetTypeHandler() .AddHandler(HandleViewVariablesSlots, ListViewVariablesSlots); + + SubscribeLocalEvent(AfterAutoState); } private void ShutdownSlots() @@ -68,6 +71,27 @@ protected virtual void OnInit(EntityUid uid, InventoryComponent component, Compo } } + private void AfterAutoState(Entity ent, ref AfterAutoHandleStateEvent args) + { + UpdateInventoryTemplate(ent); + } + + protected virtual void UpdateInventoryTemplate(Entity ent) + { + if (ent.Comp.LifeStage < ComponentLifeStage.Initialized) + return; + + if (!_prototypeManager.TryIndex(ent.Comp.TemplateId, out InventoryTemplatePrototype? invTemplate)) + return; + + DebugTools.Assert(ent.Comp.Slots.Length == invTemplate.Slots.Length); + + ent.Comp.Slots = invTemplate.Slots; + + var ev = new InventoryTemplateUpdated(); + RaiseLocalEvent(ent, ref ev); + } + private void OnOpenSlotStorage(OpenSlotStorageNetworkMessage ev, EntitySessionEventArgs args) { if (args.SenderSession.AttachedEntity is not { Valid: true } uid) @@ -170,6 +194,31 @@ private IEnumerable ListViewVariablesSlots(EntityUid uid, InventoryCompo } } + /// + /// Change the inventory template ID an entity is using. The new template must be compatible. + /// + /// + /// + /// For an inventory template to be compatible with another, it must have exactly the same slot names. + /// All other changes are rejected. + /// + /// + /// The entity to update. + /// The ID of the new inventory template prototype. + /// + /// Thrown if the new template is not compatible with the existing one. + /// + public void SetTemplateId(Entity ent, ProtoId newTemplate) + { + var newPrototype = _prototypeManager.Index(newTemplate); + + if (!newPrototype.Slots.Select(x => x.Name).SequenceEqual(ent.Comp.Slots.Select(x => x.Name))) + throw new ArgumentException("Incompatible inventory template!"); + + ent.Comp.TemplateId = newTemplate; + Dirty(ent); + } + /// /// Enumerator for iterating over an inventory's slot containers. Also has methods that skip empty containers. /// It should be safe to add or remove items while enumerating. diff --git a/Content.Shared/Overlays/ShowHealthBarsComponent.cs b/Content.Shared/Overlays/ShowHealthBarsComponent.cs index cb4f0fe7dd4..3f27885db18 100644 --- a/Content.Shared/Overlays/ShowHealthBarsComponent.cs +++ b/Content.Shared/Overlays/ShowHealthBarsComponent.cs @@ -9,12 +9,14 @@ namespace Content.Shared.Overlays; /// This component allows you to see health bars above damageable mobs. /// [RegisterComponent, NetworkedComponent] +[AutoGenerateComponentState(true)] public sealed partial class ShowHealthBarsComponent : Component { /// /// Displays health bars of the damage containers. /// [DataField] + [AutoNetworkedField] public List> DamageContainers = new() { "Biological" diff --git a/Content.Shared/Overlays/ShowHealthIconsComponent.cs b/Content.Shared/Overlays/ShowHealthIconsComponent.cs index aa12c9887a8..bc8b5419d2a 100644 --- a/Content.Shared/Overlays/ShowHealthIconsComponent.cs +++ b/Content.Shared/Overlays/ShowHealthIconsComponent.cs @@ -8,12 +8,14 @@ namespace Content.Shared.Overlays; /// This component allows you to see health status icons above damageable mobs. /// [RegisterComponent, NetworkedComponent] +[AutoGenerateComponentState(true)] public sealed partial class ShowHealthIconsComponent : Component { /// /// Displays health status icons of the damage containers. /// [DataField] + [AutoNetworkedField] public List> DamageContainers = new() { "Biological" diff --git a/Content.Shared/Silicons/Borgs/BorgTypePrototype.cs b/Content.Shared/Silicons/Borgs/BorgTypePrototype.cs new file mode 100644 index 00000000000..6154c127577 --- /dev/null +++ b/Content.Shared/Silicons/Borgs/BorgTypePrototype.cs @@ -0,0 +1,155 @@ +using Content.Shared.Interaction.Components; +using Content.Shared.Inventory; +using Content.Shared.Radio; +using Content.Shared.Silicons.Borgs.Components; +using Content.Shared.Whitelist; +using Robust.Shared.Audio; +using Robust.Shared.Prototypes; + +namespace Content.Shared.Silicons.Borgs; + +/// +/// Information for a borg type that can be selected by . +/// +/// +[Prototype] +public sealed partial class BorgTypePrototype : IPrototype +{ + [ValidatePrototypeId] + private static readonly ProtoId DefaultFootsteps = new("FootstepBorg"); + + [IdDataField] + public required string ID { get; init; } + + // + // Description info (name/desc) is configured via localization strings directly. + // + + /// + /// The prototype displayed in the selection menu for this type. + /// + [DataField] + public required EntProtoId DummyPrototype { get; init; } + + // + // Functional information + // + + /// + /// The amount of free module slots this borg type has. + /// + /// + /// This count is on top of the modules specified in . + /// + /// + [DataField] + public int ExtraModuleCount { get; set; } = 0; + + /// + /// The whitelist for borg modules that can be inserted into this borg type. + /// + /// + [DataField] + public EntityWhitelist? ModuleWhitelist { get; set; } + + /// + /// Inventory template used by this borg. + /// + /// + /// This template must be compatible with the normal borg templates, + /// so in practice it can only be used to differentiate the visual position of the slots on the character sprites. + /// + /// + [DataField] + public ProtoId InventoryTemplateId { get; set; } = "borgShort"; + + /// + /// Radio channels that this borg will gain access to from this module. + /// + /// + /// These channels are provided on top of the ones specified in + /// . + /// + [DataField] + public ProtoId[] RadioChannels = []; + + /// + /// Borg module types that are always available to borgs of this type. + /// + /// + /// These modules still work like modules, although they cannot be removed from the borg. + /// + /// + [DataField] + public EntProtoId[] DefaultModules = []; + + /// + /// Additional components to add to the borg entity when this type is selected. + /// + [DataField] + public ComponentRegistry? AddComponents { get; set; } + + // + // Visual information + // + + /// + /// The sprite state for the main borg body. + /// + [DataField] + public string SpriteBodyState { get; set; } = "robot"; + + /// + /// An optional movement sprite state for the main borg body. + /// + [DataField] + public string? SpriteBodyMovementState { get; set; } + + /// + /// Sprite state used to indicate that the borg has a mind in it. + /// + /// + [DataField] + public string SpriteHasMindState { get; set; } = "robot_e"; + + /// + /// Sprite state used to indicate that the borg has no mind in it. + /// + /// + [DataField] + public string SpriteNoMindState { get; set; } = "robot_e_r"; + + /// + /// Sprite state used when the borg's flashlight is on. + /// + [DataField] + public string SpriteToggleLightState { get; set; } = "robot_l"; + + // + // Minor information + // + + /// + /// String to use on petting success. + /// + /// + [DataField] + public string PetSuccessString { get; set; } = "petting-success-generic-cyborg"; + + /// + /// String to use on petting failure. + /// + /// + [DataField] + public string PetFailureString { get; set; } = "petting-failure-generic-cyborg"; + + // + // Sounds + // + + /// + /// Sound specifier for footstep sounds created by this borg. + /// + [DataField] + public SoundSpecifier FootstepCollection { get; set; } = new SoundCollectionSpecifier(DefaultFootsteps); +} diff --git a/Content.Shared/Silicons/Borgs/Components/BorgChassisComponent.cs b/Content.Shared/Silicons/Borgs/Components/BorgChassisComponent.cs index de0fe0bce38..c2bf2b2801b 100644 --- a/Content.Shared/Silicons/Borgs/Components/BorgChassisComponent.cs +++ b/Content.Shared/Silicons/Borgs/Components/BorgChassisComponent.cs @@ -89,5 +89,18 @@ public enum BorgVisuals : byte [Serializable, NetSerializable] public enum BorgVisualLayers : byte { - Light + /// + /// Main borg body layer. + /// + Body, + + /// + /// Layer for the borg's mind state. + /// + Light, + + /// + /// Layer for the borg flashlight status. + /// + LightStatus, } diff --git a/Content.Shared/Silicons/Borgs/Components/BorgModuleComponent.cs b/Content.Shared/Silicons/Borgs/Components/BorgModuleComponent.cs index a7523c1ce70..e542a1e3e3e 100644 --- a/Content.Shared/Silicons/Borgs/Components/BorgModuleComponent.cs +++ b/Content.Shared/Silicons/Borgs/Components/BorgModuleComponent.cs @@ -7,6 +7,7 @@ namespace Content.Shared.Silicons.Borgs.Components; /// to give them unique abilities and attributes. /// [RegisterComponent, NetworkedComponent, Access(typeof(SharedBorgSystem))] +[AutoGenerateComponentState] public sealed partial class BorgModuleComponent : Component { /// @@ -16,6 +17,13 @@ public sealed partial class BorgModuleComponent : Component public EntityUid? InstalledEntity; public bool Installed => InstalledEntity != null; + + /// + /// If true, this is a "default" module that cannot be removed from a borg. + /// + [DataField] + [AutoNetworkedField] + public bool DefaultModule; } /// diff --git a/Content.Shared/Silicons/Borgs/Components/BorgSwitchableTypeComponent.cs b/Content.Shared/Silicons/Borgs/Components/BorgSwitchableTypeComponent.cs new file mode 100644 index 00000000000..9a783d19aa7 --- /dev/null +++ b/Content.Shared/Silicons/Borgs/Components/BorgSwitchableTypeComponent.cs @@ -0,0 +1,72 @@ +using Content.Shared.Actions; +using Content.Shared.Radio; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization; + +namespace Content.Shared.Silicons.Borgs.Components; + +/// +/// Component for borgs that can switch their "type" after being created. +/// +/// +/// +/// This is used by all NT borgs, on construction and round-start spawn. +/// Borgs are effectively useless until they have made their choice of type. +/// Borg type selections are currently irreversible. +/// +/// +/// Available types are specified in s. +/// +/// +/// +[RegisterComponent, NetworkedComponent] +[AutoGenerateComponentState(raiseAfterAutoHandleState: true)] +[Access(typeof(SharedBorgSwitchableTypeSystem))] +public sealed partial class BorgSwitchableTypeComponent : Component +{ + /// + /// Action entity used by players to select their type. + /// + [DataField, AutoNetworkedField] + public EntityUid? SelectTypeAction; + + /// + /// The currently selected borg type, if any. + /// + /// + /// This can be set in a prototype to immediately apply a borg type, and not have switching support. + /// + [DataField, AutoNetworkedField] + public ProtoId? SelectedBorgType; + + /// + /// Radio channels that the borg will always have. These are added on top of the selected type's radio channels. + /// + [DataField] + public ProtoId[] InherentRadioChannels = []; +} + +/// +/// Action event used to open the selection menu of a . +/// +public sealed partial class BorgToggleSelectTypeEvent : InstantActionEvent; + +/// +/// UI message used by a borg to select their type with . +/// +/// The borg type prototype that the user selected. +[Serializable, NetSerializable] +public sealed class BorgSelectTypeMessage(ProtoId prototype) : BoundUserInterfaceMessage +{ + public ProtoId Prototype = prototype; +} + +/// +/// UI key used by the selection menu for . +/// +[NetSerializable, Serializable] +public enum BorgSwitchableTypeUiKey : byte +{ + SelectBorgType, +} diff --git a/Content.Shared/Silicons/Borgs/SharedBorgSwitchableTypeSystem.cs b/Content.Shared/Silicons/Borgs/SharedBorgSwitchableTypeSystem.cs new file mode 100644 index 00000000000..d9abeb2d326 --- /dev/null +++ b/Content.Shared/Silicons/Borgs/SharedBorgSwitchableTypeSystem.cs @@ -0,0 +1,125 @@ +using Content.Shared.Actions; +using Content.Shared.Interaction; +using Content.Shared.Interaction.Components; +using Content.Shared.Movement.Components; +using Content.Shared.Silicons.Borgs.Components; +using Robust.Shared.Player; +using Robust.Shared.Prototypes; + +namespace Content.Shared.Silicons.Borgs; + +/// +/// Implements borg type switching. +/// +/// +public abstract class SharedBorgSwitchableTypeSystem : EntitySystem +{ + // TODO: Allow borgs to be reset to default configuration. + + [Dependency] private readonly SharedActionsSystem _actionsSystem = default!; + [Dependency] private readonly SharedUserInterfaceSystem _userInterface = default!; + [Dependency] protected readonly IPrototypeManager Prototypes = default!; + [Dependency] private readonly InteractionPopupSystem _interactionPopup = default!; + + [ValidatePrototypeId] + public const string ActionId = "ActionSelectBorgType"; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnMapInit); + SubscribeLocalEvent(OnShutdown); + SubscribeLocalEvent(OnSelectBorgTypeAction); + + Subs.BuiEvents(BorgSwitchableTypeUiKey.SelectBorgType, + sub => + { + sub.Event(SelectTypeMessageHandler); + }); + } + + // + // UI-adjacent code + // + + private void OnMapInit(Entity ent, ref MapInitEvent args) + { + _actionsSystem.AddAction(ent, ref ent.Comp.SelectTypeAction, ActionId); + Dirty(ent); + + if (ent.Comp.SelectedBorgType != null) + { + SelectBorgModule(ent, ent.Comp.SelectedBorgType.Value); + } + } + + private void OnShutdown(Entity ent, ref ComponentShutdown args) + { + _actionsSystem.RemoveAction(ent, ent.Comp.SelectTypeAction); + } + + private void OnSelectBorgTypeAction(Entity ent, ref BorgToggleSelectTypeEvent args) + { + if (args.Handled || !TryComp(ent, out var actor)) + return; + + args.Handled = true; + + _userInterface.TryToggleUi((ent.Owner, null), BorgSwitchableTypeUiKey.SelectBorgType, actor.PlayerSession); + } + + private void SelectTypeMessageHandler(Entity ent, ref BorgSelectTypeMessage args) + { + if (ent.Comp.SelectedBorgType != null) + return; + + if (!Prototypes.HasIndex(args.Prototype)) + return; + + SelectBorgModule(ent, args.Prototype); + } + + // + // Implementation + // + + protected virtual void SelectBorgModule( + Entity ent, + ProtoId borgType) + { + ent.Comp.SelectedBorgType = borgType; + + _actionsSystem.RemoveAction(ent, ent.Comp.SelectTypeAction); + ent.Comp.SelectTypeAction = null; + Dirty(ent); + + _userInterface.CloseUi((ent.Owner, null), BorgSwitchableTypeUiKey.SelectBorgType); + + UpdateEntityAppearance(ent); + } + + protected void UpdateEntityAppearance(Entity entity) + { + if (!Prototypes.TryIndex(entity.Comp.SelectedBorgType, out var proto)) + return; + + UpdateEntityAppearance(entity, proto); + } + + protected virtual void UpdateEntityAppearance( + Entity entity, + BorgTypePrototype prototype) + { + if (TryComp(entity, out InteractionPopupComponent? popup)) + { + _interactionPopup.SetInteractSuccessString((entity.Owner, popup), prototype.PetSuccessString); + _interactionPopup.SetInteractFailureString((entity.Owner, popup), prototype.PetFailureString); + } + + if (TryComp(entity, out FootstepModifierComponent? footstepModifier)) + { + footstepModifier.FootstepSoundCollection = prototype.FootstepCollection; + } + } +} diff --git a/Content.Shared/Silicons/Borgs/SharedBorgSystem.cs b/Content.Shared/Silicons/Borgs/SharedBorgSystem.cs index c62e63481d6..827bb351b07 100644 --- a/Content.Shared/Silicons/Borgs/SharedBorgSystem.cs +++ b/Content.Shared/Silicons/Borgs/SharedBorgSystem.cs @@ -124,4 +124,13 @@ private void OnRefreshMovementSpeedModifiers(EntityUid uid, BorgChassisComponent var sprintDif = movement.BaseWalkSpeed / movement.BaseSprintSpeed; args.ModifySpeed(1f, sprintDif); } + + /// + /// Sets . + /// + public void SetBorgModuleDefault(Entity ent, bool newDefault) + { + ent.Comp.DefaultModule = newDefault; + Dirty(ent); + } } diff --git a/Resources/Locale/en-US/borg/borg.ftl b/Resources/Locale/en-US/borg/borg.ftl index 6c495510b05..9c9dc71069a 100644 --- a/Resources/Locale/en-US/borg/borg.ftl +++ b/Resources/Locale/en-US/borg/borg.ftl @@ -25,3 +25,40 @@ borg-transponder-disabling-popup = Your transponder begins to lock you out of th borg-transponder-destroying-popup = The self destruct of {$name} starts beeping! borg-transponder-emagged-disabled-popup = Your transponder's lights go out! borg-transponder-emagged-destroyed-popup = Your transponder's fuse blows! + +## Borg type selection UI. +borg-select-type-menu-title = Select Chassis Type +borg-select-type-menu-bottom-text = Chassis selection is irreversible +borg-select-type-menu-available = Available types +borg-select-type-menu-information = Information +borg-select-type-menu-select-type = Select type to view information +borg-select-type-menu-confirm = Confirm selection +borg-select-type-menu-guidebook = Guidebook + +## Borg type information + +borg-type-generic-name = Generic +borg-type-generic-desc = Jack of all trades, master of none. Do various random station tasks, or maybe help out the science department that built you. +borg-type-generic-transponder = generic cyborg + +borg-type-engineering-name = Engineering +borg-type-engineering-desc = Assist the engineering team in station construction, repairing damage, or fixing electrical and atmospheric issues. +borg-type-engineering-transponder = engineering cyborg + +borg-type-mining-name = Salvage +borg-type-mining-desc = Join salvage and help them mine for materials, scavenge wrecks, and fight off hostile wildlife. +borg-type-mining-transponder = salvage cyborg + +borg-type-janitor-name = Janitor +borg-type-janitor-desc = Keep the station nice and tidy, clean up spills, collect and properly dispose of trash left around by lazy crewmembers. +borg-type-janitor-transponder = janitor cyborg + +borg-type-medical-name = Medical +borg-type-medical-desc = Provide medical attention to crew who need it, either in medbay or in hazardous areas conventional paramedics cannot reach. +borg-type-medical-transponder = medical cyborg + +borg-type-service-name = Service +borg-type-service-desc = Help out with a wide range of crew services, ranging from serving snacks and drinks to botany to entertainment. +borg-type-service-transponder = service cyborg + + diff --git a/Resources/Prototypes/Actions/borgs.yml b/Resources/Prototypes/Actions/borgs.yml index a0168ef00fc..0f635ba3ec6 100644 --- a/Resources/Prototypes/Actions/borgs.yml +++ b/Resources/Prototypes/Actions/borgs.yml @@ -10,3 +10,15 @@ state: state-laws event: !type:ToggleLawsScreenEvent useDelay: 0.5 + +- type: entity + id: ActionSelectBorgType + name: Select Cyborg Type + components: + - type: InstantAction + itemIconStyle: NoItem + icon: + sprite: Interface/Actions/actions_borg.rsi + state: select-type + event: !type:BorgToggleSelectTypeEvent + useDelay: 0.5 diff --git a/Resources/Prototypes/Body/Parts/silicon.yml b/Resources/Prototypes/Body/Parts/silicon.yml index 6b2b3f57d26..3b0f2540963 100644 --- a/Resources/Prototypes/Body/Parts/silicon.yml +++ b/Resources/Prototypes/Body/Parts/silicon.yml @@ -28,82 +28,105 @@ - Robotics - type: entity - id: BaseBorgArmLeft + id: LeftArmBorg parent: PartSilicon name: cyborg left arm - abstract: true components: - type: BodyPart partType: Hand symmetry: Left + - type: Sprite + state: borg_l_arm + - type: Icon + state: borg_l_arm - type: Tag tags: - Trash - BorgArm + - BorgLArm - type: entity - id: BaseBorgArmRight + id: RightArmBorg parent: PartSilicon name: cyborg right arm - abstract: true components: - type: BodyPart partType: Hand symmetry: Right + - type: Sprite + state: borg_r_arm + - type: Icon + state: borg_r_arm - type: Tag tags: - Trash - BorgArm + - BorgRArm - type: entity - id: BaseBorgLegLeft + id: LeftLegBorg parent: PartSilicon name: cyborg left leg - abstract: true components: - type: BodyPart partType: Leg symmetry: Left + - type: Sprite + state: borg_l_leg + - type: Icon + state: borg_l_leg - type: Tag tags: - Trash - BorgLeg + - BorgLLeg - type: entity - id: BaseBorgLegRight + id: RightLegBorg parent: PartSilicon name: cyborg right leg - abstract: true components: - type: BodyPart partType: Leg symmetry: Right + - type: Sprite + state: borg_r_leg + - type: Icon + state: borg_r_leg - type: Tag tags: - Trash - BorgLeg + - BorgRLeg - type: entity - id: BaseBorgHead + id: LightHeadBorg parent: PartSilicon name: cyborg head - abstract: true components: - type: BodyPart partType: Head + - type: Sprite + state: borg_head + - type: Icon + state: borg_head - type: Tag tags: - Trash - BorgHead - type: entity - id: BaseBorgTorso + id: TorsoBorg parent: PartSilicon name: cyborg torso - abstract: true components: - type: BodyPart partType: Torso + - type: Sprite + state: borg_chest + - type: Icon + state: borg_chest - type: Tag tags: - Trash + - BorgTorso diff --git a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml index 0db92ac941d..9303bd42dd5 100644 --- a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml +++ b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml @@ -69,6 +69,9 @@ type: BorgBoundUserInterface enum.StrippingUiKey.Key: type: StrippableBoundUserInterface + # Only used for NT borgs that can switch type, defined here to avoid copy-pasting the rest of this component. + enum.BorgSwitchableTypeUiKey.SelectBorgType: + type: BorgSelectTypeUserInterface - type: ActivatableUI key: enum.BorgUiKey.Key - type: SiliconLawBound @@ -157,6 +160,7 @@ collection: FootstepBorg - type: Construction graph: Cyborg + node: cyborg containers: - part-container - cell_slot @@ -285,6 +289,9 @@ - type: AccessReader access: [["Command"], ["Research"]] - type: ShowJobIcons + - type: InteractionPopup + interactSuccessSound: + path: /Audio/Ambience/Objects/periodic_beep.ogg - type: entity id: BaseBorgChassisSyndicate diff --git a/Resources/Prototypes/Entities/Mobs/Cyborgs/borg_chassis.yml b/Resources/Prototypes/Entities/Mobs/Cyborgs/borg_chassis.yml index 6a8f1e5abb0..fa324c0124f 100644 --- a/Resources/Prototypes/Entities/Mobs/Cyborgs/borg_chassis.yml +++ b/Resources/Prototypes/Entities/Mobs/Cyborgs/borg_chassis.yml @@ -1,23 +1,22 @@ - type: entity - id: BorgChassisGeneric + id: BorgChassisSelectable parent: BaseBorgChassisNT components: - type: Sprite layers: - state: robot + map: ["enum.BorgVisualLayers.Body", "movement"] - state: robot_e_r map: ["enum.BorgVisualLayers.Light"] shader: unshaded visible: false - state: robot_l shader: unshaded - map: ["light"] + map: ["light","enum.BorgVisualLayers.LightStatus"] visible: false - type: BorgChassis - maxModules: 6 - moduleWhitelist: - tags: - - BorgModuleGeneric + # Default borg can take no modules until selected type. + maxModules: 0 hasMindState: robot_e noMindState: robot_e_r - type: BorgTransponder @@ -25,308 +24,62 @@ sprite: Mobs/Silicon/chassis.rsi state: robot name: cyborg - - type: Construction - node: cyborg - - type: Speech - speechVerb: Robotic - type: InteractionPopup interactSuccessString: petting-success-generic-cyborg interactFailureString: petting-failure-generic-cyborg - interactSuccessSound: - path: /Audio/Ambience/Objects/periodic_beep.ogg + - type: BorgSwitchableType + inherentRadioChannels: + - Common + - Binary + +- type: entity + id: BorgChassisGeneric + parent: BorgChassisSelectable + name: generic cyborg + suffix: type picked + components: + - type: BorgSwitchableType + selectedBorgType: generic - type: entity id: BorgChassisMining - parent: BaseBorgChassisNT + parent: BorgChassisSelectable name: salvage cyborg components: - - type: Sprite - layers: - - state: miner - map: ["movement"] - - state: miner_e_r - map: ["enum.BorgVisualLayers.Light"] - shader: unshaded - visible: false - - state: miner_l - shader: unshaded - map: ["light"] - visible: false - - type: SpriteMovement - movementLayers: - movement: - state: miner_moving - noMovementLayers: - movement: - state: miner - - type: BorgChassis - maxModules: 4 - moduleWhitelist: - tags: - - BorgModuleGeneric - - BorgModuleCargo - hasMindState: miner_e - noMindState: miner_e_r - - type: BorgTransponder - sprite: - sprite: Mobs/Silicon/chassis.rsi - state: miner - name: salvage cyborg - - type: Construction - node: mining - - type: IntrinsicRadioTransmitter - channels: - - Supply - - Binary - - Common - - Science - - type: ActiveRadio - channels: - - Supply - - Binary - - Common - - Science - - type: AccessReader - access: [["Cargo"], ["Salvage"], ["Command"], ["Research"]] - - type: Inventory - templateId: borgTall - - type: InteractionPopup - interactSuccessString: petting-success-salvage-cyborg - interactFailureString: petting-failure-salvage-cyborg - interactSuccessSound: - path: /Audio/Ambience/Objects/periodic_beep.ogg + - type: BorgSwitchableType + selectedBorgType: mining - type: entity id: BorgChassisEngineer - parent: BaseBorgChassisNT + parent: BorgChassisSelectable name: engineer cyborg components: - - type: Sprite - layers: - - state: engineer - - state: engineer_e_r - map: ["enum.BorgVisualLayers.Light"] - shader: unshaded - visible: false - - state: engineer_l - shader: unshaded - map: ["light"] - visible: false - - type: BorgChassis - maxModules: 4 - moduleWhitelist: - tags: - - BorgModuleGeneric - - BorgModuleEngineering - hasMindState: engineer_e - noMindState: engineer_e_r - - type: BorgTransponder - sprite: - sprite: Mobs/Silicon/chassis.rsi - state: engineer - name: engineer cyborg - - type: Construction - node: engineer - - type: IntrinsicRadioTransmitter - channels: - - Engineering - - Binary - - Common - - Science - - type: ActiveRadio - channels: - - Engineering - - Binary - - Common - - Science - - type: AccessReader - access: [["Engineering"], ["Command"], ["Research"]] - - type: Inventory - templateId: borgShort - - type: InteractionPopup - interactSuccessString: petting-success-engineer-cyborg - interactFailureString: petting-failure-engineer-cyborg - interactSuccessSound: - path: /Audio/Ambience/Objects/periodic_beep.ogg + - type: BorgSwitchableType + selectedBorgType: engineering - type: entity id: BorgChassisJanitor - parent: BaseBorgChassisNT + parent: BorgChassisSelectable name: janitor cyborg components: - - type: Sprite - layers: - - state: janitor - map: ["movement"] - - state: janitor_e_r - map: ["enum.BorgVisualLayers.Light"] - shader: unshaded - visible: false - - state: janitor_l - shader: unshaded - map: ["light"] - visible: false - - type: SpriteMovement - movementLayers: - movement: - state: janitor_moving - noMovementLayers: - movement: - state: janitor - - type: BorgChassis - maxModules: 4 - moduleWhitelist: - tags: - - BorgModuleGeneric - - BorgModuleJanitor - hasMindState: janitor_e - noMindState: janitor_e_r - - type: BorgTransponder - sprite: - sprite: Mobs/Silicon/chassis.rsi - state: janitor - name: janitor cyborg - - type: Construction - node: janitor - - type: IntrinsicRadioTransmitter - channels: - - Service - - Binary - - Common - - Science - - type: ActiveRadio - channels: - - Service - - Binary - - Common - - Science - - type: AccessReader - access: [["Service"], ["Command"], ["Research"]] - - type: Inventory - templateId: borgShort - - type: InteractionPopup - interactSuccessString: petting-success-janitor-cyborg - interactFailureString: petting-failure-janitor-cyborg - interactSuccessSound: - path: /Audio/Ambience/Objects/periodic_beep.ogg + - type: BorgSwitchableType + selectedBorgType: janitor - type: entity id: BorgChassisMedical - parent: [BaseBorgChassisNT, ShowMedicalIcons] + parent: BorgChassisSelectable name: medical cyborg components: - - type: Sprite - layers: - - state: medical - map: ["movement"] - - state: medical_e_r - map: ["enum.BorgVisualLayers.Light"] - shader: unshaded - visible: false - - state: medical_l - shader: unshaded - map: ["light"] - visible: false - - type: SpriteMovement - movementLayers: - movement: - state: medical_moving - noMovementLayers: - movement: - state: medical - - type: BorgChassis - maxModules: 4 - moduleWhitelist: - tags: - - BorgModuleGeneric - - BorgModuleMedical - hasMindState: medical_e - noMindState: medical_e_r - - type: BorgTransponder - sprite: - sprite: Mobs/Silicon/chassis.rsi - state: medical - name: medical cyborg - - type: Construction - node: medical - - type: IntrinsicRadioTransmitter - channels: - - Medical - - Binary - - Common - - Science - - type: ActiveRadio - channels: - - Medical - - Binary - - Common - - Science - - type: AccessReader - access: [["Medical"], ["Command"], ["Research"]] - - type: Inventory - templateId: borgDutch - - type: FootstepModifier - footstepSoundCollection: - collection: FootstepHoverBorg - - type: SolutionScanner - - type: InteractionPopup - interactSuccessString: petting-success-medical-cyborg - interactFailureString: petting-failure-medical-cyborg - interactSuccessSound: - path: /Audio/Ambience/Objects/periodic_beep.ogg + - type: BorgSwitchableType + selectedBorgType: medical - type: entity id: BorgChassisService - parent: BaseBorgChassisNT + parent: BorgChassisSelectable name: service cyborg components: - - type: Sprite - layers: - - state: service - - state: service_e_r - map: ["enum.BorgVisualLayers.Light"] - shader: unshaded - visible: false - - state: service_l - shader: unshaded - map: ["light"] - visible: false - - type: BorgChassis - maxModules: 4 - moduleWhitelist: - tags: - - BorgModuleGeneric - - BorgModuleService - hasMindState: service_e - noMindState: service_e_r - - type: BorgTransponder - sprite: - sprite: Mobs/Silicon/chassis.rsi - state: service - name: service cyborg - - type: Construction - node: service - - type: IntrinsicRadioTransmitter - channels: - - Service - - Binary - - Common - - Science - - type: ActiveRadio - channels: - - Service - - Binary - - Common - - Science - - type: AccessReader - access: [["Service"], ["Command"], ["Research"]] - - type: Inventory - templateId: borgTall - - type: InteractionPopup - interactSuccessString: petting-success-service-cyborg - interactFailureString: petting-failure-service-cyborg - interactSuccessSound: - path: /Audio/Ambience/Objects/periodic_beep.ogg + - type: BorgSwitchableType + selectedBorgType: service - type: entity id: BorgChassisSyndicateAssault @@ -354,8 +107,6 @@ - BorgModuleSyndicateAssault hasMindState: synd_sec_e noMindState: synd_sec - - type: Construction - node: syndicateassault - type: InteractionPopup interactSuccessString: petting-success-syndicate-cyborg interactFailureString: petting-failure-syndicate-cyborg @@ -388,8 +139,6 @@ - BorgModuleSyndicate hasMindState: synd_medical_e noMindState: synd_medical - - type: Construction - node: syndicatemedical - type: ShowHealthBars - type: InteractionPopup interactSuccessString: petting-success-syndicate-cyborg @@ -429,8 +178,6 @@ - BorgModuleSyndicate hasMindState: synd_engi_e noMindState: synd_engi - - type: Construction - node: syndicatesaboteur - type: ShowHealthBars damageContainers: - Inorganic diff --git a/Resources/Prototypes/Entities/Mobs/Player/silicon.yml b/Resources/Prototypes/Entities/Mobs/Player/silicon.yml index e787ef59f00..bcac46ed842 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/silicon.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/silicon.yml @@ -429,28 +429,9 @@ map: ["base"] # Borgs -- type: entity - id: PlayerBorgGeneric - parent: BorgChassisGeneric - suffix: Battery, Tools - components: - - type: ContainerFill - containers: - borg_brain: - - PositronicBrain - borg_module: - - BorgModuleTool - - type: ItemSlots - slots: - cell_slot: - name: power-cell-slot-component-slot-name-default - startingItem: PowerCellMedium - - type: RandomMetadata - nameSegments: [names_borg] - - type: entity id: PlayerBorgBattery - parent: BorgChassisGeneric + parent: BorgChassisSelectable suffix: Battery components: - type: ContainerFill diff --git a/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_parts.yml b/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_parts.yml deleted file mode 100644 index 6df0488e28f..00000000000 --- a/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_parts.yml +++ /dev/null @@ -1,503 +0,0 @@ -# generic parts -- type: entity - id: LeftArmBorg - parent: BaseBorgArmLeft - components: - - type: Sprite - state: borg_l_arm - - type: Icon - state: borg_l_arm - - type: Tag - tags: - - Trash - - BorgArm - - BorgGenericLArm - -- type: entity - id: RightArmBorg - parent: BaseBorgArmRight - components: - - type: Sprite - state: borg_r_arm - - type: Icon - state: borg_r_arm - - type: Tag - tags: - - Trash - - BorgArm - - BorgGenericRArm - -- type: entity - id: LeftLegBorg - parent: BaseBorgLegLeft - components: - - type: Sprite - state: borg_l_leg - - type: Icon - state: borg_l_leg - - type: Tag - tags: - - Trash - - BorgLeg - - BorgGenericLLeg - -- type: entity - id: RightLegBorg - parent: BaseBorgLegRight - components: - - type: Sprite - state: borg_r_leg - - type: Icon - state: borg_r_leg - - type: Tag - tags: - - Trash - - BorgLeg - - BorgGenericRLeg - -- type: entity - id: LightHeadBorg - parent: BaseBorgHead - components: - - type: Sprite - state: borg_head - - type: Icon - state: borg_head - - type: Tag - tags: - - Trash - - BorgHead - - BorgGenericHead - -- type: entity - id: TorsoBorg - parent: BaseBorgTorso - components: - - type: Sprite - state: borg_chest - - type: Icon - state: borg_chest - - type: Tag - tags: - - Trash - - BorgGenericTorso - -# engineer parts -- type: entity - id: LeftArmBorgEngineer - parent: BaseBorgArmLeft - name: engineer cyborg left arm - components: - - type: Sprite - state: engineer_l_arm - - type: Icon - state: engineer_l_arm - - type: Tag - tags: - - Trash - - BorgArm - - BorgEngineerLArm - -- type: entity - id: RightArmBorgEngineer - parent: BaseBorgArmRight - name: engineer cyborg right arm - components: - - type: Sprite - state: engineer_r_arm - - type: Icon - state: engineer_r_arm - - type: Tag - tags: - - Trash - - BorgArm - - BorgEngineerRArm - -- type: entity - id: LeftLegBorgEngineer - parent: BaseBorgLegLeft - name: engineer cyborg left leg - components: - - type: Sprite - state: engineer_l_leg - - type: Icon - state: engineer_l_leg - - type: Tag - tags: - - Trash - - BorgLeg - - BorgEngineerLLeg - -- type: entity - id: RightLegBorgEngineer - parent: BaseBorgLegRight - name: engineer cyborg right leg - components: - - type: Sprite - state: engineer_r_leg - - type: Icon - state: engineer_r_leg - - type: Tag - tags: - - Trash - - BorgLeg - - BorgEngineerRLeg - -- type: entity - id: HeadBorgEngineer - parent: BaseBorgHead - name: engineer cyborg head - components: - - type: Sprite - state: engineer_head - - type: Icon - state: engineer_head - - type: Tag - tags: - - Trash - - BorgHead - - BorgEngineerHead - -- type: entity - id: TorsoBorgEngineer - parent: BaseBorgTorso - name: engineer cyborg torso - components: - - type: Sprite - state: engineer_chest - - type: Icon - state: engineer_chest - - type: Tag - tags: - - Trash - - BorgEngineerTorso - -# janitor parts -- type: entity - id: LeftLegBorgJanitor - parent: BaseBorgLegLeft - name: janitor cyborg left leg - components: - - type: Sprite - state: janitor_l_leg - - type: Icon - state: janitor_l_leg - - type: Tag - tags: - - Trash - - BorgLeg - - BorgJanitorLLeg - -- type: entity - id: RightLegBorgJanitor - parent: BaseBorgLegRight - name: janitor cyborg right leg - components: - - type: Sprite - state: janitor_r_leg - - type: Icon - state: janitor_r_leg - - type: Tag - tags: - - Trash - - BorgLeg - - BorgJanitorRLeg - -- type: entity - id: HeadBorgJanitor - parent: BaseBorgHead - name: janitor cyborg head - components: - - type: Sprite - state: janitor_head - - type: Icon - state: janitor_head - - type: Tag - tags: - - Trash - - BorgHead - - BorgJanitorHead - -- type: entity - id: TorsoBorgJanitor - parent: BaseBorgTorso - name: janitor cyborg torso - components: - - type: Sprite - state: janitor_chest - - type: Icon - state: janitor_chest - - type: Tag - tags: - - Trash - - BorgJanitorTorso - -# medical parts -- type: entity - id: LeftArmBorgMedical - parent: BaseBorgArmLeft - name: medical cyborg left arm - components: - - type: Sprite - state: medical_l_arm - - type: Icon - state: medical_l_arm - - type: Tag - tags: - - Trash - - BorgArm - - BorgMedicalLArm - -- type: entity - id: RightArmBorgMedical - parent: BaseBorgArmRight - name: medical cyborg right arm - components: - - type: Sprite - state: medical_r_arm - - type: Icon - state: medical_r_arm - - type: Tag - tags: - - Trash - - BorgArm - - BorgMedicalRArm - -- type: entity - id: LeftLegBorgMedical - parent: BaseBorgLegLeft - name: medical cyborg left leg - components: - - type: Sprite - state: medical_l_leg - - type: Icon - state: medical_l_leg - - type: Tag - tags: - - Trash - - BorgLeg - - BorgMedicalLLeg - -- type: entity - id: RightLegBorgMedical - parent: BaseBorgLegRight - name: medical cyborg right leg - components: - - type: Sprite - state: medical_r_leg - - type: Icon - state: medical_r_leg - - type: Tag - tags: - - Trash - - BorgLeg - - BorgMedicalRLeg - -- type: entity - id: HeadBorgMedical - parent: BaseBorgHead - name: medical cyborg head - components: - - type: Sprite - state: medical_head - - type: Icon - state: medical_head - - type: Tag - tags: - - Trash - - BorgHead - - BorgMedicalHead - -- type: entity - id: TorsoBorgMedical - parent: BaseBorgTorso - name: medical cyborg torso - components: - - type: Sprite - state: medical_chest - - type: Icon - state: medical_chest - - type: Tag - tags: - - Trash - - BorgMedicalTorso - -# mining parts -- type: entity - id: LeftArmBorgMining - parent: BaseBorgArmLeft - name: mining cyborg left arm - components: - - type: Sprite - state: mining_l_arm - - type: Icon - state: mining_l_arm - - type: Tag - tags: - - Trash - - BorgArm - - BorgMiningLArm - -- type: entity - id: RightArmBorgMining - parent: BaseBorgArmRight - name: mining cyborg right arm - components: - - type: Sprite - state: mining_r_arm - - type: Icon - state: mining_r_arm - - type: Tag - tags: - - Trash - - BorgArm - - BorgMiningRArm - -- type: entity - id: LeftLegBorgMining - parent: BaseBorgLegLeft - name: mining cyborg left leg - components: - - type: Sprite - state: mining_l_leg - - type: Icon - state: mining_l_leg - - type: Tag - tags: - - Trash - - BorgLeg - - BorgMiningLLeg - -- type: entity - id: RightLegBorgMining - parent: BaseBorgLegRight - name: mining cyborg right leg - components: - - type: Sprite - state: mining_r_leg - - type: Icon - state: mining_r_leg - - type: Tag - tags: - - Trash - - BorgLeg - - BorgMiningRLeg - -- type: entity - id: HeadBorgMining - parent: BaseBorgHead - name: mining cyborg head - components: - - type: Sprite - state: mining_head - - type: Icon - state: mining_head - - type: Tag - tags: - - Trash - - BorgHead - - BorgMiningHead - -- type: entity - id: TorsoBorgMining - parent: BaseBorgTorso - name: mining cyborg torso - components: - - type: Sprite - state: mining_chest - - type: Icon - state: mining_chest - - type: Tag - tags: - - Trash - - BorgMiningTorso - -# service parts -- type: entity - id: LeftArmBorgService - parent: BaseBorgArmLeft - name: service cyborg left arm - components: - - type: Sprite - state: service_l_arm - - type: Icon - state: service_l_arm - - type: Tag - tags: - - Trash - - BorgArm - - BorgServiceLArm - -- type: entity - id: RightArmBorgService - parent: BaseBorgArmRight - name: service cyborg right arm - components: - - type: Sprite - state: service_r_arm - - type: Icon - state: service_r_arm - - type: Tag - tags: - - Trash - - BorgArm - - BorgServiceRArm - -- type: entity - id: LeftLegBorgService - parent: BaseBorgLegLeft - name: service cyborg left leg - components: - - type: Sprite - state: service_l_leg - - type: Icon - state: service_l_leg - - type: Tag - tags: - - Trash - - BorgLeg - - BorgServiceLLeg - -- type: entity - id: RightLegBorgService - parent: BaseBorgLegRight - name: service cyborg right leg - components: - - type: Sprite - state: service_r_leg - - type: Icon - state: service_r_leg - - type: Tag - tags: - - Trash - - BorgLeg - - BorgServiceRLeg - -- type: entity - id: HeadBorgService - parent: BaseBorgHead - name: service cyborg head - components: - - type: Sprite - state: service_head - - type: Icon - state: service_head - - type: Tag - tags: - - Trash - - BorgHead - - BorgServiceHead - -- type: entity - id: TorsoBorgService - parent: BaseBorgTorso - name: service cyborg torso - components: - - type: Sprite - state: service_chest - - type: Icon - state: service_chest - - type: Tag - tags: - - Trash - - BorgServiceTorso diff --git a/Resources/Prototypes/Entities/Objects/Specific/Robotics/endoskeleton.yml b/Resources/Prototypes/Entities/Objects/Specific/Robotics/endoskeleton.yml index 9261e06ea2a..6afc06a7967 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Robotics/endoskeleton.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Robotics/endoskeleton.yml @@ -33,139 +33,27 @@ borg_l_arm+o: whitelist: tags: - - BorgGenericLArm + - BorgLArm borg_r_arm+o: whitelist: tags: - - BorgGenericRArm + - BorgRArm borg_l_leg+o: whitelist: tags: - - BorgGenericLLeg + - BorgLLeg borg_r_leg+o: whitelist: tags: - - BorgGenericRLeg + - BorgRLeg borg_head+o: whitelist: tags: - - BorgGenericHead + - BorgHead borg_chest+o: whitelist: tags: - - BorgGenericTorso - service_l_arm+o: - whitelist: - tags: - - BorgServiceLArm - service_r_arm+o: - whitelist: - tags: - - BorgServiceRArm - service_l_leg+o: - whitelist: - tags: - - BorgServiceLLeg - service_r_leg+o: - whitelist: - tags: - - BorgServiceRLeg - service_head+o: - whitelist: - tags: - - BorgServiceHead - service_chest+o: - whitelist: - tags: - - BorgServiceTorso - engineer_l_arm+o: - whitelist: - tags: - - BorgEngineerLArm - engineer_r_arm+o: - whitelist: - tags: - - BorgEngineerRArm - engineer_l_leg+o: - whitelist: - tags: - - BorgEngineerLLeg - engineer_r_leg+o: - whitelist: - tags: - - BorgEngineerRLeg - engineer_head+o: - whitelist: - tags: - - BorgEngineerHead - engineer_chest+o: - whitelist: - tags: - - BorgEngineerTorso - mining_l_arm+o: - whitelist: - tags: - - BorgMiningLArm - mining_r_arm+o: - whitelist: - tags: - - BorgMiningRArm - mining_l_leg+o: - whitelist: - tags: - - BorgMiningLLeg - mining_r_leg+o: - whitelist: - tags: - - BorgMiningRLeg - mining_head+o: - whitelist: - tags: - - BorgMiningHead - mining_chest+o: - whitelist: - tags: - - BorgMiningTorso - medical_l_arm+o: - whitelist: - tags: - - BorgMedicalLArm - medical_r_arm+o: - whitelist: - tags: - - BorgMedicalRArm - medical_l_leg+o: - whitelist: - tags: - - BorgMedicalLLeg - medical_r_leg+o: - whitelist: - tags: - - BorgMedicalRLeg - medical_head+o: - whitelist: - tags: - - BorgMedicalHead - medical_chest+o: - whitelist: - tags: - - BorgMedicalTorso - janitor_l_leg+o: - whitelist: - tags: - - BorgJanitorLLeg - janitor_r_leg+o: - whitelist: - tags: - - BorgJanitorRLeg - janitor_head+o: - whitelist: - tags: - - BorgJanitorHead - janitor_chest+o: - whitelist: - tags: - - BorgJanitorTorso + - BorgTorso - type: ContainerContainer containers: part-container: !type:Container @@ -173,45 +61,12 @@ - type: PartAssembly parts: generic: - - BorgGenericLArm - - BorgGenericRArm - - BorgGenericLLeg - - BorgGenericRLeg - - BorgGenericHead - - BorgGenericTorso - service: - - BorgServiceLArm - - BorgServiceRArm - - BorgServiceLLeg - - BorgServiceRLeg - - BorgServiceHead - - BorgServiceTorso - engineer: - - BorgEngineerLArm - - BorgEngineerRArm - - BorgEngineerLLeg - - BorgEngineerRLeg - - BorgEngineerHead - - BorgEngineerTorso - medical: - - BorgMedicalLArm - - BorgMedicalRArm - - BorgMedicalLLeg - - BorgMedicalRLeg - - BorgMedicalHead - - BorgMedicalTorso - janitor: - - BorgJanitorLLeg - - BorgJanitorRLeg - - BorgJanitorHead - - BorgJanitorTorso - mining: - - BorgMiningLArm - - BorgMiningRArm - - BorgMiningLLeg - - BorgMiningRLeg - - BorgMiningHead - - BorgMiningTorso + - BorgLArm + - BorgRArm + - BorgLLeg + - BorgRLeg + - BorgHead + - BorgTorso - type: Construction graph: Cyborg node: start diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index 020566ad1a7..6a94891d127 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -572,11 +572,6 @@ - BorgModuleFireExtinguisher - BorgModuleRadiationDetection - BorgModuleTool - - BorgModuleAppraisal - - BorgModuleConstruction - - BorgModuleService - - BorgModuleTreatment - - BorgModuleCleaning - CyborgEndoskeleton - LeftArmBorg - RightArmBorg @@ -584,50 +579,15 @@ - RightLegBorg - LightHeadBorg - TorsoBorg - - LeftArmBorgEngineer - - RightArmBorgEngineer - - LeftLegBorgEngineer - - RightLegBorgEngineer - - HeadBorgEngineer - - TorsoBorgEngineer - - LeftLegBorgJanitor - - RightLegBorgJanitor - - HeadBorgJanitor - - TorsoBorgJanitor - - LeftArmBorgMedical - - RightArmBorgMedical - - LeftLegBorgMedical - - RightLegBorgMedical - - HeadBorgMedical - - TorsoBorgMedical - - LeftArmBorgMining - - RightArmBorgMining - - LeftLegBorgMining - - RightLegBorgMining - - HeadBorgMining - - TorsoBorgMining - - LeftArmBorgService - - RightArmBorgService - - LeftLegBorgService - - RightLegBorgService - - HeadBorgService - - TorsoBorgService dynamicRecipes: - ProximitySensor - - BorgModuleLightReplacer - BorgModuleAdvancedCleaning - - BorgModuleMining - - BorgModuleGrapplingGun - BorgModuleAdvancedTool - BorgModuleGPS - - BorgModuleRCD - BorgModuleArtifact - BorgModuleAnomaly - BorgModuleGardening - BorgModuleHarvesting - - BorgModuleMusique - - BorgModuleClowning - - BorgModuleDiagnosis - BorgModuleDefibrillator - BorgModuleAdvancedTreatment - RipleyHarness diff --git a/Resources/Prototypes/InventoryTemplates/borg.yml b/Resources/Prototypes/InventoryTemplates/borg.yml index d43519f61cf..3d3ef29eb03 100644 --- a/Resources/Prototypes/InventoryTemplates/borg.yml +++ b/Resources/Prototypes/InventoryTemplates/borg.yml @@ -26,8 +26,7 @@ - name: head slotTexture: head slotFlags: HEAD - slotGroup: MainHotbar - uiWindowPos: 0,0 + uiWindowPos: 1,0 strippingWindowPos: 0,0 displayName: Head offset: 0.015625, 0 diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/machines/cyborg.yml b/Resources/Prototypes/Recipes/Construction/Graphs/machines/cyborg.yml index 0f012cefc98..4ebc43667c5 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/machines/cyborg.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/machines/cyborg.yml @@ -5,18 +5,6 @@ - node: start entity: CyborgEndoskeleton edges: - - # empty the parts via prying - - to: start - conditions: - - !type:ContainerNotEmpty - container: part-container - steps: - - tool: Prying - doAfter: 0.5 - completed: - - !type:EmptyAllContainers - - to: cyborg steps: - assemblyId: generic @@ -43,165 +31,6 @@ - tool: Screwing doAfter: 0.5 - - - to: engineer - steps: - - assemblyId: engineer - guideString: borg-construction-guide-string - - - material: Cable - amount: 1 - doAfter: 1 - store: part-container - - - component: Flash - name: flash - store: part-container - icon: - sprite: Objects/Weapons/Melee/flash.rsi - state: flash - - - component: Flash - name: second flash - store: part-container - icon: - sprite: Objects/Weapons/Melee/flash.rsi - state: flash - - - tool: Screwing - doAfter: 0.5 - - - to: janitor - steps: - - assemblyId: janitor - guideString: borg-construction-guide-string - - - material: Cable - amount: 1 - doAfter: 1 - store: part-container - - - component: Flash - name: flash - store: part-container - icon: - sprite: Objects/Weapons/Melee/flash.rsi - state: flash - - - component: Flash - name: second flash - store: part-container - icon: - sprite: Objects/Weapons/Melee/flash.rsi - state: flash - - - tool: Screwing - doAfter: 0.5 - - - to: medical - steps: - - assemblyId: medical - guideString: borg-construction-guide-string - - - material: Cable - amount: 1 - doAfter: 1 - store: part-container - - - component: Flash - name: flash - store: part-container - icon: - sprite: Objects/Weapons/Melee/flash.rsi - state: flash - - - component: Flash - name: second flash - store: part-container - icon: - sprite: Objects/Weapons/Melee/flash.rsi - state: flash - - - tool: Screwing - doAfter: 0.5 - - - to: mining - steps: - - assemblyId: mining - guideString: borg-construction-guide-string - - - material: Cable - amount: 1 - doAfter: 1 - store: part-container - - - component: Flash - name: flash - store: part-container - icon: - sprite: Objects/Weapons/Melee/flash.rsi - state: flash - - - component: Flash - name: second flash - store: part-container - icon: - sprite: Objects/Weapons/Melee/flash.rsi - state: flash - - - tool: Screwing - doAfter: 0.5 - - - to: service - steps: - - assemblyId: service - guideString: borg-construction-guide-string - - - material: Cable - amount: 1 - doAfter: 1 - store: part-container - - - component: Flash - name: flash - store: part-container - icon: - sprite: Objects/Weapons/Melee/flash.rsi - state: flash - - - component: Flash - name: second flash - store: part-container - icon: - sprite: Objects/Weapons/Melee/flash.rsi - state: flash - - - tool: Screwing - doAfter: 0.5 - node: cyborg - entity: BorgChassisGeneric - - - node: engineer - entity: BorgChassisEngineer - - - node: janitor - entity: BorgChassisJanitor - - - node: mining - entity: BorgChassisMining - - - node: medical - entity: BorgChassisMedical - - - node: service - entity: BorgChassisService - - - node: syndicateassault - entity: BorgChassisSyndicateAssault - - - node: syndicatemedical - entity: BorgChassisSyndicateMedical - - - node: syndicatesaboteur - entity: BorgChassisSyndicateSaboteur + entity: BorgChassisSelectable diff --git a/Resources/Prototypes/Recipes/Lathes/robotics.yml b/Resources/Prototypes/Recipes/Lathes/robotics.yml index bf8deba9840..a4413e01ebe 100644 --- a/Resources/Prototypes/Recipes/Lathes/robotics.yml +++ b/Resources/Prototypes/Recipes/Lathes/robotics.yml @@ -61,8 +61,6 @@ materials: Steel: 1500 -# Generic - - type: latheRecipe parent: BaseBorgLimbRecipe id: LeftArmBorg @@ -93,162 +91,6 @@ id: TorsoBorg result: TorsoBorg -# Engineer - -- type: latheRecipe - parent: BaseBorgLimbRecipe - id: LeftArmBorgEngineer - result: LeftArmBorgEngineer - -- type: latheRecipe - parent: BaseBorgLimbRecipe - id: RightArmBorgEngineer - result: RightArmBorgEngineer - -- type: latheRecipe - parent: BaseBorgLimbRecipe - id: LeftLegBorgEngineer - result: LeftLegBorgEngineer - -- type: latheRecipe - parent: BaseBorgLimbRecipe - id: RightLegBorgEngineer - result: RightLegBorgEngineer - -- type: latheRecipe - parent: BaseBorgLimbRecipe - id: HeadBorgEngineer - result: HeadBorgEngineer - -- type: latheRecipe - parent: BaseBorgLimbRecipe - id: TorsoBorgEngineer - result: TorsoBorgEngineer - -# Medical - -- type: latheRecipe - parent: BaseBorgLimbRecipe - id: LeftArmBorgMedical - result: LeftArmBorgMedical - -- type: latheRecipe - parent: BaseBorgLimbRecipe - id: RightArmBorgMedical - result: RightArmBorgMedical - -- type: latheRecipe - parent: BaseBorgLimbRecipe - id: LeftLegBorgMedical - result: LeftLegBorgMedical - -- type: latheRecipe - parent: BaseBorgLimbRecipe - id: RightLegBorgMedical - result: RightLegBorgMedical - -- type: latheRecipe - parent: BaseBorgLimbRecipe - id: HeadBorgMedical - result: HeadBorgMedical - -- type: latheRecipe - parent: BaseBorgLimbRecipe - id: TorsoBorgMedical - result: TorsoBorgMedical - -# Mining - -- type: latheRecipe - parent: BaseBorgLimbRecipe - id: LeftArmBorgMining - result: LeftArmBorgMining - -- type: latheRecipe - parent: BaseBorgLimbRecipe - id: RightArmBorgMining - result: RightArmBorgMining - -- type: latheRecipe - parent: BaseBorgLimbRecipe - id: LeftLegBorgMining - result: LeftLegBorgMining - -- type: latheRecipe - parent: BaseBorgLimbRecipe - id: RightLegBorgMining - result: RightLegBorgMining - -- type: latheRecipe - parent: BaseBorgLimbRecipe - id: HeadBorgMining - result: HeadBorgMining - -- type: latheRecipe - parent: BaseBorgLimbRecipe - id: TorsoBorgMining - result: TorsoBorgMining - -# Service - -- type: latheRecipe - parent: BaseBorgLimbRecipe - id: LeftArmBorgService - result: LeftArmBorgService - -- type: latheRecipe - parent: BaseBorgLimbRecipe - id: RightArmBorgService - result: RightArmBorgService - -- type: latheRecipe - parent: BaseBorgLimbRecipe - id: LeftLegBorgService - result: LeftLegBorgService - -- type: latheRecipe - parent: BaseBorgLimbRecipe - id: RightLegBorgService - result: RightLegBorgService - -- type: latheRecipe - parent: BaseBorgLimbRecipe - id: HeadBorgService - result: HeadBorgService - -- type: latheRecipe - parent: BaseBorgLimbRecipe - id: TorsoBorgService - result: TorsoBorgService - -# Janitor - -- type: latheRecipe - parent: BaseBorgLimbRecipe - id: LeftLegBorgJanitor - result: LeftLegBorgJanitor - -- type: latheRecipe - parent: BaseBorgLimbRecipe - id: RightLegBorgJanitor - result: RightLegBorgJanitor - -- type: latheRecipe - parent: BaseBorgLimbRecipe - id: HeadBorgJanitor - result: HeadBorgJanitor - materials: - Steel: 500 - Glass: 200 - -- type: latheRecipe - parent: BaseBorgLimbRecipe - id: TorsoBorgJanitor - result: TorsoBorgJanitor - materials: - Steel: 500 - Glass: 200 - # Parts - type: latheRecipe @@ -304,23 +146,6 @@ id: BorgModuleTool result: BorgModuleTool -# Mining Modules - -- type: latheRecipe - parent: BaseBorgModuleRecipe - id: BorgModuleAppraisal - result: BorgModuleAppraisal - -- type: latheRecipe - parent: BaseBorgModuleRecipe - id: BorgModuleMining - result: BorgModuleMining - -- type: latheRecipe - parent: BaseGoldBorgModuleRecipe - id: BorgModuleGrapplingGun - result: BorgModuleGrapplingGun - # Engineering Modules - type: latheRecipe @@ -328,28 +153,8 @@ id: BorgModuleAdvancedTool result: BorgModuleAdvancedTool -- type: latheRecipe - parent: BaseBorgModuleRecipe - id: BorgModuleConstruction - result: BorgModuleConstruction - -- type: latheRecipe - parent: BaseGoldBorgModuleRecipe - id: BorgModuleRCD - result: BorgModuleRCD - # Janitor Modules -- type: latheRecipe - parent: BaseBorgModuleRecipe - id: BorgModuleLightReplacer - result: BorgModuleLightReplacer - -- type: latheRecipe - parent: BaseBorgModuleRecipe - id: BorgModuleCleaning - result: BorgModuleCleaning - - type: latheRecipe parent: BaseGoldBorgModuleRecipe id: BorgModuleAdvancedCleaning @@ -357,16 +162,6 @@ # Medical Modules -- type: latheRecipe - parent: BaseBorgModuleRecipe - id: BorgModuleDiagnosis - result: BorgModuleDiagnosis - -- type: latheRecipe - parent: BaseBorgModuleRecipe - id: BorgModuleTreatment - result: BorgModuleTreatment - - type: latheRecipe parent: BaseGoldBorgModuleRecipe id: BorgModuleAdvancedTreatment @@ -391,16 +186,6 @@ # Service Modules -- type: latheRecipe - parent: BaseBorgModuleRecipe - id: BorgModuleService - result: BorgModuleService - -- type: latheRecipe - parent: BaseBorgModuleRecipe - id: BorgModuleMusique - result: BorgModuleMusique - - type: latheRecipe parent: BaseBorgModuleRecipe id: BorgModuleGardening @@ -410,8 +195,3 @@ parent: BaseBorgModuleRecipe id: BorgModuleHarvesting result: BorgModuleHarvesting - -- type: latheRecipe - parent: BaseBorgModuleRecipe - id: BorgModuleClowning - result: BorgModuleClowning diff --git a/Resources/Prototypes/Research/civilianservices.yml b/Resources/Prototypes/Research/civilianservices.yml index b990eb6ae40..9430c391a99 100644 --- a/Resources/Prototypes/Research/civilianservices.yml +++ b/Resources/Prototypes/Research/civilianservices.yml @@ -66,8 +66,6 @@ recipeUnlocks: - ComputerTelevisionCircuitboard - SynthesizerInstrument - - BorgModuleMusique - - BorgModuleClowning - DawInstrumentMachineCircuitboard - MassMediaCircuitboard - JukeboxCircuitBoard @@ -82,7 +80,6 @@ tier: 1 cost: 5000 recipeUnlocks: - - BorgModuleLightReplacer - BorgModuleAdvancedCleaning - type: technology diff --git a/Resources/Prototypes/Research/industrial.yml b/Resources/Prototypes/Research/industrial.yml index e65c734ffda..817e50834b7 100644 --- a/Resources/Prototypes/Research/industrial.yml +++ b/Resources/Prototypes/Research/industrial.yml @@ -12,8 +12,6 @@ recipeUnlocks: - MiningDrill - MineralScannerEmpty - - BorgModuleMining - - BorgModuleGrapplingGun - OreProcessorIndustrialMachineCircuitboard - ClothingMaskWeldingGas @@ -168,7 +166,6 @@ - PowerDrill - JawsOfLife - BorgModuleAdvancedTool - - BorgModuleRCD - type: technology id: MassExcavation diff --git a/Resources/Prototypes/Roles/Jobs/Science/borg.yml b/Resources/Prototypes/Roles/Jobs/Science/borg.yml index 4cbede17ca2..c62482d286e 100644 --- a/Resources/Prototypes/Roles/Jobs/Science/borg.yml +++ b/Resources/Prototypes/Roles/Jobs/Science/borg.yml @@ -25,5 +25,5 @@ canBeAntag: false icon: JobIconBorg supervisors: job-supervisors-rd - jobEntity: PlayerBorgGeneric + jobEntity: PlayerBorgBattery applyTraits: false diff --git a/Resources/Prototypes/borg_types.yml b/Resources/Prototypes/borg_types.yml new file mode 100644 index 00000000000..f6294be68e3 --- /dev/null +++ b/Resources/Prototypes/borg_types.yml @@ -0,0 +1,218 @@ +# Generic borg +- type: borgType + id: generic + + # Description + dummyPrototype: BorgChassisGeneric + + # Functional + extraModuleCount: 5 + moduleWhitelist: + tags: + - BorgModuleGeneric + + defaultModules: + - BorgModuleTool + + radioChannels: + - Science + + # Visual + inventoryTemplateId: borgShort + spriteBodyState: robot + spriteHasMindState: robot_e + spriteNoMindState: robot_e_r + spriteToggleLightState: robot_l + + # Pet + petSuccessString: petting-success-generic-cyborg + petFailureString: petting-failure-generic-cyborg + + +# Engineering borg +- type: borgType + id: engineering + + # Description + dummyPrototype: BorgChassisEngineer + + # Functional + extraModuleCount: 3 + moduleWhitelist: + tags: + - BorgModuleGeneric + - BorgModuleEngineering + + defaultModules: + - BorgModuleTool + - BorgModuleConstruction + - BorgModuleRCD + - BorgModuleCable + + radioChannels: + - Engineering + - Science + + # Visual + inventoryTemplateId: borgShort + spriteBodyState: engineer + spriteHasMindState: engineer_e + spriteNoMindState: engineer_e_r + spriteToggleLightState: engineer_l + + # Pet + petSuccessString: petting-success-engineer-cyborg + petFailureString: petting-failure-engineer-cyborg + + +# Salvage borg +- type: borgType + id: mining + + # Description + dummyPrototype: BorgChassisMining + + # Functional + extraModuleCount: 3 + moduleWhitelist: + tags: + - BorgModuleGeneric + - BorgModuleCargo + + defaultModules: + - BorgModuleGrapplingGun + - BorgModuleMining + - BorgModuleAppraisal + + radioChannels: + - Supply + - Science + + # Visual + inventoryTemplateId: borgTall + spriteBodyState: miner + spriteBodyMovementState: miner_moving + spriteHasMindState: miner_e + spriteNoMindState: miner_e_r + spriteToggleLightState: miner_l + + # Pet + petSuccessString: petting-success-salvage-cyborg + petFailureString: petting-failure-salvage-cyborg + + +# Janitor borg +- type: borgType + id: janitor + + # Description + dummyPrototype: BorgChassisJanitor + + # Functional + extraModuleCount: 3 + moduleWhitelist: + tags: + - BorgModuleGeneric + - BorgModuleJanitor + + defaultModules: + - BorgModuleLightReplacer + - BorgModuleCleaning + + radioChannels: + - Science + - Service + + # Visual + inventoryTemplateId: borgShort + spriteBodyState: janitor + spriteBodyMovementState: janitor_moving + spriteHasMindState: janitor_e + spriteNoMindState: janitor_e_r + spriteToggleLightState: janitor_l + + # Pet + petSuccessString: petting-success-janitor-cyborg + petFailureString: petting-failure-janitor-cyborg + + +# Medical borg +- type: borgType + id: medical + + # Description + dummyPrototype: BorgChassisMedical + + # Functional + extraModuleCount: 3 + moduleWhitelist: + tags: + - BorgModuleGeneric + - BorgModuleMedical + + defaultModules: + - BorgModuleTreatment + + radioChannels: + - Science + - Medical + + addComponents: + - type: SolutionScanner + - type: ShowHealthBars + damageContainers: + - Biological + - type: ShowHealthIcons + damageContainers: + - Biological + + # Visual + inventoryTemplateId: borgDutch + spriteBodyState: medical + spriteBodyMovementState: medical_moving + spriteHasMindState: medical_e + spriteNoMindState: medical_e_r + spriteToggleLightState: medical_l + + # Pet + petSuccessString: petting-success-medical-cyborg + petFailureString: petting-failure-medical-cyborg + + # Sounds + footstepCollection: + collection: FootstepHoverBorg + + +# Service borg +- type: borgType + id: service + + # Description + dummyPrototype: BorgChassisService + + # Functional + extraModuleCount: 3 + moduleWhitelist: + tags: + - BorgModuleGeneric + - BorgModuleService + + defaultModules: + - BorgModuleMusique + - BorgModuleService + - BorgModuleClowning + + radioChannels: + - Science + - Service + + # Visual + inventoryTemplateId: borgTall + spriteBodyState: service + spriteHasMindState: service_e + spriteNoMindState: service_e_r + spriteToggleLightState: service_l + + # Pet + petSuccessString: petting-success-service-cyborg + petFailureString: petting-failure-service-cyborg diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml index be9c90ce93d..6112f93c164 100644 --- a/Resources/Prototypes/tags.yml +++ b/Resources/Prototypes/tags.yml @@ -75,95 +75,26 @@ - type: Tag id: BorgArm -- type: Tag - id: BorgEngineerHead - -- type: Tag - id: BorgEngineerLArm - -- type: Tag - id: BorgEngineerLLeg - -- type: Tag - id: BorgEngineerRArm - -- type: Tag - id: BorgEngineerRLeg - -- type: Tag - id: BorgEngineerTorso - -- type: Tag - id: BorgGenericHead - -- type: Tag - id: BorgGenericLArm - -- type: Tag - id: BorgGenericLLeg - -- type: Tag - id: BorgGenericRArm - -- type: Tag - id: BorgGenericRLeg - -- type: Tag - id: BorgGenericTorso - - type: Tag id: BorgHead - type: Tag - id: BorgJanitorHead - -- type: Tag - id: BorgJanitorLLeg - -- type: Tag - id: BorgJanitorRLeg - -- type: Tag - id: BorgJanitorTorso + id: BorgLArm - type: Tag - id: BorgLeg - -- type: Tag - id: BorgMedicalHead - -- type: Tag - id: BorgMedicalLArm - -- type: Tag - id: BorgMedicalLLeg - -- type: Tag - id: BorgMedicalRArm - -- type: Tag - id: BorgMedicalRLeg - -- type: Tag - id: BorgMedicalTorso - -- type: Tag - id: BorgMiningHead + id: BorgLLeg - type: Tag - id: BorgMiningLArm + id: BorgRArm - type: Tag - id: BorgMiningLLeg + id: BorgRLeg - type: Tag - id: BorgMiningRArm + id: BorgTorso - type: Tag - id: BorgMiningRLeg - -- type: Tag - id: BorgMiningTorso + id: BorgLeg - type: Tag id: BorgModuleCargo @@ -189,24 +120,6 @@ - type: Tag id: BorgModuleSyndicateAssault -- type: Tag - id: BorgServiceHead - -- type: Tag - id: BorgServiceLArm - -- type: Tag - id: BorgServiceLLeg - -- type: Tag - id: BorgServiceRArm - -- type: Tag - id: BorgServiceRLeg - -- type: Tag - id: BorgServiceTorso - - type: Tag id: Bot diff --git a/Resources/ServerInfo/Guidebook/Science/Cyborgs.xml b/Resources/ServerInfo/Guidebook/Science/Cyborgs.xml index 2b8defb0705..c1507ca5396 100644 --- a/Resources/ServerInfo/Guidebook/Science/Cyborgs.xml +++ b/Resources/ServerInfo/Guidebook/Science/Cyborgs.xml @@ -18,28 +18,28 @@ Both brains can be fabricated without requiring any additional research. - ## Chassis - While all cyborgs share the same endoskeleton, not all share the same chassis. The chassis determines what modules the cyborg can have, along with the [color=#a4885c]departmental radio channel[/color] they correspond to. By default, they will always have access to [color=#D381C9]Science[/color] and [color=green]station-wide[/color] frequencies, along with having [color=#a4885c]all-access[/color]. + ## Cyborg types + Once created, a cyborg needs to specialize its chassis to a duty on the station. This determines what modules it starts with, which additional modules can be installed, and what [color=#a4885c]departmental radio channel[/color] it has access to. All cyborgs have access to the [color=#D381C9]Science[/color] and [color=green]station-wide[/color] radio channels. All cyborg types have [color=#a4885c]all-access[/color]. - + - [italic]Examples of various cyborg chassis[/italic] + [italic]Examples of various cyborg types[/italic] - If you wish to change the chassis of an already existing cyborg, you have to construct a whole new one, limbs and frame included. The brain, power cell and modules [italic](if it can fit in the new chassis,)[/italic] can be carried over from the old chassis, if desired. + Once a cyborg chassis has been specialized, it cannot be changed. To change types, a new chassis must be constructed. The brain, power cell, and any modules [italic](if they are compatible with the new chassis)[/italic] can be carried over from the old chassis if desired. ## Modules - A cyborg isn't able to do much without [color=#a4885c]modules[/color]. These printed circuit boards are specific to cyborgs and grant additional functionality to them. They are printed at the [color=#a4885c]Exosuit Fabricator[/color]. + Cyborgs do not have hands, and therefore cannot pick things up like most other players. Instead, their equipment is provided by various [color=#a4885c]modules[/color]. Every cyborg type starts with its own specific set of modules, but additional modules can be inserted as upgrades. These additional modules can be printed at the [color=#a4885c]Exosuit Fabricator[/color]. - [color=#a4885c]Generic[/color] modules add versatility. They can be fitted into any chassis, granting useful tools such as crowbars, GPS, and the ability to interact with cables. [bold]The generic borg chassis can fit up to 6 modules in total.[/bold] + [color=#a4885c]Generic[/color] modules add versatility. They can be fitted into any chassis, granting useful tools such as crowbars, GPS, and the ability to interact with cables. [bold]The generic cyborg chassis can fit up to five additional modules.[/bold] @@ -49,7 +49,7 @@ [italic]Examples of generic modules[/italic] - For more specific needs, [color=#a4885c]specialized[/color] modules are available, granting capabilities like scanning anomalies, constructing walls, reviving crew mates, or cleaning a space lube spill. These modules are typically colored with the same palette as the department [italic](or occupation)[/italic] they relate to. These modules [italic](with exception to [color=#D381C9]science[/color] modules, which can fit any chassis,)[/italic] can only be fitted in their associated borg chassis. [bold]The specialized borg chassis, being the engineering, janitorial, service, medical, and mining chassis, can fit up to 4 modules.[/bold] + For more specific needs, [color=#a4885c]specialized[/color] modules are available, granting capabilities like scanning anomalies, constructing walls, reviving crew mates, or cleaning a space lube spill. These modules are typically colored with the same palette as the department [italic](or occupation)[/italic] they relate to. These modules [italic](with exception to [color=#D381C9]science[/color] modules, which can fit any chassis,)[/italic] can only be fitted in their associated borg chassis. [bold]The specialized borg chassis, being the engineering, janitorial, service, medical, and mining chassis, can fit up to three additional modules.[/bold] diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/meta.json b/Resources/Textures/Interface/Actions/actions_borg.rsi/meta.json index dc8a6fcf9c6..2ebb6eddcf5 100644 --- a/Resources/Textures/Interface/Actions/actions_borg.rsi/meta.json +++ b/Resources/Textures/Interface/Actions/actions_borg.rsi/meta.json @@ -48,7 +48,7 @@ }, { "name":"light-replacer-module" - }, + }, { "name":"cleaning-module" }, @@ -102,6 +102,9 @@ }, { "name":"syndicate-martyr-module" + }, + { + "name": "select-type" } ] } diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/select-type.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/select-type.png new file mode 100644 index 0000000000000000000000000000000000000000..766fd71abd0d865e7e4fe89a8137ebafc0c7e5ee GIT binary patch literal 408 zcmV;J0cZY+P)Px$Qb|NXR9J=WS22%+AQXO(nnJGeEyctxoo?;a|Nlpt4qeVfbRe<8$=rm82<>^1 z)4^}zJ%sP$6VOKh0J7}Vzyc`Cufs0OPK^-x68r!F&CZUbEZBdr3X!*_-3ySiU}>7d z@tC##VL#})ZV*#Se@$LhC6lsXM#R8@B-yu0sS&|kpp-(A>{|fnogN54#AxKUh`N@2 zJP;6b^|k;Tn*-}~;PJS9#2`PPKc9;_fQZZP0j1Pv4-6ti1Vrp(t#xoRt##jT+IH-N zJ3qi12RP@TwFb`lh}_M&u@93Sutm6VbG8E^Om@Ib99pg2_g4pAo&q1a$-AU(&iBmZ zQxIC!yZ0X&H`#%?vC4bE>%ir5eZ~^8eGNAU*6#qo_`iQ{@}L9v`;CPPlPRKJ6)II# zGD65$fDm~rWx?uNMlH_>A^y_Lh=@t<6$G$sdHxMyApx5dNM}g^0000bR8v literal 0 HcmV?d00001 diff --git a/Resources/migration.yml b/Resources/migration.yml index 3ed618dcfd7..8940df2b65e 100644 --- a/Resources/migration.yml +++ b/Resources/migration.yml @@ -440,3 +440,38 @@ BlueprintFlare: null # 2024-10-04 BaseAdvancedPen: Pen + +# 2024-10-09 +# Removal of separate borg chassis parts, replace them with generic borg parts. +LeftArmBorgEngineer: LeftArmBorg +RightArmBorgEngineer: RightArmBorg +LeftLegBorgEngineer: LeftLegBorg +RightLegBorgEngineer: RightLegBorg +HeadBorgEngineer: LightHeadBorg +TorsoBorgEngineer: TorsoBorg + +LeftArmBorgMedical: LeftArmBorg +RightArmBorgMedical: RightArmBorg +LeftLegBorgMedical: LeftLegBorg +RightLegBorgMedical: RightLegBorg +HeadBorgMedical: LightHeadBorg +TorsoBorgMedical: TorsoBorg + +LeftArmBorgMining: LeftArmBorg +RightArmBorgMining: RightArmBorg +LeftLegBorgMining: LeftLegBorg +RightLegBorgMining: RightLegBorg +HeadBorgMining: LightHeadBorg +TorsoBorgMining: TorsoBorg + +LeftArmBorgService: LeftArmBorg +RightArmBorgService: RightArmBorg +LeftLegBorgService: LeftLegBorg +RightLegBorgService: RightLegBorg +HeadBorgService: LightHeadBorg +TorsoBorgService: TorsoBorg + +LeftLegBorgJanitor: LeftLegBorg +RightLegBorgJanitor: RightLegBorg +HeadBorgJanitor: LightHeadBorg +TorsoBorgJanitor: TorsoBorg From 0437ec6d56e764458ff0c9a74fbe4ed3e7280007 Mon Sep 17 00:00:00 2001 From: PJBot Date: Thu, 14 Nov 2024 17:09:42 +0000 Subject: [PATCH 10/18] Automatic changelog update --- Resources/Changelog/Changelog.yml | 32 +++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index eb3f7268008..ce0be691a4a 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,18 +1,4 @@ Entries: -- author: TheShuEd - changes: - - message: added morbilliard variants of procedural tacos and kebabs - type: Add - - message: removed all microwave taco and kebabs recipes (except for the taco shell - itself) - type: Remove - - message: you can fight with a skewer (even if it has food on it) - type: Tweak - - message: now you can't put more than 10 layers on a burger. (20 before) - type: Tweak - id: 7109 - time: '2024-08-14T13:04:00.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/30905 - author: themias changes: - message: Fixed lizards being unable to eat custom burgers @@ -3941,3 +3927,21 @@ id: 7608 time: '2024-11-14T16:56:22.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/33303 +- author: PJB3005 + changes: + - message: Borgs can now select their chassis type upon creation (construction or + job spawn), immediately giving borgs access to all chassis types. + type: Add + - message: Borg chassis types now come with built-in modules depending on the type, + so you can immediately do your job without help from science. Some upgrade modules + must still be installed later however. + type: Add + - message: Specialized chassis types have been removed from construction, as they + are no longer necessary. + type: Remove + - message: Borg unlock access is no longer determined by their chassis, it's always + science or command. This means the janitor can't unlock jani borgs anymore. + type: Remove + id: 7609 + time: '2024-11-14T17:08:35.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/32586 From 2c9f2279d63d7515c1ce2c46054965902ebcd840 Mon Sep 17 00:00:00 2001 From: scrivoy <179060466+scrivoy@users.noreply.github.com> Date: Thu, 14 Nov 2024 22:30:16 +0100 Subject: [PATCH 11/18] Marathon Station: Added air alarms to CMO, Surgery, Security Checkpoint (#33213) * add air alarms to sec checkpoint, cmo and western surgery * decals and cleanup --- Resources/Maps/marathon.yml | 135 ++++++++++++++++++++++++++++++------ 1 file changed, 112 insertions(+), 23 deletions(-) diff --git a/Resources/Maps/marathon.yml b/Resources/Maps/marathon.yml index 00287937989..1f1632004b7 100644 --- a/Resources/Maps/marathon.yml +++ b/Resources/Maps/marathon.yml @@ -586,7 +586,6 @@ entities: 2445: -41,19 2646: -33,-12 2665: -28,-14 - 2666: -23,-15 2667: -19,-23 2740: -20,-5 2794: 18,16 @@ -608,6 +607,7 @@ entities: 2979: -3,-48 3010: 12,14 3015: 2,-51 + 3114: -21,-15 - node: angle: 1.5707963267948966 rad color: '#FFFFFFFF' @@ -1039,11 +1039,11 @@ entities: color: '#52B4E996' id: BrickTileWhiteCornerNw decals: - 2536: -23,-15 2544: -15,-15 2602: -19,-19 2630: -31,-16 2673: -16,-9 + 3119: -23,-15 - node: color: '#DE3A3A96' id: BrickTileWhiteCornerNw @@ -1068,8 +1068,8 @@ entities: color: '#FFFFFFFF' id: BrickTileWhiteCornerNw decals: - 2533: -23,-15 2573: -19,-19 + 3118: -23,-15 - node: color: '#52B4E996' id: BrickTileWhiteCornerSe @@ -4510,9 +4510,9 @@ entities: color: '#52B4E996' id: WarnLineGreyscaleN decals: - 2537: -22,-15 2605: -14,-19 2608: -14,-15 + 3115: -22,-15 - node: color: '#D381C996' id: WarnLineGreyscaleN @@ -7544,6 +7544,16 @@ entities: parent: 30 - proto: AirAlarm entities: + - uid: 3167 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,-15.5 + parent: 30 + - type: DeviceList + devices: + - 9046 + - 9049 - uid: 6224 components: - type: Transform @@ -7765,6 +7775,27 @@ entities: - 18435 - 18436 - 18437 + - uid: 18082 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,8.5 + parent: 30 + - type: DeviceList + devices: + - 3077 + - 3076 + - uid: 19145 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,-18.5 + parent: 30 + - type: DeviceList + devices: + - 6935 + - 6920 + - 22554 - uid: 19570 components: - type: Transform @@ -8808,6 +8839,26 @@ entities: - 22084 - 3484 - 3481 + - uid: 22553 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,-23.5 + parent: 30 + - type: DeviceList + devices: + - 6834 + - 9713 + - uid: 22555 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-22.5 + parent: 30 + - type: DeviceList + devices: + - 7115 + - 7119 - proto: AirAlarmElectronics entities: - uid: 15214 @@ -11906,6 +11957,14 @@ entities: - type: Transform pos: -2.5,8.5 parent: 30 + - uid: 22554 + components: + - type: Transform + pos: -34.5,-23.5 + parent: 30 + - type: DeviceNetwork + deviceLists: + - 19145 - proto: AltarConvertRed entities: - uid: 17468 @@ -54920,11 +54979,11 @@ entities: parent: 30 - proto: DefibrillatorCabinetFilled entities: - - uid: 3167 + - uid: 6956 components: - type: Transform rot: 1.5707963267948966 rad - pos: -23.5,-15.5 + pos: -23.5,-14.5 parent: 30 - uid: 6970 components: @@ -55583,6 +55642,12 @@ entities: - type: Transform pos: -19.5,-5.5 parent: 30 + - uid: 6953 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,-14.5 + parent: 30 - uid: 7412 components: - type: Transform @@ -55677,12 +55742,6 @@ entities: rot: 1.5707963267948966 rad pos: -19.5,-9.5 parent: 30 - - uid: 7354 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -21.5,-14.5 - parent: 30 - uid: 12233 components: - type: Transform @@ -59804,12 +59863,6 @@ entities: rot: 3.141592653589793 rad pos: -18.5,-22.5 parent: 30 - - uid: 6956 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -22.5,-14.5 - parent: 30 - uid: 6962 components: - type: Transform @@ -59821,6 +59874,12 @@ entities: - type: Transform pos: -19.5,-4.5 parent: 30 + - uid: 7354 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,-14.5 + parent: 30 - uid: 9753 components: - type: Transform @@ -60216,11 +60275,6 @@ entities: - type: Transform pos: -19.5,-4.5 parent: 30 - - uid: 6953 - components: - - type: Transform - pos: -22.5,-14.5 - parent: 30 - uid: 6954 components: - type: Transform @@ -60296,6 +60350,11 @@ entities: - type: Transform pos: 14.5,-17.5 parent: 30 + - uid: 19150 + components: + - type: Transform + pos: -20.5,-14.5 + parent: 30 - uid: 19407 components: - type: Transform @@ -86755,6 +86814,9 @@ entities: - type: Transform pos: -40.5,10.5 parent: 30 + - type: DeviceNetwork + deviceLists: + - 18082 - type: AtmosPipeColor color: '#0000FFFF' - uid: 3099 @@ -87044,6 +87106,9 @@ entities: rot: 3.141592653589793 rad pos: -25.5,-22.5 parent: 30 + - type: DeviceNetwork + deviceLists: + - 22553 - type: AtmosPipeColor color: '#0000FFFF' - uid: 6900 @@ -87060,6 +87125,9 @@ entities: rot: 1.5707963267948966 rad pos: -33.5,-16.5 parent: 30 + - type: DeviceNetwork + deviceLists: + - 19145 - type: AtmosPipeColor color: '#0000FFFF' - uid: 6939 @@ -87086,6 +87154,9 @@ entities: - type: Transform pos: -28.5,-20.5 parent: 30 + - type: DeviceNetwork + deviceLists: + - 22555 - type: AtmosPipeColor color: '#0000FFFF' - uid: 7136 @@ -87232,6 +87303,9 @@ entities: - type: Transform pos: -25.5,-15.5 parent: 30 + - type: DeviceNetwork + deviceLists: + - 3167 - type: AtmosPipeColor color: '#0000FFFF' - uid: 9686 @@ -88266,6 +88340,9 @@ entities: rot: 1.5707963267948966 rad pos: -39.5,10.5 parent: 30 + - type: DeviceNetwork + deviceLists: + - 18082 - type: AtmosPipeColor color: '#FF0000FF' - uid: 3100 @@ -88548,6 +88625,9 @@ entities: rot: 1.5707963267948966 rad pos: -33.5,-18.5 parent: 30 + - type: DeviceNetwork + deviceLists: + - 19145 - type: AtmosPipeColor color: '#FF0000FF' - uid: 7098 @@ -88577,6 +88657,9 @@ entities: rot: 3.141592653589793 rad pos: -28.5,-18.5 parent: 30 + - type: DeviceNetwork + deviceLists: + - 22555 - type: AtmosPipeColor color: '#FF0000FF' - uid: 7130 @@ -88714,6 +88797,9 @@ entities: - type: Transform pos: -25.5,-16.5 parent: 30 + - type: DeviceNetwork + deviceLists: + - 3167 - type: AtmosPipeColor color: '#FF0000FF' - uid: 9713 @@ -88722,6 +88808,9 @@ entities: rot: 3.141592653589793 rad pos: -25.5,-23.5 parent: 30 + - type: DeviceNetwork + deviceLists: + - 22553 - type: AtmosPipeColor color: '#FF0000FF' - uid: 9793 From d205d17ba3d0bee79752915e6e57e7f2f539e0ec Mon Sep 17 00:00:00 2001 From: scrivoy <179060466+scrivoy@users.noreply.github.com> Date: Fri, 15 Nov 2024 02:04:14 +0100 Subject: [PATCH 12/18] Meta Station: Add a fully functional TEG room (#32941) * initial commit * delete WIP-marker.md * add TEG room, move gas chambers up * remove outside burn chamber button, add naming to APC, SMES, Substation * add HV below TEG Substation * removed invalids --- Resources/Maps/meta.yml | 5813 +++++++++++++++++++++++++++++---------- 1 file changed, 4385 insertions(+), 1428 deletions(-) diff --git a/Resources/Maps/meta.yml b/Resources/Maps/meta.yml index 93a6bc31c42..be14ee8855a 100644 --- a/Resources/Maps/meta.yml +++ b/Resources/Maps/meta.yml @@ -284,15 +284,15 @@ entities: version: 6 4,-1: ind: 4,-1 - tiles: eQAAAAAAeAAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAA + tiles: eQAAAAAAeAAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAA version: 6 4,-2: ind: 4,-2 - tiles: eAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAATQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAA + tiles: eAAAAAAAeQAAAAAAHQAAAAAAHQAAAAAAYAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAHQAAAAAAHQAAAAAAWQAAAAAAWQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAWQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAHQAAAAAAHQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAYAAAAAAAWQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAHQAAAAAAHQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAHQAAAAAAHQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAHQAAAAAAHQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAHQAAAAAAHQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAHQAAAAAAHQAAAAAAHQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAHQAAAAAAHQAAAAAAHQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAA version: 6 3,-3: ind: 3,-3 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAATQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAA + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAATQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAA version: 6 5,0: ind: 5,0 @@ -300,7 +300,7 @@ entities: version: 6 4,-3: ind: 4,-3 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAA + tiles: eAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAA version: 6 2,-3: ind: 2,-3 @@ -448,7 +448,23 @@ entities: version: 6 5,-2: ind: 5,-2 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAA + tiles: eAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAA + version: 6 + 5,-3: + ind: 5,-3 + tiles: eAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 3,-4: + ind: 3,-4 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAA + version: 6 + 4,-4: + ind: 4,-4 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAA + version: 6 + 5,-4: + ind: 5,-4 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 - type: Broadphase - type: Physics @@ -708,6 +724,12 @@ entities: 3190: 64,26 3191: 64,14 3192: 76,14 + 3529: 76,-33 + 3530: 76,-34 + 3531: 76,-35 + 3532: 76,-36 + 3533: 76,-37 + 3566: 70,-39 - node: color: '#FFFFFFFF' id: BoxGreyscale @@ -980,6 +1002,11 @@ entities: id: BrickTileWhiteCornerSe decals: 3099: 6,-26 + - node: + color: '#3EB38896' + id: BrickTileWhiteCornerSw + decals: + 3569: 66,-32 - node: color: '#52B4E996' id: BrickTileWhiteCornerSw @@ -1008,6 +1035,11 @@ entities: id: BrickTileWhiteEndN decals: 2748: -26,-26 + - node: + color: '#3EB38896' + id: BrickTileWhiteInnerNe + decals: + 3594: 67,-30 - node: color: '#D381C996' id: BrickTileWhiteInnerNe @@ -1051,6 +1083,13 @@ entities: decals: 2544: 20,-30 2567: 14,-43 + - node: + color: '#3EB38896' + id: BrickTileWhiteLineE + decals: + 3574: 67,-28 + 3575: 67,-29 + 3609: 67,-25 - node: color: '#52B4E996' id: BrickTileWhiteLineE @@ -1135,6 +1174,16 @@ entities: 3236: 60,21 3237: 60,20 3238: 60,19 + - node: + color: '#3EB38896' + id: BrickTileWhiteLineN + decals: + 3589: 72,-30 + 3590: 71,-30 + 3591: 70,-30 + 3592: 69,-30 + 3612: 73,-30 + 3613: 68,-30 - node: color: '#52B4E996' id: BrickTileWhiteLineN @@ -1197,6 +1246,17 @@ entities: 3102: 3,-25 3103: 4,-25 3104: 5,-25 + - node: + color: '#3EB38896' + id: BrickTileWhiteLineS + decals: + 3583: 67,-32 + 3584: 68,-32 + 3585: 69,-32 + 3586: 70,-32 + 3587: 71,-32 + 3588: 72,-32 + 3611: 73,-32 - node: color: '#52B4E996' id: BrickTileWhiteLineS @@ -1259,6 +1319,15 @@ entities: id: BrickTileWhiteLineW decals: 2495: 104,-14 + - node: + color: '#3EB38896' + id: BrickTileWhiteLineW + decals: + 3578: 66,-27 + 3579: 66,-28 + 3580: 66,-29 + 3581: 66,-30 + 3582: 66,-31 - node: color: '#52B4E996' id: BrickTileWhiteLineW @@ -4651,6 +4720,7 @@ entities: 3109: 28,-63 3250: 56,17 3251: 56,23 + 3608: 66.50142,-31.75576 - node: color: '#334E6DC8' id: ThreeQuarterTileOverlayGreyscale @@ -4934,6 +5004,11 @@ entities: id: WarnBox decals: 2504: -64,-14 + - node: + color: '#FFFFFFFF' + id: WarnCornerNE + decals: + 3544: 74,-33 - node: color: '#FFFFFFFF' id: WarnCornerSE @@ -4951,6 +5026,7 @@ entities: 900: -13,10 1625: 0,-29 3276: 42,15 + 3557: 74,-38 - node: color: '#FFFFFFFF' id: WarnCornerSmallNW @@ -5042,6 +5118,17 @@ entities: 3269: 42,16 3270: 42,17 3271: 42,18 + 3540: 74,-37 + 3542: 74,-35 + 3543: 74,-34 + 3558: 74,-36 + 3617: 67,-26 + - node: + color: '#3EB38896' + id: WarnLineGreyscaleE + decals: + 3598: 67,-27 + 3610: 67,-24 - node: color: '#52B4E996' id: WarnLineGreyscaleE @@ -5160,6 +5247,12 @@ entities: 1694: 12,-41 1695: 11,-41 1696: 10,-41 + - node: + color: '#3EB38896' + id: WarnLineGreyscaleW + decals: + 3595: 66,-25 + 3607: 66,-24 - node: color: '#52B4E996' id: WarnLineGreyscaleW @@ -5315,6 +5408,7 @@ entities: 3516: 33,6 3517: 33,7 3518: 33,8 + 3616: 66,-26 - node: color: '#DE3A3A96' id: WarnLineW @@ -5381,6 +5475,16 @@ entities: 3178: -3,-39 3179: -4,-39 3255: 43,15 + 3545: 73,-33 + 3546: 72,-33 + 3547: 71,-33 + 3548: 70,-33 + 3549: 69,-33 + 3555: 75,-38 + 3556: 76,-38 + 3562: 66,-33 + 3563: 67,-33 + 3564: 68,-33 - node: angle: -3.141592653589793 rad color: '#FFFFFFFF' @@ -6511,11 +6615,14 @@ entities: 15,-4: 0: 65535 16,-8: - 1: 58115 - 0: 236 + 1: 4369 + 0: 52428 16,-7: - 1: 242 - 0: 61440 + 1: 17 + 0: 64716 + 16,-6: + 0: 15 + 1: 11776 13,-3: 0: 62719 13,-2: @@ -6542,7 +6649,7 @@ entities: 0: 119 16,-1: 0: 240 - 1: 13058 + 1: 62222 12,1: 0: 58606 12,2: @@ -6576,7 +6683,7 @@ entities: 0: 4354 1: 34952 16,0: - 1: 127 + 1: 255 0: 3840 16,1: 0: 54272 @@ -6849,19 +6956,21 @@ entities: -5,14: 1: 17652 -4,15: - 1: 15 + 1: 9999 -5,15: 1: 12 + -4,16: + 1: 14 -3,13: 0: 65521 -3,14: 0: 33023 1: 4096 -3,15: - 1: 25123 + 1: 25091 0: 136 -3,16: - 1: 196 + 1: 243 -2,13: 0: 65521 -2,14: @@ -6875,15 +6984,17 @@ entities: 0: 16435 1: 10240 -1,15: - 1: 12834 + 1: 14862 -1,16: - 1: 17 + 1: 54 0,13: 0: 51 1: 45056 0,14: 1: 2816 0: 16384 + 0,15: + 1: 288 -9,12: 1: 36761 -8,13: @@ -7103,22 +7214,22 @@ entities: 12,12: 1: 61441 17,0: - 1: 15 + 1: 223 0: 57376 17,2: 0: 65295 17,3: 0: 15 1: 20288 - 17,1: - 0: 61166 17,-1: + 1: 53389 0: 11826 - 1: 136 + 17,1: + 0: 61166 17,4: 1: 17487 18,0: - 1: 15 + 1: 255 0: 61440 18,1: 0: 65535 @@ -7127,8 +7238,11 @@ entities: 18,3: 0: 15 1: 3840 + 18,-1: + 1: 61610 + 0: 3840 19,0: - 1: 31 + 1: 255 0: 7168 19,1: 0: 4369 @@ -7139,19 +7253,19 @@ entities: 0: 1011 1: 8192 19,-1: - 1: 4130 + 1: 61474 0: 3840 19,4: 1: 8738 0: 51328 20,0: - 1: 143 + 1: 255 0: 3840 20,2: 1: 7951 20,3: - 1: 341 - 0: 46080 + 1: 261 + 0: 46320 -11,9: 0: 34827 1: 12800 @@ -7309,105 +7423,98 @@ entities: 1: 257 16,-4: 1: 8738 - 5: 136 - 6: 32768 + 5: 2184 16,-3: 1: 8738 - 6: 32904 + 6: 2184 16,-2: - 1: 57890 - 6: 136 + 1: 8738 + 6: 2184 16,-5: 1: 8738 - 5: 32768 - 6: 136 + 6: 2184 17,-4: - 5: 51 - 6: 12288 - 0: 128 - 1: 34816 + 5: 819 + 0: 2176 + 1: 32768 17,-3: - 6: 12339 + 6: 819 1: 34952 17,-2: - 6: 51 - 1: 55432 - 0: 8192 + 6: 819 + 1: 34952 17,-5: - 5: 12288 - 0: 32768 - 6: 51 - 1: 2184 + 0: 34816 + 6: 819 + 1: 136 18,-4: - 0: 135 - 1: 43552 + 0: 3975 + 1: 40992 18,-3: 1: 43770 - 18,-1: - 0: 3840 - 1: 170 18,-5: - 1: 12202 - 0: 32768 + 1: 8362 + 0: 36608 18,-2: 1: 43690 19,-4: - 0: 135 - 1: 43552 + 0: 3975 + 1: 40992 19,-3: 1: 57906 19,-5: - 1: 11170 - 0: 32768 + 1: 8354 + 0: 36608 19,-2: 1: 8930 20,-4: - 0: 135 - 1: 34816 + 0: 3975 + 1: 32768 20,-3: 1: 61440 20,-2: 1: 240 20,-1: 0: 3840 - 1: 32768 - 16,-6: - 1: 8928 - 6: 32768 + 1: 61440 16,-9: - 0: 61166 - 1: 1 + 1: 4369 + 0: 52428 17,-8: - 0: 31487 - 1: 32768 + 0: 4095 17,-7: - 1: 3536 - 0: 61991 + 0: 1654 17,-6: - 1: 35037 - 6: 12288 - 0: 34 + 0: 15 + 1: 36608 17,-9: 0: 65535 18,-8: - 0: 153 - 1: 12898 + 0: 819 + 1: 34944 18,-7: - 1: 47858 + 1: 48127 18,-6: - 1: 43770 + 1: 43771 18,-9: - 0: 48027 - 1: 96 + 0: 65535 19,-8: - 0: 51 + 1: 64248 19,-7: - 1: 8448 + 1: 8696 0: 512 19,-6: 1: 8754 19,-9: - 0: 13107 + 0: 4369 + 1: 52424 + 20,-8: + 1: 30039 + 20,-7: + 1: 117 + 20,-5: + 0: 36608 + 1: 128 12,-10: 1: 61696 11,-10: @@ -7417,25 +7524,42 @@ entities: 14,-10: 1: 64000 15,-10: - 1: 61952 + 1: 65503 + 15,-12: + 1: 57311 + 15,-13: + 1: 40704 + 15,-11: + 1: 56829 + 16,-12: + 1: 65023 + 16,-11: + 1: 4353 + 6: 52416 + 16,-10: + 1: 4353 + 0: 52416 20,4: - 1: 5457 - 0: 4 + 1: 5377 + 0: 244 21,0: - 1: 32783 + 1: 33023 0: 3840 21,2: 1: 3887 21,3: - 0: 46080 - 1: 68 + 0: 46320 + 1: 4 + 21,-1: + 1: 61440 + 0: 3840 21,1: 1: 17608 21,4: - 0: 4 - 1: 1088 + 0: 244 + 1: 1024 22,0: - 1: 2151 + 1: 2167 0: 58248 22,1: 1: 3634 @@ -7443,13 +7567,13 @@ entities: 22,2: 1: 3855 22,3: - 0: 46080 - 1: 68 + 0: 46320 + 1: 4 22,-1: - 1: 24608 + 1: 28704 0: 36608 22,4: - 0: 4 + 0: 180 1: 1088 23,0: 0: 25855 @@ -7461,13 +7585,14 @@ entities: 1: 26471 0: 34952 23,3: - 0: 61576 - 1: 3686 + 0: 61688 + 1: 3590 23,-1: 0: 63044 1: 2235 23,4: - 1: 19660 + 1: 19468 + 0: 240 24,0: 0: 3295 1: 256 @@ -7478,12 +7603,44 @@ entities: 24,3: 1: 609 0: 63760 - 16,-10: - 0: 60608 + 16,-13: + 1: 12032 + 17,-12: + 1: 65023 + 17,-11: + 6: 13104 + 1: 34952 17,-10: 0: 65520 + 17,-13: + 1: 12032 + 18,-12: + 1: 64767 + 18,-11: + 1: 30591 + 0: 2048 18,-10: - 0: 13072 + 0: 65520 + 18,-13: + 1: 40704 + 19,-12: + 1: 64255 + 19,-11: + 1: 35983 + 0: 4352 + 19,-10: + 0: 4369 + 1: 52428 + 19,-13: + 1: 36608 + 20,-12: + 1: 22357 + 20,-11: + 1: 21847 + 20,-10: + 1: 30039 + 20,-9: + 1: 21877 8,-13: 0: 6004 9,-12: @@ -8143,37 +8300,33 @@ entities: 1: 13056 7,-19: 1: 34952 - 20,-5: - 0: 32768 - 1: 2176 21,-4: - 0: 135 - 1: 34816 + 0: 3975 + 1: 32768 21,-3: 1: 61440 21,-2: 1: 240 - 21,-1: - 0: 3840 21,-5: - 0: 32768 - 1: 2176 + 0: 36608 + 1: 128 22,-4: - 0: 15 + 0: 3855 22,-3: 1: 61440 22,-2: 1: 240 23,-4: - 0: 15 - 1: 52416 + 0: 3855 + 1: 49344 23,-3: 1: 64716 23,-2: 1: 15868 0: 49152 23,-5: - 1: 52420 + 1: 49348 + 0: 3840 24,-4: 0: 4511 1: 8736 @@ -8328,6 +8481,10 @@ entities: 26,-6: 1: 34800 0: 28672 + 22,-5: + 0: 3840 + 20,-13: + 1: 22272 uniqueMixes: - volume: 2500 temperature: 293.15 @@ -8497,6 +8654,18 @@ entities: parent: 5350 - proto: AirAlarm entities: + - uid: 11752 + components: + - type: Transform + pos: 71.5,-28.5 + parent: 5350 + - type: DeviceList + devices: + - 27078 + - 27210 + - 27212 + - 26995 + - 26996 - uid: 14304 components: - type: Transform @@ -9460,7 +9629,7 @@ entities: parent: 5350 - type: DeviceList devices: - - 24516 + - 10990 - uid: 24517 components: - type: Transform @@ -9960,6 +10129,15 @@ entities: - 19501 - 19500 - 19499 + - uid: 27108 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 70.5,-39.5 + parent: 5350 + - type: DeviceList + devices: + - 27127 - proto: AirCanister entities: - uid: 2431 @@ -10175,11 +10353,22 @@ entities: - type: Transform pos: 56.5,-7.5 parent: 5350 - - uid: 11498 + - uid: 10820 components: - type: Transform - pos: 69.5,-29.5 + pos: 65.5,-24.5 + parent: 5350 + - type: AccessReader + access: + - - Atmospherics + - uid: 10821 + components: + - type: Transform + pos: 65.5,-23.5 parent: 5350 + - type: AccessReader + access: + - - Atmospherics - proto: AirlockAtmosphericsLocked entities: - uid: 9008 @@ -10706,6 +10895,14 @@ entities: - type: Transform pos: 38.5,-57.5 parent: 5350 + - uid: 26788 + components: + - type: Transform + pos: 68.5,-26.5 + parent: 5350 + - type: AccessReader + access: + - - Engineering - proto: AirlockExternal entities: - uid: 16847 @@ -10713,6 +10910,31 @@ entities: - type: Transform pos: -62.5,-40.5 parent: 5350 +- proto: AirlockExternalAtmosphericsLocked + entities: + - uid: 11254 + components: + - type: Transform + pos: 75.5,-41.5 + parent: 5350 + - type: DeviceLinkSink + invokeCounter: 1 + - type: DeviceLinkSource + linkedPorts: + 11257: + - DoorStatus: DoorBolt + - uid: 27016 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 71.5,-23.5 + parent: 5350 + - type: DeviceLinkSink + invokeCounter: 1 + - type: DeviceLinkSource + linkedPorts: + 27248: + - DoorStatus: DoorBolt - proto: AirlockExternalEngineeringLocked entities: - uid: 12540 @@ -10823,16 +11045,29 @@ entities: parent: 5350 - proto: AirlockExternalGlassAtmosphericsLocked entities: - - uid: 11284 + - uid: 11257 components: - type: Transform - pos: 64.5,-24.5 + pos: 76.5,-39.5 parent: 5350 - - uid: 11285 + - type: DeviceLinkSink + invokeCounter: 1 + - type: DeviceLinkSource + linkedPorts: + 11254: + - DoorStatus: DoorBolt + - uid: 27248 components: - type: Transform - pos: 67.5,-24.5 + rot: -1.5707963267948966 rad + pos: 68.5,-23.5 parent: 5350 + - type: DeviceLinkSink + invokeCounter: 1 + - type: DeviceLinkSource + linkedPorts: + 27016: + - DoorStatus: DoorBolt - proto: AirlockExternalGlassCargoLocked entities: - uid: 3441 @@ -10880,7 +11115,7 @@ entities: pos: -42.5,29.5 parent: 5350 - type: Door - secondsUntilStateChange: -5834.8745 + secondsUntilStateChange: -25306.475 state: Opening - type: DeviceLinkSink invokeCounter: 2 @@ -12829,6 +13064,14 @@ entities: parent: 5350 - proto: AirSensor entities: + - uid: 10990 + components: + - type: Transform + pos: 68.5,-6.5 + parent: 5350 + - type: DeviceNetwork + deviceLists: + - 24515 - uid: 14424 components: - type: Transform @@ -13213,11 +13456,6 @@ entities: - type: Transform pos: 53.5,-18.5 parent: 5350 - - uid: 24516 - components: - - type: Transform - pos: 68.5,-7.5 - parent: 5350 - uid: 24521 components: - type: Transform @@ -13423,6 +13661,23 @@ entities: - type: Transform pos: -11.5,-32.5 parent: 5350 + - uid: 27078 + components: + - type: Transform + pos: 70.5,-32.5 + parent: 5350 + - type: DeviceNetwork + deviceLists: + - 11752 + - 26994 + - uid: 27127 + components: + - type: Transform + pos: 68.5,-41.5 + parent: 5350 + - type: DeviceNetwork + deviceLists: + - 27108 - proto: AltarConvertMaint entities: - uid: 22866 @@ -13680,6 +13935,13 @@ entities: - type: Transform pos: -34.5,32.5 parent: 5350 + - uid: 10831 + components: + - type: MetaData + name: TEG APC + - type: Transform + pos: 69.5,-28.5 + parent: 5350 - uid: 11513 components: - type: MetaData @@ -14179,10 +14441,40 @@ entities: parent: 5350 - proto: AtmosFixBlockerMarker entities: - - uid: 11609 + - uid: 10913 components: - type: Transform - pos: 67.5,-20.5 + pos: 67.5,-17.5 + parent: 5350 + - uid: 11200 + components: + - type: Transform + pos: 67.5,-5.5 + parent: 5350 + - uid: 11307 + components: + - type: Transform + pos: 68.5,-5.5 + parent: 5350 + - uid: 11308 + components: + - type: Transform + pos: 69.5,-5.5 + parent: 5350 + - uid: 11345 + components: + - type: Transform + pos: 68.5,-17.5 + parent: 5350 + - uid: 11347 + components: + - type: Transform + pos: 69.5,-11.5 + parent: 5350 + - uid: 11598 + components: + - type: Transform + pos: 69.5,-17.5 parent: 5350 - uid: 11610 components: @@ -14194,11 +14486,6 @@ entities: - type: Transform pos: 67.5,-18.5 parent: 5350 - - uid: 11612 - components: - - type: Transform - pos: 68.5,-20.5 - parent: 5350 - uid: 11613 components: - type: Transform @@ -14209,11 +14496,6 @@ entities: - type: Transform pos: 68.5,-18.5 parent: 5350 - - uid: 11615 - components: - - type: Transform - pos: 69.5,-20.5 - parent: 5350 - uid: 11616 components: - type: Transform @@ -14224,31 +14506,16 @@ entities: - type: Transform pos: 69.5,-18.5 parent: 5350 - - uid: 11618 - components: - - type: Transform - pos: 67.5,-8.5 - parent: 5350 - uid: 11619 components: - type: Transform pos: 67.5,-7.5 parent: 5350 - - uid: 11620 - components: - - type: Transform - pos: 68.5,-8.5 - parent: 5350 - uid: 11621 components: - type: Transform pos: 68.5,-7.5 parent: 5350 - - uid: 11622 - components: - - type: Transform - pos: 69.5,-8.5 - parent: 5350 - uid: 11623 components: - type: Transform @@ -14269,11 +14536,6 @@ entities: - type: Transform pos: 67.5,-6.5 parent: 5350 - - uid: 11628 - components: - - type: Transform - pos: 67.5,-12.5 - parent: 5350 - uid: 11629 components: - type: Transform @@ -14287,7 +14549,7 @@ entities: - uid: 11631 components: - type: Transform - pos: 68.5,-12.5 + pos: 67.5,-9.5 parent: 5350 - uid: 11632 components: @@ -14299,20 +14561,20 @@ entities: - type: Transform pos: 68.5,-10.5 parent: 5350 - - uid: 11634 + - uid: 11636 components: - type: Transform - pos: 69.5,-12.5 + pos: 69.5,-10.5 parent: 5350 - - uid: 11635 + - uid: 11720 components: - type: Transform - pos: 69.5,-11.5 + pos: 68.5,-9.5 parent: 5350 - - uid: 11636 + - uid: 11722 components: - type: Transform - pos: 69.5,-10.5 + pos: 69.5,-9.5 parent: 5350 - uid: 24185 components: @@ -14359,6 +14621,66 @@ entities: - type: Transform pos: 15.5,-55.5 parent: 5350 + - uid: 27423 + components: + - type: Transform + pos: 66.5,-40.5 + parent: 5350 + - uid: 27424 + components: + - type: Transform + pos: 67.5,-40.5 + parent: 5350 + - uid: 27425 + components: + - type: Transform + pos: 68.5,-40.5 + parent: 5350 + - uid: 27426 + components: + - type: Transform + pos: 69.5,-40.5 + parent: 5350 + - uid: 27427 + components: + - type: Transform + pos: 66.5,-41.5 + parent: 5350 + - uid: 27428 + components: + - type: Transform + pos: 66.5,-42.5 + parent: 5350 + - uid: 27429 + components: + - type: Transform + pos: 67.5,-41.5 + parent: 5350 + - uid: 27430 + components: + - type: Transform + pos: 67.5,-42.5 + parent: 5350 + - uid: 27431 + components: + - type: Transform + pos: 68.5,-42.5 + parent: 5350 + - uid: 27432 + components: + - type: Transform + pos: 68.5,-41.5 + parent: 5350 + - uid: 27433 + components: + - type: Transform + pos: 69.5,-41.5 + parent: 5350 + - uid: 27434 + components: + - type: Transform + pos: 69.5,-42.5 + parent: 5350 - proto: AtmosFixFreezerMarker entities: - uid: 10295 @@ -14547,10 +14869,20 @@ entities: parent: 5350 - proto: AtmosFixPlasmaMarker entities: - - uid: 11600 + - uid: 10828 components: - type: Transform - pos: 67.5,-16.5 + pos: 69.5,-13.5 + parent: 5350 + - uid: 10916 + components: + - type: Transform + pos: 68.5,-13.5 + parent: 5350 + - uid: 10920 + components: + - type: Transform + pos: 67.5,-13.5 parent: 5350 - uid: 11601 components: @@ -14562,11 +14894,6 @@ entities: - type: Transform pos: 67.5,-14.5 parent: 5350 - - uid: 11603 - components: - - type: Transform - pos: 68.5,-16.5 - parent: 5350 - uid: 11604 components: - type: Transform @@ -14577,11 +14904,6 @@ entities: - type: Transform pos: 68.5,-14.5 parent: 5350 - - uid: 11606 - components: - - type: Transform - pos: 69.5,-16.5 - parent: 5350 - uid: 11607 components: - type: Transform @@ -15097,10 +15419,10 @@ entities: - type: Transform pos: -40.5,43.5 parent: 5350 - - uid: 10293 + - uid: 11015 components: - type: Transform - pos: 68.5,-5.5 + pos: 68.5,-4.5 parent: 5350 - uid: 11486 components: @@ -15172,6 +15494,20 @@ entities: - type: Transform pos: 48.5,23.5 parent: 5350 + - uid: 27135 + components: + - type: Transform + pos: 67.5,-43.5 + parent: 5350 + - type: DeviceLinkSink + invokeCounter: 2 + - uid: 27136 + components: + - type: Transform + pos: 68.5,-43.5 + parent: 5350 + - type: DeviceLinkSink + invokeCounter: 2 - proto: BlastDoorExterior1Open entities: - uid: 24634 @@ -19812,6 +20148,11 @@ entities: - type: Transform pos: -37.5,-0.5 parent: 5350 + - uid: 6164 + components: + - type: Transform + pos: 66.5,-6.5 + parent: 5350 - uid: 6209 components: - type: Transform @@ -21377,11 +21718,21 @@ entities: - type: Transform pos: -16.5,27.5 parent: 5350 + - uid: 8889 + components: + - type: Transform + pos: 67.5,-6.5 + parent: 5350 - uid: 8957 components: - type: Transform pos: 40.5,0.5 parent: 5350 + - uid: 8983 + components: + - type: Transform + pos: 68.5,-6.5 + parent: 5350 - uid: 9539 components: - type: Transform @@ -22707,11 +23058,196 @@ entities: - type: Transform pos: -29.5,30.5 parent: 5350 + - uid: 10908 + components: + - type: Transform + pos: 60.5,-16.5 + parent: 5350 + - uid: 10909 + components: + - type: Transform + pos: 67.5,-18.5 + parent: 5350 + - uid: 10911 + components: + - type: Transform + pos: 68.5,-18.5 + parent: 5350 + - uid: 10912 + components: + - type: Transform + pos: 66.5,-18.5 + parent: 5350 + - uid: 10929 + components: + - type: Transform + pos: 66.5,-5.5 + parent: 5350 + - uid: 10935 + components: + - type: Transform + pos: 63.5,-6.5 + parent: 5350 + - uid: 10936 + components: + - type: Transform + pos: 58.5,-6.5 + parent: 5350 + - uid: 10937 + components: + - type: Transform + pos: 59.5,-6.5 + parent: 5350 + - uid: 10938 + components: + - type: Transform + pos: 60.5,-6.5 + parent: 5350 + - uid: 10939 + components: + - type: Transform + pos: 61.5,-6.5 + parent: 5350 + - uid: 10940 + components: + - type: Transform + pos: 62.5,-6.5 + parent: 5350 + - uid: 10941 + components: + - type: Transform + pos: 68.5,-10.5 + parent: 5350 + - uid: 10942 + components: + - type: Transform + pos: 67.5,-10.5 + parent: 5350 + - uid: 10986 + components: + - type: Transform + pos: 66.5,-17.5 + parent: 5350 + - uid: 10987 + components: + - type: Transform + pos: 64.5,-19.5 + parent: 5350 + - uid: 10988 + components: + - type: Transform + pos: 68.5,-14.5 + parent: 5350 + - uid: 11044 + components: + - type: Transform + pos: 62.5,-16.5 + parent: 5350 + - uid: 11045 + components: + - type: Transform + pos: 63.5,-16.5 + parent: 5350 + - uid: 11046 + components: + - type: Transform + pos: 65.5,-18.5 + parent: 5350 + - uid: 11056 + components: + - type: Transform + pos: 66.5,-14.5 + parent: 5350 + - uid: 11138 + components: + - type: Transform + pos: 66.5,-19.5 + parent: 5350 + - uid: 11162 + components: + - type: Transform + pos: 67.5,-14.5 + parent: 5350 + - uid: 11241 + components: + - type: Transform + pos: 63.5,-19.5 + parent: 5350 + - uid: 11258 + components: + - type: Transform + pos: 68.5,-23.5 + parent: 5350 + - uid: 11259 + components: + - type: Transform + pos: 70.5,-23.5 + parent: 5350 + - uid: 11260 + components: + - type: Transform + pos: 67.5,-24.5 + parent: 5350 + - uid: 11263 + components: + - type: Transform + pos: 69.5,-23.5 + parent: 5350 + - uid: 11279 + components: + - type: Transform + pos: 69.5,-28.5 + parent: 5350 + - uid: 11300 + components: + - type: Transform + pos: 61.5,-16.5 + parent: 5350 + - uid: 11313 + components: + - type: Transform + pos: 65.5,-14.5 + parent: 5350 + - uid: 11314 + components: + - type: Transform + pos: 66.5,-13.5 + parent: 5350 + - uid: 11315 + components: + - type: Transform + pos: 66.5,-15.5 + parent: 5350 + - uid: 11341 + components: + - type: Transform + pos: 64.5,-21.5 + parent: 5350 + - uid: 11348 + components: + - type: Transform + pos: 64.5,-5.5 + parent: 5350 - uid: 11360 components: - type: Transform pos: -30.5,-41.5 parent: 5350 + - uid: 11606 + components: + - type: Transform + pos: 65.5,-6.5 + parent: 5350 + - uid: 11609 + components: + - type: Transform + pos: 61.5,-10.5 + parent: 5350 + - uid: 11643 + components: + - type: Transform + pos: 66.5,-10.5 + parent: 5350 - uid: 11646 components: - type: Transform @@ -22792,11 +23328,6 @@ entities: - type: Transform pos: 52.5,-23.5 parent: 5350 - - uid: 11662 - components: - - type: Transform - pos: 52.5,-24.5 - parent: 5350 - uid: 11663 components: - type: Transform @@ -22947,16 +23478,6 @@ entities: - type: Transform pos: 52.5,-28.5 parent: 5350 - - uid: 11693 - components: - - type: Transform - pos: 61.5,-24.5 - parent: 5350 - - uid: 11694 - components: - - type: Transform - pos: 62.5,-24.5 - parent: 5350 - uid: 11695 components: - type: Transform @@ -22967,21 +23488,6 @@ entities: - type: Transform pos: 63.5,-23.5 parent: 5350 - - uid: 11697 - components: - - type: Transform - pos: 64.5,-24.5 - parent: 5350 - - uid: 11698 - components: - - type: Transform - pos: 65.5,-24.5 - parent: 5350 - - uid: 11699 - components: - - type: Transform - pos: 66.5,-24.5 - parent: 5350 - uid: 11700 components: - type: Transform @@ -22995,17 +23501,17 @@ entities: - uid: 11702 components: - type: Transform - pos: 63.5,-20.5 + pos: 65.5,-10.5 parent: 5350 - uid: 11703 components: - type: Transform - pos: 64.5,-20.5 + pos: 66.5,-9.5 parent: 5350 - uid: 11704 components: - type: Transform - pos: 64.5,-19.5 + pos: 62.5,-24.5 parent: 5350 - uid: 11705 components: @@ -23075,122 +23581,47 @@ entities: - uid: 11718 components: - type: Transform - pos: 65.5,-7.5 + pos: 66.5,-11.5 parent: 5350 - uid: 11719 components: - type: Transform pos: 66.5,-7.5 parent: 5350 - - uid: 11720 - components: - - type: Transform - pos: 66.5,-8.5 - parent: 5350 - uid: 11721 components: - type: Transform pos: 66.5,-6.5 parent: 5350 - - uid: 11722 - components: - - type: Transform - pos: 65.5,-11.5 - parent: 5350 - - uid: 11723 - components: - - type: Transform - pos: 66.5,-11.5 - parent: 5350 - - uid: 11724 - components: - - type: Transform - pos: 66.5,-12.5 - parent: 5350 - - uid: 11725 - components: - - type: Transform - pos: 66.5,-10.5 - parent: 5350 - - uid: 11726 - components: - - type: Transform - pos: 65.5,-15.5 - parent: 5350 - - uid: 11727 - components: - - type: Transform - pos: 66.5,-15.5 - parent: 5350 - - uid: 11728 - components: - - type: Transform - pos: 66.5,-14.5 - parent: 5350 - - uid: 11729 - components: - - type: Transform - pos: 66.5,-16.5 - parent: 5350 - - uid: 11730 - components: - - type: Transform - pos: 65.5,-19.5 - parent: 5350 - uid: 11731 components: - type: Transform - pos: 66.5,-19.5 + pos: 63.5,-10.5 parent: 5350 - uid: 11732 components: - type: Transform - pos: 66.5,-20.5 + pos: 62.5,-10.5 parent: 5350 - uid: 11733 components: - type: Transform - pos: 66.5,-18.5 - parent: 5350 - - uid: 11734 - components: - - type: Transform - pos: 67.5,-19.5 - parent: 5350 - - uid: 11735 - components: - - type: Transform - pos: 68.5,-19.5 - parent: 5350 - - uid: 11736 - components: - - type: Transform - pos: 67.5,-15.5 + pos: 63.5,-20.5 parent: 5350 - uid: 11737 components: - type: Transform - pos: 68.5,-15.5 + pos: 61.5,-24.5 parent: 5350 - uid: 11738 components: - type: Transform - pos: 67.5,-11.5 + pos: 67.5,-23.5 parent: 5350 - uid: 11739 components: - type: Transform - pos: 68.5,-11.5 - parent: 5350 - - uid: 11740 - components: - - type: Transform - pos: 67.5,-7.5 - parent: 5350 - - uid: 11741 - components: - - type: Transform - pos: 68.5,-7.5 + pos: 66.5,-23.5 parent: 5350 - uid: 11742 components: @@ -23232,81 +23663,16 @@ entities: - type: Transform pos: 60.5,-10.5 parent: 5350 - - uid: 11750 - components: - - type: Transform - pos: 60.5,-11.5 - parent: 5350 - - uid: 11751 - components: - - type: Transform - pos: 61.5,-11.5 - parent: 5350 - - uid: 11752 - components: - - type: Transform - pos: 62.5,-11.5 - parent: 5350 - - uid: 11753 - components: - - type: Transform - pos: 63.5,-11.5 - parent: 5350 - - uid: 11754 - components: - - type: Transform - pos: 63.5,-7.5 - parent: 5350 - - uid: 11755 - components: - - type: Transform - pos: 62.5,-7.5 - parent: 5350 - - uid: 11756 - components: - - type: Transform - pos: 61.5,-7.5 - parent: 5350 - - uid: 11757 - components: - - type: Transform - pos: 60.5,-7.5 - parent: 5350 - - uid: 11758 - components: - - type: Transform - pos: 59.5,-7.5 - parent: 5350 - - uid: 11759 - components: - - type: Transform - pos: 58.5,-7.5 - parent: 5350 - - uid: 11760 - components: - - type: Transform - pos: 57.5,-7.5 - parent: 5350 - uid: 11761 components: - type: Transform pos: 58.5,-6.5 parent: 5350 - - uid: 11762 - components: - - type: Transform - pos: 58.5,-5.5 - parent: 5350 - uid: 11763 components: - type: Transform pos: 61.5,-6.5 parent: 5350 - - uid: 11764 - components: - - type: Transform - pos: 61.5,-5.5 - parent: 5350 - uid: 11765 components: - type: Transform @@ -23397,16 +23763,6 @@ entities: - type: Transform pos: 54.5,-20.5 parent: 5350 - - uid: 11784 - components: - - type: Transform - pos: 63.5,-17.5 - parent: 5350 - - uid: 11785 - components: - - type: Transform - pos: 62.5,-17.5 - parent: 5350 - uid: 11953 components: - type: Transform @@ -33367,6 +33723,11 @@ entities: - type: Transform pos: -15.5,-65.5 parent: 5350 + - uid: 24298 + components: + - type: Transform + pos: 52.5,-24.5 + parent: 5350 - uid: 24473 components: - type: Transform @@ -34532,6 +34893,311 @@ entities: - type: Transform pos: 76.5,3.5 parent: 5350 + - uid: 27017 + components: + - type: Transform + pos: 69.5,-29.5 + parent: 5350 + - uid: 27018 + components: + - type: Transform + pos: 70.5,-29.5 + parent: 5350 + - uid: 27019 + components: + - type: Transform + pos: 70.5,-30.5 + parent: 5350 + - uid: 27020 + components: + - type: Transform + pos: 70.5,-31.5 + parent: 5350 + - uid: 27021 + components: + - type: Transform + pos: 70.5,-32.5 + parent: 5350 + - uid: 27024 + components: + - type: Transform + pos: 70.5,-32.5 + parent: 5350 + - uid: 27025 + components: + - type: Transform + pos: 70.5,-33.5 + parent: 5350 + - uid: 27026 + components: + - type: Transform + pos: 70.5,-34.5 + parent: 5350 + - uid: 27027 + components: + - type: Transform + pos: 70.5,-35.5 + parent: 5350 + - uid: 27028 + components: + - type: Transform + pos: 67.5,-25.5 + parent: 5350 + - uid: 27029 + components: + - type: Transform + pos: 67.5,-27.5 + parent: 5350 + - uid: 27030 + components: + - type: Transform + pos: 71.5,-29.5 + parent: 5350 + - uid: 27031 + components: + - type: Transform + pos: 72.5,-29.5 + parent: 5350 + - uid: 27032 + components: + - type: Transform + pos: 73.5,-29.5 + parent: 5350 + - uid: 27033 + components: + - type: Transform + pos: 74.5,-29.5 + parent: 5350 + - uid: 27034 + components: + - type: Transform + pos: 74.5,-30.5 + parent: 5350 + - uid: 27039 + components: + - type: Transform + pos: 67.5,-26.5 + parent: 5350 + - uid: 27046 + components: + - type: Transform + pos: 67.5,-28.5 + parent: 5350 + - uid: 27048 + components: + - type: Transform + pos: 74.5,-32.5 + parent: 5350 + - uid: 27049 + components: + - type: Transform + pos: 76.5,-41.5 + parent: 5350 + - uid: 27063 + components: + - type: Transform + pos: 75.5,-32.5 + parent: 5350 + - uid: 27079 + components: + - type: Transform + pos: 76.5,-36.5 + parent: 5350 + - uid: 27080 + components: + - type: Transform + pos: 72.5,-32.5 + parent: 5350 + - uid: 27081 + components: + - type: Transform + pos: 71.5,-32.5 + parent: 5350 + - uid: 27082 + components: + - type: Transform + pos: 68.5,-29.5 + parent: 5350 + - uid: 27083 + components: + - type: Transform + pos: 73.5,-32.5 + parent: 5350 + - uid: 27092 + components: + - type: Transform + pos: 76.5,-34.5 + parent: 5350 + - uid: 27095 + components: + - type: Transform + pos: 64.5,-25.5 + parent: 5350 + - uid: 27100 + components: + - type: Transform + pos: 67.5,-29.5 + parent: 5350 + - uid: 27105 + components: + - type: Transform + pos: 76.5,-35.5 + parent: 5350 + - uid: 27106 + components: + - type: Transform + pos: 76.5,-33.5 + parent: 5350 + - uid: 27107 + components: + - type: Transform + pos: 76.5,-32.5 + parent: 5350 + - uid: 27109 + components: + - type: Transform + pos: 76.5,-38.5 + parent: 5350 + - uid: 27110 + components: + - type: Transform + pos: 75.5,-38.5 + parent: 5350 + - uid: 27113 + components: + - type: Transform + pos: 74.5,-39.5 + parent: 5350 + - uid: 27114 + components: + - type: Transform + pos: 73.5,-39.5 + parent: 5350 + - uid: 27115 + components: + - type: Transform + pos: 66.5,-37.5 + parent: 5350 + - uid: 27158 + components: + - type: Transform + pos: 76.5,-39.5 + parent: 5350 + - uid: 27159 + components: + - type: Transform + pos: 76.5,-37.5 + parent: 5350 + - uid: 27160 + components: + - type: Transform + pos: 76.5,-40.5 + parent: 5350 + - uid: 27161 + components: + - type: Transform + pos: 72.5,-39.5 + parent: 5350 + - uid: 27164 + components: + - type: Transform + pos: 66.5,-38.5 + parent: 5350 + - uid: 27165 + components: + - type: Transform + pos: 74.5,-38.5 + parent: 5350 + - uid: 27197 + components: + - type: Transform + pos: 71.5,-39.5 + parent: 5350 + - uid: 27259 + components: + - type: Transform + pos: 66.5,-29.5 + parent: 5350 + - uid: 27260 + components: + - type: Transform + pos: 65.5,-29.5 + parent: 5350 + - uid: 27261 + components: + - type: Transform + pos: 65.5,-30.5 + parent: 5350 + - uid: 27266 + components: + - type: Transform + pos: 66.5,-36.5 + parent: 5350 + - uid: 27268 + components: + - type: Transform + pos: 66.5,-22.5 + parent: 5350 + - uid: 27273 + components: + - type: Transform + pos: 63.5,-25.5 + parent: 5350 + - uid: 27275 + components: + - type: Transform + pos: 66.5,-35.5 + parent: 5350 + - uid: 27276 + components: + - type: Transform + pos: 66.5,-34.5 + parent: 5350 + - uid: 27277 + components: + - type: Transform + pos: 66.5,-33.5 + parent: 5350 + - uid: 27278 + components: + - type: Transform + pos: 66.5,-32.5 + parent: 5350 + - uid: 27279 + components: + - type: Transform + pos: 67.5,-32.5 + parent: 5350 + - uid: 27280 + components: + - type: Transform + pos: 68.5,-32.5 + parent: 5350 + - uid: 27281 + components: + - type: Transform + pos: 69.5,-32.5 + parent: 5350 + - uid: 27282 + components: + - type: Transform + pos: 66.5,-39.5 + parent: 5350 + - uid: 27283 + components: + - type: Transform + pos: 67.5,-39.5 + parent: 5350 + - uid: 27284 + components: + - type: Transform + pos: 68.5,-39.5 + parent: 5350 + - uid: 27285 + components: + - type: Transform + pos: 69.5,-39.5 + parent: 5350 - proto: CableApcStack entities: - uid: 1550 @@ -37556,30 +38222,25 @@ entities: - type: Transform pos: -32.5,49.5 parent: 5350 - - uid: 11245 - components: - - type: Transform - pos: 67.5,-31.5 - parent: 5350 - - uid: 11272 + - uid: 10832 components: - type: Transform - pos: 69.5,-34.5 + pos: 69.5,-26.5 parent: 5350 - - uid: 11274 + - uid: 10834 components: - type: Transform - pos: 69.5,-32.5 + pos: 52.5,-24.5 parent: 5350 - - uid: 11278 + - uid: 10836 components: - type: Transform - pos: 69.5,-33.5 + pos: 70.5,-26.5 parent: 5350 - - uid: 11279 + - uid: 11266 components: - type: Transform - pos: 69.5,-31.5 + pos: 65.5,-24.5 parent: 5350 - uid: 11877 components: @@ -37776,6 +38437,26 @@ entities: - type: Transform pos: 42.5,-17.5 parent: 5350 + - uid: 12022 + components: + - type: Transform + pos: 68.5,-26.5 + parent: 5350 + - uid: 12043 + components: + - type: Transform + pos: 67.5,-26.5 + parent: 5350 + - uid: 12044 + components: + - type: Transform + pos: 67.5,-25.5 + parent: 5350 + - uid: 12047 + components: + - type: Transform + pos: 66.5,-24.5 + parent: 5350 - uid: 12076 components: - type: Transform @@ -43204,112 +43885,102 @@ entities: - uid: 24239 components: - type: Transform - pos: 68.5,-31.5 + pos: 64.5,-24.5 parent: 5350 - uid: 24240 components: - type: Transform - pos: 66.5,-31.5 + pos: 63.5,-24.5 parent: 5350 - uid: 24241 components: - type: Transform - pos: 65.5,-31.5 + pos: 62.5,-24.5 parent: 5350 - uid: 24243 components: - type: Transform - pos: 64.5,-31.5 + pos: 61.5,-24.5 parent: 5350 - uid: 24245 components: - type: Transform - pos: 63.5,-31.5 + pos: 59.5,-24.5 parent: 5350 - uid: 24246 components: - type: Transform - pos: 63.5,-32.5 + pos: 60.5,-24.5 parent: 5350 - uid: 24247 components: - type: Transform - pos: 62.5,-32.5 + pos: 58.5,-24.5 parent: 5350 - uid: 24249 components: - type: Transform - pos: 61.5,-32.5 + pos: 57.5,-24.5 parent: 5350 - uid: 24250 components: - type: Transform - pos: 60.5,-32.5 + pos: 56.5,-24.5 parent: 5350 - uid: 24251 components: - type: Transform - pos: 59.5,-32.5 + pos: 55.5,-24.5 parent: 5350 - uid: 24253 components: - type: Transform - pos: 58.5,-32.5 + pos: 54.5,-24.5 parent: 5350 - uid: 24254 components: - type: Transform - pos: 57.5,-32.5 + pos: 67.5,-24.5 parent: 5350 - uid: 24255 components: - type: Transform - pos: 56.5,-32.5 + pos: 53.5,-24.5 parent: 5350 - uid: 24257 components: - type: Transform - pos: 55.5,-32.5 + pos: 52.5,-23.5 parent: 5350 - uid: 24260 components: - type: Transform - pos: 54.5,-32.5 + pos: 52.5,-22.5 parent: 5350 - uid: 24261 components: - type: Transform - pos: 53.5,-32.5 - parent: 5350 - - uid: 24298 - components: - - type: Transform - pos: 52.5,-32.5 - parent: 5350 - - uid: 24299 - components: - - type: Transform - pos: 51.5,-32.5 + pos: 52.5,-21.5 parent: 5350 - uid: 24301 components: - type: Transform - pos: 50.5,-32.5 + pos: 70.5,-27.5 parent: 5350 - uid: 24302 components: - type: Transform - pos: 49.5,-32.5 + pos: 70.5,-28.5 parent: 5350 - uid: 24303 components: - type: Transform - pos: 48.5,-32.5 + pos: 70.5,-29.5 parent: 5350 - uid: 24304 components: - type: Transform - pos: 47.5,-32.5 + pos: 70.5,-30.5 parent: 5350 - uid: 24497 components: @@ -43361,6 +44032,11 @@ entities: - type: Transform pos: 47.5,-24.5 parent: 5350 + - uid: 24516 + components: + - type: Transform + pos: 70.5,-31.5 + parent: 5350 - uid: 24519 components: - type: Transform @@ -43456,6 +44132,11 @@ entities: - type: Transform pos: 104.5,0.5 parent: 5350 + - uid: 26785 + components: + - type: Transform + pos: 70.5,-32.5 + parent: 5350 - uid: 26811 components: - type: Transform @@ -43541,6 +44222,31 @@ entities: - type: Transform pos: 103.5,13.5 parent: 5350 + - uid: 27000 + components: + - type: Transform + pos: 70.5,-33.5 + parent: 5350 + - uid: 27001 + components: + - type: Transform + pos: 70.5,-34.5 + parent: 5350 + - uid: 27002 + components: + - type: Transform + pos: 70.5,-35.5 + parent: 5350 + - uid: 27013 + components: + - type: Transform + pos: 71.5,-31.5 + parent: 5350 + - uid: 27123 + components: + - type: Transform + pos: 70.5,-25.5 + parent: 5350 - proto: CableHVStack entities: - uid: 1551 @@ -46950,6 +47656,31 @@ entities: - type: Transform pos: -34.5,32.5 parent: 5350 + - uid: 10840 + components: + - type: Transform + pos: 69.5,-26.5 + parent: 5350 + - uid: 11261 + components: + - type: Transform + pos: 69.5,-25.5 + parent: 5350 + - uid: 11270 + components: + - type: Transform + pos: 69.5,-28.5 + parent: 5350 + - uid: 11272 + components: + - type: Transform + pos: 70.5,-25.5 + parent: 5350 + - uid: 11274 + components: + - type: Transform + pos: 69.5,-27.5 + parent: 5350 - uid: 11917 components: - type: Transform @@ -50755,6 +51486,12 @@ entities: rot: 1.5707963267948966 rad pos: 38.5,-60.5 parent: 5350 + - uid: 24299 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 70.5,-27.5 + parent: 5350 - uid: 24518 components: - type: Transform @@ -50802,10 +51539,10 @@ entities: parent: 5350 - proto: CarbonDioxideCanister entities: - - uid: 11597 + - uid: 11615 components: - type: Transform - pos: 69.5,-19.5 + pos: 69.5,-18.5 parent: 5350 - uid: 11815 components: @@ -50822,6 +51559,11 @@ entities: - type: Transform pos: 25.5,-48.5 parent: 5350 + - uid: 27090 + components: + - type: Transform + pos: 76.5,-36.5 + parent: 5350 - proto: Carpet entities: - uid: 1123 @@ -52900,6 +53642,11 @@ entities: - type: Transform pos: -43.5,35.5 parent: 5350 + - uid: 11282 + components: + - type: Transform + pos: 72.5,-24.5 + parent: 5350 - uid: 11471 components: - type: Transform @@ -52945,6 +53692,16 @@ entities: - type: Transform pos: 48.5,-34.5 parent: 5350 + - uid: 11756 + components: + - type: Transform + pos: 72.5,-23.5 + parent: 5350 + - uid: 11759 + components: + - type: Transform + pos: 72.5,-22.5 + parent: 5350 - uid: 12119 components: - type: Transform @@ -55904,6 +56661,119 @@ entities: - type: Transform pos: 58.5,11.5 parent: 5350 + - uid: 27112 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 74.5,-42.5 + parent: 5350 + - uid: 27157 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 74.5,-41.5 + parent: 5350 + - uid: 27169 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 71.5,-43.5 + parent: 5350 + - uid: 27170 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 72.5,-43.5 + parent: 5350 + - uid: 27171 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 73.5,-43.5 + parent: 5350 + - uid: 27172 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 74.5,-43.5 + parent: 5350 + - uid: 27173 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 75.5,-43.5 + parent: 5350 + - uid: 27174 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 76.5,-43.5 + parent: 5350 + - uid: 27175 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 77.5,-43.5 + parent: 5350 + - uid: 27176 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 65.5,-44.5 + parent: 5350 + - uid: 27178 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 67.5,-44.5 + parent: 5350 + - uid: 27179 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 68.5,-44.5 + parent: 5350 + - uid: 27180 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 69.5,-44.5 + parent: 5350 + - uid: 27181 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 70.5,-44.5 + parent: 5350 + - uid: 27182 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 71.5,-44.5 + parent: 5350 + - uid: 27183 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 72.5,-44.5 + parent: 5350 + - uid: 27184 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 73.5,-44.5 + parent: 5350 + - uid: 27254 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 66.5,-44.5 + parent: 5350 + - uid: 27255 + components: + - type: Transform + pos: 74.5,-44.5 + parent: 5350 - proto: Chair entities: - uid: 347 @@ -57477,6 +58347,11 @@ entities: rot: 1.5707963267948966 rad pos: 106.5,4.5 parent: 5350 + - uid: 27118 + components: + - type: Transform + pos: 71.5,-30.5 + parent: 5350 - proto: ChairOfficeLight entities: - uid: 5098 @@ -60889,6 +61764,15 @@ entities: - type: Transform pos: -40.532333,-25.270031 parent: 5350 +- proto: ClothingHeadHelmetAtmosFire + entities: + - uid: 27091 + components: + - type: Transform + parent: 27084 + - type: Physics + canCollide: False + - type: InsideEntityStorage - proto: ClothingHeadHelmetBasic entities: - uid: 10424 @@ -61059,6 +61943,13 @@ entities: - type: Transform pos: 45.489563,-8.468819 parent: 5350 + - uid: 27098 + components: + - type: Transform + parent: 27084 + - type: Physics + canCollide: False + - type: InsideEntityStorage - proto: ClothingMaskGasExplorer entities: - uid: 3689 @@ -61426,6 +62317,15 @@ entities: - type: Transform pos: -18.5,29.5 parent: 5350 +- proto: ClothingOuterSuitAtmosFire + entities: + - uid: 27097 + components: + - type: Transform + parent: 27084 + - type: Physics + canCollide: False + - type: InsideEntityStorage - proto: ClothingOuterSuitMonkey entities: - uid: 24111 @@ -62444,6 +63344,12 @@ entities: rot: 3.141592653589793 rad pos: 110.5,-0.5 parent: 5350 + - uid: 27043 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 71.5,-31.5 + parent: 5350 - proto: ComputerRadar entities: - uid: 1207 @@ -63178,6 +64084,13 @@ entities: - type: Transform pos: 38.5,-16.5 parent: 5350 +- proto: CrateMaterialSteel + entities: + - uid: 27101 + components: + - type: Transform + pos: 68.5,-31.5 + parent: 5350 - proto: CrateMedical entities: - uid: 15591 @@ -63826,6 +64739,13 @@ entities: - type: Transform pos: 36.5,7.5 parent: 5350 +- proto: DefaultStationBeaconTEG + entities: + - uid: 27252 + components: + - type: Transform + pos: 70.5,-30.5 + parent: 5350 - proto: DefaultStationBeaconTelecoms entities: - uid: 26708 @@ -71659,6 +72579,11 @@ entities: - type: Transform pos: -29.5,-42.5 parent: 5350 + - uid: 27096 + components: + - type: Transform + pos: 74.5,-31.5 + parent: 5350 - proto: ExtinguisherCabinetOpen entities: - uid: 22178 @@ -72658,6 +73583,16 @@ entities: - 14208 - 14209 - 14210 + - uid: 26994 + components: + - type: Transform + pos: 68.5,-28.5 + parent: 5350 + - type: DeviceList + devices: + - 27078 + - 26996 + - 26995 - proto: FireAxeCabinetFilled entities: - uid: 1096 @@ -73974,6 +74909,24 @@ entities: - type: Transform pos: -72.5,8.5 parent: 5350 + - uid: 26995 + components: + - type: Transform + pos: 66.5,-25.5 + parent: 5350 + - type: DeviceNetwork + deviceLists: + - 11752 + - 26994 + - uid: 26996 + components: + - type: Transform + pos: 67.5,-25.5 + parent: 5350 + - type: DeviceNetwork + deviceLists: + - 11752 + - 26994 - proto: Fireplace entities: - uid: 1054 @@ -74689,6 +75642,12 @@ entities: - type: Transform pos: -57.517693,-13.493662 parent: 5350 + - uid: 27104 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 73.5,-30.5 + parent: 5350 - proto: GasFilterFlipped entities: - uid: 14354 @@ -74701,10 +75660,10 @@ entities: color: '#FF1212FF' - proto: GasMinerCarbonDioxide entities: - - uid: 11596 + - uid: 11612 components: - type: Transform - pos: 68.5,-19.5 + pos: 68.5,-18.5 parent: 5350 - proto: GasMinerNitrogenStationLarge entities: @@ -74746,35 +75705,19 @@ entities: parent: 5350 - proto: GasOutletInjector entities: - - uid: 10990 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 67.5,-8.5 - parent: 5350 - - type: AtmosPipeColor - color: '#27E312FF' - - uid: 10991 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 67.5,-12.5 - parent: 5350 - - type: AtmosPipeColor - color: '#27E312FF' - - uid: 10992 + - uid: 3186 components: - type: Transform rot: -1.5707963267948966 rad - pos: 67.5,-16.5 + pos: 67.5,-19.5 parent: 5350 - type: AtmosPipeColor color: '#27E312FF' - - uid: 10993 + - uid: 10830 components: - type: Transform rot: -1.5707963267948966 rad - pos: 67.5,-20.5 + pos: 67.5,-15.5 parent: 5350 - type: AtmosPipeColor color: '#27E312FF' @@ -74806,6 +75749,22 @@ entities: rot: -1.5707963267948966 rad pos: 44.5,-34.5 parent: 5350 + - uid: 11570 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 67.5,-7.5 + parent: 5350 + - type: AtmosPipeColor + color: '#27E312FF' + - uid: 11723 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 67.5,-11.5 + parent: 5350 + - type: AtmosPipeColor + color: '#27E312FF' - uid: 19390 components: - type: Transform @@ -74827,6 +75786,22 @@ entities: rot: 3.141592653589793 rad pos: 59.5,-28.5 parent: 5350 + - uid: 10829 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 67.5,-13.5 + parent: 5350 + - type: AtmosPipeColor + color: '#B342F5FF' + - uid: 10910 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 67.5,-17.5 + parent: 5350 + - type: AtmosPipeColor + color: '#B342F5FF' - uid: 10981 components: - type: Transform @@ -74859,35 +75834,19 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#947507FF' - - uid: 10986 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 67.5,-18.5 - parent: 5350 - - type: AtmosPipeColor - color: '#947507FF' - - uid: 10987 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 67.5,-14.5 - parent: 5350 - - type: AtmosPipeColor - color: '#947507FF' - - uid: 10988 + - uid: 11309 components: - type: Transform rot: -1.5707963267948966 rad - pos: 67.5,-10.5 + pos: 67.5,-5.5 parent: 5350 - type: AtmosPipeColor - color: '#947507FF' - - uid: 10989 + color: '#B342F5FF' + - uid: 11310 components: - type: Transform rot: -1.5707963267948966 rad - pos: 67.5,-6.5 + pos: 67.5,-9.5 parent: 5350 - type: AtmosPipeColor color: '#B342F5FF' @@ -74939,6 +75898,24 @@ entities: rot: 3.141592653589793 rad pos: 104.5,-16.5 parent: 5350 + - uid: 27069 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 69.5,-40.5 + parent: 5350 + - uid: 27073 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,-40.5 + parent: 5350 + - uid: 27111 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 74.5,-40.5 + parent: 5350 - proto: GasPipeBend entities: - uid: 510 @@ -75353,14 +76330,6 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 5314 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 57.5,-4.5 - parent: 5350 - - type: AtmosPipeColor - color: '#0055CCFF' - uid: 5489 components: - type: Transform @@ -75829,19 +76798,19 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#FF1212FF' - - uid: 11002 + - uid: 10993 components: - type: Transform - rot: 3.141592653589793 rad - pos: 62.5,-5.5 + rot: -1.5707963267948966 rad + pos: 58.5,-5.5 parent: 5350 - type: AtmosPipeColor color: '#03FCD3FF' - - uid: 11004 + - uid: 11002 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 57.5,-10.5 + rot: 1.5707963267948966 rad + pos: 58.5,-4.5 parent: 5350 - type: AtmosPipeColor color: '#03FCD3FF' @@ -75869,11 +76838,10 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 11118 + - uid: 11116 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 57.5,-9.5 + pos: 63.5,-4.5 parent: 5350 - type: AtmosPipeColor color: '#03FCD3FF' @@ -75901,13 +76869,6 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#03FCD3FF' - - uid: 11137 - components: - - type: Transform - pos: 62.5,-4.5 - parent: 5350 - - type: AtmosPipeColor - color: '#03FCD3FF' - uid: 11156 components: - type: Transform @@ -76826,6 +77787,85 @@ entities: rot: 3.141592653589793 rad pos: 108.5,-4.5 parent: 5350 + - uid: 26787 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 61.5,-20.5 + parent: 5350 + - type: AtmosPipeColor + color: '#03FCD3FF' + - uid: 26985 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 63.5,-20.5 + parent: 5350 + - type: AtmosPipeColor + color: '#03FCD3FF' + - uid: 27185 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 71.5,-42.5 + parent: 5350 + - uid: 27186 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 73.5,-42.5 + parent: 5350 + - uid: 27211 + components: + - type: Transform + pos: 66.5,-21.5 + parent: 5350 + - type: AtmosPipeColor + color: '#947507FF' + - uid: 27213 + components: + - type: Transform + pos: 69.5,-30.5 + parent: 5350 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 27214 + components: + - type: Transform + pos: 63.5,-24.5 + parent: 5350 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 27229 + components: + - type: Transform + pos: 64.5,-23.5 + parent: 5350 + - type: AtmosPipeColor + color: '#FF1212FF' + - uid: 27230 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 63.5,-30.5 + parent: 5350 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 27231 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 64.5,-29.5 + parent: 5350 + - type: AtmosPipeColor + color: '#FF1212FF' + - uid: 27233 + components: + - type: Transform + pos: 72.5,-29.5 + parent: 5350 + - type: AtmosPipeColor + color: '#FF1212FF' - proto: GasPipeFourway entities: - uid: 260 @@ -81507,6 +82547,14 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#0055CCFF' + - uid: 2682 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 65.5,-7.5 + parent: 5350 + - type: AtmosPipeColor + color: '#27E312FF' - uid: 2685 components: - type: Transform @@ -84293,13 +85341,6 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 5315 - components: - - type: Transform - pos: 57.5,-5.5 - parent: 5350 - - type: AtmosPipeColor - color: '#0055CCFF' - uid: 5459 components: - type: Transform @@ -88750,14 +89791,6 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 8889 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 58.5,-4.5 - parent: 5350 - - type: AtmosPipeColor - color: '#0055CCFF' - uid: 8978 components: - type: Transform @@ -88766,14 +89799,6 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 8983 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 59.5,-4.5 - parent: 5350 - - type: AtmosPipeColor - color: '#0055CCFF' - uid: 8987 components: - type: Transform @@ -88944,14 +89969,6 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 9027 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 60.5,-4.5 - parent: 5350 - - type: AtmosPipeColor - color: '#0055CCFF' - uid: 9039 components: - type: Transform @@ -88960,11 +89977,6 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 9069 - components: - - type: Transform - pos: 68.5,-30.5 - parent: 5350 - uid: 9166 components: - type: Transform @@ -89631,6 +90643,62 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#0055CCFF' + - uid: 10815 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 66.5,-15.5 + parent: 5350 + - type: AtmosPipeColor + color: '#27E312FF' + - uid: 10816 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 64.5,-15.5 + parent: 5350 + - type: AtmosPipeColor + color: '#27E312FF' + - uid: 10822 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 66.5,-7.5 + parent: 5350 + - type: AtmosPipeColor + color: '#27E312FF' + - uid: 10825 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 65.5,-11.5 + parent: 5350 + - type: AtmosPipeColor + color: '#27E312FF' + - uid: 10826 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 66.5,-11.5 + parent: 5350 + - type: AtmosPipeColor + color: '#27E312FF' + - uid: 10924 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 64.5,-11.5 + parent: 5350 + - type: AtmosPipeColor + color: '#27E312FF' + - uid: 10931 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 64.5,-7.5 + parent: 5350 + - type: AtmosPipeColor + color: '#27E312FF' - uid: 10952 components: - type: Transform @@ -89694,6 +90762,14 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#FF1212FF' + - uid: 10972 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 65.5,-15.5 + parent: 5350 + - type: AtmosPipeColor + color: '#27E312FF' - uid: 10973 components: - type: Transform @@ -89725,6 +90801,14 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#FF1212FF' + - uid: 10992 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 61.5,-10.5 + parent: 5350 + - type: AtmosPipeColor + color: '#03FCD3FF' - uid: 11003 components: - type: Transform @@ -89733,6 +90817,14 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#FF1212FF' + - uid: 11004 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 60.5,-10.5 + parent: 5350 + - type: AtmosPipeColor + color: '#03FCD3FF' - uid: 11016 components: - type: Transform @@ -89775,78 +90867,22 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#27E312FF' - - uid: 11040 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 64.5,-20.5 - parent: 5350 - - type: AtmosPipeColor - color: '#27E312FF' - uid: 11041 components: - type: Transform rot: 1.5707963267948966 rad - pos: 65.5,-20.5 + pos: 57.5,-10.5 parent: 5350 - type: AtmosPipeColor - color: '#27E312FF' + color: '#03FCD3FF' - uid: 11042 components: - type: Transform rot: 1.5707963267948966 rad - pos: 66.5,-20.5 - parent: 5350 - - type: AtmosPipeColor - color: '#27E312FF' - - uid: 11044 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 64.5,-16.5 - parent: 5350 - - type: AtmosPipeColor - color: '#27E312FF' - - uid: 11045 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 65.5,-16.5 - parent: 5350 - - type: AtmosPipeColor - color: '#27E312FF' - - uid: 11046 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 66.5,-16.5 - parent: 5350 - - type: AtmosPipeColor - color: '#27E312FF' - - uid: 11054 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 64.5,-12.5 - parent: 5350 - - type: AtmosPipeColor - color: '#27E312FF' - - uid: 11055 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 65.5,-12.5 - parent: 5350 - - type: AtmosPipeColor - color: '#27E312FF' - - uid: 11056 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 66.5,-12.5 + pos: 58.5,-10.5 parent: 5350 - type: AtmosPipeColor - color: '#27E312FF' + color: '#03FCD3FF' - uid: 11058 components: - type: Transform @@ -90058,42 +91094,6 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#03FCD3FF' - - uid: 11098 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 62.5,-24.5 - parent: 5350 - - type: AtmosPipeColor - color: '#03FCD3FF' - - uid: 11099 - components: - - type: Transform - pos: 63.5,-23.5 - parent: 5350 - - type: AtmosPipeColor - color: '#03FCD3FF' - - uid: 11100 - components: - - type: Transform - pos: 63.5,-22.5 - parent: 5350 - - type: AtmosPipeColor - color: '#03FCD3FF' - - uid: 11101 - components: - - type: Transform - pos: 63.5,-21.5 - parent: 5350 - - type: AtmosPipeColor - color: '#03FCD3FF' - - uid: 11102 - components: - - type: Transform - pos: 63.5,-20.5 - parent: 5350 - - type: AtmosPipeColor - color: '#03FCD3FF' - uid: 11103 components: - type: Transform @@ -90157,50 +91157,19 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#03FCD3FF' - - uid: 11112 - components: - - type: Transform - pos: 63.5,-10.5 - parent: 5350 - - type: AtmosPipeColor - color: '#03FCD3FF' - - uid: 11113 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 62.5,-9.5 - parent: 5350 - - type: AtmosPipeColor - color: '#03FCD3FF' - - uid: 11114 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 61.5,-9.5 - parent: 5350 - - type: AtmosPipeColor - color: '#03FCD3FF' - - uid: 11115 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 60.5,-9.5 - parent: 5350 - - type: AtmosPipeColor - color: '#03FCD3FF' - - uid: 11116 + - uid: 11117 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 59.5,-9.5 + rot: 1.5707963267948966 rad + pos: 62.5,-4.5 parent: 5350 - type: AtmosPipeColor color: '#03FCD3FF' - - uid: 11117 + - uid: 11118 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 58.5,-9.5 + rot: 1.5707963267948966 rad + pos: 61.5,-4.5 parent: 5350 - type: AtmosPipeColor color: '#03FCD3FF' @@ -90228,6 +91197,14 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#03FCD3FF' + - uid: 11130 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 60.5,-4.5 + parent: 5350 + - type: AtmosPipeColor + color: '#03FCD3FF' - uid: 11131 components: - type: Transform @@ -90252,6 +91229,14 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#03FCD3FF' + - uid: 11134 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 59.5,-4.5 + parent: 5350 + - type: AtmosPipeColor + color: '#03FCD3FF' - uid: 11139 components: - type: Transform @@ -90332,14 +91317,6 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 11151 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 57.5,-6.5 - parent: 5350 - - type: AtmosPipeColor - color: '#0055CCFF' - uid: 11152 components: - type: Transform @@ -90380,78 +91357,14 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 11161 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 66.5,-18.5 - parent: 5350 - - type: AtmosPipeColor - color: '#947507FF' - - uid: 11162 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 65.5,-18.5 - parent: 5350 - - type: AtmosPipeColor - color: '#947507FF' - - uid: 11163 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 64.5,-18.5 - parent: 5350 - - type: AtmosPipeColor - color: '#947507FF' - - uid: 11166 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 66.5,-14.5 - parent: 5350 - - type: AtmosPipeColor - color: '#947507FF' - uid: 11167 components: - type: Transform rot: -1.5707963267948966 rad - pos: 65.5,-14.5 - parent: 5350 - - type: AtmosPipeColor - color: '#947507FF' - - uid: 11168 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 64.5,-14.5 - parent: 5350 - - type: AtmosPipeColor - color: '#947507FF' - - uid: 11171 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 66.5,-10.5 - parent: 5350 - - type: AtmosPipeColor - color: '#947507FF' - - uid: 11172 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 65.5,-10.5 - parent: 5350 - - type: AtmosPipeColor - color: '#947507FF' - - uid: 11173 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 64.5,-10.5 + pos: 64.5,-9.5 parent: 5350 - type: AtmosPipeColor - color: '#947507FF' + color: '#B342F5FF' - uid: 11196 components: - type: Transform @@ -90476,54 +91389,21 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#FF1212FF' - - uid: 11200 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 64.5,-8.5 - parent: 5350 - - type: AtmosPipeColor - color: '#27E312FF' - - uid: 11201 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 65.5,-8.5 - parent: 5350 - - type: AtmosPipeColor - color: '#27E312FF' - - uid: 11202 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 66.5,-8.5 - parent: 5350 - - type: AtmosPipeColor - color: '#27E312FF' - - uid: 11204 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 66.5,-6.5 - parent: 5350 - - type: AtmosPipeColor - color: '#B342F5FF' - uid: 11205 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 65.5,-6.5 + pos: 63.5,-5.5 parent: 5350 - type: AtmosPipeColor - color: '#B342F5FF' + color: '#03FCD3FF' - uid: 11206 components: - type: Transform rot: 1.5707963267948966 rad - pos: 64.5,-6.5 + pos: 62.5,-10.5 parent: 5350 - type: AtmosPipeColor - color: '#B342F5FF' + color: '#03FCD3FF' - uid: 11227 components: - type: Transform @@ -90572,63 +91452,93 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#000000FF' - - uid: 11237 + - uid: 11297 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 64.5,-24.5 + pos: 63.5,-9.5 parent: 5350 - type: AtmosPipeColor color: '#03FCD3FF' - - uid: 11238 + - uid: 11306 components: - type: Transform rot: 1.5707963267948966 rad - pos: 65.5,-24.5 + pos: 59.5,-10.5 parent: 5350 - type: AtmosPipeColor color: '#03FCD3FF' - - uid: 11239 + - uid: 11316 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 66.5,-24.5 + rot: -1.5707963267948966 rad + pos: 64.5,-17.5 parent: 5350 - type: AtmosPipeColor - color: '#03FCD3FF' - - uid: 11240 + color: '#B342F5FF' + - uid: 11317 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 67.5,-24.5 + rot: -1.5707963267948966 rad + pos: 65.5,-17.5 parent: 5350 - type: AtmosPipeColor - color: '#03FCD3FF' - - uid: 11241 + color: '#B342F5FF' + - uid: 11318 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 68.5,-24.5 + rot: -1.5707963267948966 rad + pos: 66.5,-17.5 parent: 5350 - type: AtmosPipeColor - color: '#03FCD3FF' - - uid: 11246 + color: '#B342F5FF' + - uid: 11349 components: - type: Transform - pos: 70.5,-30.5 + rot: -1.5707963267948966 rad + pos: 66.5,-19.5 parent: 5350 - - uid: 11247 + - type: AtmosPipeColor + color: '#27E312FF' + - uid: 11350 components: - type: Transform - rot: 3.141592653589793 rad - pos: 68.5,-29.5 + rot: -1.5707963267948966 rad + pos: 65.5,-19.5 parent: 5350 - - uid: 11248 + - type: AtmosPipeColor + color: '#27E312FF' + - uid: 11351 components: - type: Transform - rot: 3.141592653589793 rad - pos: 70.5,-29.5 + rot: -1.5707963267948966 rad + pos: 64.5,-19.5 + parent: 5350 + - type: AtmosPipeColor + color: '#27E312FF' + - uid: 11352 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 64.5,-13.5 parent: 5350 + - type: AtmosPipeColor + color: '#B342F5FF' + - uid: 11353 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 65.5,-13.5 + parent: 5350 + - type: AtmosPipeColor + color: '#B342F5FF' + - uid: 11354 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 66.5,-13.5 + parent: 5350 + - type: AtmosPipeColor + color: '#B342F5FF' - uid: 11362 components: - type: Transform @@ -90877,6 +91787,77 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#FF1212FF' + - uid: 11572 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 66.5,-5.5 + parent: 5350 + - type: AtmosPipeColor + color: '#B342F5FF' + - uid: 11635 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 64.5,-5.5 + parent: 5350 + - type: AtmosPipeColor + color: '#B342F5FF' + - uid: 11642 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 65.5,-5.5 + parent: 5350 + - type: AtmosPipeColor + color: '#B342F5FF' + - uid: 11724 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 66.5,-9.5 + parent: 5350 + - type: AtmosPipeColor + color: '#B342F5FF' + - uid: 11730 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 65.5,-9.5 + parent: 5350 + - type: AtmosPipeColor + color: '#B342F5FF' + - uid: 11754 + components: + - type: Transform + pos: 61.5,-22.5 + parent: 5350 + - type: AtmosPipeColor + color: '#03FCD3FF' + - uid: 11758 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 62.5,-20.5 + parent: 5350 + - type: AtmosPipeColor + color: '#03FCD3FF' + - uid: 11760 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 63.5,-21.5 + parent: 5350 + - type: AtmosPipeColor + color: '#947507FF' + - uid: 11762 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 61.5,-23.5 + parent: 5350 + - type: AtmosPipeColor + color: '#03FCD3FF' - uid: 11779 components: - type: Transform @@ -101136,6 +102117,326 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#0055CCFF' + - uid: 26786 + components: + - type: Transform + pos: 61.5,-21.5 + parent: 5350 + - type: AtmosPipeColor + color: '#03FCD3FF' + - uid: 27070 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 69.5,-39.5 + parent: 5350 + - uid: 27074 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,-39.5 + parent: 5350 + - uid: 27156 + components: + - type: Transform + pos: 74.5,-39.5 + parent: 5350 + - uid: 27191 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 71.5,-39.5 + parent: 5350 + - uid: 27192 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 73.5,-39.5 + parent: 5350 + - uid: 27194 + components: + - type: Transform + pos: 73.5,-38.5 + parent: 5350 + - uid: 27196 + components: + - type: Transform + pos: 71.5,-38.5 + parent: 5350 + - uid: 27201 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 64.5,-21.5 + parent: 5350 + - type: AtmosPipeColor + color: '#947507FF' + - uid: 27202 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 65.5,-21.5 + parent: 5350 + - type: AtmosPipeColor + color: '#947507FF' + - uid: 27203 + components: + - type: Transform + pos: 66.5,-22.5 + parent: 5350 + - type: AtmosPipeColor + color: '#947507FF' + - uid: 27204 + components: + - type: Transform + pos: 66.5,-23.5 + parent: 5350 + - type: AtmosPipeColor + color: '#947507FF' + - uid: 27205 + components: + - type: Transform + pos: 66.5,-24.5 + parent: 5350 + - type: AtmosPipeColor + color: '#947507FF' + - uid: 27206 + components: + - type: Transform + pos: 66.5,-25.5 + parent: 5350 + - type: AtmosPipeColor + color: '#947507FF' + - uid: 27207 + components: + - type: Transform + pos: 66.5,-26.5 + parent: 5350 + - type: AtmosPipeColor + color: '#947507FF' + - uid: 27208 + components: + - type: Transform + pos: 66.5,-27.5 + parent: 5350 + - type: AtmosPipeColor + color: '#947507FF' + - uid: 27209 + components: + - type: Transform + pos: 66.5,-28.5 + parent: 5350 + - type: AtmosPipeColor + color: '#947507FF' + - uid: 27215 + components: + - type: Transform + pos: 63.5,-25.5 + parent: 5350 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 27216 + components: + - type: Transform + pos: 63.5,-26.5 + parent: 5350 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 27217 + components: + - type: Transform + pos: 63.5,-27.5 + parent: 5350 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 27218 + components: + - type: Transform + pos: 63.5,-28.5 + parent: 5350 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 27219 + components: + - type: Transform + pos: 63.5,-29.5 + parent: 5350 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 27220 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 65.5,-30.5 + parent: 5350 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 27221 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 67.5,-30.5 + parent: 5350 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 27222 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 68.5,-30.5 + parent: 5350 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 27223 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 68.5,-29.5 + parent: 5350 + - type: AtmosPipeColor + color: '#FF1212FF' + - uid: 27224 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 66.5,-29.5 + parent: 5350 + - type: AtmosPipeColor + color: '#FF1212FF' + - uid: 27225 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 67.5,-29.5 + parent: 5350 + - type: AtmosPipeColor + color: '#FF1212FF' + - uid: 27226 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 65.5,-29.5 + parent: 5350 + - type: AtmosPipeColor + color: '#FF1212FF' + - uid: 27227 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 66.5,-30.5 + parent: 5350 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 27228 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 64.5,-30.5 + parent: 5350 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 27232 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 69.5,-29.5 + parent: 5350 + - type: AtmosPipeColor + color: '#FF1212FF' + - uid: 27234 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 70.5,-29.5 + parent: 5350 + - type: AtmosPipeColor + color: '#FF1212FF' + - uid: 27235 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 71.5,-29.5 + parent: 5350 + - type: AtmosPipeColor + color: '#FF1212FF' + - uid: 27236 + components: + - type: Transform + pos: 72.5,-30.5 + parent: 5350 + - type: AtmosPipeColor + color: '#FF1212FF' + - uid: 27237 + components: + - type: Transform + pos: 66.5,-29.5 + parent: 5350 + - type: AtmosPipeColor + color: '#947507FF' + - uid: 27238 + components: + - type: Transform + pos: 66.5,-30.5 + parent: 5350 + - type: AtmosPipeColor + color: '#947507FF' + - uid: 27239 + components: + - type: Transform + pos: 66.5,-31.5 + parent: 5350 + - type: AtmosPipeColor + color: '#947507FF' + - uid: 27240 + components: + - type: Transform + pos: 64.5,-28.5 + parent: 5350 + - type: AtmosPipeColor + color: '#FF1212FF' + - uid: 27241 + components: + - type: Transform + pos: 64.5,-27.5 + parent: 5350 + - type: AtmosPipeColor + color: '#FF1212FF' + - uid: 27242 + components: + - type: Transform + pos: 64.5,-26.5 + parent: 5350 + - type: AtmosPipeColor + color: '#FF1212FF' + - uid: 27243 + components: + - type: Transform + pos: 64.5,-25.5 + parent: 5350 + - type: AtmosPipeColor + color: '#FF1212FF' + - uid: 27244 + components: + - type: Transform + pos: 64.5,-24.5 + parent: 5350 + - type: AtmosPipeColor + color: '#FF1212FF' + - uid: 27245 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 63.5,-23.5 + parent: 5350 + - type: AtmosPipeColor + color: '#FF1212FF' + - uid: 27256 + components: + - type: Transform + pos: 66.5,-32.5 + parent: 5350 + - type: AtmosPipeColor + color: '#947507FF' - proto: GasPipeTJunction entities: - uid: 265 @@ -103313,6 +104614,14 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#0055CCFF' + - uid: 10933 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 57.5,-5.5 + parent: 5350 + - type: AtmosPipeColor + color: '#03FCD3FF' - uid: 10950 components: - type: Transform @@ -103399,27 +104708,11 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#03FCD3FF' - - uid: 11097 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 63.5,-24.5 - parent: 5350 - - type: AtmosPipeColor - color: '#03FCD3FF' - - uid: 11130 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 63.5,-9.5 - parent: 5350 - - type: AtmosPipeColor - color: '#03FCD3FF' - - uid: 11134 + - uid: 11115 components: - type: Transform rot: -1.5707963267948966 rad - pos: 63.5,-5.5 + pos: 63.5,-10.5 parent: 5350 - type: AtmosPipeColor color: '#03FCD3FF' @@ -104685,6 +105978,30 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#0055CCFF' + - uid: 27187 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 71.5,-41.5 + parent: 5350 + - uid: 27188 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 73.5,-41.5 + parent: 5350 + - uid: 27189 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 71.5,-40.5 + parent: 5350 + - uid: 27190 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 73.5,-40.5 + parent: 5350 - proto: GasPort entities: - uid: 8245 @@ -104717,11 +106034,6 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#FF1212FF' - - uid: 9029 - components: - - type: Transform - pos: 63.5,-4.5 - parent: 5350 - uid: 10163 components: - type: Transform @@ -104752,6 +106064,13 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#0055CCFF' + - uid: 10932 + components: + - type: Transform + pos: 57.5,-4.5 + parent: 5350 + - type: AtmosPipeColor + color: '#03FCD3FF' - uid: 10946 components: - type: Transform @@ -104784,16 +106103,6 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#03FCD3FF' - - uid: 11243 - components: - - type: Transform - pos: 68.5,-27.5 - parent: 5350 - - uid: 11244 - components: - - type: Transform - pos: 70.5,-27.5 - parent: 5350 - uid: 11438 components: - type: Transform @@ -104940,12 +106249,6 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 2682 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 63.5,-12.5 - parent: 5350 - uid: 3130 components: - type: Transform @@ -104954,12 +106257,6 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#FF1212FF' - - uid: 3186 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 63.5,-6.5 - parent: 5350 - uid: 10543 components: - type: Transform @@ -104972,50 +106269,51 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 10966 + - uid: 10817 components: - type: Transform rot: 1.5707963267948966 rad - pos: 63.5,-20.5 - parent: 5350 - - uid: 10967 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 54.5,-20.5 + pos: 63.5,-15.5 parent: 5350 - - uid: 10968 + - type: AtmosPipeColor + color: '#27E312FF' + - uid: 10824 components: - type: Transform rot: -1.5707963267948966 rad - pos: 51.5,-21.5 + pos: 63.5,-9.5 parent: 5350 - type: AtmosPipeColor - color: '#FF1212FF' - - uid: 10969 + color: '#B342F5FF' + - uid: 10934 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 63.5,-16.5 + pos: 57.5,-6.5 parent: 5350 - - uid: 10970 + - type: AtmosPipeColor + color: '#03FCD3FF' + - uid: 10967 components: - type: Transform rot: -1.5707963267948966 rad - pos: 63.5,-10.5 + pos: 54.5,-20.5 parent: 5350 - - uid: 10971 + - uid: 10968 components: - type: Transform rot: -1.5707963267948966 rad - pos: 63.5,-14.5 + pos: 51.5,-21.5 parent: 5350 - - uid: 10972 + - type: AtmosPipeColor + color: '#FF1212FF' + - uid: 10991 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 63.5,-18.5 + rot: 1.5707963267948966 rad + pos: 63.5,-7.5 parent: 5350 + - type: AtmosPipeColor + color: '#27E312FF' - uid: 11006 components: - type: Transform @@ -105029,12 +106327,14 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#FF1212FF' - - uid: 11015 + - uid: 11040 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 63.5,-8.5 + rot: -1.5707963267948966 rad + pos: 63.5,-5.5 parent: 5350 + - type: AtmosPipeColor + color: '#B342F5FF' - uid: 11124 components: - type: Transform @@ -105043,25 +106343,38 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#03FCD3FF' - - uid: 11138 + - uid: 11161 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 61.5,-4.5 + rot: 1.5707963267948966 rad + pos: 63.5,-19.5 parent: 5350 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11249 + color: '#27E312FF' + - uid: 11280 components: - type: Transform - pos: 68.5,-28.5 + rot: 1.5707963267948966 rad + pos: 62.5,-24.5 parent: 5350 - - uid: 11250 + - type: AtmosPipeColor + color: '#03FCD3FF' + - uid: 11304 components: - type: Transform - rot: 3.141592653589793 rad - pos: 70.5,-28.5 + rot: -1.5707963267948966 rad + pos: 63.5,-17.5 + parent: 5350 + - type: AtmosPipeColor + color: '#B342F5FF' + - uid: 11355 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 63.5,-11.5 parent: 5350 + - type: AtmosPipeColor + color: '#27E312FF' - uid: 11428 components: - type: Transform @@ -105085,6 +106398,14 @@ entities: - type: Transform pos: 43.5,-28.5 parent: 5350 + - uid: 11600 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 63.5,-13.5 + parent: 5350 + - type: AtmosPipeColor + color: '#B342F5FF' - uid: 13461 components: - type: Transform @@ -105141,6 +106462,22 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#0055CCFF' + - uid: 27071 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 69.5,-38.5 + parent: 5350 + - uid: 27128 + components: + - type: Transform + pos: 66.5,-38.5 + parent: 5350 + - uid: 27193 + components: + - type: Transform + pos: 74.5,-38.5 + parent: 5350 - proto: GasThermoMachineFreezer entities: - uid: 2630 @@ -105183,6 +106520,12 @@ entities: - type: Transform pos: 29.5,-38.5 parent: 5350 + - uid: 27195 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 72.5,-38.5 + parent: 5350 - proto: GasThermoMachineHeater entities: - uid: 11366 @@ -105941,14 +107284,6 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 11242 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 69.5,-24.5 - parent: 5350 - - type: AtmosPipeColor - color: '#03FCD3FF' - uid: 11867 components: - type: Transform @@ -106865,6 +108200,17 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#0055CCFF' + - uid: 27210 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 69.5,-31.5 + parent: 5350 + - type: DeviceNetwork + deviceLists: + - 11752 + - type: AtmosPipeColor + color: '#0055CCFF' - proto: GasVentScrubber entities: - uid: 755 @@ -108252,6 +109598,17 @@ entities: parent: 5350 - type: AtmosPipeColor color: '#FF1212FF' + - uid: 27212 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 72.5,-31.5 + parent: 5350 + - type: DeviceNetwork + deviceLists: + - 11752 + - type: AtmosPipeColor + color: '#FF1212FF' - proto: GasVolumePump entities: - uid: 10948 @@ -110751,6 +112108,36 @@ entities: - type: Transform pos: -4.5,16.5 parent: 5350 + - uid: 10823 + components: + - type: Transform + pos: 66.5,-19.5 + parent: 5350 + - uid: 10827 + components: + - type: Transform + pos: 66.5,-18.5 + parent: 5350 + - uid: 10835 + components: + - type: Transform + pos: 70.5,-28.5 + parent: 5350 + - uid: 10843 + components: + - type: Transform + pos: 64.5,-25.5 + parent: 5350 + - uid: 10844 + components: + - type: Transform + pos: 61.5,-25.5 + parent: 5350 + - uid: 10944 + components: + - type: Transform + pos: 66.5,-17.5 + parent: 5350 - uid: 11034 components: - type: Transform @@ -110771,65 +112158,95 @@ entities: - type: Transform pos: 63.5,1.5 parent: 5350 - - uid: 11309 + - uid: 11168 components: - type: Transform - pos: 66.5,-8.5 + pos: 66.5,-9.5 parent: 5350 - - uid: 11310 + - uid: 11171 components: - type: Transform - pos: 66.5,-7.5 + pos: 66.5,-10.5 parent: 5350 - - uid: 11311 + - uid: 11242 components: - type: Transform - pos: 66.5,-6.5 + pos: 64.5,-18.5 parent: 5350 - - uid: 11312 + - uid: 11243 components: - type: Transform - pos: 66.5,-12.5 + pos: 64.5,-6.5 parent: 5350 - - uid: 11313 + - uid: 11244 components: - type: Transform - pos: 66.5,-11.5 + pos: 64.5,-16.5 parent: 5350 - - uid: 11314 + - uid: 11245 components: - type: Transform - pos: 66.5,-10.5 + pos: 64.5,-15.5 parent: 5350 - - uid: 11315 + - uid: 11246 components: - type: Transform - pos: 66.5,-16.5 + pos: 64.5,-14.5 parent: 5350 - - uid: 11316 + - uid: 11247 components: - type: Transform - pos: 66.5,-15.5 + pos: 64.5,-13.5 parent: 5350 - - uid: 11317 + - uid: 11248 components: - type: Transform - pos: 66.5,-14.5 + pos: 64.5,-12.5 parent: 5350 - - uid: 11318 + - uid: 11249 components: - type: Transform - pos: 66.5,-20.5 + pos: 64.5,-11.5 parent: 5350 - - uid: 11319 + - uid: 11250 components: - type: Transform - pos: 66.5,-19.5 + pos: 64.5,-10.5 parent: 5350 - - uid: 11320 + - uid: 11251 components: - type: Transform - pos: 66.5,-18.5 + pos: 64.5,-9.5 + parent: 5350 + - uid: 11252 + components: + - type: Transform + pos: 64.5,-7.5 + parent: 5350 + - uid: 11253 + components: + - type: Transform + pos: 64.5,-8.5 + parent: 5350 + - uid: 11255 + components: + - type: Transform + pos: 64.5,-5.5 + parent: 5350 + - uid: 11269 + components: + - type: Transform + pos: 64.5,-17.5 + parent: 5350 + - uid: 11302 + components: + - type: Transform + pos: 66.5,-11.5 + parent: 5350 + - uid: 11311 + components: + - type: Transform + pos: 66.5,-6.5 parent: 5350 - uid: 11321 components: @@ -110931,110 +112348,65 @@ entities: - type: Transform pos: 60.5,-25.5 parent: 5350 - - uid: 11341 - components: - - type: Transform - pos: 61.5,-25.5 - parent: 5350 - - uid: 11342 - components: - - type: Transform - pos: 64.5,-20.5 - parent: 5350 - uid: 11343 components: - type: Transform - pos: 64.5,-19.5 + pos: 66.5,-5.5 parent: 5350 - uid: 11344 components: - type: Transform - pos: 64.5,-18.5 - parent: 5350 - - uid: 11345 - components: - - type: Transform - pos: 64.5,-17.5 - parent: 5350 - - uid: 11346 - components: - - type: Transform - pos: 64.5,-16.5 - parent: 5350 - - uid: 11347 - components: - - type: Transform - pos: 64.5,-15.5 - parent: 5350 - - uid: 11348 - components: - - type: Transform - pos: 64.5,-14.5 - parent: 5350 - - uid: 11349 - components: - - type: Transform - pos: 64.5,-13.5 - parent: 5350 - - uid: 11350 - components: - - type: Transform - pos: 64.5,-12.5 - parent: 5350 - - uid: 11351 - components: - - type: Transform - pos: 64.5,-11.5 + pos: 66.5,-13.5 parent: 5350 - - uid: 11352 + - uid: 11356 components: - type: Transform - pos: 64.5,-10.5 + pos: 66.5,-7.5 parent: 5350 - - uid: 11353 + - uid: 11357 components: - type: Transform - pos: 64.5,-9.5 + pos: 53.5,-9.5 parent: 5350 - - uid: 11354 + - uid: 11358 components: - type: Transform - pos: 64.5,-8.5 + pos: 55.5,-9.5 parent: 5350 - - uid: 11355 + - uid: 11359 components: - type: Transform - pos: 64.5,-7.5 + pos: 56.5,-9.5 parent: 5350 - - uid: 11356 + - uid: 11501 components: - type: Transform - pos: 64.5,-6.5 + pos: 43.5,-29.5 parent: 5350 - - uid: 11357 + - uid: 11502 components: - type: Transform - pos: 53.5,-9.5 + pos: 48.5,-26.5 parent: 5350 - - uid: 11358 + - uid: 11628 components: - type: Transform - pos: 55.5,-9.5 + pos: 66.5,-14.5 parent: 5350 - - uid: 11359 + - uid: 11693 components: - type: Transform - pos: 56.5,-9.5 + pos: 64.5,-21.5 parent: 5350 - - uid: 11501 + - uid: 11725 components: - type: Transform - pos: 43.5,-29.5 + pos: 66.5,-15.5 parent: 5350 - - uid: 11502 + - uid: 11736 components: - type: Transform - pos: 48.5,-26.5 + pos: 64.5,-19.5 parent: 5350 - uid: 12099 components: @@ -115266,6 +116638,681 @@ entities: - type: Transform pos: -13.5,63.5 parent: 26973 + - uid: 27035 + components: + - type: Transform + pos: 74.5,-29.5 + parent: 5350 + - uid: 27036 + components: + - type: Transform + pos: 74.5,-30.5 + parent: 5350 + - uid: 27064 + components: + - type: Transform + pos: 67.5,-39.5 + parent: 5350 + - uid: 27116 + components: + - type: Transform + pos: 66.5,-39.5 + parent: 5350 + - uid: 27129 + components: + - type: Transform + pos: 68.5,-39.5 + parent: 5350 + - uid: 27130 + components: + - type: Transform + pos: 69.5,-39.5 + parent: 5350 + - uid: 27137 + components: + - type: Transform + pos: 73.5,-39.5 + parent: 5350 + - uid: 27138 + components: + - type: Transform + pos: 65.5,-30.5 + parent: 5350 + - uid: 27142 + components: + - type: Transform + pos: 65.5,-29.5 + parent: 5350 + - uid: 27151 + components: + - type: Transform + pos: 74.5,-39.5 + parent: 5350 + - uid: 27162 + components: + - type: Transform + pos: 71.5,-39.5 + parent: 5350 + - uid: 27163 + components: + - type: Transform + pos: 72.5,-39.5 + parent: 5350 + - uid: 27177 + components: + - type: Transform + pos: 63.5,-25.5 + parent: 5350 + - uid: 27251 + components: + - type: Transform + pos: 82.5,-27.5 + parent: 5350 + - uid: 27264 + components: + - type: Transform + pos: 66.5,-22.5 + parent: 5350 + - uid: 27286 + components: + - type: Transform + pos: 82.5,-26.5 + parent: 5350 + - uid: 27287 + components: + - type: Transform + pos: 81.5,-26.5 + parent: 5350 + - uid: 27289 + components: + - type: Transform + pos: 82.5,-28.5 + parent: 5350 + - uid: 27291 + components: + - type: Transform + pos: 82.5,-30.5 + parent: 5350 + - uid: 27292 + components: + - type: Transform + pos: 82.5,-32.5 + parent: 5350 + - uid: 27293 + components: + - type: Transform + pos: 82.5,-33.5 + parent: 5350 + - uid: 27294 + components: + - type: Transform + pos: 82.5,-31.5 + parent: 5350 + - uid: 27295 + components: + - type: Transform + pos: 82.5,-34.5 + parent: 5350 + - uid: 27297 + components: + - type: Transform + pos: 82.5,-37.5 + parent: 5350 + - uid: 27298 + components: + - type: Transform + pos: 82.5,-35.5 + parent: 5350 + - uid: 27299 + components: + - type: Transform + pos: 82.5,-38.5 + parent: 5350 + - uid: 27301 + components: + - type: Transform + pos: 82.5,-39.5 + parent: 5350 + - uid: 27302 + components: + - type: Transform + pos: 82.5,-41.5 + parent: 5350 + - uid: 27303 + components: + - type: Transform + pos: 82.5,-42.5 + parent: 5350 + - uid: 27304 + components: + - type: Transform + pos: 82.5,-43.5 + parent: 5350 + - uid: 27306 + components: + - type: Transform + pos: 82.5,-45.5 + parent: 5350 + - uid: 27307 + components: + - type: Transform + pos: 82.5,-46.5 + parent: 5350 + - uid: 27308 + components: + - type: Transform + pos: 82.5,-47.5 + parent: 5350 + - uid: 27309 + components: + - type: Transform + pos: 82.5,-49.5 + parent: 5350 + - uid: 27310 + components: + - type: Transform + pos: 82.5,-48.5 + parent: 5350 + - uid: 27311 + components: + - type: Transform + pos: 81.5,-49.5 + parent: 5350 + - uid: 27313 + components: + - type: Transform + pos: 78.5,-49.5 + parent: 5350 + - uid: 27314 + components: + - type: Transform + pos: 80.5,-49.5 + parent: 5350 + - uid: 27315 + components: + - type: Transform + pos: 76.5,-49.5 + parent: 5350 + - uid: 27316 + components: + - type: Transform + pos: 77.5,-49.5 + parent: 5350 + - uid: 27317 + components: + - type: Transform + pos: 75.5,-49.5 + parent: 5350 + - uid: 27319 + components: + - type: Transform + pos: 73.5,-49.5 + parent: 5350 + - uid: 27320 + components: + - type: Transform + pos: 72.5,-49.5 + parent: 5350 + - uid: 27322 + components: + - type: Transform + pos: 70.5,-49.5 + parent: 5350 + - uid: 27323 + components: + - type: Transform + pos: 69.5,-49.5 + parent: 5350 + - uid: 27324 + components: + - type: Transform + pos: 68.5,-49.5 + parent: 5350 + - uid: 27325 + components: + - type: Transform + pos: 67.5,-49.5 + parent: 5350 + - uid: 27326 + components: + - type: Transform + pos: 66.5,-49.5 + parent: 5350 + - uid: 27328 + components: + - type: Transform + pos: 64.5,-49.5 + parent: 5350 + - uid: 27329 + components: + - type: Transform + pos: 63.5,-49.5 + parent: 5350 + - uid: 27330 + components: + - type: Transform + pos: 62.5,-49.5 + parent: 5350 + - uid: 27331 + components: + - type: Transform + pos: 61.5,-49.5 + parent: 5350 + - uid: 27332 + components: + - type: Transform + pos: 60.5,-49.5 + parent: 5350 + - uid: 27333 + components: + - type: Transform + pos: 60.5,-48.5 + parent: 5350 + - uid: 27335 + components: + - type: Transform + pos: 60.5,-46.5 + parent: 5350 + - uid: 27336 + components: + - type: Transform + pos: 60.5,-45.5 + parent: 5350 + - uid: 27337 + components: + - type: Transform + pos: 60.5,-44.5 + parent: 5350 + - uid: 27339 + components: + - type: Transform + pos: 60.5,-42.5 + parent: 5350 + - uid: 27340 + components: + - type: Transform + pos: 60.5,-41.5 + parent: 5350 + - uid: 27341 + components: + - type: Transform + pos: 60.5,-40.5 + parent: 5350 + - uid: 27342 + components: + - type: Transform + pos: 60.5,-39.5 + parent: 5350 + - uid: 27344 + components: + - type: Transform + pos: 60.5,-37.5 + parent: 5350 + - uid: 27345 + components: + - type: Transform + pos: 60.5,-36.5 + parent: 5350 + - uid: 27346 + components: + - type: Transform + pos: 50.5,-34.5 + parent: 5350 + - uid: 27347 + components: + - type: Transform + pos: 51.5,-34.5 + parent: 5350 + - uid: 27348 + components: + - type: Transform + pos: 52.5,-34.5 + parent: 5350 + - uid: 27350 + components: + - type: Transform + pos: 54.5,-34.5 + parent: 5350 + - uid: 27351 + components: + - type: Transform + pos: 55.5,-34.5 + parent: 5350 + - uid: 27353 + components: + - type: Transform + pos: 57.5,-34.5 + parent: 5350 + - uid: 27355 + components: + - type: Transform + pos: 59.5,-34.5 + parent: 5350 + - uid: 27356 + components: + - type: Transform + pos: 60.5,-34.5 + parent: 5350 + - uid: 27357 + components: + - type: Transform + pos: 61.5,-34.5 + parent: 5350 + - uid: 27358 + components: + - type: Transform + pos: 62.5,-34.5 + parent: 5350 + - uid: 27359 + components: + - type: Transform + pos: 50.5,-36.5 + parent: 5350 + - uid: 27360 + components: + - type: Transform + pos: 51.5,-36.5 + parent: 5350 + - uid: 27362 + components: + - type: Transform + pos: 53.5,-36.5 + parent: 5350 + - uid: 27363 + components: + - type: Transform + pos: 54.5,-36.5 + parent: 5350 + - uid: 27364 + components: + - type: Transform + pos: 55.5,-36.5 + parent: 5350 + - uid: 27366 + components: + - type: Transform + pos: 57.5,-36.5 + parent: 5350 + - uid: 27367 + components: + - type: Transform + pos: 58.5,-36.5 + parent: 5350 + - uid: 27368 + components: + - type: Transform + pos: 59.5,-36.5 + parent: 5350 + - uid: 27369 + components: + - type: Transform + pos: 79.5,-28.5 + parent: 5350 + - uid: 27370 + components: + - type: Transform + pos: 62.5,-36.5 + parent: 5350 + - uid: 27371 + components: + - type: Transform + pos: 62.5,-37.5 + parent: 5350 + - uid: 27372 + components: + - type: Transform + pos: 62.5,-38.5 + parent: 5350 + - uid: 27374 + components: + - type: Transform + pos: 62.5,-40.5 + parent: 5350 + - uid: 27375 + components: + - type: Transform + pos: 62.5,-41.5 + parent: 5350 + - uid: 27376 + components: + - type: Transform + pos: 62.5,-42.5 + parent: 5350 + - uid: 27378 + components: + - type: Transform + pos: 62.5,-44.5 + parent: 5350 + - uid: 27379 + components: + - type: Transform + pos: 62.5,-45.5 + parent: 5350 + - uid: 27381 + components: + - type: Transform + pos: 62.5,-47.5 + parent: 5350 + - uid: 27382 + components: + - type: Transform + pos: 63.5,-47.5 + parent: 5350 + - uid: 27383 + components: + - type: Transform + pos: 79.5,-39.5 + parent: 5350 + - uid: 27384 + components: + - type: Transform + pos: 65.5,-47.5 + parent: 5350 + - uid: 27385 + components: + - type: Transform + pos: 66.5,-47.5 + parent: 5350 + - uid: 27387 + components: + - type: Transform + pos: 68.5,-47.5 + parent: 5350 + - uid: 27388 + components: + - type: Transform + pos: 69.5,-47.5 + parent: 5350 + - uid: 27390 + components: + - type: Transform + pos: 72.5,-47.5 + parent: 5350 + - uid: 27391 + components: + - type: Transform + pos: 71.5,-47.5 + parent: 5350 + - uid: 27392 + components: + - type: Transform + pos: 73.5,-47.5 + parent: 5350 + - uid: 27393 + components: + - type: Transform + pos: 74.5,-47.5 + parent: 5350 + - uid: 27394 + components: + - type: Transform + pos: 75.5,-47.5 + parent: 5350 + - uid: 27395 + components: + - type: Transform + pos: 76.5,-47.5 + parent: 5350 + - uid: 27396 + components: + - type: Transform + pos: 77.5,-47.5 + parent: 5350 + - uid: 27398 + components: + - type: Transform + pos: 79.5,-47.5 + parent: 5350 + - uid: 27399 + components: + - type: Transform + pos: 80.5,-47.5 + parent: 5350 + - uid: 27400 + components: + - type: Transform + pos: 80.5,-31.5 + parent: 5350 + - uid: 27401 + components: + - type: Transform + pos: 80.5,-30.5 + parent: 5350 + - uid: 27402 + components: + - type: Transform + pos: 80.5,-29.5 + parent: 5350 + - uid: 27404 + components: + - type: Transform + pos: 80.5,-46.5 + parent: 5350 + - uid: 27406 + components: + - type: Transform + pos: 80.5,-43.5 + parent: 5350 + - uid: 27407 + components: + - type: Transform + pos: 80.5,-45.5 + parent: 5350 + - uid: 27408 + components: + - type: Transform + pos: 80.5,-42.5 + parent: 5350 + - uid: 27409 + components: + - type: Transform + pos: 80.5,-41.5 + parent: 5350 + - uid: 27410 + components: + - type: Transform + pos: 80.5,-40.5 + parent: 5350 + - uid: 27412 + components: + - type: Transform + pos: 80.5,-38.5 + parent: 5350 + - uid: 27413 + components: + - type: Transform + pos: 80.5,-37.5 + parent: 5350 + - uid: 27414 + components: + - type: Transform + pos: 80.5,-36.5 + parent: 5350 + - uid: 27415 + components: + - type: Transform + pos: 80.5,-35.5 + parent: 5350 + - uid: 27416 + components: + - type: Transform + pos: 80.5,-34.5 + parent: 5350 + - uid: 27418 + components: + - type: Transform + pos: 80.5,-32.5 + parent: 5350 + - uid: 27419 + components: + - type: Transform + pos: 78.5,-28.5 + parent: 5350 + - uid: 27420 + components: + - type: Transform + pos: 77.5,-28.5 + parent: 5350 + - uid: 27421 + components: + - type: Transform + pos: 79.5,-26.5 + parent: 5350 + - uid: 27422 + components: + - type: Transform + pos: 79.5,-44.5 + parent: 5350 + - uid: 27441 + components: + - type: Transform + pos: 79.5,-33.5 + parent: 5350 + - uid: 27460 + components: + - type: Transform + pos: 79.5,-36.5 + parent: 5350 + - uid: 27470 + components: + - type: Transform + pos: 78.5,-46.5 + parent: 5350 + - uid: 27471 + components: + - type: Transform + pos: 75.5,-46.5 + parent: 5350 + - uid: 27472 + components: + - type: Transform + pos: 70.5,-46.5 + parent: 5350 + - uid: 27473 + components: + - type: Transform + pos: 67.5,-46.5 + parent: 5350 + - uid: 27474 + components: + - type: Transform + pos: 64.5,-46.5 + parent: 5350 + - uid: 27475 + components: + - type: Transform + pos: 63.5,-43.5 + parent: 5350 + - uid: 27476 + components: + - type: Transform + pos: 63.5,-39.5 + parent: 5350 + - uid: 27477 + components: + - type: Transform + pos: 63.5,-35.5 + parent: 5350 - proto: GrilleBroken entities: - uid: 2073 @@ -115575,6 +117622,161 @@ entities: rot: -1.5707963267948966 rad pos: 41.5,60.5 parent: 5350 + - uid: 27288 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 60.5,-47.5 + parent: 5350 + - uid: 27290 + components: + - type: Transform + pos: 60.5,-38.5 + parent: 5350 + - uid: 27296 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 74.5,-49.5 + parent: 5350 + - uid: 27300 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 79.5,-49.5 + parent: 5350 + - uid: 27305 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 82.5,-44.5 + parent: 5350 + - uid: 27312 + components: + - type: Transform + pos: 82.5,-36.5 + parent: 5350 + - uid: 27318 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 80.5,-28.5 + parent: 5350 + - uid: 27321 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 80.5,-26.5 + parent: 5350 + - uid: 27327 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 80.5,-39.5 + parent: 5350 + - uid: 27334 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 67.5,-47.5 + parent: 5350 + - uid: 27338 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 56.5,-34.5 + parent: 5350 + - uid: 27343 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 62.5,-43.5 + parent: 5350 + - uid: 27349 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 52.5,-36.5 + parent: 5350 + - uid: 27352 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 56.5,-36.5 + parent: 5350 + - uid: 27354 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 53.5,-34.5 + parent: 5350 + - uid: 27361 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 58.5,-34.5 + parent: 5350 + - uid: 27365 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 82.5,-29.5 + parent: 5350 + - uid: 27373 + components: + - type: Transform + pos: 62.5,-46.5 + parent: 5350 + - uid: 27377 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 70.5,-47.5 + parent: 5350 + - uid: 27380 + components: + - type: Transform + pos: 80.5,-44.5 + parent: 5350 + - uid: 27386 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 80.5,-33.5 + parent: 5350 + - uid: 27389 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 78.5,-47.5 + parent: 5350 + - uid: 27397 + components: + - type: Transform + pos: 60.5,-43.5 + parent: 5350 + - uid: 27403 + components: + - type: Transform + pos: 82.5,-40.5 + parent: 5350 + - uid: 27405 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 71.5,-49.5 + parent: 5350 + - uid: 27411 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 65.5,-49.5 + parent: 5350 + - uid: 27417 + components: + - type: Transform + pos: 62.5,-39.5 + parent: 5350 - proto: GroundCannabis entities: - uid: 24640 @@ -115757,6 +117959,26 @@ entities: - type: Transform pos: 29.518621,-60.391666 parent: 5350 +- proto: HeatExchanger + entities: + - uid: 27166 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 72.5,-40.5 + parent: 5350 + - uid: 27167 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 72.5,-41.5 + parent: 5350 + - uid: 27168 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 72.5,-42.5 + parent: 5350 - proto: HighSecCommandLocked entities: - uid: 1668 @@ -115800,6 +118022,12 @@ entities: - type: Transform pos: -34.462692,34.496433 parent: 5350 + - uid: 27051 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 72.83539,-31.5 + parent: 5350 - proto: HospitalCurtainsOpen entities: - uid: 7215 @@ -116304,6 +118532,11 @@ entities: - type: Transform pos: 100.5,10.5 parent: 5350 + - uid: 27015 + components: + - type: Transform + pos: 72.5,-28.5 + parent: 5350 - proto: IntercomMedical entities: - uid: 14165 @@ -116985,6 +119218,28 @@ entities: - Pressed: Toggle 14794: - Pressed: Toggle +- proto: LockerAtmospherics + entities: + - uid: 27084 + components: + - type: Transform + pos: 73.5,-29.5 + parent: 5350 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 27085 + - 27091 + - 27097 + - 27098 + - 27099 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null - proto: LockerAtmosphericsFilled entities: - uid: 9033 @@ -119628,6 +121883,11 @@ entities: - type: Transform pos: 41.5,31.5 parent: 5350 + - uid: 27088 + components: + - type: Transform + pos: 76.5,-34.5 + parent: 5350 - proto: NitrogenTankFilled entities: - uid: 15569 @@ -119640,6 +121900,13 @@ entities: - type: Transform pos: -15.399836,-58.48665 parent: 5350 + - uid: 27085 + components: + - type: Transform + parent: 27084 + - type: Physics + canCollide: False + - type: InsideEntityStorage - proto: NitrousOxideCanister entities: - uid: 11825 @@ -119827,6 +122094,11 @@ entities: - type: Transform pos: 55.5,24.5 parent: 5350 + - uid: 27087 + components: + - type: Transform + pos: 76.5,-33.5 + parent: 5350 - proto: OxygenTankFilled entities: - uid: 1305 @@ -119854,6 +122126,13 @@ entities: - type: Transform pos: -43.374786,23.584633 parent: 5350 + - uid: 27099 + components: + - type: Transform + parent: 27084 + - type: Physics + canCollide: False + - type: InsideEntityStorage - proto: PaintingAmogusTriptych entities: - uid: 24635 @@ -120320,11 +122599,6 @@ entities: - type: Transform pos: -42.7706,23.635101 parent: 5350 - - uid: 11275 - components: - - type: Transform - pos: 67.42234,-30.577332 - parent: 5350 - uid: 11812 components: - type: Transform @@ -120600,10 +122874,15 @@ entities: - type: Transform pos: 47.5,20.5 parent: 5350 - - uid: 11598 + - uid: 11166 components: - type: Transform - pos: 69.5,-15.5 + pos: 69.5,-14.5 + parent: 5350 + - uid: 27089 + components: + - type: Transform + pos: 76.5,-35.5 parent: 5350 - proto: PlasmaReinforcedWindowDirectional entities: @@ -122157,6 +124436,11 @@ entities: - type: Transform pos: 52.5,-3.5 parent: 5350 + - uid: 27077 + components: + - type: Transform + pos: 73.5,-31.5 + parent: 5350 - proto: PowerCellSmall entities: - uid: 22275 @@ -123112,11 +125396,23 @@ entities: parent: 5350 - type: ApcPowerReceiver powerLoad: 0 + - uid: 10928 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 65.5,-8.5 + parent: 5350 - uid: 11029 components: - type: Transform pos: 35.5,-18.5 parent: 5350 + - uid: 11256 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 63.5,-22.5 + parent: 5350 - uid: 11506 components: - type: Transform @@ -123124,6 +125420,12 @@ entities: parent: 5350 - type: ApcPowerReceiver powerLoad: 0 + - uid: 11728 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 65.5,-16.5 + parent: 5350 - uid: 12036 components: - type: Transform @@ -123171,22 +125473,6 @@ entities: parent: 5350 - type: ApcPowerReceiver powerLoad: 0 - - uid: 12043 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 65.5,-9.5 - parent: 5350 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 12044 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 65.5,-17.5 - parent: 5350 - - type: ApcPowerReceiver - powerLoad: 0 - uid: 12045 components: - type: Transform @@ -123203,14 +125489,6 @@ entities: parent: 5350 - type: ApcPowerReceiver powerLoad: 0 - - uid: 12047 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 63.5,-22.5 - parent: 5350 - - type: ApcPowerReceiver - powerLoad: 0 - uid: 12048 components: - type: Transform @@ -124741,8 +127019,42 @@ entities: rot: -1.5707963267948966 rad pos: -25.5,-23.5 parent: 5350 + - uid: 27143 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 66.5,-27.5 + parent: 5350 + - uid: 27144 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 66.5,-35.5 + parent: 5350 + - uid: 27145 + components: + - type: Transform + pos: 73.5,-29.5 + parent: 5350 + - uid: 27146 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 76.5,-37.5 + parent: 5350 + - uid: 27147 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 76.5,-33.5 + parent: 5350 - proto: PoweredlightExterior entities: + - uid: 11238 + components: + - type: Transform + pos: 76.5,-43.5 + parent: 5350 - uid: 26352 components: - type: Transform @@ -124819,6 +127131,12 @@ entities: - type: Transform pos: 76.5,1.5 parent: 5350 + - uid: 27478 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 72.5,-24.5 + parent: 5350 - proto: PoweredlightSodium entities: - uid: 23878 @@ -125166,6 +127484,12 @@ entities: parent: 5350 - type: ApcPowerReceiver powerLoad: 0 + - uid: 9029 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 69.5,-10.5 + parent: 5350 - uid: 9969 components: - type: Transform @@ -125304,13 +127628,18 @@ entities: parent: 5350 - type: ApcPowerReceiver powerLoad: 0 - - uid: 11286 + - uid: 10970 components: - type: Transform - pos: 65.5,-24.5 + rot: -1.5707963267948966 rad + pos: 69.5,-6.5 + parent: 5350 + - uid: 11303 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 69.5,-14.5 parent: 5350 - - type: ApcPowerReceiver - powerLoad: 0 - uid: 11503 components: - type: Transform @@ -125359,38 +127688,12 @@ entities: parent: 5350 - type: ApcPowerReceiver powerLoad: 0 - - uid: 11569 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 69.5,-19.5 - parent: 5350 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 11570 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 69.5,-15.5 - parent: 5350 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 11571 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 69.5,-11.5 - parent: 5350 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 11572 + - uid: 11618 components: - type: Transform rot: -1.5707963267948966 rad - pos: 69.5,-7.5 + pos: 69.5,-18.5 parent: 5350 - - type: ApcPowerReceiver - powerLoad: 0 - uid: 12024 components: - type: Transform @@ -126458,6 +128761,35 @@ entities: parent: 5350 - type: ApcPowerReceiver powerLoad: 0 + - uid: 26986 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 69.5,-27.5 + parent: 5350 + - uid: 27125 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 66.5,-42.5 + parent: 5350 + - uid: 27126 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 69.5,-42.5 + parent: 5350 + - uid: 27153 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 76.5,-41.5 + parent: 5350 + - uid: 27249 + components: + - type: Transform + pos: 69.5,-23.5 + parent: 5350 - proto: Protolathe entities: - uid: 9805 @@ -127161,6 +129493,12 @@ entities: - type: Transform pos: -64.48487,-42.241108 parent: 5350 + - uid: 27103 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 73.5,-31 + parent: 5350 - proto: Railing entities: - uid: 2182 @@ -127298,6 +129636,48 @@ entities: - type: Transform pos: -5.5,-74.5 parent: 5350 + - uid: 26987 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 67.5,-31.5 + parent: 5350 + - uid: 26988 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 68.5,-32.5 + parent: 5350 + - uid: 26989 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 69.5,-32.5 + parent: 5350 + - uid: 26990 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 70.5,-32.5 + parent: 5350 + - uid: 26991 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 71.5,-32.5 + parent: 5350 + - uid: 26992 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 72.5,-32.5 + parent: 5350 + - uid: 27007 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 73.5,-32.5 + parent: 5350 - proto: RailingCorner entities: - uid: 11026 @@ -127353,6 +129733,23 @@ entities: rot: 1.5707963267948966 rad pos: -66.5,-39.5 parent: 5350 + - uid: 26993 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 67.5,-32.5 + parent: 5350 + - uid: 27006 + components: + - type: Transform + pos: 74.5,-32.5 + parent: 5350 + - uid: 27012 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 67.5,-30.5 + parent: 5350 - proto: RandomArcade entities: - uid: 13625 @@ -128271,6 +130668,12 @@ entities: - type: Transform pos: 43.631737,8.657005 parent: 5350 + - uid: 27062 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 69.35516,-31.5 + parent: 5350 - proto: ReagentContainerFlour entities: - uid: 2240 @@ -128300,6 +130703,21 @@ entities: parent: 5350 - proto: ReinforcedPlasmaWindow entities: + - uid: 10943 + components: + - type: Transform + pos: 66.5,-17.5 + parent: 5350 + - uid: 11112 + components: + - type: Transform + pos: 66.5,-10.5 + parent: 5350 + - uid: 11113 + components: + - type: Transform + pos: 66.5,-9.5 + parent: 5350 - uid: 11288 components: - type: Transform @@ -128345,65 +130763,70 @@ entities: - type: Transform pos: 61.5,-27.5 parent: 5350 - - uid: 11297 + - uid: 11298 components: - type: Transform - pos: 66.5,-20.5 + pos: 66.5,-11.5 parent: 5350 - - uid: 11298 + - uid: 11312 + components: + - type: Transform + pos: 66.5,-5.5 + parent: 5350 + - uid: 11319 components: - type: Transform pos: 66.5,-19.5 parent: 5350 - - uid: 11299 + - uid: 11320 components: - type: Transform pos: 66.5,-18.5 parent: 5350 - - uid: 11300 + - uid: 11569 components: - type: Transform - pos: 66.5,-16.5 + pos: 66.5,-6.5 parent: 5350 - - uid: 11301 + - uid: 11634 components: - type: Transform - pos: 66.5,-15.5 + pos: 66.5,-7.5 parent: 5350 - - uid: 11302 + - uid: 11726 components: - type: Transform - pos: 66.5,-14.5 + pos: 66.5,-13.5 parent: 5350 - - uid: 11303 + - uid: 11727 components: - type: Transform - pos: 66.5,-12.5 + pos: 66.5,-14.5 parent: 5350 - - uid: 11304 + - uid: 11729 components: - type: Transform - pos: 66.5,-11.5 + pos: 66.5,-15.5 parent: 5350 - - uid: 11305 + - uid: 27131 components: - type: Transform - pos: 66.5,-10.5 + pos: 66.5,-39.5 parent: 5350 - - uid: 11306 + - uid: 27132 components: - type: Transform - pos: 66.5,-8.5 + pos: 67.5,-39.5 parent: 5350 - - uid: 11307 + - uid: 27133 components: - type: Transform - pos: 66.5,-7.5 + pos: 68.5,-39.5 parent: 5350 - - uid: 11308 + - uid: 27134 components: - type: Transform - pos: 66.5,-6.5 + pos: 69.5,-39.5 parent: 5350 - proto: ReinforcedWindow entities: @@ -130699,140 +133122,135 @@ entities: - type: Transform pos: 1.5,46.5 parent: 5350 - - uid: 10815 - components: - - type: Transform - pos: 64.5,-6.5 - parent: 5350 - - uid: 10816 + - uid: 10838 components: - type: Transform - pos: 64.5,-7.5 + pos: 64.5,-15.5 parent: 5350 - - uid: 10817 + - uid: 10839 components: - type: Transform - pos: 64.5,-8.5 + pos: 64.5,-9.5 parent: 5350 - - uid: 10818 + - uid: 10845 components: - type: Transform - pos: 64.5,-9.5 + pos: 59.5,-25.5 parent: 5350 - - uid: 10820 + - uid: 10846 components: - type: Transform - pos: 64.5,-10.5 + pos: 58.5,-25.5 parent: 5350 - - uid: 10821 + - uid: 10847 components: - type: Transform - pos: 64.5,-11.5 + pos: 57.5,-25.5 parent: 5350 - - uid: 10822 + - uid: 10848 components: - type: Transform - pos: 64.5,-12.5 + pos: 56.5,-25.5 parent: 5350 - - uid: 10823 + - uid: 10849 components: - type: Transform - pos: 64.5,-13.5 + pos: 55.5,-25.5 parent: 5350 - - uid: 10824 + - uid: 10850 components: - type: Transform - pos: 64.5,-14.5 + pos: 54.5,-25.5 parent: 5350 - - uid: 10825 + - uid: 10851 components: - type: Transform - pos: 64.5,-15.5 + pos: 53.5,-25.5 parent: 5350 - - uid: 10826 + - uid: 10852 components: - type: Transform - pos: 64.5,-16.5 + pos: 52.5,-25.5 parent: 5350 - - uid: 10827 + - uid: 10853 components: - type: Transform - pos: 64.5,-17.5 + pos: 51.5,-25.5 parent: 5350 - - uid: 10828 + - uid: 10854 components: - type: Transform - pos: 64.5,-18.5 + pos: 50.5,-25.5 parent: 5350 - - uid: 10829 + - uid: 11097 components: - type: Transform - pos: 64.5,-19.5 + pos: 64.5,-11.5 parent: 5350 - - uid: 10830 + - uid: 11098 components: - type: Transform - pos: 64.5,-20.5 + pos: 64.5,-10.5 parent: 5350 - - uid: 10843 + - uid: 11099 components: - type: Transform - pos: 61.5,-25.5 + pos: 64.5,-12.5 parent: 5350 - - uid: 10844 + - uid: 11100 components: - type: Transform - pos: 60.5,-25.5 + pos: 64.5,-13.5 parent: 5350 - - uid: 10845 + - uid: 11101 components: - type: Transform - pos: 59.5,-25.5 + pos: 64.5,-14.5 parent: 5350 - - uid: 10846 + - uid: 11102 components: - type: Transform - pos: 58.5,-25.5 + pos: 64.5,-16.5 parent: 5350 - - uid: 10847 + - uid: 11237 components: - type: Transform - pos: 57.5,-25.5 + pos: 64.5,-17.5 parent: 5350 - - uid: 10848 + - uid: 11239 components: - type: Transform - pos: 56.5,-25.5 + pos: 63.5,-25.5 parent: 5350 - - uid: 10849 + - uid: 11240 components: - type: Transform - pos: 55.5,-25.5 + pos: 64.5,-5.5 parent: 5350 - - uid: 10850 + - uid: 11265 components: - type: Transform - pos: 54.5,-25.5 + pos: 64.5,-19.5 parent: 5350 - - uid: 10851 + - uid: 11267 components: - type: Transform - pos: 53.5,-25.5 + pos: 61.5,-25.5 parent: 5350 - - uid: 10852 + - uid: 11284 components: - type: Transform - pos: 52.5,-25.5 + pos: 64.5,-7.5 parent: 5350 - - uid: 10853 + - uid: 11285 components: - type: Transform - pos: 51.5,-25.5 + pos: 64.5,-6.5 parent: 5350 - - uid: 10854 + - uid: 11286 components: - type: Transform - pos: 50.5,-25.5 + pos: 64.5,-8.5 parent: 5350 - uid: 11378 components: @@ -130844,6 +133262,21 @@ entities: - type: Transform pos: 43.5,-29.5 parent: 5350 + - uid: 11694 + components: + - type: Transform + pos: 64.5,-25.5 + parent: 5350 + - uid: 11734 + components: + - type: Transform + pos: 60.5,-25.5 + parent: 5350 + - uid: 11753 + components: + - type: Transform + pos: 70.5,-28.5 + parent: 5350 - uid: 12345 components: - type: Transform @@ -132044,11 +134477,66 @@ entities: - type: Transform pos: 104.5,10.5 parent: 5350 + - uid: 26789 + components: + - type: Transform + pos: 64.5,-21.5 + parent: 5350 - uid: 26871 components: - type: Transform pos: 32.5,-8.5 parent: 5350 + - uid: 27037 + components: + - type: Transform + pos: 74.5,-29.5 + parent: 5350 + - uid: 27038 + components: + - type: Transform + pos: 74.5,-30.5 + parent: 5350 + - uid: 27149 + components: + - type: Transform + pos: 72.5,-39.5 + parent: 5350 + - uid: 27150 + components: + - type: Transform + pos: 71.5,-39.5 + parent: 5350 + - uid: 27154 + components: + - type: Transform + pos: 73.5,-39.5 + parent: 5350 + - uid: 27155 + components: + - type: Transform + pos: 74.5,-39.5 + parent: 5350 + - uid: 27257 + components: + - type: Transform + pos: 65.5,-29.5 + parent: 5350 + - uid: 27258 + components: + - type: Transform + pos: 65.5,-30.5 + parent: 5350 + - uid: 27271 + components: + - type: Transform + pos: 66.5,-22.5 + parent: 5350 + - uid: 27272 + components: + - type: Transform + pos: 64.5,-18.5 + parent: 5350 - proto: RemoteSignaller entities: - uid: 1290 @@ -132467,6 +134955,11 @@ entities: - type: Transform pos: 108.52579,-0.4561236 parent: 5350 + - uid: 27047 + components: + - type: Transform + pos: 70.58096,-31.5 + parent: 5350 - proto: SheetPlasma entities: - uid: 9204 @@ -132627,11 +135120,6 @@ entities: - type: Transform pos: 42.547264,-3.4866009 parent: 5350 - - uid: 11273 - components: - - type: Transform - pos: 71.51609,-32.499207 - parent: 5350 - uid: 12277 components: - type: Transform @@ -133533,25 +136021,26 @@ entities: - Pressed: Toggle 10483: - Pressed: Toggle - - uid: 12021 + - uid: 11640 components: - type: Transform - pos: 45.5,-29.5 + rot: -1.5707963267948966 rad + pos: 64.5,-4.5 parent: 5350 - type: DeviceLinkSource linkedPorts: - 11487: + 11015: - Pressed: Toggle - 11486: - - Pressed: Toggle - - uid: 12022 + - uid: 12021 components: - type: Transform - pos: 64.5,-5.5 + pos: 45.5,-29.5 parent: 5350 - type: DeviceLinkSource linkedPorts: - 10293: + 11487: + - Pressed: Toggle + 11486: - Pressed: Toggle - uid: 15183 components: @@ -134492,6 +136981,11 @@ entities: parent: 5350 - proto: SignEngine entities: + - uid: 11741 + components: + - type: Transform + pos: 65.5,-22.5 + parent: 5350 - uid: 23813 components: - type: Transform @@ -134565,6 +137059,23 @@ entities: - type: Transform pos: 45.5,-35.5 parent: 5350 + - uid: 27262 + components: + - type: Transform + pos: 65.5,-39.5 + parent: 5350 +- proto: SignFlammableMed + entities: + - uid: 27094 + components: + - type: Transform + pos: 75.5,-31.5 + parent: 5350 + - uid: 27198 + components: + - type: Transform + pos: 77.5,-36.5 + parent: 5350 - proto: SignGravity entities: - uid: 14539 @@ -135038,6 +137549,11 @@ entities: - type: Transform pos: -0.5,-48.5 parent: 5350 + - uid: 27093 + components: + - type: Transform + pos: 65.5,-27.5 + parent: 5350 - proto: SignSpace entities: - uid: 5419 @@ -135075,15 +137591,15 @@ entities: - type: Transform pos: -43.5,17.5 parent: 5350 - - uid: 11287 + - uid: 11490 components: - type: Transform - pos: 65.5,-25.5 + pos: 47.5,-33.5 parent: 5350 - - uid: 11490 + - uid: 11755 components: - type: Transform - pos: 47.5,-33.5 + pos: 70.5,-22.5 parent: 5350 - uid: 18937 components: @@ -135140,6 +137656,11 @@ entities: - type: Transform pos: 92.5,6.5 parent: 5350 + - uid: 27263 + components: + - type: Transform + pos: 75.5,-40.5 + parent: 5350 - proto: SignSurgery entities: - uid: 15191 @@ -135530,6 +138051,13 @@ entities: - type: Transform pos: 55.5,30.5 parent: 5350 + - uid: 27014 + components: + - type: MetaData + name: TEG SMES + - type: Transform + pos: 70.5,-26.5 + parent: 5350 - proto: SmokingPipeFilledCannabis entities: - uid: 24641 @@ -138355,15 +140883,15 @@ entities: parent: 5350 - proto: StorageCanister entities: - - uid: 11515 + - uid: 10293 components: - type: Transform - pos: 45.5,-26.5 + pos: 69.5,-10.5 parent: 5350 - - uid: 11627 + - uid: 11515 components: - type: Transform - pos: 69.5,-11.5 + pos: 45.5,-26.5 parent: 5350 - uid: 11819 components: @@ -138583,6 +141111,13 @@ entities: - type: Transform pos: 104.5,13.5 parent: 5350 + - uid: 27141 + components: + - type: MetaData + name: TEG Substation + - type: Transform + pos: 70.5,-25.5 + parent: 5350 - proto: SuitStorageCaptain entities: - uid: 1505 @@ -139134,6 +141669,18 @@ entities: id: Tech Vault High Sec - proto: SurveillanceCameraEngineering entities: + - uid: 9027 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 69.5,-10.5 + parent: 5350 + - uid: 11055 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 69.5,-14.5 + parent: 5350 - uid: 11516 components: - type: Transform @@ -139145,6 +141692,26 @@ entities: - SurveillanceCameraEngineering nameSet: True id: Thruster + - uid: 11571 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 69.5,-6.5 + parent: 5350 + - uid: 11620 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 69.5,-18.5 + parent: 5350 + - uid: 11751 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 72.5,-22.5 + parent: 5350 + - type: SurveillanceCamera + id: Atmos TEG Exterior north - uid: 12527 components: - type: Transform @@ -139393,61 +141960,6 @@ entities: - SurveillanceCameraEngineering nameSet: True id: Atmos Tank Nitro - - uid: 26785 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 69.5,-19.5 - parent: 5350 - - type: SurveillanceCamera - setupAvailableNetworks: - - SurveillanceCameraEngineering - nameSet: True - id: Atmos Tank Co2 - - uid: 26786 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 69.5,-15.5 - parent: 5350 - - type: SurveillanceCamera - setupAvailableNetworks: - - SurveillanceCameraEngineering - nameSet: True - id: Atmos Tank Plasma - - uid: 26787 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 69.5,-11.5 - parent: 5350 - - type: SurveillanceCamera - setupAvailableNetworks: - - SurveillanceCameraEngineering - nameSet: True - id: Atmos Tank Waste - - uid: 26788 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 69.5,-7.5 - parent: 5350 - - type: SurveillanceCamera - setupAvailableNetworks: - - SurveillanceCameraEngineering - nameSet: True - id: Atmos Tank Mixer - - uid: 26789 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 68.5,-23.5 - parent: 5350 - - type: SurveillanceCamera - setupAvailableNetworks: - - SurveillanceCameraEngineering - nameSet: True - id: Atmos Exterior - uid: 26792 components: - type: Transform @@ -139512,6 +142024,40 @@ entities: - SurveillanceCameraEngineering nameSet: True id: Solars SW + - uid: 27139 + components: + - type: MetaData + name: camera + - type: Transform + rot: -1.5707963267948966 rad + pos: 66.5,-26.5 + parent: 5350 + - type: SurveillanceCamera + id: Atmos TEG Room Entrance + - uid: 27265 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 73.5,-31.5 + parent: 5350 + - type: SurveillanceCamera + id: Atmos TEG Room Desk + - uid: 27267 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 66.5,-38.5 + parent: 5350 + - type: SurveillanceCamera + id: Atmos TEG Room Chamber + - uid: 27269 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 74.5,-42.5 + parent: 5350 + - type: SurveillanceCamera + id: Atmos TEG Exterior south - proto: SurveillanceCameraGeneral entities: - uid: 23189 @@ -142622,6 +145168,33 @@ entities: - type: Transform pos: 26.5,0.5 parent: 5350 + - uid: 27040 + components: + - type: Transform + pos: 73.5,-30.5 + parent: 5350 + - uid: 27041 + components: + - type: Transform + pos: 73.5,-31.5 + parent: 5350 + - uid: 27042 + components: + - type: Transform + pos: 72.5,-31.5 + parent: 5350 + - uid: 27044 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 70.5,-31.5 + parent: 5350 + - uid: 27045 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 69.5,-31.5 + parent: 5350 - proto: TableCarpet entities: - uid: 1022 @@ -144473,26 +147046,26 @@ entities: parent: 5350 - proto: TegCenter entities: - - uid: 11276 + - uid: 26997 components: - type: Transform rot: -1.5707963267948966 rad - pos: 69.5,-34.5 + pos: 70.5,-35.5 parent: 5350 - proto: TegCirculator entities: - - uid: 11277 + - uid: 26998 components: - type: Transform - pos: 70.5,-34.5 + rot: 3.141592653589793 rad + pos: 69.5,-35.5 parent: 5350 - type: PointLight color: '#FF3300FF' - - uid: 11280 + - uid: 26999 components: - type: Transform - rot: 3.141592653589793 rad - pos: 68.5,-34.5 + pos: 71.5,-35.5 parent: 5350 - type: PointLight color: '#FF3300FF' @@ -145302,6 +147875,12 @@ entities: - type: Transform pos: 52.498978,0.33205032 parent: 5350 + - uid: 27102 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 72.38718,-31.5 + parent: 5350 - proto: TubaInstrument entities: - uid: 3197 @@ -145460,6 +148039,25 @@ entities: - Left: Forward - Right: Reverse - Middle: Off + - uid: 27274 + components: + - type: MetaData + desc: 'Opens and closes the blast doors of the combustion chamber. Left: one Door - Right: both Doors - Middle: closed.' + name: blast doors + - type: Transform + pos: 70.5,-38.5 + parent: 5350 + - type: TwoWayLever + nextSignalLeft: True + - type: DeviceLinkSource + linkedPorts: + 27136: + - Middle: Close + - Left: Open + - Right: Open + 27135: + - Middle: Close + - Left: Open - proto: UnfinishedMachineFrame entities: - uid: 18441 @@ -147889,6 +150487,16 @@ entities: - type: Transform pos: -57.5,-6.5 parent: 5350 + - uid: 5314 + components: + - type: Transform + pos: 66.5,-20.5 + parent: 5350 + - uid: 5315 + components: + - type: Transform + pos: 67.5,-20.5 + parent: 5350 - uid: 5328 components: - type: Transform @@ -149994,6 +152602,12 @@ entities: - type: Transform pos: 58.5,-3.5 parent: 5350 + - uid: 9069 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 65.5,-38.5 + parent: 5350 - uid: 9071 components: - type: Transform @@ -150527,67 +153141,35 @@ entities: - uid: 10814 components: - type: Transform - pos: 64.5,-5.5 - parent: 5350 - - uid: 10831 - components: - - type: Transform - pos: 64.5,-21.5 + pos: 66.5,-12.5 parent: 5350 - - uid: 10832 + - uid: 10818 components: - type: Transform - pos: 64.5,-22.5 + rot: -1.5707963267948966 rad + pos: 69.5,-8.5 parent: 5350 - uid: 10833 components: - type: Transform - pos: 64.5,-23.5 - parent: 5350 - - uid: 10834 - components: - - type: Transform - pos: 65.5,-23.5 - parent: 5350 - - uid: 10835 - components: - - type: Transform - pos: 66.5,-23.5 - parent: 5350 - - uid: 10836 - components: - - type: Transform - pos: 67.5,-23.5 + pos: 68.5,-28.5 parent: 5350 - uid: 10837 components: - type: Transform - pos: 67.5,-25.5 - parent: 5350 - - uid: 10838 - components: - - type: Transform - pos: 66.5,-25.5 - parent: 5350 - - uid: 10839 - components: - - type: Transform - pos: 65.5,-25.5 - parent: 5350 - - uid: 10840 - components: - - type: Transform - pos: 64.5,-25.5 + pos: 71.5,-25.5 parent: 5350 - uid: 10841 components: - type: Transform - pos: 63.5,-25.5 + rot: -1.5707963267948966 rad + pos: 62.5,-25.5 parent: 5350 - uid: 10842 components: - type: Transform - pos: 62.5,-25.5 + rot: -1.5707963267948966 rad + pos: 64.5,-20.5 parent: 5350 - uid: 10855 components: @@ -150814,195 +153396,201 @@ entities: - type: Transform pos: 58.5,-27.5 parent: 5350 - - uid: 10908 - components: - - type: Transform - pos: 66.5,-21.5 - parent: 5350 - - uid: 10909 + - uid: 10914 components: - type: Transform - pos: 67.5,-21.5 + pos: 70.5,-19.5 parent: 5350 - - uid: 10910 + - uid: 10915 components: - type: Transform - pos: 68.5,-21.5 + pos: 70.5,-18.5 parent: 5350 - - uid: 10911 + - uid: 10917 components: - type: Transform - pos: 69.5,-21.5 + pos: 70.5,-16.5 parent: 5350 - - uid: 10912 + - uid: 10918 components: - type: Transform - pos: 70.5,-21.5 + pos: 70.5,-15.5 parent: 5350 - - uid: 10913 + - uid: 10919 components: - type: Transform - pos: 70.5,-20.5 + pos: 70.5,-14.5 parent: 5350 - - uid: 10914 + - uid: 10921 components: - type: Transform - pos: 70.5,-19.5 + pos: 70.5,-12.5 parent: 5350 - - uid: 10915 + - uid: 10922 components: - type: Transform - pos: 70.5,-18.5 + pos: 70.5,-11.5 parent: 5350 - - uid: 10916 + - uid: 10923 components: - type: Transform - pos: 70.5,-17.5 + pos: 70.5,-10.5 parent: 5350 - - uid: 10917 + - uid: 10925 components: - type: Transform - pos: 70.5,-16.5 + pos: 70.5,-8.5 parent: 5350 - - uid: 10918 + - uid: 10927 components: - type: Transform - pos: 70.5,-15.5 + pos: 70.5,-6.5 parent: 5350 - - uid: 10919 + - uid: 10966 components: - type: Transform - pos: 70.5,-14.5 + pos: 70.5,-17.5 parent: 5350 - - uid: 10920 + - uid: 10969 components: - type: Transform - pos: 70.5,-13.5 + pos: 70.5,-20.5 parent: 5350 - - uid: 10921 + - uid: 10971 components: - type: Transform - pos: 70.5,-12.5 + pos: 69.5,-12.5 parent: 5350 - - uid: 10922 + - uid: 10989 components: - type: Transform - pos: 70.5,-11.5 + pos: 68.5,-12.5 parent: 5350 - - uid: 10923 + - uid: 11054 components: - type: Transform - pos: 70.5,-10.5 + rot: -1.5707963267948966 rad + pos: 67.5,-16.5 parent: 5350 - - uid: 10924 + - uid: 11163 components: - type: Transform - pos: 70.5,-9.5 + pos: 70.5,-13.5 parent: 5350 - - uid: 10925 + - uid: 11172 components: - type: Transform - pos: 70.5,-8.5 + rot: 1.5707963267948966 rad + pos: 67.5,-4.5 parent: 5350 - - uid: 10927 + - uid: 11173 components: - type: Transform - pos: 70.5,-6.5 + rot: -1.5707963267948966 rad + pos: 66.5,-8.5 parent: 5350 - - uid: 10928 + - uid: 11201 components: - type: Transform pos: 70.5,-5.5 parent: 5350 - - uid: 10929 - components: - - type: Transform - pos: 69.5,-5.5 - parent: 5350 - - uid: 10931 + - uid: 11202 components: - type: Transform - pos: 67.5,-5.5 + rot: -1.5707963267948966 rad + pos: 67.5,-8.5 parent: 5350 - - uid: 10932 + - uid: 11204 components: - type: Transform - pos: 66.5,-5.5 + rot: 1.5707963267948966 rad + pos: 69.5,-4.5 parent: 5350 - - uid: 10933 + - uid: 11262 components: - type: Transform - pos: 69.5,-9.5 + pos: 71.5,-28.5 parent: 5350 - - uid: 10934 + - uid: 11264 components: - type: Transform - pos: 68.5,-9.5 + pos: 69.5,-28.5 parent: 5350 - - uid: 10935 + - uid: 11268 components: - type: Transform - pos: 67.5,-9.5 + rot: -1.5707963267948966 rad + pos: 65.5,-28.5 parent: 5350 - - uid: 10936 + - uid: 11273 components: - type: Transform - pos: 66.5,-9.5 + rot: -1.5707963267948966 rad + pos: 65.5,-35.5 parent: 5350 - - uid: 10937 + - uid: 11275 components: - type: Transform - pos: 69.5,-13.5 + rot: -1.5707963267948966 rad + pos: 65.5,-36.5 parent: 5350 - - uid: 10938 + - uid: 11276 components: - type: Transform - pos: 68.5,-13.5 + pos: 64.5,-22.5 parent: 5350 - - uid: 10939 + - uid: 11277 components: - type: Transform - pos: 67.5,-13.5 + rot: -1.5707963267948966 rad + pos: 65.5,-27.5 parent: 5350 - - uid: 10940 + - uid: 11278 components: - type: Transform - pos: 66.5,-13.5 + rot: -1.5707963267948966 rad + pos: 65.5,-26.5 parent: 5350 - - uid: 10941 + - uid: 11283 components: - type: Transform - pos: 69.5,-17.5 + rot: -1.5707963267948966 rad + pos: 68.5,-22.5 parent: 5350 - - uid: 10942 + - uid: 11287 components: - type: Transform - pos: 68.5,-17.5 + pos: 68.5,-25.5 parent: 5350 - - uid: 10943 + - uid: 11299 components: - type: Transform - pos: 67.5,-17.5 + rot: 1.5707963267948966 rad + pos: 70.5,-4.5 parent: 5350 - - uid: 10944 + - uid: 11301 components: - type: Transform - pos: 66.5,-17.5 + rot: -1.5707963267948966 rad + pos: 66.5,-16.5 parent: 5350 - - uid: 11268 + - uid: 11305 components: - type: Transform - pos: 70.5,-29.5 + rot: 1.5707963267948966 rad + pos: 66.5,-4.5 parent: 5350 - - uid: 11269 + - uid: 11342 components: - type: Transform - pos: 68.5,-29.5 + rot: -1.5707963267948966 rad + pos: 68.5,-16.5 parent: 5350 - - uid: 11270 + - uid: 11346 components: - type: Transform - pos: 67.5,-29.5 + rot: -1.5707963267948966 rad + pos: 69.5,-16.5 parent: 5350 - uid: 11370 components: @@ -151124,6 +153712,102 @@ entities: - type: Transform pos: 42.5,-29.5 parent: 5350 + - uid: 11498 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 65.5,-25.5 + parent: 5350 + - uid: 11596 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 68.5,-8.5 + parent: 5350 + - uid: 11597 + components: + - type: Transform + pos: 67.5,-12.5 + parent: 5350 + - uid: 11603 + components: + - type: Transform + pos: 70.5,-9.5 + parent: 5350 + - uid: 11622 + components: + - type: Transform + pos: 69.5,-20.5 + parent: 5350 + - uid: 11627 + components: + - type: Transform + pos: 68.5,-20.5 + parent: 5350 + - uid: 11662 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 71.5,-22.5 + parent: 5350 + - uid: 11697 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 70.5,-22.5 + parent: 5350 + - uid: 11698 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 69.5,-22.5 + parent: 5350 + - uid: 11699 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 65.5,-22.5 + parent: 5350 + - uid: 11735 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 65.5,-37.5 + parent: 5350 + - uid: 11740 + components: + - type: Transform + pos: 68.5,-27.5 + parent: 5350 + - uid: 11750 + components: + - type: Transform + pos: 71.5,-26.5 + parent: 5350 + - uid: 11757 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 65.5,-34.5 + parent: 5350 + - uid: 11764 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 65.5,-33.5 + parent: 5350 + - uid: 11784 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 65.5,-32.5 + parent: 5350 + - uid: 11785 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 65.5,-31.5 + parent: 5350 - uid: 12127 components: - type: Transform @@ -155642,6 +158326,371 @@ entities: - type: Transform pos: -15.5,61.5 parent: 5350 + - uid: 27003 + components: + - type: Transform + pos: 72.5,-28.5 + parent: 5350 + - uid: 27004 + components: + - type: Transform + pos: 73.5,-28.5 + parent: 5350 + - uid: 27005 + components: + - type: Transform + pos: 74.5,-28.5 + parent: 5350 + - uid: 27008 + components: + - type: Transform + pos: 74.5,-31.5 + parent: 5350 + - uid: 27009 + components: + - type: Transform + pos: 75.5,-31.5 + parent: 5350 + - uid: 27010 + components: + - type: Transform + pos: 76.5,-31.5 + parent: 5350 + - uid: 27011 + components: + - type: Transform + pos: 77.5,-31.5 + parent: 5350 + - uid: 27022 + components: + - type: Transform + pos: 77.5,-42.5 + parent: 5350 + - uid: 27023 + components: + - type: Transform + pos: 77.5,-40.5 + parent: 5350 + - uid: 27052 + components: + - type: Transform + pos: 65.5,-39.5 + parent: 5350 + - uid: 27053 + components: + - type: Transform + pos: 65.5,-40.5 + parent: 5350 + - uid: 27054 + components: + - type: Transform + pos: 77.5,-39.5 + parent: 5350 + - uid: 27055 + components: + - type: Transform + pos: 77.5,-38.5 + parent: 5350 + - uid: 27056 + components: + - type: Transform + pos: 77.5,-37.5 + parent: 5350 + - uid: 27057 + components: + - type: Transform + pos: 77.5,-32.5 + parent: 5350 + - uid: 27058 + components: + - type: Transform + pos: 77.5,-34.5 + parent: 5350 + - uid: 27059 + components: + - type: Transform + pos: 77.5,-33.5 + parent: 5350 + - uid: 27060 + components: + - type: Transform + pos: 77.5,-35.5 + parent: 5350 + - uid: 27061 + components: + - type: Transform + pos: 77.5,-36.5 + parent: 5350 + - uid: 27065 + components: + - type: Transform + pos: 65.5,-41.5 + parent: 5350 + - uid: 27066 + components: + - type: Transform + pos: 65.5,-42.5 + parent: 5350 + - uid: 27067 + components: + - type: Transform + pos: 65.5,-43.5 + parent: 5350 + - uid: 27068 + components: + - type: Transform + pos: 66.5,-43.5 + parent: 5350 + - uid: 27072 + components: + - type: Transform + pos: 69.5,-43.5 + parent: 5350 + - uid: 27075 + components: + - type: Transform + pos: 70.5,-43.5 + parent: 5350 + - uid: 27076 + components: + - type: Transform + pos: 77.5,-41.5 + parent: 5350 + - uid: 27119 + components: + - type: Transform + pos: 70.5,-39.5 + parent: 5350 + - uid: 27120 + components: + - type: Transform + pos: 70.5,-40.5 + parent: 5350 + - uid: 27121 + components: + - type: Transform + pos: 70.5,-41.5 + parent: 5350 + - uid: 27122 + components: + - type: Transform + pos: 70.5,-42.5 + parent: 5350 + - uid: 27124 + components: + - type: Transform + pos: 76.5,-42.5 + parent: 5350 + - uid: 27140 + components: + - type: Transform + pos: 75.5,-42.5 + parent: 5350 + - uid: 27148 + components: + - type: Transform + pos: 75.5,-40.5 + parent: 5350 + - uid: 27152 + components: + - type: Transform + pos: 75.5,-39.5 + parent: 5350 + - uid: 27199 + components: + - type: Transform + pos: 71.5,-27.5 + parent: 5350 + - uid: 27200 + components: + - type: Transform + pos: 68.5,-24.5 + parent: 5350 + - uid: 27246 + components: + - type: Transform + pos: 70.5,-24.5 + parent: 5350 + - uid: 27247 + components: + - type: Transform + pos: 69.5,-24.5 + parent: 5350 + - uid: 27250 + components: + - type: Transform + pos: 71.5,-24.5 + parent: 5350 + - uid: 27270 + components: + - type: Transform + pos: 67.5,-22.5 + parent: 5350 + - uid: 27435 + components: + - type: Transform + pos: 79.5,-29.5 + parent: 5350 + - uid: 27436 + components: + - type: Transform + pos: 79.5,-30.5 + parent: 5350 + - uid: 27437 + components: + - type: Transform + pos: 79.5,-31.5 + parent: 5350 + - uid: 27438 + components: + - type: Transform + pos: 79.5,-32.5 + parent: 5350 + - uid: 27439 + components: + - type: Transform + pos: 79.5,-34.5 + parent: 5350 + - uid: 27440 + components: + - type: Transform + pos: 79.5,-35.5 + parent: 5350 + - uid: 27442 + components: + - type: Transform + pos: 79.5,-37.5 + parent: 5350 + - uid: 27443 + components: + - type: Transform + pos: 79.5,-38.5 + parent: 5350 + - uid: 27444 + components: + - type: Transform + pos: 79.5,-40.5 + parent: 5350 + - uid: 27445 + components: + - type: Transform + pos: 79.5,-41.5 + parent: 5350 + - uid: 27446 + components: + - type: Transform + pos: 79.5,-42.5 + parent: 5350 + - uid: 27447 + components: + - type: Transform + pos: 79.5,-43.5 + parent: 5350 + - uid: 27448 + components: + - type: Transform + pos: 79.5,-45.5 + parent: 5350 + - uid: 27449 + components: + - type: Transform + pos: 79.5,-46.5 + parent: 5350 + - uid: 27450 + components: + - type: Transform + pos: 77.5,-46.5 + parent: 5350 + - uid: 27451 + components: + - type: Transform + pos: 76.5,-46.5 + parent: 5350 + - uid: 27452 + components: + - type: Transform + pos: 74.5,-46.5 + parent: 5350 + - uid: 27453 + components: + - type: Transform + pos: 72.5,-46.5 + parent: 5350 + - uid: 27454 + components: + - type: Transform + pos: 73.5,-46.5 + parent: 5350 + - uid: 27455 + components: + - type: Transform + pos: 71.5,-46.5 + parent: 5350 + - uid: 27456 + components: + - type: Transform + pos: 69.5,-46.5 + parent: 5350 + - uid: 27457 + components: + - type: Transform + pos: 68.5,-46.5 + parent: 5350 + - uid: 27458 + components: + - type: Transform + pos: 66.5,-46.5 + parent: 5350 + - uid: 27459 + components: + - type: Transform + pos: 65.5,-46.5 + parent: 5350 + - uid: 27461 + components: + - type: Transform + pos: 63.5,-46.5 + parent: 5350 + - uid: 27462 + components: + - type: Transform + pos: 63.5,-45.5 + parent: 5350 + - uid: 27463 + components: + - type: Transform + pos: 63.5,-44.5 + parent: 5350 + - uid: 27464 + components: + - type: Transform + pos: 63.5,-42.5 + parent: 5350 + - uid: 27465 + components: + - type: Transform + pos: 63.5,-41.5 + parent: 5350 + - uid: 27466 + components: + - type: Transform + pos: 63.5,-40.5 + parent: 5350 + - uid: 27467 + components: + - type: Transform + pos: 63.5,-38.5 + parent: 5350 + - uid: 27468 + components: + - type: Transform + pos: 63.5,-37.5 + parent: 5350 + - uid: 27469 + components: + - type: Transform + pos: 63.5,-36.5 + parent: 5350 - proto: WallSolid entities: - uid: 57 @@ -163506,10 +166555,11 @@ entities: parent: 5350 - proto: WarningCO2 entities: - - uid: 11640 + - uid: 11151 components: - type: Transform - pos: 66.5,-17.5 + rot: -1.5707963267948966 rad + pos: 66.5,-16.5 parent: 5350 - proto: WarningN2 entities: @@ -163527,22 +166577,23 @@ entities: parent: 5350 - proto: WarningPlasma entities: - - uid: 11641 + - uid: 11114 components: - type: Transform - pos: 66.5,-13.5 + pos: 66.5,-12.5 parent: 5350 - proto: WarningWaste entities: - - uid: 11642 + - uid: 11137 components: - type: Transform - pos: 66.5,-9.5 + pos: 66.5,-4.5 parent: 5350 - - uid: 11643 + - uid: 11641 components: - type: Transform - pos: 66.5,-5.5 + rot: -1.5707963267948966 rad + pos: 66.5,-8.5 parent: 5350 - proto: WaterCooler entities: @@ -163899,6 +166950,12 @@ entities: - type: Transform pos: -31.37716,-26.50117 parent: 5350 + - uid: 27050 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 69.77701,-31.5 + parent: 5350 - proto: WelderMini entities: - uid: 3636 @@ -163998,6 +167055,11 @@ entities: - type: Transform pos: 45.5,33.5 parent: 5350 + - uid: 27086 + components: + - type: Transform + pos: 76.5,-32.5 + parent: 5350 - proto: WetFloorSign entities: - uid: 12844 @@ -164082,18 +167144,6 @@ entities: - type: Transform pos: -3.5,35.5 parent: 5350 - - uid: 11282 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 71.5,-24.5 - parent: 5350 - - uid: 11283 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 71.5,-24.5 - parent: 5350 - uid: 13571 components: - type: Transform @@ -165688,104 +168738,6 @@ entities: - type: Transform pos: 45.5,0.5 parent: 5350 - - uid: 11251 - components: - - type: Transform - pos: 68.5,-23.5 - parent: 5350 - - uid: 11252 - components: - - type: Transform - pos: 69.5,-23.5 - parent: 5350 - - uid: 11253 - components: - - type: Transform - pos: 70.5,-23.5 - parent: 5350 - - uid: 11254 - components: - - type: Transform - pos: 71.5,-23.5 - parent: 5350 - - uid: 11255 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 71.5,-25.5 - parent: 5350 - - uid: 11256 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 70.5,-25.5 - parent: 5350 - - uid: 11257 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 68.5,-25.5 - parent: 5350 - - uid: 11258 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 68.5,-25.5 - parent: 5350 - - uid: 11259 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 68.5,-26.5 - parent: 5350 - - uid: 11260 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 70.5,-26.5 - parent: 5350 - - uid: 11261 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 70.5,-25.5 - parent: 5350 - - uid: 11262 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 68.5,-27.5 - parent: 5350 - - uid: 11263 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 68.5,-27.5 - parent: 5350 - - uid: 11264 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 68.5,-28.5 - parent: 5350 - - uid: 11265 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 70.5,-27.5 - parent: 5350 - - uid: 11266 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 70.5,-27.5 - parent: 5350 - - uid: 11267 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 70.5,-28.5 - parent: 5350 - uid: 11512 components: - type: Transform @@ -169133,4 +172085,9 @@ entities: - type: Transform pos: 59.615005,1.5566483 parent: 5350 + - uid: 27117 + components: + - type: Transform + pos: 69.87581,-31.5 + parent: 5350 ... From 530a741b7bfbc151bf94b45401085208dc037b76 Mon Sep 17 00:00:00 2001 From: Repo <47093363+Titian3@users.noreply.github.com> Date: Fri, 15 Nov 2024 15:54:20 +1300 Subject: [PATCH 13/18] Rule amendment - Remove role abandonment aHelp requirement. (#33287) * Role abandonment aHelp requirement. * disable roundstart chat message --------- Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com> --- Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml | 1 - Resources/Prototypes/Roles/Jobs/Command/captain.yml | 1 - Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml | 1 - Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml | 1 - .../Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml | 1 - Resources/Prototypes/Roles/Jobs/Science/research_director.yml | 1 - Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml | 1 - Resources/Prototypes/Roles/Jobs/Security/warden.yml | 1 - .../ServerRules/RoleplayRules/RuleR12RoleAbandonment.xml | 2 +- 9 files changed, 1 insertion(+), 9 deletions(-) diff --git a/Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml b/Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml index ee1c2c59498..740afded646 100644 --- a/Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml +++ b/Resources/Prototypes/Roles/Jobs/Cargo/quartermaster.yml @@ -18,7 +18,6 @@ weight: 10 startingGear: QuartermasterGear icon: "JobIconQuarterMaster" - requireAdminNotify: true supervisors: job-supervisors-captain canBeAntag: false access: diff --git a/Resources/Prototypes/Roles/Jobs/Command/captain.yml b/Resources/Prototypes/Roles/Jobs/Command/captain.yml index 79634aa5d9f..a22d334c941 100644 --- a/Resources/Prototypes/Roles/Jobs/Command/captain.yml +++ b/Resources/Prototypes/Roles/Jobs/Command/captain.yml @@ -19,7 +19,6 @@ weight: 20 startingGear: CaptainGear icon: "JobIconCaptain" - requireAdminNotify: true joinNotifyCrew: true supervisors: job-supervisors-centcom canBeAntag: false diff --git a/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml b/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml index d5521f767f1..f457cfbc496 100644 --- a/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml +++ b/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml @@ -19,7 +19,6 @@ weight: 20 startingGear: HoPGear icon: "JobIconHeadOfPersonnel" - requireAdminNotify: true supervisors: job-supervisors-captain canBeAntag: false access: diff --git a/Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml b/Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml index 0ee0b6736ca..9bac538551f 100644 --- a/Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml +++ b/Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml @@ -18,7 +18,6 @@ weight: 10 startingGear: ChiefEngineerGear icon: "JobIconChiefEngineer" - requireAdminNotify: true supervisors: job-supervisors-captain canBeAntag: false access: diff --git a/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml b/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml index 25871134155..83b16d427bd 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml @@ -20,7 +20,6 @@ weight: 10 startingGear: CMOGear icon: "JobIconChiefMedicalOfficer" - requireAdminNotify: true supervisors: job-supervisors-captain canBeAntag: false access: diff --git a/Resources/Prototypes/Roles/Jobs/Science/research_director.yml b/Resources/Prototypes/Roles/Jobs/Science/research_director.yml index b54ba54b1a4..7d6db3e0bec 100644 --- a/Resources/Prototypes/Roles/Jobs/Science/research_director.yml +++ b/Resources/Prototypes/Roles/Jobs/Science/research_director.yml @@ -12,7 +12,6 @@ weight: 10 startingGear: ResearchDirectorGear icon: "JobIconResearchDirector" - requireAdminNotify: true supervisors: job-supervisors-captain canBeAntag: false access: diff --git a/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml b/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml index 044df7f69e2..e22eccb7dad 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml @@ -18,7 +18,6 @@ weight: 10 startingGear: HoSGear icon: "JobIconHeadOfSecurity" - requireAdminNotify: true supervisors: job-supervisors-captain canBeAntag: false access: diff --git a/Resources/Prototypes/Roles/Jobs/Security/warden.yml b/Resources/Prototypes/Roles/Jobs/Security/warden.yml index 7ec820d27b8..6d79d748049 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/warden.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/warden.yml @@ -9,7 +9,6 @@ time: 36000 #10 hrs startingGear: WardenGear icon: "JobIconWarden" - requireAdminNotify: true supervisors: job-supervisors-hos canBeAntag: false access: diff --git a/Resources/ServerInfo/Guidebook/ServerRules/RoleplayRules/RuleR12RoleAbandonment.xml b/Resources/ServerInfo/Guidebook/ServerRules/RoleplayRules/RuleR12RoleAbandonment.xml index 3821816128f..1ddf73cc772 100644 --- a/Resources/ServerInfo/Guidebook/ServerRules/RoleplayRules/RuleR12RoleAbandonment.xml +++ b/Resources/ServerInfo/Guidebook/ServerRules/RoleplayRules/RuleR12RoleAbandonment.xml @@ -2,7 +2,7 @@ # Roleplay Rule 12 - Do not abandon your role Do not join the round as a role that you don't intend to play. Do not enable antagonist roles that you don't intend to play. Abandoning a role includes not completing tasks that the role is expected to do, in addition to things like leaving the game. Members of command should almost all stay on the station until the emergency shuttle arrives. Enforcement of this rule is more strict for command and antagonist roles, and less strict for less important roles like passengers. - Violations of this rule typically result in temporary or indefinite role bans. We understand that you may need to leave round early or unexpectedly. If you are in an important role (which is relayed to you in chat upon receiving your role), you should notify command members or an admin via ahelp so that they know you are leaving. Space Station 14 is a game. Do not endanger the safety of yourself or others, and do not neglect important things to avoid leaving a round early, even if you have to leave immediately without notifying anyone. Role bans for disconnecting are typically only applied if there is a pattern, and are almost always temporary. + Violations of this rule typically result in temporary or indefinite role bans. We understand that you may need to leave round early or unexpectedly. If you are in an important role (which is relayed to you in chat upon receiving your role), you should notify command members so that they know you are leaving and attempt to cryosleep if possible. Space Station 14 is a game. Do not endanger the safety of yourself or others, and do not neglect important things to avoid leaving a round early, even if you have to leave immediately without notifying anyone. Role bans for disconnecting are typically only applied if there is a pattern, and are almost always temporary. "Antag rolling" refers to a player abandoning their role if they do not get an antagonist role. From dfda557d4b199d60436db2f3acfeef74877f05b8 Mon Sep 17 00:00:00 2001 From: beck-thompson <107373427+beck-thompson@users.noreply.github.com> Date: Thu, 14 Nov 2024 19:24:27 -0800 Subject: [PATCH 14/18] Note expiry time is now relative instead of using timestamps (#33262) * Add the stuff * Loc fix * fixes * Change --- .../Administration/UI/Notes/NoteEdit.xaml | 1 + .../Administration/UI/Notes/NoteEdit.xaml.cs | 53 +++++++++++++++++-- .../en-US/administration/ui/admin-notes.ftl | 14 ++++- 3 files changed, 63 insertions(+), 5 deletions(-) diff --git a/Content.Client/Administration/UI/Notes/NoteEdit.xaml b/Content.Client/Administration/UI/Notes/NoteEdit.xaml index 506abac540c..72b2c55ce8d 100644 --- a/Content.Client/Administration/UI/Notes/NoteEdit.xaml +++ b/Content.Client/Administration/UI/Notes/NoteEdit.xaml @@ -8,6 +8,7 @@