Merge branch 'master' into abductor-update
This commit is contained in:
@@ -25,7 +25,7 @@
|
||||
/obj/item/shard = 25, /obj/item = 20)
|
||||
time = 100
|
||||
/datum/surgery_step/lobotomize/tool_check(mob/user, obj/item/tool)
|
||||
if(implement_type == /obj/item && !tool.is_sharp())
|
||||
if(implement_type == /obj/item && !tool.get_sharpness())
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
/datum/surgery_step/viral_bond/tool_check(mob/user, obj/item/tool)
|
||||
if(implement_type == TOOL_WELDER || implement_type == /obj/item)
|
||||
return tool.is_hot()
|
||||
return tool.get_temperature()
|
||||
return TRUE
|
||||
|
||||
/datum/surgery_step/viral_bond/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
|
||||
@@ -112,14 +112,14 @@
|
||||
/mob/proc/get_leg_ignore()
|
||||
return FALSE
|
||||
|
||||
/mob/living/carbon/alien/larva/get_leg_ignore()
|
||||
return TRUE
|
||||
|
||||
/mob/living/carbon/human/get_leg_ignore()
|
||||
if(movement_type & FLYING|FLOATING)
|
||||
/mob/living/carbon/get_leg_ignore()
|
||||
if(movement_type & (FLYING|FLOATING))
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/mob/living/carbon/alien/larva/get_leg_ignore()
|
||||
return TRUE
|
||||
|
||||
/mob/living/proc/get_missing_limbs()
|
||||
return list()
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
/datum/surgery_step/handle_cavity/tool_check(mob/user, obj/item/tool)
|
||||
if(istype(tool, /obj/item/cautery) || istype(tool, /obj/item/gun/energy/laser))
|
||||
return FALSE
|
||||
return !tool.is_hot()
|
||||
return !tool.get_temperature()
|
||||
/datum/surgery_step/handle_cavity/preop(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
var/obj/item/bodypart/chest/CH = target.get_bodypart(BODY_ZONE_CHEST)
|
||||
IC = CH.cavity_item
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
"[user] begins to unscrew the shell of [target]'s [parse_zone(target_zone)].")
|
||||
|
||||
/datum/surgery_step/mechanic_incise/tool_check(mob/user, obj/item/tool)
|
||||
if(implement_type == /obj/item && !tool.is_sharp())
|
||||
if(implement_type == /obj/item && !tool.get_sharpness())
|
||||
return FALSE
|
||||
return TRUE
|
||||
//close shell
|
||||
@@ -33,7 +33,7 @@
|
||||
"[user] begins to screw the shell of [target]'s [parse_zone(target_zone)].")
|
||||
|
||||
/datum/surgery_step/mechanic_close/tool_check(mob/user, obj/item/tool)
|
||||
if(implement_type == /obj/item && !tool.is_sharp())
|
||||
if(implement_type == /obj/item && !tool.get_sharpness())
|
||||
return FALSE
|
||||
return TRUE
|
||||
//prepare electronics
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
"[user] begins to make an incision in [target]'s [parse_zone(target_zone)].")
|
||||
|
||||
/datum/surgery_step/incise/tool_check(mob/user, obj/item/tool)
|
||||
if(implement_type == /obj/item && !tool.is_sharp())
|
||||
if(implement_type == /obj/item && !tool.get_sharpness())
|
||||
return FALSE
|
||||
return TRUE
|
||||
/datum/surgery_step/incise/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
@@ -79,7 +79,7 @@
|
||||
|
||||
/datum/surgery_step/close/tool_check(mob/user, obj/item/tool)
|
||||
if(implement_type == TOOL_WELDER || implement_type == /obj/item)
|
||||
return tool.is_hot()
|
||||
return tool.get_temperature()
|
||||
return TRUE
|
||||
/datum/surgery_step/close/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
if(locate(/datum/surgery_step/saw) in surgery.steps)
|
||||
|
||||
@@ -142,22 +142,3 @@
|
||||
if(prob(60/severity))
|
||||
to_chat(owner, "<span class='warning'>Your breathing tube suddenly closes!</span>")
|
||||
owner.losebreath += 2
|
||||
|
||||
//BOX O' IMPLANTS
|
||||
|
||||
/obj/item/storage/box/cyber_implants
|
||||
name = "boxed cybernetic implants"
|
||||
desc = "A sleek, sturdy box."
|
||||
icon_state = "cyber_implants"
|
||||
var/list/boxed = list(
|
||||
/obj/item/autosurgeon/thermal_eyes,
|
||||
/obj/item/autosurgeon/xray_eyes,
|
||||
/obj/item/autosurgeon/anti_stun,
|
||||
/obj/item/autosurgeon/reviver)
|
||||
var/amount = 5
|
||||
|
||||
/obj/item/storage/box/cyber_implants/PopulateContents()
|
||||
var/implant
|
||||
while(contents.len <= amount)
|
||||
implant = pick(boxed)
|
||||
new implant(src)
|
||||
|
||||
@@ -103,6 +103,26 @@
|
||||
/obj/item/autosurgeon/anti_drop
|
||||
starting_organ = /obj/item/organ/cyberimp/brain/anti_drop
|
||||
|
||||
//BOX O' IMPLANTS
|
||||
|
||||
/obj/item/storage/box/cyber_implants
|
||||
name = "boxed cybernetic implants"
|
||||
desc = "A sleek, sturdy box."
|
||||
icon_state = "syndiebox"
|
||||
illustration = "cyber_implants"
|
||||
var/list/boxed = list(
|
||||
/obj/item/autosurgeon/thermal_eyes,
|
||||
/obj/item/autosurgeon/xray_eyes,
|
||||
/obj/item/autosurgeon/anti_stun,
|
||||
/obj/item/autosurgeon/reviver)
|
||||
var/amount = 5
|
||||
|
||||
/obj/item/storage/box/cyber_implants/PopulateContents()
|
||||
var/implant
|
||||
while(contents.len <= amount)
|
||||
implant = pick(boxed)
|
||||
new implant(src)
|
||||
|
||||
/obj/item/autosurgeon/penis
|
||||
desc = "A single use autosurgeon that contains a penis. A screwdriver can be used to remove it, but implants can't be placed back in."
|
||||
uses = 1
|
||||
|
||||
@@ -227,7 +227,7 @@
|
||||
terminate_effects()
|
||||
. = ..()
|
||||
|
||||
/obj/item/organ/eyes/robotic/glow/Remove()
|
||||
/obj/item/organ/eyes/robotic/glow/Remove(mob/living/carbon/M, special = FALSE)
|
||||
terminate_effects()
|
||||
. = ..()
|
||||
|
||||
@@ -338,7 +338,7 @@
|
||||
/obj/item/organ/eyes/robotic/glow/proc/start_visuals()
|
||||
if(!islist(eye_lighting))
|
||||
regenerate_light_effects()
|
||||
if((eye_lighting.len < light_beam_distance) || !on_mob)
|
||||
if((LAZYLEN(eye_lighting) < light_beam_distance) || !on_mob)
|
||||
regenerate_light_effects()
|
||||
sync_light_effects()
|
||||
update_visuals()
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
|
||||
/obj/item/organ/proc/Insert(mob/living/carbon/M, special = 0, drop_if_replaced = TRUE)
|
||||
if(!iscarbon(M) || owner == M)
|
||||
return
|
||||
return FALSE
|
||||
|
||||
var/obj/item/organ/replaced = M.getorganslot(slot)
|
||||
if(replaced)
|
||||
@@ -53,6 +53,8 @@
|
||||
A.Grant(M)
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
|
||||
return TRUE
|
||||
|
||||
//Special is for instant replacement like autosurgeons
|
||||
/obj/item/organ/proc/Remove(mob/living/carbon/M, special = FALSE)
|
||||
owner = null
|
||||
@@ -67,6 +69,8 @@
|
||||
A.Remove(M)
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
return TRUE
|
||||
|
||||
/obj/item/organ/proc/on_find(mob/living/finder)
|
||||
return
|
||||
|
||||
@@ -184,7 +188,7 @@
|
||||
if(owner)
|
||||
// The special flag is important, because otherwise mobs can die
|
||||
// while undergoing transformation into different mobs.
|
||||
Remove(owner, special=TRUE)
|
||||
Remove(owner, TRUE)
|
||||
return ..()
|
||||
|
||||
/obj/item/organ/attack(mob/living/carbon/M, mob/user)
|
||||
|
||||
@@ -92,7 +92,7 @@
|
||||
return TRUE
|
||||
if(iscyborg(user) && user.a_intent != INTENT_HARM) //to save asimov borgs a LOT of heartache
|
||||
return TRUE
|
||||
if(tool.item_flags & SURGICAL_TOOL) //Just because you used the wrong tool it doesn't mean you meant to whack the patient with it
|
||||
if(tool && tool.item_flags & SURGICAL_TOOL) //Just because you used the wrong tool it doesn't mean you meant to whack the patient with it
|
||||
to_chat(user, "<span class='warning'>This step requires a different tool!</span>")
|
||||
return TRUE
|
||||
|
||||
|
||||
Reference in New Issue
Block a user