Merge pull request #829 from Zumorica/2020-04-20-mind-examine-message

This commit is contained in:
Pieter-Jan Briers
2020-04-20 16:21:10 +02:00
committed by GitHub
2 changed files with 36 additions and 1 deletions

View File

@@ -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 <see cref="Server.Mobs.Mind"/> on a mob.
/// </summary>
[RegisterComponent]
public class MindComponent : Component
public class MindComponent : Component, IExamine
{
private bool _showExamineInfo = false;
/// <inheritdoc />
public override string Name => "Mind";
@@ -27,6 +33,16 @@ namespace Content.Server.GameObjects.Components.Mobs
[ViewVariables]
public bool HasMind => Mind != null;
/// <summary>
/// Whether examining should show information about the mind or not.
/// </summary>
[ViewVariables(VVAccess.ReadWrite)]
public bool ShowExamineInfo
{
get => _showExamineInfo;
set => _showExamineInfo = value;
}
/// <summary>
/// Don't call this unless you know what the hell you're doing.
/// Use <see cref="Mind.TransferTo(IEntity)"/> 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]");
}
}
}

View File

@@ -6,6 +6,7 @@
drawdepth: Mobs
components:
- type: Mind
show_examine_info: true
- type: Hands
hands:
- left