Geiger counter (#12082)

This commit is contained in:
Alex Evgrashin
2022-12-07 02:56:52 +01:00
committed by GitHub
parent ae700781b4
commit 04db7d0fdd
32 changed files with 613 additions and 8 deletions

View File

@@ -0,0 +1,44 @@
using Content.Shared.Examine;
using Content.Shared.Radiation.Components;
namespace Content.Shared.Radiation.Systems;
public abstract class SharedGeigerSystem : EntitySystem
{
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<GeigerComponent, ExaminedEvent>(OnExamine);
}
private void OnExamine(EntityUid uid, GeigerComponent component, ExaminedEvent args)
{
if (!component.ShowExamine || !component.IsEnabled || !args.IsInDetailsRange)
return;
var currentRads = component.CurrentRadiation;
var rads = currentRads.ToString("N1");
var color = LevelToColor(component.DangerLevel);
var msg = Loc.GetString("geiger-component-examine",
("rads", rads), ("color", color));
args.PushMarkup(msg);
}
public static Color LevelToColor(GeigerDangerLevel level)
{
switch (level)
{
case GeigerDangerLevel.None:
return Color.Green;
case GeigerDangerLevel.Low:
return Color.Yellow;
case GeigerDangerLevel.Med:
return Color.DarkOrange;
case GeigerDangerLevel.High:
case GeigerDangerLevel.Extreme:
return Color.Red;
default:
return Color.White;
}
}
}