Merge remote-tracking branch 'tgstation/master' into upstream-feb12-2026

# Conflicts:
#	.github/CODEOWNERS
#	.github/workflows/compile_changelogs.yml
#	.github/workflows/stale.yml
#	SQL/database_changelog.md
#	_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm
#	code/__DEFINES/atom_hud.dm
#	code/__DEFINES/inventory.dm
#	code/__DEFINES/mobs.dm
#	code/__DEFINES/species_clothing_paths.dm
#	code/__DEFINES/subsystems.dm
#	code/__DEFINES/surgery.dm
#	code/__HELPERS/global_lists.dm
#	code/_globalvars/lists/maintenance_loot.dm
#	code/_globalvars/traits/_traits.dm
#	code/controllers/subsystem/minor_mapping.dm
#	code/controllers/subsystem/processing/quirks.dm
#	code/controllers/subsystem/shuttle.dm
#	code/datums/components/palette.dm
#	code/datums/components/surgery_initiator.dm
#	code/datums/diseases/advance/advance.dm
#	code/datums/hud.dm
#	code/datums/mood.dm
#	code/datums/mutations/chameleon.dm
#	code/datums/quirks/negative_quirks/nyctophobia.dm
#	code/datums/status_effects/debuffs/debuffs.dm
#	code/datums/status_effects/debuffs/drunk.dm
#	code/datums/status_effects/debuffs/slime/slime_leech.dm
#	code/datums/weather/weather.dm
#	code/game/data_huds.dm
#	code/game/objects/items.dm
#	code/game/objects/items/devices/scanners/health_analyzer.dm
#	code/game/objects/items/frog_statue.dm
#	code/game/objects/items/rcd/RLD.dm
#	code/game/objects/items/robot/items/hypo.dm
#	code/game/objects/items/stacks/medical.dm
#	code/game/objects/items/stacks/wrap.dm
#	code/game/objects/items/storage/garment.dm
#	code/game/objects/items/tools/medical/defib.dm
#	code/game/objects/items/weaponry.dm
#	code/game/objects/items/weaponry/melee/misc.dm
#	code/game/objects/structures/crates_lockers/closets/secure/security.dm
#	code/game/objects/structures/curtains.dm
#	code/game/objects/structures/dresser.dm
#	code/game/objects/structures/girders.dm
#	code/game/objects/structures/maintenance.dm
#	code/game/objects/structures/mirror.dm
#	code/modules/admin/greyscale_modify_menu.dm
#	code/modules/admin/verbs/light_debug.dm
#	code/modules/antagonists/ashwalker/ashwalker.dm
#	code/modules/antagonists/heretic/knowledge/starting_lore.dm
#	code/modules/antagonists/ninja/ninjaDrainAct.dm
#	code/modules/art/paintings.dm
#	code/modules/client/preferences.dm
#	code/modules/client/verbs/ooc.dm
#	code/modules/clothing/head/wig.dm
#	code/modules/events/disease_outbreak.dm
#	code/modules/holodeck/holo_effect.dm
#	code/modules/jobs/job_types/head_of_security.dm
#	code/modules/jobs/job_types/security_officer.dm
#	code/modules/library/skill_learning/generic_skillchips/point.dm
#	code/modules/mining/lavaland/ash_flora.dm
#	code/modules/mining/lavaland/mining_loot/megafauna/ash_drake.dm
#	code/modules/mob/dead/new_player/new_player.dm
#	code/modules/mob/living/basic/guardian/guardian.dm
#	code/modules/mob/living/basic/space_fauna/space_dragon/space_dragon.dm
#	code/modules/mob/living/carbon/carbon.dm
#	code/modules/mob/living/carbon/human/human.dm
#	code/modules/mob/living/carbon/human/human_defines.dm
#	code/modules/mob/living/carbon/life.dm
#	code/modules/mob/living/living.dm
#	code/modules/mob/living/living_defines.dm
#	code/modules/mob/mob.dm
#	code/modules/mob_spawn/ghost_roles/mining_roles.dm
#	code/modules/mod/mod_control.dm
#	code/modules/mod/modules/modules_general.dm
#	code/modules/modular_computers/computers/item/computer_ui.dm
#	code/modules/paperwork/paper.dm
#	code/modules/paperwork/paperbin.dm
#	code/modules/power/lighting/light.dm
#	code/modules/projectiles/guns/energy/kinetic_accelerator.dm
#	code/modules/projectiles/projectile.dm
#	code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm
#	code/modules/reagents/chemistry/reagents/food_reagents.dm
#	code/modules/reagents/chemistry/reagents/other_reagents.dm
#	code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm
#	code/modules/research/xenobiology/crossbreeding/_clothing.dm
#	code/modules/research/xenobiology/crossbreeding/prismatic.dm
#	code/modules/surgery/advanced/brainwashing.dm
#	code/modules/surgery/advanced/lobotomy.dm
#	code/modules/surgery/amputation.dm
#	code/modules/surgery/blood_filter.dm
#	code/modules/surgery/bodyparts/_bodyparts.dm
#	code/modules/surgery/brain_surgery.dm
#	code/modules/surgery/cavity_implant.dm
#	code/modules/surgery/coronary_bypass.dm
#	code/modules/surgery/gastrectomy.dm
#	code/modules/surgery/healing.dm
#	code/modules/surgery/limb_augmentation.dm
#	code/modules/surgery/organ_manipulation.dm
#	code/modules/surgery/revival.dm
#	code/modules/surgery/sleeper_protocol.dm
#	code/modules/surgery/surgery_helpers.dm
#	code/modules/surgery/surgery_step.dm
#	code/modules/unit_tests/_unit_tests.dm
#	code/modules/unit_tests/designs.dm
#	code/modules/unit_tests/icon_state_worn.dm
#	code/modules/unit_tests/screenshots/screenshot_antag_icons_cultist.png
#	code/modules/unit_tests/screenshots/screenshot_antag_icons_headrevolutionary.png
#	code/modules/unit_tests/screenshots/screenshot_antag_icons_provocateur.png
#	code/modules/unit_tests/screenshots/screenshot_husk_body.png
#	code/modules/unit_tests/screenshots/screenshot_husk_body_missing_limbs.png
#	icons/map_icons/clothing/head/_head.dmi
#	icons/map_icons/clothing/shoes.dmi
#	icons/map_icons/items/_item.dmi
#	icons/mob/huds/hud.dmi
#	icons/mob/inhands/64x64_lefthand.dmi
#	icons/mob/inhands/64x64_righthand.dmi
#	icons/obj/machines/computer.dmi
#	tgui/packages/tgui/interfaces/OperatingComputer.jsx
#	tgui/packages/tgui/interfaces/PreferencesMenu/CharacterPreferences/MainPage.tsx
#	tgui/packages/tgui/interfaces/PreferencesMenu/types.ts
#	tgui/packages/tgui/interfaces/SurgeryInitiator.tsx
#	tools/icon_cutter/check.py
This commit is contained in:
nevimer
2026-02-12 23:50:09 -05:00
2374 changed files with 81136 additions and 52767 deletions
@@ -40,7 +40,7 @@
desc = "State of the art machinery for general overwatch purposes."
upperinfo = "Bravo Overwatch Console"
icon_screen = "explosive"
content = list("<B>Operator:</B> Cas Ashpole <BR> <BR> <B><center>Squad Overwatch:</B> Cas Ashpole <BR> <BR> <b>Squad Leader Deployed</b> <BR> <b>Squad Smartgunners:</b> 1 Deployed <BR> <b>Squad Corpsmen:</b> 1 Deployed <BR> <b>Squad Engineers:</b> 2 Deployed <BR> <b>Squad Marines:</b> 4 Deployed <BR> <b>Total:</b> 9 Deployed <BR> <b>Marines Alive:</b> 0 <BR> <BR> <table> <tr> <th>Name</th> <th>Role</th> <th>State</th> <th>Location</th> <th>SL Distance</th> </tr> <tr> <td>Chip Mello</td> <td>Squad Leader</td> <td>Dead</td> <td>Self-Destruct Core Room</td> <td> N/A </td> </tr> <tr> <td>Sophie Knight</td> <td>Squad Smartgunner</td> <td>Dead</td> <td>Self-Destruct Core Room</td> <td>4</td> </tr> <tr> <td>Marie Newman</td> <td>Squad Corpsman</td> <td>Dead</td> <td>Unknown</td> <td> N/A </td> </tr> <tr> <td>Angelo Patton</td> <td>Squad Engineer</td> <td>Dead</td> <td>Sulaco Maintenence</td> <td>19</td> </tr> <tr> <td>Marlon Foster</td> <td>Squad Engineer</td> <td>Dead</td> <td>Sulaco Dropship Hangar</td> <td>28</td> </tr> <tr> <td>Doug Davidson</td> <td>Squad Marine</td> <td>Dead</td> <td>Sulaco Hangar Workshop</td> <td>33</td> </tr> <tr> <td>Courtney Miller</td> <td>Squad Marine</td> <td>Dead</td> <td>Sulaco Hangar Workshop</td> <td>42</td> </tr> <tr> <td>Cesar Jefferson</td> <td>Squad Marine</td> <td>Dead</td> <td>Self-Destruct Core Room</td> <td>14</td> </tr> </table> <BR> <b>Primary Objective:</b> Defend the self-destruct core. <BR> <b>Secondary Objective:</b> Give them hell!</center>")
content = list("<B>Operator:</B> Cas Ashpole <BR> <BR> <B><center>Squad Overwatch:</B> Cas Ashpole <BR> <BR> <b>Squad Leader Deployed</b> <BR> <b>Squad Smartgunners:</b> 1 Deployed <BR> <b>Squad Corpsmen:</b> 1 Deployed <BR> <b>Squad Engineers:</b> 2 Deployed <BR> <b>Squad Marines:</b> 4 Deployed <BR> <b>Total:</b> 9 Deployed <BR> <b>Marines Alive:</b> 0 <BR> <BR> <table> <tr> <th>Name</th> <th>Role</th> <th>State</th> <th>Location</th> <th>SL Distance</th> </tr> <tr> <td>Chip Mello</td> <td>Squad Leader</td> <td>Dead</td> <td>Self-Destruct Core Room</td> <td> N/A </td> </tr> <tr> <td>Sophie Knight</td> <td>Squad Smartgunner</td> <td>Dead</td> <td>Self-Destruct Core Room</td> <td>4</td> </tr> <tr> <td>Marie Newman</td> <td>Squad Corpsman</td> <td>Dead</td> <td>Unknown</td> <td> N/A </td> </tr> <tr> <td>Angelo Patton</td> <td>Squad Engineer</td> <td>Dead</td> <td>Sulaco Maintenance</td> <td>19</td> </tr> <tr> <td>Marlon Foster</td> <td>Squad Engineer</td> <td>Dead</td> <td>Sulaco Dropship Hangar</td> <td>28</td> </tr> <tr> <td>Doug Davidson</td> <td>Squad Marine</td> <td>Dead</td> <td>Sulaco Hangar Workshop</td> <td>33</td> </tr> <tr> <td>Courtney Miller</td> <td>Squad Marine</td> <td>Dead</td> <td>Sulaco Hangar Workshop</td> <td>42</td> </tr> <tr> <td>Cesar Jefferson</td> <td>Squad Marine</td> <td>Dead</td> <td>Self-Destruct Core Room</td> <td>14</td> </tr> </table> <BR> <b>Primary Objective:</b> Defend the self-destruct core. <BR> <b>Secondary Objective:</b> Give them hell!</center>")
/obj/machinery/computer/terminal/sulaco/overwatch/main
name = "main overwatch console"
@@ -78,7 +78,12 @@ GLOBAL_VAR_INIT(fscpassword, generate_password())
/obj/item/disk/surgery/forgottenship
name = "Advanced Surgery Disk"
desc = "A disk that contains advanced surgery procedures, must be loaded into an Operating Console."
surgeries = list(/datum/surgery/advanced/lobotomy, /datum/surgery/advanced/bioware/vein_threading, /datum/surgery/advanced/bioware/nerve_splicing)
surgeries = list(
/datum/surgery_operation/organ/lobotomy,
/datum/surgery_operation/organ/lobotomy/mechanic,
/datum/surgery_operation/limb/bioware/vein_threading,
/datum/surgery_operation/limb/bioware/nerve_splicing,
)
/obj/structure/fluff/empty_sleeper/syndicate/captain
icon_state = "sleeper_s-open"
@@ -11,7 +11,7 @@
/obj/machinery/rnd/server/oldstation/add_context(atom/source, list/context, obj/item/held_item, mob/user)
. = ..()
if(held_item && istype(held_item, /obj/item/research_notes))
if(istype(held_item, /obj/item/research_notes))
context[SCREENTIP_CONTEXT_LMB] = "Generate research points"
return CONTEXTUAL_SCREENTIP_SET
@@ -23,16 +23,17 @@
. += span_notice("Insert [EXAMINE_HINT("Research Notes")] to generate points.")
/obj/machinery/rnd/server/oldstation/attackby(obj/item/attacking_item, mob/user, list/modifiers, list/attack_modifiers)
if(istype(attacking_item, /obj/item/research_notes) && stored_research)
var/obj/item/research_notes/research_notes = attacking_item
/obj/machinery/rnd/server/oldstation/item_interaction(mob/living/user, obj/item/tool, list/modifiers)
if(istype(tool, /obj/item/research_notes) && stored_research)
var/obj/item/research_notes/research_notes = tool
stored_research.add_point_list(list(TECHWEB_POINT_TYPE_GENERIC = research_notes.value))
playsound(src, 'sound/machines/copier.ogg', 50, TRUE)
qdel(research_notes)
return
return ITEM_INTERACT_SUCCESS
return ..()
///Ancient computer that starts with dissection to tell players they have it.
/obj/machinery/computer/operating/oldstation
name = "ancient operating computer"
advanced_surgeries = list(/datum/surgery/advanced/experimental_dissection)
advanced_surgeries = list(/datum/surgery_operation/basic/dissection)
@@ -18,7 +18,7 @@
/obj/item/paper/pamphlet/ruin/originalcontent/pennywise
name = "Painting - 'Pennywise'"
default_raw_text = "<i>This picture depicts a smiling clown. Something doesn't feel right about this..</i>"
default_raw_text = "<i>This picture depicts a smiling clown. Something doesn't feel right about this...</i>"
icon_state = "painting3"
/obj/item/paper/pamphlet/ruin/originalcontent/yelling