Using ghost chat follow on any atom/movable object will let you follow
that object
Ghost follow changed for AI - again, works for real this time pls beleive
me
Fixes #2006, Morgue recursively deletes contents now
Fixes #2282, alien reagents work for the first time, wow nice smooth gas
the vox
This commit is contained in:
clusterfack
2015-02-16 16:39:02 -06:00
parent 9913788b50
commit 7b94c934dc
5 changed files with 17 additions and 15 deletions

View File

@@ -310,7 +310,8 @@
return return
else else
if(!isemptylist(src.search_contents_for(/obj/item/weapon/disk/nuclear))) var/inside = src.search_contents_for(/atom)
if(is_type_in_list(/obj/item/weapon/disk/nuclear, inside))
usr << "You get the feeling that you shouldn't cremate one of the items in the cremator." usr << "You get the feeling that you shouldn't cremate one of the items in the cremator."
return return
@@ -320,7 +321,7 @@
cremating = 1 cremating = 1
locked = 1 locked = 1
for(var/mob/living/M in contents) for(var/mob/living/M in inside)
if (M.stat!=2) if (M.stat!=2)
M.emote("scream",,, 1) M.emote("scream",,, 1)
//Logging for this causes runtimes resulting in the cremator locking up. Commenting it out until that's figured out. //Logging for this causes runtimes resulting in the cremator locking up. Commenting it out until that's figured out.
@@ -331,7 +332,7 @@
M.ghostize() M.ghostize()
del(M) del(M)
for(var/obj/O in contents) //obj instead of obj/item so that bodybags and ashes get destroyed. We dont want tons and tons of ash piling up for(var/obj/O in inside) //obj instead of obj/item so that bodybags and ashes get destroyed. We dont want tons and tons of ash piling up
del(O) del(O)
new /obj/effect/decal/cleanable/ash(src) new /obj/effect/decal/cleanable/ash(src)

View File

@@ -469,9 +469,6 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
var/list/mobs = getmobs() var/list/mobs = getmobs()
var/input = input("Please, select a mob!", "Haunt", null, null) as null|anything in mobs var/input = input("Please, select a mob!", "Haunt", null, null) as null|anything in mobs
var/mob/target = mobs[input] var/mob/target = mobs[input]
if(istype(target,/mob/living/silicon/ai))
var/mob/living/silicon/ai/M = target
target = M.eyeobj
ManualFollow(target) ManualFollow(target)
// This is the ghost's follow verb with an argument // This is the ghost's follow verb with an argument
@@ -787,10 +784,13 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
..() ..()
if (href_list["follow"]) if (href_list["follow"])
var/mob/target = locate(href_list["follow"]) in mob_list var/target = locate(href_list["follow"])
if(following == target) return
var/mob/A = usr; var/mob/A = usr;
A << "You are now following [target]" A << "You are now following [target]"
//var/mob/living/silicon/ai/A = locate(href_list["track2"]) in mob_list if(istype(target,/mob/living/silicon/ai))
var/mob/living/silicon/ai/M = target
target = M.eyeobj
if(target && target != usr) if(target && target != usr)
following = target following = target
spawn(0) spawn(0)

View File

@@ -1008,10 +1008,11 @@ var/global/list/organ_damage_overlays = list(
if(reagents) if(reagents)
var/alien = 0 //Not the best way to handle it, but neater than checking this for every single reagent proc. var/alien = 0 //Not the best way to handle it, but neater than checking this for every single reagent proc.
if(species && species.name == "Diona") if(src.species)
alien = 1 switch(src.species.type)
else if(species && species.name == "Vox") if(/datum/species/diona) alien = 1
alien = 2 if(/datum/species/vox) alien = 2
if(/datum/species/plasmaman) alien = 3
reagents.metabolize(src,alien) reagents.metabolize(src,alien)
var/total_plasmaloss = 0 var/total_plasmaloss = 0

View File

@@ -261,11 +261,11 @@ datum
return total_transfered return total_transfered
*/ */
metabolize(var/mob/M) metabolize(var/mob/M, var/alien)
for(var/A in reagent_list) for(var/A in reagent_list)
var/datum/reagent/R = A var/datum/reagent/R = A
if(M && R) if(M && R)
R.on_mob_life(M) R.on_mob_life(M, alien)
update_total() update_total()
update_aerosol(var/mob/M) update_aerosol(var/mob/M)

View File

@@ -8,6 +8,7 @@
//Some on_mob_life() procs check for alien races. //Some on_mob_life() procs check for alien races.
#define IS_DIONA 1 #define IS_DIONA 1
#define IS_VOX 2 #define IS_VOX 2
#define IS_PLASMA 3
//The reaction procs must ALWAYS set src = null, this detaches the proc from the object (the reagent) //The reaction procs must ALWAYS set src = null, this detaches the proc from the object (the reagent)
//so that it can continue working when the reagent is deleted while the proc is still active. //so that it can continue working when the reagent is deleted while the proc is still active.
@@ -76,7 +77,6 @@
return //Noticed runtime errors from pacid trying to damage ghosts, this should fix. --NEO return //Noticed runtime errors from pacid trying to damage ghosts, this should fix. --NEO
if( (overdose > 0) && (volume >= overdose))//Overdosing, wooo if( (overdose > 0) && (volume >= overdose))//Overdosing, wooo
M.adjustToxLoss(overdose_dam) M.adjustToxLoss(overdose_dam)
if(!holder) return if(!holder) return
holder.remove_reagent(src.id, custom_metabolism) //By default it slowly disappears. holder.remove_reagent(src.id, custom_metabolism) //By default it slowly disappears.
return return