mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-15 20:52:41 +00:00
Conflicts: baystation12.dme code/__HELPERS/global_lists.dm code/controllers/master_controller.dm code/game/gamemodes/events/ninja_equipment.dm code/game/gamemodes/events/space_ninja.dm code/game/gamemodes/wizard/rightandwrong.dm code/game/hud.dm code/game/jobs/job/captain.dm code/game/jobs/job/job.dm code/game/jobs/job/medical.dm code/game/jobs/job/science.dm code/game/jobs/job/security.dm code/game/machinery/computer/cloning.dm code/game/objects/items/blueprints.dm code/game/objects/items/weapons/gift_wrappaper.dm code/game/objects/items/weapons/implants/implantnanoaug.dm code/game/objects/items/weapons/storage/uplink_kits.dm code/game/objects/items/weapons/stunbaton.dm code/game/turfs/turf.dm code/modules/client/client defines.dm code/modules/client/client procs.dm code/modules/clothing/masks/miscellaneous.dm code/modules/clothing/shoes/miscellaneous.dm code/modules/clothing/under/ties.dm code/modules/mob/living/carbon/human/human_attackhand.dm code/modules/mob/living/carbon/human/life.dm code/modules/mob/living/carbon/human/say.dm code/modules/mob/living/silicon/say.dm code/modules/mob/mob_defines.dm code/modules/paperwork/clipboard.dm code/modules/paperwork/pen.dm code/modules/paperwork/stamps.dm code/modules/projectiles/projectile.dm code/modules/reagents/Chemistry-Holder.dm code/modules/reagents/reagent_containers/glass.dm code/setup.dm config/config.txt html/changelog.html icons/effects/effects.dmi icons/mob/feet.dmi icons/mob/head.dmi icons/mob/items_lefthand.dmi icons/mob/items_righthand.dmi icons/mob/mask.dmi icons/mob/suit.dmi icons/mob/ties.dmi icons/mob/uniform.dmi icons/obj/clothing/hats.dmi icons/obj/clothing/masks.dmi icons/obj/clothing/shoes.dmi icons/obj/clothing/suits.dmi icons/obj/clothing/ties.dmi maps/tgstation.2.1.0.dmm Signed-off-by: Cael_Aislinn <cael_aislinn@yahoo.com.au>
119 lines
3.4 KiB
Plaintext
119 lines
3.4 KiB
Plaintext
/mob/proc/say()
|
|
return
|
|
|
|
/mob/verb/whisper()
|
|
set name = "Whisper"
|
|
set category = "IC"
|
|
return
|
|
|
|
/mob/verb/say_verb(message as text)
|
|
set name = "Say"
|
|
set category = "IC"
|
|
if(say_disabled) //This is here to try to identify lag problems
|
|
usr << "\red Speech is currently admin-disabled."
|
|
return
|
|
usr.say(message)
|
|
|
|
/mob/verb/me_verb(message as text)
|
|
set name = "Me"
|
|
set category = "IC"
|
|
|
|
if(say_disabled) //This is here to try to identify lag problems
|
|
usr << "\red Speech is currently admin-disabled."
|
|
return
|
|
|
|
message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN))
|
|
|
|
if(ishuman(src) || isrobot(src))
|
|
usr.emote("me",1,message)
|
|
else
|
|
usr.emote(message)
|
|
|
|
/mob/proc/say_dead(var/message)
|
|
var/name = src.real_name
|
|
var/alt_name = ""
|
|
|
|
if(say_disabled) //This is here to try to identify lag problems
|
|
usr << "\red Speech is currently admin-disabled."
|
|
return
|
|
|
|
if(mind && mind.name)
|
|
name = "[mind.name]"
|
|
else
|
|
name = real_name
|
|
if(name != real_name)
|
|
alt_name = " (died as [real_name])"
|
|
|
|
message = src.say_quote(message)
|
|
var/rendered = "<span class='game deadsay'><span class='prefix'>DEAD:</span> <span class='name'>[name]</span>[alt_name] <span class='message'>[message]</span></span>"
|
|
|
|
for(var/mob/M in player_list)
|
|
if(istype(M, /mob/new_player))
|
|
continue
|
|
if(M.client && M.client.holder && (M.client.prefs.toggles & CHAT_DEAD)) //admins can toggle deadchat on and off. This is a proc in admin.dm and is only give to Administrators and above
|
|
M << rendered //Admins can hear deadchat, if they choose to, no matter if they're blind/deaf or not.
|
|
else if(M.stat == DEAD)
|
|
M.show_message(rendered, 2) //Takes into account blindness and such.
|
|
return
|
|
|
|
/mob/proc/say_understands(var/mob/other)
|
|
if(!other)
|
|
return 1
|
|
if (src.stat == 2)
|
|
return 1
|
|
else if (istype(other, src.type))
|
|
return 1
|
|
else if(other.universal_speak || src.universal_speak)
|
|
return 1
|
|
else if(isAI(src) && ispAI(other))
|
|
return 1
|
|
return 0
|
|
|
|
/mob/proc/say_quote(var/text,var/is_speaking_soghun,var/is_speaking_skrell,var/is_speaking_tajaran)
|
|
if(!text)
|
|
return "says, \"...\""; //not the best solution, but it will stop a large number of runtimes. The cause is somewhere in the Tcomms code
|
|
//tcomms code is still runtiming somewhere here
|
|
var/ending = copytext(text, length(text))
|
|
if (is_speaking_soghun)
|
|
return "hisses, \"<span class='species'>[text]</span>\"";
|
|
if (is_speaking_skrell)
|
|
return "warbles, \"<span class='species'>[text]</span>\"";
|
|
if (is_speaking_tajaran)
|
|
return "mrowls, \"<span class='species'>[text]</span>\"";
|
|
//Needs Virus2
|
|
// if (src.disease_symptoms & DISEASE_HOARSE)
|
|
// return "rasps, \"[text]\"";
|
|
if (src.stuttering)
|
|
return "stammers, \"[text]\"";
|
|
if (src.slurring)
|
|
return "slurrs, \"[text]\"";
|
|
if(isliving(src))
|
|
var/mob/living/L = src
|
|
if (L.getBrainLoss() >= 60)
|
|
return "gibbers, \"[text]\"";
|
|
if (ending == "?")
|
|
return "asks, \"[text]\"";
|
|
if (ending == "!")
|
|
return "exclaims, \"[text]\"";
|
|
|
|
return "says, \"[text]\"";
|
|
|
|
/mob/proc/emote(var/act)
|
|
return
|
|
|
|
/mob/proc/get_ear()
|
|
// returns an atom representing a location on the map from which this
|
|
// mob can hear things
|
|
|
|
// should be overloaded for all mobs whose "ear" is separate from their "mob"
|
|
|
|
return get_turf(src)
|
|
|
|
/mob/proc/say_test(var/text)
|
|
var/ending = copytext(text, length(text))
|
|
if (ending == "?")
|
|
return "1"
|
|
else if (ending == "!")
|
|
return "2"
|
|
return "0"
|