diff --git a/code/game/gamemodes/events/ninja_equipment.dm b/code/game/gamemodes/events/ninja_equipment.dm index 45bc487eefa..647933ca3d9 100644 --- a/code/game/gamemodes/events/ninja_equipment.dm +++ b/code/game/gamemodes/events/ninja_equipment.dm @@ -869,25 +869,27 @@ ________________________________________________________________________________ if(s_active) cancel_stealth() else - spawn(0) - anim(U.loc,U,'icons/mob/mob.dmi',,"cloak",,U.dir) + anim(U.loc,U,'icons/mob/mob.dmi',,"cloak",,U.dir) s_active=!s_active - U.update_icons() //update their icons + icon_state = U.gender==FEMALE ? "s-ninjasf" : "s-ninjas" + U.regenerate_icons() //update their icons U << "\blue You are now invisible to normal detection." for(var/mob/O in oviewers(U)) O.show_message("[U.name] vanishes into thin air!",1) + U.invisibility = INVISIBILITY_OBSERVER return /obj/item/clothing/suit/space/space_ninja/proc/cancel_stealth() var/mob/living/carbon/human/U = affecting if(s_active) - spawn(0) - anim(U.loc,U,'icons/mob/mob.dmi',,"uncloak",,U.dir) + anim(U.loc,U,'icons/mob/mob.dmi',,"uncloak",,U.dir) s_active=!s_active - U.update_icons() //update their icons U << "\blue You are now visible." + U.invisibility = 0 for(var/mob/O in oviewers(U)) O.show_message("[U.name] appears from thin air!",1) + icon_state = U.gender==FEMALE ? "s-ninjanf" : "s-ninjan" + U.regenerate_icons() //update their icons return 1 return 0 diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index c38c0c51ba5..e82c8f3aa30 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -143,14 +143,11 @@ Please contact me on #coderbus IRC. ~Carn x overlays += I else var/stealth = 0 - if(istype(wear_suit, /obj/item/clothing/suit/space/space_ninja) && wear_suit:s_active) - stealth = 1 - else - //cloaking devices. //TODO: get rid of this :< - for(var/obj/item/weapon/cloaking_device/S in list(l_hand,r_hand,belt,l_store,r_store)) - if(S.active) - stealth = 1 - break + //cloaking devices. //TODO: get rid of this :< + for(var/obj/item/weapon/cloaking_device/S in list(l_hand,r_hand,belt,l_store,r_store)) + if(S.active) + stealth = 1 + break if(stealth) icon = 'icons/mob/human.dmi' icon_state = "body_cloaked" diff --git a/code/modules/mob/living/silicon/pai/hud.dm b/code/modules/mob/living/silicon/pai/hud.dm index 0b89f5f1c6e..c8c8bb3a662 100644 --- a/code/modules/mob/living/silicon/pai/hud.dm +++ b/code/modules/mob/living/silicon/pai/hud.dm @@ -9,6 +9,8 @@ var/image/holder var/turf/T = get_turf_or_move(src.loc) for(var/mob/living/carbon/human/perp in view(T)) + if(src.see_invisible < perp.invisibility) + continue var/perpname = "wot" holder = perp.hud_list[ID_HUD] if(perp.wear_id) @@ -51,7 +53,8 @@ var/image/holder var/turf/T = get_turf_or_move(src.loc) for(var/mob/living/carbon/human/patient in view(T)) - + if(src.see_invisible < patient.invisibility) + continue var/foundVirus = 0 for(var/datum/disease/D in patient.viruses) if(!D.hidden[SCANNER])