| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- using Content.Server.Antag;
- using Content.Server.GameTicking.Rules.Components;
- using Content.Server.Roles;
- using Content.Shared.Humanoid;
- namespace Content.Server.GameTicking.Rules;
- public sealed class ThiefRuleSystem : GameRuleSystem<ThiefRuleComponent>
- {
- [Dependency] private readonly AntagSelectionSystem _antag = default!;
- public override void Initialize()
- {
- base.Initialize();
- SubscribeLocalEvent<ThiefRuleComponent, AfterAntagEntitySelectedEvent>(AfterAntagSelected);
- SubscribeLocalEvent<ThiefRoleComponent, GetBriefingEvent>(OnGetBriefing);
- }
- // Greeting upon thief activation
- private void AfterAntagSelected(Entity<ThiefRuleComponent> mindId, ref AfterAntagEntitySelectedEvent args)
- {
- var ent = args.EntityUid;
- _antag.SendBriefing(ent, MakeBriefing(ent), null, null);
- }
- // Character screen briefing
- private void OnGetBriefing(Entity<ThiefRoleComponent> role, ref GetBriefingEvent args)
- {
- var ent = args.Mind.Comp.OwnedEntity;
- if (ent is null)
- return;
- args.Append(MakeBriefing(ent.Value));
- }
- private string MakeBriefing(EntityUid ent)
- {
- var isHuman = HasComp<HumanoidAppearanceComponent>(ent);
- var briefing = isHuman
- ? Loc.GetString("thief-role-greeting-human")
- : Loc.GetString("thief-role-greeting-animal");
- if (isHuman)
- briefing += "\n \n" + Loc.GetString("thief-role-greeting-equipment") + "\n";
- return briefing;
- }
- }
|