diff --git a/code/game/machinery/airconditioner_vr.dm b/code/game/machinery/airconditioner_vr.dm
index 90916c82ca..892c6b4929 100644
--- a/code/game/machinery/airconditioner_vr.dm
+++ b/code/game/machinery/airconditioner_vr.dm
@@ -25,8 +25,9 @@
default_apply_parts()
/obj/machinery/power/thermoregulator/examine(mob/user)
- if(..(user,2))
- to_chat(user, "There is a small display that reads \"[convert_k2c(target_temp)]C\".")
+ . = ..()
+ if(get_dist(user, src) <= 2)
+ . += "There is a small display that reads \"[convert_k2c(target_temp)]C\"."
/obj/machinery/power/thermoregulator/attackby(obj/item/I, mob/user)
if(I.is_screwdriver())
diff --git a/code/game/machinery/deployable_vr.dm b/code/game/machinery/deployable_vr.dm
index 5a910db545..9f7e79af5b 100644
--- a/code/game/machinery/deployable_vr.dm
+++ b/code/game/machinery/deployable_vr.dm
@@ -66,8 +66,8 @@
/obj/structure/barricade/cutout/examine(var/mob/user)
. = ..()
- if(Adjacent(user, src))
- to_chat(user, "
... from this distance, they seem to be made of [material.name] ...")
+ if(Adjacent(user))
+ . += "... from this distance, they seem to be made of [material.name] ..."
/obj/structure/barricade/cutout/attackby(var/obj/I, var/mob/user)
if(is_type_in_list(I, painters))
diff --git a/code/game/machinery/pointdefense.dm b/code/game/machinery/pointdefense.dm
index 1deaf1a58b..f135bdd568 100644
--- a/code/game/machinery/pointdefense.dm
+++ b/code/game/machinery/pointdefense.dm
@@ -158,9 +158,9 @@ GLOBAL_LIST_BOILERPLATE(pointdefense_turrets, /obj/machinery/power/pointdefense)
underlays += I
/obj/machinery/power/pointdefense/examine(mob/user)
- ..()
+ . = ..()
if(powernet)
- to_chat(user, "It is connected to a power cable below.")
+ . += "It is connected to a power cable below."
/obj/machinery/power/pointdefense/get_description_interaction()
. = ..()
diff --git a/code/game/objects/items/devices/advnifrepair.dm b/code/game/objects/items/devices/advnifrepair.dm
index ab71b97324..b3b54e56c7 100644
--- a/code/game/objects/items/devices/advnifrepair.dm
+++ b/code/game/objects/items/devices/advnifrepair.dm
@@ -56,8 +56,9 @@
return 1
/obj/item/device/nifrepairer/examine(mob/user)
- if(..(user, 1))
+ . = ..()
+ if(Adjacent(user))
if(supply.total_volume)
- to_chat(user, "\The [src] contains [supply.total_volume] units of programmed nanites, ready for dispensing.")
+ . += "\The [src] contains [supply.total_volume] units of programmed nanites, ready for dispensing."
else
- to_chat(user, "\The [src] is empty and ready to accept nanopaste.")
+ . += "\The [src] is empty and ready to accept nanopaste."
diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm
index 572a4f896b..4ef7cc576a 100644
--- a/code/game/objects/items/devices/radio/radio.dm
+++ b/code/game/objects/items/devices/radio/radio.dm
@@ -581,16 +581,10 @@ var/global/list/default_medbay_channels = list(
/obj/item/device/radio/examine(mob/user)
. = ..()
-<<<<<<< HEAD
- if ((in_range(src, user) || loc == user))
- if (b_stat)
- user.show_message("\The [src] can be attached and modified!")
-=======
if((in_range(src, user) || loc == user))
if(b_stat)
. += "\The [src] can be attached and modified!"
->>>>>>> 6c6644f... Rewrite examine() to pass a list around (#7038)
else
. += "\The [src] can not be modified or attached!"
diff --git a/code/game/objects/items/uav.dm b/code/game/objects/items/uav.dm
index d353dda849..aaa510e474 100644
--- a/code/game/objects/items/uav.dm
+++ b/code/game/objects/items/uav.dm
@@ -58,6 +58,18 @@
STOP_PROCESSING(SSobj, src)
return ..()
+/obj/item/device/uav/examine(mob/user)
+ . = ..()
+ if(Adjacent(user))
+ . += "It has '[nickname]' scribbled on the side."
+ if(!cell)
+ . += "It appears to be missing a power cell."
+
+ if(health <= (initial(health)/4))
+ . += "It looks like it might break at any second!"
+ else if(health <= (initial(health)/2))
+ . += "It looks pretty beaten up..."
+
/obj/item/device/uav/attack_hand(var/mob/user)
//Has to be on the ground to work with it properly
if(!isturf(loc))
diff --git a/code/game/objects/items/weapons/RCD_vr.dm b/code/game/objects/items/weapons/RCD_vr.dm
index 2369ca0d93..5cfc822efa 100644
--- a/code/game/objects/items/weapons/RCD_vr.dm
+++ b/code/game/objects/items/weapons/RCD_vr.dm
@@ -167,8 +167,8 @@
//////////////////
/obj/item/weapon/rcd_ammo/examine(mob/user)
- ..()
- to_chat(user, display_resources())
+ . = ..()
+ . += display_resources()
// Used to show how much stuff (matter units, cell charge, etc) is left inside.
/obj/item/weapon/rcd_ammo/proc/display_resources()
diff --git a/code/game/objects/items/weapons/extinguisher.dm b/code/game/objects/items/weapons/extinguisher.dm
index eaa3bb571c..c50998557e 100644
--- a/code/game/objects/items/weapons/extinguisher.dm
+++ b/code/game/objects/items/weapons/extinguisher.dm
@@ -40,14 +40,9 @@
. = ..()
/obj/item/weapon/extinguisher/examine(mob/user)
-<<<<<<< HEAD
- if(..(user, 0))
- to_chat(user, "[bicon(src)] [src.name] contains [src.reagents.total_volume] units of foam left!") //VOREStation Edit
-=======
. = ..()
if(get_dist(user, src) == 0)
- . += "[src] has [src.reagents.total_volume] units of water left!"
->>>>>>> 6c6644f... Rewrite examine() to pass a list around (#7038)
+ . += "[src] has [src.reagents.total_volume] units of foam left!" //VOREStation Edit - Foam not water
/obj/item/weapon/extinguisher/attack_self(mob/user as mob)
safety = !safety
diff --git a/code/game/objects/items/weapons/inducer_vr.dm b/code/game/objects/items/weapons/inducer_vr.dm
index acfb4c17ff..8d92ea3ffe 100644
--- a/code/game/objects/items/weapons/inducer_vr.dm
+++ b/code/game/objects/items/weapons/inducer_vr.dm
@@ -197,14 +197,12 @@
/obj/item/weapon/inducer/examine(mob/living/M)
. = ..()
- var/dat = ""
if(cell)
- dat += "
Its display shows: [round(cell.charge)] / [cell.maxcharge]."
+ . += "Its display shows: [round(cell.charge)] / [cell.maxcharge]."
else
- dat += "
Its display is dark."
+ . += "Its display is dark."
if(opened)
- dat += "
Its battery compartment is open."
- to_chat(M, dat)
+ . += "Its battery compartment is open."
/obj/item/weapon/inducer/update_icon()
..()
diff --git a/code/game/objects/structures/fence.dm b/code/game/objects/structures/fence.dm
index 187fb1bce3..839269847a 100644
--- a/code/game/objects/structures/fence.dm
+++ b/code/game/objects/structures/fence.dm
@@ -1,4 +1,3 @@
-<<<<<<< HEAD
//Chain link fences
//Sprites ported from /VG/
@@ -33,9 +32,9 @@
switch(hole_size)
if(MEDIUM_HOLE)
- user.show_message("There is a large hole in \the [src].")
+ . += "There is a large hole in it."
if(LARGE_HOLE)
- user.show_message("\The [src] has been completely cut through.")
+ . += "It has been completely cut through."
/obj/structure/fence/get_description_interaction()
var/list/results = list()
@@ -177,184 +176,4 @@
#undef NO_HOLE
#undef MEDIUM_HOLE
#undef LARGE_HOLE
-=======
-//Chain link fences
-//Sprites ported from /VG/
-
-#define CUT_TIME 10 SECONDS
-#define CLIMB_TIME 5 SECONDS
-
-#define NO_HOLE 0 //section is intact
-#define MEDIUM_HOLE 1 //medium hole in the section - can climb through
-#define LARGE_HOLE 2 //large hole in the section - can walk through
-#define MAX_HOLE_SIZE LARGE_HOLE
-
-/obj/structure/fence
- name = "fence"
- desc = "A chain link fence. Not as effective as a wall, but generally it keeps people out."
- description_info = "Projectiles can freely pass fences."
- density = TRUE
- anchored = TRUE
-
- icon = 'icons/obj/fence.dmi'
- icon_state = "straight"
-
- var/cuttable = TRUE
- var/hole_size= NO_HOLE
- var/invulnerable = FALSE
-
-/obj/structure/fence/Initialize()
- update_cut_status()
- return ..()
-
-/obj/structure/fence/examine(mob/user)
- . = ..()
-
- switch(hole_size)
- if(MEDIUM_HOLE)
- . += "There is a large hole in it."
- if(LARGE_HOLE)
- . += "It has been completely cut through."
-
-/obj/structure/fence/get_description_interaction()
- var/list/results = list()
- if(cuttable && !invulnerable && hole_size < MAX_HOLE_SIZE)
- results += "[desc_panel_image("wirecutters")]to [hole_size > NO_HOLE ? "expand the":"cut a"] hole into the fence, allowing passage."
- return results
-
-/obj/structure/fence/end
- icon_state = "end"
- cuttable = FALSE
-
-/obj/structure/fence/corner
- icon_state = "corner"
- cuttable = FALSE
-
-/obj/structure/fence/post
- icon_state = "post"
- cuttable = FALSE
-
-/obj/structure/fence/cut/medium
- icon_state = "straight_cut2"
- hole_size = MEDIUM_HOLE
-
-/obj/structure/fence/cut/large
- icon_state = "straight_cut3"
- hole_size = LARGE_HOLE
-
-// Projectiles can pass through fences.
-/obj/structure/fence/CanPass(atom/movable/mover, turf/target)
- if(istype(mover, /obj/item/projectile))
- return TRUE
- return ..()
-
-/obj/structure/fence/attackby(obj/item/W, mob/user)
- if(W.is_wirecutter())
- if(!cuttable)
- to_chat(user, span("warning", "This section of the fence can't be cut."))
- return
- if(invulnerable)
- to_chat(user, span("warning", "This fence is too strong to cut through."))
- return
- var/current_stage = hole_size
- if(current_stage >= MAX_HOLE_SIZE)
- to_chat(user, span("notice", "This fence has too much cut out of it already."))
- return
-
- user.visible_message(span("danger", "\The [user] starts cutting through \the [src] with \the [W]."),\
- span("danger", "You start cutting through \the [src] with \the [W]."))
- playsound(src, W.usesound, 50, 1)
-
- if(do_after(user, CUT_TIME * W.toolspeed, target = src))
- if(current_stage == hole_size)
- switch(++hole_size)
- if(MEDIUM_HOLE)
- visible_message(span("notice", "\The [user] cuts into \the [src] some more."))
- to_chat(user, span("notice", "You could probably fit yourself through that hole now. Although climbing through would be much faster if you made it even bigger."))
- climbable = TRUE
- if(LARGE_HOLE)
- visible_message(span("notice", "\The [user] completely cuts through \the [src]."))
- to_chat(user, span("notice", "The hole in \the [src] is now big enough to walk through."))
- climbable = FALSE
- update_cut_status()
- return TRUE
-
-/obj/structure/fence/proc/update_cut_status()
- if(!cuttable)
- return
- density = TRUE
-
- switch(hole_size)
- if(NO_HOLE)
- icon_state = initial(icon_state)
- if(MEDIUM_HOLE)
- icon_state = "straight_cut2"
- if(LARGE_HOLE)
- icon_state = "straight_cut3"
- density = FALSE
-
-//FENCE DOORS
-
-/obj/structure/fence/door
- name = "fence door"
- desc = "Not very useful without a real lock."
- icon_state = "door_closed"
- cuttable = FALSE
- var/open = FALSE
- var/locked = FALSE
-
-/obj/structure/fence/door/Initialize()
- update_door_status()
- return ..()
-
-/obj/structure/fence/door/opened
- icon_state = "door_opened"
- open = TRUE
- density = TRUE
-
-/obj/structure/fence/door/locked
- desc = "It looks like it has a strong padlock attached."
- locked = TRUE
-
-/obj/structure/fence/door/attack_hand(mob/user)
- if(can_open(user))
- toggle(user)
- else
- to_chat(user, span("warning", "\The [src] is [!open ? "locked" : "stuck open"]."))
-
- return TRUE
-
-/obj/structure/fence/door/proc/toggle(mob/user)
- switch(open)
- if(FALSE)
- visible_message(span("notice", "\The [user] opens \the [src]."))
- open = TRUE
- if(TRUE)
- visible_message(span("notice", "\The [user] closes \the [src]."))
- open = FALSE
-
- update_door_status()
- playsound(src, 'sound/machines/click.ogg', 100, 1)
-
-/obj/structure/fence/door/proc/update_door_status()
- switch(open)
- if(FALSE)
- density = TRUE
- icon_state = "door_closed"
- if(TRUE)
- density = FALSE
- icon_state = "door_opened"
-
-/obj/structure/fence/door/proc/can_open(mob/user)
- if(locked)
- return FALSE
- return TRUE
-
-#undef CUT_TIME
-#undef CLIMB_TIME
-
-#undef NO_HOLE
-#undef MEDIUM_HOLE
-#undef LARGE_HOLE
->>>>>>> 6c6644f... Rewrite examine() to pass a list around (#7038)
#undef MAX_HOLE_SIZE
\ No newline at end of file
diff --git a/code/game/objects/structures/medical_stand_vr.dm b/code/game/objects/structures/medical_stand_vr.dm
index 60bddde660..9e0b2cdf37 100644
--- a/code/game/objects/structures/medical_stand_vr.dm
+++ b/code/game/objects/structures/medical_stand_vr.dm
@@ -342,24 +342,24 @@
return
if(beaker)
- to_chat(user, "The IV drip is [mode ? "injecting" : "taking blood"].")
- to_chat(user, "It is set to transfer [transfer_amount]u of chemicals per cycle.")
+ . += "The IV drip is [mode ? "injecting" : "taking blood"]."
+ . += "It is set to transfer [transfer_amount]u of chemicals per cycle."
if(beaker.reagents && beaker.reagents.total_volume)
- to_chat(user, "Attached is \a [beaker] with [beaker.reagents.total_volume] units of liquid.")
+ . += "Attached is \a [beaker] with [beaker.reagents.total_volume] units of liquid."
else
- to_chat(user, "Attached is an empty [beaker].")
- to_chat(user, "[attached ? attached : "No one"] is hooked up to it.")
+ . += "Attached is an empty [beaker]."
+ . += "[attached ? attached : "No one"] is hooked up to it."
else
- to_chat(user, "There is no vessel.")
+ . += "There is no vessel."
if(tank)
if (!is_loosen)
- to_chat(user, "\The [tank] connected.")
- to_chat(user, "The meter shows [round(tank.air_contents.return_pressure())]. The valve is [valve_opened == TRUE ? "open" : "closed"].")
+ . += "\The [tank] connected."
+ . += "The meter shows [round(tank.air_contents.return_pressure())]. The valve is [valve_opened == TRUE ? "open" : "closed"]."
if (tank.distribute_pressure == 0)
- to_chat(user, "Use wrench to replace tank.")
+ . += "Use wrench to replace tank."
else
- to_chat(user, "There is no tank.")
+ . += "There is no tank."
/obj/structure/medical_stand/process()
//Gas Stuff
diff --git a/code/modules/hydroponics/trays/tray.dm b/code/modules/hydroponics/trays/tray.dm
index 131265bc82..0472ed8a28 100644
--- a/code/modules/hydroponics/trays/tray.dm
+++ b/code/modules/hydroponics/trays/tray.dm
@@ -1,11 +1,7 @@
/obj/machinery/portable_atmospherics/hydroponics
name = "hydroponics tray"
-<<<<<<< HEAD
- icon = 'icons/obj/hydroponics_machines_vr.dmi' //VOREStation Edit
-=======
desc = "A tray usually full of fluid for growing plants."
- icon = 'icons/obj/hydroponics_machines.dmi'
->>>>>>> 6c6644f... Rewrite examine() to pass a list around (#7038)
+ icon = 'icons/obj/hydroponics_machines_vr.dmi' //VOREStation Edit
icon_state = "hydrotray3"
density = 1
anchored = 1
diff --git a/code/modules/mining/shelter_atoms_vr.dm b/code/modules/mining/shelter_atoms_vr.dm
index fd380e513e..d3be02cfd7 100644
--- a/code/modules/mining/shelter_atoms_vr.dm
+++ b/code/modules/mining/shelter_atoms_vr.dm
@@ -34,9 +34,13 @@ GLOBAL_LIST_EMPTY(unique_deployable)
/obj/item/device/survivalcapsule/examine(mob/user)
. = ..()
- get_template()
- to_chat(user, "This capsule has the [template.name] stored.")
- to_chat(user, template.description)
+ if(!template)
+ get_template()
+ if(template)
+ . += "This capsule has the [template.name] stored:"
+ . += template.description
+ else
+ . += "This capsule has an unknown template stored."
/obj/item/device/survivalcapsule/attack_self()
//Can't grab when capsule is New() because templates aren't loaded then
diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm
index 45713eae4a..93ec82b8e4 100644
--- a/code/modules/mob/living/carbon/human/examine.dm
+++ b/code/modules/mob/living/carbon/human/examine.dm
@@ -97,7 +97,7 @@
if(!((skip_gear & EXAMINE_SKIPJUMPSUIT) && (skip_body & EXAMINE_SKIPFACE)))
//VOREStation Add Start
if(custom_species)
- msg += ", a [src.custom_species]"
+ name_ender = ", a [src.custom_species]"
else if(looks_synth)
//VOREStation Add End
var/use_gender = "a synthetic"
@@ -280,13 +280,20 @@
if(suiciding)
msg += "[T.He] appears to have commited suicide... there is no hope of recovery."
- msg += attempt_vr(src,"examine_weight",args) //VOREStation Code
- msg += attempt_vr(src,"examine_nutrition",args) //VOREStation Code
- msg += attempt_vr(src,"examine_bellies",args) //VOREStation Code
- msg += attempt_vr(src,"examine_pickup_size",args) //VOREStation Code
- msg += attempt_vr(src,"examine_step_size",args) //VOREStation Code
- msg += attempt_vr(src,"examine_nif",args) //VOREStation Code
- msg += attempt_vr(src,"examine_chimera",args) //VOREStation Code
+ //VOREStation Add
+ var/list/vorestrings = list()
+ vorestrings += examine_weight()
+ vorestrings += examine_nutrition()
+ vorestrings += examine_bellies()
+ vorestrings += examine_pickup_size()
+ vorestrings += examine_step_size()
+ vorestrings += examine_nif()
+ vorestrings += examine_chimera()
+ for(var/entry in vorestrings)
+ if(entry == "" || entry == null)
+ vorestrings -= entry
+ msg += vorestrings
+ //VOREStation Add End
if(mSmallsize in mutations)
msg += "[T.He] [T.is] very short!"
@@ -314,17 +321,13 @@
if(!key)
msg += "[T.He] [T.is] [ssd_msg]. It doesn't look like [T.he] [T.is] waking up anytime soon."
else if(!client)
-<<<<<<< HEAD
- msg += "[T.He] [T.is] [ssd_msg].
"
+ msg += "[T.He] [T.is] [ssd_msg]."
//VOREStation Add Start
if(client && ((client.inactivity / 10) / 60 > 10)) //10 Minutes
- msg += "\[Inactive for [round((client.inactivity/10)/60)] minutes\]\n"
+ msg += "\[Inactive for [round((client.inactivity/10)/60)] minutes\]"
else if(disconnect_time)
- msg += "\[Disconnected/ghosted [round(((world.realtime - disconnect_time)/10)/60)] minutes ago\]\n"
+ msg += "\[Disconnected/ghosted [round(((world.realtime - disconnect_time)/10)/60)] minutes ago\]"
//VOREStation Add End
-=======
- msg += "[T.He] [T.is] [ssd_msg]."
->>>>>>> 6c6644f... Rewrite examine() to pass a list around (#7038)
var/list/wound_flavor_text = list()
var/list/is_bleeding = list()
@@ -437,21 +440,14 @@
if(flavor_text)
msg += "[flavor_text]"
-<<<<<<< HEAD
// VOREStation Start
if(ooc_notes)
- msg += "OOC Notes: \[View\]\n"
-
- msg += "\[Mechanical Vore Preferences\]\n"
-
+ msg += "OOC Notes: \[View\]"
+ msg += "\[Mechanical Vore Preferences\]"
// VOREStation End
- msg += "*---------*
"
- msg += applying_pressure
-=======
msg += "*---------*"
if(applying_pressure)
msg += applying_pressure
->>>>>>> 6c6644f... Rewrite examine() to pass a list around (#7038)
var/show_descs = show_descriptors_to(user)
if(show_descs)
diff --git a/code/modules/mob/living/carbon/human/examine_vr.dm b/code/modules/mob/living/carbon/human/examine_vr.dm
index bdd8678b1f..8d7c9a767c 100644
--- a/code/modules/mob/living/carbon/human/examine_vr.dm
+++ b/code/modules/mob/living/carbon/human/examine_vr.dm
@@ -44,25 +44,25 @@
switch(weight_examine)
if(0 to 74)
- message = "[t_He] [t_is] terribly lithe and frail!\n"
+ message = "[t_He] [t_is] terribly lithe and frail!"
if(75 to 99)
- message = "[t_He] [t_has] a very slender frame.\n"
+ message = "[t_He] [t_has] a very slender frame."
if(100 to 124)
- message = "[t_He] [t_has] a lightweight, athletic build.\n"
+ message = "[t_He] [t_has] a lightweight, athletic build."
if(125 to 174)
- message = "[t_He] [t_has] a healthy, average body.\n"
+ message = "[t_He] [t_has] a healthy, average body."
if(175 to 224)
- message = "[t_He] [t_has] a thick, [t_heavy] physique.\n"
+ message = "[t_He] [t_has] a thick, [t_heavy] physique."
if(225 to 274)
- message = "[t_He] [t_has] a plush, chubby figure.\n"
+ message = "[t_He] [t_has] a plush, chubby figure."
if(275 to 325)
- message = "[t_He] [t_has] an especially plump body with a round potbelly and large hips.\n"
+ message = "[t_He] [t_has] an especially plump body with a round potbelly and large hips."
if(325 to 374)
- message = "[t_He] [t_has] a very fat frame with a bulging potbelly, squishy rolls of pudge, very wide hips, and plump set of jiggling thighs.\n"
+ message = "[t_He] [t_has] a very fat frame with a bulging potbelly, squishy rolls of pudge, very wide hips, and plump set of jiggling thighs."
if(375 to 474)
- message = "[t_He] [t_is] incredibly obese. [t_His] massive potbelly sags over [t_his] waistline while [t_his] fat ass would probably require two chairs to sit down comfortably!\n"
+ message = "[t_He] [t_is] incredibly obese. [t_His] massive potbelly sags over [t_his] waistline while [t_his] fat ass would probably require two chairs to sit down comfortably!"
else
- message += "[t_He] [t_is] so morbidly obese, you wonder how [t_he] can even stand, let alone waddle around the station. [t_He] can't get any fatter without being immobilized.\n"
+ message += "[t_He] [t_is] so morbidly obese, you wonder how [t_he] can even stand, let alone waddle around the station. [t_He] can't get any fatter without being immobilized."
return message //Credit to Aronai for helping me actually get this working!
/mob/living/carbon/human/proc/examine_nutrition()
@@ -100,23 +100,23 @@
t_His = "Hir"
switch(nutrition_examine)
if(0 to 49)
- message = "[t_He] [t_is] starving! You can hear [t_his] stomach snarling from across the room!\n"
+ message = "[t_He] [t_is] starving! You can hear [t_his] stomach snarling from across the room!"
if(50 to 99)
- message = "[t_He] [t_is] extremely hungry. A deep growl occasionally rumbles from [t_his] empty stomach.\n"
+ message = "[t_He] [t_is] extremely hungry. A deep growl occasionally rumbles from [t_his] empty stomach."
if(100 to 499)
return message //Well that's pretty normal, really.
if(500 to 999) // Fat.
- message = "[t_He] [t_has] a stuffed belly, bloated fat and round from eating too much.\n"
+ message = "[t_He] [t_has] a stuffed belly, bloated fat and round from eating too much."
if(1000 to 1399)
- message = "[t_He] [t_has] a rotund, thick gut. It bulges from their body obscenely, close to sagging under its own weight.\n"
+ message = "[t_He] [t_has] a rotund, thick gut. It bulges from their body obscenely, close to sagging under its own weight."
if(1400 to 1934) // One person fully digested.
- message = "[t_He] [t_is] sporting a large, round, sagging stomach. It's contains at least their body weight worth of glorping slush.\n"
+ message = "[t_He] [t_is] sporting a large, round, sagging stomach. It's contains at least their body weight worth of glorping slush."
if(1935 to 3004) // Two people.
- message = "[t_He] [t_is] engorged with a huge stomach that sags and wobbles as they move. [t_He] must have consumed at least twice their body weight. It looks incredibly soft.\n"
+ message = "[t_He] [t_is] engorged with a huge stomach that sags and wobbles as they move. [t_He] must have consumed at least twice their body weight. It looks incredibly soft."
if(3005 to 4074) // Three people.
- message = "[t_His] stomach is firmly packed with digesting slop. [t_He] must have eaten at least a few times worth their body weight! It looks hard for them to stand, and [t_his] gut jiggles when they move.\n"
+ message = "[t_His] stomach is firmly packed with digesting slop. [t_He] must have eaten at least a few times worth their body weight! It looks hard for them to stand, and [t_his] gut jiggles when they move."
if(4075 to INFINITY) // Four or more people.
- message = "[t_He] [t_is] so absolutely stuffed that you aren't sure how it's possible to move. [t_He] can't seem to swell any bigger. The surface of [t_his] belly looks sorely strained!\n"
+ message = "[t_He] [t_is] so absolutely stuffed that you aren't sure how it's possible to move. [t_He] can't seem to swell any bigger. The surface of [t_his] belly looks sorely strained!"
return message
//For OmniHUD records access for appropriate models
@@ -145,18 +145,18 @@
/mob/living/carbon/human/proc/examine_pickup_size(mob/living/H)
var/message = ""
if(istype(H) && (H.get_effective_size() - src.get_effective_size()) >= 0.50)
- message = "They are small enough that you could easily pick them up!\n"
+ message = "They are small enough that you could easily pick them up!"
return message
/mob/living/carbon/human/proc/examine_step_size(mob/living/H)
var/message = ""
if(istype(H) && (H.get_effective_size() - src.get_effective_size()) >= 0.75)
- message = "They are small enough that you could easily trample them!\n"
+ message = "They are small enough that you could easily trample them!"
return message
/mob/living/carbon/human/proc/examine_nif(mob/living/carbon/human/H)
if(nif && nif.examine_msg) //If you have one set, anyway.
- return "[nif.examine_msg]\n"
+ return "[nif.examine_msg]"
/mob/living/carbon/human/proc/examine_chimera(mob/living/carbon/human/H)
var/t_He = "It" //capitalised for use at the start of each line.
@@ -189,8 +189,8 @@
t_his = "hir"
if(revive_ready == REVIVING_NOW || revive_ready == REVIVING_DONE)
if(stat == DEAD)
- return "[t_His] body is twitching subtly.\n"
+ return "[t_His] body is twitching subtly."
else
- return "[t_He] [t_appear] to be in some sort of torpor.\n"
+ return "[t_He] [t_appear] to be in some sort of torpor."
if(feral)
- return "[t_He] [t_has] a crazed, wild look in [t_his] eyes!\n"
\ No newline at end of file
+ return "[t_He] [t_has] a crazed, wild look in [t_his] eyes!"
\ No newline at end of file
diff --git a/code/modules/mob/living/silicon/pai/examine.dm b/code/modules/mob/living/silicon/pai/examine.dm
index 18f81c2f23..b6890470c9 100644
--- a/code/modules/mob/living/silicon/pai/examine.dm
+++ b/code/modules/mob/living/silicon/pai/examine.dm
@@ -3,24 +3,17 @@
switch(src.stat)
if(CONSCIOUS)
-<<<<<<< HEAD
- if(!src.client) msg += "\nIt appears to be in stand-by mode.\n" //afk
- if(UNCONSCIOUS) msg += "\nIt doesn't seem to be responding.\n"
- if(DEAD) msg += "\nIt looks completely unsalvageable.\n"
- msg += attempt_vr(src,"examine_bellies",args) //VOREStation Edit
-
- // VOREStation Edit: Start
- if(ooc_notes)
- msg += "OOC Notes: \[View\]\n"
- // VOREStation Edit: End
-
- msg += "\n*---------*"
-=======
if(!src.client) . += "It appears to be in stand-by mode." //afk
if(UNCONSCIOUS) . += "It doesn't seem to be responding."
if(DEAD) . += "It looks completely unsalvageable."
+
+ // VOREStation Edit: Start
+ . += attempt_vr(src,"examine_bellies",args) //VOREStation Edit
+ if(ooc_notes)
+ . += "OOC Notes: \[View\]"
+ // VOREStation Edit: End
+
. += "*---------*"
->>>>>>> 6c6644f... Rewrite examine() to pass a list around (#7038)
if(print_flavor_text()) . += "\n[print_flavor_text()]\n"
diff --git a/code/modules/mob/living/silicon/robot/dogborg/dog_modules_vr.dm b/code/modules/mob/living/silicon/robot/dogborg/dog_modules_vr.dm
index 32963e6ab3..1a67275635 100644
--- a/code/modules/mob/living/silicon/robot/dogborg/dog_modules_vr.dm
+++ b/code/modules/mob/living/silicon/robot/dogborg/dog_modules_vr.dm
@@ -179,12 +179,12 @@
flags |= NOBLUDGEON //No more attack messages
/obj/item/device/dogborg/tongue/examine(user)
- if(!..(user, 1))
- return
- if(water.energy)
- to_chat(user, "[src] is wet. Just like it should be.")
- if(water.energy < 5)
- to_chat(user, "[src] is dry.")
+ . = ..()
+ if(Adjacent(user))
+ if(water.energy)
+ . += "[src] is wet. Just like it should be."
+ if(water.energy < 5)
+ . += "[src] is dry."
/obj/item/device/dogborg/tongue/attack_self(mob/user)
var/mob/living/silicon/robot.R = user
diff --git a/code/modules/mob/living/silicon/robot/examine.dm b/code/modules/mob/living/silicon/robot/examine.dm
index a533f0900e..6f3cabe4af 100644
--- a/code/modules/mob/living/silicon/robot/examine.dm
+++ b/code/modules/mob/living/silicon/robot/examine.dm
@@ -26,24 +26,17 @@
if(shell)
. += "It appears to be an [deployed ? "active" : "empty"] AI shell."
else if(!src.client)
-<<<<<<< HEAD
- msg += "It appears to be in stand-by mode.\n" //afk
- if(UNCONSCIOUS) msg += "It doesn't seem to be responding.\n"
- if(DEAD) msg += "It looks completely unsalvageable.\n"
- msg += attempt_vr(src,"examine_bellies_borg",args) //VOREStation Edit
-
- // VOREStation Edit: Start
- if(ooc_notes)
- msg += "OOC Notes: \[View\]\n"
- // VOREStation Edit: End
-
- msg += "*---------*"
-=======
. += "It appears to be in stand-by mode." //afk
if(UNCONSCIOUS) . += "It doesn't seem to be responding."
if(DEAD) . += "It looks completely unsalvageable."
+
+ // VOREStation Edit: Start
+ . += attempt_vr(src,"examine_bellies_borg",args) //VOREStation Edit
+ if(ooc_notes)
+ . += "OOC Notes: \[View\]"
+ // VOREStation Edit: End
+
. += "*---------*"
->>>>>>> 6c6644f... Rewrite examine() to pass a list around (#7038)
if(print_flavor_text()) . += "
[print_flavor_text()]"
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/pets/parrot.dm b/code/modules/mob/living/simple_mob/subtypes/animal/pets/parrot.dm
index c231724e36..8d09b18fea 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/pets/parrot.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/pets/parrot.dm
@@ -1,4 +1,3 @@
-<<<<<<< HEAD
// Parrots can talk, and may repeat things it hears.
/mob/living/simple_mob/animal/passive/bird/parrot
name = "parrot"
@@ -42,11 +41,11 @@
return say(message)
// Ugly saycode so parrots can use their headsets.
-/mob/living/simple_mob/animal/passive/bird/parrot/handle_message_mode(message_mode, message, verb, used_radios)
+/mob/living/simple_mob/animal/passive/bird/parrot/handle_message_mode(message_mode, message, verb, speaking, used_radios)
..()
if(message_mode)
if(my_headset && istype(my_headset, /obj/item/device/radio))
- my_headset.talk_into(src, message, message_mode, verb)
+ my_headset.talk_into(src, message, message_mode, verb, speaking)
used_radios += my_headset
// Clicked on while holding an object.
@@ -91,9 +90,9 @@
my_headset = null
/mob/living/simple_mob/animal/passive/bird/parrot/examine(mob/user)
- ..()
+ . = ..()
if(my_headset)
- to_chat(user, "It is wearing \a [my_headset].")
+ . += "It is wearing \a [my_headset]."
/mob/living/simple_mob/animal/passive/bird/parrot/Initialize()
if(my_headset)
@@ -110,7 +109,7 @@
icon_rest = "poly-held"
icon_dead = "poly-dead"
tt_desc = "E Ara macao"
- //my_headset = /obj/item/device/radio/headset/headset_eng //VOREStation Removal: shut up
+ //my_headset = /obj/item/device/radio/headset/headset_eng //VOREStation Removal
say_list_type = /datum/say_list/bird/poly
// Best Bird with best headset.
@@ -250,257 +249,4 @@
if(holder.stat || !holder.say_list || !message || speaker == holder)
return
var/datum/say_list/S = holder.say_list
-=======
-// Parrots can talk, and may repeat things it hears.
-/mob/living/simple_mob/animal/passive/bird/parrot
- name = "parrot"
- description_info = "You can give it a headset by clicking on it with a headset. \
- To remove it, click the bird while on grab intent."
- has_langs = list("Galactic Common", "Bird")
-
- ai_holder_type = /datum/ai_holder/simple_mob/passive/parrot
-
- // A headset, so that talking parrots can yell at the crew over comms.
- // If set to a type, on initialize it will be instantiated into that type.
- var/obj/item/device/radio/headset/my_headset = null
-
-// Say list
-/datum/say_list/bird/poly
- speak = list(
- "Poly wanna cracker!",
- "Check the singulo, you chucklefucks!",
- "Wire the solars, you lazy bums!",
- "WHO TOOK THE DAMN HARDSUITS?",
- "OH GOD ITS FREE CALL THE SHUTTLE",
- "Danger! Crystal hyperstructure instability!",
- "CRYSTAL DELAMINATION IMMINENT.",
- "Tweet tweet, I'm a Teshari.",
- "Chitters.",
- "Meteors have been detected on a collision course with the station!"
- )
-
-// Lets the AI use headsets.
-// Player-controlled parrots will need to do it manually.
-/mob/living/simple_mob/animal/passive/bird/parrot/ISay(message)
- if(my_headset && prob(50))
- var/list/keys = list()
- for(var/channel in my_headset.channels)
- var/key = get_radio_key_from_channel(channel)
- if(key)
- keys += key
- if(keys.len)
- var/key_used = pick(keys)
- return say("[key_used] [message]")
- return say(message)
-
-// Ugly saycode so parrots can use their headsets.
-/mob/living/simple_mob/animal/passive/bird/parrot/handle_message_mode(message_mode, message, verb, speaking, used_radios)
- ..()
- if(message_mode)
- if(my_headset && istype(my_headset, /obj/item/device/radio))
- my_headset.talk_into(src, message, message_mode, verb, speaking)
- used_radios += my_headset
-
-// Clicked on while holding an object.
-/mob/living/simple_mob/animal/passive/bird/parrot/attackby(obj/item/I, mob/user)
- if(istype(I, /obj/item/device/radio/headset))
- give_headset(I, user)
- return
- return ..()
-
-// Clicked on by empty hand.
-/mob/living/simple_mob/animal/passive/bird/parrot/attack_hand(mob/living/L)
- if(L.a_intent == I_GRAB && my_headset)
- remove_headset(L)
- else
- ..()
-
-
-/mob/living/simple_mob/animal/passive/bird/parrot/proc/give_headset(obj/item/device/radio/headset/new_headset, mob/living/user)
- if(!istype(new_headset))
- to_chat(user, span("warning", "\The [new_headset] isn't a headset."))
- return
- if(my_headset)
- to_chat(user, span("warning", "\The [src] is already wearing \a [my_headset]."))
- return
- else
- user.drop_item(new_headset)
- my_headset = new_headset
- new_headset.forceMove(src)
- to_chat(user, span("warning", "You place \a [new_headset] on \the [src]. You monster."))
- to_chat(src, span("notice", "\The [user] gives you \a [new_headset]. You should put it to good use immediately."))
- return
-
-/mob/living/simple_mob/animal/passive/bird/parrot/proc/remove_headset(mob/living/user)
- if(!my_headset)
- to_chat(user, "\The [src] doesn't have a headset to remove, thankfully.")
- else
- ISay("BAWWWWWK LEAVE THE HEADSET BAWKKKKK!")
- my_headset.forceMove(get_turf(src))
- user.put_in_hands(my_headset)
- to_chat(user, span("notice", "You take away \the [src]'s [my_headset.name]. Finally."))
- to_chat(src, span("warning", "\The [user] takes your [my_headset.name] away! How cruel!"))
- my_headset = null
-
-/mob/living/simple_mob/animal/passive/bird/parrot/examine(mob/user)
- . = ..()
- if(my_headset)
- . += "It is wearing \a [my_headset]."
-
-/mob/living/simple_mob/animal/passive/bird/parrot/Initialize()
- if(my_headset)
- my_headset = new my_headset(src)
- return ..()
-
-// Subtypes.
-
-// Best Bird
-/mob/living/simple_mob/animal/passive/bird/parrot/poly
- name = "Poly"
- desc = "It's a parrot. An expert on quantum cracker theory."
- icon_state = "poly"
- icon_rest = "poly-held"
- icon_dead = "poly-dead"
- tt_desc = "E Ara macao"
- my_headset = /obj/item/device/radio/headset/headset_eng
- say_list_type = /datum/say_list/bird/poly
-
-// Best Bird with best headset.
-/mob/living/simple_mob/animal/passive/bird/parrot/poly/ultimate
- my_headset = /obj/item/device/radio/headset/omni
-
-/mob/living/simple_mob/animal/passive/bird/parrot/kea
- name = "kea"
- desc = "A species of parrot. On Earth, they are unique among other parrots for residing in alpine climates. \
- They are known to be intelligent and curious, which has made some consider them a pest."
- icon_state = "kea"
- icon_rest = "kea-held"
- icon_dead = "kea-dead"
- tt_desc = "E Nestor notabilis"
-
-/mob/living/simple_mob/animal/passive/bird/parrot/eclectus
- name = "eclectus"
- desc = "A species of parrot, this species features extreme sexual dimorphism in their plumage's colors. \
- A male eclectus has emerald green plumage, where as a female eclectus has red and purple plumage."
- icon_state = "eclectus"
- icon_rest = "eclectus-held"
- icon_dead = "eclectus-dead"
- tt_desc = "E Eclectus roratus"
-
-/mob/living/simple_mob/animal/passive/bird/parrot/eclectus/Initialize()
- gender = pick(MALE, FEMALE)
- if(gender == FEMALE)
- icon_state = "eclectusf"
- icon_rest = "eclectusf-held"
- icon_dead = "eclectusf-dead"
- return ..()
-
-/mob/living/simple_mob/animal/passive/bird/parrot/grey_parrot
- name = "grey parrot"
- desc = "A species of parrot. This one is predominantly grey, but has red tail feathers."
- icon_state = "agrey"
- icon_rest = "agrey-held"
- icon_dead = "agrey-dead"
- tt_desc = "E Psittacus erithacus"
-
-/mob/living/simple_mob/animal/passive/bird/parrot/black_headed_caique
- name = "black-headed caique"
- desc = "A species of parrot, these birds have a distinct black color on their heads, distinguishing them from their relative Caiques."
- icon_state = "bcaique"
- icon_rest = "bcaique-held"
- icon_dead = "bcaique-dead"
- tt_desc = "E Pionites melanocephalus"
-
-/mob/living/simple_mob/animal/passive/bird/parrot/white_caique
- name = "white-bellied caique"
- desc = "A species of parrot, they are also known as the Green-Thighed Parrot."
- icon_state = "wcaique"
- icon_rest = "wcaique-held"
- icon_dead = "wcaique-dead"
- tt_desc = "E Pionites leucogaster"
-
-/mob/living/simple_mob/animal/passive/bird/parrot/budgerigar
- name = "budgerigar"
- desc = "A species of parrot, they are also known as the common parakeet, or in some circles, the budgie. \
- This one is has its natural colors of green and yellow."
- icon_state = "gbudge"
- icon_rest = "gbudge-held"
- icon_dead = "gbudge-dead"
- tt_desc = "E Melopsittacus undulatus"
-
-/mob/living/simple_mob/animal/passive/bird/parrot/budgerigar/blue
- icon_state = "bbudge"
- icon_rest = "bbudge-held"
- icon_dead = "bbudge-dead"
- desc = "A species of parrot, they are also known as the common parakeet, or in some circles, the budgie. \
- This one has a mutation which altered its color to be blue instead of green and yellow."
-
-/mob/living/simple_mob/animal/passive/bird/parrot/budgerigar/bluegreen
- icon_state = "bgbudge"
- icon_rest = "bgbudge-held"
- icon_dead = "bgbudge-dead"
- desc = "A species of parrot, they are also known as the common parakeet, or in some circles, the budgie. \
- This one has a mutation which altered its color to be a mix of blue and green."
-
-/mob/living/simple_mob/animal/passive/bird/parrot/cockatiel
- name = "cockatiel"
- desc = "A species of parrot. This one has a highly visible crest."
- icon_state = "tiel"
- icon_rest = "tiel-held"
- icon_dead = "tiel-dead"
- tt_desc = "E Nymphicus hollandicus"
-
-/mob/living/simple_mob/animal/passive/bird/parrot/cockatiel/white
- icon_state = "wtiel"
- icon_rest = "wtiel-held"
- icon_dead = "wtiel-dead"
-
-/mob/living/simple_mob/animal/passive/bird/parrot/cockatiel/yellowish
- icon_state = "luttiel"
- icon_rest = "luttiel-held"
- icon_dead = "luttiel-dead"
-
-/mob/living/simple_mob/animal/passive/bird/parrot/cockatiel/grey
- icon_state = "blutiel" // idk why this is blu.
- icon_rest = "blutiel-held"
- icon_dead = "blutiel-dead"
-
-// This actually might be the yellow-crested cockatoo but idk.
-/mob/living/simple_mob/animal/passive/bird/parrot/sulphur_cockatoo
- name = "sulphur-crested cockatoo"
- desc = "A species of parrot. This one has an expressive yellow crest. Their underwing and tail feathers are also yellow."
- icon_state = "too"
- icon_rest = "too-held"
- icon_dead = "too-dead"
- tt_desc = "E Cacatua galerita"
-
-// This was originally called 'hooded_too', which might not mean the unbrella cockatoo but idk.
-/mob/living/simple_mob/animal/passive/bird/parrot/white_cockatoo
- name = "white cockatoo"
- desc = "A species of parrot. This one is also known as the Umbrella Cockatoo, due to the semicircular shape of its crest."
- icon_state = "utoo"
- icon_rest = "utoo-held"
- icon_dead = "utoo-dead"
- tt_desc = "E Cacatua alba"
-
-/mob/living/simple_mob/animal/passive/bird/parrot/pink_cockatoo
- name = "pink cockatoo"
- desc = "A species of parrot. This one is also known as Major Mitchell's cockatoo, \
- in honor of a human surveyor and explorer who existed before humans fully explored their home planet."
- icon_state = "mtoo"
- icon_rest = "mtoo-held"
- icon_dead = "mtoo-dead"
- tt_desc = "E Lophochroa leadbeateri"
-
-
-// AI
-/datum/ai_holder/simple_mob/passive/parrot
- speak_chance = 2
- base_wander_delay = 8
-
-/datum/ai_holder/simple_mob/passive/parrot/on_hear_say(mob/living/speaker, message)
- if(holder.stat || !holder.say_list || !message || speaker == holder)
- return
- var/datum/say_list/S = holder.say_list
->>>>>>> 6c6644f... Rewrite examine() to pass a list around (#7038)
S.speak |= message
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/xenobio.dm b/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/xenobio.dm
index 79d5bd8fd7..3437d05ba2 100644
--- a/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/xenobio.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/xenobio.dm
@@ -1,4 +1,3 @@
-<<<<<<< HEAD
// These slimes have the mechanics xenobiologists care about, such as reproduction, mutating into new colors, and being able to submit through fear.
/mob/living/simple_mob/slime/xenobio
@@ -74,25 +73,25 @@
..()
/mob/living/simple_mob/slime/xenobio/examine(mob/user)
- ..()
+ . = ..()
if(hat)
- to_chat(user, "It is wearing \a [hat].")
+ . += "It is wearing \a [hat]."
if(stat == DEAD)
- to_chat(user, "It appears to be dead.")
+ . += "It appears to be dead."
else if(incapacitated(INCAPACITATION_DISABLED))
- to_chat(user, "It appears to be incapacitated.")
+ . += "It appears to be incapacitated."
else if(harmless)
- to_chat(user, "It appears to have been pacified.")
+ . += "It appears to have been pacified."
else
if(has_AI())
var/datum/ai_holder/simple_mob/xenobio_slime/AI = ai_holder
if(AI.rabid)
- to_chat(user, "It seems very, very angry and upset.")
+ . += "It seems very, very angry and upset."
else if(AI.obedience >= 5)
- to_chat(user, "It looks rather obedient.")
+ . += "It looks rather obedient."
else if(AI.discipline)
- to_chat(user, "It has been subjugated by force, at least for now.")
+ . += "It has been subjugated by force, at least for now."
/mob/living/simple_mob/slime/xenobio/proc/make_adult()
if(is_adult)
@@ -277,283 +276,3 @@
lines.Add(description_info)
return lines.Join("\n")
-=======
-// These slimes have the mechanics xenobiologists care about, such as reproduction, mutating into new colors, and being able to submit through fear.
-
-/mob/living/simple_mob/slime/xenobio
- desc = "The most basic of slimes. The grey slime has no remarkable qualities, however it remains one of the most useful colors for scientists."
- layer = MOB_LAYER + 1 // Need them on top of other mobs or it looks weird when consuming something.
- ai_holder_type = /datum/ai_holder/simple_mob/xenobio_slime // This should never be changed for xenobio slimes.
- var/is_adult = FALSE // Slimes turn into adults when fed enough. Adult slimes are somewhat stronger, and can reproduce if fed enough.
- var/maxHealth_adult = 200
- var/power_charge = 0 // Disarm attacks can shock someone if high/lucky enough.
- var/mob/living/victim = null // the person the slime is currently feeding on
- var/rainbow_core_candidate = TRUE // If false, rainbow cores cannot make this type randomly.
- var/mutation_chance = 25 // Odds of spawning as a new color when reproducing. Can be modified by certain xenobio products. Carried across generations of slimes.
- var/list/slime_mutation = list(
- /mob/living/simple_mob/slime/xenobio/orange,
- /mob/living/simple_mob/slime/xenobio/metal,
- /mob/living/simple_mob/slime/xenobio/blue,
- /mob/living/simple_mob/slime/xenobio/purple
- )
- var/amount_grown = 0 // controls how long the slime has been overfed, if 10, grows or reproduces
- var/number = 0 // This is used to make the slime semi-unique for indentification.
- var/harmless = FALSE // Set to true when pacified. Makes the slime harmless, not get hungry, and not be able to grow/reproduce.
-
-/mob/living/simple_mob/slime/xenobio/Initialize(mapload, var/mob/living/simple_mob/slime/xenobio/my_predecessor)
- ASSERT(ispath(ai_holder_type, /datum/ai_holder/simple_mob/xenobio_slime))
- number = rand(1, 1000)
- update_name()
-
- . = ..() // This will make the AI and do the other mob constructor things. It will also return the default hint at the end.
-
- if(my_predecessor)
- inherit_information(my_predecessor)
-
-
-/mob/living/simple_mob/slime/xenobio/Destroy()
- if(victim)
- stop_consumption() // Unbuckle us from our victim.
- return ..()
-
-// Called when a slime makes another slime by splitting. The predecessor slime will be deleted shortly afterwards.
-/mob/living/simple_mob/slime/xenobio/proc/inherit_information(var/mob/living/simple_mob/slime/xenobio/predecessor)
- if(!predecessor)
- return
-
- var/datum/ai_holder/simple_mob/xenobio_slime/AI = ai_holder
- var/datum/ai_holder/simple_mob/xenobio_slime/previous_AI = predecessor.ai_holder
- ASSERT(istype(AI))
- ASSERT(istype(previous_AI))
-
- // Now to transfer the information.
- // Newly made slimes are bit more rebellious than their predecessors, but they also somewhat forget the atrocities the xenobiologist may have done.
- AI.discipline = max(previous_AI.discipline - 1, 0)
- AI.obedience = max(previous_AI.obedience - 1, 0)
- AI.resentment = max(previous_AI.resentment - 1, 0)
- AI.rabid = previous_AI.rabid
-
-
-/mob/living/simple_mob/slime/xenobio/update_icon()
- icon_living = "[icon_state_override ? "[icon_state_override] slime" : "slime"] [is_adult ? "adult" : "baby"][victim ? " eating" : ""]"
- icon_dead = "[icon_state_override ? "[icon_state_override] slime" : "slime"] [is_adult ? "adult" : "baby"] dead"
- icon_rest = icon_dead
- ..() // This will apply the correct icon_state and do the other overlay-related things.
-
-
-/mob/living/simple_mob/slime/xenobio/handle_special()
- if(stat != DEAD)
- handle_nutrition()
-
- if(victim)
- handle_consumption()
-
- handle_stuttering() // ??
-
- ..()
-
-/mob/living/simple_mob/slime/xenobio/examine(mob/user)
- . = ..()
- if(hat)
- . += "It is wearing \a [hat]."
-
- if(stat == DEAD)
- . += "It appears to be dead."
- else if(incapacitated(INCAPACITATION_DISABLED))
- . += "It appears to be incapacitated."
- else if(harmless)
- . += "It appears to have been pacified."
- else
- if(has_AI())
- var/datum/ai_holder/simple_mob/xenobio_slime/AI = ai_holder
- if(AI.rabid)
- . += "It seems very, very angry and upset."
- else if(AI.obedience >= 5)
- . += "It looks rather obedient."
- else if(AI.discipline)
- . += "It has been subjugated by force, at least for now."
-
-/mob/living/simple_mob/slime/xenobio/proc/make_adult()
- if(is_adult)
- return
-
- is_adult = TRUE
- melee_damage_lower = round(melee_damage_lower * 2) // 20
- melee_damage_upper = round(melee_damage_upper * 2) // 30
- maxHealth = maxHealth_adult
- amount_grown = 0
- update_icon()
- update_name()
-
-/mob/living/simple_mob/slime/xenobio/proc/update_name()
- if(harmless) // Docile slimes are generally named, so we shouldn't mess with it.
- return
- name = "[slime_color] [is_adult ? "adult" : "baby"] [initial(name)] ([number])"
- real_name = name
-
-/mob/living/simple_mob/slime/xenobio/update_mood()
- var/old_mood = mood
- if(incapacitated(INCAPACITATION_DISABLED))
- mood = "sad"
- else if(harmless)
- mood = ":33"
- else if(has_AI())
- var/datum/ai_holder/simple_mob/xenobio_slime/AI = ai_holder
- if(AI.rabid)
- mood = "angry"
- else if(AI.target)
- mood = "mischevous"
- else if(AI.discipline)
- mood = "pout"
- else
- mood = ":3"
- else
- mood = ":3"
-
- if(old_mood != mood)
- update_icon()
-
-/mob/living/simple_mob/slime/xenobio/proc/enrage()
- if(harmless)
- return
- if(has_AI())
- var/datum/ai_holder/simple_mob/xenobio_slime/AI = ai_holder
- AI.enrage()
-
-/mob/living/simple_mob/slime/xenobio/proc/pacify()
- harmless = TRUE
- if(has_AI())
- var/datum/ai_holder/simple_mob/xenobio_slime/AI = ai_holder
- AI.pacify()
-
- faction = "neutral"
-
- // If for whatever reason the mob AI (or player) decides to try to attack something anyways.
- melee_damage_upper = 0
- melee_damage_lower = 0
-
- update_mood()
-
-
-// These are verbs so that player slimes can evolve/split.
-/mob/living/simple_mob/slime/xenobio/verb/evolve()
- set category = "Slime"
- set desc = "This will let you evolve from baby to adult slime."
-
- if(stat)
- to_chat(src, span("warning", "I must be conscious to do this..."))
- return
-
- if(harmless)
- to_chat(src, span("warning", "I have been pacified. I cannot evolve..."))
- return
-
- if(!is_adult)
- if(amount_grown >= 10)
- make_adult()
- else
- to_chat(src, span("warning", "I am not ready to evolve yet..."))
- else
- to_chat(src, span("warning", "I have already evolved..."))
-
-
-/mob/living/simple_mob/slime/xenobio/verb/reproduce()
- set category = "Slime"
- set desc = "This will make you split into four new slimes."
-
- if(stat)
- to_chat(src, span("warning", "I must be conscious to do this..."))
- return
-
- if(harmless)
- to_chat(src, span("warning", "I have been pacified. I cannot reproduce..."))
- return
-
- if(is_adult)
- if(amount_grown >= 10)
- // Check if there's enough 'room' to split.
- var/list/nearby_things = orange(1, src)
- var/free_tiles = 0
- for(var/turf/T in nearby_things)
- var/free = TRUE
- if(T.density) // No walls.
- continue
- for(var/atom/movable/AM in T)
- if(AM.density)
- free = FALSE
- break
-
- if(free)
- free_tiles++
-
- if(free_tiles < 3) // Three free tiles are needed, as four slimes are made and the 4th tile is from the center tile that the current slime occupies.
- to_chat(src, span("warning", "It is too cramped here to reproduce..."))
- return
-
- var/list/babies = list()
- for(var/i = 1 to 4)
- babies.Add(make_new_slime())
-
- var/mob/living/simple_mob/slime/new_slime = pick(babies)
- new_slime.universal_speak = universal_speak
- if(src.mind)
- src.mind.transfer_to(new_slime)
- else
- new_slime.key = src.key
- qdel(src)
- else
- to_chat(src, span("warning", "I am not ready to reproduce yet..."))
- else
- to_chat(src, span("warning", "I have not evolved enough to reproduce yet..."))
-
-// Used when reproducing or dying.
-/mob/living/simple_mob/slime/xenobio/proc/make_new_slime(var/desired_type)
- var/t = src.type
- if(desired_type)
- t = desired_type
- if(prob(mutation_chance / 10))
- t = /mob/living/simple_mob/slime/xenobio/rainbow
- else if(prob(mutation_chance) && slime_mutation.len)
- t = slime_mutation[rand(1, slime_mutation.len)]
- var/mob/living/simple_mob/slime/xenobio/baby = new t(loc, src)
-
- // Handle 'inheriting' from parent slime.
- baby.mutation_chance = mutation_chance
- baby.power_charge = round(power_charge / 4)
-
- if(!istype(baby, /mob/living/simple_mob/slime/xenobio/rainbow))
- baby.unity = unity
- baby.faction = faction
- baby.friends = friends.Copy()
-
- step_away(baby, src)
- return baby
-
-/mob/living/simple_mob/slime/xenobio/get_description_interaction()
- var/list/results = list()
-
- if(!stat)
- results += "[desc_panel_image("slimebaton")]to stun the slime, if it's being bad."
-
- results += ..()
-
- return results
-
-/mob/living/simple_mob/slime/xenobio/get_description_info()
- var/list/lines = list()
- var/intro_line = "Slimes are generally the test subjects of Xenobiology, with different colors having different properties. \
- They can be extremely dangerous if not handled properly."
- lines.Add(intro_line)
- lines.Add(null) // To pad the line breaks.
-
- var/list/rewards = list()
- for(var/potential_color in slime_mutation)
- var/mob/living/simple_mob/slime/S = potential_color
- rewards.Add(initial(S.slime_color))
- var/reward_line = "This color of slime can mutate into [english_list(rewards)] colors, when it reproduces. It will do so when it has eatten enough."
- lines.Add(reward_line)
- lines.Add(null)
-
- lines.Add(description_info)
- return lines.Join("\n")
->>>>>>> 6c6644f... Rewrite examine() to pass a list around (#7038)
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/morph/morph.dm b/code/modules/mob/living/simple_mob/subtypes/vore/morph/morph.dm
index 376f18354e..f5004db3c1 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/morph/morph.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/morph/morph.dm
@@ -69,12 +69,11 @@
/mob/living/simple_mob/vore/hostile/morph/examine(mob/user)
if(morphed)
- form.examine(user)
- if(get_dist(user,src)<=3)
- to_chat(user, "It doesn't look quite right...")
+ . = form.examine(user)
+ if(get_dist(user, src) <= 3)
+ . += "[form] doesn't look quite right..."
else
- ..()
- return
+ . = ..()
/mob/living/simple_mob/vore/hostile/morph/ShiftClickOn(atom/movable/A)
if(Adjacent(A))
diff --git a/code/modules/power/lightswitch_vr.dm b/code/modules/power/lightswitch_vr.dm
index db1881c4b3..409110331f 100644
--- a/code/modules/power/lightswitch_vr.dm
+++ b/code/modules/power/lightswitch_vr.dm
@@ -68,15 +68,15 @@
pixel_y = (dir & 3) ? (dir == NORTH ? -y_offset : y_offset) : 0
/obj/structure/construction/examine(mob/user)
- if(!..(user, 2))
- return
- switch(stage)
- if(FRAME_UNFASTENED)
- to_chat(user, "It's an empty frame.")
- if(FRAME_FASTENED)
- to_chat(user, "It's fixed to the wall.")
- if(FRAME_WIRED)
- to_chat(user, "It's wired.")
+ . = ..()
+ if(get_dist(user, src) <= 2)
+ switch(stage)
+ if(FRAME_UNFASTENED)
+ . += "It's an empty frame."
+ if(FRAME_FASTENED)
+ . += "It's fixed to the wall."
+ if(FRAME_WIRED)
+ . += "It's wired."
/obj/structure/construction/update_icon()
icon_state = "[base_icon][stage]"
diff --git a/code/modules/power/port_gen_vr.dm b/code/modules/power/port_gen_vr.dm
index 3321d47db1..5cdd86b047 100644
--- a/code/modules/power/port_gen_vr.dm
+++ b/code/modules/power/port_gen_vr.dm
@@ -89,7 +89,7 @@
/obj/machinery/power/rtg/examine(mob/user)
. = ..()
if(Adjacent(user, src) || isobserver(user))
- to_chat(user, "The status display reads: Power generation now at [power_gen*0.001]kW.")
+ . += "The status display reads: Power generation now at [power_gen*0.001]kW."
/obj/machinery/power/rtg/attackby(obj/item/I, mob/user, params)
if(default_deconstruction_screwdriver(user, I))
diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator_vr.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator_vr.dm
index 8a0dbeae4d..bd9ab4d1c3 100644
--- a/code/modules/projectiles/guns/energy/kinetic_accelerator_vr.dm
+++ b/code/modules/projectiles/guns/energy/kinetic_accelerator_vr.dm
@@ -22,12 +22,12 @@
var/empty_state = "kineticgun_empty"
/obj/item/weapon/gun/energy/kinetic_accelerator/examine(mob/user)
- if(..(user, 1))
- if(max_mod_capacity)
- to_chat(user, "[get_remaining_mod_capacity()]% mod capacity remaining.")
- for(var/A in get_modkits())
- var/obj/item/borg/upgrade/modkit/M = A
- to_chat(user, "There is a [M.name] mod installed, using [M.cost]% capacity.")
+ . = ..()
+ if(Adjacent(user) && max_mod_capacity)
+ . += "[get_remaining_mod_capacity()]% mod capacity remaining."
+ for(var/A in get_modkits())
+ var/obj/item/borg/upgrade/modkit/M = A
+ . += "There is a [M.name] mod installed, using [M.cost]% capacity."
/obj/item/weapon/gun/energy/kinetic_accelerator/attackby(obj/item/A, mob/user)
if(istype(A, /obj/item/weapon/tool/crowbar))
@@ -164,8 +164,9 @@
var/modifier = 1 //For use in any mod kit that has numerical modifiers
/obj/item/borg/upgrade/modkit/examine(mob/user)
- if(..(user, 1))
- to_chat(user, "Occupies [cost]% of mod capacity.")
+ . = ..()
+ if(Adjacent(user))
+ . += "Occupies [cost]% of mod capacity."
/obj/item/borg/upgrade/modkit/attackby(obj/item/A, mob/user)
if(istype(A, /obj/item/weapon/gun/energy/kinetic_accelerator) && !issilicon(user))
diff --git a/code/modules/resleeving/infomorph.dm b/code/modules/resleeving/infomorph.dm
index e734e19108..45c5d4193b 100644
--- a/code/modules/resleeving/infomorph.dm
+++ b/code/modules/resleeving/infomorph.dm
@@ -550,24 +550,22 @@ var/global/list/default_infomorph_software = list()
return 1
/mob/living/silicon/infomorph/examine(mob/user)
- ..(user, infix = ", personal AI")
+ . = ..(user, infix = ", personal AI")
- var/msg = ""
switch(src.stat)
if(CONSCIOUS)
- if(!src.client) msg += "\nIt appears to be in stand-by mode." //afk
- if(UNCONSCIOUS) msg += "\nIt doesn't seem to be responding."
- if(DEAD) msg += "\nIt looks completely unsalvageable."
- msg += "\n*---------*"
+ if(!src.client) . += "It appears to be in stand-by mode." //afk
+ if(UNCONSCIOUS) . += "It doesn't seem to be responding."
+ if(DEAD) . += "It looks completely unsalvageable."
+ . += "*---------*"
- if(print_flavor_text()) msg += "\n[print_flavor_text()]\n"
+ if(print_flavor_text())
+ . += "[print_flavor_text()]"
if (pose)
if( findtext(pose,".",length(pose)) == 0 && findtext(pose,"!",length(pose)) == 0 && findtext(pose,"?",length(pose)) == 0 )
pose = addtext(pose,".") //Makes sure all emotes end with a period.
- msg += "\nIt is [pose]"
-
- to_chat(user,msg)
+ . += "It is [pose]"
/mob/living/silicon/infomorph/Life()
//We're dead or EMP'd or something.
diff --git a/code/modules/shieldgen/handheld_defuser.dm b/code/modules/shieldgen/handheld_defuser.dm
index 327dfc0f3d..471aa90ef6 100644
--- a/code/modules/shieldgen/handheld_defuser.dm
+++ b/code/modules/shieldgen/handheld_defuser.dm
@@ -54,10 +54,5 @@
/obj/item/weapon/shield_diffuser/examine(mob/user)
. = ..()
-<<<<<<< HEAD
- to_chat(user, "The charge meter reads [cell ? cell.percent() : 0]%")
- to_chat(user, "It is [enabled ? "enabled" : "disabled"].")
-=======
. += "The charge meter reads [cell ? cell.percent() : 0]%"
. += "It is [enabled ? "enabled" : "disabled"]."
->>>>>>> 6c6644f... Rewrite examine() to pass a list around (#7038)
diff --git a/code/modules/shieldgen/shield_diffuser.dm b/code/modules/shieldgen/shield_diffuser.dm
index 282b09f55e..f8d9328402 100644
--- a/code/modules/shieldgen/shield_diffuser.dm
+++ b/code/modules/shieldgen/shield_diffuser.dm
@@ -91,8 +91,4 @@
. = ..()
. += "It is [enabled ? "enabled" : "disabled"]."
if(alarm)
-<<<<<<< HEAD
- to_chat(user, "A red LED labeled \"Proximity Alarm\" is blinking on the control panel.")
-=======
. += "A red LED labeled \"Proximity Alarm\" is blinking on the control panel."
->>>>>>> 6c6644f... Rewrite examine() to pass a list around (#7038)
diff --git a/code/modules/telesci/telesci_computer.dm b/code/modules/telesci/telesci_computer.dm
index db5459404d..9f1a34760e 100644
--- a/code/modules/telesci/telesci_computer.dm
+++ b/code/modules/telesci/telesci_computer.dm
@@ -38,8 +38,9 @@
return ..()
/obj/machinery/computer/telescience/examine(mob/user)
- ..()
- to_chat(user, "There are [crystals.len ? crystals.len : "no"] bluespace crystal\s in the crystal slots.")
+ . = ..()
+ if(Adjacent(user))
+ . += "There are [crystals.len ? crystals.len : "no"] bluespace crystal\s in the crystal slots."
/obj/machinery/computer/telescience/Initialize()
. = ..()
diff --git a/code/modules/vehicles/Securitrain_vr.dm b/code/modules/vehicles/Securitrain_vr.dm
index e036a50ada..bb8b0c66f0 100644
--- a/code/modules/vehicles/Securitrain_vr.dm
+++ b/code/modules/vehicles/Securitrain_vr.dm
@@ -207,14 +207,11 @@
return ..()
/obj/vehicle/train/security/engine/examine(mob/user)
- if(!..(user, 1))
- return
-
- if(!istype(usr, /mob/living/carbon/human))
- return
-
- to_chat(user, "The power light is [on ? "on" : "off"].\nThere are[key ? "" : " no"] keys in the ignition.")
- to_chat(user, "The charge meter reads [cell? round(cell.percent(), 0.01) : 0]%")
+ . = ..()
+ if(Adjacent(user))
+ . += "The power light is [on ? "on" : "off"]."
+ . += "There are[key ? "" : " no"] keys in the ignition."
+ . += "The charge meter reads [cell? round(cell.percent(), 0.01) : 0]%"
/obj/vehicle/train/security/engine/verb/start_engine()
set name = "Start engine"
diff --git a/code/modules/vehicles/rover_vr.dm b/code/modules/vehicles/rover_vr.dm
index 635bc1faa3..aa2c29744c 100644
--- a/code/modules/vehicles/rover_vr.dm
+++ b/code/modules/vehicles/rover_vr.dm
@@ -205,14 +205,11 @@
return ..()
/obj/vehicle/train/rover/engine/examine(mob/user)
- if(!..(user, 1))
- return
-
- if(!istype(usr, /mob/living/carbon/human))
- return
-
- to_chat(user, "The power light is [on ? "on" : "off"].\nThere are[key ? "" : " no"] keys in the ignition.")
- to_chat(user, "The charge meter reads [cell? round(cell.percent(), 0.01) : 0]%")
+ . = ..()
+ if(Adjacent(user))
+ . += "The power light is [on ? "on" : "off"]."
+ . += "There are[key ? "" : " no"] keys in the ignition."
+ . += "The charge meter reads [cell? round(cell.percent(), 0.01) : 0]%"
/obj/vehicle/train/rover/engine/verb/start_engine()
set name = "Start engine"
diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm
index 0947d6d30a..9c1e91481a 100644
--- a/code/modules/vore/eating/living_vr.dm
+++ b/code/modules/vore/eating/living_vr.dm
@@ -764,10 +764,10 @@
set desc = "Switch sharp/fuzzy scaling for current mob."
appearance_flags ^= PIXEL_SCALE
-/mob/living/examine(mob/user, distance, infix, suffix)
- . = ..(user, distance, infix, suffix)
+/mob/living/examine(mob/user, infix, suffix)
+ . = ..()
if(showvoreprefs)
- to_chat(user, "\[Mechanical Vore Preferences\]")
+ . += "\[Mechanical Vore Preferences\]"
/mob/living/Topic(href, href_list) //Can't find any instances of Topic() being overridden by /mob/living in polaris' base code, even though /mob/living/carbon/human's Topic() has a ..() call
if(href_list["vore_prefs"])
diff --git a/code/modules/vore/eating/silicon_vr.dm b/code/modules/vore/eating/silicon_vr.dm
index ba9e279043..37ed30e8c6 100644
--- a/code/modules/vore/eating/silicon_vr.dm
+++ b/code/modules/vore/eating/silicon_vr.dm
@@ -98,13 +98,9 @@
//This can go here with all the references.
/obj/effect/overlay/aiholo/examine(mob/user)
- . = ..(user)
-
- var/msg = "\n"
+ . = ..()
//If you need an ooc_notes copy paste, this is NOT the one to use.
var/ooc_notes = master.ooc_notes
if(ooc_notes)
- msg += "OOC Notes: \[View\]\n"
-
- to_chat(user,msg)
+ . += "OOC Notes: \[View\]"
diff --git a/code/modules/vore/resizing/holder_micro_vr.dm b/code/modules/vore/resizing/holder_micro_vr.dm
index b797ef4f5f..3a4b291940 100644
--- a/code/modules/vore/resizing/holder_micro_vr.dm
+++ b/code/modules/vore/resizing/holder_micro_vr.dm
@@ -11,8 +11,9 @@
pixel_y = 0 // Override value from parent.
/obj/item/weapon/holder/micro/examine(mob/user)
+ . = list()
for(var/mob/living/M in contents)
- M.examine(user)
+ . += M.examine(user)
/obj/item/weapon/holder/MouseDrop(mob/M)
..()
diff --git a/code/modules/vore/resizing/sizegun_vr.dm b/code/modules/vore/resizing/sizegun_vr.dm
index 491ffdf7de..7fdd357d7f 100644
--- a/code/modules/vore/resizing/sizegun_vr.dm
+++ b/code/modules/vore/resizing/sizegun_vr.dm
@@ -49,9 +49,8 @@
to_chat(usr, "You set the size to [size_select]%")
/obj/item/weapon/gun/energy/sizegun/examine(mob/user)
- ..()
- var/size_examine = (size_set_to*100)
- to_chat(user, "It is currently set at [size_examine]%")
+ . = ..()
+ . += "It is currently set at [size_set_to*100]%"
//
// Beams for size gun