diff --git a/Content.Server/GameObjects/Components/Mobs/MindComponent.cs b/Content.Server/GameObjects/Components/Mobs/MindComponent.cs
index 0505ddd363..24fbc7ce7e 100644
--- a/Content.Server/GameObjects/Components/Mobs/MindComponent.cs
+++ b/Content.Server/GameObjects/Components/Mobs/MindComponent.cs
@@ -1,7 +1,11 @@
using Content.Server.GameObjects.Components.Observer;
+using Content.Server.GameObjects.EntitySystems;
using Content.Server.Mobs;
+using Content.Server.Players;
using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.GameObjects;
+using Robust.Shared.Serialization;
+using Robust.Shared.Utility;
using Robust.Shared.ViewVariables;
namespace Content.Server.GameObjects.Components.Mobs
@@ -10,8 +14,10 @@ namespace Content.Server.GameObjects.Components.Mobs
/// Stores a on a mob.
///
[RegisterComponent]
- public class MindComponent : Component
+ public class MindComponent : Component, IExamine
{
+ private bool _showExamineInfo = false;
+
///
public override string Name => "Mind";
@@ -27,6 +33,16 @@ namespace Content.Server.GameObjects.Components.Mobs
[ViewVariables]
public bool HasMind => Mind != null;
+ ///
+ /// Whether examining should show information about the mind or not.
+ ///
+ [ViewVariables(VVAccess.ReadWrite)]
+ public bool ShowExamineInfo
+ {
+ get => _showExamineInfo;
+ set => _showExamineInfo = value;
+ }
+
///
/// Don't call this unless you know what the hell you're doing.
/// Use instead.
@@ -74,5 +90,23 @@ namespace Content.Server.GameObjects.Components.Mobs
}
}
}
+
+ public override void ExposeData(ObjectSerializer serializer)
+ {
+ base.ExposeData(serializer);
+ serializer.DataField(ref _showExamineInfo, "show_examine_info", false);
+ }
+
+ public void Examine(FormattedMessage message)
+ {
+ if (!ShowExamineInfo)
+ return;
+
+ // TODO: Use gendered pronouns depending on the entity
+ if(!HasMind)
+ message.AddMarkup($"[color=red]They are totally catatonic. The stresses of life in deep-space must have been too much for them. Any recovery is unlikely.[/color]");
+ else if(Mind.Session == null)
+ message.AddMarkup("[color=yellow]They have a blank, absent-minded stare and appears completely unresponsive to anything. They may snap out of it soon.[/color]");
+ }
}
}
diff --git a/Resources/Prototypes/Entities/mobs/human.yml b/Resources/Prototypes/Entities/mobs/human.yml
index 0815ecdd04..3fa58bea9b 100644
--- a/Resources/Prototypes/Entities/mobs/human.yml
+++ b/Resources/Prototypes/Entities/mobs/human.yml
@@ -6,6 +6,7 @@
drawdepth: Mobs
components:
- type: Mind
+ show_examine_info: true
- type: Hands
hands:
- left