diff --git a/code/game/machinery/mecha_fabricator.dm b/code/game/machinery/mecha_fabricator.dm
index 9a22776ecdb..00ca8259f2d 100644
--- a/code/game/machinery/mecha_fabricator.dm
+++ b/code/game/machinery/mecha_fabricator.dm
@@ -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)
diff --git a/code/modules/clothing/ears/earphones.dm b/code/modules/clothing/ears/earphones.dm
index f5ffcfef12a..da84f52eec1 100644
--- a/code/modules/clothing/ears/earphones.dm
+++ b/code/modules/clothing/ears/earphones.dm
@@ -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 Object tab -> Earphones."
- . += "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()
/*
diff --git a/code/modules/projectiles/guns/projectile/rifle.dm b/code/modules/projectiles/guns/projectile/rifle.dm
index e7861ffdd76..6844cb5cd9f 100644
--- a/code/modules/projectiles/guns/projectile/rifle.dm
+++ b/code/modules/projectiles/guns/projectile/rifle.dm
@@ -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
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm
index 1dc9500698a..9eda4bb9d53 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm
@@ -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()
diff --git a/html/changelogs/Bat-bugfixes.yml b/html/changelogs/Bat-bugfixes.yml
new file mode 100644
index 00000000000..354a65f43ed
--- /dev/null
+++ b/html/changelogs/Bat-bugfixes.yml
@@ -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."
diff --git a/maps/away/ships/freebooter/freebooter_ship/freebooter_ship_.dmm b/maps/away/ships/freebooter/freebooter_ship/freebooter_ship_.dmm
index 0ee7ac99e42..7c7bef7d545 100644
--- a/maps/away/ships/freebooter/freebooter_ship/freebooter_ship_.dmm
+++ b/maps/away/ships/freebooter/freebooter_ship/freebooter_ship_.dmm
@@ -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" = (
diff --git a/tgui/packages/tgui/interfaces/SyntheticFabricator.tsx b/tgui/packages/tgui/interfaces/SyntheticFabricator.tsx
index 6a0389c77aa..06d0b6dc34c 100644
--- a/tgui/packages/tgui/interfaces/SyntheticFabricator.tsx
+++ b/tgui/packages/tgui/interfaces/SyntheticFabricator.tsx
@@ -58,7 +58,7 @@ export const SyntheticFabricator = (props, context) => {
return (
-
+