diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index b338069e1ce..19f2711738b 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -222,6 +222,12 @@ T -= M.rating*0.2 prod_coeff = min(1,max(0,T)) // Coeff going 1 -> 0,8 -> 0,6 -> 0,4 +/obj/machinery/autolathe/examine(mob/user) + ..() + GET_COMPONENT(materials, /datum/component/material_container) + if(in_range(user, src) || isobserver(user)) + to_chat(user, "The status display reads: Storing up to [materials.max_amount] material units.
Material consumption at [prod_coeff*100]%.") + /obj/machinery/autolathe/proc/main_win(mob/user) var/dat = "

Autolathe Menu:


" dat += materials_printout() diff --git a/code/game/machinery/cell_charger.dm b/code/game/machinery/cell_charger.dm index fb384d55ae0..b3c86d5a136 100644 --- a/code/game/machinery/cell_charger.dm +++ b/code/game/machinery/cell_charger.dm @@ -28,6 +28,8 @@ to_chat(user, "There's [charging ? "a" : "no"] cell in the charger.") if(charging) to_chat(user, "Current charge: [round(charging.percent(), 1)]%.") + if(in_range(user, src) || isobserver(user)) + to_chat(user, "The status display reads: Charge rate at [charge_rate]J per cycle.") /obj/machinery/cell_charger/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/stock_parts/cell) && !panel_open) diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index b33b19ff877..d13a69362b7 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -74,6 +74,13 @@ if(heal_level > 100) heal_level = 100 +/obj/machinery/clonepod/examine(mob/user) + ..() + if(in_range(user, src) || isobserver(user)) + to_chat(user, "The status display reads: Speed gay.
Predicted amount of cellular damage: [100-heal_level]%.") + if(efficiency > 5) + to_chat(user, "Pod has been upgraded to support autoprocessing and apply beneficial mutations.") + //The return of data disks?? Just for transferring between genetics machine/cloning machine. //TO-DO: Make the genetics machine accept them. /obj/item/disk/data diff --git a/code/game/machinery/computer/teleporter.dm b/code/game/machinery/computer/teleporter.dm index b9b95eecd08..66089d1bad9 100644 --- a/code/game/machinery/computer/teleporter.dm +++ b/code/game/machinery/computer/teleporter.dm @@ -43,7 +43,7 @@ data += "Current target: [(!target) ? "None" : "[get_area(target)] [(regime_set != "Gate") ? "" : "Teleporter"]"]
" if(calibrating) data += "Calibration: In Progress" - else if(power_station.teleporter_hub.calibrated || power_station.teleporter_hub.accurate >= 3) + else if(power_station.teleporter_hub.calibrated || power_station.teleporter_hub.accuracy >= 3) data += "Calibration: Optimal" else data += "Calibration: Sub-Optimal" @@ -83,13 +83,13 @@ if(!target) say("Error: No target set to calibrate to.") return - if(power_station.teleporter_hub.calibrated || power_station.teleporter_hub.accurate >= 3) + if(power_station.teleporter_hub.calibrated || power_station.teleporter_hub.accuracy >= 3) say("Hub is already calibrated!") return say("Processing hub calibration to target...") calibrating = 1 - spawn(50 * (3 - power_station.teleporter_hub.accurate)) //Better parts mean faster calibration + spawn(50 * (3 - power_station.teleporter_hub.accuracy)) //Better parts mean faster calibration calibrating = 0 if(check_hub_connection()) power_station.teleporter_hub.calibrated = 1 diff --git a/code/game/machinery/dna_scanner.dm b/code/game/machinery/dna_scanner.dm index 27ffc12d2b2..b5237b2372a 100644 --- a/code/game/machinery/dna_scanner.dm +++ b/code/game/machinery/dna_scanner.dm @@ -27,6 +27,13 @@ for(var/obj/item/stock_parts/micro_laser/P in component_parts) damage_coeff = P.rating +/obj/machinery/dna_scannernew/examine(mob/user) + ..() + if(in_range(user, src) || isobserver(user)) + to_chat(user, "The status display reads: Radiation pulse accuracy increased by factor [precision_coeff**2].
Radiation pulse damage decreased by factor [damage_coeff**2].") + if(scan_level >= 3) + to_chat(user, "Scanner has been upgraded to support autoprocessing.") + /obj/machinery/dna_scannernew/update_icon() //no power or maintenance diff --git a/code/game/machinery/harvester.dm b/code/game/machinery/harvester.dm index 8c58ab65a33..665dd514f38 100644 --- a/code/game/machinery/harvester.dm +++ b/code/game/machinery/harvester.dm @@ -127,7 +127,7 @@ /obj/machinery/harvester/proc/end_harvesting() harvesting = FALSE open_machine() - say("Subject has been succesfuly harvested.") + say("Subject has been successfully harvested.") playsound(src, 'sound/machines/microwave/microwave-end.ogg', 100, 0) /obj/machinery/harvester/screwdriver_act(mob/living/user, obj/item/I) @@ -188,3 +188,5 @@ to_chat(user, "[src] must be closed before harvesting.") else if(!harvesting) to_chat(user, "Alt-click [src] to start harvesting.") + if(in_range(user, src) || isobserver(user)) + to_chat(user, "The status display reads: Harvest speed at [interval*0.1] seconds per organ.") diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index 893f36acb30..68ed9bc5216 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -142,6 +142,11 @@ Possible to do for anyone motivated enough: holograph_range += 1 * B.rating holo_range = holograph_range +/obj/machinery/holopad/examine(mob/user) + ..() + if(in_range(user, src) || isobserver(user)) + to_chat(user, "The status display reads: Current projection range: [holo_range] units.") + /obj/machinery/holopad/attackby(obj/item/P, mob/user, params) if(default_deconstruction_screwdriver(user, "holopad_open", "holopad0", P)) return diff --git a/code/game/machinery/launch_pad.dm b/code/game/machinery/launch_pad.dm index 8c51c904aab..d8e40f34ee7 100644 --- a/code/game/machinery/launch_pad.dm +++ b/code/game/machinery/launch_pad.dm @@ -24,6 +24,11 @@ range = initial(range) range += E +/obj/machinery/launchpad/examine(mob/user) + ..() + if(in_range(user, src) || isobserver(user)) + to_chat(user, "The status display reads: Maximum range: [range] units.") + /obj/machinery/launchpad/attackby(obj/item/I, mob/user, params) if(stationary) if(default_deconstruction_screwdriver(user, "lpad-idle-o", "lpad-idle", I)) diff --git a/code/game/machinery/limbgrower.dm b/code/game/machinery/limbgrower.dm index 9954f57b52e..fc3a4379bca 100644 --- a/code/game/machinery/limbgrower.dm +++ b/code/game/machinery/limbgrower.dm @@ -143,7 +143,7 @@ // Set this limb up using the specias name and body zone limb.icon_state = "[selected_category]_[limb.body_zone]" limb.name = "\improper synthetic [selected_category] [parse_zone(limb.body_zone)]" - limb.desc = "A synthetic [selected_category] limb that will morph on its first use in surgery. This one is for the [parse_zone(limb.body_zone)]" + limb.desc = "A synthetic [selected_category] limb that will morph on its first use in surgery. This one is for the [parse_zone(limb.body_zone)]." limb.species_id = selected_category limb.update_icon_dropped() @@ -157,6 +157,11 @@ T -= M.rating*0.2 prod_coeff = min(1,max(0,T)) // Coeff going 1 -> 0,8 -> 0,6 -> 0,4 +/obj/machinery/limbgrower/examine(mob/user) + ..() + if(in_range(user, src) || isobserver(user)) + to_chat(user, "The status display reads: Storing up to [reagents.maximum_volume]u of synthflesh.
Synthflesh consumption at [prod_coeff*100]%.") + /obj/machinery/limbgrower/proc/main_win(mob/user) var/dat = "

Limb Grower Menu:


" dat += "Chemical Storage" diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index 45ed5902a5f..d76cf7c66be 100755 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -21,6 +21,11 @@ for(var/obj/item/stock_parts/capacitor/C in component_parts) recharge_coeff = C.rating +/obj/machinery/recharger/examine(mob/user) + ..() + if(in_range(user, src) || isobserver(user)) + to_chat(user, "The status display reads: Recharging [recharge_coeff*10]% cell charge per cycle.") + /obj/machinery/recharger/proc/setCharging(new_charging) charging = new_charging if (new_charging) diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index 4ed541ef10e..8065837b1ee 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -28,6 +28,13 @@ for(var/obj/item/stock_parts/cell/C in component_parts) recharge_speed *= C.maxcharge / 10000 +/obj/machinery/recharge_station/examine(mob/user) + ..() + if(in_range(user, src) || isobserver(user)) + to_chat(user, "The status display reads: Recharging [recharge_speed]J per cycle.") + if(repairs) + to_chat(user, "[src] has been upgraded to support automatic repairs.") + /obj/machinery/recharge_station/process() if(!is_operational()) return diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm index f3d5a664e8e..cefb6f8a0e7 100644 --- a/code/game/machinery/recycler.dm +++ b/code/game/machinery/recycler.dm @@ -39,6 +39,11 @@ butchering.effectiveness = amount_produced butchering.bonus_modifier = amount_produced/5 +/obj/machinery/recycler/examine(mob/user) + ..() + if(in_range(user, src) || isobserver(user)) + to_chat(user, "Reclaiming [amount_produced]% of materials salvaged.") + /obj/machinery/recycler/examine(mob/user) ..() to_chat(user, "The power light is [(stat & NOPOWER) ? "off" : "on"].") diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm index a57a0b72a2a..c06c41a4c02 100644 --- a/code/game/machinery/spaceheater.dm +++ b/code/game/machinery/spaceheater.dm @@ -52,6 +52,8 @@ to_chat(user, "The charge meter reads [cell ? round(cell.percent(), 1) : 0]%.") else to_chat(user, "There is no power cell installed.") + if(in_range(user, src) || isobserver(user)) + to_chat(user, "The status display reads: Temperature range at [settableTemperatureRange]°C.
Heating power at [heatingPower*0.001]kJ.
Power consumption at [(efficiency*-0.0025)+150]%.") //100%, 75%, 50%, 25% /obj/machinery/space_heater/update_icon() if(on) diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index b9a5456b510..ae1e295c83a 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -11,7 +11,7 @@ idle_power_usage = 10 active_power_usage = 2000 circuit = /obj/item/circuitboard/machine/teleporter_hub - var/accurate = FALSE + var/accuracy = 0 var/obj/machinery/teleport/station/power_station var/calibrated //Calibration prevents mutation @@ -29,7 +29,12 @@ var/A = 0 for(var/obj/item/stock_parts/matter_bin/M in component_parts) A += M.rating - accurate = A + accuracy = A + +/obj/machinery/teleport/hub/examine(mob/user) + ..() + if(in_range(user, src) || isobserver(user)) + to_chat(user, "The status display reads: Probability of malfunction decreased by [(accuracy*25)-25]%.") /obj/machinery/teleport/hub/proc/link_power_station() if(power_station) @@ -68,7 +73,7 @@ if (ismovableatom(M)) if(do_teleport(M, com.target)) use_power(5000) - if(!calibrated && prob(30 - ((accurate) * 10))) //oh dear a problem + if(!calibrated && prob(30 - ((accuracy) * 10))) //oh dear a problem log_game("[M] ([key_name(M)]) was turned into a fly person") if(ishuman(M))//don't remove people from the round randomly you jerks var/mob/living/carbon/human/human = M @@ -76,7 +81,7 @@ to_chat(M, "You hear a buzzing in your ears.") human.set_species(/datum/species/fly) - human.apply_effect((rand(120 - accurate * 40, 180 - accurate * 60)), EFFECT_IRRADIATE, 0) + human.apply_effect((rand(120 - accuracy * 40, 180 - accuracy * 60)), EFFECT_IRRADIATE, 0) calibrated = 0 return @@ -102,7 +107,7 @@ /obj/machinery/teleport/station - name = "station" + name = "teleporter station" desc = "The power control station for a bluespace teleporter. Used for toggling power, and can activate a test-fire to prevent malfunctions." icon_state = "controller" use_power = IDLE_POWER_USE @@ -125,6 +130,15 @@ E += C.rating efficiency = E - 1 +/obj/machinery/teleport/station/examine(mob/user) + ..() + if(!panel_open) + to_chat(user, "The panel is screwed in, obstructing the linking device and wiring panel.") + else + to_chat(user, "The linking device is now able to be scanned with a multitool.
The wiring can be connected to a nearby console and hub with a pair of wirecutters.
") + if(in_range(user, src) || isobserver(user)) + to_chat(user, "The status display reads: This station can be linked to [efficiency] other station(s).") + /obj/machinery/teleport/station/proc/link_console_and_hub() for(var/direction in GLOB.cardinals) teleporter_hub = locate(/obj/machinery/teleport/hub, get_step(src, direction)) diff --git a/code/game/mecha/mech_bay.dm b/code/game/mecha/mech_bay.dm index f5cd8aecb21..98cf0e1a782 100644 --- a/code/game/mecha/mech_bay.dm +++ b/code/game/mecha/mech_bay.dm @@ -35,6 +35,11 @@ MC += C.rating max_charge = MC * 25 +/obj/machinery/mech_bay_recharge_port/examine(mob/user) + ..() + if(in_range(user, src) || isobserver(user)) + to_chat(user, "The status display reads: Base recharge rate at [max_charge]J per cycle.") + /obj/machinery/mech_bay_recharge_port/process() if(stat & NOPOWER || !recharge_console) return diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm index ffa57b81ebe..a97c0e3a683 100644 --- a/code/game/mecha/mech_fabricator.dm +++ b/code/game/mecha/mech_fabricator.dm @@ -62,6 +62,11 @@ T += Ml.rating time_coeff = round(initial(time_coeff) - (initial(time_coeff)*(T))/5,0.01) +/obj/machinery/mecha_part_fabricator/examine(mob/user) + ..() + GET_COMPONENT(materials, /datum/component/material_container) + if(in_range(user, src) || isobserver(user)) + to_chat(user, "The status display reads: Storing up to [materials.max_amount] material units.
Material consumption at [component_coeff*100]%.
Build time reduced by [100-time_coeff*100]%.") /obj/machinery/mecha_part_fabricator/emag_act() if(obj_flags & EMAGGED) diff --git a/code/game/objects/items/devices/laserpointer.dm b/code/game/objects/items/devices/laserpointer.dm index c22f17c52cf..7c6616af480 100644 --- a/code/game/objects/items/devices/laserpointer.dm +++ b/code/game/objects/items/devices/laserpointer.dm @@ -56,6 +56,14 @@ else return ..() +/obj/item/laser_pointer/examine(mob/user) + ..() + if(in_range(user, src) || isobserver(user)) + if(!diode) + to_chat(user, "The diode is missing.") + else + to_chat(user, "A class [diode.rating] laser diode is installed. It is screwed in place.") + /obj/item/laser_pointer/afterattack(atom/target, mob/living/user, flag, params) . = ..() laser_act(target, user, params) diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm index 4d4fad8703e..190b2c115cd 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm @@ -62,6 +62,11 @@ heat_capacity = initial(heat_capacity) / C conduction_coefficient = initial(conduction_coefficient) * C +/obj/machinery/atmospherics/components/unary/cryo_cell/examine(mob/user) //this is leaving out everything but efficiency since they follow the same idea of "better beaker, better results" + ..() + if(in_range(user, src) || isobserver(user)) + to_chat(user, "The status display reads: Efficiency at [efficiency*100]%.") + /obj/machinery/atmospherics/components/unary/cryo_cell/Destroy() QDEL_NULL(radio) QDEL_NULL(beaker) diff --git a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm index 4641bcb962f..84c6b0e9a38 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm @@ -68,10 +68,12 @@ God bless America. oil_use = initial(oil_use) - (oil_efficiency * 0.0095) fry_speed = oil_efficiency -/obj/machinery/deepfryer/examine() +/obj/machinery/deepfryer/examine(mob/user) ..() if(frying) to_chat(usr, "You can make out \a [frying] in the oil.") + if(in_range(user, src) || isobserver(user)) + to_chat(user, "The status display reads: Frying at [fry_speed*100]% speed.
Using [oil_use*10] units of oil per second.") /obj/machinery/deepfryer/attackby(obj/item/I, mob/user) if(istype(I, /obj/item/reagent_containers/pill)) diff --git a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm index d8d4e843dc3..08f20212c84 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm @@ -30,6 +30,14 @@ if(M.rating >= 2) ignore_clothing = TRUE +/obj/machinery/gibber/examine(mob/user) + ..() + if(in_range(user, src) || isobserver(user)) + to_chat(user, "The status display reads: Outputting [meat_produced] meat slab(s) after [gibtime*0.1] seconds of processing.") + for(var/obj/item/stock_parts/manipulator/M in component_parts) + if(M.rating >= 2) + to_chat(user, "Gibber has been upgraded to process inorganic materials.") + /obj/machinery/gibber/update_icon() cut_overlays() if (dirty) diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm index 2374e5a7102..ef4a3099cc1 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm @@ -44,6 +44,8 @@ ..() if(!operating) to_chat(user, "Alt-click [src] to turn it on.") + if(in_range(user, src) || isobserver(user)) + to_chat(user, "The status display reads: Capacity: [max_n_of_items] items.
Cook time reduced by [(efficiency*25)-25]%.") /******************* * Item Adding diff --git a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm index c25cb2288f8..68a83ce50fb 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm @@ -1,6 +1,6 @@ /obj/machinery/monkey_recycler name = "monkey recycler" - desc = "A machine used for recycling dead monkeys into monkey cubes. It currently produces 1 cube for every 5 monkeys inserted." // except it literally never does + desc = "A machine used for recycling dead monkeys into monkey cubes." icon = 'icons/obj/kitchen.dmi' icon_state = "grinder" layer = BELOW_OBJ_LAYER @@ -22,7 +22,11 @@ cubes_made = M.rating cube_production = cubes_made required_grind = req_grind - src.desc = "A machine used for recycling dead monkeys into monkey cubes. It currently produces [cubes_made] cube(s) for every [required_grind] monkey(s) inserted." + +/obj/machinery/monkey_recycler/examine(mob/user) + ..() + if(in_range(user, src) || isobserver(user)) + to_chat(user, "The status display reads: Producing [cube_production] cube(s) for every [required_grind] monkey(s) inserted.") /obj/machinery/monkey_recycler/attackby(obj/item/O, mob/user, params) if(default_deconstruction_screwdriver(user, "grinder_open", "grinder", O)) diff --git a/code/modules/food_and_drinks/kitchen_machinery/processor.dm b/code/modules/food_and_drinks/kitchen_machinery/processor.dm index 9735c6873eb..e982b6bd6f0 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/processor.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/processor.dm @@ -21,6 +21,11 @@ for(var/obj/item/stock_parts/manipulator/M in component_parts) rating_speed = M.rating +/obj/machinery/processor/examine(mob/user) + ..() + if(in_range(user, src) || isobserver(user)) + to_chat(user, "The status display reads: Outputting [rating_amount] item(s) at [rating_speed*100]% speed.") + /obj/machinery/processor/proc/process_food(datum/food_processor_process/recipe, atom/movable/what) if (recipe.output && loc && !QDELETED(src)) for(var/i = 0, i < rating_amount, i++) diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm index b6e3b196409..6a3bd686e00 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm @@ -33,6 +33,11 @@ for(var/obj/item/stock_parts/matter_bin/B in component_parts) max_n_of_items = 1500 * B.rating +/obj/machinery/smartfridge/examine(mob/user) + ..() + if(in_range(user, src) || isobserver(user)) + to_chat(user, "The status display reads: This unit can hold a maximum of [max_n_of_items] items.") + /obj/machinery/smartfridge/power_change() ..() update_icon() diff --git a/code/modules/hydroponics/biogenerator.dm b/code/modules/hydroponics/biogenerator.dm index 7244ccea79f..d8ca934c467 100644 --- a/code/modules/hydroponics/biogenerator.dm +++ b/code/modules/hydroponics/biogenerator.dm @@ -52,6 +52,11 @@ productivity = P max_items = max_storage +/obj/machinery/biogenerator/examine(mob/user) + ..() + if(in_range(user, src) || isobserver(user)) + to_chat(user, "The status display reads: Productivity at [productivity*100]%.
Matter consumption reduced by [(efficiency*25)-25]%.
Machine can hold up to [max_items] pieces of produce.") + /obj/machinery/biogenerator/on_reagent_change(changetype) //When the reagents change, change the icon as well. update_icon() diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index d916aa18fec..71e2cfd5b78 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -46,6 +46,12 @@ maxwater = tmp_capacity * 50 // Up to 300 maxnutri = tmp_capacity * 5 // Up to 30 +/obj/machinery/hydroponics/constructable/examine(mob/user) + ..() + if(in_range(user, src) || isobserver(user)) + to_chat(user, "The status display reads: Tray efficiency at [rating*100]%.") + + /obj/machinery/hydroponics/Destroy() if(myseed) qdel(myseed) diff --git a/code/modules/hydroponics/seed_extractor.dm b/code/modules/hydroponics/seed_extractor.dm index ffa9e2e21d9..8491c3baf7a 100644 --- a/code/modules/hydroponics/seed_extractor.dm +++ b/code/modules/hydroponics/seed_extractor.dm @@ -56,6 +56,11 @@ for(var/obj/item/stock_parts/manipulator/M in component_parts) seed_multiplier = M.rating +/obj/machinery/seed_extractor/examine(mob/user) + ..() + if(in_range(user, src) || isobserver(user)) + to_chat(user, "The status display reads: Extracting [seed_multiplier] seed(s) per piece of produce.
Machine can store up to [max_seeds]% seeds.") + /obj/machinery/seed_extractor/attackby(obj/item/O, mob/user, params) if(default_deconstruction_screwdriver(user, "sextractor_open", "sextractor", O)) diff --git a/code/modules/mining/machine_redemption.dm b/code/modules/mining/machine_redemption.dm index 0ec0cda375b..8183cff25b2 100644 --- a/code/modules/mining/machine_redemption.dm +++ b/code/modules/mining/machine_redemption.dm @@ -48,6 +48,11 @@ point_upgrade = point_upgrade_temp sheet_per_ore = sheet_per_ore_temp +/obj/machinery/mineral/ore_redemption/examine(mob/user) + ..() + if(in_range(user, src) || isobserver(user)) + to_chat(user, "The status display reads: Smelting [sheet_per_ore] sheet(s) per piece of ore.
Reward point generation at [point_upgrade*100]%.
Ore pickup speed at [ore_pickup_rate].") + /obj/machinery/mineral/ore_redemption/proc/smelt_ore(obj/item/stack/ore/O) var/datum/component/material_container/mat_container = materials.mat_container if (!mat_container) diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm index 6b33a82498c..07287cf3b6c 100644 --- a/code/modules/power/port_gen.dm +++ b/code/modules/power/port_gen.dm @@ -103,6 +103,8 @@ to_chat(user, "The generator has [sheets] units of [sheet_name] fuel left, producing [power_gen] per cycle.") if(crit_fail) to_chat(user, "The generator seems to have broken down.") + if(in_range(user, src) || isobserver(user)) + to_chat(user, "The status display reads: Fuel efficiency increased by [(consumption*100)-100]%.") /obj/machinery/power/port_gen/pacman/HasFuel() if(sheets >= 1 / (time_per_sheet / power_output) - sheet_left) diff --git a/code/modules/power/rtg.dm b/code/modules/power/rtg.dm index 7dc7612e169..0280e8c470d 100644 --- a/code/modules/power/rtg.dm +++ b/code/modules/power/rtg.dm @@ -36,6 +36,11 @@ power_gen = initial(power_gen) * part_level +/obj/machinery/power/rtg/examine(mob/user) + ..() + if(in_range(user, src) || isobserver(user)) + to_chat(user, "The status display reads: Power generation now at [power_gen*0.001]kW.") + /obj/machinery/power/rtg/attackby(obj/item/I, mob/user, params) if(default_deconstruction_screwdriver(user, "[initial(icon_state)]-open", initial(icon_state), I)) return diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index 9252b3e9e58..324fff16e4d 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -89,6 +89,11 @@ power_usage -= 50 * M.rating active_power_usage = power_usage +/obj/machinery/power/emitter/examine(mob/user) + ..() + if(in_range(user, src) || isobserver(user)) + to_chat(user, "The status display reads: Emitting one beam each [fire_delay*0.1] seconds.
Power consumption at [active_power_usage]W.") + /obj/machinery/power/emitter/ComponentInitialize() . = ..() AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_FLIP ,null,CALLBACK(src, .proc/can_be_rotated)) diff --git a/code/modules/power/tesla/coil.dm b/code/modules/power/tesla/coil.dm index 61de879680f..736884a4271 100644 --- a/code/modules/power/tesla/coil.dm +++ b/code/modules/power/tesla/coil.dm @@ -36,6 +36,11 @@ zap_cooldown -= (C.rating * 20) input_power_multiplier = power_multiplier +/obj/machinery/power/tesla_coil/examine(mob/user) + ..() + if(in_range(user, src) || isobserver(user)) + to_chat(user, "The status display reads: Power generation at [input_power_multiplier*100]%.
Shock interval at [zap_cooldown*0.1] seconds.") + /obj/machinery/power/tesla_coil/on_construction() if(anchored) connect_to_network() diff --git a/code/modules/power/turbine.dm b/code/modules/power/turbine.dm index 85ee7589b9a..8487d72afb6 100644 --- a/code/modules/power/turbine.dm +++ b/code/modules/power/turbine.dm @@ -94,6 +94,11 @@ E += M.rating efficiency = E / 6 +/obj/machinery/power/compressor/examine(mob/user) + ..() + if(in_range(user, src) || isobserver(user)) + to_chat(user, "The status display reads: Efficiency at [efficiency*100]%.") + /obj/machinery/power/compressor/attackby(obj/item/I, mob/user, params) if(default_deconstruction_screwdriver(user, initial(icon_state), initial(icon_state), I)) return @@ -176,6 +181,11 @@ P += C.rating productivity = P / 6 +/obj/machinery/power/turbine/examine(mob/user) + ..() + if(in_range(user, src) || isobserver(user)) + to_chat(user, "The status display reads: Productivity at [productivity*100]%.") + /obj/machinery/power/turbine/locate_machinery() if(compressor) return diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index 2d166af8078..6a01fd76ffc 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -83,7 +83,17 @@ ..() if(panel_open) to_chat(user, "[src]'s maintenance hatch is open!") - + if(in_range(user, src) || isobserver(user)) + to_chat(user, "The status display reads:
Recharging [recharge_amount] power units per interval.
Power efficiency increased by [(powerefficiency*1000)-100]%.") + switch(macrotier) + if(1) + to_chat(user, "Macro granularity at 5u.") + if(2) + to_chat(user, "Macro granularity at 3u.") + if(3) + to_chat(user, "Macro granularity at 2u.") + if(4) + to_chat(user, "Macro granularity at 1u.") /obj/machinery/chem_dispenser/process() if (recharge_counter >= 4) if(!is_operational()) diff --git a/code/modules/reagents/chemistry/machinery/chem_heater.dm b/code/modules/reagents/chemistry/machinery/chem_heater.dm index e4c6966cff5..11b2c0608b0 100644 --- a/code/modules/reagents/chemistry/machinery/chem_heater.dm +++ b/code/modules/reagents/chemistry/machinery/chem_heater.dm @@ -41,6 +41,11 @@ for(var/obj/item/stock_parts/micro_laser/M in component_parts) heater_coefficient *= M.rating +/obj/machinery/chem_heater/examine(mob/user) + ..() + if(in_range(user, src) || isobserver(user)) + to_chat(user, "The status display reads: Heating reagents at [heater_coefficient*1000]% speed.") + /obj/machinery/chem_heater/process() ..() if(stat & NOPOWER) diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm index 8523d5be74c..542eea5fab9 100644 --- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm +++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm @@ -46,6 +46,11 @@ for(var/obj/item/stock_parts/manipulator/M in component_parts) speed = M.rating +/obj/machinery/reagentgrinder/examine(mob/user) + ..() + if(in_range(user, src) || isobserver(user)) + to_chat(user, "The status display reads: Grinding reagents at [speed*100]%.") + /obj/machinery/reagentgrinder/handle_atom_del(atom/A) . = ..() if(A == beaker) diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm index 71c92a4690d..424b641108c 100644 --- a/code/modules/research/experimentor.dm +++ b/code/modules/research/experimentor.dm @@ -82,6 +82,11 @@ for(var/obj/item/stock_parts/micro_laser/M in component_parts) badThingCoeff += M.rating +/obj/machinery/rnd/experimentor/examine(mob/user) + ..() + if(in_range(user, src) || isobserver(user)) + to_chat(user, "The status display reads: Malfunction probability reduced by [badThingCoeff]%.
Cooldown interval between experiments at [resetTime*0.1] seconds.") + /obj/machinery/rnd/experimentor/proc/checkCircumstances(obj/item/O) //snowflake check to only take "made" bombs if(istype(O, /obj/item/transfer_valve)) diff --git a/code/modules/research/nanites/nanite_chamber.dm b/code/modules/research/nanites/nanite_chamber.dm index 3e1ddb4c493..326a2694985 100644 --- a/code/modules/research/nanites/nanite_chamber.dm +++ b/code/modules/research/nanites/nanite_chamber.dm @@ -29,6 +29,11 @@ for(var/obj/item/stock_parts/scanning_module/P in component_parts) scan_level += P.rating +/obj/machinery/nanite_chamber/examine(mob/user) + ..() + if(in_range(user, src) || isobserver(user)) + to_chat(user, "The status display reads: Scanning module has been upgraded to level [scan_level].") + /obj/machinery/nanite_chamber/proc/set_busy(status, message, working_icon) busy = status busy_message = message