diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm index 5dd39f91a5c..313a3a76fbc 100644 --- a/code/datums/uplink_item.dm +++ b/code/datums/uplink_item.dm @@ -410,7 +410,7 @@ var/list/uplink_items = list() cost = 1 /datum/uplink_item/device_tools/medkit - name = "Syndicate Medical Supply Kit" + name = "Syndicate Combat Medic Kit" desc = "The syndicate medkit is a suspicious black and red. Included is a combat stimulant injector for rapid healing, a medical hud for quick identification of injured comrades, \ and other medical supplies helpful for a medical field operative." item = /obj/item/weapon/storage/firstaid/tactical diff --git a/code/game/gamemodes/objective_items.dm b/code/game/gamemodes/objective_items.dm index f854536cfc4..b2c96c0aa91 100644 --- a/code/game/gamemodes/objective_items.dm +++ b/code/game/gamemodes/objective_items.dm @@ -27,17 +27,13 @@ datum/objective_item/steal/rcd name = "a rapid-construction-device" targetitem = /obj/item/weapon/rcd difficulty = 3 + excludefromjob = list("Chief Engineer", "Quartermaster", "Cargo Technician") datum/objective_item/steal/jetpack name = "a jetpack" targetitem = /obj/item/weapon/tank/jetpack difficulty = 3 - -datum/objective_item/steal/defib - name = "a defibrillator" - targetitem = /obj/item/weapon/defibrillator - difficulty = 4 - excludefromjob = list("Chief Medical Officer", "Medical Doctor") + excludefromjob = list("Chief Engineer") datum/objective_item/steal/magboots name = "the chief engineer's advanced magnetic boots" @@ -49,7 +45,7 @@ datum/objective_item/steal/corgimeat name = "a piece of corgi meat" targetitem = /obj/item/weapon/reagent_containers/food/snacks/meat/corgi difficulty = 5 - excludefromjob = list("Head of Personnel") //>hurting your little buddy ever + excludefromjob = list("Head of Personnel", "Quartermaster", "Cargo Technician") //>hurting your little buddy ever datum/objective_item/steal/capmedal name = "the medal of captaincy" diff --git a/code/game/objects/items/weapons/defib.dm b/code/game/objects/items/weapons/defib.dm index 7ea19cbf78c..b018211f126 100644 --- a/code/game/objects/items/weapons/defib.dm +++ b/code/game/objects/items/weapons/defib.dm @@ -18,6 +18,7 @@ var/powered = 0 //if there's a cell in the defib with enough power for a revive, blocks paddles from reviving otherwise var/obj/item/weapon/twohanded/shockpaddles/paddles var/obj/item/weapon/stock_parts/cell/high/bcell = null + var/combat = 0 //can we revive through space suits? /obj/item/weapon/defibrillator/New() //starts without a cell for rnd ..() @@ -103,7 +104,6 @@ if(W == paddles) paddles.unwield() toggle_paddles() - return if(istype(W, /obj/item/weapon/stock_parts/cell)) var/obj/item/weapon/stock_parts/cell/C = W if(bcell) @@ -221,20 +221,49 @@ paddles.update_icon() update_icon() -/obj/item/weapon/defibrillator/combatdefibrillator - name = "combat defibrillator" - desc = "A expensive combat oriented defibrillator. It is more compact that civilian models." - icon_state = "combatdefibunit" - item_state = "combatdefibunit" +/obj/item/weapon/defibrillator/compact + name = "compact defibrillator" + desc = "A belt-equipped defibrillator that can be rapidly deployed." + icon_state = "defibcompact" + item_state = "defibcompact" w_class = 3 + slot_flags = SLOT_BELT + origin_tech = "biotech=4" -/obj/item/weapon/defibrillator/combatdefibrillator/loaded/New() +/obj/item/weapon/defibrillator/compact/ui_action_click() + if(usr.get_item_by_slot(slot_belt) == src) + toggle_paddles() + else + usr << "Strap the defibrillator's belt on first!" + return + +/obj/item/weapon/defibrillator/compact/loaded/New() ..() paddles = make_paddles() bcell = new(src) update_icon() return +/obj/item/weapon/defibrillator/compact/combat + name = "combat defibrillator" + desc = "A belt-equipped blood-red defibrillator that can be rapidly deployed. Does not have the restrictions or safeties of conventional defibrillators and can revive through space suits." + combat = 1 + safety = 0 + +/obj/item/weapon/defibrillator/compact/combat/loaded/New() + ..() + paddles = make_paddles() + bcell = new /obj/item/weapon/stock_parts/cell/infinite(src) + update_icon() + return + +/obj/item/weapon/defibrillator/compact/combat/attackby(obj/item/weapon/W, mob/user) + if(W == paddles) + paddles.unwield() + toggle_paddles() + update_icon() + return + //paddles /obj/item/weapon/twohanded/shockpaddles @@ -293,7 +322,7 @@ else return 1 -/obj/item/weapon/twohanded/shockpaddles/attack(mob/M as mob, mob/user as mob) +/obj/item/weapon/twohanded/shockpaddles/attack(mob/M, mob/user) var/tobehealed var/threshold = -config.health_threshold_dead var/mob/living/carbon/human/H = M @@ -339,18 +368,19 @@ playsound(get_turf(src), 'sound/machines/defib_charge.ogg', 50, 0) var/mob/dead/observer/ghost = H.get_ghost() var/tplus = world.time - H.timeofdeath - var/tlimit = 3000 //past this much time the patient is unrecoverable (in deciseconds) - var/tloss = 900 //brain damage starts setting in on the patient after some time left rotting + var/tlimit = 6000 //past this much time the patient is unrecoverable (in deciseconds) + var/tloss = 3000 //brain damage starts setting in on the patient after some time left rotting var/total_burn = 0 var/total_brute = 0 if(do_after(user, 20)) //placed on chest and short delay to shock for dramatic effect, revive time is 5sec total for(var/obj/item/carried_item in H.contents) - if((istype(carried_item, /obj/item/clothing/suit/armor)) || (istype(carried_item, /obj/item/clothing/suit/space))) - user.visible_message("[defib] buzzes: Patient's chest is obscured. Operation aborted.") - playsound(get_turf(src), 'sound/machines/defib_failed.ogg', 50, 0) - busy = 0 - update_icon() - return + if(istype(carried_item, /obj/item/clothing/suit/space)) + if(!defib.combat) + user.visible_message("[defib] buzzes: Patient's chest is obscured. Operation aborted.") + playsound(get_turf(src), 'sound/machines/defib_failed.ogg', 50, 0) + busy = 0 + update_icon() + return if(H.stat == 2) var/health = H.health M.visible_message("[M]'s body convulses a bit.") diff --git a/code/game/objects/items/weapons/storage/firstaid.dm b/code/game/objects/items/weapons/storage/firstaid.dm index 6901e0e41af..6cd7602757b 100644 --- a/code/game/objects/items/weapons/storage/firstaid.dm +++ b/code/game/objects/items/weapons/storage/firstaid.dm @@ -116,7 +116,7 @@ ..() if(empty) return new /obj/item/stack/medical/gauze(src) - new /obj/item/stack/medical/gauze(src) + new /obj/item/weapon/defibrillator/compact/combat/loaded(src) new /obj/item/weapon/reagent_containers/hypospray/combat(src) new /obj/item/weapon/reagent_containers/pill/patch/styptic(src) new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm index a47ecc0f87e..e2db0360125 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm @@ -110,7 +110,7 @@ new /obj/item/clothing/shoes/sneakers/brown (src) new /obj/item/weapon/cartridge/cmo(src) new /obj/item/device/radio/headset/heads/cmo(src) - new /obj/item/weapon/defibrillator/loaded(src) + new /obj/item/weapon/defibrillator/compact/loaded(src) new /obj/item/clothing/gloves/color/latex/nitrile(src) new /obj/item/weapon/storage/belt/medical(src) new /obj/item/device/flash/handheld(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/misc.dm b/code/game/objects/structures/crates_lockers/closets/secure/misc.dm index c18e2ca667c..5701b358b4f 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/misc.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/misc.dm @@ -66,6 +66,7 @@ new /obj/item/weapon/storage/firstaid/brute(src) new /obj/item/weapon/storage/firstaid/regular(src) new /obj/item/weapon/melee/baton/loaded(src) + new /obj/item/weapon/defibrillator/compact/combat(src) new /obj/machinery/bot/medbot(src) return diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 013841c43c9..1e8e50a3be1 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -92,14 +92,3 @@ datum/design/bluespacebodybag reliability = 76 build_path = /obj/item/bodybag/bluespace category = list("Medical Designs") - -datum/design/defib - name = "Defibrillator" - desc = "A device that delivers powerful shocks to detachable paddles that resuscitate incapacitated patients." - id = "defib" - req_tech = list("materials" = 7, "biotech" = 5, "powerstorage" = 5) - build_type = PROTOLATHE - materials = list("$metal" = 5000, "$glass" = 2000, "$silver" = 1000) - reliability = 76 - build_path = /obj/item/weapon/defibrillator - category = list("Medical Designs") diff --git a/html/changelogs/Paprka-defibfuckupv2.yml b/html/changelogs/Paprka-defibfuckupv2.yml new file mode 100644 index 00000000000..c24eb2a3102 --- /dev/null +++ b/html/changelogs/Paprka-defibfuckupv2.yml @@ -0,0 +1,6 @@ +author: Paprka + +delete-after: True + +changes: + - rscadd: "Removed the defib steal objective. Added a compact defibrillator for the CMO that equips to the belt. Removed defibrillators from RND. Removed the requirement for people to not wear armor to revive them with defibs. Doubled defib timers (10 minutes before permadeath)." \ No newline at end of file diff --git a/icons/mob/belt.dmi b/icons/mob/belt.dmi index be45636ff70..06fcb90a4a2 100644 Binary files a/icons/mob/belt.dmi and b/icons/mob/belt.dmi differ diff --git a/icons/obj/weapons.dmi b/icons/obj/weapons.dmi index 5885a408c76..cfd7af59620 100644 Binary files a/icons/obj/weapons.dmi and b/icons/obj/weapons.dmi differ