diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
index 264ad58973..fd68d28d72 100644
--- a/.github/CONTRIBUTING.md
+++ b/.github/CONTRIBUTING.md
@@ -387,7 +387,7 @@ Do not add any of the following in a Pull Request or risk getting the PR closed:
* Code where one line of code is split across mutiple lines (except for multiple, separate strings and comments; in those cases, existing longer lines must not be split up)
* Code adding, removing, or updating the availability of alien races/species/human mutants without prior approval. Pull requests attempting to add or remove features from said races/species/mutants require prior approval as well.
-Just becuase something isn't on this list doesn't mean that it's acceptable. Use common sense above all else.
+Just because something isn't on this list doesn't mean that it's acceptable. Use common sense above all else.
## A word on Git
Yes, we know that the files have a tonne of mixed Windows and Linux line endings. Attempts to fix this have been met with less than stellar success, and as such we have decided to give up caring until there comes a time when it matters.
diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm
index 2f57285786..31233616e6 100644
--- a/_maps/map_files/MetaStation/MetaStation.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.dmm
@@ -3327,8 +3327,7 @@
real_name = "Sergeant Araneus";
movement_type = 1;
response_help = "pets";
- turns_per_move = 10;
- voice_name = "unidentifiable voice"
+ turns_per_move = 10
},
/turf/open/floor/carpet,
/area/crew_quarters/heads/hos)
diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm
index d6a7308f19..59dd13cc31 100644
--- a/_maps/map_files/OmegaStation/OmegaStation.dmm
+++ b/_maps/map_files/OmegaStation/OmegaStation.dmm
@@ -1267,9 +1267,6 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
/obj/effect/turf_decal/stripes/line{
dir = 8
},
@@ -15170,7 +15167,6 @@
/turf/open/floor/plasteel/vault/side,
/area/crew_quarters/kitchen)
"aCY" = (
-/obj/structure/closet/secure_closet/freezer/fridge,
/obj/machinery/light{
dir = 1
},
@@ -15180,6 +15176,7 @@
name = "Kitchen RC";
pixel_y = 32
},
+/obj/structure/closet/secure_closet/freezer/kitchen,
/turf/open/floor/plasteel/vault/side,
/area/crew_quarters/kitchen)
"aCZ" = (
@@ -29411,6 +29408,7 @@
heat_capacity = 1e+006
},
/area/hallway/primary/central)
+<<<<<<< HEAD
"bgh" = (
/obj/effect/landmark/lightsout,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -29418,6 +29416,8 @@
},
/turf/open/floor/plasteel/neutral/side,
/area/hallway/primary/central)
+=======
+>>>>>>> 2d5c3d5... Merge pull request #34781 from DaxDupont/please-make-waffles-for=i-am-belgian
"bgl" = (
/obj/machinery/vending/cola/random,
/obj/machinery/newscaster{
@@ -77523,7 +77523,7 @@ bed
beI
bff
bfL
-bgh
+aYc
bgU
bhI
blv
diff --git a/code/datums/antagonists/clockcult.dm b/code/datums/antagonists/clockcult.dm
index 6b57e3d0dc..c6d5c891b7 100644
--- a/code/datums/antagonists/clockcult.dm
+++ b/code/datums/antagonists/clockcult.dm
@@ -158,7 +158,7 @@
SSticker.mode.servants_of_ratvar -= owner
SSticker.mode.update_servant_icons_removed(owner)
if(!silent)
- owner.current.visible_message("[owner] seems to have remembered their true allegiance!", ignored_mob = owner.current)
+ owner.current.visible_message("[owner] seems to have remembered their true allegiance!", null, null, null, owner.current)
to_chat(owner, "A cold, cold darkness flows through your mind, extinguishing the Justiciar's light and all of your memories as his servant.")
owner.current.log_message("Has renounced the cult of Ratvar!", INDIVIDUAL_ATTACK_LOG)
owner.special_role = null
diff --git a/code/datums/antagonists/cult.dm b/code/datums/antagonists/cult.dm
index 28603c632a..3b9fa7b8c4 100644
--- a/code/datums/antagonists/cult.dm
+++ b/code/datums/antagonists/cult.dm
@@ -133,7 +133,7 @@
SSticker.mode.cult -= owner
SSticker.mode.update_cult_icons_removed(owner)
if(!silent)
- owner.current.visible_message("[owner.current] looks like [owner.current.p_they()] just reverted to their old faith!", ignored_mob = owner.current)
+ owner.current.visible_message("[owner.current] looks like [owner.current.p_they()] just reverted to their old faith!", null, null, null, owner.current)
to_chat(owner.current, "An unfamiliar white light flashes through your mind, cleansing the taint of the Geometer and all your memories as her servant.")
owner.current.log_message("Has renounced the cult of Nar'Sie!", INDIVIDUAL_ATTACK_LOG)
if(cult_team.blood_target && cult_team.blood_target_image && owner.current.client)
diff --git a/code/datums/antagonists/revolution.dm b/code/datums/antagonists/revolution.dm
index b0637f2361..1e81987e92 100644
--- a/code/datums/antagonists/revolution.dm
+++ b/code/datums/antagonists/revolution.dm
@@ -200,10 +200,10 @@
/datum/antagonist/rev/farewell()
if(ishuman(owner.current))
- owner.current.visible_message("[owner.current] looks like they just remembered their real allegiance!", ignored_mob = owner.current)
+ owner.current.visible_message("[owner.current] looks like they just remembered their real allegiance!", null, null, null, owner.current)
to_chat(owner, "You are no longer a brainwashed revolutionary! Your memory is hazy from the time you were a rebel...the only thing you remember is the name of the one who brainwashed you...")
else if(issilicon(owner.current))
- owner.current.visible_message("The frame beeps contentedly, purging the hostile memory engram from the MMI before initalizing it.", ignored_mob = owner.current)
+ owner.current.visible_message("The frame beeps contentedly, purging the hostile memory engram from the MMI before initalizing it.", null, null, null, owner.current)
to_chat(owner, "The frame's firmware detects and deletes your neural reprogramming! You remember nothing but the name of the one who flashed you.")
/datum/antagonist/rev/proc/remove_revolutionary(borged, deconverter)
diff --git a/code/datums/brain_damage/special.dm b/code/datums/brain_damage/special.dm
index db0ca60801..1fa48a5dce 100644
--- a/code/datums/brain_damage/special.dm
+++ b/code/datums/brain_damage/special.dm
@@ -108,7 +108,7 @@
new /obj/effect/temp_visual/bluespace_fissure(get_turf(src))
new /obj/effect/temp_visual/bluespace_fissure(get_turf(linked_to))
user.forceMove(get_turf(linked_to))
- user.visible_message("[user] [slip_in_message].", ignored_mob = user)
+ user.visible_message("[user] [slip_in_message].", null, null, null, user)
user.visible_message("[user] [slip_out_message].", "...and find your way to the other side.")
/datum/brain_trauma/special/psychotic_brawling
diff --git a/code/game/gamemodes/clock_cult/clock_effects/city_of_cogs_rift.dm b/code/game/gamemodes/clock_cult/clock_effects/city_of_cogs_rift.dm
index 430e4ce5d2..c0cbca14a5 100644
--- a/code/game/gamemodes/clock_cult/clock_effects/city_of_cogs_rift.dm
+++ b/code/game/gamemodes/clock_cult/clock_effects/city_of_cogs_rift.dm
@@ -54,7 +54,7 @@
var/turf/T = get_turf(pick(GLOB.city_of_cogs_spawns))
if(is_servant_of_ratvar(AM))
T = GLOB.ark_of_the_clockwork_justiciar ? get_step(GLOB.ark_of_the_clockwork_justiciar, SOUTH) : get_turf(pick(GLOB.servant_spawns))
- AM.visible_message("[AM] passes through [src]!", ignored_mob = AM)
+ AM.visible_message("[AM] passes through [src]!", null, null, null, AM)
AM.forceMove(T)
AM.visible_message("[AM] materializes from the air!", \
"You pass through [src] and appear [is_servant_of_ratvar(AM) ? "back at the City of Cogs" : "somewhere unfamiliar. Looks like it was a one-way trip.."].")
diff --git a/code/game/gamemodes/clock_cult/clock_mobs/_eminence.dm b/code/game/gamemodes/clock_cult/clock_mobs/_eminence.dm
index b3ac43a6c7..440ad85397 100644
--- a/code/game/gamemodes/clock_cult/clock_mobs/_eminence.dm
+++ b/code/game/gamemodes/clock_cult/clock_mobs/_eminence.dm
@@ -28,7 +28,7 @@
var/turf/T = get_turf(NewLoc)
for(var/obj/effect/blessing/B in T)
if(last_failed_turf != T)
- T.visible_message("[T] suddenly emits a ringing sound!", ignore_mob = src)
+ T.visible_message("[T] suddenly emits a ringing sound!", null, null, null, src)
playsound(T, 'sound/machines/clockcult/ark_damage.ogg', 75, FALSE)
last_failed_turf = T
to_chat(src, "This turf is consecrated and can't be crossed!")
diff --git a/code/game/objects/effects/decals/misc.dm b/code/game/objects/effects/decals/misc.dm
index b32cb79313..a973ec7c94 100644
--- a/code/game/objects/effects/decals/misc.dm
+++ b/code/game/objects/effects/decals/misc.dm
@@ -8,7 +8,7 @@
/obj/effect/temp_visual/point/Initialize(mapload, set_invis = 0)
. = ..()
var/atom/old_loc = loc
- forceMove(get_turf(src))
+ loc = get_turf(src) // We don't want to actualy trigger anything when it moves
pixel_x = old_loc.pixel_x
pixel_y = old_loc.pixel_y
invisibility = set_invis
diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm
index 90408e7d3f..9778135200 100644
--- a/code/game/objects/effects/landmarks.dm
+++ b/code/game/objects/effects/landmarks.dm
@@ -4,6 +4,18 @@
icon_state = "x2"
anchored = TRUE
invisibility = INVISIBILITY_ABSTRACT
+ resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
+
+/obj/effect/landmark/singularity_act()
+ return
+
+// Please stop bombing the Observer-Start landmark.
+/obj/effect/landmark/ex_act()
+ return
+
+/obj/effect/landmark/singularity_pull()
+ return
+
/obj/effect/landmark/New()
..()
diff --git a/code/game/objects/items/pet_carrier.dm b/code/game/objects/items/pet_carrier.dm
index cab363f188..4acebd6a34 100644
--- a/code/game/objects/items/pet_carrier.dm
+++ b/code/game/objects/items/pet_carrier.dm
@@ -124,17 +124,17 @@
to_chat(loc, "You see [user] reach through the bars and fumble for the lock switch!")
if(!do_after(user, rand(300, 400), target = user) || open || !locked || !user in occupants)
return
- loc.visible_message("[user] flips the lock switch on [src] by reaching through!", ignored_mob = user)
+ loc.visible_message("[user] flips the lock switch on [src] by reaching through!", null, null, null, user)
to_chat(user, "Bingo! The lock pops open!")
locked = FALSE
playsound(src, 'sound/machines/boltsup.ogg', 30, TRUE)
update_icon()
else
- loc.visible_message("[src] starts rattling as something pushes against the door!", ignored_mob = user)
+ loc.visible_message("[src] starts rattling as something pushes against the door!", null, null, null, user)
to_chat(user, "You start pushing out of [src]... (This will take about 20 seconds.)")
if(!do_after(user, 200, target = user) || open || !locked || !user in occupants)
return
- loc.visible_message("[user] shoves out of [src]!", ignored_mob = user)
+ loc.visible_message("[user] shoves out of [src]!", null, null, null, user)
to_chat(user, "You shove open [src]'s door against the lock's resistance and fall out!")
locked = FALSE
open = TRUE
@@ -162,7 +162,7 @@
to_chat(user, "[src] is already carrying too much!")
return
user.visible_message("[user] starts loading [target] into [src].", \
- "You start loading [target] into [src]...", ignored_mob = target)
+ "You start loading [target] into [src]...", null, null, target)
to_chat(target, "[user] starts loading you into their [name]!")
if(!do_mob(user, target, 30))
return
@@ -172,7 +172,7 @@
to_chat(user, "[src] is already carrying too much!")
return
user.visible_message("[user] loads [target] into [src]!", \
- "You load [target] into [src].", ignored_mob = target)
+ "You load [target] into [src].", null, null, target)
to_chat(target, "[user] loads you into their [name]!")
add_occupant(target)
diff --git a/code/game/objects/structures/beds_chairs/alien_nest.dm b/code/game/objects/structures/beds_chairs/alien_nest.dm
index d3b62f35f4..77b3279517 100644
--- a/code/game/objects/structures/beds_chairs/alien_nest.dm
+++ b/code/game/objects/structures/beds_chairs/alien_nest.dm
@@ -11,6 +11,7 @@
canSmoothWith = null
buildstacktype = null
flags_1 = NODECONSTRUCT_1
+ bolts = FALSE
var/static/mutable_appearance/nest_overlay = mutable_appearance('icons/mob/alien.dmi', "nestoverlay", LYING_MOB_LAYER)
/obj/structure/bed/nest/user_unbuckle_mob(mob/living/buckled_mob, mob/living/user)
@@ -88,4 +89,4 @@
if(user.a_intent != INTENT_HARM)
return attack_hand(user)
else
- return ..()
\ No newline at end of file
+ return ..()
diff --git a/code/game/objects/structures/beds_chairs/bed.dm b/code/game/objects/structures/beds_chairs/bed.dm
index 56a38cb688..72764f436d 100644
--- a/code/game/objects/structures/beds_chairs/bed.dm
+++ b/code/game/objects/structures/beds_chairs/bed.dm
@@ -13,17 +13,19 @@
icon_state = "bed"
icon = 'icons/obj/objects.dmi'
anchored = TRUE
- can_buckle = 1
- buckle_lying = 1
+ can_buckle = TRUE
+ buckle_lying = TRUE
resistance_flags = FLAMMABLE
max_integrity = 100
integrity_failure = 30
var/buildstacktype = /obj/item/stack/sheet/metal
var/buildstackamount = 2
+ var/bolts = TRUE
/obj/structure/bed/examine(mob/user)
..()
- to_chat(user, "It's held together by a couple of bolts.")
+ if(bolts)
+ to_chat(user, "It's held together by a couple of bolts.")
/obj/structure/bed/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
diff --git a/code/modules/library/soapstone.dm b/code/modules/library/soapstone.dm
index fd75ba4351..17df503765 100644
--- a/code/modules/library/soapstone.dm
+++ b/code/modules/library/soapstone.dm
@@ -193,7 +193,7 @@
/obj/structure/chisel_message/examine(mob/user)
..()
- to_chat(user, "[hidden_message]")
+ ui_interact(user)
/obj/structure/chisel_message/Destroy()
if(persists)
@@ -201,8 +201,10 @@
SSpersistence.chisel_messages -= src
. = ..()
-/obj/structure/chisel_message/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.always_state)
+/obj/structure/chisel_message/interact()
+ return
+/obj/structure/chisel_message/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.always_state)
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "engraved_message", name, 600, 300, master_ui, state)
diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm
index e4fed627f4..e058cf6354 100644
--- a/code/modules/mob/living/carbon/alien/alien.dm
+++ b/code/modules/mob/living/carbon/alien/alien.dm
@@ -5,7 +5,6 @@
/mob/living/carbon/alien
name = "alien"
- voice_name = "alien"
icon = 'icons/mob/alien.dmi'
gender = FEMALE //All xenos are girls!!
dna = null
diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm
index 60ab5a71e9..edf07d9615 100644
--- a/code/modules/mob/living/carbon/carbon_defense.dm
+++ b/code/modules/mob/living/carbon/carbon_defense.dm
@@ -295,7 +295,7 @@
to_chat(src, "Your eyes burn.")
adjust_eye_damage(rand(2, 4))
- else if( damage > 3)
+ else if( damage >= 3)
to_chat(src, "Your eyes itch and burn severely!")
adjust_eye_damage(rand(12, 16))
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 40c50025b2..434c24874c 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -1,7 +1,6 @@
/mob/living/carbon/human
name = "Unknown"
real_name = "Unknown"
- voice_name = "Unknown"
icon = 'icons/mob/human.dmi'
icon_state = "caucasian_m"
appearance_flags = KEEP_TOGETHER|TILE_BOUND|PIXEL_SCALE
diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm
index 3cf2bcccc0..77bae8b91d 100644
--- a/code/modules/mob/living/carbon/monkey/monkey.dm
+++ b/code/modules/mob/living/carbon/monkey/monkey.dm
@@ -1,6 +1,5 @@
/mob/living/carbon/monkey
name = "monkey"
- voice_name = "monkey"
verb_say = "chimpers"
initial_language_holder = /datum/language_holder/monkey
icon = 'icons/mob/monkey.dmi'
diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm
index 5de09011ea..bc34c15e2b 100644
--- a/code/modules/mob/living/silicon/silicon.dm
+++ b/code/modules/mob/living/silicon/silicon.dm
@@ -1,6 +1,5 @@
/mob/living/silicon
gender = NEUTER
- voice_name = "synthesized voice"
has_unlimited_silicon_privilege = 1
verb_say = "states"
verb_ask = "queries"
diff --git a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm
index 0f265bdb07..ea4bb1d089 100644
--- a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm
+++ b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm
@@ -35,7 +35,6 @@
sight = (SEE_TURFS | SEE_OBJS)
status_flags = (CANPUSH | CANSTUN | CANKNOCKDOWN)
gender = NEUTER
- voice_name = "synthesized chirp"
speak_emote = list("chirps")
bubble_icon = "machine"
initial_language_holder = /datum/language_holder/drone
diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm
index e9eabdfb98..719d82ce6a 100644
--- a/code/modules/mob/mob_defines.dm
+++ b/code/modules/mob/mob_defines.dm
@@ -26,8 +26,6 @@
var/computer_id = null
var/list/logging = list(INDIVIDUAL_ATTACK_LOG, INDIVIDUAL_SAY_LOG, INDIVIDUAL_EMOTE_LOG, INDIVIDUAL_OOC_LOG)
var/obj/machinery/machine = null
- var/other_mobs = null
-
var/next_move = null
var/notransform = null //Carbon
@@ -72,17 +70,8 @@
var/in_throw_mode = 0
- var/music_lastplayed = "null"
-
var/job = null//Living
-<<<<<<< HEAD
- var/radiation = 0//Carbon
-
- var/voice_name = "unidentifiable voice"
-
-=======
->>>>>>> 3f10f29... Shifts vars off /mob and to the correct subtype (#34773)
var/list/faction = list("neutral") //A list of factions that this mob is currently in, for hostile mob targetting, amongst other things
var/move_on_shuttle = 1 // Can move on the shuttle.
diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm
index e065fd8c03..b48f3392df 100644
--- a/code/modules/paperwork/photocopier.dm
+++ b/code/modules/paperwork/photocopier.dm
@@ -254,7 +254,10 @@
to_chat(user, "You take [O] out of [src].")
/obj/machinery/photocopier/attackby(obj/item/O, mob/user, params)
- if(istype(O, /obj/item/paper))
+ if(default_unfasten_wrench(user, O))
+ return
+
+ else if(istype(O, /obj/item/paper))
if(copier_empty())
if(istype(O, /obj/item/paper/contract/infernal))
to_chat(user, "[src] smokes, smelling of brimstone!")
@@ -297,17 +300,6 @@
else
to_chat(user, "This cartridge is not yet ready for replacement! Use up the rest of the toner.")
- else if(istype(O, /obj/item/wrench))
- if(isinspace())
- to_chat(user, "There's nothing to fasten [src] to!")
- return
- playsound(loc, O.usesound, 50, 1)
- to_chat(user, "You start [anchored ? "unwrenching" : "wrenching"] [src]...")
- if(do_after(user, 20*O.toolspeed, target = src))
- if(QDELETED(src))
- return
- to_chat(user, "You [anchored ? "unwrench" : "wrench"] [src].")
- anchored = !anchored
else if(istype(O, /obj/item/areaeditor/blueprints))
to_chat(user, "The Blueprint is too large to put into the copier. You need to find something else to record the document")
else
diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm
index ac840c27c4..b86ac56478 100644
--- a/code/modules/power/lighting.dm
+++ b/code/modules/power/lighting.dm
@@ -222,7 +222,7 @@
var/start_with_cell = TRUE // if true, this fixture generates a very weak cell at roundstart
var/emergency_mode = FALSE // if true, the light is in emergency mode
var/no_emergency = FALSE // if true, this light cannot ever have an emergency mode
- var/bulb_emergency_brightness_mul // multiplier for this light's base brightness in emergency power mode
+ var/bulb_emergency_brightness_mul = 0.25 // multiplier for this light's base brightness in emergency power mode
var/bulb_emergency_colour = "#FF3232" // determines the colour of the light while it's in emergency mode
var/bulb_emergency_pow_mul = 0.75 // the multiplier for determining the light's power in emergency mode
var/bulb_emergency_pow_min = 0.5 // the minimum value for the light's power in emergency mode
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index 8efb7ce9e1..8f52f26936 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -159,7 +159,7 @@
if (user.has_disability(DISABILITY_CLUMSY) && prob(40))
to_chat(user, "You shoot yourself in the foot with [src]!")
var/shot_leg = pick("l_leg", "r_leg")
- process_fire(user,user,0,params, zone_override = shot_leg)
+ process_fire(user, user, FALSE, params, shot_leg)
user.dropItemToGround(src, TRUE)
return
@@ -178,9 +178,9 @@
else if(G.can_trigger_gun(user))
bonus_spread += 24 * G.weapon_weight
loop_counter++
- addtimer(CALLBACK(G, /obj/item/gun.proc/process_fire, target, user, 1, params, null, bonus_spread), loop_counter)
+ addtimer(CALLBACK(G, /obj/item/gun.proc/process_fire, target, user, TRUE, params, null, bonus_spread), loop_counter)
- process_fire(target,user,1,params, null, bonus_spread)
+ process_fire(target, user, TRUE, params, null, bonus_spread)
@@ -437,7 +437,7 @@
if(chambered && chambered.BB)
chambered.BB.damage *= 5
- process_fire(target, user, 1, params)
+ process_fire(target, user, TRUE, params)
/obj/item/gun/proc/unlock() //used in summon guns and as a convience for admins
if(pin)
diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm
index 786486eea9..c16c5f0fc0 100644
--- a/code/modules/projectiles/guns/ballistic.dm
+++ b/code/modules/projectiles/guns/ballistic.dm
@@ -159,7 +159,7 @@
sleep(25)
if(user.is_holding(src))
var/turf/T = get_turf(user)
- process_fire(user, user, 0, zone_override = "head")
+ process_fire(user, user, FALSE, null, "head")
user.visible_message("[user] blows [user.p_their()] brain[user.p_s()] out with [src]!")
var/turf/target = get_ranged_target_turf(user, turn(user.dir, 180), BRAINS_BLOWN_THROW_RANGE)
B.Remove(user)
@@ -215,7 +215,7 @@
. = 0
for(var/obj/item/ammo_casing/AC in magazine.stored_ammo)
if(AC.BB)
- process_fire(user, user,0)
+ process_fire(user, user, FALSE)
. = 1
diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm
index aefa7826a0..4e9da3b22d 100644
--- a/code/modules/projectiles/guns/ballistic/revolver.dm
+++ b/code/modules/projectiles/guns/ballistic/revolver.dm
@@ -351,7 +351,7 @@
/obj/item/gun/ballistic/revolver/reverse/can_trigger_gun(mob/living/user)
if((user.has_disability(DISABILITY_CLUMSY)) || (user.mind && user.mind.assigned_role == "Clown"))
return ..()
- if(process_fire(user, user, 0, zone_override = "head"))
+ if(process_fire(user, user, FALSE, null, "head"))
user.visible_message("[user] somehow manages to shoot [user.p_them()]self in the face!", "You somehow shoot yourself in the face! How the hell?!")
user.emote("scream")
user.drop_all_held_items()
diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm
index e74b90922d..6382b231a8 100644
--- a/code/modules/projectiles/guns/ballistic/shotgun.dm
+++ b/code/modules/projectiles/guns/ballistic/shotgun.dm
@@ -44,7 +44,7 @@
/obj/item/gun/ballistic/shotgun/blow_up(mob/user)
. = 0
if(chambered && chambered.BB)
- process_fire(user, user,0)
+ process_fire(user, user, FALSE)
. = 1
/obj/item/gun/ballistic/shotgun/proc/pump(mob/M)
diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
index ebf2c8913b..a1e913a14e 100644
--- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
@@ -182,6 +182,8 @@
if("eject")
if(beaker)
beaker.forceMove(drop_location())
+ if(Adjacent(usr) && !issilicon(usr))
+ usr.put_in_hands(beaker)
beaker = null
cut_overlays()
. = TRUE
diff --git a/code/modules/reagents/chemistry/machinery/chem_heater.dm b/code/modules/reagents/chemistry/machinery/chem_heater.dm
index 9037bba6dc..fa88cab801 100644
--- a/code/modules/reagents/chemistry/machinery/chem_heater.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_heater.dm
@@ -29,9 +29,11 @@
else
icon_state = "mixer0b"
-/obj/machinery/chem_heater/proc/eject_beaker()
+/obj/machinery/chem_heater/proc/eject_beaker(mob/user)
if(beaker)
beaker.forceMove(drop_location())
+ if(Adjacent(user) && !issilicon(user))
+ user.put_in_hands(beaker)
beaker = null
update_icon()
@@ -129,5 +131,5 @@
target_temperature = CLAMP(target, 0, 1000)
if("eject")
on = FALSE
- eject_beaker()
+ eject_beaker(usr)
. = TRUE
diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm
index 60550a1687..ffa73aa994 100644
--- a/code/modules/reagents/chemistry/machinery/chem_master.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_master.dm
@@ -59,10 +59,13 @@
else
icon_state = "mixer0"
-/obj/machinery/chem_master/proc/eject_beaker()
+/obj/machinery/chem_master/proc/eject_beaker(mob/user)
if(beaker)
beaker.forceMove(drop_location())
- adjust_item_drop_location(beaker)
+ if(Adjacent(user) && !issilicon(user))
+ user.put_in_hands(beaker)
+ else
+ adjust_item_drop_location(beaker)
beaker = null
update_icon()
@@ -169,7 +172,7 @@
return
switch(action)
if("eject")
- eject_beaker()
+ eject_beaker(usr)
. = TRUE
if("ejectp")
diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm
index 6629cd018e..ec447ce2e5 100644
--- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm
+++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm
@@ -201,6 +201,8 @@
if(!beaker)
return
beaker.forceMove(drop_location())
+ if(Adjacent(user) && !issilicon(user))
+ user.put_in_hands(beaker)
beaker = null
update_icon()
updateUsrDialog()
diff --git a/html/changelogs/AutoChangeLog-pr-5050.yml b/html/changelogs/AutoChangeLog-pr-5050.yml
new file mode 100644
index 0000000000..b50ee082db
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-5050.yml
@@ -0,0 +1,4 @@
+author: "Dax Dupont"
+delete-after: True
+changes:
+ - rscadd: "Beakers and beaker-like objects now get put in your hand on ejection from chemistry devices."
diff --git a/html/changelogs/AutoChangeLog-pr-5051.yml b/html/changelogs/AutoChangeLog-pr-5051.yml
new file mode 100644
index 0000000000..3c06b131d1
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-5051.yml
@@ -0,0 +1,4 @@
+author: "Dax Dupont"
+delete-after: True
+changes:
+ - bugfix: "Fixed missing wheat fridge on omega and removes a duplicate pipe."
diff --git a/html/changelogs/AutoChangeLog-pr-5052.yml b/html/changelogs/AutoChangeLog-pr-5052.yml
new file mode 100644
index 0000000000..e923e156c6
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-5052.yml
@@ -0,0 +1,4 @@
+author: "ninjanomnom"
+delete-after: True
+changes:
+ - bugfix: "Pointing at squeaky things doesn't make them squeak anymore."
diff --git a/html/changelogs/AutoChangeLog-pr-5056.yml b/html/changelogs/AutoChangeLog-pr-5056.yml
new file mode 100644
index 0000000000..c6179ddbbe
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-5056.yml
@@ -0,0 +1,4 @@
+author: "CitadelStationBot"
+delete-after: True
+changes:
+ - bugfix: "Emergency lights will give off light again"
diff --git a/html/changelogs/AutoChangeLog-pr-5057.yml b/html/changelogs/AutoChangeLog-pr-5057.yml
new file mode 100644
index 0000000000..bdd2e4ccf2
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-5057.yml
@@ -0,0 +1,4 @@
+author: "CitadelStationBot"
+delete-after: True
+changes:
+ - bugfix: "Fixed eye damage not being applied if it was exactly 3."
diff --git a/html/changelogs/AutoChangeLog-pr-5061.yml b/html/changelogs/AutoChangeLog-pr-5061.yml
new file mode 100644
index 0000000000..cb4115f693
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-5061.yml
@@ -0,0 +1,4 @@
+author: "Dax Dupont"
+delete-after: True
+changes:
+ - tweak: "You now need to examine engravings to pop open the menu."