mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-13 19:52:40 +00:00
Changed the way facial scarring works. Instead of setting your real_name to "Unknown" it uses the disfigured variable of a human's head organ to dictate the human's name variable.
This means real_name is now somewhat back to being a reliable source of the mob's actual name. It should eliminate a lot of the "cloning as unknown" bugs. It also means I could simplify that god-awful name updating stuff into a nice and simple helper proc. Some original_name stuff was added here and there, mainly during cloning. A lot of the "getting random ghost names" should be fixed now. Still loads to do though, particularly with transforms and such. >_> Fixed a runtime with Tajarans trying to use a variable that doesn't exist for PDAs. Removed that variable from IDs as it's only used by furries. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3546 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -415,6 +415,7 @@ client
|
|||||||
break
|
break
|
||||||
M.real_name = new_name
|
M.real_name = new_name
|
||||||
M.name = new_name
|
M.name = new_name
|
||||||
|
M.original_name = new_name
|
||||||
href_list["datumrefresh"] = href_list["rename"]
|
href_list["datumrefresh"] = href_list["rename"]
|
||||||
|
|
||||||
else if (href_list["varnameedit"])
|
else if (href_list["varnameedit"])
|
||||||
|
|||||||
@@ -485,7 +485,6 @@
|
|||||||
var/registered_name = null // The name registered_name on the card
|
var/registered_name = null // The name registered_name on the card
|
||||||
|
|
||||||
var/assignment = null
|
var/assignment = null
|
||||||
var/over_jumpsuit = 1 // If set to 0, it won't display on top of the mob's jumpsuit
|
|
||||||
var/dorm = 0 // determines if this ID has claimed a dorm already
|
var/dorm = 0 // determines if this ID has claimed a dorm already
|
||||||
|
|
||||||
/obj/item/weapon/card/id/silver
|
/obj/item/weapon/card/id/silver
|
||||||
|
|||||||
@@ -147,6 +147,7 @@
|
|||||||
|
|
||||||
if(clonename)
|
if(clonename)
|
||||||
src.occupant.real_name = clonename
|
src.occupant.real_name = clonename
|
||||||
|
src.occupant.original_name = clonename //we don't want random ghost names should we die again.
|
||||||
else
|
else
|
||||||
src.occupant.real_name = "clone" //No null names!!
|
src.occupant.real_name = "clone" //No null names!!
|
||||||
|
|
||||||
|
|||||||
@@ -878,6 +878,7 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
|||||||
|
|
||||||
if (realName)
|
if (realName)
|
||||||
podman.real_name = realName
|
podman.real_name = realName
|
||||||
|
podman.original_name = realName //don't want a random ghost name if we die again
|
||||||
else
|
else
|
||||||
podman.real_name = "pod person" //No null names!!
|
podman.real_name = "pod person" //No null names!!
|
||||||
|
|
||||||
|
|||||||
@@ -661,8 +661,7 @@ datum
|
|||||||
affecting.take_damage(25, 0)
|
affecting.take_damage(25, 0)
|
||||||
M:UpdateDamageIcon()
|
M:UpdateDamageIcon()
|
||||||
M:emote("scream")
|
M:emote("scream")
|
||||||
M << "\red Your face has become disfigured!"
|
M:disfigure_face()
|
||||||
M.real_name = "Unknown"
|
|
||||||
else
|
else
|
||||||
M.take_organ_damage(min(15, volume * 2)) // uses min() and volume to make sure they aren't being sprayed in trace amounts (1 unit != insta rape) -- Doohl
|
M.take_organ_damage(min(15, volume * 2)) // uses min() and volume to make sure they aren't being sprayed in trace amounts (1 unit != insta rape) -- Doohl
|
||||||
else
|
else
|
||||||
@@ -714,8 +713,7 @@ datum
|
|||||||
M:UpdateDamageIcon()
|
M:UpdateDamageIcon()
|
||||||
M:emote("scream")
|
M:emote("scream")
|
||||||
if(prob(15))
|
if(prob(15))
|
||||||
M << "\red Your face has become disfigured!"
|
M:disfigure_face()
|
||||||
M.real_name = "Unknown"
|
|
||||||
else
|
else
|
||||||
if(istype(M, /mob/living/carbon/monkey) && M:wear_mask)
|
if(istype(M, /mob/living/carbon/monkey) && M:wear_mask)
|
||||||
del (M:wear_mask)
|
del (M:wear_mask)
|
||||||
@@ -733,8 +731,7 @@ datum
|
|||||||
M:UpdateDamageIcon()
|
M:UpdateDamageIcon()
|
||||||
M:emote("scream")
|
M:emote("scream")
|
||||||
if(prob(15))
|
if(prob(15))
|
||||||
M << "\red Your face has become disfigured!"
|
M:disfigure_face()
|
||||||
M.real_name = "Unknown"
|
|
||||||
else
|
else
|
||||||
M.take_organ_damage(min(15, volume * 4))
|
M.take_organ_damage(min(15, volume * 4))
|
||||||
|
|
||||||
|
|||||||
@@ -164,7 +164,6 @@
|
|||||||
overlays += image("icon" = stain_icon, "layer" = MOB_LAYER)
|
overlays += image("icon" = stain_icon, "layer" = MOB_LAYER)
|
||||||
|
|
||||||
if (wear_id)
|
if (wear_id)
|
||||||
if(wear_id.over_jumpsuit)
|
|
||||||
overlays += image("icon" = 'mob.dmi', "icon_state" = "id[!lying ? null : "2"]", "layer" = MOB_LAYER)
|
overlays += image("icon" = 'mob.dmi', "icon_state" = "id[!lying ? null : "2"]", "layer" = MOB_LAYER)
|
||||||
|
|
||||||
if (client)
|
if (client)
|
||||||
@@ -354,37 +353,8 @@
|
|||||||
overlays += image("icon" = 'belt.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")), "layer" = MOB_LAYER)
|
overlays += image("icon" = 'belt.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")), "layer" = MOB_LAYER)
|
||||||
belt.screen_loc = ui_belt
|
belt.screen_loc = ui_belt
|
||||||
|
|
||||||
if ((wear_mask && !(wear_mask.see_face)) || (head && !(head.see_face))) // can't see the face
|
|
||||||
if (wear_id)
|
|
||||||
if (istype(wear_id, /obj/item/weapon/card/id))
|
|
||||||
var/obj/item/weapon/card/id/id = wear_id
|
|
||||||
if (id.registered_name)
|
|
||||||
name = id.registered_name
|
|
||||||
else
|
|
||||||
name = "Unknown"
|
|
||||||
else if (istype(wear_id, /obj/item/device/pda))
|
|
||||||
var/obj/item/device/pda/pda = wear_id
|
|
||||||
if (pda.owner)
|
|
||||||
name = pda.owner
|
|
||||||
else
|
|
||||||
name = "Unknown"
|
|
||||||
else
|
|
||||||
name = "Unknown"
|
|
||||||
else
|
|
||||||
if (wear_id)
|
|
||||||
if (istype(wear_id, /obj/item/weapon/card/id))
|
|
||||||
var/obj/item/weapon/card/id/id = wear_id
|
|
||||||
if (id.registered_name != real_name)
|
|
||||||
name = "[real_name] (as [id.registered_name])"
|
|
||||||
|
|
||||||
|
name = get_visible_name()
|
||||||
else if (istype(wear_id, /obj/item/device/pda))
|
|
||||||
var/obj/item/device/pda/pda = wear_id
|
|
||||||
if (pda.owner)
|
|
||||||
if (pda.owner != real_name)
|
|
||||||
name = "[real_name] (as [pda.owner])"
|
|
||||||
else
|
|
||||||
name = real_name
|
|
||||||
|
|
||||||
if (wear_id)
|
if (wear_id)
|
||||||
wear_id.screen_loc = ui_id
|
wear_id.screen_loc = ui_id
|
||||||
|
|||||||
@@ -99,8 +99,11 @@
|
|||||||
/mob/living/carbon/human/proc/ChangeToHusk()
|
/mob/living/carbon/human/proc/ChangeToHusk()
|
||||||
if(mutations & HUSK)
|
if(mutations & HUSK)
|
||||||
return
|
return
|
||||||
|
var/datum/organ/external/head/head = get_organ("head")
|
||||||
|
if(head)
|
||||||
|
head.disfigured = 1
|
||||||
|
name = get_visible_name()
|
||||||
mutations |= HUSK
|
mutations |= HUSK
|
||||||
real_name = "Unknown"
|
|
||||||
update_body()
|
update_body()
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
@@ -1061,37 +1061,8 @@
|
|||||||
overlays += image("icon" = 'belt.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")), "layer" = MOB_LAYER)
|
overlays += image("icon" = 'belt.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")), "layer" = MOB_LAYER)
|
||||||
belt.screen_loc = ui_belt
|
belt.screen_loc = ui_belt
|
||||||
|
|
||||||
if ((wear_mask && !(wear_mask.see_face)) || (head && !(head.see_face))) // can't see the face
|
|
||||||
if (wear_id)
|
|
||||||
if (istype(wear_id, /obj/item/weapon/card/id))
|
|
||||||
var/obj/item/weapon/card/id/id = wear_id
|
|
||||||
if (id.registered_name)
|
|
||||||
name = id.registered_name
|
|
||||||
else
|
|
||||||
name = "Unknown"
|
|
||||||
else if (istype(wear_id, /obj/item/device/pda))
|
|
||||||
var/obj/item/device/pda/pda = wear_id
|
|
||||||
if (pda.owner)
|
|
||||||
name = pda.owner
|
|
||||||
else
|
|
||||||
name = "Unknown"
|
|
||||||
else
|
|
||||||
name = "Unknown"
|
|
||||||
else
|
|
||||||
if (wear_id)
|
|
||||||
if (istype(wear_id, /obj/item/weapon/card/id))
|
|
||||||
var/obj/item/weapon/card/id/id = wear_id
|
|
||||||
if (id.registered_name != real_name)
|
|
||||||
name = "[real_name] (as [id.registered_name])"
|
|
||||||
|
|
||||||
|
name = get_visible_name()
|
||||||
else if (istype(wear_id, /obj/item/device/pda))
|
|
||||||
var/obj/item/device/pda/pda = wear_id
|
|
||||||
if (pda.owner)
|
|
||||||
if (pda.owner != real_name)
|
|
||||||
name = "[real_name] (as [pda.owner])"
|
|
||||||
else
|
|
||||||
name = real_name
|
|
||||||
|
|
||||||
if (wear_id)
|
if (wear_id)
|
||||||
wear_id.screen_loc = ui_id
|
wear_id.screen_loc = ui_id
|
||||||
@@ -2208,18 +2179,33 @@ It can still be worn/put on as normal.
|
|||||||
return if_no_id
|
return if_no_id
|
||||||
return
|
return
|
||||||
|
|
||||||
|
//repurposed proc. Now it combines get_id_name() and get_face_name() to determine a mob's name variable. Made into a seperate proc as it'll be useful elsewhere
|
||||||
|
/mob/living/carbon/human/proc/get_visible_name()
|
||||||
|
if ((wear_mask && !(wear_mask.see_face)) || (head && !(head.see_face))) // can't see their face
|
||||||
|
return get_id_name("Unknown")
|
||||||
|
else
|
||||||
|
var/face_name = get_face_name()
|
||||||
|
var/id_name = get_id_name("")
|
||||||
|
if(id_name && (id_name != face_name))
|
||||||
|
return "[face_name] as ([id_name])"
|
||||||
|
return face_name
|
||||||
|
|
||||||
|
//Returns "Unknown" if facially disfigured and real_name if not. Useful for setting name when polyacided or when updating a human's name variable
|
||||||
|
/mob/living/carbon/human/proc/get_face_name()
|
||||||
|
var/datum/organ/external/head/head = get_organ("head")
|
||||||
|
if(!head || head.disfigured) //no face!
|
||||||
|
return "Unknown"
|
||||||
|
else
|
||||||
|
return "[real_name]"
|
||||||
|
|
||||||
//gets name from ID or PDA itself, ID inside PDA doesn't matter
|
//gets name from ID or PDA itself, ID inside PDA doesn't matter
|
||||||
//Useful when player is being seen by other mobs
|
//Useful when player is being seen by other mobs
|
||||||
/mob/living/carbon/human/proc/get_visible_name(var/if_no_id = "Unknown")
|
/mob/living/carbon/human/proc/get_id_name(var/if_no_id = "Unknown")
|
||||||
var/obj/item/device/pda/pda = wear_id
|
var/obj/item/device/pda/pda = wear_id
|
||||||
var/obj/item/weapon/card/id/id = wear_id
|
var/obj/item/weapon/card/id/id = wear_id
|
||||||
if (istype(pda))
|
if(istype(pda)) return pda.owner
|
||||||
. = pda.owner
|
if(istype(id)) return id.registered_name
|
||||||
else if (istype(id))
|
|
||||||
. = id.registered_name
|
|
||||||
else
|
|
||||||
return if_no_id
|
return if_no_id
|
||||||
return
|
|
||||||
|
|
||||||
//gets ID card object from special clothes slot or null.
|
//gets ID card object from special clothes slot or null.
|
||||||
/mob/living/carbon/human/proc/get_idcard()
|
/mob/living/carbon/human/proc/get_idcard()
|
||||||
|
|||||||
@@ -1,3 +1,12 @@
|
|||||||
|
//Instead of setting real_name = "Unknown", use this when necessary.
|
||||||
|
//It will prevent the cloned-as-unknown bug and various other derpy things.
|
||||||
|
/mob/living/carbon/human/proc/disfigure_face()
|
||||||
|
var/datum/organ/external/head/head = get_organ("head")
|
||||||
|
if(head && !head.disfigured)
|
||||||
|
head.disfigured = 1
|
||||||
|
name = get_visible_name()
|
||||||
|
src << "\red Your face has become disfigured."
|
||||||
|
|
||||||
/mob/living/carbon/human/proc/HealDamage(zone, brute, burn)
|
/mob/living/carbon/human/proc/HealDamage(zone, brute, burn)
|
||||||
var/datum/organ/external/E = get_organ(zone)
|
var/datum/organ/external/E = get_organ(zone)
|
||||||
if(istype(E, /datum/organ/external))
|
if(istype(E, /datum/organ/external))
|
||||||
|
|||||||
@@ -862,13 +862,13 @@
|
|||||||
|
|
||||||
if (stuttering) stuttering--
|
if (stuttering) stuttering--
|
||||||
|
|
||||||
|
|
||||||
|
//Carn: marker 4#
|
||||||
var/datum/organ/external/head/head = get_organ("head")
|
var/datum/organ/external/head/head = get_organ("head")
|
||||||
if(head && !head.disfigured)
|
if(head && !head.disfigured)
|
||||||
if(head.brute_dam >= 45 || head.burn_dam >= 45)
|
if(head.brute_dam >= 45 || head.burn_dam >= 45)
|
||||||
head.disfigured = 1
|
|
||||||
emote("scream")
|
emote("scream")
|
||||||
real_name = "Unknown"
|
disfigure_face()
|
||||||
src << "\red Your face has become disfigured."
|
|
||||||
// face_op_stage = 0.0
|
// face_op_stage = 0.0
|
||||||
var/blood_max = 0
|
var/blood_max = 0
|
||||||
for(var/datum/organ/external/temp in organs)
|
for(var/datum/organ/external/temp in organs)
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
var/alt_name = ""
|
var/alt_name = ""
|
||||||
if (istype(src, /mob/living/carbon/human) && src.name != src.real_name)
|
if (istype(src, /mob/living/carbon/human) && src.name != src.real_name)
|
||||||
var/mob/living/carbon/human/H = src
|
var/mob/living/carbon/human/H = src
|
||||||
alt_name = " (as [H.get_visible_name()])"
|
alt_name = " (as [H.get_id_name("Unknown")])"
|
||||||
// Mute disability
|
// Mute disability
|
||||||
if (src.sdisabilities & 2)
|
if (src.sdisabilities & 2)
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -58,7 +58,7 @@
|
|||||||
var/alt_name = ""
|
var/alt_name = ""
|
||||||
if (istype(src, /mob/living/carbon/human) && name != real_name)
|
if (istype(src, /mob/living/carbon/human) && name != real_name)
|
||||||
var/mob/living/carbon/human/H = src
|
var/mob/living/carbon/human/H = src
|
||||||
alt_name = " (as [H.get_visible_name()])"
|
alt_name = " (as [H.get_id_name("Unknown")])"
|
||||||
var/italics = 0
|
var/italics = 0
|
||||||
var/message_range = null
|
var/message_range = null
|
||||||
var/message_mode = null
|
var/message_mode = null
|
||||||
|
|||||||
Reference in New Issue
Block a user