diff --git a/code/datums/organs/organ_external.dm b/code/datums/organs/organ_external.dm
index b34631fe142..06f46ed1927 100644
--- a/code/datums/organs/organ_external.dm
+++ b/code/datums/organs/organ_external.dm
@@ -441,7 +441,7 @@
if(H)
var/lol = pick(cardinal)
step(H,lol)
-
+
destspawn = 1
if(status & ORGAN_ROBOT)
owner.visible_message("\red \The [owner]'s [display_name] explodes violently!",\
@@ -607,6 +607,25 @@
body_part = HEAD
var/disfigured = 0
+ take_damage(brute, burn, sharp, used_weapon = null, list/forbidden_limbs = list())
+ ..(brute, burn, sharp, used_weapon, forbidden_limbs)
+ if (brute_dam > 40)
+ if (prob(50))
+ disfigure("brute")
+ if (burn_dam > 40)
+ disfigure("burn")
+
+ proc/disfigure(var/type = "brute")
+ if(type == "brute")
+ owner.visible_message("\red You hear a sickening cracking sound coming from \the [owner]'s face.", \
+ "\red Your face becomes unrecognizible mangled mess!", \
+ "You hear a sickening crack.")
+ else
+ owner.visible_message("\red [owner]'s face melts away, turning into mangled mess!", \
+ "\red Your face melts off!", \
+ "You hear a sickening sizzle.")
+ disfigured = 1
+
/datum/organ/external/l_arm
name = "l_arm"
display_name = "left arm"
diff --git a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm
index 447913d225b..818b0a53017 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm
@@ -3,6 +3,9 @@
desc = "You sit in this. Either by will or force."
icon_state = "chair"
+/obj/structure/stool/MouseDrop(atom/over_object)
+ return
+
/obj/structure/stool/bed/chair/New()
if(anchored)
src.verbs -= /atom/movable/verb/pull
diff --git a/code/game/objects/structures/stool_bed_chair_nest/stools.dm b/code/game/objects/structures/stool_bed_chair_nest/stools.dm
index 7c40b55bdb4..d2348228bbc 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/stools.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/stools.dm
@@ -32,4 +32,43 @@
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
new /obj/item/stack/sheet/metal(src.loc)
del(src)
- return
\ No newline at end of file
+ return
+
+/obj/structure/stool/MouseDrop(atom/over_object)
+ if (istype(over_object, /mob/living/carbon/human))
+ var/mob/living/carbon/human/H = over_object
+ var/obj/item/weapon/stool/S = new/obj/item/weapon/stool()
+ S.origin = src
+ src.loc = S
+ H.put_in_hands(S)
+ H.visible_message("\red [H] grabs [src] from the floor!", "\red You grab [src] from the floor!")
+
+/obj/item/weapon/stool
+ name = "stool"
+ desc = "Uh-hoh, bar is heating up."
+ icon = 'icons/obj/objects.dmi'
+ icon_state = "stool"
+ force = 10
+ throwforce = 20
+ w_class = 5.0
+ var/obj/structure/stool/origin = null
+
+/obj/item/weapon/stool/attack_self(mob/user as mob)
+ ..()
+ origin.loc = get_turf(src)
+ user.u_equip(src)
+ user.visible_message("\blue [user] puts [src] down.", "\blue You put [src] down.")
+ del src
+
+/obj/item/weapon/stool/attack(mob/M as mob, mob/user as mob)
+ if (prob(5) && istype(M,/mob/living))
+ user.visible_message("\red [user] breaks [src] over [M]'s back!.")
+ user.u_equip(src)
+ var/obj/item/stack/sheet/metal/m = new/obj/item/stack/sheet/metal
+ m.loc = get_turf(src)
+ del src
+ var/mob/living/T = M
+ T.Weaken(10)
+ T.apply_damage(20)
+ return
+ ..()
diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm
index db8bfa183a1..1f0bc8678ad 100644
--- a/code/game/objects/structures/tables_racks.dm
+++ b/code/game/objects/structures/tables_racks.dm
@@ -333,14 +333,23 @@
/obj/structure/table/attackby(obj/item/weapon/W as obj, mob/user as mob)
if (istype(W, /obj/item/weapon/grab) && get_dist(src,user)<2)
var/obj/item/weapon/grab/G = W
- if(G.state<2)
- user << "\red You need a better grip to do that!"
+ if (istype(G.affecting, /mob/living))
+ var/mob/living/M = G.affecting
+ if (G.state < 2)
+ if(user.a_intent == "hurt")
+ if (prob(5)) M.Weaken(3)
+ M.apply_damage(10)
+ visible_message("\red [G.assailant] slams [G.affecting] against \the [src]!")
+ playsound(src.loc, 'sound/weapons/tablehit1.ogg', 50, 1)
+ else
+ user << "\red You need a better grip to do that!"
+ return
+ else
+ G.affecting.loc = src.loc
+ G.affecting.Weaken(5)
+ visible_message("\red [G.assailant] puts [G.affecting] on \the [src].")
+ del(W)
return
- G.affecting.loc = src.loc
- G.affecting.Weaken(5)
- visible_message("\red [G.assailant] puts [G.affecting] on the table.")
- del(W)
- return
if (istype(W, /obj/item/weapon/wrench))
user << "\blue Now disassembling table"
diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm
index 8d0074d0f6a..8a9bb8d0868 100644
--- a/code/game/objects/structures/window.dm
+++ b/code/game/objects/structures/window.dm
@@ -209,6 +209,30 @@
/obj/structure/window/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(!istype(W)) return//I really wish I did not need this
+
+ if (istype(W, /obj/item/weapon/grab) && get_dist(src,user)<2)
+ var/obj/item/weapon/grab/G = W
+ if (istype(G.affecting, /mob/living))
+ var/mob/living/M = G.affecting
+ var/state = G.state
+ del(W) //gotta delete it here because if window breaks, it won't get deleted
+ switch (state)
+ if(1)
+ M.apply_damage(10)
+ hit(10)
+ visible_message("\red [user] slams [M] against \the [src]!")
+ if(2)
+ M.Weaken(2)
+ M.apply_damage(15)
+ hit(25)
+ visible_message("\red [user] bashes [M] against \the [src]!")
+ if(3)
+ M.Weaken(10)
+ M.apply_damage(25)
+ hit(50)
+ visible_message("\red [user] crushes [M] against \the [src]!")
+ return
+
if (istype(W, /obj/item/weapon/screwdriver))
if(reinf && state >= 1)
state = 3 - state
@@ -438,4 +462,4 @@
/obj/structure/window/reinforced/tinted/frosted
icon_state = "fwindow"
- name = "frosted window"
+ name = "frosted window"
diff --git a/icons/mob/items_lefthand.dmi b/icons/mob/items_lefthand.dmi
index a12488c72f6..8dac28f7264 100644
Binary files a/icons/mob/items_lefthand.dmi and b/icons/mob/items_lefthand.dmi differ
diff --git a/icons/mob/items_righthand.dmi b/icons/mob/items_righthand.dmi
index 573b818c731..15c2938bbf1 100644
Binary files a/icons/mob/items_righthand.dmi and b/icons/mob/items_righthand.dmi differ