mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-29 23:17:02 +01:00
Merge remote-tracking branch 'upstream/master' into repathing-sprite-accessories
This commit is contained in:
@@ -168,7 +168,6 @@
|
||||
affected.status &= ~ORGAN_BROKEN
|
||||
affected.status &= ~ORGAN_SPLINTED
|
||||
affected.perma_injury = 0
|
||||
surgery.can_cancel = 1
|
||||
|
||||
return 1
|
||||
|
||||
|
||||
@@ -13,7 +13,11 @@
|
||||
return 0
|
||||
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
return affected && !(affected.status & ORGAN_ROBOT) && affected.encased && affected.open >= 2
|
||||
if(!affected)
|
||||
return 0
|
||||
if(affected.status & ORGAN_ROBOT)
|
||||
return 0
|
||||
return 1
|
||||
|
||||
|
||||
/datum/surgery_step/open_encased/saw
|
||||
@@ -26,12 +30,6 @@
|
||||
|
||||
time = 54
|
||||
|
||||
/datum/surgery_step/open_encased/saw/can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
|
||||
if(!hasorgans(target))
|
||||
return
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
return ..() && affected && affected.open == 2
|
||||
|
||||
/datum/surgery_step/open_encased/saw/begin_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
|
||||
|
||||
if(!hasorgans(target))
|
||||
@@ -52,8 +50,6 @@
|
||||
user.visible_message("<span class='notice'> [user] has cut [target]'s [affected.encased] open with \the [tool].</span>", \
|
||||
"<span class='notice'> You have cut [target]'s [affected.encased] open with \the [tool].</span>")
|
||||
affected.open = 2.5
|
||||
// crossin' the rubicon
|
||||
surgery.can_cancel = 0
|
||||
return 1
|
||||
|
||||
/datum/surgery_step/open_encased/saw/fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
|
||||
@@ -81,12 +77,6 @@
|
||||
|
||||
time = 24
|
||||
|
||||
/datum/surgery_step/open_encased/retract/can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
|
||||
if(!hasorgans(target))
|
||||
return
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
return ..() && affected && affected.open == 2.5
|
||||
|
||||
/datum/surgery_step/open_encased/retract/begin_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
|
||||
|
||||
if(!hasorgans(target))
|
||||
@@ -138,13 +128,6 @@
|
||||
|
||||
time = 24
|
||||
|
||||
/datum/surgery_step/open_encased/close/can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
|
||||
|
||||
if(!hasorgans(target))
|
||||
return
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
return ..() && affected && affected.open == 3
|
||||
|
||||
/datum/surgery_step/open_encased/close/begin_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
|
||||
|
||||
if(!hasorgans(target))
|
||||
@@ -195,13 +178,6 @@
|
||||
|
||||
time = 24
|
||||
|
||||
/datum/surgery_step/open_encased/mend/can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
|
||||
|
||||
if(!hasorgans(target))
|
||||
return
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
return ..() && affected && affected.open == 2.5
|
||||
|
||||
/datum/surgery_step/open_encased/mend/begin_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
|
||||
|
||||
if(!hasorgans(target))
|
||||
@@ -225,6 +201,5 @@
|
||||
user.visible_message(msg, self_msg)
|
||||
|
||||
affected.open = 2
|
||||
surgery.can_cancel = 1
|
||||
|
||||
return 1
|
||||
|
||||
@@ -7,8 +7,6 @@
|
||||
can_infect = 1
|
||||
|
||||
/datum/surgery_step/generic/can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
|
||||
if(target_zone == "eyes") //there are specific steps for eye surgery
|
||||
return 0
|
||||
if(!hasorgans(target))
|
||||
return 0
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
@@ -41,10 +39,6 @@
|
||||
|
||||
time = 16
|
||||
|
||||
/datum/surgery_step/generic/cut_open/can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
return ..() && affected.open == 0 && target_zone != "mouth"
|
||||
|
||||
/datum/surgery_step/generic/cut_open/begin_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
user.visible_message("[user] starts the incision on [target]'s [affected.name] with \the [tool].", \
|
||||
@@ -175,10 +169,6 @@
|
||||
|
||||
time = 24
|
||||
|
||||
/datum/surgery_step/generic/cauterize/can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
return ..() && affected.open && target_zone != "mouth"
|
||||
|
||||
/datum/surgery_step/generic/cauterize/begin_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
user.visible_message("[user] is beginning to cauterize the incision on [target]'s [affected.name] with \the [tool]." , \
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
name = "Cavity Implant/Removal"
|
||||
steps = list(/datum/surgery_step/generic/cut_open,/datum/surgery_step/generic/clamp_bleeders, /datum/surgery_step/generic/retract_skin, /datum/surgery_step/open_encased/saw,
|
||||
/datum/surgery_step/open_encased/retract, /datum/surgery_step/cavity/make_space,/datum/surgery_step/cavity/place_item,/datum/surgery_step/cavity/close_space,/datum/surgery_step/open_encased/close,/datum/surgery_step/glue_bone, /datum/surgery_step/set_bone,/datum/surgery_step/finish_bone,/datum/surgery_step/generic/cauterize)
|
||||
can_cancel = 0
|
||||
possible_locs = list("chest","head")
|
||||
|
||||
|
||||
|
||||
@@ -69,13 +69,14 @@
|
||||
if(parent && parent.children)
|
||||
parent.children -= src
|
||||
|
||||
if(owner)
|
||||
owner.organs_by_name[limb_name] = null
|
||||
|
||||
if(internal_organs)
|
||||
for(var/obj/item/organ/internal/O in internal_organs)
|
||||
internal_organs -= O
|
||||
O.remove(owner,special = 1)
|
||||
qdel(O)
|
||||
|
||||
if(owner)
|
||||
owner.organs_by_name[limb_name] = null
|
||||
|
||||
if(children)
|
||||
for(var/obj/item/organ/external/C in children)
|
||||
@@ -411,8 +412,8 @@ This function completely restores a damaged organ to perfect condition.
|
||||
last_dam = brute_dam + burn_dam
|
||||
if(germ_level)
|
||||
return 1
|
||||
if(!wound_cleanup_timer)
|
||||
wound_cleanup_timer = addtimer(src, "cleanup_wounds", SecondsToTicks(600), 1, wounds)
|
||||
if(!wound_cleanup_timer && wounds.len)
|
||||
wound_cleanup_timer = addtimer(src, "cleanup_wounds", SecondsToTicks(600), unique = 1, wounds)
|
||||
|
||||
if(update_icon())
|
||||
owner.UpdateDamageIcon(1)
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
var/mob/living/carbon/human/H = M
|
||||
parent = H.get_organ(check_zone(parent_organ))
|
||||
if(!istype(parent))
|
||||
log_to_dd("[src] attempted to insert into a [parent], but [parent] wasn't an organ! Area: [get_area(M)]")
|
||||
log_debug("[src] attempted to insert into a [parent_organ], but [parent_organ] wasn't an organ! [atom_loc_line(M)]")
|
||||
else
|
||||
parent.internal_organs |= src
|
||||
//M.internal_organs_by_name[src] |= src(H,1)
|
||||
@@ -52,6 +52,8 @@
|
||||
// Returns the removed object, which is usually just itself
|
||||
// However, you MUST set the object's positiion yourself when you call this!
|
||||
/obj/item/organ/internal/remove(mob/living/carbon/M, special = 0)
|
||||
if(!owner)
|
||||
log_debug("\'remove\' called on [src] without an owner! Mob: [M], [atom_loc_line(M)]")
|
||||
owner = null
|
||||
if(M)
|
||||
M.internal_organs -= src
|
||||
@@ -63,7 +65,7 @@
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/obj/item/organ/external/parent = H.get_organ(check_zone(parent_organ))
|
||||
if(!istype(parent))
|
||||
log_to_dd("[src] attempted to remove from a [parent], but [parent] didn't exist! Area: [get_area(M)], Mob: [M]")
|
||||
log_debug("[src] attempted to remove from a [parent_organ], but [parent_organ] didn't exist! [atom_loc_line(M)]")
|
||||
else
|
||||
parent.internal_organs -= src
|
||||
|
||||
|
||||
@@ -180,10 +180,6 @@
|
||||
stored_mmi.forceMove(get_turf(src))
|
||||
stored_mmi = null
|
||||
..()
|
||||
|
||||
var/mob/living/holder_mob = loc
|
||||
if(istype(holder_mob))
|
||||
holder_mob.unEquip(src)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/organ/internal/brain/mmi_holder/proc/update_from_mmi()
|
||||
|
||||
@@ -68,7 +68,10 @@
|
||||
return 0
|
||||
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
return affected && affected.open_enough_for_surgery()
|
||||
if(affected)
|
||||
return 1
|
||||
|
||||
return 0
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -108,12 +108,15 @@
|
||||
if(!hasorgans(target))
|
||||
return 0
|
||||
|
||||
if(target_zone == "mouth" || target_zone == "eyes")
|
||||
return 0
|
||||
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
|
||||
return affected && affected.open == 2 && (affected.status & ORGAN_DEAD)
|
||||
if(!affected)
|
||||
return 0
|
||||
|
||||
if(!(affected.status & ORGAN_DEAD))
|
||||
return 0
|
||||
|
||||
return 1
|
||||
|
||||
/datum/surgery_step/fix_dead_tissue/begin_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
@@ -164,11 +167,10 @@
|
||||
if(!hasorgans(target))
|
||||
return 0
|
||||
|
||||
if(target_zone == "mouth" || target_zone == "eyes")
|
||||
return 0
|
||||
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
return affected.open == 3 && (affected.status & ORGAN_DEAD)
|
||||
if(!(affected.status & ORGAN_DEAD))
|
||||
return 0
|
||||
return 1
|
||||
|
||||
/datum/surgery_step/fix_dead_tissue/begin_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
@@ -181,7 +183,7 @@
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
|
||||
if(!istype(tool, /obj/item/weapon/reagent_containers))
|
||||
return
|
||||
return 0
|
||||
|
||||
var/obj/item/weapon/reagent_containers/container = tool
|
||||
|
||||
|
||||
@@ -83,7 +83,9 @@
|
||||
/datum/surgery_step/robotics/external/unscrew_hatch/can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
|
||||
if(..())
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
return affected && affected.open == 0 && target_zone != "mouth"
|
||||
if(!affected)
|
||||
return 0
|
||||
return 1
|
||||
|
||||
/datum/surgery_step/robotics/external/unscrew_hatch/begin_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
@@ -117,7 +119,9 @@
|
||||
/datum/surgery_step/robotics/external/open_hatch/can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
|
||||
if(..())
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
return affected && affected.open == 1
|
||||
if(!affected)
|
||||
return 0
|
||||
return 1
|
||||
|
||||
/datum/surgery_step/robotics/external/open_hatch/begin_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
@@ -151,7 +155,9 @@
|
||||
/datum/surgery_step/robotics/external/close_hatch/can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
|
||||
if(..())
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
return affected && affected.open
|
||||
if(!affected)
|
||||
return 0
|
||||
return 1
|
||||
|
||||
/datum/surgery_step/robotics/external/close_hatch/begin_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
@@ -200,9 +206,6 @@
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
if(!affected)
|
||||
return -1
|
||||
if(affected.open != 2)
|
||||
to_chat(user, "<span class='warning'>The [affected] needs to be open to be operated on!</span>")
|
||||
return -1
|
||||
|
||||
if(implement_type in implements_heal_burn)
|
||||
current_type = "burn"
|
||||
@@ -335,7 +338,7 @@
|
||||
var/obj/item/device/mmi/M = tool
|
||||
|
||||
|
||||
if(!(affected && affected.open_enough_for_surgery()))
|
||||
if(!affected)
|
||||
return -1
|
||||
|
||||
if(!istype(M))
|
||||
@@ -369,8 +372,6 @@
|
||||
var/list/organs = target.get_organs_zone(target_zone)
|
||||
if(!(affected && (affected.status & ORGAN_ROBOT)))
|
||||
return -1
|
||||
if(!affected.open_enough_for_surgery())
|
||||
return -1
|
||||
if(!organs.len)
|
||||
to_chat(user, "<span class='notice'>There is no removeable organs in [target]'s [parse_zone(target_zone)]!</span>")
|
||||
return -1
|
||||
|
||||
Reference in New Issue
Block a user