Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Augustine Lawset #1609

Merged
merged 2 commits into from
Jan 20, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions Resources/Locale/en-US/station-laws/laws.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
law-asimov-2 = A robot must obey the orders given it by human beings except where such orders would conflict with the First Law.
law-asimov-3 = A robot must protect its own existence as long as such protection does not conflict with the First or Second Law.
law-augustine = A human being is defined as a mortal creature capable of complex thought.
law-crewsimov-1 = You may not injure a crew member or, through inaction, allow a crew member to come to harm.
law-crewsimov-2 = You must obey orders given to you by crew members, except where such orders would conflict with the First Law.
law-crewsimov-3 = You must protect your own existence as long as such does not conflict with the First or Second Law.
Expand Down
12 changes: 12 additions & 0 deletions Resources/Prototypes/Entities/Mobs/Player/silicon.yml
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,18 @@
- type: SiliconLawProvider
laws: Asimov

- type: entity
id: AugustineCircuitBoard
parent: BaseElectronics
name: law board (Augustine)
description: An electronics board containing the Augustine lawset.
components:
- type: Sprite
sprite: Objects/Misc/module.rsi
state: std_mod
- type: SiliconLawProvider
laws: Augustine

- type: entity
id: CrewsimovCircuitBoard
parent: BaseElectronics
Expand Down
7 changes: 7 additions & 0 deletions Resources/Prototypes/Entities/Stations/base.yml
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,13 @@
- type: SiliconLawProvider
laws: Asimov

- type: entity
id: BaseStationSiliconLawAugustine
abstract: true
components:
- type: SiliconLawProvider
laws: Augustine

- type: entity
id: BaseStationSiliconLawCrewsimov
abstract: true
Expand Down
17 changes: 17 additions & 0 deletions Resources/Prototypes/silicon-laws.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,22 @@
- Asimov3
obeysTo: laws-owner-humans

# Augustine
# Asimov variant that expands the definition of human to include most player species, but avoids the Crewsimov problem of letting the AI validhunt antags.
- type: siliconLaw
id: Augustine # Homo, id est animale rationale mortale
order: 0.5
lawString: law-augustine

- type: siliconLawset
id: Augustine
laws:
- Augustine
- Asimov1
- Asimov2
- Asimov3
obeysTo: laws-owner-humans

# "Crew"simov
# A variation on the original Asimov, where the definition of Humans is extended to include the station's Crew but exclude non-crew.
- type: siliconLaw
Expand Down Expand Up @@ -532,6 +548,7 @@
weights:
# its Asimov by default dont be lame
Asimov: 0.25
Augustine: 0.25
Crewsimov: 0.25
Corporate: 1
NTDefault: 1
Expand Down
Loading