mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-12 03:02:54 +00:00
Merge pull request #1497 from Mechoid/Cult_Ghost
Manifest Ghost Additions
This commit is contained in:
@@ -9,7 +9,7 @@ var/global/list/image/ghost_sightless_images = list() //this is a list of images
|
|||||||
/mob/observer/dead
|
/mob/observer/dead
|
||||||
name = "ghost"
|
name = "ghost"
|
||||||
desc = "It's a g-g-g-g-ghooooost!" //jinkies!
|
desc = "It's a g-g-g-g-ghooooost!" //jinkies!
|
||||||
icon = 'icons/mob/mob.dmi'
|
icon = 'icons/mob/ghost.dmi'
|
||||||
icon_state = "ghost"
|
icon_state = "ghost"
|
||||||
layer = 4
|
layer = 4
|
||||||
stat = DEAD
|
stat = DEAD
|
||||||
@@ -35,6 +35,39 @@ var/global/list/image/ghost_sightless_images = list() //this is a list of images
|
|||||||
var/seedarkness = 1
|
var/seedarkness = 1
|
||||||
incorporeal_move = 1
|
incorporeal_move = 1
|
||||||
|
|
||||||
|
var/is_manifest = 0 //If set to 1, the ghost is able to whisper. Usually only set if a cultist drags them through the veil.
|
||||||
|
var/ghost_sprite = null
|
||||||
|
var/global/list/possible_ghost_sprites = list(
|
||||||
|
"Clear" = "blank",
|
||||||
|
"Green Blob" = "otherthing",
|
||||||
|
"Bland" = "ghost",
|
||||||
|
"Robed-B" = "ghost1",
|
||||||
|
"Robed-BAlt" = "ghost2",
|
||||||
|
"Corgi" = "ghostian",
|
||||||
|
"King" = "ghostking",
|
||||||
|
"Shade" = "shade",
|
||||||
|
"Hecate" = "ghost-narsie",
|
||||||
|
"Glowing Statue" = "armour",
|
||||||
|
"Artificer" = "artificer",
|
||||||
|
"Behemoth" = "behemoth",
|
||||||
|
"Harvester" = "harvester",
|
||||||
|
"Wraith" = "wraith",
|
||||||
|
"Viscerator" = "viscerator",
|
||||||
|
"Bats" = "bat",
|
||||||
|
"Red Robes" = "robe_red",
|
||||||
|
"Faithless" = "faithless",
|
||||||
|
"Shadowform" = "forgotten",
|
||||||
|
"Black Cat" = "blackcat",
|
||||||
|
"Dark Ethereal" = "bloodguardian",
|
||||||
|
"Holy Ethereal" = "lightguardian",
|
||||||
|
"Red Elemental" = "magicRed",
|
||||||
|
"Blue Elemental" = "magicBlue",
|
||||||
|
"Pink Elemental" = "magicPink",
|
||||||
|
"Orange Elemental" = "magicOrange",
|
||||||
|
"Green Elemental" = "magicGreen",
|
||||||
|
"Daemon" = "daemon"
|
||||||
|
)
|
||||||
|
|
||||||
/mob/observer/dead/New(mob/body)
|
/mob/observer/dead/New(mob/body)
|
||||||
sight |= SEE_TURFS | SEE_MOBS | SEE_OBJS | SEE_SELF
|
sight |= SEE_TURFS | SEE_MOBS | SEE_OBJS | SEE_SELF
|
||||||
see_invisible = SEE_INVISIBLE_OBSERVER
|
see_invisible = SEE_INVISIBLE_OBSERVER
|
||||||
@@ -617,11 +650,12 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
|||||||
return 1
|
return 1
|
||||||
|
|
||||||
/mob/observer/dead/proc/manifest(mob/user)
|
/mob/observer/dead/proc/manifest(mob/user)
|
||||||
var/is_manifest = 0
|
is_manifest = 0
|
||||||
if(!is_manifest)
|
if(!is_manifest)
|
||||||
is_manifest = 1
|
is_manifest = 1
|
||||||
verbs += /mob/observer/dead/proc/toggle_visibility
|
verbs += /mob/observer/dead/proc/toggle_visibility
|
||||||
|
verbs += /mob/observer/dead/proc/ghost_whisper
|
||||||
|
src << "<font color='purple'>As you are now in the realm of the living, you can whisper to the living with the <b>Spectral Whisper</b> verb, inside the IC tab.</font>"
|
||||||
if(src.invisibility != 0)
|
if(src.invisibility != 0)
|
||||||
user.visible_message( \
|
user.visible_message( \
|
||||||
"<span class='warning'>\The [user] drags ghost, [src], to our plane of reality!</span>", \
|
"<span class='warning'>\The [user] drags ghost, [src], to our plane of reality!</span>", \
|
||||||
@@ -753,3 +787,44 @@ mob/observer/dead/MayRespawn(var/feedback = 0)
|
|||||||
if((!target) || (!ghost)) return
|
if((!target) || (!ghost)) return
|
||||||
. = "<a href='byond://?src=\ref[ghost];track=\ref[target]'>follow</a>"
|
. = "<a href='byond://?src=\ref[ghost];track=\ref[target]'>follow</a>"
|
||||||
. += target.extra_ghost_link(ghost)
|
. += target.extra_ghost_link(ghost)
|
||||||
|
|
||||||
|
//Culted Ghosts
|
||||||
|
|
||||||
|
/mob/observer/dead/proc/ghost_whisper()
|
||||||
|
set name = "Spectral Whisper"
|
||||||
|
set category = "IC"
|
||||||
|
|
||||||
|
if(is_manifest) //Only able to whisper if it's hit with a tome.
|
||||||
|
var/list/options = list()
|
||||||
|
for(var/mob/living/Ms in view(src))
|
||||||
|
options += Ms
|
||||||
|
var/mob/living/M = input(src, "Select who to whisper to:", "Whisper to?", null) as null|mob in options
|
||||||
|
if(!M)
|
||||||
|
return 0
|
||||||
|
var/msg = sanitize(input(src, "Message:", "Spectral Whisper") as text|null)
|
||||||
|
if(msg)
|
||||||
|
log_say("SpectralWhisper: [key_name(usr)]->[M.key] : [msg]")
|
||||||
|
M << "<span class='warning'> You hear a strange, unidentifiable voice in your head... <font color='purple'>[msg]</font></span>"
|
||||||
|
src << "<span class='warning'> You said: '[msg]' to [M].</span>"
|
||||||
|
else
|
||||||
|
return
|
||||||
|
return 1
|
||||||
|
else
|
||||||
|
src << "<span class='danger'>You have not been pulled past the veil!</span>"
|
||||||
|
|
||||||
|
/mob/observer/dead/verb/choose_ghost_sprite()
|
||||||
|
set category = "Ghost"
|
||||||
|
set name = "Choose Sprite"
|
||||||
|
|
||||||
|
icon = 'icons/mob/ghost.dmi'
|
||||||
|
var/choice
|
||||||
|
var/finalized = "No"
|
||||||
|
while(finalized == "No" && src.client)
|
||||||
|
|
||||||
|
choice = input(usr,"What would you like to use for your ghost sprite?") as null|anything in possible_ghost_sprites
|
||||||
|
if(!choice) return
|
||||||
|
|
||||||
|
icon_state = possible_ghost_sprites[choice]
|
||||||
|
finalized = alert("Look at your sprite. Is this what you wish to use?",,"No","Yes")
|
||||||
|
|
||||||
|
ghost_sprite = possible_ghost_sprites[choice]
|
||||||
|
|||||||
@@ -84,4 +84,7 @@
|
|||||||
|
|
||||||
if(input)
|
if(input)
|
||||||
log_emote("Ghost/[src.key] : [input]")
|
log_emote("Ghost/[src.key] : [input]")
|
||||||
say_dead_direct(input, src)
|
if(!invisibility) //If the ghost is made visible by admins or cult. And to see if the ghost has toggled its own visibility, as well. -Mech
|
||||||
|
visible_message("<span class='deadsay'><B>[src]</B> [input]</span>")
|
||||||
|
else
|
||||||
|
say_dead_direct(input, src)
|
||||||
|
|||||||
BIN
icons/mob/ghost.dmi
Normal file
BIN
icons/mob/ghost.dmi
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 69 KiB |
Reference in New Issue
Block a user