diff --git a/code/game/objects/structures/medkit.dm b/code/game/objects/structures/medkit.dm
new file mode 100644
index 00000000..4d063031
--- /dev/null
+++ b/code/game/objects/structures/medkit.dm
@@ -0,0 +1,164 @@
+///Reuses fire extinguisher cabinet wall mount code to create an equivalent for medkits. Honestly not sure how most of this works beyond that it does work.
+
+//structure code
+/obj/structure/medkit_cabinet
+ name = "Medkit Cabinet"
+ desc = "A small wall mounted cabinet designed to hold a medical kit."
+ icon = 'icons/obj/wallmounts.dmi'
+ icon_state = "medkit_closed"
+ anchored = TRUE
+ density = FALSE
+ max_integrity = 200
+ integrity_failure = 50
+ var/obj/item/storage/firstaid/regular/stored_medkit
+ var/opened = FALSE
+
+//initilization stuff for when map is loading, think it spawns medkits possibly. Honestly not sure what it does.
+/obj/structure/medkit_cabinet/Initialize(mapload, ndir, building)
+ . = ..()
+ if(building)
+ setDir(ndir)
+ pixel_x = (dir & 3)? 0 : (dir == 4 ? -27 : 27)
+ pixel_y = (dir & 3)? (dir ==1 ? -30 : 30) : 0
+ opened = TRUE
+ icon_state = "medkit_empty"
+ else
+ stored_medkit = new /obj/item/storage/firstaid/regular(src)
+
+/obj/structure/medkit_cabinet/examine(mob/user)
+ ..()
+ to_chat(user, "Alt-click to [opened ? "close":"open"] it.")
+
+/obj/structure/medkit_cabinet/Destroy()
+ if(stored_medkit)
+ qdel(stored_medkit)
+ stored_medkit = null
+ return ..()
+
+//code from fire extinguishers, doesn't apply here so far as I can tell so commented out.
+obj/structure/medkit_cabinet/contents_explosion(severity, target)
+ if(stored_medkit)
+ stored_medkit.ex_act(severity, target)
+
+/obj/structure/medkit_cabinet/handle_atom_del(atom/A)
+ if(A == stored_medkit)
+ stored_medkit = null
+ update_icon()
+
+//disassembly code
+/obj/structure/medkit_cabinet/attackby(obj/item/I, mob/user, params)
+ if(istype(I, /obj/item/wrench) && !stored_medkit)
+ to_chat(user, "You start unsecuring [name]...")
+ I.play_tool_sound(src)
+ if(I.use_tool(src, user, 60))
+ playsound(loc, 'sound/items/deconstruct.ogg', 50, 1)
+ to_chat(user, "You unsecure [name].")
+ deconstruct(TRUE)
+ return
+
+ if(iscyborg(user) || isalien(user))
+ return
+ if(istype(I, /obj/item/storage/firstaid))
+ if(!stored_medkit && opened)
+ if(!user.transferItemToLoc(I, src))
+ return
+ stored_medkit = I
+ to_chat(user, "You place [I] in [src].")
+ update_icon()
+ return TRUE
+ else
+ toggle_cabinet(user)
+ else if(user.a_intent != INTENT_HARM)
+ toggle_cabinet(user)
+ else
+ return ..()
+
+//storing and removing medkits.
+/obj/structure/medkit_cabinet/attack_hand(mob/user)
+ . = ..()
+ if(.)
+ return
+ if(iscyborg(user) || isalien(user))
+ return
+ if(stored_medkit)
+ user.put_in_hands(stored_medkit)
+ to_chat(user, "You take [stored_medkit] from [src].")
+ stored_medkit = null
+ if(!opened)
+ opened = 1
+ playsound(loc, 'sound/machines/click.ogg', 15, 1, -3)
+ update_icon()
+ else
+ toggle_cabinet(user)
+
+
+/obj/structure/medkit_cabinet/attack_tk(mob/user)
+ if(stored_medkit)
+ stored_medkit.forceMove(loc)
+ to_chat(user, "You telekinetically remove [stored_medkit] from [src].")
+ stored_medkit = null
+ opened = 1
+ playsound(loc, 'sound/machines/click.ogg', 15, 1, -3)
+ update_icon()
+ else
+ toggle_cabinet(user)
+
+
+/obj/structure/medkit_cabinet/attack_paw(mob/user)
+ return attack_hand(user)
+
+//closes it
+/obj/structure/medkit_cabinet/AltClick(mob/living/user)
+ if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
+ return
+ toggle_cabinet(user)
+
+/obj/structure/medkit_cabinet/proc/toggle_cabinet(mob/user)
+ if(opened && broken)
+ to_chat(user, "[src] is broken open.")
+ else
+ playsound(loc, 'sound/machines/click.ogg', 15, 1, -3)
+ opened = !opened
+ update_icon()
+
+//sprite code
+/obj/structure/medkit_cabinet/update_icon()
+ if(!opened)
+ icon_state = "medkit_closed"
+ return
+ if(stored_medkit)
+ if(istype(stored_medkit, /obj/item/storage/firstaid))
+ icon_state = "medkit_white"
+ else
+ icon_state = "medkit_white"
+ else
+ icon_state = "medkit_empty"
+
+//drops medkit when busted
+/obj/structure/medkit_cabinet/obj_break(damage_flag)
+ if(!broken && !(flags_1 & NODECONSTRUCT_1))
+ broken = 1
+ opened = 1
+ if(stored_medkit)
+ stored_medkit.forceMove(loc)
+ stored_medkit = null
+ update_icon()
+
+//I think this is the code to determine mats you get out of it?
+/obj/structure/medkit_cabinet/deconstruct(disassembled = TRUE)
+ if(!(flags_1 & NODECONSTRUCT_1))
+ if(disassembled)
+ new /obj/item/wallframe/medkit_cabinet(loc)
+ else
+ new /obj/item/stack/sheet/metal (loc, 2)
+ if(stored_medkit)
+ stored_medkit.forceMove(loc)
+ stored_medkit = null
+ qdel(src)
+
+//wall mount to put it on a wall
+/obj/item/wallframe/medkit_cabinet
+ name = "Medkit wall frame."
+ desc = "Used for building wall-mounted medkit cabinets."
+ icon_state = "medkit"
+ result_path = /obj/structure/medkit_cabinet
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index 9bbe7914..e3d2e14a 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -339,7 +339,7 @@
death()
-/mob/living/incapacitated(ignore_restraints, ignore_grab, ignore_stasis)
+/mob/living/incapacitated(ignore_restraints, ignore_grab)
if(stat || IsUnconscious() || IsStun() || IsKnockdown() || recoveringstam || (!ignore_restraints && restrained(ignore_grab))) // CIT CHANGE - adds recoveringstam check here
return TRUE
@@ -603,7 +603,7 @@
..(pressure_difference, direction, pressure_resistance_prob_delta)
/mob/living/can_resist()
- return !((next_move > world.time) || incapacitated(ignore_restraints = TRUE, ignore_stasis= TRUE))
+ return !((next_move > world.time) || incapacitated(ignore_restraints = TRUE))
/mob/living/verb/resist()
set name = "Resist"
@@ -1011,8 +1011,6 @@
var/has_legs = get_num_legs()
var/has_arms = get_num_arms()
var/ignore_legs = get_leg_ignore()
- var/in_stasis = IsInStasis()
- var/canmove = !buckled && (pulledby) && !chokehold && !IsFrozen() && !in_stasis && (has_arms || ignore_legs || has_legs)
var/pinned = resting && pulledby && pulledby.grab_state >= GRAB_AGGRESSIVE // Cit change - adds pinning for aggressive-grabbing people on the ground
if(ko || move_and_fall || IsStun() || chokehold) // Cit change - makes resting not force you to drop everything
drop_all_held_items()
diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm
index 27852b27..273ff526 100644
--- a/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm
+++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm
@@ -65,6 +65,15 @@
///Medical//
////////////
+
+/datum/design/medkit
+ name = "Medkit Cabinent"
+ id = "medkit_cabinet"
+ build_type = AUTOLATHE | PROTOLATHE
+ materials = list(MAT_METAL = 4000)
+ build_path = /obj/item/wallframe/medkit_cabinet
+ category = list("initial", "Medical")
+
/datum/design/scalpel
name = "Scalpel"
id = "scalpel"
diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm
index 389a5650..c82f46fe 100644
--- a/code/modules/research/techweb/all_nodes.dm
+++ b/code/modules/research/techweb/all_nodes.dm
@@ -11,7 +11,7 @@
design_ids = list("basic_matter_bin", "basic_cell", "basic_scanning", "basic_capacitor", "basic_micro_laser", "micro_mani",
"destructive_analyzer", "circuit_imprinter", "experimentor", "rdconsole", "design_disk", "tech_disk", "rdserver", "rdservercontrol", "mechfab",
"space_heater", "xlarge_beaker", "sec_rshot", "sec_bshot", "sec_slug", "sec_Islug", "sec_dart", "sec_38", "sec_38lethal",
- "rglass","plasteel","plastitanium","plasmaglass","plasmareinforcedglass","titaniumglass","plastitaniumglass","chem_pack")
+ "rglass","plasteel","plastitanium","plasmaglass","plasmareinforcedglass","titaniumglass","plastitaniumglass","chem_pack","medkit_cabinet")
/datum/techweb_node/mmi
id = "mmi"
diff --git a/icons/obj/wallframe.dmi b/icons/obj/wallframe.dmi
index 70149901..58170d0c 100644
Binary files a/icons/obj/wallframe.dmi and b/icons/obj/wallframe.dmi differ
diff --git a/icons/obj/wallmounts.dmi b/icons/obj/wallmounts.dmi
index 67d05103..5cbaf8de 100644
Binary files a/icons/obj/wallmounts.dmi and b/icons/obj/wallmounts.dmi differ
diff --git a/tgstation.dme b/tgstation.dme
index c80bb0fb..6d9a2168 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -994,6 +994,7 @@
#include "code\game\objects\structures\life_candle.dm"
#include "code\game\objects\structures\loom.dm"
#include "code\game\objects\structures\manned_turret.dm"
+#include "code\game\objects\structures\medkit.dm"
#include "code\game\objects\structures\memorial.dm"
#include "code\game\objects\structures\mineral_doors.dm"
#include "code\game\objects\structures\mirror.dm"