Files
Bubberstation/code/modules/research/techweb/nodes/robo_nodes.dm
SpaceLoveSs13 d59f5ad806 Techweb nodes DEFINED & bug fix (#84177)
## About The Pull Request

1. Techweb strings are now defined in
`code/__DEFINES/research/techweb_nodes.dm` many thanks to @ShizCalev
2. All places that used those strings have been updated with the
definitions as well.
3. `code/modules/research/ordnance/scipaper_partner.dm` had some old
boosted ids, they have been updated as well along
with their values.

## Why It's Good For The Game

fixes #84153 

- I found this through a runtime, but basically the boosted nodes missed
unit test checks. Having them defined should in future ensure that any
changes to them alert the maintainers. This will help in furthur
modularizing the code.

- As for the nodes themselves, I have put the exact nodes as much as
possible so they dont differ much from previous gameplay and how they
worked. Researched nodes that used to give points to those experiments,
will continue to do so, but albeit at a slower rate. This is because the
research point generation rate overall now has been increased.

## Changelog
🆑 ShizCalev, SpaceLove
refactor: Techweb strings are defined now so to maintain modularity
balance: Research papers will have less overall point generation.
/🆑

---------

Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
2024-06-27 01:14:57 -04:00

98 lines
2.5 KiB
Plaintext

/datum/techweb_node/robotics
id = TECHWEB_NODE_ROBOTICS
starting_node = TRUE
display_name = "Robotics"
description = "Programmable machines that make our lives lazier."
design_ids = list(
"mechfab",
"botnavbeacon",
"paicard",
)
/datum/techweb_node/exodrone
id = TECHWEB_NODE_EXODRONE
display_name = "Exploration Drones"
description = "Adapted arcade machines to covertly harness gamers' skills in controlling real drones for practical purposes."
prereq_ids = list(TECHWEB_NODE_ROBOTICS)
design_ids = list(
"exoscanner_console",
"exoscanner",
"exodrone_console",
"exodrone_launcher",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS)
// AI root node
/datum/techweb_node/ai
id = TECHWEB_NODE_AI
display_name = "Artificial Intelligence"
description = "Exploration of AI systems, more intelligent than the entire crew put together."
prereq_ids = list(TECHWEB_NODE_ROBOTICS)
design_ids = list(
"aiupload",
"aifixer",
"intellicard",
"mecha_tracking_ai_control",
"borg_ai_control",
"aicore",
"reset_module",
"asimov_module",
"default_module",
"nutimov_module",
"paladin_module",
"robocop_module",
"corporate_module",
"drone_module",
"oxygen_module",
"safeguard_module",
"protectstation_module",
"quarantine_module",
"freeform_module",
"remove_module",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS)
/datum/techweb_node/ai/New()
. = ..()
if(HAS_TRAIT(SSstation, STATION_TRAIT_HUMAN_AI))
design_ids -= list(
"aicore",
"borg_ai_control",
"intellicard",
"mecha_tracking_ai_control",
"aifixer",
"aiupload",
)
else if(HAS_TRAIT(SSstation, STATION_TRAIT_UNIQUE_AI))
research_costs[TECHWEB_POINT_TYPE_GENERIC] *= 3
/datum/techweb_node/ai_laws
id = TECHWEB_NODE_AI_LAWS
display_name = "Advanced AI Laws"
description = "Delving into sophisticated AI directives, with hopes that they won't lead to humanity's extinction."
prereq_ids = list(TECHWEB_NODE_AI)
design_ids = list(
"asimovpp_module",
"paladin_devotion_module",
"dungeon_master_module",
"painter_module",
"ten_commandments_module",
"hippocratic_module",
"maintain_module",
"liveandletlive_module",
"reporter_module",
"yesman_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 = TECHWEB_TIER_3_POINTS)