* Disease system first pass

* Renamed HealthChange

* First working version of diseases (wtf???)

* Fix the cursed yaml initialization

* Pop-Up effect

* Generic status effect

* Create copy of prototype

* CureDiseaseEffect

* Disease resistance

* Spaceacillin

* Nerf spaceacillin now that we know it works

* Sneezing, Coughing, Snoughing

* Fix queuing, prevent future issues

* Disease protection

* Disease outbreak event

* Disease Reagent Cure

* Chem cause disease effect

* Disease artifacts

* Try infect when interacting with diseased

* Diseases don't have to be infectious

* Talking without a mask does a snough

* Temperature cure

* Bedrest

* DiseaseAdjustReagent

* Tweak how disease statuses work to be a bit less shit

* A few more diseases

* Natural immunity (can't get the same disease twice)

* Polished up some diseases, touched up spaceacillin production

* Rebalanced transmission

* Edit a few diseases, make disease cures support a minimum value

* Nitrile gloves, more disease protection sources

* Health scanner shows diseased status

* Clean up disease system

* Traitor item

* Mouth swabs

* Disease diagnoser machine

* Support for clean samples

* Vaccines + fixes

* Pass on disease resistant clothes

* More work on non-infectious diseases & vaccines

* Handle dead bodies

* Added the relatively CBT visualizer

* Pass over diseases and their populators

* Comment stuff

* Readability cleanup

* Add printing sound to diagnoser, fix printing bug

* vaccinator sound, seal up some classes

* Make disease protection equip detection not shit (thanks whoever wrote addaccentcomponent)

* Mirror review

* More review stuff

* More mirror review stuff

* Refactor snoughing

* Redid report creator

* Fix snough messages, new vaccinator sound

* Mirror review naming

* Woops, forgot the artifact

* Add recipes and fills

* Rebalance space cold and robovirus

* Give lizarb disease interaction stuff

* Tweak some stuff and move things around

* Add diseases to mice (since animal vectors are interesting and can be used to make vaccines)

* Remove unused reagent
This commit is contained in:
Rane
2022-03-13 21:02:55 -04:00
committed by GitHub
parent ce01e53579
commit bb9ad4259c
96 changed files with 2555 additions and 39 deletions

View File

@@ -7,3 +7,5 @@
state: icon
- type: Clothing
Slots: [gloves]
- type: DiseaseProtection
protection: 0.05

View File

@@ -71,18 +71,33 @@
sprite: Clothing/Hands/Gloves/ihscombat.rsi
- type: Clothing
sprite: Clothing/Hands/Gloves/ihscombat.rsi
#### Medical
- type: entity
parent: ClothingHandsBase
id: ClothingHandsGlovesLatex
name: latex gloves
description: Thin sterile latex gloves.
description: Thin sterile latex gloves. Basic PPE for any doctor.
components:
- type: Sprite
sprite: Clothing/Hands/Gloves/latex.rsi
- type: Clothing
sprite: Clothing/Hands/Gloves/latex.rsi
- type: DiseaseProtection
protection: 0.1
- type: entity
parent: ClothingHandsBase
id: ClothingHandsGlovesNitrile
name: nitrile gloves
description: High-quality nitrile gloves. Expensive medical PPE.
components:
- type: Sprite
sprite: Clothing/Hands/Gloves/Color/blue.rsi
- type: Clothing
sprite: Clothing/Hands/Gloves/Color/blue.rsi
- type: DiseaseProtection
protection: 0.15
####
- type: entity
parent: ClothingHandsBase
id: ClothingHandsGlovesLeather

View File

@@ -48,6 +48,8 @@
- type: Tag
tags:
- HidesHair
- type: DiseaseProtection
protection: 0.05
- type: entity
abstract: true

View File

@@ -83,6 +83,8 @@
- type: PressureProtection
highPressureMultiplier: 0.80
lowPressureMultiplier: 55
- type: DiseaseProtection
protection: 0.15
- type: entity
parent: ClothingHeadHardsuitWithLightBase

View File

@@ -9,9 +9,14 @@
sprite: Clothing/Head/Hoods/Bio/general.rsi
- type: Clothing
sprite: Clothing/Head/Hoods/Bio/general.rsi
- type: DiseaseProtection
protection: 0.15
- type: Tag
tags:
- HidesHair
- type: entity
parent: ClothingHeadBase
parent: ClothingHeadHatHoodBioGeneral
id: ClothingHeadHatHoodBioCmo
name: bio hood
suffix: CMO
@@ -21,9 +26,11 @@
sprite: Clothing/Head/Hoods/Bio/cmo.rsi
- type: Clothing
sprite: Clothing/Head/Hoods/Bio/cmo.rsi
- type: DiseaseProtection
protection: 0.25
- type: entity
parent: ClothingHeadBase
parent: ClothingHeadHatHoodBioGeneral
id: ClothingHeadHatHoodBioJanitor
name: bio hood
suffix: Janitor
@@ -34,8 +41,9 @@
- type: Clothing
sprite: Clothing/Head/Hoods/Bio/janitor.rsi
- type: entity
parent: ClothingHeadBase
parent: ClothingHeadHatHoodBioGeneral
id: ClothingHeadHatHoodBioScientist
name: bio hood
suffix: Science
@@ -47,7 +55,7 @@
sprite: Clothing/Head/Hoods/Bio/scientist.rsi
- type: entity
parent: ClothingHeadBase
parent: ClothingHeadHatHoodBioGeneral
id: ClothingHeadHatHoodBioSecurity
name: bio hood
suffix: Security
@@ -59,7 +67,7 @@
sprite: Clothing/Head/Hoods/Bio/security.rsi
- type: entity
parent: ClothingHeadBase
parent: ClothingHeadHatHoodBioGeneral
id: ClothingHeadHatHoodBioVirology
name: bio hood
suffix: Virology
@@ -69,6 +77,8 @@
sprite: Clothing/Head/Hoods/Bio/virology.rsi
- type: Clothing
sprite: Clothing/Head/Hoods/Bio/virology.rsi
- type: DiseaseProtection
protection: 0.25
- type: entity
parent: ClothingHeadBase

View File

@@ -10,6 +10,8 @@
sprite: Clothing/Mask/gas.rsi
- type: BreathMask
- type: IngestionBlocker
- type: DiseaseProtection
protection: 0.05
- type: entity
parent: ClothingMaskBase
@@ -23,6 +25,8 @@
sprite: Clothing/Mask/breath.rsi
- type: BreathMask
- type: IngestionBlocker
- type: DiseaseProtection
protection: 0.05
- type: entity
parent: ClothingMaskBase
@@ -72,6 +76,8 @@
sprite: Clothing/Mask/sterile.rsi
- type: BreathMask
- type: IngestionBlocker
- type: DiseaseProtection
protection: 0.1
- type: entity
parent: ClothingMaskBase

View File

@@ -30,3 +30,4 @@
Piercing: 0.95
Heat: 0.90
Radiation: 0.25
- type: DiseaseProtection

View File

@@ -9,6 +9,8 @@
sprite: Clothing/OuterClothing/Bio/general.rsi
- type: Clothing
sprite: Clothing/OuterClothing/Bio/general.rsi
- type: DiseaseProtection
protection: 0.2
- type: entity
parent: ClothingOuterBase
@@ -21,6 +23,8 @@
sprite: Clothing/OuterClothing/Bio/cmo.rsi
- type: Clothing
sprite: Clothing/OuterClothing/Bio/cmo.rsi
- type: DiseaseProtection
protection: 0.3
- type: entity
parent: ClothingOuterBase
@@ -33,6 +37,8 @@
sprite: Clothing/OuterClothing/Bio/janitor.rsi
- type: Clothing
sprite: Clothing/OuterClothing/Bio/janitor.rsi
- type: DiseaseProtection
protection: 0.2
- type: entity
parent: ClothingOuterBase
@@ -45,6 +51,8 @@
sprite: Clothing/OuterClothing/Bio/scientist.rsi
- type: Clothing
sprite: Clothing/OuterClothing/Bio/scientist.rsi
- type: DiseaseProtection
protection: 0.2
- type: entity
parent: ClothingOuterBase
@@ -57,6 +65,8 @@
sprite: Clothing/OuterClothing/Bio/security.rsi
- type: Clothing
sprite: Clothing/OuterClothing/Bio/security.rsi
- type: DiseaseProtection
protection: 0.2
- type: entity
parent: ClothingOuterBase
@@ -69,3 +79,5 @@
sprite: Clothing/OuterClothing/Bio/virology.rsi
- type: Clothing
sprite: Clothing/OuterClothing/Bio/virology.rsi
- type: DiseaseProtection
protection: 0.3

View File

@@ -180,6 +180,8 @@
- type: PressureProtection
highPressureMultiplier: 0.75
lowPressureMultiplier: 100
- type: DiseaseProtection
protection: 0.2
- type: entity
parent: ClothingOuterHardsuitBase

View File

@@ -89,6 +89,8 @@
sprite: Clothing/Uniforms/Jumpskirt/cmo.rsi
- type: Clothing
sprite: Clothing/Uniforms/Jumpskirt/cmo.rsi
- type: DiseaseProtection
protection: 0.15
- type: entity
parent: ClothingUniformSkirtBase
@@ -199,6 +201,8 @@
sprite: Clothing/Uniforms/Jumpskirt/medical.rsi
- type: Clothing
sprite: Clothing/Uniforms/Jumpskirt/medical.rsi
- type: DiseaseProtection
protection: 0.1
- type: entity
parent: ClothingUniformSkirtBase
@@ -221,6 +225,8 @@
sprite: Clothing/Uniforms/Jumpskirt/paramedic.rsi
- type: Clothing
sprite: Clothing/Uniforms/Jumpskirt/paramedic.rsi
- type: DiseaseProtection
protection: 0.1
- type: entity
parent: ClothingUniformSkirtBase

View File

@@ -161,6 +161,8 @@
sprite: Clothing/Uniforms/Jumpsuit/cmo.rsi
- type: Clothing
sprite: Clothing/Uniforms/Jumpsuit/cmo.rsi
- type: DiseaseProtection
protection: 0.15
- type: entity
parent: ClothingUniformBase
@@ -293,6 +295,8 @@
sprite: Clothing/Uniforms/Jumpsuit/medical.rsi
- type: Clothing
sprite: Clothing/Uniforms/Jumpsuit/medical.rsi
- type: DiseaseProtection
protection: 0.1
- type: entity
parent: ClothingUniformBase
@@ -315,6 +319,8 @@
sprite: Clothing/Uniforms/Jumpsuit/paramedic.rsi
- type: Clothing
sprite: Clothing/Uniforms/Jumpsuit/paramedic.rsi
- type: DiseaseProtection
protection: 0.1
- type: entity
parent: ClothingUniformBase
@@ -618,7 +624,7 @@
sprite: Clothing/Uniforms/Jumpsuit/librarian.rsi
- type: Clothing
sprite: Clothing/Uniforms/Jumpsuit/librarian.rsi
- type: entity
parent: ClothingUniformBase
id: ClothingUniformJumpsuitLawyerRed
@@ -629,7 +635,7 @@
sprite: Clothing/Uniforms/Jumpsuit/lawyerred.rsi
- type: Clothing
sprite: Clothing/Uniforms/Jumpsuit/lawyerred.rsi
- type: entity
parent: ClothingUniformBase
id: ClothingUniformJumpsuitLawyerBlue
@@ -640,7 +646,7 @@
sprite: Clothing/Uniforms/Jumpsuit/lawyerblue.rsi
- type: Clothing
sprite: Clothing/Uniforms/Jumpsuit/lawyerblue.rsi
- type: entity
parent: ClothingUniformBase
id: ClothingUniformJumpsuitLawyerBlack
@@ -651,7 +657,7 @@
sprite: Clothing/Uniforms/Jumpsuit/lawyerblack.rsi
- type: Clothing
sprite: Clothing/Uniforms/Jumpsuit/lawyerblack.rsi
- type: entity
parent: ClothingUniformBase
id: ClothingUniformJumpsuitLawyerPurple
@@ -662,7 +668,7 @@
sprite: Clothing/Uniforms/Jumpsuit/lawyerpurple.rsi
- type: Clothing
sprite: Clothing/Uniforms/Jumpsuit/lawyerpurple.rsi
- type: entity
parent: ClothingUniformBase
id: ClothingUniformJumpsuitPyjamaSyndicateBlack

View File

@@ -18,6 +18,7 @@
- ColdArtifact
- RadiateArtifact
- GasArtifact
- DiseaseArtifact
chance: 1
- type: entity

View File

@@ -675,7 +675,7 @@
tags:
- Trash
- type: Recyclable
- type: Actions
- type: Actions
# TODO: Remove CombatMode when Prototype Composition is added
- type: CombatMode
combatToggleAction:
@@ -686,6 +686,7 @@
autoPopulate: false
- type: Bloodstream
bloodMaxVolume: 50
- type: DiseaseCarrier #The other class lab animal and disease vector
- type: entity
@@ -707,7 +708,8 @@
crit: dead-1
dead: splat-1
- type: Bloodstream
bloodMaxVolume: 50
bloodMaxVolume: 50
- type: DiseaseCarrier #Why doesn't this save if it's only on the parent wtf
- type: entity
@@ -730,6 +732,7 @@
dead: splat-2
- type: Bloodstream
bloodMaxVolume: 50
- type: DiseaseCarrier
- type: entity
@@ -775,6 +778,9 @@
interactFailureString: petting-failure-generic
- type: Bloodstream
bloodMaxVolume: 50
- type: Damageable
damageContainer: Biological
damageModifierSet: Scale
- type: entity
name: frog
@@ -947,6 +953,9 @@
interactFailureString: petting-failure-generic
- type: Bloodstream
bloodMaxVolume: 50
- type: Damageable
damageContainer: Biological
damageModifierSet: Scale
# Code unique spider prototypes or combine them all into one spider and get a
# random sprite state when you spawn it.
@@ -1162,7 +1171,7 @@
gender: epicene
- type: Bloodstream
bloodMaxVolume: 100
- type: entity
name: Renault
parent: MobFox

View File

@@ -71,6 +71,7 @@
- SlowedDown
- Stutter
- Electrocution
- type: DiseaseCarrier
# Other
- type: Inventory
- type: Clickable
@@ -294,6 +295,7 @@
proper: true
- type: StandingState
- type: entity
save: false
name: Urist McHands

View File

@@ -110,6 +110,25 @@
template: HumanoidTemplate
preset: HumanPreset
- type: LizardAccent
- type: DiseaseCarrier
diseaseResist: 0.1
- type: Damageable
damageContainer: Biological
damageModifierSet: Scale
- type: Temperature
heatDamageThreshold: 400
coldDamageThreshold: 285
currentTemperature: 310.15
specificHeat: 46
coldDamage:
types:
Cold : 1.1 #per second, scales with temperature & other constants
heatDamage:
types:
Heat : 0.9 #per second, scales with temperature & other constants
- type: MovementSpeedModifier
baseWalkSpeed : 2.7
baseSprintSpeed : 4.5
- type: entity
save: false

View File

@@ -32,7 +32,7 @@
- type: entity
id: CircuitImprinterMachineCircuitboard
parent: BaseMachineCircuitboard
name: Circuit Imprinter (Machine Board)
name: circuit imprinter machine board
components:
- type: MachineBoard
prototype: CircuitImprinter
@@ -48,7 +48,7 @@
- type: entity
id: UniformPrinterMachineCircuitboard
parent: BaseMachineCircuitboard
name: Uniform Printer (Machine Board)
name: uniform printer machine board
components:
- type: MachineBoard
prototype: UniformPrinter
@@ -57,10 +57,41 @@
Manipulator: 1
Laser: 1
- type: entity
id: VaccinatorMachineCircuitboard
parent: BaseMachineCircuitboard
name: vaccinator machine board
components:
- type: MachineBoard
prototype: Vaccinator
requirements:
MatterBin: 1
Manipulator: 1
materialRequirements:
Cable: 5
tagRequirements:
GlassBeaker:
Amount: 1
DefaultPrototype: Beaker
ExamineName: Glass Beaker
- type: entity
id: DiagnoserMachineCircuitboard
parent: BaseMachineCircuitboard
name: diagnoser machine board
components:
- type: MachineBoard
prototype: DiseaseDiagnoser
requirements:
Manipulator: 1
Laser: 2
materialRequirements:
Cable: 5
- type: entity
id: ThermomachineFreezerMachineCircuitBoard
parent: BaseMachineCircuitboard
name: Freezer Thermomachine (Machine Board)
name: freezer thermomachine machine board
description: Looks like you could use a screwdriver to change the board type.
components:
- type: MachineBoard
@@ -77,7 +108,7 @@
- type: entity
id: ThermomachineHeaterMachineCircuitBoard
parent: BaseMachineCircuitboard
name: Heater Thermomachine (Machine Board)
name: heather thermomachine machine board
description: Looks like you could use a screwdriver to change the board type.
components:
- type: MachineBoard
@@ -208,7 +239,7 @@
- type: entity
parent: BaseMachineCircuitboard
id: DawInstrumentMachineCircuitboard
name: Digital Audio Workstation (Machine Board)
name: digital audio workstation machine board
components:
- type: MachineBoard
prototype: DawInstrument

View File

@@ -0,0 +1,30 @@
- type: entity
parent: BaseItem
id: DiseaseSwab
name: mouth swab
description: Used to take saliva samples to test for diseases.
components:
- type: Item
size: 1
- type: Sprite
netsync: false
sprite: Objects/Specific/Medical/mouth_swab.rsi
state: icon
- type: Tag
tags:
- Recyclable
- type: DiseaseSwab
- type: entity
parent: BaseItem
id: Vaccine
name: Vaccine
description: There's no way you don't already have an opinion on these.
components:
- type: Item
size: 3
- type: Sprite
sprite: Objects/Specific/Medical/medipen.rsi
netsync: false
state: salpen
- type: DiseaseVaccine

View File

@@ -237,3 +237,16 @@
reagents:
- ReagentId: TranexamicAcid
Quantity: 15
- type: entity
name: spaceacillin syringe
parent: Syringe
id: SyringeSpaceacillin
components:
- type: SolutionContainerManager
solutions:
injector:
maxVol: 15
reagents:
- ReagentId: Spaceacillin
Quantity: 15

View File

@@ -15,3 +15,23 @@
- key: enum.HealthAnalyzerUiKey.Key
type: HealthAnalyzerBoundUserInterface
- type: HealthAnalyzer
- type: entity
parent: HandheldHealthAnalyzer
id: HandheldHealthAnalyzerGigacancer
suffix: gigacancer
components:
- type: HealthAnalyzer
fake: true
disease: Ultragigacancer
## I know admins will want this
- type: entity
parent: HandheldHealthAnalyzer
id: HandheldHealthAnalyzerOwOnavirus
name: OwOnavirus analyzer
suffix: admin abuse
components:
- type: HealthAnalyzer
fake: true
disease: OwOnavirus

View File

@@ -167,3 +167,10 @@
suffix: Gas
components:
- type: GasArtifact
- type: entity
parent: BaseXenoArtifact
id: DiseaseArtifact
suffix: Disease
components:
- type: DiseaseArtifact

View File

@@ -0,0 +1,24 @@
- type: entity
id: DiseaseDiagnoser
parent: BaseMachinePowered
name: Disease Diagnoser Delta Extreme
description: A machine that analyzes disease samples.
placement:
mode: SnapgridCenter
components:
- type: Sprite
sprite: Structures/Machines/diagnoser.rsi
layers:
- state: icon
map: ["enum.DiseaseMachineVisualLayers.IsRunning"]
- state: unlit
shader: unshaded
map: ["enum.DiseaseMachineVisualLayers.IsOn"]
netsync: false
- type: DiseaseDiagnoser
- type: DiseaseMachine
machineOutput: Paper
- type: Appearance
- type: DiseaseMachineVisuals
idleState: icon
runningState: running

View File

@@ -229,6 +229,9 @@
- ThermomachineFreezerMachineCircuitBoard
- CloningPodMachineCircuitboard
- MedicalScannerMachineCircuitboard
- CrewMonitoringComputerCircuitboard
- VaccinatorMachineCircuitboard
- DiagnoserMachineCircuitboard
- ChemMasterMachineCircuitboard
- ChemDispenserMachineCircuitboard
- HydroponicsTrayMachineCircuitboard
@@ -237,7 +240,6 @@
- ProtolatheMachineCircuitboard
- ReagentGrinderMachineCircuitboard
- UniformPrinterMachineCircuitboard
- CrewMonitoringComputerCircuitboard
- ShuttleConsoleCircuitboard
- CircuitImprinterMachineCircuitboard
- DawInstrumentMachineCircuitboard

View File

@@ -0,0 +1,26 @@
- type: entity
id: Vaccinator
parent: BaseMachinePowered
name: Vaccinator
description: A machine that creates vaccines.
placement:
mode: SnapgridCenter
components:
- type: Sprite
sprite: Structures/Machines/vaccinator.rsi
layers:
- state: icon
map: ["enum.DiseaseMachineVisualLayers.IsRunning"]
- state: unlit
shader: unshaded
map: ["enum.DiseaseMachineVisualLayers.IsOn"]
netsync: false
- type: DiseaseVaccineCreator
- type: DiseaseMachine
machineOutput: Vaccine
- type: Appearance
- type: DiseaseMachineVisuals
idleState: icon
runningState: running
- type: Machine
board: VaccinatorMachineCircuitboard

View File

@@ -86,4 +86,4 @@
# It is pressurized...
- type: ReagentTank
transferAmount: 100