Diseases (#7057)
* 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
2022-03-13 21:02:55 -04:00
|
|
|
using Robust.Shared.Prototypes;
|
|
|
|
|
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
|
2022-03-15 07:51:42 +11:00
|
|
|
|
Diseases (#7057)
* 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
2022-03-13 21:02:55 -04:00
|
|
|
namespace Content.Shared.Disease
|
|
|
|
|
{
|
2022-03-15 07:51:42 +11:00
|
|
|
/// <summary>
|
|
|
|
|
/// Diseases encompass everything from viruses to cancers to heart disease.
|
|
|
|
|
/// It's not just a virology thing.
|
|
|
|
|
/// </summary>
|
Diseases (#7057)
* 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
2022-03-13 21:02:55 -04:00
|
|
|
[Prototype("disease")]
|
|
|
|
|
[DataDefinition]
|
|
|
|
|
public sealed class DiseasePrototype : IPrototype, IInheritingPrototype
|
|
|
|
|
{
|
|
|
|
|
[ViewVariables]
|
2022-04-03 02:01:22 +02:00
|
|
|
[IdDataFieldAttribute]
|
Diseases (#7057)
* 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
2022-03-13 21:02:55 -04:00
|
|
|
public string ID { get; } = default!;
|
|
|
|
|
|
|
|
|
|
[DataField("name")]
|
|
|
|
|
public string Name { get; } = string.Empty;
|
|
|
|
|
|
2022-04-03 02:01:22 +02:00
|
|
|
[ParentDataFieldAttribute(typeof(PrototypeIdSerializer<DiseasePrototype>))]
|
Diseases (#7057)
* 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
2022-03-13 21:02:55 -04:00
|
|
|
public string? Parent { get; private set; }
|
|
|
|
|
|
|
|
|
|
[NeverPushInheritance]
|
2022-04-03 02:01:22 +02:00
|
|
|
[AbstractDataFieldAttribute]
|
Diseases (#7057)
* 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
2022-03-13 21:02:55 -04:00
|
|
|
public bool Abstract { get; private set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Controls how often a disease ticks.
|
|
|
|
|
/// </summary>
|
|
|
|
|
public float TickTime = 1f;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Since disease isn't mapped to metabolism or anything,
|
|
|
|
|
/// it needs something to control its tickrate
|
|
|
|
|
/// </summary>
|
|
|
|
|
public float Accumulator = 0f;
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// List of effects the disease has that will
|
|
|
|
|
/// run every second (by default anyway)
|
|
|
|
|
/// </summary>
|
|
|
|
|
[DataField("effects", serverOnly: true)]
|
|
|
|
|
public readonly List<DiseaseEffect> Effects = new(0);
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// List of SPECIFIC CURES the disease has that will
|
|
|
|
|
/// be checked every second.
|
|
|
|
|
/// Stuff like spaceacillin operates outside this.
|
|
|
|
|
/// </summary>
|
|
|
|
|
[DataField("cures", serverOnly: true)]
|
|
|
|
|
public readonly List<DiseaseCure> Cures = new(0);
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// This flatly reduces the probabilty disease medicine
|
|
|
|
|
/// has to cure it every tick. Although, since spaceacillin is
|
|
|
|
|
/// used as a reference and it has 0.15 chance, this is
|
|
|
|
|
/// a base 33% reduction in cure chance
|
|
|
|
|
/// </summary>
|
|
|
|
|
[DataField("cureResist", serverOnly: true)]
|
|
|
|
|
public float CureResist = 0.05f;
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Whether the disease can infect other people.
|
|
|
|
|
/// Since this isn't just a virology thing, this
|
|
|
|
|
/// primary determines what sort of disease it is.
|
|
|
|
|
/// This also affects things like the vaccine machine.
|
|
|
|
|
/// You can't print a cancer vaccine
|
|
|
|
|
/// </summary>
|
|
|
|
|
[DataField("infectious", serverOnly: true)]
|
|
|
|
|
public bool Infectious = true;
|
|
|
|
|
}
|
|
|
|
|
}
|