Separate Udder examine into ExamineableHunger (#35164)
* Separate udder hunger examine into ExamineableHunger * Fluent grammar improvements * Add ExamineableHunger to chickens and ducks. * Use starving message as "dead" message
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
using Content.Shared.Chemistry.Components;
|
||||
using Content.Shared.Chemistry.EntitySystems;
|
||||
using Content.Shared.DoAfter;
|
||||
using Content.Shared.Examine;
|
||||
using Content.Shared.IdentityManagement;
|
||||
using Content.Shared.Mobs.Systems;
|
||||
using Content.Shared.Nutrition.Components;
|
||||
@@ -32,7 +31,6 @@ public sealed class UdderSystem : EntitySystem
|
||||
SubscribeLocalEvent<UdderComponent, MapInitEvent>(OnMapInit);
|
||||
SubscribeLocalEvent<UdderComponent, GetVerbsEvent<AlternativeVerb>>(AddMilkVerb);
|
||||
SubscribeLocalEvent<UdderComponent, MilkingDoAfterEvent>(OnDoAfter);
|
||||
SubscribeLocalEvent<UdderComponent, ExaminedEvent>(OnExamine);
|
||||
}
|
||||
|
||||
private void OnMapInit(EntityUid uid, UdderComponent component, MapInitEvent args)
|
||||
@@ -140,50 +138,4 @@ public sealed class UdderSystem : EntitySystem
|
||||
};
|
||||
args.Verbs.Add(verb);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Defines the text provided on examine.
|
||||
/// Changes depending on the amount of hunger the target has.
|
||||
/// </summary>
|
||||
private void OnExamine(Entity<UdderComponent> entity, ref ExaminedEvent args)
|
||||
{
|
||||
|
||||
var entityIdentity = Identity.Entity(args.Examined, EntityManager);
|
||||
|
||||
string message;
|
||||
|
||||
// Check if the target has hunger, otherwise return not hungry.
|
||||
if (!TryComp<HungerComponent>(entity, out var hunger))
|
||||
{
|
||||
message = Loc.GetString("udder-system-examine-none", ("entity", entityIdentity));
|
||||
args.PushMarkup(message);
|
||||
return;
|
||||
}
|
||||
|
||||
// Choose the correct examine string based on HungerThreshold.
|
||||
switch (_hunger.GetHungerThreshold(hunger))
|
||||
{
|
||||
case >= HungerThreshold.Overfed:
|
||||
message = Loc.GetString("udder-system-examine-overfed", ("entity", entityIdentity));
|
||||
break;
|
||||
|
||||
case HungerThreshold.Okay:
|
||||
message = Loc.GetString("udder-system-examine-okay", ("entity", entityIdentity));
|
||||
break;
|
||||
|
||||
case HungerThreshold.Peckish:
|
||||
message = Loc.GetString("udder-system-examine-hungry", ("entity", entityIdentity));
|
||||
break;
|
||||
|
||||
// There's a final hunger threshold called "dead" but animals don't actually die so we'll re-use this.
|
||||
case <= HungerThreshold.Starving:
|
||||
message = Loc.GetString("udder-system-examine-starved", ("entity", entityIdentity));
|
||||
break;
|
||||
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
args.PushMarkup(message);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user