]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Mark all hostile mind roles as antag (#35832)
authorErrant <35878406+Errant-4@users.noreply.github.com>
Sun, 16 Mar 2025 22:11:31 +0000 (23:11 +0100)
committerGitHub <noreply@github.com>
Sun, 16 Mar 2025 22:11:31 +0000 (23:11 +0100)
* dummy antag prototypes

* I'll deal with YOU later!

* remove redundant soloantag definitions

* doctor, we left the scalpel in the patient

* minor cleanup

Resources/Locale/en-US/prototypes/roles/antags.ftl
Resources/Prototypes/Entities/Mobs/NPCs/animals.yml
Resources/Prototypes/Entities/Mobs/NPCs/carp.yml
Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml
Resources/Prototypes/Entities/Mobs/NPCs/space.yml
Resources/Prototypes/Entities/Mobs/Player/dragon.yml
Resources/Prototypes/Roles/Antags/generic.yml [new file with mode: 0644]
Resources/Prototypes/Roles/MindRoles/mind_roles.yml

index ada25a4a0ac5714667013feafb8fb7b24c4a4372..a57d27e57f962f2705a91c1d9ecade84df8698bb 100644 (file)
@@ -1,4 +1,12 @@
-roles-antag-syndicate-agent-name = Syndicate agent
+roles-antag-generic-solo-antagonist-name = Solo Antagonist
+
+roles-antag-generic-free-agent-name = Free Agent
+
+roles-antag-generic-team-antagonist-name = Team Antagonist
+
+roles-antag-generic-silicon-antagonist-name = Silicon Antagonist
+
+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
index 06cd4debd34b17aced9aceb4558fc804bfbffe9b..3b56f53dcee585f35bac8bf9b5aa94a0cfda4f99 100644 (file)
     description: ghost-role-information-mothroach-description
     rules: ghost-role-information-freeagent-rules
     mindRoles:
-    - MindRoleGhostRoleFreeAgent
+    - MindRoleGhostRoleFreeAgentHarmless
   - type: Fixtures
     fixtures:
       fix1:
     description: ghost-role-information-mouse-description
     rules: ghost-role-information-freeagent-rules
     mindRoles:
-    - MindRoleGhostRoleFreeAgent
+    - MindRoleGhostRoleFreeAgentHarmless
   - type: GhostTakeoverAvailable
   - type: Speech
     speechSounds: Squeak
index 45a45e89957fb4288df5fc6318e22bf545fb0a9a..dbceb9c694f5b13088b4026399ef571e05e72a42 100644 (file)
       description: ghost-role-information-sentient-carp-description
       rules: ghost-role-information-space-dragon-summoned-carp-rules
       mindRoles:
-      - MindRoleGhostRoleTeamAntagonist
+      - MindRoleGhostRoleTeamAntagonistFlock
       raffle:
         settings: short
     - type: GhostTakeoverAvailable
index 9d193a52e60109d4e306f7dca16cac6cc0331a3b..280df955aff8ca35909fccbccdb518255fd2eff7 100644 (file)
     description: ghost-role-information-honkbot-description
     rules: ghost-role-information-freeagent-rules
     mindRoles:
-    - MindRoleGhostRoleFreeAgent
+    - MindRoleGhostRoleFreeAgentHarmless
     raffle:
       settings: default
   - type: GhostTakeoverAvailable
     description: ghost-role-information-jonkbot-description
     rules: ghost-role-information-freeagent-rules
     mindRoles:
-    - MindRoleGhostRoleFreeAgent
+    - MindRoleGhostRoleFreeAgentHarmless
     raffle:
       settings: default
   - type: InteractionPopup
     description: ghost-role-information-mimebot-description
     rules: ghost-role-information-freeagent-rules
     mindRoles:
-    - MindRoleGhostRoleFreeAgent
+    - MindRoleGhostRoleFreeAgentHarmless
     raffle:
       settings: default
   - type: GhostTakeoverAvailable
index 7c549e484de7132962f3774f99bdd05c2ca1a78a..4ae6813963dd60350bc3a89d532e27706f146a51 100644 (file)
     description: ghost-role-information-snail-description
     rules: ghost-role-information-freeagent-rules
     mindRoles:
-    - MindRoleGhostRoleFreeAgent
+    - MindRoleGhostRoleFreeAgentHarmless
   - type: GhostTakeoverAvailable
   - type: Emoting
   - type: Sprite
   id: MobSnailInstantDeath
   suffix: Smite
   components:
+  - type: GhostRole
+    mindRoles:
+    - MindRoleGhostRoleFreeAgent
   - type: MobStateActions
     actions:
       Alive:
index 65137825fc2230706e6a5e13146b258b06be84ba..91d1b95b6e2ae53d99a16145f0b7d1acf2ac67c7 100644 (file)
   components:
   - type: Dragon
     spawnRiftAction: ActionSpawnRift
+  - type: GhostRole
+    mindRoles:
+    - MindRoleDragon
   - type: ActionGun
     action: ActionDragonsBreath
     gunProto: DragonsBreathGun
diff --git a/Resources/Prototypes/Roles/Antags/generic.yml b/Resources/Prototypes/Roles/Antags/generic.yml
new file mode 100644 (file)
index 0000000..6a1cd12
--- /dev/null
@@ -0,0 +1,23 @@
+- type: antag
+  id: GenericAntagonist
+  name: roles-antag-generic-solo-antagonist-name
+  antagonist: true
+  objective: never-shown
+
+- type: antag
+  id: GenericTeamAntagonist
+  name: roles-antag-generic-team-antagonist-name
+  antagonist: true
+  objective: never-shown
+
+- type: antag
+  id: GenericFreeAgent
+  name: roles-antag-generic-free-agent-name
+  antagonist: true
+  objective: never-shown
+
+- type: antag
+  id: GenericSiliconAntagonist
+  name: roles-antag-generic-silicon-antagonist-name
+  antagonist: true
+  objective: never-shown
index a690ab0c0db3e8f3ae9dac3bc43f05f78392eb43..31e8a98e7ac7a5068e21dc5efe14240de3f0f83a 100644 (file)
@@ -13,6 +13,8 @@
   components:
   - type: MindRole
     antag: true
+    antagPrototype: GenericAntagonist
+    roleType: SoloAntagonist
 
 #Observer
 - type: entity
   - type: GhostRoleMarkerRole
 
 - type: entity
-  parent: BaseMindRole
+  parent: MindRoleGhostRoleNeutral
   id: MindRoleGhostRoleFamiliar
   name: Ghost Role (Familiar)
   components:
   - type: MindRole
     roleType: Familiar
-  - type: GhostRoleMarkerRole
 
 - type: entity
-  parent: BaseMindRole
+  parent: [ BaseMindRoleAntag, MindRoleGhostRoleNeutral ]
   id: MindRoleGhostRoleFreeAgent
   name: Ghost Role (Free Agent)
   components:
   - type: MindRole
     roleType: FreeAgent
-  - type: GhostRoleMarkerRole
+    antagPrototype: GenericFreeAgent
 
 - type: entity
-  parent: BaseMindRole
+  parent: MindRoleGhostRoleNeutral
+  id: MindRoleGhostRoleFreeAgentHarmless
+  name: Ghost Role (Free Agent)
+  components:
+  - type: MindRole
+    roleType: FreeAgent
+
+- type: entity
+  parent: MindRoleGhostRoleNeutral
   id: MindRoleGhostRoleSilicon
   name: Ghost Role (Silicon)
   components:
   - type: MindRole
     roleType: Silicon
-  - type: GhostRoleMarkerRole
 
 - type: entity
-  parent: BaseMindRole
+  parent: [ BaseMindRoleAntag, MindRoleGhostRoleNeutral ]
   id: MindRoleGhostRoleSiliconAntagonist
   name: Ghost Role (Silicon Antagonist)
   components:
   - type: MindRole
     roleType: SiliconAntagonist
-  - type: GhostRoleMarkerRole
+    antagPrototype: GenericSiliconAntagonist
 
 - type: entity
-  parent: BaseMindRole
+  parent: [ BaseMindRoleAntag, MindRoleGhostRoleNeutral ]
   id: MindRoleGhostRoleSoloAntagonist
   name: Ghost Role (Solo Antagonist)
-  components:
-  - type: MindRole
-    roleType: SoloAntagonist
-  - type: GhostRoleMarkerRole
 
 - type: entity
-  parent: BaseMindRole
+  parent: [ BaseMindRoleAntag, MindRoleGhostRoleNeutral ]
   id: MindRoleGhostRoleTeamAntagonist
   name: Ghost Role (Team Antagonist)
   components:
   - type: MindRole
     roleType: TeamAntagonist
-  - type: GhostRoleMarkerRole
-
+    antagPrototype: GenericTeamAntagonist
 
+# This should be used (or inherited) for team antags that are summoned or converted in large quantities, and are "secondary" to other antags
+# TODO: sort weight
+- type: entity
+  parent: MindRoleGhostRoleTeamAntagonist
+  id: MindRoleGhostRoleTeamAntagonistFlock
+  name: Ghost Role (Team Antagonist)
 
 # The Job MindRole holds the mob's Job prototype
 - type: entity
   parent: BaseMindRole
   id: MindRoleJob
   name: Job Role
-#  description:
-  # MindRoleComponent.JobPrototype is filled by SharedJobSystem
+  # JobPrototype is filled by SharedJobSystem
 
 # Silicon
 - type: entity
   parent: BaseMindRoleAntag
   id: MindRoleDragon
   name: Dragon Role
-#  description:
   components:
   - type: MindRole
     antagPrototype: Dragon
   parent: BaseMindRoleAntag
   id: MindRoleNinja
   name: Space Ninja Role
-#  description: mind-role-ninja-description
   components:
   - type: MindRole
     antagPrototype: SpaceNinja
-    roleType: SoloAntagonist
     exclusiveAntag: true
   - type: NinjaRole
 
   parent: BaseMindRoleAntag
   id: MindRoleNukeops
   name: Nukeops Operative Role
-#  description: mind-role-nukeops-description
   components:
   - type: MindRole
     roleType: TeamAntagonist
   parent: MindRoleNukeops
   id: MindRoleNukeopsMedic
   name: Nukeops Medic Role
-#  description: mind-role-nukeops-medic-description
   components:
   - type: MindRole
     antagPrototype: NukeopsMedic
   parent: MindRoleNukeops
   id: MindRoleNukeopsCommander
   name: Nukeops Commander Role
-#  description: mind-role-nukeops-commander-description
   components:
   - type: MindRole
     antagPrototype: NukeopsCommander
   parent: BaseMindRoleAntag
   id: MindRoleHeadRevolutionary
   name: Head Revolutionary Role
-#  description: mind-role-head-revolutionary-description
   components:
   - type: MindRole
     antagPrototype: HeadRev
   parent: MindRoleHeadRevolutionary
   id: MindRoleRevolutionary
   name: Revolutionary Role
-#  description: mind-role-revolutionary-description
   components:
   - type: MindRole
     antagPrototype: Rev
   parent: BaseMindRoleAntag
   id: MindRoleThief
   name: Thief Role
-#  description: mind-role-thief-description
   components:
   - type: MindRole
     antagPrototype: Thief
-    roleType: SoloAntagonist
   - type: ThiefRole
 
 # Traitors
   parent: BaseMindRoleAntag
   id: MindRoleTraitor
   name: Traitor Role
-#  description: mind-role-traitor-description
   components:
   - type: MindRole
     antagPrototype: Traitor
     exclusiveAntag: true
-    roleType: SoloAntagonist
   - type: TraitorRole
 
 - type: entity
   parent: MindRoleTraitor
   id: MindRoleTraitorSleeper
   name: Sleeper Agent Role
-#  description: mind-role-traitor-sleeper-description
   components:
   - type: MindRole
     antagPrototype: TraitorSleeper
   parent: MindRoleTraitor
   id: MindRoleTraitorReinforcement
   name: Syndicate Reinforcement Role
-  #  description: mind-role-syndicate-reinforcement-description
   components:
-    - type: MindRole
-      roleType: TeamAntagonist
+  - type: MindRole
+    roleType: TeamAntagonist
+    antagPrototype: GenericTeamAntagonist
 
 # Wizards
 - type: entity
   parent: BaseMindRoleAntag
   id: MindRoleWizard
   name: Wizard Role
-  #  description: these are all commented out
   components:
   - type: MindRole
     antagPrototype: Wizard
     exclusiveAntag: true
-    roleType: SoloAntagonist
   - type: WizardRole
 
 # Zombie Squad
   parent: BaseMindRoleAntag
   id: MindRoleInitialInfected
   name: Initial Infected Role
-#  description: mind-role-initial-infected-description
   components:
   - type: MindRole
     antagPrototype: InitialInfected
   - type: InitialInfectedRole
 
 - type: entity
-  parent: BaseMindRoleAntag
+  parent: MindRoleGhostRoleTeamAntagonistFlock
   id: MindRoleZombie
   name: Zombie Role
-#  description: mind-role-zombie-description
   components:
   - type: MindRole
     antagPrototype: Zombie