From 61a7751658ff1c373ba264e24decfdbe3c277113 Mon Sep 17 00:00:00 2001 From: "sieve32@gmail.com" Date: Thu, 23 Aug 2012 19:57:04 +0000 Subject: [PATCH] -Dropped the miner borg drill force down to 3 as it was supposed to be -Added a proc for cyborg modules to 'rebuild', which makes it possible to remove items from the modules without clogging up the module menu -Made the emag for minerborgs work better as a result -Gave borgs their special radios back -Fixed an apparently ancient bug where everything inside a borg will appear on the screen (MMI, cell, radio, etc...). It wasn't complex at all and I can't believe no one had fixed it yet. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4524 316c924e-a436-60f5-8080-3fe189b3f50e --- code/modules/mining/mine_items.dm | 1 + code/modules/mob/living/silicon/robot/life.dm | 9 ++++++++- code/modules/mob/living/silicon/robot/login.dm | 2 +- code/modules/mob/living/silicon/robot/robot.dm | 9 +++++---- .../mob/living/silicon/robot/robot_modules.dm | 13 +++++++++---- 5 files changed, 24 insertions(+), 10 deletions(-) diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index 4d59f34a49..04562d1707 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -262,6 +262,7 @@ proc/move_mining_shuttle() icon_state = "diamonddrill" item_state = "jackhammer" digspeed = 15 + force = 3 desc = "" /*****************************Shovel********************************/ diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm index bc4fa6ef16..12cb99a466 100644 --- a/code/modules/mob/living/silicon/robot/life.dm +++ b/code/modules/mob/living/silicon/robot/life.dm @@ -269,7 +269,14 @@ /mob/living/silicon/robot/proc/update_items() if (src.client) src.client.screen -= src.contents - src.client.screen += src.contents + for(var/obj/I in src.contents) + if(!src.module)//Handles module-less borgs to prevent runtimes + if(!(istype(I,/obj/item/weapon/cell) || istype(I,/obj/item/device/radio) || istype(I,/obj/machinery/camera) || istype(I,/obj/item/device/mmi))) + src.client.screen += I + else + if(I && I in src.module.modules)//If it's not a module, don't show it + src.client.screen += I +// src.client.screen += src.contents if(src.module_state_1) src.module_state_1:screen_loc = ui_inv1 if(src.module_state_2) diff --git a/code/modules/mob/living/silicon/robot/login.dm b/code/modules/mob/living/silicon/robot/login.dm index a9c4873210..6397f05bea 100644 --- a/code/modules/mob/living/silicon/robot/login.dm +++ b/code/modules/mob/living/silicon/robot/login.dm @@ -28,7 +28,7 @@ icon_state = "secborg" modtype = "Synd" - radio = new /obj/item/device/radio(src) + radio = new /obj/item/device/radio/borg(src) if(!scrambledcodes) camera = new /obj/machinery/camera(src) camera.c_tag = real_name diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 88c1c1b881..cde0818d7a 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -22,7 +22,7 @@ var/module_state_2 = null var/module_state_3 = null - var/obj/item/device/radio/radio = null + var/obj/item/device/radio/borg/radio = null var/mob/living/silicon/ai/connected_ai = null var/obj/item/weapon/cell/cell = null var/obj/machinery/camera/camera = null @@ -503,9 +503,10 @@ sleep(20) src << "\red ERRORERRORERROR" src << "\red \b ALERT: [user.real_name] is your new master. Obey your new laws and his commands." - if(istype(src.module, /obj/item/weapon/robot_module/miner)) - src.module.modules -= /obj/item/weapon/pickaxe/borgdrill - src.module.modules += /obj/item/weapon/pickaxe/diamonddrill//Buff when emagged, break down walls, kill men, whatever -Sieve + if(src.module && istype(src.module, /obj/item/weapon/robot_module/miner)) + for(var/obj/item/weapon/pickaxe/borgdrill/D in src.module.modules) + del(D) + src.module.rebuild() updateicon() else user << "You fail to [ locked ? "unlock" : "lock"] [src]'s interface." diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index bea6dc3dfc..8a41706675 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -31,10 +31,15 @@ return - proc/respawn_consumable(var/mob/living/silicon/robot/R) - return - +/obj/item/weapon/robot_module/proc/respawn_consumable(var/mob/living/silicon/robot/R) + return +/obj/item/weapon/robot_module/proc/rebuild()//Rebuilds the list so it's possible to add/remove items from the module + var/list/temp_list = modules + modules = list() + for(var/obj/O in temp_list) + if(O) + modules += O /obj/item/weapon/robot_module/standard name = "standard robot module" @@ -197,7 +202,7 @@ New() ..() src.modules += new /obj/item/borg/sight/meson(src) - src.emag = new /obj/item/borg/stun(src) + src.emag = new /obj/item/weapon/pickaxe/diamonddrill(src) src.modules += new /obj/item/weapon/storage/satchel(src) src.modules += new /obj/item/weapon/pickaxe/borgdrill(src) src.modules += new /obj/item/weapon/sheetsnatcher/borg(src)