Emitter: The Emitting (#92327)

## About The Pull Request
Adds Diode Disks, installable disks that when fitted into an emitter can
change its function.
* Healing
* Stamina damage, and heals the SM slightly at the cost of internal
energy
* Traitor engi only explosive that damages and supercharges the SM if
used that way. Firerate is halved.
* Incendiary that slightly damages the SM but has lots of energy
* Sanity damaging one that improves SM psi coeff
* Magnetic item attracting one that improves SM mol absorption.
## Why It's Good For The Game
Fun and unique ways for Engi to use excess power or improve their SM
setups. Could also lead to neat engi inventions such as, say, a circuit
device that aims and fires a healing emitter at anyone nearby who is
damaged. Should also incentivize the researching of useful techs, hence
why important medium tier techs are what lock the different disks.
## Changelog
🆑
add: New Diode Disks which allow you to configurate emitters with
special functions.
add: New Engi & CE exclusive traitor item, a diode disk that causes an
emitter to create low radius explosions when it hits things. Note that
this will reduce the fire-rate of your emitter.
/🆑

---------

Co-authored-by: ThrowawayUseless <notarealemail@emailservice.fake>
Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
This commit is contained in:
throwawayuseless
2025-08-19 22:35:55 -04:00
committed by nevimer
co-authored by ThrowawayUseless necromanceranne
parent cacc639fbd
commit 6bc67d2bc6
15 changed files with 383 additions and 5 deletions
@@ -212,3 +212,68 @@
RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_TURBINE
)
departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING
/datum/design/diode_disk_stamina
name = "Electrodisruptive Diode Disk"
desc = "A stamina damaging and supermatter crystal healing Diode Disk."
id = "diode_disk_stamina"
build_type = PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 0.5, /datum/material/glass =SMALL_MATERIAL_AMOUNT, /datum/material/gold =SMALL_MATERIAL_AMOUNT)
construction_time = 0.5 SECONDS
build_path = /obj/item/emitter_disk/stamina
category = list(
RND_CATEGORY_EQUIPMENT
)
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING
/datum/design/diode_disk_healing
name = "Bioregenerative Diode Disk"
desc = "A living creature healing Diode Disk."
id = "diode_disk_healing"
build_type = PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 0.5, /datum/material/glass =SMALL_MATERIAL_AMOUNT, /datum/material/silver =SMALL_MATERIAL_AMOUNT) //silver is medical metal. Why? who knows.
construction_time = 0.5 SECONDS
build_path = /obj/item/emitter_disk/healing
category = list(
RND_CATEGORY_EQUIPMENT
)
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING
/datum/design/diode_disk_incendiary
name = "Conflagratory Diode Disk"
desc = "A high energy incendiary Diode Disk."
id = "diode_disk_incendiary"
build_type = PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 0.5, /datum/material/glass =SMALL_MATERIAL_AMOUNT, /datum/material/diamond =SMALL_MATERIAL_AMOUNT * 0.5, /datum/material/plasma =SMALL_MATERIAL_AMOUNT * 2)
construction_time = 0.5 SECONDS
build_path = /obj/item/emitter_disk/incendiary
category = list(
RND_CATEGORY_EQUIPMENT
)
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING
/datum/design/diode_disk_sanity
name = "Psychosiphoning Diode Disk"
desc = "An supermatter comforting creature depressing Diode Disk."
id = "diode_disk_sanity"
build_type = PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 0.5, /datum/material/glass =SMALL_MATERIAL_AMOUNT, /datum/material/uranium =SMALL_MATERIAL_AMOUNT * 0.5) //Uranium, the metal of love and warmth (from decay heat).
construction_time = 0.5 SECONDS
build_path = /obj/item/emitter_disk/sanity
category = list(
RND_CATEGORY_EQUIPMENT
)
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING
/datum/design/diode_disk_magnetic
name = "Magnetogenerative Diode Disk"
desc = "A mol absorbing item attracting Diode Disk."
id = "diode_disk_magnetic"
build_type = PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 0.5, /datum/material/glass =SMALL_MATERIAL_AMOUNT, /datum/material/titanium =SMALL_MATERIAL_AMOUNT * 0.5)
construction_time = 0.5 SECONDS
build_path = /obj/item/emitter_disk/magnetic
category = list(
RND_CATEGORY_EQUIPMENT
)
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING
@@ -63,6 +63,7 @@
"pacman",
"mech_generator",
"plasmacutter",
"diode_disk_incendiary",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS)
discount_experiments = list(/datum/experiment/ordnance/gaseous/plasma = TECHWEB_TIER_2_POINTS)
@@ -179,6 +179,7 @@
"welding_goggles",
"tray_goggles",
"geigercounter",
"diode_disk_stamina"
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS)
announce_channels = list(RADIO_CHANNEL_ENGINEERING)
@@ -227,6 +228,7 @@
"modular_shield_charger",
"modular_shield_well",
"modular_shield_console",
"diode_disk_magnetic",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS)
@@ -81,6 +81,8 @@
"defibmount",
"medicalbed_emergency",
"piercesyringe",
"diode_disk_healing",
"diode_disk_sanity",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS)
required_experiments = list(/datum/experiment/scanning/reagent/haloperidol)