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