Merge pull request #2903 from Aurorablade/OrganRefactor

[HOLY SHIT!]Charlie, lets go to candy mountain, charlie
This commit is contained in:
Fox McCloud
2016-03-04 19:51:50 -05:00
138 changed files with 4384 additions and 2426 deletions
@@ -113,7 +113,7 @@
severity -= 1
severity = min(max(severity, 0), 4)
var/mob/living/carbon/human/H = C
var/obj/item/organ/eyes/E = H.internal_organs_by_name["eyes"]
var/obj/item/organ/internal/eyes/E = H.get_int_organ(/obj/item/organ/internal/eyes)
switch(severity)
if(0)
+9 -1
View File
@@ -202,7 +202,7 @@ REAGENT SCANNER
// user.show_message("\blue Bloodstream Analysis located [M.reagents:get_reagent_amount("epinephrine")] units of rejuvenation chemicals.")
if (M.has_brain_worms())
user.show_message("\red Subject suffering from aberrant brain activity. Recommend further scanning.")
else if (M.getBrainLoss() >= 100 || istype(M, /mob/living/carbon/human) && M:brain_op_stage == 4.0)
else if (M.getBrainLoss() >= 100 || istype(M, /mob/living/carbon/human) && !M.get_int_organ(/obj/item/organ/internal/brain))
user.show_message("\red Subject is brain dead.")
else if (M.getBrainLoss() >= 60)
user.show_message("\red Severe brain damage detected. Subject likely to have mental retardation.")
@@ -245,6 +245,14 @@ REAGENT SCANNER
if(H.heart_attack)
user.show_message("<span class='userdanger'>Subject suffering from heart attack: Apply defibrillator immediately.</span>")
user.show_message("\blue Subject's pulse: <font color='[H.pulse == PULSE_THREADY || H.pulse == PULSE_NONE ? "red" : "blue"]'>[H.get_pulse(GETPULSE_TOOL)] bpm.</font>")
var/implant_detect
for(var/obj/item/organ/internal/cyberimp/CI in H.internal_organs)
if(CI.status == ORGAN_ROBOT)
implant_detect += "[H.name] is modified with a [CI.name].<br>"
if(implant_detect)
user.show_message("<span class='notice'>Detected cybernetic modifications:</span>")
user.show_message("<span class='notice'>[implant_detect]</span>")
src.add_fingerprint(user)
return
+3 -15
View File
@@ -112,11 +112,7 @@
affecting.heal_damage(src.heal_brute, src.heal_burn, 0)
use(1)
else
if (can_operate(H)) //Checks if mob is lying down on table for surgery
if (do_surgery(H,user,src))
return
else
user << "<span class='notice'>The [affecting.name] is cut open, you'll need more than some ointment!</span>"
user << "<span class='notice'>The [affecting.name] is cut open, you'll need more than some ointment!</span>"
/obj/item/stack/medical/bruise_pack/comfrey
name = "\improper Comfrey leaf"
@@ -177,11 +173,7 @@
affecting.heal_damage(heal_brute,0)
use(1)
else
if (can_operate(H)) //Checks if mob is lying down on table for surgery
if (do_surgery(H,user,src))
return
else
user << "<span class='notice'>The [affecting.name] is cut open, you'll need more than a bandage!</span>"
user << "<span class='notice'>The [affecting.name] is cut open, you'll need more than a bandage!</span>"
/obj/item/stack/medical/advanced/ointment
name = "advanced burn kit"
@@ -210,11 +202,7 @@
affecting.heal_damage(0,heal_burn)
use(1)
else
if (can_operate(H)) //Checks if mob is lying down on table for surgery
if (do_surgery(H,user,src))
return
else
user << "<span class='notice'>The [affecting.name] is cut open, you'll need more than a bandage!</span>"
user << "<span class='notice'>The [affecting.name] is cut open, you'll need more than a bandage!</span>"
/obj/item/stack/medical/splint
name = "medical splints"
@@ -27,10 +27,6 @@
var/mob/living/carbon/human/H = M
var/obj/item/organ/external/S = H.get_organ(user.zone_sel.selecting)
if(can_operate(H))
if (do_surgery(H,user,src))
return
if (S && (S.status & ORGAN_ROBOT))
if(S.get_damage())
S.heal_damage(15, 15, robo_repair = 1)
+1 -1
View File
@@ -394,7 +394,7 @@
defib.deductcharge(revivecost)
add_logs(M, user, "revived", object="defibrillator")
else
if(tplus > tlimit)
if(tplus > tlimit|| !H.get_int_organ(/obj/item/organ/internal/heart))
user.visible_message("<span class='boldnotice'>[defib] buzzes: Resuscitation failed - Heart tissue damage beyond point of no return for defibrillation.</span>")
else if(total_burn >= 180 || total_brute >= 180)
user.visible_message("<span class='boldnotice'>[defib] buzzes: Resuscitation failed - Severe tissue damage detected.</span>")
@@ -46,7 +46,7 @@
if(!eye_safety && ishuman(M))
var/mob/living/carbon/human/H = M
var/obj/item/organ/eyes/E = H.internal_organs_by_name["eyes"]
var/obj/item/organ/internal/eyes/E = H.get_int_organ(/obj/item/organ/internal/eyes)
flick("e_flash", M.flash)
if (E)
E.damage += eye_damage
+1 -4
View File
@@ -54,7 +54,7 @@
if(!M.can_eat())
user << "<span class=warning>[M] cannot eat with a fork!</span>"
return
if(M == user)
M.visible_message("<span class='notice'>\The [user] eats some [loaded] from \the [src].</span>")
reagents.trans_to(M, reagents.total_volume)
@@ -69,9 +69,6 @@
overlays.Cut()
return
if (can_operate(M))
do_surgery(M, user, src)
/obj/item/weapon/kitchen/utensil/fork
name = "fork"
desc = "It's a fork. Sure is pointy."
+1 -1
View File
@@ -358,7 +358,7 @@
var/safety = user:eyecheck()
if(ishuman(user))
var/mob/living/carbon/human/H = user
var/obj/item/organ/eyes/E = H.internal_organs_by_name["eyes"]
var/obj/item/organ/internal/eyes/E = H.get_int_organ(/obj/item/organ/internal/eyes)
if(!istype(E)) // No eyes? No problem!
return
switch(safety)