diff --git a/code/__DEFINES/preferences.dm b/code/__DEFINES/preferences.dm
index fa7e35f4..a2f57313 100644
--- a/code/__DEFINES/preferences.dm
+++ b/code/__DEFINES/preferences.dm
@@ -30,6 +30,7 @@
#define CHAT_GHOSTPDA (1<<8)
#define CHAT_GHOSTRADIO (1<<9)
#define CHAT_LOOC (1<<10)
+#define SHOW_TYPING (1<<11)
#define TOGGLES_DEFAULT_CHAT (CHAT_OOC|CHAT_DEAD|CHAT_GHOSTEARS|CHAT_GHOSTSIGHT|CHAT_PRAYER|CHAT_RADIO|CHAT_PULLR|CHAT_GHOSTWHISPER|CHAT_GHOSTPDA|CHAT_GHOSTRADIO|CHAT_LOOC)
diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm
index 8a6fce0d..351411ce 100644
--- a/code/__HELPERS/text.dm
+++ b/code/__HELPERS/text.dm
@@ -101,6 +101,7 @@
else
return trim(html_encode(name), max_length)
+
//Filters out undesirable characters from names
/proc/reject_bad_name(t_in, allow_numbers=0, max_length=MAX_NAME_LEN)
if(!t_in || length(t_in) > max_length)
diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index fb6eda84..e9fd4a06 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -304,6 +304,15 @@ GENE SCANNER
for(var/obj/item/bodypart/org in damaged)
msg += "\t\t[capitalize(org.name)]: [(org.brute_dam > 0) ? "[org.brute_dam]" : "0"]-[(org.burn_dam > 0) ? "[org.burn_dam]" : "0"]\n"
+ //Bones broken report! Hyperstation 13
+ if(iscarbon(M) && mode == 1)
+ var/mob/living/carbon/C = M
+ for(var/X in C.bodyparts)
+ var/obj/item/bodypart/LB = X
+ var/broken = LB.broken
+ if(broken == 1)
+ msg += "\tSubjects [LB.name] is fractured!\n"
+
//Organ damages report
if(ishuman(M))
var/mob/living/carbon/human/H = M
diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm
index 745974cc..794e3e76 100644
--- a/code/game/objects/items/stacks/medical.dm
+++ b/code/game/objects/items/stacks/medical.dm
@@ -15,6 +15,7 @@
var/heal_burn = 0
var/stop_bleeding = 0
var/self_delay = 50
+ var/fix_bone= 0
/obj/item/stack/medical/attack(mob/living/M, mob/user)
@@ -93,6 +94,9 @@
if(affecting.status == BODYPART_ORGANIC) //Limb must be organic to be healed - RR
if(affecting.heal_damage(heal_brute, heal_burn))
C.update_damage_overlays()
+ if (fix_bone) //Fix broken bones on targeted limb
+ affecting.broken = 0
+ affecting.disabled = 0
else
to_chat(user, "Medicine won't work on a robotic limb!")
else
@@ -100,7 +104,19 @@
use(1)
+/obj/item/stack/medical/plaster_gauze
+ name = "plaster gauze"
+ gender = PLURAL
+ singular_name = "plaster gauze"
+ desc = "A roll of plaster of paris that is extremely effective at aiding bone fratcutres, but does not heal wounds."
+ icon_state = "pgauze"
+ self_delay = 300
+ max_amount = 10
+ fix_bone = 1
+/obj/item/stack/medical/plaster_gauze/suicide_act(mob/user)
+ user.visible_message("[user] is bludgeoning [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!")
+ return (BRUTELOSS)
/obj/item/stack/medical/bruise_pack
name = "bruise pack"
diff --git a/code/game/objects/items/storage/firstaid.dm b/code/game/objects/items/storage/firstaid.dm
index 312ef354..6afa6541 100644
--- a/code/game/objects/items/storage/firstaid.dm
+++ b/code/game/objects/items/storage/firstaid.dm
@@ -30,6 +30,7 @@
/obj/item/storage/firstaid/regular/PopulateContents()
if(empty)
return
+ new /obj/item/stack/medical/plaster_gauze(src)
new /obj/item/stack/medical/gauze(src)
new /obj/item/stack/medical/bruise_pack(src)
new /obj/item/stack/medical/bruise_pack(src)
@@ -337,7 +338,7 @@
/obj/item/storage/pill_bottle/penis_enlargement/PopulateContents()
for(var/i in 1 to 7)
new /obj/item/reagent_containers/pill/penis_enlargement(src)
-
+
/obj/item/storage/pill_bottle/breast_enlargement
name = "breast enlargement pills"
desc = "Made by Fermichem - They have a woman with breasts larger than she is on them. The warming states not to take more than 10u at a time."
diff --git a/code/modules/mob/living/carbon/damage_procs.dm b/code/modules/mob/living/carbon/damage_procs.dm
index cc0c0d74..89bce14f 100644
--- a/code/modules/mob/living/carbon/damage_procs.dm
+++ b/code/modules/mob/living/carbon/damage_procs.dm
@@ -112,6 +112,7 @@
return
adjustStaminaLoss(diff, updating, forced)
+
/** adjustOrganLoss
* inputs: slot (organ slot, like ORGAN_SLOT_HEART), amount (damage to be done), and maximum (currently an arbitrarily large number, can be set so as to limit damage)
* outputs:
diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm
index 82a241ef..7232944b 100644
--- a/code/modules/mob/living/carbon/human/human_defense.dm
+++ b/code/modules/mob/living/carbon/human/human_defense.dm
@@ -702,7 +702,7 @@
else if(burndamage > 0)
status += LB.light_burn_msg
if(broken == 1)
- status = "broken"
+ status = "fractured"
if(status == "")
status = "OK"
var/no_damage
diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm
index 7c6d8e08..da8efcab 100644
--- a/code/modules/surgery/bodyparts/bodyparts.dm
+++ b/code/modules/surgery/bodyparts/bodyparts.dm
@@ -83,6 +83,7 @@
/obj/item/bodypart/blob_act()
take_damage(max_damage)
+
/obj/item/bodypart/Destroy()
if(owner)
owner.bodyparts -= src
diff --git a/code/modules/surgery/bodyparts/dismemberment.dm b/code/modules/surgery/bodyparts/dismemberment.dm
index 4e2b81dc..32d790d8 100644
--- a/code/modules/surgery/bodyparts/dismemberment.dm
+++ b/code/modules/surgery/bodyparts/dismemberment.dm
@@ -358,6 +358,7 @@
L.burn_dam = 0
L.brutestate = 0
L.burnstate = 0
+ L.broken = 0
L.attach_limb(src, 1)
return 1
diff --git a/icons/obj/stack_objects.dmi b/icons/obj/stack_objects.dmi
index ac2d4237..7fa9f24a 100644
Binary files a/icons/obj/stack_objects.dmi and b/icons/obj/stack_objects.dmi differ