Files
Bubberstation/code/modules/research/techweb/nodes/syndicate_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

50 lines
1.8 KiB
Plaintext

/datum/techweb_node/syndicate_basic
id = TECHWEB_NODE_SYNDICATE_BASIC
display_name = "Illegal Technology"
description = "Dangerous research used to create dangerous objects."
prereq_ids = list(TECHWEB_NODE_EXP_TOOLS, TECHWEB_NODE_EXOTIC_AMMO)
design_ids = list(
"advanced_camera",
"ai_cam_upgrade",
"borg_syndicate_module",
"donksoft_refill",
"donksofttoyvendor",
"largecrossbow",
"mag_autorifle",
"mag_autorifle_ap",
"mag_autorifle_ic",
"rapidsyringe",
"suppressor",
"super_pointy_tape",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_5_POINTS)
hidden = TRUE
/datum/techweb_node/syndicate_basic/New() //Crappy way of making syndicate gear decon supported until there's another way.
. = ..()
if(!SSearly_assets.initialized)
RegisterSignal(SSearly_assets, COMSIG_SUBSYSTEM_POST_INITIALIZE, PROC_REF(register_uplink_items))
else
register_uplink_items()
/datum/techweb_node/syndicate_basic/proc/register_uplink_items()
SIGNAL_HANDLER
UnregisterSignal(SSearly_assets, COMSIG_SUBSYSTEM_POST_INITIALIZE)
required_items_to_unlock = list()
for(var/datum/uplink_item/item_path as anything in SStraitor.uplink_items_by_type)
var/datum/uplink_item/item = SStraitor.uplink_items_by_type[item_path]
if(!item.item || !item.illegal_tech)
continue
required_items_to_unlock |= item.item //allows deconning to unlock.
/datum/techweb_node/unregulated_bluespace
id = TECHWEB_NODE_UNREGULATED_BLUESPACE
display_name = "Unregulated Bluespace Research"
description = "Bluespace technology using unstable or unbalanced procedures, prone to damaging the fabric of bluespace. Outlawed by galactic conventions."
prereq_ids = list(TECHWEB_NODE_PARTS_BLUESPACE, TECHWEB_NODE_SYNDICATE_BASIC)
design_ids = list(
"desynchronizer",
"beamrifle",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS)