| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- 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;
- }
- }
- }
|