Makes the pronoun helper proc names less horrifyingly long (#20780)

* why were these so LONG, what the fuck

* gosh

* pronoun agenda
the true agenda is killing coiax's squished lines
This commit is contained in:
Joan Lung
2016-10-09 19:28:25 -04:00
committed by oranges
parent 970f88c6b5
commit ce40d29ead
36 changed files with 151 additions and 167 deletions

View File

@@ -1,28 +1,34 @@
//pronoun procs, for getting pronouns without using the text macros that only work in certain positions
//datums don't have gender, but most of their subtypes do!
/datum/proc/they_pronoun(capitalized, temp_gender)
/datum/proc/p_they(capitalized, temp_gender)
. = "it"
if(capitalized)
. = capitalize(.)
/datum/proc/their_pronoun(capitalized, temp_gender)
/datum/proc/p_their(capitalized, temp_gender)
. = "its"
if(capitalized)
. = capitalize(.)
/datum/proc/them_pronoun(capitalized, temp_gender)
/datum/proc/p_them(capitalized, temp_gender)
. = "it"
if(capitalized)
. = capitalize(.)
/datum/proc/get_has(temp_gender)
/datum/proc/p_have(temp_gender)
. = "has"
/datum/proc/get_is(temp_gender)
/datum/proc/p_are(temp_gender)
. = "is"
/datum/proc/p_theyre(capitalized, temp_gender)
. = p_they(capitalized, temp_gender) + "'" + copytext(p_are(temp_gender), 2)
/datum/proc/p_s(temp_gender) //is this a descriptive proc name, or what?
. = "s"
//like clients, which do have gender.
/client/they_pronoun(capitalized, temp_gender)
/client/p_they(capitalized, temp_gender)
if(!temp_gender)
temp_gender = gender
. = "they"
@@ -34,7 +40,7 @@
if(capitalized)
. = capitalize(.)
/client/their_pronoun(capitalized, temp_gender)
/client/p_their(capitalized, temp_gender)
if(!temp_gender)
temp_gender = gender
. = "their"
@@ -46,7 +52,7 @@
if(capitalized)
. = capitalize(.)
/client/them_pronoun(capitalized, temp_gender)
/client/p_them(capitalized, temp_gender)
if(!temp_gender)
temp_gender = gender
. = "them"
@@ -58,22 +64,28 @@
if(capitalized)
. = capitalize(.)
/client/get_has(temp_gender)
/client/p_have(temp_gender)
if(!temp_gender)
temp_gender = gender
. = "has"
if(temp_gender == PLURAL || temp_gender == NEUTER)
. = "have"
/client/get_is(temp_gender)
/client/p_are(temp_gender)
if(!temp_gender)
temp_gender = gender
. = "is"
if(temp_gender == PLURAL || temp_gender == NEUTER)
. = "are"
/client/p_s(temp_gender)
if(!temp_gender)
temp_gender = gender
if(temp_gender != PLURAL && temp_gender != NEUTER)
. = "s"
//mobs(and atoms but atoms don't really matter write your own proc overrides) also have gender!
/mob/they_pronoun(capitalized, temp_gender)
/mob/p_they(capitalized, temp_gender)
if(!temp_gender)
temp_gender = gender
. = "it"
@@ -87,7 +99,7 @@
if(capitalized)
. = capitalize(.)
/mob/their_pronoun(capitalized, temp_gender)
/mob/p_their(capitalized, temp_gender)
if(!temp_gender)
temp_gender = gender
. = "its"
@@ -101,7 +113,7 @@
if(capitalized)
. = capitalize(.)
/mob/them_pronoun(capitalized, temp_gender)
/mob/p_them(capitalized, temp_gender)
if(!temp_gender)
temp_gender = gender
. = "it"
@@ -115,50 +127,63 @@
if(capitalized)
. = capitalize(.)
/mob/get_has(temp_gender)
/mob/p_have(temp_gender)
if(!temp_gender)
temp_gender = gender
. = "has"
if(temp_gender == PLURAL)
. = "have"
/mob/get_is(temp_gender)
/mob/p_are(temp_gender)
if(!temp_gender)
temp_gender = gender
. = "is"
if(temp_gender == PLURAL)
. = "are"
/mob/p_s(temp_gender)
if(!temp_gender)
temp_gender = gender
if(temp_gender != PLURAL)
. = "s"
//humans need special handling, because they can have their gender hidden
/mob/living/carbon/human/they_pronoun(capitalized, temp_gender)
/mob/living/carbon/human/p_they(capitalized, temp_gender)
var/list/obscured = check_obscured_slots()
var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE))
if((slot_w_uniform in obscured) && skipface)
temp_gender = PLURAL
return ..()
/mob/living/carbon/human/their_pronoun(capitalized, temp_gender)
/mob/living/carbon/human/p_their(capitalized, temp_gender)
var/list/obscured = check_obscured_slots()
var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE))
if((slot_w_uniform in obscured) && skipface)
temp_gender = PLURAL
return ..()
/mob/living/carbon/human/them_pronoun(capitalized, temp_gender)
/mob/living/carbon/human/p_them(capitalized, temp_gender)
var/list/obscured = check_obscured_slots()
var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE))
if((slot_w_uniform in obscured) && skipface)
temp_gender = PLURAL
return ..()
/mob/living/carbon/human/get_has(temp_gender)
/mob/living/carbon/human/p_have(temp_gender)
var/list/obscured = check_obscured_slots()
var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE))
if((slot_w_uniform in obscured) && skipface)
temp_gender = PLURAL
return ..()
/mob/living/carbon/human/get_is(temp_gender)
/mob/living/carbon/human/p_are(temp_gender)
var/list/obscured = check_obscured_slots()
var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE))
if((slot_w_uniform in obscured) && skipface)
temp_gender = PLURAL
return ..()
/mob/living/carbon/human/p_s(temp_gender)
var/list/obscured = check_obscured_slots()
var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE))
if((slot_w_uniform in obscured) && skipface)

View File

@@ -33,16 +33,16 @@
src << playstyle_string
/mob/living/simple_animal/hostile/clockwork/examine(mob/user)
var/t_He = they_pronoun(TRUE)
var/plurality = (gender == PLURAL)
var/t_He = p_they(TRUE)
var/t_s = p_s()
var/msg = "<span class='brass'>*---------*\nThis is \icon[src] \a <b>[src]</b>!\n"
msg += "[desc]\n"
if(health < maxHealth)
msg += "<span class='warning'>"
if (src.health >= src.maxHealth/2)
msg += "[t_He] look[plurality ? "":"s"] slightly dented.\n"
if(health >= maxHealth/2)
msg += "[t_He] look[t_s] slightly dented.\n"
else
msg += "<b>[t_He] look[plurality ? "":"s"] severely dented!</b>\n"
msg += "<b>[t_He] look[t_s] severely dented!</b>\n"
msg += "</span>"
msg += "*---------*</span>"

View File

@@ -301,7 +301,7 @@ Judgement: 10 servants, 100 CV, and any existing AIs are converted or destroyed
for(var/i in 1 to healseverity)
PoolOrNew(/obj/effect/overlay/temp/heal, list(targetturf, "#1E8CE1"))
invoker << "<span class='brass'>You bathe [L] in Inath-neq's power!</span>"
L.visible_message("<span class='warning'>A blue light washes over [L], mending [L.their_pronoun()] bruises and burns!</span>", \
L.visible_message("<span class='warning'>A blue light washes over [L], mending [L.p_their()] bruises and burns!</span>", \
"<span class='heavy_brass'>You feel Inath-neq's power healing your wounds, but a deep nausea overcomes you!</span>")
playsound(targetturf, 'sound/magic/Staff_Healing.ogg', 50, 1)
return 1
@@ -825,7 +825,7 @@ Judgement: 10 servants, 100 CV, and any existing AIs are converted or destroyed
return create_marauder()
/datum/clockwork_scripture/memory_allocation/proc/create_marauder()
invoker.visible_message("<span class='warning'>A yellow tendril appears from [invoker]'s [slab.name] and impales itself in [invoker.their_pronoun()] forehead!</span>", \
invoker.visible_message("<span class='warning'>A yellow tendril appears from [invoker]'s [slab.name] and impales itself in [invoker.p_their()] forehead!</span>", \
"<span class='heavy_brass'>A tendril flies from [slab] into your forehead. You begin waiting while it painfully rearranges your thought pattern...</span>")
invoker.notransform = TRUE //Vulnerable during the process
slab.busy = "Thought modification in process"

View File

@@ -42,8 +42,8 @@
..()
desc = initial(desc)
if(!(resistance_flags & INDESTRUCTIBLE))
var/t_It = they_pronoun(TRUE)
var/t_is = get_is()
var/t_It = p_they(TRUE)
var/t_is = p_are()
var/servant_message = "[t_It] [t_is] at <b>[obj_integrity]/[max_integrity]</b> integrity"
var/heavily_damaged = FALSE
var/healthpercent = (obj_integrity/max_integrity) * 100
@@ -911,7 +911,7 @@
var/obj/effect/overlay/temp/ratvar/sigil/vitality/V = PoolOrNew(/obj/effect/overlay/temp/ratvar/sigil/vitality, get_turf(src))
animate(V, alpha = 0, transform = matrix()*2, time = 8)
playsound(L, 'sound/magic/WandODeath.ogg', 50, 1)
L.visible_message("<span class='warning'>[L] collapses in on [L.them_pronoun()]self as [src] flares bright blue!</span>")
L.visible_message("<span class='warning'>[L] collapses in on [L.p_them()]self as [src] flares bright blue!</span>")
L << "<span class='inathneq_large'>\"[text2ratvar("Your life will not be wasted.")]\"</span>"
for(var/obj/item/W in L)
L.unEquip(W)
@@ -939,7 +939,7 @@
ghost.reenter_corpse()
L.revive(1, 1)
playsound(L, 'sound/magic/Staff_Healing.ogg', 50, 1)
L.visible_message("<span class='warning'>[L] suddenly gets back up, [L.their_pronoun()] mouth dripping blue ichor!</span>", \
L.visible_message("<span class='warning'>[L] suddenly gets back up, [L.p_their()] mouth dripping blue ichor!</span>", \
"<span class='inathneq'>\"[text2ratvar("You will be okay, child.")]\"</span>")
vitality -= revival_cost
break

View File

@@ -9,11 +9,11 @@
/obj/structure/destructible/cult/examine(mob/user)
..()
var/can_see_cult = iscultist(user) || isobserver(user)
var/t_It = they_pronoun(TRUE)
var/t_is = get_is()
var/t_It = p_they(TRUE)
var/t_is = p_are()
if(!(resistance_flags & INDESTRUCTIBLE))
if(can_see_cult)
user << "<span class='cult'>[t_It] [t_is] at <b>[round(obj_integrity * 100 / max_integrity)]%</b> stability</span>"
user << "<span class='cult'>[t_It] [t_is] at <b>[round(obj_integrity * 100 / max_integrity)]%</b> stability.</span>"
user << "<span class='notice'>\The [src] is [anchored ? "":"not "]secured to the floor.</span>"
if(can_see_cult && cooldowntime > world.time)
user << "<span class='cultitalic'>The magic in [src] is too weak, [t_It] will be ready to use again in [getETA()].</span>"
@@ -24,9 +24,9 @@
obj_integrity = min(max_integrity, obj_integrity + 5)
Beam(M, icon_state="sendbeam", time=4)
M.visible_message("<span class='danger'>[M] repairs \the <b>[src]</b>.</span>", \
"<span class='cult'>You repair <b>[src]</b>, leaving [they_pronoun()] at <b>[round(obj_integrity * 100 / max_integrity)]%</b> stability.</span>")
"<span class='cult'>You repair <b>[src]</b>, leaving [p_they()] at <b>[round(obj_integrity * 100 / max_integrity)]%</b> stability.</span>")
else
M << "<span class='cult'>You cannot repair [src], as [they_pronoun()] [get_is()] undamaged!</span>"
M << "<span class='cult'>You cannot repair [src], as [p_they()] [p_are()] undamaged!</span>"
else
..()

View File

@@ -392,7 +392,7 @@ var/list/teleport_runes = list()
convertee.adjustBruteLoss(-(brutedamage * 0.75))
convertee.adjustFireLoss(-(burndamage * 0.75))
convertee.visible_message("<span class='warning'>[convertee] writhes in pain \
[brutedamage || burndamage ? "even as [convertee.their_pronoun()] wounds heal and close" : "as the markings below [convertee.them_pronoun()] glow a bloody red"]!</span>", \
[brutedamage || burndamage ? "even as [convertee.p_their()] wounds heal and close" : "as the markings below [convertee.p_them()] glow a bloody red"]!</span>", \
"<span class='cultlarge'><i>AAAAAAAAAAAAAA-</i></span>")
ticker.mode.add_cultist(convertee.mind, 1)
new /obj/item/weapon/tome(get_turf(src))
@@ -572,7 +572,7 @@ var/list/teleport_runes = list()
mob_to_revive.revive(1, 1) //This does remove disabilities and such, but the rune might actually see some use because of it!
mob_to_revive.grab_ghost()
mob_to_revive << "<span class='cultlarge'>\"PASNAR SAVRAE YAM'TOTH. Arise.\"</span>"
mob_to_revive.visible_message("<span class='warning'>[mob_to_revive] draws in a huge breath, red light shining from [mob_to_revive.their_pronoun()] eyes.</span>", \
mob_to_revive.visible_message("<span class='warning'>[mob_to_revive] draws in a huge breath, red light shining from [mob_to_revive.p_their()] eyes.</span>", \
"<span class='cultlarge'>You awaken suddenly from the void. You're alive!</span>")
rune_in_use = 0
@@ -687,11 +687,11 @@ var/list/teleport_runes = list()
return
affecting.apply_damage(0.1, BRUTE)
if(!(user in T))
user.visible_message("<span class='warning'>A spectral tendril wraps around [user] and pulls [user.them_pronoun()] back to the rune!</span>")
user.visible_message("<span class='warning'>A spectral tendril wraps around [user] and pulls [user.p_them()] back to the rune!</span>")
Beam(user,icon_state="drainbeam",time=2)
user.forceMove(get_turf(src)) //NO ESCAPE :^)
if(user.key)
user.visible_message("<span class='warning'>[user] slowly relaxes, the glow around [user.them_pronoun()] dimming.</span>", \
user.visible_message("<span class='warning'>[user] slowly relaxes, the glow around [user.p_them()] dimming.</span>", \
"<span class='danger'>You are re-united with your physical form. [src] releases its hold over you.</span>")
user.color = initial(user.color)
user.Weaken(3)
@@ -754,7 +754,7 @@ var/list/wall_runes = list()
update_state()
if(density)
spread_density()
user.visible_message("<span class='warning'>[user] [iscarbon(user) ? "places [user.their_pronoun()] hands on":"stares intently at"] [src], and [density ? "the air above it begins to shimmer" : "the shimmer above it fades"].</span>", \
user.visible_message("<span class='warning'>[user] [iscarbon(user) ? "places [user.p_their()] hands on":"stares intently at"] [src], and [density ? "the air above it begins to shimmer" : "the shimmer above it fades"].</span>", \
"<span class='cultitalic'>You channel your life energy into [src], [density ? "temporarily preventing" : "allowing"] passage above it.</span>")
if(iscarbon(user))
var/mob/living/carbon/C = user

View File

@@ -83,24 +83,21 @@
user << "<span class='warning'>The wisp has gone missing!</span>"
return
if(wisp.loc == src)
user << "<span class='notice'>You release the wisp. It begins to \
bob around your head.</span>"
user << "<span class='notice'>You release the wisp. It begins to bob around your head.</span>"
user.sight |= SEE_MOBS
icon_state = "lantern"
wisp.orbit(user, 20)
feedback_add_details("wisp_lantern","F") // freed
else
user << "<span class='notice'>You return the wisp to the lantern.\
</span>"
user << "<span class='notice'>You return the wisp to the lantern.</span>"
if(wisp.orbiting)
var/atom/A = wisp.orbiting.orbiting
if(isliving(A))
var/mob/living/M = A
M.sight &= ~SEE_MOBS
M << "<span class='notice'>Your vision returns to \
normal.</span>"
M << "<span class='notice'>Your vision returns to normal.</span>"
wisp.stop_orbit()
wisp.loc = src
@@ -116,8 +113,7 @@
if(wisp.loc == src)
qdel(wisp)
else
wisp.visible_message("<span class='notice'>[wisp] has a sad \
feeling for a moment, then it passes.</span>")
wisp.visible_message("<span class='notice'>[wisp] has a sad feeling for a moment, then it passes.</span>")
..()
//Wisp Lantern
@@ -233,7 +229,7 @@
if(cooldown < world.time)
feedback_add_details("immortality_talisman","U") // usage
cooldown = world.time + 600
user.visible_message("<span class='danger'>[user] vanishes from reality, leaving a a hole in their place!</span>")
user.visible_message("<span class='danger'>[user] vanishes from reality, leaving a a hole in [user.p_their()] place!</span>")
var/obj/effect/immortality_talisman/Z = new(get_turf(src.loc))
Z.name = "hole in reality"
Z.desc = "It's shaped an awful lot like [user.name]."
@@ -513,7 +509,7 @@
return
user << "You call out for aid, attempting to summon spirits to your side."
notify_ghosts("[user] is raising their [src], calling for your help!",
notify_ghosts("[user] is raising [user.p_their()] [src], calling for your help!",
enter_link="<a href=?src=\ref[src];orbit=1>(Click to help)</a>",
source = user, action=NOTIFY_ORBIT)
@@ -755,7 +751,7 @@
for(var/mob/living/carbon/human/H in player_list)
if(H == L)
continue
H << "<span class='userdanger'>You have an overwhelming desire to kill [L]. They have been marked red! Go kill them!</span>"
H << "<span class='userdanger'>You have an overwhelming desire to kill [L]. [L.p_they(TRUE)] [L.p_have()] been marked red! Go kill [L.p_them()]!</span>"
H.put_in_hands_or_del(new /obj/item/weapon/kitchen/knife/butcher(H))
qdel(src)
@@ -813,9 +809,12 @@
friendly_fire_check = !friendly_fire_check
user << "<span class='warning'>You toggle friendly fire [friendly_fire_check ? "off":"on"]!</span>"
return
if(!user.is_holding(src)) //you need to hold the staff to teleport
user << "<span class='warning'>You need to hold the staff in your hands to [rune ? "teleport with it":"create a rune"]!</span>"
return
if(!rune)
if(isturf(user.loc))
user.visible_message("<span class='hierophant_warning'>[user] holds [src] carefully in front of them, moving it in a strange pattern...</span>", \
user.visible_message("<span class='hierophant_warning'>[user] holds [src] carefully in front of [user.p_them()], moving it in a strange pattern...</span>", \
"<span class='notice'>You start creating a hierophant rune to teleport to...</span>")
timer = world.time + 51
if(do_after(user, 50, target = user))
@@ -825,7 +824,7 @@
var/obj/effect/hierophant/H = new/obj/effect/hierophant(T)
rune = H
user.update_action_buttons_icon()
user.visible_message("<span class='hierophant_warning'>[user] creates a strange rune beneath them!</span>", \
user.visible_message("<span class='hierophant_warning'>[user] creates a strange rune beneath [user.p_them()]!</span>", \
"<span class='hierophant'>You create a hierophant rune, which you can teleport yourself and any allies to at any time!</span>\n\
<span class='notice'>You can remove the rune to place a new one by striking it with the staff.</span>")
else
@@ -833,9 +832,6 @@
else
user << "<span class='warning'>You need to be on solid ground to produce a rune!</span>"
return
if(!user.is_holding(src)) //you need to hold the staff to teleport
user << "<span class='warning'>You need to hold the staff in your hands to [rune ? "teleport with it":"create a rune"]!</span>"
return
if(get_dist(user, rune) <= 2) //rune too close abort
user << "<span class='warning'>You are too close to the rune to teleport to it!</span>"
return

View File

@@ -14,10 +14,6 @@
//var/m_type = 1
switch(act)//Even carbon organisms want it alphabetically ordered..
if ("aflap")
if (!src.restrained())
message = "<B>[src]</B> flaps \his wings ANGRILY!"
m_type = 2
if ("airguitar")
if (!src.restrained())
@@ -32,10 +28,6 @@
message = "<B>[src]</B> blinks rapidly."
m_type = 1
if ("blush","blushes")
message = "<B>[src]</B> blushes."
m_type = 1
if ("bow","bows")
if (!src.buckled)
var/M = null
@@ -82,15 +74,6 @@
message = "<B>[src]</B> makes a strong noise."
m_type = 2
if ("deathgasp","deathgasps")
message = "<B>[src]</B> seizes up and falls limp, \his eyes dead and lifeless..."
m_type = 1
if ("flap","flaps")
if (!src.restrained())
message = "<B>[src]</B> flaps \his wings."
m_type = 2
if ("gasp","gasps")
if (!muzzled)
..(act)
@@ -116,10 +99,6 @@
..()
return
if ("nod","nods")
message = "<B>[src]</B> nods."
m_type = 1
if ("scream","screams")
if (!muzzled)
..(act)
@@ -127,10 +106,6 @@
message = "<B>[src]</B> makes a very loud noise."
m_type = 2
if ("shake","shakes")
message = "<B>[src]</B> shakes \his head."
m_type = 1
if ("sneeze","sneezes")
if (!muzzled)
..(act)
@@ -145,10 +120,6 @@
message = "<B>[src]</B> sighs."
m_type = 2
if ("sniff","sniffs")
message = "<B>[src]</B> sniffs."
m_type = 2
if ("snore","snores")
if (!muzzled)
..(act)

View File

@@ -1,10 +1,10 @@
/mob/living/carbon/examine(mob/user)
var/t_He = they_pronoun(TRUE)
var/t_His = their_pronoun(TRUE)
var/t_his = their_pronoun()
var/t_him = them_pronoun()
var/t_has = get_has()
var/t_is = get_is()
var/t_He = p_they(TRUE)
var/t_His = p_their(TRUE)
var/t_his = p_their()
var/t_him = p_them()
var/t_has = p_have()
var/t_is = p_are()
var/msg = "<span class='info'>*---------*\nThis is \icon[src] \a <EM>[src]</EM>!\n"

View File

@@ -24,12 +24,12 @@
switch(act) //Please keep this alphabetically ordered when adding or changing emotes.
if ("aflap") //Any emote on human that uses miming must be left in, oh well.
if (!src.restrained())
message = "<B>[src]</B> flaps \his wings ANGRILY!"
message = "<B>[src]</B> flaps [p_their()] wings ANGRILY!"
m_type = 2
if ("choke","chokes")
if (miming)
message = "<B>[src]</B> clutches \his throat desperately!"
message = "<B>[src]</B> clutches [p_their()] throat desperately!"
else
..(act)
@@ -70,7 +70,7 @@
message = "<B>[src]</B> cries."
m_type = 2
else
message = "<B>[src]</B> makes a weak noise. \He frowns."
message = "<B>[src]</B> makes a weak noise. [p_they(TRUE)] frown[p_s()]."
m_type = 2
if ("custom")
@@ -121,7 +121,7 @@
if (M)
message = "<B>[src]</B> gives daps to [M]."
else
message = "<B>[src]</B> sadly can't find anybody to give daps to, and daps \himself. Shameful."
message = "<B>[src]</B> sadly can't find anybody to give daps to, and daps [p_them()]self. Shameful."
if ("eyebrow")
message = "<B>[src]</B> raises an eyebrow."
@@ -129,7 +129,7 @@
if ("flap","flaps")
if (!src.restrained())
message = "<B>[src]</B> flaps \his wings."
message = "<B>[src]</B> flaps [p_their()] wings."
m_type = 2
if(((dna.features["wings"] != "None") && !("wings" in dna.species.mutant_bodyparts)))
OpenWings()
@@ -138,10 +138,10 @@
if ("wings")
if (!src.restrained())
if(dna && dna.species &&((dna.features["wings"] != "None") && ("wings" in dna.species.mutant_bodyparts)))
message = "<B>[src]</B> opens \his wings."
message = "<B>[src]</B> opens [p_their()] wings."
OpenWings()
else if(dna && dna.species &&((dna.features["wings"] != "None") && ("wingsopen" in dna.species.mutant_bodyparts)))
message = "<B>[src]</B> closes \his wings."
message = "<B>[src]</B> closes [p_their()] wings."
CloseWings()
else
src << "<span class='notice'>Unusable emote '[act]'. Say *help for a list.</span>"
@@ -191,7 +191,7 @@
if (M.canmove && M.get_empty_held_indexes() && !M.restrained())
message = "<B>[src]</B> shakes hands with [M]."
else
message = "<B>[src]</B> holds out \his hand to [M]."
message = "<B>[src]</B> holds out [p_their()] hand to [M]."
if ("hug","hugs")
m_type = 1
@@ -207,7 +207,7 @@
if (M)
message = "<B>[src]</B> hugs [M]."
else
message = "<B>[src]</B> hugs \himself."
message = "<B>[src]</B> hugs [p_them()]self."
if ("me")
if(silent)
@@ -339,7 +339,7 @@
if("wag","wags")
if(dna && dna.species && (("tail_lizard" in dna.species.mutant_bodyparts) || ((dna.features["tail_human"] != "None") && !("waggingtail_human" in dna.species.mutant_bodyparts))))
message = "<B>[src]</B> wags \his tail."
message = "<B>[src]</B> wags [p_their()] tail."
startTailWag()
else if(dna && dna.species && (("waggingtail_lizard" in dna.species.mutant_bodyparts) || ("waggingtail_human" in dna.species.mutant_bodyparts)))
endTailWag()

View File

@@ -1,11 +1,11 @@
/mob/living/carbon/human/examine(mob/user)
//this is very slightly better than it was because you can use it more places. still can't do \his[src] though.
var/t_He = they_pronoun(TRUE)
var/t_His = their_pronoun(TRUE)
var/t_his = their_pronoun()
var/t_him = them_pronoun()
var/t_has = get_has()
var/t_is = get_is()
var/t_He = p_they(TRUE)
var/t_His = p_their(TRUE)
var/t_his = p_their()
var/t_him = p_them()
var/t_has = p_have()
var/t_is = p_are()
var/msg = "<span class='info'>*---------*\nThis is <EM>[src.name]</EM>!\n"
@@ -142,7 +142,7 @@
appears_dead = 1
if(getorgan(/obj/item/organ/brain))//Only perform these checks if there is no brain
if(suiciding)
msg += "<span class='warning'>[t_He] appears to have commited suicide... there is no hope of recovery.</span>\n"
msg += "<span class='warning'>[t_He] appear[p_s()] to have commited suicide... there is no hope of recovery.</span>\n"
if(hellbound)
msg += "<span class='warning'>[t_His] soul seems to have been ripped out of [t_his] body. Revival is impossible.</span>\n"
msg += "<span class='deadsay'>[t_He] [t_is] limp and unresponsive; there are no signs of life"
@@ -263,7 +263,7 @@
if(61.01 to 91)
msg += "[t_He] looks like a drunken mess.\n"
if(91.01 to INFINITY)
msg += "[t_He] is a shitfaced, slobbering wreck.\n"
msg += "[t_He] [t_is] a shitfaced, slobbering wreck.\n"
msg += "</span>"

View File

@@ -496,7 +496,7 @@
. = 0
if(!. && error_msg && user)
// Might need re-wording.
user << "<span class='alert'>There is no exposed flesh or thin material [above_neck(target_zone) ? "on [their_pronoun()] head" : "on [their_pronoun()] body"].</span>"
user << "<span class='alert'>There is no exposed flesh or thin material [above_neck(target_zone) ? "on [p_their()] head" : "on [p_their()] body"].</span>"
/mob/living/carbon/human/proc/check_obscured_slots()
var/list/obscured = list()
@@ -630,7 +630,7 @@
src << "<span class='warning'>Remove your mask first!</span>"
return 0
if(C.is_mouth_covered())
src << "<span class='warning'>Remove [their_pronoun()] mask first!</span>"
src << "<span class='warning'>Remove [p_their()] mask first!</span>"
return 0
if(C.cpr_time < world.time + 30)

View File

@@ -59,13 +59,13 @@
watching -= eavesdropping
var/rendered
whispers = critical ? "whispers something in [their_pronoun()] final breath." : "whispers something."
whispers = critical ? "whispers something in [p_their()] final breath." : "whispers something."
rendered = "<span class='game say'><span class='name'>[src.name]</span> [whispers]</span>"
for(var/mob/M in watching)
M.show_message(rendered, 2)
var/spans = list(SPAN_ITALICS)
whispers = critical ? "whispers in [their_pronoun()] final breath" : "whispers"
whispers = critical ? "whispers in [p_their()] final breath" : "whispers"
rendered = "<span class='game say'><span class='name'>[GetVoice()]</span>[alt_name] [whispers], <span class='message'>\"[attach_spans(message, spans)]\"</span></span>"
for(var/atom/movable/AM in listening)

View File

@@ -19,7 +19,7 @@
switch(act)//Hello, how would you like to order? Alphabetically!
if ("aflap")
if (!src.restrained())
message = "<B>[src]</B> flaps its wings ANGRILY!"
message = "<B>[src]</B> flaps [p_their()] wings ANGRILY!"
m_type = 2
if ("blush","blushes")
@@ -51,7 +51,7 @@
m_type = 2
if ("cross","crosses")
message = "<B>[src]</B> crosses their arms."
message = "<B>[src]</B> crosses [p_their()] arms."
m_type = 2
if ("chuckle","chuckles")
@@ -73,7 +73,7 @@
m_type = 1
if ("deathgasp","deathgasps")
message = "<B>[src]</B> seizes up and falls limp, its eyes dead and lifeless..."
message = "<B>[src]</B> seizes up and falls limp, [p_their()] eyes dead and lifeless..."
m_type = 1
if ("drool","drools")
@@ -89,7 +89,7 @@
if ("flap","flaps")
if (!src.restrained())
message = "<B>[src]</B> flaps its wings."
message = "<B>[src]</B> flaps [p_their()] wings."
m_type = 2
if ("flip","flips")
@@ -222,7 +222,7 @@
m_type = 1
if ("shake","shakes")
message = "<B>[src]</B> shakes its head."
message = "<B>[src]</B> shakes [p_their()] head."
m_type = 1
if ("sigh","sighs")
@@ -268,7 +268,7 @@
message = "<B>[src]</B> stares."
if ("stretch","stretches")
message = "<B>[src]</B> stretches their arms."
message = "<B>[src]</B> stretches [p_their()] arms."
m_type = 2
if ("sulk","sulks")
@@ -276,20 +276,12 @@
m_type = 1
if ("surrender","surrenders")
message = "<B>[src]</B> puts their hands on their head and falls to the ground, they surrender!"
message = "<B>[src]</B> puts [p_their()] hands on [p_their()] head and falls to the ground, [p_they()] surrender[p_s()]!"
if(sleeping)
return //Can't surrender while asleep.
Weaken(20) //So you can't resist.
m_type = 1
if ("faint","faints")
message = "<B>[src]</B> faints."
if(sleeping)
return //Can't faint while asleep
SetSleeping(10) //Short-short nap
m_type = 1
if ("sway","sways")
message = "<B>[src]</B> sways around dizzily."
m_type = 1

View File

@@ -38,16 +38,16 @@
AddSpell(new spell(null))
/mob/living/simple_animal/hostile/construct/examine(mob/user)
var/t_He = they_pronoun(TRUE)
var/plurality = (gender == PLURAL)
var/t_He = p_they(TRUE)
var/t_s = p_s()
var/msg = "<span class='cult'>*---------*\nThis is \icon[src] \a <b>[src]</b>!\n"
msg += "[desc]\n"
if(health < maxHealth)
msg += "<span class='warning'>"
if (src.health >= src.maxHealth/2)
msg += "[t_He] look[plurality ? "":"s"] slightly dented.\n"
if(health >= maxHealth/2)
msg += "[t_He] look[t_s] slightly dented.\n"
else
msg += "<b>[t_He] look[plurality ? "":"s"] severely dented!</b>\n"
msg += "<b>[t_He] look[t_s] severely dented!</b>\n"
msg += "</span>"
msg += "*---------*</span>"
@@ -62,11 +62,11 @@
M.visible_message("<span class='danger'>[M] repairs some of \the <b>[src]'s</b> dents.</span>", \
"<span class='cult'>You repair some of <b>[src]'s</b> dents, leaving <b>[src]</b> at <b>[health]/[maxHealth]</b> health.</span>")
else
M.visible_message("<span class='danger'>[M] repairs some of [their_pronoun()] own dents.</span>", \
M.visible_message("<span class='danger'>[M] repairs some of [p_their()] own dents.</span>", \
"<span class='cult'>You repair some of your own dents, leaving you at <b>[M.health]/[M.maxHealth]</b> health.</span>")
else
if(src != M)
M << "<span class='cult'>You cannot repair <b>[src]'s</b> dents, as [they_pronoun()] [get_has()] none!</span>"
M << "<span class='cult'>You cannot repair <b>[src]'s</b> dents, as [p_they()] [p_have()] none!</span>"
else
M << "<span class='cult'>You cannot repair your own dents, as you have none!</span>"
else if(src != M)

View File

@@ -84,7 +84,7 @@
user << "<span class='notice'>You start to tighten loose screws on [src]...</span>"
if(do_after(user,80/I.toolspeed,target=user))
adjustBruteLoss(-getBruteLoss())
visible_message("<span class='notice'>[user] tightens [src == user ? "[user.their_pronoun()]" : "[src]'s"] loose screws!</span>", "<span class='notice'>You tighten [src == user ? "your" : "[src]'s"] loose screws.</span>")
visible_message("<span class='notice'>[user] tightens [src == user ? "[user.p_their()]" : "[src]'s"] loose screws!</span>", "<span class='notice'>You tighten [src == user ? "your" : "[src]'s"] loose screws.</span>")
else
user << "<span class='warning'>You need to remain still to tighten [src]'s screws!</span>"
else

View File

@@ -95,7 +95,7 @@
A.melee_damage_lower += 5
A.melee_damage_upper += 5
A.update_icons()
user << "<span class='info'>You strap the armor plating to [A] and sharpen [A.their_pronoun()] claws with the nail filer. This was a great idea.</span>"
user << "<span class='info'>You strap the armor plating to [A] and sharpen [A.p_their()] claws with the nail filer. This was a great idea.</span>"
qdel(src)

View File

@@ -294,7 +294,7 @@
user << "<span class='notice'>[src] are useless on the dead.</span>"
return
if(H != user)
H.visible_message("[user] forces [H] to apply [src]... they quickly regenerate all injuries!")
H.visible_message("[user] forces [H] to apply [src]... [H.p_they()] quickly regenerate all injuries!")
feedback_add_details("hivelord_core","[src.type]|used|other")
else
user << "<span class='notice'>You start to smear [src] on yourself. It feels and smells disgusting, but you feel amazingly refreshed in mere moments.</span>"

View File

@@ -31,7 +31,7 @@
del_on_death = 1
/mob/living/simple_animal/shade/death()
deathmessage = "lets out a contented sigh as [their_pronoun()] form unwinds."
deathmessage = "lets out a contented sigh as [p_their()] form unwinds."
..()
/mob/living/simple_animal/shade/canSuicide()
@@ -50,7 +50,7 @@
M.visible_message("<span class='danger'>[M] heals \the <b>[src]</b>.</span>", \
"<span class='cult'>You heal <b>[src]</b>, leaving <b>[src]</b> at <b>[health]/[maxHealth]</b> health.</span>")
else
M << "<span class='cult'>You cannot heal <b>[src]</b>, as [they_pronoun()] [get_is()] unharmed!</span>"
M << "<span class='cult'>You cannot heal <b>[src]</b>, as [p_they()] [p_are()] unharmed!</span>"
else if(src != M)
..()

View File

@@ -24,7 +24,7 @@
spawn(0)//Parallel processing.
E.process(C)
else
H << "<span class='warning'>They are already trapped inside an energy net!</span>"
H << "<span class='warning'>[C.p_they(TRUE)] are already trapped inside an energy net!</span>"
else
H << "<span class='warning'>They will bring no honor to your Clan!</span>"
H << "<span class='warning'>[C.p_they(TRUE)] will bring no honor to your Clan!</span>"
return

View File

@@ -281,5 +281,5 @@ They *could* go in their appropriate files, but this is supposed to be modular
var/datum/effect_system/spark_spread/spark_system = new /datum/effect_system/spark_spread()
spark_system.set_up(5, 0, loc)
playsound(src, "sparks", 50, 1)
visible_message("<span class='danger'>[H] electrocutes [src] with [H.their_pronoun()] touch!</span>", "<span class='userdanger'>[H] electrocutes you with [H.their_pronoun()] touch!</span>")
visible_message("<span class='danger'>[H] electrocutes [src] with [H.p_their()] touch!</span>", "<span class='userdanger'>[H] electrocutes you with [H.p_their()] touch!</span>")
electrocute_act(25, H)

View File

@@ -172,7 +172,7 @@
/obj/item/weapon/paper/contract/infernal/attack(mob/M, mob/living/user)
add_fingerprint(user)
if(M == user && target == M.mind && M.mind.soulOwner != owner && attempt_signature(user, 1))
user.visible_message("<span class='danger'>[user] slices [user.their_pronoun()] wrist with [src], and scrawls [user.their_pronoun()] name in blood.</span>", "<span class='danger'>You slice your wrist open and scrawl your name in blood.</span>")
user.visible_message("<span class='danger'>[user] slices [user.p_their()] wrist with [src], and scrawls [user.p_their()] name in blood.</span>", "<span class='danger'>You slice your wrist open and scrawl your name in blood.</span>")
user.blood_volume = max(user.blood_volume - 100, 0)
else
return ..()

View File

@@ -9,8 +9,7 @@
var/mode = 0
/obj/item/weapon/hand_labeler/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] is pointing \the [src] \
at \himself. They're going to label themselves as a suicide!</span>")
user.visible_message("<span class='suicide'>[user] is pointing \the [src] at [user.p_them()]self. [user.p_theyre(TRUE)] going to label [user.p_them()]self as a suicide!</span>")
labels_left = max(labels_left - 1, 0)
var/old_real_name = user.real_name

View File

@@ -255,7 +255,7 @@
for(var/obj/item/I in L.held_items)
if(!holding)
holding += "They are holding \a [I]"
holding += "[L.p_they(TRUE)] [L.p_are()] holding \a [I]"
else
holding += " and \a [I]"
holding = holding.Join()

View File

@@ -389,7 +389,7 @@ obj/item/weapon/gun/proc/newshot()
return
if(user == target)
target.visible_message("<span class='warning'>[user] sticks [src] in [user.their_pronoun()] mouth, ready to pull the trigger...</span>", \
target.visible_message("<span class='warning'>[user] sticks [src] in [user.p_their()] mouth, ready to pull the trigger...</span>", \
"<span class='userdanger'>You stick [src] in your mouth, ready to pull the trigger...</span>")
else
target.visible_message("<span class='warning'>[user] points [src] at [target]'s head, ready to pull the trigger...</span>", \

View File

@@ -348,9 +348,9 @@
N.regenerate_icons()
if(prob(7))
if(N.w_uniform)
M.visible_message(pick("<b>[M]</b>'s collar pops up without warning.</span>", "<b>[M]</b> flexes [M.their_pronoun()] arms."))
M.visible_message(pick("<b>[M]</b>'s collar pops up without warning.</span>", "<b>[M]</b> flexes [M.p_their()] arms."))
else
M.visible_message("<b>[M]</b> [M.their_pronoun()] their arms.")
M.visible_message("<b>[M]</b> [M.p_their()] their arms.")
if(prob(10))
M.say(pick("Check these sweet biceps bro!", "Deal with it.", "CHUG! CHUG! CHUG! CHUG!", "Winning!", "NERDS!", "My name is John and I hate every single one of you."))
..()
@@ -368,7 +368,7 @@
/datum/reagent/stableslimetoxin/on_mob_life(mob/living/carbon/human/H)
..()
H << "<span class='warning'><b>You crumple in agony as your flesh wildly morphs into new forms!</b></span>"
H.visible_message("<b>[H]</b> falls to the ground and screams as [H.their_pronoun()] skin bubbles and froths!") //'froths' sounds painful when used with SKIN.
H.visible_message("<b>[H]</b> falls to the ground and screams as [H.p_their()] skin bubbles and froths!") //'froths' sounds painful when used with SKIN.
H.Weaken(3, 0)
spawn(30)
if(!H || qdeleted(H))

View File

@@ -525,7 +525,7 @@
if(!H.heart_attack)
H.heart_attack = 1 // rip in pepperoni
if(H.stat == CONSCIOUS)
H.visible_message("<span class='userdanger'>[H] clutches at [H.their_pronoun()] chest as if [H.their_pronoun()] heart stopped!</span>")
H.visible_message("<span class='userdanger'>[H] clutches at [H.p_their()] chest as if [H.p_their()] heart stopped!</span>")
else
H.losebreath += 10
H.adjustOxyLoss(rand(5,25), 0)

View File

@@ -62,7 +62,7 @@
else if(C.is_mouth_covered(mask_only = 1))
covered = "mask"
if(covered)
var/who = (isnull(user) || eater == user) ? "your" : "[eater.their_pronoun()]"
var/who = (isnull(user) || eater == user) ? "your" : "[eater.p_their()]"
user << "<span class='warning'>You have to remove [who] [covered] first!</span>"
return 0
return 1

View File

@@ -114,7 +114,6 @@ var/global/list/obj/machinery/message_server/message_servers = list()
rc_msgs += new/datum/data_rc_msg(recipient,sender,message,stamp,id_auth)
/obj/machinery/message_server/attack_hand(mob/user)
// user << "\blue There seem to be some parts missing from this server. They should arrive on the station in a few days, give or take a few Centcom delays."
user << "You toggle PDA message passing from [active ? "On" : "Off"] to [active ? "Off" : "On"]"
active = !active
update_icon()

View File

@@ -194,7 +194,7 @@
SM.mind.enslave_mind_to_creator(user)
SM.sentience_act()
SM << "<span class='warning'>All at once it makes sense: you know what you are and who you are! Self awareness is yours!</span>"
SM << "<span class='userdanger'>You are grateful to be self aware and owe [user] a great debt. Serve [user], and assist [user.them_pronoun()] in completing [user.their_pronoun()] goals at any cost.</span>"
SM << "<span class='userdanger'>You are grateful to be self aware and owe [user] a great debt. Serve [user], and assist [user.p_them()] in completing [user.p_their()] goals at any cost.</span>"
user << "<span class='notice'>[SM] accepts the potion and suddenly becomes attentive and aware. It worked!</span>"
qdel(src)
else

View File

@@ -20,7 +20,7 @@
user << "<span class='userdanger'>No... just one more try...</span>"
user.gib()
else
user.visible_message("<span class='warning'>[user] pulls [src]'s lever with a glint in [user.their_pronoun()] eyes!</span>", "<span class='warning'>You feel a draining as you pull the lever, but you \
user.visible_message("<span class='warning'>[user] pulls [src]'s lever with a glint in [user.p_their()] eyes!</span>", "<span class='warning'>You feel a draining as you pull the lever, but you \
know it'll be worth it.</span>")
icon_state = "slots2"
playsound(src, 'sound/lavaland/cursed_slot_machine.ogg', 50, 0)
@@ -97,7 +97,7 @@
icon_state = "magic_mirror"
/obj/structure/mirror/magic/pride/curse(mob/user)
user.visible_message("<span class='danger'><B>The ground splits beneath [user] as [user.their_pronoun()] hand leaves the mirror!</B></span>", \
user.visible_message("<span class='danger'><B>The ground splits beneath [user] as [user.p_their()] hand leaves the mirror!</B></span>", \
"<span class='notice'>Perfect. Much better! Now <i>nobody</i> will be able to resist yo-</span>")
var/turf/T = get_turf(user)
T.ChangeTurf(/turf/open/chasm/straight_down)

View File

@@ -96,8 +96,7 @@
for(var/i in found - sleepers)
var/mob/living/L = i
L.color = "#800080"
L.visible_message("<span class='revennotice'>A strange purple glow \
wraps itself around [L] as they suddenly fall unconcious.</span>",
L.visible_message("<span class='revennotice'>A strange purple glow wraps itself around [L] as [L.p_they()] suddenly fall[L.p_s()] unconscious.</span>",
"<span class='revendanger'>[desc]</span>")
// Don't let them sit suround unconscious forever
addtimer(src, "sleeper_dreams", 100, FALSE, L)

View File

@@ -80,7 +80,7 @@
lich.real_name = M.mind.name
M.mind.transfer_to(lich)
lich.hardset_dna(null,null,lich.real_name,null,/datum/species/skeleton)
lich << "<span class='warning'>Your bones clatter and shutter as they're pulled back into this world!</span>"
lich << "<span class='warning'>Your bones clatter and shutter as you are pulled back into this world!</span>"
charge_max += 600
var/mob/old_body = current_body
var/turf/body_turf = get_turf(old_body)

View File

@@ -31,8 +31,11 @@ Also, you never added distance checking after target is selected. I've went ahea
var/mob/living/target = targets[1]
var/t_He = target.p_they(TRUE)
var/t_is = target.p_are()
if(!(target in oview(range)) && !distanceoverride)//If they are not in overview after selection. Do note that !() is necessary for in to work because ! takes precedence over it.
user << "<span class='warning'>They are too far away!</span>"
user << "<span class='warning'>[t_He] [t_is] too far away!</span>"
return
if(ismegafauna(target))
@@ -44,7 +47,7 @@ Also, you never added distance checking after target is selected. I've went ahea
return
if(!target.key || !target.mind)
user << "<span class='warning'>They appear to be catatonic! Not even magic can affect their vacant mind.</span>"
user << "<span class='warning'>[t_He] appear[target.p_s()] to be catatonic! Not even magic can affect [target.p_their()] vacant mind.</span>"
return
if(user.suiciding)
@@ -52,7 +55,7 @@ Also, you never added distance checking after target is selected. I've went ahea
return
if((target.mind.special_role in protected_roles) || cmptext(copytext(target.key,1,2),"@"))
user << "<span class='warning'>Their mind is resisting your spell!</span>"
user << "<span class='warning'>[target.p_their(TRUE)] mind is resisting your spell!</span>"
return
var/mob/living/victim = target//The target of the spell whos body will be transferred to.

View File

@@ -20,7 +20,7 @@
var/oldname = target.real_name
target.real_name = target.dna.species.random_name(target.gender,1)
var/newname = target.real_name //something about how the code handles names required that I use this instead of target.real_name
user.visible_message("[user] alters [oldname]'s appearance completely, they are now [newname]!", "<span class='notice'>You alter [oldname]'s appearance completely, they are now [newname].</span>")
user.visible_message("[user] alters [oldname]'s appearance completely, [target.p_they()] are now [newname]!", "<span class='notice'>You alter [oldname]'s appearance completely, [target.p_they()] are now [newname].</span>")
if(ishuman(target))
var/mob/living/carbon/human/H = target
H.sec_hud_set_ID()

View File

@@ -52,12 +52,12 @@
owner.revive(full_heal = TRUE)
switch(old_stat)
if(DEAD, UNCONSCIOUS)
owner.visible_message("<span class='danger'>[owner] staggers to [owner.their_pronoun()] feet!</span>")
owner.visible_message("<span class='danger'>[owner] staggers to [owner.p_their()] feet!</span>")
owner << "<span class='danger'>You stagger to your feet!</span>"
// Conscious conversions will generally only happen for an event
// or for a converts_living=TRUE infection
if(CONSCIOUS)
owner.visible_message("<span class='danger'>[owner] suddenly convulses, as [owner.they_pronoun()] gain a ravenous hunger in [owner.their_pronoun()] eyes!</span>",
owner.visible_message("<span class='danger'>[owner] suddenly convulses, as [owner.p_they()] gain a ravenous hunger in [owner.p_their()] eyes!</span>",
"<span class='alien'>You HUNGER!</span>")
playsound(owner.loc, 'sound/hallucinations/growl3.ogg', 50, 1)
owner.do_jitter_animation(living_transformation_time)