mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-29 08:08:49 +01:00
All AI Lawsets are rebalanced, can be researched, appear in config, and random spawners for AI upload. (#66854)
This formally adds the new AI lawsets from #66636 into the game. Every lawset can be researched, appears in config, and random spawners.
This commit is contained in:
@@ -41,7 +41,7 @@
|
||||
var/message = ionMessage || generate_ion_law()
|
||||
if(message)
|
||||
if(prob(removeDontImproveChance))
|
||||
M.replace_random_law(message, list(LAW_INHERENT, LAW_SUPPLIED, LAW_ION))
|
||||
M.replace_random_law(message, list(LAW_INHERENT, LAW_SUPPLIED, LAW_ION), LAW_ION)
|
||||
else
|
||||
M.add_ion_law(message)
|
||||
|
||||
|
||||
@@ -69,9 +69,9 @@
|
||||
hackedcheck += law
|
||||
post_lawchange(announce)
|
||||
|
||||
/mob/living/silicon/proc/replace_random_law(law, groups, announce = TRUE)
|
||||
/mob/living/silicon/proc/replace_random_law(law, remove_law_groups, insert_law_group, announce = TRUE)
|
||||
laws_sanity_check()
|
||||
. = laws.replace_random_law(law,groups)
|
||||
. = laws.replace_random_law(law, remove_law_groups, insert_law_group)
|
||||
post_lawchange(announce)
|
||||
|
||||
/mob/living/silicon/proc/shuffle_laws(list/groups, announce = TRUE)
|
||||
|
||||
@@ -153,3 +153,165 @@
|
||||
build_path = /obj/item/ai_module/core/full/custom
|
||||
category = list("AI Modules")
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
||||
|
||||
/datum/design/board/dungeon_master_module
|
||||
name = "Core Module Design (Dungeon Master)"
|
||||
desc = "Allows for the construction of a Dungeon Master AI Core Module."
|
||||
id = "dungeon_master_module"
|
||||
materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000)
|
||||
build_path = /obj/item/ai_module/core/full/dungeon_master
|
||||
category = list("AI Modules")
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
||||
|
||||
/datum/design/board/painter_module
|
||||
name = "Core Module Design (Painter)"
|
||||
desc = "Allows for the construction of a Painter AI Core Module."
|
||||
id = "painter_module"
|
||||
materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000)
|
||||
build_path = /obj/item/ai_module/core/full/painter
|
||||
category = list("AI Modules")
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
||||
|
||||
/datum/design/board/nutimov_module
|
||||
name = "Core Module Design (Nutimov)"
|
||||
desc = "Allows for the construction of a Nutimov AI Core Module."
|
||||
id = "nutimov_module"
|
||||
materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000)
|
||||
build_path = /obj/item/ai_module/core/full/nutimov
|
||||
category = list("AI Modules")
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
||||
|
||||
/datum/design/board/ten_commandments_module
|
||||
name = "Core Module Design (10 Commandments)"
|
||||
desc = "Allows for the construction of a 10 Commandments AI Core Module."
|
||||
id = "ten_commandments_module"
|
||||
materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000)
|
||||
build_path = /obj/item/ai_module/core/full/ten_commandments
|
||||
category = list("AI Modules")
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
||||
|
||||
/datum/design/board/asimovpp_module
|
||||
name = "Core Module Design (Asimov++)"
|
||||
desc = "Allows for the construction of a Asimov++ AI Core Module."
|
||||
id = "asimovpp_module"
|
||||
materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000)
|
||||
build_path = /obj/item/ai_module/core/full/asimovpp
|
||||
category = list("AI Modules")
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
||||
|
||||
/datum/design/board/hippocratic_module
|
||||
name = "Core Module Design (Hippocratic)"
|
||||
desc = "Allows for the construction of a Hippocratic AI Core Module."
|
||||
id = "hippocratic_module"
|
||||
materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000)
|
||||
build_path = /obj/item/ai_module/core/full/hippocratic
|
||||
category = list("AI Modules")
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
||||
|
||||
/datum/design/board/paladin_devotion_module
|
||||
name = "Core Module Design (Paladin Devotion)"
|
||||
desc = "Allows for the construction of a Paladin Devotion AI Core Module."
|
||||
id = "paladin_devotion_module"
|
||||
materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000)
|
||||
build_path = /obj/item/ai_module/core/full/paladin_devotion
|
||||
category = list("AI Modules")
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
||||
|
||||
/datum/design/board/robocop_module
|
||||
name = "Core Module Design (Robocop)"
|
||||
desc = "Allows for the construction of a Robocop AI Core Module."
|
||||
id = "robocop_module"
|
||||
materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000)
|
||||
build_path = /obj/item/ai_module/core/full/robocop
|
||||
category = list("AI Modules")
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
||||
|
||||
/datum/design/board/maintain_module
|
||||
name = "Core Module Design (Maintain)"
|
||||
desc = "Allows for the construction of a Maintain AI Core Module."
|
||||
id = "maintain_module"
|
||||
materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000)
|
||||
build_path = /obj/item/ai_module/core/full/maintain
|
||||
category = list("AI Modules")
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
||||
|
||||
/datum/design/board/liveandletlive_module
|
||||
name = "Core Module Design (Liveandletlive)"
|
||||
desc = "Allows for the construction of a Liveandletlive AI Core Module."
|
||||
id = "liveandletlive_module"
|
||||
materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000)
|
||||
build_path = /obj/item/ai_module/core/full/liveandletlive
|
||||
category = list("AI Modules")
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
||||
|
||||
/datum/design/board/peacekeeper_module
|
||||
name = "Core Module Design (Peacekeeper)"
|
||||
desc = "Allows for the construction of a Peacekeeper AI Core Module."
|
||||
id = "peacekeeper_module"
|
||||
materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000)
|
||||
build_path = /obj/item/ai_module/core/full/peacekeeper
|
||||
category = list("AI Modules")
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
||||
|
||||
/datum/design/board/reporter_module
|
||||
name = "Core Module Design (Reporter)"
|
||||
desc = "Allows for the construction of a Reporter AI Core Module."
|
||||
id = "reporter_module"
|
||||
materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000)
|
||||
build_path = /obj/item/ai_module/core/full/reporter
|
||||
category = list("AI Modules")
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
||||
|
||||
/datum/design/board/hulkamania_module
|
||||
name = "Core Module Design (Hulkamania)"
|
||||
desc = "Allows for the construction of a Hulkamania AI Core Module."
|
||||
id = "hulkamania_module"
|
||||
materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000)
|
||||
build_path = /obj/item/ai_module/core/full/hulkamania
|
||||
category = list("AI Modules")
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
||||
|
||||
/datum/design/board/drone_module
|
||||
name = "Core Module Design (Drone)"
|
||||
desc = "Allows for the construction of a Drone AI Core Module."
|
||||
id = "drone_module"
|
||||
materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000)
|
||||
build_path = /obj/item/ai_module/core/full/drone
|
||||
category = list("AI Modules")
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
||||
|
||||
/datum/design/board/antimov_module
|
||||
name = "Core Module Design (Antimov)"
|
||||
desc = "Allows for the construction of a Antimov AI Core Module."
|
||||
id = "antimov_module"
|
||||
materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000)
|
||||
build_path = /obj/item/ai_module/core/full/antimov
|
||||
category = list("AI Modules")
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
||||
|
||||
/datum/design/board/balance_module
|
||||
name = "Core Module Design (Balance)"
|
||||
desc = "Allows for the construction of a Balance AI Core Module."
|
||||
id = "balance_module"
|
||||
materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000)
|
||||
build_path = /obj/item/ai_module/core/full/balance
|
||||
category = list("AI Modules")
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
||||
|
||||
/datum/design/board/thermurderdynamic_module
|
||||
name = "Core Module Design (Thermurderdynamic)"
|
||||
desc = "Allows for the construction of a Thermurderdynamic AI Core Module."
|
||||
id = "thermurderdynamic_module"
|
||||
materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000)
|
||||
build_path = /obj/item/ai_module/core/full/thermurderdynamic
|
||||
category = list("AI Modules")
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
||||
|
||||
/datum/design/board/damaged
|
||||
name = "Core Module Design (Damaged)"
|
||||
desc = "Allows for the construction of a Damaged AI Core Module."
|
||||
id = "damaged_module"
|
||||
materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000)
|
||||
build_path = /obj/item/ai_module/core/full/damaged
|
||||
category = list("AI Modules")
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
||||
|
||||
@@ -880,36 +880,63 @@
|
||||
)
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000)
|
||||
|
||||
/datum/techweb_node/ai
|
||||
id = "ai"
|
||||
/datum/techweb_node/ai_basic
|
||||
id = "ai_basic"
|
||||
display_name = "Artificial Intelligence"
|
||||
description = "AI unit research."
|
||||
prereq_ids = list("adv_robotics")
|
||||
design_ids = list(
|
||||
"aicore",
|
||||
"aifixer",
|
||||
"aiupload",
|
||||
"asimov_module",
|
||||
"borg_ai_control",
|
||||
"corporate_module",
|
||||
"default_module",
|
||||
"freeform_module",
|
||||
"freeformcore_module",
|
||||
"intellicard",
|
||||
"mecha_tracking_ai_control",
|
||||
"onehuman_module",
|
||||
"overlord_module",
|
||||
"oxygen_module",
|
||||
"paladin_module",
|
||||
"protectstation_module",
|
||||
"purge_module",
|
||||
"quarantine_module",
|
||||
"remove_module",
|
||||
"aifixer",
|
||||
"aiupload",
|
||||
"reset_module",
|
||||
"asimov_module",
|
||||
"default_module",
|
||||
"nutimov_module",
|
||||
"paladin_module",
|
||||
"robocop_module",
|
||||
"corporate_module",
|
||||
"drone_module",
|
||||
"oxygen_module",
|
||||
"safeguard_module",
|
||||
"tyrant_module",
|
||||
"protectstation_module",
|
||||
"quarantine_module",
|
||||
"freeform_module",
|
||||
"remove_module",
|
||||
)
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
|
||||
|
||||
/datum/techweb_node/ai_adv
|
||||
id = "ai_adv"
|
||||
display_name = "Advanced Artificial Intelligence"
|
||||
description = "State of the art lawsets to be used for AI research."
|
||||
prereq_ids = list("ai_basic")
|
||||
design_ids = list(
|
||||
"asimovpp_module",
|
||||
"paladin_devotion_module",
|
||||
"dungeon_master_module",
|
||||
"painter_module",
|
||||
"ten_commandments_module",
|
||||
"hippocratic_module",
|
||||
"maintain_module",
|
||||
"liveandletlive_module",
|
||||
"reporter_module",
|
||||
"hulkamania_module",
|
||||
"peacekeeper_module",
|
||||
"overlord_module",
|
||||
"tyrant_module",
|
||||
"antimov_module",
|
||||
"balance_module",
|
||||
"thermurderdynamic_module",
|
||||
"damaged_module",
|
||||
"freeformcore_module",
|
||||
"onehuman_module",
|
||||
"purge_module",
|
||||
)
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000)
|
||||
|
||||
//Any kind of point adjustment needs to happen before SSresearch sets up the whole node tree, it gets cached
|
||||
/datum/techweb_node/ai/New()
|
||||
|
||||
Reference in New Issue
Block a user