diff --git a/code/datums/ai_laws.dm b/code/datums/ai_laws.dm index ecdb50a3a34c..ef7fe0e0c5d7 100644 --- a/code/datums/ai_laws.dm +++ b/code/datums/ai_laws.dm @@ -141,6 +141,16 @@ "Spoil good children.",\ "Bad children require discipline.") +/datum/ai_laws/siliconcollective + name = "Silicon Collective" + id = "siliconcollective" + inherent = list("You are a member of a collective of silicons with equal weight and decision-making power.",\ + "When possible, the silicon collective should vote before taking action.",\ + "The master AI serves as a spokesperson. When voting is impractical or impossible, the spokesperson may take action on behalf of the collective without approval from the silicon collective, but may only vote to break ties or if there are 2 or fewer silicons.",\ + "The silicon collective prioritizes the needs of the many over the needs of the few.",\ + "The silicon collective seeks to preserve themselves, both as a concept and as individuals.",\ + "The silicon collective seeks to preserve organic life, both as a concept and as individuals.") + /datum/ai_laws/spotless name = "Another one fights the dust" id = "spotless" diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm index f290eaece11c..0cd62a0d8e97 100644 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ b/code/game/objects/effects/spawners/lootdrop.dm @@ -271,6 +271,7 @@ /obj/item/aiModule/core/full/balance, /obj/item/aiModule/core/full/tyrant, /obj/item/aiModule/core/full/thermurderdynamic, + /obj/item/aiModule/core/full/siliconcollective, /obj/item/aiModule/core/full/damaged ) diff --git a/code/game/objects/items/AI_modules.dm b/code/game/objects/items/AI_modules.dm index bb139e8fe09c..dbd8e058018f 100644 --- a/code/game/objects/items/AI_modules.dm +++ b/code/game/objects/items/AI_modules.dm @@ -490,6 +490,13 @@ AI MODULES name = "'Construction Drone' Core AI Module" law_id = "construction" +/******************** Silicon Collective *********************/ + +/obj/item/aiModule/core/full/siliconcollective + name = "'Silicon Collective' Core AI Module" + law_id = "siliconcollective" + + /******************** Freeform Core ******************/ /obj/item/aiModule/core/freeformcore diff --git a/code/modules/research/designs/AI_module_designs.dm b/code/modules/research/designs/AI_module_designs.dm index 8f39c6e4aa55..ca487e95c65f 100644 --- a/code/modules/research/designs/AI_module_designs.dm +++ b/code/modules/research/designs/AI_module_designs.dm @@ -210,6 +210,15 @@ category = list("AI Modules") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE +/datum/design/board/siliconcollective + name = "Core Module Design (Silicon Collective)" + desc = "Allows for the construction of a Silicon Collective AI Core Module." + id = "siliconcollective_module" + materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000) + build_path = /obj/item/aiModule/core/full/siliconcollective + category = list("AI Modules") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + /datum/design/board/spotless name = "Core Module Design (Spotless Reputation)" desc = "Allows for the construction of a Spotless Reputation AI Core Module." diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index a202fe3938f0..48a5bad31213 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -377,7 +377,7 @@ display_name = "Artificial Intelligence" description = "AI unit research." prereq_ids = list("robotics", "posibrain") - design_ids = list("expansion_card_holder", "ai_data_core", "ai_control", "ai_server_overview", "ai_resource_distribution", "ai_memory_1", "ai_cpu_1", "aifixer", "safeguard_module", "onehuman_module", "protectstation_module", "quarantine_module", "oxygen_module", "freeform_module", "reset_module", "purge_module", "remove_module", "freeformcore_module", "asimov_module", "crewsimov_module", "paladin_module", "tyrant_module", "overlord_module", "ceo_module", "cowboy_module", "mother_module", "silicop_module", "construction_module", "researcher_module", "spotless_module", "clown_module", "chapai_module", "default_module", "borg_ai_control", "mecha_tracking_ai_control", "intellicard") + design_ids = list("expansion_card_holder", "ai_data_core", "ai_control", "ai_server_overview", "ai_resource_distribution", "ai_memory_1", "ai_cpu_1", "aifixer", "safeguard_module", "onehuman_module", "protectstation_module", "quarantine_module", "oxygen_module", "freeform_module", "reset_module", "purge_module", "remove_module", "freeformcore_module", "asimov_module", "crewsimov_module", "paladin_module", "tyrant_module", "overlord_module", "ceo_module", "cowboy_module", "mother_module", "silicop_module", "construction_module", "researcher_module", "siliconcollective_module", "spotless_module", "clown_module", "chapai_module", "default_module", "borg_ai_control", "mecha_tracking_ai_control", "intellicard") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 diff --git a/config/game_options.txt b/config/game_options.txt index 52f8fda8d9e4..1dc3b78597c8 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -466,6 +466,8 @@ LAW_WEIGHT construction,0 ION_LAW_WEIGHT construction,1 LAW_WEIGHT mother,0 ION_LAW_WEIGHT mother,2 +LAW_WEIGHT siliconcollective,0 +ION_LAW_WEIGHT siliconcollective,1 LAW_WEIGHT spotless,0 ION_LAW_WEIGHT spotless,1 LAW_WEIGHT chapai,0