]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Move mind role components to shared (#39606)
authorslarticodefast <161409025+slarticodefast@users.noreply.github.com>
Wed, 13 Aug 2025 10:51:46 +0000 (12:51 +0200)
committerGitHub <noreply@github.com>
Wed, 13 Aug 2025 10:51:46 +0000 (12:51 +0200)
66 files changed:
Content.IntegrationTests/Tests/GameRules/NukeOpsTest.cs
Content.IntegrationTests/Tests/Minds/MindTests.cs
Content.IntegrationTests/Tests/Minds/RoleTests.cs
Content.Server/Administration/Systems/AdminSystem.cs
Content.Server/GameTicking/GameTicker.RoundFlow.cs
Content.Server/GameTicking/Rules/ChangelingRuleSystem.cs [deleted file]
Content.Server/GameTicking/Rules/DragonRuleSystem.cs
Content.Server/GameTicking/Rules/NukeopsRuleSystem.cs
Content.Server/GameTicking/Rules/RevolutionaryRuleSystem.cs
Content.Server/GameTicking/Rules/SurvivorRuleSystem.cs
Content.Server/GameTicking/Rules/ThiefRuleSystem.cs
Content.Server/GameTicking/Rules/TraitorRuleSystem.cs
Content.Server/GameTicking/Rules/ZombieRuleSystem.cs
Content.Server/Ghost/ObserverRoleComponent.cs [deleted file]
Content.Server/Ghost/Roles/GhostRoleMarkerRoleComponent.cs [deleted file]
Content.Server/Ghost/Roles/GhostRoleSystem.cs
Content.Server/Mindshield/MindShieldSystem.cs
Content.Server/Ninja/Systems/SpiderChargeSystem.cs
Content.Server/Objectives/Systems/NinjaConditionsSystem.cs
Content.Server/Roles/DragonRoleComponent.cs [deleted file]
Content.Server/Roles/InitialInfectedRoleComponent.cs [deleted file]
Content.Server/Roles/NinjaRoleComponent.cs [deleted file]
Content.Server/Roles/NukeopsRoleComponent.cs [deleted file]
Content.Server/Roles/ParadoxCloneRoleComponent.cs [deleted file]
Content.Server/Roles/ParadoxCloneRoleSystem.cs
Content.Server/Roles/RemoveRoleCommand.cs
Content.Server/Roles/RevolutionaryRoleComponent.cs [deleted file]
Content.Server/Roles/RoleBriefingComponent.cs [deleted file]
Content.Server/Roles/RoleBriefingSystem.cs
Content.Server/Roles/SubvertedSiliconRoleComponent.cs [deleted file]
Content.Server/Roles/SurvivorRoleComponent.cs [deleted file]
Content.Server/Roles/ThiefRoleComponent.cs [deleted file]
Content.Server/Roles/TraitorRoleComponent.cs [deleted file]
Content.Server/Roles/WizardRoleComponent.cs [deleted file]
Content.Server/Roles/ZombieRoleComponent.cs [deleted file]
Content.Server/Silicons/Borgs/BorgSystem.MMI.cs
Content.Server/Silicons/Laws/SiliconLawSystem.cs
Content.Server/Thief/Systems/ThiefBeaconSystem.cs
Content.Server/Zombies/ZombieSystem.cs
Content.Shared/Changeling/ChangelingRoleComponent.cs [deleted file]
Content.Shared/EntityEffects/EffectConditions/JobCondition.cs
Content.Shared/Roles/Components/ChangelingRoleComponent.cs [new file with mode: 0644]
Content.Shared/Roles/Components/DragonRoleComponent.cs [new file with mode: 0644]
Content.Shared/Roles/Components/GhostRoleMarkerRoleComponent.cs [new file with mode: 0644]
Content.Shared/Roles/Components/InitialInfectedRoleComponent.cs [new file with mode: 0644]
Content.Shared/Roles/Components/JobRoleComponent.cs [moved from Content.Shared/Roles/Jobs/JobRoleComponent.cs with 59% similarity]
Content.Shared/Roles/Components/MindRoleComponent.cs [moved from Content.Shared/Roles/MindRoleComponent.cs with 52% similarity]
Content.Shared/Roles/Components/NinjaRoleComponent.cs [new file with mode: 0644]
Content.Shared/Roles/Components/NukeopsRoleComponent.cs [new file with mode: 0644]
Content.Shared/Roles/Components/ObserverRoleComponent.cs [new file with mode: 0644]
Content.Shared/Roles/Components/ParadoxCloneRoleComponent.cs [new file with mode: 0644]
Content.Shared/Roles/Components/RevolutionaryRoleComponent.cs [new file with mode: 0644]
Content.Shared/Roles/Components/RoleBriefingComponent.cs [new file with mode: 0644]
Content.Shared/Roles/Components/SiliconBrainRoleComponent.cs [new file with mode: 0644]
Content.Shared/Roles/Components/StartingMindRoleComponent.cs [moved from Content.Shared/Roles/StartingMindRoleComponent.cs with 84% similarity]
Content.Shared/Roles/Components/SubvertedSiliconRoleComponent.cs [new file with mode: 0644]
Content.Shared/Roles/Components/SurvivorRoleComponent.cs [new file with mode: 0644]
Content.Shared/Roles/Components/ThiefRoleComponent.cs [new file with mode: 0644]
Content.Shared/Roles/Components/TraitorRoleComponent.cs [new file with mode: 0644]
Content.Shared/Roles/Components/WizardRoleComponent.cs [new file with mode: 0644]
Content.Shared/Roles/Components/ZombieRoleComponent.cs [new file with mode: 0644]
Content.Shared/Roles/Jobs/SharedJobSystem.cs
Content.Shared/Roles/SharedRoleSystem.cs
Content.Shared/Roles/SiliconBrainRoleComponent.cs [deleted file]
Resources/Locale/en-US/ghost/observer-role.ftl [deleted file]
Resources/Prototypes/Roles/MindRoles/mind_roles.yml

index cf166174797dcb81a3cfba11cf2cae62319bac84..4f92fd4e55d4c12732e2142034d725a4a8d312f4 100644 (file)
@@ -9,7 +9,6 @@ using Content.Server.Mind;
 using Content.Server.Roles;
 using Content.Server.RoundEnd;
 using Content.Server.Shuttles.Components;
-using Content.Server.Station.Components;
 using Content.Shared.CCVar;
 using Content.Shared.Damage;
 using Content.Shared.FixedPoint;
@@ -20,6 +19,7 @@ using Content.Shared.NPC.Prototypes;
 using Content.Shared.NPC.Systems;
 using Content.Shared.NukeOps;
 using Content.Shared.Pinpointer;
+using Content.Shared.Roles.Components;
 using Content.Shared.Station.Components;
 using Robust.Server.GameObjects;
 using Robust.Shared.GameObjects;
index 48e11e46480747f6367cd21f924e771c0d06df67..2f7751982938d3d8d947f3c73f16a4f012b77efa 100644 (file)
@@ -3,7 +3,6 @@ using System.Linq;
 using Content.Server.Ghost.Roles;
 using Content.Server.Ghost.Roles.Components;
 using Content.Server.Mind;
-using Content.Server.Roles;
 using Content.Shared.Damage;
 using Content.Shared.Damage.Prototypes;
 using Content.Shared.FixedPoint;
@@ -11,7 +10,7 @@ using Content.Shared.Mind;
 using Content.Shared.Mind.Components;
 using Content.Shared.Players;
 using Content.Shared.Roles;
-using Content.Shared.Roles.Jobs;
+using Content.Shared.Roles.Components;
 using Robust.Server.Console;
 using Robust.Server.GameObjects;
 using Robust.Server.Player;
index 8acfff3fb96ff221ad472021813b963f9fff082a..f0a7268a3d7b181dde83a9f1a9c389bfa11a64f2 100644 (file)
@@ -1,7 +1,5 @@
 using System.Linq;
-using Content.Server.Roles;
-using Content.Shared.Roles;
-using Content.Shared.Roles.Jobs;
+using Content.Shared.Roles.Components;
 using Robust.Shared.GameObjects;
 using Robust.Shared.Reflection;
 
index 78433db12945b45bf51856a52ec0ab8fe5ea8e28..677522a83b5817989e57cedce5049fe26d1be436 100644 (file)
@@ -1,7 +1,6 @@
 using System.Linq;
 using Content.Server.Administration.Managers;
 using Content.Server.Chat.Managers;
-using Content.Server.Forensics;
 using Content.Server.GameTicking;
 using Content.Server.Hands.Systems;
 using Content.Server.Mind;
@@ -21,6 +20,7 @@ using Content.Shared.PDA;
 using Content.Shared.Players.PlayTimeTracking;
 using Content.Shared.Popups;
 using Content.Shared.Roles;
+using Content.Shared.Roles.Components;
 using Content.Shared.Roles.Jobs;
 using Content.Shared.StationRecords;
 using Content.Shared.Throwing;
index a6809e050e028914f5d627246fad7cf6273eb342..1dadca4c038b11d88bd02cf7c580f0aa1e0f1cc0 100644 (file)
@@ -3,7 +3,6 @@ using System.Numerics;
 using Content.Server.Announcements;
 using Content.Server.Discord;
 using Content.Server.GameTicking.Events;
-using Content.Server.Ghost;
 using Content.Server.Maps;
 using Content.Server.Roles;
 using Content.Shared.CCVar;
@@ -12,6 +11,7 @@ using Content.Shared.GameTicking;
 using Content.Shared.Mind;
 using Content.Shared.Players;
 using Content.Shared.Preferences;
+using Content.Shared.Roles.Components;
 using JetBrains.Annotations;
 using Prometheus;
 using Robust.Shared.Asynchronous;
@@ -19,7 +19,6 @@ using Robust.Shared.Audio;
 using Robust.Shared.EntitySerialization;
 using Robust.Shared.EntitySerialization.Systems;
 using Robust.Shared.Map;
-using Robust.Shared.Map.Components;
 using Robust.Shared.Network;
 using Robust.Shared.Player;
 using Robust.Shared.Random;
diff --git a/Content.Server/GameTicking/Rules/ChangelingRuleSystem.cs b/Content.Server/GameTicking/Rules/ChangelingRuleSystem.cs
deleted file mode 100644 (file)
index a64b0e9..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-using Content.Server.GameTicking.Rules.Components;
-using Content.Server.Roles;
-using Content.Shared.Changeling;
-
-namespace Content.Server.GameTicking.Rules;
-
-/// <summary>
-/// Game rule system for Changelings
-/// </summary>
-public sealed class ChangelingRuleSystem : GameRuleSystem<ChangelingRuleComponent>
-{
-    public override void Initialize()
-    {
-        base.Initialize();
-
-        SubscribeLocalEvent<ChangelingRoleComponent, GetBriefingEvent>(OnGetBriefing);
-    }
-
-    private void OnGetBriefing(Entity<ChangelingRoleComponent> ent, ref GetBriefingEvent args)
-    {
-        args.Append(Loc.GetString("changeling-briefing"));
-    }
-}
index 964b248beb757a2e17d969324c59e09b4995c5e4..53cf3bd4b0f11984062dcf292562968767396a61 100644 (file)
@@ -4,6 +4,7 @@ using Content.Server.Mind;
 using Content.Server.Roles;
 using Content.Server.Station.Systems;
 using Content.Shared.Localizations;
+using Content.Shared.Roles.Components;
 using Robust.Server.GameObjects;
 
 namespace Content.Server.GameTicking.Rules;
index 17d9e4c8478734179c74831c83ff6eeaa130aa0d..9c3562b152974ba11379d125a461e6ace81c85d9 100644 (file)
@@ -17,6 +17,7 @@ using Content.Shared.NPC.Components;
 using Content.Shared.NPC.Systems;
 using Content.Shared.Nuke;
 using Content.Shared.NukeOps;
+using Content.Shared.Roles.Components;
 using Content.Shared.Store;
 using Content.Shared.Tag;
 using Content.Shared.Zombies;
index 609039ae4ca623a73f6b18ca600afcc58f3ed300..ef773f59d1217568ecc7cfd1ae84ca9ea3901956 100644 (file)
@@ -23,6 +23,7 @@ using Content.Shared.Mobs.Systems;
 using Content.Shared.NPC.Prototypes;
 using Content.Shared.NPC.Systems;
 using Content.Shared.Revolutionary.Components;
+using Content.Shared.Roles.Components;
 using Content.Shared.Stunnable;
 using Content.Shared.Zombies;
 using Robust.Shared.Prototypes;
@@ -161,7 +162,10 @@ public sealed class RevolutionaryRuleSystem : GameRuleSystem<RevolutionaryRuleCo
             if (_mind.TryGetMind(ev.User.Value, out var revMindId, out _))
             {
                 if (_role.MindHasRole<RevolutionaryRoleComponent>(revMindId, out var role))
+                {
                     role.Value.Comp2.ConvertedCount++;
+                    Dirty(role.Value.Owner, role.Value.Comp2);
+                }
             }
         }
 
index 4990b98b9170d2c2b7f929f629d07ed989e77a0a..d673444665d06e2ac35a872ad418499f6fc5d65f 100644 (file)
@@ -6,6 +6,7 @@ using Content.Server.Shuttles.Systems;
 using Content.Shared.GameTicking.Components;
 using Content.Shared.Mind;
 using Content.Shared.Mobs.Systems;
+using Content.Shared.Roles.Components;
 using Content.Shared.Survivor.Components;
 using Content.Shared.Tag;
 using Robust.Server.GameObjects;
index b00ed386363e98439d2b9f0b53a591826e287483..75bdd5387b3db8faa502d42485de01200d1676c0 100644 (file)
@@ -2,6 +2,7 @@ using Content.Server.Antag;
 using Content.Server.GameTicking.Rules.Components;
 using Content.Server.Roles;
 using Content.Shared.Humanoid;
+using Content.Shared.Roles.Components;
 
 namespace Content.Server.GameTicking.Rules;
 
index 0a2882aa3c24bda72af49233031e7cbacb047bcb..e72e9d5f732313a582953470895e09dd2e005ed5 100644 (file)
@@ -1,19 +1,16 @@
-using Content.Server.Administration.Logs;
 using Content.Server.Antag;
 using Content.Server.GameTicking.Rules.Components;
 using Content.Server.Mind;
 using Content.Server.Objectives;
 using Content.Server.PDA.Ringer;
-using Content.Server.Roles;
 using Content.Server.Traitor.Uplink;
-using Content.Shared.Database;
 using Content.Shared.FixedPoint;
-using Content.Shared.GameTicking.Components;
 using Content.Shared.Mind;
 using Content.Shared.NPC.Systems;
 using Content.Shared.PDA;
 using Content.Shared.Random.Helpers;
 using Content.Shared.Roles;
+using Content.Shared.Roles.Components;
 using Content.Shared.Roles.Jobs;
 using Content.Shared.Roles.RoleCodeword;
 using Robust.Shared.Prototypes;
index 9fab98446afbc5cf4e4d1dd590fd4d98d5928522..c6da622bb4d0994ea6e753b69ab76bb28b7f39fd 100644 (file)
@@ -13,6 +13,7 @@ using Content.Shared.Mobs;
 using Content.Shared.Mobs.Components;
 using Content.Shared.Mobs.Systems;
 using Content.Shared.Roles;
+using Content.Shared.Roles.Components;
 using Content.Shared.Zombies;
 using Robust.Shared.Player;
 using Robust.Shared.Timing;
diff --git a/Content.Server/Ghost/ObserverRoleComponent.cs b/Content.Server/Ghost/ObserverRoleComponent.cs
deleted file mode 100644 (file)
index 8421fb7..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-using Content.Shared.Roles;
-
-namespace Content.Server.Ghost;
-
-/// <summary>
-/// This is used to mark Observers properly, as they get Minds
-/// </summary>
-[RegisterComponent]
-public sealed partial class ObserverRoleComponent : BaseMindRoleComponent
-{
-    public string Name => Loc.GetString("observer-role-name");
-}
diff --git a/Content.Server/Ghost/Roles/GhostRoleMarkerRoleComponent.cs b/Content.Server/Ghost/Roles/GhostRoleMarkerRoleComponent.cs
deleted file mode 100644 (file)
index da3e89b..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-using Content.Shared.Roles;
-
-namespace Content.Server.Ghost.Roles;
-
-/// <summary>
-/// Added to mind role entities to tag that they are a ghostrole.
-/// It also holds the name for the round end display
-/// </summary>
-[RegisterComponent]
-public sealed partial class GhostRoleMarkerRoleComponent : BaseMindRoleComponent
-{
-    //TODO does anything still use this? It gets populated by GhostRolesystem but I don't see anything ever reading it
-    [DataField] public string? Name;
-
-}
index ec69ebe3c136b0606d26d887b8ac7962c18b5f07..98261c0908b6524896265e063d3078ee37ba4660 100644 (file)
@@ -521,9 +521,6 @@ public sealed class GhostRoleSystem : EntitySystem
         _mindSystem.TransferTo(newMind, mob);
 
         _roleSystem.MindAddRoles(newMind.Owner, role.MindRoles, newMind.Comp);
-
-        if (_roleSystem.MindHasRole<GhostRoleMarkerRoleComponent>(newMind!, out var markerRole))
-            markerRole.Value.Comp2.Name = role.RoleName;
     }
 
     /// <summary>
index 7cc1e8fc751a427e62f13ce84ce0132e47f84780..c04fb12027dd8254759fbbb56ec72ca18aba94af 100644 (file)
@@ -6,6 +6,7 @@ using Content.Shared.Database;
 using Content.Shared.Implants;
 using Content.Shared.Mindshield.Components;
 using Content.Shared.Revolutionary.Components;
+using Content.Shared.Roles.Components;
 using Robust.Shared.Containers;
 
 namespace Content.Server.Mindshield;
index c08576a5ceb3daf263a07efaf73d6e71f9be06d2..c2d9fb3f683824664a0cd41f596337364827b557 100644 (file)
@@ -1,10 +1,10 @@
 using Content.Server.Mind;
 using Content.Server.Objectives.Components;
 using Content.Server.Popups;
-using Content.Server.Roles;
 using Content.Shared.Ninja.Components;
 using Content.Shared.Ninja.Systems;
 using Content.Shared.Roles;
+using Content.Shared.Roles.Components;
 using Content.Shared.Sticky;
 using Content.Shared.Trigger;
 
index c9e9326c1ea38fbf32ca84f3aa45f087dd5f0f87..db788165037a4f7d1fd2b2dccf7e2284da315f82 100644 (file)
@@ -1,8 +1,8 @@
 using Content.Server.Objectives.Components;
-using Content.Server.Roles;
 using Content.Shared.Objectives.Components;
 using Content.Shared.Ninja.Components;
 using Content.Shared.Roles;
+using Content.Shared.Roles.Components;
 using Content.Shared.Warps;
 using Robust.Shared.Random;
 
diff --git a/Content.Server/Roles/DragonRoleComponent.cs b/Content.Server/Roles/DragonRoleComponent.cs
deleted file mode 100644 (file)
index c47455d..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-using Content.Server.Dragon;
-using Content.Shared.Roles;
-
-namespace Content.Server.Roles;
-
-/// <summary>
-///     Added to mind role entities to tag that they are a space dragon.
-/// </summary>
-[RegisterComponent, Access(typeof(DragonSystem))]
-public sealed partial class DragonRoleComponent : BaseMindRoleComponent
-{
-}
diff --git a/Content.Server/Roles/InitialInfectedRoleComponent.cs b/Content.Server/Roles/InitialInfectedRoleComponent.cs
deleted file mode 100644 (file)
index 475cd3b..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-using Content.Shared.Roles;
-
-namespace Content.Server.Roles;
-
-/// <summary>
-///     Added to mind role entities to tag that they are an initial infected.
-/// </summary>
-[RegisterComponent]
-public sealed partial class InitialInfectedRoleComponent : BaseMindRoleComponent
-{
-
-}
diff --git a/Content.Server/Roles/NinjaRoleComponent.cs b/Content.Server/Roles/NinjaRoleComponent.cs
deleted file mode 100644 (file)
index 7bdffe6..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-using Content.Shared.Roles;
-
-namespace Content.Server.Roles;
-
-/// <summary>
-///     Added to mind role entities to tag that they are a space ninja.
-/// </summary>
-[RegisterComponent]
-public sealed partial class NinjaRoleComponent : BaseMindRoleComponent
-{
-}
diff --git a/Content.Server/Roles/NukeopsRoleComponent.cs b/Content.Server/Roles/NukeopsRoleComponent.cs
deleted file mode 100644 (file)
index 4156108..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-using Content.Shared.Roles;
-
-namespace Content.Server.Roles;
-
-/// <summary>
-///     Added to mind role entities to tag that they are a nuke operative.
-/// </summary>
-[RegisterComponent]
-public sealed partial class NukeopsRoleComponent : BaseMindRoleComponent
-{
-}
diff --git a/Content.Server/Roles/ParadoxCloneRoleComponent.cs b/Content.Server/Roles/ParadoxCloneRoleComponent.cs
deleted file mode 100644 (file)
index 32ebb2f..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-using Content.Shared.Roles;
-
-namespace Content.Server.Roles;
-
-/// <summary>
-///     Added to mind role entities to tag that they are a paradox clone.
-/// </summary>
-[RegisterComponent]
-public sealed partial class ParadoxCloneRoleComponent : BaseMindRoleComponent
-{
-    /// <summary>
-    ///     Name modifer applied to the player when they turn into a ghost.
-    ///     Needed to be able to keep the original and the clone apart in dead chat.
-    /// </summary>
-    [DataField]
-    public LocId? NameModifier = "paradox-clone-ghost-name-modifier";
-}
index 83e23fef918997b8d264d6ac101702e999144713..c957692b703cd5e875c8debd10363ddb8729310e 100644 (file)
@@ -1,7 +1,7 @@
 using Content.Shared.Ghost;
 using Content.Shared.Mind;
 using Content.Shared.NameModifier.EntitySystems;
-using Content.Shared.Roles;
+using Content.Shared.Roles.Components;
 
 namespace Content.Server.Roles;
 
index 2d184150671a5df30ce8187b678f1fa1cfecb345..f3cc4a834d79ad3128b9e21a07af1f6c6a3b1bd1 100644 (file)
@@ -3,6 +3,7 @@ using Content.Shared.Administration;
 using Content.Shared.Players;
 using Content.Shared.Roles;
 using Content.Shared.Roles.Jobs;
+using Content.Shared.Roles.Components;
 using Robust.Server.Player;
 using Robust.Shared.Console;
 
diff --git a/Content.Server/Roles/RevolutionaryRoleComponent.cs b/Content.Server/Roles/RevolutionaryRoleComponent.cs
deleted file mode 100644 (file)
index dcdb131..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-using Content.Shared.Roles;
-
-namespace Content.Server.Roles;
-
-/// <summary>
-///     Added to mind role entities to tag that they are a Revolutionary.
-/// </summary>
-[RegisterComponent]
-public sealed partial class RevolutionaryRoleComponent : BaseMindRoleComponent
-{
-    /// <summary>
-    /// For headrevs, how many people you have converted.
-    /// </summary>
-    [DataField, ViewVariables(VVAccess.ReadWrite)]
-    public uint ConvertedCount = 0;
-}
diff --git a/Content.Server/Roles/RoleBriefingComponent.cs b/Content.Server/Roles/RoleBriefingComponent.cs
deleted file mode 100644 (file)
index f4d3fe6..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-using Content.Shared.Roles;
-
-namespace Content.Server.Roles;
-
-/// <summary>
-/// Adds a briefing to the character info menu, does nothing else.
-/// </summary>
-[RegisterComponent]
-public sealed partial class RoleBriefingComponent : BaseMindRoleComponent
-{
-    [DataField]
-    public string Briefing;
-}
index 17b62a08b3797c9cf5921e4d0025e3a85207273a..6825fe8e1061fb2325b72f4427e3a1e4052b0b78 100644 (file)
@@ -1,3 +1,5 @@
+using Content.Shared.Roles.Components;
+
 namespace Content.Server.Roles;
 
 public sealed class RoleBriefingSystem : EntitySystem
diff --git a/Content.Server/Roles/SubvertedSiliconRoleComponent.cs b/Content.Server/Roles/SubvertedSiliconRoleComponent.cs
deleted file mode 100644 (file)
index 5572757..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-using Content.Shared.Roles;
-
-namespace Content.Server.Roles;
-
-/// <summary>
-///     Added to mind role entities to tag that they are a hacked borg.
-/// </summary>
-[RegisterComponent]
-public sealed partial class SubvertedSiliconRoleComponent : BaseMindRoleComponent
-{
-}
diff --git a/Content.Server/Roles/SurvivorRoleComponent.cs b/Content.Server/Roles/SurvivorRoleComponent.cs
deleted file mode 100644 (file)
index e5e6dd9..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-using Content.Shared.Roles;
-
-namespace Content.Server.Roles;
-
-/// <summary>
-///     Adds to a mind role ent to tag they're a Survivor
-/// </summary>
-[RegisterComponent]
-public sealed partial class SurvivorRoleComponent : BaseMindRoleComponent;
diff --git a/Content.Server/Roles/ThiefRoleComponent.cs b/Content.Server/Roles/ThiefRoleComponent.cs
deleted file mode 100644 (file)
index c0ddee7..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-using Content.Shared.Roles;
-
-namespace Content.Server.Roles;
-
-/// <summary>
-///     Added to mind role entities to tag that they are a thief.
-/// </summary>
-[RegisterComponent]
-public sealed partial class ThiefRoleComponent : BaseMindRoleComponent
-{
-}
diff --git a/Content.Server/Roles/TraitorRoleComponent.cs b/Content.Server/Roles/TraitorRoleComponent.cs
deleted file mode 100644 (file)
index a8a11a8..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-using Content.Shared.Roles;
-
-namespace Content.Server.Roles;
-
-/// <summary>
-///     Added to mind role entities to tag that they are a syndicate traitor.
-/// </summary>
-[RegisterComponent]
-public sealed partial class TraitorRoleComponent : BaseMindRoleComponent
-{
-}
diff --git a/Content.Server/Roles/WizardRoleComponent.cs b/Content.Server/Roles/WizardRoleComponent.cs
deleted file mode 100644 (file)
index 72a89ee..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-namespace Content.Server.Roles;
-
-/// <summary>
-///     Mind role to tag entities that they're a Wizard
-/// </summary>
-[RegisterComponent]
-public sealed partial class WizardRoleComponent : Component;
diff --git a/Content.Server/Roles/ZombieRoleComponent.cs b/Content.Server/Roles/ZombieRoleComponent.cs
deleted file mode 100644 (file)
index cff25e5..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-using Content.Shared.Roles;
-
-namespace Content.Server.Roles;
-
-/// <summary>
-///     Added to mind role entities to tag that they are a zombie.
-/// </summary>
-[RegisterComponent]
-public sealed partial class ZombieRoleComponent : BaseMindRoleComponent
-{
-}
index 7435e38f5acfe719455b971d1cdc6b9dded4a6b3..b41f1397ec02643648d4573e909a9d48208b4fa5 100644 (file)
@@ -1,7 +1,7 @@
-using Content.Server.Roles;
-using Content.Shared.Containers.ItemSlots;
+using Content.Shared.Containers.ItemSlots;
 using Content.Shared.Mind.Components;
 using Content.Shared.Roles;
+using Content.Shared.Roles.Components;
 using Content.Shared.Silicons.Borgs.Components;
 using Robust.Shared.Containers;
 
index 444732b2b3d497249a3803749586af7503ea6518..e672cb5005de0cc591a214d744cc4b0468c4544f 100644 (file)
@@ -2,7 +2,6 @@ using System.Linq;
 using Content.Server.Administration;
 using Content.Server.Chat.Managers;
 using Content.Server.Radio.Components;
-using Content.Server.Roles;
 using Content.Server.Station.Systems;
 using Content.Shared.Administration;
 using Content.Shared.Chat;
@@ -11,9 +10,9 @@ using Content.Shared.GameTicking;
 using Content.Shared.Mind;
 using Content.Shared.Mind.Components;
 using Content.Shared.Roles;
+using Content.Shared.Roles.Components;
 using Content.Shared.Silicons.Laws;
 using Content.Shared.Silicons.Laws.Components;
-using Content.Shared.Wires;
 using Robust.Server.GameObjects;
 using Robust.Shared.Audio;
 using Robust.Shared.Containers;
index 4c65ba5c449a316c7ef678097fee1c10eeec8db7..069966a8a43683453c208985d57594a7cc6ba5a0 100644 (file)
@@ -1,12 +1,12 @@
 using Content.Server.Mind;
 using Content.Server.Objectives.Components;
-using Content.Server.Roles;
 using Content.Server.Thief.Components;
 using Content.Shared.Examine;
 using Content.Shared.Foldable;
 using Content.Shared.Popups;
 using Content.Shared.Verbs;
 using Content.Shared.Roles;
+using Content.Shared.Roles.Components;
 using Robust.Shared.Audio.Systems;
 
 namespace Content.Server.Thief.Systems;
index 11185da61fa5bba2d9bc22d09ad02804d976e7b3..f4ff5dd60c68448caeca0b18fe6c043b0eb598c2 100644 (file)
@@ -6,7 +6,6 @@ using Content.Server.Chat;
 using Content.Server.Chat.Systems;
 using Content.Server.Emoting.Systems;
 using Content.Server.Speech.EntitySystems;
-using Content.Server.Roles;
 using Content.Shared.Anomaly.Components;
 using Content.Shared.Armor;
 using Content.Shared.Bed.Sleep;
@@ -21,6 +20,7 @@ using Content.Shared.Mobs.Components;
 using Content.Shared.Mobs.Systems;
 using Content.Shared.Popups;
 using Content.Shared.Roles;
+using Content.Shared.Roles.Components;
 using Content.Shared.Weapons.Melee.Events;
 using Content.Shared.Zombies;
 using Robust.Shared.Prototypes;
diff --git a/Content.Shared/Changeling/ChangelingRoleComponent.cs b/Content.Shared/Changeling/ChangelingRoleComponent.cs
deleted file mode 100644 (file)
index d2e9c1e..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-using Content.Shared.Roles;
-
-namespace Content.Shared.Changeling;
-
-/// <summary>
-/// The Mindrole for Changeling Antags
-/// </summary>
-[RegisterComponent]
-public sealed partial class ChangelingRoleComponent : BaseMindRoleComponent;
index 7fec087d6b90e8951b3398dde2b4b75471015713..0b942a3e09a3c7b7509ed75b8bb97b7d01b5d0b2 100644 (file)
@@ -3,7 +3,7 @@ using Content.Shared.Localizations;
 using Content.Shared.Mind;
 using Content.Shared.Mind.Components;
 using Content.Shared.Roles;
-using Content.Shared.Roles.Jobs;
+using Content.Shared.Roles.Components;
 using Robust.Shared.Prototypes;
 
 namespace Content.Shared.EntityEffects.EffectConditions;
diff --git a/Content.Shared/Roles/Components/ChangelingRoleComponent.cs b/Content.Shared/Roles/Components/ChangelingRoleComponent.cs
new file mode 100644 (file)
index 0000000..fb9bc05
--- /dev/null
@@ -0,0 +1,9 @@
+using Robust.Shared.GameStates;
+
+namespace Content.Shared.Roles.Components;
+
+/// <summary>
+/// Added to mind role entities to tag that they are a changeling.
+/// </summary>
+[RegisterComponent, NetworkedComponent]
+public sealed partial class ChangelingRoleComponent : BaseMindRoleComponent;
diff --git a/Content.Shared/Roles/Components/DragonRoleComponent.cs b/Content.Shared/Roles/Components/DragonRoleComponent.cs
new file mode 100644 (file)
index 0000000..8f5abec
--- /dev/null
@@ -0,0 +1,9 @@
+using Robust.Shared.GameStates;
+
+namespace Content.Shared.Roles.Components;
+
+/// <summary>
+/// Added to mind role entities to tag that they are a space dragon.
+/// </summary>
+[RegisterComponent, NetworkedComponent]
+public sealed partial class DragonRoleComponent : BaseMindRoleComponent;
diff --git a/Content.Shared/Roles/Components/GhostRoleMarkerRoleComponent.cs b/Content.Shared/Roles/Components/GhostRoleMarkerRoleComponent.cs
new file mode 100644 (file)
index 0000000..623f298
--- /dev/null
@@ -0,0 +1,9 @@
+using Robust.Shared.GameStates;
+
+namespace Content.Shared.Roles.Components;
+
+/// <summary>
+/// Added to mind role entities to tag that they are a ghostrole.
+/// </summary>
+[RegisterComponent, NetworkedComponent]
+public sealed partial class GhostRoleMarkerRoleComponent : BaseMindRoleComponent;
diff --git a/Content.Shared/Roles/Components/InitialInfectedRoleComponent.cs b/Content.Shared/Roles/Components/InitialInfectedRoleComponent.cs
new file mode 100644 (file)
index 0000000..a96c9a4
--- /dev/null
@@ -0,0 +1,9 @@
+using Robust.Shared.GameStates;
+
+namespace Content.Shared.Roles.Components;
+
+/// <summary>
+/// Added to mind role entities to tag that they are an initial infected.
+/// </summary>
+[RegisterComponent, NetworkedComponent]
+public sealed partial class InitialInfectedRoleComponent : BaseMindRoleComponent;
similarity index 59%
rename from Content.Shared/Roles/Jobs/JobRoleComponent.cs
rename to Content.Shared/Roles/Components/JobRoleComponent.cs
index dbaf12beec4b6ef65e00f93ea158fb60063b096d..c62c0ea1f4188dc2d4cb9bd478271a3f759657d4 100644 (file)
@@ -1,12 +1,9 @@
 using Robust.Shared.GameStates;
 
-namespace Content.Shared.Roles.Jobs;
+namespace Content.Shared.Roles.Components;
 
 /// <summary>
-///     Added to mind role entities to mark them as a job role entity.
+/// Added to mind role entities to mark them as a job role entity.
 /// </summary>
 [RegisterComponent, NetworkedComponent]
-public sealed partial class JobRoleComponent : BaseMindRoleComponent
-{
-
-}
+public sealed partial class JobRoleComponent : BaseMindRoleComponent;
similarity index 52%
rename from Content.Shared/Roles/MindRoleComponent.cs
rename to Content.Shared/Roles/Components/MindRoleComponent.cs
index 09593c94cd6d0d88fff1cfc46b1a8aa2c6c4666d..45ab8081921f7b92fb2415bf0c783804b27ee563 100644 (file)
@@ -2,7 +2,7 @@ using Content.Shared.Mind;
 using Robust.Shared.GameStates;
 using Robust.Shared.Prototypes;
 
-namespace Content.Shared.Roles;
+namespace Content.Shared.Roles.Components;
 
 /// <summary>
 /// This holds data for, and indicates, a Mind Role entity
@@ -11,49 +11,52 @@ namespace Content.Shared.Roles;
 public sealed partial class MindRoleComponent : BaseMindRoleComponent
 {
     /// <summary>
-    ///     Marks this Mind Role as Antagonist
-    ///     A single antag Mind Role is enough to make the owner mind count as Antagonist.
+    /// Marks this Mind Role as Antagonist.
+    /// A single antag Mind Role is enough to make the owner mind count as Antagonist.
     /// </summary>
     [DataField]
     public bool Antag;
 
     /// <summary>
-    ///     The mind's current antagonist/special role, or lack thereof;
+    /// The mind's current antagonist/special role, or lack thereof.
     /// </summary>
     [DataField]
     public ProtoId<RoleTypePrototype>? RoleType;
 
     /// <summary>
-    ///     The role's subtype, shown only to admins to help with antag categorization
+    /// The role's subtype, shown only to admins to help with antag categorization.
     /// </summary>
     [DataField]
     public LocId? Subtype;
 
     /// <summary>
-    ///     True if this mindrole is an exclusive antagonist. Antag setting is not checked if this is True.
+    /// True if this mindrole is an exclusive antagonist. Antag setting is not checked if this is True.
     /// </summary>
     [DataField]
     public bool ExclusiveAntag;
 
     /// <summary>
-    ///     The Mind that this role belongs to
+    /// The Mind that this role belongs to.
     /// </summary>
-    public Entity<MindComponent> Mind { get; set; }
+    /// <remarks>
+    /// TODO: Make this a datafield. Also components should not store other components.
+    /// </remarks>
+    public Entity<MindComponent> Mind;
 
     /// <summary>
-    ///     The Antagonist prototype of this role
+    /// The Antagonist prototype of this role.
     /// </summary>
     [DataField]
-    public ProtoId<AntagPrototype>? AntagPrototype { get; set; }
+    public ProtoId<AntagPrototype>? AntagPrototype;
 
     /// <summary>
-    ///     The Job prototype of this role
+    /// The Job prototype of this role.
     /// </summary>
     [DataField]
-    public ProtoId<JobPrototype>? JobPrototype { get; set; }
+    public ProtoId<JobPrototype>? JobPrototype;
 
     /// <summary>
-    ///     Used to order the characters on by role/antag status. Highest numbers are shown first.
+    /// Used to order the characters on by role/antag status. Highest numbers are shown first.
     /// </summary>
     [DataField]
     public int SortWeight;
@@ -62,7 +65,4 @@ public sealed partial class MindRoleComponent : BaseMindRoleComponent
 // Why does this base component actually exist? It does make auto-categorization easy, but before that it was useless?
 // I used it for easy organisation/bookkeeping of what components are for mindroles
 [EntityCategory("Roles")]
-public abstract partial class BaseMindRoleComponent : Component
-{
-
-}
+public abstract partial class BaseMindRoleComponent : Component;
diff --git a/Content.Shared/Roles/Components/NinjaRoleComponent.cs b/Content.Shared/Roles/Components/NinjaRoleComponent.cs
new file mode 100644 (file)
index 0000000..4aa72e1
--- /dev/null
@@ -0,0 +1,9 @@
+using Robust.Shared.GameStates;
+
+namespace Content.Shared.Roles.Components;
+
+/// <summary>
+/// Added to mind role entities to tag that they are a space ninja.
+/// </summary>
+[RegisterComponent, NetworkedComponent]
+public sealed partial class NinjaRoleComponent : BaseMindRoleComponent;
diff --git a/Content.Shared/Roles/Components/NukeopsRoleComponent.cs b/Content.Shared/Roles/Components/NukeopsRoleComponent.cs
new file mode 100644 (file)
index 0000000..57b9023
--- /dev/null
@@ -0,0 +1,9 @@
+using Robust.Shared.GameStates;
+
+namespace Content.Shared.Roles.Components;
+
+/// <summary>
+/// Added to mind role entities to tag that they are a nuke operative.
+/// </summary>
+[RegisterComponent, NetworkedComponent]
+public sealed partial class NukeopsRoleComponent : BaseMindRoleComponent;
diff --git a/Content.Shared/Roles/Components/ObserverRoleComponent.cs b/Content.Shared/Roles/Components/ObserverRoleComponent.cs
new file mode 100644 (file)
index 0000000..c7a451e
--- /dev/null
@@ -0,0 +1,9 @@
+using Robust.Shared.GameStates;
+
+namespace Content.Shared.Roles.Components;
+
+/// <summary>
+/// This is used to mark Observers properly, as they get Minds.
+/// </summary>
+[RegisterComponent, NetworkedComponent]
+public sealed partial class ObserverRoleComponent : BaseMindRoleComponent;
diff --git a/Content.Shared/Roles/Components/ParadoxCloneRoleComponent.cs b/Content.Shared/Roles/Components/ParadoxCloneRoleComponent.cs
new file mode 100644 (file)
index 0000000..40a6e86
--- /dev/null
@@ -0,0 +1,17 @@
+using Robust.Shared.GameStates;
+
+namespace Content.Shared.Roles.Components;
+
+/// <summary>
+/// Added to mind role entities to tag that they are a paradox clone.
+/// </summary>
+[RegisterComponent, NetworkedComponent]
+public sealed partial class ParadoxCloneRoleComponent : BaseMindRoleComponent
+{
+    /// <summary>
+    /// Name modifer applied to the player when they turn into a ghost.
+    /// Needed to be able to keep the original and the clone apart in dead chat.
+    /// </summary>
+    [DataField]
+    public LocId? NameModifier = "paradox-clone-ghost-name-modifier";
+}
diff --git a/Content.Shared/Roles/Components/RevolutionaryRoleComponent.cs b/Content.Shared/Roles/Components/RevolutionaryRoleComponent.cs
new file mode 100644 (file)
index 0000000..d4d4660
--- /dev/null
@@ -0,0 +1,16 @@
+using Robust.Shared.GameStates;
+
+namespace Content.Shared.Roles.Components;
+
+/// <summary>
+/// Added to mind role entities to tag that they are a Revolutionary.
+/// </summary>
+[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
+public sealed partial class RevolutionaryRoleComponent : BaseMindRoleComponent
+{
+    /// <summary>
+    /// For headrevs, how many people you have converted.
+    /// </summary>
+    [DataField, AutoNetworkedField]
+    public uint ConvertedCount = 0;
+}
diff --git a/Content.Shared/Roles/Components/RoleBriefingComponent.cs b/Content.Shared/Roles/Components/RoleBriefingComponent.cs
new file mode 100644 (file)
index 0000000..99eccf8
--- /dev/null
@@ -0,0 +1,13 @@
+using Robust.Shared.GameStates;
+
+namespace Content.Shared.Roles.Components;
+
+/// <summary>
+/// Adds a briefing to the character info menu, does nothing else.
+/// </summary>
+[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
+public sealed partial class RoleBriefingComponent : BaseMindRoleComponent
+{
+    [DataField(required: true), AutoNetworkedField]
+    public LocId Briefing;
+}
diff --git a/Content.Shared/Roles/Components/SiliconBrainRoleComponent.cs b/Content.Shared/Roles/Components/SiliconBrainRoleComponent.cs
new file mode 100644 (file)
index 0000000..d8eaebb
--- /dev/null
@@ -0,0 +1,9 @@
+using Robust.Shared.GameStates;
+
+namespace Content.Shared.Roles.Components;
+
+/// <summary>
+/// Used on Silicon's minds to get the appropriate mind role
+/// </summary>
+[RegisterComponent, NetworkedComponent]
+public sealed partial class SiliconBrainRoleComponent : BaseMindRoleComponent;
similarity index 84%
rename from Content.Shared/Roles/StartingMindRoleComponent.cs
rename to Content.Shared/Roles/Components/StartingMindRoleComponent.cs
index 768307d391c1ab919f07cc5a1ba8bcf84affd6aa..a37ed29a238d6aec2e9bbbdc7006f3ac41991901 100644 (file)
@@ -1,26 +1,25 @@
 using Robust.Shared.GameStates;
 using Robust.Shared.Prototypes;
 
-namespace Content.Shared.Roles;
+namespace Content.Shared.Roles.Components;
 
 /// <summary>
 /// This is most likely not the component you are looking for, almost nothing should be using this.
 /// Consider using GhostRoleComponent or AntagSelectionComponent instead.
 ///
 /// The specified mind role will be added to the mob on spawn.
-///
 /// </summary>
 [RegisterComponent, NetworkedComponent]
 public sealed partial class StartingMindRoleComponent : Component
 {
     /// <summary>
-    ///     The ID of the mind role to add
+    /// The ID of the mind role to add
     /// </summary>
     [DataField(required: true)]
     public EntProtoId MindRole;
 
     /// <summary>
-    ///     Add the mind role silently
+    /// Add the mind role silently
     /// </summary>
     [DataField]
     public bool Silent = true;
diff --git a/Content.Shared/Roles/Components/SubvertedSiliconRoleComponent.cs b/Content.Shared/Roles/Components/SubvertedSiliconRoleComponent.cs
new file mode 100644 (file)
index 0000000..6b62f45
--- /dev/null
@@ -0,0 +1,9 @@
+using Robust.Shared.GameStates;
+
+namespace Content.Shared.Roles.Components;
+
+/// <summary>
+/// Added to mind role entities to tag that they are a hacked borg.
+/// </summary>
+[RegisterComponent, NetworkedComponent]
+public sealed partial class SubvertedSiliconRoleComponent : BaseMindRoleComponent;
diff --git a/Content.Shared/Roles/Components/SurvivorRoleComponent.cs b/Content.Shared/Roles/Components/SurvivorRoleComponent.cs
new file mode 100644 (file)
index 0000000..1eee04d
--- /dev/null
@@ -0,0 +1,9 @@
+using Robust.Shared.GameStates;
+
+namespace Content.Shared.Roles.Components;
+
+/// <summary>
+/// Added to mind role entities to tag that they are survivor.
+/// </summary>
+[RegisterComponent, NetworkedComponent]
+public sealed partial class SurvivorRoleComponent : BaseMindRoleComponent;
diff --git a/Content.Shared/Roles/Components/ThiefRoleComponent.cs b/Content.Shared/Roles/Components/ThiefRoleComponent.cs
new file mode 100644 (file)
index 0000000..ee30833
--- /dev/null
@@ -0,0 +1,9 @@
+using Robust.Shared.GameStates;
+
+namespace Content.Shared.Roles.Components;
+
+/// <summary>
+/// Added to mind role entities to tag that they are a thief.
+/// </summary>
+[RegisterComponent, NetworkedComponent]
+public sealed partial class ThiefRoleComponent : BaseMindRoleComponent;
diff --git a/Content.Shared/Roles/Components/TraitorRoleComponent.cs b/Content.Shared/Roles/Components/TraitorRoleComponent.cs
new file mode 100644 (file)
index 0000000..7348fe0
--- /dev/null
@@ -0,0 +1,9 @@
+using Robust.Shared.GameStates;
+
+namespace Content.Shared.Roles.Components;
+
+/// <summary>
+/// Added to mind role entities to tag that they are a syndicate traitor.
+/// </summary>
+[RegisterComponent, NetworkedComponent]
+public sealed partial class TraitorRoleComponent : BaseMindRoleComponent;
diff --git a/Content.Shared/Roles/Components/WizardRoleComponent.cs b/Content.Shared/Roles/Components/WizardRoleComponent.cs
new file mode 100644 (file)
index 0000000..0d24897
--- /dev/null
@@ -0,0 +1,9 @@
+using Robust.Shared.GameStates;
+
+namespace Content.Shared.Roles.Components;
+
+/// <summary>
+/// Added to mind role entities to tag that they are a wizard.
+/// </summary>
+[RegisterComponent, NetworkedComponent]
+public sealed partial class WizardRoleComponent : Component;
diff --git a/Content.Shared/Roles/Components/ZombieRoleComponent.cs b/Content.Shared/Roles/Components/ZombieRoleComponent.cs
new file mode 100644 (file)
index 0000000..e137fb0
--- /dev/null
@@ -0,0 +1,9 @@
+using Robust.Shared.GameStates;
+
+namespace Content.Shared.Roles.Components;
+
+/// <summary>
+/// Added to mind role entities to tag that they are a zombie.
+/// </summary>
+[RegisterComponent, NetworkedComponent]
+public sealed partial class ZombieRoleComponent : BaseMindRoleComponent;
index 12d673feda31cc4105a625c5a6fda48305196d85..6526a3237af91633ae569d79610db2c167564fab 100644 (file)
@@ -2,6 +2,7 @@
 using System.Linq;
 using Content.Shared.Players;
 using Content.Shared.Players.PlayTimeTracking;
+using Content.Shared.Roles.Components;
 using Robust.Shared.Player;
 using Robust.Shared.Prototypes;
 using Robust.Shared.Utility;
index 4f307d8b319f4be799c57e5929fe48bdcb2a0072..3269680c32d67a40fb8ef87863ddf1b564195e84 100644 (file)
@@ -5,7 +5,7 @@ using Content.Shared.CCVar;
 using Content.Shared.Database;
 using Content.Shared.GameTicking;
 using Content.Shared.Mind;
-using Content.Shared.Roles.Jobs;
+using Content.Shared.Roles.Components;
 using Content.Shared.Whitelist;
 using Robust.Shared.Audio;
 using Robust.Shared.Audio.Systems;
diff --git a/Content.Shared/Roles/SiliconBrainRoleComponent.cs b/Content.Shared/Roles/SiliconBrainRoleComponent.cs
deleted file mode 100644 (file)
index 72ad0a8..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-namespace Content.Shared.Roles;
-
-/// <summary>
-///     Used on Silicon's minds to get the appropriate mind role
-/// </summary>
-[RegisterComponent]
-public sealed partial class SiliconBrainRoleComponent : BaseMindRoleComponent
-{
-}
diff --git a/Resources/Locale/en-US/ghost/observer-role.ftl b/Resources/Locale/en-US/ghost/observer-role.ftl
deleted file mode 100644 (file)
index acb30b1..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-observer-role-name = Observer
-
index 95d49c1b83d13c6236dd8bc552b39c677c608a41..d387903ec4a34d3de69c0ed7034e37038238ca9c 100644 (file)
     roleType: SoloAntagonist
     subtype: role-subtype-changeling
   - type: ChangelingRole
+  - type: RoleBriefing
+    briefing: changeling-briefing