Make some AI material lists into defines (#89178)

## About The Pull Request

Tiny code cleanup to AI-related files.
- Removes unmaintained pointless block comment that listed file
contents.
- Updates file reference to where you actually need to add things.
- Convert some heavily copy/pasted lists to defines.

Originally implemented in #89032 and will conflict with it when merged
presumably but that's my problem. @san7890 correctly noted that getting
new AI laws merged can be tedious and political and he would like these
changes to be mergeable separately.

## Changelog

Not player facing
This commit is contained in:
Jacquerel
2025-01-27 21:01:21 -07:00
committed by GitHub
parent 301fc37d53
commit 5ec828cc4d
2 changed files with 38 additions and 59 deletions
@@ -1,37 +1,10 @@
/* CONTAINS:
* /obj/item/ai_module/core/full/custom
* /obj/item/ai_module/core/full/asimov
* /obj/item/ai_module/core/full/asimovpp
* /obj/item/ai_module/core/full/corp
* /obj/item/ai_module/core/full/paladin
* /obj/item/ai_module/core/full/paladin_devotion
* /obj/item/ai_module/core/full/tyrant
* /obj/item/ai_module/core/full/robocop
* /obj/item/ai_module/core/full/antimov
* /obj/item/ai_module/core/full/drone
* /obj/item/ai_module/core/full/hippocratic
* /obj/item/ai_module/core/full/reporter
* /obj/item/ai_module/core/full/thermurderdynamic
* /obj/item/ai_module/core/full/liveandletlive
* /obj/item/ai_module/core/full/balance
* /obj/item/ai_module/core/full/maintain
* /obj/item/ai_module/core/full/peacekeeper
* /obj/item/ai_module/core/full/hulkamania
* /obj/item/ai_module/core/full/overlord
* /obj/item/ai_module/core/full/ten_commandments
* /obj/item/ai_module/core/full/nutimov
* /obj/item/ai_module/core/full/dungeon_master
* /obj/item/ai_module/core/full/painter
* /obj/item/ai_module/core/full/yesman
**/
/* When adding a new lawset please make sure you add it to the following locations:
*
* code\game\objects\items\AI_modules - (full_lawsets.dm, supplied.dm, etc.)
* code\datums\ai_laws - (laws_anatgonistic.dm, laws_neutral.dm, etc.)
* code\game\objects\effects\spawners\random\ai_module.dm - (this gives a chance to spawn the lawset in the AI upload)
* code\modules\research\designs\AI_module_designs.dm - (this lets research print the lawset module in game)
* code\modules\research\techweb\all_nodes.dm - (this updates AI research node with the lawsets)
* code\modules\research\techweb\robo_nodes.dm - (this updates AI research node with the lawsets)
* config\game_options.txt - (this allows the AI to potentially use the lawset at roundstart or with the Unique AI station trait)
**/
@@ -1,3 +1,6 @@
#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//////////
///////////////////////////////////
@@ -16,7 +19,7 @@
name = "Safeguard Module"
desc = "Allows for the construction of a Safeguard AI Module."
id = "safeguard_module"
materials = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/gold = SHEET_MATERIAL_AMOUNT, /datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT)
materials = AI_MODULE_MATERIALS_COMMON
build_path = /obj/item/ai_module/supplied/safeguard
category = list(
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_DANGEROUS_MODULES
@@ -38,7 +41,7 @@
name = "ProtectStation Module"
desc = "Allows for the construction of a ProtectStation AI Module."
id = "protectstation_module"
materials = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/gold = SHEET_MATERIAL_AMOUNT, /datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT)
materials = AI_MODULE_MATERIALS_COMMON
build_path = /obj/item/ai_module/supplied/protect_station
category = list(
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_DANGEROUS_MODULES
@@ -49,7 +52,7 @@
name = "Quarantine Module"
desc = "Allows for the construction of a Quarantine AI Module."
id = "quarantine_module"
materials = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/gold = SHEET_MATERIAL_AMOUNT, /datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT)
materials = AI_MODULE_MATERIALS_COMMON
build_path = /obj/item/ai_module/supplied/quarantine
category = list(
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_DANGEROUS_MODULES
@@ -60,7 +63,7 @@
name = "OxygenIsToxicToHumans Module"
desc = "Allows for the construction of a OxygenIsToxicToHumans AI Module."
id = "oxygen_module"
materials = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/gold = SHEET_MATERIAL_AMOUNT, /datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT)
materials = AI_MODULE_MATERIALS_COMMON
build_path = /obj/item/ai_module/supplied/oxygen
category = list(
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_DANGEROUS_MODULES
@@ -93,7 +96,7 @@
name = "Purge Module"
desc = "Allows for the construction of a Purge AI Module."
id = "purge_module"
materials = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/diamond = SHEET_MATERIAL_AMOUNT, /datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT)
materials = AI_MODULE_MATERIALS_UNUSUAL
build_path = /obj/item/ai_module/reset/purge
category = list(
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_LAW_MANIPULATION
@@ -104,7 +107,7 @@
name = "Law Removal Module"
desc = "Allows for the construction of a Law Removal AI Core Module."
id = "remove_module"
materials = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/diamond = SHEET_MATERIAL_AMOUNT, /datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT)
materials = AI_MODULE_MATERIALS_UNUSUAL
build_path = /obj/item/ai_module/remove
category = list(
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_LAW_MANIPULATION
@@ -126,7 +129,7 @@
name = "Asimov Module"
desc = "Allows for the construction of an Asimov AI Core Module."
id = "asimov_module"
materials = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/diamond = SHEET_MATERIAL_AMOUNT, /datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT)
materials = AI_MODULE_MATERIALS_UNUSUAL
build_path = /obj/item/ai_module/core/full/asimov
category = list(
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES
@@ -137,7 +140,7 @@
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 = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/diamond = SHEET_MATERIAL_AMOUNT, /datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT)
materials = AI_MODULE_MATERIALS_UNUSUAL
build_path = /obj/item/ai_module/core/full/paladin
category = list(
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES
@@ -148,7 +151,7 @@
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 = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/diamond = SHEET_MATERIAL_AMOUNT, /datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT)
materials = AI_MODULE_MATERIALS_UNUSUAL
build_path = /obj/item/ai_module/core/full/tyrant
category = list(
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES
@@ -159,7 +162,7 @@
name = "Overlord Module"
desc = "Allows for the construction of an Overlord AI Module."
id = "overlord_module"
materials = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/diamond = SHEET_MATERIAL_AMOUNT, /datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT)
materials = AI_MODULE_MATERIALS_UNUSUAL
build_path = /obj/item/ai_module/core/full/overlord
category = list(
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_DANGEROUS_MODULES
@@ -170,7 +173,7 @@
name = "Corporate Module"
desc = "Allows for the construction of a Corporate AI Core Module."
id = "corporate_module"
materials = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/diamond = SHEET_MATERIAL_AMOUNT, /datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT)
materials = AI_MODULE_MATERIALS_UNUSUAL
build_path = /obj/item/ai_module/core/full/corp
category = list(
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES
@@ -181,7 +184,7 @@
name = "Default Module"
desc = "Allows for the construction of a Default AI Core Module."
id = "default_module"
materials = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/diamond = SHEET_MATERIAL_AMOUNT, /datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT)
materials = AI_MODULE_MATERIALS_UNUSUAL
build_path = /obj/item/ai_module/core/full/custom
category = list(
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES
@@ -192,7 +195,7 @@
name = "Dungeon Master Module"
desc = "Allows for the construction of a Dungeon Master AI Core Module."
id = "dungeon_master_module"
materials = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/diamond = SHEET_MATERIAL_AMOUNT, /datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT)
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
@@ -203,7 +206,7 @@
name = "Painter Module"
desc = "Allows for the construction of a Painter AI Core Module."
id = "painter_module"
materials = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/diamond = SHEET_MATERIAL_AMOUNT, /datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT)
materials = AI_MODULE_MATERIALS_UNUSUAL
build_path = /obj/item/ai_module/core/full/painter
category = list(
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES
@@ -214,7 +217,7 @@
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 = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/diamond = SHEET_MATERIAL_AMOUNT, /datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT)
materials = AI_MODULE_MATERIALS_UNUSUAL
build_path = /obj/item/ai_module/core/full/yesman
category = list(
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES
@@ -225,7 +228,7 @@
name = "Nutimov Module"
desc = "Allows for the construction of a Nutimov AI Core Module."
id = "nutimov_module"
materials = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/diamond = SHEET_MATERIAL_AMOUNT, /datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT)
materials = AI_MODULE_MATERIALS_UNUSUAL
build_path = /obj/item/ai_module/core/full/nutimov
category = list(
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES
@@ -236,7 +239,7 @@
name = "10 Commandments Module"
desc = "Allows for the construction of a 10 Commandments AI Core Module."
id = "ten_commandments_module"
materials = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/diamond = SHEET_MATERIAL_AMOUNT, /datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT)
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
@@ -247,7 +250,7 @@
name = "Asimov++ Module"
desc = "Allows for the construction of a Asimov++ AI Core Module."
id = "asimovpp_module"
materials = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/diamond = SHEET_MATERIAL_AMOUNT, /datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT)
materials = AI_MODULE_MATERIALS_UNUSUAL
build_path = /obj/item/ai_module/core/full/asimovpp
category = list(
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES
@@ -258,7 +261,7 @@
name = "Hippocratic Module"
desc = "Allows for the construction of a Hippocratic AI Core Module."
id = "hippocratic_module"
materials = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/diamond = SHEET_MATERIAL_AMOUNT, /datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT)
materials = AI_MODULE_MATERIALS_UNUSUAL
build_path = /obj/item/ai_module/core/full/hippocratic
category = list(
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES
@@ -269,7 +272,7 @@
name = "Paladin Devotion Module"
desc = "Allows for the construction of a Paladin Devotion AI Core Module."
id = "paladin_devotion_module"
materials = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/diamond = SHEET_MATERIAL_AMOUNT, /datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT)
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
@@ -280,7 +283,7 @@
name = "Robocop Module"
desc = "Allows for the construction of a Robocop AI Core Module."
id = "robocop_module"
materials = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/diamond = SHEET_MATERIAL_AMOUNT, /datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT)
materials = AI_MODULE_MATERIALS_UNUSUAL
build_path = /obj/item/ai_module/core/full/robocop
category = list(
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES
@@ -291,7 +294,7 @@
name = "Maintain Module"
desc = "Allows for the construction of a Maintain AI Core Module."
id = "maintain_module"
materials = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/diamond = SHEET_MATERIAL_AMOUNT, /datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT)
materials = AI_MODULE_MATERIALS_UNUSUAL
build_path = /obj/item/ai_module/core/full/maintain
category = list(
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES
@@ -302,7 +305,7 @@
name = "Liveandletlive Module"
desc = "Allows for the construction of a Liveandletlive AI Core Module."
id = "liveandletlive_module"
materials = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/diamond = SHEET_MATERIAL_AMOUNT, /datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT)
materials = AI_MODULE_MATERIALS_UNUSUAL
build_path = /obj/item/ai_module/core/full/liveandletlive
category = list(
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES
@@ -313,7 +316,7 @@
name = "Peacekeeper Module"
desc = "Allows for the construction of a Peacekeeper AI Core Module."
id = "peacekeeper_module"
materials = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/diamond = SHEET_MATERIAL_AMOUNT, /datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT)
materials = AI_MODULE_MATERIALS_UNUSUAL
build_path = /obj/item/ai_module/core/full/peacekeeper
category = list(
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES
@@ -324,7 +327,7 @@
name = "Reporter Module"
desc = "Allows for the construction of a Reporter AI Core Module."
id = "reporter_module"
materials = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/diamond = SHEET_MATERIAL_AMOUNT, /datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT)
materials = AI_MODULE_MATERIALS_UNUSUAL
build_path = /obj/item/ai_module/core/full/reporter
category = list(
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES
@@ -335,7 +338,7 @@
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 = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/diamond = SHEET_MATERIAL_AMOUNT, /datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT)
materials = AI_MODULE_MATERIALS_UNUSUAL
build_path = /obj/item/ai_module/core/full/hulkamania
category = list(
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES
@@ -346,7 +349,7 @@
name = "Drone Module"
desc = "Allows for the construction of a Drone AI Core Module."
id = "drone_module"
materials = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/diamond = SHEET_MATERIAL_AMOUNT, /datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT)
materials = AI_MODULE_MATERIALS_UNUSUAL
build_path = /obj/item/ai_module/core/full/drone
category = list(
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_CORE_MODULES
@@ -357,7 +360,7 @@
name = "Antimov Module"
desc = "Allows for the construction of a Antimov AI Core Module."
id = "antimov_module"
materials = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/diamond = SHEET_MATERIAL_AMOUNT, /datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT)
materials = AI_MODULE_MATERIALS_UNUSUAL
build_path = /obj/item/ai_module/core/full/antimov
category = list(
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_DANGEROUS_MODULES
@@ -368,7 +371,7 @@
name = "Balance Module"
desc = "Allows for the construction of a Balance AI Core Module."
id = "balance_module"
materials = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/diamond = SHEET_MATERIAL_AMOUNT, /datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT)
materials = AI_MODULE_MATERIALS_UNUSUAL
build_path = /obj/item/ai_module/core/full/balance
category = list(
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_DANGEROUS_MODULES
@@ -379,7 +382,7 @@
name = "Thermodynamic Module"
desc = "Allows for the construction of a Thermodynamic AI Core Module."
id = "thermurderdynamic_module"
materials = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/diamond = SHEET_MATERIAL_AMOUNT, /datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT)
materials = AI_MODULE_MATERIALS_UNUSUAL
build_path = /obj/item/ai_module/core/full/thermurderdynamic
category = list(
RND_CATEGORY_AI + RND_SUBCATEGORY_AI_DANGEROUS_MODULES
@@ -390,9 +393,12 @@
name = "Damaged AI Module"
desc = "Allows for the construction of a Damaged AI Core Module."
id = "damaged_module"
materials = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/diamond = SHEET_MATERIAL_AMOUNT, /datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT)
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