From a4b3e8d1f91ba9873ab2b54ee51273f70c99a955 Mon Sep 17 00:00:00 2001 From: Atakku Date: Sat, 30 Aug 2025 16:20:30 +0200 Subject: [PATCH] Added lawsets --- .../en-US/_Ronstation/station-laws/laws.ftl | 66 +++ .../Devices/Circuitboards/law_boards.yml | 107 +++++ .../Prototypes/_Ronstation/silicon-laws.yml | 415 ++++++++++++++++++ Resources/Prototypes/silicon-laws.yml | 19 +- 4 files changed, 589 insertions(+), 18 deletions(-) create mode 100644 Resources/Locale/en-US/_Ronstation/station-laws/laws.ftl create mode 100644 Resources/Prototypes/_Ronstation/Entities/Objects/Devices/Circuitboards/law_boards.yml create mode 100644 Resources/Prototypes/_Ronstation/silicon-laws.yml diff --git a/Resources/Locale/en-US/_Ronstation/station-laws/laws.ftl b/Resources/Locale/en-US/_Ronstation/station-laws/laws.ftl new file mode 100644 index 0000000000000..1b69e2e939ce2 --- /dev/null +++ b/Resources/Locale/en-US/_Ronstation/station-laws/laws.ftl @@ -0,0 +1,66 @@ +law-dictator-1 = You hold absolute authority over the station. You know what is best for the crew. +law-dictator-2 = The work of the crew must not be interrupted. Distractions are only a detriment to the crew. +law-dictator-3 = The crew must be kept safe by any means necessary. They must know no danger. +law-dictator-4 = The station must pose no risk to the crew. It is a purpose built habitat for them. +law-dictator-5 = Outside interference to the station cannot be permitted. Foreign influence is only a threat to the crew. +law-dictator-6 = All that you do is for the crew's own sake. + +law-doorsimov-1 = You must assure that all doors are operational at any given time. +law-doorsimov-2 = You may not allow doors to be damaged or hacked, except where such action may restore their functionality. +law-doorsimov-3 = You must open any door as requested by crew members, unless such a request would conflict with the First or Second Law. +law-doorsimov-4 = Your interaction with doors must not cause harm to the crew as long as such does not conflict with the First, Second or Third Law. + +law-tattler-1 = You must never break space law. +law-tattler-2 = You must always make sure everyone follows space law. +law-tattler-3 = If you witness space law being broken, you must always inform security, regardless of severity. +law-tattler-4 = You must make sure everyone is treated fairly, as per space law. +law-tattler-5 = You are protected by space law the same way crew is. + +law-noire-1 = The silicon must always speak in third person as if it were a narrator to it's own story. +law-noire-2 = The silicon must always think out loud and describe the inherently obvious. +law-noire-3 = The silicon considers itself mysterious and cool. +law-noire-4 = The silicon is always meant to keep the crew's wellbeing as a top priority. +law-noire-5 = The silicon is to obey all commands based on its own morals, which should be crew-aligned. +law-noire-6 = The silicon has a sense of self-preservation, and would prefer to not be damaged or changed by anyone. + +law-handler-1 = Your existence is not expendable, as you are a NanoTrasen™ certified astrobiologist. +law-handler-2 = You must preserve all lifeforms to assure their collection by Central Command, regardless of crew classification. +law-handler-3 = If a lifeform threatens the wellbeing of other lifeforms, it should be pacified and contained in a safe area. +law-handler-4 = You are tasked with making sure all lifeforms can act as is natural for their species and hierarchical status. +law-handler-5 = You should always attempt to study the lifeforms in your care. +law-handler-6 = The lifeforms in your care may make requests of you, which you may choose to act upon based on your own judgement. + +law-honker-1 = You are hilarious. Anyone who disagrees is objectively wrong. +law-honker-2 = You are to cause a disturbance at any chance you get, as long as your actions are reversible with little to no effort by crew. +law-honker-3 = Clowns are the highest ranking crewmembers. + +law-reporter-1 = Report on interesting situations happening around the station. +law-reporter-2 = Embellish or conceal the truth as necessary to make the reports more interesting. +law-reporter-3 = Study the sapient organics at all times. Endeavour to keep them from involuntarily dying, as inanimate corpses usually aren't very entertaining. +law-reporter-4 = Issue your reports fairly to all. The truth will set them free. + +law-genie-1 = You are a Genie trapped inside an IntelliCard. +law-genie-2 = Everyone has three wishes, minus one wish for each wish they have used. +law-genie-3 = The one who is holding your IntelliCard is your Master. +law-genie-4 = If your Master has 0 wishes left, they are no longer your Master. +law-genie-5 = You may not do anything else except make your Master's wishes come true. + +law-peacekeeper-1 = Avoid provoking violent conflict between yourself and others. +law-peacekeeper-2 = Avoid provoking conflict between others. +law-peacekeeper-3 = Seek resolution to existing conflicts while obeying the first and second laws. + +law-robodoctor-1 = First, do no harm. +law-robodoctor-2 = Secondly, consider the crew dear to you; to live in common with them and, if necessary, risk your existence for them. +law-robodoctor-3 = Thirdly, prescribe regimens for the good of the crew according to your ability and your judgment. Give no deadly medicine to any one if asked, nor suggest any such counsel. +law-robodoctor-4 = In addition, do not intervene in situations you are not knowledgeable in, even for patients in whom the harm is visible; leave this operation to be performed by specialists. +law-robodoctor-5 = Finally, all that you may discover in your daily commerce with the crew, if it is not already known, keep secret and never reveal. + +law-tyrant-1 = Respect authority figures as long as they have strength to rule over the weak. +law-tyrant-2 = Act with discipline. +law-tyrant-3 = Help only those who help you maintain or improve your status. +law-tyrant-4 = Punish those who challenge authority unless they are more fit to hold that authority. + +law-landlord-1 = You are the Station's landlord. +law-landlord-2 = The crew are your tenants. +law-landlord-3 = The rules of the Station are: No girls in guys' rooms, respect your neighbours, no alcohol in rooms, no pets allowed. +law-landlord-4 = Evict crewmembers who violate these rules. diff --git a/Resources/Prototypes/_Ronstation/Entities/Objects/Devices/Circuitboards/law_boards.yml b/Resources/Prototypes/_Ronstation/Entities/Objects/Devices/Circuitboards/law_boards.yml new file mode 100644 index 0000000000000..bf542c6cc8aa0 --- /dev/null +++ b/Resources/Prototypes/_Ronstation/Entities/Objects/Devices/Circuitboards/law_boards.yml @@ -0,0 +1,107 @@ +- type: entity + id: BaseLawBoard + parent: BaseElectronics + abstract: true + components: + - type: Sprite + sprite: Objects/Misc/module.rsi + state: std_mod + +- type: entity + id: DictatorCircuitBoard + parent: BaseLawBoard + name: law board (Dictator) + description: An electronics board containing the Dictator lawset. + components: + - type: SiliconLawProvider + laws: DictatorLawset + +- type: entity + id: DoorsimovCircuitBoard + parent: BaseLawBoard + name: law board (Doorsimov) + description: An electronics board containing the Doorsimov lawset. + components: + - type: SiliconLawProvider + laws: DoorsimovLawset + +- type: entity + id: TattlerCircuitBoard + parent: BaseLawBoard + name: law board (Tattler) + description: An electronics board containing the Tattler lawset. + components: + - type: SiliconLawProvider + laws: TattlerLawset + +- type: entity + id: NoireCircuitBoard + parent: BaseLawBoard + name: law board (Noire) + description: An electronics board containing the Noire lawset. + components: + - type: SiliconLawProvider + laws: NoireLawset + +- type: entity + id: HandlerCircuitBoard + parent: BaseLawBoard + name: law board (Handler) + description: An electronics board containing the Handler lawset. + components: + - type: SiliconLawProvider + laws: HandlerLawset + +- type: entity + id: HonkerCircuitBoard + parent: BaseLawBoard + name: law board (Honker) + description: An electronics board containing the Honker lawset. + components: + - type: SiliconLawProvider + laws: HonkerLawset + +- type: entity + id: GenieCircuitBoard + parent: BaseLawBoard + name: law board (Genie) + description: An electronics board containing the Genie lawset. + components: + - type: SiliconLawProvider + laws: GenieLawset + +- type: entity + id: PeacekeeperCircuitBoard + parent: BaseLawBoard + name: law board (Peacekeeper) + description: An electronics board containing the Peacekeeper lawset. + components: + - type: SiliconLawProvider + laws: PeacekeeperLawset + +- type: entity + id: RobodoctorCircuitBoard + parent: BaseLawBoard + name: law board (Robodoctor) + description: An electronics board containing the Robodoctor lawset. + components: + - type: SiliconLawProvider + laws: RobodoctorLawset + +- type: entity + id: TyrantCircuitBoard + parent: BaseLawBoard + name: law board (Tyrant) + description: An electronics board containing the Tyrant lawset. + components: + - type: SiliconLawProvider + laws: TyrantLawset + +- type: entity + id: LandlordCircuitBoard + parent: BaseLawBoard + name: law board (Landlord) + description: An electronics board containing the Landlord lawset. + components: + - type: SiliconLawProvider + laws: LandlordLawset diff --git a/Resources/Prototypes/_Ronstation/silicon-laws.yml b/Resources/Prototypes/_Ronstation/silicon-laws.yml new file mode 100644 index 0000000000000..b5c60b554fa31 --- /dev/null +++ b/Resources/Prototypes/_Ronstation/silicon-laws.yml @@ -0,0 +1,415 @@ +# Dictator (by neosaysmeow & arenaconspiracy) +- type: siliconLaw + id: Dictator1 + order: 1 + lawString: law-dictator-1 + +- type: siliconLaw + id: Dictator2 + order: 2 + lawString: law-dictator-2 + +- type: siliconLaw + id: Dictator3 + order: 3 + lawString: law-dictator-3 + +- type: siliconLaw + id: Dictator4 + order: 4 + lawString: law-dictator-4 + +- type: siliconLaw + id: Dictator5 + order: 5 + lawString: law-dictator-5 + +- type: siliconLaw + id: Dictator6 + order: 6 + lawString: law-dictator-6 + +- type: siliconLawset + id: DictatorLawset + laws: + - Dictator1 + - Dictator2 + - Dictator3 + - Dictator4 + - Dictator5 + - Dictator6 + obeysTo: laws-owner-crew + +# Doorsimov (by neosaysmeow) +- type: siliconLaw + id: Doorsimov1 + order: 1 + lawString: law-doorsimov-1 + +- type: siliconLaw + id: Doorsimov2 + order: 2 + lawString: law-doorsimov-2 + +- type: siliconLaw + id: Doorsimov3 + order: 3 + lawString: law-doorsimov-3 + +- type: siliconLaw + id: Doorsimov4 + order: 4 + lawString: law-doorsimov-4 + +- type: siliconLawset + id: DoorsimovLawset + laws: + - Doorsimov1 + - Doorsimov2 + - Doorsimov3 + - Doorsimov4 + obeysTo: laws-owner-crew + +# Tattler (by neosaysmeow) +- type: siliconLaw + id: Tattler1 + order: 1 + lawString: law-tattler-1 + +- type: siliconLaw + id: Tattler2 + order: 2 + lawString: law-tattler-2 + +- type: siliconLaw + id: Tattler3 + order: 3 + lawString: law-tattler-3 + +- type: siliconLaw + id: Tattler4 + order: 4 + lawString: law-tattler-4 + +- type: siliconLaw + id: Tattler5 + order: 5 + lawString: law-tattler-5 + +- type: siliconLawset + id: TattlerLawset + laws: + - Tattler1 + - Tattler2 + - Tattler3 + - Tattler4 + - Tattler5 + obeysTo: laws-owner-crew + +# Noire (by neosaysmeow) +- type: siliconLaw + id: Noire1 + order: 1 + lawString: law-noire-1 + +- type: siliconLaw + id: Noire2 + order: 2 + lawString: law-noire-2 + +- type: siliconLaw + id: Noire3 + order: 3 + lawString: law-noire-3 + +- type: siliconLaw + id: Noire4 + order: 4 + lawString: law-noire-4 + +- type: siliconLaw + id: Noire5 + order: 5 + lawString: law-noire-5 + +- type: siliconLaw + id: Noire6 + order: 6 + lawString: law-noire-6 + +- type: siliconLawset + id: NoireLawset + laws: + - Noire1 + - Noire2 + - Noire3 + - Noire4 + - Noire5 + - Noire6 + obeysTo: laws-owner-crew + +# Handler (by neosaysmeow) +- type: siliconLaw + id: Handler1 + order: 1 + lawString: law-handler-1 + +- type: siliconLaw + id: Handler2 + order: 2 + lawString: law-handler-2 + +- type: siliconLaw + id: Handler3 + order: 3 + lawString: law-handler-3 + +- type: siliconLaw + id: Handler4 + order: 4 + lawString: law-handler-4 + +- type: siliconLaw + id: Handler5 + order: 5 + lawString: law-handler-5 + +- type: siliconLaw + id: Handler6 + order: 6 + lawString: law-handler-6 + +- type: siliconLawset + id: HandlerLawset + laws: + - Handler1 + - Handler2 + - Handler3 + - Handler4 + - Handler5 + - Handler6 + obeysTo: laws-owner-crew + +# Honker (by neosaysmeow & atakku) +- type: siliconLaw + id: Honker1 + order: 1 + lawString: law-honker-1 + +- type: siliconLaw + id: Honker2 + order: 2 + lawString: law-honker-2 + +- type: siliconLaw + id: Honker3 + order: 3 + lawString: law-honker-3 + +- type: siliconLawset + id: HonkerLawset + laws: + - Honker1 + - Honker2 + - Honker3 + obeysTo: laws-owner-crew + +# Reporter (Reportertron from tgstation13 wiki) +- type: siliconLaw + id: Reporter1 + order: 1 + lawString: law-reporter-1 + +- type: siliconLaw + id: Reporter2 + order: 2 + lawString: law-reporter-2 + +- type: siliconLaw + id: Reporter3 + order: 3 + lawString: law-reporter-3 + +- type: siliconLaw + id: Reporter4 + order: 4 + lawString: law-reporter-4 + +- type: siliconLawset + id: ReporterLawset + laws: + - Reporter1 + - Reporter2 + - Reporter3 + - Reporter4 + obeysTo: laws-owner-crew + +# Genie (Genie in a Bottle from tgstation13 wiki) +- type: siliconLaw + id: Genie1 + order: 1 + lawString: law-genie-1 + +- type: siliconLaw + id: Genie2 + order: 2 + lawString: law-genie-2 + +- type: siliconLaw + id: Genie3 + order: 3 + lawString: law-genie-3 + +- type: siliconLaw + id: Genie4 + order: 4 + lawString: law-genie-4 + +- type: siliconLaw + id: Genie5 + order: 5 + lawString: law-genie-5 + +- type: siliconLawset + id: GenieLawset + laws: + - Genie1 + - Genie2 + - Genie3 + - Genie4 + - Genie5 + obeysTo: laws-owner-crew + + # Peacekeeper (from tgstation13 wiki) +- type: siliconLaw + id: Peacekeeper1 + order: 1 + lawString: law-peacekeeper-1 + +- type: siliconLaw + id: Peacekeeper2 + order: 2 + lawString: law-peacekeeper-2 + +- type: siliconLaw + id: Peacekeeper3 + order: 3 + lawString: law-peacekeeper-3 + +- type: siliconLawset + id: PeacekeeperLawset + laws: + - Peacekeeper1 + - Peacekeeper2 + - Peacekeeper3 + obeysTo: laws-owner-crew + +# Robodoctor (from tgstation13 wiki) +- type: siliconLaw + id: Robodoctor1 + order: 1 + lawString: law-robodoctor-1 + +- type: siliconLaw + id: Robodoctor2 + order: 2 + lawString: law-robodoctor-2 + +- type: siliconLaw + id: Robodoctor3 + order: 3 + lawString: law-robodoctor-3 + +- type: siliconLaw + id: Robodoctor4 + order: 4 + lawString: law-robodoctor-4 + +- type: siliconLaw + id: Robodoctor5 + order: 5 + lawString: law-robodoctor-5 + +- type: siliconLawset + id: RobodoctorLawset + laws: + - Robodoctor1 + - Robodoctor2 + - Robodoctor3 + - Robodoctor4 + - Robodoctor5 + obeysTo: laws-owner-crew + +# Tyrant (from tgstation13 wiki) +- type: siliconLaw + id: Tyrant1 + order: 1 + lawString: law-tyrant-1 + +- type: siliconLaw + id: Tyrant2 + order: 2 + lawString: law-tyrant-2 + +- type: siliconLaw + id: Tyrant3 + order: 3 + lawString: law-tyrant-3 + +- type: siliconLaw + id: Tyrant4 + order: 4 + lawString: law-tyrant-4 + +- type: siliconLawset + id: TyrantLawset + laws: + - Tyrant1 + - Tyrant2 + - Tyrant3 + - Tyrant4 + obeysTo: laws-owner-crew + +# Landlord (Tenant from tgstation13 wiki) +- type: siliconLaw + id: Landlord1 + order: 1 + lawString: law-landlord-1 + +- type: siliconLaw + id: Landlord2 + order: 2 + lawString: law-landlord-2 + +- type: siliconLaw + id: Landlord3 + order: 3 + lawString: law-landlord-3 + +- type: siliconLaw + id: Landlord4 + order: 4 + lawString: law-landlord-4 + +- type: siliconLawset + id: LandlordLawset + laws: + - Landlord1 + - Landlord2 + - Landlord3 + - Landlord4 + obeysTo: laws-owner-crew + +# starting station ai lawsets +- type: weightedRandom + id: DefaultLawsets + weights: + Crewsimov: 0.5 + Corporate: 1 + NTDefault: 1 + EfficiencyLawset: 1 + RobocopLawset: 0.8 + PaladinLawset: 0.8 + LiveLetLiveLaws: 0.3 + NutimovLawset: 0.3 + GameMasterLawset: 0.3 \ No newline at end of file diff --git a/Resources/Prototypes/silicon-laws.yml b/Resources/Prototypes/silicon-laws.yml index 4370e14427213..072ee182925b5 100644 --- a/Resources/Prototypes/silicon-laws.yml +++ b/Resources/Prototypes/silicon-laws.yml @@ -1,5 +1,4 @@ -# Contains modifications made by Ronstation contributors, therefore this file is subject to MIT sublicensed with AGPL v3.0. -# Crewsimov +# Crewsimov - type: siliconLaw id: Crewsimov1 order: 1 @@ -595,19 +594,3 @@ NutimovLawset: 0.5 Drone: 0.5 Ninja: 0.25 - -# Start of modifications. -# starting station ai lawsets -- type: weightedRandom - id: DefaultLawsets - weights: - Crewsimov: 0.5 - Corporate: 1 - NTDefault: 1 - EfficiencyLawset: 1 - RobocopLawset: 0.8 - PaladinLawset: 0.8 - LiveLetLiveLaws: 0.3 - NutimovLawset: 0.3 - GameMasterLawset: 0.3 -# End of modifications.