From 48088db9f813bdd80defa93b91439cbdd16138f2 Mon Sep 17 00:00:00 2001 From: Markolie Date: Thu, 30 Jul 2015 20:03:57 +0200 Subject: [PATCH 01/12] Add multi-clonepod support to cloner --- code/game/area/areas.dm | 12 ++++++ code/game/machinery/cloning.dm | 54 ++++++++++++++----------- code/game/machinery/computer/cloning.dm | 53 +++++++++++++----------- 3 files changed, 72 insertions(+), 47 deletions(-) diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index b0914724fa6..4b58839ce1f 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -39,6 +39,18 @@ // spawn(15) power_change() // all machines set to current power level, also updates lighting icon +/area/proc/get_contents() + var/list/concat_contents = list() + for (var/area/RA in related) + concat_contents |= RA.contents + return concat_contents + +/area/proc/get_cameras() + var/list/cameras = list() + for (var/area/RA in related) + for (var/obj/machinery/camera/C in RA) + cameras += C + return cameras /area/proc/poweralert(var/state, var/obj/source as obj) if (state != poweralm) diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index ff6eccaa2a6..df0a76940f2 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -44,6 +44,8 @@ component_parts += new /obj/item/stack/cable_coil(src, 1) component_parts += new /obj/item/stack/cable_coil(src, 1) RefreshParts() + update_icon() + /obj/machinery/clonepod/upgraded/New() ..() @@ -219,7 +221,6 @@ R.dna.real_name = "clone ([rand(0,999)])" H.real_name = R.dna.real_name - src.icon_state = "pod_1" //Get the clone body ready H.adjustCloneLoss(190) //new damage var so you can't eject a clone early then stab them to abuse the current damage system --NeoFite H.adjustBrainLoss(90) // The rand(10, 30) will come out as extra brain damage @@ -271,6 +272,8 @@ H.h_style = pick("Bedhead", "Bedhead 2", "Bedhead 3") */ H.set_species(R.dna.species) + + update_icon() for(var/datum/language/L in R.languages) H.add_language(L.name) @@ -324,8 +327,6 @@ src.occupant = null if (src.locked) src.locked = 0 - if (!src.mess && !panel_open) - icon_state = "pod_0" //use_power(200) return @@ -347,6 +348,7 @@ if(panel_open) default_deconstruction_crowbar(W) return + if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda)) if (!src.check_access(W)) user << "\red Access Denied." @@ -359,13 +361,6 @@ else src.locked = 0 user << "System unlocked." - else if (istype(W, /obj/item/weapon/card/emag)) - if (isnull(src.occupant)) - return - user << "You force an emergency ejection." - src.locked = 0 - src.go_out() - return //Removing cloning pod biomass else if (istype(W, /obj/item/weapon/reagent_containers/food/snacks/meat)) @@ -389,8 +384,21 @@ user.visible_message("[user] secures [src] to the floor.", "You secure [src] to the floor.") else user.visible_message("[user] unsecures [src] from the floor.", "You unsecure [src] from the floor.") + else if(istype(W, /obj/item/device/multitool)) + var/obj/item/device/multitool/M = W + M.buffer = src + user << "You load connection data from [src] to [M]." + return else ..() + +/obj/machinery/clonepod/emag_act(user as mob) + if (isnull(src.occupant)) + return + user << "You force an emergency ejection." + src.locked = 0 + src.go_out() + return //Put messages in the connected computer's temp var for display. /obj/machinery/clonepod/proc/connected_message(var/message) @@ -399,7 +407,7 @@ if (!message) return 0 - src.connected.temp = message + src.connected.temp = "[name] : [message]" src.connected.updateUsrDialog() return 1 @@ -420,12 +428,7 @@ if (src.mess) //Clean that mess and dump those gibs! src.mess = 0 gibs(src.loc) - src.icon_state = "pod_0" - - /* - for(var/obj/O in src) - O.loc = src.loc - */ + update_icon() return if (!(src.occupant)) @@ -435,31 +438,34 @@ if (src.locked) user << "The cloning pod is locked!" return - /* - for(var/obj/O in src) - O.loc = src.loc - */ if (src.occupant.client) src.occupant.client.eye = src.occupant.client.mob src.occupant.client.perspective = MOB_PERSPECTIVE src.occupant.loc = src.loc - src.icon_state = "pod_0" src.eject_wait = 0 //If it's still set somehow. domutcheck(src.occupant) //Waiting until they're out before possible notransform. src.occupant = null - + update_icon() return /obj/machinery/clonepod/proc/malfunction() if(src.occupant) src.connected_message("Critical Error!") src.mess = 1 - src.icon_state = "pod_g" + update_icon() src.occupant.ghostize() spawn(5) qdel(src.occupant) return + +/obj/machinery/clonepod/update_icon() + ..() + icon_state = "pod_0" + if (occupant && !(stat & NOPOWER)) + icon_state = "pod_1" + else if (mess && !panel_open) + icon_state = "pod_g" /obj/machinery/clonepod/relaymove(mob/user as mob) if (user.stat) diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index bb0cfb2d1bc..7e2d1b78d40 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -6,7 +6,7 @@ circuit = "/obj/item/weapon/circuitboard/cloning" req_access = list(access_heads) //Only used for record deletion right now. var/obj/machinery/dna_scannernew/scanner = null //Linked scanner. For scanning. - var/obj/machinery/clonepod/pod1 = null //Linked cloning pod. + var/list/pods = list() //Linked cloning pods. var/temp = "" var/scantemp = "Scanner ready." var/menu = 1 //Which menu screen to display @@ -41,38 +41,35 @@ /obj/machinery/computer/cloning/proc/updatemodules() src.scanner = findscanner() - src.pod1 = findcloner() - - if (!isnull(src.pod1)) - src.pod1.connected = src // Some variable the pod needs + findcloner() + var/num = 1 + for (var/obj/machinery/clonepod/pod in pods) + pod.connected = src + pod.name = "[initial(pod.name)] #[num++]" /obj/machinery/computer/cloning/proc/findscanner() var/obj/machinery/dna_scannernew/scannerf = null - // Loop through every direction + //Try to find scanner on adjacent tiles first for(dir in list(NORTH,EAST,SOUTH,WEST)) - - // Try to find a scanner in that direction scannerf = locate(/obj/machinery/dna_scannernew, get_step(src, dir)) + if (scannerf) + return scannerf - // If found, then we break, and return the scanner - if (!isnull(scannerf)) - break + //Then look for a free one in the area + if(!scannerf) + for(var/obj/machinery/dna_scannernew/S in get_area(src)) + return S - // If no scanner was found, it will return null - return scannerf + return /obj/machinery/computer/cloning/proc/findcloner() - var/obj/machinery/clonepod/podf = null + pods.Cut() + for(var/obj/machinery/clonepod/P in get_area(src)) + if(!P.connected) + pods += P - for(dir in list(NORTH,EAST,SOUTH,WEST)) - - podf = locate(/obj/machinery/clonepod, get_step(src, dir)) - - if (!isnull(podf)) - break - - return podf + return /obj/machinery/computer/cloning/attackby(obj/item/W as obj, mob/user as mob, params) if (istype(W, /obj/item/weapon/disk/data)) //INSERT SOME DISKETTES @@ -83,6 +80,15 @@ user << "You insert [W]." nanomanager.update_uis(src) return + else if(istype(W, /obj/item/device/multitool)) + var/obj/item/device/multitool/M = W + if(M.buffer && istype(M.buffer, /obj/machinery/clonepod)) + var/obj/machinery/clonepod/P = M.buffer + if(P && !(P in pods)) + pods += P + P.connected = src + P.name = "[initial(P.name)] #[pods.len]" + user << "You connect [P] to [src]." else ..() return @@ -109,7 +115,8 @@ data["menu"] = src.menu data["scanner"] = src.scanner - data["pod"] = src.pod1 + if(pods.len) + data["pod"] = src.pods data["loading"] = loading data["autoprocess"] = autoprocess if(scanner && pod1 && ((scanner.scan_level > 2) || (pod1.efficiency > 5))) From d349beec3cca983126e308b50ab780bc0e8614df Mon Sep 17 00:00:00 2001 From: Markolie Date: Thu, 30 Jul 2015 21:58:19 +0200 Subject: [PATCH 02/12] Add NanoUI multi-clone pod support --- code/game/area/areas.dm | 13 --- code/game/dna/dna_modifier.dm | 2 +- code/game/machinery/cloning.dm | 7 +- code/game/machinery/computer/cloning.dm | 147 +++++++++++++----------- nano/templates/cloning_console.tmpl | 54 +++++---- 5 files changed, 121 insertions(+), 102 deletions(-) diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 4b58839ce1f..f0e9bd07be9 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -39,19 +39,6 @@ // spawn(15) power_change() // all machines set to current power level, also updates lighting icon -/area/proc/get_contents() - var/list/concat_contents = list() - for (var/area/RA in related) - concat_contents |= RA.contents - return concat_contents - -/area/proc/get_cameras() - var/list/cameras = list() - for (var/area/RA in related) - for (var/obj/machinery/camera/C in RA) - cameras += C - return cameras - /area/proc/poweralert(var/state, var/obj/source as obj) if (state != poweralm) poweralm = state diff --git a/code/game/dna/dna_modifier.dm b/code/game/dna/dna_modifier.dm index 81be2a537b2..ef87104bd35 100644 --- a/code/game/dna/dna_modifier.dm +++ b/code/game/dna/dna_modifier.dm @@ -77,7 +77,7 @@ component_parts += new /obj/item/stack/cable_coil(src, 1) component_parts += new /obj/item/stack/cable_coil(src, 1) RefreshParts() - + /obj/machinery/dna_scannernew/RefreshParts() scan_level = 0 damage_coeff = 0 diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index df0a76940f2..3b4fc5c4377 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -59,6 +59,11 @@ component_parts += new /obj/item/stack/cable_coil(src, 1) component_parts += new /obj/item/stack/cable_coil(src, 1) RefreshParts() + +/obj/machinery/clonepod/Destroy() + if(connected) + connected.pods -= src + ..() /obj/machinery/clonepod/RefreshParts() speed_coeff = 0 @@ -375,7 +380,7 @@ else if(src.anchored) src.anchored = 0 - connected.pod1 = null + connected.pods -= src connected = null else src.anchored = 1 diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index 7e2d1b78d40..1ecc02fdb7b 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -15,37 +15,38 @@ var/obj/item/weapon/disk/data/diskette = null //Mostly so the geneticist can steal everything. var/loading = 0 // Nice loading text var/autoprocess = 0 - var/data[0] + var/obj/machinery/clonepod/selected_pod light_color = LIGHT_COLOR_DARKBLUE -/obj/machinery/computer/cloning/New() +/obj/machinery/computer/cloning/initialize() + ..() + updatemodules() + +/obj/machinery/computer/cloning/Destroy() + releasecloner() ..() - spawn(5) - updatemodules() - return - return /obj/machinery/computer/cloning/process() - if(!(scanner && pod1 && autoprocess)) + if(!scanner || !pods.len || !autoprocess) return if(scanner.occupant && (scanner.scan_level > 2)) scan_mob(scanner.occupant) - if(!(pod1.occupant || pod1.mess) && (pod1.efficiency > 5)) - for(var/datum/dna2/record/R in src.records) - if(!(pod1.occupant || pod1.mess)) - if(pod1.growclone(R)) - records.Remove(R) - + for (var/obj/machinery/clonepod/pod in pods) + if(!(pod.occupant || pod.mess) && (pod.efficiency > 5)) + for(var/datum/dna2/record/R in src.records) + if(!(pod.occupant || pod.mess)) + if(pod.growclone(R)) + records.Remove(R) + /obj/machinery/computer/cloning/proc/updatemodules() src.scanner = findscanner() + releasecloner() findcloner() - var/num = 1 - for (var/obj/machinery/clonepod/pod in pods) - pod.connected = src - pod.name = "[initial(pod.name)] #[num++]" + if(!selected_pod) + selected_pod = pods[1] /obj/machinery/computer/cloning/proc/findscanner() var/obj/machinery/dna_scannernew/scannerf = null @@ -63,13 +64,19 @@ return -/obj/machinery/computer/cloning/proc/findcloner() +/obj/machinery/computer/cloning/proc/releasecloner() + for(var/obj/machinery/clonepod/P in pods) + P.connected = null + P.name = initial(P.name) pods.Cut() + +/obj/machinery/computer/cloning/proc/findcloner() + var/num = 1 for(var/obj/machinery/clonepod/P in get_area(src)) if(!P.connected) pods += P - - return + P.connected = src + P.name = "[initial(P.name)] #[num++]" /obj/machinery/computer/cloning/attackby(obj/item/W as obj, mob/user as mob, params) if (istype(W, /obj/item/weapon/disk/data)) //INSERT SOME DISKETTES @@ -108,31 +115,40 @@ ui_interact(user) /obj/machinery/computer/cloning/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) - if(..()) - return if(stat & (NOPOWER|BROKEN)) return - + var/data[0] data["menu"] = src.menu - data["scanner"] = src.scanner + data["scanner"] = src.scanner + + var/canpodautoprocess = 0 if(pods.len) - data["pod"] = src.pods + data["numberofpods"] = src.pods.len + + var/list/tempods[0] + for (var/obj/machinery/clonepod/pod in pods) + if(pod.efficiency > 5) + canpodautoprocess = 1 + + tempods.Add(list(list("pod" = "\ref[pod]", "name" = capitalize(pod.name), "biomass" = pod.biomass))) + data["pods"] = tempods + data["loading"] = loading data["autoprocess"] = autoprocess - if(scanner && pod1 && ((scanner.scan_level > 2) || (pod1.efficiency > 5))) + + if(scanner && pods.len && ((scanner.scan_level > 2) || canpodautoprocess)) data["autoallowed"] = 1 else data["autoallowed"] = 0 if(src.scanner) data["occupant"] = src.scanner.occupant data["locked"] = src.scanner.locked - if(src.pod1) - data["biomass"] = src.pod1.biomass data["temp"] = temp data["scantemp"] = scantemp data["disk"] = src.diskette + data["selected_pod"] = "\ref[selected_pod]" var/list/temprecords[0] - for(var/datum/dna2/record/R in src.records) + for(var/datum/dna2/record/R in records) var tempRealName = R.dna.real_name temprecords.Add(list(list("record" = "\ref[R]", "realname" = tempRealName))) data["records"] = temprecords @@ -149,15 +165,15 @@ data["realname"] = src.active_record.dna.real_name data["unidentity"] = src.active_record.dna.uni_identity data["strucenzymes"] = src.active_record.dna.struc_enzymes - if(pod1 && pod1.biomass >= CLONE_BIOMASS) - data["enoughbiomass"] = 1 + if(selected_pod && (selected_pod in pods) && selected_pod.biomass >= CLONE_BIOMASS) + data["podready"] = 1 else - data["enoughbiomass"] = 0 + data["podready"] = 0 // Set up the Nano UI ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) - ui = new(user, src, ui_key, "cloning_console.tmpl", "Cloning Console UI", 640, 480) + ui = new(user, src, ui_key, "cloning_console.tmpl", "Cloning Console UI", 640, 520) ui.set_initial_data(data) ui.open() @@ -172,13 +188,11 @@ scantemp = "Scanner ready." loading = 1 - nanomanager.update_uis(src) spawn(20) src.scan_mob(src.scanner.occupant) loading = 0 - nanomanager.update_uis(src) if(href_list["task"]) switch(href_list["task"]) @@ -195,7 +209,6 @@ src.scanner.locked = 1 else src.scanner.locked = 0 - nanomanager.update_uis(src) else if (href_list["view_rec"]) src.active_record = locate(href_list["view_rec"]) @@ -208,7 +221,6 @@ else src.active_record = null src.temp = "Error: Record missing." - nanomanager.update_uis(src) else if (href_list["del_rec"]) if ((!src.active_record) || (src.menu < 3)) @@ -227,30 +239,26 @@ src.menu = 2 else src.temp = "Error: Access denied." - nanomanager.update_uis(src) else if (href_list["disk"]) //Load or eject. switch(href_list["disk"]) if("load") if ((isnull(src.diskette)) || isnull(src.diskette.buf)) src.temp = "Error: The disk's data could not be read." - nanomanager.update_uis(src) return if (isnull(src.active_record)) src.temp = "Error: No active record was found." src.menu = 1 - nanomanager.update_uis(src) return src.active_record = src.diskette.buf src.temp = "Load successful." - nanomanager.update_uis(src) + if("eject") if (!isnull(src.diskette)) src.diskette.loc = src.loc - src.diskette = null - nanomanager.update_uis(src) + src.diskette = null else if (href_list["save_disk"]) //Save to disk! if ((isnull(src.diskette)) || (src.diskette.read_only) || (isnull(src.active_record))) @@ -270,46 +278,53 @@ src.diskette.buf.types=DNA2_BUF_SE src.diskette.name = "data disk - '[src.active_record.dna.real_name]'" src.temp = "Save \[[href_list["save_disk"]]\] successful." - nanomanager.update_uis(src) else if (href_list["refresh"]) nanomanager.update_uis(src) + + else if (href_list["selectpod"]) + var/obj/machinery/clonepod/selected = locate(href_list["selectpod"]) + if(istype(selected) && (selected in pods)) + selected_pod = selected else if (href_list["clone"]) var/datum/dna2/record/C = locate(href_list["clone"]) //Look for that player! They better be dead! - if(C) + if(istype(C)) //Can't clone without someone to clone. Or a pod. Or if the pod is busy. Or full of gibs. - if(!pod1) + if(!pods.len) temp = "Error: No cloning pod detected." - else if(pod1.occupant) - temp = "Error: The cloning pod is currently occupied." - else if(pod1.biomass < CLONE_BIOMASS) - temp = "Error: Not enough biomass." - else if(pod1.mess) - temp = "Error: The cloning pod is malfunctioning." - else if(!config.revival_cloning) - temp = "Error: Unable to initiate cloning cycle." - else if(pod1.growclone(C)) - temp = "Initiating cloning cycle..." - records.Remove(C) - qdel(C) - menu = 1 - else - var/mob/selected = find_dead_player("[C.ckey]") - selected << 'sound/machines/chime.ogg' //probably not the best sound but I think it's reasonable - var/answer = alert(selected,"Do you want to return to life?","Cloning","Yes","No") - if(answer != "No" && pod1.growclone(C)) + else + var/obj/machinery/clonepod/pod = selected_pod + if (!selected_pod) + temp = "Error: No cloning pod selected." + else if(pod.occupant) + temp = "Error: The cloning pod is currently occupied." + else if(pod.biomass < CLONE_BIOMASS) + temp = "Error: Not enough biomass." + else if(pod.mess) + temp = "Error: The cloning pod is malfunctioning." + else if(!config.revival_cloning) + temp = "Error: Unable to initiate cloning cycle." + else if(pod.growclone(C)) temp = "Initiating cloning cycle..." records.Remove(C) qdel(C) menu = 1 else - temp = "Initiating cloning cycle...
Error: Post-initialisation failed. Cloning cycle aborted." + var/mob/selected = find_dead_player("[C.ckey]") + selected << 'sound/machines/chime.ogg' //probably not the best sound but I think it's reasonable + var/answer = alert(selected,"Do you want to return to life?","Cloning","Yes","No") + if(answer != "No" && pod.growclone(C)) + temp = "Initiating cloning cycle..." + records.Remove(C) + qdel(C) + menu = 1 + else + temp = "Initiating cloning cycle...
Error: Post-initialisation failed. Cloning cycle aborted." else temp = "Error: Data corruption." - nanomanager.update_uis(src) else if (href_list["menu"]) src.menu = text2num(href_list["menu"]) diff --git a/nano/templates/cloning_console.tmpl b/nano/templates/cloning_console.tmpl index 668f6a44917..7f82878aaa1 100644 --- a/nano/templates/cloning_console.tmpl +++ b/nano/templates/cloning_console.tmpl @@ -41,30 +41,42 @@ Used In File(s): \code\game\machinery\computer\cloning.dm
-
Pod
-
- {{if data.pod}} Found!{{else}} Error: Not detected!{{/if}} +
Pods
+
+ {{if data.numberofpods}} Found {{:data.numberofpods}}!{{else}} Error: None detected!{{/if}}
{{if data.scanner}} -

Scanner Functions

- {{if data.loading}} - Scanning... - {{else}} - {{:data.scantemp}} +

Scanner Functions

+ {{if data.loading}} + Scanning... + {{else}} + {{:data.scantemp}} + {{/if}} +
+
Scan Occupant
+
{{:helper.link('Scan', 'search', {'scan' : 1}, !data.occupant ? 'disabled' : '')}}
+
+
+
Scanner Lock
+
{{if data.occupant}}{{:helper.link('Engaged', 'locked', {'lock' : 1}, data.locked ? 'selected' : '')}}{{else}} {{:helper.link('Engaged', 'locked', null, 'disabled')}}{{/if}}{{:helper.link('Disengaged', 'unlocked', {'lock' : 1}, !data.locked ? 'selected' : '')}}
+
{{/if}} -
-
Scan Occupant
-
{{:helper.link('Scan', 'search', {'scan' : 1}, !data.occupant ? 'disabled' : '')}}
-
-
-
Scanner Lock
-
{{if data.occupant}}{{:helper.link('Engaged', 'locked', {'lock' : 1}, data.locked ? 'selected' : '')}}{{else}} {{:helper.link('Engaged', 'locked', null, 'disabled')}}{{/if}}{{:helper.link('Disengaged', 'unlocked', {'lock' : 1}, !data.locked ? 'selected' : '')}}
-
-
-
Biomass
-
{{:data.biomass}}
-
+ {{if data.numberofpods}} +

Pods

+ {{for data.pods}} +
+ {{:value.name}} +
Biomass
+
+ {{:value.biomass}} +
+
Select
+
+ {{:helper.link('Select', 'check', {'selectpod' : value.pod}, value.pod == data.selected_pod ? 'selected' : '')}} +
+
+ {{/for}} {{/if}} {{/if}} {{if data.menu == 2}} @@ -106,7 +118,7 @@ Used In File(s): \code\game\machinery\computer\cloning.dm {{/if}}
Actions
-
{{:helper.link('Clone', 'arrowreturnthick-1-e', {'clone' : data.activerecord}, !data.enoughbiomass ? 'disabled' : '')}}{{:helper.link('Delete', 'trash', {'del_rec' : 1})}}
+
{{:helper.link('Clone', 'arrowreturnthick-1-e', {'clone' : data.activerecord}, !data.podready ? 'disabled' : '')}}{{:helper.link('Delete', 'trash', {'del_rec' : 1})}}
{{/if}} {{/if}} From f939800c68e2b9596d548a99fed9546235eb460e Mon Sep 17 00:00:00 2001 From: Markolie Date: Thu, 30 Jul 2015 22:19:32 +0200 Subject: [PATCH 03/12] Update upgradable machinery New code --- code/game/dna/dna_modifier.dm | 28 ++++++------- code/game/machinery/Freezer.dm | 28 ++++++------- code/game/machinery/Sleeper.dm | 32 +++++++-------- code/game/machinery/adv_med.dm | 28 +++++++++---- code/game/machinery/biogenerator.dm | 28 +++++++++---- code/game/machinery/cloning.dm | 32 +++++++-------- code/game/machinery/cryo.dm | 28 ++++++------- code/game/machinery/rechargestation.dm | 21 +++++----- code/game/mecha/mech_bay.dm | 28 ++++++------- .../game/vehicles/spacepods/pod_fabricator.dm | 1 + code/modules/hydroponics/trays/tray.dm | 8 ++-- code/modules/mining/equipment_locker.dm | 11 +++++ code/modules/power/pacman2.dm | 23 ++++++++--- code/modules/power/port_gen.dm | 23 ++++++++--- code/modules/power/smes.dm | 41 +++++++++++++------ code/modules/reagents/Chemistry-Machinery.dm | 26 ++++++++---- code/modules/reagents/newchem/chem_heater.dm | 14 +++++-- code/modules/research/circuitprinter.dm | 23 ++++++++--- code/modules/research/destructive_analyzer.dm | 9 ++++ code/modules/research/protolathe.dm | 28 +++++++++---- code/modules/research/server.dm | 19 ++++++--- code/modules/telesci/telepad.dm | 11 +++++ 22 files changed, 317 insertions(+), 173 deletions(-) diff --git a/code/game/dna/dna_modifier.dm b/code/game/dna/dna_modifier.dm index ef87104bd35..7239061a61d 100644 --- a/code/game/dna/dna_modifier.dm +++ b/code/game/dna/dna_modifier.dm @@ -57,25 +57,25 @@ /obj/machinery/dna_scannernew/New() ..() component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/clonescanner(src) - component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) - component_parts += new /obj/item/weapon/stock_parts/console_screen(src) - component_parts += new /obj/item/stack/cable_coil(src, 1) - component_parts += new /obj/item/stack/cable_coil(src, 1) + component_parts += new /obj/item/weapon/circuitboard/clonescanner(null) + component_parts += new /obj/item/weapon/stock_parts/scanning_module(null) + component_parts += new /obj/item/weapon/stock_parts/manipulator(null) + component_parts += new /obj/item/weapon/stock_parts/micro_laser(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + component_parts += new /obj/item/stack/cable_coil(null, 1) + component_parts += new /obj/item/stack/cable_coil(null, 1) RefreshParts() /obj/machinery/dna_scannernew/upgraded/New() ..() component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/clonescanner(src) - component_parts += new /obj/item/weapon/stock_parts/scanning_module/phasic(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator/pico(src) - component_parts += new /obj/item/weapon/stock_parts/micro_laser/ultra(src) - component_parts += new /obj/item/weapon/stock_parts/console_screen(src) - component_parts += new /obj/item/stack/cable_coil(src, 1) - component_parts += new /obj/item/stack/cable_coil(src, 1) + component_parts += new /obj/item/weapon/circuitboard/clonescanner(null) + component_parts += new /obj/item/weapon/stock_parts/scanning_module/phasic(null) + component_parts += new /obj/item/weapon/stock_parts/manipulator/pico(null) + component_parts += new /obj/item/weapon/stock_parts/micro_laser/ultra(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + component_parts += new /obj/item/stack/cable_coil(null, 1) + component_parts += new /obj/item/stack/cable_coil(null, 1) RefreshParts() /obj/machinery/dna_scannernew/RefreshParts() diff --git a/code/game/machinery/Freezer.dm b/code/game/machinery/Freezer.dm index 3c9d02f0f2e..86ec3c9d9bc 100644 --- a/code/game/machinery/Freezer.dm +++ b/code/game/machinery/Freezer.dm @@ -13,25 +13,25 @@ ..() initialize_directions = dir component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/thermomachine(src) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) - component_parts += new /obj/item/weapon/stock_parts/console_screen(src) - component_parts += new /obj/item/stack/cable_coil(src, 1) + component_parts += new /obj/item/weapon/circuitboard/thermomachine(null) + component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) + component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) + component_parts += new /obj/item/weapon/stock_parts/micro_laser(null) + component_parts += new /obj/item/weapon/stock_parts/micro_laser(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + component_parts += new /obj/item/stack/cable_coil(null, 1) RefreshParts() /obj/machinery/atmospherics/unary/cold_sink/freezer/upgraded/New() ..() component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/thermomachine(src) - component_parts += new /obj/item/weapon/stock_parts/matter_bin/super(src) - component_parts += new /obj/item/weapon/stock_parts/matter_bin/super(src) - component_parts += new /obj/item/weapon/stock_parts/micro_laser/ultra(src) - component_parts += new /obj/item/weapon/stock_parts/micro_laser/ultra(src) - component_parts += new /obj/item/weapon/stock_parts/console_screen(src) - component_parts += new /obj/item/stack/cable_coil(src, 1) + component_parts += new /obj/item/weapon/circuitboard/thermomachine(null) + component_parts += new /obj/item/weapon/stock_parts/matter_bin/super(null) + component_parts += new /obj/item/weapon/stock_parts/matter_bin/super(null) + component_parts += new /obj/item/weapon/stock_parts/micro_laser/ultra(null) + component_parts += new /obj/item/weapon/stock_parts/micro_laser/ultra(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + component_parts += new /obj/item/stack/cable_coil(null, 1) RefreshParts() /obj/machinery/atmospherics/unary/cold_sink/freezer/RefreshParts() diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 9943e446f8c..45931d44b89 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -29,10 +29,10 @@ /obj/machinery/sleep_console/New() ..() component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/sleep_console(src) - component_parts += new /obj/item/weapon/stock_parts/console_screen(src) - component_parts += new /obj/item/weapon/stock_parts/console_screen(src) - component_parts += new /obj/item/stack/cable_coil(src, 2) + component_parts += new /obj/item/weapon/circuitboard/sleep_console(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + component_parts += new /obj/item/stack/cable_coil(null, 2) RefreshParts() findsleeper() @@ -231,28 +231,28 @@ /obj/machinery/sleeper/New() ..() component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/sleeper(src) + component_parts += new /obj/item/weapon/circuitboard/sleeper(null) // Customizable bin rating, used by the labor camp to stop people filling themselves with chemicals and escaping. - var/obj/item/weapon/stock_parts/matter_bin/B = new(src) + var/obj/item/weapon/stock_parts/matter_bin/B = new(null) B.rating = initial_bin_rating component_parts += B - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/console_screen(src) - component_parts += new /obj/item/weapon/stock_parts/console_screen(src) - component_parts += new /obj/item/stack/cable_coil(src, 1) + component_parts += new /obj/item/weapon/stock_parts/manipulator(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + component_parts += new /obj/item/stack/cable_coil(null, 1) RefreshParts() /obj/machinery/sleeper/upgraded/New() ..() component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/sleeper(src) - component_parts += new /obj/item/weapon/stock_parts/matter_bin/super(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator/pico(src) - component_parts += new /obj/item/weapon/stock_parts/console_screen(src) - component_parts += new /obj/item/weapon/stock_parts/console_screen(src) - component_parts += new /obj/item/stack/cable_coil(src, 1) + component_parts += new /obj/item/weapon/circuitboard/sleeper(null) + component_parts += new /obj/item/weapon/stock_parts/matter_bin/super(null) + component_parts += new /obj/item/weapon/stock_parts/manipulator/pico(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + component_parts += new /obj/item/stack/cable_coil(null, 1) RefreshParts() /obj/machinery/sleeper/RefreshParts() diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm index f3090cdfb67..a02e47faa8d 100644 --- a/code/game/machinery/adv_med.dm +++ b/code/game/machinery/adv_med.dm @@ -22,11 +22,21 @@ /obj/machinery/bodyscanner/New() ..() component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/bodyscanner(src) - component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) - component_parts += new /obj/item/weapon/stock_parts/console_screen(src) - component_parts += new /obj/item/weapon/stock_parts/console_screen(src) - component_parts += new /obj/item/stack/cable_coil(src, 2) + component_parts += new /obj/item/weapon/circuitboard/bodyscanner(null) + component_parts += new /obj/item/weapon/stock_parts/scanning_module(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + component_parts += new /obj/item/stack/cable_coil(null, 2) + RefreshParts() + +/obj/machinery/bodyscanner/upgraded/New() + ..() + component_parts = list() + component_parts += new /obj/item/weapon/circuitboard/bodyscanner(null) + component_parts += new /obj/item/weapon/stock_parts/scanning_module/phasic(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + component_parts += new /obj/item/stack/cable_coil(null, 2) RefreshParts() /obj/machinery/bodyscanner/RefreshParts() @@ -261,10 +271,10 @@ /obj/machinery/body_scanconsole/New() ..() component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/bodyscanner_console(src) - component_parts += new /obj/item/weapon/stock_parts/console_screen(src) - component_parts += new /obj/item/weapon/stock_parts/console_screen(src) - component_parts += new /obj/item/stack/cable_coil(src, 2) + component_parts += new /obj/item/weapon/circuitboard/bodyscanner_console(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + component_parts += new /obj/item/stack/cable_coil(null, 2) RefreshParts() findscanner() diff --git a/code/game/machinery/biogenerator.dm b/code/game/machinery/biogenerator.dm index ea0f169dffa..c36c8ad20ca 100644 --- a/code/game/machinery/biogenerator.dm +++ b/code/game/machinery/biogenerator.dm @@ -16,15 +16,25 @@ var/productivity = 0 /obj/machinery/biogenerator/New() - ..() - create_reagents(1000) - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/biogenerator(null) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - component_parts += new /obj/item/weapon/stock_parts/console_screen(null) - component_parts += new /obj/item/stack/cable_coil(null, 1) - RefreshParts() + ..() + create_reagents(1000) + component_parts = list() + component_parts += new /obj/item/weapon/circuitboard/biogenerator(null) + component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) + component_parts += new /obj/item/weapon/stock_parts/manipulator(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + component_parts += new /obj/item/stack/cable_coil(null, 1) + RefreshParts() + +/obj/machinery/biogenerator/upgraded/New() + ..() + component_parts = list() + component_parts += new /obj/item/weapon/circuitboard/biogenerator(null) + component_parts += new /obj/item/weapon/stock_parts/matter_bin/super(null) + component_parts += new /obj/item/weapon/stock_parts/manipulator/pico(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + component_parts += new /obj/item/stack/cable_coil(null, 1) + RefreshParts() /obj/machinery/biogenerator/RefreshParts() var/E = 0 diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 3b4fc5c4377..bfac63984f9 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -35,14 +35,14 @@ /obj/machinery/clonepod/New() ..() component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/clonepod(src) - component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) - component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/console_screen(src) - component_parts += new /obj/item/stack/cable_coil(src, 1) - component_parts += new /obj/item/stack/cable_coil(src, 1) + component_parts += new /obj/item/weapon/circuitboard/clonepod(null) + component_parts += new /obj/item/weapon/stock_parts/scanning_module(null) + component_parts += new /obj/item/weapon/stock_parts/scanning_module(null) + component_parts += new /obj/item/weapon/stock_parts/manipulator(null) + component_parts += new /obj/item/weapon/stock_parts/manipulator(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + component_parts += new /obj/item/stack/cable_coil(null, 1) + component_parts += new /obj/item/stack/cable_coil(null, 1) RefreshParts() update_icon() @@ -50,14 +50,14 @@ /obj/machinery/clonepod/upgraded/New() ..() component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/clonepod(src) - component_parts += new /obj/item/weapon/stock_parts/scanning_module/phasic(src) - component_parts += new /obj/item/weapon/stock_parts/scanning_module/phasic(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator/pico(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator/pico(src) - component_parts += new /obj/item/weapon/stock_parts/console_screen(src) - component_parts += new /obj/item/stack/cable_coil(src, 1) - component_parts += new /obj/item/stack/cable_coil(src, 1) + component_parts += new /obj/item/weapon/circuitboard/clonepod(null) + component_parts += new /obj/item/weapon/stock_parts/scanning_module/phasic(null) + component_parts += new /obj/item/weapon/stock_parts/scanning_module/phasic(null) + component_parts += new /obj/item/weapon/stock_parts/manipulator/pico(null) + component_parts += new /obj/item/weapon/stock_parts/manipulator/pico(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + component_parts += new /obj/item/stack/cable_coil(null, 1) + component_parts += new /obj/item/stack/cable_coil(null, 1) RefreshParts() /obj/machinery/clonepod/Destroy() diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm index 5d2e551f64f..126cfd70a70 100644 --- a/code/game/machinery/cryo.dm +++ b/code/game/machinery/cryo.dm @@ -30,25 +30,25 @@ initialize_directions = dir initialize() component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/cryo_tube(src) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/console_screen(src) - component_parts += new /obj/item/weapon/stock_parts/console_screen(src) - component_parts += new /obj/item/weapon/stock_parts/console_screen(src) - component_parts += new /obj/item/weapon/stock_parts/console_screen(src) - component_parts += new /obj/item/stack/cable_coil(src, 1) + component_parts += new /obj/item/weapon/circuitboard/cryo_tube(null) + component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + component_parts += new /obj/item/stack/cable_coil(null, 1) RefreshParts() /obj/machinery/atmospherics/unary/cryo_cell/upgraded/New() ..() component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/cryo_tube(src) - component_parts += new /obj/item/weapon/stock_parts/matter_bin/super(src) - component_parts += new /obj/item/weapon/stock_parts/console_screen(src) - component_parts += new /obj/item/weapon/stock_parts/console_screen(src) - component_parts += new /obj/item/weapon/stock_parts/console_screen(src) - component_parts += new /obj/item/weapon/stock_parts/console_screen(src) - component_parts += new /obj/item/stack/cable_coil(src, 1) + component_parts += new /obj/item/weapon/circuitboard/cryo_tube(null) + component_parts += new /obj/item/weapon/stock_parts/matter_bin/super(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + component_parts += new /obj/item/stack/cable_coil(null, 1) RefreshParts() /obj/machinery/atmospherics/unary/cryo_cell/RefreshParts() diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index 9ce5ccc2296..49ea6865f58 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -15,24 +15,23 @@ /obj/machinery/recharge_station/New() ..() component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/cyborgrecharger(src) - component_parts += new /obj/item/weapon/stock_parts/capacitor(src) - component_parts += new /obj/item/weapon/stock_parts/capacitor(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/cell/high(src) + component_parts += new /obj/item/weapon/circuitboard/cyborgrecharger(null) + component_parts += new /obj/item/weapon/stock_parts/capacitor(null) + component_parts += new /obj/item/weapon/stock_parts/capacitor(null) + component_parts += new /obj/item/weapon/stock_parts/manipulator(null) + component_parts += new /obj/item/weapon/stock_parts/cell/high(null) RefreshParts() build_icon() /obj/machinery/recharge_station/upgraded/New() ..() component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/cyborgrecharger(src) - component_parts += new /obj/item/weapon/stock_parts/capacitor/super(src) - component_parts += new /obj/item/weapon/stock_parts/capacitor/super(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator/pico(src) - component_parts += new /obj/item/weapon/stock_parts/cell/hyper(src) + component_parts += new /obj/item/weapon/circuitboard/cyborgrecharger(null) + component_parts += new /obj/item/weapon/stock_parts/capacitor/super(null) + component_parts += new /obj/item/weapon/stock_parts/capacitor/super(null) + component_parts += new /obj/item/weapon/stock_parts/manipulator/pico(null) + component_parts += new /obj/item/weapon/stock_parts/cell/hyper(null) RefreshParts() - build_icon() /obj/machinery/recharge_station/RefreshParts() recharge_speed = 0 diff --git a/code/game/mecha/mech_bay.dm b/code/game/mecha/mech_bay.dm index 5ce08a47ad4..c5b0840e9cb 100644 --- a/code/game/mecha/mech_bay.dm +++ b/code/game/mecha/mech_bay.dm @@ -29,26 +29,26 @@ /obj/machinery/mech_bay_recharge_port/New() ..() component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/mech_recharger(src) - component_parts += new /obj/item/weapon/stock_parts/capacitor(src) - component_parts += new /obj/item/weapon/stock_parts/capacitor(src) - component_parts += new /obj/item/weapon/stock_parts/capacitor(src) - component_parts += new /obj/item/weapon/stock_parts/capacitor(src) - component_parts += new /obj/item/weapon/stock_parts/capacitor(src) - component_parts += new /obj/item/stack/cable_coil(src, 1) + component_parts += new /obj/item/weapon/circuitboard/mech_recharger(null) + component_parts += new /obj/item/weapon/stock_parts/capacitor(null) + component_parts += new /obj/item/weapon/stock_parts/capacitor(null) + component_parts += new /obj/item/weapon/stock_parts/capacitor(null) + component_parts += new /obj/item/weapon/stock_parts/capacitor(null) + component_parts += new /obj/item/weapon/stock_parts/capacitor(null) + component_parts += new /obj/item/stack/cable_coil(null, 1) RefreshParts() locate_recharge_turf() /obj/machinery/mech_bay_recharge_port/upgraded/New() ..() component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/mech_recharger(src) - component_parts += new /obj/item/weapon/stock_parts/capacitor/super(src) - component_parts += new /obj/item/weapon/stock_parts/capacitor/super(src) - component_parts += new /obj/item/weapon/stock_parts/capacitor/super(src) - component_parts += new /obj/item/weapon/stock_parts/capacitor/super(src) - component_parts += new /obj/item/weapon/stock_parts/capacitor/super(src) - component_parts += new /obj/item/stack/cable_coil(src, 1) + component_parts += new /obj/item/weapon/circuitboard/mech_recharger(null) + component_parts += new /obj/item/weapon/stock_parts/capacitor/super(null) + component_parts += new /obj/item/weapon/stock_parts/capacitor/super(null) + component_parts += new /obj/item/weapon/stock_parts/capacitor/super(null) + component_parts += new /obj/item/weapon/stock_parts/capacitor/super(null) + component_parts += new /obj/item/weapon/stock_parts/capacitor/super(null) + component_parts += new /obj/item/stack/cable_coil(null, 1) RefreshParts() /obj/machinery/mech_bay_recharge_port/proc/locate_recharge_turf() diff --git a/code/game/vehicles/spacepods/pod_fabricator.dm b/code/game/vehicles/spacepods/pod_fabricator.dm index b8488bafd06..9a17b501636 100644 --- a/code/game/vehicles/spacepods/pod_fabricator.dm +++ b/code/game/vehicles/spacepods/pod_fabricator.dm @@ -55,6 +55,7 @@ component_parts += new /obj/item/weapon/stock_parts/micro_laser(null) component_parts += new /obj/item/weapon/stock_parts/console_screen(null) RefreshParts() + files = new /datum/research(src) //Setup the research data holder. for(var/direction in cardinal) exit = get_step(src,direction) diff --git a/code/modules/hydroponics/trays/tray.dm b/code/modules/hydroponics/trays/tray.dm index c7c6b2201f0..4e9f6d76b77 100644 --- a/code/modules/hydroponics/trays/tray.dm +++ b/code/modules/hydroponics/trays/tray.dm @@ -162,10 +162,10 @@ ..() component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/hydroponics(src) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/console_screen(src) + component_parts += new /obj/item/weapon/circuitboard/hydroponics(null) + component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) + component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) RefreshParts() temp_chem_holder = new() diff --git a/code/modules/mining/equipment_locker.dm b/code/modules/mining/equipment_locker.dm index 9ca809c13c4..c1dbc7dfb2d 100644 --- a/code/modules/mining/equipment_locker.dm +++ b/code/modules/mining/equipment_locker.dm @@ -37,6 +37,17 @@ component_parts += new /obj/item/device/assembly/igniter(null) component_parts += new /obj/item/weapon/stock_parts/console_screen(null) RefreshParts() + +/obj/machinery/mineral/ore_redemption/upgraded/New() + ..() + component_parts = list() + component_parts += new /obj/item/weapon/circuitboard/ore_redemption(null) + component_parts += new /obj/item/weapon/stock_parts/matter_bin/super(null) + component_parts += new /obj/item/weapon/stock_parts/manipulator/pico(null) + component_parts += new /obj/item/weapon/stock_parts/micro_laser/ultra(null) + component_parts += new /obj/item/device/assembly/igniter(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + RefreshParts() /obj/machinery/mineral/ore_redemption/RefreshParts() var/ore_pickup_rate_temp = 15 diff --git a/code/modules/power/pacman2.dm b/code/modules/power/pacman2.dm index cddda73be6e..0e410670b52 100644 --- a/code/modules/power/pacman2.dm +++ b/code/modules/power/pacman2.dm @@ -33,13 +33,24 @@ New() ..() component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) - component_parts += new /obj/item/stack/cable_coil(src) - component_parts += new /obj/item/stack/cable_coil(src) - component_parts += new /obj/item/weapon/stock_parts/capacitor(src) - component_parts += new board_path(src) + component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) + component_parts += new /obj/item/weapon/stock_parts/micro_laser(null) + component_parts += new /obj/item/stack/cable_coil(null) + component_parts += new /obj/item/stack/cable_coil(null) + component_parts += new /obj/item/weapon/stock_parts/capacitor(null) + component_parts += new board_path(null) RefreshParts() + +/obj/machinery/power/port_gen/pacman2/upgraded/New() + ..() + component_parts = list() + component_parts += new /obj/item/weapon/stock_parts/matter_bin/super(null) + component_parts += new /obj/item/weapon/stock_parts/micro_laser/ultra(null) + component_parts += new /obj/item/stack/cable_coil(null) + component_parts += new /obj/item/stack/cable_coil(null) + component_parts += new /obj/item/weapon/stock_parts/capacitor/super(null) + component_parts += new board_path(null) + RefreshParts() RefreshParts() var/temp_rating = 0 diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm index 6c45c4b0455..ee8cd0a5956 100644 --- a/code/modules/power/port_gen.dm +++ b/code/modules/power/port_gen.dm @@ -116,12 +116,23 @@ /obj/machinery/power/port_gen/pacman/New() ..() component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) - component_parts += new /obj/item/stack/cable_coil(src, 1) - component_parts += new /obj/item/stack/cable_coil(src, 1) - component_parts += new /obj/item/weapon/stock_parts/capacitor(src) - component_parts += new board_path(src) + component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) + component_parts += new /obj/item/weapon/stock_parts/micro_laser(null) + component_parts += new /obj/item/stack/cable_coil(null, 1) + component_parts += new /obj/item/stack/cable_coil(null, 1) + component_parts += new /obj/item/weapon/stock_parts/capacitor(null) + component_parts += new board_path(null) + RefreshParts() + +/obj/machinery/power/port_gen/pacman/New() + ..() + component_parts = list() + component_parts += new /obj/item/weapon/stock_parts/matter_bin/super(null) + component_parts += new /obj/item/weapon/stock_parts/micro_laser/ultra(null) + component_parts += new /obj/item/stack/cable_coil(null, 1) + component_parts += new /obj/item/stack/cable_coil(null, 1) + component_parts += new /obj/item/weapon/stock_parts/capacitor/super(null) + component_parts += new board_path(null) RefreshParts() /obj/machinery/power/port_gen/pacman/Destroy() diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index ba38cf9ea73..5696c9ae011 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -42,6 +42,35 @@ component_parts += new /obj/item/weapon/stock_parts/capacitor(null) component_parts += new /obj/item/stack/cable_coil(null, 5) RefreshParts() + setup() + return + +/obj/machinery/power/smes/upgraded/New() + ..() + component_parts = list() + component_parts += new /obj/item/weapon/circuitboard/smes(null) + component_parts += new /obj/item/weapon/stock_parts/cell/hyper(null) + component_parts += new /obj/item/weapon/stock_parts/cell/hyper(null) + component_parts += new /obj/item/weapon/stock_parts/cell/hyper(null) + component_parts += new /obj/item/weapon/stock_parts/cell/hyper(null) + component_parts += new /obj/item/weapon/stock_parts/cell/hyper(null) + component_parts += new /obj/item/weapon/stock_parts/capacitor/super(null) + component_parts += new /obj/item/stack/cable_coil(null, 5) + RefreshParts() + return + +/obj/machinery/power/smes/RefreshParts() + var/IO = 0 + var/C = 0 + for(var/obj/item/weapon/stock_parts/capacitor/CP in component_parts) + IO += CP.rating + input_level_max = 200000 * IO + output_level_max = 200000 * IO + for(var/obj/item/weapon/stock_parts/cell/PC in component_parts) + C += PC.maxcharge + capacity = C / (15000) * 1e6 + +/obj/machinery/power/smes/proc/setup() spawn(5) if(!powernet) connect_to_network() @@ -60,18 +89,6 @@ if(!terminal.powernet) terminal.connect_to_network() updateicon() - return - -/obj/machinery/power/smes/RefreshParts() - var/IO = 0 - var/C = 0 - for(var/obj/item/weapon/stock_parts/capacitor/CP in component_parts) - IO += CP.rating - input_level_max = 200000 * IO - output_level_max = 200000 * IO - for(var/obj/item/weapon/stock_parts/cell/PC in component_parts) - C += PC.maxcharge - capacity = C / (15000) * 1e6 /obj/machinery/power/smes/proc/updateicon() overlays.Cut() diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index df09440d362..2d689f6e10c 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -295,13 +295,25 @@ /obj/machinery/chem_dispenser/constructable/New() ..() component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/chem_dispenser(src) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/capacitor(src) - component_parts += new /obj/item/weapon/stock_parts/console_screen(src) - component_parts += new /obj/item/weapon/stock_parts/cell/super(src) + component_parts += new /obj/item/weapon/circuitboard/chem_dispenser(null) + component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) + component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) + component_parts += new /obj/item/weapon/stock_parts/manipulator(null) + component_parts += new /obj/item/weapon/stock_parts/capacitor(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + component_parts += new /obj/item/weapon/stock_parts/cell/super(null) + RefreshParts() + +/obj/machinery/chem_dispenser/constructable/upgraded/New() + ..() + component_parts = list() + component_parts += new /obj/item/weapon/circuitboard/chem_dispenser(null) + component_parts += new /obj/item/weapon/stock_parts/matter_bin/super(null) + component_parts += new /obj/item/weapon/stock_parts/matter_bin/super(null) + component_parts += new /obj/item/weapon/stock_parts/manipulator/pico(null) + component_parts += new /obj/item/weapon/stock_parts/capacitor/super(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + component_parts += new /obj/item/weapon/stock_parts/cell/hyper(null) RefreshParts() /obj/machinery/chem_dispenser/constructable/RefreshParts() diff --git a/code/modules/reagents/newchem/chem_heater.dm b/code/modules/reagents/newchem/chem_heater.dm index b3aba20540d..be04e4d8d0a 100644 --- a/code/modules/reagents/newchem/chem_heater.dm +++ b/code/modules/reagents/newchem/chem_heater.dm @@ -14,9 +14,17 @@ /obj/machinery/chem_heater/New() ..() component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/chem_heater(src) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) - component_parts += new /obj/item/weapon/stock_parts/console_screen(src) + component_parts += new /obj/item/weapon/circuitboard/chem_heater(null) + component_parts += new /obj/item/weapon/stock_parts/micro_laser(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + RefreshParts() + +/obj/machinery/chem_heater/upgraded/New() + ..() + component_parts = list() + component_parts += new /obj/item/weapon/circuitboard/chem_heater(null) + component_parts += new /obj/item/weapon/stock_parts/micro_laser/ultra(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) RefreshParts() /obj/machinery/chem_heater/RefreshParts() diff --git a/code/modules/research/circuitprinter.dm b/code/modules/research/circuitprinter.dm index 00b2af7cf5c..266e0a3b239 100644 --- a/code/modules/research/circuitprinter.dm +++ b/code/modules/research/circuitprinter.dm @@ -34,13 +34,24 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis). /obj/machinery/r_n_d/circuit_imprinter/New() ..() component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/circuit_imprinter(src) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(src) - component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(src) + component_parts += new /obj/item/weapon/circuitboard/circuit_imprinter(null) + component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) + component_parts += new /obj/item/weapon/stock_parts/manipulator(null) + component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(null) + component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(null) RefreshParts() - reagents.my_atom = src + reagents.my_atom = null + +/obj/machinery/r_n_d/circuit_imprinter/upgraded/New() + ..() + component_parts = list() + component_parts += new /obj/item/weapon/circuitboard/circuit_imprinter(null) + component_parts += new /obj/item/weapon/stock_parts/matter_bin/super(null) + component_parts += new /obj/item/weapon/stock_parts/manipulator/pico(null) + component_parts += new /obj/item/weapon/reagent_containers/glass/beaker/large(null) + component_parts += new /obj/item/weapon/reagent_containers/glass/beaker/large(null) + RefreshParts() + reagents.my_atom = null /obj/machinery/r_n_d/circuit_imprinter/RefreshParts() var/T = 0 diff --git a/code/modules/research/destructive_analyzer.dm b/code/modules/research/destructive_analyzer.dm index 57f36ad9179..0ffec90b1ec 100644 --- a/code/modules/research/destructive_analyzer.dm +++ b/code/modules/research/destructive_analyzer.dm @@ -22,6 +22,15 @@ Note: Must be placed within 3 tiles of the R&D Console component_parts += new /obj/item/weapon/stock_parts/manipulator(null) component_parts += new /obj/item/weapon/stock_parts/micro_laser(null) RefreshParts() + +/obj/machinery/r_n_d/destructive_analyzer/upgraded/New() + ..() + component_parts = list() + component_parts += new /obj/item/weapon/circuitboard/destructive_analyzer(null) + component_parts += new /obj/item/weapon/stock_parts/scanning_module/phasic(null) + component_parts += new /obj/item/weapon/stock_parts/manipulator/pico(null) + component_parts += new /obj/item/weapon/stock_parts/micro_laser/ultra(null) + RefreshParts() /obj/machinery/r_n_d/destructive_analyzer/RefreshParts() var/T = 0 diff --git a/code/modules/research/protolathe.dm b/code/modules/research/protolathe.dm index 83fc3441ef4..37fc63ce552 100644 --- a/code/modules/research/protolathe.dm +++ b/code/modules/research/protolathe.dm @@ -42,13 +42,27 @@ Note: Must be placed west/left of and R&D console to function. /obj/machinery/r_n_d/protolathe/New() ..() component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/protolathe(src) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(src) - component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(src) + component_parts += new /obj/item/weapon/circuitboard/protolathe(null) + component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) + component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) + component_parts += new /obj/item/weapon/stock_parts/manipulator(null) + component_parts += new /obj/item/weapon/stock_parts/manipulator(null) + component_parts += new /obj/item/weapon/reagent_containers/glass/beaker/large(null) + component_parts += new /obj/item/weapon/reagent_containers/glass/beaker/large(null) + RefreshParts() + + reagents.my_atom = src + +/obj/machinery/r_n_d/protolathe/upgraded/New() + ..() + component_parts = list() + component_parts += new /obj/item/weapon/circuitboard/protolathe(null) + component_parts += new /obj/item/weapon/stock_parts/matter_bin/super(null) + component_parts += new /obj/item/weapon/stock_parts/matter_bin/super(null) + component_parts += new /obj/item/weapon/stock_parts/manipulator/pico(null) + component_parts += new /obj/item/weapon/stock_parts/manipulator/pico(null) + component_parts += new /obj/item/weapon/reagent_containers/glass/beaker/large(null) + component_parts += new /obj/item/weapon/reagent_containers/glass/beaker/large(null) RefreshParts() reagents.my_atom = src diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm index c191a8a2eca..cabbf16da77 100644 --- a/code/modules/research/server.dm +++ b/code/modules/research/server.dm @@ -17,12 +17,21 @@ /obj/machinery/r_n_d/server/New() ..() component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/rdserver(src) - component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) - component_parts += new /obj/item/stack/cable_coil(src,1) - component_parts += new /obj/item/stack/cable_coil(src,1) + component_parts += new /obj/item/weapon/circuitboard/rdserver(null) + component_parts += new /obj/item/weapon/stock_parts/scanning_module(null) + component_parts += new /obj/item/stack/cable_coil(null,1) + component_parts += new /obj/item/stack/cable_coil(null,1) + RefreshParts() + initialize(); //Agouri + +/obj/machinery/r_n_d/server/upgraded/New() + ..() + component_parts = list() + component_parts += new /obj/item/weapon/circuitboard/rdserver(null) + component_parts += new /obj/item/weapon/stock_parts/scanning_module/phasic(null) + component_parts += new /obj/item/stack/cable_coil(null,1) + component_parts += new /obj/item/stack/cable_coil(null,1) RefreshParts() - src.initialize(); //Agouri /obj/machinery/r_n_d/server/Destroy() griefProtection() diff --git a/code/modules/telesci/telepad.dm b/code/modules/telesci/telepad.dm index 01dc7636d24..02964b375c8 100644 --- a/code/modules/telesci/telepad.dm +++ b/code/modules/telesci/telepad.dm @@ -20,6 +20,17 @@ component_parts += new /obj/item/weapon/stock_parts/console_screen(null) component_parts += new /obj/item/stack/cable_coil(null, 1) RefreshParts() + +/obj/machinery/telepad/upgraded/New() + ..() + component_parts = list() + component_parts += new /obj/item/weapon/circuitboard/telesci_pad(null) + component_parts += new /obj/item/bluespace_crystal/artificial(null) + component_parts += new /obj/item/bluespace_crystal/artificial(null) + component_parts += new /obj/item/weapon/stock_parts/capacitor/super(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + component_parts += new /obj/item/stack/cable_coil(null, 1) + RefreshParts() /obj/machinery/telepad/RefreshParts() var/E From 3703210ba36e3ac3e6da41284adba4690f481184 Mon Sep 17 00:00:00 2001 From: Markolie Date: Thu, 30 Jul 2015 23:29:39 +0200 Subject: [PATCH 04/12] Ditch pacman2 code (unused) --- code/modules/power/pacman2.dm | 189 ---------------------------------- 1 file changed, 189 deletions(-) delete mode 100644 code/modules/power/pacman2.dm diff --git a/code/modules/power/pacman2.dm b/code/modules/power/pacman2.dm deleted file mode 100644 index 0e410670b52..00000000000 --- a/code/modules/power/pacman2.dm +++ /dev/null @@ -1,189 +0,0 @@ -//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:05 - - -//Baseline portable generator. Has all the default handling. Not intended to be used on it's own (since it generates unlimited power). -/obj/machinery/power/port_gen/pacman2 - name = "Pacman II" - desc = "P.A.C.M.A.N. type II portable generator. Uses liquid plasma as a fuel source." - power_gen = 4500 - var/obj/item/weapon/tank/plasma/P = null - var/board_path = "/obj/item/weapon/circuitboard/pacman2" - var/emagged = 0 - var/heat = 0 -/* - process() - if(P) - if(P.air_contents.toxins <= 0) - P.air_contents.toxins = 0 - eject() - else - P.air_contents.toxins -= 0.001 - return -*/ - - HasFuel() - if(P.air_contents.toxins >= 0.1) - return 1 - return 0 - - UseFuel() - P.air_contents.toxins -= 0.01 - return - - New() - ..() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(null) - component_parts += new /obj/item/stack/cable_coil(null) - component_parts += new /obj/item/stack/cable_coil(null) - component_parts += new /obj/item/weapon/stock_parts/capacitor(null) - component_parts += new board_path(null) - RefreshParts() - -/obj/machinery/power/port_gen/pacman2/upgraded/New() - ..() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/matter_bin/super(null) - component_parts += new /obj/item/weapon/stock_parts/micro_laser/ultra(null) - component_parts += new /obj/item/stack/cable_coil(null) - component_parts += new /obj/item/stack/cable_coil(null) - component_parts += new /obj/item/weapon/stock_parts/capacitor/super(null) - component_parts += new board_path(null) - RefreshParts() - - RefreshParts() - var/temp_rating = 0 - var/temp_reliability = 0 - for(var/obj/item/weapon/stock_parts/SP in component_parts) - if(istype(SP, /obj/item/weapon/stock_parts/matter_bin)) - //max_coins = SP.rating * SP.rating * 1000 - else if(istype(SP, /obj/item/weapon/stock_parts/micro_laser) || istype(SP, /obj/item/weapon/stock_parts/capacitor)) - temp_rating += SP.rating - for(var/obj/item/weapon/CP in component_parts) - temp_reliability += CP.reliability - reliability = min(round(temp_reliability / 4), 100) - power_gen = round(initial(power_gen) * (max(2, temp_rating) / 2)) - - examine() - ..() - usr << "\blue The generator has [P.air_contents.toxins] units of fuel left, producing [power_gen] per cycle." - if(crit_fail) usr << "\red The generator seems to have broken down." - - handleInactive() - heat -= 2 - if (heat < 0) - heat = 0 - else - for(var/mob/M in viewers(1, src)) - if (M.client && M.machine == src) - src.updateUsrDialog() - - proc - overheat() - explosion(get_turf(src), 2, 5, 2, -1) - - attackby(var/obj/item/O as obj, var/mob/user as mob, params) - if(istype(O, /obj/item/weapon/tank/plasma)) - if(P) - user << "\red The generator already has a plasma tank loaded!" - return - P = O - user.drop_item() - O.loc = src - user << "\blue You add the plasma tank to the generator." - else if(!active) - if(istype(O, /obj/item/weapon/wrench)) - anchored = !anchored - playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) - if(anchored) - user << "\blue You secure the generator to the floor." - else - user << "\blue You unsecure the generator from the floor." - makepowernets() - else if(istype(O, /obj/item/weapon/screwdriver)) - open = !open - playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) - if(open) - user << "\blue You open the access panel." - else - user << "\blue You close the access panel." - else if(istype(O, /obj/item/weapon/crowbar) && !open) - var/obj/machinery/constructable_frame/machine_frame/new_frame = new /obj/machinery/constructable_frame/machine_frame(src.loc) - for(var/obj/item/I in component_parts) - if(I.reliability < 100) - I.crit_fail = 1 - I.loc = src.loc - new_frame.state = 2 - new_frame.icon_state = "box_1" - del(src) - - emag_act(user as mob) - if(!emagged) - emagged = 1 - emp_act(1) - - attack_hand(mob/user as mob) - ..() - if (!anchored) - return - - interact(user) - - attack_ai(mob/user as mob) - interact(user) - - attack_paw(mob/user as mob) - interact(user) - - proc - interact(mob/user) - if (get_dist(src, user) > 1 ) - if (!istype(user, /mob/living/silicon/ai)) - user.machine = null - user << browse(null, "window=port_gen") - return - - user.machine = src - - var/dat = text("[name]
") - if (active) - dat += text("Generator: On
") - else - dat += text("Generator: Off
") - if(P) - dat += text("Currently loaded plasma tank: [P.air_contents.toxins]
") - else - dat += text("No plasma tank currently loaded.
") - dat += text("Power output: - [power_gen * power_output] +
") - dat += text("Heat: [heat]
") - dat += "
Close" - user << browse("[dat]", "window=port_gen") - - Topic(href, href_list) - if(..()) - return - - src.add_fingerprint(usr) - if(href_list["action"]) - if(href_list["action"] == "enable") - if(!active && HasFuel() && !crit_fail) - active = 1 - icon_state = "portgen1" - src.updateUsrDialog() - if(href_list["action"] == "disable") - if (active) - active = 0 - icon_state = "portgen0" - src.updateUsrDialog() - if(href_list["action"] == "lower_power") - if (power_output > 1) - power_output-- - src.updateUsrDialog() - if (href_list["action"] == "higher_power") - if (power_output < 4 || emagged) - power_output++ - src.updateUsrDialog() - if (href_list["action"] == "close") - usr << browse(null, "window=port_gen") - usr.machine = null From afb95a817312fa3f293727cd58fc80f8e25ad657 Mon Sep 17 00:00:00 2001 From: Markolie Date: Thu, 30 Jul 2015 23:39:09 +0200 Subject: [PATCH 05/12] Minor cloner fixes --- code/game/machinery/computer/cloning.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index 1ecc02fdb7b..58fb54bdfde 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -62,7 +62,7 @@ for(var/obj/machinery/dna_scannernew/S in get_area(src)) return S - return + return 0 /obj/machinery/computer/cloning/proc/releasecloner() for(var/obj/machinery/clonepod/P in pods) @@ -313,6 +313,8 @@ menu = 1 else var/mob/selected = find_dead_player("[C.ckey]") + if(!selected) + return selected << 'sound/machines/chime.ogg' //probably not the best sound but I think it's reasonable var/answer = alert(selected,"Do you want to return to life?","Cloning","Yes","No") if(answer != "No" && pod.growclone(C)) From 0290a24cf92d4384c5756dec6adb4edbb121a874 Mon Sep 17 00:00:00 2001 From: Markolie Date: Thu, 30 Jul 2015 23:41:23 +0200 Subject: [PATCH 06/12] Make cloners start without biomass --- code/game/machinery/cloning.dm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index bfac63984f9..49e9cc299fe 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -20,7 +20,7 @@ var/mess = 0 //Need to clean out it if it's full of exploded clone. var/attempting = 0 //One clone attempt at a time thanks var/eject_wait = 0 //Don't eject them as soon as they are created fuckkk - var/biomass = CLONE_BIOMASS // * 3 - N3X + var/biomass = 0 var/speed_coeff var/efficiency @@ -31,6 +31,9 @@ set_light(2) else set_light(0) + +/obj/machinery/clonepod/biomass + biomass = CLONE_BIOMASS /obj/machinery/clonepod/New() ..() @@ -45,8 +48,7 @@ component_parts += new /obj/item/stack/cable_coil(null, 1) RefreshParts() update_icon() - - + /obj/machinery/clonepod/upgraded/New() ..() component_parts = list() @@ -58,6 +60,7 @@ component_parts += new /obj/item/weapon/stock_parts/console_screen(null) component_parts += new /obj/item/stack/cable_coil(null, 1) component_parts += new /obj/item/stack/cable_coil(null, 1) + biomass = CLONE_BIOMASS RefreshParts() /obj/machinery/clonepod/Destroy() From a0b6cfee461f9066e47daa4cb97bbf6003712c96 Mon Sep 17 00:00:00 2001 From: Markolie Date: Fri, 31 Jul 2015 00:11:21 +0200 Subject: [PATCH 07/12] Air alarm name fix --- code/game/machinery/alarm.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index 753d53e9e3a..8493a6970a4 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -626,6 +626,7 @@ /obj/machinery/alarm/proc/get_nano_data(mob/user, fromAtmosConsole=0, AtmosConsoleEmagged=0) var/data[0] + data["name"] = name data["air"]=ui_air_status() data["alarmActivated"]=alarmActivated || local_danger_level==2 data["sensors"]=TLV From 96c0603f2943f328816f729a42ac05ae52ea0ad0 Mon Sep 17 00:00:00 2001 From: Markolie Date: Fri, 31 Jul 2015 00:22:40 +0200 Subject: [PATCH 08/12] Fix space in robot control template --- nano/templates/robot_control.tmpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nano/templates/robot_control.tmpl b/nano/templates/robot_control.tmpl index 5bc18600181..61c5464ad2f 100644 --- a/nano/templates/robot_control.tmpl +++ b/nano/templates/robot_control.tmpl @@ -58,7 +58,7 @@

Power Cell

{{if value.cell}} - Rating : + Rating: {{:value.cell_capacity}} From fd1fddedfbecc0e0dce93cff5877bf72cbaee372 Mon Sep 17 00:00:00 2001 From: Markolie Date: Fri, 31 Jul 2015 04:46:12 +0200 Subject: [PATCH 09/12] Replace cloners on map with biomass subtype --- _maps/map_files/cyberiad/cyberiad.dmm | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm index 889355a36e0..7b265c498e8 100644 --- a/_maps/map_files/cyberiad/cyberiad.dmm +++ b/_maps/map_files/cyberiad/cyberiad.dmm @@ -1797,7 +1797,7 @@ "aIC" = (/obj/machinery/gateway{dir = 8},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/gateway) "aID" = (/obj/machinery/gateway/centerstation,/turf/simulated/floor{icon_state = "dark"},/area/gateway) "aIE" = (/obj/machinery/gateway{dir = 4},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/gateway) -"aIF" = (/obj/machinery/requests_console{department = "EVA"; name = "EVA Requests Console"; pixel_x = -32; pixel_y = 0},/obj/structure/table/reinforced,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/device/multitool,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/ai_monitored/storage/eva) +"aIF" = (/obj/machinery/requests_console{department = "EVA"; name = "EVA Requests Console"; pixel_x = -32; pixel_y = 0},/obj/structure/table/reinforced,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/device/multitool,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/ai_monitored/storage/eva) "aIG" = (/turf/simulated/floor,/area/ai_monitored/storage/eva) "aIH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva) "aII" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/table/reinforced,/obj/item/stack/sheet/rglass{amount = 50},/obj/item/stack/rods{amount = 50},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/ai_monitored/storage/eva) @@ -3861,7 +3861,7 @@ "bwm" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/port) "bwn" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/port) "bwo" = (/obj/structure/table,/obj/item/clothing/head/soft,/obj/item/weapon/stamp/granted{pixel_x = -3; pixel_y = 3},/obj/item/clothing/head/soft,/turf/simulated/floor,/area/quartermaster/storage) -"bwp" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/machinery/requests_console{department = "Cargo Bay"; departmentType = 2; name = "Cargo Requests Console"; pixel_x = 0; pixel_y = 30},/obj/item/weapon/stamp/granted{pixel_x = -3; pixel_y = 3},/obj/item/weapon/hand_labeler,/turf/simulated/floor,/area/quartermaster/storage) +"bwp" = (/obj/structure/table,/obj/machinery/requests_console{department = "Cargo Bay"; name = "Cargo Requests Console"; departmentType = 2; pixel_y = 30},/obj/item/stack/tape_roll,/turf/simulated/floor{icon_state = "arrival"; dir = 1},/area/quartermaster/office) "bwq" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/turf/simulated/floor,/area/quartermaster/storage) "bwr" = (/obj/machinery/camera{c_tag = "Cargo Bay North"},/obj/structure/closet/secure_closet/cargotech,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/quartermaster/storage) "bws" = (/obj/structure/closet/secure_closet/cargotech,/turf/simulated/floor,/area/quartermaster/storage) @@ -4309,7 +4309,7 @@ "bES" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "bot"},/area/medical/research{name = "Research Division"}) "bET" = (/obj/machinery/door_control{id = "rdlab2"; name = "Research and Development Lab Shutters Control"; pixel_x = -24; pixel_y = -24; req_access_txt = "47"},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) "bEU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) -"bEV" = (/obj/structure/table,/obj/machinery/requests_console{department = "Cargo Bay"; name = "Cargo Requests Console"; departmentType = 2; pixel_y = 30},/obj/item/stack/tape_roll,/turf/simulated/floor{icon_state = "arrival"; dir = 1},/area/quartermaster/office) +"bEV" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/machinery/requests_console{department = "Cargo Bay"; departmentType = 2; name = "Cargo Requests Console"; pixel_x = 0; pixel_y = 30},/obj/item/weapon/stamp/granted{pixel_x = -3; pixel_y = 3},/obj/item/weapon/hand_labeler,/turf/simulated/floor,/area/quartermaster/storage) "bEW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) "bEX" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/obj/item/weapon/stock_parts/scanning_module{pixel_x = 0; pixel_y = 0},/obj/item/weapon/stock_parts/scanning_module{pixel_x = 2; pixel_y = 3},/obj/machinery/light_switch{pixel_y = -25},/obj/structure/table/glass,/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) "bEY" = (/obj/machinery/light/small{dir = 1},/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j2s"; sortType = 14},/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/asmaint) @@ -4407,7 +4407,7 @@ "bGM" = (/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/quartermaster/storage) "bGN" = (/turf/simulated/floor{icon_state = "delivery"},/area/quartermaster/storage) "bGO" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; freq = 1400; location = "QM #1"},/obj/machinery/bot/mulebot{beacon_freq = 1400; home_destination = "QM #1"; suffix = "#1"},/turf/simulated/floor{icon_state = "bot"},/area/quartermaster/storage) -"bGP" = (/obj/structure/table,/obj/machinery/requests_console{department = "Cargo Bay"; name = "Cargo Requests Console"; departmentType = 2; pixel_x = -30; pixel_y = 0},/obj/machinery/camera{c_tag = "Cargo Office"; dir = 4; network = list("SS13")},/obj/item/stack/sheet/glass{amount = 50; pixel_x = 3; pixel_y = 3},/obj/item/stack/sheet/metal{amount = 50},/obj/item/device/multitool,/turf/simulated/floor,/area/quartermaster/office) +"bGP" = (/obj/structure/table,/obj/machinery/requests_console{department = "Cargo Bay"; name = "Cargo Requests Console"; departmentType = 2; pixel_x = -30; pixel_y = 0},/obj/machinery/camera{c_tag = "Cargo Office"; dir = 4; network = list("SS13")},/obj/item/stack/sheet/glass{amount = 50; pixel_x = 3; pixel_y = 3},/obj/item/stack/sheet/metal{amount = 50},/obj/item/device/multitool,/turf/simulated/floor,/area/quartermaster/office) "bGQ" = (/obj/structure/filingcabinet/filingcabinet,/turf/simulated/floor,/area/quartermaster/office) "bGR" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/chiefs_office) "bGS" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "bot"},/area/quartermaster/office) @@ -4948,7 +4948,7 @@ "bRh" = (/obj/machinery/atmospherics/portables_connector{dir = 1; name = "Connector Port (Air Supply)"},/obj/machinery/portable_atmospherics/canister/oxygen{name = "Canister: \[O2] (CRYO)"},/turf/simulated/floor,/area/medical/cryo) "bRi" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{dir = 1},/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 30},/turf/simulated/floor{icon_state = "white"},/area/medical/cryo) "bRj" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall,/area/medical/genetics_cloning) -"bRk" = (/obj/machinery/clonepod{biomass = 150},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) +"bRk" = (/obj/machinery/clonepod/biomass,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) "bRl" = (/obj/machinery/computer/cloning,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/light,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) "bRm" = (/obj/machinery/dna_scannernew,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning) "bRn" = (/obj/structure/stool/bed/chair/office/dark,/turf/simulated/floor{tag = "icon-whitepurple (WEST)"; icon_state = "whitepurple"; dir = 8},/area/medical/genetics) @@ -5410,6 +5410,7 @@ "cab" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/turf/simulated/floor{tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8},/area/medical/medbay2) "cac" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor{dir = 4; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2) "cad" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/wall,/area/medical/medbay2) +"cae" = (/obj/machinery/clonepod/biomass,/turf/simulated/floor/engine,/area/toxins/xenobiology) "caf" = (/obj/machinery/light,/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor{dir = 10; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/cmo) "cag" = (/obj/structure/table,/obj/item/device/radio/intercom{broadcasting = 0; canhear_range = 5; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -30},/obj/item/device/megaphone,/obj/item/weapon/reagent_containers/glass/bottle/morphine,/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/cmo) "cah" = (/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/cmo) @@ -7231,7 +7232,6 @@ "cMB" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/virology/lab) "cMC" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/virology/lab) "cME" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/virology/lab) -"cMG" = (/obj/machinery/clonepod{biomass = 150},/turf/simulated/floor/engine,/area/toxins/xenobiology) "cMH" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/engine,/area/toxins/xenobiology) "cMI" = (/turf/simulated/floor/plating/airless,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk1"; icon_state = "catwalk1"},/area/solar/port) "cMJ" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/light{dir = 8},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) @@ -8089,13 +8089,13 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfQbfQbfQbfQbfQbfQbfQbfQbfQbfQbfQbfQbfQbjbbjcbjdbjebcRbesbjfbfTbjgbjgbjgbjhbfTbjibesbqbbjkbhDbjlbjlbjlbjlbjmbjlbjnbbBbjobjpbjqbjqbjrbjsaZKbjtbjubjvbjwbjxbjzbjAbjBdatbjBbjCbjCbjCbjCbjCbjDbbQbbTbjEbjFbjGbjHbjIaHSbjKbjLbjMbikbjNbjObjPbjPbjPbjPbjQbjPbjRbjSbjTbjUbjNbjVbjWbacbjXaHUbjZbkabkbbkcaVyaVyaHFbavbkdbavbavbavaOsbavbavbkebkebkfbkfbkgbcmbcmbkhbkibcmbcmbcmbkjbkkbklaSlbdWbftbcxbcxbcxbcxbfvbkmaSlbknbkobkobkpbkobkqaZlaZlaZlaZlbkraZlaZlaZlbksbiXbcHbcHbcHbcHbcHbcHbcHbiWbiXbiYbehaXObcKbcKbcLbcKaXObktaFTbkubkvbkwaFTaNtaNtaNtaNtaNtaNtaNtaNtaNtaNtaNtaNtaNtaaaaaaaaaaaaaaaaaaaaaaaaaaabkxbkxbkxbkxbkxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfQbfQbfQbfQbfQbfQbfQbfQbfQbfQbfQbfQbfQaAvaAvaBmbkAaZGbkBbfTbkCbjgbjgbjgbjhbkCbfTbesbkDbkEbhDbjlbkFbkGbkHbkIbjlbkJbkKbkLaZKbkMbkNbkObkPaZKbbKbkQbkRbkRbkSbkRbkRbkRbkRbkTbkUbkUbkUbkVbkUbkWbkXbkYbkZblablbblbblbblbblbblbblcbldblcbjPbjPbleblfblgblhblibljbleblkbjPbllblmbllbllbllbllbllbllbllbkcaVyaVyaINblnblobavblpbavblqbavblrblsbltbkfbluaSdblvblwaSdaSdblxblyblyblyaSdaSdaSlblzblAblBblBblBblBblAblCaSlblDbkobkobkpblEaOQblFblGblHblIblJblKblLblMblNaNqblOaPfblPbcHbcHblPaPfblQaNqblRbehaXObeibeibejbeiaXObiZaFTbjabjabjaaFTaNtaNtaNtaNtaNtaNtaNtaNtaNtaNtaNtaNtaNtaaaaaaaaaaaaaaaaaaaaaaaabkxbkxbkxbkxbkxbkxbkxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfQbfQbfQbfQbfQbfQbfQbfQbfQbfQbfQbfQblSaAvblTblUblVbesbhvbhvbhvbfTblWblXblYblZbesbmabmbbhDbjlbmcbjlbmdbmebjlbmfbmgbmhaZKbkMbkNbkObmiaZKbbKbkQbkRbmjbmkbmlbmmbmnbkRbmobmpbmqbmrbkXbkXbkXbkXbmsbmtbmublbbmvbmwbmxbmybmzbmAbmBbmCbjPbmDblgbmEbmFbmGbmFbmEblgbmHbjPbmIbmJbmKbmLbmMbmNbmObmPbllbmQbmRbmRbmSaINaINaINaINbmTaHFbmTbmUaINaSbaINaINaSdaSdaSdaSdbmVbmWbmWbmWbmWbmXbmYaSlaFSbnaaFSbnbbnbaFSbnaaFSaSlblDbkobkobncblEaOQaOQaOQaOQaOQbgYaOQaOQaOQaOQaNqbndaDxaDxaDxaDxaDxaDxaNqaNqbnhbniaXOaXOaXOaXQaXOaXObhpaFTaHPaFTaFTaHPaNtaNtaNtaNtaNtaNtaNtaNtaNtaNtaNtaNtaNtaaaaaaaaaaaaaaaaaaaaabkxbkxbkxbkxbkxbkxbkxbkxbkxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIfazEaBmaBmaBmaAyaAyaAyaAyaAyaAybnmbnnbesbesbesbesbesbesbnobesbesbesbnpbnpbnqbjlbnrbnsbmdbntbjlbnubnvbnuaZKbkMbkNbkObnwaZKbbKbkQbkRbnxbnybnzbmmbnzbkRbmobnAbnBbnCbnDbEVbnFbkXbnGbnHbmuaHVbnJbnKbnLbnMbnMbnLbnNbnObjPbnPblgblgbnQbnRbmFbmEblgbnSbjTbnTbnUbnVbnWbnXbnYbnVbnZbllboabobbocbodboebofbogbohbohbohbohbohbohboibojbokbolbohbombohbohbohbohbohbohbohbohbonboobopbopbopbopbopbopboqbofborbosbosbotboubovboubowbouboxboybozbouboAboBboCboDboEboEboEboEboEboEboEboFboGboHboHboHboHboIboHboJboKboLboMboNbfOboOaNtaNtaNtaNtaNtaNtaNtaNtaNtaNtaNtaNtaNtaaaaaaaaaaaaaaaaaaaaabkxbkxbkxbkxbkxbkxbkxbkxbkxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIfazEaBmaBmaBmaAyaAyaAyaAyaAyaAybnmbnnbesbesbesbesbesbesbnobesbesbesbnpbnpbnqbjlbnrbnsbmdbntbjlbnubnvbnuaZKbkMbkNbkObnwaZKbbKbkQbkRbnxbnybnzbmmbnzbkRbmobnAbnBbnCbnDbwpbnFbkXbnGbnHbmuaHVbnJbnKbnLbnMbnMbnLbnNbnObjPbnPblgblgbnQbnRbmFbmEblgbnSbjTbnTbnUbnVbnWbnXbnYbnVbnZbllboabobbocbodboebofbogbohbohbohbohbohbohboibojbokbolbohbombohbohbohbohbohbohbohbohbonboobopbopbopbopbopbopboqbofborbosbosbotboubovboubowbouboxboybozbouboAboBboCboDboEboEboEboEboEboEboEboFboGboHboHboHboHboIboHboJboKboLboMboNbfOboOaNtaNtaNtaNtaNtaNtaNtaNtaNtaNtaNtaNtaNtaaaaaaaaaaaaaaaaaaaaabkxbkxbkxbkxbkxbkxbkxbkxbkxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaboPboPboPboPboPboPboPboPboPboPaaaaabaAvaIiboRboSboTboUboUboUboUboUboVboWboXboYboZbpabnqbjlbjlbjlbpbbmebjlaZKaZKaZKaZKbkMbpcbpdbpeaZKbpfbpgbkRbphbpibmmbnzbpjbkRbmobpkbnBbnCbnCbplbpmbkXbpnbnHbmuaHVbppbpqbprbpsbptbpubnNbpvbjPbpwbnQblgbpxbpybpxblgbnQbpzblkbpAbnVbnVbnWbpBbnYbnVbpCbllbpDbocbocbodboebofbohbohbohbohbohbohbohbpEbohbohbohbohbohbohbpFbpGbpGbpGbpGbpGbpGbpGbpGbpGbpGbpGbpGbpGbpGbpHbpIbpJboEboEbpKbkobkobkobkobkobkpbkobkobkobkobkobkobkobkobkobkobkobkobpLbkobpMbpNaXOaXOaXOaXOaXOaXOaXObpOaFTaHPaFTaFTaFTaNtaNtaNtaNtaNtaNtaNtaNtaNtaNtaNtaNtaNtaaaaaaaaaaaaaaaaaaaaabkxbkxbkxbkxbkxbkxbkxbkxbkxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaboPboPboPboPboPboPboPboPboPboPboPaHRaAvaAvbpQbpRbpSbpSbpSbpTbpSbpSbpUbpVbpWaZOaZOaZObpXbjlbkFbpYbpZbntbjlbqabsubqaaZKaZKaZKaZKbqcaZKbqdbkQbkRbqebqfbnzbqgbqhbkRbmobkXbqibnCbnCbnCbqjbkXbqkbnHbmuaHVbqmbpqbprbqnbqobpubnNbqpbjPbqqbqrblgbqsbqtbqubmEbqvdavbqxbqybqzbqAbqBbqCbqDbnVbqEbllbqFbqGbocbodboebofbohbqHbohbohbohbohbqIbqJbqJbqJbqJbqKbohbohbohbohbqLbohbqHbqMbohbqNbqObqPbohbqQbqRbqRbqSbqTbqUbqVbkobkobkobkobkobkobkobqWbqXbqYbkobkobkobkobkobkobkobkobkobkobqZbrabrabrbbrcbrdbrebrfbrfbrfbrfbrgbrhaFTaabaaaaaaaabaNtaNtaNtaNtaNtaNtaaaaNtaNtaNtaNtdcdaNtaaaaaaaaaaaaaaaaaaaaabkxbkxbkxbkxbkxbkxbkxbkxbkxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaboPboPboPboPboPboPboPboPboPboPboPbrjbrkbrlbrmbrnbpSbrobrpbrqbrqbrrbrsbrtbrubrvbrvbrwbrxbjlbjlbjlbmdbrybmcaZOaZOaZOaZObrzbbKbbKbrAbjybrBbrCbrDbrEbrFbrGbrHbrIbkRbrJbkXbrKbnCbnCbnCbrLaIgbrNbnHbrOblbbrPbrQbnLbnLbnLbnLbnNbrRbjPbrSbrTbjPbjPbjPbjPbjPbjPbjPblkbllbrUbrVbrWbrXbrYbrZbsabllbsbbscbscbsdbsdbsdbsdbsdbsdbsdbsebsebsfbsgbshbshbsgbsfbsebsebsibsibsibsibsibsibsjbsjbskbsjbsjbsjbsjbsjbslbsmbsnbsobkobkobspbspbsqbsqbsqbsqbsqbsrbrabrabqZbrabkobrabrabrabrabssbstbstbstbstbsFbsvbsvbsvbsvbsvbsvbsvbsvbsvaaaaaaaaaaaaaNtaNtaNtaNtaNtaNtaaaaNtaNtaNtaNtaNtaNtaaaaaaaaaaaaaaaaaaaaabkxbkxbkxbkxbkxbkxbkxbkxbkxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaboPboPboPboPboPboPboPboPboPboPboPaAvaAvaAvbpQbswbpSbsxbpSaIhaIhbpSbpUbpUbdabsAbsBbsBbsCbjlbkFbsDbmdbsEbmcbsHbsGbujbsIbsJbsKbsKbsLbsKbsMbsNbkRbsObsPbsQbsRbsSbrDbsTbkXbsUbnCbnCbsVbsWbsXbrNbnHbsYblbbsZbtabtbbtcbtdbtebtfblbblbbtgbthbtibtjbtkbtjbtlbthaaabtmbllbtnbtobtpbtqbrYbnVbtrbllbtsbttbtubsdbtvbtwbtxbtybtzbtAbtBbtCbtDbtEbtFbtFbtEbtGbtHbtIbsibtJbtLbtKbtMbsibtNbtObtPbtQbtRbtSbtSbtTbslbtUbtVbtWbtXbtWbtYbtYbsqbtZbuabubbsqaImbudaImbsqbuebrabssbstaInbugaInbstbuhbuibstbuwbukbulbumaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNtaNtaNtaNtaNtaNtaaaaNtaNtaNtaNtaNtaNtaaaaaaaaaaaaaaaaaaaaabkxbkxbkxbkxbkxbkxbkxbkxbkxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaboPboPboPboPboPboPboPboPboPboPaaabunaAvbuoblUbupbpSbuqbpSburbusbutbuubpSbuvbwHbuxbuybsCbjlbjlbjlbjlbjlbjlbuzbuAbuBbuCbuDbkRbkRbkRbkRbkRbkRbkRbuEbkRbkRbkRbuFbkRbuGbuHbuIbnCbnCbnCbuJaIgbuKbnHbuLblbbuMbtablcblcblcblbbuNblbbuObuPbuQbuRbuSbuTbuUbuVbuWbuXbuYbllbuZbnVbvbbvabrYbvcbnVbllbvdbvebvfbsdbvgbvhbvibvjbvkbvlbvmbtFbtFbtFbtFbtFbtFbtFbvnbvobvpbvqbvrbvsbvtbsibvubvvbvwbvxbxqbvzbvvbEbbslbvAbtVbvBbvCbvDbvEbvEbvFbvGbvHbvIbvJbvKbvLbvMbsqbvNbvObvPbstbvQbvRbvSbvTbvTbvUbstbvVbvWbvXbumaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNtaNtaNtaNtaNtaNtaaaaNtaNtaNtaNtaNtaNtaaaaaaaaaaaaaaaaaaaaabkxbkxbkxbkxbkxbkxbkxbkxbkxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIfazEaBmaBmaAvaAvaAvaAvaAvaAvaAvaGTbwabwbbpSbwcbwdbwebwfbwgbwhbwibgebbKbbKbbKbwjbrvbrvbrvbrvbrvbrvbwkbwlbwlbwmbwnbkRbwobwpbwqbwrbwsbwtbwubwvbkRbwwbwxbwybsTaIgbuIbnCbnCbwzbkXbkXbwAbwBbwCbwDbwEbwFbwGbzDbwIbwJbwKbwLbwMbwNbuWbwObwPbwObwPbwQbuWbuXbwRbwSbwTbwUbwVbwWbwXbwYbwZbwSbxabttbttbsdbxbbxcbxdbxebxfbsdbvmbtFbtFbtFbtFbtFbtFbtFbxgbxhbxibxjbxkbvqbxlbsibxmbxnbxobvxbEbbvzbxpbTrbslbxrbxsbxtbxubxubxvbxwbxxbxybxzbxzbxzbxAbxzbxBbxCbxDbxEbxFbxGbxHbxIbxJbxJbxJbxKbstbxLbvWbxMbumaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNtaNtaNtaNtaNtaaaaNtaNtaNtaNtaNtaaaaaaaaaaaaaaaaaaaaaaaabkxbkxbkxbkxbkxbkxbkxbkxbkxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIfazEaBmaBmaAvaAvaAvaAvaAvaAvaAvaGTbwabwbbpSbwcbwdbwebwfbwgbwhbwibgebbKbbKbbKbwjbrvbrvbrvbrvbrvbrvbwkbwlbwlbwmbwnbkRbwobEVbwqbwrbwsbwtbwubwvbkRbwwbwxbwybsTaIgbuIbnCbnCbwzbkXbkXbwAbwBbwCbwDbwEbwFbwGbzDbwIbwJbwKbwLbwMbwNbuWbwObwPbwObwPbwQbuWbuXbwRbwSbwTbwUbwVbwWbwXbwYbwZbwSbxabttbttbsdbxbbxcbxdbxebxfbsdbvmbtFbtFbtFbtFbtFbtFbtFbxgbxhbxibxjbxkbvqbxlbsibxmbxnbxobvxbEbbvzbxpbTrbslbxrbxsbxtbxubxubxvbxwbxxbxybxzbxzbxzbxAbxzbxBbxCbxDbxEbxFbxGbxHbxIbxJbxJbxJbxKbstbxLbvWbxMbumaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNtaNtaNtaNtaNtaaaaNtaNtaNtaNtaNtaaaaaaaaaaaaaaaaaaaaaaaabkxbkxbkxbkxbkxbkxbkxbkxbkxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAvbxObxPbxQbxRbxSbxSbxTbxUaFzbpSbxVaIhbwfbxXbpSbpSbpSaZOaJkaJkbyabybbyabyabyabybbyaaZOaZObkRbkRbkRbycbkRbydbydbydbydbydbydbwubyeaJlbygbyhbyibyjbykbylbymbynbyobypbyqbyrbysbytbyubyvbyvbywbyxbyybyzbyAbyBbyCbyDbthbyEbuUbyFbuSbyGbthaaabyHbyIbyJbyKbyIbyIbyIbyIbyLbllbyMbttbyNbyObyPbyQbyRbySbyTbsdbyUbyVbyWbyXbyYbyZbzabzbbvnbzcbsibzdbxkbzebzfbsibzgbzhbvwbvxbEbbvzbvvbEbbslbvAbtVbzibzjbzkbzlbzmaJmbzobzpbzqbzrbzsbztbzubsqbzvbzwbzxbstbzybzzbzAbvTbzBbzCbstbxLbvWbAhbumaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkxbkxbkxbkxbkxbkxbkxbkxbkxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAvbzEbzFbzGaFyaFybzHbzIaFybzJbpSbzKaJMaKbbzNbpSaaaaaaaaaaabaabbzObzObzObzObzObzObzOaaaaaaaKcbzQbzRbzSbzTbydbydbydbydbydbydbzUbzVbzWbzXbzYbzZbAaaKdbkXbkXbAcbBWbkXbkXbAdbAebAfbAgbBubAibAibAjbAibAkbAlbAmbAnbyDbthbAobtjbtjbtjbApbthaaabyHbyIbAqbArbAsbAtbAubAvbAwbAxbAybttbAzbsdbtvbAAbABbACbADbAEbAFbAGbAHbAIbAJbAKbALbAMbANbAObAPbAQbxkbARbASbsibATbAUbAVbAWbAXbAYbAZbtTbslbBabBbbBcbBdbBdbBebBfaKjbBhbBibBjbBkbBlbBmbBnbsqbBobzwbBpbstbBqbBrbBsbvTbvTbBtbstbvVbvWbEGbumaaaaaaaaaaaaaabbBvbBwbBxbBwbBxbBwbByaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkxbkxbkxbkxbkxbkxbkxbkxbkxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBzaAvbBAbBAaMWaAvaAvaIfazEbBDbBCbpSbBEbBFaKbaKbbpSaaaaaaaaaaaaaaabzObzObzObzObzObzObzOaaaaaaaKcbBJbydbBKbBLbBLbBLbBLbBLbBMbBNbBLbBObBPbBQbBRbBSbBTbBUbkXbBVbnCbKebBXaIgbBZbCabCbbAgbAgbAmbCcbCdbCebCfbCgbAmbtgbyDbthaNIaPwbCjaRvaPAbthaaabCmbyIbCnbCobCpbCqbCrbCqbCsbCtbCubttbCvbsdaSVaSOaSObCzbCAbCBbCCbCDbCEbCFbCGbCGbCHbCIbCJbCKbsibAQbCLaSXbsibsibsjbCNbCObCPbsjbslbslbslbCQbCRbtVbCSbzjbzkbCTbBdaKjbCVbCWbCWbCXbvIbCYbCZbDabDbbvObDcbstbDdbDebvTbDfbDgbDhbstbxLbDibumbumaaaaaaaaaaaaaabbDjbDkbDlbDmbDnbDobDjaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkxbkxbkxbkxbkxbkxbkxbkxbkxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -8143,7 +8143,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxKcxKcxKcxKcxKcxKcxKcxKcxKaaaaaaaaaaczaczakSaabaabcyYcHUczaaaacyYcHUczaaaacyYcHUczaaabaaaaaaaaaaaaaaaaaaaaaaabaabbCxcCYcCYcCYcCYcHWcHXcHYceHcZVceHceHcEDcIaceHcEEbYRcIccIdcIebGIcIgcIhcIicIjbGRcIlcImcIncIocIpbGRcIrcIscItcIucIvcIwcIxcIycIzcIAcGjcIBcICcIDcIEcIFcIGcIHcIIcIJcIKcILcIMbGVcDKcDLcIPcIOcIOcCDaaaaaaaabcDQcIQcFccIRcDRbIxbIxbIxbIxcDRcIVcIWcIXcIYcIZcJacJbcIYbIBaaacDPcjIcjIcjIcjIcjIcJdcqacJecyMcJfcyMcJgcyMcJhcyMcJibGHaaaaaaaaaaaaamjaaacJkcJkcJkcJkcJkaabcJlaabcJkcJkcJkcJkcJkaaaamjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJmaaaaaaaaacJmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxKcxKcxKcxKcxKcxKcxKcxKcxKaaaaaaaaaaaaaaaaaaaaaaaacyYcHUczaaabcyYcHUczaaaacyYcHUczaaaaaaaaaaaabaaaaaaaaaaaaaabaabaabaaaaaaaabaabcJncJncJncJncJncJncJncJocJncJncEEcJpcJqcGTcGTbGIbICbGIbJhcJvcDocJwcJxcFZcJycJzcDocJAcDucDrcJBcJCcJDcIxcJEcJFcJGcJHcJIcJJcJKcJHcJLcJMcJNcJOcDAcJPcJQcJRbJCaabcEYcJUcJTcJVcCDaaaaaaaaacDQcDRcJWcJXcDRcJYcJZcKacKbcKccFccKdcKecIYbJEcKgcKhcKibIBaabaaaaaaaaaaaaaaacjIcKkcKlcKmcKncKocKpcKqcKrcKocKpcKscjIaaaaaaaaaaaaamjaabcKtcKucKucKucKucKvcKwcKxcKycKycKycKycKzaabamjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJmcJmcJmcJmcJmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxKcxKcxKcxKcxKcxKcxKcxKcxKaaaaaaaaaaaaaaaaaaakSaabcyYcHUczaaaacyYcHUczaaaacyYcHUczaaabaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaabaabaabcJncKAcKAcKBcKCcKDcKDcKEcKFcKGcKHcIdcIecGTcGTcGTcKIcGTcGTcGTcDocKJbJVcKLbJWbJXcKOcKPcKQcKRbKhbKhbKhcKVcKWcKXcKYcKZcLacHncCscLbcLccLdcLecLfcDAcJPcLgcLhbKMcLjcDLcLkcIOcIOcCDaabaaaaaacHxcLlcLmcLncLocLpcLqcLpcLpcLrcLscLtcLucLubLscLwcLxcLybLtaabaabaaaaaaaaaaaacjIcLAcLBbLucvWbLEcLEbLUcvWbLVcLHbLWcjIaaaaaaaaaaaaamjaabcLJcLJcLJcLJcLJaaacJlaaacLJcLJcLJcLJcLJaabamjaaaaaaaaaaaacJmaaaaaacJmaaaaaacJmcJmcJmcJmcJmcJmcJmaaaaaacJmaaaaaacJmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxKcxKcxKcxKcxKcxKcxKcxKcxKaaaaaaaaaaaaaaaaaaakSaabcyYcHUczaaaacyYcHUczaaabcyYcHUczaaabaabaabaaaaabaaaaaaaabaabaaaaaaaaaaabaaaaaacJncKAcKAcKBcLKcLKcLKcLLcLLcLMcEEbYVcLOcLPcLQcLRcLScLTcLUcLUcLVcLWcLXcGTcGTcGTcLYcLZcMacMbcMccMdbUJbNdcMgcEEcMhcMhcMicHncCscMjcMkcMlcMmcMncDAcMocMpcMqbNgcMscCDcCDcCDcCDcCDaaaaaaaaacDQcMtcMucMvcMwcMxcMycMxcMxcMzcMAcMBcMCcLybNlcMEcKhcIYbNqaabaabaaaaaaaaaaaacjIcMGcxtcxtcvWcMHcxtcxtcvWcMHcxtcxtcjIaaaaaaaaaaaaamjaaaaabaaaaabaabaabaaacJlaaaaabaaaaabaaaaabaaaamjaaaaaaaaaaaacJmcJmcJmcJmaaacJmcJmcJmcJmcJmcJmcJmcJmcJmaaacJmcJmcJmcJmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxKcxKcxKcxKcxKcxKcxKcxKcxKaaaaaaaaaaaaaaaaaaakSaabcyYcHUczaaaacyYcHUczaaabcyYcHUczaaabaabaabaaaaabaaaaaaaabaabaaaaaaaaaaabaaaaaacJncKAcKAcKBcLKcLKcLKcLLcLLcLMcEEbYVcLOcLPcLQcLRcLScLTcLUcLUcLVcLWcLXcGTcGTcGTcLYcLZcMacMbcMccMdbUJbNdcMgcEEcMhcMhcMicHncCscMjcMkcMlcMmcMncDAcMocMpcMqbNgcMscCDcCDcCDcCDcCDaaaaaaaaacDQcMtcMucMvcMwcMxcMycMxcMxcMzcMAcMBcMCcLybNlcMEcKhcIYbNqaabaabaaaaaaaaaaaacjIcaecxtcxtcvWcMHcxtcxtcvWcMHcxtcxtcjIaaaaaaaaaaaaamjaaaaabaaaaabaabaabaaacJlaaaaabaaaaabaaaaabaaaamjaaaaaaaaaaaacJmcJmcJmcJmaaacJmcJmcJmcJmcJmcJmcJmcJmcJmaaacJmcJmcJmcJmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxKcxKcxKcxKcxKcxKcxKcxKcxKaaaaaaaaaaaaaaaaaaalwaabcyYcMIczaaaacyYcMIczaaaacyYcMIczaaabakSaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaabcJncMJcMKcLKcLKcLKcMLcMMcMMcMNcMMcMMcMMcMMcMOcMPcMQcMRcMScMScMScMTcMUcMVcMScMScMScMUcMWcMXcMYcMdbUKbNdcMgcNbcNccNdcNecNfcNgcNhcNicLfcNjcNkcNlcNmcNncNobGVcNpcDLcNqcNrcNrcCDaaaaaaaaacDQcNscNtcNucNvcNwcNxcNycIYcNzcNAcNBcNCcNDbJEcNFcNGcNHbNqaaaaaaaaaaaaaaaaaacjIcNJbTXcxtcvWcNKbTXcxtcvWcNKbTXcxtcjIaaaaaaaaaaaaamjaaacJkcJkcJkcJkcJkaabcJlaabcJkcJkcJkcJkcJkaabamjaaaaaaaaaaaacJmcJmcJmcJmaaacJmcJmcJmcJmcJmcJmcJmcJmcJmaaacJmcJmcJmcJmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxKcxKcxKcxKcxKcxKcxKcxKcxKaaaaaaaaaaaaaaaaaaakSaaaaabaaaaaaaaaaabaabaabaaaaaaaabaabaaaakSaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaabcJncNLcLKcLKcLKcLKcLKcMMcNMcNNcNOcNPcNQcMMcNRcNScNTcJqcGTcGTcNUcNVbNtbNucNYbNvbNvcObcEEcOccMYcMdbULbNdcMgcEEcOfcMhcOgcOhcDAcNhcNicOicDAcNkcNlcJPcJQcOjbJCcOkcEYcOlcOmcOncCDaaaaaaaaacOobNwbNwbNwbNwcOscOscOtcOubJEbJEbNxbSSbJEcOzcOzbTicOAcOzaaaaaaaaaaaaaaaaaacjIcxtcxtcxtcvWcOBcxtcxtcvWcOBcxtcxtcjIaaaaaaaaaaaaamjaabcKtcKucKucKucKucKvcKwcKxcKycKycKycKycOCaabamjaaaaaaaaaaaacJmcJmcJmcJmaaacJmcJmcJmcJmcJmcJmcJmcJmcJmaaacJmcJmcJmcJmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxKcxKcxKcxKcxKcxKcxKcxKcxKaaaaaaaaaaaaaaaaaaaczaczakSaczaczalwakSakSakSakSaczakSakSaczcODaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJncOEcLLcOFcOGcOHcOIcMMcOJcOKcOLcOMcONcOOcOPcOQcORcJqcGTcOScOTcOUcOVcOWcOXcOYcOZcPacPbcNTcJqcPccPdcMbcPecEEcPfcMhcPgcPhcDAcNhcNicLfcDAcPicNlcJPcPjcPkbKMcPlcDLcPmcNrcNrcCDaaaaaaaaacPnaaaaaaaaaaaaaaaaaacDQcPocIYcIYcPpcPqcPrcOzaacbTpbTqcPuaaaaaaaaaaaaaaaaaacjIcjIcjIcjIcjIcjIcjIcjIcjIcPvcPvcPvcjIaaaaaaaaaaaaamjaabcLJcLJcLJcLJcLJaaacJlaabcLJcLJcLJcLJcLJaaaamjaaaaaaaaaaaacJmcJmcJmcJmcJmcJmcJmcJmcJmcJmcJmcJmcJmcJmcJmcJmcJmcJmcJmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa From ba82f03d7c53fde4b413eeddc38198dbd2c37d39 Mon Sep 17 00:00:00 2001 From: DZD Date: Sat, 1 Aug 2015 10:13:54 -0400 Subject: [PATCH 10/12] Drill and drone fixes - Fixes mining drones having access to a plasma cutter energy weapon, replaced with a diamond drill. Functionality is almost identical to what it was with old plasma cutters. - Pathing fixes for diamond drills. --- code/game/gamemodes/newobjective.dm | 2 +- code/game/gamemodes/steal_items.dm | 2 +- code/game/objects/structures/girders.dm | 4 ++-- code/game/turfs/simulated/walls.dm | 2 +- code/game/turfs/simulated/walls_reinforced.dm | 2 +- code/modules/mob/living/silicon/robot/robot_modules.dm | 3 +-- code/modules/research/designs/mining_designs.dm | 2 +- 7 files changed, 8 insertions(+), 9 deletions(-) diff --git a/code/game/gamemodes/newobjective.dm b/code/game/gamemodes/newobjective.dm index 7ef2121d7c3..caaf37f084c 100644 --- a/code/game/gamemodes/newobjective.dm +++ b/code/game/gamemodes/newobjective.dm @@ -841,7 +841,7 @@ datum return 2 diamond_drill - steal_target = /obj/item/weapon/pickaxe/diamonddrill + steal_target = /obj/item/weapon/pickaxe/drill/diamonddrill explanation_text = "Steal a diamond drill." weight = 20 diff --git a/code/game/gamemodes/steal_items.dm b/code/game/gamemodes/steal_items.dm index c063ed0bd9b..fd648b05c7d 100644 --- a/code/game/gamemodes/steal_items.dm +++ b/code/game/gamemodes/steal_items.dm @@ -212,7 +212,7 @@ datum/theft_objective/ai/check_special_completion(var/obj/item/device/aicard/C) /datum/theft_objective/special/diamond_drill name = "diamond drill" - typepath = /obj/item/weapon/pickaxe/diamonddrill + typepath = /obj/item/weapon/pickaxe/drill/diamonddrill /datum/theft_objective/special/boh name = "bag of holding" diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index b93b7e3571e..ef70953075d 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -32,7 +32,7 @@ new /obj/item/stack/sheet/metal(get_turf(src)) qdel(src) - else if(istype(W, /obj/item/weapon/pickaxe/diamonddrill)) + else if(istype(W, /obj/item/weapon/pickaxe/drill/diamonddrill)) user << "\blue You drill through the girder!" new /obj/item/stack/sheet/metal(get_turf(src)) qdel(src) @@ -224,7 +224,7 @@ user << "\blue You slice apart the girder!" dismantle() - else if(istype(W, /obj/item/weapon/pickaxe/diamonddrill)) + else if(istype(W, /obj/item/weapon/pickaxe/drill/diamonddrill)) user << "\blue You drill through the girder!" dismantle() diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index b89c84cbcd8..58bd290bf5e 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -385,7 +385,7 @@ return //DRILLING - else if (istype(W, /obj/item/weapon/pickaxe/diamonddrill)) + else if (istype(W, /obj/item/weapon/pickaxe/drill/diamonddrill)) user << "You begin to drill though the wall." diff --git a/code/game/turfs/simulated/walls_reinforced.dm b/code/game/turfs/simulated/walls_reinforced.dm index c46c2c6fa5a..cf094395019 100644 --- a/code/game/turfs/simulated/walls_reinforced.dm +++ b/code/game/turfs/simulated/walls_reinforced.dm @@ -253,7 +253,7 @@ //vv OK, we weren't performing a valid deconstruction step or igniting thermite,let's check the other possibilities vv //DRILLING - if (istype(W, /obj/item/weapon/pickaxe/diamonddrill)) + if (istype(W, /obj/item/weapon/pickaxe/drill/diamonddrill)) user << "You begin to drill though the wall." diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index a34e61662b0..3a680bf2fc0 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -415,8 +415,7 @@ src.modules += new /obj/item/weapon/reagent_containers/spray/cleaner/drone(src) src.modules += new /obj/item/weapon/soap(src) - src.emag = new /obj/item/weapon/gun/energy/plasmacutter(src) - src.emag.name = "Plasma Cutter" + src.emag = new /obj/item/weapon/pickaxe/drill/cyborg/diamond(src) for(var/T in stacktypes) var/obj/item/stack/sheet/W = new T(src) diff --git a/code/modules/research/designs/mining_designs.dm b/code/modules/research/designs/mining_designs.dm index 61f86c16294..8fcbf4b48ce 100644 --- a/code/modules/research/designs/mining_designs.dm +++ b/code/modules/research/designs/mining_designs.dm @@ -9,7 +9,7 @@ build_type = PROTOLATHE materials = list("$metal" = 3000, "$glass" = 1000, "$diamond" = 3750) //Yes, a whole diamond is needed. reliability_base = 79 - build_path = /obj/item/weapon/pickaxe/diamonddrill + build_path = /obj/item/weapon/pickaxe/drill/diamonddrill category = list("Mining") /datum/design/pick_diamond From 3afb9a75adac4e521b416a8bdb1dfb5c4e16af73 Mon Sep 17 00:00:00 2001 From: Markolie Date: Sat, 1 Aug 2015 19:37:58 +0200 Subject: [PATCH 11/12] Upgraded pacman fix --- code/modules/power/port_gen.dm | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm index ee8cd0a5956..60116821a55 100644 --- a/code/modules/power/port_gen.dm +++ b/code/modules/power/port_gen.dm @@ -124,7 +124,7 @@ component_parts += new board_path(null) RefreshParts() -/obj/machinery/power/port_gen/pacman/New() +/obj/machinery/power/port_gen/pacman/upgraded/New() ..() component_parts = list() component_parts += new /obj/item/weapon/stock_parts/matter_bin/super(null) @@ -381,6 +381,17 @@ 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() + component_parts += new /obj/item/weapon/stock_parts/matter_bin/super(null) + component_parts += new /obj/item/weapon/stock_parts/micro_laser/ultra(null) + component_parts += new /obj/item/stack/cable_coil(null, 1) + component_parts += new /obj/item/stack/cable_coil(null, 1) + component_parts += new /obj/item/weapon/stock_parts/capacitor/super(null) + component_parts += new board_path(null) + RefreshParts() /obj/machinery/power/port_gen/pacman/super/UseFuel() //produces a tiny amount of radiation when in use @@ -416,6 +427,17 @@ 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() + component_parts += new /obj/item/weapon/stock_parts/matter_bin/super(null) + component_parts += new /obj/item/weapon/stock_parts/micro_laser/ultra(null) + component_parts += new /obj/item/stack/cable_coil(null, 1) + component_parts += new /obj/item/stack/cable_coil(null, 1) + component_parts += new /obj/item/weapon/stock_parts/capacitor/super(null) + component_parts += new board_path(null) + RefreshParts() /obj/machinery/power/port_gen/pacman/mrs/explode() //no special effects, but the explosion is pretty big (same as a supermatter shard). From 1344de844b9f8b95ba2b4cdabe983e7b0c24483e Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Sat, 1 Aug 2015 15:20:44 -0400 Subject: [PATCH 12/12] DVIEW Fixes --- code/__DEFINES/misc.dm | 3 ++- code/modules/lighting/light_source.dm | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 6d24ef3099b..5082f480ee0 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -142,4 +142,5 @@ #define FOR_DVIEW(type, range, center, invis_flags) \ dview_mob.loc = center; \ dview_mob.see_invisible = invis_flags; \ - for(type in view(range, dview_mob)) \ No newline at end of file + for(type in view(range, dview_mob)) +#define END_FOR_DVIEW dview_mob.loc = null \ No newline at end of file diff --git a/code/modules/lighting/light_source.dm b/code/modules/lighting/light_source.dm index 0b6324a14a4..72618280137 100644 --- a/code/modules/lighting/light_source.dm +++ b/code/modules/lighting/light_source.dm @@ -177,6 +177,7 @@ T.affecting_lights += src effect_turf += T + END_FOR_DVIEW /datum/light_source/proc/remove_lum() applied = 0 @@ -201,11 +202,10 @@ var/list/view[0] FOR_DVIEW(var/turf/T, light_range, source_turf, INVISIBILITY_LIGHTING) view += T //Filter out turfs. - + END_FOR_DVIEW //This is the part where we calculate new turfs (if any) var/list/new_turfs = view - effect_turf //This will result with all the tiles that are added. for(var/turf/T in new_turfs) - //Big huge copy paste from apply_lum() incoming because screw unreadable defines and screw proc call overhead. if(T.lighting_overlay) LUM_FALLOFF(., T, source_turf) . *= light_power