From: TsjipTsjip <19798667+TsjipTsjip@users.noreply.github.com> Date: Fri, 21 Jun 2024 09:41:54 +0000 (+0200) Subject: Ghostrole rule updates (#29249) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=949a837720b744817d239f3505f44c2320ba5355;p=space-station-14.git Ghostrole rule updates (#29249) * 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> --- diff --git a/Content.Server/Ghost/Roles/Components/ToggleableGhostRoleComponent.cs b/Content.Server/Ghost/Roles/Components/ToggleableGhostRoleComponent.cs index fc10d55069..ef1b1dbed9 100644 --- a/Content.Server/Ghost/Roles/Components/ToggleableGhostRoleComponent.cs +++ b/Content.Server/Ghost/Roles/Components/ToggleableGhostRoleComponent.cs @@ -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; diff --git a/Content.Server/Ghost/Roles/ToggleableGhostRoleSystem.cs b/Content.Server/Ghost/Roles/ToggleableGhostRoleSystem.cs index 9bab229c00..8354a24f90 100644 --- a/Content.Server/Ghost/Roles/ToggleableGhostRoleSystem.cs +++ b/Content.Server/Ghost/Roles/ToggleableGhostRoleSystem.cs @@ -53,13 +53,14 @@ public sealed class ToggleableGhostRoleSystem : EntitySystem EnsureComp(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(uid, out var mind) && mind.HasMind) { args.PushMarkup(Loc.GetString(component.ExamineTextMindPresent)); diff --git a/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl b/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl index 4e6ec1f188..98f31e0ab0 100644 --- a/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl +++ b/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl @@ -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! diff --git a/Resources/Prototypes/Entities/Markers/Spawners/ghost_roles.yml b/Resources/Prototypes/Entities/Markers/Spawners/ghost_roles.yml index b21792579f..bdefd14a45 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/ghost_roles.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/ghost_roles.yml @@ -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 @@ -143,7 +143,7 @@ - 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 @@ -159,7 +159,7 @@ - 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 diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index fc9e5151e9..3bc5779b52 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -421,6 +421,7 @@ allowMovement: true name: ghost-role-information-mothroach-name description: ghost-role-information-mothroach-description + rules: ghost-role-information-freeagent-rules - type: Fixtures fixtures: fix1: @@ -1104,6 +1105,7 @@ 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: @@ -1278,6 +1280,7 @@ 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: @@ -1312,6 +1315,7 @@ 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 @@ -1443,6 +1447,7 @@ makeSentient: true name: ghost-role-information-kobold-name description: ghost-role-information-kobold-description + rules: ghost-role-information-nonantagonist-rules - type: entity name: kobold @@ -1516,6 +1521,7 @@ 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 @@ -2300,6 +2306,7 @@ 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 @@ -3079,6 +3086,7 @@ 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 diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/behonker.yml b/Resources/Prototypes/Entities/Mobs/NPCs/behonker.yml index 07ee6b1536..6f9935d351 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/behonker.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/behonker.yml @@ -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 diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml b/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml index 10bc7861fa..e345ec477b 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml @@ -163,6 +163,7 @@ 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 diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/elemental.yml b/Resources/Prototypes/Entities/Mobs/NPCs/elemental.yml index a6641efe8c..ba21ca4da2 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/elemental.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/elemental.yml @@ -232,6 +232,7 @@ - type: GhostRole prob: 0 description: ghost-role-information-angry-slimes-description + rules: ghost-role-information-angry-slimes-rules raffle: settings: short - type: NpcFactionMember diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/hellspawn.yml b/Resources/Prototypes/Entities/Mobs/NPCs/hellspawn.yml index 74658f0a2d..e0a3a76456 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/hellspawn.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/hellspawn.yml @@ -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 diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml b/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml index 510cae3be3..32c71408d5 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/pets.yml @@ -572,6 +572,7 @@ 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 @@ -686,6 +687,7 @@ 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 ] @@ -756,6 +758,7 @@ - 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 @@ -774,6 +777,7 @@ 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 @@ -807,6 +811,7 @@ # 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: diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml b/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml index 38debe2a9a..c615b8721e 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml @@ -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 diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/revenant.yml b/Resources/Prototypes/Entities/Mobs/NPCs/revenant.yml index 8a56a39916..45171fff67 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/revenant.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/revenant.yml @@ -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 diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml b/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml index 96dfd53cec..b3bb5d4d07 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml @@ -156,6 +156,7 @@ 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 @@ -183,6 +184,7 @@ 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 @@ -315,6 +317,7 @@ 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 @@ -338,6 +341,7 @@ 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 diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml b/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml index ffca699bfc..d68415992a 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml @@ -127,6 +127,7 @@ 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 @@ -200,6 +201,7 @@ - SimpleHostile - type: GhostRole description: ghost-role-information-angry-slimes-description + rules: ghost-role-information-angry-slimes-rules raffle: settings: short @@ -237,6 +239,7 @@ - SimpleHostile - type: GhostRole description: ghost-role-information-angry-slimes-description + rules: ghost-role-information-angry-slimes-rules raffle: settings: short @@ -274,5 +277,6 @@ - SimpleHostile - type: GhostRole description: ghost-role-information-angry-slimes-description + rules: ghost-role-information-angry-slimes-rules raffle: settings: short diff --git a/Resources/Prototypes/Entities/Mobs/Player/dragon.yml b/Resources/Prototypes/Entities/Mobs/Player/dragon.yml index 869fb88084..8bf9bfab41 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/dragon.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/dragon.yml @@ -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 @@ -142,7 +143,6 @@ - type: entity parent: BaseMobDragon id: MobDragon - suffix: No role or objectives components: - type: Dragon spawnRiftAction: ActionSpawnRift @@ -180,6 +180,7 @@ components: - type: GhostRole description: ghost-role-information-space-dragon-dungeon-description + rules: ghost-role-information-space-dragon-dungeon-rules raffle: settings: default - type: SlowOnDamage diff --git a/Resources/Prototypes/Entities/Mobs/Player/familiars.yml b/Resources/Prototypes/Entities/Mobs/Player/familiars.yml index b7fb7eb66c..272436236c 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/familiars.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/familiars.yml @@ -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 diff --git a/Resources/Prototypes/Entities/Mobs/Player/guardian.yml b/Resources/Prototypes/Entities/Mobs/Player/guardian.yml index 9ccfdf4e50..6a11c96686 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/guardian.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/guardian.yml @@ -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 @@ -122,6 +123,7 @@ 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 @@ -154,6 +156,7 @@ 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 @@ -182,6 +185,7 @@ 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 diff --git a/Resources/Prototypes/Entities/Mobs/Player/humanoid.yml b/Resources/Prototypes/Entities/Mobs/Player/humanoid.yml index 6067c95fd3..5bcc33b5f6 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/humanoid.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/humanoid.yml @@ -35,10 +35,11 @@ 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 @@ -102,6 +104,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 @@ -122,6 +125,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 @@ -152,6 +156,7 @@ - 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 @@ -180,6 +185,7 @@ - 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 @@ -210,6 +216,7 @@ - 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 @@ -238,6 +245,7 @@ - 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 @@ -268,6 +276,7 @@ - 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 @@ -296,6 +305,7 @@ - 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 @@ -326,6 +336,7 @@ - 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 @@ -354,6 +365,7 @@ - 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 @@ -374,6 +386,7 @@ - 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 @@ -404,6 +417,7 @@ - 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 @@ -432,6 +446,7 @@ - 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 @@ -459,6 +474,7 @@ - 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 @@ -485,6 +501,7 @@ - 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 @@ -552,6 +569,7 @@ - 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 @@ -593,7 +611,7 @@ - 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 @@ -644,7 +662,7 @@ - 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 @@ -694,7 +712,7 @@ - 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 @@ -754,7 +772,7 @@ - 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 @@ -815,7 +833,7 @@ - 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 diff --git a/Resources/Prototypes/Entities/Mobs/Player/skeleton.yml b/Resources/Prototypes/Entities/Mobs/Player/skeleton.yml index 76727181b4..e10e2928ab 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/skeleton.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/skeleton.yml @@ -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 diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/bread.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/bread.yml index 12a6e2a246..a92dc9b25d 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/bread.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/bread.yml @@ -818,7 +818,7 @@ 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 diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/cake.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/cake.yml index 922d493888..b9a5cc42e4 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/cake.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/cake.yml @@ -699,7 +699,7 @@ 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 diff --git a/Resources/Prototypes/Entities/Objects/Devices/Syndicate_Gadgets/reinforcement_teleporter.yml b/Resources/Prototypes/Entities/Objects/Devices/Syndicate_Gadgets/reinforcement_teleporter.yml index 2085422c9b..d49c79f48b 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Syndicate_Gadgets/reinforcement_teleporter.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Syndicate_Gadgets/reinforcement_teleporter.yml @@ -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 diff --git a/Resources/Prototypes/Entities/Objects/Fun/pai.yml b/Resources/Prototypes/Entities/Objects/Fun/pai.yml index 02bbce2843..c12f8a8d00 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/pai.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/pai.yml @@ -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 @@ -120,6 +122,7 @@ - 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: diff --git a/Resources/Prototypes/Entities/Objects/Specific/Robotics/mmi.yml b/Resources/Prototypes/Entities/Objects/Specific/Robotics/mmi.yml index 308c013da4..44f95e7a9b 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Robotics/mmi.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Robotics/mmi.yml @@ -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 diff --git a/Resources/Prototypes/XenoArch/Effects/utility_effects.yml b/Resources/Prototypes/XenoArch/Effects/utility_effects.yml index a896708057..bfaff8fe44 100644 --- a/Resources/Prototypes/XenoArch/Effects/utility_effects.yml +++ b/Resources/Prototypes/XenoArch/Effects/utility_effects.yml @@ -199,6 +199,7 @@ 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