[MIRROR] Adds p_They (and friends) for capitalized pronoun helpers [MDB IGNORE] (#22555)

* Adds p_They (and friends) for capitalized pronoun helpers

* Fixes modular pronouns

* Merge conflict

* Update spank_related.dm

---------

Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: Bloop <vinylspiders@gmail.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
This commit is contained in:
SkyratBot
2023-07-19 04:10:59 +02:00
committed by GitHub
parent a9c80a29a3
commit 07fa5992a4
73 changed files with 268 additions and 268 deletions
+128 -135
View File
@@ -1,259 +1,261 @@
//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/p_they(capitalized, temp_gender)
. = "it"
if(capitalized)
. = capitalize(.)
/datum/proc/p_they(temp_gender)
return "it"
/datum/proc/p_their(capitalized, temp_gender)
. = "its"
if(capitalized)
. = capitalize(.)
/datum/proc/p_They(temp_gender)
return capitalize(p_they(temp_gender))
/datum/proc/p_theirs(capitalized, temp_gender)
. = "its"
if(capitalized)
. = capitalize(.)
/datum/proc/p_their(temp_gender)
return "its"
/datum/proc/p_them(capitalized, temp_gender)
. = "it"
if(capitalized)
. = capitalize(.)
/datum/proc/p_Their(temp_gender)
return capitalize(p_their(temp_gender))
/datum/proc/p_theirs(temp_gender)
return "its"
/datum/proc/p_Theirs(temp_gender)
return capitalize(p_theirs(temp_gender))
/datum/proc/p_them(temp_gender)
return "it"
/datum/proc/p_Them(temp_gender)
return capitalize(p_them(temp_gender))
/datum/proc/p_have(temp_gender)
. = "has"
return "has"
/datum/proc/p_are(temp_gender)
. = "is"
return "is"
/datum/proc/p_were(temp_gender)
. = "was"
return "was"
/datum/proc/p_do(temp_gender)
. = "does"
return "does"
/datum/proc/p_theyve(capitalized, temp_gender)
. = p_they(capitalized, temp_gender) + "'" + copytext_char(p_have(temp_gender), 3)
/datum/proc/p_theyve(temp_gender)
return p_they(temp_gender) + "'" + copytext_char(p_have(temp_gender), 3)
/datum/proc/p_theyre(capitalized, temp_gender)
. = p_they(capitalized, temp_gender) + "'" + copytext_char(p_are(temp_gender), 2)
/datum/proc/p_Theyve(temp_gender)
return p_They(temp_gender) + "'" + copytext_char(p_have(temp_gender), 3)
/datum/proc/p_theyre(temp_gender)
return p_they(temp_gender) + "'" + copytext_char(p_are(temp_gender), 2)
/datum/proc/p_Theyre(temp_gender)
return p_They(temp_gender) + "'" + copytext_char(p_are(temp_gender), 2)
/datum/proc/p_s(temp_gender) //is this a descriptive proc name, or what?
. = "s"
return "s"
/datum/proc/p_es(temp_gender)
. = "es"
return "es"
/datum/proc/plural_s(pluralize)
switch(copytext_char(pluralize, -2))
if ("ss")
. = "es"
return "es"
if ("sh")
. = "es"
return "es"
if ("ch")
. = "es"
return "es"
else
switch(copytext_char(pluralize, -1))
if("s", "x", "z")
. = "es"
return "es"
else
. = "s"
return "s"
//like clients, which do have gender.
/client/p_they(capitalized, temp_gender)
/client/p_they(temp_gender)
if(!temp_gender)
temp_gender = gender
. = "they"
switch(temp_gender)
if(FEMALE)
. = "she"
return "she"
if(MALE)
. = "he"
if(capitalized)
. = capitalize(.)
return "he"
else
return "they"
/client/p_their(capitalized, temp_gender)
/client/p_their(temp_gender)
if(!temp_gender)
temp_gender = gender
. = "their"
switch(temp_gender)
if(FEMALE)
. = "her"
return "her"
if(MALE)
. = "his"
if(capitalized)
. = capitalize(.)
return "his"
else
return "their"
/client/p_theirs(capitalized, temp_gender)
/client/p_theirs(temp_gender)
if(!temp_gender)
temp_gender = gender
. = "theirs"
switch(temp_gender)
if(FEMALE)
. = "hers"
return "hers"
if(MALE)
. = "his"
if(capitalized)
. = capitalize(.)
return "his"
else
return "theirs"
/client/p_them(capitalized, temp_gender)
/client/p_them(temp_gender)
if(!temp_gender)
temp_gender = gender
. = "them"
switch(temp_gender)
if(FEMALE)
. = "her"
return "her"
if(MALE)
. = "him"
if(capitalized)
. = capitalize(.)
return "him"
else
return "them"
/client/p_have(temp_gender)
if(!temp_gender)
temp_gender = gender
. = "has"
if(temp_gender == PLURAL || temp_gender == NEUTER)
. = "have"
return "have"
return "has"
/client/p_are(temp_gender)
if(!temp_gender)
temp_gender = gender
. = "is"
if(temp_gender == PLURAL || temp_gender == NEUTER)
. = "are"
return "are"
return "is"
/client/p_were(temp_gender)
if(!temp_gender)
temp_gender = gender
. = "was"
if(temp_gender == PLURAL || temp_gender == NEUTER)
. = "were"
return "were"
return "was"
/client/p_do(temp_gender)
if(!temp_gender)
temp_gender = gender
. = "does"
if(temp_gender == PLURAL || temp_gender == NEUTER)
. = "do"
return "do"
return "does"
/client/p_s(temp_gender)
if(!temp_gender)
temp_gender = gender
if(temp_gender != PLURAL && temp_gender != NEUTER)
. = "s"
return "s"
/client/p_es(temp_gender)
if(!temp_gender)
temp_gender = gender
if(temp_gender != PLURAL && temp_gender != NEUTER)
. = "es"
return "es"
//mobs(and atoms but atoms don't really matter write your own proc overrides) also have gender!
/mob/p_they(capitalized, temp_gender)
/mob/p_they(temp_gender)
if(!temp_gender)
temp_gender = gender
. = "it"
switch(temp_gender)
if(FEMALE)
. = "she"
return "she"
if(MALE)
. = "he"
return "he"
if(PLURAL)
. = "they"
if(capitalized)
. = capitalize(.)
return "they"
else
return "it"
/mob/p_their(capitalized, temp_gender)
/mob/p_their(temp_gender)
if(!temp_gender)
temp_gender = gender
. = "its"
switch(temp_gender)
if(FEMALE)
. = "her"
return "her"
if(MALE)
. = "his"
return "his"
if(PLURAL)
. = "their"
if(capitalized)
. = capitalize(.)
return "their"
else
return "its"
/mob/p_theirs(capitalized, temp_gender)
/mob/p_theirs(temp_gender)
if(!temp_gender)
temp_gender = gender
. = "its"
switch(temp_gender)
if(FEMALE)
. = "hers"
return "hers"
if(MALE)
. = "his"
return "his"
if(PLURAL)
. = "theirs"
if(capitalized)
. = capitalize(.)
return "theirs"
else
return "its"
/mob/p_them(capitalized, temp_gender)
if(!temp_gender)
temp_gender = gender
. = "it"
switch(temp_gender)
if(FEMALE)
. = "her"
return "her"
if(MALE)
. = "him"
return "him"
if(PLURAL)
. = "them"
if(capitalized)
. = capitalize(.)
return "them"
else
return "it"
/mob/p_have(temp_gender)
if(!temp_gender)
temp_gender = gender
. = "has"
if(temp_gender == PLURAL)
. = "have"
return "have"
return "has"
/mob/p_are(temp_gender)
if(!temp_gender)
temp_gender = gender
. = "is"
if(temp_gender == PLURAL)
. = "are"
return "are"
return "is"
/mob/p_were(temp_gender)
if(!temp_gender)
temp_gender = gender
. = "was"
if(temp_gender == PLURAL)
. = "were"
return "were"
return "was"
/mob/p_do(temp_gender)
if(!temp_gender)
temp_gender = gender
. = "does"
if(temp_gender == PLURAL)
. = "do"
return "do"
return "does"
/mob/p_s(temp_gender)
if(!temp_gender)
temp_gender = gender
if(temp_gender != PLURAL)
. = "s"
return "s"
/mob/p_es(temp_gender)
if(!temp_gender)
temp_gender = gender
if(temp_gender != PLURAL)
. = "es"
return "es"
//humans need special handling, because they can have their gender hidden
/mob/living/carbon/human/p_they(capitalized, temp_gender)
/mob/living/carbon/human/p_they(temp_gender)
var/obscured = check_obscured_slots()
var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE))
if((obscured & ITEM_SLOT_ICLOTHING) && skipface)
temp_gender = PLURAL
return ..()
/mob/living/carbon/human/p_their(capitalized, temp_gender)
/mob/living/carbon/human/p_their(temp_gender)
var/obscured = check_obscured_slots()
var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE))
if((obscured & ITEM_SLOT_ICLOTHING) && skipface)
@@ -316,80 +318,71 @@
temp_gender = PLURAL
return ..()
//clothing need special handling due to pairs of items, ie gloves vs a singular glove, shoes, ect.
/obj/item/clothing/p_they(capitalized, temp_gender)
/obj/item/clothing/p_they(temp_gender)
if(!temp_gender)
temp_gender = gender
. = "it"
if(temp_gender == PLURAL)
. = "they"
if(capitalized)
. = capitalize(.)
return "they"
return "it"
/obj/item/clothing/p_their(capitalized, temp_gender)
/obj/item/clothing/p_their(temp_gender)
if(!temp_gender)
temp_gender = gender
. = "its"
if(temp_gender == PLURAL)
. = "their"
if(capitalized)
. = capitalize(.)
return "their"
return "its"
/obj/item/clothing/p_theirs(capitalized, temp_gender)
/obj/item/clothing/p_theirs(temp_gender)
if(!temp_gender)
temp_gender = gender
. = "its"
if(temp_gender == PLURAL)
. = "theirs"
if(capitalized)
. = capitalize(.)
return "theirs"
return "its"
/obj/item/clothing/p_them(capitalized, temp_gender)
/obj/item/clothing/p_them(temp_gender)
if(!temp_gender)
temp_gender = gender
. = "it"
if(temp_gender == PLURAL)
. = "them"
if(capitalized)
. = capitalize(.)
return "them"
return "it"
/obj/item/clothing/p_have(temp_gender)
if(!temp_gender)
temp_gender = gender
. = "has"
if(temp_gender == PLURAL)
. = "have"
return "have"
return "has"
/obj/item/clothing/p_are(temp_gender)
if(!temp_gender)
temp_gender = gender
. = "is"
if(temp_gender == PLURAL)
. = "are"
return "are"
return "is"
/obj/item/clothing/p_were(temp_gender)
if(!temp_gender)
temp_gender = gender
. = "was"
if(temp_gender == PLURAL)
. = "were"
return "were"
return "was"
/obj/item/clothing/p_do(temp_gender)
if(!temp_gender)
temp_gender = gender
. = "does"
if(temp_gender == PLURAL)
. = "do"
return "do"
return "does"
/obj/item/clothing/p_s(temp_gender)
if(!temp_gender)
temp_gender = gender
if(temp_gender != PLURAL)
. = "s"
return "s"
/obj/item/clothing/p_es(temp_gender)
if(!temp_gender)
temp_gender = gender
if(temp_gender != PLURAL)
. = "es"
return "es"
@@ -96,7 +96,7 @@
var/mob/living/living_pawn = pawn
if(!IS_DEAD_OR_INCAP(living_pawn))
examine_text += span_notice("[pawn.p_they(TRUE)] seem[pawn.p_s()] happy to see you!")
examine_text += span_notice("[pawn.p_They()] seem[pawn.p_s()] happy to see you!")
// next section is regarding commands
+1 -1
View File
@@ -198,7 +198,7 @@ GLOBAL_DATUM_INIT(acid_overlay, /mutable_appearance, mutable_appearance('icons/e
/datum/component/acid/proc/on_examine(atom/source, mob/user, list/examine_list)
SIGNAL_HANDLER
examine_list += span_danger("[source.p_theyre(TRUE)] covered in a corrosive liquid!")
examine_list += span_danger("[source.p_Theyre()] covered in a corrosive liquid!")
/// Makes it possible to clean acid off of objects.
/datum/component/acid/proc/on_clean(atom/source, clean_types)
+1 -1
View File
@@ -70,7 +70,7 @@ GLOBAL_DATUM_INIT(fire_overlay, /mutable_appearance, mutable_appearance('icons/e
/datum/component/burning/proc/on_examine(atom/source, mob/user, list/examine_list)
SIGNAL_HANDLER
examine_list += span_danger("[source.p_theyre(TRUE)] burning!")
examine_list += span_danger("[source.p_Theyre()] burning!")
/// Handles searing the hand of anyone who tries to touch parent without protection.
/datum/component/burning/proc/on_attack_hand(atom/source, mob/living/carbon/user)
+1 -1
View File
@@ -41,7 +41,7 @@
var/num_crates = LAZYLEN(crates_in_hand)
if(num_crates > 0)
examine_list += span_notice("[source.p_theyre(TRUE)] carrying [num_crates == 1 ? "a crate":"[num_crates] crates"].")
examine_list += span_notice("[source.p_Theyre()] carrying [num_crates == 1 ? "a crate":"[num_crates] crates"].")
/// Signal proc for [COMSIG_LIVING_UNARMED_ATTACK] to allow mobs to pick up or drop crates
/datum/component/crate_carrier/proc/on_unarm_attack(mob/living/source, atom/target, proximity, modifiers)
+1 -1
View File
@@ -190,7 +190,7 @@
if(!isobserver(user))
return
examine_list += span_notice("[A.p_theyre(TRUE)] currently under deadchat control using the [(deadchat_mode & DEMOCRACY_MODE) ? "democracy" : "anarchy"] ruleset!")
examine_list += span_notice("[A.p_Theyre()] currently under deadchat control using the [(deadchat_mode & DEMOCRACY_MODE) ? "democracy" : "anarchy"] ruleset!")
if(deadchat_mode & DEMOCRACY_MODE)
examine_list += span_notice("Type a command into chat to vote on an action. This happens once every [input_cooldown * 0.1] second\s.")
@@ -114,11 +114,11 @@
var/key = scoops[1]
var/datum/ice_cream_flavour/flavour = GLOB.ice_cream_flavours[LAZYACCESS(special_scoops, key) || key]
if(flavour?.desc) //I scream.
examine_list += "[source.p_theyre(TRUE)] filled with scoops of [flavour ? flavour.name : "broken, unhappy"] icecream."
examine_list += "[source.p_Theyre()] filled with scoops of [flavour ? flavour.name : "broken, unhappy"] icecream."
else
examine_list += replacetext(replacetext("[source.p_theyre(TRUE)] [flavour.desc]", "$CONE_NAME", initial(source.name)), "$CUSTOM_NAME", key)
examine_list += replacetext(replacetext("[source.p_Theyre()] [flavour.desc]", "$CONE_NAME", initial(source.name)), "$CUSTOM_NAME", key)
else /// Many flavours.
examine_list += "[source.p_theyre(TRUE)] filled with scoops of [english_list(scoops)] icecream. That's as many as [scoops_len] scoops!"
examine_list += "[source.p_Theyre()] filled with scoops of [english_list(scoops)] icecream. That's as many as [scoops_len] scoops!"
/datum/component/ice_cream_holder/proc/on_update_overlays(atom/source, list/new_overlays)
SIGNAL_HANDLER
+1 -1
View File
@@ -164,7 +164,7 @@
owner.remove_actionspeed_modifier(/datum/actionspeed_modifier/status_effect/hazard_area, update=TRUE)
/datum/status_effect/hazard_area/get_examine_text()
return span_notice("[owner.p_they(TRUE)] appear[owner.p_s()] to be largely immobilized through unknown means.")
return span_notice("[owner.p_They()] appear[owner.p_s()] to be largely immobilized through unknown means.")
/atom/movable/screen/alert/status_effect/hazard_area
name = "Hazardous Area"
+1 -1
View File
@@ -46,7 +46,7 @@
/datum/component/multiple_lives/proc/on_examine(mob/living/source, mob/user, list/examine_list)
SIGNAL_HANDLER
if(isobserver(user) || source == user)
examine_list += "[source.p_theyve(TRUE)] [lives_left] extra lives left."
examine_list += "[source.p_Theyve()] [lives_left] extra lives left."
/datum/component/multiple_lives/InheritComponent(datum/component/multiple_lives/new_comp , lives_left)
src.lives_left += new_comp ? new_comp.lives_left : lives_left
@@ -59,7 +59,7 @@
return
if (!(user in source.ai_controller?.blackboard[BB_FRIENDS_LIST]))
return
examine_list += span_notice("[source.p_they(capitalized = TRUE)] seem[source.p_s()] happy to see you!")
examine_list += span_notice("[source.p_They()] seem[source.p_s()] happy to see you!")
/// Displays a radial menu of commands
/datum/component/obeys_commands/proc/display_menu(datum/source, mob/living/clicker)
@@ -180,7 +180,7 @@
return
if(atom_source.Adjacent(user)) //if the item is stuck to the person, kill the person too instead of eating just the item.
var/vis_msg = span_danger("[user] reaches out and touches [atom_source] with [item], inducing a resonance... [item] starts to glow briefly before the light continues up to [user]'s body. [user.p_they(TRUE)] bursts into flames before flashing into dust!")
var/vis_msg = span_danger("[user] reaches out and touches [atom_source] with [item], inducing a resonance... [item] starts to glow briefly before the light continues up to [user]'s body. [user.p_They()] burst[user.p_s()] into flames before flashing into dust!")
var/mob_msg = span_userdanger("You reach out and touch [atom_source] with [item]. Everything starts burning and all you can hear is ringing. Your last thought is \"That was not a wise decision.\"")
dust_mob(source, user, vis_msg, mob_msg)
+1 -1
View File
@@ -99,7 +99,7 @@
/datum/component/thermite/proc/on_examine(turf/source, mob/user, list/examine_list)
SIGNAL_HANDLER
examine_list += span_warning("[source.p_theyre(TRUE)] covered in thermite.")
examine_list += span_warning("[source.p_Theyre()] covered in thermite.")
/// Used to maintain the thermite overlay on the parent [/turf].
/datum/component/thermite/proc/on_update_overlays(turf/parent_turf, list/overlays)
+1 -1
View File
@@ -133,7 +133,7 @@
/datum/component/usb_port/proc/on_examine_shell(datum/source, mob/user, list/examine_text)
SIGNAL_HANDLER
examine_text += span_notice("[source.p_they(TRUE)] [source.p_are()] attached to [parent] with a USB cable.")
examine_text += span_notice("[source.p_They()] [source.p_are()] attached to [parent] with a USB cable.")
/datum/component/usb_port/proc/on_atom_usb_cable_try_attach(datum/source, obj/item/usb_cable/connecting_cable, mob/user)
SIGNAL_HANDLER
+1 -1
View File
@@ -54,7 +54,7 @@
var/obj/item/carried_item = get_held_item(source)
if (!carried_item)
return
examine_text += span_notice("[source.p_they(TRUE)] [source.p_are()] carrying [carried_item.get_examine_string(user)].")
examine_text += span_notice("[source.p_They()] [source.p_are()] carrying [carried_item.get_examine_string(user)].")
/// If we died, drop anything we were carrying
/datum/element/ai_held_item/proc/on_death(mob/living/ol_yeller)
+2 -2
View File
@@ -24,10 +24,10 @@
msg = "What \a [pick("masterpiece", "chef-d'oeuvre")]. So [pick("trascended", "awe-inspiring", "bewitching", "impeccable")]!"
if (GOOD_ART to GREAT_ART)
user.add_mood_event("artgood", /datum/mood_event/artgood)
msg = "[source.p_theyre(TRUE)] a [pick("respectable", "commendable", "laudable")] art piece, easy on the keen eye."
msg = "[source.p_Theyre()] a [pick("respectable", "commendable", "laudable")] art piece, easy on the keen eye."
if (BAD_ART to GOOD_ART)
user.add_mood_event("artok", /datum/mood_event/artok)
msg = "[source.p_theyre(TRUE)] fair to middling, enough to be called an \"art object\"."
msg = "[source.p_Theyre()] fair to middling, enough to be called an \"art object\"."
if (0 to BAD_ART)
user.add_mood_event("artbad", /datum/mood_event/artbad)
msg = "Wow, [source.p_they()] sucks."
+1 -1
View File
@@ -36,7 +36,7 @@
if (user.combat_mode)
return // We'll deal with this later
if (owner.stat == DEAD)
var/additional_text = HAS_MIND_TRAIT(user, TRAIT_NAIVE) ? "It looks like [owner.p_theyre()] sleeping." : "[owner.p_they(capitalized = TRUE)] seem[owner.p_s()] to be dead."
var/additional_text = HAS_MIND_TRAIT(user, TRAIT_NAIVE) ? "It looks like [owner.p_theyre()] sleeping." : "[owner.p_They()] seem[owner.p_s()] to be dead."
to_chat(user, span_warning("[owner] feels cold to the touch. [additional_text]"))
return
if (owner.stat != CONSCIOUS)
+1 -1
View File
@@ -53,7 +53,7 @@
if(!should_show_text(examined))
return
var/examine_text = replacetext(replacetext("[body_zone ? examined.p_their(TRUE) : examined.p_they(TRUE)] [infused_desc]", "%PRONOUN_ES", examined.p_es()), "%PRONOUN_S", examined.p_s())
var/examine_text = replacetext(replacetext("[body_zone ? examined.p_Their() : examined.p_They()] [infused_desc]", "%PRONOUN_ES", examined.p_es()), "%PRONOUN_S", examined.p_s())
if(add_span)
examine_text = span_notice(examine_text)
examine_list += examine_text
+5 -5
View File
@@ -75,16 +75,16 @@
if(!source.override_notes)
// Make sure not to divide by 0 on accident
if(source.force > 0)
readout += "[source.p_they(capitalized = TRUE)] takes about [span_warning("[HITS_TO_CRIT(source.force)] melee hit\s")] to take down an enemy."
readout += "It takes about [span_warning("[HITS_TO_CRIT(source.force)] melee hit\s")] to take down an enemy."
else
readout += "[source.p_they(capitalized = TRUE)] does not deal noticeable melee damage."
readout += "It does not deal noticeable melee damage."
if(source.throwforce > 0)
readout += "[source.p_they(capitalized = TRUE)] takes about [span_warning("[HITS_TO_CRIT(source.throwforce)] throwing hit\s")] to take down an enemy."
readout += "It takes about [span_warning("[HITS_TO_CRIT(source.throwforce)] throwing hit\s")] to take down an enemy."
else
readout += "[source.p_they(capitalized = TRUE)] does not deal noticeable throwing damage."
readout += "It does not deal noticeable throwing damage."
if(source.armour_penetration > 0 || source.block_chance > 0)
readout += "[source.p_they(capitalized = TRUE)] has [span_warning("[weapon_tag_convert(source.armour_penetration)]")] armor-piercing capability and [span_warning("[weapon_tag_convert(source.block_chance)]")] blocking capability."
readout += "It has [span_warning("[weapon_tag_convert(source.armour_penetration)]")] armor-piercing capability and [span_warning("[weapon_tag_convert(source.block_chance)]")] blocking capability."
// Custom manual notes
if(source.offensive_notes)
readout += source.offensive_notes
+1 -1
View File
@@ -209,7 +209,7 @@
med_hud.hide_from(owner)
/datum/status_effect/hippocratic_oath/get_examine_text()
return span_notice("[owner.p_they(TRUE)] seem[owner.p_s()] to have an aura of healing and helpfulness about [owner.p_them()].")
return span_notice("[owner.p_They()] seem[owner.p_s()] to have an aura of healing and helpfulness about [owner.p_them()].")
/datum/status_effect/hippocratic_oath/tick()
if(owner.stat == DEAD)
@@ -79,7 +79,7 @@
UnregisterSignal(owner, COMSIG_LIVING_GENERIC_STUN_CHECK)
/datum/status_effect/stun_absorption/get_examine_text()
return replacetext(examine_message, "%EFFECT_OWNER_THEYRE", owner.p_theyre(TRUE))
return replacetext(examine_message, "%EFFECT_OWNER_THEYRE", owner.p_Theyre())
/**
* Signal proc for generic stun signals being sent, such as [COMSIG_LIVING_STATUS_STUN] or [COMSIG_LIVING_STATUS_KNOCKDOWN].
+1 -1
View File
@@ -122,7 +122,7 @@
choking_on.throw_at(target, distance, 1, source)
/datum/status_effect/choke/get_examine_text()
return span_boldwarning("[owner.p_they(TRUE)] [owner.p_are()] choking!")
return span_boldwarning("[owner.p_They()] [owner.p_are()] choking!")
/datum/status_effect/choke/proc/remove_choke(datum/source)
SIGNAL_HANDLER
@@ -421,7 +421,7 @@
owner.emote(pick("gasp", "gag", "choke"))
/datum/status_effect/neck_slice/get_examine_text()
return span_warning("[owner.p_their(TRUE)] neck is cut and is bleeding profusely!")
return span_warning("[owner.p_Their()] neck is cut and is bleeding profusely!")
/mob/living/proc/apply_necropolis_curse(set_curse)
var/datum/status_effect/necropolis_curse/C = has_status_effect(/datum/status_effect/necropolis_curse)
@@ -571,7 +571,7 @@
to_chat(owner, span_warning("You snap out of your trance!"))
/datum/status_effect/trance/get_examine_text()
return span_warning("[owner.p_they(TRUE)] seem[owner.p_s()] slow and unfocused.")
return span_warning("[owner.p_They()] seem[owner.p_s()] slow and unfocused.")
/datum/status_effect/trance/proc/hypnotize(datum/source, list/hearing_args)
SIGNAL_HANDLER
@@ -814,7 +814,7 @@
return COMPONENT_CLEANED
/datum/status_effect/ants/get_examine_text()
return span_warning("[owner.p_they(TRUE)] [owner.p_are()] covered in ants!")
return span_warning("[owner.p_They()] [owner.p_are()] covered in ants!")
/datum/status_effect/ants/tick()
var/mob/living/carbon/human/victim = owner
+6 -6
View File
@@ -40,17 +40,17 @@
// .01s are used in case the drunk value ends up to be a small decimal.
switch(drunk_value)
if(11 to 21)
return span_warning("[owner.p_they(TRUE)] [owner.p_are()] slightly flushed.")
return span_warning("[owner.p_They()] [owner.p_are()] slightly flushed.")
if(21.01 to 41)
return span_warning("[owner.p_they(TRUE)] [owner.p_are()] flushed.")
return span_warning("[owner.p_They()] [owner.p_are()] flushed.")
if(41.01 to 51)
return span_warning("[owner.p_they(TRUE)] [owner.p_are()] quite flushed and [owner.p_their()] breath smells of alcohol.")
return span_warning("[owner.p_They()] [owner.p_are()] quite flushed and [owner.p_their()] breath smells of alcohol.")
if(51.01 to 61)
return span_warning("[owner.p_they(TRUE)] [owner.p_are()] very flushed and [owner.p_their()] movements jerky, with breath reeking of alcohol.")
return span_warning("[owner.p_They()] [owner.p_are()] very flushed and [owner.p_their()] movements jerky, with breath reeking of alcohol.")
if(61.01 to 91)
return span_warning("[owner.p_they(TRUE)] look[owner.p_s()] like a drunken mess.")
return span_warning("[owner.p_They()] look[owner.p_s()] like a drunken mess.")
if(91.01 to INFINITY)
return span_warning("[owner.p_they(TRUE)] [owner.p_are()] a shitfaced, slobbering wreck.")
return span_warning("[owner.p_They()] [owner.p_are()] a shitfaced, slobbering wreck.")
return null
@@ -29,11 +29,11 @@
/datum/status_effect/jitter/get_examine_text()
switch(duration - world.time)
if(5 MINUTES to INFINITY)
return span_boldwarning("[owner.p_they(TRUE)] [owner.p_are()] convulsing violently!")
return span_boldwarning("[owner.p_They()] [owner.p_are()] convulsing violently!")
if(3 MINUTES to 5 MINUTES)
return span_warning("[owner.p_they(TRUE)] [owner.p_are()] extremely jittery.")
return span_warning("[owner.p_They()] [owner.p_are()] extremely jittery.")
if(1 MINUTES to 3 MINUTES)
return span_warning("[owner.p_they(TRUE)] [owner.p_are()] twitching ever so slightly.")
return span_warning("[owner.p_They()] [owner.p_are()] twitching ever so slightly.")
return null
@@ -19,7 +19,7 @@
UnregisterSignal(owner, list(COMSIG_CARBON_PRE_BREATHE, COMSIG_ATOM_TOOL_ACT(TOOL_WIRECUTTER), COMSIG_CARBON_PRE_MISC_HELP))
/datum/status_effect/strandling/get_examine_text()
return span_warning("[owner.p_they(TRUE)] seem[owner.p_s()] to be being choked by some durathread strands. You may be able to <b>cut</b> them off.")
return span_warning("[owner.p_They()] seem[owner.p_s()] to be being choked by some durathread strands. You may be able to <b>cut</b> them off.")
/// Signal proc for [COMSIG_CARBON_PRE_BREATHE], causes losebreath whenever we're trying to breathe
/datum/status_effect/strandling/proc/on_breathe(mob/living/source)
@@ -82,7 +82,7 @@
/datum/status_effect/terrified/get_examine_text()
if(terror_buildup > DARKNESS_TERROR_CAP) //If we're approaching a heart attack
return span_boldwarning("[owner.p_they(TRUE)] [owner.p_are()] seizing up, about to collapse in fear!")
return span_boldwarning("[owner.p_They()] [owner.p_are()] seizing up, about to collapse in fear!")
if(terror_buildup >= TERROR_PANIC_THRESHOLD)
return span_boldwarning("[owner] is visibly trembling and twitching. It looks like [owner.p_theyre()] freaking out!")
@@ -90,7 +90,7 @@
if(terror_buildup >= TERROR_FEAR_THRESHOLD)
return span_warning("[owner] looks very worried about something. [owner.p_are(TRUE)] [owner.p_they()] alright?")
return span_notice("[owner] looks rather anxious. [owner.p_they(TRUE)] could probably use a hug...")
return span_notice("[owner] looks rather anxious. [owner.p_They()] could probably use a hug...")
/// If we get a hug from a friend, we calm down! If we get a hug from a nightmare, we FREAK OUT.
/datum/status_effect/terrified/proc/comfort_owner(datum/source, mob/living/hugger)
+1 -1
View File
@@ -33,4 +33,4 @@
return ..()
/datum/status_effect/song/antimagic/get_examine_text()
return span_notice("[owner.p_they(TRUE)] seem[owner.p_s()] to be covered in a dull, grey aura.")
return span_notice("[owner.p_They()] seem[owner.p_s()] to be covered in a dull, grey aura.")
+1 -1
View File
@@ -427,7 +427,7 @@
return .
/datum/wound/proc/get_wound_description(mob/user)
. = "[victim.p_their(TRUE)] [limb.plaintext_zone] [examine_desc]"
. = "[victim.p_Their()] [limb.plaintext_zone] [examine_desc]"
. = severity <= WOUND_SEVERITY_MODERATE ? "[.]." : "<B>[.]!</B>"
return .
+2 -2
View File
@@ -152,7 +152,7 @@
var/list/msg = list()
if(!limb.current_gauze)
msg += "[victim.p_their(TRUE)] [limb.plaintext_zone] [examine_desc]"
msg += "[victim.p_Their()] [limb.plaintext_zone] [examine_desc]"
else
var/sling_condition = ""
// how much life we have left in these bandages
@@ -166,7 +166,7 @@
if(4 to INFINITY)
sling_condition = "tightly"
msg += "[victim.p_their(TRUE)] [limb.plaintext_zone] is [sling_condition] fastened in a sling of [limb.current_gauze.name]"
msg += "[victim.p_Their()] [limb.plaintext_zone] is [sling_condition] fastened in a sling of [limb.current_gauze.name]"
if(taped)
msg += ", [span_notice("and appears to be reforming itself under some surgical tape!")]"
+3 -3
View File
@@ -132,9 +132,9 @@
/datum/wound/burn/get_wound_description(mob/user)
if(strikes_to_lose_limb <= 0)
return span_deadsay("<B>[victim.p_their(TRUE)] [limb.plaintext_zone] has locked up completely and is non-functional.</B>")
return span_deadsay("<B>[victim.p_Their()] [limb.plaintext_zone] has locked up completely and is non-functional.</B>")
var/list/condition = list("[victim.p_their(TRUE)] [limb.plaintext_zone] [examine_desc]")
var/list/condition = list("[victim.p_Their()] [limb.plaintext_zone] [examine_desc]")
if(limb.current_gauze)
var/bandage_condition
switch(limb.current_gauze.absorption_capacity)
@@ -157,7 +157,7 @@
if(WOUND_INFECTION_CRITICAL to WOUND_INFECTION_SEPTIC)
condition += ", [span_deadsay("with streaks of rotten infection!")]"
if(WOUND_INFECTION_SEPTIC to INFINITY)
return span_deadsay("<B>[victim.p_their(TRUE)] [limb.plaintext_zone] is a mess of charred skin and infected rot!</B>")
return span_deadsay("<B>[victim.p_Their()] [limb.plaintext_zone] is a mess of charred skin and infected rot!</B>")
else
condition += "!"
+2 -2
View File
@@ -127,7 +127,7 @@
if(!victim || !is_visible(viewer))
return
var/msg = "[victim.p_they(TRUE)] [victim.p_have()] [description] on [victim.p_their()] [precise_location]."
var/msg = "[victim.p_They()] [victim.p_have()] [description] on [victim.p_their()] [precise_location]."
switch(severity)
if(WOUND_SEVERITY_MODERATE)
msg = span_tinynoticeital("[msg]")
@@ -136,7 +136,7 @@
if(WOUND_SEVERITY_CRITICAL)
msg = span_smallnoticeital("<b>[msg]</b>")
if(WOUND_SEVERITY_LOSS)
msg = "[victim.p_their(TRUE)] [limb.plaintext_zone] [description]." // different format
msg = "[victim.p_Their()] [limb.plaintext_zone] [description]." // different format
msg = span_notice("<i><b>[msg]</b></i>")
return "\t[msg]"
+1 -1
View File
@@ -880,7 +880,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
return
if(fancy)
cig.light(span_rose("[user] whips the [name] out and holds it for [M]. [user.p_their(TRUE)] arm is as steady as the unflickering flame [user.p_they()] light[user.p_s()] \the [cig] with."))
cig.light(span_rose("[user] whips the [name] out and holds it for [M]. [user.p_Their()] arm is as steady as the unflickering flame [user.p_they()] light[user.p_s()] \the [cig] with."))
else
cig.light(span_notice("[user] holds the [name] out for [M], and lights [M.p_their()] [cig.name]."))
+1 -1
View File
@@ -111,7 +111,7 @@
/obj/item/soap/suicide_act(mob/living/user)
user.say(";FFFFFFFFFFFFFFFFUUUUUUUDGE!!", forced="soap suicide")
user.visible_message(span_suicide("[user] lifts [src] to [user.p_their()] mouth and gnaws on it furiously, producing a thick froth! [user.p_they(TRUE)]'ll never get that BB gun now!"))
user.visible_message(span_suicide("[user] lifts [src] to [user.p_their()] mouth and gnaws on it furiously, producing a thick froth! [user.p_They()]'ll never get that BB gun now!"))
var/datum/effect_system/fluid_spread/foam/foam = new
foam.set_up(1, holder = src, location = get_turf(user))
foam.start()
@@ -142,14 +142,14 @@
render_list += span_info("You direct [src] to [M]'s eyes:\n")
if(M.stat == DEAD || M.is_blind() || M.get_eye_protection() > FLASH_PROTECTION_WELDER)
render_list += "<span class='danger ml-1'>[M.p_their(TRUE)] pupils don't react to the light!</span>\n"//mob is dead
render_list += "<span class='danger ml-1'>[M.p_Their()] pupils don't react to the light!</span>\n"//mob is dead
else if(brain.damage > 20)
render_list += "<span class='danger ml-1'>[M.p_their(TRUE)] pupils contract unevenly!</span>\n"//mob has sustained damage to their brain
render_list += "<span class='danger ml-1'>[M.p_Their()] pupils contract unevenly!</span>\n"//mob has sustained damage to their brain
else
render_list += "<span class='notice ml-1'>[M.p_their(TRUE)] pupils narrow.</span>\n"//they're okay :D
render_list += "<span class='notice ml-1'>[M.p_Their()] pupils narrow.</span>\n"//they're okay :D
if(M.dna && M.dna.check_mutation(/datum/mutation/human/xray))
render_list += "<span class='danger ml-1'>[M.p_their(TRUE)] pupils give an eerie glow!</span>\n"//mob has X-ray vision
render_list += "<span class='danger ml-1'>[M.p_Their()] pupils give an eerie glow!</span>\n"//mob has X-ray vision
//display our packaged information in an examine block for easy reading
to_chat(user, examine_block(jointext(render_list, "")), type = MESSAGE_TYPE_INFO)
@@ -227,9 +227,9 @@
render_list += "<span class='notice ml-1'>Your lips appear healthy.</span>\n"//you're okay!
else
if(hypoxia_status)
render_list += "<span class='danger ml-1'>[M.p_their(TRUE)] lips appear blue!</span>\n"//they have suffocation damage
render_list += "<span class='danger ml-1'>[M.p_Their()] lips appear blue!</span>\n"//they have suffocation damage
else
render_list += "<span class='notice ml-1'>[M.p_their(TRUE)] lips appear healthy.</span>\n"//they're okay!
render_list += "<span class='notice ml-1'>[M.p_Their()] lips appear healthy.</span>\n"//they're okay!
//assess blood level
if(M == user)
+1 -1
View File
@@ -176,7 +176,7 @@
var/mob/living/carbon/C = user
if(C.wear_mask)
in_mouth = ", barely missing [user.p_their()] nose"
. = span_warning("[user] swings [user.p_their()] [name][in_mouth]. [user.p_they(TRUE)] light[user.p_s()] [A.loc == user ? "[user.p_their()] [A.name]" : A] in the process.")
. = span_warning("[user] swings [user.p_their()] [name][in_mouth]. [user.p_They()] light[user.p_s()] [A.loc == user ? "[user.p_their()] [A.name]" : A] in the process.")
playsound(loc, hitsound, get_clamped_volume(), TRUE, -1)
add_fingerprint(user)
// Light your candles while spinning around the room
+1 -1
View File
@@ -93,7 +93,7 @@
var/mob/living/carbon/carbon_user = user
if(carbon_user.wear_mask)
in_mouth = ", barely missing [carbon_user.p_their()] nose"
. = span_warning("[user] swings [user.p_their()] [name][in_mouth]. [user.p_they(TRUE)] light[user.p_s()] [user.p_their()] [atom.name] in the process.")
. = span_warning("[user] swings [user.p_their()] [name][in_mouth]. [user.p_They()] light[user.p_s()] [user.p_their()] [atom.name] in the process.")
playsound(loc, hitsound, get_clamped_volume(), TRUE, -1)
add_fingerprint(user)
+1 -1
View File
@@ -88,7 +88,7 @@
/obj/item/pillow/examine(mob/user)
. = ..()
if(bricked)
. += span_info("[p_they(TRUE)] feel[p_s()] unnaturally heavy.")
. += span_info("[p_They()] feel[p_s()] unnaturally heavy.")
if(pillow_trophy)
. += span_notice("Alt-click to remove the tag!")
@@ -95,7 +95,7 @@
return ..()
/datum/status_effect/golem/get_examine_text()
return span_notice("[owner.p_their(capitalized = TRUE)] body has been augmented with veins of [mineral_name].")
return span_notice("[owner.p_Their()] body has been augmented with veins of [mineral_name].")
/// Body part overlays applied by golem status effects
/datum/bodypart_overlay/simple/golem_overlay
+3 -3
View File
@@ -730,10 +730,10 @@
user.Beam(human_bloodbag, icon_state="sendbeam", time = 15)
else
if(human_bloodbag.stat == DEAD)
to_chat(user,span_warning("[human_bloodbag.p_their(TRUE)] blood has stopped flowing, you'll have to find another way to extract it."))
to_chat(user,span_warning("[human_bloodbag.p_Their()] blood has stopped flowing, you'll have to find another way to extract it."))
return
if(human_bloodbag.has_status_effect(/datum/status_effect/speech/slurring/cult))
to_chat(user,span_danger("[human_bloodbag.p_their(TRUE)] blood has been tainted by an even stronger form of blood magic, it's no use to us like this!"))
to_chat(user,span_danger("[human_bloodbag.p_Their()] blood has been tainted by an even stronger form of blood magic, it's no use to us like this!"))
return
if(human_bloodbag.blood_volume > BLOOD_VOLUME_SAFE)
human_bloodbag.blood_volume -= 100
@@ -744,7 +744,7 @@
to_chat(user,span_cultitalic("Your blood rite gains 50 charges from draining [human_bloodbag]'s blood."))
new /obj/effect/temp_visual/cult/sparks(get_turf(human_bloodbag))
else
to_chat(user,span_warning("[human_bloodbag.p_theyre(TRUE)] missing too much blood - you cannot drain [human_bloodbag.p_them()] further!"))
to_chat(user,span_warning("[human_bloodbag.p_Theyre()] missing too much blood - you cannot drain [human_bloodbag.p_them()] further!"))
return
if(isconstruct(target))
var/mob/living/simple_animal/construct_thing = target
@@ -55,7 +55,7 @@
tick_interval = 0.2 SECONDS
/datum/status_effect/realignment/get_examine_text()
return span_notice("[owner.p_theyre(TRUE)] glowing a soft white.")
return span_notice("[owner.p_Theyre()] glowing a soft white.")
/datum/status_effect/realignment/on_apply()
ADD_TRAIT(owner, TRAIT_PACIFISM, id)
@@ -23,7 +23,7 @@
location = null
/datum/status_effect/crucible_soul/get_examine_text()
return span_notice("[owner.p_they(TRUE)] [owner.p_do()]n't seem to be all here.")
return span_notice("[owner.p_They()] [owner.p_do()]n't seem to be all here.")
// DUSK AND DAWN
/datum/status_effect/duskndawn
@@ -36,7 +36,7 @@
to_chat(src, span_revenwarning("You are already siphoning the essence of a soul!"))
return
if(!target.stat)
to_chat(src, span_revennotice("[target.p_their(TRUE)] soul is too strong to harvest."))
to_chat(src, span_revennotice("[target.p_Their()] soul is too strong to harvest."))
if(prob(10))
to_chat(target, span_revennotice("You feel as if you are being watched."))
return
@@ -47,16 +47,16 @@
to_chat(src, span_revennotice("You search for the soul of [target]."))
if(do_after(src, rand(10, 20), target, timed_action_flags = IGNORE_HELD_ITEM)) //did they get deleted in that second?
if(target.ckey)
to_chat(src, span_revennotice("[target.p_their(TRUE)] soul burns with intelligence."))
to_chat(src, span_revennotice("[target.p_Their()] soul burns with intelligence."))
essence_drained += rand(20, 30)
if(target.stat != DEAD && !HAS_TRAIT(target, TRAIT_WEAK_SOUL))
to_chat(src, span_revennotice("[target.p_their(TRUE)] soul blazes with life!"))
to_chat(src, span_revennotice("[target.p_Their()] soul blazes with life!"))
essence_drained += rand(40, 50)
if(HAS_TRAIT(target, TRAIT_WEAK_SOUL) && !target.ckey)
to_chat(src, span_revennotice("[target.p_their(TRUE)] soul is weak and underdeveloped. They won't be worth very much."))
to_chat(src, span_revennotice("[target.p_Their()] soul is weak and underdeveloped. They won't be worth very much."))
essence_drained = 5
else
to_chat(src, span_revennotice("[target.p_their(TRUE)] soul is weak and faltering."))
to_chat(src, span_revennotice("[target.p_Their()] soul is weak and faltering."))
if(do_after(src, rand(15, 20), target, timed_action_flags = IGNORE_HELD_ITEM)) //did they get deleted NOW?
switch(essence_drained)
if(1 to 30)
@@ -69,7 +69,7 @@
to_chat(src, span_revenbignotice("Ah, the perfect soul. [target] will yield massive amounts of essence to you."))
if(do_after(src, rand(15, 25), target, timed_action_flags = IGNORE_HELD_ITEM)) //how about now
if(!target.stat)
to_chat(src, span_revenwarning("[target.p_theyre(TRUE)] now powerful enough to fight off your draining."))
to_chat(src, span_revenwarning("[target.p_Theyre()] now powerful enough to fight off your draining."))
to_chat(target, span_boldannounce("You feel something tugging across your body before subsiding."))
draining = 0
essence_drained = 0
@@ -106,7 +106,7 @@
target.investigate_log("has died from revenant harvest.", INVESTIGATE_DEATHS)
target.death(FALSE)
else
to_chat(src, span_revenwarning("[target ? "[target] has":"[target.p_theyve(TRUE)]"] been drawn out of your grasp. The link has been broken."))
to_chat(src, span_revenwarning("[target ? "[target] has":"[target.p_Theyve()]"] been drawn out of your grasp. The link has been broken."))
if(target) //Wait, target is WHERE NOW?
target.visible_message(span_warning("[target] slumps onto the ground."), \
span_revenwarning("Violets lights, dancing in your vision, receding--"))
@@ -219,7 +219,7 @@
if(flashed.stat == DEAD)
return
if(flashed.stat != CONSCIOUS)
to_chat(source, span_warning("[flashed.p_they(capitalized = TRUE)] must be conscious before you can convert [flashed.p_them()]!"))
to_chat(source, span_warning("[flashed.p_They()] must be conscious before you can convert [flashed.p_them()]!"))
return
if(isnull(flashed.mind) || !GET_CLIENT(flashed))
@@ -258,7 +258,7 @@
target.revive(ADMIN_HEAL_ALL)
spooky_scaries |= target
to_chat(target, span_userdanger("You have been revived by <B>[user.real_name]</B>!"))
to_chat(target, span_userdanger("[user.p_theyre(TRUE)] your master now, assist [user.p_them()] even if it costs you your new life!"))
to_chat(target, span_userdanger("[user.p_Theyre()] your master now, assist [user.p_them()] even if it costs you your new life!"))
var/datum/antagonist/wizard/antag_datum = user.mind.has_antag_datum(/datum/antagonist/wizard)
if(antag_datum)
if(!antag_datum.wiz_team)
+1 -1
View File
@@ -291,7 +291,7 @@
/obj/item/clothing/examine(mob/user)
. = ..()
if(damaged_clothes == CLOTHING_SHREDDED)
. += span_warning("<b>[p_theyre(TRUE)] completely shredded and require[p_s()] mending before [p_they()] can be worn again!</b>")
. += span_warning("<b>[p_Theyre()] completely shredded and require[p_s()] mending before [p_they()] can be worn again!</b>")
return
switch (max_heat_protection_temperature)
+1 -1
View File
@@ -72,7 +72,7 @@
return
var/obj/item/bodypart/head/noggin = target.get_bodypart(BODY_ZONE_HEAD)
if(!noggin)
to_chat(user, span_warning("[target.p_they(TRUE)] have no head!"))
to_chat(user, span_warning("[target.p_They()] have no head!"))
return
var/selected_hairstyle = null
+5 -5
View File
@@ -212,13 +212,13 @@
render_list += "<span class='danger ml-1'>[M] doesn't have any lungs!</span>\n"
else
if(carbon_patient.stat == DEAD || (HAS_TRAIT(carbon_patient, TRAIT_FAKEDEATH)) || (HAS_TRAIT(carbon_patient, TRAIT_NOBREATH))|| carbon_patient.failed_last_breath || carbon_patient.losebreath)//If pt is dead or otherwise not breathing
render_list += "<span class='danger ml-1'>[M.p_theyre(TRUE)] not breathing!</span>\n"
render_list += "<span class='danger ml-1'>[M.p_Theyre()] not breathing!</span>\n"
else if(lungs.damage > 10)//if breathing, check for lung damage
render_list += "<span class='danger ml-1'>You hear fluid in [M.p_their()] lungs!</span>\n"
else if(oxy_loss > 10)//if they have suffocation damage
render_list += "<span class='danger ml-1'>[M.p_theyre(TRUE)] breathing heavily!</span>\n"
render_list += "<span class='danger ml-1'>[M.p_Theyre()] breathing heavily!</span>\n"
else
render_list += "<span class='notice ml-1'>[M.p_theyre(TRUE)] breathing normally.</span>\n"//they're okay :D
render_list += "<span class='notice ml-1'>[M.p_Theyre()] breathing normally.</span>\n"//they're okay :D
//assess heart
if(body_part == BODY_ZONE_CHEST)//if we're listening to the chest
@@ -245,7 +245,7 @@
liver_okay = FALSE
else
if(liver.damage > 10)
render_list += "<span class='danger ml-1'>[M.p_their(TRUE)] liver feels firm.</span>\n"//their liver is damaged
render_list += "<span class='danger ml-1'>[M.p_Their()] liver feels firm.</span>\n"//their liver is damaged
liver_okay = FALSE
if(!appendix)//sanity check, ensure the patient actually has an appendix
@@ -293,7 +293,7 @@
else
pulse_pressure = span_notice("strong")//they're okay :D
render_list += "<span class='notice ml-1'>[M.p_their(TRUE)] pulse is [pulse_pressure] and [heart_strength].</span>\n"
render_list += "<span class='notice ml-1'>[M.p_Their()] pulse is [pulse_pressure] and [heart_strength].</span>\n"
//display our packaged information in an examine block for easy reading
to_chat(user, examine_block(jointext(render_list, "")), type = MESSAGE_TYPE_INFO)
@@ -140,4 +140,4 @@
user.updateappearance(mutcolor_update=1)
user.domutcheck()
user.visible_message(span_warning("[user]'s appearance shifts into [H]'s!"), \
span_boldannounce("[H.p_they(TRUE)] think[H.p_s()] [H.p_theyre()] <i>sooo</i> much better than you. Not anymore, [H.p_they()] won't."))
span_boldannounce("[H.p_They()] think[H.p_s()] [H.p_theyre()] <i>sooo</i> much better than you. Not anymore, [H.p_they()] won't."))
+1 -1
View File
@@ -75,7 +75,7 @@
/mob/living/simple_animal/hostile/mining_drone/examine(mob/user)
. = ..()
var/t_He = p_they(TRUE)
var/t_He = p_They()
var/t_him = p_them()
var/t_s = p_s()
if(health < maxHealth)
@@ -314,7 +314,7 @@
/obj/item/food/deadmouse/examine(mob/user)
. = ..()
if (reagents?.has_reagent(/datum/reagent/yuck) || reagents?.has_reagent(/datum/reagent/fuel))
. += span_warning("[p_theyre(TRUE)] dripping with fuel and smells terrible.")
. += span_warning("[p_Theyre()] dripping with fuel and smells terrible.")
///Spawn a new mouse from this dead mouse item when hit by a lazarus injector and conditions are met.
/obj/item/food/deadmouse/proc/use_lazarus(datum/source, obj/item/lazarus_injector/injector, mob/user)
+9
View File
@@ -41,6 +41,15 @@
QDEL_NULL(stored_dna)
return ..()
/// Override parent here because... the blind message doesn't really work given what's happen when a brain suicides. Can't hear a brain going grey. So, we omit the "blind" message.
/mob/living/brain/send_applicable_messages()
visible_message(span_danger(get_visible_suicide_message()), span_userdanger(get_visible_suicide_message()))
/mob/living/brain/get_visible_suicide_message()
return "[src]'s brain is growing dull and lifeless. [p_They()] look[p_s()] like [p_theyve()] lost the will to live."
/mob/living/brain/apply_suicide_damage(obj/item/suicide_tool, damage_type = NONE) // we don't really care about applying damage to the brain mob and is just needless work.
return FALSE
/mob/living/brain/ex_act() //you cant blow up brainmobs because it makes transfer_to() freak out when borgs blow up.
return FALSE
+3 -3
View File
@@ -1,6 +1,6 @@
/mob/living/carbon/examine(mob/user)
var/t_He = p_they(TRUE)
var/t_His = p_their(TRUE)
var/t_He = p_They()
var/t_His = p_Their()
var/t_his = p_their()
var/t_him = p_them()
var/t_has = p_have()
@@ -167,7 +167,7 @@
if(part.body_zone in covered_zones)
continue
if(part.limb_id != dna.species.examine_limb_id)
. += "[span_info("[p_they(TRUE)] [p_have()] \an [part.name].")]"
. += "[span_info("[p_They()] [p_have()] \an [part.name].")]"
var/list/visible_scars
for(var/i in all_scars)
@@ -1,7 +1,7 @@
/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 = p_they(TRUE)
var/t_His = p_their(TRUE)
var/t_He = p_They()
var/t_His = p_Their()
var/t_his = p_their()
var/t_him = p_them()
var/t_has = p_have()
@@ -550,4 +550,4 @@
age_text = "very old"
if(101 to INFINITY)
age_text = "withering away"
. += list(span_notice("[p_they(TRUE)] appear[p_s()] to be [age_text]."))
. += list(span_notice("[p_They()] appear[p_s()] to be [age_text]."))
@@ -228,7 +228,7 @@
///Returns death message for mob examine text
/mob/living/carbon/human/proc/generate_death_examine_text()
var/mob/dead/observer/ghost = get_ghost(TRUE, TRUE)
var/t_He = p_they(TRUE)
var/t_He = p_They()
var/t_his = p_their()
var/t_is = p_are()
//This checks to see if the body is revivable
+1 -1
View File
@@ -380,7 +380,7 @@
return
if(IS_DEAD_OR_INCAP(offered))
to_chat(src, span_warning("[offered.p_theyre(TRUE)] unable to take anything in [offered.p_their()] current state!"))
to_chat(src, span_warning("[offered.p_Theyre()] unable to take anything in [offered.p_their()] current state!"))
return
if(!CanReach(offered))
+1 -1
View File
@@ -227,7 +227,7 @@
if(len)
for(var/obj/item/I in held_items)
if(!holding.len)
holding += "[p_they(TRUE)] [p_are()] holding \a [I]"
holding += "[p_They()] [p_are()] holding \a [I]"
else if(held_items.Find(I) == len)
holding += ", and \a [I]."
else
+1 -1
View File
@@ -169,7 +169,7 @@
/mob/living/silicon/try_inject(mob/user, target_zone, injection_flags)
. = ..()
if(!. && (injection_flags & INJECT_TRY_SHOW_ERROR_MESSAGE))
to_chat(user, span_alert("[p_their(TRUE)] outer shell is too tough."))
to_chat(user, span_alert("[p_Their()] outer shell is too tough."))
/proc/islinked(mob/living/silicon/robot/bot, mob/living/silicon/ai/ai)
if(!istype(bot) || !istype(ai))
@@ -80,8 +80,6 @@
to_chat(src, playstyle_string)
/mob/living/simple_animal/hostile/construct/examine(mob/user)
var/pronoun = p_they(TRUE)
var/plural = p_s()
var/text_span
switch(theme)
if(THEME_CULT)
@@ -93,9 +91,9 @@
. = list("<span class='[text_span]'>This is [icon2html(src, user)] \a <b>[src]</b>!\n[desc]")
if(health < maxHealth)
if(health >= maxHealth/2)
. += span_warning("[pronoun] look[plural] slightly dented.")
. += span_warning("[p_They()] look[p_s()] slightly dented.")
else
. += span_warning("<b>[pronoun] look[plural] severely dented!</b>")
. += span_warning("<b>[p_They()] look[p_s()] severely dented!</b>")
. += "</span>"
/mob/living/simple_animal/hostile/construct/attack_animal(mob/living/simple_animal/user, list/modifiers)
+1 -1
View File
@@ -71,7 +71,7 @@
SSpai.pai_card_list += src
/obj/item/pai_card/suicide_act(mob/living/user)
user.visible_message(span_suicide("[user] is staring sadly at [src]! [user.p_they(TRUE)] can't keep living without real human intimacy!"))
user.visible_message(span_suicide("[user] is staring sadly at [src]! [user.p_They()] can't keep living without real human intimacy!"))
return OXYLOSS
/obj/item/pai_card/update_overlays()
+1 -1
View File
@@ -9,7 +9,7 @@
var/mode = 0
/obj/item/hand_labeler/suicide_act(mob/living/user)
user.visible_message(span_suicide("[user] is pointing [src] at [user.p_them()]self. [user.p_theyre(TRUE)] going to label [user.p_them()]self as a suicide!"))
user.visible_message(span_suicide("[user] is pointing [src] at [user.p_them()]self. [user.p_Theyre()] going to label [user.p_them()]self as a suicide!"))
labels_left = max(labels_left - 1, 0)
var/old_real_name = user.real_name
@@ -103,7 +103,7 @@
sleep(0.5 SECONDS)
shoot_with_empty_chamber(user)
sleep(2 SECONDS)
user.visible_message(span_warning("[user] looks about the room realizing [user.p_theyre()] still there. [user.p_they(TRUE)] proceed to shove [src] down their throat and choke [user.p_them()]self with it!"), \
user.visible_message(span_warning("[user] looks about the room realizing [user.p_theyre()] still there. [user.p_They()] proceed to shove [src] down their throat and choke [user.p_them()]self with it!"), \
span_userdanger("You look around after realizing you're still here, then proceed to choke yourself to death with [src]!"))
sleep(2 SECONDS)
return OXYLOSS
@@ -527,7 +527,7 @@
/datum/status_effect/stabilized/purple/get_examine_text()
if(healed_last_tick)
return span_warning("[owner.p_they(TRUE)] [owner.p_are()] regenerating slowly, purplish goo filling in small injuries!")
return span_warning("[owner.p_They()] [owner.p_are()] regenerating slowly, purplish goo filling in small injuries!")
return null
@@ -620,7 +620,7 @@
qdel(fire)
/datum/status_effect/stabilized/darkpurple/get_examine_text()
return span_notice("[owner.p_their(TRUE)] fingertips burn brightly!")
return span_notice("[owner.p_Their()] fingertips burn brightly!")
/datum/status_effect/stabilized/darkblue
id = "stabilizeddarkblue"
@@ -811,7 +811,7 @@
// Only occasionally give examiners a warning.
/datum/status_effect/stabilized/green/get_examine_text()
if(prob(50))
return span_warning("[owner.p_they(TRUE)] look[owner.p_s()] a bit green and gooey...")
return span_warning("[owner.p_They()] look[owner.p_s()] a bit green and gooey...")
return null
@@ -923,7 +923,7 @@
return ..()
/datum/status_effect/stabilized/oil/get_examine_text()
return span_warning("[owner.p_they(TRUE)] smell[owner.p_s()] of sulfur and oil!")
return span_warning("[owner.p_They()] smell[owner.p_s()] of sulfur and oil!")
/// How much damage is dealt per healing done for the stabilized back.
/// This multiplier is applied to prevent two people from converting each other's damage away.
@@ -966,7 +966,7 @@
if(!draining)
return null
return span_warning("[owner.p_they(TRUE)] [owner.p_are()] draining health from [draining]!")
return span_warning("[owner.p_They()] [owner.p_are()] draining health from [draining]!")
/datum/status_effect/stabilized/black/tick()
if(owner.grab_state < GRAB_KILL || !IS_WEAKREF_OF(owner.pulling, draining_ref))
@@ -1022,7 +1022,7 @@
colour = "adamantine"
/datum/status_effect/stabilized/adamantine/get_examine_text()
return span_warning("[owner.p_they(TRUE)] [owner.p_have()] strange metallic coating on [owner.p_their()] skin.")
return span_warning("[owner.p_They()] [owner.p_have()] strange metallic coating on [owner.p_their()] skin.")
/datum/status_effect/stabilized/gold
id = "stabilizedgold"
@@ -69,10 +69,10 @@
to_chat(owner, span_warning("You don't particularly want to be dead!"))
return FALSE
if(!living_target.mind && target_requires_mind)
to_chat(owner, span_warning("[living_target.p_theyve(TRUE)] doesn't appear to have a mind to swap into!"))
to_chat(owner, span_warning("[living_target.p_They()] [living_target.p_do()]n't appear to have a mind to swap into!"))
return FALSE
if(!living_target.key && target_requires_key)
to_chat(owner, span_warning("[living_target.p_theyve(TRUE)] appear[living_target.p_s()] to be catatonic! \
to_chat(owner, span_warning("[living_target.p_They()] appear[living_target.p_s()] to be catatonic! \
Not even magic can affect [living_target.p_their()] vacant mind."))
return FALSE
@@ -102,7 +102,7 @@
|| mind_to_swap.has_antag_datum(/datum/antagonist/rev) \
|| mind_to_swap.key?[1] == "@" \
)
to_chat(caster, span_warning("[to_swap.p_their(TRUE)] mind is resisting your spell!"))
to_chat(caster, span_warning("[to_swap.p_Their()] mind is resisting your spell!"))
return FALSE
// MIND TRANSFER BEGIN
@@ -229,7 +229,7 @@
if(3 * LIVER_FAILURE_STAGE_SECONDS to 4 * LIVER_FAILURE_STAGE_SECONDS - 1)
examine_list += span_notice("[owner]'s eyes are completely yellow, and [owner.p_they()] [owner.p_are()] visibly suffering.")
if(4 * LIVER_FAILURE_STAGE_SECONDS to INFINITY)
examine_list += span_danger("[owner]'s eyes are completely yellow and swelling with pus. [owner.p_they(TRUE)] [owner.p_do()]n't look like [owner.p_they()] will be alive for much longer.")
examine_list += span_danger("[owner]'s eyes are completely yellow and swelling with pus. [owner.p_They()] [owner.p_do()]n't look like [owner.p_they()] will be alive for much longer.")
/obj/item/organ/internal/liver/get_availability(datum/species/owner_species, mob/living/owner_mob)
return owner_species.mutantliver
@@ -74,7 +74,7 @@
return TRUE
/datum/status_effect/golem_statued/get_examine_text()
return span_warning("[owner.p_they(TRUE)] are as still as a statue!")
return span_warning("[owner.p_They()] are as still as a statue!")
/datum/status_effect/golem_statued/on_remove()
owner.visible_message(span_notice("[owner] slowly stirs back into motion!"), span_notice("You have gathered enough strength to move your body once more."))
@@ -223,7 +223,7 @@
SIGNAL_HANDLER
if (isobserver(mob))
examine_text += span_notice("[source.p_they(capitalized = TRUE)] [source.p_have()] <a href='?src=[REF(src)];open_bci=1'>\a [parent] implanted in [source.p_them()]</a>.")
examine_text += span_notice("[source.p_They()] [source.p_have()] <a href='?src=[REF(src)];open_bci=1'>\a [parent] implanted in [source.p_them()]</a>.")
/obj/item/circuit_component/bci_core/Topic(href, list/href_list)
..()
@@ -1,10 +1,10 @@
//Overrides TG's version of the proc - only changes are the examine texts, and the extra DNR check
/mob/living/carbon/human/generate_death_examine_text()
var/mob/dead/observer/ghost = get_ghost(TRUE, TRUE)
var/t_He = p_they(TRUE)
var/t_He = p_They()
var/t_is = p_are()
//This checks to see if the body is revivable
if(key || !get_organ_by_type(/obj/item/organ/internal/brain) || ghost?.can_reenter_corpse)
return span_deadsay("[t_He] [t_is] limp and unresponsive; they're still twitching on occasion, perhaps [p_they(FALSE)] can still be saved..!")
return span_deadsay("[t_He] [t_is] limp and unresponsive; they're still twitching on occasion, perhaps [p_they()] can still be saved..!")
else
return span_deadsay("[t_He] [t_is] limp and unresponsive; there are no signs of life and they've degraded beyond revival...")
@@ -483,7 +483,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/cryopod, 32)
// Allows admins to enable players to override SSD Time check.
if(allow_timer_override)
if(tgui_alert(user, "Would you like to place [target] into [src]?", "Place into Cryopod?", list("Yes", "No")) != "No")
to_chat(user, span_danger("You put [target] into [src]. [target.p_theyre(capitalized = TRUE)] in the cryopod."))
to_chat(user, span_danger("You put [target] into [src]. [target.p_Theyre()] in the cryopod."))
log_admin("[key_name(user)] has put [key_name(target)] into a overridden stasis pod.")
message_admins("[key_name(user)] has put [key_name(target)] into a overridden stasis pod. [ADMIN_JMP(src)]")
@@ -504,7 +504,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/cryopod, 32)
else if(tgui_alert(user, "Would you like to place [target] into [src]?", "Place into Cryopod?", list("Yes", "No")) == "Yes")
if(target.mind.assigned_role.req_admin_notify)
tgui_alert(user, "They are an important role! [AHELP_FIRST_MESSAGE]")
to_chat(user, span_danger("You put [target] into [src]. [target.p_theyre(capitalized = TRUE)] in the cryopod."))
to_chat(user, span_danger("You put [target] into [src]. [target.p_Theyre()]] in the cryopod."))
log_admin("[key_name(user)] has put [key_name(target)] into a stasis pod.")
message_admins("[key_name(user)] has put [key_name(target)] into a stasis pod. [ADMIN_JMP(src)]")
@@ -514,9 +514,9 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/cryopod, 32)
name = "[name] ([target.name])"
else if(iscyborg(target))
to_chat(user, span_danger("You can't put [target] into [src]. [target.p_theyre(capitalized = TRUE)] online."))
to_chat(user, span_danger("You can't put [target] into [src]. [target.p_Theyre()]] online."))
else
to_chat(user, span_danger("You can't put [target] into [src]. [target.p_theyre(capitalized = TRUE)] conscious."))
to_chat(user, span_danger("You can't put [target] into [src]. [target.p_Theyre()]] conscious."))
return
if(target == user && (tgui_alert(target, "Would you like to enter cryosleep?", "Enter Cryopod?", list("Yes", "No")) != "Yes"))
@@ -25,12 +25,12 @@
return
var/mob/living/carbon/C = usr
var/self = (C == bodypart.owner)
C.visible_message(span_notice("[C] begins removing [name] from [self ? "[bodypart.owner.p_their(TRUE)]" : "[bodypart.owner]'s" ] [bodypart.name]..."), span_notice("You begin to remove [name] from [self ? "your" : "[bodypart.owner]'s"] [bodypart.name]..."))
C.visible_message(span_notice("[C] begins removing [name] from [self ? "[bodypart.owner.p_Their()]" : "[bodypart.owner]'s" ] [bodypart.name]..."), span_notice("You begin to remove [name] from [self ? "your" : "[bodypart.owner]'s"] [bodypart.name]..."))
if(!do_after(C, (self ? SELF_AID_REMOVE_DELAY : OTHER_AID_REMOVE_DELAY), target=bodypart.owner))
return
if(QDELETED(src))
return
C.visible_message(span_notice("[C] removes [name] from [self ? "[bodypart.owner.p_their(TRUE)]" : "[bodypart.owner]'s" ] [bodypart.name]."), span_notice("You remove [name] from [self ? "your" : "[bodypart.owner]'s" ] [bodypart.name]."))
C.visible_message(span_notice("[C] removes [name] from [self ? "[bodypart.owner.p_Their()]" : "[bodypart.owner]'s" ] [bodypart.name]."), span_notice("You remove [name] from [self ? "your" : "[bodypart.owner]'s" ] [bodypart.name]."))
var/obj/item/gotten = rip_off()
if(gotten && !C.put_in_hands(gotten))
gotten.forceMove(get_turf(C))
@@ -1,8 +1,8 @@
/mob/living/carbon/examine_more(mob/user)
. = ..()
var/msg = list(span_notice("<i>You examine [src] closer, and note the following...</i>"))
var/t_His = p_their(TRUE)
var/t_He = p_they(TRUE)
var/t_His = p_Their()
var/t_He = p_They()
var/t_Has = p_have()
var/any_bodypart_damage = FALSE
@@ -82,7 +82,7 @@
if(part.body_zone in covered_zones)
continue
if(part.limb_id != (dna.species.examine_limb_id ? dna.species.examine_limb_id : dna.species.id))
. += "[span_info("[p_they(TRUE)] [p_have()] \an [part.name].")]"
. += "[span_info("[p_They()] [p_have()] \an [part.name].")]"
return msg
@@ -122,9 +122,9 @@
/datum/wound/burn/get_examine_description(mob/user)
if(strikes_to_lose_limb <= 0)
return span_deadsay("<B>[victim.p_their(TRUE)] [parse_zone(limb.body_zone)] has locked up completely and is non-functional. Amputate or augment limb immediately, or place the patient in a cryotube.</B>")
return span_deadsay("<B>[victim.p_Their()] [parse_zone(limb.body_zone)] has locked up completely and is non-functional. Amputate or augment limb immediately, or place the patient in a cryotube.</B>")
var/list/condition = list("[victim.p_their(TRUE)] [parse_zone(limb.body_zone)] [examine_desc]")
var/list/condition = list("[victim.p_Their()] [parse_zone(limb.body_zone)] [examine_desc]")
if(limb.current_gauze)
var/bandage_condition
switch(limb.current_gauze.absorption_capacity)
@@ -147,7 +147,7 @@
if(WOUND_INFECTION_CRITICAL to WOUND_INFECTION_SEPTIC)
condition += ", <span class='deadsay'>with streaks of rotten, pulsating infection!</span>"
if(WOUND_INFECTION_SEPTIC to INFINITY)
return span_deadsay("<B>[victim.p_their(TRUE)] [parse_zone(limb.body_zone)] is a mess of charred skin and infected rot!</B>")
return span_deadsay("<B>[victim.p_Their()] [parse_zone(limb.body_zone)] is a mess of charred skin and infected rot!</B>")
else
condition += "!"
@@ -88,7 +88,7 @@
var/list/msg = list()
if(!limb.current_splint)
msg += "[victim.p_their(TRUE)] [parse_zone(limb.body_zone)] [examine_desc]"
msg += "[victim.p_Their()] [parse_zone(limb.body_zone)] [examine_desc]"
else
var/sling_condition = ""
// how much life we have left in these bandages
@@ -102,7 +102,7 @@
if(4 to INFINITY)
sling_condition = "tightly"
msg += "[victim.p_their(TRUE)] [parse_zone(limb.body_zone)] is [sling_condition] fastened with a [limb.current_splint.name]!"
msg += "[victim.p_Their()] [parse_zone(limb.body_zone)] is [sling_condition] fastened with a [limb.current_splint.name]!"
return "<B>[msg.Join()]</B>"
@@ -31,7 +31,7 @@
if(stat >= DEAD || HAS_TRAIT(src, TRAIT_FAKEDEATH) || src == user || !has_status_effect(/datum/status_effect/spanked) || !is_bottomless())
return
. += span_purple("[user.p_their(TRUE)] butt has a red tint to it.") + "\n"
. += span_purple("[user.p_Their()] butt has a red tint to it.") + "\n"
//Mood boost for masochist
/datum/mood_event/perv_spanked