Renamed /datum/organ/external to /datum/limb.

Updated all files.

Removed the skeleton and skin organs.

Updated WIP surgery.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5689 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
petethegoat@gmail.com
2013-02-11 18:52:33 +00:00
parent 7f7f9059a1
commit a1ac5f0e66
45 changed files with 184 additions and 326 deletions

View File

@@ -1,20 +1,26 @@
/datum/surgery/appendectomy
name = "appendectomy"
steps = list(/datum/surgery_step/open, /datum/surgery_step/close)
steps = list(/datum/surgery_step/incise, /datum/surgery_step/clamp_bleeders, /datum/surgery_step/retract_skin, /datum/surgery_step/incise, /datum/surgery_step/extract_appendix, /datum/surgery_step/close)
location = "groin"
/datum/surgery_step/open
implements = list(/obj/item/weapon/scalpel = 100, /obj/item/weapon/kitchenknife = 65, /obj/item/weapon/shard = 45)
time = 12
//extract appendix
/datum/surgery_step/extract_appendix
implements = list(/obj/item/weapon/hemostat = 100, /obj/item/weapon/crowbar = 55)
time = 64
var/obj/item/organ/appendix/A = null
/datum/surgery_step/open/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
user.visible_message("<span class='notice'>[user] begins to cut open [target].</span>")
/datum/surgery_step/extract_appendix/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
A = locate(/obj/item/organ/appendix) in target.internal_organs
if(A)
user.visible_message("<span class='notice'>[user] begins to extract [target]'s appendix.</span>")
else
user.visible_message("<span class='notice'>[user] looks for an appendix in [target].</span>")
/datum/surgery_step/close
implements = list(/obj/item/weapon/cautery = 100, /obj/item/weapon/weldingtool = 70, /obj/item/weapon/lighter = 45, /obj/item/weapon/match = 20)
time = 8
/datum/surgery_step/close/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
user.visible_message("<span class='notice'>[user] begins to mend [target].</span>")
/datum/surgery_step/extract_appendix/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
if(A)
user.visible_message("<span class='notice'>[user] successfully removes [target]'s appendix!</span>")
A.loc = get_turf(target)
target.internal_organs -= A
else
user.visible_message("<span class='notice'>[user] can't find an appendix in [target]!</span>")

View File

@@ -0,0 +1,34 @@
//make incision
/datum/surgery_step/incise
implements = list(/obj/item/weapon/scalpel = 100, /obj/item/weapon/kitchenknife = 65, /obj/item/weapon/shard = 45)
time = 24
/datum/surgery_step/incise/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
user.visible_message("<span class='notice'>[user] begins to make an incision in [target]'s [target_zone].</span>")
//clamp bleeders
/datum/surgery_step/clamp_bleeders
implements = list(/obj/item/weapon/hemostat = 100, /obj/item/weapon/wirecutters = 60, /obj/item/weapon/cable_coil = 15)
time = 48
/datum/surgery_step/clamp_bleeders/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
user.visible_message("<span class='notice'>[user] begins to clamp bleeders in [target]'s [target_zone].</span>")
//retract skin
/datum/surgery_step/retract_skin
implements = list(/obj/item/weapon/retractor = 100, /obj/item/weapon/screwdriver = 45, /obj/item/weapon/wirecutters = 35)
time = 32
/datum/surgery_step/retract_skin/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
user.visible_message("<span class='notice'>[user] begins to retract the skin in [target]'s [target_zone].</span>")
//close incision
/datum/surgery_step/close
implements = list(/obj/item/weapon/cautery = 100, /obj/item/weapon/weldingtool = 70, /obj/item/weapon/lighter = 45, /obj/item/weapon/match = 20)
time = 32
/datum/surgery_step/close/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
user.visible_message("<span class='notice'>[user] begins to mend the incision in [target]'s [target_zone].</span>")

View File

@@ -1,8 +1,13 @@
//WORK IN PROGRESS
/mob/living/carbon/human
/mob/living/carbon
var/list/surgeries = list()
// var/list/organs = list()
var/list/internal_organs = list()
/mob/living/carbon/New()
..()
internal_organs += new /obj/item/organ/appendix
internal_organs += new /obj/item/organ/heart
/mob/living/carbon/human/attackby(obj/item/I, mob/user)
if(lying) //if they're prone

View File

@@ -0,0 +1,27 @@
/obj/item/organ
name = "organ"
icon = 'icons/obj/surgery.dmi'
/obj/item/organ/appendix
name = "appendix"
icon_state = "appendix"
var/inflamed = 0
/obj/item/organ/appendix/update_icon()
if(inflamed)
icon_state = "appendixinflamed"
else
icon_state = "appendix"
/obj/item/organ/heart
name = "heart"
icon_state = "heart-on"
var/beating = 1
/obj/item/organ/heart/update_icon()
if(beating)
icon_state = "heart-on"
else
icon_state = "heart-off"

View File

@@ -3,9 +3,12 @@
var/status = 1
var/list/steps = list()
var/location = "chest"
var/step_in_progress = 0
/datum/surgery/proc/next_step(mob/user, mob/living/carbon/target)
if(step_in_progress) return
var/procedure = steps[status]
var/datum/surgery_step/S = new procedure
if(S)
@@ -15,5 +18,5 @@
/datum/surgery/proc/complete(mob/living/carbon/human/target)
target.surgeries.Cut(src)
target.surgeries -= src
src = null

View File

@@ -12,6 +12,8 @@
/datum/surgery_step/proc/initiate(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
surgery.step_in_progress = 1
preop(user, target, target_zone, tool)
if(do_after(user, time))
var/prob_chance = implements[tool.type]
@@ -23,6 +25,8 @@
else
failure(user, target, target_zone, tool, surgery)
surgery.step_in_progress = 0
/datum/surgery_step/proc/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
user.visible_message("<span class='notice'>[user] begins to perform surgery on [target].</span>")

View File

@@ -487,7 +487,7 @@
name = "Disarming Syndrome"
stage = 4
activate(var/mob/living/carbon/mob,var/multiplier)
var/datum/organ/external/org = mob.organs["r_arm"]
var/datum/limb/org = mob.organs["r_arm"]
org.take_damage(3,0,0,0)
mob << "\red You feel a sting in your right arm."*/