Merge branch 'master' of https://github.com/PolarisSS13/Polaris into 2020_04_17_LoadBalancing

This commit is contained in:
Atlantiscze
2020-05-03 23:17:27 +02:00
617 changed files with 8631 additions and 7899 deletions
+2 -2
View File
@@ -40,8 +40,8 @@
return ..()
/obj/item/weapon/rcd/examine(mob/user)
..()
to_chat(user, display_resources())
. = ..()
. += display_resources()
// Used to show how much stuff (matter units, cell charge, etc) is left inside.
/obj/item/weapon/rcd/proc/display_resources()
+3 -2
View File
@@ -33,8 +33,9 @@ RSF
w_class = ITEMSIZE_NORMAL
/obj/item/weapon/rsf/examine(mob/user)
if(..(user, 0))
to_chat(user,"<span class='notice'>It currently holds [stored_matter]/30 fabrication-units.</span>")
. = ..()
if(get_dist(user, src) == 0)
. += "<span class='notice'>It currently holds [stored_matter]/30 fabrication-units.</span>"
/obj/item/weapon/rsf/attackby(obj/item/weapon/W as obj, mob/user as mob)
..()
@@ -149,22 +149,21 @@ CIGARETTE PACKETS ARE IN FANCY.DM
..()
/obj/item/clothing/mask/smokable/examine(mob/user)
..()
if(is_pipe)
return
var/smoke_percent = round((smoketime / max_smoketime) * 100)
switch(smoke_percent)
if(90 to INFINITY)
to_chat(user, "[src] is still fresh.")
if(60 to 90)
to_chat(user, "[src] has a good amount of burn time remaining.")
if(30 to 60)
to_chat(user, "[src] is about half finished.")
if(10 to 30)
to_chat(user, "[src] is starting to burn low.")
else
to_chat(user, "[src] is nearly burnt out!")
. = ..()
if(!is_pipe)
var/smoke_percent = round((smoketime / max_smoketime) * 100)
switch(smoke_percent)
if(90 to INFINITY)
. += "[src] is still fresh."
if(60 to 90)
. += "[src] has a good amount of burn time remaining."
if(30 to 60)
. += "[src] is about half finished."
if(10 to 30)
. += "[src] is starting to burn low."
else
. += "[src] is nearly burnt out!"
/obj/item/clothing/mask/smokable/proc/light(var/flavor_text = "[usr] lights the [name].")
if(!src.lit)
@@ -177,6 +177,30 @@
build_path = /obj/machinery/computer/aifixer
origin_tech = list(TECH_DATA = 3, TECH_BIO = 2)
/obj/item/weapon/circuitboard/helm
name = T_BOARD("helm control console")
build_path = /obj/machinery/computer/ship/helm
/obj/item/weapon/circuitboard/engine
name = T_BOARD("engine control console")
build_path = /obj/machinery/computer/ship/engines
/obj/item/weapon/circuitboard/nav
name = T_BOARD("navigation console")
build_path = /obj/machinery/computer/ship/navigation
/obj/item/weapon/circuitboard/nav/tele
name = T_BOARD("navigation telescreen")
build_path = /obj/machinery/computer/ship/navigation/telescreen
/obj/item/weapon/circuitboard/sensors
name = T_BOARD("sensors console")
build_path = /obj/machinery/computer/ship/sensors
/obj/item/weapon/circuitboard/area_atmos
name = T_BOARD("area air control console")
build_path = /obj/machinery/computer/area_atmos
@@ -0,0 +1,54 @@
#ifndef T_BOARD
#error T_BOARD macro is not defined but we need it!
#endif
//
// Shuttle control console. Board tries to auto-link the computer if built on a shuttle.
//
/obj/item/weapon/circuitboard/shuttle_console
origin_tech = list(TECH_DATA = 3)
var/shuttle_category = null // Shuttle datum's category must exactly equal this to auto-detect
var/shuttle_tag = null // If set, link constructed console to this shuttle. If null, auto-detect.
/obj/item/weapon/circuitboard/shuttle_console/deconstruct(obj/machinery/computer/shuttle_control/M)
shuttle_tag = M.shuttle_tag
if(shuttle_tag)
name = T_BOARD("[shuttle_tag] control console")
// Try to auto-link the shuttle computer if it is constructed on a shuttle (and not pre-programmed)
/obj/item/weapon/circuitboard/shuttle_console/construct(obj/machinery/computer/shuttle_control/M)
if(!shuttle_tag)
shuttle_tag = auto_detect_shuttle(M) // We don't have a preset tag, so lets try to auto-link.
if(shuttle_tag && M.set_shuttle_tag(shuttle_tag))
log_and_message_admins("[key_name_admin(usr)] built a [M] for [shuttle_tag] at [ADMIN_COORDJMP(M)]")
M.ping("[M] auto-links with shuttle [shuttle_tag]")
// Return shuttle_tag of shuttle of current area
/obj/item/weapon/circuitboard/shuttle_console/proc/auto_detect_shuttle(obj/machinery/computer/shuttle_control/M)
var/area/A = get_area(M)
if(!A || !(A in SSshuttles.shuttle_areas))
return // Definately not on a shuttle
for(var/shuttle_name in SSshuttles.shuttles)
var/datum/shuttle/S = SSshuttles.shuttles[shuttle_name]
if(A in S.find_childfree_areas())
// Found the owning shuttle! Return it if its a valid type
return (S.category == shuttle_category) ? S.name : null
// Overmap shuttle console.
/obj/item/weapon/circuitboard/shuttle_console/explore
name = T_BOARD("long range shuttle control console")
build_path = /obj/machinery/computer/shuttle_control/explore
origin_tech = list(TECH_DATA = 3, TECH_BLUESPACE = 4)
shuttle_category = /datum/shuttle/autodock/overmap
// Multi-shuttle console
/obj/item/weapon/circuitboard/shuttle_console/multi
name = T_BOARD("multi-route shuttle control console")
build_path = /obj/machinery/computer/shuttle_control/multi
shuttle_category = /datum/shuttle/autodock/multi
// Basic "ferry" shuttle console
/obj/item/weapon/circuitboard/shuttle_console/ferry
name = T_BOARD("basic shuttle control console")
build_path = /obj/machinery/computer/shuttle_control
shuttle_category = /datum/shuttle/autodock/ferry
+2 -2
View File
@@ -130,8 +130,8 @@
create_reagents(volume)
/obj/item/weapon/reagent_containers/ecig_cartridge/examine(mob/user as mob)//to see how much left
..()
to_chat(user, "The cartridge has [reagents.total_volume] units of liquid remaining.")
. = ..()
. += "The cartridge has [reagents.total_volume] units of liquid remaining."
//flavours
/obj/item/weapon/reagent_containers/ecig_cartridge/blank
@@ -40,8 +40,9 @@
. = ..()
/obj/item/weapon/extinguisher/examine(mob/user)
if(..(user, 0))
to_chat(user, "[bicon(src)] [src.name] contains [src.reagents.total_volume] units of water left!")
. = ..()
if(get_dist(user, src) == 0)
. += "[src] has [src.reagents.total_volume] units of water left!"
/obj/item/weapon/extinguisher/attack_self(mob/user as mob)
safety = !safety
@@ -164,8 +164,9 @@
/obj/item/weapon/wrapping_paper/examine(mob/user)
if(..(user, 1))
to_chat(user, "There is about [src.amount] square units of paper left!")
. = ..()
if(Adjacent(user))
. += "There is about [src.amount] square units of paper left!"
/obj/item/weapon/wrapping_paper/attack(mob/target as mob, mob/user as mob)
if (!istype(target, /mob/living/carbon/human)) return
@@ -118,9 +118,9 @@
to_chat(user, "<span class='warning'>\The [W] is empty.</span>")
/obj/item/weapon/grenade/chem_grenade/examine(mob/user)
..(user)
. = ..()
if(detonator)
to_chat(user, "With attached [detonator.name]")
. += "It has [detonator.name] attached to it."
/obj/item/weapon/grenade/chem_grenade/activate(mob/user as mob)
if(active) return
@@ -45,13 +45,12 @@
/obj/item/weapon/grenade/examine(mob/user)
if(..(user, 0))
. = ..()
if(get_dist(user, src) == 0)
if(det_time > 1)
to_chat(user, "The timer is set to [det_time/10] seconds.")
return
if(det_time == null)
return
to_chat(user, "\The [src] is set for instant detonation.")
. += "The timer is set to [det_time/10] seconds."
else if(det_time == null)
. += "\The [src] is set for instant detonation."
/obj/item/weapon/grenade/attack_self(mob/user as mob)
@@ -32,12 +32,11 @@
var/survey_points = 0 // For redeeming at explorer equipment vendors.
/obj/item/weapon/card/id/examine(mob/user)
set src in oview(1)
if(in_range(usr, src))
show(usr)
to_chat(usr,desc)
. = ..()
if(in_range(user, src))
show(user) //Not chat related
else
to_chat(usr, "<span class='warning'>It is too far away.</span>")
. += "<span class='warning'>It is too far away to read.</span>"
/obj/item/weapon/card/id/proc/prevent_tracking()
return 0
@@ -227,7 +227,8 @@ Implant Specifics:<BR>"}
<b>Integrity:</b> Implant will occasionally be degraded by the body's immune system and thus will occasionally malfunction."}
return dat
/obj/item/weapon/implant/explosive/hear_talk(mob/M as mob, msg)
/obj/item/weapon/implant/explosive/hear_talk(mob/M, list/message_pieces, verb)
var/msg = multilingual_to_message(message_pieces)
hear(msg)
return
@@ -36,7 +36,7 @@
IC.emp_act(severity)
/obj/item/weapon/implant/integrated_circuit/examine(mob/user)
IC.examine(user)
return IC.examine(user)
/obj/item/weapon/implant/integrated_circuit/attackby(var/obj/item/O, var/mob/user)
if(O.is_crowbar() || istype(O, /obj/item/device/integrated_electronics) || istype(O, /obj/item/integrated_circuit) || O.is_screwdriver() || istype(O, /obj/item/weapon/cell/device) )
@@ -113,9 +113,9 @@ obj/item/weapon/chainsaw/proc/get_fuel()
return reagents.get_reagent_amount("fuel")
obj/item/weapon/chainsaw/examine(mob/user)
if(..(user,0))
if(max_fuel)
to_chat(usr, "<span class = 'notice'>The [src] feels like it contains roughtly [get_fuel()] units of fuel left.</span>")
. = ..()
if(max_fuel && get_dist(user, src) == 0)
. += "<span class = 'notice'>The [src] feels like it contains roughtly [get_fuel()] units of fuel left.</span>"
obj/item/weapon/chainsaw/suicide_act(mob/user)
var/datum/gender/TU = gender_datums[user.get_visible_gender()]
@@ -36,13 +36,11 @@
..()
/obj/item/weapon/material/gravemarker/examine(mob/user)
..()
if(get_dist(src, user) < 4)
if(grave_name)
to_chat(user, "Here Lies [grave_name]")
if(get_dist(src, user) < 2)
if(epitaph)
to_chat(user, epitaph)
. = ..()
if(grave_name && get_dist(src, user) < 4)
. += "Here Lies [grave_name]"
if(epitaph && get_dist(src, user) < 2)
. += epitaph
/obj/item/weapon/material/gravemarker/update_icon()
if(icon_changes)
@@ -41,7 +41,8 @@
/obj/item/weapon/material/sharpeningkit/examine(mob/user, distance)
. = ..()
to_chat(user, "There [uses == 1 ? "is" : "are"] [uses] [material] [uses == 1 ? src.material.sheet_singular_name : src.material.sheet_plural_name] left for use.")
. += "There [uses == 1 ? "is" : "are"] [uses] [material] [uses == 1 ? src.material.sheet_singular_name : src.material.sheet_plural_name] left for use."
/obj/item/weapon/material/sharpeningkit/Initialize()
. = ..()
setrepair()
@@ -86,14 +86,12 @@
return null
/obj/item/weapon/melee/energy/examine(mob/user)
if(!..(user, 1))
return
if(use_cell)
. = ..()
if(use_cell && Adjacent(user))
if(bcell)
to_chat(user, "<span class='notice'>The blade is [round(bcell.percent())]% charged.</span>")
if(!bcell)
to_chat(user, "<span class='warning'>The blade does not have a power source installed.</span>")
. += "<span class='notice'>The blade is [round(bcell.percent())]% charged.</span>"
else
. += "<span class='warning'>The blade does not have a power source installed.</span>"
/obj/item/weapon/melee/energy/attack_self(mob/living/user as mob)
if(use_cell)
@@ -200,8 +198,8 @@
update_icon()
/obj/item/weapon/melee/energy/examine(mob/user)
..()
to_chat(user, "<span class='notice'>Alt-click to recolor it.</span>")
. = ..()
. += "<span class='notice'>Alt-click to recolor it.</span>"
/*
* Energy Axe
+2 -2
View File
@@ -215,8 +215,8 @@
update_icon()
/obj/item/weapon/shield/energy/examine(mob/user)
..()
to_chat(user, "<span class='notice'>Alt-click to recolor it.</span>")
. = ..()
. += "<span class='notice'>Alt-click to recolor it.</span>"
/obj/item/weapon/shield/riot/tele
name = "telescopic shield"
@@ -363,13 +363,12 @@
max_storage_space = ITEMSIZE_COST_NORMAL * 5
/obj/item/weapon/storage/backpack/parachute/examine(mob/user)
var/msg = desc
if(get_dist(src, user) <= 1)
. = ..()
if(Adjacent(user))
if(parachute)
msg += " It seems to be packed."
. += "It seems to be packed."
else
msg += " It seems to be unpacked."
to_chat(user, msg)
. += "It seems to be unpacked."
/obj/item/weapon/storage/backpack/parachute/handleParachute()
parachute = FALSE //If you parachute in, the parachute has probably been used.
+12 -10
View File
@@ -142,34 +142,36 @@
if(O)
gather_all(get_turf(src), user)
/obj/item/weapon/storage/bag/ore/proc/rangedload(atom/A, mob/user)
var/obj/item/weapon/ore/O = locate() in get_turf(A)
if(O)
gather_all(get_turf(A), user)
/obj/item/weapon/storage/bag/ore/examine(mob/user)
..()
. = ..()
if(!Adjacent(user)) //Can only check the contents of ore bags if you can physically reach them.
return
return .
if(istype(user, /mob/living))
add_fingerprint(user)
if(!contents.len)
to_chat(user, "It is empty.")
return
. += "It is empty."
if(world.time > last_update + 10)
else if(world.time > last_update + 10)
update_ore_count()
last_update = world.time
to_chat(user, "<span class='notice'>It holds:</span>")
for(var/ore in stored_ore)
to_chat(user, "<span class='notice'>- [stored_ore[ore]] [ore]</span>")
return
. += "<span class='notice'>It holds:</span>"
for(var/ore in stored_ore)
. += "<span class='notice'>- [stored_ore[ore]] [ore]</span>"
/obj/item/weapon/storage/bag/ore/open(mob/user as mob) //No opening it for the weird UI of having shit-tons of ore inside it.
if(world.time > last_update + 10)
update_ore_count()
last_update = world.time
examine(user)
user.examinate(src)
/obj/item/weapon/storage/bag/ore/proc/update_ore_count() //Stolen from ore boxes.
@@ -203,6 +203,11 @@
desc = "It has a picture of a gun and several warning symbols on the front.<br>WARNING: Live ammunition. Misuse may result in serious injury or death."
starts_with = list(/obj/item/ammo_casing/a145 = 7)
/obj/item/weapon/storage/box/sniperammo/highvel
name = "box of 14.5mm sabot shells"
desc = "It has a picture of a gun and several warning symbols on the front.<br>WARNING: Live ammunition. Misuse may result in serious injury or death."
starts_with = list(/obj/item/ammo_casing/a145/highvel = 7)
/obj/item/weapon/storage/box/flashbangs
name = "box of flashbangs (WARNING)"
desc = "<B>WARNING: These devices are extremely dangerous and can cause blindness or deafness in repeated use.</B>"
@@ -26,17 +26,15 @@
return
/obj/item/weapon/storage/fancy/examine(mob/user)
if(!..(user, 1))
return
. = ..()
if(contents.len <= 0)
to_chat(user, "There are no [icon_type]s left in the box.")
else if(contents.len == 1)
to_chat(user, "There is one [icon_type] left in the box.")
else
to_chat(user, "There are [contents.len] [icon_type]s in the box.")
return
if(Adjacent(user))
if(!contents.len)
. += "There are no [icon_type]s left in the box."
else if(contents.len == 1)
. += "There is one [icon_type] left in the box."
else
. += "There are [contents.len] [icon_type]s in the box."
/*
* Egg Box
@@ -24,7 +24,7 @@ MRE Stuff
/obj/item/weapon/storage/mre/examine(mob/user)
. = ..()
to_chat(user, meal_desc)
. += meal_desc
/obj/item/weapon/storage/mre/update_icon()
if(opened)
@@ -29,8 +29,9 @@
use_sound = 'sound/items/storage/briefcase.ogg'
examine(mob/user)
if(..(user, 1))
to_chat(user, "The service panel is [src.open ? "open" : "closed"].")
. = ..()
if(Adjacent(user))
. += "The service panel is [src.open ? "open" : "closed"]."
attackby(obj/item/weapon/W as obj, mob/user as mob)
if(locked)
@@ -722,10 +722,10 @@
..()
/obj/item/weapon/storage/trinketbox/examine(mob/user)
..()
. = ..()
if(open && contents.len)
var/display_item = contents[1]
to_chat(user, "<span class='notice'>\The [src] contains \the [display_item]!</span>")
. += "<span class='notice'>\The [src] contains \the [display_item]!</span>"
/obj/item/weapon/storage/AllowDrop()
return TRUE
+6 -6
View File
@@ -101,13 +101,13 @@
set_light(0)
/obj/item/weapon/melee/baton/examine(mob/user)
if(!..(user, 1))
return
. = ..()
if(bcell)
to_chat(user, "<span class='notice'>The baton is [round(bcell.percent())]% charged.</span>")
if(!bcell)
to_chat(user, "<span class='warning'>The baton does not have a power source installed.</span>")
if(Adjacent(user, src))
if(bcell)
. += "<span class='notice'>The baton is [round(bcell.percent())]% charged.</span>"
if(!bcell)
. += "<span class='warning'>The baton does not have a power source installed.</span>"
/obj/item/weapon/melee/baton/attackby(obj/item/weapon/W, mob/user)
if(use_external_power)
@@ -30,7 +30,7 @@
/obj/item/weapon/tank/jetpack/examine(mob/user)
. = ..()
if(air_contents.total_moles < 5)
to_chat(user, "<span class='danger'>The meter on \the [src] indicates you are almost out of gas!</span>")
. += "<span class='danger'>The meter on \the [src] indicates you are almost out of gas!</span>"
playsound(user, 'sound/effects/alert.ogg', 50, 1)
/obj/item/weapon/tank/jetpack/verb/toggle_rockets()
@@ -116,8 +116,8 @@
var/obj/item/weapon/rig/holder
/obj/item/weapon/tank/jetpack/rig/examine()
to_chat(usr, "It's a jetpack. If you can see this, report it on the bug tracker.")
return 0
. = ..()
. += "It's a jetpack. If you can see this, report it on the bug tracker."
/obj/item/weapon/tank/jetpack/rig/allow_thrust(num, mob/living/user as mob)
@@ -22,9 +22,9 @@
return
/obj/item/weapon/tank/oxygen/examine(mob/user)
if(..(user, 0) && air_contents.gas["oxygen"] < 10)
to_chat(user, text("<span class='warning'>The meter on \the [src] indicates you are almost out of oxygen!</span>"))
//playsound(usr, 'sound/effects/alert.ogg', 50, 1)
. = ..()
if(loc == user && (air_contents.gas["oxygen"] < 10))
. += "<span class='warning'>The meter on \the [src] indicates you are almost out of oxygen!</span>"
/obj/item/weapon/tank/oxygen/yellow
desc = "A tank of oxygen, this one is yellow."
@@ -60,8 +60,9 @@
icon_state = "oxygen"
/obj/item/weapon/tank/air/examine(mob/user)
if(..(user, 0) && air_contents.gas["oxygen"] < 1 && loc==user)
to_chat(user, "<span class='danger'>The meter on the [src.name] indicates you are almost out of air!</span>")
. = ..()
if(loc == user && (air_contents.gas["oxygen"] < 1))
. += "<span class='warning'>The meter on \the [src] indicates you are almost out of air!</span>"
user << sound('sound/effects/alert.ogg')
/obj/item/weapon/tank/air/Initialize()
@@ -153,8 +154,9 @@
return
/obj/item/weapon/tank/emergency/oxygen/examine(mob/user)
if(..(user, 0) && air_contents.gas["oxygen"] < 0.2 && loc==user)
to_chat(user, text("<span class='danger'>The meter on the [src.name] indicates you are almost out of air!</span>"))
. = ..()
if(loc == user && (air_contents.gas["oxygen"] < 0.2))
. += "<span class='danger'>The meter on the [src.name] indicates you are almost out of air!</span>"
user << sound('sound/effects/alert.ogg')
/obj/item/weapon/tank/emergency/oxygen/engi
@@ -228,8 +230,9 @@
return
/obj/item/weapon/tank/nitrogen/examine(mob/user)
if(..(user, 0) && air_contents.gas["nitrogen"] < 10)
to_chat(user, text("<span class='danger'>The meter on \the [src] indicates you are almost out of nitrogen!</span>"))
. = ..()
if(loc == user && (air_contents.gas["nitrogen"] < 10))
. += "<span class='danger'>The meter on \the [src] indicates you are almost out of nitrogen!</span>"
//playsound(user, 'sound/effects/alert.ogg', 50, 1)
/obj/item/weapon/tank/stasis/nitro_cryo // Synthmorph bags need to have initial pressure within safe bounds for human atmospheric pressure, but low temperature to stop unwanted degredation.
@@ -82,8 +82,8 @@ var/list/global/tank_gauge_cache = list()
. = ..()
/obj/item/weapon/tank/examine(mob/user)
. = ..(user, 0)
if(.)
. = ..()
if(loc == user)
var/celsius_temperature = air_contents.temperature - T0C
var/descriptive
switch(celsius_temperature)
@@ -101,12 +101,12 @@ var/list/global/tank_gauge_cache = list()
descriptive = "cold"
else
descriptive = "bitterly cold"
to_chat(user, "<span class='notice'>\The [src] feels [descriptive].</span>")
. += "<span class='notice'>\The [src] feels [descriptive].</span>"
if(src.proxyassembly.assembly || wired)
to_chat(user, "<span class='warning'>It seems to have [wired? "some wires ": ""][wired && src.proxyassembly.assembly? "and ":""][src.proxyassembly.assembly ? "some sort of assembly ":""]attached to it.</span>")
. += "<span class='warning'>It seems to have [wired? "some wires ": ""][wired && src.proxyassembly.assembly? "and ":""][src.proxyassembly.assembly ? "some sort of assembly ":""]attached to it.</span>"
if(src.valve_welded)
to_chat(user, "<span class='warning'>\The [src] emergency relief valve has been welded shut!</span>")
. += "<span class='warning'>\The [src] emergency relief valve has been welded shut!</span>"
/obj/item/weapon/tank/attackby(obj/item/weapon/W as obj, mob/user as mob)
@@ -22,12 +22,12 @@
var/list/tools = list()
var/current_tool = 1
/obj/item/weapon/combitool/examine()
..()
if(loc == usr && tools.len)
to_chat(usr, "It has the following fittings:")
/obj/item/weapon/combitool/examine(mob/user)
. = ..()
if(loc == user && tools.len)
. += "It has the following fittings:"
for(var/obj/item/tool in tools)
to_chat(usr, "[bicon(tool)] - [tool.name][tools[current_tool]==tool?" (selected)":""]")
. += "[bicon(tool)] - [tool.name][tools[current_tool]==tool?" (selected)":""]")
/obj/item/weapon/combitool/New()
..()
@@ -56,9 +56,9 @@
return ..()
/obj/item/weapon/weldingtool/examine(mob/user)
if(..(user, 0))
if(max_fuel)
to_chat(user, "[bicon(src)] The [src.name] contains [get_fuel()]/[src.max_fuel] units of fuel!")
. = ..()
if(max_fuel && loc == user)
. += "It contains [get_fuel()]/[src.max_fuel] units of fuel!"
/obj/item/weapon/weldingtool/attack(atom/A, mob/living/user, def_zone)
if(ishuman(A) && user.a_intent == I_HELP)
@@ -556,13 +556,12 @@
return power_supply
/obj/item/weapon/weldingtool/electric/examine(mob/user)
if(get_dist(src, user) > 1)
to_chat(user, desc)
else
. = ..()
if(Adjacent(user))
if(power_supply)
to_chat(user, "[bicon(src)] The [src.name] has [get_fuel()] charge left.")
. += "It [src.name] has [get_fuel()] charge left."
else
to_chat(user, "[bicon(src)] The [src.name] has no power cell!")
. += "It [src.name] has no power cell!"
/obj/item/weapon/weldingtool/electric/get_fuel()
if(use_external_power)
@@ -144,9 +144,8 @@
src.add_fingerprint(usr)
/obj/item/weapon/weldpack/examine(mob/user)
..(user)
to_chat(user, "[bicon(src)] [src.reagents.total_volume] units of fuel left!")
return
. = ..()
. += "It has [src.reagents.total_volume] units of fuel left!"
/obj/item/weapon/weldpack/survival
name = "emergency welding kit"