mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-12 03:02:54 +00:00
Merge pull request #3356 from Neerti/4/23/2017_ling_nerfs
Adjusts Changelings
This commit is contained in:
@@ -212,7 +212,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
set name = "Ghost"
|
||||
set desc = "Relinquish your life and enter the land of the dead."
|
||||
|
||||
if(stat == DEAD)
|
||||
if(stat == DEAD && !forbid_seeing_deadchat)
|
||||
announce_ghost_joinleave(ghostize(1))
|
||||
else
|
||||
var/response
|
||||
@@ -223,7 +223,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
return
|
||||
src.client.admin_ghost()
|
||||
else
|
||||
response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost, you won't be able to play this round for another 30 minutes! You can't change your mind so choose wisely!)", "Are you sure you want to ghost?", "Ghost", "Stay in body")
|
||||
response = alert(src, "Are you -sure- you want to ghost?\n(You are alive, or otherwise have the potential to become alive. If you ghost, you won't be able to play this round until you respawn as a new character! You can't change your mind so choose wisely!)", "Are you sure you want to ghost?", "Ghost", "Stay in body")
|
||||
if(response != "Ghost")
|
||||
return
|
||||
resting = 1
|
||||
|
||||
@@ -101,7 +101,7 @@
|
||||
/mob/living/silicon/ai/special_mentions()
|
||||
return list("AI") // AI door!
|
||||
|
||||
// Converts specific characters, like *, |, and _ to formatted output.
|
||||
// Converts specific characters, like +, |, and _ to formatted output.
|
||||
/mob/proc/say_emphasis(var/message)
|
||||
message = encode_html_emphasis(message, "|", "i")
|
||||
message = encode_html_emphasis(message, "+", "b")
|
||||
|
||||
@@ -41,6 +41,13 @@
|
||||
species.handle_death(src)
|
||||
animate_tail_stop()
|
||||
|
||||
//Handle snowflake ling stuff.
|
||||
if(mind && mind.changeling)
|
||||
// If the ling is capable of revival, don't allow them to see deadchat.
|
||||
if(mind.changeling.chem_charges >= CHANGELING_STASIS_COST)
|
||||
if(mind.changeling.max_geneticpoints >= 0) // Absorbed lings don't count, as they can't revive.
|
||||
forbid_seeing_deadchat = TRUE
|
||||
|
||||
//Handle brain slugs.
|
||||
var/obj/item/organ/external/Hd = get_organ(BP_HEAD)
|
||||
var/mob/living/simple_animal/borer/B
|
||||
|
||||
@@ -141,7 +141,7 @@ proc/get_radio_key_from_channel(var/channel)
|
||||
|
||||
//Redirect to say_dead if talker is dead
|
||||
if(stat)
|
||||
if(stat == DEAD)
|
||||
if(stat == DEAD && !forbid_seeing_deadchat)
|
||||
return say_dead(message)
|
||||
return
|
||||
|
||||
@@ -308,7 +308,7 @@ proc/get_radio_key_from_channel(var/channel)
|
||||
if(M && src) //If we still exist, when the spawn processes
|
||||
var/dst = get_dist(get_turf(M),get_turf(src))
|
||||
|
||||
if(dst <= message_range || M.stat == DEAD) //Inside normal message range, or dead with ears (handled in the view proc)
|
||||
if(dst <= message_range || (M.stat == DEAD && !forbid_seeing_deadchat)) //Inside normal message range, or dead with ears (handled in the view proc)
|
||||
M << speech_bubble
|
||||
M.hear_say(message, verb, speaking, alt_name, italics, src, speech_sound, sound_vol)
|
||||
|
||||
|
||||
@@ -207,3 +207,4 @@
|
||||
|
||||
var/list/active_genes=list()
|
||||
var/mob_size = MOB_MEDIUM
|
||||
var/forbid_seeing_deadchat = FALSE // Used for lings to not see deadchat, and to have ghosting behave as if they were not really dead.
|
||||
|
||||
@@ -390,10 +390,16 @@ proc/is_blind(A)
|
||||
else
|
||||
name = realname
|
||||
|
||||
if(subject && subject.forbid_seeing_deadchat && !subject.client.holder)
|
||||
return // Can't talk in deadchat if you can't see it.
|
||||
|
||||
for(var/mob/M in player_list)
|
||||
if(M.client && ((!istype(M, /mob/new_player) && M.stat == DEAD) || (M.client.holder && !is_mentor(M.client))) && M.is_preference_enabled(/datum/client_preference/show_dsay))
|
||||
var/follow
|
||||
var/lname
|
||||
if(M.forbid_seeing_deadchat && !M.client.holder)
|
||||
continue
|
||||
|
||||
if(subject)
|
||||
if(M.is_key_ignored(subject.client.key)) // If we're ignored, do nothing.
|
||||
continue
|
||||
|
||||
@@ -199,7 +199,7 @@
|
||||
if(S.victim == mob)
|
||||
return
|
||||
|
||||
if(mob.stat==DEAD && isliving(mob))
|
||||
if(mob.stat==DEAD && isliving(mob) && !mob.forbid_seeing_deadchat)
|
||||
mob.ghostize()
|
||||
return
|
||||
|
||||
|
||||
Reference in New Issue
Block a user