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
+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()