mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-20 20:45:28 +01:00
seven slot medkits as god intended - removes splints, returns splinting behavior to gauze (#22975)
* and the good lord said no more splints * typo bruh * tim allen aueeuuegueuegh * works on my machine * ci jumpscare --------- Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com> Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
This commit is contained in:
@@ -725,11 +725,6 @@
|
||||
pixel_x = 5;
|
||||
name = "high quality wound number"
|
||||
},
|
||||
/obj/item/stack/medical/splint/improvised{
|
||||
pixel_y = -2;
|
||||
pixel_x = -3;
|
||||
amount = 6
|
||||
},
|
||||
/turf/open/floor/stone/icemoon,
|
||||
/area/ruin/unpowered/primitive_catgirl_den)
|
||||
"EC" = (
|
||||
|
||||
@@ -2045,7 +2045,6 @@
|
||||
"Rf" = (
|
||||
/obj/structure/cable,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4,
|
||||
/obj/item/stack/medical/splint/improvised,
|
||||
/turf/open/floor/iron/airless,
|
||||
/area/ruin/space/has_grav/shuttle8532crewquarters)
|
||||
"RA" = (
|
||||
|
||||
@@ -141,7 +141,7 @@ GLOBAL_LIST_INIT(global_all_wound_types, list(
|
||||
/// If this wound marks the limb as being allowed to have gauze applied
|
||||
#define ACCEPTS_GAUZE (1<<4)
|
||||
//SKYRAT EDIT ADDITION BEGIN - MEDICAL
|
||||
/// If this wound marks the limb as being allowed to have splints applied
|
||||
/// If this wound marks the limb as being allowed to have gauze applied as a splint
|
||||
#define ACCEPTS_SPLINT (1<<5)
|
||||
//SKYRAT EDIT ADDITION END
|
||||
|
||||
|
||||
@@ -144,8 +144,7 @@
|
||||
|
||||
/obj/item/stack/medical/gauze
|
||||
name = "medical gauze"
|
||||
//desc = "A roll of elastic cloth, perfect for stabilizing all kinds of wounds, from cuts and burns, to broken bones. " //ORIGINAL
|
||||
desc = "A roll of elastic cloth, perfect for stabilizing all kinds of slashes, punctures and burns. " //SKYRAT EDIT CHANGE - MEDICAL
|
||||
desc = "A roll of elastic cloth, perfect for stabilizing all kinds of wounds, from cuts and burns, to broken bones. "
|
||||
gender = PLURAL
|
||||
singular_name = "medical gauze"
|
||||
icon_state = "gauze"
|
||||
@@ -160,7 +159,6 @@
|
||||
splint_factor = 0.7
|
||||
burn_cleanliness_bonus = 0.35
|
||||
merge_type = /obj/item/stack/medical/gauze
|
||||
var/gauze_type = /datum/bodypart_aid/gauze //SKYRAT EDIT ADDITION - MEDICAL
|
||||
|
||||
// gauze is only relevant for wounds, which are handled in the wounds themselves
|
||||
/obj/item/stack/medical/gauze/try_heal(mob/living/patient, mob/user, silent)
|
||||
@@ -186,16 +184,9 @@
|
||||
patient.balloon_alert(user, "can't heal those!")
|
||||
return
|
||||
|
||||
//SKYRAT EDIT CHANGE BEGIN - MEDICAL
|
||||
/*
|
||||
if(limb.current_gauze && (limb.current_gauze.absorption_capacity * 1.2 > absorption_capacity)) // ignore if our new wrap is < 20% better than the current one, so someone doesn't bandage it 5 times in a row
|
||||
patient.balloon_alert(user, pick("already bandaged!", "bandage is clean!")) // good enough
|
||||
return
|
||||
*/
|
||||
if(limb.current_gauze)
|
||||
balloon_alert(user, "already bandaged!")
|
||||
return
|
||||
//SKYRAT EDIT CHANGE END
|
||||
|
||||
if(HAS_TRAIT(woundies, TRAIT_WOUND_SCANNED))
|
||||
treatment_delay *= 0.5
|
||||
@@ -247,7 +238,6 @@
|
||||
absorption_rate = 0.075
|
||||
absorption_capacity = 4
|
||||
merge_type = /obj/item/stack/medical/gauze/improvised
|
||||
gauze_type = /datum/bodypart_aid/gauze/improvised //SKYRAT EDIT ADDITION - MEDICAL
|
||||
|
||||
/*
|
||||
The idea is for the following medical devices to work like a hybrid of the old brute packs and tend wounds,
|
||||
|
||||
@@ -92,7 +92,6 @@
|
||||
return
|
||||
var/static/items_inside = list(
|
||||
/obj/item/stack/medical/gauze = 1,
|
||||
/obj/item/stack/medical/splint = 1, //SKYRAT EDIT ADDITION - MEDICAL
|
||||
/obj/item/stack/medical/suture = 2,
|
||||
/obj/item/stack/medical/mesh = 2,
|
||||
/obj/item/reagent_containers/hypospray/medipen = 1,
|
||||
@@ -111,7 +110,6 @@
|
||||
var/static/items_inside = list(
|
||||
/obj/item/healthanalyzer/simple = 1,
|
||||
/obj/item/stack/medical/gauze = 1,
|
||||
/obj/item/stack/medical/splint = 1, //SKYRAT EDIT ADDITION - MEDICAL
|
||||
/obj/item/stack/medical/suture/emergency = 1,
|
||||
/obj/item/stack/medical/ointment = 1,
|
||||
/obj/item/reagent_containers/hypospray/medipen/ekit = 2,
|
||||
@@ -138,7 +136,6 @@
|
||||
var/static/items_inside = list(
|
||||
/obj/item/healthanalyzer = 1,
|
||||
/obj/item/stack/medical/gauze/twelve = 1,
|
||||
/obj/item/stack/medical/splint/twelve = 1, //SKYRAT EDIT ADDITION - MEDICAL
|
||||
/obj/item/stack/medical/suture = 2,
|
||||
/obj/item/stack/medical/mesh = 2,
|
||||
/obj/item/reagent_containers/hypospray/medipen = 1,
|
||||
@@ -158,7 +155,6 @@
|
||||
return
|
||||
var/static/items_inside = list(
|
||||
/obj/item/stack/medical/gauze = 1,
|
||||
/obj/item/stack/medical/splint = 1, //SKYRAT EDIT ADDITION - MEDICAL
|
||||
/obj/item/stack/medical/bruise_pack = 3,
|
||||
/obj/item/stack/medical/ointment= 3)
|
||||
generate_items_inside(items_inside,src)
|
||||
@@ -250,7 +246,6 @@
|
||||
var/static/items_inside = list(
|
||||
/obj/item/reagent_containers/pill/patch/libital = 3,
|
||||
/obj/item/stack/medical/gauze = 1,
|
||||
/obj/item/stack/medical/splint = 1, //SKYRAT EDIT ADDITION - MEDICAL
|
||||
/obj/item/storage/pill_bottle/probital = 1,
|
||||
/obj/item/reagent_containers/hypospray/medipen/salacid = 1,
|
||||
/obj/item/healthanalyzer/simple = 1,
|
||||
@@ -272,7 +267,6 @@
|
||||
/obj/item/reagent_containers/pill/patch/synthflesh = 3,
|
||||
/obj/item/reagent_containers/hypospray/medipen/atropine = 2,
|
||||
/obj/item/stack/medical/gauze = 1,
|
||||
/obj/item/stack/medical/splint = 1, //SKYRAT EDIT ADDITION - MEDICAL
|
||||
/obj/item/storage/pill_bottle/penacid = 1)
|
||||
generate_items_inside(items_inside,src)
|
||||
|
||||
@@ -300,7 +294,6 @@
|
||||
/obj/item/reagent_containers/pill/patch/aiuri = 4,
|
||||
/obj/item/healthanalyzer/advanced = 1,
|
||||
/obj/item/stack/medical/gauze = 2,
|
||||
/obj/item/stack/medical/splint = 2, //SKYRAT EDIT ADDITION - MEDICAL
|
||||
/obj/item/reagent_containers/hypospray/medipen/atropine = 2,
|
||||
/obj/item/reagent_containers/medigel/sterilizine = 1,
|
||||
/obj/item/surgical_drapes = 1,
|
||||
@@ -333,7 +326,6 @@
|
||||
/obj/item/reagent_containers/pill/patch/aiuri = 3,
|
||||
/obj/item/healthanalyzer/advanced = 1,
|
||||
/obj/item/stack/medical/gauze = 2,
|
||||
/obj/item/stack/medical/splint = 2, //SKYRAT EDIT ADDITION - MEDICAL
|
||||
/obj/item/mod/module/thread_ripper = 1,
|
||||
/obj/item/mod/module/surgical_processor/preloaded = 1,
|
||||
/obj/item/mod/module/defibrillator/combat = 1,
|
||||
|
||||
@@ -35,13 +35,6 @@
|
||||
stock_mult = 3
|
||||
interest_addition = COMPANY_INTEREST_GAIN_PITIFUL
|
||||
|
||||
/datum/armament_entry/company_import/deforest/first_aid/splint
|
||||
item_type = /obj/item/stack/medical/splint/twelve
|
||||
lower_cost = CARGO_CRATE_VALUE * PRICE_FIRST_AID_BASIC_LOWER
|
||||
upper_cost = CARGO_CRATE_VALUE * PRICE_FIRST_AID_BASIC_HIGHER
|
||||
stock_mult = 3
|
||||
interest_addition = COMPANY_INTEREST_GAIN_PITIFUL
|
||||
|
||||
/datum/armament_entry/company_import/deforest/first_aid/bruise_pack
|
||||
item_type = /obj/item/stack/medical/bruise_pack
|
||||
lower_cost = CARGO_CRATE_VALUE * PRICE_FIRST_AID_MEDIUM_LOWER
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
if(empty)
|
||||
return
|
||||
new /obj/item/stack/medical/gauze(src)
|
||||
new /obj/item/stack/medical/splint(src)
|
||||
new /obj/item/defibrillator/compact/loaded(src)
|
||||
new /obj/item/reagent_containers/hypospray/combat(src)
|
||||
new /obj/item/stack/medical/mesh/advanced(src)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
current_gauze = new new_gauze.gauze_type(src)
|
||||
new_gauze.use(1)
|
||||
|
||||
/obj/item/bodypart/proc/apply_splint(obj/item/stack/medical/splint/new_splint)
|
||||
/obj/item/bodypart/proc/apply_splint(obj/item/stack/medical/gauze/new_splint)
|
||||
if(!istype(new_splint) || current_splint)
|
||||
return
|
||||
current_splint = new new_splint.splint_type(src)
|
||||
|
||||
@@ -96,7 +96,7 @@
|
||||
name = "splint"
|
||||
overlay_prefix = "splint"
|
||||
desc_prefix = "fastened"
|
||||
stack_to_drop = /obj/item/stack/medical/splint
|
||||
stack_to_drop = /obj/item/stack/medical/gauze
|
||||
/// How effective are we in keeping the bodypart rigid
|
||||
var/splint_factor = 0.3
|
||||
/// Whether the splint prevents the limb from being disabled, with a ruptured tendon or a shattered bone
|
||||
@@ -133,15 +133,9 @@
|
||||
name = "improvised splint"
|
||||
splint_factor = 0.6
|
||||
helps_disabled= FALSE
|
||||
stack_to_drop = /obj/item/stack/medical/splint/improvised
|
||||
stack_to_drop = /obj/item/stack/medical/gauze/improvised
|
||||
overlay_prefix = "splint_improv"
|
||||
|
||||
/datum/bodypart_aid/splint/tribal
|
||||
name = "tribal splint"
|
||||
splint_factor = 0.5
|
||||
stack_to_drop = /obj/item/stack/medical/splint/tribal
|
||||
overlay_prefix = "splint_tribal"
|
||||
|
||||
/datum/bodypart_aid/gauze
|
||||
name = "gauze"
|
||||
stack_to_drop = /obj/item/stack/medical/gauze
|
||||
@@ -163,6 +157,8 @@
|
||||
/datum/bodypart_aid/gauze/get_description()
|
||||
var/desc
|
||||
switch(absorption_capacity)
|
||||
if(-INFINITY to 0)
|
||||
desc = "unusable"
|
||||
if(0 to 1.25)
|
||||
desc = "nearly ruined"
|
||||
if(1.25 to 2.75)
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
msg += "\t<span class='notice'><i>[t_His] [LB.name] is [current_gauze.desc_prefix] with <a href='?src=[REF(current_gauze)];remove=1'>[current_gauze.get_description()]</a>.</i></span>"
|
||||
if(LB.current_splint)
|
||||
var/datum/bodypart_aid/current_splint = LB.current_splint
|
||||
msg += "\t<span class='notice'><i>[t_His] [LB.name] is [current_splint.desc_prefix] with <a href='?src=[REF(current_splint)];remove=1'>[current_splint.get_description()]</a>.</i></span>"
|
||||
msg += "\t<span class='notice'><i>[t_His] [LB.name] is [current_splint.desc_prefix] with a <a href='?src=[REF(current_splint)];remove=1'>[current_splint.get_description()]</a>.</i></span>"
|
||||
|
||||
if(!any_bodypart_damage)
|
||||
msg += "\t<span class='smallnotice'><i>[t_He] [t_Has] no significantly damaged bodyparts.</i></span>"
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
/datum/crafting_recipe/tribalsplint
|
||||
name = "Tribal Splint"
|
||||
result = /obj/item/stack/medical/splint/tribal
|
||||
time = 30
|
||||
reqs = list(/obj/item/stack/sheet/bone = 2,
|
||||
/obj/item/stack/sheet/sinew = 1)
|
||||
category = CAT_MISC
|
||||
|
||||
/datum/crafting_recipe/improvsplint
|
||||
name = "Improvised Splint"
|
||||
result = /obj/item/stack/medical/splint/improvised
|
||||
time = 30
|
||||
reqs = list(/obj/item/stack/sheet/mineral/wood = 2, /obj/item/stack/sheet/cloth = 2)
|
||||
category = CAT_MISC
|
||||
@@ -0,0 +1,65 @@
|
||||
/obj/item/stack/medical/gauze
|
||||
var/gauze_type = /datum/bodypart_aid/gauze
|
||||
var/splint_type = /datum/bodypart_aid/splint
|
||||
|
||||
/obj/item/stack/medical/gauze/improvised
|
||||
gauze_type = /datum/bodypart_aid/gauze/improvised
|
||||
splint_type = /datum/bodypart_aid/splint/improvised
|
||||
|
||||
// gauze is only relevant for wounds, which are handled in the wounds themselves
|
||||
/obj/item/stack/medical/gauze/try_heal(mob/living/patient, mob/user, silent)
|
||||
|
||||
var/treatment_delay = (user == patient ? self_delay : other_delay)
|
||||
|
||||
var/obj/item/bodypart/limb = patient.get_bodypart(check_zone(user.zone_selected))
|
||||
if(!limb)
|
||||
patient.balloon_alert(user, "missing limb!")
|
||||
return
|
||||
if(!LAZYLEN(limb.wounds))
|
||||
patient.balloon_alert(user, "no wounds!") // good problem to have imo
|
||||
return
|
||||
|
||||
var/gauzeable_wound = FALSE
|
||||
var/splintable_wound = FALSE
|
||||
var/datum/wound/woundies
|
||||
for(var/i in limb.wounds)
|
||||
woundies = i
|
||||
if(woundies.wound_flags & (ACCEPTS_GAUZE | ACCEPTS_SPLINT))
|
||||
if(woundies.wound_flags & ACCEPTS_GAUZE)
|
||||
gauzeable_wound = TRUE
|
||||
continue
|
||||
if(woundies.wound_flags & ACCEPTS_SPLINT)
|
||||
splintable_wound = TRUE
|
||||
continue
|
||||
if(!gauzeable_wound && !splintable_wound)
|
||||
patient.balloon_alert(user, "can't heal those!")
|
||||
return
|
||||
|
||||
if(limb.current_gauze && gauzeable_wound)
|
||||
gauzeable_wound = FALSE
|
||||
if(limb.current_splint && splintable_wound)
|
||||
splintable_wound = FALSE
|
||||
if(!gauzeable_wound && !splintable_wound)
|
||||
balloon_alert(user, "already bandaged!")
|
||||
return
|
||||
|
||||
if(HAS_TRAIT(woundies, TRAIT_WOUND_SCANNED))
|
||||
treatment_delay *= 0.5
|
||||
if(user == patient)
|
||||
user.visible_message(span_warning("[user] begins expertly [gauzeable_wound ? "wrapping the wounds on their [limb.plaintext_zone]" : "splinting their [limb.plaintext_zone]"] with [src]..."), span_notice("You keep in mind the indications from the holo-image about your injury, and expertly begin [gauzeable_wound ? "wrapping your wounds" : "splinting your [limb.plaintext_zone]"] with [src]."))
|
||||
else
|
||||
user.visible_message(span_warning("[user] begins expertly [gauzeable_wound ? "wrapping the wounds on [patient]'s [limb.plaintext_zone]" : "splinting [patient]'s [limb.plaintext_zone]"] with [src]..."), span_warning("You begin quickly [gauzeable_wound ? "wrapping the wounds on [patient]'s [limb.plaintext_zone]" : "splinting [patient]'s [limb.plaintext_zone]"] with [src], keeping the holo-image indications in mind..."))
|
||||
else
|
||||
user.visible_message(span_warning("[user] begins [gauzeable_wound ? "wrapping the wounds on [patient]'s [limb.plaintext_zone]" : "splinting [patient]'s [limb.plaintext_zone]"] with [src]..."), span_warning("You begin [gauzeable_wound ? "wrapping the wounds on" : "splinting"] [user == patient ? "your" : "[patient]'s"] [limb.plaintext_zone] with [src]..."))
|
||||
|
||||
if(!do_after(user, treatment_delay, target = patient))
|
||||
return
|
||||
|
||||
user.visible_message("<span class='infoplain'><span class='green'>[user] [gauzeable_wound ? "wraps the wounds on" : "splints"] [user == patient ? "[user.p_their()]" : "[patient]'s"] [limb.plaintext_zone] with [src].</span></span>", "<span class='infoplain'><span class='green'>You [gauzeable_wound ? "wrap the wounds on" : "splint"] [user == patient ? "your" : "[patient]'s"] [limb.plaintext_zone].</span></span>")
|
||||
if(gauzeable_wound)
|
||||
limb.apply_gauze(src)
|
||||
return
|
||||
if(splintable_wound)
|
||||
limb.apply_splint(src)
|
||||
return
|
||||
|
||||
@@ -1,66 +0,0 @@
|
||||
/obj/item/stack/medical/splint
|
||||
name = "medical splint"
|
||||
desc = "Medical splints, designed to fastened a limb with ease, perfect for stabilizing broken bones and torn muscles. "
|
||||
gender = PLURAL
|
||||
singular_name = "medical splint"
|
||||
icon_state = "splint"
|
||||
icon = 'modular_skyrat/modules/medical/icons/stack_medical.dmi'
|
||||
self_delay = 5 SECONDS
|
||||
other_delay = 2 SECONDS
|
||||
max_amount = 12
|
||||
amount = 6
|
||||
grind_results = list(/datum/reagent/carbon = 2)
|
||||
custom_price = PAYCHECK_LOWER * 2
|
||||
merge_type = /obj/item/stack/medical/splint
|
||||
var/splint_type = /datum/bodypart_aid/splint
|
||||
|
||||
/obj/item/stack/medical/splint/try_heal(mob/living/M, mob/user, silent)
|
||||
var/obj/item/bodypart/limb = M.get_bodypart(check_zone(user.zone_selected))
|
||||
if(!limb)
|
||||
to_chat(user, span_notice("There's nothing there to bandage!"))
|
||||
return
|
||||
if(!LAZYLEN(limb.wounds))
|
||||
to_chat(user, span_notice("There's no wounds that require bandaging on [user==M ? "your" : "[M]'s"] [limb.name]!")) // good problem to have imo
|
||||
return
|
||||
|
||||
var/splintable_wound = FALSE
|
||||
for(var/i in limb.wounds)
|
||||
var/datum/wound/woundies = i
|
||||
if(woundies.wound_flags & ACCEPTS_SPLINT)
|
||||
splintable_wound = TRUE
|
||||
break
|
||||
if(!splintable_wound)
|
||||
to_chat(user, span_notice("There's no wounds that require splinting on [user==M ? "your" : "[M]'s"] [limb.name]!")) // good problem to have imo
|
||||
return
|
||||
|
||||
if(limb.current_splint)
|
||||
to_chat(user, span_warning("[user==M ? "Your" : "[M]'s"] [limb.name] is already fastened in a splint!"))
|
||||
return
|
||||
|
||||
user.visible_message(span_warning("[user] begins fastening [M]'s [limb.name] with [src]..."), span_warning("You begin to fasten [user == M ? "your" : "[M]'s"] [limb.name] with [src]..."))
|
||||
if(!do_after(user, (user == M ? self_delay : other_delay), target=M))
|
||||
return
|
||||
|
||||
user.visible_message(span_green("[user] applies [src] to [M]'s [limb.name]."), span_green("You splint [user == M ? "your" : "[M]'s"] [limb.name]."))
|
||||
limb.apply_splint(src)
|
||||
|
||||
/obj/item/stack/medical/splint/twelve
|
||||
amount = 12
|
||||
|
||||
/obj/item/stack/medical/splint/tribal
|
||||
name = "tribal splint"
|
||||
desc = "Bone fastened with sinew, used to keep injured limbs rigid, surprisingly effective."
|
||||
singular_name = "tribal splint"
|
||||
icon_state = "splint_tribal"
|
||||
amount = 1
|
||||
splint_type = /datum/bodypart_aid/splint/tribal
|
||||
merge_type = /obj/item/stack/medical/splint/tribal
|
||||
|
||||
/obj/item/stack/medical/splint/improvised
|
||||
name = "improvised splint"
|
||||
desc = "Crudely made out splints with wood and some cotton sling, you doubt this will be any good."
|
||||
singular_name = "improvised splint"
|
||||
icon_state = "splint_improv"
|
||||
amount = 1
|
||||
splint_type = /datum/bodypart_aid/splint/improvised
|
||||
merge_type = /obj/item/stack/medical/splint/improvised
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 2.6 KiB |
@@ -83,7 +83,6 @@
|
||||
|
||||
/obj/item/storage/medkit/tactical/ntrauma/PopulateContents()
|
||||
new /obj/item/stack/medical/gauze(src)
|
||||
new /obj/item/stack/medical/splint(src)
|
||||
new /obj/item/defibrillator/compact/combat/loaded/nanotrasen(src)
|
||||
new /obj/item/reagent_containers/pill/patch/libital(src)
|
||||
new /obj/item/reagent_containers/pill/patch/libital(src)
|
||||
|
||||
+1
-2
@@ -6817,9 +6817,8 @@
|
||||
#include "modular_skyrat\modules\medical\code\carbon_defense.dm"
|
||||
#include "modular_skyrat\modules\medical\code\carbon_examine.dm"
|
||||
#include "modular_skyrat\modules\medical\code\carbon_update_icons.dm"
|
||||
#include "modular_skyrat\modules\medical\code\crafting_recipes.dm"
|
||||
#include "modular_skyrat\modules\medical\code\medical_stacks.dm"
|
||||
#include "modular_skyrat\modules\medical\code\smartdarts.dm"
|
||||
#include "modular_skyrat\modules\medical\code\splint.dm"
|
||||
#include "modular_skyrat\modules\medical\code\wounds\_wounds.dm"
|
||||
#include "modular_skyrat\modules\medical\code\wounds\bones.dm"
|
||||
#include "modular_skyrat\modules\medical\code\wounds\burns.dm"
|
||||
|
||||
Reference in New Issue
Block a user