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
This commit is contained in:
29
Content.Client/Disease/DiseaseMachineSystem.cs
Normal file
29
Content.Client/Disease/DiseaseMachineSystem.cs
Normal file
@@ -0,0 +1,29 @@
|
||||
using Robust.Client.GameObjects;
|
||||
using Content.Shared.Disease;
|
||||
|
||||
namespace Content.Client.Disease
|
||||
{
|
||||
/// <summary>
|
||||
/// Controls client-side visuals for the
|
||||
/// disease machines.
|
||||
/// </summary>
|
||||
public sealed class DiseaseMachineSystem : VisualizerSystem<DiseaseMachineVisualsComponent>
|
||||
{
|
||||
protected override void OnAppearanceChange(EntityUid uid, DiseaseMachineVisualsComponent component, ref AppearanceChangeEvent args)
|
||||
{
|
||||
if (TryComp(uid, out SpriteComponent? sprite)
|
||||
&& args.Component.TryGetData(DiseaseMachineVisuals.IsOn, out bool isOn)
|
||||
&& args.Component.TryGetData(DiseaseMachineVisuals.IsRunning, out bool isRunning))
|
||||
{
|
||||
var state = isRunning ? component.RunningState : component.IdleState;
|
||||
sprite.LayerSetVisible(DiseaseMachineVisualLayers.IsOn, isOn);
|
||||
sprite.LayerSetState(DiseaseMachineVisualLayers.IsRunning, state);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
public enum DiseaseMachineVisualLayers : byte
|
||||
{
|
||||
IsOn,
|
||||
IsRunning
|
||||
}
|
||||
15
Content.Client/Disease/DiseaseMachineVisualsComponent.cs
Normal file
15
Content.Client/Disease/DiseaseMachineVisualsComponent.cs
Normal file
@@ -0,0 +1,15 @@
|
||||
namespace Content.Client.Disease;
|
||||
|
||||
/// <summary>
|
||||
/// Holds the idle and running state for machines to control
|
||||
/// playing animtions on the client.
|
||||
/// </summary>
|
||||
[RegisterComponent]
|
||||
public sealed class DiseaseMachineVisualsComponent : Component
|
||||
{
|
||||
[DataField("idleState", required: true)]
|
||||
public string IdleState = default!;
|
||||
|
||||
[DataField("runningState", required: true)]
|
||||
public string RunningState = default!;
|
||||
}
|
||||
@@ -37,6 +37,10 @@ namespace Content.Client.Entry
|
||||
"Healing",
|
||||
"Material",
|
||||
"RandomAppearance",
|
||||
"DiseaseProtection",
|
||||
"DiseaseDiagnoser",
|
||||
"DiseaseVaccine",
|
||||
"DiseaseVaccineCreator",
|
||||
"Mineable",
|
||||
"RangedMagazine",
|
||||
"Ammo",
|
||||
@@ -47,12 +51,15 @@ namespace Content.Client.Entry
|
||||
"ResearchClient",
|
||||
"IdCardConsole",
|
||||
"ThermalRegulator",
|
||||
"DiseaseMachineRunning",
|
||||
"DiseaseMachine",
|
||||
"AtmosFixMarker",
|
||||
"CablePlacer",
|
||||
"Drink",
|
||||
"Food",
|
||||
"DeployableBarrier",
|
||||
"MagicMirror",
|
||||
"DiseaseSwab",
|
||||
"FloorTile",
|
||||
"RandomInsulation",
|
||||
"Electrified",
|
||||
@@ -62,6 +69,7 @@ namespace Content.Client.Entry
|
||||
"Bloodstream",
|
||||
"TransformableContainer",
|
||||
"Mind",
|
||||
"DiseaseCarrier",
|
||||
"StorageFill",
|
||||
"Mop",
|
||||
"Bucket",
|
||||
@@ -122,6 +130,7 @@ namespace Content.Client.Entry
|
||||
"RCD",
|
||||
"RCDAmmo",
|
||||
"CursedEntityStorage",
|
||||
"DiseaseArtifact",
|
||||
"Radio",
|
||||
"GasArtifact",
|
||||
"SentienceTarget",
|
||||
|
||||
@@ -3,6 +3,7 @@ using Robust.Client.AutoGenerated;
|
||||
using Robust.Client.UserInterface.CustomControls;
|
||||
using Robust.Client.UserInterface.XAML;
|
||||
using Content.Shared.Damage.Prototypes;
|
||||
using Content.Shared.Disease.Components;
|
||||
using Content.Shared.FixedPoint;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Content.Shared.Damage;
|
||||
@@ -35,7 +36,17 @@ namespace Content.Client.HealthAnalyzer.UI
|
||||
|
||||
text.Append($"{Loc.GetString("health-analyzer-window-entity-health-text", ("entityName", entityName))}\n");
|
||||
|
||||
text.Append($"{Loc.GetString("health-analyzer-window-entity-damage-total-text", ("amount", damageable.TotalDamage))}\n");
|
||||
/// Status Effects / Components
|
||||
if (entities.HasComponent<DiseasedComponent>(msg.TargetEntity))
|
||||
{
|
||||
text.Append($"{Loc.GetString("disease-scanner-diseased")}\n");
|
||||
}else
|
||||
{
|
||||
text.Append($"{Loc.GetString("disease-scanner-not-diseased")}\n");
|
||||
}
|
||||
|
||||
/// Damage
|
||||
text.Append($"\n{Loc.GetString("health-analyzer-window-entity-damage-total-text", ("amount", damageable.TotalDamage))}\n");
|
||||
|
||||
HashSet<string> shownTypes = new();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user