From 4edf69c3c0f8c3ce66b01572e5816eba3ac3ffb0 Mon Sep 17 00:00:00 2001 From: Markolie Date: Sun, 12 Mar 2017 20:59:28 +0100 Subject: [PATCH] Revenant nightvision fix --- .../gamemodes/miniantags/revenant/revenant.dm | 2 +- .../miniantags/revenant/revenant_abilities.dm | 2 ++ .../mob/living/simple_animal/hostile/statue.dm | 18 +++++++----------- .../mob/living/simple_animal/simple_animal.dm | 9 +++++---- 4 files changed, 15 insertions(+), 16 deletions(-) diff --git a/code/game/gamemodes/miniantags/revenant/revenant.dm b/code/game/gamemodes/miniantags/revenant/revenant.dm index f263d658f6b..d3bcdce9f7e 100644 --- a/code/game/gamemodes/miniantags/revenant/revenant.dm +++ b/code/game/gamemodes/miniantags/revenant/revenant.dm @@ -17,7 +17,7 @@ invisibility = INVISIBILITY_REVENANT health = INFINITY //Revenants don't use health, they use essence instead maxHealth = INFINITY - see_invisible = INVISIBILITY_REVENANT + see_invisible = SEE_INVISIBLE_OBSERVER_NOLIGHTING see_in_dark = 8 universal_understand = 1 response_help = "passes through" diff --git a/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm b/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm index 85560dda620..3504ada2a94 100644 --- a/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm +++ b/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm @@ -110,6 +110,8 @@ message = "You toggle your night vision." action_icon_state = "r_nightvision" action_background_icon_state = "bg_revenant" + non_night_vision = INVISIBILITY_REVENANT + night_vision = SEE_INVISIBLE_OBSERVER_NOLIGHTING //Transmit: the revemant's only direct way to communicate. Sends a single message silently to a single mob /obj/effect/proc_holder/spell/targeted/revenant_transmit diff --git a/code/modules/mob/living/simple_animal/hostile/statue.dm b/code/modules/mob/living/simple_animal/hostile/statue.dm index 41ca671bc56..168ed2d441c 100644 --- a/code/modules/mob/living/simple_animal/hostile/statue.dm +++ b/code/modules/mob/living/simple_animal/hostile/statue.dm @@ -39,6 +39,7 @@ search_objects = 1 // So that it can see through walls + see_invisible = SEE_INVISIBLE_OBSERVER_NOLIGHTING sight = SEE_SELF|SEE_MOBS|SEE_OBJS|SEE_TURFS anchored = 1 status_flags = GODMODE // Cannot push also @@ -56,9 +57,6 @@ AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/blindness(null)) AddSpell(new /obj/effect/proc_holder/spell/targeted/night_vision(null)) - // Give nightvision - see_invisible = SEE_INVISIBLE_OBSERVER_NOLIGHTING - // Set creator if(creator) src.creator = creator @@ -190,7 +188,7 @@ //Toggle Night Vision /obj/effect/proc_holder/spell/targeted/night_vision - name = "Toggle Nightvision \[ON\]" + name = "Toggle Nightvision" desc = "Toggle your nightvision mode." charge_max = 10 @@ -199,17 +197,15 @@ message = "You toggle your night vision!" range = -1 include_user = 1 + var/non_night_vision = SEE_INVISIBLE_LIVING + var/night_vision = SEE_INVISIBLE_OBSERVER_NOLIGHTING /obj/effect/proc_holder/spell/targeted/night_vision/cast(list/targets, mob/user = usr) - for(var/mob/living/target in targets) - if(target.see_invisible == SEE_INVISIBLE_LIVING) - target.see_invisible = SEE_INVISIBLE_OBSERVER_NOLIGHTING - name = "Toggle Nightvision \[ON\]" + if(target.see_invisible == non_night_vision) + target.see_invisible = night_vision else - target.see_invisible = SEE_INVISIBLE_LIVING - name = "Toggle Nightvision \[OFF\]" - return + target.see_invisible = non_night_vision /mob/living/simple_animal/hostile/statue/sentience_act() faction -= "neutral" diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 9669c90b3ec..aec9d2d0c95 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -712,16 +712,17 @@ /mob/living/simple_animal/proc/sentience_act() //Called when a simple animal gains sentience via gold slime potion return -/mob/living/simple_animal/update_sight() +/mob/living/simple_animal/update_sight(reset_sight = FALSE) if(!client) return if(stat == DEAD) grant_death_vision() return - see_invisible = initial(see_invisible) - see_in_dark = initial(see_in_dark) - sight = initial(sight) + if(reset_sight) + see_invisible = initial(see_invisible) + see_in_dark = initial(see_in_dark) + sight = initial(sight) if(client.eye != src) var/atom/A = client.eye