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:
committed by
CitadelStationBot
parent
7ec2a4230d
commit
4826dec880
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
|
||||
@@ -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 |
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user