Fixed a severe bug with robot components.

There were several desyncs between robot.cell and robot.components["power cell"].installed, leading to very annoying bugs.
This commit is contained in:
cib
2013-06-25 15:00:58 +02:00
parent a0e3feeadd
commit b0cabba481
3 changed files with 12 additions and 4 deletions

View File

@@ -215,6 +215,12 @@
O.cell.loc = O
W.loc = O//Should fix cybros run time erroring when blown up. It got deleted before, along with the frame.
// Since we "magically" installed a cell, we also have to update the correct component.
if(O.cell)
var/datum/robot_component/cell_component = O.components["power cell"]
cell_component.wrapped = O.cell
cell_component.installed = 1
feedback_inc("cyborg_birth",1)
O.Namepick()

View File

@@ -37,7 +37,7 @@
/mob/living/silicon/robot/proc/use_power()
if (is_component_functioning("power cell"))
if (is_component_functioning("power cell") && cell)
if(src.cell.charge <= 0)
uneq_all()
src.stat = 1

View File

@@ -116,13 +116,13 @@
cell.maxcharge = 7500
cell.charge = 7500
..()
if(cell)
var/datum/robot_component/cell_component = components["power cell"]
cell_component.wrapped = cell
cell_component.installed = 1
..()
playsound(loc, 'sound/voice/liveagain.ogg', 75, 1)
// setup the PDA and its name
@@ -725,7 +725,7 @@
var/datum/robot_component/C = components["power cell"]
if(wiresexposed)
user << "Close the panel first."
else if(cell || C.installed)
else if(cell)
user << "There is a power cell already installed."
else
user.drop_item()
@@ -1015,6 +1015,8 @@
user.put_in_active_hand(cell)
user << "You remove \the [cell]."
cell = null
cell_component.wrapped = null
cell_component.installed = 0
updateicon()
else if(cell_component.installed == -1)
cell_component.installed = 0