diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm
index 5a21c121b25..9c42d7c30dc 100644
--- a/code/datums/supplypacks.dm
+++ b/code/datums/supplypacks.dm
@@ -92,7 +92,9 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
/obj/item/clothing/mask/gas,
/obj/item/clothing/mask/gas,
/obj/item/clothing/mask/gas,
- /obj/item/clothing/mask/gas)
+ /obj/item/clothing/mask/gas,
+ /obj/item/grenade/gas/oxygen,
+ /obj/item/grenade/gas/oxygen)
cost = 35
containertype = /obj/structure/closet/crate/internals
containername = "emergency crate"
diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm
index 7689fa5f56c..872b443c124 100644
--- a/code/game/area/Space Station 13 areas.dm
+++ b/code/game/area/Space Station 13 areas.dm
@@ -1407,29 +1407,29 @@ var/list/ghostteleportlocs = list()
dynamic_lighting = 0
valid_territory = FALSE
- auxport
- name = "\improper Fore Port Solar Array"
- icon_state = "panelsA"
+/area/solar/auxport
+ name = "\improper Fore Port Solar Array"
+ icon_state = "panelsA"
- auxstarboard
- name = "\improper Fore Starboard Solar Array"
- icon_state = "panelsA"
+/area/solar/auxstarboard
+ name = "\improper Fore Starboard Solar Array"
+ icon_state = "panelsA"
- fore
- name = "\improper Fore Solar Array"
- icon_state = "yellow"
+/area/solar/fore
+ name = "\improper Fore Solar Array"
+ icon_state = "yellow"
- aft
- name = "\improper Aft Solar Array"
- icon_state = "aft"
+/area/solar/aft
+ name = "\improper Aft Solar Array"
+ icon_state = "aft"
- starboard
- name = "\improper Aft Starboard Solar Array"
- icon_state = "panelsS"
+/area/solar/starboard
+ name = "\improper Aft Starboard Solar Array"
+ icon_state = "panelsS"
- port
- name = "\improper Aft Port Solar Array"
- icon_state = "panelsP"
+/area/solar/port
+ name = "\improper Aft Port Solar Array"
+ icon_state = "panelsP"
/area/maintenance/auxsolarport
name = "\improper Fore Port Solar Maintenance"
@@ -1756,7 +1756,7 @@ var/list/ghostteleportlocs = list()
name = "\improper Head of Security's Office"
icon_state = "sec_hos"
-area/security/podbay
+/area/security/podbay
name = "\improper Security Podbay"
icon_state = "securitypodbay"
@@ -1848,7 +1848,7 @@ area/security/podbay
name = "\improper Mech Bay"
icon_state = "yellow"
-/area/janitor/
+/area/janitor
name = "\improper Custodial Closet"
icon_state = "janitor"
diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm
index bd66901c4ab..b7c09919a0a 100644
--- a/code/game/machinery/computer/arcade.dm
+++ b/code/game/machinery/computer/arcade.dm
@@ -1,4 +1,4 @@
-/obj/machinery/computer/arcade/
+/obj/machinery/computer/arcade
name = "random arcade"
desc = "random arcade machine"
icon = 'icons/obj/computer.dmi'
diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm
index 1935869fb53..114835b21c3 100644
--- a/code/game/machinery/constructable_frame.dm
+++ b/code/game/machinery/constructable_frame.dm
@@ -651,7 +651,7 @@ to destroy them and players will be able to make replacements.
build_path = /obj/machinery/power/port_gen/pacman/mrs
origin_tech = "programming=3;powerstorage=4;engineering=4;plasmatech=4"
-obj/item/circuitboard/rdserver
+/obj/item/circuitboard/rdserver
name = "Circuit Board (R&D Server)"
build_path = /obj/machinery/r_n_d/server
board_type = "machine"
diff --git a/code/game/machinery/doors/poddoor.dm b/code/game/machinery/doors/poddoor.dm
index 3c9c67dfce0..975aa9b01ab 100644
--- a/code/game/machinery/doors/poddoor.dm
+++ b/code/game/machinery/doors/poddoor.dm
@@ -94,32 +94,32 @@
T.reconsider_lights()
update_freelook_sight()
-/obj/machinery/door/poddoor/multi_tile/four_tile_ver/
+/obj/machinery/door/poddoor/multi_tile/four_tile_ver
icon = 'icons/obj/doors/1x4blast_vert.dmi'
width = 4
dir = NORTH
-/obj/machinery/door/poddoor/multi_tile/three_tile_ver/
+/obj/machinery/door/poddoor/multi_tile/three_tile_ver
icon = 'icons/obj/doors/1x3blast_vert.dmi'
width = 3
dir = NORTH
-/obj/machinery/door/poddoor/multi_tile/two_tile_ver/
+/obj/machinery/door/poddoor/multi_tile/two_tile_ver
icon = 'icons/obj/doors/1x2blast_vert.dmi'
width = 2
dir = NORTH
-/obj/machinery/door/poddoor/multi_tile/four_tile_hor/
+/obj/machinery/door/poddoor/multi_tile/four_tile_hor
icon = 'icons/obj/doors/1x4blast_hor.dmi'
width = 4
dir = EAST
-/obj/machinery/door/poddoor/multi_tile/three_tile_hor/
+/obj/machinery/door/poddoor/multi_tile/three_tile_hor
icon = 'icons/obj/doors/1x3blast_hor.dmi'
width = 3
dir = EAST
-/obj/machinery/door/poddoor/multi_tile/two_tile_hor/
+/obj/machinery/door/poddoor/multi_tile/two_tile_hor
icon = 'icons/obj/doors/1x2blast_hor.dmi'
width = 2
dir = EAST
diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm
index 019d9a2319e..81006be3fdd 100644
--- a/code/game/machinery/recharger.dm
+++ b/code/game/machinery/recharger.dm
@@ -115,7 +115,7 @@
if(R.rcell.give(R.rcell.chargerate))
use_power(200)
using_power = 1
-
+
if(istype(charging, /obj/item/bodyanalyzer))
var/obj/item/bodyanalyzer/B = charging
if(B.power_supply)
@@ -154,7 +154,7 @@
icon_state = icon_state_idle
// Atlantis: No need for that copy-pasta code, just use var to store icon_states instead.
-obj/machinery/recharger/wallcharger
+/obj/machinery/recharger/wallcharger
name = "wall recharger"
icon_state = "wrecharger0"
icon_state_off = "wrechargeroff"
diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm
index d70508e620b..51a39f7cf5f 100644
--- a/code/game/machinery/syndicatebomb.dm
+++ b/code/game/machinery/syndicatebomb.dm
@@ -167,7 +167,7 @@
if(!WT.isOn() || !WT.remove_fuel(5, user))
return
to_chat(user, "You cut the [src] apart.")
- new /obj/item/stack/sheet/plasteel(loc, 5)
+ new /obj/item/stack/sheet/plasteel(loc, 3)
qdel(src)
else
return ..()
diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm
index 037a8b5c9a0..0cabbbb0b22 100644
--- a/code/game/objects/items/devices/flashlight.dm
+++ b/code/game/objects/items/devices/flashlight.dm
@@ -142,7 +142,7 @@
attack_self(usr)
//Bananalamp
-obj/item/flashlight/lamp/bananalamp
+/obj/item/flashlight/lamp/bananalamp
name = "banana lamp"
desc = "Only a clown would think to make a ghetto banana-shaped lamp. Even has a goofy pullstring."
icon_state = "bananalamp"
@@ -381,4 +381,4 @@ obj/item/flashlight/lamp/bananalamp
anchored = TRUE
var/range = null
unacidable = TRUE
- burn_state = LAVA_PROOF
\ No newline at end of file
+ burn_state = LAVA_PROOF
diff --git a/code/game/objects/items/shooting_range.dm b/code/game/objects/items/shooting_range.dm
index a91410c28fe..8c2d64bda59 100644
--- a/code/game/objects/items/shooting_range.dm
+++ b/code/game/objects/items/shooting_range.dm
@@ -9,75 +9,76 @@
var/icon/virtualIcon
var/list/bulletholes = list()
- Destroy()
- // if a target is deleted and associated with a stake, force stake to forget
- for(var/obj/structure/target_stake/T in view(3,src))
- if(T.pinned_target == src)
- T.pinned_target = null
- T.density = 1
- break
- return ..() // delete target
+/obj/item/target/Destroy()
+ // if a target is deleted and associated with a stake, force stake to forget
+ for(var/obj/structure/target_stake/T in view(3,src))
+ if(T.pinned_target == src)
+ T.pinned_target = null
+ T.density = 1
+ break
+ return ..() // delete target
- Move()
- ..()
- // After target moves, check for nearby stakes. If associated, move to target
- for(var/obj/structure/target_stake/M in view(3,src))
- if(M.density == 0 && M.pinned_target == src)
- M.loc = loc
+/obj/item/target/Move()
+ ..()
+ // After target moves, check for nearby stakes. If associated, move to target
+ for(var/obj/structure/target_stake/M in view(3,src))
+ if(M.density == 0 && M.pinned_target == src)
+ M.loc = loc
- // This may seem a little counter-intuitive but I assure you that's for a purpose.
- // Stakes are the ones that carry targets, yes, but in the stake code we set
- // a stake's density to 0 meaning it can't be pushed anymore. Instead of pushing
- // the stake now, we have to push the target.
+ // This may seem a little counter-intuitive but I assure you that's for a purpose.
+ // Stakes are the ones that carry targets, yes, but in the stake code we set
+ // a stake's density to 0 meaning it can't be pushed anymore. Instead of pushing
+ // the stake now, we have to push the target.
- attackby(obj/item/W as obj, mob/user as mob, params)
- if(istype(W, /obj/item/weldingtool))
- var/obj/item/weldingtool/WT = W
- if(WT.remove_fuel(0, user))
- overlays.Cut()
- to_chat(usr, "You slice off [src]'s uneven chunks of aluminum and scorch marks.")
- return
+/obj/item/target/attackby(obj/item/W as obj, mob/user as mob, params)
+ if(istype(W, /obj/item/weldingtool))
+ var/obj/item/weldingtool/WT = W
+ if(WT.remove_fuel(0, user))
+ overlays.Cut()
+ to_chat(usr, "You slice off [src]'s uneven chunks of aluminum and scorch marks.")
+ return
- attack_hand(mob/user as mob)
- // taking pinned targets off!
- var/obj/structure/target_stake/stake
- for(var/obj/structure/target_stake/T in view(3,src))
- if(T.pinned_target == src)
- stake = T
- break
+/obj/item/target/attack_hand(mob/user as mob)
+ // taking pinned targets off!
+ var/obj/structure/target_stake/stake
+ for(var/obj/structure/target_stake/T in view(3,src))
+ if(T.pinned_target == src)
+ stake = T
+ break
- if(stake)
- if(stake.pinned_target)
- stake.density = 1
- density = 0
- layer = OBJ_LAYER
+ if(stake)
+ if(stake.pinned_target)
+ stake.density = 1
+ density = 0
+ layer = OBJ_LAYER
- loc = user.loc
- if(ishuman(user))
- if(!user.get_active_hand())
- user.put_in_hands(src)
- to_chat(user, "You take the target out of the stake.")
- else
- src.loc = get_turf(user)
+ loc = user.loc
+ if(ishuman(user))
+ if(!user.get_active_hand())
+ user.put_in_hands(src)
to_chat(user, "You take the target out of the stake.")
+ else
+ src.loc = get_turf(user)
+ to_chat(user, "You take the target out of the stake.")
- stake.pinned_target = null
- return
+ stake.pinned_target = null
+ return
- else
- ..()
+ else
+ ..()
- syndicate
- icon_state = "target_s"
- desc = "A shooting target that looks like a syndicate scum."
- hp = 2600 // i guess syndie targets are sturdier?
- alien
- icon_state = "target_q"
- desc = "A shooting target that looks like a xenomorphic alien."
- hp = 2350 // alium onest too kinda
+/obj/item/target/syndicate
+ icon_state = "target_s"
+ desc = "A shooting target that looks like a syndicate scum."
+ hp = 2600 // i guess syndie targets are sturdier?
+
+/obj/item/target/alien
+ icon_state = "target_q"
+ desc = "A shooting target that looks like a xenomorphic alien."
+ hp = 2350 // alium onest too kinda
/obj/item/target/bullet_act(var/obj/item/projectile/Proj)
var/p_x = Proj.p_x + pick(0,0,0,0,0,-1,1) // really ugly way of coding "sometimes offset Proj.p_x!"
diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm
index d26fa182fe1..abc328a8bf1 100644
--- a/code/game/objects/items/stacks/sheets/sheet_types.dm
+++ b/code/game/objects/items/stacks/sheets/sheet_types.dm
@@ -129,7 +129,7 @@ var/global/list/datum/stack_recipe/metal_recipes = list(
*/
var/global/list/datum/stack_recipe/plasteel_recipes = list(
new /datum/stack_recipe("AI core", /obj/structure/AIcore, 4, time = 50, one_per_turf = 1),
- new /datum/stack_recipe("bomb assembly", /obj/machinery/syndicatebomb/empty, 10, time = 50),
+ new /datum/stack_recipe("bomb assembly", /obj/machinery/syndicatebomb/empty, 3, time = 50),
new /datum/stack_recipe("Surgery Table", /obj/machinery/optable, 5, time = 50, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("Metal crate", /obj/structure/closet/crate, 10, time = 50, one_per_turf = 1),
new /datum/stack_recipe("Mass Driver frame", /obj/machinery/mass_driver_frame, 3, time = 50, one_per_turf = 1),
diff --git a/code/game/objects/items/weapons/grenades/atmosgrenade.dm b/code/game/objects/items/weapons/grenades/atmosgrenade.dm
index 02e21e31d39..96e2c57b1c3 100644
--- a/code/game/objects/items/weapons/grenades/atmosgrenade.dm
+++ b/code/game/objects/items/weapons/grenades/atmosgrenade.dm
@@ -1,6 +1,3 @@
-
-
-
/obj/item/grenade/gas
name = "plasma fire grenade"
desc = "A compressed plasma grenade, used to start horrific plasma fires."
@@ -23,9 +20,16 @@
/obj/item/grenade/gas/knockout
name = "knockout grenade"
- desc = "A grenade that completely removes all air and heat from its detonation area."
+ desc = "A grenade that releases pure N2O gas."
spawn_contents = SPAWN_20C | SPAWN_N2O
+/obj/item/grenade/gas/oxygen
+ name = "oxygen grenade"
+ desc = "A grenade that releases pure O2 gas."
+ icon_state = "oxygen"
+ spawn_contents = SPAWN_20C | SPAWN_OXYGEN
+ spawn_amount = 500
+
/obj/item/grenade/gluon
desc = "An advanced grenade that releases a harmful stream of gluons inducing radiation in those nearby. These gluon streams will also make victims feel exhausted, and induce shivering. This extreme coldness will also wet any nearby floors."
name = "gluon grenade"
diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm
index 1a5fe872251..5461367743a 100644
--- a/code/game/objects/items/weapons/weaponry.dm
+++ b/code/game/objects/items/weapons/weaponry.dm
@@ -89,7 +89,7 @@
w_class = WEIGHT_CLASS_NORMAL
attack_verb = list("jabbed","stabbed","ripped")
-obj/item/wirerod
+/obj/item/wirerod
name = "Wired rod"
desc = "A rod with some wire wrapped around the top. It'd be easy to attach something to the top bit."
icon_state = "wiredrod"
@@ -101,7 +101,7 @@ obj/item/wirerod
materials = list(MAT_METAL=1150, MAT_GLASS=75)
attack_verb = list("hit", "bludgeoned", "whacked", "bonked")
-obj/item/wirerod/attackby(obj/item/I, mob/user, params)
+/obj/item/wirerod/attackby(obj/item/I, mob/user, params)
..()
if(istype(I, /obj/item/shard))
var/obj/item/twohanded/spear/S = new /obj/item/twohanded/spear
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
index fbe2c4d8356..7b07e003bca 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
@@ -135,6 +135,8 @@
new /obj/item/storage/backpack/satchel_eng(src)
new /obj/item/storage/backpack/duffel/atmos(src)
new /obj/item/extinguisher(src)
+ new /obj/item/grenade/gas/oxygen(src)
+ new /obj/item/grenade/gas/oxygen(src)
new /obj/item/clothing/suit/storage/hazardvest(src)
new /obj/item/clothing/mask/gas(src)
new /obj/item/tank/emergency_oxygen/engi(src)
diff --git a/code/game/objects/structures/safe.dm b/code/game/objects/structures/safe.dm
index 8e9b478382a..c6e3ab2e5bd 100644
--- a/code/game/objects/structures/safe.dm
+++ b/code/game/objects/structures/safe.dm
@@ -122,7 +122,7 @@ GLOBAL_LIST_EMPTY(safes)
switch(alert("What would you like to do?", "Thermal Drill", "Turn [drill_timer ? "Off" : "On"]", "Remove Drill", "Cancel"))
if("Turn On")
if(do_after(user, 2 SECONDS, target = src))
- drill_timer = addtimer(CALLBACK(src, .proc/drill_open), time_to_drill)
+ drill_timer = addtimer(CALLBACK(src, .proc/drill_open), time_to_drill, TIMER_STOPPABLE)
drill_start_time = world.time
drill.soundloop.start()
update_icon()
diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm
index b3ce496ec51..a39c4e5a674 100644
--- a/code/modules/customitems/item_defines.dm
+++ b/code/modules/customitems/item_defines.dm
@@ -1611,3 +1611,11 @@
icon_state = "asmer_accordion"
item_state = "asmer_accordion"
+
+/obj/item/clothing/head/rabbitears/fluff/pinesalad_bunny // Pineapple Salad : Dan Jello
+ name = "Bluespace rabbit ears"
+ desc = "A pair of sparkly bluespace rabbit ears, with a small tag on them that reads,"/"Dan Jello~"/". Yuck, \
+ there's some pink slime on the part that goes on your head!"
+ icon = 'icons/obj/custom_items.dmi'
+ icon_state = "ps_bunny"
+
diff --git a/code/modules/detective_work/footprints_and_rag.dm b/code/modules/detective_work/footprints_and_rag.dm
index 31f9e66255b..b3c45c0f4a1 100644
--- a/code/modules/detective_work/footprints_and_rag.dm
+++ b/code/modules/detective_work/footprints_and_rag.dm
@@ -21,6 +21,7 @@
can_be_placed_into = null
flags = NOBLUDGEON
container_type = OPENCONTAINER
+ has_lid = FALSE
var/wipespeed = 30
/obj/item/reagent_containers/glass/rag/attack(atom/target as obj|turf|area, mob/user as mob , flag)
diff --git a/code/modules/power/singularity/generator.dm b/code/modules/power/singularity/generator.dm
index 69153cb4d89..6b76b0c9dbb 100644
--- a/code/modules/power/singularity/generator.dm
+++ b/code/modules/power/singularity/generator.dm
@@ -1,5 +1,5 @@
/////SINGULARITY SPAWNER
-/obj/machinery/the_singularitygen/
+/obj/machinery/the_singularitygen
name = "Gravitational Singularity Generator"
desc = "An odd device which produces a Gravitational Singularity when set up."
icon = 'icons/obj/singularity.dmi'
diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm
index 258bf98468d..6d58e42d539 100644
--- a/code/modules/reagents/reagent_containers.dm
+++ b/code/modules/reagents/reagent_containers.dm
@@ -10,6 +10,7 @@
var/list/list_reagents = null
var/spawned_disease = null
var/disease_amount = 20
+ var/has_lid = FALSE // Used for containers where we want to put lids on and off
/obj/item/reagent_containers/verb/set_APTFT() //set amount_per_transfer_from_this
set name = "Set transfer amount"
@@ -49,6 +50,14 @@
..()
/obj/item/reagent_containers/attack_self(mob/user)
+ if(has_lid)
+ if(is_open_container())
+ to_chat(usr, "You put the lid on [src].")
+ container_type ^= REFILLABLE | DRAINABLE
+ else
+ to_chat(usr, "You take the lid off [src].")
+ container_type |= REFILLABLE | DRAINABLE
+ update_icon()
return
// this prevented pills, food, and other things from being picked up by bags.
diff --git a/code/modules/reagents/reagent_containers/glass_containers.dm b/code/modules/reagents/reagent_containers/glass_containers.dm
index 20687a6b98c..23ec5f5cadb 100644
--- a/code/modules/reagents/reagent_containers/glass_containers.dm
+++ b/code/modules/reagents/reagent_containers/glass_containers.dm
@@ -12,6 +12,7 @@
possible_transfer_amounts = list(5,10,15,25,30,50)
volume = 50
container_type = OPENCONTAINER
+ has_lid = TRUE
var/label_text = ""
// the fucking asshole who designed this can go die in a fire - Iamgoofball
@@ -55,16 +56,6 @@
if(!is_open_container())
to_chat(user, "Airtight lid seals it completely.")
-/obj/item/reagent_containers/glass/attack_self()
- ..()
- if(is_open_container())
- to_chat(usr, "You put the lid on [src].")
- container_type ^= REFILLABLE | DRAINABLE
- else
- to_chat(usr, "You take the lid off [src].")
- container_type |= REFILLABLE | DRAINABLE
- update_icon()
-
/obj/item/reagent_containers/glass/afterattack(obj/target, mob/user, proximity)
if(!proximity)
return
diff --git a/html/changelogs/AutoChangeLog-pr-10689.yml b/html/changelogs/AutoChangeLog-pr-10689.yml
new file mode 100644
index 00000000000..e7eadf8c8d6
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10689.yml
@@ -0,0 +1,4 @@
+author: "AzuleUtama"
+delete-after: True
+changes:
+ - bugfix: "Damp rags no longer have a lid, and must remain inferior to other containers."
diff --git a/html/changelogs/AutoChangeLog-pr-10699.yml b/html/changelogs/AutoChangeLog-pr-10699.yml
new file mode 100644
index 00000000000..aad953cfd70
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10699.yml
@@ -0,0 +1,4 @@
+author: "datlo"
+delete-after: True
+changes:
+ - tweak: "Reduced the cost of plasteel bomb frame crafting to 3 plasteel sheets (from 10)"
diff --git a/html/changelogs/AutoChangeLog-pr-10711.yml b/html/changelogs/AutoChangeLog-pr-10711.yml
new file mode 100644
index 00000000000..8c27fa39178
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10711.yml
@@ -0,0 +1,4 @@
+author: "Aurorablade"
+delete-after: True
+changes:
+ - rscadd: "Pineapplesalad fluff item"
diff --git a/html/changelogs/AutoChangeLog-pr-10712.yml b/html/changelogs/AutoChangeLog-pr-10712.yml
new file mode 100644
index 00000000000..de32217ca45
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10712.yml
@@ -0,0 +1,4 @@
+author: "blinkdog"
+delete-after: True
+changes:
+ - bugfix: "Normalized some paths in the code tree"
diff --git a/html/changelogs/AutoChangeLog-pr-10715.yml b/html/changelogs/AutoChangeLog-pr-10715.yml
new file mode 100644
index 00000000000..d06039579c3
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10715.yml
@@ -0,0 +1,4 @@
+author: "datlo"
+delete-after: True
+changes:
+ - rscadd: "Added emergency oxygen grenades to atmospherics lockers and the cargo emergency equipment crate."
diff --git a/html/changelogs/AutoChangeLog-pr-10716.yml b/html/changelogs/AutoChangeLog-pr-10716.yml
new file mode 100644
index 00000000000..2ea54d8769d
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10716.yml
@@ -0,0 +1,4 @@
+author: "warior4356"
+delete-after: True
+changes:
+ - bugfix: "Drills now properly stop when turned off."
diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi
index c7853d6437d..0a34c22f6ca 100644
Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ
diff --git a/icons/obj/custom_items.dmi b/icons/obj/custom_items.dmi
index abd4617cf79..e2a481d4836 100644
Binary files a/icons/obj/custom_items.dmi and b/icons/obj/custom_items.dmi differ
diff --git a/icons/obj/grenade.dmi b/icons/obj/grenade.dmi
index e1b2164a39a..505305d4ede 100644
Binary files a/icons/obj/grenade.dmi and b/icons/obj/grenade.dmi differ