feat: Medbay cryo pods (#11349)

Fixes https://github.com/space-wizards/space-station-14/issues/11245
This commit is contained in:
Francesco
2022-12-25 12:35:51 +01:00
committed by GitHub
parent b7af5e6109
commit d47e001b18
30 changed files with 1188 additions and 27 deletions

View File

@@ -0,0 +1,7 @@
# Ejection verb label.
cryo-pod-verb-noun-occupant = Patient
# Examine text showing whether there's a beaker in the pod and if it is empty.
cryo-pod-examine = There's {INDEFINITE($beaker)} {$beaker} in here.
cryo-pod-empty-beaker = It is empty!
# Shown when a normal ejection through the eject verb is attempted on a locked pod.
cryo-pod-locked = The ejection mechanism is unresponsive!

View File

@@ -1,4 +1,4 @@
# In order to make this list somewhat organized, please place
# In order to make this list somewhat organized, please place
# new technologies underneath their overarching "base" technology.
# Base Technology
@@ -160,6 +160,7 @@
- MedicalScannerMachineCircuitboard
- StasisBedMachineCircuitboard
- CloningConsoleComputerCircuitboard
- CryoPodMachineCircuitboard
# Security Technology Tree
@@ -386,7 +387,7 @@
name: technologies-rapid-upgrade
id: RapidUpgrade
description: technologies-rapid-upgrade-description
icon:
icon:
sprite: Objects/Specific/Research/rped.rsi
state: icon
requiredPoints: 10000

View File

@@ -268,6 +268,24 @@
Glass: 5
Cable: 1
- type: entity
id: CryoPodMachineCircuitboard
parent: BaseMachineCircuitboard
name: cryo pod machine board
description: A machine printed circuit board for a cryo pod
components:
- type: Sprite
state: medical
- type: MachineBoard
prototype: CryoPod
requirements:
ScanningModule: 1
Manipulator: 1
MatterBin: 2
materialRequirements:
Glass: 1
Cable: 1
- type: entity
id: ChemMasterMachineCircuitboard
parent: BaseMachineCircuitboard

View File

@@ -0,0 +1,104 @@
- type: entity
parent: [BaseStructure, ConstructibleMachine] # Not a BaseMachinePowered since we don't want the anchorable component
id: CryoPod
name: cryo pod
description: A special machine intended to create a safe environment for the use of chemicals that react in cold environments.
components:
- type: Sprite
netsync: false
sprite: Structures/Machines/cryogenics.rsi
drawdepth: Mobs
noRot: true
offset: 0, 0.5
layers:
- sprite: Structures/Piping/Atmospherics/pipe.rsi
state: pipeHalf
offset: 0, -0.5
map: [ "enum.PipeVisualLayers.Pipe" ]
- state: pod-open
map: [ "enum.CryoPodVisualLayers.Base" ]
- state: cover-on
map: [ "enum.CryoPodVisualLayers.Cover" ]
visible: false
- state: pod-panel
map: [ "enum.WiresVisualLayers.MaintenancePanel" ]
visible: false
- type: InteractionOutline
- type: Transform
noRot: true
- type: Fixtures
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.5,-0.5,0.5,0.90"
density: 200
mask:
- MachineMask
layer:
- MachineLayer
- type: ContainerContainer
containers:
scanner-body:
!type:ContainerSlot
showEnts: true
beakerSlot: !type:ContainerSlot {}
machine_board: !type:Container
machine_parts: !type:Container
- type: AtmosDevice
- type: Appearance
- type: Machine
board: CryoPodMachineCircuitboard
- type: WiresVisuals
- type: Wires
BoardName: "Cryo pod"
LayoutId: CryoPod
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 100
behaviors:
- !type:EmptyAllContainersBehaviour
- !type:ChangeConstructionNodeBehavior
node: machineFrame
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: ApcPowerReceiver
powerLoad: 3000
- type: ExtensionCableReceiver
- type: NodeContainer
nodes:
port:
!type:PortablePipeNode
nodeGroupID: Pipe
pipeDirection: South
- type: ItemSlots
slots:
beakerSlot:
whitelist:
components:
- FitsInDispenser
- type: UserInterface
interfaces:
- key: enum.HealthAnalyzerUiKey.Key
type: HealthAnalyzerBoundUserInterface
- key: enum.WiresUiKey.Key
type: WiresBoundUserInterface
- type: ActivatableUI
key: enum.HealthAnalyzerUiKey.Key
requireHands: false
- type: ActivatableUIRequiresPower
- type: PointLight
color: "#3a807f"
radius: 2
energy: 10
enabled: false
- type: EmptyOnMachineDeconstruct
containers:
- scanner-body
- type: CryoPod
- type: ContainerTemperatureDamageThresholds
coldDamageThreshold: 10

View File

@@ -268,6 +268,7 @@
- PortableScrubberMachineCircuitBoard
- CloningPodMachineCircuitboard
- MedicalScannerMachineCircuitboard
- CryoPodMachineCircuitboard
- CrewMonitoringComputerCircuitboard
- VaccinatorMachineCircuitboard
- DiagnoserMachineCircuitboard

View File

@@ -91,6 +91,16 @@
Steel: 100
Glass: 900
- type: latheRecipe
id: CryoPodMachineCircuitboard
icon: Objects/Misc/module.rsi/id_mod.png
result: CryoPodMachineCircuitboard
completetime: 4
materials:
Steel: 100
Glass: 900
Gold: 100
- type: latheRecipe
id: ChemMasterMachineCircuitboard
icon: { sprite: Objects/Misc/module.rsi, state: id_mod }

View File

@@ -68,3 +68,10 @@
dummyWires: 4
wires:
- !type:PowerWireAction
- type: wireLayout
id: CryoPod
dummyWires: 2
wires:
- !type:PowerWireAction
- !type:CryoPodEjectLockWireAction

Binary file not shown.

After

Width:  |  Height:  |  Size: 751 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

@@ -0,0 +1,41 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "https://github.com/tgstation/tgstation/commit/033d025f53051dc53ece230f486578be6f05f88f",
"size": {
"x": 32,
"y": 64
},
"states": [
{
"name": "pod-panel"
},
{
"name": "cover-off"
},
{
"name": "cover-on",
"delays": [
[
0.1,
0.1,
0.1,
0.1,
0.1,
0.1,
0.1,
0.1
]
]
},
{
"name": "pod-open"
},
{
"name": "pod-on"
},
{
"name": "pod-off"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 296 B