Refactors the examine proc to return a list of strings (#12280)

This commit is contained in:
farie82
2019-09-25 22:05:01 -07:00
committed by variableundefined
parent 40a4cd1b75
commit 0e8ddb2afe
210 changed files with 808 additions and 830 deletions
+6 -6
View File
@@ -22,18 +22,18 @@
qdel(src)
/obj/machinery/arcade/examine(mob/user)
..(user)
. = ..()
if(freeplay)
to_chat(user, "Someone enabled freeplay on this machine!")
. += "Someone enabled freeplay on this machine!"
else
if(token_price)
to_chat(user, "\The [src.name] costs [token_price] credits per play.")
. += "\The [src.name] costs [token_price] credits per play."
if(!tokens)
to_chat(user, "\The [src.name] has no available play credits. Better feed the machine!")
. += "\The [src.name] has no available play credits. Better feed the machine!"
else if(tokens == 1)
to_chat(user, "\The [src.name] has only 1 play credit left!")
. += "\The [src.name] has only 1 play credit left!"
else
to_chat(user, "\The [src.name] has [tokens] play credits!")
. += "\The [src.name] has [tokens] play credits!"
/obj/machinery/arcade/attack_hand(mob/user as mob)
if(..())
+3 -3
View File
@@ -128,12 +128,12 @@
STOP_PROCESSING(SSobj, src)
/obj/item/assembly/examine(mob/user)
..()
. = ..()
if(in_range(src, user) || loc == user)
if(secured)
to_chat(user, "[src] is ready!")
. += "[src] is ready!"
else
to_chat(user, "[src] can be attached!")
. += "[src] can be attached!"
/obj/item/assembly/attack_self(mob/user)
if(!user)
+2 -2
View File
@@ -13,8 +13,8 @@
origin_tech = "materials=1;engineering=1"
/obj/item/onetankbomb/examine(mob/user)
..(user)
user.examinate(bombtank)
. = ..()
. += bombtank.examine(user)
/obj/item/onetankbomb/update_icon()
if(bombtank)
+3 -3
View File
@@ -70,12 +70,12 @@
/obj/item/assembly_holder/examine(mob/user)
..(user)
. = ..()
if(in_range(src, user) || loc == user)
if(secured)
to_chat(user, "[src] is ready!")
. += "[src] is ready!"
else
to_chat(user, "[src] can be attached!")
. += "[src] can be attached!"
/obj/item/assembly_holder/HasProximity(atom/movable/AM)
+2 -2
View File
@@ -29,8 +29,8 @@
return "The assembly is [secured ? "secure" : "not secure"]. The infrared trigger is [on ? "on" : "off"]."
/obj/item/assembly/infra/examine(mob/user)
..()
to_chat(user, describe())
. = ..()
. += describe()
/obj/item/assembly/infra/activate()
if(!..())
+2 -2
View File
@@ -9,9 +9,9 @@
bomb_name = "contact mine"
/obj/item/assembly/mousetrap/examine(mob/user)
..(user)
. = ..()
if(armed)
to_chat(user, "It looks like it's armed.")
. += "It looks like it's armed."
/obj/item/assembly/mousetrap/activate()
if(..())
@@ -121,8 +121,8 @@
return ..()
/obj/machinery/door/unpowered/hotel_door/examine(mob/user)
..()
to_chat(user, "This room is currently [occupant ? "" : "un"]occupied.")
. = ..()
. += "This room is currently [occupant ? "" : "un"]occupied."
/obj/machinery/door/unpowered/hotel_door/allowed(mob/living/carbon/user)
for(var/obj/item/card/hotel_card/C in user.get_all_slots())
+7 -7
View File
@@ -710,19 +710,19 @@ BLIND // can't see anything
return FALSE
/obj/item/clothing/under/examine(mob/user)
..(user)
switch(src.sensor_mode)
. = ..()
switch(sensor_mode)
if(0)
to_chat(user, "Its sensors appear to be disabled.")
. += "Its sensors appear to be disabled."
if(1)
to_chat(user, "Its binary life sensors appear to be enabled.")
. += "Its binary life sensors appear to be enabled."
if(2)
to_chat(user, "Its vital tracker appears to be enabled.")
. += "Its vital tracker appears to be enabled."
if(3)
to_chat(user, "Its vital tracker and tracking beacon appear to be enabled.")
. += "Its vital tracker and tracking beacon appear to be enabled."
if(accessories.len)
for(var/obj/item/clothing/accessory/A in accessories)
to_chat(user, "\A [A] is attached to it.")
. += "\A [A] is attached to it."
/obj/item/clothing/under/verb/rollsuit()
+3 -3
View File
@@ -21,11 +21,11 @@
icon_state = initial(icon_state)
/obj/item/clothing/gloves/ring/examine(mob/user)
..(user)
. = ..()
if(!fluff_material)
to_chat(user, "This one is made of [material].")
. += "This one is made of [material]."
if(stud)
to_chat(user, "It is adorned with a single gem.")
. += "It is adorned with a single gem."
/obj/item/clothing/gloves/ring/attackby(obj/item/I as obj, mob/user as mob, params)
if(istype(I, /obj/item/stack/sheet/mineral/diamond))
+2 -2
View File
@@ -33,8 +33,8 @@
return flags & NOSLIP
/obj/item/clothing/shoes/magboots/examine(mob/user)
..(user)
to_chat(user, "Its [magpulse_name] appears to be [magpulse ? "enabled" : "disabled"].")
. = ..()
. += "Its [magpulse_name] appears to be [magpulse ? "enabled" : "disabled"]."
/obj/item/clothing/shoes/magboots/advance
+2 -2
View File
@@ -233,6 +233,6 @@
flags &= ~NODROP
/obj/item/clothing/shoes/magboots/vox/examine(mob/user)
..(user)
. = ..()
if(magpulse)
to_chat(user, "It would be hard to take these off without relaxing your grip first.")//theoretically this message should only be seen by the wearer when the claws are equipped.
. += "It would be hard to take these off without relaxing your grip first."//theoretically this message should only be seen by the wearer when the claws are equipped.
+2 -2
View File
@@ -215,7 +215,7 @@ var/global/list/breach_burn_descriptors = list(
..()
/obj/item/clothing/suit/space/examine(mob/user)
..(user)
. = ..()
if(can_breach && breaches && breaches.len)
for(var/datum/breach/B in breaches)
to_chat(user, "<span class='danger'>It has \a [B.descriptor].</span>")
. += "<span class='danger'>It has \a [B.descriptor].</span>"
+3 -2
View File
@@ -26,8 +26,9 @@
to_chat(user, "<span class='notice'>User scanned as [camera.c_tag]. Camera activated.</span>")
/obj/item/clothing/head/helmet/space/hardsuit/ert/examine(mob/user)
if(..(user, 1) && has_camera)
to_chat(user, "This helmet has a built-in camera. It's [camera ? "" : "in"]active.")
. = ..()
if(in_range(user, src) && has_camera)
. += "This helmet has a built-in camera. It's [camera ? "" : "in"]active."
/obj/item/clothing/suit/space/hardsuit/ert
name = "emergency response team suit"
@@ -55,15 +55,15 @@
var/list/stat_rig_module/stat_modules = new()
/obj/item/rig_module/examine()
..()
/obj/item/rig_module/examine(mob/user)
. = ..()
switch(damage)
if(0)
to_chat(usr, "It is undamaged.")
. += "It is undamaged."
if(1)
to_chat(usr, "It is badly damaged.")
. += "It is badly damaged."
if(2)
to_chat(usr, "It is almost completely destroyed.")
. += "It is almost completely destroyed."
/obj/item/rig_module/attackby(obj/item/W as obj, mob/user as mob)
+7 -7
View File
@@ -84,18 +84,18 @@
var/datum/wires/rig/wires
var/datum/effect_system/spark_spread/spark_system
/obj/item/rig/examine()
to_chat(usr, "This is [bicon(src)][src.name].")
to_chat(usr, "[src.desc]")
/obj/item/rig/examine(mob/user)
. = list("This is [src].")
. += "[desc]"
if(wearer)
for(var/obj/item/piece in list(helmet,gloves,chest,boots))
if(!piece || piece.loc != wearer)
continue
to_chat(usr, "[bicon(piece)] \The [piece] [piece.gender == PLURAL ? "are" : "is"] deployed.")
. += "[bicon(piece)] \The [piece] [piece.gender == PLURAL ? "are" : "is"] deployed."
if(src.loc == usr)
to_chat(usr, "The maintenance panel is [open ? "open" : "closed"].")
to_chat(usr, "Hardsuit systems are [offline ? "<font color='red'>offline</font>" : "<font color='green'>online</font>"].")
if(loc == usr)
. += "The maintenance panel is [open ? "open" : "closed"]."
. += "Hardsuit systems are [offline ? "<font color='red'>offline</font>" : "<font color='green'>online</font>"]."
/obj/item/rig/get_cell()
return cell
@@ -665,9 +665,9 @@
return access_id ? access_id.GetAccess() : ..()
/obj/item/clothing/accessory/petcollar/examine(mob/user)
..()
. = ..()
if(access_id)
to_chat(user, "There is [bicon(access_id)] \a [access_id] clipped onto it.")
. += "There is [bicon(access_id)] \a [access_id] clipped onto it."
/obj/item/clothing/accessory/petcollar/equipped(mob/living/simple_animal/user)
if(istype(user))
@@ -87,11 +87,11 @@
..()
/obj/item/clothing/accessory/holster/examine(mob/user)
..(user)
. = ..()
if(holstered)
to_chat(user, "A [holstered] is holstered here.")
. += "A [holstered] is holstered here."
else
to_chat(user, "It is empty.")
. += "It is empty."
/obj/item/clothing/accessory/holster/on_attached(obj/item/clothing/under/S, mob/user as mob)
..()
@@ -15,8 +15,8 @@
item_color = "plasmaman"
/obj/item/clothing/under/plasmaman/examine(mob/user)
..()
to_chat(user, "<span class='notice'>There are [extinguishes_left] extinguisher charges left in this suit.</span>")
. = ..()
. += "<span class='notice'>There are [extinguishes_left] extinguisher charges left in this suit.</span>"
/obj/item/clothing/under/plasmaman/proc/Extinguish(mob/living/carbon/human/H)
if(!istype(H))
+1 -1
View File
@@ -20,7 +20,7 @@
/obj/effect/countdown/examine(mob/user)
. = ..()
to_chat(user, "This countdown is displaying: [displayed_text]")
. += "This countdown is displaying: [displayed_text]"
/obj/effect/countdown/proc/attach(atom/A)
attached_to = A
+2 -2
View File
@@ -423,7 +423,7 @@
color = "#ffffff"
/obj/structure/spacevine/examine(mob/user)
..()
. = ..()
var/text = "This one is a"
if(mutations.len)
for(var/A in mutations)
@@ -432,7 +432,7 @@
else
text += " normal"
text += " vine."
to_chat(user, text)
. += text
/obj/structure/spacevine/proc/wither()
for(var/datum/spacevine_mutation/SM in mutations)
+2 -3
View File
@@ -369,7 +369,7 @@
////////////////////////////// Feel free to try cleaning it up if you think of a better way to do it.
/obj/machinery/fishtank/examine(mob/user)
..(user)
. = ..()
var/examine_message = ""
//Approximate water level
@@ -474,8 +474,7 @@
//Finally, report the full examine_message constructed from the above reports
to_chat(user, "<span class='notice'>[examine_message]</span>")
return examine_message
. += "<span class='notice'>[examine_message]</span>"
//////////////////////////////
// ATACK PROCS //
+12 -12
View File
@@ -108,19 +108,19 @@
return FALSE
/obj/item/reagent_containers/food/drinks/examine(mob/user)
if(!..(user, 1))
return
if(!reagents || reagents.total_volume == 0)
to_chat(user, "<span class='notice'> \The [src] is empty!</span>")
else if(reagents.total_volume <= volume/4)
to_chat(user, "<span class='notice'> \The [src] is almost empty!</span>")
else if(reagents.total_volume <= volume*0.66)
to_chat(user, "<span class='notice'> \The [src] is half full!</span>")// We're all optimistic, right?!
. = ..()
if(in_range(user, src))
if(!reagents || reagents.total_volume == 0)
. += "<span class='notice'> \The [src] is empty!</span>"
else if(reagents.total_volume <= volume/4)
. += "<span class='notice'> \The [src] is almost empty!</span>"
else if(reagents.total_volume <= volume*0.66)
. += "<span class='notice'> \The [src] is half full!</span>"// We're all optimistic, right?!
else if(reagents.total_volume <= volume*0.90)
to_chat(user, "<span class='notice'> \The [src] is almost full!</span>")
else
to_chat(user, "<span class='notice'> \The [src] is full!</span>")
else if(reagents.total_volume <= volume*0.90)
. += "<span class='notice'> \The [src] is almost full!</span>"
else
. += "<span class='notice'> \The [src] is full!</span>"
////////////////////////////////////////////////////////////////////////////////
/// Drinks. END
@@ -387,10 +387,10 @@
return ..()
/obj/item/reagent_containers/food/snacks/customizable/examine(mob/user)
..(user)
. = ..()
if(LAZYLEN(ingredients))
var/whatsinside = pick(ingredients)
to_chat(user, "<span class='notice'> You think you can see [whatsinside] in there.</span>")
. += "<span class='notice'> You think you can see [whatsinside] in there.</span>"
/obj/item/reagent_containers/food/snacks/customizable/proc/newname()
+10 -10
View File
@@ -71,15 +71,15 @@
return
/obj/item/reagent_containers/food/snacks/examine(mob/user)
if(..(user, 0))
if(bitecount==0)
return
else if(bitecount==1)
to_chat(user, "<span class='notice'>[src] was bitten by someone!</span>")
else if(bitecount<=3)
to_chat(user, "<span class='notice'>[src] was bitten [bitecount] times!</span>")
else
to_chat(user, "<span class='notice'>[src] was bitten multiple times!</span>")
. = ..()
if(in_range(user, src))
if(bitecount > 0)
if(bitecount==1)
. += "<span class='notice'>[src] was bitten by someone!</span>"
else if(bitecount<=3)
. += "<span class='notice'>[src] was bitten [bitecount] times!</span>"
else
. += "<span class='notice'>[src] was bitten multiple times!</span>"
/obj/item/reagent_containers/food/snacks/attackby(obj/item/W, mob/user, params)
@@ -180,7 +180,7 @@
/obj/item/reagent_containers/food/snacks/sliceable/examine(mob/user)
. = ..()
to_chat(user, "<span class='notice'>Alt-click to put something small inside.</span>")
. += "<span class='notice'>Alt-click to put something small inside.</span>"
/obj/item/reagent_containers/food/snacks/sliceable/AltClick(mob/user)
var/obj/item/I = user.get_active_hand()
+5 -5
View File
@@ -39,8 +39,8 @@
..()
/obj/item/deck/examine(mob/user)
..()
to_chat(user,"<span class='notice'>It contains [cards.len ? cards.len : "no"] cards</span>")
. = ..()
. +="<span class='notice'>It contains [cards.len ? cards.len : "no"] cards</span>"
/obj/item/deck/attack_hand(mob/user as mob)
draw_card(user)
@@ -313,11 +313,11 @@
user.visible_message("<span class='notice'>[user] [concealed ? "conceals" : "reveals"] their hand.</span>")
/obj/item/cardhand/examine(mob/user)
..(user)
. = ..()
if((!concealed) && cards.len)
to_chat(user,"<span class='notice'>It contains:</span>")
. +="<span class='notice'>It contains:</span>"
for(var/datum/playingcard/P in cards)
to_chat(user,"<span class='notice'>the [P.name].</span>")
. +="<span class='notice'>the [P.name].</span>"
// Datum action here
@@ -127,25 +127,25 @@
/obj/structure/beebox/examine(mob/user)
..()
. = ..()
if(!queen_bee)
to_chat(user, "<span class='warning'>There is no queen bee! There won't bee any honeycomb without a queen!</span>")
. += "<span class='warning'>There is no queen bee! There won't bee any honeycomb without a queen!</span>"
var/half_bee = get_max_bees()*0.5
if(half_bee && (bees.len >= half_bee))
to_chat(user, "<span class='notice'>This place is a BUZZ with activity... there are lots of bees!</span>")
. += "<span class='notice'>This place is a BUZZ with activity... there are lots of bees!</span>"
to_chat(user, "<span class='notice'>[bee_resources]/100 resource supply.</span>")
to_chat(user, "<span class='notice'>[bee_resources]% towards a new honeycomb.</span>")
to_chat(user, "<span class='notice'>[bee_resources*2]% towards a new bee.</span>")
. += "<span class='notice'>[bee_resources]/100 resource supply.</span>"
. += "<span class='notice'>[bee_resources]% towards a new honeycomb.</span>"
. += "<span class='notice'>[bee_resources*2]% towards a new bee.</span>"
if(honeycombs.len)
var/plural = honeycombs.len > 1
to_chat(user, "<span class='notice'>There [plural? "are" : "is"] [honeycombs.len] uncollected honeycomb[plural ? "s":""] in the apiary.</span>")
. += "<span class='notice'>There [plural? "are" : "is"] [honeycombs.len] uncollected honeycomb[plural ? "s":""] in the apiary.</span>"
if(honeycombs.len >= get_max_honeycomb())
to_chat(user, "<span class='warning'>there's no room for more honeycomb!</span>")
. += "<span class='warning'>there's no room for more honeycomb!</span>"
/obj/structure/beebox/attackby(obj/item/I, mob/user, params)
@@ -17,7 +17,7 @@
/obj/structure/fermenting_barrel/examine(mob/user)
. = ..()
to_chat(user, "<span class='notice'>It is currently [open ? "open, letting you pour liquids in." : "closed, letting you draw liquids from the tap."] </span>")
. += "<span class='notice'>It is currently [open ? "open, letting you pour liquids in." : "closed, letting you draw liquids from the tap."] </span>"
/obj/structure/fermenting_barrel/proc/makeWine(obj/item/reagent_containers/food/snacks/grown/G)
if(G.reagents)
+2 -2
View File
@@ -479,8 +479,8 @@
to_chat(user, "<span class='notice'>You flip the write-protect tab to [read_only ? "protected" : "unprotected"].</span>")
/obj/item/disk/plantgene/examine(mob/user)
..()
to_chat(user, "The write-protect tab is set to [read_only ? "protected" : "unprotected"].")
. = ..()
. += "The write-protect tab is set to [read_only ? "protected" : "unprotected"]."
/*
+2 -2
View File
@@ -55,11 +55,11 @@
return 0
/obj/item/reagent_containers/food/snacks/grown/examine(user)
..()
. = ..()
if(seed)
for(var/datum/plant_gene/trait/T in seed.genes)
if(T.examine_line)
to_chat(user, T.examine_line)
. += T.examine_line
/obj/item/reagent_containers/food/snacks/grown/attackby(obj/item/O, mob/user, params)
..()
+13 -13
View File
@@ -339,32 +339,32 @@
/obj/machinery/hydroponics/examine(user)
..()
. = ..()
if(myseed)
to_chat(user, "<span class='info'>It has <span class='name'>[myseed.plantname]</span> planted.</span>")
. += "<span class='info'>It has <span class='name'>[myseed.plantname]</span> planted.</span>"
if (dead)
to_chat(user, "<span class='warning'>It's dead!</span>")
. += "<span class='warning'>It's dead!</span>"
else if (harvest)
to_chat(user, "<span class='info'>It's ready to harvest.</span>")
. += "<span class='info'>It's ready to harvest.</span>"
else if (plant_health <= (myseed.endurance / 2))
to_chat(user, "<span class='warning'>It looks unhealthy.</span>")
. += "<span class='warning'>It looks unhealthy.</span>"
else
to_chat(user, "<span class='info'>[src] is empty.</span>")
. += "<span class='info'>[src] is empty.</span>"
if(!self_sustaining)
to_chat(user, "<span class='info'>Water: [waterlevel]/[maxwater]</span>")
to_chat(user, "<span class='info'>Nutrient: [nutrilevel]/[maxnutri]</span>")
. += "<span class='info'>Water: [waterlevel]/[maxwater]</span>"
. += "<span class='info'>Nutrient: [nutrilevel]/[maxnutri]</span>"
if(self_sufficiency_progress > 0)
var/percent_progress = round(self_sufficiency_progress * 100 / self_sufficiency_req)
to_chat(user, "<span class='info'>Treatment for self-sustenance are [percent_progress]% complete.</span>")
. += "<span class='info'>Treatment for self-sustenance are [percent_progress]% complete.</span>"
else
to_chat(user, "<span class='info'>It doesn't require any water or nutrients.</span>")
. += "<span class='info'>It doesn't require any water or nutrients.</span>"
if(weedlevel >= 5)
to_chat(user, "<span class='warning'>[src] is filled with weeds!</span>")
. += "<span class='warning'>[src] is filled with weeds!</span>"
if(pestlevel >= 5)
to_chat(user, "<span class='warning'>[src] is filled with tiny worms!</span>")
to_chat(user, "") // Empty line for readability.
. += "<span class='warning'>[src] is filled with tiny worms!</span>"
. += "" // Empty line for readability.
/obj/machinery/hydroponics/proc/weedinvasion() // If a weed growth is sufficient, this happens.
@@ -32,12 +32,12 @@
return ..()
/obj/item/twohanded/kinetic_crusher/examine(mob/living/user)
..()
to_chat(user, "<span class='notice'>Mark a large creature with the destabilizing force, then hit them in melee to do <b>[force + detonation_damage]</b> damage.</span>")
to_chat(user, "<span class='notice'>Does <b>[force + detonation_damage + backstab_bonus]</b> damage if the target is backstabbed, instead of <b>[force + detonation_damage]</b>.</span>")
. = ..()
. += "<span class='notice'>Mark a large creature with the destabilizing force, then hit them in melee to do <b>[force + detonation_damage]</b> damage.</span>"
. += "<span class='notice'>Does <b>[force + detonation_damage + backstab_bonus]</b> damage if the target is backstabbed, instead of <b>[force + detonation_damage]</b>.</span>"
for(var/t in trophies)
var/obj/item/crusher_trophy/T = t
to_chat(user, "<span class='notice'>It has \a [T] attached, which causes [T.effect_desc()].</span>")
. += "<span class='notice'>It has \a [T] attached, which causes [T.effect_desc()].</span>"
/obj/item/twohanded/kinetic_crusher/attackby(obj/item/I, mob/living/user)
if(iscrowbar(I))
@@ -191,8 +191,8 @@
var/denied_type = /obj/item/crusher_trophy
/obj/item/crusher_trophy/examine(mob/living/user)
..()
to_chat(user, "<span class='notice'>Causes [effect_desc()] when attached to a kinetic crusher.</span>")
. = ..()
. += "<span class='notice'>Causes [effect_desc()] when attached to a kinetic crusher.</span>"
/obj/item/crusher_trophy/proc/effect_desc()
return "errors"
@@ -59,11 +59,11 @@
malfunctioning = 1
/obj/item/lazarus_injector/examine(mob/user)
..(user)
. = ..()
if(!loaded)
to_chat(user, "<span class='info'>[src] is empty.</span>")
. += "<span class='info'>[src] is empty.</span>"
if(malfunctioning)
to_chat(user, "<span class='info'>The display on [src] seems to be flickering.</span>")
. += "<span class='info'>The display on [src] seems to be flickering.</span>"
/*********************Mob Capsule*************************/
@@ -35,9 +35,9 @@ GLOBAL_LIST_INIT(marker_beacon_colors, list(
update_icon()
/obj/item/stack/marker_beacon/examine(mob/user)
..()
to_chat(user, "<span class='notice'>Use in-hand to place a [singular_name].</span>")
to_chat(user, "<span class='notice'>Alt-click to select a color. Current color is [picked_color].</span>")
. = ..()
. += "<span class='notice'>Use in-hand to place a [singular_name].</span>"
. += "<span class='notice'>Alt-click to select a color. Current color is [picked_color].</span>"
/obj/item/stack/marker_beacon/update_icon()
icon_state = "[initial(icon_state)][lowertext(picked_color)]"
@@ -92,8 +92,8 @@ GLOBAL_LIST_INIT(marker_beacon_colors, list(
qdel(src)
/obj/structure/marker_beacon/examine(mob/user)
..()
to_chat(user, "<span class='notice'>Alt-click to select a color. Current color is [picked_color].</span>")
. = ..()
. += "<span class='notice'>Alt-click to select a color. Current color is [picked_color].</span>"
/obj/structure/marker_beacon/update_icon()
while(!picked_color || !GLOB.marker_beacon_colors[picked_color])
@@ -27,8 +27,8 @@
/obj/item/survivalcapsule/examine(mob/user)
. = ..()
get_template()
to_chat(user, "This capsule has the [template.name] stored.")
to_chat(user, template.description)
. += "This capsule has the [template.name] stored."
. += template.description
/obj/item/survivalcapsule/attack_self()
// Can't grab when capsule is New() because templates aren't loaded then
+2 -2
View File
@@ -14,8 +14,8 @@ GLOBAL_LIST_EMPTY(total_extraction_beacons)
var/max_force_fulton = MOVE_FORCE_STRONG
/obj/item/extraction_pack/examine(mob/user)
..()
to_chat(user, "It has [uses_left] use\s remaining.")
. = ..()
. += "It has [uses_left] use\s remaining."
/obj/item/extraction_pack/attack_self(mob/user)
var/list/possible_beacons = list()
@@ -27,8 +27,8 @@
var/friendly_fire_check = FALSE //if the blasts we make will consider our faction against the faction of hit targets
/obj/item/hierophant_club/examine(mob/user)
..()
to_chat(user, "<span class='hierophant_warning'>The[beacon ? " beacon is not currently":"re is a beacon"] attached.</span>")
. = ..()
. += "<span class='hierophant_warning'>The[beacon ? " beacon is not currently":"re is a beacon"] attached.</span>"
/obj/item/hierophant_club/suicide_act(mob/living/user)
atom_say("Xverwpsgexmrk...")
+2 -2
View File
@@ -275,8 +275,8 @@
..()
/obj/item/card/mining_point_card/examine(mob/user)
..(user)
to_chat(user, "There's [points] points on the card.")
. = ..()
. += "There's [points] points on the card."
/**********************Conscription Kit**********************/
+2 -2
View File
@@ -97,9 +97,9 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER)
return ..()
/mob/dead/observer/examine(mob/user)
..()
. = ..()
if(!invisibility)
to_chat(user, "It seems extremely obvious.")
. += "It seems extremely obvious."
// This seems stupid, but it's the easiest way to avoid absolutely ridiculous shit from happening
// Copying an appearance directly from a mob includes it's verb list, it's invisibility, it's alpha, and it's density
@@ -43,16 +43,15 @@ var/const/MAX_ACTIVE_TIME = 400
Attach(M)
/obj/item/clothing/mask/facehugger/examine(mob/user)
..(user)
if(!real)//So that giant red text about probisci doesn't show up.
return
switch(stat)
if(DEAD,UNCONSCIOUS)
to_chat(user, "<span class='boldannounce'>[src] is not moving.</span>")
if(CONSCIOUS)
to_chat(user, "<span class='boldannounce'>[src] seems to be active!</span>")
if(sterile)
to_chat(user, "<span class='boldannounce'>It looks like the proboscis has been removed.</span>")
. = ..()
if(real)//So that giant red text about probisci doesn't show up for fake ones
switch(stat)
if(DEAD,UNCONSCIOUS)
. += "<span class='boldannounce'>[src] is not moving.</span>"
if(CONSCIOUS)
. += "<span class='boldannounce'>[src] seems to be active!</span>"
if(sterile)
. += "<span class='boldannounce'>It looks like the proboscis has been removed.</span>"
/obj/item/clothing/mask/facehugger/attackby(obj/item/O,mob/m, params)
if(O.force)
+1 -1
View File
@@ -169,7 +169,7 @@
/obj/item/mmi/examine(mob/user)
. = ..()
if(radio)
to_chat(user, "<span class='notice'>A radio is installed on [src].</span>")
. += "<span class='notice'>A radio is installed on [src].</span>"
/obj/item/mmi/proc/install_radio()
radio = new(src)
@@ -50,11 +50,11 @@
to_chat(brainmob, "<span class='notice'>You feel slightly disoriented. That's normal when you're just a [initial(src.name)].</span>")
/obj/item/organ/internal/brain/examine(mob/user) // -- TLE
..(user)
. = ..()
if(brainmob && brainmob.client)//if thar be a brain inside... the brain.
to_chat(user, "You can feel the small spark of life still left in this one.")
. += "You can feel the small spark of life still left in this one."
else
to_chat(user, "This one seems particularly lifeless. Perhaps it will regain some of its luster later..")
. += "This one seems particularly lifeless. Perhaps it will regain some of its luster later.."
/obj/item/organ/internal/brain/remove(var/mob/living/user,special = 0)
if(dna)
@@ -166,12 +166,9 @@
/obj/item/mmi/robotic_brain/examine(mob/user)
to_chat(user, "Its speaker is turned [silenced ? "off" : "on"].")
to_chat(user, "<span class='info'>*---------*</span>")
. += "Its speaker is turned [silenced ? "off" : "on"]."
. += "<span class='info'>*---------*</span>"
. = ..()
if(!.)
to_chat(user, "<span class='info'>*---------*</span>")
return
var/list/msg = list("<span class='info'>")
@@ -187,7 +184,7 @@
else
msg += "<span class='deadsay'>It appears to be completely inactive.</span>\n"
msg += "*---------*</span>"
to_chat(user, msg.Join(""))
. += msg.Join("")
/obj/item/mmi/robotic_brain/emp_act(severity)
if(!brainmob)
@@ -374,7 +374,7 @@
pose = addtext(pose,".") //Makes sure all emotes end with a period.
msg += "\n[p_they(TRUE)] [p_are()] [pose]"
to_chat(user, msg)
. = list(msg)
//Helper procedure. Called by /mob/living/carbon/human/examine() and /mob/living/carbon/human/Topic() to determine HUD access to security and medical records.
/proc/hasHUD(mob/M as mob, hudtype)
@@ -1,9 +1,5 @@
/mob/living/silicon/ai/examine(mob/user)
to_chat(user, "<span class='info'>*---------*</span>")
if(!..(user))
to_chat(user, "<span class='info'>*---------*</span>")
return
. = ..()
var/msg = "<span class='info'>"
if(src.stat == DEAD)
msg += "<span class='deadsay'>It appears to be powered-down.</span>\n"
@@ -26,7 +22,7 @@
msg += "</span>"
msg += "*---------*</span>"
to_chat(user, msg)
. += msg
user.showLaws(src)
+2 -3
View File
@@ -525,8 +525,7 @@
density = 0 //this is reset every canmove update otherwise
/mob/living/silicon/pai/examine(mob/user)
to_chat(user, "<span class='info'>*---------*</span>")
..(user)
. = ..()
var/msg = "<span class='info'>"
@@ -544,7 +543,7 @@
msg += "\nIt is [pose]"
msg += "\n*---------*</span>"
to_chat(user, msg)
. += msg
/mob/living/silicon/pai/bullet_act(var/obj/item/projectile/Proj)
..(Proj)
@@ -46,9 +46,9 @@
visible_message("\The [src] voices a strident beep, indicating a drone chassis is prepared.")
/obj/machinery/drone_fabricator/examine(mob/user)
..(user)
. = ..()
if(produce_drones && drone_progress >= 100 && istype(user,/mob/dead) && config.allow_drone_spawn && count_drones() < config.max_maint_drones)
to_chat(user, "<BR><B>A drone is prepared. Select 'Join As Drone' from the Ghost tab to spawn as a maintenance drone.</B>")
. += "<BR><B>A drone is prepared. Select 'Join As Drone' from the Ghost tab to spawn as a maintenance drone.</B>"
/obj/machinery/drone_fabricator/proc/count_drones()
var/drones = 0
@@ -1,6 +1,5 @@
/mob/living/silicon/robot/examine(mob/user)
to_chat(user, "<span class='info'>*---------*</span>")
..(user)
. = ..()
var/msg = "<span class='info'>"
if(module)
@@ -55,5 +54,5 @@
pose = addtext(pose,".") //Makes sure all emotes end with a period.
msg += "\nIt is [pose]"
to_chat(user, msg)
. += msg
user.showLaws(src)
@@ -232,14 +232,14 @@
to_chat(user, "<span class='warning'>You need to open maintenance panel first!</span>")
/mob/living/simple_animal/bot/examine(mob/user)
..()
. = ..()
if(health < maxHealth)
if(health > maxHealth/3)
to_chat(user, "[src]'s parts look loose.")
. += "[src]'s parts look loose."
else
to_chat(user, "[src]'s parts look very loose!")
. += "[src]'s parts look very loose!"
else
to_chat(user, "[src] is in pristine condition.")
. += "[src] is in pristine condition."
/mob/living/simple_animal/bot/adjustHealth(amount, updating_health = TRUE)
if(amount > 0 && prob(10))
@@ -48,8 +48,7 @@
updateglow()
/mob/living/simple_animal/hostile/construct/examine(mob/user)
to_chat(user, "<span class='info'>*---------*</span>")
..(user)
. = ..()
var/msg = ""
if(src.health < src.maxHealth)
@@ -61,7 +60,7 @@
msg += "</span>"
msg += "*---------*</span>"
to_chat(user, msg)
. += msg
/mob/living/simple_animal/hostile/construct/attack_animal(mob/living/simple_animal/M)
if(istype(M, /mob/living/simple_animal/hostile/construct/builder))
@@ -79,9 +79,9 @@
beehome = null
/mob/living/simple_animal/hostile/poison/bees/examine(mob/user)
..()
. = ..()
if(!bee_syndicate && !beehome)
to_chat(user, "<span class='warning'>This bee is homeless!</span>")
. += "<span class='warning'>This bee is homeless!</span>"
/mob/living/simple_animal/hostile/poison/bees/proc/generate_bee_visuals()
overlays.Cut()
@@ -24,9 +24,9 @@
var/egg_lain = 0
/mob/living/simple_animal/hostile/headslug/examine(mob/user)
..()
. = ..()
if(stat == DEAD)
to_chat(desc = "It appears to be dead.")
. += "It appears to be dead."
/mob/living/simple_animal/hostile/headslug/proc/Infect(mob/living/carbon/victim)
var/obj/item/organ/internal/body_egg/changeling_egg/egg = new(victim)
@@ -72,7 +72,7 @@
msgs += "<span class='warning'>It is currently licking its wounds, regenerating the damage to its body!</span>"
else
msgs += "<span class='notice'>It is currently resting.</span>"
to_chat(usr,msgs.Join("<BR>"))
. += msgs.Join("<BR>")
/mob/living/simple_animal/hostile/hellhound/Life(seconds, times_fired)
. = ..()
@@ -40,9 +40,9 @@
/mob/living/simple_animal/hostile/illusion/examine(mob/user)
if(parent_mob)
parent_mob.examine(user)
. = parent_mob.examine(user)
else
return ..()
. = ..()
/mob/living/simple_animal/hostile/illusion/AttackingTarget()
@@ -36,11 +36,11 @@
var/image/cap_dead = null
/mob/living/simple_animal/hostile/mushroom/examine(mob/user)
..(user)
. = ..()
if(health >= maxHealth)
to_chat(user, "<span class='info'>It looks healthy.</span>")
. += "<span class='info'>It looks healthy.</span>"
else
to_chat(user, "<span class='info'>It looks like it's been roughed up.</span>")
. += "<span class='info'>It looks like it's been roughed up.</span>"
/mob/living/simple_animal/hostile/mushroom/Life(seconds, times_fired)
..()
@@ -81,11 +81,11 @@
START_PROCESSING(SSprocessing, src)
/obj/structure/spawner/nether/examine(mob/user)
..()
. = ..()
if(isskeleton(user) || iszombie(user))
to_chat(user, "A direct link to another dimension full of creatures very happy to see you. <span class='nicegreen'>You can see your house from here!</span>")
. += "A direct link to another dimension full of creatures very happy to see you. <span class='nicegreen'>You can see your house from here!</span>"
else
to_chat(user, "A direct link to another dimension full of creatures not very happy to see you. <span class='warning'>Entering the link would be a very bad idea.</span>")
. += "A direct link to another dimension full of creatures not very happy to see you. <span class='warning'>Entering the link would be a very bad idea.</span>"
/obj/structure/spawner/nether/attack_hand(mob/user)
. = ..()
@@ -220,7 +220,7 @@ var/global/list/ts_spiderling_list = list()
// --------------------------------------------------------------------------------
/mob/living/simple_animal/hostile/poison/terror_spider/examine(mob/user)
..()
. = ..()
var/list/msgs = list()
if(stat == DEAD)
msgs += "<span class='notice'>It appears to be dead.</span>\n"
@@ -241,7 +241,7 @@ var/global/list/ts_spiderling_list = list()
msgs += "<span class='notice'>It appears to be regenerating quickly.</span>"
if(killcount >= 1)
msgs += "<span class='warning'>It has blood dribbling from its mouth.</span>"
to_chat(usr,msgs.Join("<BR>"))
. += msgs.Join("<BR>")
/mob/living/simple_animal/hostile/poison/terror_spider/New()
..()
@@ -20,11 +20,11 @@
var/obj/item/possessed_item
/mob/living/simple_animal/possessed_object/examine(mob/user)
possessed_item.examine(user)
. = possessed_item.examine(user)
if(health > (maxHealth / 30))
to_chat(usr, "<span class='warning'>[src] appears to be floating without any support!</span>")
. += "<span class='warning'>[src] appears to be floating without any support!</span>"
else
to_chat(usr, "<span class='warning'>[src] appears to be having trouble staying afloat!</span>")
. += "<span class='warning'>[src] appears to be having trouble staying afloat!</span>"
/mob/living/simple_animal/possessed_object/do_attack_animation(atom/A, visual_effect_icon, used_item, no_effect, end_pixel_y)
@@ -140,7 +140,7 @@
/mob/living/simple_animal/examine(mob/user)
. = ..()
if(stat == DEAD)
to_chat(user, "<span class='deadsay'>Upon closer examination, [p_they()] appear[p_s()] to be dead.</span>")
. += "<span class='deadsay'>Upon closer examination, [p_they()] appear[p_s()] to be dead.</span>"
/mob/living/simple_animal/updatehealth(reason = "none given")
..(reason)
@@ -427,34 +427,35 @@
++Discipline
/mob/living/simple_animal/slime/examine(mob/user)
to_chat(user, "<span class='info'>*---------*\nThis is [bicon(src)] \a <EM>[src]</EM>!")
. = ..()
. += "<span class='info'>*---------*\nThis is [bicon(src)] \a <EM>[src]</EM>!"
if(stat == DEAD)
to_chat(user, "<span class='deadsay'>It is limp and unresponsive.</span>")
. += "<span class='deadsay'>It is limp and unresponsive.</span>"
else
if(stat == UNCONSCIOUS) // Slime stasis
to_chat(user, "<span class='deadsay'>It appears to be alive but unresponsive.</span>")
. += "<span class='deadsay'>It appears to be alive but unresponsive.</span>"
if(getBruteLoss())
to_chat(user, "<span class='warning'>")
. += "<span class='warning'>"
if (getBruteLoss() < 40)
to_chat(user, "It has some punctures in its flesh!")
. += "It has some punctures in its flesh!"
else
to_chat(user, "<B>It has severe punctures and tears in its flesh!</B>")
to_chat(user, "</span>\n")
. += "<B>It has severe punctures and tears in its flesh!</B>"
. += "</span>\n"
switch(powerlevel)
if(2 to 3)
to_chat(user, "It is flickering gently with a little electrical activity.")
. += "It is flickering gently with a little electrical activity."
if(4 to 5)
to_chat(user, "It is glowing gently with moderate levels of electrical activity.")
. += "It is glowing gently with moderate levels of electrical activity."
if(6 to 9)
to_chat(user, "<span class='warning'>It is glowing brightly with high levels of electrical activity.</span>")
. += "<span class='warning'>It is glowing brightly with high levels of electrical activity.</span>"
if(10)
to_chat(user, "<span class='warning'><B>It is radiating with massive levels of electrical activity!</B></span>")
. += "<span class='warning'><B>It is radiating with massive levels of electrical activity!</B></span>"
to_chat(user, "*---------*</span>")
. += "*---------*</span>"
/mob/living/simple_animal/slime/proc/discipline_slime(mob/user)
if(stat)
+2 -1
View File
@@ -580,7 +580,8 @@ var/list/slot_equipment_priority = list( \
client.update_description_holders(A, is_antag)
face_atom(A)
A.examine(src)
var/list/result = A.examine(src)
to_chat(src, result.Join("\n"))
//same as above
//note: ghosts can point, this is intended
@@ -178,11 +178,11 @@
return 1
/obj/item/modular_computer/examine(mob/user)
..()
. = ..()
if(obj_integrity <= integrity_failure)
to_chat(user, "<span class='danger'>It is heavily damaged!</span>")
. += "<span class='danger'>It is heavily damaged!</span>"
else if(obj_integrity < max_integrity)
to_chat(user, "<span class='warning'>It is damaged.</span>")
. += "<span class='warning'>It is damaged.</span>"
/obj/item/modular_computer/update_icon()
overlays.Cut()
@@ -82,11 +82,11 @@
/obj/item/computer_hardware/examine(var/mob/user)
. = ..()
if(damage > damage_failure)
to_chat(user, "<span class='danger'>It seems to be severely damaged!</span>")
. += "<span class='danger'>It seems to be severely damaged!</span>"
else if(damage > damage_malfunction)
to_chat(user, "<span class='warning'>It seems to be damaged!</span>")
. += "<span class='warning'>It seems to be damaged!</span>"
else if(damage)
to_chat(user, "<span class='notice'>It seems to be slightly damaged.</span>")
. += "<span class='notice'>It seems to be slightly damaged.</span>"
// Component-side compatibility check.
/obj/item/computer_hardware/proc/can_install(obj/item/modular_computer/M, mob/living/user = null)
@@ -16,9 +16,9 @@
/obj/item/computer_hardware/ai_slot/examine(mob/user)
..()
. = ..()
if(stored_card)
to_chat(user, "There appears to be an intelliCard loaded. There appears to be a pinhole protecting a manual eject button. A screwdriver could probably press it")
. += "There appears to be an intelliCard loaded. There appears to be a pinhole protecting a manual eject button. A screwdriver could probably press it"
/obj/item/computer_hardware/ai_slot/on_install(obj/item/modular_computer/M, mob/living/user = null)
M.add_verb(device_type)
@@ -107,6 +107,6 @@
return
/obj/item/computer_hardware/card_slot/examine(mob/user)
..()
. = ..()
if(stored_card || stored_card2)
to_chat(user, "There appears to be something loaded in the card slots.")
. += "There appears to be something loaded in the card slots."
@@ -20,8 +20,8 @@
store_file(new/datum/computer_file/program/filemanager(src)) // File manager, allows text editor functions and basic file manipulation.
/obj/item/computer_hardware/hard_drive/examine(user)
..()
to_chat(user, "<span class='notice'>It has [max_capacity] GQ of storage capacity.</span>")
. = ..()
. += "<span class='notice'>It has [max_capacity] GQ of storage capacity.</span>"
/obj/item/computer_hardware/hard_drive/diagnostics(var/mob/user)
..()
@@ -14,8 +14,8 @@
to_chat(user, "Paper level: [stored_paper]/[max_paper]")
/obj/item/computer_hardware/printer/examine(mob/user)
..()
to_chat(user, "<span class='notice'>Paper level: [stored_paper]/[max_paper]</span>")
. = ..()
. += "<span class='notice'>Paper level: [stored_paper]/[max_paper]</span>"
/obj/item/computer_hardware/printer/proc/print_text(var/text_to_print, var/paper_title = "")
+3 -2
View File
@@ -38,8 +38,9 @@
toppaper = locate(/obj/item/paper_bundle) in src
/obj/item/clipboard/examine(mob/user)
if(..(user, 1) && toppaper)
toppaper.examine(user)
. = ..()
if(in_range(user, src) && toppaper)
. += toppaper.examine(user)
obj/item/clipboard/proc/penPlacement(mob/user, obj/item/pen/P, placing)
if(placing)
+6 -6
View File
@@ -137,10 +137,10 @@
playsound(PF.loc, usesound, 100, 1)
/obj/item/picture_frame/examine(mob/user, var/distance = -1, var/infix = "", var/suffix = "")
..()
/obj/item/picture_frame/examine(mob/user, var/infix = "", var/suffix = "")
. = ..()
if(displayed)
displayed.examine(user, distance, infix, suffix)
. += displayed.examine(user, infix, suffix)
/obj/item/picture_frame/attack_self(mob/user)
if(displayed)
@@ -245,11 +245,11 @@
else
return ..()
/obj/structure/sign/picture_frame/examine(mob/user, var/distance = -1, var/infix = "", var/suffix = "")
/obj/structure/sign/picture_frame/examine(mob/user, var/infix = "", var/suffix = "")
if(frame)
frame.examine(user, distance, infix, suffix)
. += frame.examine(user, infix, suffix)
else
..()
. = ..()
/obj/structure/sign/picture_frame/attack_hand(mob/user)
if(frame)
+3 -2
View File
@@ -60,13 +60,14 @@
icon_state = "paper"
/obj/item/paper/examine(mob/user)
. = ..()
if(user.is_literate())
if(in_range(user, src) || istype(user, /mob/dead/observer))
show_content(user)
else
to_chat(user, "<span class='notice'>You have to go closer if you want to read it.</span>")
. += "<span class='notice'>You have to go closer if you want to read it.</span>"
else
to_chat(user, "<span class='notice'>You don't know how to read.</span>")
. += "<span class='notice'>You don't know how to read.</span>"
/obj/item/paper/proc/show_content(var/mob/user, var/forceshow = 0, var/forcestars = 0, var/infolinks = 0, var/view = 1)
var/datum/asset/assets = get_asset_datum(/datum/asset/simple/paper)
+4 -3
View File
@@ -100,10 +100,11 @@
to_chat(user, "<span class='warning'>You must hold \the [P] steady to burn \the [src].</span>")
/obj/item/paper_bundle/examine(mob/user)
if(..(user, 1))
src.show_content(user)
. = ..()
if(in_range(user, src))
show_content(user)
else
to_chat(user, "<span class='notice'>It is too far away.</span>")
. += "<span class='notice'>It is too far away.</span>"
/obj/item/paper_bundle/proc/show_content(mob/user as mob)
var/dat
+4 -3
View File
@@ -100,11 +100,12 @@
/obj/item/paper_bin/examine(mob/user)
if(..(user, 1))
. = ..()
if(in_range(user, src))
if(amount)
to_chat(usr, "<span class='notice'>There " + (amount > 1 ? "are [amount] papers" : "is one paper") + " in the bin.</span>")
. += "<span class='notice'>There " + (amount > 1 ? "are [amount] papers" : "is one paper") + " in the bin.</span>"
else
to_chat(usr, "<span class='notice'>There are no papers in the bin.</span>")
. += "<span class='notice'>There are no papers in the bin.</span>"
/obj/item/paper_bin/update_icon()
+6 -4
View File
@@ -74,10 +74,11 @@
to_chat(user, "<span class='warning'>You must hold \the [P] steady to burn \the [src].</span>")
/obj/item/photo/examine(mob/user)
if(..(user, 1) || isobserver(user))
. = ..()
if(in_range(user, src) || isobserver(user))
show(user)
else
to_chat(user, "<span class='notice'>It is too far away.</span>")
. += "<span class='notice'>It is too far away.</span>"
/obj/item/photo/proc/show(mob/user as mob)
usr << browse_rsc(img, "tmp_photo.png")
@@ -539,8 +540,9 @@ var/list/SpookyGhosts = list("ghost","shade","shade2","ghost-narsie","horror","s
to_chat(user, "You switch the camera [on ? "on" : "off"].")
/obj/item/videocam/examine(mob/user)
if(..(user, 1))
to_chat(user, "This video camera can send live feeds to the entertainment network. It's [camera ? "" : "in"]active.")
. = ..()
if(in_range(user, src))
. += "This video camera can send live feeds to the entertainment network. It's [camera ? "" : "in"]active."
/obj/item/videocam/hear_talk(mob/M as mob, list/message_pieces)
var/msg = multilingual_to_message(message_pieces)
+11 -12
View File
@@ -229,27 +229,26 @@
addtimer(CALLBACK(src, .proc/update), 5)
/obj/machinery/power/apc/examine(mob/user)
if(..(user, 1))
. = ..()
if(in_range(user, src))
if(stat & BROKEN)
to_chat(user, "Looks broken.")
return
if(opened)
. += "Looks broken."
else if(opened)
if(has_electronics && terminal)
to_chat(user, "The cover is [opened==2?"removed":"open"] and the power cell is [ cell ? "installed" : "missing"].")
. += "The cover is [opened==2?"removed":"open"] and the power cell is [ cell ? "installed" : "missing"]."
else if(!has_electronics && terminal)
to_chat(user, "There are some wires but no electronics.")
. += "There are some wires but no electronics."
else if(has_electronics && !terminal)
to_chat(user, "Electronics installed but not wired.")
. += "Electronics installed but not wired."
else /* if(!has_electronics && !terminal) */
to_chat(user, "There is no electronics nor connected wires.")
. += "There is no electronics nor connected wires."
else
if(stat & MAINT)
to_chat(user, "The cover is closed. Something wrong with it: it doesn't work.")
. += "The cover is closed. Something wrong with it: it doesn't work."
else if(malfhack)
to_chat(user, "The cover is broken. It may be hard to force it open.")
. += "The cover is broken. It may be hard to force it open."
else
to_chat(user, "The cover is closed.")
. += "The cover is closed."
// update the APC icon to show the three base states
// also add overlays for indicator lights
+8 -9
View File
@@ -595,15 +595,14 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe("cable restrai
w_class = WEIGHT_CLASS_SMALL
/obj/item/stack/cable_coil/examine(mob/user)
if(!..(user, 1))
return
if(get_amount() == 1)
to_chat(user, "A short piece of power cable.")
else if(get_amount() == 2)
to_chat(user, "A piece of power cable.")
else
to_chat(user, "A coil of power cable. There are [get_amount()] lengths of cable in the coil.")
. = ..()
if(in_range(user, src))
if(get_amount() == 1)
. += "A short piece of power cable."
else if(get_amount() == 2)
. += "A piece of power cable."
else
. += "A coil of power cable. There are [get_amount()] lengths of cable in the coil."
// Items usable on a cable coil :
// - Wirecutters : cut them duh !
+3 -3
View File
@@ -85,11 +85,11 @@
return power_used
/obj/item/stock_parts/cell/examine(mob/user)
..()
. = ..()
if(rigged)
to_chat(user, "<span class='danger'>This power cell seems to be faulty!</span>")
. += "<span class='danger'>This power cell seems to be faulty!</span>"
else
to_chat(user, "The charge meter reads [round(percent() )]%.")
. += "The charge meter reads [round(percent() )]%."
/obj/item/stock_parts/cell/suicide_act(mob/user)
to_chat(viewers(user), "<span class='suicide'>[user] is licking the electrodes of the [src]! It looks like [user.p_theyre()] trying to commit suicide.</span>")
+12 -10
View File
@@ -28,14 +28,15 @@
icon_state = "bulb-construct-stage1"
/obj/machinery/light_construct/examine(mob/user)
if(..(user, 2))
switch(src.stage)
. = ..()
if(get_dist(user, src) <= 2)
switch(stage)
if(1)
to_chat(usr, "It's an empty frame.")
. += "It's an empty frame."
if(2)
to_chat(usr, "It's wired.")
. += "It's wired."
if(3)
to_chat(usr, "The casing is closed.")
. += "The casing is closed."
/obj/machinery/light_construct/attackby(obj/item/W as obj, mob/living/user as mob, params)
src.add_fingerprint(user)
@@ -284,16 +285,17 @@
// examine verb
/obj/machinery/light/examine(mob/user)
if(..(user, 1))
. = ..()
if(in_range(user, src))
switch(status)
if(LIGHT_OK)
to_chat(user, "[desc] It is turned [on? "on" : "off"].")
. += "[desc] It is turned [on? "on" : "off"]."
if(LIGHT_EMPTY)
to_chat(user, "[desc] The [fitting] has been removed.")
. += "[desc] The [fitting] has been removed."
if(LIGHT_BURNED)
to_chat(user, "[desc] The [fitting] is burnt out.")
. += "[desc] The [fitting] is burnt out."
if(LIGHT_BROKEN)
to_chat(user, "[desc] The [fitting] has been smashed.")
. += "[desc] The [fitting] has been smashed."
+11 -11
View File
@@ -52,12 +52,12 @@
return
/obj/machinery/power/port_gen/examine(mob/user)
if(!..(user,1 ))
return
if(active)
to_chat(usr, "<span class='notice'>The generator is on.</span>")
else
to_chat(usr, "<span class='notice'>The generator is off.</span>")
. = ..()
if(!in_range(user, src))
if(active)
. += "<span class='notice'>The generator is on.</span>"
else
. += "<span class='notice'>The generator is off.</span>"
/obj/machinery/power/port_gen/emp_act(severity)
var/duration = 6000 //ten minutes
@@ -154,13 +154,13 @@
power_gen = round(initial(power_gen) * (max(2, temp_rating) / 2))
/obj/machinery/power/port_gen/pacman/examine(mob/user)
..(user)
to_chat(user, "\The [src] appears to be producing [power_gen*power_output] W.")
to_chat(user, "There [sheets == 1 ? "is" : "are"] [sheets] sheet\s left in the hopper.")
. = ..()
. += "\The [src] appears to be producing [power_gen*power_output] W."
. += "There [sheets == 1 ? "is" : "are"] [sheets] sheet\s left in the hopper."
if(IsBroken())
to_chat(user, "<span class='warning'>\The [src] seems to have broken down.</span>")
. += "<span class='warning'>\The [src] seems to have broken down.</span>"
if(overheating)
to_chat(user, "<span class='danger'>\The [src] is overheating!</span>")
. += "<span class='danger'>\The [src] is overheating!</span>"
/obj/machinery/power/port_gen/pacman/HasFuel()
var/needed_sheets = power_output / time_per_sheet
@@ -133,7 +133,7 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
desc = text("The [name] is assembled")
if(powered)
desc = desc_holder
..(user)
. = ..()
/obj/structure/particle_accelerator/attackby(obj/item/W, mob/user, params)
if(istool(W))
+4 -3
View File
@@ -57,9 +57,10 @@
energy = 0 // ensure we dont have miniballs of miniballs
/obj/singularity/energy_ball/examine(mob/user)
..()
if(orbiting_balls.len)
to_chat(user, "The amount of orbiting mini-balls is [orbiting_balls.len].")
. = ..()
var/len = LAZYLEN(orbiting_balls)
if(len)
. += "The amount of orbiting mini-balls is [len]."
/obj/singularity/energy_ball/proc/move_the_basket_ball(var/move_amount)
+2 -2
View File
@@ -168,8 +168,8 @@
update_icon()
/obj/machinery/treadmill_monitor/examine(mob/user)
..()
to_chat(user, "The display reads:<div style='text-align: center'>[line1]<br>[line2]</div>")
. = ..()
. += "The display reads:<div style='text-align: center'>[line1]<br>[line2]</div>"
/obj/machinery/treadmill_monitor/update_icon()
overlays.Cut()
@@ -236,10 +236,10 @@
if(ammo && is_rubber())
overlays += image('icons/obj/ammo.dmi', icon_state = "enforcer-r")
/obj/item/ammo_box/magazine/enforcer/examine(mob/user, var/distance)
..()
if(distance <= 2)
to_chat(user, "It seems to be loaded with [is_rubber() ? "rubber" : "lethal"] bullets.")//only can see the topmost one.
/obj/item/ammo_box/magazine/enforcer/examine(mob/user)
. = ..()
if(get_dist(user, src) <= 2)
. += "It seems to be loaded with [is_rubber() ? "rubber" : "lethal"] bullets."//only can see the topmost one.
/obj/item/ammo_box/magazine/enforcer/proc/is_rubber()//if the topmost bullet is a rubber one
var/ammo = ammo_count()
+6 -6
View File
@@ -85,17 +85,17 @@
return ..()
/obj/item/gun/examine(mob/user)
..()
. = ..()
if(unique_reskin && !current_skin)
to_chat(user, "<span class='notice'>Alt-click it to reskin it.</span>")
. += "<span class='notice'>Alt-click it to reskin it.</span>"
if(unique_rename)
to_chat(user, "<span class='notice'>Use a pen on it to rename it.</span>")
. += "<span class='notice'>Use a pen on it to rename it.</span>"
if(bayonet)
to_chat(user, "It has \a [bayonet] [can_bayonet ? "" : "permanently "]affixed to it.")
. += "It has \a [bayonet] [can_bayonet ? "" : "permanently "]affixed to it."
if(can_bayonet) //if it has a bayonet and this is false, the bayonet is permanent.
to_chat(user, "<span class='info'>[bayonet] looks like it can be <b>unscrewed</b> from [src].</span>")
. += "<span class='info'>[bayonet] looks like it can be <b>unscrewed</b> from [src].</span>"
else if(can_bayonet)
to_chat(user, "It has a <b>bayonet</b> lug on it.")
. += "It has a <b>bayonet</b> lug on it."
/obj/item/gun/proc/process_chamber()
return 0
+4 -3
View File
@@ -56,13 +56,14 @@
update_icon()
/obj/item/gun/dartgun/examine(mob/user)
if(..(user, 2))
. = ..()
if(get_dist(user, src) <= 2)
if(beakers.len)
to_chat(user, "<span class='notice'>[src] contains:</span>")
. += "<span class='notice'>[src] contains:</span>"
for(var/obj/item/reagent_containers/glass/beaker/B in beakers)
if(B.reagents && B.reagents.reagent_list.len)
for(var/datum/reagent/R in B.reagents.reagent_list)
to_chat(user, "<span class='notice'>[R.volume] units of [R.name]</span>")
. += "<span class='notice'>[R.volume] units of [R.name]</span>"
/obj/item/gun/dartgun/attackby(obj/item/I as obj, mob/user as mob, params)
if(istype(I, /obj/item/dart_cartridge))
@@ -28,12 +28,13 @@
var/empty_state = "kineticgun_empty"
/obj/item/gun/energy/kinetic_accelerator/examine(mob/user)
if(..(user, 1))
. = ..()
if(in_range(user, src))
if(max_mod_capacity)
to_chat(user, "<b>[get_remaining_mod_capacity()]%</b> mod capacity remaining.")
. += "<b>[get_remaining_mod_capacity()]%</b> mod capacity remaining."
for(var/A in get_modkits())
var/obj/item/borg/upgrade/modkit/M = A
to_chat(user, "<span class='notice'>There is a [M.name] mod installed, using <b>[M.cost]%</b> capacity.</span>")
. += "<span class='notice'>There is a [M.name] mod installed, using <b>[M.cost]%</b> capacity.</span>"
/obj/item/gun/energy/kinetic_accelerator/attackby(obj/item/I, mob/user)
if(iscrowbar(I))
@@ -257,8 +258,9 @@
var/minebot_exclusive = FALSE
/obj/item/borg/upgrade/modkit/examine(mob/user)
if(..(user, 1))
to_chat(user, "<span class='notice'>Occupies <b>[cost]%</b> of mod capacity.</span>")
. = ..()
if(in_range(user, src))
. += "<span class='notice'>Occupies <b>[cost]%</b> of mod capacity.</span>"
/obj/item/borg/upgrade/modkit/attackby(obj/item/A, mob/user)
if(istype(A, /obj/item/gun/energy/kinetic_accelerator) && !issilicon(user))
@@ -159,9 +159,9 @@
can_charge = 0
/obj/item/gun/energy/plasmacutter/examine(mob/user)
..()
. = ..()
if(power_supply)
to_chat(user, "<span class='notice'>[src] is [round(power_supply.percent())]% charged.</span>")
. += "<span class='notice'>[src] is [round(power_supply.percent())]% charged.</span>"
/obj/item/gun/energy/plasmacutter/attackby(obj/item/A, mob/user)
if(istype(A, /obj/item/stack/sheet/mineral/plasma))
@@ -14,8 +14,9 @@
materials = list(MAT_METAL=2000)
/obj/item/gun/grenadelauncher/examine(mob/user)
if(..(user, 2))
to_chat(user, "<span class='notice'>[grenades.len] / [max_grenades] grenades.</span>")
. = ..()
if(get_dist(user, src) <= 2)
. += "<span class='notice'>[grenades.len] / [max_grenades] grenades.</span>"
/obj/item/gun/grenadelauncher/attackby(obj/item/I as obj, mob/user as mob, params)
if((istype(I, /obj/item/grenade)))
+2 -2
View File
@@ -18,8 +18,8 @@
..()
/obj/item/gun/magic/wand/examine(mob/user)
..()
to_chat(user, "Has [charges] charge\s remaining.")
. = ..()
. += "Has [charges] charge\s remaining."
/obj/item/gun/magic/wand/update_icon()
icon_state = "[initial(icon_state)][charges ? "" : "-drained"]"
+2 -2
View File
@@ -149,8 +149,8 @@
return
/obj/item/gun/projectile/examine(mob/user)
..()
to_chat(user, "Has [get_ammo()] round\s remaining.")
. = ..()
. += "Has [get_ammo()] round\s remaining."
/obj/item/gun/projectile/proc/get_ammo(countchambered = 1)
var/boolets = 0 //mature var names for mature people
@@ -84,8 +84,8 @@
return boolets
/obj/item/gun/projectile/revolver/examine(mob/user)
..()
to_chat(user, "[get_ammo(0,0)] of those are live rounds.")
. = ..()
. += "[get_ammo(0,0)] of those are live rounds."
/obj/item/gun/projectile/revolver/detective
desc = "A cheap Martian knock-off of a classic law enforcement firearm. Uses .38-special rounds."
@@ -467,7 +467,7 @@
f_name = "a "
f_name += "<span class='danger'>blood-stained</span> [name]!"
to_chat(user, "[bicon(src)] That's [f_name]")
. = list("[bicon(src)] That's [f_name]")
if(desc)
to_chat(user, desc)
. += desc
@@ -66,9 +66,9 @@
chambered = AC
/obj/item/gun/projectile/shotgun/examine(mob/user)
..()
. = ..()
if(chambered)
to_chat(user, "A [chambered.BB ? "live" : "spent"] one is in the chamber.")
. += "A [chambered.BB ? "live" : "spent"] one is in the chamber."
/obj/item/gun/projectile/shotgun/isHandgun() //You cannot, in fact, holster a shotgun.
return 0
@@ -239,8 +239,8 @@
. = ..()
/obj/item/gun/projectile/shotgun/boltaction/examine(mob/user)
..()
to_chat(user, "The bolt is [bolt_open ? "open" : "closed"].")
. = ..()
. += "The bolt is [bolt_open ? "open" : "closed"]."
/obj/item/gun/projectile/shotgun/boltaction/enchanted
name = "enchanted bolt action rifle"
+2 -2
View File
@@ -16,8 +16,8 @@
var/list/rockets = new/list()
/obj/item/gun/rocketlauncher/examine(mob/user)
..()
to_chat(user, "<span class='notice'>[rockets.len] / [max_rockets] rockets.</span>")
. = ..()
. += "<span class='notice'>[rockets.len] / [max_rockets] rockets.</span>"
/obj/item/gun/rocketlauncher/Destroy()
QDEL_LIST(rockets)
+2 -2
View File
@@ -46,8 +46,8 @@
..()
/obj/item/gun/syringe/examine(mob/user)
..()
to_chat(user, "Can hold [max_syringes] syringe\s. Has [syringes.len] syringe\s remaining.")
. = ..()
. += "Can hold [max_syringes] syringe\s. Has [syringes.len] syringe\s remaining."
/obj/item/gun/syringe/attack_self(mob/living/user as mob)
if(!syringes.len)
+5 -5
View File
@@ -12,7 +12,7 @@
var/projectile_speed = 1
var/projectile_range = 1
/obj/item/gun/throw/proc/notify_ammo_count(mob/user)
/obj/item/gun/throw/proc/notify_ammo_count()
return
/obj/item/gun/throw/proc/get_throwrange()
@@ -31,9 +31,9 @@
return count
/obj/item/gun/throw/examine(mob/user)
..()
to_chat(user, "<span class='notice'>It is [to_launch ? "loaded with \a [to_launch]" : "not loaded"].</span>")
notify_ammo_count(user)
. = ..()
. += "<span class='notice'>It is [to_launch ? "loaded with \a [to_launch]" : "not loaded"].</span>"
. += notify_ammo_count()
/obj/item/gun/throw/Destroy()
QDEL_NULL(to_launch)
@@ -53,7 +53,7 @@
to_chat(user, "<span class='notice'>You load [I] into [src].</span>")
if(!to_launch)
process_chamber()
notify_ammo_count(user)
to_chat(user, notify_ammo_count())
else
to_chat(user, "<span class='warning'>[src] cannot hold any more projectiles.</span>")
else
@@ -39,11 +39,11 @@
icon_state = "[initial(icon_state)]-drawn"
/obj/item/gun/throw/crossbow/examine(mob/user)
..()
. = ..()
if(cell)
to_chat(user, "<span class='notice'>\A [cell] is mounted onto [src]. Battery cell charge: [cell.charge]/[cell.maxcharge]")
. += "<span class='notice'>\A [cell] is mounted onto [src]. Battery cell charge: [cell.charge]/[cell.maxcharge]"
else
to_chat(user, "<span class='notice'>It has an empty mount for a battery cell.</span>")
. += "<span class='notice'>It has an empty mount for a battery cell.</span>"
/obj/item/gun/throw/crossbow/modify_projectile(obj/item/I, on_chamber = 0)
if(cell && on_chamber && istype(I, /obj/item/arrow/rod))
@@ -21,8 +21,8 @@
loaded_projectiles += P
process_chamber()
/obj/item/gun/throw/piecannon/notify_ammo_count(mob/user)
to_chat(user, "<span class='notice'>[src] has [get_ammocount()] of [max_capacity] pies left.")
/obj/item/gun/throw/piecannon/notify_ammo_count()
return "<span class='notice'>[src] has [get_ammocount()] of [max_capacity] pies left.</span>"
/obj/item/gun/throw/piecannon/update_icon()
if(to_launch)
@@ -105,11 +105,11 @@
return ..()
/obj/machinery/chem_dispenser/examine(mob/user)
..()
. = ..()
if(panel_open)
to_chat(user, "<span class='notice'>[src]'s maintenance hatch is open!</span>")
. += "<span class='notice'>[src]'s maintenance hatch is open!</span>"
if(in_range(user, src) || isobserver(user))
to_chat(user, "<span class='notice'>The status display reads: <br>Recharging <b>[recharge_amount]</b> power units per interval.<br>Power efficiency increased by <b>[round((powerefficiency * 1000) - 100, 1)]%</b>.<span>")
. += "<span class='notice'>The status display reads: <br>Recharging <b>[recharge_amount]</b> power units per interval.<br>Power efficiency increased by <b>[round((powerefficiency * 1000) - 100, 1)]%</b>.<span>"
/obj/machinery/chem_dispenser/process()
@@ -102,16 +102,15 @@
return
/obj/item/reagent_containers/borghypo/examine(mob/user)
if(!..(user, 2))
return
. = ..()
if(get_dist(user, src) <= 2)
var/empty = TRUE
var/empty = 1
for(var/datum/reagents/RS in reagent_list)
var/datum/reagent/R = locate() in RS.reagent_list
if(R)
. += "<span class='notice'>It currently has [R.volume] units of [R.name] stored.</span>"
empty = FALSE
for(var/datum/reagents/RS in reagent_list)
var/datum/reagent/R = locate() in RS.reagent_list
if(R)
to_chat(user, "<span class='notice'>It currently has [R.volume] units of [R.name] stored.</span>")
empty = 0
if(empty)
to_chat(user, "<span class='notice'>It is currently empty. Allow some time for the internal syntheszier to produce more.</span>")
if(empty)
. += "<span class='notice'>It is currently empty. Allow some time for the internal syntheszier to produce more.</span>"
@@ -51,10 +51,9 @@
base_name = name
/obj/item/reagent_containers/glass/examine(mob/user)
if(!..(user, 2))
return
if(!is_open_container())
to_chat(user, "<span class='notice'>Airtight lid seals it completely.</span>")
. = ..()
if(get_dist(user, src) <= 2 && !is_open_container())
. += "<span class='notice'>Airtight lid seals it completely.</span>"
/obj/item/reagent_containers/glass/attack(mob/M, mob/user, def_zone)
if(!is_open_container())
@@ -122,11 +122,11 @@
icon_state = "[initial(icon_state)]0"
/obj/item/reagent_containers/hypospray/autoinjector/examine()
..()
. = ..()
if(reagents && reagents.reagent_list.len)
to_chat(usr, "<span class='notice'>It is currently loaded.</span>")
. += "<span class='notice'>It is currently loaded.</span>"
else
to_chat(usr, "<span class='notice'>It is spent.</span>")
. += "<span class='notice'>It is spent.</span>"
/obj/item/reagent_containers/hypospray/autoinjector/teporone //basilisks
name = "teporone autoinjector"
@@ -83,8 +83,9 @@
to_chat(user, "<span class='notice'>You [amount_per_transfer_from_this == 10 ? "remove" : "fix"] the nozzle. You'll now use [amount_per_transfer_from_this] units per spray.</span>")
/obj/item/reagent_containers/spray/examine(mob/user)
if(..(user, 0) && user == loc)
to_chat(user, "[round(reagents.total_volume)] units left.")
. = ..()
if(get_dist(user, src) && user == loc)
. += "[round(reagents.total_volume)] units left."
/obj/item/reagent_containers/spray/verb/empty()

Some files were not shown because too many files have changed in this diff Show More