Adds holy vision (Some mobs can now see blessed tiles) (#34497)

* Blessed turfs are visible to people who care about blessed turfs

* A better way

* Adds holy vision

* Compacts special types

* space space space

* Glowing

* Final Solution

* wraith

* bawhoppen has autism and we must hugbox

* Implements feedback
This commit is contained in:
Dax Dupont
2018-01-21 09:04:07 +01:00
committed by CitadelStationBot
parent 7ec2a4230d
commit 4826dec880
11 changed files with 59 additions and 13 deletions
+1 -1
View File
@@ -38,4 +38,4 @@ GLOBAL_LIST_EMPTY(wire_name_directory)
GLOBAL_LIST_EMPTY(ai_status_displays)
GLOBAL_LIST_EMPTY(mob_spawners) // All mob_spawn objects
GLOBAL_LIST_EMPTY(alert_consoles) // Station alert consoles, /obj/machinery/computer/station_alert
GLOBAL_LIST_EMPTY(alert_consoles) // Station alert consoles, /obj/machinery/computer/station_alert
+17
View File
@@ -124,3 +124,20 @@ GLOBAL_LIST_EMPTY(active_alternate_appearances)
/datum/atom_hud/alternate_appearance/basic/observers/mobShouldSee(mob/M)
return isobserver(M)
/datum/atom_hud/alternate_appearance/basic/blessedAware
/datum/atom_hud/alternate_appearance/basic/blessedAware/New()
..()
for(var/mob in GLOB.mob_list)
if(mobShouldSee(mob))
add_hud_to(mob)
/datum/atom_hud/alternate_appearance/basic/blessedAware/mobShouldSee(mob/M)
if(M.mind && (M.mind.assigned_role == "Chaplain"))
return TRUE
if (istype(M, /mob/living/simple_animal/hostile/construct/wraith))
return TRUE
if(isrevenant(M) || iseminence(M) || iswizard(M))
return TRUE
return FALSE
@@ -26,7 +26,7 @@
var/OldLoc = loc
if(NewLoc && !istype(NewLoc, /turf/open/indestructible/reebe_void))
var/turf/T = get_turf(NewLoc)
if(T.flags_1 & NOJAUNT_1)
for(var/obj/effect/blessing/B in T)
if(last_failed_turf != T)
T.visible_message("<span class='warning'>[T] suddenly emits a ringing sound!</span>", ignore_mob = src)
playsound(T, 'sound/machines/clockcult/ark_damage.ogg', 75, FALSE)
@@ -224,7 +224,6 @@
invisibility = INVISIBILITY_ABSTRACT
revealed = FALSE
ghostize(0)//Don't re-enter invisible corpse
return
//reveal, stun, icon updates, cast checks, and essence changing
@@ -238,9 +238,10 @@
INVOKE_ASYNC(src, .proc/defile, T)
/obj/effect/proc_holder/spell/aoe_turf/revenant/defile/proc/defile(turf/T)
if(T.flags_1 & NOJAUNT_1)
T.flags_1 &= ~NOJAUNT_1
for(var/obj/effect/blessing/B in T)
qdel(B)
new /obj/effect/temp_visual/revenant(T)
if(!isplatingturf(T) && !istype(T, /turf/open/floor/engine/cult) && isfloorturf(T) && prob(15))
var/turf/open/floor/floor = T
if(floor.intact && floor.floor_tile)
+18
View File
@@ -0,0 +1,18 @@
/obj/effect/blessing
name = "holy blessing"
desc = "Holy energies interfere with ethereal travel at this location."
icon = 'icons/effects/effects.dmi'
icon_state = null
anchored = TRUE
density = FALSE
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
/obj/effect/blessing/Initialize(mapload)
. = ..()
for(var/obj/effect/blessing/B in loc)
if(B != src)
return INITIALIZE_HINT_QDEL
var/image/I = image(icon = 'icons/effects/effects.dmi', icon_state = "blessed", layer = ABOVE_OPEN_TURF_LAYER, loc = src)
I.alpha = 64
I.appearance_flags = RESET_ALPHA
add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/blessedAware, "blessing", I)
+1 -1
View File
@@ -264,7 +264,7 @@
M.take_damage(damage*2, BRUTE, "melee", 1)
/turf/proc/Bless()
flags_1 |= NOJAUNT_1
new /obj/effect/blessing(src)
/turf/storage_contents_dump_act(obj/item/storage/src_object, mob/user)
if(src_object.contents.len)
+7 -3
View File
@@ -212,9 +212,13 @@
R.stun(20)
return
if(stepTurf.flags_1 & NOJAUNT_1)
to_chat(L, "<span class='warning'>Holy energies block your path.</span>")
else
L.loc = get_step(L, direct)
to_chat(L, "<span class='warning'>Some strange aura is blocking the way.</span>")
return
if (locate(/obj/effect/blessing, stepTurf))
to_chat(L, "<span class='warning'>Holy energies block your path!</span>")
return
L.loc = get_step(L, direct)
L.setDir(direct)
return TRUE
@@ -85,12 +85,18 @@
return
var/turf/newLoc = get_step(src,direction)
setDir(direction)
if(!(newLoc.flags_1 & NOJAUNT_1))
forceMove(newLoc)
else
to_chat(user, "<span class='warning'>Some strange aura is blocking the way!</span>")
movedelay = world.time + movespeed
if(newLoc.flags_1 & NOJAUNT_1)
to_chat(user, "<span class='warning'>Some strange aura is blocking the way.</span>")
return
if (locate(/obj/effect/blessing, newLoc))
to_chat(user, "<span class='warning'>Holy energies block your path!</span>")
return
forceMove(newLoc)
/obj/effect/dummy/spell_jaunt/ex_act(blah)
return
/obj/effect/dummy/spell_jaunt/bullet_act(blah)
Binary file not shown.

Before

Width:  |  Height:  |  Size: 853 KiB

After

Width:  |  Height:  |  Size: 854 KiB

+1
View File
@@ -820,6 +820,7 @@
#include "code\game\objects\structures.dm"
#include "code\game\objects\effects\alien_acid.dm"
#include "code\game\objects\effects\anomalies.dm"
#include "code\game\objects\effects\blessing.dm"
#include "code\game\objects\effects\bump_teleporter.dm"
#include "code\game\objects\effects\contraband.dm"
#include "code\game\objects\effects\countdown.dm"