diff --git a/code/game/machinery/cell_charger.dm b/code/game/machinery/cell_charger.dm
index 78285025e01..2e087890971 100644
--- a/code/game/machinery/cell_charger.dm
+++ b/code/game/machinery/cell_charger.dm
@@ -7,18 +7,18 @@
idle_power_consumption = 4
active_power_consumption = 200
pass_flags = PASSTABLE
- var/obj/item/stock_parts/cell/charging = null
+ var/obj/item/stock_parts/cell/cell_inside = null
var/chargelevel = -1
/// Charge rate multiplier.
var/recharge_coeff = 1
/obj/machinery/cell_charger/examine(mob/user)
. = ..()
- . += SPAN_NOTICE("There's [charging ? "\a [charging.name]" : "no cell"] in [src].")
- if(charging && !(stat & (NOPOWER|BROKEN)))
- . += SPAN_NOTICE("Current charge: [round(charging.percent(), 1)]%")
- if(charging.percent() < 100)
- . += SPAN_NOTICE("- Recharging [((charging.chargerate * recharge_coeff) / charging.maxcharge) * 100]% cell charge per cycle.")
+ . += SPAN_NOTICE("There's [cell_inside ? "\a [cell_inside.name]" : "no cell"] in [src].")
+ if(cell_inside && !(stat & (NOPOWER|BROKEN)))
+ . += SPAN_NOTICE("Current charge: [round(cell_inside.percent(), 1)]%")
+ if(cell_inside.percent() < 100)
+ . += SPAN_NOTICE("- Recharging [((cell_inside.chargerate * recharge_coeff) / cell_inside.maxcharge) * 100]% cell charge per cycle.")
/obj/machinery/cell_charger/Initialize(mapload)
. = ..()
@@ -31,27 +31,26 @@
for(var/obj/item/stock_parts/cell/I in get_turf(src)) //suck any cells in at roundstart
I.forceMove(src)
- charging = I
- check_level()
+ cell_inside = I
update_icon(UPDATE_OVERLAYS)
break
/obj/machinery/cell_charger/deconstruct()
- if(charging)
- charging.forceMove(drop_location())
+ if(cell_inside)
+ cell_inside.forceMove(drop_location())
return ..()
/obj/machinery/cell_charger/Destroy()
- QDEL_NULL(charging)
+ QDEL_NULL(cell_inside)
return ..()
/obj/machinery/cell_charger/update_overlays()
. = ..()
- if(!charging)
+ if(!cell_inside)
return
- . += "[charging.icon_state]"
+ . += "[cell_inside.icon_state]"
- switch(charging.charge / charging.maxcharge)
+ switch(cell_inside.charge / cell_inside.maxcharge)
if(0.1 to 0.995)
. += "cell-o1"
if(0.995 to 1)
@@ -59,6 +58,7 @@
if(stat & (BROKEN|NOPOWER))
return
+ check_level()
. += "ccharger-o[chargelevel]"
/obj/machinery/cell_charger/item_interaction(mob/living/user, obj/item/used, list/modifiers)
@@ -69,7 +69,7 @@
if(!anchored)
to_chat(user, SPAN_WARNING("[src] isn't attached to the ground!"))
return ITEM_INTERACT_COMPLETE
- if(charging)
+ if(cell_inside)
to_chat(user, SPAN_WARNING("There is already a cell in the charger!"))
return ITEM_INTERACT_COMPLETE
else
@@ -83,52 +83,51 @@
return ITEM_INTERACT_COMPLETE
used.forceMove(src)
- charging = used
+ cell_inside = used
user.visible_message("[user] inserts a cell into the charger.", SPAN_NOTICE("You insert a cell into the charger."))
- check_level()
update_icon(UPDATE_OVERLAYS)
return ITEM_INTERACT_COMPLETE
return ..()
/obj/machinery/cell_charger/crowbar_act(mob/user, obj/item/I)
- if(panel_open && !charging && default_deconstruction_crowbar(user, I))
+ if(panel_open && !cell_inside && default_deconstruction_crowbar(user, I))
return TRUE
/obj/machinery/cell_charger/screwdriver_act(mob/user, obj/item/I)
- if(anchored && !charging && default_deconstruction_screwdriver(user, icon_state, icon_state, I))
+ if(anchored && !cell_inside && default_deconstruction_screwdriver(user, icon_state, icon_state, I))
return TRUE
/obj/machinery/cell_charger/wrench_act(mob/user, obj/item/I)
. = TRUE
- if(charging)
+ if(cell_inside)
to_chat(user, SPAN_WARNING("Remove the cell first!"))
return
default_unfasten_wrench(user, I, 0)
/obj/machinery/cell_charger/proc/removecell()
- charging.update_icon()
- charging = null
+ cell_inside.update_icon()
+ cell_inside = null
chargelevel = -1
update_icon(UPDATE_OVERLAYS)
/obj/machinery/cell_charger/attack_hand(mob/user)
- if(!charging)
+ if(!cell_inside)
return
- user.put_in_hands(charging)
- charging.add_fingerprint(user)
+ user.put_in_hands(cell_inside)
+ cell_inside.add_fingerprint(user)
- user.visible_message("[user] removes [charging] from [src].", SPAN_NOTICE("You remove [charging] from [src]."))
+ user.visible_message("[user] removes [cell_inside] from [src].", SPAN_NOTICE("You remove [cell_inside] from [src]."))
removecell()
/obj/machinery/cell_charger/attack_tk(mob/user)
- if(!charging)
+ if(!cell_inside)
return
- charging.forceMove(loc)
- to_chat(user, SPAN_NOTICE("You telekinetically remove [charging] from [src]."))
+ cell_inside.forceMove(loc)
+ to_chat(user, SPAN_NOTICE("You telekinetically remove [cell_inside] from [src]."))
removecell()
@@ -139,8 +138,8 @@
if(stat & (BROKEN|NOPOWER))
return
- if(charging)
- charging.emp_act(severity)
+ if(cell_inside)
+ cell_inside.emp_act(severity)
..(severity)
@@ -149,20 +148,20 @@
recharge_coeff = C.rating
/obj/machinery/cell_charger/process()
- if(!charging || !anchored || (stat & (BROKEN|NOPOWER)))
+ if(!cell_inside || !anchored || (stat & (BROKEN|NOPOWER)))
return
- if(charging.percent() >= 100)
+ if(cell_inside.percent() >= 100)
return
- use_power(charging.chargerate * recharge_coeff)
- charging.give(charging.chargerate * recharge_coeff)
+ use_power(cell_inside.chargerate * recharge_coeff)
+ cell_inside.give(cell_inside.chargerate * recharge_coeff)
if(check_level())
update_icon(UPDATE_OVERLAYS)
/obj/machinery/cell_charger/proc/check_level()
- var/newlevel = round(charging.percent() * 4 / 100)
+ var/newlevel = round(cell_inside.percent() * 4 / 100)
if(chargelevel != newlevel)
chargelevel = newlevel
return TRUE
diff --git a/code/game/objects/items/robot/cyborg_gripper.dm b/code/game/objects/items/robot/cyborg_gripper.dm
index dda6b0f8f56..79f79e7b3ac 100644
--- a/code/game/objects/items/robot/cyborg_gripper.dm
+++ b/code/game/objects/items/robot/cyborg_gripper.dm
@@ -145,10 +145,10 @@
// Removing cells from cell chargers.
if(istype(target, /obj/machinery/cell_charger))
var/obj/machinery/cell_charger/cell_charger = target
- if(cell_charger.charging)
- gripped_item = cell_charger.charging
- cell_charger.charging.add_fingerprint(user)
- cell_charger.charging.forceMove(src)
+ if(cell_charger.cell_inside)
+ gripped_item = cell_charger.cell_inside
+ cell_charger.cell_inside.add_fingerprint(user)
+ cell_charger.cell_inside.forceMove(src)
cell_charger.removecell()
user.visible_message(
SPAN_NOTICE("[user] removes the cell from [cell_charger]."),
diff --git a/code/modules/mob/living/basic/hostile/demons/pulse_demon_interactions.dm b/code/modules/mob/living/basic/hostile/demons/pulse_demon_interactions.dm
index ddcd0257266..ebeaeb7371a 100644
--- a/code/modules/mob/living/basic/hostile/demons/pulse_demon_interactions.dm
+++ b/code/modules/mob/living/basic/hostile/demons/pulse_demon_interactions.dm
@@ -143,21 +143,21 @@
/obj/machinery/cell_charger/attack_pulsedemon(mob/living/basic/demon/pulse_demon/user)
user.forceMove(src)
- if(!charging)
+ if(!cell_inside)
to_chat(user, SPAN_WARNING("There is no cell charging. Click again to retry."))
return
to_chat(user, SPAN_NOTICE("You are now attempting to hijack [src], this will take approximately [user.hijack_time / 10] seconds."))
- if(charging.rigged)
- to_chat(user, SPAN_NOTICE("You are now inside [charging]. Click on a hijacked APC to return."))
- user.forceMove(charging)
+ if(cell_inside.rigged)
+ to_chat(user, SPAN_NOTICE("You are now inside [cell_inside]. Click on a hijacked APC to return."))
+ user.forceMove(cell_inside)
return
if(!do_after(user, user.hijack_time, FALSE, src))
return
- if(!charging)
+ if(!cell_inside)
to_chat(src, SPAN_WARNING("Failed to hijack [src]."))
return
- to_chat(user, SPAN_NOTICE("You are now inside [charging]. Click on a hijacked APC to return."))
- user.forceMove(charging)
+ to_chat(user, SPAN_NOTICE("You are now inside [cell_inside]. Click on a hijacked APC to return."))
+ user.forceMove(cell_inside)
/obj/machinery/recharge_station/attack_pulsedemon(mob/living/basic/demon/pulse_demon/user)
user.forceMove(src)
diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm
index d26a4ee00f1..00bed47e995 100644
--- a/code/modules/power/cell.dm
+++ b/code/modules/power/cell.dm
@@ -37,6 +37,8 @@
// State of charge is in kJ so we multiply it by 1000 to get Joules
desc += SPAN_NOTICE("It can store [DisplayJoules(maxcharge * 1000)]. Doctors recommend that you do not swallow it.")
update_icon(UPDATE_OVERLAYS)
+ if(istype(loc, /obj/machinery/cell_charger))
+ loc.update_icon(UPDATE_OVERLAYS)
/obj/item/stock_parts/cell/Destroy()
STOP_PROCESSING(SSobj, src)
diff --git a/code/tests/attack_chain/test_attack_chain_machinery.dm b/code/tests/attack_chain/test_attack_chain_machinery.dm
index ae8aa8c7898..a48a6d36247 100644
--- a/code/tests/attack_chain/test_attack_chain_machinery.dm
+++ b/code/tests/attack_chain/test_attack_chain_machinery.dm
@@ -131,7 +131,7 @@
TEST_ASSERT_LAST_CHATLOG(player, "already a cell in the charger")
qdel(cell2)
player.click_on(cell_charger)
- TEST_ASSERT_NULL(cell_charger.charging, "cell charger still charging")
+ TEST_ASSERT_NULL(cell_charger.cell_inside, "cell charger still charging")
qdel(cell)
player.retrieve(screwdriver)
player.click_on(cell_charger)