mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 19:47:22 +01:00
Refactors the examine proc to return a list of strings (#12280)
This commit is contained in:
committed by
variableundefined
parent
40a4cd1b75
commit
0e8ddb2afe
@@ -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(..())
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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(!..())
|
||||
|
||||
@@ -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())
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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>"
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 //
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"]."
|
||||
|
||||
|
||||
/*
|
||||
|
||||
@@ -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)
|
||||
..()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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...")
|
||||
|
||||
@@ -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**********************/
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 = "")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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 !
|
||||
|
||||
@@ -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>")
|
||||
|
||||
@@ -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."
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)))
|
||||
|
||||
@@ -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"]"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user