Fixes https://github.com/Aurorastation/Aurora.3/issues/20990
Fixes https://github.com/Aurorastation/Aurora.3/issues/21730
Fixes https://github.com/Aurorastation/Aurora.3/issues/21735

changes:
- bugfix: "Mechatronic fabricator no longer needs to be manually synced
on round start to populate all available parts."
  - bugfix: "Freebooters can now pilot their own subshuttle."
- bugfix: "Greimorian eggs toxin can no longer infest synthetic limbs."
- qol: "Vintage rifle mechanical feedback text has been clarified for
ease of use (before it wouldn't tell you how to rack it properly)."
- rscdel: "Removes pause/unpause functionality from earbuds due to
general bugginess in favor of play/stop."
This commit is contained in:
Batrachophreno
2026-01-25 18:06:48 +00:00
committed by GitHub
parent b07d54ad06
commit edd8698ffe
7 changed files with 47 additions and 33 deletions
+6 -1
View File
@@ -65,6 +65,11 @@
limb_manufacturer = GLOB.basic_robolimb.company
update_categories()
/// Make sure the machine starts the round properly synced.
/obj/machinery/mecha_part_fabricator/LateInitialize()
. = ..()
sync()
/obj/machinery/mecha_part_fabricator/update_icon()
ClearOverlays()
update_fab_audio()
@@ -126,7 +131,7 @@
. = ..()
ui = SStgui.try_update_ui(user, src, ui)
if(!ui)
ui = new(user, src, "SyntheticFabricator", "Synthetic Fabricator", 900, 700)
ui = new(user, src, "SyntheticFabricator", "Synthetic Fabricator", 1200, 800)
ui.open()
/obj/machinery/mecha_part_fabricator/ui_data(mob/user)
+5 -7
View File
@@ -4,8 +4,7 @@
Current Features:
- All earphones have a cartridge slot. Cartridges can be inserted by clicking an earphone, and removed via an eject_music_cartridge() verb.
- Inserting a cartridge will load a playlist containing /datum/tracks, where track names and sound files are loaded.
- Shift+Clicking will Start/Stop a playlist, creating or deleting an active sound_player token.
- Alt+Clicking with Pause/Unpause the current track, preserving an active sound_player token.
- Alt+Clicking will Start/Stop a playlist, creating or deleting an active sound_player token.
- attack_self will eject the music cartridge. Ejecting a music cartridge also terminates the sound_player token.
- Volume controllable via verb.
@@ -56,8 +55,7 @@
/obj/item/clothing/ears/earphones/mechanics_hints(mob/user, distance, is_adjacent)
. += ..()
. += "Full controls can be found in the Verbs list, under <b>Object</b> tab -> <b>Earphones</b>."
. += "ALT-click \the [src] to quickly Pause/Resume the current track."
. += "SHIFT-click \the [src] to quickly Play/Stop the current playlist (this will reset the current track to the start.)"
. += "ALT-click \the [src] to quickly Play/Stop the current track."
. += "Use \the [src] while in-hand to eject the cartridge."
/obj/item/clothing/ears/earphones/Destroy()
@@ -264,6 +262,8 @@
else
soundplayer_token.SetVolume(volume)
/// Pain in the ass. This paused all sound in the game; when resuming, all queued sounds (bags, doors, etc.) would play at once. Not a useful enough feature to burn time on.
/*
/obj/item/clothing/ears/earphones/verb/pause_unpause()
set name = "Pause/Unpause"
set category = "Object.Earphones"
@@ -300,6 +300,7 @@
update_clothing_icon()
else
play_stop() //No soundtoken? They probably meant to use the other verb instead.
*/
/obj/item/clothing/ears/earphones/verb/next_song_verb()
set name = "Next Song"
@@ -335,9 +336,6 @@
*/
/obj/item/clothing/ears/earphones/AltClick(mob/user)
pause_unpause()
/obj/item/clothing/ears/earphones/ShiftClick(mob/user)
play_stop()
/*
@@ -244,29 +244,24 @@
/obj/item/gun/projectile/shotgun/pump/rifle/vintage/unique_action(mob/living/user as mob)
if(wielded)
pump(user)
return
else
if(open_bolt && has_clip)
if(has_clip.stored_ammo.len > 0)
load_ammo(has_clip, user)
src.ClearOverlays()
if(!has_clip.stored_ammo.len)
AddOverlays("springfield-clip-empty")
else if(has_clip.stored_ammo.len <= 3)
AddOverlays("springfield-clip-half")
else
AddOverlays("springfield-clip-full")
if(open_bolt && has_clip)
if(has_clip.stored_ammo.len > 0)
load_ammo(has_clip, user)
src.ClearOverlays()
if(!has_clip.stored_ammo.len)
AddOverlays("springfield-clip-empty")
else if(has_clip.stored_ammo.len <= 3)
AddOverlays("springfield-clip-half")
else
to_chat(user, SPAN_WARNING("There is no ammo in \the [has_clip.name]!"))
else if(!open_bolt)
to_chat(user, SPAN_WARNING("The bolt on \the [src.name] is closed!"))
AddOverlays("springfield-clip-full")
else
to_chat(user, SPAN_WARNING("There is no clip in \the [src.name]!"))
to_chat(user, SPAN_WARNING("There is no ammo in \the [has_clip.name]!"))
else if(!open_bolt)
to_chat(user, SPAN_WARNING("The bolt on \the [src.name] is closed! You'll have to grip it with both hands to rack it."))
else
to_chat(user, SPAN_WARNING("There is no clip in \the [src.name]!"))
/obj/item/gun/projectile/shotgun/pump/rifle/vintage/pump(mob/M as mob)
if(!wielded)
to_chat(M, SPAN_WARNING("You cannot work \the [src]'s bolt without gripping it with both hands!"))
return
if(!open_bolt)
open_bolt = 1
icon_state = "springfield-openbolt"
@@ -281,7 +276,6 @@
has_clip = null
ClearOverlays()
if(chambered)//We have a shell in the chamber
chambered.forceMove(get_turf(src))//Eject casing
chambered = null
@@ -1063,7 +1063,9 @@
if(!victim.internal_organs_by_name[BP_GREIMORIAN_EGGCLUSTER] && prob(20))
var/obj/item/organ/external/affected = pick(victim.organs)
// Give the victim an extra chance to NOT get an eggsac in their head; reroll.
if(BP_IS_ROBOTIC(affected))
return
// Give the victim an extra chance to NOT get an eggsac in their head; reroll. Ditto mechanical limbs.
if(affected == BP_HEAD)
affected = pick(victim.organs)
var/obj/item/organ/internal/parasite/greimorian_eggcluster/infest = new()
+17
View File
@@ -0,0 +1,17 @@
# Your name.
author: Batrachophrenoboocosmomachia
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
# Any changes you've made. See valid prefix list above.
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
# SCREW THIS UP AND IT WON'T WORK.
# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit.
# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog.
changes:
- bugfix: "Mechatronic fabricator no longer needs to be manually synced on round start to populate all available parts."
- bugfix: "Freebooters can now pilot their own subshuttle."
- bugfix: "Greimorian eggs toxin can no longer infest synthetic limbs."
- qol: "Vintage rifle mechanical feedback text has been clarified for ease of use (before it wouldn't tell you how to rack it properly)."
- rscdel: "Removes pause/unpause functionality from earbuds due to general bugginess in favor of play/stop."
@@ -2077,9 +2077,7 @@
/turf/simulated/floor/tiled/dark,
/area/ship/freebooter_ship/forehallwayport)
"iCP" = (
/obj/machinery/computer/ship/helm{
req_access = list(203)
},
/obj/machinery/computer/ship/helm,
/turf/simulated/floor/tiled/dark,
/area/shuttle/freebooter_shuttle)
"iDR" = (
@@ -58,7 +58,7 @@ export const SyntheticFabricator = (props, context) => {
return (
<Window resizable theme={data.manufacturer}>
<Window.Content scrollable>
<Flex fontSize="1.2rem" wrap>
<Flex fontSize="1.2rem" fill>
<Flex.Item>
<Section
title="Materials"