diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index ebeeb392aac..14e5c7f06c0 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -14,6 +14,9 @@
var/obj/master = null //A reference to the object in the slot. Grabs or items, generally.
var/gun_click_time = -100 //I'm lazy.
+/obj/screen/Destroy()
+ master = null
+ return ..()
/obj/screen/text
icon = null
diff --git a/code/datums/wires/taperecorder.dm b/code/datums/wires/taperecorder.dm
deleted file mode 100644
index a5fa9bd3939..00000000000
--- a/code/datums/wires/taperecorder.dm
+++ /dev/null
@@ -1,40 +0,0 @@
-/datum/wires/taperecorder
- wire_count = 2
- holder_type = /obj/item/device/taperecorder
-
-var/const/WIRE_PLAY = 1
-var/const/WIRE_RECORD = 2
-
-
-/datum/wires/taperecorder/UpdatePulsed(var/index)
- switch(index)
- if(WIRE_PLAY)
- play()
- if(WIRE_RECORD)
- record()
-
-/datum/wires/taperecorder/CanUse(var/mob/living/L)
- var/obj/item/device/taperecorder/T = holder
- if(T.open_panel)
- return 1
- return 0
-
-
-/datum/wires/taperecorder/proc/play()
- var/obj/item/device/taperecorder/T = holder
- T.stop()
- T.play()
-
-/datum/wires/taperecorder/proc/record()
- var/obj/item/device/taperecorder/T = holder
- if(T.recording)
- T.stop()
- else
- T.record()
-
-//helpers
-/datum/wires/taperecorder/proc/get_play()
- return !(wires_status & WIRE_PLAY)
-
-/datum/wires/taperecorder/proc/get_record()
- return !(wires_status & WIRE_RECORD)
\ No newline at end of file
diff --git a/code/datums/wires/wires.dm b/code/datums/wires/wires.dm
index 04c3541dc7e..2055c2790b7 100644
--- a/code/datums/wires/wires.dm
+++ b/code/datums/wires/wires.dm
@@ -46,6 +46,10 @@ var/list/wireColours = list("red", "blue", "green", "black", "orange", "brown",
var/list/wires = same_wires[holder_type]
src.wires = wires // Reference the wires list.
+/datum/wires/Destroy()
+ holder = null
+ return ..()
+
/datum/wires/proc/GenerateWires()
var/list/colours_to_pick = wireColours.Copy() // Get a copy, not a reference.
var/list/indexes_to_pick = list()
diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm
index 1b870b45e32..1b34ef2631b 100644
--- a/code/game/gamemodes/nuclear/nuclearbomb.dm
+++ b/code/game/gamemodes/nuclear/nuclearbomb.dm
@@ -23,7 +23,7 @@ var/bomb_set
unacidable = 1
var/previous_level = ""
var/datum/wires/nuclearbomb/wires = null
-
+
/obj/machinery/nuclearbomb/syndicate
is_syndicate = 1
@@ -32,11 +32,12 @@ var/bomb_set
r_code = "[rand(10000, 99999.0)]"//Creates a random code upon object spawn.
wires = new/datum/wires/nuclearbomb(src)
previous_level = get_security_level()
-
+
/obj/machinery/nuclearbomb/Destroy()
qdel(wires)
- return ..()
-
+ wires = null
+ return ..()
+
/obj/machinery/nuclearbomb/process()
if (timing)
bomb_set = 1 //So long as there is one nuke timing, it means one nuke is armed.
@@ -154,7 +155,7 @@ var/bomb_set
/obj/machinery/nuclearbomb/attack_ghost(mob/user as mob)
attack_hand(user)
-
+
/obj/machinery/nuclearbomb/attack_hand(mob/user as mob)
if (extended)
if (panel_open)
@@ -199,7 +200,7 @@ var/bomb_set
data["message"] = code
if (yes_code)
data["message"] = "*****"
-
+
ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open)
if (!ui)
ui = new(user, src, ui_key, "nuclear_bomb.tmpl", "Nuke Control Panel", 300, 510)
@@ -230,11 +231,11 @@ var/bomb_set
return 1
else
return 0
-
+
/obj/machinery/nuclearbomb/Topic(href, href_list)
if(..())
return 1
-
+
if (href_list["auth"])
if (auth)
auth.loc = loc
@@ -311,7 +312,7 @@ var/bomb_set
visible_message("\red \The [src] makes a highly unpleasant crunching noise. It looks like the anchoring bolts have been cut.")
nanomanager.update_uis(src)
return
-
+
if(!isinspace())
anchored = !(anchored)
if(anchored)
diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm
index 2191cc2a8ba..c2bd6095ffe 100644
--- a/code/game/machinery/alarm.dm
+++ b/code/game/machinery/alarm.dm
@@ -209,6 +209,8 @@
if(radio_controller)
radio_controller.remove_object(src, frequency)
air_alarm_repository.update_cache(src)
+ qdel(wires)
+ wires = null
return ..()
/obj/machinery/alarm/proc/first_run()
diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm
index 9b4e2723185..42103363cc2 100644
--- a/code/game/machinery/autolathe.dm
+++ b/code/game/machinery/autolathe.dm
@@ -73,6 +73,13 @@
component_parts += new /obj/item/weapon/stock_parts/console_screen(null)
RefreshParts()
+/obj/machinery/autolathe/Destroy()
+ qdel(wires)
+ wires = null
+ qdel(materials)
+ materials = null
+ return ..()
+
/obj/machinery/autolathe/interact(mob/user)
if(shocked && !(stat & NOPOWER))
shock(user,50)
diff --git a/code/game/machinery/bots/mulebot.dm b/code/game/machinery/bots/mulebot.dm
index 8097c036cbb..d9e640258a6 100644
--- a/code/game/machinery/bots/mulebot.dm
+++ b/code/game/machinery/bots/mulebot.dm
@@ -78,7 +78,11 @@ var/global/mulebot_count = 0
suffix = "#[mulebot_count]"
name = "\improper Mulebot ([suffix])"
-
+/obj/machinery/bot/mulebot/Destroy()
+ unload(0)
+ qdel(wires)
+ wires = null
+ return ..()
// attack by item
// emag : lock/unlock,
diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm
index c3b692564c6..d9253e89294 100644
--- a/code/game/machinery/camera/camera.dm
+++ b/code/game/machinery/camera/camera.dm
@@ -63,6 +63,7 @@
bug.current = null
bug = null
qdel(wires)
+ wires = null
cameranet.removeCamera(src) //Will handle removal from the camera network and the chunks, so we don't need to worry about that
return ..()
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index e48f3a5aadf..8f9802f840a 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -318,7 +318,6 @@
return
-
/*
About the new airlock wires panel:
* An airlock wire dialog can be accessed by the normal way or by using wirecutters or a multitool on the door while the wire-panel is open. This would show the following wires, which you can either wirecut/mend or send a multitool pulse through. There are 9 wires.
@@ -335,6 +334,11 @@ About the new airlock wires panel:
// You can find code for the airlock wires in the wire datum folder.
+/obj/machinery/door/airlock/Destroy()
+ qdel(wires)
+ wires = null
+ return ..()
+
/obj/machinery/door/airlock/bumpopen(mob/living/user as mob) //Airlocks now zap you when you 'bump' them open when they're electrified. --NeoFite
if(!issilicon(usr))
if(src.isElectrified())
diff --git a/code/game/machinery/doors/alarmlock.dm b/code/game/machinery/doors/alarmlock.dm
index 46c6f6f8572..ba5497cdf60 100644
--- a/code/game/machinery/doors/alarmlock.dm
+++ b/code/game/machinery/doors/alarmlock.dm
@@ -13,6 +13,12 @@
..()
air_connection = new
+/obj/machinery/door/airlock/alarmlock/Destroy()
+ if(radio_controller)
+ radio_controller.remove_object(src,air_frequency)
+ air_connection = null
+ return ..()
+
/obj/machinery/door/airlock/alarmlock/initialize()
..()
radio_controller.remove_object(src, air_frequency)
diff --git a/code/game/machinery/kitchen/smartfridge.dm b/code/game/machinery/kitchen/smartfridge.dm
index 452ec6f5702..4beab1eda8a 100644
--- a/code/game/machinery/kitchen/smartfridge.dm
+++ b/code/game/machinery/kitchen/smartfridge.dm
@@ -46,6 +46,7 @@
/obj/machinery/smartfridge/Destroy()
qdel(wires)
+ wires = null
return ..()
/obj/machinery/smartfridge/proc/accept_check(var/obj/item/O as obj)
diff --git a/code/game/machinery/status_display.dm b/code/game/machinery/status_display.dm
index ed070faeabc..0de5150dd31 100644
--- a/code/game/machinery/status_display.dm
+++ b/code/game/machinery/status_display.dm
@@ -47,6 +47,11 @@
var/const/STATUS_DISPLAY_TIME = 4
var/const/STATUS_DISPLAY_CUSTOM = 99
+/obj/machinery/status_display/Destroy()
+ if(radio_controller)
+ radio_controller.remove_object(src,frequency)
+ return ..()
+
// register for radio system
/obj/machinery/status_display/initialize()
..()
diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm
index 2dd4073ae9a..a81c00604db 100644
--- a/code/game/machinery/syndicatebomb.dm
+++ b/code/game/machinery/syndicatebomb.dm
@@ -40,6 +40,10 @@
update_icon()
..()
+/obj/machinery/syndicatebomb/Destroy()
+ qdel(wires)
+ wires = null
+ return ..()
/obj/machinery/syndicatebomb/examine(mob/user)
..(user)
diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm
index 3ca9f74cf22..a096e8b0c8d 100644
--- a/code/game/objects/items/devices/radio/headset.dm
+++ b/code/game/objects/items/devices/radio/headset.dm
@@ -25,7 +25,16 @@
if(ks2type)
keyslot2 = new ks2type(src)
recalculateChannels(1)
-
+
+/obj/item/device/radio/headset/Destroy()
+ if(keyslot1)
+ qdel(keyslot1)
+ if(keyslot2)
+ qdel(keyslot2)
+ keyslot1 = null
+ keyslot2 = null
+ return ..()
+
/obj/item/device/radio/headset/list_channels(var/mob/user)
return list_secure_channels()
@@ -326,7 +335,7 @@
user.drop_item()
W.loc = src
keyslot2 = W
-
+
recalculateChannels()
return
diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm
index b52fe80c84c..4aa8f8b73f0 100644
--- a/code/game/objects/items/devices/radio/radio.dm
+++ b/code/game/objects/items/devices/radio/radio.dm
@@ -69,6 +69,17 @@ var/global/list/default_medbay_channels = list(
internal_channels = default_internal_channels.Copy()
+/obj/item/device/radio/Destroy()
+ qdel(wires)
+ wires = null
+ if(radio_controller)
+ radio_controller.remove_object(src, frequency)
+ for (var/ch_name in channels)
+ radio_controller.remove_object(src, radiochannels[ch_name])
+ patch_link = null
+ return ..()
+
+
/obj/item/device/radio/initialize()
if(frequency < RADIO_LOW_FREQ || frequency > RADIO_HIGH_FREQ)
frequency = sanitize_frequency(frequency, RADIO_LOW_FREQ, RADIO_HIGH_FREQ)
diff --git a/code/game/objects/items/devices/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm
index 4ab3dff82a7..89fe2a24232 100644
--- a/code/game/objects/items/devices/taperecorder.dm
+++ b/code/game/objects/items/devices/taperecorder.dm
@@ -13,16 +13,13 @@
var/playsleepseconds = 0
var/obj/item/device/tape/mytape
var/open_panel = 0
- var/datum/wires/taperecorder/wires = null
var/canprint = 1
/obj/item/device/taperecorder/New()
- wires = new(src)
mytape = new /obj/item/device/tape/random(src)
update_icon()
-
/obj/item/device/taperecorder/examine(mob/user)
if(..(user, 1))
user << "The wire panel is [open_panel ? "opened" : "closed"]."
@@ -35,14 +32,6 @@
mytape = I
user << "You insert [I] into [src]."
update_icon()
- else if(istype(I, /obj/item/weapon/screwdriver))
- open_panel = !open_panel
- user << "You [open_panel ? "open" : "close"] the wire panel."
- if(open_panel)
- wires.Interact(user)
- else if(istype(I, /obj/item/weapon/wirecutters) || istype(I, /obj/item/device/multitool) || istype(I, /obj/item/device/assembly/signaler))
- wires.Interact(user)
-
/obj/item/device/taperecorder/proc/eject(mob/user)
if(mytape)
@@ -118,8 +107,6 @@
return
if(playing)
return
- if(!wires.get_record())
- return
if(mytape.used_capacity < mytape.max_capacity)
usr << "Recording started."
@@ -132,8 +119,6 @@
for(used, used < max)
if(recording == 0)
break
- if(!wires.get_record())
- break
mytape.used_capacity++
used++
sleep(10)
@@ -175,8 +160,6 @@
return
if(playing)
return
- if(!wires.get_play())
- return
playing = 1
update_icon()
@@ -186,8 +169,6 @@
for(var/i = 1, used < max, sleep(10 * playsleepseconds))
if(!mytape)
break
- if(!wires.get_play())
- break
if(playing == 0)
break
if(mytape.storedinfo.len < i)
@@ -250,7 +231,6 @@
//empty tape recorders
/obj/item/device/taperecorder/empty/New()
- wires = new(src)
return
diff --git a/code/game/objects/items/weapons/explosives.dm b/code/game/objects/items/weapons/explosives.dm
index 83b0b1e9cfc..2d70a119b0d 100644
--- a/code/game/objects/items/weapons/explosives.dm
+++ b/code/game/objects/items/weapons/explosives.dm
@@ -17,6 +17,12 @@
wires = new(src)
..()
+/obj/item/weapon/c4/Destroy()
+ qdel(wires)
+ wires = null
+ target = null
+ return ..()
+
/obj/item/weapon/c4/suicide_act(var/mob/user)
. = (BRUTELOSS)
viewers(user) << "[user] activates the C4 and holds it above his head! It looks like \he's going out with a bang!"
diff --git a/code/game/objects/items/weapons/grenades/smokebomb.dm b/code/game/objects/items/weapons/grenades/smokebomb.dm
index 1a7df430726..2b7e7b7f854 100644
--- a/code/game/objects/items/weapons/grenades/smokebomb.dm
+++ b/code/game/objects/items/weapons/grenades/smokebomb.dm
@@ -13,6 +13,10 @@
src.smoke = new /datum/effect/effect/system/bad_smoke_spread
src.smoke.attach(src)
+ Destroy()
+ qdel(smoke)
+ return ..()
+
prime()
playsound(src.loc, 'sound/effects/smoke.ogg', 50, 1, -3)
src.smoke.set_up(10, 0, usr.loc)
diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm
index a0c9ddef418..a8045fdbd38 100644
--- a/code/modules/flufftext/Hallucination.dm
+++ b/code/modules/flufftext/Hallucination.dm
@@ -107,6 +107,7 @@ Gunshots/explosions/opening doors/less rare audio (done)
/obj/effect/hallucination/simple/Destroy()
if(target.client) target.client.images.Remove(current_image)
active = 0
+ return ..()
#define FAKE_FLOOD_EXPAND_TIME 30
#define FAKE_FLOOD_MAX_RADIUS 7
@@ -156,11 +157,11 @@ Gunshots/explosions/opening doors/less rare audio (done)
/obj/effect/hallucination/fake_flood/Destroy()
processing_objects -= src
- del(flood_turfs)
+ qdel(flood_turfs)
if(target.client) target.client.images.Remove(flood_images)
target = null
- del(flood_images)
- return
+ qdel(flood_images)
+ return ..()
/obj/effect/hallucination/simple/xeno
image_icon = 'icons/mob/alien.dmi'
diff --git a/code/modules/mining/ore.dm b/code/modules/mining/ore.dm
index c6fe235ed12..8f520427b0c 100644
--- a/code/modules/mining/ore.dm
+++ b/code/modules/mining/ore.dm
@@ -127,6 +127,11 @@
var/attacher = "UNKNOWN"
var/datum/wires/explosive/gibtonite/wires
+/obj/item/weapon/twohanded/required/gibtonite/Destroy()
+ qdel(wires)
+ wires = null
+ return ..()
+
/obj/item/weapon/twohanded/required/gibtonite/attackby(obj/item/I, mob/user, params)
if(!wires && istype(I, /obj/item/device/assembly/igniter))
user.visible_message("[user] attaches [I] to [src].", "You attach [I] to [src].")
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index eee0d036adc..3f5ed10edc5 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -202,6 +202,8 @@ var/list/robot_verbs_default = list(
mmi = null
if(connected_ai)
connected_ai.connected_robots -= src
+ qdel(wires)
+ wires = null
return ..()
/mob/living/silicon/robot/proc/pick_module()
diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm
index 2f50994b4b9..a40316ecb98 100644
--- a/code/modules/mob/mob_grab.dm
+++ b/code/modules/mob/mob_grab.dm
@@ -426,6 +426,7 @@
/obj/item/weapon/grab/dropped()
qdel(src)
+
/obj/item/weapon/grab/Destroy()
if(affecting)
affecting.pixel_x = 0
@@ -435,6 +436,7 @@
qdel(hud)
return ..()
+
#undef EAT_TIME_XENO
#undef EAT_TIME_FAT
diff --git a/code/modules/organs/organ.dm b/code/modules/organs/organ.dm
index a9a410df238..1a5808ec7d3 100644
--- a/code/modules/organs/organ.dm
+++ b/code/modules/organs/organ.dm
@@ -22,6 +22,26 @@ var/list/organ_cache = list()
// links chemical IDs to number of ticks for which they'll stay in the blood
germ_level = 0
+
+/obj/item/organ/Destroy()
+ if(!owner)
+ return ..()
+
+ if(istype(owner, /mob/living/carbon))
+ if((owner.internal_organs) && (src in owner.internal_organs))
+ owner.internal_organs -= src
+ if(istype(owner, /mob/living/carbon/human))
+ if((owner.internal_organs_by_name) && (src in owner.internal_organs_by_name))
+ owner.internal_organs_by_name -= src
+ if((owner.organs) && (src in owner.organs))
+ owner.organs -= src
+ if((owner.organs_by_name) && (src in owner.organs_by_name))
+ owner.organs_by_name -= src
+ if(src in owner.contents)
+ owner.contents -= src
+
+ return ..()
+
/obj/item/organ/attack_self(mob/user as mob)
// Convert it to an edible form, yum yum.
diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm
index 92af27ee01a..99a3506237e 100644
--- a/code/modules/organs/organ_external.dm
+++ b/code/modules/organs/organ_external.dm
@@ -7,10 +7,10 @@
max_damage = 0
dir = SOUTH
organ_tag = "limb"
-
+
var/brute_mod = 1
var/burn_mod = 1
-
+
var/icon_name = null
var/body_part = null
var/icon_position = 0
@@ -61,6 +61,19 @@
var/can_grasp
var/can_stand
+/obj/item/organ/external/Destroy()
+ if(parent && parent.children)
+ parent.children -= src
+
+ if(children)
+ for(var/obj/item/organ/external/C in children)
+ qdel(C)
+
+ if(internal_organs)
+ for(var/obj/item/organ/O in internal_organs)
+ qdel(O)
+
+ return ..()
/obj/item/organ/external/attackby(obj/item/weapon/W as obj, mob/user as mob)
switch(stage)
@@ -120,7 +133,7 @@
if(!parent.children)
parent.children = list()
parent.children.Add(src)
-
+
/obj/item/organ/external/robotize()
..()
//robot limbs take reduced damage
@@ -137,7 +150,7 @@
if(status & ORGAN_DESTROYED)
return 0
-
+
brute *= brute_mod
burn *= burn_mod
@@ -311,7 +324,7 @@ This function completely restores a damaged organ to perfect condition.
"The wound on your [name] widens with a nasty ripping noise.",\
"You hear a nasty ripping noise, as if flesh is being torn apart.")
return
-
+
//Creating wound
var/wound_type = get_wound_type(type, damage)
@@ -536,8 +549,8 @@ Note that amputating the affected organ does in fact remove the infection from t
var/mob/living/carbon/human/H
if(istype(owner,/mob/living/carbon/human))
- H = owner
-
+ H = owner
+
for(var/datum/wound/W in wounds)
if(W.damage_type == CUT || W.damage_type == BRUISE)
brute_dam += W.damage
@@ -554,7 +567,7 @@ Note that amputating the affected organ does in fact remove the infection from t
if (open && !clamped && (H && !(H.species.flags & NO_BLOOD)))
status |= ORGAN_BLEEDING
-
+
//Bone fractures
if(config.bones_can_break && brute_dam > min_broken_damage * config.organ_health_multiplier && !(status & ORGAN_ROBOT))
src.fracture()
@@ -723,7 +736,7 @@ Note that amputating the affected organ does in fact remove the infection from t
/obj/item/organ/external/proc/fracture()
if(status & ORGAN_ROBOT)
return //ORGAN_BROKEN doesn't have the same meaning for robot limbs
-
+
if((status & ORGAN_BROKEN) || cannot_break)
return
if(owner)
@@ -787,7 +800,7 @@ Note that amputating the affected organ does in fact remove the infection from t
/obj/item/organ/external/proc/is_usable()
if((status & ORGAN_ROBOT) && get_damage() >= max_damage) //robot limbs just become inoperable at max damage
- return
+ return
return !(status & (ORGAN_DESTROYED|ORGAN_MUTATED|ORGAN_DEAD))
/obj/item/organ/external/proc/is_malfunctioning()
diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm
index decd4ebb825..05e5bbbe73b 100644
--- a/code/modules/power/apc.dm
+++ b/code/modules/power/apc.dm
@@ -157,6 +157,7 @@
if(occupier)
malfvacate(1)
qdel(wires)
+ wires = null
if(cell)
qdel(cell) // qdel
if(terminal)
diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm
index 60116821a55..7feba62c14b 100644
--- a/code/modules/power/port_gen.dm
+++ b/code/modules/power/port_gen.dm
@@ -123,7 +123,7 @@
component_parts += new /obj/item/weapon/stock_parts/capacitor(null)
component_parts += new board_path(null)
RefreshParts()
-
+
/obj/machinery/power/port_gen/pacman/upgraded/New()
..()
component_parts = list()
@@ -137,7 +137,7 @@
/obj/machinery/power/port_gen/pacman/Destroy()
DropFuel()
- ..()
+ return ..()
/obj/machinery/power/port_gen/pacman/RefreshParts()
var/temp_rating = 0
@@ -255,11 +255,11 @@
sheets = 0
sheet_left = 0
..()
-
+
/obj/machinery/power/port_gen/pacman/emag_act(var/remaining_charges, var/mob/user)
if (active && prob(25))
explode() //if they're foolish enough to emag while it's running
-
+
if (!emagged)
emagged = 1
return 1
@@ -311,7 +311,7 @@
/obj/machinery/power/port_gen/pacman/attack_ai(var/mob/user as mob)
src.add_hiddenprint(user)
return src.attack_hand(user)
-
+
/obj/machinery/power/port_gen/pacman/attack_ghost(var/mob/user)
return src.attack_hand(user)
@@ -370,7 +370,7 @@
if (href_list["action"] == "higher_power")
if (power_output < max_power_output || (emagged && power_output < round(max_power_output*2.5)))
power_output++
-
+
nanomanager.update_uis(src)
/obj/machinery/power/port_gen/pacman/super
@@ -381,7 +381,7 @@
sheet_name = "Uranium Sheets"
time_per_sheet = 576 //same power output, but a 50 sheet stack will last 2 hours at max safe power
board_path = /obj/item/weapon/circuitboard/pacman/super
-
+
/obj/machinery/power/port_gen/pacman/super/upgraded/New()
..()
component_parts = list()
@@ -427,7 +427,7 @@
max_temperature = 800
temperature_gain = 90
board_path = /obj/item/weapon/circuitboard/pacman/mrs
-
+
/obj/machinery/power/port_gen/pacman/mrs/upgraded/New()
..()
component_parts = list()
diff --git a/code/modules/power/singularity/particle_accelerator/particle_control.dm b/code/modules/power/singularity/particle_accelerator/particle_control.dm
index 490af2d6fb9..6723bc156c0 100644
--- a/code/modules/power/singularity/particle_accelerator/particle_control.dm
+++ b/code/modules/power/singularity/particle_accelerator/particle_control.dm
@@ -29,8 +29,10 @@
/obj/machinery/particle_accelerator/control_box/Destroy()
if(active)
toggle_power()
+ qdel(wires)
+ wires = null
return ..()
-
+
/obj/machinery/particle_accelerator/control_box/attack_ghost(user as mob)
return src.attack_hand(user)
@@ -126,7 +128,7 @@
log_game("PA Control Computer increased to [strength] by [key_name(usr)] in ([x],[y],[z])")
investigate_log("increased to [strength] by [key_name(usr)]","singulo")
use_log += text("\[[time_stamp()]\] [usr.name] ([key_name(usr)]) has increased the PA Control Computer to [strength].")
-
+
investigate_log("increased to [strength] by [usr.key]","singulo")
strength_change()
@@ -139,7 +141,7 @@
message_admins("PA Control Computer decreased to [strength] by [key_name_admin(usr)] in ([x],[y],[z] - JMP)",0,1)
log_game("PA Control Computer decreased to [strength] by [key_name(usr)] in ([x],[y],[z])")
investigate_log("decreased to [strength] by [key_name(usr)]","singulo")
- use_log += text("\[[time_stamp()]\] [usr.name] ([key_name(usr)]) has decreased the PA Control Computer to [strength].")
+ use_log += text("\[[time_stamp()]\] [usr.name] ([key_name(usr)]) has decreased the PA Control Computer to [strength].")
strength_change()
diff --git a/paradise.dme b/paradise.dme
index 98b5d5d0562..c7abf1abf71 100644
--- a/paradise.dme
+++ b/paradise.dme
@@ -235,7 +235,6 @@
#include "code\datums\wires\robot.dm"
#include "code\datums\wires\smartfridge.dm"
#include "code\datums\wires\syndicatebomb.dm"
-#include "code\datums\wires\taperecorder.dm"
#include "code\datums\wires\vending.dm"
#include "code\datums\wires\wires.dm"
#include "code\defines\vox_sounds.dm"