diff --git a/code/WorkInProgress/BS12/uplink_kits.dm b/code/WorkInProgress/BS12/uplink_kits.dm
deleted file mode 100644
index 1ef400a9721..00000000000
--- a/code/WorkInProgress/BS12/uplink_kits.dm
+++ /dev/null
@@ -1,53 +0,0 @@
-/obj/item/weapon/storage/syndie_kit
- name = "Box"
- desc = "A sleek, sturdy box"
- icon_state = "box_of_doom"
- item_state = "syringe_kit"
-
-/obj/item/weapon/storage/syndie_kit/imp_freedom
- name = "Freedom Implant (with injector)"
-
-/obj/item/weapon/storage/syndie_kit/imp_freedom/New()
- var/obj/item/weapon/implanter/O = new /obj/item/weapon/implanter(src)
- O.imp = new /obj/item/weapon/implant/freedom(O)
- O.update()
- ..()
- return
-
-/*/obj/item/weapon/storage/syndie_kit/imp_compress
- name = "Compressed Matter Implant (with injector)"
-
-/obj/item/weapon/storage/syndie_kit/imp_compress/New()
- new /obj/item/weapon/implanter/compressed(src)
- ..()
- return
-
-/obj/item/weapon/storage/syndie_kit/imp_explosive
- name = "Explosive Implant (with injector)"
-
-/obj/item/weapon/storage/syndie_kit/imp_explosive/New()
- var/obj/item/weapon/implanter/O = new /obj/item/weapon/implanter(src)
- O.imp = new /obj/item/weapon/implant/explosive(O)
- O.name = "(BIO-HAZARD) BIO-detpack"
- O.update()
- ..()
- return*/
-
-/obj/item/weapon/storage/syndie_kit/imp_uplink
- name = "Uplink Implant (with injector)"
-
-/obj/item/weapon/storage/syndie_kit/imp_uplink/New()
- var/obj/item/weapon/implanter/O = new /obj/item/weapon/implanter(src)
- O.imp = new /obj/item/weapon/implant/uplink(O)
- O.update()
- ..()
- return
-
-/obj/item/weapon/storage/syndie_kit/space
- name = "Space Suit and Helmet"
-
-/obj/item/weapon/storage/syndie_kit/space/New()
- new /obj/item/clothing/suit/space/syndicate(src)
- new /obj/item/clothing/head/helmet/space/syndicate(src)
- ..()
- return
diff --git a/code/WorkInProgress/BS12/uplinks.dm b/code/WorkInProgress/BS12/uplinks.dm
deleted file mode 100644
index cebfe74a174..00000000000
--- a/code/WorkInProgress/BS12/uplinks.dm
+++ /dev/null
@@ -1,471 +0,0 @@
-/*
-
-SYNDICATE UPLINKS
-
-TO-DO:
- Once wizard is fixed, make sure the uplinks work correctly for it. wizard.dm is right now uncompiled and with broken code in it.
-
- Clean the code up and comment it. Part of it is right now copy-pasted, with the general Topic() and modifications by Abi79.
-
- I should take a more in-depth look at both the copy-pasted code for the individual uplinks below, and at each gamemode's code
- to see how uplinks are assigned and if there are any bugs with those.
-
-
-A list of items and costs is stored under the datum of every game mode, alongside the number of crystals, and the welcoming message.
-
-*/
-
-/obj/item/device/uplink
- var/welcome // Welcoming menu message
- var/menu_message = "" // The actual menu text
- var/items // List of items
- var/list/ItemList // Parsed list of items
- var/uses // Numbers of crystals
- var/uplink_data // designated uplink items
- // List of items not to shove in their hands.
- var/list/NotInHand = list(/obj/machinery/singularity_beacon/syndicate)
-
- New()
- if(!welcome)
- welcome = ticker.mode.uplink_welcome
- if(!uplink_data)
- uplink_data = ticker.mode.uplink_items
-
- items = dd_replacetext(uplink_data, "\n", "") // Getting the text string of items
- ItemList = dd_text2list(src.items, ";") // Parsing the items text string
- uses = ticker.mode.uplink_uses
-
-//Let's build a menu!
- proc/generate_menu()
- src.menu_message = "[src.welcome]
"
- src.menu_message += "Tele-Crystals left: [src.uses]
"
- src.menu_message += "
"
- src.menu_message += "Request item:
"
- src.menu_message += "Each item costs a number of tele-crystals as indicated by the number following their name.
"
-
- var/cost
- var/item
- var/name
- var/path_obj
- var/path_text
- var/category_items = 1 //To prevent stupid :P
-
- for(var/D in ItemList)
- var/list/O = stringsplit(D, ":")
- if(O.len != 3) //If it is not an actual item, make a break in the menu.
- if(O.len == 1) //If there is one item, it's probably a title
- src.menu_message += "[O[1]]
"
- category_items = 0
- else //Else, it's a white space.
- if(category_items < 1) //If there were no itens in the last category...
- src.menu_message += "We apologize, as you could not afford anything from this category.
"
- src.menu_message += "
"
- continue
-
- path_text = O[1]
- cost = text2num(O[2])
-
- if(cost>uses)
- continue
-
- path_obj = text2path(path_text)
- item = new path_obj()
- name = O[3]
- del item
-
- src.menu_message += "[name] ([cost])
"
- category_items++
-
- src.menu_message += "Random Item (??)
"
- src.menu_message += "
"
- return
-
- Topic(href, href_list)
- if (href_list["buy_item"])
- if(href_list["buy_item"] == "random")
- var/list/randomItems = list()
-
- //Sorry for all the ifs, but it makes it 1000 times easier for other people/servers to add or remove items from this list
- //Add only items the player can afford:
- if(uses > 19)
- randomItems.Add("/obj/item/weapon/circuitboard/teleporter") //Teleporter Circuit Board (costs 20, for nuke ops)
-
- if(uses > 9)
- randomItems.Add("/obj/item/toy/syndicateballoon")//Syndicate Balloon
- randomItems.Add("/obj/item/weapon/storage/syndie_kit/imp_uplink") //Uplink Implanter
- randomItems.Add("/obj/item/weapon/storage/box/syndicate") //Syndicate bundle
-
- //if(uses > 8) //Nothing... yet.
- //if(uses > 7) //Nothing... yet.
-
- if(uses > 6)
- randomItems.Add("/obj/item/weapon/aiModule/syndicate") //Hacked AI Upload Module
- randomItems.Add("/obj/item/device/radio/beacon/syndicate") //Singularity Beacon
-
- if(uses > 5)
- randomItems.Add("/obj/item/weapon/gun/projectile") //Revolver
-
- if(uses > 4)
- randomItems.Add("/obj/item/weapon/gun/energy/crossbow") //Energy Crossbow
- randomItems.Add("/obj/item/device/powersink") //Powersink
-
- if(uses > 3)
- randomItems.Add("/obj/item/weapon/melee/energy/sword") //Energy Sword
- randomItems.Add("/obj/item/clothing/mask/gas/voice") //Voice Changer
- randomItems.Add("/obj/item/device/chameleon") //Chameleon Projector
-
- if(uses > 2)
- randomItems.Add("/obj/item/weapon/storage/emp_kit") //EMP Grenades
- randomItems.Add("/obj/item/weapon/pen/paralysis") //Paralysis Pen
- randomItems.Add("/obj/item/weapon/cartridge/syndicate") //Detomatix Cartridge
- randomItems.Add("/obj/item/clothing/under/chameleon") //Chameleon Jumpsuit
- randomItems.Add("/obj/item/weapon/card/id/syndicate") //Agent ID Card
- randomItems.Add("/obj/item/weapon/card/emag") //Cryptographic Sequencer
- randomItems.Add("/obj/item/weapon/storage/syndie_kit/space") //Syndicate Space Suit
- randomItems.Add("/obj/item/device/encryptionkey/binary") //Binary Translator Key
- randomItems.Add("/obj/item/weapon/storage/syndie_kit/imp_freedom") //Freedom Implant
- randomItems.Add("/obj/item/clothing/glasses/thermal") //Thermal Imaging Goggles
-
- if(uses > 1)
-/*
- var/list/usrItems = usr.get_contents() //Checks to see if the user has a revolver before giving ammo
- var/hasRevolver = 0
- for(var/obj/I in usrItems) //Only add revolver ammo if the user has a gun that can shoot it
- if(istype(I,/obj/item/weapon/gun/projectile))
- hasRevolver = 1
-
- if(hasRevolver) randomItems.Add("/obj/item/ammo_magazine/a357") //Revolver ammo
-*/
- randomItems.Add("/obj/item/ammo_magazine/a357") //Revolver ammo
- randomItems.Add("/obj/item/clothing/shoes/syndigaloshes") //No-Slip Syndicate Shoes
- randomItems.Add("/obj/item/weapon/plastique") //C4
-
- if(uses > 0)
- randomItems.Add("/obj/item/weapon/soap/syndie") //Syndicate Soap
- randomItems.Add("/obj/item/weapon/storage/toolbox/syndicate") //Syndicate Toolbox
-
- if(!randomItems)
- del(randomItems)
- return 0
- else
- href_list["buy_item"] = pick(randomItems)
-
- switch(href_list["buy_item"]) //Ok, this gets a little messy, sorry.
- if("/obj/item/weapon/circuitboard/teleporter")
- uses -= 20
- if("/obj/item/toy/syndicateballoon" , "/obj/item/weapon/storage/syndie_kit/imp_uplink" , "/obj/item/weapon/storage/box/syndicate")
- uses -= 10
- if("/obj/item/weapon/aiModule/syndicate" , "/obj/item/device/radio/beacon/syndicate")
- uses -= 7
- if("/obj/item/weapon/gun/projectile")
- uses -= 6
- if("/obj/item/weapon/gun/energy/crossbow" , "/obj/item/device/powersink")
- uses -= 5
- if("/obj/item/weapon/melee/energy/sword" , "/obj/item/clothing/mask/gas/voice" , "/obj/item/device/chameleon")
- uses -= 4
- if("/obj/item/weapon/storage/emp_kit" , "/obj/item/weapon/pen/paralysis" , "/obj/item/weapon/cartridge/syndicate" , "/obj/item/clothing/under/chameleon" , \
- "/obj/item/weapon/card/id/syndicate" , "/obj/item/weapon/card/emag" , "/obj/item/weapon/storage/syndie_kit/space" , "/obj/item/device/encryptionkey/binary" , \
- "/obj/item/weapon/storage/syndie_kit/imp_freedom" , "/obj/item/clothing/glasses/thermal")
- uses -= 3
- if("/obj/item/ammo_magazine/a357" , "/obj/item/clothing/shoes/syndigaloshes" , "/obj/item/weapon/plastique")
- uses -= 2
- if("/obj/item/weapon/soap/syndie" , "/obj/item/weapon/storage/toolbox/syndicate")
- uses -= 1
-
- del(randomItems)
- return 1
-
-
-
- if(text2num(href_list["cost"]) > uses) // Not enough crystals for the item
- return 0
-
- //if(usr:mind && ticker.mode.traitors[usr:mind])
- //var/datum/traitorinfo/info = ticker.mode.traitors[usr:mind]
- //info.spawnlist += href_list["buy_item"]
-
- uses -= text2num(href_list["cost"])
-
- return 1
-
-
-/*
- *PDA uplink
- */
-
-//Syndicate uplink hidden inside a traitor PDA
-//Communicate with traitor through the PDA's note function.
-
-/obj/item/device/uplink/pda
- name = "uplink module"
- desc = "An electronic uplink system of unknown origin."
- icon = 'module.dmi'
- icon_state = "power_mod"
- var/obj/item/device/pda/hostpda = null
-
- var/orignote = null //Restore original notes when locked.
- var/active = 0 //Are we currently active?
- var/lock_code = "" //The unlocking password.
-
- proc
- unlock()
- if ((isnull(src.hostpda)) || (src.active))
- return
-
- src.orignote = src.hostpda.note
- src.active = 1
- src.hostpda.mode = 1 //Switch right to the notes program
-
- src.generate_menu()
- print_to_host(menu_message)
-
- for (var/mob/M in viewers(1, src.hostpda.loc))
- if (M.client && M.machine == src.hostpda)
- src.hostpda.attack_self(M)
-
- return
-
- print_to_host(var/text)
- if (isnull(hostpda))
- return
- hostpda.note = text
-
- for (var/mob/M in viewers(1, hostpda.loc))
- if (M.client && M.machine == hostpda)
- hostpda.attack_self(M)
- return
-
- shutdown_uplink()
- if (isnull(src.hostpda))
- return
- active = 0
- hostpda.note = orignote
- if (hostpda.mode==1)
- hostpda.mode = 0
- hostpda.updateDialog()
- return
-
- attack_self(mob/user as mob)
- src.generate_menu()
- src.hostpda.note = src.menu_message
-
-
- Topic(href, href_list)
- if ((isnull(src.hostpda)) || (!src.active))
- return
-
- if (usr.stat || usr.restrained() || !in_range(src.hostpda, usr))
- return
-
- if(..() == 1) // We can afford the item
- var/path_obj = text2path(href_list["buy_item"])
- var/mob/A = src.hostpda.loc
- var/item = new path_obj(get_turf(src.hostpda))
- if(ismob(A) && !(locate(item) in NotInHand)) //&& !istype(item, /obj/spawner))
- if(!A.r_hand)
- item:loc = A
- A.r_hand = item
- item:layer = 20
- else if(!A.l_hand)
- item:loc = A
- A.l_hand = item
- item:layer = 20
- else
- item:loc = get_turf(A)
- usr.update_clothing()
- // usr.client.onBought("[item:name]") When we have the stats again, uncomment.
- /* if(istype(item, /obj/spawner)) // Spawners need to have del called on them to avoid leaving a marker behind
- del item*/
- //HEADFINDBACK
- src.attack_self(usr)
- src.hostpda.attack_self(usr)
- return
-
-
-/*
- *Portable radio uplink
- */
-
-//A Syndicate uplink disguised as a portable radio
-/obj/item/device/uplink/radio/implanted
- New()
- ..()
- uses = 5
- return
-
- explode()
- var/obj/item/weapon/implant/uplink/U = src.loc
- var/mob/living/A = U.imp_in
- A.gib()
- ..()
-// var/turf/location = get_turf(src.loc)
-// if(location)
-// location.hotspot_expose(700,125)
-// explosion(location, 0, 0, 2, 4, 1)
-
-// var/obj/item/weapon/implant/uplink/U = src.loc
-// var/mob/living/A = U.imp_in
-// var/datum/organ/external/head = A:organs["head"]
-// head.destroyed = 1
-// spawn(2)
-// head.droplimb()
-// del(src.master)
-// del(src)
-// return
-
-
-/obj/item/device/uplink/radio
- name = "ship bounced radio"
- icon = 'radio.dmi'
- icon_state = "radio"
- var/temp = null //Temporary storage area for a message offering the option to destroy the radio
- var/selfdestruct = 0 //Set to 1 while the radio is self destructing itself.
- var/obj/item/device/radio/origradio = null
- flags = FPRINT | TABLEPASS | CONDUCT
- slot_flags = SLOT_BELT
- w_class = 2.0
- item_state = "radio"
- throwforce = 5
- throw_speed = 4
- throw_range = 20
- m_amt = 100
-
- attack_self(mob/user as mob)
- var/dat
-
- if (src.selfdestruct)
- dat = "Self Destructing..."
- else
- if (src.temp)
- dat = "[src.temp]
Clear"
- else
- src.generate_menu()
- dat = src.menu_message
- if (src.origradio) // Checking because sometimes the radio uplink may be spawned by itself, not as a normal unlockable radio
- dat += "Lock
"
- dat += "
"
- dat += "Self-Destruct"
-
- user << browse(dat, "window=radio")
- onclose(user, "radio")
- return
-
- Topic(href, href_list)
- if (usr.stat || usr.restrained())
- return
-
- if (!( istype(usr, /mob/living/carbon/human)))
- return 1
-
- if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf)) || istype(src.loc,/obj/item/weapon/implant/uplink)))
- usr.machine = src
-
- if(href_list["buy_item"])
- if(..() == 1) // We can afford the item
- var/path_obj = text2path(href_list["buy_item"])
- var/item = new path_obj(get_turf(src.loc))
- var/mob/A = src.loc
- if(istype(src.loc,/obj/item/weapon/implant/uplink))
- var/obj/item/weapon/implant/uplink/U = src.loc
- A = U.imp_in
- if(ismob(A) && !(locate(item) in NotInHand)) //&& !istype(item, /obj/spawner))
- if(!A.r_hand)
- item:loc = A
- A.r_hand = item
- item:layer = 20
- else if(!A.l_hand)
- item:loc = A
- A.l_hand = item
- item:layer = 20
- else
- item:loc = get_turf(A)
- /* if(istype(item, /obj/spawner)) // Spawners need to have del called on them to avoid leaving a marker behind
- del item*/
- // usr.client.onBought("[item:name]") When we have the stats again, uncomment.
- src.attack_self(usr)
- return
-
- else if (href_list["lock"] && src.origradio)
- // presto chango, a regular radio again! (reset the freq too...)
- usr.machine = null
- usr << browse(null, "window=radio")
- var/obj/item/device/radio/T = src.origradio
- var/obj/item/device/uplink/radio/R = src
- R.loc = T
- T.loc = usr
- // R.layer = initial(R.layer)
- R.layer = 0
- if (usr.client)
- usr.client.screen -= R
- if (usr.r_hand == R)
- usr.u_equip(R)
- usr.r_hand = T
-
- else
- usr.u_equip(R)
- usr.l_hand = T
- R.loc = T
- T.layer = 20
- T.set_frequency(initial(T.frequency))
- T.attack_self(usr)
- return
-
- else if (href_list["selfdestruct"])
- src.temp = "Self-Destruct"
-
- else if (href_list["selfdestruct2"])
- src.selfdestruct = 1
- spawn (100)
- explode()
- return
-
- else if (href_list["clear_selfdestruct"])
- src.temp = null
-
- attack_self(usr)
-// if (istype(src.loc, /mob))
-// attack_self(src.loc)
-// else
-// for(var/mob/M in viewers(1, src))
-// if (M.client)
-// src.attack_self(M)
- return
-
- proc/explode()
- var/turf/location = get_turf(src.loc)
- if(location)
- location.hotspot_expose(700,125)
- explosion(location, 0, 0, 2, 4, 1)
-
- del(src.master)
- del(src)
- return
-
- proc/shutdown_uplink()
- if (!src.origradio)
- return
- var/list/nearby = viewers(1, src)
- for(var/mob/M in nearby)
- if (M.client && M.machine == src)
- M << browse(null, "window=radio")
- M.machine = null
-
- var/obj/item/device/radio/T = src.origradio
- var/obj/item/device/uplink/radio/R = src
- var/mob/L = src.loc
- R.loc = T
- T.loc = L
- // R.layer = initial(R.layer)
- R.layer = 0
- if (istype(L))
- if (L.client)
- L.client.screen -= R
- if (L.r_hand == R)
- L.u_equip(R)
- L.r_hand = T
- else
- L.u_equip(R)
- L.l_hand = T
- T.layer = 20
- T.set_frequency(initial(T.frequency))
- return
\ No newline at end of file
diff --git a/code/game/machinery/flasher.dm b/code/game/machinery/flasher.dm
index 5bac5b6e5a4..8bea5268fe7 100644
--- a/code/game/machinery/flasher.dm
+++ b/code/game/machinery/flasher.dm
@@ -77,10 +77,6 @@
if (istype(O, /mob/living/carbon/alien))//So aliens don't get flashed (they have no external eyes)/N
continue
- if (istype(O, /mob/living/silicon/robot))
- if(O:flashproof())
- continue
-
O.Weaken(strength)
if ((O.eye_stat > 15 && prob(O.eye_stat + 50)))
flick("e_flash", O:flash)
diff --git a/code/game/magic/cultist/ritual.dm b/code/game/magic/cultist/ritual.dm
index d3dba85a782..dd1b5c6407a 100644
--- a/code/game/magic/cultist/ritual.dm
+++ b/code/game/magic/cultist/ritual.dm
@@ -138,8 +138,8 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology",
if(!iscultist(user))
user << "You can't mouth the arcane scratchings without fumbling over them."
return
- if(istype(user.wear_mask, /obj/item/clothing/mask/muzzle) || user.ear_deaf)
- user << "You need to be able to both speak and hear to use runes."
+ if(istype(user.wear_mask, /obj/item/clothing/mask/muzzle))
+ user << "You are unable to speak the words of the rune."
return
if(!word1 || !word2 || !word3 || prob(usr.getBrainLoss()))
return fizzle()
diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm
index 4d46c3b81af..eee2a45de07 100644
--- a/code/game/mecha/mech_fabricator.dm
+++ b/code/game/mecha/mech_fabricator.dm
@@ -117,9 +117,6 @@
/obj/item/borg/upgrade/vtec,
/obj/item/borg/upgrade/tasercooler,
/obj/item/borg/upgrade/jetpack
- ///obj/item/borg/upgrade/flashproof
-
-
),
diff --git a/code/game/objects/devices/flash.dm b/code/game/objects/devices/flash.dm
index 7a9cdfd9051..55541e87d3c 100644
--- a/code/game/objects/devices/flash.dm
+++ b/code/game/objects/devices/flash.dm
@@ -93,10 +93,8 @@
flashfail = 1
else if(issilicon(M))
- if(!M:flashproof())
- M.Weaken(rand(5,10))
- else
- flashfail++
+ M.Weaken(rand(5,10))
+ flashfail++
if(isrobot(user))
spawn(0)
diff --git a/code/modules/mob/living/silicon/robot/robot_upgrades.dm b/code/game/objects/items/robot_upgrades.dm
similarity index 82%
rename from code/modules/mob/living/silicon/robot/robot_upgrades.dm
rename to code/game/objects/items/robot_upgrades.dm
index d7f63d38a31..e82f705a32a 100644
--- a/code/modules/mob/living/silicon/robot/robot_upgrades.dm
+++ b/code/game/objects/items/robot_upgrades.dm
@@ -37,24 +37,6 @@
return 1
-
-/obj/item/borg/upgrade/flashproof/
- name = "Borg Flash-Supression"
- desc = "A highly advanced, complicated system for supressing incoming flashes directed at the borg's optical processing system."
- construction_cost = list("metal"=10000,"gold"=2000,"silver"=3000,"glass"=2000, "diamond"=5000)
- icon_state = "cyborg_upgrade4"
- require_module = 1
-
-
-/obj/item/borg/upgrade/flashproof/New() // Why the fuck does the fabricator make a new instance of all the items?
- //desc = "Sunglasses with duct tape." // Why? D:
-
-/obj/item/borg/upgrade/flashproof/action(var/mob/living/silicon/robot/R)
- if(R.module)
- R.module += src
-
- return 1
-
/obj/item/borg/upgrade/restart/
name = "Borg emergency restart module"
desc = "Used to force a restart of a disabled-but-repaired borg, bringing it back online."
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index 4d5cbf42d93..077a6619833 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -1057,12 +1057,4 @@ Frequency:
if(R)
R.UnlinkSelf()
R << "Buffers flushed and reset. All systems operational."
- src.verbs -= /mob/living/silicon/robot/proc/ResetSecurityCodes
-
-
-/mob/living/silicon/robot/proc/flashproof()
- if(module)
- for(var/obj/item/borg/upgrade/flashproof/F in module.modules)
- return 1
-
- return 0
\ No newline at end of file
+ src.verbs -= /mob/living/silicon/robot/proc/ResetSecurityCodes
\ No newline at end of file
diff --git a/code/modules/mob/living/silicon/robot/robot_defense.dm b/code/modules/mob/living/silicon/robot/robot_defense.dm
deleted file mode 100644
index e69de29bb2d..00000000000
diff --git a/tgstation.dme b/tgstation.dme
index 015d0ab94c4..5a7fd9ac418 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -156,7 +156,6 @@
#define FILE_DIR "code/unused/powerarmor"
#define FILE_DIR "code/unused/spacecraft"
#define FILE_DIR "code/WorkInProgress"
-#define FILE_DIR "code/WorkInProgress/BS12"
#define FILE_DIR "code/WorkInProgress/mapload"
#define FILE_DIR "code/WorkInProgress/organs"
#define FILE_DIR "code/WorkInProgress/virus2"
@@ -674,6 +673,7 @@
#include "code\game\objects\items\item.dm"
#include "code\game\objects\items\robot_items.dm"
#include "code\game\objects\items\robot_parts.dm"
+#include "code\game\objects\items\robot_upgrades.dm"
#include "code\game\objects\items\shock_kit.dm"
#include "code\game\objects\items\tk_grab.dm"
#include "code\game\objects\items\trash.dm"
@@ -987,10 +987,8 @@
#include "code\modules\mob\living\silicon\robot\life.dm"
#include "code\modules\mob\living\silicon\robot\login.dm"
#include "code\modules\mob\living\silicon\robot\robot.dm"
-#include "code\modules\mob\living\silicon\robot\robot_defense.dm"
#include "code\modules\mob\living\silicon\robot\robot_modules.dm"
#include "code\modules\mob\living\silicon\robot\robot_movement.dm"
-#include "code\modules\mob\living\silicon\robot\robot_upgrades.dm"
#include "code\modules\mob\living\silicon\robot\say.dm"
#include "code\modules\mob\living\silicon\robot\wires.dm"
#include "code\modules\mob\new_player\hud.dm"