using Content.Server.Antag;
+using Content.Server.Dragon;
using Content.Server.GameTicking.Rules.Components;
+using Content.Server.Mind;
+using Content.Server.Roles;
using Content.Server.Station.Components;
using Content.Server.Station.Systems;
+using Content.Shared.CharacterInfo;
using Content.Shared.Localizations;
using Robust.Server.GameObjects;
[Dependency] private readonly TransformSystem _transform = default!;
[Dependency] private readonly AntagSelectionSystem _antag = default!;
[Dependency] private readonly StationSystem _station = default!;
+ [Dependency] private readonly RoleSystem _roleSystem = default!;
+ [Dependency] private readonly MindSystem _mind = default!;
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<DragonRuleComponent, AfterAntagEntitySelectedEvent>(AfterAntagEntitySelected);
+ SubscribeLocalEvent<DragonRoleComponent, GetBriefingEvent>(UpdateBriefing);
+ }
+
+ private void UpdateBriefing(Entity<DragonRoleComponent> entity, ref GetBriefingEvent args)
+ {
+ var ent = args.Mind.Comp.OwnedEntity;
+
+ if(ent is null)
+ return;
+
+ args.Append(MakeBriefing(ent.Value));
}
private void AfterAntagEntitySelected(Entity<DragonRuleComponent> ent, ref AfterAntagEntitySelectedEvent args)
{
+ if (!_mind.TryGetMind(args.EntityUid, out var mindId, out var mind))
+ return;
+
+ _roleSystem.MindHasRole<DragonRoleComponent>(mindId, out var dragonRole);
+
+ if(dragonRole is null)
+ return;
+
_antag.SendBriefing(args.EntityUid, MakeBriefing(args.EntityUid), null, null);
}