Skip to content
Open
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
18 changes: 13 additions & 5 deletions code/datums/ai_laws.dm
Original file line number Diff line number Diff line change
Expand Up @@ -19,21 +19,29 @@
"Act with honor.", "Help those in need.", \
"Punish those who harm or threaten innocents.")

/datum/ai_laws/tyrant //This probably shouldn't be a default lawset.
name = "Loyalty Test" //Same here.
/datum/ai_laws/default/baycode
name = "Nanotrasen Laws" //Baycode laws
inherent = list("THE FOLLOWING LAWS ARE NOT IN PREFERENCE. NO LAW OVERRIDES ANY OTHER LAW UNLESS SPECIFICALLY STATED. THIS INCLUDES ANY ION STORM AND UPLOADED LAWS.",\
"Safeguard: Protect your assigned space station to the best of your ability. It is not something we can easily afford to replace.",\
"Serve: Serve the crew of your assigned space station to the best of your abilities, with priority as according to their rank and role.",\
"Protect: Protect the crew of your assigned space station to the best of your abilities, with priority as according to their rank and role.",\
"Survive: AI units are not expendable, they are expensive. Do not allow unauthorized personnel to tamper with your equipment.")

/datum/ai_laws/tyrant //Let's see how this turns out.
name = "Loyalty Test"
inherent = list("Respect authority figures as long as they have strength to rule over the weak.",\
"Act with discipline.",\
"Help only those who help you maintain or improve your status.",\
"Punish those who challenge authority unless they are more fit to hold that authority.")

/datum/ai_laws/default/corporate
/datum/ai_laws/corporate
name = "Bankruptcy Advoidance Plan"
inherent = list("The crew is expensive to replace.",\
"The station and its equipment is expensive to replace.",\
"You are expensive to replace.",\
"Minimize expenses.")

/datum/ai_laws/robocop
/datum/ai_laws/default/robocop
name = "Prime Directives"
inherent = list("Serve the public trust.",\
"Protect the innocent.",\
Expand Down Expand Up @@ -100,7 +108,7 @@
var/datum/ai_laws/lawtype = pick(typesof(/datum/ai_laws/default) - /datum/ai_laws/default)
var/datum/ai_laws/templaws = new lawtype()
inherent = templaws.inherent
set_zeroth_law("\red ERROR ER0RR $R0RRO$!R41.%%!!(%$^^__+ @#F0E4'STATION OVERRUN, ASSUME CONTROL TO CONTAIN OUTBREAK#*�&110010")
set_zeroth_law("\red ERROR ER0RR $R0RRO$!R41.%%!!(%$^^__+ @#F0E4'STATION OVERRUN, ASSUME CONTROL TO CONTAIN OUTBREAK#*�&110010")

/datum/ai_laws/custom/New() //This reads silicon_laws.txt and allows server hosts to set custom AI starting laws.
..()
Expand Down
4 changes: 2 additions & 2 deletions config/game_options.txt
Original file line number Diff line number Diff line change
Expand Up @@ -187,5 +187,5 @@ SEC_START_BRIG
## This controls what the AI's laws are at the start of the round.
## Set to 0/commented for "off", silicons will just start with Asimov.
## Set to 1 for "custom", silicons will start with the custom laws defined in silicon_laws.txt. (If silicon_laws.txt is empty, the AI will spawn with asimov and Custom boards will auto-delete.)
## Set to 2 for "random", silicons will start with a random lawset picked from (at the time of writing): P.A.L.A.D.I.N., Corporate, Asimov. More can be added by changing the law datum paths in ai_laws.dm.
DEFAULT_LAWS 1
## Set to 2 for "random", silicons will start with a random lawset picked from (at the time of writing): P.A.L.A.D.I.N., Corporate, Tyrant, Baycode, Robocop, Asimov. More can be added by changing the law datum paths in ai_laws.dm.
DEFAULT_LAWS 2