This commit is contained in:
Zuhayr
2014-12-24 22:50:13 +10:30
11 changed files with 116 additions and 164 deletions

View File

@@ -52,7 +52,7 @@
if(stat == DEAD)
return 0
if(!gibbed)
if(!gibbed && deathmessage != "no message") // This is gross, but reliable. Only brains use it.
src.visible_message("<b>\The [src.name]</b> [deathmessage]")
stat = DEAD

View File

@@ -73,6 +73,7 @@
brainmob.mind.transfer_to(target)
else
target.key = brainmob.key
..()
/obj/item/organ/brain/slime
name = "slime core"

View File

@@ -1,7 +1,9 @@
/mob/living/carbon/brain/death(gibbed)
if(!gibbed && istype(container, /obj/item/device/mmi)) //If not gibbed but in a container.
container.icon_state = "mmi_dead"
return ..(gibbed,"beeps shrilly as the MMI flatlines!")
return ..(gibbed,"beeps shrilly as the MMI flatlines!")
else
return ..(gibbed,"no message")
/mob/living/carbon/brain/gib()
if(istype(container, /obj/item/device/mmi))

View File

@@ -1,5 +1,12 @@
/mob/living/carbon/human/gib()
for(var/datum/organ/internal/I in internal_organs)
var/obj/item/organ/current_organ = I.remove()
if(current_organ)
if(istype(loc,/turf))
current_organ.throw_at(get_edge_target_turf(src,pick(alldirs)),rand(1,3),30)
current_organ.removed(src)
for(var/datum/organ/external/E in src.organs)
if(istype(E, /datum/organ/external/chest))
continue
@@ -8,24 +15,6 @@
// Override the current limb status and don't cause an explosion
E.droplimb(1,1)
for(var/datum/organ/internal/I in internal_organs)
var/obj/item/organ/current_organ = I.remove()
current_organ.loc = src.loc
current_organ.organ_data.rejecting = null
var/datum/reagent/blood/organ_blood = locate(/datum/reagent/blood) in current_organ.reagents.reagent_list
if(!organ_blood || !organ_blood.data["blood_DNA"])
src.vessel.trans_to(current_organ, 5, 1, 1)
current_organ.removed(src)
if(current_organ && istype(loc,/turf))
var/target_dir = pick(cardinal)
var/turf/target_turf = loc
var/steps = rand(1,2)
for(var/i = 0;i<steps;i++)
target_turf = get_step(target_turf,target_dir)
current_organ.throw_at(target_turf)
..(species.gibbed_anim)
gibs(loc, viruses, dna, null, species.flesh_color, species.blood_color)

View File

@@ -944,7 +944,11 @@
vessel.add_reagent("blood",560-vessel.total_volume)
fixblood()
for (var/obj/item/weapon/organ/head/H in world)
// Fix up any missing organs.
// This will ignore any prosthetics in the prefs currently.
species.create_organs(src)
for (var/obj/item/organ/brain/H in world)
if(H.brainmob)
if(H.brainmob.real_name == src.real_name)
if(H.brainmob.mind)
@@ -1144,6 +1148,13 @@
vessel.add_reagent("blood",560-vessel.total_volume)
fixblood()
// Rebuild the HUD. If they aren't logged in then login() should reinstantiate it for them.
if(client && client.screen)
client.screen.len = null
if(hud_used)
del(hud_used)
hud_used = new /datum/hud(src)
if(species)
return 1
else