From 326f1ed9fc25643ea3ba8f35bebb133744bce424 Mon Sep 17 00:00:00 2001 From: Alberyk Date: Sat, 10 Mar 2018 12:22:25 -0300 Subject: [PATCH 1/2] Turns imaginary friends into abstract mobs (#4358) What the title says, also fixes a small issue with the double personnality ghostrap greeting. --- code/datums/brain_damage/imaginary_friend.dm | 30 ++++++++++---------- code/modules/ghosttrap/trap.dm | 6 ++-- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/code/datums/brain_damage/imaginary_friend.dm b/code/datums/brain_damage/imaginary_friend.dm index 7c78a104cd0..5851db4f34b 100644 --- a/code/datums/brain_damage/imaginary_friend.dm +++ b/code/datums/brain_damage/imaginary_friend.dm @@ -4,7 +4,7 @@ scan_desc = "partial schizophrenia" gain_text = "You feel in good company, for some reason." lose_text = "You feel lonely again." - var/mob/living/mental/friend/friend + var/mob/abstract/mental/friend/friend /datum/brain_trauma/special/imaginary_friend/on_gain() ..() @@ -36,12 +36,12 @@ else qdel(src) -/mob/living/mental +/mob/abstract/mental universal_understand = 1 incorporeal_move = 1 density = 0 -/mob/living/mental/friend +/mob/abstract/mental/friend name = "imaginary friend" real_name = "imaginary friend" desc = "A wonderful yet fake friend." @@ -52,13 +52,13 @@ var/mob/living/carbon/owner var/datum/brain_trauma/special/imaginary_friend/trauma -/mob/living/mental/friend/Login() +/mob/abstract/mental/friend/Login() ..() to_chat(src, "You are the imaginary friend of [owner]!") to_chat(src, "You are absolutely loyal to your friend, no matter what.") to_chat(src, "You cannot directly influence the world around you, but you can see what [owner] cannot.") -/mob/living/mental/friend/Initialize(mapload, _trauma) +/mob/abstract/mental/friend/Initialize(mapload, _trauma) . = ..() trauma = _trauma owner = trauma.owner @@ -66,13 +66,13 @@ real_name = owner.species.get_random_name(gender) name = real_name var/list/candidates = list() - for(var/mob/living/L in world) + for(var/mob/living/L in living_mob_list) candidates += L - var/mob/living/buddy = pick(candidates) + var/mob/abstract/buddy = pick(candidates) human_image = getFlatIcon(buddy) Show() -/mob/living/mental/friend/proc/Show() +/mob/abstract/mental/friend/proc/Show() if(owner.client) owner.client.images.Remove(current_image) if(client) @@ -85,19 +85,19 @@ if(client) client.images |= current_image -/mob/living/mental/friend/Destroy() +/mob/abstract/mental/friend/Destroy() if(owner.client) owner.client.images.Remove(human_image) if(client) client.images.Remove(human_image) return ..() -/mob/living/mental/friend/proc/yank() +/mob/abstract/mental/friend/proc/yank() if(!client) //don't bother the user with a braindead ghost every few steps return forceMove(get_turf(owner)) -/mob/living/mental/friend/say(message) +/mob/abstract/mental/friend/say(message) if (!message) return @@ -110,7 +110,7 @@ friend_talk(message) -/mob/living/mental/friend/proc/friend_talk(message) +/mob/abstract/mental/friend/proc/friend_talk(message) message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN)) if(!message) @@ -121,10 +121,10 @@ to_chat(owner, "[rendered]") to_chat(src, "[rendered]") -/mob/living/mental/friend/emote(act,m_type=1,message = null) +/mob/abstract/mental/friend/emote(act,m_type=1,message = null) return -/mob/living/mental/friend/Move(NewLoc, Dir = 0) +/mob/abstract/mental/friend/Move(NewLoc, Dir = 0) loc = NewLoc dir = Dir if(get_dist(src, owner) > 9) @@ -132,5 +132,5 @@ return TRUE return TRUE -/mob/living/mental/friend/movement_delay() +/mob/abstract/mental/friend/movement_delay() return 2 diff --git a/code/modules/ghosttrap/trap.dm b/code/modules/ghosttrap/trap.dm index f061720992a..1fdfac0c7af 100644 --- a/code/modules/ghosttrap/trap.dm +++ b/code/modules/ghosttrap/trap.dm @@ -417,17 +417,17 @@ datum/ghosttrap/pai/transfer_personality(var/mob/candidate, var/mob/living/silic /datum/ghosttrap/brainwashed object = "split personality" ghost_trap_message = "They are a split personality now." - ghost_trap_role = "split personality" + ghost_trap_role = "Split personality" can_set_own_name = TRUE list_as_special_role = TRUE -/datum/ghosttrap/special/brainwashed/welcome_candidate(var/mob/target) +/datum/ghosttrap/brainwashed/welcome_candidate(var/mob/target) return 0 /datum/ghosttrap/friend object = "friend" ghost_trap_message = "They are an imaginary friend now." - ghost_trap_role = "imaginary friend" + ghost_trap_role = "Imaginary friend" can_set_own_name = TRUE list_as_special_role = TRUE From 727be8062488cf182b45a064810b8324631c28a6 Mon Sep 17 00:00:00 2001 From: Alberyk Date: Sat, 10 Mar 2018 12:23:06 -0300 Subject: [PATCH 2/2] Some bugfixes. (#4367) -open space should no longer slow you down if you are floating over it due to the gravity check because gravity exists anywhere on station -fixed the mutton facial hair sprite missing --- .../mob/living/carbon/human/human_movement.dm | 2 +- icons/mob/human_face/facial_hair.dmi | Bin 4163 -> 4261 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index b303542e90b..f6f2ffaf2bd 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -6,7 +6,7 @@ if (istype(loc, /turf/space)) return -1 // It's hard to be slowed down in space by... anything - if (isopenturf(loc) && !has_gravity(src, loc)) //open space checks + if (isopenturf(loc)) //open space checks if(!(locate(/obj/structure/lattice, loc) || locate(/obj/structure/stairs, loc) || locate(/obj/structure/ladder, loc))) return -1 diff --git a/icons/mob/human_face/facial_hair.dmi b/icons/mob/human_face/facial_hair.dmi index 71479e81583a1914e01e78b73ee37fbea0e1b57c..7bc189b9bd58a1aa26049e232aa977f665ee5b0c 100644 GIT binary patch delta 3433 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 B=w|=` literal 4163 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