diff --git a/Content.Server/Antag/Components/AntagImmuneComponent.cs b/Content.Server/Antag/Components/AntagImmuneComponent.cs new file mode 100644 index 0000000000..3ae8e049f6 --- /dev/null +++ b/Content.Server/Antag/Components/AntagImmuneComponent.cs @@ -0,0 +1,7 @@ +namespace Content.Server.Antag.Components; + +[RegisterComponent] +public partial class AntagImmuneComponent : Component +{ + +} diff --git a/Content.Server/Zombies/InitialInfectedExemptComponent.cs b/Content.Server/Zombies/InitialInfectedExemptComponent.cs deleted file mode 100644 index f2dfda3f87..0000000000 --- a/Content.Server/Zombies/InitialInfectedExemptComponent.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace Content.Server.Zombies; - -[RegisterComponent] -public sealed partial class InitialInfectedExemptComponent : Component -{ - -} diff --git a/Resources/Locale/en-US/prototypes/roles/antags.ftl b/Resources/Locale/en-US/prototypes/roles/antags.ftl index f0038b0eb9..ba43d4ff85 100644 --- a/Resources/Locale/en-US/prototypes/roles/antags.ftl +++ b/Resources/Locale/en-US/prototypes/roles/antags.ftl @@ -1,6 +1,9 @@ roles-antag-syndicate-agent-name = Syndicate agent roles-antag-syndicate-agent-objective = Complete your objectives without being caught. +roles-antag-syndicate-agent-sleeper-name = Syndicate sleeper agent +roles-antag-syndicate-agent-sleeper-objective = A form of syndicate agent that can activate at any point in the middle of the shift. + roles-antag-initial-infected-name = Initial Infected roles-antag-initial-infected-objective = Once you turn, infect as many other crew members as possible. diff --git a/Resources/Prototypes/Entities/Mobs/Player/humanoid.yml b/Resources/Prototypes/Entities/Mobs/Player/humanoid.yml index 3941dbcc9c..bd43d5d187 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/humanoid.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/humanoid.yml @@ -12,7 +12,7 @@ parent: EventHumanoid components: - type: MindShield - - type: InitialInfectedExempt + - type: AntagImmune ## Death Squad @@ -30,7 +30,6 @@ - NamesLastMilitary - type: RandomHumanoidSpawner settings: DeathSquad - - type: InitialInfectedExempt - type: randomHumanoidSettings id: DeathSquad @@ -66,7 +65,6 @@ - NamesLastMilitary - type: RandomHumanoidSpawner settings: ERTLeader - - type: InitialInfectedExempt - type: randomHumanoidSettings id: ERTLeader @@ -96,7 +94,6 @@ state: ertleadereva - type: RandomHumanoidSpawner settings: ERTLeaderEVA - - type: InitialInfectedExempt - type: randomHumanoidSettings id: ERTLeaderEVA @@ -117,7 +114,6 @@ components: - type: RandomHumanoidSpawner settings: ERTLeaderEVALecter - - type: InitialInfectedExempt - type: randomHumanoidSettings id: ERTLeaderEVALecter @@ -453,7 +449,6 @@ state: cburn - type: RandomHumanoidSpawner settings: CBURNAgent - - type: InitialInfectedExempt - type: randomHumanoidSettings id: CBURNAgent @@ -470,6 +465,7 @@ nameSegments: - NamesFirstMilitary - NamesLastMilitary + ## Central Command - type: entity @@ -481,7 +477,6 @@ state: centcom - type: RandomHumanoidSpawner settings: CentcomOfficial - - type: InitialInfectedExempt - type: randomHumanoidSettings id: CentcomOfficial diff --git a/Resources/Prototypes/GameRules/events.yml b/Resources/Prototypes/GameRules/events.yml index 34453db345..131704670e 100644 --- a/Resources/Prototypes/GameRules/events.yml +++ b/Resources/Prototypes/GameRules/events.yml @@ -431,7 +431,7 @@ blacklist: components: - ZombieImmune - - InitialInfectedExempt + - AntagImmune briefing: text: zombie-patientzero-role-greeting color: Plum @@ -485,7 +485,7 @@ - type: entity noSpawn: true parent: BaseTraitorRule - id: SleeperAgentsRule + id: SleeperAgents components: - type: StationEvent earliestStart: 30 @@ -498,13 +498,17 @@ - type: AlertLevelInterceptionRule - type: AntagSelection definitions: - - prefRoles: [ Traitor ] + - prefRoles: [ TraitorSleeper ] + fallbackRoles: [ Traitor ] min: 1 max: 4 # DeltaV - Was 2 now 4 playerRatio: 10 + blacklist: + components: + - AntagImmune mindComponents: - type: TraitorRole - prototype: Traitor + prototype: TraitorSleeper - type: entity id: MassHallucinations diff --git a/Resources/Prototypes/GameRules/roundstart.yml b/Resources/Prototypes/GameRules/roundstart.yml index ee7b73008a..d7cc09e22e 100644 --- a/Resources/Prototypes/GameRules/roundstart.yml +++ b/Resources/Prototypes/GameRules/roundstart.yml @@ -181,6 +181,9 @@ - prefRoles: [ Traitor ] max: 8 playerRatio: 10 + blacklist: + components: + - AntagImmune lateJoinAdditional: true mindComponents: - type: TraitorRole @@ -244,7 +247,7 @@ blacklist: components: - ZombieImmune - - InitialInfectedExempt + - AntagImmune briefing: text: zombie-patientzero-role-greeting color: Plum diff --git a/Resources/Prototypes/Roles/Antags/traitor.yml b/Resources/Prototypes/Roles/Antags/traitor.yml index 98fdb0ee47..67686203f5 100644 --- a/Resources/Prototypes/Roles/Antags/traitor.yml +++ b/Resources/Prototypes/Roles/Antags/traitor.yml @@ -7,3 +7,10 @@ requirements: - !type:OverallPlaytimeRequirement # DeltaV - Playtime requirement time: 86400 # DeltaV - 24 hours + +- type: antag + id: TraitorSleeper + name: roles-antag-syndicate-agent-sleeper-name + antagonist: true + setPreference: true + objective: roles-antag-syndicate-agent-sleeper-objective