mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 10:21:11 +00:00
Bugfixes
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:
@@ -310,7 +310,8 @@
|
||||
return
|
||||
|
||||
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."
|
||||
return
|
||||
|
||||
@@ -320,7 +321,7 @@
|
||||
cremating = 1
|
||||
locked = 1
|
||||
|
||||
for(var/mob/living/M in contents)
|
||||
for(var/mob/living/M in inside)
|
||||
if (M.stat!=2)
|
||||
M.emote("scream",,, 1)
|
||||
//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()
|
||||
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)
|
||||
|
||||
new /obj/effect/decal/cleanable/ash(src)
|
||||
|
||||
@@ -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/input = input("Please, select a mob!", "Haunt", null, null) as null|anything in mobs
|
||||
var/mob/target = mobs[input]
|
||||
if(istype(target,/mob/living/silicon/ai))
|
||||
var/mob/living/silicon/ai/M = target
|
||||
target = M.eyeobj
|
||||
ManualFollow(target)
|
||||
|
||||
// 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"])
|
||||
var/mob/target = locate(href_list["follow"]) in mob_list
|
||||
var/target = locate(href_list["follow"])
|
||||
if(following == target) return
|
||||
var/mob/A = usr;
|
||||
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)
|
||||
following = target
|
||||
spawn(0)
|
||||
|
||||
@@ -1008,10 +1008,11 @@ var/global/list/organ_damage_overlays = list(
|
||||
if(reagents)
|
||||
|
||||
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")
|
||||
alien = 1
|
||||
else if(species && species.name == "Vox")
|
||||
alien = 2
|
||||
if(src.species)
|
||||
switch(src.species.type)
|
||||
if(/datum/species/diona) alien = 1
|
||||
if(/datum/species/vox) alien = 2
|
||||
if(/datum/species/plasmaman) alien = 3
|
||||
reagents.metabolize(src,alien)
|
||||
|
||||
var/total_plasmaloss = 0
|
||||
|
||||
@@ -261,11 +261,11 @@ datum
|
||||
return total_transfered
|
||||
*/
|
||||
|
||||
metabolize(var/mob/M)
|
||||
metabolize(var/mob/M, var/alien)
|
||||
for(var/A in reagent_list)
|
||||
var/datum/reagent/R = A
|
||||
if(M && R)
|
||||
R.on_mob_life(M)
|
||||
R.on_mob_life(M, alien)
|
||||
update_total()
|
||||
|
||||
update_aerosol(var/mob/M)
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
//Some on_mob_life() procs check for alien races.
|
||||
#define IS_DIONA 1
|
||||
#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)
|
||||
//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
|
||||
if( (overdose > 0) && (volume >= overdose))//Overdosing, wooo
|
||||
M.adjustToxLoss(overdose_dam)
|
||||
|
||||
if(!holder) return
|
||||
holder.remove_reagent(src.id, custom_metabolism) //By default it slowly disappears.
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user