From cd7abf9942e081a2dcfe664f3078aaa395e002da Mon Sep 17 00:00:00 2001 From: Remie Richards Date: Thu, 23 Apr 2015 15:23:46 +0100 Subject: [PATCH] Fixes cases of mobs not seeing pipe vision. --- .../carbon/alien/humanoid/alien_powers.dm | 7 +++--- code/modules/mob/living/login.dm | 3 +++ code/modules/mob/living/ventcrawling.dm | 22 +++++++++++++++---- code/modules/mob/transform_procs.dm | 13 +++++++++++ 4 files changed, 37 insertions(+), 8 deletions(-) diff --git a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm index f5fa526654f..f90d10b3995 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm @@ -255,10 +255,9 @@ Doesn't work on other aliens/AI.*/ /obj/effect/proc_holder/alien/regurgitate/fire(var/mob/living/carbon/alien/user) if(user.stomach_contents.len) for(var/atom/movable/A in user.stomach_contents) - if(A in user.stomach_contents) - user.stomach_contents.Remove(A) - A.loc = user.loc - //Paralyse(10) + user.stomach_contents.Remove(A) + A.loc = user.loc + A.update_pipe_vision() user.visible_message("[user] hurls out the contents of their stomach!") return diff --git a/code/modules/mob/living/login.dm b/code/modules/mob/living/login.dm index eb582bbcfa1..2d4c8ce153b 100644 --- a/code/modules/mob/living/login.dm +++ b/code/modules/mob/living/login.dm @@ -10,7 +10,10 @@ if("sandbox") CanBuild() + //Vents if(ventcrawler) src << "You can ventcrawl! Use alt+click on vents to quickly travel about the station." + update_pipe_vision() + update_interface() return . diff --git a/code/modules/mob/living/ventcrawling.dm b/code/modules/mob/living/ventcrawling.dm index 5da0fcc8903..6c9d2c583c7 100644 --- a/code/modules/mob/living/ventcrawling.dm +++ b/code/modules/mob/living/ventcrawling.dm @@ -47,9 +47,9 @@ var/list/ventcrawl_machinery = list(/obj/machinery/atmospherics/unary/vent_pump, for(var/obj/item/I in contents) var/failed = 0 if(istype(I, /obj/item/weapon/implant)) - var/obj/item/weapon/implant/imp = I - if(imp.imp_in != src) - failed++ + continue + else + failed++ if(failed) src << "You can't crawl around in the ventilation ducts with items!" @@ -80,4 +80,18 @@ var/list/ventcrawl_machinery = list(/obj/machinery/atmospherics/unary/vent_pump, pipes_shown.len = 0 if(client) - client.eye = src \ No newline at end of file + client.eye = src + + + +//OOP +/atom/proc/update_pipe_vision() + return + +/mob/living/update_pipe_vision() + if(pipes_shown.len) + if(!istype(loc, /obj/machinery/atmospherics)) + remove_ventcrawl() + else + if(istype(loc, /obj/machinery/atmospherics)) + add_ventcrawl(loc) diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index a261287a103..c9d1843bf78 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -78,6 +78,8 @@ if (tr_flags & TR_DEFAULTMSG) O << "You are now a monkey." + O.update_pipe_vision() + for(var/A in loc.vars) if(loc.vars[A] == src) loc.vars[A] = O @@ -191,6 +193,8 @@ if (tr_flags & TR_DEFAULTMSG) O << "You are now a human." + O.update_pipe_vision() + updateappearance(O) . = O @@ -238,6 +242,8 @@ else O.key = key + O.update_pipe_vision() + var/obj/loc_landmark for(var/obj/effect/landmark/start/sloc in landmarks_list) if (sloc.name != "AI") @@ -322,6 +328,8 @@ else O.key = key + O.update_pipe_vision() + O.loc = loc O.job = "Cyborg" O.notify_ai(1) @@ -357,6 +365,7 @@ new_xeno.key = key new_xeno << "You are now an alien." + new_xeno.update_pipe_vision() . = new_xeno qdel(src) @@ -389,6 +398,7 @@ new_slime.key = key new_slime << "You are now a slime. Skreee!" + new_slime.update_pipe_vision() . = new_slime qdel(src) @@ -425,6 +435,7 @@ new_corgi.key = key new_corgi << "You are now a Corgi. Yap Yap!" + new_corgi.update_pipe_vision() . = new_corgi qdel(src) @@ -458,6 +469,7 @@ new_mob << "You suddenly feel more... animalistic." + new_mob.update_pipe_vision() . = new_mob qdel(src) @@ -475,6 +487,7 @@ new_mob.key = key new_mob.a_intent = "harm" new_mob << "You feel more... animalistic" + new_mob.update_pipe_vision() . = new_mob qdel(src)