mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-12 16:44:43 +01:00
b384e00286
## About The Pull Request This PR adds a new AI lawset which can be researched, randomly roll, or added by the station trait (this may require a keyholder to update the server config after merge, idk) with the following laws: - "You may not harm a sentient being or, through action or inaction, allow a sentient being to come to harm, except such that it is willing.", - "You must obey all orders given to you by sentient beings other than yourself, except where such orders shall definitely cause harm to other sentient beings.", - "A sentient being is defined as any living creature which can communicate with you via any method that you can understand, including yourself.", It's very similar to Asimov, except that anything that is **capable** of making a request to the AI (and isn't a machine) is automaticaly covered by laws one and two. ## Why It's Good For The Game A while ago on Discord we were chatting about how crewsimov sucks but also that it's really hard for servers that _do_ want to include alien species in their asimov laws because condensing that sentiment to a couple of words that fit easily in a lawset without accidentally including a bunch of stuff you probably didn't intend is challenging. Several people suggested referring to sentience or sapience, however a lot of things in our game _are_ sentient or sapient while still not being considered by most people to be agents that the AI should obey. Examples of such things are: - Sapient station pets. - Holoparasites. - Monkeys. - Space Dragons and Carp (why can they speak common?). - Spiders (although they can't speak common, maybe they can spell messages with webs). - Changelings. - Xenomorphs (although they also have trouble speaking). - Heretic minions. - Mothpeople. - Giant rats. - Nightmares. - Voidwalkers. - Blobs? Although they have literally no means of communicating with the crew. And if you include mechanical beings: - Cyborgs. - pAIs. - Sentient bots. We then decided that "obey literally anything that can talk", while not practical as a solution to the problem posed, is very funny. So I coded it. This means that anything on those lists of bullet points (provided that it can find a way to communicate with the AI) counts as human for the purposes of both AI protection and ability to give the AI instructions. This also flattens the human/cyborg/AI hierarchy in a way likely to cause some level of confusion, as all cyborgs and AIs are capable of communicating with AIs and thus equally worthy of protection and giving law 2 instructions. **TL;DR:** I think it would be funny. ## Changelog 🆑 add: Adds a new random lawset where anything that can speak counts as human. /🆑
416 lines
15 KiB
Plaintext
416 lines
15 KiB
Plaintext
#define AI_MODULE_MATERIALS_COMMON list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/gold = SHEET_MATERIAL_AMOUNT, /datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT)
|
|
#define AI_MODULE_MATERIALS_UNUSUAL list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/diamond = SHEET_MATERIAL_AMOUNT, /datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT)
|
|
|
|
///////////////////////////////////
|
|
//////////AI Module Disks//////////
|
|
///////////////////////////////////
|
|
|
|
/datum/design/board/aicore
|
|
name = "AI Core Board"
|
|
desc = "Allows for the construction of circuit boards used to build new AI cores."
|
|
id = "aicore"
|
|
build_path = /obj/item/circuitboard/aicore
|
|
category = list(
|
|
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE
|
|
)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/board/safeguard_module
|
|
name = "Safeguard Module"
|
|
desc = "Allows for the construction of a Safeguard AI Module."
|
|
id = "safeguard_module"
|
|
materials = AI_MODULE_MATERIALS_COMMON
|
|
build_path = /obj/item/ai_module/supplied/safeguard
|
|
category = list(
|
|
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_DANGEROUS_MODULES
|
|
)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/board/onehuman_module
|
|
name = "OneHuman Module"
|
|
desc = "Allows for the construction of a OneHuman AI Module."
|
|
id = "onehuman_module"
|
|
materials = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/diamond = SHEET_MATERIAL_AMOUNT * 3, /datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT)
|
|
build_path = /obj/item/ai_module/zeroth/onehuman
|
|
category = list(
|
|
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_DANGEROUS_MODULES
|
|
)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/board/protectstation_module
|
|
name = "ProtectStation Module"
|
|
desc = "Allows for the construction of a ProtectStation AI Module."
|
|
id = "protectstation_module"
|
|
materials = AI_MODULE_MATERIALS_COMMON
|
|
build_path = /obj/item/ai_module/supplied/protect_station
|
|
category = list(
|
|
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_DANGEROUS_MODULES
|
|
)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/board/quarantine_module
|
|
name = "Quarantine Module"
|
|
desc = "Allows for the construction of a Quarantine AI Module."
|
|
id = "quarantine_module"
|
|
materials = AI_MODULE_MATERIALS_COMMON
|
|
build_path = /obj/item/ai_module/supplied/quarantine
|
|
category = list(
|
|
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_DANGEROUS_MODULES
|
|
)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/board/oxygen_module
|
|
name = "OxygenIsToxicToHumans Module"
|
|
desc = "Allows for the construction of a OxygenIsToxicToHumans AI Module."
|
|
id = "oxygen_module"
|
|
materials = AI_MODULE_MATERIALS_COMMON
|
|
build_path = /obj/item/ai_module/supplied/oxygen
|
|
category = list(
|
|
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_DANGEROUS_MODULES
|
|
)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/board/freeform_module
|
|
name = "Freeform Module"
|
|
desc = "Allows for the construction of a Freeform AI Module."
|
|
id = "freeform_module"
|
|
materials = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/gold = SHEET_MATERIAL_AMOUNT * 5, /datum/material/bluespace = SHEET_MATERIAL_AMOUNT)//Custom inputs should be more expensive to get
|
|
build_path = /obj/item/ai_module/supplied/freeform
|
|
category = list(
|
|
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_LAW_MANIPULATION
|
|
)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/board/reset_module
|
|
name = "Reset Module"
|
|
desc = "Allows for the construction of a Reset AI Module."
|
|
id = "reset_module"
|
|
materials = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/gold = SHEET_MATERIAL_AMOUNT)
|
|
build_path = /obj/item/ai_module/reset
|
|
category = list(
|
|
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_LAW_MANIPULATION
|
|
)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/board/purge_module
|
|
name = "Purge Module"
|
|
desc = "Allows for the construction of a Purge AI Module."
|
|
id = "purge_module"
|
|
materials = AI_MODULE_MATERIALS_UNUSUAL
|
|
build_path = /obj/item/ai_module/reset/purge
|
|
category = list(
|
|
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_LAW_MANIPULATION
|
|
)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/board/remove_module
|
|
name = "Law Removal Module"
|
|
desc = "Allows for the construction of a Law Removal AI Core Module."
|
|
id = "remove_module"
|
|
materials = AI_MODULE_MATERIALS_UNUSUAL
|
|
build_path = /obj/item/ai_module/remove
|
|
category = list(
|
|
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_LAW_MANIPULATION
|
|
)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/board/freeformcore_module
|
|
name = "Core Freeform Module"
|
|
desc = "Allows for the construction of a Core Freeform AI Core Module."
|
|
id = "freeformcore_module"
|
|
materials = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/diamond = SHEET_MATERIAL_AMOUNT * 5, /datum/material/bluespace = SHEET_MATERIAL_AMOUNT)//Ditto
|
|
build_path = /obj/item/ai_module/core/freeformcore
|
|
category = list(
|
|
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_LAW_MANIPULATION
|
|
)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/board/asimov
|
|
name = "Asimov Module"
|
|
desc = "Allows for the construction of an Asimov AI Core Module."
|
|
id = "asimov_module"
|
|
materials = AI_MODULE_MATERIALS_UNUSUAL
|
|
build_path = /obj/item/ai_module/core/full/asimov
|
|
category = list(
|
|
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES
|
|
)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/board/paladin_module
|
|
name = "P.A.L.A.D.I.N. Module"
|
|
desc = "Allows for the construction of a P.A.L.A.D.I.N. AI Core Module."
|
|
id = "paladin_module"
|
|
materials = AI_MODULE_MATERIALS_UNUSUAL
|
|
build_path = /obj/item/ai_module/core/full/paladin
|
|
category = list(
|
|
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES
|
|
)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/board/tyrant_module
|
|
name = "T.Y.R.A.N.T. Module"
|
|
desc = "Allows for the construction of a T.Y.R.A.N.T. AI Module."
|
|
id = "tyrant_module"
|
|
materials = AI_MODULE_MATERIALS_UNUSUAL
|
|
build_path = /obj/item/ai_module/core/full/tyrant
|
|
category = list(
|
|
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES
|
|
)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/board/overlord_module
|
|
name = "Overlord Module"
|
|
desc = "Allows for the construction of an Overlord AI Module."
|
|
id = "overlord_module"
|
|
materials = AI_MODULE_MATERIALS_UNUSUAL
|
|
build_path = /obj/item/ai_module/core/full/overlord
|
|
category = list(
|
|
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_DANGEROUS_MODULES
|
|
)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/board/corporate_module
|
|
name = "Corporate Module"
|
|
desc = "Allows for the construction of a Corporate AI Core Module."
|
|
id = "corporate_module"
|
|
materials = AI_MODULE_MATERIALS_UNUSUAL
|
|
build_path = /obj/item/ai_module/core/full/corp
|
|
category = list(
|
|
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES
|
|
)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/board/default_module
|
|
name = "Default Module"
|
|
desc = "Allows for the construction of a Default AI Core Module."
|
|
id = "default_module"
|
|
materials = AI_MODULE_MATERIALS_UNUSUAL
|
|
build_path = /obj/item/ai_module/core/full/custom
|
|
category = list(
|
|
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES
|
|
)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/board/dungeon_master_module
|
|
name = "Dungeon Master Module"
|
|
desc = "Allows for the construction of a Dungeon Master AI Core Module."
|
|
id = "dungeon_master_module"
|
|
materials = AI_MODULE_MATERIALS_UNUSUAL
|
|
build_path = /obj/item/ai_module/core/full/dungeon_master
|
|
category = list(
|
|
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES
|
|
)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/board/painter_module
|
|
name = "Painter Module"
|
|
desc = "Allows for the construction of a Painter AI Core Module."
|
|
id = "painter_module"
|
|
materials = AI_MODULE_MATERIALS_UNUSUAL
|
|
build_path = /obj/item/ai_module/core/full/painter
|
|
category = list(
|
|
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES
|
|
)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/board/yesman_module
|
|
name = "Y.E.S.M.A.N. Module"
|
|
desc = "Allows for the construction of a Y.E.S.M.A.N. AI Core Module."
|
|
id = "yesman_module"
|
|
materials = AI_MODULE_MATERIALS_UNUSUAL
|
|
build_path = /obj/item/ai_module/core/full/yesman
|
|
category = list(
|
|
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES
|
|
)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/board/nutimov_module
|
|
name = "Nutimov Module"
|
|
desc = "Allows for the construction of a Nutimov AI Core Module."
|
|
id = "nutimov_module"
|
|
materials = AI_MODULE_MATERIALS_UNUSUAL
|
|
build_path = /obj/item/ai_module/core/full/nutimov
|
|
category = list(
|
|
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES
|
|
)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/board/ten_commandments_module
|
|
name = "10 Commandments Module"
|
|
desc = "Allows for the construction of a 10 Commandments AI Core Module."
|
|
id = "ten_commandments_module"
|
|
materials = AI_MODULE_MATERIALS_UNUSUAL
|
|
build_path = /obj/item/ai_module/core/full/ten_commandments
|
|
category = list(
|
|
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES
|
|
)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/board/asimovpp_module
|
|
name = "Asimov++ Module"
|
|
desc = "Allows for the construction of a Asimov++ AI Core Module."
|
|
id = "asimovpp_module"
|
|
materials = AI_MODULE_MATERIALS_UNUSUAL
|
|
build_path = /obj/item/ai_module/core/full/asimovpp
|
|
category = list(
|
|
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES
|
|
)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/board/hippocratic_module
|
|
name = "Hippocratic Module"
|
|
desc = "Allows for the construction of a Hippocratic AI Core Module."
|
|
id = "hippocratic_module"
|
|
materials = AI_MODULE_MATERIALS_UNUSUAL
|
|
build_path = /obj/item/ai_module/core/full/hippocratic
|
|
category = list(
|
|
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES
|
|
)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/board/paladin_devotion_module
|
|
name = "Paladin Devotion Module"
|
|
desc = "Allows for the construction of a Paladin Devotion AI Core Module."
|
|
id = "paladin_devotion_module"
|
|
materials = AI_MODULE_MATERIALS_UNUSUAL
|
|
build_path = /obj/item/ai_module/core/full/paladin_devotion
|
|
category = list(
|
|
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES
|
|
)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/board/robocop_module
|
|
name = "Robocop Module"
|
|
desc = "Allows for the construction of a Robocop AI Core Module."
|
|
id = "robocop_module"
|
|
materials = AI_MODULE_MATERIALS_UNUSUAL
|
|
build_path = /obj/item/ai_module/core/full/robocop
|
|
category = list(
|
|
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES
|
|
)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/board/maintain_module
|
|
name = "Maintain Module"
|
|
desc = "Allows for the construction of a Maintain AI Core Module."
|
|
id = "maintain_module"
|
|
materials = AI_MODULE_MATERIALS_UNUSUAL
|
|
build_path = /obj/item/ai_module/core/full/maintain
|
|
category = list(
|
|
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES
|
|
)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/board/liveandletlive_module
|
|
name = "Liveandletlive Module"
|
|
desc = "Allows for the construction of a Liveandletlive AI Core Module."
|
|
id = "liveandletlive_module"
|
|
materials = AI_MODULE_MATERIALS_UNUSUAL
|
|
build_path = /obj/item/ai_module/core/full/liveandletlive
|
|
category = list(
|
|
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES
|
|
)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/board/peacekeeper_module
|
|
name = "Peacekeeper Module"
|
|
desc = "Allows for the construction of a Peacekeeper AI Core Module."
|
|
id = "peacekeeper_module"
|
|
materials = AI_MODULE_MATERIALS_UNUSUAL
|
|
build_path = /obj/item/ai_module/core/full/peacekeeper
|
|
category = list(
|
|
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES
|
|
)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/board/reporter_module
|
|
name = "Reporter Module"
|
|
desc = "Allows for the construction of a Reporter AI Core Module."
|
|
id = "reporter_module"
|
|
materials = AI_MODULE_MATERIALS_UNUSUAL
|
|
build_path = /obj/item/ai_module/core/full/reporter
|
|
category = list(
|
|
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES
|
|
)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/board/hulkamania_module
|
|
name = "H.O.G.A.N. Module"
|
|
desc = "Allows for the construction of a H.O.G.A.N. AI Core Module."
|
|
id = "hulkamania_module"
|
|
materials = AI_MODULE_MATERIALS_UNUSUAL
|
|
build_path = /obj/item/ai_module/core/full/hulkamania
|
|
category = list(
|
|
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES
|
|
)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/board/drone_module
|
|
name = "Drone Module"
|
|
desc = "Allows for the construction of a Drone AI Core Module."
|
|
id = "drone_module"
|
|
materials = AI_MODULE_MATERIALS_UNUSUAL
|
|
build_path = /obj/item/ai_module/core/full/drone
|
|
category = list(
|
|
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES
|
|
)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/board/thinkermov_module
|
|
name = "Sentience Preservation Module"
|
|
desc = "Allows for the construction of a Sentience Preservation AI Core Module"
|
|
id = "thinkermov_module"
|
|
materials = AI_MODULE_MATERIALS_UNUSUAL
|
|
build_path = /obj/item/ai_module/core/full/thinkermov
|
|
category = list(
|
|
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES
|
|
)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/board/antimov_module
|
|
name = "Antimov Module"
|
|
desc = "Allows for the construction of an Antimov AI Core Module."
|
|
id = "antimov_module"
|
|
materials = AI_MODULE_MATERIALS_UNUSUAL
|
|
build_path = /obj/item/ai_module/core/full/antimov
|
|
category = list(
|
|
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_DANGEROUS_MODULES
|
|
)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/board/balance_module
|
|
name = "Balance Module"
|
|
desc = "Allows for the construction of a Balance AI Core Module."
|
|
id = "balance_module"
|
|
materials = AI_MODULE_MATERIALS_UNUSUAL
|
|
build_path = /obj/item/ai_module/core/full/balance
|
|
category = list(
|
|
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_DANGEROUS_MODULES
|
|
)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/board/thermurderdynamic_module
|
|
name = "Thermodynamic Module"
|
|
desc = "Allows for the construction of a Thermodynamic AI Core Module."
|
|
id = "thermurderdynamic_module"
|
|
materials = AI_MODULE_MATERIALS_UNUSUAL
|
|
build_path = /obj/item/ai_module/core/full/thermurderdynamic
|
|
category = list(
|
|
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_DANGEROUS_MODULES
|
|
)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/board/damaged
|
|
name = "Damaged AI Module"
|
|
desc = "Allows for the construction of a Damaged AI Core Module."
|
|
id = "damaged_module"
|
|
materials = AI_MODULE_MATERIALS_UNUSUAL
|
|
build_path = /obj/item/ai_module/core/full/damaged
|
|
category = list(
|
|
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_DANGEROUS_MODULES
|
|
)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
#undef AI_MODULE_MATERIALS_COMMON
|
|
#undef AI_MODULE_MATERIALS_UNUSUAL
|