here we go again (#2456)
This commit is contained in:
@@ -9,7 +9,7 @@
|
||||
|
||||
/datum/surgery_step/sever_limb
|
||||
name = "sever limb"
|
||||
implements = list(/obj/item/weapon/scalpel = 100, /obj/item/weapon/circular_saw = 100, /obj/item/weapon/melee/transforming/energy/sword/cyborg/saw = 100, /obj/item/weapon/melee/arm_blade = 80, /obj/item/weapon/twohanded/required/chainsaw = 80, /obj/item/weapon/mounted_chainsaw = 80, /obj/item/weapon/twohanded/fireaxe = 50, /obj/item/weapon/hatchet = 40, /obj/item/weapon/kitchen/knife/butcher = 25)
|
||||
implements = list(/obj/item/scalpel = 100, /obj/item/circular_saw = 100, /obj/item/melee/transforming/energy/sword/cyborg/saw = 100, /obj/item/melee/arm_blade = 80, /obj/item/twohanded/required/chainsaw = 80, /obj/item/mounted_chainsaw = 80, /obj/item/twohanded/fireaxe = 50, /obj/item/hatchet = 40, /obj/item/kitchen/knife/butcher = 25)
|
||||
time = 64
|
||||
|
||||
/datum/surgery_step/sever_limb/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
|
||||
@@ -316,7 +316,7 @@
|
||||
name = initial(name)
|
||||
|
||||
//Handle dental implants
|
||||
for(var/obj/item/weapon/reagent_containers/pill/P in src)
|
||||
for(var/obj/item/reagent_containers/pill/P in src)
|
||||
for(var/datum/action/item_action/hands_free/activate_pill/AP in P.actions)
|
||||
P.forceMove(C)
|
||||
AP.Grant(C)
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
brain = null
|
||||
update_icon_dropped()
|
||||
else
|
||||
if(istype(I, /obj/item/weapon/reagent_containers/pill))
|
||||
if(istype(I, /obj/item/reagent_containers/pill))
|
||||
for(var/datum/action/item_action/hands_free/activate_pill/AP in I.actions)
|
||||
qdel(AP)
|
||||
I.forceMove(T)
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
/mob/living/carbon/human/get_leg_ignore()
|
||||
if(movement_type & FLYING)
|
||||
return TRUE
|
||||
var/obj/item/weapon/tank/jetpack/J = get_jetpack()
|
||||
var/obj/item/tank/jetpack/J = get_jetpack()
|
||||
if(J && J.on && !has_gravity())
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
@@ -53,10 +53,10 @@
|
||||
icon_state = "borg_chest"
|
||||
status = BODYPART_ROBOTIC
|
||||
var/wired = 0
|
||||
var/obj/item/weapon/stock_parts/cell/cell = null
|
||||
var/obj/item/stock_parts/cell/cell = null
|
||||
|
||||
/obj/item/bodypart/chest/robot/attackby(obj/item/W, mob/user, params)
|
||||
if(istype(W, /obj/item/weapon/stock_parts/cell))
|
||||
if(istype(W, /obj/item/stock_parts/cell))
|
||||
if(src.cell)
|
||||
to_chat(user, "<span class='warning'>You have already inserted a cell!</span>")
|
||||
return
|
||||
@@ -124,7 +124,7 @@
|
||||
else
|
||||
src.flash1 = F
|
||||
to_chat(user, "<span class='notice'>You insert the flash into the eye socket.</span>")
|
||||
else if(istype(W, /obj/item/weapon/crowbar))
|
||||
else if(istype(W, /obj/item/crowbar))
|
||||
if(flash1 || flash2)
|
||||
playsound(src.loc, W.usesound, 50, 1)
|
||||
to_chat(user, "<span class='notice'>You remove the flash from [src].</span>")
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
//extract brain
|
||||
/datum/surgery_step/extract_core
|
||||
name = "extract core"
|
||||
implements = list(/obj/item/weapon/hemostat = 100, /obj/item/weapon/crowbar = 100)
|
||||
implements = list(/obj/item/hemostat = 100, /obj/item/crowbar = 100)
|
||||
time = 16
|
||||
|
||||
/datum/surgery_step/extract_core/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
|
||||
/datum/surgery_step/insert_pill
|
||||
name = "insert pill"
|
||||
implements = list(/obj/item/weapon/reagent_containers/pill = 100)
|
||||
implements = list(/obj/item/reagent_containers/pill = 100)
|
||||
time = 16
|
||||
|
||||
/datum/surgery_step/insert_pill/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
user.visible_message("[user] begins to wedge \the [tool] in [target]'s [parse_zone(target_zone)].", "<span class='notice'>You begin to wedge [tool] in [target]'s [parse_zone(target_zone)]...</span>")
|
||||
|
||||
/datum/surgery_step/insert_pill/success(mob/user, mob/living/carbon/target, target_zone, var/obj/item/weapon/reagent_containers/pill/tool, datum/surgery/surgery)
|
||||
/datum/surgery_step/insert_pill/success(mob/user, mob/living/carbon/target, target_zone, var/obj/item/reagent_containers/pill/tool, datum/surgery/surgery)
|
||||
if(!istype(tool))
|
||||
return 0
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
//fix eyes
|
||||
/datum/surgery_step/fix_eyes
|
||||
name = "fix eyes"
|
||||
implements = list(/obj/item/weapon/hemostat = 100, /obj/item/weapon/screwdriver = 45, /obj/item/weapon/pen = 25)
|
||||
implements = list(/obj/item/hemostat = 100, /obj/item/screwdriver = 45, /obj/item/pen = 25)
|
||||
time = 64
|
||||
|
||||
/datum/surgery/eye_surgery/can_start(mob/user, mob/living/carbon/target)
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
//make incision
|
||||
/datum/surgery_step/incise
|
||||
name = "make incision"
|
||||
implements = list(/obj/item/weapon/scalpel = 100, /obj/item/weapon/melee/transforming/energy/sword = 75, /obj/item/weapon/kitchen/knife = 65,
|
||||
/obj/item/weapon/shard = 45, /obj/item = 30) // 30% success with any sharp item.
|
||||
implements = list(/obj/item/scalpel = 100, /obj/item/melee/transforming/energy/sword = 75, /obj/item/kitchen/knife = 65,
|
||||
/obj/item/shard = 45, /obj/item = 30) // 30% success with any sharp item.
|
||||
time = 16
|
||||
|
||||
/datum/surgery_step/incise/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
@@ -19,7 +19,7 @@
|
||||
//clamp bleeders
|
||||
/datum/surgery_step/clamp_bleeders
|
||||
name = "clamp bleeders"
|
||||
implements = list(/obj/item/weapon/hemostat = 100, /obj/item/weapon/wirecutters = 60, /obj/item/stack/packageWrap = 35, /obj/item/stack/cable_coil = 15)
|
||||
implements = list(/obj/item/hemostat = 100, /obj/item/wirecutters = 60, /obj/item/stack/packageWrap = 35, /obj/item/stack/cable_coil = 15)
|
||||
time = 24
|
||||
|
||||
/datum/surgery_step/clamp_bleeders/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
@@ -35,7 +35,7 @@
|
||||
//retract skin
|
||||
/datum/surgery_step/retract_skin
|
||||
name = "retract skin"
|
||||
implements = list(/obj/item/weapon/retractor = 100, /obj/item/weapon/screwdriver = 45, /obj/item/weapon/wirecutters = 35)
|
||||
implements = list(/obj/item/retractor = 100, /obj/item/screwdriver = 45, /obj/item/wirecutters = 35)
|
||||
time = 24
|
||||
|
||||
/datum/surgery_step/retract_skin/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
@@ -47,8 +47,8 @@
|
||||
//close incision
|
||||
/datum/surgery_step/close
|
||||
name = "mend incision"
|
||||
implements = list(/obj/item/weapon/cautery = 100, /obj/item/weapon/gun/energy/laser = 90, /obj/item/weapon/weldingtool = 70,
|
||||
/obj/item/weapon/lighter = 45, /obj/item/weapon/match = 20)
|
||||
implements = list(/obj/item/cautery = 100, /obj/item/gun/energy/laser = 90, /obj/item/weldingtool = 70,
|
||||
/obj/item/lighter = 45, /obj/item/match = 20)
|
||||
time = 24
|
||||
|
||||
/datum/surgery_step/close/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
@@ -57,21 +57,21 @@
|
||||
|
||||
|
||||
/datum/surgery_step/close/tool_check(mob/user, obj/item/tool)
|
||||
if(istype(tool, /obj/item/weapon/cautery))
|
||||
if(istype(tool, /obj/item/cautery))
|
||||
return 1
|
||||
|
||||
if(istype(tool, /obj/item/weapon/weldingtool))
|
||||
var/obj/item/weapon/weldingtool/WT = tool
|
||||
if(istype(tool, /obj/item/weldingtool))
|
||||
var/obj/item/weldingtool/WT = tool
|
||||
if(WT.isOn())
|
||||
return 1
|
||||
|
||||
else if(istype(tool, /obj/item/weapon/lighter))
|
||||
var/obj/item/weapon/lighter/L = tool
|
||||
else if(istype(tool, /obj/item/lighter))
|
||||
var/obj/item/lighter/L = tool
|
||||
if(L.lit)
|
||||
return 1
|
||||
|
||||
else if(istype(tool, /obj/item/weapon/match))
|
||||
var/obj/item/weapon/match/M = tool
|
||||
else if(istype(tool, /obj/item/match))
|
||||
var/obj/item/match/M = tool
|
||||
if(M.lit)
|
||||
return 1
|
||||
|
||||
@@ -87,9 +87,9 @@
|
||||
//saw bone
|
||||
/datum/surgery_step/saw
|
||||
name = "saw bone"
|
||||
implements = list(/obj/item/weapon/circular_saw = 100, /obj/item/weapon/melee/transforming/energy/sword/cyborg/saw = 100,
|
||||
/obj/item/weapon/melee/arm_blade = 75, /obj/item/weapon/mounted_chainsaw = 65, /obj/item/weapon/twohanded/required/chainsaw = 50,
|
||||
/obj/item/weapon/twohanded/fireaxe = 50, /obj/item/weapon/hatchet = 35, /obj/item/weapon/kitchen/knife/butcher = 25)
|
||||
implements = list(/obj/item/circular_saw = 100, /obj/item/melee/transforming/energy/sword/cyborg/saw = 100,
|
||||
/obj/item/melee/arm_blade = 75, /obj/item/mounted_chainsaw = 65, /obj/item/twohanded/required/chainsaw = 50,
|
||||
/obj/item/twohanded/fireaxe = 50, /obj/item/hatchet = 35, /obj/item/kitchen/knife/butcher = 25)
|
||||
time = 54
|
||||
|
||||
/datum/surgery_step/saw/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
@@ -105,7 +105,7 @@
|
||||
//drill bone
|
||||
/datum/surgery_step/drill
|
||||
name = "drill bone"
|
||||
implements = list(/obj/item/weapon/surgicaldrill = 100, /obj/item/weapon/pickaxe/drill = 60, /obj/item/mecha_parts/mecha_equipment/drill = 60, /obj/item/weapon/screwdriver = 20)
|
||||
implements = list(/obj/item/surgicaldrill = 100, /obj/item/pickaxe/drill = 60, /obj/item/mecha_parts/mecha_equipment/drill = 60, /obj/item/screwdriver = 20)
|
||||
time = 30
|
||||
|
||||
/datum/surgery_step/drill/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
user.visible_message("[user] removes the drapes from [M]'s [parse_zone(selected_zone)].", \
|
||||
"<span class='notice'>You remove the drapes from [M]'s [parse_zone(selected_zone)].</span>")
|
||||
qdel(current_surgery)
|
||||
else if(istype(user.get_inactive_held_item(), /obj/item/weapon/cautery) && current_surgery.can_cancel)
|
||||
else if(istype(user.get_inactive_held_item(), /obj/item/cautery) && current_surgery.can_cancel)
|
||||
M.surgeries -= current_surgery
|
||||
user.visible_message("[user] mends the incision and removes the drapes from [M]'s [parse_zone(selected_zone)].", \
|
||||
"<span class='notice'>You mend the incision and remove the drapes from [M]'s [parse_zone(selected_zone)].</span>")
|
||||
|
||||
@@ -9,9 +9,9 @@
|
||||
//extract implant
|
||||
/datum/surgery_step/extract_implant
|
||||
name = "extract implant"
|
||||
implements = list(/obj/item/weapon/hemostat = 100, /obj/item/weapon/crowbar = 65)
|
||||
implements = list(/obj/item/hemostat = 100, /obj/item/crowbar = 65)
|
||||
time = 64
|
||||
var/obj/item/weapon/implant/I = null
|
||||
var/obj/item/implant/I = null
|
||||
|
||||
/datum/surgery_step/extract_implant/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
for(var/obj/item/O in target.implants)
|
||||
@@ -27,12 +27,12 @@
|
||||
user.visible_message("[user] successfully removes [I] from [target]'s [target_zone]!", "<span class='notice'>You successfully remove [I] from [target]'s [target_zone].</span>")
|
||||
I.removed(target)
|
||||
|
||||
var/obj/item/weapon/implantcase/case
|
||||
for(var/obj/item/weapon/implantcase/ic in user.held_items)
|
||||
var/obj/item/implantcase/case
|
||||
for(var/obj/item/implantcase/ic in user.held_items)
|
||||
case = ic
|
||||
break
|
||||
if(!case)
|
||||
case = locate(/obj/item/weapon/implantcase) in get_turf(target)
|
||||
case = locate(/obj/item/implantcase) in get_turf(target)
|
||||
if(case && !case.imp)
|
||||
case.imp = I
|
||||
I.loc = case
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
/datum/surgery_step/replace
|
||||
name = "sever muscles"
|
||||
implements = list(/obj/item/weapon/scalpel = 100, /obj/item/weapon/wirecutters = 55)
|
||||
implements = list(/obj/item/scalpel = 100, /obj/item/wirecutters = 55)
|
||||
time = 32
|
||||
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
//cut fat
|
||||
/datum/surgery_step/cut_fat
|
||||
name = "cut excess fat"
|
||||
implements = list(/obj/item/weapon/circular_saw = 100, /obj/item/weapon/melee/transforming/energy/sword/cyborg/saw = 100, /obj/item/weapon/hatchet = 35, /obj/item/weapon/kitchen/knife/butcher = 25)
|
||||
implements = list(/obj/item/circular_saw = 100, /obj/item/melee/transforming/energy/sword/cyborg/saw = 100, /obj/item/hatchet = 35, /obj/item/kitchen/knife/butcher = 25)
|
||||
time = 64
|
||||
|
||||
/datum/surgery_step/cut_fat/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
@@ -25,7 +25,7 @@
|
||||
//remove fat
|
||||
/datum/surgery_step/remove_fat
|
||||
name = "remove loose fat"
|
||||
implements = list(/obj/item/weapon/retractor = 100, /obj/item/weapon/screwdriver = 45, /obj/item/weapon/wirecutters = 35)
|
||||
implements = list(/obj/item/retractor = 100, /obj/item/screwdriver = 45, /obj/item/wirecutters = 35)
|
||||
time = 32
|
||||
|
||||
/datum/surgery_step/remove_fat/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
@@ -38,12 +38,12 @@
|
||||
target.nutrition = NUTRITION_LEVEL_WELL_FED
|
||||
removednutriment -= 450 //whatever was removed goes into the meat
|
||||
var/mob/living/carbon/human/H = target
|
||||
var/typeofmeat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human
|
||||
var/typeofmeat = /obj/item/reagent_containers/food/snacks/meat/slab/human
|
||||
|
||||
if(H.dna && H.dna.species)
|
||||
typeofmeat = H.dna.species.meat
|
||||
|
||||
var/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/newmeat = new typeofmeat
|
||||
var/obj/item/reagent_containers/food/snacks/meat/slab/human/newmeat = new typeofmeat
|
||||
newmeat.name = "fatty meat"
|
||||
newmeat.desc = "Extremely fatty tissue taken from a patient."
|
||||
newmeat.subjectname = H.real_name
|
||||
|
||||
@@ -24,9 +24,9 @@
|
||||
/datum/surgery_step/manipulate_organs
|
||||
time = 64
|
||||
name = "manipulate organs"
|
||||
implements = list(/obj/item/organ = 100, /obj/item/weapon/reagent_containers/food/snacks/organ = 0, /obj/item/weapon/organ_storage = 100)
|
||||
var/implements_extract = list(/obj/item/weapon/hemostat = 100, /obj/item/weapon/crowbar = 55)
|
||||
var/implements_mend = list(/obj/item/weapon/cautery = 100, /obj/item/weapon/weldingtool = 70, /obj/item/weapon/lighter = 45, /obj/item/weapon/match = 20)
|
||||
implements = list(/obj/item/organ = 100, /obj/item/reagent_containers/food/snacks/organ = 0, /obj/item/organ_storage = 100)
|
||||
var/implements_extract = list(/obj/item/hemostat = 100, /obj/item/crowbar = 55)
|
||||
var/implements_mend = list(/obj/item/cautery = 100, /obj/item/weldingtool = 70, /obj/item/lighter = 45, /obj/item/match = 20)
|
||||
var/current_type
|
||||
var/obj/item/organ/I = null
|
||||
|
||||
@@ -35,18 +35,18 @@
|
||||
implements = implements + implements_extract + implements_mend
|
||||
|
||||
/datum/surgery_step/manipulate_organs/tool_check(mob/user, obj/item/tool)
|
||||
if(istype(tool, /obj/item/weapon/weldingtool))
|
||||
var/obj/item/weapon/weldingtool/WT = tool
|
||||
if(istype(tool, /obj/item/weldingtool))
|
||||
var/obj/item/weldingtool/WT = tool
|
||||
if(!WT.isOn())
|
||||
return 0
|
||||
|
||||
else if(istype(tool, /obj/item/weapon/lighter))
|
||||
var/obj/item/weapon/lighter/L = tool
|
||||
else if(istype(tool, /obj/item/lighter))
|
||||
var/obj/item/lighter/L = tool
|
||||
if(!L.lit)
|
||||
return 0
|
||||
|
||||
else if(istype(tool, /obj/item/weapon/match))
|
||||
var/obj/item/weapon/match/M = tool
|
||||
else if(istype(tool, /obj/item/match))
|
||||
var/obj/item/match/M = tool
|
||||
if(!M.lit)
|
||||
return 0
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
|
||||
/datum/surgery_step/manipulate_organs/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
I = null
|
||||
if(istype(tool, /obj/item/weapon/organ_storage))
|
||||
if(istype(tool, /obj/item/organ_storage))
|
||||
if(!tool.contents.len)
|
||||
to_chat(user, "<span class='notice'>There is nothing inside [tool]!</span>")
|
||||
return -1
|
||||
@@ -107,7 +107,7 @@
|
||||
user.visible_message("[user] begins to mend the incision in [target]'s [parse_zone(target_zone)].",
|
||||
"<span class='notice'>You begin to mend the incision in [target]'s [parse_zone(target_zone)]...</span>")
|
||||
|
||||
else if(istype(tool, /obj/item/weapon/reagent_containers/food/snacks/organ))
|
||||
else if(istype(tool, /obj/item/reagent_containers/food/snacks/organ))
|
||||
to_chat(user, "<span class='warning'>[tool] was bitten by someone! It's too damaged to use!</span>")
|
||||
return -1
|
||||
|
||||
@@ -119,7 +119,7 @@
|
||||
target.heal_bodypart_damage(45,0)
|
||||
return 1
|
||||
else if(current_type == "insert")
|
||||
if(istype(tool, /obj/item/weapon/organ_storage))
|
||||
if(istype(tool, /obj/item/organ_storage))
|
||||
I = tool.contents[1]
|
||||
tool.icon_state = "evidenceobj"
|
||||
tool.desc = "A container for holding body parts."
|
||||
|
||||
@@ -33,9 +33,9 @@
|
||||
..()
|
||||
to_chat(user, "<span class='info'>[src] is assembled in the [zone == "r_arm" ? "right" : "left"] arm configuration. You can use a screwdriver to reassemble it.</span>")
|
||||
|
||||
/obj/item/organ/cyberimp/arm/attackby(obj/item/weapon/W, mob/user, params)
|
||||
/obj/item/organ/cyberimp/arm/attackby(obj/item/W, mob/user, params)
|
||||
..()
|
||||
if(istype(W, /obj/item/weapon/screwdriver))
|
||||
if(istype(W, /obj/item/screwdriver))
|
||||
if(zone == "r_arm")
|
||||
zone = "l_arm"
|
||||
else
|
||||
@@ -43,7 +43,7 @@
|
||||
slot = zone + "_device"
|
||||
to_chat(user, "<span class='notice'>You modify [src] to be installed on the [zone == "r_arm" ? "right" : "left"] arm.</span>")
|
||||
update_icon()
|
||||
else if(istype(W, /obj/item/weapon/card/emag))
|
||||
else if(istype(W, /obj/item/card/emag))
|
||||
emag_act()
|
||||
|
||||
/obj/item/organ/cyberimp/arm/Remove(mob/living/carbon/M, special = 0)
|
||||
@@ -119,7 +119,7 @@
|
||||
return
|
||||
|
||||
// You can emag the arm-mounted implant by activating it while holding emag in it's hand.
|
||||
if(istype(owner.get_active_held_item(), /obj/item/weapon/card/emag) && emag_act())
|
||||
if(istype(owner.get_active_held_item(), /obj/item/card/emag) && emag_act())
|
||||
return
|
||||
|
||||
if(!holder || (holder in src))
|
||||
@@ -154,7 +154,7 @@
|
||||
desc = "A variant of the arm cannon implant that fires lethal laser beams. The cannon emerges from the subject's arm and remains inside when not in use."
|
||||
icon_state = "arm_laser"
|
||||
origin_tech = "materials=4;combat=4;biotech=4;powerstorage=4;syndicate=3"
|
||||
contents = newlist(/obj/item/weapon/gun/energy/laser/mounted)
|
||||
contents = newlist(/obj/item/gun/energy/laser/mounted)
|
||||
|
||||
/obj/item/organ/cyberimp/arm/gun/laser/l
|
||||
zone = "l_arm"
|
||||
@@ -165,7 +165,7 @@
|
||||
desc = "A variant of the arm cannon implant that fires electrodes and disabler shots. The cannon emerges from the subject's arm and remains inside when not in use."
|
||||
icon_state = "arm_taser"
|
||||
origin_tech = "materials=5;combat=5;biotech=4;powerstorage=4"
|
||||
contents = newlist(/obj/item/weapon/gun/energy/e_gun/advtaser/mounted)
|
||||
contents = newlist(/obj/item/gun/energy/e_gun/advtaser/mounted)
|
||||
|
||||
/obj/item/organ/cyberimp/arm/gun/taser/l
|
||||
zone = "l_arm"
|
||||
@@ -175,29 +175,29 @@
|
||||
name = "integrated toolset implant"
|
||||
desc = "A stripped-down version of engineering cyborg toolset, designed to be installed on subject's arm. Contains all necessary tools."
|
||||
origin_tech = "materials=3;engineering=4;biotech=3;powerstorage=4"
|
||||
contents = newlist(/obj/item/weapon/screwdriver/cyborg, /obj/item/weapon/wrench/cyborg, /obj/item/weapon/weldingtool/largetank/cyborg,
|
||||
/obj/item/weapon/crowbar/cyborg, /obj/item/weapon/wirecutters/cyborg, /obj/item/device/multitool/cyborg)
|
||||
contents = newlist(/obj/item/screwdriver/cyborg, /obj/item/wrench/cyborg, /obj/item/weldingtool/largetank/cyborg,
|
||||
/obj/item/crowbar/cyborg, /obj/item/wirecutters/cyborg, /obj/item/device/multitool/cyborg)
|
||||
|
||||
/obj/item/organ/cyberimp/arm/toolset/l
|
||||
zone = "l_arm"
|
||||
|
||||
/obj/item/organ/cyberimp/arm/toolset/emag_act()
|
||||
if(!(locate(/obj/item/weapon/kitchen/knife/combat/cyborg) in items_list))
|
||||
if(!(locate(/obj/item/kitchen/knife/combat/cyborg) in items_list))
|
||||
to_chat(usr, "<span class='notice'>You unlock [src]'s integrated knife!</span>")
|
||||
items_list += new /obj/item/weapon/kitchen/knife/combat/cyborg(src)
|
||||
items_list += new /obj/item/kitchen/knife/combat/cyborg(src)
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/obj/item/organ/cyberimp/arm/esword
|
||||
name = "arm-mounted energy blade"
|
||||
desc = "An illegal, and highly dangerous cybernetic implant that can project a deadly blade of concentrated energy."
|
||||
contents = newlist(/obj/item/weapon/melee/transforming/energy/blade/hardlight)
|
||||
contents = newlist(/obj/item/melee/transforming/energy/blade/hardlight)
|
||||
origin_tech = "materials=4;combat=5;biotech=3;powerstorage=2;syndicate=5"
|
||||
|
||||
/obj/item/organ/cyberimp/arm/medibeam
|
||||
name = "integrated medical beamgun"
|
||||
desc = "A cybernetic implant that allows the user to project a healing beam from their hand."
|
||||
contents = newlist(/obj/item/weapon/gun/medbeam)
|
||||
contents = newlist(/obj/item/gun/medbeam)
|
||||
origin_tech = "materials=5;combat=2;biotech=5;powerstorage=4;syndicate=1"
|
||||
|
||||
/obj/item/organ/cyberimp/arm/flash
|
||||
@@ -221,7 +221,7 @@
|
||||
/obj/item/organ/cyberimp/arm/combat
|
||||
name = "combat cybernetics implant"
|
||||
desc = "A powerful cybernetic implant that contains combat modules built into the user's arm"
|
||||
contents = newlist(/obj/item/weapon/melee/transforming/energy/blade/hardlight, /obj/item/weapon/gun/medbeam, /obj/item/borg/stun, /obj/item/device/assembly/flash/armimplant)
|
||||
contents = newlist(/obj/item/melee/transforming/energy/blade/hardlight, /obj/item/gun/medbeam, /obj/item/borg/stun, /obj/item/device/assembly/flash/armimplant)
|
||||
origin_tech = "materials=5;combat=7;biotech=5;powerstorage=5;syndicate=6;programming=5"
|
||||
|
||||
/obj/item/organ/cyberimp/arm/combat/Initialize()
|
||||
@@ -233,5 +233,5 @@
|
||||
/obj/item/organ/cyberimp/arm/surgery
|
||||
name = "surgical toolset implant"
|
||||
desc = "A set of surgical tools hidden behind a concealed panel on the user's arm"
|
||||
contents = newlist(/obj/item/weapon/retractor/augment, /obj/item/weapon/hemostat/augment, /obj/item/weapon/cautery/augment, /obj/item/weapon/surgicaldrill/augment, /obj/item/weapon/scalpel/augment, /obj/item/weapon/circular_saw/augment, /obj/item/weapon/surgical_drapes)
|
||||
contents = newlist(/obj/item/retractor/augment, /obj/item/hemostat/augment, /obj/item/cautery/augment, /obj/item/surgicaldrill/augment, /obj/item/scalpel/augment, /obj/item/circular_saw/augment, /obj/item/surgical_drapes)
|
||||
origin_tech = "materials=3;engineering=3;biotech=3;programming=2;magnets=3"
|
||||
|
||||
@@ -189,7 +189,7 @@
|
||||
return 1
|
||||
|
||||
// Priority 3: use internals tank.
|
||||
var/obj/item/weapon/tank/I = owner.internal
|
||||
var/obj/item/tank/I = owner.internal
|
||||
if(I && I.air_contents && I.air_contents.total_moles() > num)
|
||||
var/datum/gas_mixture/removed = I.air_contents.remove(num)
|
||||
if(removed.total_moles() > 0.005)
|
||||
|
||||
@@ -144,7 +144,7 @@
|
||||
|
||||
//BOX O' IMPLANTS
|
||||
|
||||
/obj/item/weapon/storage/box/cyber_implants
|
||||
/obj/item/storage/box/cyber_implants
|
||||
name = "boxed cybernetic implants"
|
||||
desc = "A sleek, sturdy box."
|
||||
icon_state = "cyber_implants"
|
||||
@@ -155,7 +155,7 @@
|
||||
/obj/item/device/autosurgeon/reviver)
|
||||
var/amount = 5
|
||||
|
||||
/obj/item/weapon/storage/box/cyber_implants/PopulateContents()
|
||||
/obj/item/storage/box/cyber_implants/PopulateContents()
|
||||
var/implant
|
||||
while(contents.len <= amount)
|
||||
implant = pick(boxed)
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
I.loc = src
|
||||
storedorgan = I
|
||||
to_chat(user, "<span class='notice'>You insert the [I] into [src].</span>")
|
||||
else if(istype(I, /obj/item/weapon/screwdriver))
|
||||
else if(istype(I, /obj/item/screwdriver))
|
||||
if(!storedorgan)
|
||||
to_chat(user, "<span class='notice'>There's no implant in [src] for you to remove.</span>")
|
||||
else
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
I.forceMove(src)
|
||||
storedorgan = I
|
||||
to_chat(user, "<span class='notice'>You insert the [I] into [src].</span>")
|
||||
else if(istype(I, /obj/item/weapon/screwdriver))
|
||||
else if(istype(I, /obj/item/screwdriver))
|
||||
if(!storedorgan)
|
||||
to_chat(user, "<span class='notice'>There's no implant in [src] for you to remove.</span>")
|
||||
else
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
|
||||
|
||||
/obj/item/organ/proc/prepare_eat()
|
||||
var/obj/item/weapon/reagent_containers/food/snacks/organ/S = new
|
||||
var/obj/item/reagent_containers/food/snacks/organ/S = new
|
||||
S.name = name
|
||||
S.desc = desc
|
||||
S.icon = icon
|
||||
@@ -69,7 +69,7 @@
|
||||
|
||||
return S
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/organ
|
||||
/obj/item/reagent_containers/food/snacks/organ
|
||||
name = "appendix"
|
||||
icon_state = "appendix"
|
||||
icon = 'icons/obj/surgery.dmi'
|
||||
@@ -88,7 +88,7 @@
|
||||
if(M == user && ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(status == ORGAN_ORGANIC)
|
||||
var/obj/item/weapon/reagent_containers/food/snacks/S = prepare_eat()
|
||||
var/obj/item/reagent_containers/food/snacks/S = prepare_eat()
|
||||
if(S)
|
||||
H.drop_item()
|
||||
H.put_in_active_hand(S)
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
//reshape_face
|
||||
/datum/surgery_step/reshape_face
|
||||
name = "reshape face"
|
||||
implements = list(/obj/item/weapon/scalpel = 100, /obj/item/weapon/kitchen/knife = 50, /obj/item/weapon/wirecutters = 35)
|
||||
implements = list(/obj/item/scalpel = 100, /obj/item/kitchen/knife = 50, /obj/item/wirecutters = 35)
|
||||
time = 64
|
||||
|
||||
/datum/surgery_step/reshape_face/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
|
||||
@@ -16,12 +16,12 @@
|
||||
|
||||
/datum/surgery_step/add_prosthetic
|
||||
name = "add prosthetic"
|
||||
implements = list(/obj/item/bodypart = 100, /obj/item/weapon/organ_storage = 100, /obj/item/weapon/twohanded/required/chainsaw = 100, /obj/item/weapon/melee/synthetic_arm_blade = 100)
|
||||
implements = list(/obj/item/bodypart = 100, /obj/item/organ_storage = 100, /obj/item/twohanded/required/chainsaw = 100, /obj/item/melee/synthetic_arm_blade = 100)
|
||||
time = 32
|
||||
var/organ_rejection_dam = 0
|
||||
|
||||
/datum/surgery_step/add_prosthetic/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
if(istype(tool, /obj/item/weapon/organ_storage))
|
||||
if(istype(tool, /obj/item/organ_storage))
|
||||
if(!tool.contents.len)
|
||||
to_chat(user, "<span class='notice'>There is nothing inside [tool]!</span>")
|
||||
return -1
|
||||
@@ -58,7 +58,7 @@
|
||||
return -1
|
||||
|
||||
/datum/surgery_step/add_prosthetic/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
if(istype(tool, /obj/item/weapon/organ_storage))
|
||||
if(istype(tool, /obj/item/organ_storage))
|
||||
tool.icon_state = "evidenceobj"
|
||||
tool.desc = "A container for holding body parts."
|
||||
tool.cut_overlays()
|
||||
@@ -77,12 +77,12 @@
|
||||
L.attach_limb(target)
|
||||
user.visible_message("[user] finishes attaching [tool]!", "<span class='notice'>You attach [tool].</span>")
|
||||
qdel(tool)
|
||||
if(istype(tool, /obj/item/weapon/twohanded/required/chainsaw))
|
||||
var/obj/item/weapon/mounted_chainsaw/new_arm = new(target)
|
||||
if(istype(tool, /obj/item/twohanded/required/chainsaw))
|
||||
var/obj/item/mounted_chainsaw/new_arm = new(target)
|
||||
target_zone == "r_arm" ? target.put_in_r_hand(new_arm) : target.put_in_l_hand(new_arm)
|
||||
return 1
|
||||
else if(istype(tool, /obj/item/weapon/melee/synthetic_arm_blade))
|
||||
var/obj/item/weapon/melee/arm_blade/new_arm = new(target,TRUE,TRUE)
|
||||
else if(istype(tool, /obj/item/melee/synthetic_arm_blade))
|
||||
var/obj/item/melee/arm_blade/new_arm = new(target,TRUE,TRUE)
|
||||
target_zone == "r_arm" ? target.put_in_r_hand(new_arm) : target.put_in_l_hand(new_arm)
|
||||
return 1
|
||||
|
||||
|
||||
@@ -17,11 +17,11 @@
|
||||
|
||||
/datum/surgery_step/sever_tail
|
||||
name = "sever tail"
|
||||
implements = list(/obj/item/weapon/scalpel = 100, /obj/item/weapon/circular_saw = 100,
|
||||
/obj/item/weapon/melee/sabre = 100, /obj/item/weapon/melee/transforming/energy/sword/cyborg/saw = 100,
|
||||
/obj/item/weapon/melee/arm_blade = 80, /obj/item/weapon/twohanded/required/chainsaw = 80,
|
||||
/obj/item/weapon/mounted_chainsaw = 80, /obj/item/weapon/twohanded/fireaxe = 50,
|
||||
/obj/item/weapon/hatchet = 40, /obj/item = 30) // 30% success with any sharp item.
|
||||
implements = list(/obj/item/scalpel = 100, /obj/item/circular_saw = 100,
|
||||
/obj/item/melee/sabre = 100, /obj/item/melee/transforming/energy/sword/cyborg/saw = 100,
|
||||
/obj/item/melee/arm_blade = 80, /obj/item/twohanded/required/chainsaw = 80,
|
||||
/obj/item/mounted_chainsaw = 80, /obj/item/twohanded/fireaxe = 50,
|
||||
/obj/item/hatchet = 40, /obj/item = 30) // 30% success with any sharp item.
|
||||
time = 64
|
||||
|
||||
/datum/surgery_step/sever_tail/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/item/weapon/retractor
|
||||
/obj/item/retractor
|
||||
name = "retractor"
|
||||
desc = "Retracts stuff."
|
||||
icon = 'icons/obj/surgery.dmi'
|
||||
@@ -9,7 +9,7 @@
|
||||
origin_tech = "materials=1;biotech=1"
|
||||
|
||||
|
||||
/obj/item/weapon/retractor/augment
|
||||
/obj/item/retractor/augment
|
||||
name = "toolarm retractor"
|
||||
desc = "Micro-mechanical manipulator for retracting stuff."
|
||||
icon = 'icons/obj/surgery.dmi'
|
||||
@@ -21,7 +21,7 @@
|
||||
toolspeed = 0.5
|
||||
|
||||
|
||||
/obj/item/weapon/hemostat
|
||||
/obj/item/hemostat
|
||||
name = "hemostat"
|
||||
desc = "You think you have seen this before."
|
||||
icon = 'icons/obj/surgery.dmi'
|
||||
@@ -33,7 +33,7 @@
|
||||
attack_verb = list("attacked", "pinched")
|
||||
|
||||
|
||||
/obj/item/weapon/hemostat/augment
|
||||
/obj/item/hemostat/augment
|
||||
name = "toolarm hemostat"
|
||||
desc = "Tiny servos power a pair of pincers to stop bleeding."
|
||||
icon = 'icons/obj/surgery.dmi'
|
||||
@@ -46,7 +46,7 @@
|
||||
attack_verb = list("attacked", "pinched")
|
||||
|
||||
|
||||
/obj/item/weapon/cautery
|
||||
/obj/item/cautery
|
||||
name = "cautery"
|
||||
desc = "This stops bleeding."
|
||||
icon = 'icons/obj/surgery.dmi'
|
||||
@@ -58,7 +58,7 @@
|
||||
attack_verb = list("burnt")
|
||||
|
||||
|
||||
/obj/item/weapon/cautery/augment
|
||||
/obj/item/cautery/augment
|
||||
name = "toolarm cautery"
|
||||
desc = "A heated element that cauterizes wounds."
|
||||
icon = 'icons/obj/surgery.dmi'
|
||||
@@ -71,7 +71,7 @@
|
||||
attack_verb = list("burnt")
|
||||
|
||||
|
||||
/obj/item/weapon/surgicaldrill
|
||||
/obj/item/surgicaldrill
|
||||
name = "surgical drill"
|
||||
desc = "You can drill using this item. You dig?"
|
||||
icon = 'icons/obj/surgery.dmi'
|
||||
@@ -87,7 +87,7 @@
|
||||
attack_verb = list("drilled")
|
||||
|
||||
|
||||
/obj/item/weapon/surgicaldrill/augment
|
||||
/obj/item/surgicaldrill/augment
|
||||
name = "toolarm surgical drill"
|
||||
desc = "Effectively a small power drill contained within your arm, edges dulled to prevent tissue damage. May or may not pierce the heavens."
|
||||
icon = 'icons/obj/surgery.dmi'
|
||||
@@ -102,7 +102,7 @@
|
||||
attack_verb = list("drilled")
|
||||
|
||||
|
||||
/obj/item/weapon/scalpel
|
||||
/obj/item/scalpel
|
||||
name = "scalpel"
|
||||
desc = "Cut, cut, and once more cut."
|
||||
icon = 'icons/obj/surgery.dmi'
|
||||
@@ -121,7 +121,7 @@
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
sharpness = IS_SHARP_ACCURATE
|
||||
|
||||
/obj/item/weapon/scalpel/augment
|
||||
/obj/item/scalpel/augment
|
||||
name = "toolarm scalpel"
|
||||
desc = "Ultra-sharp blade attached directly to your bone for extra-accuracy."
|
||||
icon = 'icons/obj/surgery.dmi'
|
||||
@@ -139,12 +139,12 @@
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
sharpness = IS_SHARP_ACCURATE
|
||||
|
||||
/obj/item/weapon/scalpel/suicide_act(mob/user)
|
||||
/obj/item/scalpel/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is slitting [user.p_their()] [pick("wrists", "throat", "stomach")] with [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
return (BRUTELOSS)
|
||||
|
||||
|
||||
/obj/item/weapon/circular_saw
|
||||
/obj/item/circular_saw
|
||||
name = "circular saw"
|
||||
desc = "For heavy duty cutting."
|
||||
icon = 'icons/obj/surgery.dmi'
|
||||
@@ -164,7 +164,7 @@
|
||||
attack_verb = list("attacked", "slashed", "sawed", "cut")
|
||||
sharpness = IS_SHARP
|
||||
|
||||
/obj/item/weapon/circular_saw/augment
|
||||
/obj/item/circular_saw/augment
|
||||
name = "toolarm circular saw"
|
||||
desc = "A small but very fast spinning saw. Edges dulled to prevent accidental cutting inside of the surgeon."
|
||||
icon = 'icons/obj/surgery.dmi'
|
||||
@@ -183,7 +183,7 @@
|
||||
attack_verb = list("attacked", "slashed", "sawed", "cut")
|
||||
sharpness = IS_SHARP
|
||||
|
||||
/obj/item/weapon/surgical_drapes
|
||||
/obj/item/surgical_drapes
|
||||
name = "surgical drapes"
|
||||
desc = "Nanotrasen brand surgical drapes provide optimal safety and infection control."
|
||||
icon = 'icons/obj/surgery.dmi'
|
||||
@@ -192,17 +192,17 @@
|
||||
origin_tech = "biotech=1"
|
||||
attack_verb = list("slapped")
|
||||
|
||||
/obj/item/weapon/surgical_drapes/attack(mob/living/M, mob/user)
|
||||
/obj/item/surgical_drapes/attack(mob/living/M, mob/user)
|
||||
if(!attempt_initiate_surgery(src, M, user))
|
||||
..()
|
||||
|
||||
/obj/item/weapon/organ_storage //allows medical cyborgs to manipulate organs without hands
|
||||
/obj/item/organ_storage //allows medical cyborgs to manipulate organs without hands
|
||||
name = "organ storage bag"
|
||||
desc = "A container for holding body parts."
|
||||
icon = 'icons/obj/storage.dmi'
|
||||
icon_state = "evidenceobj"
|
||||
|
||||
/obj/item/weapon/organ_storage/afterattack(obj/item/I, mob/user, proximity)
|
||||
/obj/item/organ_storage/afterattack(obj/item/I, mob/user, proximity)
|
||||
if(!proximity)
|
||||
return
|
||||
if(contents.len)
|
||||
@@ -228,7 +228,7 @@
|
||||
I.loc = src
|
||||
w_class = I.w_class
|
||||
|
||||
/obj/item/weapon/organ_storage/attack_self(mob/user)
|
||||
/obj/item/organ_storage/attack_self(mob/user)
|
||||
if(contents.len)
|
||||
var/obj/item/I = contents[1]
|
||||
user.visible_message("[user] dumps [I] from [src].", "<span class='notice'>You dump [I] from [src].</span>")
|
||||
|
||||
Reference in New Issue
Block a user