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