Fixes inducers not working on some stuff due to missing get_cell() checks

This commit is contained in:
ShizCalev
2020-07-03 01:13:07 -04:00
parent 8d08014e08
commit c9b87df67e
5 changed files with 16 additions and 5 deletions
@@ -28,8 +28,7 @@
/obj/item/modular_computer/get_cell()
var/obj/item/computer_hardware/battery/battery_module = all_components[MC_CELL]
if(battery_module && battery_module.battery)
return battery_module.battery
return battery_module?.get_cell()
// Used in following function to reduce copypaste
/obj/item/modular_computer/proc/power_failure()
@@ -7,6 +7,9 @@
var/obj/item/stock_parts/cell/battery = null
device_type = MC_CELL
/obj/item/computer_hardware/battery/get_cell()
return battery
/obj/item/computer_hardware/battery/New(loc, battery_type = null)
if(battery_type)
battery = new battery_type(src)
@@ -15,6 +15,9 @@
. = ..()
cell = new /obj/item/stock_parts/cell(src)
/obj/item/reagent_containers/glass/maunamug/get_cell()
return cell
/obj/item/reagent_containers/glass/maunamug/examine(mob/user)
. = ..()
. += "<span class='notice'>The status display reads: Current temperature: <b>[reagents.chem_temp]K</b> Current Charge:[cell ? "[cell.charge / cell.maxcharge * 100]%" : "No cell found"].</span>"
@@ -117,6 +117,8 @@
var/wired = FALSE
var/obj/item/stock_parts/cell/cell = null
/obj/item/bodypart/chest/robot/get_cell()
return cell
/obj/item/bodypart/chest/robot/handle_atom_del(atom/A)
if(A == cell)
@@ -6,7 +6,7 @@
var/power_efficiency = 1
var/power_usage = 100
var/panel_open = FALSE
var/list/required_parts = list(/obj/item/stock_parts/manipulator,
var/list/required_parts = list(/obj/item/stock_parts/manipulator,
/obj/item/stock_parts/manipulator,
/obj/item/stock_parts/capacitor)
var/obj/item/stock_parts/cell/power_cell
@@ -24,6 +24,10 @@
var/datum/component/riding/D = GetComponent(/datum/component/riding)
D.vehicle_move_delay = round(CONFIG_GET(number/movedelay/run_delay) * delay_multiplier) / speed
/obj/vehicle/ridden/wheelchair/motorized/get_cell()
return power_cell
/obj/vehicle/ridden/wheelchair/motorized/obj_destruction(damage_flag)
var/turf/T = get_turf(src)
for(var/atom/movable/A in contents)
@@ -42,7 +46,7 @@
canmove = FALSE
addtimer(VARSET_CALLBACK(src, canmove, TRUE), 20)
return FALSE
if(power_cell.charge < power_usage / max(power_efficiency, 1))
if(power_cell.charge < power_usage / max(power_efficiency, 1))
to_chat(user, "<span class='warning'>The display on [src] blinks 'Out of Power'.</span>")
canmove = FALSE
addtimer(VARSET_CALLBACK(src, canmove, TRUE), 20)
@@ -74,7 +78,7 @@
to_chat(user, "<span class='notice'>You remove the power cell from [src].</span>")
return
return ..()
/obj/vehicle/ridden/wheelchair/motorized/attackby(obj/item/I, mob/user, params)
if(I.tool_behaviour == TOOL_SCREWDRIVER)
I.play_tool_sound(src)