Files
Bubberstation/code/modules/research/techweb/nodes/alien_nodes.dm
Lucy 80ab61c8c7 Abductor doohickeys now properly unlock alien tech (#88310)
## About The Pull Request

It seems the abductor tech `required_items_to_unlock` assumed that
subtypes of the given typepaths were included. This is not the case - as
a result, things like the abductor device circuit boards, mental
interface device, silencer, science tool, and omnitool would not unlock
alien tech in the experimentor..

## Why It's Good For The Game

stuff working as intended is good.

## Changelog
🆑
fix: Abductor doohickeys (i.e abductor device circuit boards, mental
interface device, silencer, science tool, and omnitool) now properly
unlock alien tech via the experimentor.
/🆑
2024-12-01 23:22:15 -05:00

115 lines
3.4 KiB
Plaintext

// Simple define to avoid copy-pasting the same code 3 times
#define ABDUCTOR_SUBTYPE_UNLOCKS(X) \
##X/New() { \
. = ..(); \
required_items_to_unlock += subtypesof(/obj/item/abductor); \
required_items_to_unlock += subtypesof(/obj/item/circuitboard/machine/abductor); \
}
/datum/techweb_node/alientech //AYYYYYYYYLMAOO tech
id = TECHWEB_NODE_ALIENTECH
display_name = "Alien Technology"
description = "Things used by the greys."
prereq_ids = list(TECHWEB_NODE_BLUESPACE_TRAVEL)
required_items_to_unlock = list(
/obj/item/stack/sheet/mineral/abductor,
/obj/item/cautery/alien,
/obj/item/circular_saw/alien,
/obj/item/crowbar/abductor,
/obj/item/gun/energy/alien,
/obj/item/gun/energy/shrink_ray,
/obj/item/hemostat/alien,
/obj/item/melee/baton/abductor,
/obj/item/multitool/abductor,
/obj/item/retractor/alien,
/obj/item/scalpel/alien,
/obj/item/screwdriver/abductor,
/obj/item/surgicaldrill/alien,
/obj/item/weldingtool/abductor,
/obj/item/wirecutters/abductor,
/obj/item/wrench/abductor,
)
design_ids = list(
"alienalloy",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS)
hidden = TRUE
ABDUCTOR_SUBTYPE_UNLOCKS(/datum/techweb_node/alientech)
/datum/techweb_node/alientech/on_station_research()
. = ..()
SSshuttle.shuttle_purchase_requirements_met[SHUTTLE_UNLOCK_ALIENTECH] = TRUE
/datum/techweb_node/alien_engi
id = TECHWEB_NODE_ALIEN_ENGI
display_name = "Alien Engineering"
description = "Alien engineering tools"
prereq_ids = list(TECHWEB_NODE_ALIENTECH, TECHWEB_NODE_EXP_TOOLS)
design_ids = list(
"alien_crowbar",
"alien_multitool",
"alien_screwdriver",
"alien_welder",
"alien_wirecutters",
"alien_wrench",
)
required_items_to_unlock = list(
/obj/item/crowbar/abductor,
/obj/item/gun/energy/shrink_ray,
/obj/item/melee/baton/abductor,
/obj/item/multitool/abductor,
/obj/item/screwdriver/abductor,
/obj/item/weldingtool/abductor,
/obj/item/wirecutters/abductor,
/obj/item/wrench/abductor,
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS)
hidden = TRUE
announce_channels = list(RADIO_CHANNEL_ENGINEERING)
ABDUCTOR_SUBTYPE_UNLOCKS(/datum/techweb_node/alien_engi)
/datum/techweb_node/alien_surgery
id = TECHWEB_NODE_ALIEN_SURGERY
display_name = "Alien Surgery"
description = "Abductors did nothing wrong."
prereq_ids = list(TECHWEB_NODE_ALIENTECH, TECHWEB_NODE_SURGERY_TOOLS)
design_ids = list(
"alien_cautery",
"alien_drill",
"alien_hemostat",
"alien_retractor",
"alien_saw",
"alien_scalpel",
"surgery_brainwashing",
"surgery_brainwashing_mechanic",
"surgery_heal_combo_upgrade_femto",
"surgery_zombie",
)
required_items_to_unlock = list(
/obj/item/cautery/alien,
/obj/item/circular_saw/alien,
/obj/item/crowbar/abductor,
/obj/item/gun/energy/alien,
/obj/item/gun/energy/shrink_ray,
/obj/item/hemostat/alien,
/obj/item/melee/baton/abductor,
/obj/item/multitool/abductor,
/obj/item/retractor/alien,
/obj/item/scalpel/alien,
/obj/item/screwdriver/abductor,
/obj/item/surgicaldrill/alien,
/obj/item/weldingtool/abductor,
/obj/item/wirecutters/abductor,
/obj/item/wrench/abductor,
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_5_POINTS)
discount_experiments = list(/datum/experiment/scanning/points/slime/hard = TECHWEB_TIER_5_POINTS)
hidden = TRUE
announce_channels = list(RADIO_CHANNEL_MEDICAL)
ABDUCTOR_SUBTYPE_UNLOCKS(/datum/techweb_node/alien_surgery)
#undef ABDUCTOR_SUBTYPE_UNLOCKS