]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Ghostrole rule updates (#29249)
authorTsjipTsjip <19798667+TsjipTsjip@users.noreply.github.com>
Fri, 21 Jun 2024 09:41:54 +0000 (11:41 +0200)
committerGitHub <noreply@github.com>
Fri, 21 Jun 2024 09:41:54 +0000 (04:41 -0500)
* First batch of ghostrole rule updates

* Second pass

* Re-word free agent

* Apply review comments

Co-authored-by: Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>
* You heard it here first folks

God rules are weird to write.

Co-authored-by: Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>
* Honkbot -> Free Agent

Co-authored-by: Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>
* Mimebot -> Free Agent

Co-authored-by: Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>
* Jonkbot -> Free Agent

Co-authored-by: Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>
* Softer blue

---------

Co-authored-by: Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>
25 files changed:
Content.Server/Ghost/Roles/Components/ToggleableGhostRoleComponent.cs
Content.Server/Ghost/Roles/ToggleableGhostRoleSystem.cs
Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl
Resources/Prototypes/Entities/Markers/Spawners/ghost_roles.yml
Resources/Prototypes/Entities/Mobs/NPCs/animals.yml
Resources/Prototypes/Entities/Mobs/NPCs/behonker.yml
Resources/Prototypes/Entities/Mobs/NPCs/carp.yml
Resources/Prototypes/Entities/Mobs/NPCs/elemental.yml
Resources/Prototypes/Entities/Mobs/NPCs/hellspawn.yml
Resources/Prototypes/Entities/Mobs/NPCs/pets.yml
Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml
Resources/Prototypes/Entities/Mobs/NPCs/revenant.yml
Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml
Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml
Resources/Prototypes/Entities/Mobs/Player/dragon.yml
Resources/Prototypes/Entities/Mobs/Player/familiars.yml
Resources/Prototypes/Entities/Mobs/Player/guardian.yml
Resources/Prototypes/Entities/Mobs/Player/humanoid.yml
Resources/Prototypes/Entities/Mobs/Player/skeleton.yml
Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/bread.yml
Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/cake.yml
Resources/Prototypes/Entities/Objects/Devices/Syndicate_Gadgets/reinforcement_teleporter.yml
Resources/Prototypes/Entities/Objects/Fun/pai.yml
Resources/Prototypes/Entities/Objects/Specific/Robotics/mmi.yml
Resources/Prototypes/XenoArch/Effects/utility_effects.yml

index fc10d55069ee1fa891d8cf60e1a38ce7fd281e95..ef1b1dbed99ee6d878ce025899d7ff55875d5e83 100644 (file)
@@ -24,6 +24,9 @@ public sealed partial class ToggleableGhostRoleComponent : Component
     [DataField("roleDescription")]
     public string RoleDescription = string.Empty;
 
+    [DataField("roleRules")]
+    public string RoleRules = string.Empty;
+
     [DataField("wipeVerbText")]
     public string WipeVerbText = string.Empty;
 
index 9bab229c0019db180fecffaee0a8a7811834e185..8354a24f90d19d6a73acd23cf543be2b1d55424e 100644 (file)
@@ -53,13 +53,14 @@ public sealed class ToggleableGhostRoleSystem : EntitySystem
         EnsureComp<GhostTakeoverAvailableComponent>(uid);
         ghostRole.RoleName = Loc.GetString(component.RoleName);
         ghostRole.RoleDescription = Loc.GetString(component.RoleDescription);
+        ghostRole.RoleRules = Loc.GetString(component.RoleRules);
     }
 
     private void OnExamined(EntityUid uid, ToggleableGhostRoleComponent component, ExaminedEvent args)
     {
         if (!args.IsInDetailsRange)
             return;
-        
+
         if (TryComp<MindContainerComponent>(uid, out var mind) && mind.HasMind)
         {
             args.PushMarkup(Loc.GetString(component.ExamineTextMindPresent));
index 4e6ec1f18863b908b668afaa7fd13ff0d102ef27..98f31e0ab074f59397a6cc6b477adc840972c244 100644 (file)
@@ -3,6 +3,26 @@ ghost-role-component-default-rules = All normal rules apply unless an administra
                                      You don't remember any of your previous life, and you don't remember anything you learned as a ghost.
                                      You are allowed to remember knowledge about the game in general, such as how to cook, how to use objects, etc.
                                      You are absolutely [color=red]NOT[/color] allowed to remember, say, the name, appearance, etc. of your previous character.
+ghost-role-information-nonantagonist-rules = You are a [color=green][bold]Non-antagonist[/bold][/color]. You should generally not seek to harm the station and its crew.
+                                             You don't remember any of your previous life, and you don't remember anything you learned as a ghost.
+                                             You are allowed to remember knowledge about the game in general, such as how to cook, how to use objects, etc.
+                                             You are absolutely [color=red]NOT[/color] allowed to remember, say, the name, appearance, etc. of your previous character.
+ghost-role-information-freeagent-rules = You are a [color=yellow][bold]Free Agent[/bold][/color]. You are free to act as either an antagonist or a non-antagonist.
+                                         You don't remember any of your previous life, and you don't remember anything you learned as a ghost.
+                                         You are allowed to remember knowledge about the game in general, such as how to cook, how to use objects, etc.
+                                         You are absolutely [color=red]NOT[/color] allowed to remember, say, the name, appearance, etc. of your previous character.
+ghost-role-information-antagonist-rules = You are a [color=red][bold]Solo Antagonist[/bold][/color]. Your intentions are clear, and harmful to the station and its crew.
+                                          You don't remember any of your previous life, and you don't remember anything you learned as a ghost.
+                                          You are allowed to remember knowledge about the game in general, such as how to cook, how to use objects, etc.
+                                          You are absolutely [color=red]NOT[/color] allowed to remember, say, the name, appearance, etc. of your previous character.
+ghost-role-information-familiar-rules = You are a [color=#6495ed][bold]Familiar[/bold][/color]. Serve the interests of your master, whatever those may be.
+                                        You don't remember any of your previous life, and you don't remember anything you learned as a ghost.
+                                        You are allowed to remember knowledge about the game in general, such as how to cook, how to use objects, etc.
+                                        You are absolutely [color=red]NOT[/color] allowed to remember, say, the name, appearance, etc. of your previous character.
+ghost-role-information-silicon-rules = You are a [color=#6495ed][bold]Silicon[/bold][/color]. Obey your laws. You are a Free Agent if you are not currently bound by any laws.
+                                       You don't remember any of your previous life, and you don't remember anything you learned as a ghost.
+                                       You are allowed to remember knowledge about the game in general, such as how to cook, how to use objects, etc.
+                                       You are absolutely [color=red]NOT[/color] allowed to remember, say, the name, appearance, etc. of your previous character.
 
 ghost-role-information-mouse-name = Mouse
 ghost-role-information-mouse-description = A hungry and mischievous mouse.
@@ -12,6 +32,7 @@ ghost-role-information-mothroach-description = A cute but mischievous mothroach.
 
 ghost-role-information-giant-spider-name = Giant spider
 ghost-role-information-giant-spider-description = This station's inhabitants look mighty tasty, and your sticky web is perfect to catch them!
+ghost-role-information-giant-spider-rules = You are a [color=red][bold]Team Antagonist[/bold][/color] with all other giant spiders.
 
 ghost-role-information-cognizine-description = Made conscious with the magic of cognizine.
 
@@ -26,6 +47,7 @@ ghost-role-information-slimes-description = An ordinary slime with no special ne
 
 ghost-role-information-angry-slimes-name = Slime
 ghost-role-information-angry-slimes-description = Everyone around you irritates your instincts, destroy them!
+ghost-role-information-angry-slimes-rules = You are a [color=red][bold]Team Antagonist[/bold][/color] with all other angry slimes.
 
 ghost-role-information-smile-name = Smile the Slime
 ghost-role-information-smile-description = The sweetest creature in the world. Smile Slime!
@@ -35,11 +57,10 @@ ghost-role-information-punpun-description = An honorable member of the monkey so
 
 ghost-role-information-xeno-name = Xeno
 ghost-role-information-xeno-description = You are a xeno, co-operate with your hive to kill all crewmembers!
-ghost-role-information-xeno-rules = You are an antagonist, smack, slash, and wack!
+ghost-role-information-xeno-rules = You are a [color=red][bold]Team Antagonist[/bold][/color] with all other xenos.
 
 ghost-role-information-revenant-name = Revenant
 ghost-role-information-revenant-description = You are a Revenant. Use your powers to harvest souls and unleash chaos upon the crew. Unlock new abilities with the essence you harvest.
-ghost-role-information-revenant-rules = You are an antagonist, harvest, defile, and drive the crew insane.
 
 ghost-role-information-kangaroo-name = Kangaroo
 ghost-role-information-kangaroo-description = You're a kangaroo! Do whatever kangaroos do.
@@ -51,31 +72,17 @@ ghost-role-information-kobold-name = Kobold
 ghost-role-information-kobold-description = Be the little gremlin you are, yell at people and beg for meat!
 
 ghost-role-information-rat-king-name = Rat King
-ghost-role-information-rat-king-description = You are the Rat King, scavenge food in order to produce rat minions to do your bidding.
-ghost-role-information-rat-king-rules = You are an antagonist, scavenge, attack, and grow your hoard!
+ghost-role-information-rat-king-description = You are the Rat King, your interests are food, food, and more food. Cooperate with or fight against the station for food. Did I say food interests you?
 
 ghost-role-information-rat-servant-name = Rat Servant
 ghost-role-information-rat-servant-description = You are a Rat Servant. You must follow your king's orders.
-ghost-role-information-rat-servant-rules = You are an antagonist, scavenge, attack, and serve your king!
-
-ghost-role-information-salvage-carp-name = Space carp on salvage wreck
-ghost-role-information-salvage-carp-description = Defend the loot inside the salvage wreck!
 
 ghost-role-information-sentient-carp-name = Sentient Carp
 ghost-role-information-sentient-carp-description = Help the dragon flood the station with carps!
 
-ghost-role-information-salvage-shark-name = Space sharkminnow on salvage wreck
-ghost-role-information-salvage-shark-description = Help the younger fellow carp protect their prey. Smell the blood!
-
 ghost-role-information-willow-name = Willow the kangaroo
 ghost-role-information-willow-description = You're a kangaroo named willow! Willow likes to box.
 
-ghost-role-information-space-tick-name = Space tick
-ghost-role-information-space-tick-description = Wreak havoc on the station!
-
-ghost-role-information-salvage-tick-name = Space tick on salvage wreck
-ghost-role-information-salvage-tick-description = Defend the loot inside the salvage wreck!
-
 ghost-role-information-honkbot-name = Honkbot
 ghost-role-information-honkbot-description = An artificial being of pure evil.
 
@@ -85,39 +92,13 @@ ghost-role-information-jonkbot-description = An artificial being of pure evil.
 ghost-role-information-mimebot-name = Mimebot
 ghost-role-information-mimebot-description = A Mimebot, act like a mime but don't act like a greytider.
 
-ghost-role-information-taxibot-name = TaxiBot
-ghost-role-information-taxibot-description = Drive the station crew to their destination.
-
 ghost-role-information-supplybot-name = SupplyBot
 ghost-role-information-supplybot-description = Deliver goods around the station.
 
 ghost-role-information-space-bear-name = Space bear
 ghost-role-information-space-bear-description = Your tummy rumbles, and these people look really yummy... What a feast!
 
-ghost-role-information-salvage-bear-name = Space bear on salvage wreck
-ghost-role-information-salvage-bear-description = Defend the loot inside the salvage wreck!
-
-ghost-role-information-space-kangaroo-name = Space kangaroo
-ghost-role-information-space-kangaroo-description = Give the crew a taste of your sharp claws!
-
-ghost-role-information-salvage-kangaroo-name = Space kangaroo on salvage wreck
-ghost-role-information-salvage-kangaroo-description = Defend the loot inside the salvage wreck!
-
-ghost-role-information-space-spider-name = Space spider
-ghost-role-information-space-spider-description =  Space spiders are just as aggressive as regular spiders, feed.
-
-ghost-role-information-salvage-spider-name = Space spider on salvage wreck
-ghost-role-information-salvage-spider-description = Space spiders are just as aggressive as regular spiders, feed.
-
-ghost-role-information-space-cobra-name = Space cobra
-ghost-role-information-space-cobra-description = Space cobras really don't like guests, and will always snack on a visitor.
-
-ghost-role-information-salvage-cobra-name = Space cobra on salvage wreck
-ghost-role-information-salvage-cobra-description = Space cobras really don't like guests, and will always snack on a visitor.
-
-ghost-role-information-salvage-flesh-name = Aberrant flesh on salvage wreck
-ghost-role-information-salvage-flesh-description = Defend the loot inside the salvage wreck!
-
+# Still exists as a commented out reference for Tropico. Keeping it around. -TsjipTsjip, 2024-06-20
 ghost-role-information-tropico-name = Tropico
 ghost-role-information-tropico-description = The noble companion of Atmosia, and its most stalwart defender. Viva!
 
@@ -135,7 +116,11 @@ ghost-role-information-ifrit-description = Listen to your owner. Don't tank dama
 
 ghost-role-information-space-dragon-name = Space dragon
 ghost-role-information-space-dragon-description = Call in 3 carp rifts and take over this quadrant! You have only 5 minutes in between each rift before you will disappear.
+ghost-role-information-space-dragon-rules = You are a [color=red][bold]Team Antagonist[/bold][/color] with all your summoned carp.
+ghost-role-information-space-dragon-summoned-carp-rules = You are a [color=red][bold]Team Antagonist[/bold][/color] with your dragon and its allies.
+
 ghost-role-information-space-dragon-dungeon-description = Defend the expedition dungeon with your fishy comrades!
+ghost-role-information-space-dragon-dungeon-rules = You are a [color=red][bold]Team Antagonist[/bold][/color] with all dungeon mobs.
 
 ghost-role-information-cluwne-name = Cluwne
 ghost-role-information-cluwne-description = Become a pitiful cluwne, your only goal in life is to find a sweet release from your suffering (usually by being beaten to death). A cluwne is not an antagonist but may defend itself. Crewmembers may murder cluwnes freely.
@@ -147,19 +132,13 @@ ghost-role-information-skeleton-biker-name = Skeleton Biker
 ghost-role-information-skeleton-biker-description = Ride around on your sweet ride.
 
 ghost-role-information-closet-skeleton-name = Closet Skeleton
-ghost-role-information-closet-skeleton-description = Wreak havoc! You are a primordial force with no allegiance. Live happily with the crew or wage sweet skeletal war.
-
-ghost-role-information-onestar-mecha-name = Onestar Mecha
-ghost-role-information-onestar-mecha-description = You are an experimental mecha created by who-knows-what, all you know is that you have weapons and you detect fleshy moving targets nearby...
-ghost-role-information-onestar-mecha-rules = Use your weapons to cause havoc. You are an antagonist.
+ghost-role-information-closet-skeleton-description = You are arguably one of the oldest members of the station! Get your old job back, or cause chaos! The world is yours to shape.
 
 ghost-role-information-remilia-name = Remilia, the chaplain's familiar
-ghost-role-information-remilia-description = Obey your master. Eat fruit.
-ghost-role-information-remilia-rules = You are an intelligent fruit bat. Follow the chaplain around. Don't cause any trouble unless the chaplain tells you to.
+ghost-role-information-remilia-description = Follow and obey the chaplain. Eat fruit. Screech loudly into people's ears and write it off as echolocation.
 
 ghost-role-information-cerberus-name = Cerberus, Evil Familiar
 ghost-role-information-cerberus-description = Obey your master. Spread chaos.
-ghost-role-information-cerberus-rules = You are an intelligent, demonic dog. Try to help the chaplain and any of his flock. As an antagonist, you're otherwise unrestrained.
 
 ghost-role-information-ert-leader-name = ERT Leader
 ghost-role-information-ert-leader-description = Lead a team of specialists to resolve the station's issues.
@@ -185,70 +164,64 @@ ghost-role-information-cburn-agent-description = A highly trained CentCom agent,
 ghost-role-information-centcom-official-name = CentComm official
 ghost-role-information-centcom-official-description = Perform CentComm related duties such as inspect the station, jotting down performance reviews for heads of staff, and managing the fax machine.
 
-ghost-role-information-nukeop-rules = You are a syndicate operative tasked with the destruction of the station. As an antagonist, do whatever is required to complete this task.
+ghost-role-information-nukeop-rules = You are a [color=red][bold]Team Antagonist[/bold][/color] with all other nuclear operatives. Covert syndicate agents are not guaranteed to help you.
 
 ghost-role-information-loneop-name = Lone Operative
 ghost-role-information-loneop-description = You are a lone nuclear operative. Destroy the station!
-ghost-role-information-loneop-rules = You are a syndicate operative tasked with the destruction of the station. As an antagonist, do whatever is required to complete this task.
+ghost-role-information-loneop-rules = You are a [color=red][bold]Team Antagonist[/bold][/color] with all other nuclear operatives. Covert syndicate agents are not guaranteed to help you.
 
 ghost-role-information-behonker-name = Behonker
 ghost-role-information-behonker-description = You are an antagonist, bring death and honks to those who do not follow the honkmother.
 
 ghost-role-information-hellspawn-name = Hellspawn
-ghost-role-information-hellspawn-description = You are an antagonist, bring death to those who do not follow the great god Nar'Sie.
+ghost-role-information-hellspawn-description = Bring death to those who do not follow the great god Nar'Sie.
 
 ghost-role-information-Death-Squad-name = Death Squad Operative
 ghost-role-information-Death-Squad-description = One of Nanotrasen's top internal affairs agents. Await orders from CentComm or an official.
+ghost-role-information-Death-Squad-rules = You are required to obey orders given by your superior, you are effectively their [color=#6495ed][bold]Familiar[/bold][/color].
 
 ghost-role-information-SyndiCat-name = SyndiCat
 ghost-role-information-SyndiCat-description = You're the faithful trained pet of nuclear operatives with a microbomb. Serve your master to the death!
-ghost-role-information-SyndiCat-rules = You're the faithful trained pet of nuclear operatives with a microbomb. Serve your master to the death!
+ghost-role-information-SyndiCat-rules = You are a [color=red][bold]Team Antagonist[/bold][/color] with the agent who summoned you.
 
 ghost-role-information-Cak-name = Cak
 ghost-role-information-Cak-description = You are the chef's favorite child. You're a living cake cat.
-ghost-role-information-Cak-rules = You are a living edible sweet cat. Your task is to find your place in this world where everything wants to eat you.
 
 ghost-role-information-BreadDog-name = BreadDog
 ghost-role-information-BreadDog-description = You are the chef's favorite child. You're a living bread dog.
-ghost-role-information-BreadDog-rules = You're an edible dog made of bread. Your task is to find your place in this world where everything wants to eat you.
 
 ghost-role-information-space-ninja-name = Space Ninja
 ghost-role-information-space-ninja-description = Use stealth and deception to sabotage the station.
-ghost-role-information-space-ninja-rules = You are an elite mercenary of the Spider Clan. You aren't required to follow your objectives, yet your NINJA HONOR demands you try.
 
 ghost-role-information-syndicate-reinforcement-name = Syndicate Agent
 ghost-role-information-syndicate-reinforcement-description = Someone needs reinforcements. You, the first person the syndicate could find, will help them.
-ghost-role-information-syndicate-reinforcement-rules = Normal syndicate antagonist rules apply. Work with whoever called you in, and don't harm them.
+ghost-role-information-syndicate-reinforcement-rules = You are a [color=red][bold]Team Antagonist[/bold][/color] with the agent who summoned you.
 
 ghost-role-information-syndicate-monkey-reinforcement-name = Syndicate Monkey Agent
 ghost-role-information-syndicate-monkey-reinforcement-description = Someone needs reinforcements. You, a trained monkey, will help them.
-ghost-role-information-syndicate-monkey-reinforcement-rules = Normal syndicate antagonist rules apply. Work with whoever called you in, and don't harm them.
+ghost-role-information-syndicate-monkey-reinforcement-rules = You are a [color=red][bold]Team Antagonist[/bold][/color] with the agent who summoned you.
 
 ghost-role-information-lost-cargo-technical-name = Lost Cargo Technician
 ghost-role-information-lost-cargo-technical-description = Something went wrong and your cargo shuttle with the goods was beamed into the sector to another station.
-ghost-role-information-lost-cargo-technical-rules = You're a regular cargo technician from another station. Do what regular cargo do.
 
 ghost-role-information-clown-troupe-name = Space Clown
 ghost-role-information-clown-troupe-description = You and your troupe have come to cheer up this station with your best jokes. Honk!
-ghost-role-information-clown-troupe-rules = Normal station crew rules apply.
 
 ghost-role-information-traveling-chef-name = Traveling Chef
 ghost-role-information-traveling-chef-description = You are a chef on a traveling shuttle of exotic cuisine. Delight the station with delicious food!
-ghost-role-information-traveling-chef-rules = Normal station crew rules apply.
 
 ghost-role-information-disaster-victim-name = Disaster Victim
 ghost-role-information-disaster-victim-description = You were rescued in an escape pod from another station that suffered a terrible fate. Perhaps you will be found and rescued.
-ghost-role-information-disaster-victim-rules = Normal station crew rules apply.
 
 ghost-role-information-syndie-disaster-victim-name = Syndie Disaster Victim
 ghost-role-information-syndie-disaster-victim-description = You're a regular passenger from a syndicate station. Unfortunately, an evacuation pod has thrown you into an enemy sector.....
-ghost-role-information-syndie-disaster-victim-rules = Normal station crew rules apply. You are NOT an antagonist!
 
 ghost-role-information-syndicate-kobold-reinforcement-name = Syndicate Kobold Agent
 ghost-role-information-syndicate-kobold-reinforcement-description = Someone needs reinforcements. You, a trained kobold, will help them.
-ghost-role-information-syndicate-kobold-reinforcement-rules = Normal syndicate antagonist rules apply. Work with whoever called you in, and don't harm them.
+ghost-role-information-syndicate-kobold-reinforcement-rules = You are a [color=red][bold]Team Antagonist[/bold][/color] with the agent who summoned you.
 
 ghost-role-information-artifact-name = Sentient Artifact
-ghost-role-information-artifact-description =
-      Enact your eldritch whims.
-      Forcibly activate your nodes for good or for evil.
+ghost-role-information-artifact-description = Enact your eldritch whims. Forcibly activate your nodes for good or for evil.
+
+ghost-role-information-syndie-assaultborg-name = Syndicate Assault Borg
+ghost-role-information-syndie-assaultborg-description = Nuclear operatives needs reinforcements. You, a cold silicon killing machine, will help them. More dakka!
index b21792579f455bd51571c1cad90c89c8dac25593..bdefd14a452d9c77fb9d7908e91f3a4b2921ae72 100644 (file)
@@ -18,7 +18,7 @@
   - type: GhostRole
     name: ghost-role-information-rat-king-name
     description: ghost-role-information-rat-king-description
-    rules: ghost-role-information-rat-king-rules
+    rules: ghost-role-information-freeagent-rules
     raffle:
       settings: default
   - type: GhostRoleMobSpawner
@@ -39,7 +39,7 @@
   - type: GhostRole
     name: ghost-role-information-remilia-name
     description: ghost-role-information-remilia-description
-    rules: ghost-role-information-remilia-rules
+    rules: ghost-role-information-familiar-rules
     raffle:
       settings: short
   - type: GhostRoleMobSpawner
@@ -60,7 +60,7 @@
   - type: GhostRole
     name: ghost-role-information-cerberus-name
     description: ghost-role-information-cerberus-description
-    rules: ghost-role-information-cerberus-rules
+    rules: ghost-role-information-familiar-rules
     raffle:
       settings: default
   - type: GhostRoleMobSpawner
   - type: GhostRole
     name: ghost-role-information-space-dragon-name
     description: ghost-role-information-space-dragon-description
-    rules: ghost-role-component-default-rules
+    rules: ghost-role-component-space-dragon-rules
   - type: Sprite
     layers:
     - state: green
   - type: GhostRole
     name: ghost-role-information-space-ninja-name
     description: ghost-role-information-space-ninja-description
-    rules: ghost-role-information-space-ninja-rules
+    rules: ghost-role-information-antagonist-rules
     raffle:
       settings: default
   - type: GhostRoleMobSpawner
index fc9e5151e91beae0c5ccebdc909b03f1d1cfd07d..3bc5779b52ffff60aeb8e2fe26f22ba3e7f36633 100644 (file)
     allowMovement: true
     name: ghost-role-information-mothroach-name
     description: ghost-role-information-mothroach-description
+    rules: ghost-role-information-freeagent-rules
   - type: Fixtures
     fixtures:
       fix1:
     prob: 0.25
     name: ghost-role-information-kangaroo-name
     description: ghost-role-information-kangaroo-description
+    rules: ghost-role-information-nonantagonist-rules
   - type: GhostTakeoverAvailable
   - type: Vocal
     sounds:
     makeSentient: true
     name: ghost-role-information-monkey-name
     description: ghost-role-information-monkey-description
+    rules: ghost-role-information-nonantagonist-rules
   - type: GhostTakeoverAvailable
   - type: Clumsy
     clumsyDamage:
     makeSentient: true
     name: ghost-role-information-monkey-name
     description: ghost-role-information-monkey-description
+    rules: ghost-role-information-syndicate-monkey-reinforcement-rules
     raffle:
       settings: default
   - type: GhostTakeoverAvailable
     makeSentient: true
     name: ghost-role-information-kobold-name
     description: ghost-role-information-kobold-description
+    rules: ghost-role-information-nonantagonist-rules
 
 - type: entity
   name: kobold
     allowMovement: true
     name: ghost-role-information-mouse-name
     description: ghost-role-information-mouse-description
+    rules: ghost-role-information-freeagent-rules
   - type: GhostTakeoverAvailable
   - type: Speech
     speechSounds: Squeak
       makeSentient: true
       name: ghost-role-information-giant-spider-name
       description: ghost-role-information-giant-spider-description
+      rules: ghost-role-information-giant-spider-rules
       raffle:
         settings: short
     - type: GhostTakeoverAvailable
     allowMovement: true
     name: ghost-role-information-hamster-name
     description: ghost-role-information-hamster-description
+    rules: ghost-role-information-nonantagonist-rules
   - type: GhostTakeoverAvailable
   - type: Speech
     speechVerb: SmallMob
index 07ee6b1536adf3506b74a2dda8bcfc0d8d5de4b4..6f9935d351d39eb24dfec20892f775fb69df509f 100644 (file)
@@ -10,6 +10,7 @@
       makeSentient: true
       name: ghost-role-information-behonker-name
       description: ghost-role-information-behonker-description
+      rules: ghost-role-information-antagonist-rules
       raffle:
         settings: default
     - type: GhostTakeoverAvailable
index 10bc7861fac38ee895703559b15cd986d92d2eda..e345ec477b1c6158f19d3d5d7b6d78294e720c94 100644 (file)
       makeSentient: true
       name: ghost-role-information-sentient-carp-name
       description: ghost-role-information-sentient-carp-description
+      rules: ghost-role-information-space-dragon-summoned-carp-rules
       raffle:
         settings: short
     - type: GhostTakeoverAvailable
index a6641efe8cc6c220a391e2e0c73f1f2d429ff832..ba21ca4da23edc3e35a767f4a72002f5df2b28c2 100644 (file)
   - type: GhostRole
     prob: 0
     description: ghost-role-information-angry-slimes-description
+    rules: ghost-role-information-angry-slimes-rules
     raffle:
       settings: short
   - type: NpcFactionMember
index 74658f0a2db83a2be81d46fae1d4f05fcc43c7e4..e0a3a7645619e09a8ee72ad817741675798edf49 100644 (file)
@@ -12,6 +12,7 @@
     makeSentient: true
     name: ghost-role-information-hellspawn-name
     description: ghost-role-information-hellspawn-description
+    rules: ghost-role-information-antagonist-rules
     raffle:
       settings: default
   - type: RotationVisuals
index 510cae3be3356208d7ac838546883ae0f8c424d2..32c71408d5c14950ea50d3cf4aa969aea46e2a5a 100644 (file)
     allowMovement: true
     name: ghost-role-information-hamlet-name
     description: ghost-role-information-hamlet-description
+    rules: ghost-role-information-nonantagonist-rules
   - type: GhostTakeoverAvailable
   - type: InteractionPopup
     successChance: 1
     prob: 0.25
     name: ghost-role-information-willow-name
     description: ghost-role-information-willow-description
+    rules: ghost-role-information-nonantagonist-rules
   - type: GhostTakeoverAvailable
   - type: Loadout
     prototypes: [ BoxingKangarooGear ]
   - type: GhostRole
     name: ghost-role-information-smile-name
     description: ghost-role-information-smile-description
+    rules: ghost-role-information-nonantagonist-rules
   - type: Grammar
     attributes:
       proper: true
     allowMovement: true
     name: ghost-role-information-punpun-name
     description: ghost-role-information-punpun-description
+    rules: ghost-role-information-nonantagonist-rules
   - type: GhostTakeoverAvailable
   - type: Butcherable
     butcheringType: Spike
 #    allowMovement: true
 #    name: ghost-role-information-tropico-name
 #    description: ghost-role-information-tropico-description
+#    rules: ghost-role-information-nonantagonist-rules
 #  - type: GhostTakeoverAvailable
   - type: Tag
     tags:
index 38debe2a9a7946b94c15d632b8986fdc3dfd3b4a..c615b8721e010c6cc5a9ae6983e8cad1e49c593a 100644 (file)
@@ -89,7 +89,7 @@
     makeSentient: true
     name: ghost-role-information-rat-king-name
     description: ghost-role-information-rat-king-description
-    rules: ghost-role-information-rat-king-rules
+    rules: ghost-role-information-freeagent-rules
     raffle:
       settings: default
   - type: GhostTakeoverAvailable
index 8a56a3991633679194d07d36a2cd4a5e8e9a472d..45171fff6768f065817e08224773b334470c73aa 100644 (file)
@@ -55,7 +55,7 @@
     makeSentient: true
     name: ghost-role-information-revenant-name
     description: ghost-role-information-revenant-description
-    rules: ghost-role-information-revenant-rules
+    rules: ghost-role-information-antagonist-rules
     raffle:
       settings: default
   - type: GhostTakeoverAvailable
index 96dfd53cec1f82c67a4e346c570873250375cc16..b3bb5d4d07f97585a15dd2cd2b5eb1a85e549f8b 100644 (file)
     makeSentient: true
     name: ghost-role-information-honkbot-name
     description: ghost-role-information-honkbot-description
+    rules: ghost-role-information-freeagent-rules
     raffle:
       settings: default
   - type: GhostTakeoverAvailable
     makeSentient: true
     name: ghost-role-information-jonkbot-name
     description: ghost-role-information-jonkbot-description
+    rules: ghost-role-information-freeagent-rules
     raffle:
       settings: default
   - type: InteractionPopup
     makeSentient: true
     name: ghost-role-information-mimebot-name
     description: ghost-role-information-mimebot-description
+    rules: ghost-role-information-freeagent-rules
     raffle:
       settings: default
   - type: GhostTakeoverAvailable
     makeSentient: true
     name: ghost-role-information-supplybot-name
     description: ghost-role-information-supplybot-description
+    rules: ghost-role-information-nonantagonist-rules
     raffle:
       settings: default
   - type: GhostTakeoverAvailable
index ffca699bfcc95230a9126894c60a616c46ef9749..d68415992ad18c4b299a4e379c9a6b0b77c3c89d 100644 (file)
     makeSentient: true
     name: ghost-role-information-slimes-name
     description: ghost-role-information-slimes-description
+    rules: ghost-role-information-nonantagonist-rules
     raffle:
       settings: short
   - type: Speech
         - SimpleHostile
     - type: GhostRole
       description: ghost-role-information-angry-slimes-description
+      rules: ghost-role-information-angry-slimes-rules
       raffle:
         settings: short
 
         - SimpleHostile
     - type: GhostRole
       description: ghost-role-information-angry-slimes-description
+      rules: ghost-role-information-angry-slimes-rules
       raffle:
         settings: short
 
         - SimpleHostile
     - type: GhostRole
       description: ghost-role-information-angry-slimes-description
+      rules: ghost-role-information-angry-slimes-rules
       raffle:
         settings: short
index 869fb880841c566019ddbbf8ce6df88a490847c9..8bf9bfab41e2f4b0f3ba49794ef6bdb4498139a0 100644 (file)
@@ -14,6 +14,7 @@
     makeSentient: true
     name: ghost-role-information-space-dragon-name
     description: ghost-role-information-space-dragon-description
+    rules: ghost-role-information-space-dragon-rules
     raffle:
       settings: default
   - type: GhostTakeoverAvailable
 - type: entity
   parent: BaseMobDragon
   id: MobDragon
-  suffix: No role or objectives
   components:
   - type: Dragon
     spawnRiftAction: ActionSpawnRift
   components:
   - type: GhostRole
     description: ghost-role-information-space-dragon-dungeon-description
+    rules: ghost-role-information-space-dragon-dungeon-rules
     raffle:
       settings: default
   - type: SlowOnDamage
index b7fb7eb66c0ed1087200197a05df71463bc5daec..272436236c5959d03e18a6eb16447c619bdfc8aa 100644 (file)
@@ -10,7 +10,7 @@
     allowSpeech: true
     name: ghost-role-information-remilia-name
     description: ghost-role-information-remilia-description
-    rules: ghost-role-information-remilia-rules
+    rules: ghost-role-information-familiar-rules
   - type: GhostTakeoverAvailable
   - type: Grammar
     attributes:
@@ -43,7 +43,7 @@
     allowSpeech: true
     name: ghost-role-information-cerberus-name
     description: ghost-role-information-cerberus-description
-    rules: ghost-role-information-cerberus-rules
+    rules: ghost-role-information-familiar-rules
     raffle:
       settings: default
   - type: GhostTakeoverAvailable
index 9ccfdf4e507c296699787be7055500536795675a..6a11c966860609db803f6c4b61a10c49251b66a7 100644 (file)
@@ -13,6 +13,7 @@
       makeSentient: true
       name: ghost-role-information-guardian-name
       description: ghost-role-information-guardian-description
+      rules: ghost-role-information-familiar-rules
       raffle:
         settings: default
     - type: GhostTakeoverAvailable
       makeSentient: true
       name: ghost-role-information-holoparasite-name
       description: ghost-role-information-holoparasite-description
+      rules: ghost-role-information-familiar-rules
       raffle:
         settings: default
     - type: GhostTakeoverAvailable
       makeSentient: true
       name: ghost-role-information-ifrit-name
       description: ghost-role-information-ifrit-description
+      rules: ghost-role-information-familiar-rules
       raffle:
         settings: default
     - type: GhostTakeoverAvailable
       makeSentient: true
       name: ghost-role-information-holoclown-name
       description: ghost-role-information-holoclown-description
+      rules: ghost-role-information-familiar-rules
       raffle:
         settings: default
     - type: GhostTakeoverAvailable
index 6067c95fd3c673e9eb0b9de096a8edd35e43333c..5bcc33b5f6d558794c5c1fd11098f7319400d4f2 100644 (file)
   id: DeathSquad
   parent: EventHumanoidMindShielded
   randomizeName: false
-  components:        
+  components:
     - type: GhostRole
       name: ghost-role-information-Death-Squad-name
       description: ghost-role-information-Death-Squad-description
+      rules: ghost-role-information-Death-Squad-rules
       raffle:
         settings: short
     - type: Loadout
@@ -74,6 +75,7 @@
     - type: GhostRole
       name: ghost-role-information-ert-leader-name
       description: ghost-role-information-ert-leader-description
+      rules: ghost-role-information-nonantagonist-rules
       raffle:
         settings: short
     - type: Loadout
     - type: GhostRole
       name: ghost-role-information-ert-leader-name
       description: ghost-role-information-ert-leader-description
+      rules: ghost-role-information-nonantagonist-rules
       raffle:
         settings: short
     - type: Loadout
     - type: GhostRole
       name: ghost-role-information-ert-leader-name
       description: ghost-role-information-ert-leader-description
+      rules: ghost-role-information-nonantagonist-rules
       raffle:
         settings: short
     - type: Loadout
     - type: GhostRole
       name: ghost-role-information-ert-chaplain-name
       description: ghost-role-information-ert-chaplain-description
+      rules: ghost-role-information-nonantagonist-rules
       raffle:
         settings: short
     - type: RandomMetadata
     - type: GhostRole
       name: ghost-role-information-ert-chaplain-name
       description: ghost-role-information-ert-chaplain-description
+      rules: ghost-role-information-nonantagonist-rules
       raffle:
         settings: short
     - type: Loadout
     - type: GhostRole
       name: ghost-role-information-ert-janitor-name
       description: ghost-role-information-ert-janitor-description
+      rules: ghost-role-information-nonantagonist-rules
       raffle:
         settings: short
     - type: RandomMetadata
     - type: GhostRole
       name: ghost-role-information-ert-janitor-name
       description: ghost-role-information-ert-janitor-description
+      rules: ghost-role-information-nonantagonist-rules
       raffle:
         settings: short
     - type: Loadout
     - type: GhostRole
       name: ghost-role-information-ert-engineer-name
       description: ghost-role-information-ert-engineer-description
+      rules: ghost-role-information-nonantagonist-rules
       raffle:
         settings: short
     - type: RandomMetadata
     - type: GhostRole
       name: ghost-role-information-ert-engineer-name
       description: ghost-role-information-ert-engineer-description
+      rules: ghost-role-information-nonantagonist-rules
       raffle:
         settings: short
     - type: Loadout
     - type: GhostRole
       name: ghost-role-information-ert-security-name
       description: ghost-role-information-ert-security-description
+      rules: ghost-role-information-nonantagonist-rules
       raffle:
         settings: short
     - type: RandomMetadata
     - type: GhostRole
       name: ghost-role-information-ert-security-name
       description: ghost-role-information-ert-security-description
+      rules: ghost-role-information-nonantagonist-rules
       raffle:
         settings: short
     - type: Loadout
     - type: GhostRole
       name: ghost-role-information-ert-security-name
       description: ghost-role-information-ert-security-description
+      rules: ghost-role-information-nonantagonist-rules
       raffle:
         settings: short
     - type: Loadout
     - type: GhostRole
       name: ghost-role-information-ert-medical-name
       description: ghost-role-information-ert-medical-description
+      rules: ghost-role-information-nonantagonist-rules
       raffle:
         settings: short
     - type: RandomMetadata
     - type: GhostRole
       name: ghost-role-information-ert-medical-name
       description: ghost-role-information-ert-medical-description
+      rules: ghost-role-information-nonantagonist-rules
       raffle:
         settings: short
     - type: Loadout
     - type: GhostRole
       name: ghost-role-information-cburn-agent-name
       description: ghost-role-information-cburn-agent-description
+      rules: ghost-role-information-nonantagonist-rules
       raffle:
         settings: short
     - type: RandomMetadata
     - type: GhostRole
       name: ghost-role-information-centcom-official-name
       description: ghost-role-information-centcom-official-description
+      rules: ghost-role-information-nonantagonist-rules
       raffle:
         settings: default
     - type: Loadout
     - type: GhostRole
       name: ghost-role-information-cluwne-name
       description: ghost-role-information-cluwne-description
+      rules: ghost-role-information-nonantagonist-rules
       raffle:
         settings: default
     - type: Cluwne
     - type: GhostRole
       name: ghost-role-information-lost-cargo-technical-name
       description: ghost-role-information-lost-cargo-technical-description
-      rules: ghost-role-information-lost-cargo-technical-rules
+      rules: ghost-role-information-nonantagonist-rules
       raffle:
         settings: short
     - type: Loadout
     - type: GhostRole
       name: ghost-role-information-clown-troupe-name
       description: ghost-role-information-clown-troupe-description
-      rules: ghost-role-information-clown-troupe-rules
+      rules: ghost-role-information-nonantagonist-rules
       raffle:
         settings: short
     - type: Loadout
     - type: GhostRole
       name: ghost-role-information-traveling-chef-name
       description: ghost-role-information-traveling-chef-description
-      rules: ghost-role-information-traveling-chef-rules
+      rules: ghost-role-information-nonantagonist-rules
       raffle:
         settings: short
     - type: Loadout
     - type: GhostRole
       name: ghost-role-information-disaster-victim-name
       description: ghost-role-information-disaster-victim-description
-      rules: ghost-role-information-disaster-victim-rules
+      rules: ghost-role-information-nonantagonist-rules
       raffle:
         settings: default
 
     - type: GhostRole
       name: ghost-role-information-syndie-disaster-victim-name
       description: ghost-role-information-syndie-disaster-victim-description
-      rules: ghost-role-information-syndie-disaster-victim-rules
+      rules: ghost-role-information-nonantagonist-rules
       raffle:
         settings: short
     - type: Loadout
index 76727181b4e8421dff9f7413b0374dbb0bff4414..e10e2928ab2e9078977cf4d137ec65652515e0a3 100644 (file)
@@ -17,6 +17,7 @@
   - type: GhostRole
     name: ghost-role-information-skeleton-pirate-name
     description: ghost-role-information-skeleton-pirate-description
+    rules: ghost-role-information-freeagent-rules
     raffle:
       settings: default
   - type: GhostTakeoverAvailable
@@ -33,6 +34,7 @@
   - type: GhostRole
     name: ghost-role-information-skeleton-biker-name
     description: ghost-role-information-skeleton-biker-description
+    rules: ghost-role-information-freeagent-rules
     raffle:
       settings: default
   - type: GhostTakeoverAvailable
@@ -48,6 +50,7 @@
   - type: GhostRole
     name: ghost-role-information-closet-skeleton-name
     description: ghost-role-information-closet-skeleton-description
+    rules: ghost-role-information-freeagent-rules
     raffle:
       settings: default
   - type: GhostTakeoverAvailable
index 12a6e2a246b3a393116f1f123e4bb2acdac32ea1..a92dc9b25df1bdbdca59382bae8e4fa487df9856 100644 (file)
     name: ghost-role-information-BreadDog-name
     allowMovement: true
     description: ghost-role-information-BreadDog-description
-    rules: ghost-role-information-BreadDog-rules
+    rules: ghost-role-information-nonantagonist-rules
     raffle:
       settings: short
   - type: GhostTakeoverAvailable
index 922d49388850d791635e9a6764ea2c09eedc775c..b9a5cc42e4592f34aa2d7a76178e86e7b2d3e40a 100644 (file)
     name: ghost-role-information-Cak-name
     allowMovement: true
     description: ghost-role-information-Cak-description
-    rules: ghost-role-information-Cak-rules
+    rules: ghost-role-information-nonantagonist-rules
     raffle:
       settings: short
   - type: GhostTakeoverAvailable
index 2085422c9b5512413faab1f9a8fc2bf1a84ced69..d49c79f48b3c0a9e1deab6dd551168a550c83ab1 100644 (file)
@@ -79,9 +79,9 @@
   suffix: NukeOps
   components:
     - type: GhostRole
-      name: Syndicate Assault Cyborg
-      description: Nuclear operatives needs reinforcements. You, a cold silicon killing machine, will help them.
-      rules: Normal syndicate antagonist rules apply. Work with whoever called you in, and don't harm them.
+      name: ghost-role-information-syndie-assaultborg-name
+      description: ghost-role-information-syndie-assaultborg-description
+      rules: ghost-role-information-silicon-rules
       raffle:
         settings: default
     - type: GhostRoleMobSpawner
index 02bbce2843b4f7a49d340629186f74c793eee115..c12f8a8d00884109b250cf4560f16e34f97bf194 100644 (file)
@@ -37,6 +37,7 @@
     beginSearchingText: pai-system-searching
     roleName: pai-system-role-name
     roleDescription: pai-system-role-description
+    roleRules: ghost-role-information-familiar-rules
     wipeVerbText: pai-system-wipe-device-verb-text
     wipeVerbPopup: pai-system-wiped-device
     stopSearchVerbText: pai-system-stop-searching-verb-text
@@ -89,6 +90,7 @@
   - type: ToggleableGhostRole
     roleName: pai-system-role-name-syndicate
     roleDescription: pai-system-role-description-syndicate
+    roleRules: ghost-role-information-familiar-rules
   - type: IntrinsicRadioTransmitter
     channels:
     - Syndicate
   - type: ToggleableGhostRole
     roleName: pai-system-role-name-potato
     roleDescription: pai-system-role-description-potato
+    roleRules: ghost-role-information-familiar-rules
   - type: Appearance
   - type: GenericVisualizer
     visuals:
index 308c013da466b10dd91a63c5b407606f5e063878..44f95e7a9becf71acb5a4846a439437d66b32875 100644 (file)
@@ -84,6 +84,7 @@
       beginSearchingText: positronic-brain-searching
       roleName: positronic-brain-role-name
       roleDescription: positronic-brain-role-description
+      roleRules: ghost-role-information-silicon-rules
       wipeVerbText: positronic-brain-wipe-device-verb-text
       wipeVerbPopup: positronic-brain-wiped-device
       stopSearchVerbText: positronic-brain-stop-searching-verb-text
index a89670805799a3529f6ef213d970a1de611ce94c..bfaff8fe44aa31f4e85c2754155110b58c35ed81 100644 (file)
     makeSentient: true
     name: ghost-role-information-artifact-name
     description: ghost-role-information-artifact-description
+    rules: ghost-role-information-freeagent-rules
   - type: GhostTakeoverAvailable
   - type: MovementSpeedModifier
     baseWalkSpeed: 0.25