From 1ad219e02a7926cc7db50b4a18175fa47e6cf396 Mon Sep 17 00:00:00 2001 From: S34N <12197162+S34NW@users.noreply.github.com> Date: Tue, 5 Jul 2022 17:47:20 +0100 Subject: [PATCH] Revives "Updates ERT gear and adds holo stretcher #16266" (#18139) * Updates ERT gear * Apply suggestions from code review Co-authored-by: SteelSlayer <42044220+SteelSlayer@users.noreply.github.com> * Reformats new vars * Update code/game/objects/items/weapons/storage/boxes.dm Code Clarity Co-authored-by: SabreML <57483089+SabreML@users.noreply.github.com> * Removes unneeded item * BULK * repath time * moxian review * le beds * haha webedits * bubble review Co-authored-by: warior4356 Co-authored-by: SteelSlayer <42044220+SteelSlayer@users.noreply.github.com> Co-authored-by: SabreML <57483089+SabreML@users.noreply.github.com> --- .../objects/items/weapons/storage/boxes.dm | 18 ++++++++++ .../structures/stool_bed_chair_nest/bed.dm | 34 ++++++++++++++---- code/modules/pda/PDA.dm | 2 +- code/modules/pda/ai.dm | 2 +- code/modules/pda/pdas.dm | 4 ++- .../research/designs/medical_designs.dm | 10 ++++++ code/modules/response_team/ert_outfits.dm | 32 ++++++++++------- code/modules/surgery/helpers.dm | 9 ++--- icons/obj/rollerbed.dmi | Bin 1318 -> 3205 bytes 9 files changed, 85 insertions(+), 26 deletions(-) diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index ff7b21dc7bd..14b1203413d 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -880,6 +880,24 @@ desc = "It's just an ordinary magical box." icon_state = "box_wizard" +/obj/item/storage/box/breaching + name = "breaching charges" + desc = "Contains three T4 thermal breaching charges." + icon_state = "flashbang" + +/obj/item/storage/box/breaching/populate_contents() + for(var/I in 1 to 3) + new /obj/item/grenade/plastic/c4/thermite(src) + +/obj/item/storage/box/mindshield + name = "boxed mindshield kit" + desc = "Contains everything needed to secure the minds of those around you." + +/obj/item/storage/box/mindshield/populate_contents() + for(var/I in 1 to 3) + new /obj/item/implantcase/mindshield(src) + new /obj/item/implanter/mindshield(src) + #undef NODESIGN #undef NANOTRASEN #undef SYNDI diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm index fe21ec83b93..19c961df5e1 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm @@ -81,6 +81,9 @@ resistance_flags = NONE anchored = FALSE comfort = 1 + var/icon_up = "up" + var/icon_down = "down" + var/folded = /obj/item/roller /obj/structure/bed/roller/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/roller_holder)) @@ -92,30 +95,38 @@ user_unbuckle_mob(buckled_mobs[1], user) else user.visible_message("[user] collapses \the [name].", "You collapse \the [name].") - new/obj/item/roller(get_turf(src)) + new folded(get_turf(src)) qdel(src) else return ..() /obj/structure/bed/roller/post_buckle_mob(mob/living/M) density = TRUE - icon_state = "up" + icon_state = icon_up ..() /obj/structure/bed/roller/post_unbuckle_mob(mob/living/M) density = FALSE - icon_state = "down" + icon_state = icon_down ..() +/obj/structure/bed/roller/holo + name = "holo stretcher" + icon_state = "holo_extended" + icon_up = "holo_extended" + icon_down = "holo_extended" + folded = /obj/item/roller/holo + /obj/item/roller name = "roller bed" desc = "A collapsed roller bed that can be carried around." icon = 'icons/obj/rollerbed.dmi' icon_state = "folded" - w_class = WEIGHT_CLASS_NORMAL + w_class = WEIGHT_CLASS_BULKY + var/extended = /obj/structure/bed/roller /obj/item/roller/attack_self(mob/user) - var/obj/structure/bed/roller/R = new /obj/structure/bed/roller(user.loc) + var/obj/structure/bed/roller/R = new extended(user.loc) R.add_fingerprint(user) qdel(src) @@ -137,6 +148,17 @@ forceMove(RH) RH.held = src +/obj/item/roller/holo + name = "holo stretcher" + desc = "A retracted hardlight stretcher that can be carried around." + icon_state = "holo_retracted" + w_class = WEIGHT_CLASS_SMALL + origin_tech = "magnets=3;biotech=4;powerstorage=3" + extended = /obj/structure/bed/roller/holo + +/obj/item/roller/holo/attackby(obj/item/W, mob/user, params) + return + /obj/structure/bed/roller/MouseDrop(over_object, src_location, over_location) ..() if(over_object == usr && Adjacent(usr) && (in_range(src, usr) || usr.contents.Find(src))) @@ -145,7 +167,7 @@ if(has_buckled_mobs()) return 0 usr.visible_message("[usr] collapses \the [name].", "You collapse \the [name].") - new/obj/item/roller(get_turf(src)) + new folded(get_turf(src)) qdel(src) /obj/item/roller_holder diff --git a/code/modules/pda/PDA.dm b/code/modules/pda/PDA.dm index d6073d3d271..0ac05d5209c 100755 --- a/code/modules/pda/PDA.dm +++ b/code/modules/pda/PDA.dm @@ -34,7 +34,7 @@ GLOBAL_LIST_EMPTY(PDAs) var/silent = FALSE //To beep or not to beep, that is the question var/honkamt = 0 //How many honks left when infected with honk.exe var/mimeamt = 0 //How many silence left when infected with mime.exe - var/detonate = 1 // Can the PDA be blown up? + var/detonate = TRUE // Can the PDA be blown up? var/ttone = "beep" //The ringtone! var/list/ttone_sound = list("beep" = 'sound/machines/twobeep.ogg', "boom" = 'sound/effects/explosionfar.ogg', diff --git a/code/modules/pda/ai.dm b/code/modules/pda/ai.dm index bfbecad1b5b..caebaa35e91 100644 --- a/code/modules/pda/ai.dm +++ b/code/modules/pda/ai.dm @@ -1,7 +1,7 @@ // Special AI/pAI PDAs that cannot explode. /obj/item/pda/silicon icon_state = "NONE" - detonate = 0 + detonate = FALSE ttone = "data" /obj/item/pda/silicon/proc/set_name_and_job(newname as text, newjob as text, newrank as null|text) diff --git a/code/modules/pda/pdas.dm b/code/modules/pda/pdas.dm index 3c961103b20..f39bea4200d 100644 --- a/code/modules/pda/pdas.dm +++ b/code/modules/pda/pdas.dm @@ -74,7 +74,7 @@ /obj/item/pda/captain default_cartridge = /obj/item/cartridge/captain icon_state = "pda-captain" - detonate = 0 + detonate = FALSE //toff = 1 /obj/item/pda/heads/ntrep @@ -90,6 +90,8 @@ icon_state = "pda-h" /obj/item/pda/heads/ert + default_cartridge = /obj/item/cartridge/centcom + detonate = FALSE /obj/item/pda/heads/ert/engineering icon_state = "pda-engineer" diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 5ef447a77ea..48c6690ed61 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -62,6 +62,16 @@ build_path = /obj/item/handheld_defibrillator category = list("Medical") +/datum/design/holostretcher + name = "Holo Strecher" + desc = "A hardlight projector for transporting patients." + id = "holo_stretcher" + req_tech = list("magnets" = 6, "powerstorage" = 4) + build_path = /obj/item/roller/holo + build_type = PROTOLATHE + materials = list(MAT_METAL = 1000, MAT_SILVER = 500, MAT_GLASS = 500, MAT_DIAMOND = 200) + category = list("Medical") + /datum/design/defib name = "Defibrillator" desc = "A device that delivers powerful shocks to detachable paddles that resuscitate incapacitated patients." diff --git a/code/modules/response_team/ert_outfits.dm b/code/modules/response_team/ert_outfits.dm index 412c48fc4bd..57b8705aeec 100644 --- a/code/modules/response_team/ert_outfits.dm +++ b/code/modules/response_team/ert_outfits.dm @@ -63,7 +63,7 @@ backpack_contents = list( /obj/item/clothing/head/helmet/ert/command = 1, /obj/item/restraints/handcuffs = 1, - /obj/item/storage/lockbox/mindshield = 1, + /obj/item/storage/box/mindshield = 1, /obj/item/flashlight = 1 ) @@ -84,7 +84,7 @@ /obj/item/door_remote/omni = 1, /obj/item/restraints/handcuffs = 1, /obj/item/clothing/shoes/magboots = 1, - /obj/item/storage/lockbox/mindshield = 1 + /obj/item/storage/box/mindshield = 1 ) implants = list(/obj/item/implant/mindshield, @@ -101,7 +101,7 @@ backpack_contents = list( /obj/item/restraints/handcuffs = 1, - /obj/item/storage/lockbox/mindshield = 1, + /obj/item/storage/box/mindshield = 1, /obj/item/camera_bug/ert = 1, /obj/item/door_remote/omni = 1, /obj/item/ammo_box/magazine/enforcer/lethal = 2 @@ -138,7 +138,7 @@ glasses = /obj/item/clothing/glasses/hud/security/sunglasses mask = /obj/item/clothing/mask/gas/sechailer - r_hand = /obj/item/gun/energy/laser + l_hand = /obj/item/gun/energy/laser backpack_contents = list( /obj/item/clothing/head/helmet/ert/security = 1, @@ -156,7 +156,7 @@ glasses = /obj/item/clothing/glasses/sunglasses mask = /obj/item/clothing/mask/gas/sechailer - r_hand = /obj/item/gun/projectile/automatic/lasercarbine + l_hand = /obj/item/gun/projectile/automatic/lasercarbine cybernetic_implants = list( /obj/item/organ/internal/cyberimp/arm/flash, @@ -186,13 +186,13 @@ l_pocket = /obj/item/restraints/legcuffs/bola/energy r_pocket = /obj/item/extinguisher/mini - r_hand = /obj/item/gun/energy/immolator/multi + l_hand = /obj/item/gun/energy/immolator/multi backpack_contents = list( /obj/item/storage/box/handcuffs = 1, /obj/item/storage/box/flashbangs = 1, /obj/item/whetstone = 1, - /obj/item/storage/lockbox/t4 = 1 + /obj/item/storage/box/breaching = 1 ) cybernetic_implants = list( @@ -323,7 +323,7 @@ /obj/item/storage/firstaid/adv = 1, /obj/item/storage/firstaid/doctor = 1, /obj/item/storage/box/autoinjectors = 1, - /obj/item/roller = 1, + /obj/item/roller/holo = 1, /obj/item/storage/pill_bottle/ert = 1, /obj/item/flashlight = 1, /obj/item/handheld_defibrillator = 1 @@ -351,10 +351,16 @@ /obj/item/storage/firstaid/doctor = 1, /obj/item/storage/firstaid/adv = 1, /obj/item/storage/box/autoinjectors = 1, - /obj/item/roller = 1, + /obj/item/roller/holo = 1, /obj/item/clothing/shoes/magboots = 1, /obj/item/bodyanalyzer = 1, - /obj/item/handheld_defibrillator = 1 + /obj/item/handheld_defibrillator = 1, + /obj/item/storage/pill_bottle/painkillers = 1 + ) + + cybernetic_implants = list( + /obj/item/organ/internal/cyberimp/arm/surgery, + /obj/item/organ/internal/cyberimp/chest/nutriment ) implants = list(/obj/item/implant/mindshield, @@ -379,9 +385,9 @@ /obj/item/storage/firstaid/doctor = 1, /obj/item/storage/firstaid/adv = 1, /obj/item/extinguisher/mini = 1, - /obj/item/roller = 1, - /obj/item/handheld_defibrillator = 1 - + /obj/item/roller/holo = 1, + /obj/item/handheld_defibrillator = 1, + /obj/item/storage/pill_bottle/painkillers = 1 ) cybernetic_implants = list( diff --git a/code/modules/surgery/helpers.dm b/code/modules/surgery/helpers.dm index 818a455d04d..47591a2325e 100644 --- a/code/modules/surgery/helpers.dm +++ b/code/modules/surgery/helpers.dm @@ -147,12 +147,13 @@ var/turf/T = get_turf(M) if(locate(/obj/machinery/optable, T)) return 1 - else if(locate(/obj/structure/table, T)) + if(locate(/obj/structure/bed/roller/holo, T)) + return 0.9 + if(locate(/obj/structure/table, T) || locate(/obj/structure/bed/roller, T)) return 0.8 - else if(locate(/obj/structure/bed, T)) + if(locate(/obj/structure/bed, T)) return 0.7 - else - return 0.5 + return 0.5 //check if mob is lying down on something we can operate him on. /proc/can_operate(mob/living/carbon/M) diff --git a/icons/obj/rollerbed.dmi b/icons/obj/rollerbed.dmi index 25e00bd0eff7ed2af430fcbf44d55794d6531d0d..1f700064fc72d50df906a3e8aab8b95310f9a502 100644 GIT binary patch literal 3205 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 Xt%D@j8W1q%zXCAUH`9Bodn@W+?gRb@ literal 1318 zcmV+>1=;$EP)V=-0C=2JR&a84_w-Y6@%7{?OD!tS%+FJ>RWQ*r;NmRLOex6#a*U0*I5Sc+ z(=$pSoZ^zil2jm5DJ8!=Pl<~&C9|j)$Tj5ROe;#vO@*-Giqi6PQc_b0D$6L%O(bks zX#p-J$_lQ2E?{2(0MR%(30{s-3IG5EWJyFpRCwC$n!QW>Fc`;EEjT!egATsoB7%z! zf{44LFT0yAPU2r7PJ%ePE4ny1i6RFMx(K3!;LC6~9J;yvy!`qt_mo^r(&WzC>g9n_ zucmqO{q)I`G-+^te$Lw2Le}Qy0eAo&fCu0KcmN)N2jBsC03Lt`-~klby1Kf!O}SF3 z#Gam>*zoW$TUuI*H9kK-fBtF!*Vos4Y;4TB{Ojv$44_h}u)e;&f8}zyv%kN;))rj= zpa|Cc`#S(2Dn6H&mjfe!p`jrTV$;*pR*tT&u9|Kn8Wn|QU{m((?Tu%i14ulG*_umP zmBFVigiHY(931e?&CQktxfq2eeCtB9S-Zc#Pm-Wb-Y9eqXg2&Q2?ECW`1s!#1|i1Q z=H}+&^Wx$n3xeQx12{W7i_hq$t_Jakhlh3mK-guhZS`rUg(itdIIpa%u$!A3tw{8F z&egpIlcBAxt#kk=2wFA`a}7yVqihTb5{Z&P3=9l32-lei!z4Zd0O4p9j={mfZxx}l zw9u3xKs>s^-Q8V$eSUskd(Y|VDcjxMWvi>J?BU@dju0b&si~S@>xf1wa_*C_FRE{#pBQ^%IJH zGRsE&ln+-wenrRw@Blmj55NQP06YNOm6k6rFBcaVL0bTT_?MTLKL;gQ78ftd%hmWl z#LKV1y}iB4H$p%m2)I{XV?bR+SQ1YF$PJ8sE8o*?7fT>ejtq(()KRaeVP7DxjhRqx zV4B%LP(5+ey?JiT!~iZYFIlx({Sw~t3QHO&l|YoI^*s2Qot=%Zp{%&(kjKVM5&>u& z8kQE;CWA=I2Y|V-u#ns%<_EflC9R&Gp5lxGwp~CLEgD79C(* za1kwc7cvN!;i$^q-rll_i3wJ#)rtW?ev&4mu40N9f>i%N;R^(aM>L2zAg_&?P<$%# zP(cPE)Nmv+TSIv{3dAlUT3#D7@%A{#Q)5+zMneP+d2~=2l~W0&YbPfs5E0K6=zE@@ z-k8DCd`M4Q*RNILY|E+25*z@hrsYI9Ua^x5Q1b;RNf?3S0{X8IxJp8!=i(P z>I89Fh^<)TFj#Mp)<#A~7$B*hvQ1>9)t_b}91