From 8cd47739d285b40fa6c27df88780d6c29f8f2f27 Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Tue, 19 Feb 2013 14:04:33 +1000 Subject: [PATCH 01/17] removed event debug string, bumped up minimum event interval, tweak to space carp Signed-off-by: Cael_Aislinn --- code/modules/events/carp_migration.dm | 7 ++++--- code/modules/events/event_dynamic.dm | 2 +- code/modules/events/event_manager.dm | 8 ++++---- code/modules/events/infestation.dm | 6 +----- 4 files changed, 10 insertions(+), 13 deletions(-) diff --git a/code/modules/events/carp_migration.dm b/code/modules/events/carp_migration.dm index dffb2836688..e90e20c9f88 100644 --- a/code/modules/events/carp_migration.dm +++ b/code/modules/events/carp_migration.dm @@ -18,6 +18,7 @@ /datum/event/carp_migration/end() for(var/mob/living/simple_animal/hostile/carp/C in spawned_carp) - var/turf/T = get_turf(C) - if(istype(T, /turf/space)) - del(C) + if(!C.stat) + var/turf/T = get_turf(C) + if(istype(T, /turf/space)) + del(C) diff --git a/code/modules/events/event_dynamic.dm b/code/modules/events/event_dynamic.dm index 38e86ec0e56..4a2c43bdf6c 100644 --- a/code/modules/events/event_dynamic.dm +++ b/code/modules/events/event_dynamic.dm @@ -43,7 +43,7 @@ possibleEvents[/datum/event/carp_migration] = 50 + 50 * active_with_role["Engineer"] possibleEvents[/datum/event/brand_intelligence] = 50 + 25 * active_with_role["Janitor"] - possibleEvents[/datum/event/rogue_drone] = 50 + 25 * active_with_role["Engineer"] + 25 * active_with_role["Security"] + possibleEvents[/datum/event/rogue_drone] = 25 + 25 * active_with_role["Engineer"] + 25 * active_with_role["Security"] possibleEvents[/datum/event/infestation] = 50 + 25 * active_with_role["Janitor"] possibleEvents[/datum/event/communications_blackout] = 50 + 25 * active_with_role["AI"] + active_with_role["Scientist"] * 25 diff --git a/code/modules/events/event_manager.dm b/code/modules/events/event_manager.dm index 40f8483ca4b..ab505e5d832 100644 --- a/code/modules/events/event_manager.dm +++ b/code/modules/events/event_manager.dm @@ -2,8 +2,8 @@ var/list/allEvents = typesof(/datum/event) - /datum/event var/list/potentialRandomEvents = typesof(/datum/event) - /datum/event //var/list/potentialRandomEvents = typesof(/datum/event) - /datum/event - /datum/event/spider_infestation - /datum/event/alien_infestation -var/eventTimeLower = 15000 //15 minutes -var/eventTimeUpper = 30000 //45 minutes +var/eventTimeLower = 20000 //20 minutes +var/eventTimeUpper = 45000 //45 minutes var/scheduledEvent = null @@ -19,7 +19,7 @@ var/scheduledEvent = null /proc/checkEvent() if(!scheduledEvent) //more players = more time between events, less players = less time between events - var/playercount_modifier = 0.5 + var/playercount_modifier = 1 switch(player_list.len) if(0 to 10) playercount_modifier = 1.2 @@ -63,4 +63,4 @@ var/scheduledEvent = null if(ispath(type)) new type - message_admins("[key_name_admin(usr)] has triggered an event. ([type])", 1) \ No newline at end of file + message_admins("[key_name_admin(usr)] has triggered an event. ([type])", 1) diff --git a/code/modules/events/infestation.dm b/code/modules/events/infestation.dm index 04dc7d46a17..4099927ac9f 100644 --- a/code/modules/events/infestation.dm +++ b/code/modules/events/infestation.dm @@ -70,24 +70,20 @@ turfs += F var/list/spawn_types = list() - var/max_number vermin = rand(0,2) switch(vermin) if(VERM_MICE) spawn_types = list(/mob/living/simple_animal/mouse/gray, /mob/living/simple_animal/mouse/brown, /mob/living/simple_animal/mouse/white) - max_number = 12 vermstring = "mice" if(VERM_LIZARDS) spawn_types = list(/mob/living/simple_animal/lizard) - max_number = 6 vermstring = "lizards" if(VERM_SLIMES) spawn_types = list(/mob/living/carbon/slime) - max_number = 3 vermstring = "slimes" spawn(0) - var/num = rand(2,max_number) + var/num = rand(1, 3) while(turfs.len > 0 && num > 0) var/turf/simulated/floor/T = pick(turfs) turfs.Remove(T) From d477b7230fa161a22ab71aa2bc4aa6ce7e2fdbbc Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Fri, 22 Feb 2013 16:39:42 +1000 Subject: [PATCH 02/17] reworked rust components to integrate more smoothly with each other, cleaned up a bunch of useability issues, made all relevant components portable, fixed some random bugs, added a mostly nonfunctional map to show an example layout (based on antiqua's engineering layout) Signed-off-by: Cael_Aislinn --- baystation12.dme | 2 +- .../Cael_Aislinn/Rust/core_control.dm | 142 +++ .../Cael_Aislinn/Rust/core_field.dm | 1136 ++++++++--------- .../Cael_Aislinn/Rust/core_gen.dm | 282 +++- .../Cael_Aislinn/Rust/core_monitor.dm | 78 -- .../Cael_Aislinn/Rust/fuel_assembly.dm | 2 +- .../Cael_Aislinn/Rust/fuel_assembly_port.dm | 125 +- .../Cael_Aislinn/Rust/fuel_compressor.dm | 156 +-- .../Cael_Aislinn/Rust/fuel_control.dm | 335 ++--- .../Cael_Aislinn/Rust/fuel_injector.dm | 460 ++++--- .../Cael_Aislinn/Rust/radiation.dm | 6 +- .../Rust/virtual_particle_catcher.dm | 76 +- .../particle_accelerator/particle.dm | 8 +- maps/rust_test.dmm | 372 ++++++ 14 files changed, 1992 insertions(+), 1188 deletions(-) create mode 100644 code/WorkInProgress/Cael_Aislinn/Rust/core_control.dm delete mode 100644 code/WorkInProgress/Cael_Aislinn/Rust/core_monitor.dm create mode 100644 maps/rust_test.dmm diff --git a/baystation12.dme b/baystation12.dme index 43610980ad7..adb5f39af0f 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1200,9 +1200,9 @@ #include "code\WorkInProgress\Cael_Aislinn\Jungle\jungle_turfs.dm" #include "code\WorkInProgress\Cael_Aislinn\Jungle\misc_helpers.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\areas.dm" +#include "code\WorkInProgress\Cael_Aislinn\Rust\core_control.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\core_field.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\core_gen.dm" -#include "code\WorkInProgress\Cael_Aislinn\Rust\core_monitor.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\fuel_assembly.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\fuel_assembly_port.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\fuel_compressor.dm" diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/core_control.dm b/code/WorkInProgress/Cael_Aislinn/Rust/core_control.dm new file mode 100644 index 00000000000..19d8e07dd85 --- /dev/null +++ b/code/WorkInProgress/Cael_Aislinn/Rust/core_control.dm @@ -0,0 +1,142 @@ + +/obj/machinery/computer/rust_core_control + name = "RUST Core Control" + icon_state = "power" + var/list/connected_devices = list() + var/id_tag = "allan remember to update this before you leave" + var/scan_range = 25 + + //currently viewed + var/obj/machinery/power/rust_core/cur_viewed_device + +/obj/machinery/computer/rust_core_control/process() + if(stat & (BROKEN|NOPOWER)) + return + +/obj/machinery/computer/rust_core_control/attack_ai(mob/user) + attack_hand(user) + +/obj/machinery/computer/rust_core_control/attack_hand(mob/user) + add_fingerprint(user) + interact(user) + +/obj/machinery/computer/rust_core_control/interact(mob/user) + if(stat & BROKEN) + user.unset_machine() + user << browse(null, "window=core_control") + return + if (!istype(user, /mob/living/silicon) && (get_dist(src, user) > 1 )) + user.unset_machine() + user << browse(null, "window=core_control") + return + + var/dat = "" + if(stat & NOPOWER) + dat += "The console is dark and nonresponsive." + else + dat += "Reactor Core Primary Monitor
" + if(cur_viewed_device && cur_viewed_device.stat & (BROKEN|NOPOWER)) + cur_viewed_device = null + if(cur_viewed_device && !cur_viewed_device.remote_access_enabled) + cur_viewed_device = null + + if(cur_viewed_device) + dat += "Device tag: [cur_viewed_device.id_tag ? cur_viewed_device.id_tag : "UNSET"]
" + dat += "Device [cur_viewed_device.owned_field ? "activated" : "deactivated"].
" + dat += "\[Bring field [cur_viewed_device.owned_field ? "offline" : "online"]\]
" + dat += "Device [cur_viewed_device.anchored ? "secured" : "unsecured"].
" + dat += "
" + dat += "Field encumbrance: [cur_viewed_device.owned_field ? 0 : "NA"]
" + dat += "Field strength: [cur_viewed_device.field_strength] Wm^3
" + dat += "\[----\] \ + \[--- \] \ + \[-- \] \ + \[- \] \ + \[+ \] \ + \[++ \] \ + \[+++ \] \ + \[++++\]
" + dat += "Field frequency: [cur_viewed_device.field_frequency] MHz
" + dat += "\[----\] \ + \[--- \] \ + \[-- \] \ + \[- \] \ + \[+ \] \ + \[++ \] \ + \[+++ \] \ + \[++++\]
" + + var/power_stat = "Good" + if(cur_viewed_device.cached_power_avail < cur_viewed_device.active_power_usage) + power_stat = "Insufficient" + else if(cur_viewed_device.cached_power_avail < cur_viewed_device.active_power_usage * 2) + power_stat = "Check" + dat += "Power status: [power_stat]
" + else + dat += "\[Refresh device list\]

" + if(connected_devices.len) + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + for(var/obj/machinery/power/rust_core/C in connected_devices) + if(!check_core_status(C)) + connected_devices.Remove(C) + continue + + dat += "" + dat += "" + dat += "" + dat += "" + dat += "
Device tag
[C.id_tag]\[Manage\]
" + else + dat += "No devices connected.
" + + dat += "
" + dat += "Refresh " + dat += "Close" + + user << browse(dat, "window=core_control;size=500x400") + onclose(user, "core_control") + user.set_machine(src) + +/obj/machinery/computer/rust_core_control/Topic(href, href_list) + ..() + + if( href_list["goto_scanlist"] ) + cur_viewed_device = null + + if( href_list["manage_individual"] ) + cur_viewed_device = locate(href_list["manage_individual"]) + + if( href_list["scan"] ) + connected_devices = list() + for(var/obj/machinery/power/rust_core/C in range(scan_range, src)) + if(check_core_status(C)) + connected_devices.Add(C) + + if( href_list["startup"] ) + if(cur_viewed_device) + cur_viewed_device.Startup() + + if( href_list["shutdown"] ) + if(cur_viewed_device) + cur_viewed_device.Shutdown() + + if( href_list["close"] ) + usr << browse(null, "window=core_control") + usr.unset_machine() + + updateDialog() + +/obj/machinery/computer/rust_core_control/proc/check_core_status(var/obj/machinery/power/rust_core/C) + if(!C) + return 0 + + if(C.stat & (BROKEN|NOPOWER) || !C.remote_access_enabled || !C.id_tag) + if(connected_devices.Find(C)) + connected_devices.Remove(C) + return 0 + + return 1 diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm b/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm index ec887bc1cc5..9442ced3a46 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm @@ -6,23 +6,21 @@ Deuterium-tritium fusion: 4.5 x 10^7 K //#DEFINE MAX_STORED_ENERGY (held_plasma.toxins * held_plasma.toxins * SPECIFIC_HEAT_TOXIN) -/obj/machinery/rust/em_field +/obj/effect/rust_em_field name = "EM Field" desc = "A coruscating, barely visible field of energy. It is shaped like a slightly flattened torus." - icon = 'emfield.dmi' + icon = 'code/WorkInProgress/Cael_Aislinn/Rust/emfield.dmi' icon_state = "emfield_s1" - density = 0 - layer = 3.1 - anchored = 1 // var/major_radius = 0 //longer radius in meters = field_strength * 0.21875, max = 8.75 var/minor_radius = 0 //shorter radius in meters = field_strength * 0.2125, max = 8.625 var/size = 1 //diameter in tiles var/volume_covered = 0 //atmospheric volume covered // - var/obj/machinery/rust/core/owned_core + var/obj/machinery/power/rust_core/owned_core var/list/dormant_reactant_quantities = new - luminosity = 1 + //luminosity = 1 + layer = 3.1 // var/energy = 0 var/mega_energy = 0 @@ -34,420 +32,410 @@ Deuterium-tritium fusion: 4.5 x 10^7 K var/datum/gas_mixture/held_plasma = new var/particle_catchers[13] - New() - ..() - //create radiator - for(var/obj/machinery/rust/rad_source/rad in range(0)) - radiator = rad - if(!radiator) - radiator = new() + var/emp_overload = 0 - //make sure there's a field generator - for(var/obj/machinery/rust/core/em_core in loc) - owned_core = em_core +/obj/effect/rust_em_field/New() + ..() + //create radiator + for(var/obj/machinery/rust/rad_source/rad in range(0)) + radiator = rad + if(!radiator) + radiator = new() - if(!owned_core) - del(src) - if(!owned_core.on) - del(src) + //make sure there's a field generator + for(var/obj/machinery/power/rust_core/core in loc) + owned_core = core - //create the gimmicky things to handle field collisions - var/obj/machinery/rust/particle_catcher/catcher + if(!owned_core) + del(src) + + //create the gimmicky things to handle field collisions + var/obj/effect/rust_particle_catcher/catcher + // + catcher = new (locate(src.x,src.y,src.z)) + catcher.parent = src + catcher.SetSize(1) + particle_catchers.Add(catcher) + // + catcher = new (locate(src.x-1,src.y,src.z)) + catcher.parent = src + catcher.SetSize(3) + particle_catchers.Add(catcher) + catcher = new (locate(src.x+1,src.y,src.z)) + catcher.parent = src + catcher.SetSize(3) + particle_catchers.Add(catcher) + catcher = new (locate(src.x,src.y+1,src.z)) + catcher.parent = src + catcher.SetSize(3) + particle_catchers.Add(catcher) + catcher = new (locate(src.x,src.y-1,src.z)) + catcher.parent = src + catcher.SetSize(3) + particle_catchers.Add(catcher) + // + catcher = new (locate(src.x-2,src.y,src.z)) + catcher.parent = src + catcher.SetSize(5) + particle_catchers.Add(catcher) + catcher = new (locate(src.x+2,src.y,src.z)) + catcher.parent = src + catcher.SetSize(5) + particle_catchers.Add(catcher) + catcher = new (locate(src.x,src.y+2,src.z)) + catcher.parent = src + catcher.SetSize(5) + particle_catchers.Add(catcher) + catcher = new (locate(src.x,src.y-2,src.z)) + catcher.parent = src + catcher.SetSize(5) + particle_catchers.Add(catcher) + // + catcher = new (locate(src.x-3,src.y,src.z)) + catcher.parent = src + catcher.SetSize(7) + particle_catchers.Add(catcher) + catcher = new (locate(src.x+3,src.y,src.z)) + catcher.parent = src + catcher.SetSize(7) + particle_catchers.Add(catcher) + catcher = new (locate(src.x,src.y+3,src.z)) + catcher.parent = src + catcher.SetSize(7) + particle_catchers.Add(catcher) + catcher = new (locate(src.x,src.y-3,src.z)) + catcher.parent = src + catcher.SetSize(7) + particle_catchers.Add(catcher) + + //init values + major_radius = field_strength * 0.21875// max = 8.75 + minor_radius = field_strength * 0.2125// max = 8.625 + volume_covered = PI * major_radius * minor_radius * 2.5 * 2.5 * 1000 + +/obj/effect/rust_em_field/process() + //make sure the field generator is still intact + if(!owned_core) + del(src) + + //handle radiation + if(!radiator) + radiator = new /obj/machinery/rust/rad_source() + radiator.mega_energy += radiation + radiator.source_alive++ + radiation = 0 + + //update values + var/transfer_ratio = field_strength / 50 //higher field strength will result in faster plasma aggregation + major_radius = field_strength * 0.21875// max = 8.75m + minor_radius = field_strength * 0.2125// max = 8.625m + volume_covered = PI * major_radius * minor_radius * 2.5 * 2.5 * 2.5 * 7 * 7 * transfer_ratio //one tile = 2.5m*2.5m*2.5m + + //add plasma from the surrounding environment + var/datum/gas_mixture/environment = loc.return_air() + + //hack in some stuff to remove plasma from the air because SCIENCE + //the amount of plasma pulled in each update is relative to the field strength, with 50T (max field strength) = 100% of area covered by the field + //at minimum strength, 0.25% of the field volume is pulled in per update (?) + //have a max of 1000 moles suspended + if(held_plasma.toxins < transfer_ratio * 1000) + var/moles_covered = environment.return_pressure()*volume_covered/(environment.temperature * R_IDEAL_GAS_EQUATION) + //world << "\blue moles_covered: [moles_covered]" // - catcher = new (locate(src.x,src.y,src.z)) - catcher.parent = src - catcher.SetSize(1) - particle_catchers.Add(catcher) + var/datum/gas_mixture/gas_covered = environment.remove(moles_covered) + var/datum/gas_mixture/plasma_captured = new /datum/gas_mixture() // - catcher = new (locate(src.x-1,src.y,src.z)) - catcher.parent = src - catcher.SetSize(3) - particle_catchers.Add(catcher) - catcher = new (locate(src.x+1,src.y,src.z)) - catcher.parent = src - catcher.SetSize(3) - particle_catchers.Add(catcher) - catcher = new (locate(src.x,src.y+1,src.z)) - catcher.parent = src - catcher.SetSize(3) - particle_catchers.Add(catcher) - catcher = new (locate(src.x,src.y-1,src.z)) - catcher.parent = src - catcher.SetSize(3) - particle_catchers.Add(catcher) + plasma_captured.toxins = round(gas_covered.toxins * transfer_ratio) + //world << "\blue[plasma_captured.toxins] moles of plasma captured" + plasma_captured.temperature = gas_covered.temperature + plasma_captured.update_values() // - catcher = new (locate(src.x-2,src.y,src.z)) - catcher.parent = src - catcher.SetSize(5) - particle_catchers.Add(catcher) - catcher = new (locate(src.x+2,src.y,src.z)) - catcher.parent = src - catcher.SetSize(5) - particle_catchers.Add(catcher) - catcher = new (locate(src.x,src.y+2,src.z)) - catcher.parent = src - catcher.SetSize(5) - particle_catchers.Add(catcher) - catcher = new (locate(src.x,src.y-2,src.z)) - catcher.parent = src - catcher.SetSize(5) - particle_catchers.Add(catcher) + gas_covered.toxins -= plasma_captured.toxins + gas_covered.update_values() // - catcher = new (locate(src.x-3,src.y,src.z)) - catcher.parent = src - catcher.SetSize(7) - particle_catchers.Add(catcher) - catcher = new (locate(src.x+3,src.y,src.z)) - catcher.parent = src - catcher.SetSize(7) - particle_catchers.Add(catcher) - catcher = new (locate(src.x,src.y+3,src.z)) - catcher.parent = src - catcher.SetSize(7) - particle_catchers.Add(catcher) - catcher = new (locate(src.x,src.y-3,src.z)) - catcher.parent = src - catcher.SetSize(7) - particle_catchers.Add(catcher) - - //init values - major_radius = field_strength * 0.21875// max = 8.75 - minor_radius = field_strength * 0.2125// max = 8.625 - volume_covered = PI * major_radius * minor_radius * 2.5 * 2.5 * 1000 - - process() - //make sure the field generator is still intact - if(!owned_core) - del(src) - if(!owned_core.on) - del(src) - - //handle radiation - if(!radiator) - radiator = new /obj/machinery/rust/rad_source() - radiator.mega_energy += radiation - radiator.source_alive++ - radiation = 0 - - //update values - var/transfer_ratio = field_strength / 50 //higher field strength will result in faster plasma aggregation - major_radius = field_strength * 0.21875// max = 8.75m - minor_radius = field_strength * 0.2125// max = 8.625m - volume_covered = PI * major_radius * minor_radius * 2.5 * 2.5 * 2.5 * 7 * 7 * transfer_ratio //one tile = 2.5m*2.5m*2.5m - - //add plasma from the surrounding environment - var/datum/gas_mixture/environment = loc.return_air() - - //hack in some stuff to remove plasma from the air because SCIENCE - //the amount of plasma pulled in each update is relative to the field strength, with 50T (max field strength) = 100% of area covered by the field - //at minimum strength, 0.25% of the field volume is pulled in per update (?) - //have a max of 1000 moles suspended - if(held_plasma.toxins < transfer_ratio * 1000) - var/moles_covered = environment.return_pressure()*volume_covered/(environment.temperature * R_IDEAL_GAS_EQUATION) - //world << "\blue moles_covered: [moles_covered]" - // - var/datum/gas_mixture/gas_covered = environment.remove(moles_covered) - var/datum/gas_mixture/plasma_captured = new /datum/gas_mixture() - // - plasma_captured.toxins = round(gas_covered.toxins * transfer_ratio) - //world << "\blue[plasma_captured.toxins] moles of plasma captured" - plasma_captured.temperature = gas_covered.temperature - plasma_captured.update_values() - // - gas_covered.toxins -= plasma_captured.toxins - gas_covered.update_values() - // - held_plasma.merge(plasma_captured) - // - environment.merge(gas_covered) - - //let the particles inside the field react - React() - - //forcibly radiate any excess energy - var/energy_max = transfer_ratio * 100000 - if(mega_energy > energy_max) - var/energy_lost = rand( 1.5 * (mega_energy - energy_max), 2.5 * (mega_energy - energy_max) ) - mega_energy -= energy_lost - radiation += energy_lost - - //change held plasma temp according to energy levels - //SPECIFIC_HEAT_TOXIN - if(mega_energy > 0 && held_plasma.toxins) - var/heat_capacity = held_plasma.heat_capacity()//200 * number of plasma moles - if(heat_capacity > 0.0003) //formerly MINIMUM_HEAT_CAPACITY - held_plasma.temperature = (heat_capacity + mega_energy * 35000)/heat_capacity - - //if there is too much plasma in the field, lose some - /*if( held_plasma.toxins > (MOLES_CELLSTANDARD * 7) * (50 / field_strength) ) - LosePlasma()*/ - if(held_plasma.toxins > 1) - //lose a random amount of plasma back into the air, increased by the field strength (want to switch this over to frequency eventually) - var/loss_ratio = rand() * (0.05 + (0.05 * 50 / field_strength)) - //world << "lost [loss_ratio*100]% of held plasma" - // - var/datum/gas_mixture/plasma_lost = new - plasma_lost.temperature = held_plasma.temperature - // - plasma_lost.toxins = held_plasma.toxins * loss_ratio - //plasma_lost.update_values() - held_plasma.toxins -= held_plasma.toxins * loss_ratio - //held_plasma.update_values() - // - environment.merge(plasma_lost) - radiation += loss_ratio * mega_energy * 0.1 - mega_energy -= loss_ratio * mega_energy * 0.1 - else - held_plasma.toxins = 0 - //held_plasma.update_values() - - //handle some reactants formatting - //helium-4 has no use at the moment, but a buttload of it is produced - if(dormant_reactant_quantities["Helium-4"] > 1000) - dormant_reactant_quantities["Helium-4"] = rand(0,dormant_reactant_quantities["Helium-4"]) - for(var/reactant in dormant_reactant_quantities) - if(!dormant_reactant_quantities[reactant]) - dormant_reactant_quantities.Remove(reactant) - - return 1 - - Del() - ..() - //radiate everything in one giant burst - for(var/obj/machinery/rust/particle_catcher/catcher in particle_catchers) - del (catcher) - RadiateAll() - - proc/ChangeFieldStrength(var/new_strength) - field_strength = new_strength - var/newsize - if(new_strength <= 5) - newsize = 1 - else if(new_strength <= 12) - newsize = 3 - else if(new_strength <= 25) - newsize = 5 - else if(new_strength <= 50) - newsize = 7 + held_plasma.merge(plasma_captured) // - change_size(newsize) + environment.merge(gas_covered) - proc/AddEnergy(var/a_energy, var/a_mega_energy, var/a_frequency) - var/energy_loss_ratio = abs(a_frequency - src.frequency) / 1e9 - energy += a_energy - a_energy * a_frequency - mega_energy += a_mega_energy - a_mega_energy * energy_loss_ratio + //let the particles inside the field react + React() - proc/AddParticles(var/name, var/quantity = 1) - if(name in dormant_reactant_quantities) - dormant_reactant_quantities[name] += quantity - else if(name != "proton" && name != "electron" && name != "neutron") - dormant_reactant_quantities.Add(name) - dormant_reactant_quantities[name] = quantity + //forcibly radiate any excess energy + var/energy_max = transfer_ratio * 100000 + if(mega_energy > energy_max) + var/energy_lost = rand( 1.5 * (mega_energy - energy_max), 2.5 * (mega_energy - energy_max) ) + mega_energy -= energy_lost + radiation += energy_lost - proc/RadiateAll(var/ratio_lost = 1) - for(var/particle in dormant_reactant_quantities) - radiation += dormant_reactant_quantities[particle] - dormant_reactant_quantities.Remove(particle) - radiation += mega_energy - mega_energy = 0 + //change held plasma temp according to energy levels + //SPECIFIC_HEAT_TOXIN + if(mega_energy > 0 && held_plasma.toxins) + var/heat_capacity = held_plasma.heat_capacity()//200 * number of plasma moles + if(heat_capacity > 0.0003) //formerly MINIMUM_HEAT_CAPACITY + held_plasma.temperature = (heat_capacity + mega_energy * 35000)/heat_capacity - //lose all held plasma back into the air - var/datum/gas_mixture/environment = loc.return_air() - environment.merge(held_plasma) - - proc/change_size(var/newsize = 1) + //if there is too much plasma in the field, lose some + /*if( held_plasma.toxins > (MOLES_CELLSTANDARD * 7) * (50 / field_strength) ) + LosePlasma()*/ + if(held_plasma.toxins > 1) + //lose a random amount of plasma back into the air, increased by the field strength (want to switch this over to frequency eventually) + var/loss_ratio = rand() * (0.05 + (0.05 * 50 / field_strength)) + //world << "lost [loss_ratio*100]% of held plasma" // - var/changed = 0 - switch(newsize) - if(1) - size = 1 - icon = 'emfield.dmi' - icon_state = "emfield_s1" - // - src.loc = get_turf(owned_core) - // - changed = 1 - if(3) - size = 3 - icon = '96x96.dmi' - icon_state = "emfield_s3" - // - var/turf/newloc = get_turf(owned_core) - newloc = get_step(newloc, SOUTHWEST) - src.loc = newloc - // - changed = 3 - if(5) - size = 5 - icon = '160x160.dmi' - icon_state = "emfield_s5" - // - var/turf/newloc = get_turf(owned_core) - newloc = get_step(newloc, SOUTHWEST) - newloc = get_step(newloc, SOUTHWEST) - src.loc = newloc - // - changed = 5 - if(7) - size = 7 - icon = '224x224.dmi' - icon_state = "emfield_s7" - // - var/turf/newloc = get_turf(owned_core) - newloc = get_step(newloc, SOUTHWEST) - newloc = get_step(newloc, SOUTHWEST) - newloc = get_step(newloc, SOUTHWEST) - src.loc = newloc - // - changed = 7 + var/datum/gas_mixture/plasma_lost = new + plasma_lost.temperature = held_plasma.temperature + // + plasma_lost.toxins = held_plasma.toxins * loss_ratio + //plasma_lost.update_values() + held_plasma.toxins -= held_plasma.toxins * loss_ratio + //held_plasma.update_values() + // + environment.merge(plasma_lost) + radiation += loss_ratio * mega_energy * 0.1 + mega_energy -= loss_ratio * mega_energy * 0.1 + else + held_plasma.toxins = 0 + //held_plasma.update_values() - for(var/obj/machinery/rust/particle_catcher/catcher in particle_catchers) - catcher.UpdateSize() - return changed + //handle some reactants formatting + //helium-4 has no use at the moment, but a buttload of it is produced + if(dormant_reactant_quantities["Helium-4"] > 1000) + dormant_reactant_quantities["Helium-4"] = rand(0,dormant_reactant_quantities["Helium-4"]) + for(var/reactant in dormant_reactant_quantities) + if(!dormant_reactant_quantities[reactant]) + dormant_reactant_quantities.Remove(reactant) - //the !!fun!! part - //reactions have to be individually hardcoded, see AttemptReaction() below this - proc/React() - //world << "React()" - //loop through the reactants in random order - var/list/reactants_reacting_pool = dormant_reactant_quantities.Copy() - /* - for(var/reagent in dormant_reactant_quantities) - world << " before: [reagent]: [dormant_reactant_quantities[reagent]]" - */ + return 1 - //cant have any reactions if there aren't any reactants present - if(reactants_reacting_pool.len) - //determine a random amount to actually react this cycle, and remove it from the standard pool - //this is a hack, and quite nonrealistic :( - for(var/reactant in reactants_reacting_pool) - reactants_reacting_pool[reactant] = rand(0,reactants_reacting_pool[reactant]) - dormant_reactant_quantities[reactant] -= reactants_reacting_pool[reactant] - if(!reactants_reacting_pool[reactant]) - reactants_reacting_pool -= reactant +/obj/effect/rust_em_field/proc/ChangeFieldStrength(var/new_strength) + var/calc_size = 1 + emp_overload = 0 + if(new_strength <= 50) + calc_size = 1 + else if(new_strength <= 200) + calc_size = 3 + else if(new_strength <= 500) + calc_size = 5 + else + calc_size = 7 + if(new_strength > 900) + emp_overload = 1 + // + field_strength = new_strength + change_size(calc_size) - var/list/produced_reactants = new/list - //loop through all the reacting reagents, picking out random reactions for them - var/list/primary_reactant_pool = reactants_reacting_pool.Copy() - while(primary_reactant_pool.len) - //pick one of the unprocessed reacting reagents randomly - var/cur_primary_reactant = pick(primary_reactant_pool) - primary_reactant_pool.Remove(cur_primary_reactant) - //world << "\blue primary reactant chosen: [cur_primary_reactant]" +/obj/effect/rust_em_field/proc/ChangeFieldFrequency(var/new_frequency) + frequency = new_frequency - //grab all the possible reactants to have a reaction with - var/list/possible_secondary_reactants = reactants_reacting_pool.Copy() - //if there is only one of a particular reactant, then it can not react with itself so remove it - possible_secondary_reactants[cur_primary_reactant] -= 1 - if(possible_secondary_reactants[cur_primary_reactant] < 1) - possible_secondary_reactants.Remove(cur_primary_reactant) - var/list/possible_reactions = new/list +/obj/effect/rust_em_field/proc/AddEnergy(var/a_energy, var/a_mega_energy, var/a_frequency) + var/energy_loss_ratio = src.frequency / abs(a_frequency - src.frequency) + if(a_frequency == src.frequency) + energy_loss_ratio = 0 + energy += a_energy - a_energy * energy_loss_ratio + mega_energy += a_mega_energy - a_mega_energy * energy_loss_ratio - //loop through and work out all the possible reactions - while(possible_secondary_reactants.len) - var/cur_secondary_reactant = pick(possible_secondary_reactants) - if(possible_secondary_reactants[cur_secondary_reactant] < 1) - possible_secondary_reactants.Remove(cur_secondary_reactant) - continue +/obj/effect/rust_em_field/proc/AddParticles(var/name, var/quantity = 1) + if(name in dormant_reactant_quantities) + dormant_reactant_quantities[name] += quantity + else if(name != "proton" && name != "electron" && name != "neutron") + dormant_reactant_quantities.Add(name) + dormant_reactant_quantities[name] = quantity + +/obj/effect/rust_em_field/proc/RadiateAll(var/ratio_lost = 1) + for(var/particle in dormant_reactant_quantities) + radiation += dormant_reactant_quantities[particle] + dormant_reactant_quantities.Remove(particle) + radiation += mega_energy + mega_energy = 0 + + //lose all held plasma back into the air + var/datum/gas_mixture/environment = loc.return_air() + environment.merge(held_plasma) + +/obj/effect/rust_em_field/proc/change_size(var/newsize = 1) + // + var/changed = 0 + switch(newsize) + if(1) + size = 1 + icon = 'emfield.dmi' + icon_state = "emfield_s1" + pixel_x = 0 + pixel_y = 0 + // + changed = 1 + if(3) + size = 3 + icon = '96x96.dmi' + icon_state = "emfield_s3" + pixel_x = -32 + pixel_y = -32 + // + changed = 3 + if(5) + size = 5 + icon = '160x160.dmi' + icon_state = "emfield_s5" + pixel_x = -64 + pixel_y = -64 + // + changed = 5 + if(7) + size = 7 + icon = '224x224.dmi' + icon_state = "emfield_s7" + pixel_x = -96 + pixel_y = -96 + // + changed = 7 + + for(var/obj/effect/rust_particle_catcher/catcher in particle_catchers) + catcher.UpdateSize() + return changed + +//the !!fun!! part +//reactions have to be individually hardcoded, see AttemptReaction() below this +/obj/effect/rust_em_field/proc/React() + //world << "React()" + //loop through the reactants in random order + var/list/reactants_reacting_pool = dormant_reactant_quantities.Copy() + /* + for(var/reagent in dormant_reactant_quantities) + world << " before: [reagent]: [dormant_reactant_quantities[reagent]]" + */ + + //cant have any reactions if there aren't any reactants present + if(reactants_reacting_pool.len) + //determine a random amount to actually react this cycle, and remove it from the standard pool + //this is a hack, and quite nonrealistic :( + for(var/reactant in reactants_reacting_pool) + reactants_reacting_pool[reactant] = rand(0,reactants_reacting_pool[reactant]) + dormant_reactant_quantities[reactant] -= reactants_reacting_pool[reactant] + if(!reactants_reacting_pool[reactant]) + reactants_reacting_pool -= reactant + + var/list/produced_reactants = new/list + //loop through all the reacting reagents, picking out random reactions for them + var/list/primary_reactant_pool = reactants_reacting_pool.Copy() + while(primary_reactant_pool.len) + //pick one of the unprocessed reacting reagents randomly + var/cur_primary_reactant = pick(primary_reactant_pool) + primary_reactant_pool.Remove(cur_primary_reactant) + //world << "\blue primary reactant chosen: [cur_primary_reactant]" + + //grab all the possible reactants to have a reaction with + var/list/possible_secondary_reactants = reactants_reacting_pool.Copy() + //if there is only one of a particular reactant, then it can not react with itself so remove it + possible_secondary_reactants[cur_primary_reactant] -= 1 + if(possible_secondary_reactants[cur_primary_reactant] < 1) + possible_secondary_reactants.Remove(cur_primary_reactant) + var/list/possible_reactions = new/list + + //loop through and work out all the possible reactions + while(possible_secondary_reactants.len) + var/cur_secondary_reactant = pick(possible_secondary_reactants) + if(possible_secondary_reactants[cur_secondary_reactant] < 1) possible_secondary_reactants.Remove(cur_secondary_reactant) - var/list/reaction_products = AttemptReaction(cur_primary_reactant, cur_secondary_reactant) - if(reaction_products.len) - //world << "\blue secondary reactant: [cur_secondary_reactant], [reaction_products.len]" - possible_reactions[cur_secondary_reactant] = reaction_products - //if there are no possible reactions here, abandon this primary reactant and move on - if(!possible_reactions.len) - //world << "\blue no reactions" continue + possible_secondary_reactants.Remove(cur_secondary_reactant) + var/list/reaction_products = AttemptReaction(cur_primary_reactant, cur_secondary_reactant) + if(reaction_products.len) + //world << "\blue secondary reactant: [cur_secondary_reactant], [reaction_products.len]" + possible_reactions[cur_secondary_reactant] = reaction_products + //if there are no possible reactions here, abandon this primary reactant and move on + if(!possible_reactions.len) + //world << "\blue no reactions" + continue - //split up the reacting atoms between the possible reactions - //the problem is in this while statement below - while(possible_reactions.len) - //pick another substance to react with - var/cur_secondary_reactant = pick(possible_reactions) - if(!reactants_reacting_pool[cur_secondary_reactant]) - possible_reactions.Remove(cur_secondary_reactant) - continue - var/list/cur_reaction_products = possible_reactions[cur_secondary_reactant] - - //set the randmax to be the lower of the two involved reactants - var/max_num_reactants = reactants_reacting_pool[cur_primary_reactant] > reactants_reacting_pool[cur_secondary_reactant] ? reactants_reacting_pool[cur_secondary_reactant] : reactants_reacting_pool[cur_primary_reactant] - - //make sure we have enough energy - if( mega_energy < max_num_reactants*cur_reaction_products["consumption"]) - max_num_reactants = round(mega_energy / cur_reaction_products["consumption"]) - - //randomly determined amount to react - var/amount_reacting = rand(1, max_num_reactants) - - //removing the reacting substances from the list of substances that are primed to react this cycle - //if there aren't enough of that substance (there should be) then modify the reactant amounts accordingly - if( reactants_reacting_pool[cur_primary_reactant] - amount_reacting > -1 ) - reactants_reacting_pool[cur_primary_reactant] -= amount_reacting - else - amount_reacting = reactants_reacting_pool[cur_primary_reactant] - reactants_reacting_pool[cur_primary_reactant] = 0 - // - if( reactants_reacting_pool[cur_secondary_reactant] - amount_reacting > -1 ) - reactants_reacting_pool[cur_secondary_reactant] -= amount_reacting - else - reactants_reacting_pool[cur_primary_reactant] += amount_reacting - reactants_reacting_pool[cur_primary_reactant] - amount_reacting = reactants_reacting_pool[cur_secondary_reactant] - reactants_reacting_pool[cur_secondary_reactant] = 0 - - //remove the consumed energy - if(cur_reaction_products["consumption"]) - mega_energy -= max_num_reactants * cur_reaction_products["consumption"] - cur_reaction_products.Remove("consumption") - - //grab any radiation and put it separate - //var/new_radiation = 0 - if("production" in cur_reaction_products) - mega_energy += max_num_reactants * cur_reaction_products["production"] - cur_reaction_products.Remove("production") - /*for(var/i=0, i reactants_reacting_pool[cur_secondary_reactant] ? reactants_reacting_pool[cur_secondary_reactant] : reactants_reacting_pool[cur_primary_reactant] - //loop through the newly produced reactants and add them to the pool - //var/list/neutronic_radiation = new - //var/list/protonic_radiation = new - for(var/reactant in produced_reactants) - AddParticles(reactant, dormant_reactant_quantities[reactant]) - //world << "produced: [reactant], [dormant_reactant_quantities[reactant]]" + //make sure we have enough energy + if( mega_energy < max_num_reactants*cur_reaction_products["consumption"]) + max_num_reactants = round(mega_energy / cur_reaction_products["consumption"]) - //check whether there are reactants left, and add them back to the pool - for(var/reactant in reactants_reacting_pool) - AddParticles(reactant, reactants_reacting_pool[reactant]) - //world << "retained: [reactant], [reactants_reacting_pool[reactant]]" + //randomly determined amount to react + var/amount_reacting = rand(1, max_num_reactants) + + //removing the reacting substances from the list of substances that are primed to react this cycle + //if there aren't enough of that substance (there should be) then modify the reactant amounts accordingly + if( reactants_reacting_pool[cur_primary_reactant] - amount_reacting > -1 ) + reactants_reacting_pool[cur_primary_reactant] -= amount_reacting + else + amount_reacting = reactants_reacting_pool[cur_primary_reactant] + reactants_reacting_pool[cur_primary_reactant] = 0 + // + if( reactants_reacting_pool[cur_secondary_reactant] - amount_reacting > -1 ) + reactants_reacting_pool[cur_secondary_reactant] -= amount_reacting + else + reactants_reacting_pool[cur_primary_reactant] += amount_reacting - reactants_reacting_pool[cur_primary_reactant] + amount_reacting = reactants_reacting_pool[cur_secondary_reactant] + reactants_reacting_pool[cur_secondary_reactant] = 0 + + //remove the consumed energy + if(cur_reaction_products["consumption"]) + mega_energy -= max_num_reactants * cur_reaction_products["consumption"] + cur_reaction_products.Remove("consumption") + + //grab any radiation and put it separate + //var/new_radiation = 0 + if("production" in cur_reaction_products) + mega_energy += max_num_reactants * cur_reaction_products["production"] + cur_reaction_products.Remove("production") + /*for(var/i=0, i 0.1) +/obj/effect/rust_em_field/proc/AttemptReaction(var/reactant_one, var/reactant_two) + //any charge on the atomic reactants / protons produced is abstracted away to enter the core energy pool straightaway + //atomic products remain in the core and produce more reactions next cycle + //any charged neutrons escape as radiation + var/check = 1 + recheck_reactions: + var/list/products = new/list + switch(reactant_one) + if("Tritium") + switch(reactant_two) + if("Tritium") + if(mega_energy > 0.1) + products["Helium-4"] = 1 + // + products["production"] = 11.3 + products["radiation"] = 1 + /*products["photon"] = 11.3 + // + products["neutron_quantity"] = 1 + products["neutron_charge"] = 0*/ + // + mega_energy -= 0.1 + if("Deuterium") + if(mega_energy > 0.1) + products["Helium-4"] = 1 + // + products["production"] = 3.5 + products["radiation"] = 14.1 + /*products["photon"] = 3.5 + // + products["neutron_quantity"] = 1 + products["neutron_charge"] = 14.1 + // + products["consumption"] = 0.1*/ + if("Helium-3") + if(mega_energy > 0.4) + if(prob(51)) products["Helium-4"] = 1 // - products["production"] = 11.3 + products["production"] = 13.1 products["radiation"] = 1 - /*products["photon"] = 11.3 + /*products["photon"] = 12.1 + // + products["proton_quantity"] = 1 + products["proton_charge"] = 0 // products["neutron_quantity"] = 1 products["neutron_charge"] = 0*/ - // - mega_energy -= 0.1 - if("Deuterium") - if(mega_energy > 0.1) + else if (prob(43)) products["Helium-4"] = 1 + products["Deuterium"] = 1 // - products["production"] = 3.5 - products["radiation"] = 14.1 - /*products["photon"] = 3.5 + products["production"] = 14.3 + /*products["photon"] = 4.8 + 9.5//14.3 + */ + else + products["Helium-4"] = 1 + products["production"] = 2.4 + products["radiation"] = 11.9 + /*products["photon"] = 0.5//12.4 + // + products["proton_quantity"] = 1 + products["proton_charge"] = 1.9 // products["neutron_quantity"] = 1 - products["neutron_charge"] = 14.1 + products["neutron_charge"] = 11.9*/ + // + products["consumption"] = 0.4 + if("Deuterium") + switch(reactant_two) + if("Deuterium") + if(mega_energy > 0.1) + if(prob(50)) + products["Tritium"] = 1 // - products["consumption"] = 0.1*/ - if("Helium-3") - if(mega_energy > 0.4) - if(prob(51)) - products["Helium-4"] = 1 - // - products["production"] = 13.1 - products["radiation"] = 1 - /*products["photon"] = 12.1 - // - products["proton_quantity"] = 1 - products["proton_charge"] = 0 - // - products["neutron_quantity"] = 1 - products["neutron_charge"] = 0*/ - else if (prob(43)) - products["Helium-4"] = 1 - products["Deuterium"] = 1 - // - products["production"] = 14.3 - /*products["photon"] = 4.8 + 9.5//14.3 - */ - else - products["Helium-4"] = 1 - products["production"] = 2.4 - products["radiation"] = 11.9 - /*products["photon"] = 0.5//12.4 - // - products["proton_quantity"] = 1 - products["proton_charge"] = 1.9 - // - products["neutron_quantity"] = 1 - products["neutron_charge"] = 11.9*/ - // - products["consumption"] = 0.4 - if("Deuterium") - switch(reactant_two) - if("Deuterium") - if(mega_energy > 0.1) - if(prob(50)) - products["Tritium"] = 1 - // - products["production"] = 4.03 - /*products["photon"] = 1.01 - // - products["proton_quantity"] = 1 - products["proton_charge"] = 3.02*/ - else - products["Helium-3"] = 1 - // - products["production"] = 0.82 - products["radiation"] = 2.45 - /*products["photon"] = 0.82 - // - products["neutron_quantity"] = 1 - products["neutron_charge"] = 2.45*/ - // - products["consumption"] = 0.1 - if("Helium-3") - if(mega_energy > 0.4) - products["Helium-4"] = 1 - // - products["production"] = 18.3 - /*products["photon"] = 3.6 + products["production"] = 4.03 + /*products["photon"] = 1.01 // products["proton_quantity"] = 1 - products["proton_charge"] = 14.7*/ - // - products["consumption"] = 0.4 - if("Lithium-6") - if(mega_energy > 0.6) - if(prob(25)) - products["Helium-4"] = 2 - products["production"] = 1 - /*products["photon"] = 22.4*/ - else if(prob(33)) - products["Helium-3"] = 1 - products["Helium-4"] = 1 - // - products["radiation"] = 1 - /*products["neutron_quantity"] = 1 - products["neutron_charge"] = 0*/ - else if(prob(50)) - products["Lithium-7"] = 1 - // - products["production"] = 1 - /*products["proton_quantity"] = 1 - products["proton_charge"] = 0*/ - else - products["Beryllium-7"] = 1 - products["production"] = 3.4 - products["radiation"] = 1 - /*products["photon"] = 3.4 - // - products["neutron_quantity"] = 1 - products["neutron_charge"] = 0*/ - // - products["consumption"] = 0.6 - if("Helium-3") - switch(reactant_two) - if("Helium-3") - if(mega_energy > 0.4) - products["Helium-4"] = 1 - products["production"] = 14.9 - /*products["photon"] = 12.9 - // - products["proton_quantity"] = 2 - products["proton_charge"] = 0*/ - // - products["consumption"] = 0.4 - if("Lithium-6") - if(mega_energy > 0.6) - products["Helium-4"] = 2 - // - products["production"] = 17.9 - /*products["photon"] = 16.9 - // - products["proton_quantity"] = 1 - products["proton_charge"] = 0*/ - // - products["consumption"] = 0.6 - /* - if("proton") - switch(reactant_two) - if("Lithium-6") - if(mega_energy > 0.6) - products["Helium-4"] = 1 + products["proton_charge"] = 3.02*/ + else products["Helium-3"] = 1 - products["photon"] = 4 // - mega_energy -= 0.6 - if("Boron-11") - if(mega_energy > 1) - products["Helium-4"] = 3 - products["photon"] = 8.7 + products["production"] = 0.82 + products["radiation"] = 2.45 + /*products["photon"] = 0.82 // - mega_energy -= 1 - */ + products["neutron_quantity"] = 1 + products["neutron_charge"] = 2.45*/ + // + products["consumption"] = 0.1 + if("Helium-3") + if(mega_energy > 0.4) + products["Helium-4"] = 1 + // + products["production"] = 18.3 + /*products["photon"] = 3.6 + // + products["proton_quantity"] = 1 + products["proton_charge"] = 14.7*/ + // + products["consumption"] = 0.4 + if("Lithium-6") + if(mega_energy > 0.6) + if(prob(25)) + products["Helium-4"] = 2 + products["production"] = 1 + /*products["photon"] = 22.4*/ + else if(prob(33)) + products["Helium-3"] = 1 + products["Helium-4"] = 1 + // + products["radiation"] = 1 + /*products["neutron_quantity"] = 1 + products["neutron_charge"] = 0*/ + else if(prob(50)) + products["Lithium-7"] = 1 + // + products["production"] = 1 + /*products["proton_quantity"] = 1 + products["proton_charge"] = 0*/ + else + products["Beryllium-7"] = 1 + products["production"] = 3.4 + products["radiation"] = 1 + /*products["photon"] = 3.4 + // + products["neutron_quantity"] = 1 + products["neutron_charge"] = 0*/ + // + products["consumption"] = 0.6 + if("Helium-3") + switch(reactant_two) + if("Helium-3") + if(mega_energy > 0.4) + products["Helium-4"] = 1 + products["production"] = 14.9 + /*products["photon"] = 12.9 + // + products["proton_quantity"] = 2 + products["proton_charge"] = 0*/ + // + products["consumption"] = 0.4 + if("Lithium-6") + if(mega_energy > 0.6) + products["Helium-4"] = 2 + // + products["production"] = 17.9 + /*products["photon"] = 16.9 + // + products["proton_quantity"] = 1 + products["proton_charge"] = 0*/ + // + products["consumption"] = 0.6 + /* + if("proton") + switch(reactant_two) + if("Lithium-6") + if(mega_energy > 0.6) + products["Helium-4"] = 1 + products["Helium-3"] = 1 + products["photon"] = 4 + // + mega_energy -= 0.6 + if("Boron-11") + if(mega_energy > 1) + products["Helium-4"] = 3 + products["photon"] = 8.7 + // + mega_energy -= 1 + */ - //if no reaction happened, switch the two reactants and try again - if(!products.len && check) - check = 0 - var/temp = reactant_one - reactant_one = reactant_two - reactant_two = temp - goto recheck_reactions - /*if(products.len) - world << "\blue [reactant_one] + [reactant_two] reaction occured" - for(var/reagent in products) - world << "\blue [reagent]: [products[reagent]]"*/ - /*if(products["neutron"]) - products -= "neutron" - if(products["proton"]) - products -= "proton" - if(products["photon"]) - products -= "photon" - if(products["radiated charge"]) - products -= "radiated charge"*/ - return products + //if no reaction happened, switch the two reactants and try again + if(!products.len && check) + check = 0 + var/temp = reactant_one + reactant_one = reactant_two + reactant_two = temp + goto recheck_reactions + /*if(products.len) + world << "\blue [reactant_one] + [reactant_two] reaction occured" + for(var/reagent in products) + world << "\blue [reagent]: [products[reagent]]"*/ + /*if(products["neutron"]) + products -= "neutron" + if(products["proton"]) + products -= "proton" + if(products["photon"]) + products -= "photon" + if(products["radiated charge"]) + products -= "radiated charge"*/ + return products + +/obj/effect/rust_em_field/Del() + //radiate everything in one giant burst + for(var/obj/effect/rust_particle_catcher/catcher in particle_catchers) + del (catcher) + RadiateAll() + + ..() diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/core_gen.dm b/code/WorkInProgress/Cael_Aislinn/Rust/core_gen.dm index 3a491b10770..7dadb4943a6 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/core_gen.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/core_gen.dm @@ -40,80 +40,248 @@ max volume of plasma storeable by the field = the total volume of a number of ti */ -/obj/machinery/rust/core - name = "Tokamak core" +#define MAX_FIELD_FREQ 1000 +#define MIN_FIELD_FREQ 1 +#define MAX_FIELD_STR 1000 +#define MIN_FIELD_STR 1 + +/obj/machinery/power/rust_core + name = "RUST Tokamak core" desc = "Enormous solenoid for generating extremely high power electromagnetic fields" icon = 'core.dmi' icon_state = "core0" anchored = 1 - var/on = 0 - var/obj/machinery/rust/em_field/owned_field - var/field_strength = 0.01 - // + density = 1 + var/obj/effect/rust_em_field/owned_field + var/field_strength = 1//0.01 + var/field_frequency = 1 + var/id_tag = "allan, don't forget to set the ID of this one too" req_access = list(access_engine) // use_power = 1 - idle_power_usage = 10 - active_power_usage = 300 + idle_power_usage = 50 + active_power_usage = 500 //multiplied by field strength + var/cached_power_avail = 0 + directwired = 1 + var/state = 0 + var/locked = 0 + var/remote_access_enabled = 1 - Topic(href, href_list) - ..() - if( href_list["startup"] ) - Startup() - return - if( href_list["shutdown"] ) - Shutdown() - return - if( href_list["modify_field_strength"] ) - var/new_field_str = text2num(input("Enter new field strength", "Modifying field strength", owned_field.field_strength)) - if(!new_field_str) - usr << "\red That's not a valid number." - return - field_strength = max(new_field_str,0.1) - field_strength = min(new_field_str,50) - if(owned_field) - owned_field.ChangeFieldStrength(field_strength) - return +/obj/machinery/power/rust_core/process() + if(stat & BROKEN || !powernet) + Shutdown() - proc/Startup() + cached_power_avail = avail() + //luminosity = round(owned_field.field_strength/10) + //luminosity = max(luminosity,1) + +/obj/machinery/power/rust_core/attackby(obj/item/W, mob/user) + + if(istype(W, /obj/item/weapon/wrench)) if(owned_field) + user << "Turn off [src] first." return - on = 1 - owned_field = new(src.loc) + switch(state) + if(0) + state = 1 + playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) + user.visible_message("[user.name] secures [src.name] to the floor.", \ + "You secure the external reinforcing bolts to the floor.", \ + "You hear a ratchet") + src.anchored = 1 + if(1) + state = 0 + playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) + user.visible_message("[user.name] unsecures [src.name] reinforcing bolts from the floor.", \ + "You undo the external reinforcing bolts.", \ + "You hear a ratchet") + src.anchored = 0 + if(2) + user << "\red The [src.name] needs to be unwelded from the floor." + return + + if(istype(W, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = W + if(owned_field) + user << "Turn off the [src] first." + return + switch(state) + if(0) + user << "\red The [src.name] needs to be wrenched to the floor." + if(1) + if (WT.remove_fuel(0,user)) + playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) + user.visible_message("[user.name] starts to weld the [src.name] to the floor.", \ + "You start to weld the [src] to the floor.", \ + "You hear welding") + if (do_after(user,20)) + if(!src || !WT.isOn()) return + state = 2 + user << "You weld the [src] to the floor." + connect_to_network() + src.directwired = 1 + else + user << "\red You need more welding fuel to complete this task." + if(2) + if (WT.remove_fuel(0,user)) + playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) + user.visible_message("[user.name] starts to cut the [src.name] free from the floor.", \ + "You start to cut the [src] free from the floor.", \ + "You hear welding") + if (do_after(user,20)) + if(!src || !WT.isOn()) return + state = 1 + user << "You cut the [src] free from the floor." + disconnect_from_network() + src.directwired = 0 + else + user << "\red You need more welding fuel to complete this task." + return + + if(istype(W, /obj/item/weapon/card/id) || istype(W, /obj/item/device/pda)) + if(emagged) + user << "\red The lock seems to be broken" + return + if(src.allowed(user)) + if(owned_field) + src.locked = !src.locked + user << "The controls are now [src.locked ? "locked." : "unlocked."]" + else + src.locked = 0 //just in case it somehow gets locked + user << "\red The controls can only be locked when the [src] is online" + else + user << "\red Access denied." + return + + if(istype(W, /obj/item/weapon/card/emag) && !emagged) + locked = 0 + emagged = 1 + user.visible_message("[user.name] emags the [src.name].","\red You short out the lock.") + return + + ..() + return + +/obj/machinery/power/rust_core/attack_ai(mob/user) + attack_hand(user) + +/obj/machinery/power/rust_core/attack_hand(mob/user) + add_fingerprint(user) + interact(user) + +/obj/machinery/power/rust_core/interact(mob/user) + if(stat & BROKEN) + user.unset_machine() + user << browse(null, "window=core_gen") + return + if(!istype(user, /mob/living/silicon) && get_dist(src, user) > 1) + user.unset_machine() + user << browse(null, "window=core_gen") + return + + var/dat = "" + if(!powernet || locked) + dat += "The console is dark and nonresponsive." + else + dat += "RUST Tokamak pattern Electromagnetic Field Generator
" + dat += "Device ID tag: [id_tag ? id_tag : "UNSET"] \[Modify\]
" + dat += "\[[owned_field ? "Deactivate" : "Activate"]\]
" + dat += "\[[remote_access_enabled ? "Disable remote access to this device" : "Enable remote access to this device"]\]
" + dat += "
" + dat += "Field strength: [field_strength]Wm^3
" + dat += "\[----\] \ + \[--- \] \ + \[-- \] \ + \[- \] \ + \[+ \] \ + \[++ \] \ + \[+++ \] \ + \[++++\]
" + + dat += "Field frequency: [field_frequency]MHz
" + dat += "\[----\] \ + \[--- \] \ + \[-- \] \ + \[- \] \ + \[+ \] \ + \[++ \] \ + \[+++ \] \ + \[++++\]
" + + var/font_colour = "green" + if(cached_power_avail < active_power_usage) + font_colour = "red" + else if(cached_power_avail < active_power_usage * 2) + font_colour = "orange" + dat += "Power status: [active_power_usage]/[cached_power_avail] W
" + + user << browse(dat, "window=core_gen;size=500x300") + onclose(user, "core_gen") + user.set_machine(src) + +/obj/machinery/power/rust_core/Topic(href, href_list) + if(href_list["str"]) + var/dif = text2num(href_list["str"]) + field_strength = min(max(field_strength + dif, MIN_FIELD_STR), MAX_FIELD_STR) + active_power_usage = 5 * field_strength //change to 500 later if(owned_field) owned_field.ChangeFieldStrength(field_strength) - icon_state = "core1" - luminosity = 1 - return 1 - proc/Shutdown() + if(href_list["freq"]) + var/dif = text2num(href_list["freq"]) + field_frequency = min(max(field_frequency + dif, MIN_FIELD_FREQ), MAX_FIELD_FREQ) + if(owned_field) + owned_field.ChangeFieldFrequency(field_frequency) + + if(href_list["toggle_active"]) + if(!Startup()) + Shutdown() + + if( href_list["toggle_remote"] ) + remote_access_enabled = !remote_access_enabled + + if(href_list["new_id_tag"]) + if(usr) + id_tag = input("Enter a new ID tag", "Tokamak core ID tag", id_tag) as text|null + + if(href_list["close"]) + usr << browse(null, "window=core_gen") + usr.unset_machine() + + if(href_list["extern_update"]) + var/obj/machinery/computer/rust_core_control/C = locate(href_list["extern_update"]) + if(C) + C.updateDialog() + + src.updateDialog() + +/obj/machinery/power/rust_core/proc/Startup() + if(owned_field) + return + owned_field = new(src.loc) + owned_field.ChangeFieldStrength(field_strength) + owned_field.ChangeFieldFrequency(field_frequency) + icon_state = "core1" + luminosity = 1 + use_power = 2 + return 1 + +/obj/machinery/power/rust_core/proc/Shutdown() + //todo: safety checks for field status + if(owned_field) icon_state = "core0" - on = 0 del(owned_field) luminosity = 0 + use_power = 1 - proc/AddParticles(var/name, var/quantity = 1) - if(owned_field) - owned_field.AddParticles(name, quantity) - return 1 - return 0 +/obj/machinery/power/rust_core/proc/AddParticles(var/name, var/quantity = 1) + if(owned_field) + owned_field.AddParticles(name, quantity) + return 1 + return 0 - process() - ..() - use_power(100 * field_strength + 500) - if(on && !owned_field) - Shutdown() - return - // - luminosity = round(owned_field.field_strength/10) - luminosity = max(luminosity,1) - // - if(stat & (NOPOWER|BROKEN)) - Shutdown() - - bullet_act(var/obj/item/projectile/Proj) - if(Proj.flag != "bullet" && owned_field) - var/obj/item/projectile/beam/laserbeam = Proj - owned_field.AddEnergy(0, laserbeam.damage / 5000, laserbeam.frequency) - return 0 +/obj/machinery/power/rust_core/bullet_act(var/obj/item/projectile/Proj) + if(Proj.flag != "bullet" && owned_field) + owned_field.AddEnergy(Proj.damage, 0, 1) + return 0 diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/core_monitor.dm b/code/WorkInProgress/Cael_Aislinn/Rust/core_monitor.dm deleted file mode 100644 index 4ced2ffb2bb..00000000000 --- a/code/WorkInProgress/Cael_Aislinn/Rust/core_monitor.dm +++ /dev/null @@ -1,78 +0,0 @@ - -/obj/machinery/computer/rust_radiation_monitor - name = "Radiation Monitor" - icon_state = "power" - -/obj/machinery/computer/rust_energy_monitor - name = "Core Primary Monitor" - icon_state = "power" - var/obj/machinery/rust/core/core_generator = null - var/updating = 1 - - New() - ..() - spawn(0) - core_generator = locate() in world - - Topic(href, href_list) - ..() - if( href_list["shutdown"] ) - updating = 0 - core_generator.Topic(href, href_list) - updateDialog() - updating = 1 - return - if( href_list["startup"] ) - updating = 0 - core_generator.Topic(href, href_list) - updateDialog() - updating = 1 - return - if( href_list["modify_field_strength"] ) - updating = 0 - core_generator.Topic(href, href_list) - updateDialog() - updating = 1 - return - if( href_list["close"] ) - usr << browse(null, "window=core_monitor") - usr.machine = null - return - - process() - ..() - if(updating) - src.updateDialog() - - interact(mob/user) - if ( (get_dist(src, user) > 1 ) || (stat & (BROKEN|NOPOWER)) ) - if (!istype(user, /mob/living/silicon)) - user.machine = null - user << browse(null, "window=core_monitor") - return - var/t = "Reactor Core Primary Monitor
" - if(core_generator) - t += "[core_generator.on ? "Core Generator connected" : "Core Generator operational"]
" - if(core_generator.owned_field) - t += "Core suspension field online \[Bring field offline\]
" - t += "Electromagnetic plasma suspension field status:
" - t += " Strength (T): [core_generator.owned_field.field_strength] \[Modify\]
" - t += " Energy levels (MeV): [core_generator.owned_field.mega_energy]
" - t += " Core frequency: [core_generator.owned_field.frequency]
" - t += " Moles of plasma: [core_generator.owned_field.held_plasma.toxins]
" - t += " Core temperature: [core_generator.owned_field.held_plasma.temperature]
" - t += "
" - t += "Core atomic and subatomic constituents:
" - if(core_generator.owned_field.dormant_reactant_quantities && core_generator.owned_field.dormant_reactant_quantities.len) - for(var/reagent in core_generator.owned_field.dormant_reactant_quantities) - t += " [reagent]: [core_generator.owned_field.dormant_reactant_quantities[reagent]]
" - else - t += " No reactants present.
" - else - t += "Core suspension field offline \[Bring field online\]
" - else - t += "Core Generator unresponsive
" - t += "
" - t += "Close
" - user << browse(t, "window=core_monitor;size=500x400") - user.machine = src diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly.dm index 681d38f9aae..d2f348b8931 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly.dm @@ -4,7 +4,7 @@ icon_state = "fuel_assembly" name = "Fuel Rod Assembly" var/list/rod_quantities - var/percent_depleted = 0 + var/percent_depleted = 1 // New() rod_quantities = new/list diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm index af1037bd724..d0e23e290c2 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm @@ -1,31 +1,126 @@ -/obj/machinery/rust/fuel_assembly_port +/obj/machinery/rust_fuel_assembly_port name = "Fuel Assembly Port" icon = 'fuel_assembly_port.dmi' icon_state = "port0" density = 0 - var/obj/item/weapon/fuel_assembly/cur_assembly = null + var/obj/item/weapon/fuel_assembly/cur_assembly layer = 4 + var/busy = 0 + anchored = 1 - attackby(var/obj/item/I, var/mob/user) - if(istype(I,/obj/item/weapon/fuel_assembly)) - if(cur_assembly) - del cur_assembly +/obj/machinery/rust_fuel_assembly_port/attackby(var/obj/item/I, var/mob/user) + if(istype(I,/obj/item/weapon/fuel_assembly)) + if(cur_assembly) + user << "\red There is already a fuel rod assembly in there!" + else cur_assembly = I user.drop_item() I.loc = src icon_state = "port1" - attack_hand(mob/user) - add_fingerprint(user) - /*if(stat & (BROKEN|NOPOWER)) - return*/ +/obj/machinery/rust_fuel_assembly_port/attack_hand(mob/user) + add_fingerprint(user) + if(stat & (BROKEN|NOPOWER)) + return + + if(!busy) + busy = 1 if(cur_assembly) - cur_assembly.loc = src.loc + spawn(30) + if(!try_insert_assembly()) + spawn(30) + eject_assembly() + busy = 0 + else + busy = 0 + else + spawn(30) + try_draw_assembly() + busy = 0 + +/obj/machinery/rust_fuel_assembly_port/proc/try_insert_assembly() + var/success = 0 + if(cur_assembly) + var/turf/check_turf = get_step(get_turf(src), src.dir) + check_turf = get_step(check_turf, src.dir) + for(var/obj/machinery/power/rust_fuel_injector/I in check_turf) + if(I.stat & (BROKEN|NOPOWER)) + break + if(I.cur_assembly) + break + + I.cur_assembly = cur_assembly + cur_assembly.loc = I cur_assembly = null icon_state = "port0" + success = 1 - New() - //embed the fuel port into a wall - pixel_x = (dir & 3)? 0 : (dir == 4 ? 24 : -24) - pixel_y = (dir & 3)? (dir ==1 ? 24 : -24) : 0 + if(success) + src.visible_message("\blue \icon[src] a green light flashes on [src] as it inserts it's fuel rod assembly into an injector.") + else + src.visible_message("\red \icon[src] a red light flashes on [src] as it attempts to insert it's fuel rod assembly into an injector.") + return success + +/obj/machinery/rust_fuel_assembly_port/proc/eject_assembly() + if(cur_assembly) + var/turf/check_turf = get_step(get_turf(src), src.dir) + cur_assembly.loc = check_turf + cur_assembly = null + icon_state = "port0" + return 1 + else + src.visible_message("\red \icon[src] a red light flashes on [src] as it attempts to eject it's fuel rod assembly.") + +/obj/machinery/rust_fuel_assembly_port/proc/try_draw_assembly() + var/success = 0 + if(cur_assembly) + var/turf/check_turf = get_step(get_turf(src), src.dir) + check_turf = get_step(check_turf, src.dir) + for(var/obj/machinery/power/rust_fuel_injector/I in check_turf) + if(I.stat & (BROKEN|NOPOWER)) + break + if(!I.cur_assembly) + break + if(I.injecting) + break + if(I.stat != 2) + break + + cur_assembly = I.cur_assembly + cur_assembly.loc = src + I.cur_assembly = null + icon_state = "port1" + success = 1 + + if(success) + src.visible_message("\icon[src] a blue light flashes on [src] as it draws a fuel rod assembly from an injector.") + else + src.visible_message("\red \icon[src] a red light flashes on [src] as it attempts to draw a fuel rod assembly from an injector.") + return success + +/* +/obj/machinery/rust_fuel_assembly_port/verb/try_insert_assembly_verb() + set name = "Attempt to insert assembly from port into injector" + set category = "Object" + set src in oview(1) + + if(!busy) + try_insert_assembly() + +/obj/machinery/rust_fuel_assembly_port/verb/eject_assembly_verb() + set name = "Attempt to eject assembly from port" + set category = "Object" + set src in oview(1) + + if(!busy) + eject_assembly() + +/obj/machinery/rust_fuel_assembly_port/verb/try_draw_assembly_verb() + set name = "Draw assembly from injector" + set category = "Object" + set src in oview(1) + + if(!busy) + try_draw_assembly() +*/ diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dm index a1e28294262..3b0589008c6 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dm @@ -1,87 +1,89 @@ var/const/max_assembly_amount = 300 -/obj/machinery/rust/fuel_compressor +/obj/machinery/rust_fuel_compressor icon = 'fuel_compressor.dmi' icon_state = "fuel_compressor" name = "Fuel Compressor" var/list/new_assembly_quantities - // - New() - new_assembly_quantities = new/list - spawn(0) - new_assembly_quantities["Deuterium"] = 200 - new_assembly_quantities["Tritium"] = 100 - // - new_assembly_quantities["Helium-3"] = 0 - new_assembly_quantities["Lithium-6"] = 0 - new_assembly_quantities["Silver"] = 0 + anchored = 1 - attack_ai(mob/user) - attack_hand(user) - - attack_hand(mob/user) - add_fingerprint(user) - /*if(stat & (BROKEN|NOPOWER)) - return*/ - interact(user) - - /*power_change() - if(stat & BROKEN) - icon_state = "broken" - else - if( powered() ) - icon_state = initial(icon_state) - stat &= ~NOPOWER - else - spawn(rand(0, 15)) - src.icon_state = "c_unpowered" - stat |= NOPOWER*/ - - Topic(href, href_list) - ..() - if( href_list["close"] ) - usr << browse(null, "window=fuelcomp") - usr.machine = null - return +/obj/machinery/rust_fuel_compressor/New() + new_assembly_quantities = new/list + spawn(0) + new_assembly_quantities["Deuterium"] = 200 + new_assembly_quantities["Tritium"] = 100 // - for(var/reagent in new_assembly_quantities) - if(href_list[reagent]) - var/new_amount = text2num(input("Enter new rod amount", "Fuel Assembly Rod Composition ([reagent])", new_assembly_quantities[reagent]) as text|null) - if(!new_amount) - usr << "\red That's not a valid number." - return - var/sum_reactants = new_amount - new_assembly_quantities[reagent] - for(var/rod in new_assembly_quantities) - sum_reactants += new_assembly_quantities[rod] - if(sum_reactants > max_assembly_amount) - usr << "\red You have entered too many rods." - else - new_assembly_quantities[reagent] = new_amount - updateDialog() - return - if( href_list["activate"] ) - var/obj/item/weapon/fuel_assembly/F = new(src) - //world << "\blue New fuel rod assembly" - for(var/reagent in new_assembly_quantities) - F.rod_quantities[reagent] = new_assembly_quantities[reagent] - //world << "\blue [reagent]: new_assembly_quantities[reagent]
" - F.loc = src.loc - return + new_assembly_quantities["Helium-3"] = 0 + new_assembly_quantities["Lithium-6"] = 0 + new_assembly_quantities["Silver"] = 0 - interact(mob/user) - /*if ( (get_dist(src, user) > 1 ) || (stat & (BROKEN|NOPOWER)) ) - if (!istype(user, /mob/living/silicon)) - user.machine = null - user << browse(null, "window=fuelcomp") - return*/ - var/t = "Reactor Fuel Rod Compressor / Assembler
" - t += "Close
" - t += "Activate Fuel Synthesis
(fuel assemblies require no more than [max_assembly_amount] rods).
" - t += "
" - t += "- New fuel assembly constituents:-
" +/obj/machinery/rust_fuel_compressor/attack_ai(mob/user) + attack_hand(user) + +/obj/machinery/rust_fuel_compressor/attack_hand(mob/user) + add_fingerprint(user) + /*if(stat & (BROKEN|NOPOWER)) + return*/ + interact(user) + +/*/obj/machinery/rust_fuel_compressor/power_change() + if(stat & BROKEN) + icon_state = "broken" + else + if( powered() ) + icon_state = initial(icon_state) + stat &= ~NOPOWER + else + spawn(rand(0, 15)) + src.icon_state = "c_unpowered" + stat |= NOPOWER*/ + +/obj/machinery/rust_fuel_compressor/Topic(href, href_list) + ..() + if( href_list["close"] ) + usr << browse(null, "window=fuelcomp") + usr.machine = null + return + // + for(var/reagent in new_assembly_quantities) + if(href_list[reagent]) + var/new_amount = text2num(input("Enter new rod amount", "Fuel Assembly Rod Composition ([reagent])", new_assembly_quantities[reagent]) as text|null) + if(!new_amount) + usr << "\red That's not a valid number." + return + var/sum_reactants = new_amount - new_assembly_quantities[reagent] + for(var/rod in new_assembly_quantities) + sum_reactants += new_assembly_quantities[rod] + if(sum_reactants > max_assembly_amount) + usr << "\red You have entered too many rods." + else + new_assembly_quantities[reagent] = new_amount + updateDialog() + return + if( href_list["activate"] ) + var/obj/item/weapon/fuel_assembly/F = new(src) + //world << "\blue New fuel rod assembly" for(var/reagent in new_assembly_quantities) - t += " [reagent] rods: [new_assembly_quantities[reagent]] \[Modify\]
" - t += "
" - t += "Close
" - user << browse(t, "window=fuelcomp;size=500x800") - user.machine = src + F.rod_quantities[reagent] = new_assembly_quantities[reagent] + //world << "\blue [reagent]: new_assembly_quantities[reagent]
" + F.loc = src.loc + F.percent_depleted = 0 + return + +/obj/machinery/rust_fuel_compressor/interact(mob/user) + /*if ( (get_dist(src, user) > 1 ) || (stat & (BROKEN|NOPOWER)) ) + if (!istype(user, /mob/living/silicon)) + user.machine = null + user << browse(null, "window=fuelcomp") + return*/ + var/t = "Reactor Fuel Rod Compressor / Assembler
" + t += "Close
" + t += "Activate Fuel Synthesis
(fuel assemblies require no more than [max_assembly_amount] rods).
" + t += "
" + t += "- New fuel assembly constituents:-
" + for(var/reagent in new_assembly_quantities) + t += " [reagent] rods: [new_assembly_quantities[reagent]] \[Modify\]
" + t += "
" + t += "Close
" + user << browse(t, "window=fuelcomp;size=500x300") + user.machine = src diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_control.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_control.dm index b766ab1e0b4..5218e386f72 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_control.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_control.dm @@ -2,171 +2,190 @@ /obj/machinery/computer/rust_fuel_control name = "Fuel Injection Control" icon_state = "power" - var/list/fuel_injectors - var/list/stage_status + var/list/connected_injectors = list() + var/list/active_stages = list() + var/list/proceeding_stages = list() + var/list/stage_times = list() + //var/list/stage_status var/announce_fueldepletion = 0 var/announce_stageprogression = 0 - //var/obj/machinery/rust/fuel_injector/Injector = null - New() - ..() - //these are the only three stages we can accept - //we have another console for SCRAM - fuel_injectors = new/list - stage_status = new/list + var/scan_range = 25 + var/ticks_this_stage = 0 - fuel_injectors.Add("One") - fuel_injectors["One"] = new/list - stage_status.Add("One") - stage_status["One"] = 0 - fuel_injectors.Add("Two") - fuel_injectors["Two"] = new/list - stage_status.Add("Two") - stage_status["Two"] = 0 - fuel_injectors.Add("Three") - fuel_injectors["Three"] = new/list - stage_status.Add("Three") - stage_status["Three"] = 0 - fuel_injectors.Add("SCRAM") - fuel_injectors["SCRAM"] = new/list - stage_status.Add("SCRAM") - stage_status["SCRAM"] = 0 +/*/obj/machinery/computer/rust_fuel_control/New() + ..() + //these are the only three stages we can accept + //we have another console for SCRAM + fuel_injectors = new/list + stage_status = new/list - spawn(0) - for(var/obj/machinery/rust/fuel_injector/Injector in world) - if(Injector.stage in fuel_injectors) - var/list/targetlist = fuel_injectors[Injector.stage] - targetlist.Add(Injector) + fuel_injectors.Add("One") + fuel_injectors["One"] = new/list + stage_status.Add("One") + stage_status["One"] = 0 + fuel_injectors.Add("Two") + fuel_injectors["Two"] = new/list + stage_status.Add("Two") + stage_status["Two"] = 0 + fuel_injectors.Add("Three") + fuel_injectors["Three"] = new/list + stage_status.Add("Three") + stage_status["Three"] = 0 + fuel_injectors.Add("SCRAM") + fuel_injectors["SCRAM"] = new/list + stage_status.Add("SCRAM") + stage_status["SCRAM"] = 0 - attack_ai(mob/user) - attack_hand(user) + spawn(0) + for(var/obj/machinery/power/rust_fuel_injector/Injector in world) + if(Injector.stage in fuel_injectors) + var/list/targetlist = fuel_injectors[Injector.stage] + targetlist.Add(Injector)*/ - attack_hand(mob/user) - add_fingerprint(user) - /*if(stat & (BROKEN|NOPOWER)) - return*/ - interact(user) +/obj/machinery/computer/rust_fuel_control/attack_ai(mob/user) + attack_hand(user) - /*updateDialog() - for(var/mob/M in range(1)) - if(M.machine == src) - interact(m)*/ +/obj/machinery/computer/rust_fuel_control/attack_hand(mob/user) + add_fingerprint(user) + interact(user) - Topic(href, href_list) - ..() - if( href_list["close"] ) - usr << browse(null, "window=fuel_monitor") - usr.machine = null - return - if( href_list["beginstage"] ) - var/stage_name = href_list["beginstage"] - if(stage_name in fuel_injectors) - var/success = 1 - for(var/obj/machinery/rust/fuel_injector/Injector in fuel_injectors[stage_name]) - if(!Injector.BeginInjecting()) - success = 0 - if(!success) //may still partially complete - usr << "\red Unable to complete command." - stage_status[stage_name] = 1 - updateDialog() - return - if( href_list["begincool"] ) - var/stage_name = href_list["begincool"] - if(stage_name in fuel_injectors) - for(var/obj/machinery/rust/fuel_injector/Injector in fuel_injectors[stage_name]) - Injector.StopInjecting() - stage_status[stage_name] = 0 - updateDialog() - return - if( href_list["restart"] ) - updateDialog() - return - if( href_list["cooldown"] ) - for(var/stage_name in fuel_injectors) - for(var/obj/machinery/rust/fuel_injector/Injector in fuel_injectors[stage_name]) - Injector.StopInjecting() - stage_status[stage_name] = 0 - updateDialog() - return - if( href_list["update"] ) - updateDialog() - return - // - if( href_list["disable_fueldepletion"] ) - announce_fueldepletion = 0 - updateDialog() - return - if( href_list["announce_fueldepletion"] ) - announce_fueldepletion = 1 - updateDialog() - return - if( href_list["broadcast_fueldepletion"] ) - announce_fueldepletion = 2 - updateDialog() - return - // - if( href_list["disable_stageprogression"] ) - announce_stageprogression = 0 - updateDialog() - return - if( href_list["announce_stageprogression"] ) - announce_stageprogression = 1 - updateDialog() - return - if( href_list["broadcast_stageprogression"] ) - announce_stageprogression = 2 - updateDialog() - return +/obj/machinery/computer/rust_fuel_control/interact(mob/user) + if(stat & (BROKEN|NOPOWER)) + user.unset_machine() + user << browse(null, "window=fuel_control") + return - process() - ..() - src.updateDialog() + if (!istype(user, /mob/living/silicon) && get_dist(src, user) > 1) + user.unset_machine() + user << browse(null, "window=fuel_control") + return - interact(mob/user) - if ( (get_dist(src, user) > 1 ) || (stat & (BROKEN|NOPOWER)) ) - if (!istype(user, /mob/living/silicon)) - user.machine = null - user << browse(null, "window=fuel_monitor") - return - var/t = "Reactor Core Fuel Control
" - var/cooling = 0 - for(var/stage in stage_status) - if(stage_status[stage]) - t += "Fuel injection: Active
" - t += "Enter cooldown phase
" - cooling = 1 - break - if(!cooling) - t += "Fuel injection: Cooling
" - t += "----
" - // - t += "Fuel depletion announcement: " - t += "[announce_fueldepletion ? "Disable" : "Disabled"] " - t += "[announce_fueldepletion == 1 ? "Announcing" : "Announce"] " - t += "[announce_fueldepletion == 2 ? "Broadcasting" : "Broadcast"]
" - t += "Stage progression announcement: " - t += "[announce_stageprogression ? "Disable" : "Disabled"] " - t += "[announce_stageprogression == 1 ? "Announcing" : "Announce"] " - t += "[announce_stageprogression == 2 ? "Broadcasting" : "Broadcast"] " - t += "
" - t += "" - t += "" - t += "" - t += "" - t += "" - t += "" - t += "" - for(var/stage_name in fuel_injectors) - var/list/cur_stage = fuel_injectors[stage_name] - t += "" - for(var/obj/machinery/rust/fuel_injector/Injector in cur_stage) - t += "" - t += "" - t += "" - t += "" - t += "" - t += "" - t += "" - t += "
Injector StatusInjection interval (sec)Assembly consumption per injectionFuel Assembly PortAssembly depletion percentage
Fuel Injection Stage: [stage_name], [stage_status[stage_name] ? "Active \[Enter cooldown\]" : "Cooling \[Begin injection\]"]
[Injector.on && Injector.remote_enabled ? "Operational" : "Unresponsive"][Injector.rate/10] Modify[Injector.fuel_usage*100]% Modify[Injector.owned_assembly_port ? "[Injector.owned_assembly_port.cur_assembly ? "Loaded": "Empty"]" : "Disconnected" ][Injector.owned_assembly_port && Injector.owned_assembly_port.cur_assembly ? "[Injector.owned_assembly_port.cur_assembly.percent_depleted]%" : ""]
" - t += "Close
" - user << browse(t, "window=fuel_monitor;size=500x600") - user.machine = src + var/dat = "Reactor Core Fuel Control
" + dat += "Fuel depletion announcement: " + dat += "[announce_fueldepletion == 0 ? "Disabled" : "\[Disable\]"] " + dat += "[announce_fueldepletion == 1 ? "Announcing" : "\[Announce\]"] " + dat += "[announce_fueldepletion == 2 ? "Broadcasting" : "\[Broadcast\]"]
" + dat += "Stage progression announcement: " + dat += "[announce_stageprogression == 0 ? "Disabled" : "\[Disable\]"] " + dat += "[announce_stageprogression == 1 ? "Announcing" : "\[Announce\]"] " + dat += "[announce_stageprogression == 2 ? "Broadcasting" : "\[Broadcast\]"]
" + dat += "
" + + dat += "Detected devices \[Refresh list\]" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + + for(var/obj/machinery/power/rust_fuel_injector/I in connected_injectors) + dat += "" + dat += "" + if(I.cur_assembly) + dat += "" + else + dat += "" + dat += "" + if(I.cur_assembly) + dat += "" + else + dat += "" + if(stage_times.Find(I.id_tag)) + dat += "" + else + dat += "" + if(proceeding_stages.Find(I.id_tag)) + dat += "" + else + dat += "" + dat += "" + dat += "" + dat += "
IDAssemblyConsumptionDepletionDurationNext stage
[I.id_tag]\[[I.injecting ? "Halt injecting" : "Begin injecting"]\]None[I.fuel_usage * 100]%[I.cur_assembly.percent_depleted * 100]%NA[ticks_this_stage]/[stage_times[I.id_tag]]s Modify[ticks_this_stage]s Set[proceeding_stages[I.id_tag]]None \[modify\]\[[active_stages.Find(I.id_tag) ? "Deactivate stage" : "Activate stage "] \]
" + + dat += "
" + dat += "Refresh " + dat += "Close
" + user << browse(dat, "window=fuel_control;size=800x400") + user.set_machine(src) + +/obj/machinery/computer/rust_fuel_control/Topic(href, href_list) + ..() + + if( href_list["scan"] ) + connected_injectors = list() + for(var/obj/machinery/power/rust_fuel_injector/I in range(scan_range, src)) + if(check_injector_status(I)) + connected_injectors.Add(I) + + if( href_list["toggle_stage"] ) + var/cur_stage = href_list["toggle_stage"] + if(active_stages.Find(cur_stage)) + active_stages.Remove(cur_stage) + for(var/obj/machinery/power/rust_fuel_injector/I in connected_injectors) + if(I.id_tag == cur_stage && check_injector_status(I)) + I.StopInjecting() + else + active_stages.Add(cur_stage) + for(var/obj/machinery/power/rust_fuel_injector/I in connected_injectors) + if(I.id_tag == cur_stage && check_injector_status(I)) + I.BeginInjecting() + + if( href_list["cooldown"] ) + for(var/obj/machinery/power/rust_fuel_injector/I in connected_injectors) + if(check_injector_status(I)) + I.StopInjecting() + active_stages = list() + + if( href_list["warmup"] ) + for(var/obj/machinery/power/rust_fuel_injector/I in connected_injectors) + if(check_injector_status(I)) + I.BeginInjecting() + if(!active_stages.Find(I.id_tag)) + active_stages.Add(I.id_tag) + + if( href_list["stage_time"] ) + var/cur_stage = href_list["stage_time"] + var/new_duration = input("Enter new stage duration in seconds", "Stage duration") as num + if(new_duration) + stage_times[cur_stage] = new_duration + else if(stage_times.Find(cur_stage)) + stage_times.Remove(cur_stage) + + if( href_list["announce_fueldepletion"] ) + announce_fueldepletion = text2num(href_list["announce_fueldepletion"]) + + if( href_list["announce_stageprogression"] ) + announce_stageprogression = text2num(href_list["announce_stageprogression"]) + + if( href_list["close"] ) + usr << browse(null, "window=fuel_control") + usr.unset_machine() + + if( href_list["set_next_stage"] ) + var/cur_stage = href_list["set_next_stage"] + if(!proceeding_stages.Find(cur_stage)) + proceeding_stages.Add(cur_stage) + var/next_stage = input("Enter next stage ID", "Automated stage procession") as text|null + if(next_stage) + proceeding_stages[cur_stage] = next_stage + else + proceeding_stages.Remove(cur_stage) + + updateDialog() + +/obj/machinery/computer/rust_fuel_control/proc/check_injector_status(var/obj/machinery/power/rust_fuel_injector/I) + if(!I) + return 0 + + if(I.stat & (BROKEN|NOPOWER) || !I.remote_access_enabled || !I.id_tag) + if(connected_injectors.Find(I)) + connected_injectors.Remove(I) + return 0 + + return 1 diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_injector.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_injector.dm index e773939c9f5..69d4464eac1 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_injector.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_injector.dm @@ -1,210 +1,290 @@ -/obj/machinery/rust/fuel_injector +/obj/machinery/power/rust_fuel_injector name = "Fuel Injector" icon = 'fuel_injector.dmi' icon_state = "injector0" - anchored = 1 + anchored = 0 density = 1 - var/obj/machinery/rust/fuel_assembly_port/owned_assembly_port - //var/list/stageone_assemblyports - //var/list/stagetwo_assemblyports - //var/list/scram_assemblyports - var/obj/machinery/rust/reactor_vessel/Vessel = null - var/rate = 10 //microseconds between each cycle - var/fuel_usage = 0.0001 //percentage of available fuel to use per cycle - var/on = 1 - var/remote_enabled = 1 + var/state = 0 + var/locked = 0 + var/obj/item/weapon/fuel_assembly/cur_assembly + var/fuel_usage = 0.0001 //percentage of available fuel to use per cycle + var/id_tag = "One" var/injecting = 0 - var/stage = "One" - var/targetting_field = 0 - layer = 4 + var/trying_to_swap_fuel = 0 // req_access = list(access_engine) // use_power = 1 idle_power_usage = 10 - active_power_usage = 300 + active_power_usage = 500 + var/remote_access_enabled = 1 + var/cached_power_avail = 0 + var/emergency_insert_ready = 0 - //fuel assembly should be embedded into the wall behind the injector - New() - ..() - name = "Stage [stage] Fuel Injector" - //pixel_x = (dir & 3)? 0 : (dir == 4 ? -24 : 24) - //pixel_y = (dir & 3)? (dir ==1 ? -24 : 24) : 0 - /* - stageone_assemblyports = new/list() - stagetwo_assemblyports = new/list() - scram_assemblyports = new/list() - spawn(1) - Vessel = locate() in range(6,src) - for(var/obj/machinery/rust/fuel_assembly_port/S in range(6,src)) - switch(S.stage) - if("One") - stageone_assemblyports.Add(S) - if("Two") - stagetwo_assemblyports.Add(S) - if("SCRAM") - scram_assemblyports.Add(S) - */ - spawn(1) - var/rev_dir = reverse_direction(dir) - var/turf/mid = get_step(src, rev_dir) - for(var/obj/machinery/rust/fuel_assembly_port/port in get_step(mid, rev_dir)) - owned_assembly_port = port - // - - Topic(href, href_list) - ..() - if( href_list["close"] ) - usr << browse(null, "window=fuel_injector") - usr.machine = null - return - if( href_list["begin_injecting"] ) - BeginInjecting() - updateDialog() - return - if( href_list["end_injecting"] ) +/obj/machinery/power/rust_fuel_injector/process() + if(injecting) + if(stat & BROKEN || !powernet) StopInjecting() - updateDialog() - return - if( href_list["cyclerate"] ) - var/new_rate = text2num(input("Enter new injection rate (0.1 - 10 sec)", "Modifying injection rate", rate/10)) - if(!new_rate) - usr << "\red That's not a valid number." - return - new_rate = min(new_rate,0.1) - new_rate = max(new_rate,10) - rate = new_rate * 10 - updateDialog() - return - if( href_list["fuel_usage"] ) - var/new_rate = text2num(input("Enter new fuel usage (1 - 100%)", "Modifying fuel usage", rate/10)) - if(!new_rate) - usr << "\red That's not a valid number." - return - new_rate = min(new_rate,0.1) - new_rate = max(new_rate,10) - rate = new_rate * 10 - updateDialog() - return - - attack_ai(mob/user) - attack_hand(user) - - attack_hand(mob/user) - add_fingerprint(user) - /*if(stat & (BROKEN|NOPOWER)) - return*/ - interact(user) - - interact(mob/user) - if ( (get_dist(src, user) > 1 ) || (stat & (BROKEN|NOPOWER)) ) - if (!istype(user, /mob/living/silicon)) - user.machine = null - user << browse(null, "window=fuel_injector") - return - var/t = "Reactor Core Fuel Injector
" - t += "Stage: [stage]
" - t += "Status: [injecting ? "Active \[Disable\]" : "Standby \[Enable\]"]
" - t += "Interval (sec): [rate/10] \[Modify\]
" - t += "Fuel usage: [fuel_usage*100]% \[Modify\]
" - /* - var/t = "Reactor Core Fuel Control
" - t += "Current fuel injection stage: [active_stage]
" - if(active_stage == "Cooling") - //t += "Restart injection cycle
" - t += "----
" else - t += "Enter cooldown phase
" - t += "Fuel depletion announcement: " - t += "[announce_fueldepletion ? "Disable" : "Disabled"] " - t += "[announce_fueldepletion == 1 ? "Announcing" : "Announce"] " - t += "[announce_fueldepletion == 2 ? "Broadcasting" : "Broadcast"]
" - t += "Stage progression announcement: " - t += "[announce_stageprogression ? "Disable" : "Disabled"] " - t += "[announce_stageprogression == 1 ? "Announcing" : "Announce"] " - t += "[announce_stageprogression == 2 ? "Broadcasting" : "Broadcast"] " - t += "
" - t += "" - t += "" - t += "" - t += "" - t += "" - t += "" - t += "" - for(var/stage in fuel_injectors) - var/list/cur_stage = fuel_injectors[stage] - t += "" - for(var/obj/machinery/rust/fuel_injector/Injector in cur_stage) - t += "" - t += "" - t += "" - t += "" - t += "" - t += "" - t += "" - t += "
Injector StatusInjection interval (sec)Assembly consumption per injectionFuel Assembly PortAssembly depletion percentage
Fuel Injection Stage: [stage] [active_stage == stage ? " (Currently active)" : "Activate"]
[Injector.on && Injector.remote_enabled ? "Operational" : "Unresponsive"][Injector.rate/10] Modify[Injector.fuel_usage*100]% Modify[Injector.owned_assembly_port ? "[Injector.owned_assembly_port.cur_assembly ? "Loaded": "Empty"]" : "Disconnected" ][Injector.owned_assembly_port && Injector.owned_assembly_port.cur_assembly ? "[100 - Injector.owned_assembly_port.cur_assembly.amount_depleted*100]%" : ""]
" - */ - t += "
" - t += "Close
" - user << browse(t, "window=fuel_injector;size=500x800") - user.machine = src + Inject() - proc/BeginInjecting() - if(!injecting && owned_assembly_port && owned_assembly_port.cur_assembly) - icon_state = "injector1" - injecting = 1 - spawn(rate) - Inject() - return 1 - return 0 + cached_power_avail = avail() - proc/StopInjecting() +/obj/machinery/power/rust_fuel_injector/attackby(obj/item/W, mob/user) + + if(istype(W, /obj/item/weapon/wrench)) if(injecting) - injecting = 0 - icon_state = "injector0" - return 1 - return 0 - - proc/Inject() - if(!injecting) + user << "Turn off the [src] first." return - if(owned_assembly_port.cur_assembly) - var/obj/machinery/rust/em_field/target_field - if(targetting_field) - for(var/obj/machinery/rust/em_field/field in range(15)) - target_field = field - var/amount_left = 0 - for(var/reagent in owned_assembly_port.cur_assembly.rod_quantities) - //world << "checking [reagent]" - if(owned_assembly_port.cur_assembly.rod_quantities[reagent] > 0) - //world << " rods left: [owned_assembly_port.cur_assembly.rod_quantities[reagent]]" - var/amount = owned_assembly_port.cur_assembly.rod_quantities[reagent] * fuel_usage - var/numparticles = round(amount * 1000) - if(numparticles < 1) - numparticles = 1 - //world << " amount: [amount]" - //world << " numparticles: [numparticles]" - // - var/obj/effect/accelerated_particle/particle = new/obj/effect/accelerated_particle(src.loc, src.dir) - particle.particle_type = reagent - particle.energy = 0 - particle.icon_state = "particle" - particle.additional_particles = numparticles - 1 - particle.target = target_field - // - owned_assembly_port.cur_assembly.rod_quantities[reagent] -= amount - amount_left += owned_assembly_port.cur_assembly.rod_quantities[reagent] - owned_assembly_port.cur_assembly.percent_depleted = amount_left / 300 - flick("injector-emitting",src) - use_power(fuel_usage * 10000 + 100) //0.0001 - if(injecting) - spawn(rate) - Inject() - else - injecting = 0 + switch(state) + if(0) + state = 1 + playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) + user.visible_message("[user.name] secures [src.name] to the floor.", \ + "You secure the external reinforcing bolts to the floor.", \ + "You hear a ratchet") + src.anchored = 1 + if(1) + state = 0 + playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) + user.visible_message("[user.name] unsecures [src.name] reinforcing bolts from the floor.", \ + "You undo the external reinforcing bolts.", \ + "You hear a ratchet") + src.anchored = 0 + if(2) + user << "\red The [src.name] needs to be unwelded from the floor." + return - process() - ..() + if(istype(W, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = W + if(injecting) + user << "Turn off the [src] first." + return + switch(state) + if(0) + user << "\red The [src.name] needs to be wrenched to the floor." + if(1) + if (WT.remove_fuel(0,user)) + playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) + user.visible_message("[user.name] starts to weld the [src.name] to the floor.", \ + "You start to weld the [src] to the floor.", \ + "You hear welding") + if (do_after(user,20)) + if(!src || !WT.isOn()) return + state = 2 + user << "You weld the [src] to the floor." + connect_to_network() + src.directwired = 1 + else + user << "\red You need more welding fuel to complete this task." + if(2) + if (WT.remove_fuel(0,user)) + playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) + user.visible_message("[user.name] starts to cut the [src.name] free from the floor.", \ + "You start to cut the [src] free from the floor.", \ + "You hear welding") + if (do_after(user,20)) + if(!src || !WT.isOn()) return + state = 1 + user << "You cut the [src] free from the floor." + disconnect_from_network() + src.directwired = 0 + else + user << "\red You need more welding fuel to complete this task." + return + + if(istype(W, /obj/item/weapon/card/id) || istype(W, /obj/item/device/pda)) + if(emagged) + user << "\red The lock seems to be broken" + return + if(src.allowed(user)) + src.locked = !src.locked + user << "The controls are now [src.locked ? "locked." : "unlocked."]" + else + user << "\red Access denied." + return + + if(istype(W, /obj/item/weapon/card/emag) && !emagged) + locked = 0 + emagged = 1 + user.visible_message("[user.name] emags the [src.name].","\red You short out the lock.") + return + + if(istype(W, /obj/item/weapon/fuel_assembly) && !cur_assembly) + if(emergency_insert_ready) + cur_assembly = W + user.drop_item() + W.loc = src + emergency_insert_ready = 0 + return + + ..() + return + +/obj/machinery/power/rust_fuel_injector/attack_ai(mob/user) + attack_hand(user) + +/obj/machinery/power/rust_fuel_injector/attack_hand(mob/user) + add_fingerprint(user) + interact(user) + +/obj/machinery/power/rust_fuel_injector/interact(mob/user) + if(stat & BROKEN) + user.unset_machine() + user << browse(null, "window=fuel_injector") + return + if(get_dist(src, user) > 1 ) + if (!istype(user, /mob/living/silicon)) + user.unset_machine() + user << browse(null, "window=fuel_injector") + return + + var/dat = "" + if (!powernet || locked || state != 2) + dat += "The console is dark and nonresponsive." + else + dat += "Reactor Core Fuel Injector
" + dat += "Device ID tag: [id_tag] \[Modify\]
" + dat += "Status: [injecting ? "Active \[Disable\]" : "Standby \[Enable\]"]
" + dat += "Fuel usage: [fuel_usage*100]% \[Modify\]
" + dat += "Fuel assembly port: " + dat += "\[[cur_assembly ? "Eject assembly to port" : "Draw assembly from port"]\] " + if(cur_assembly) + dat += "\[Emergency eject\]
" + else + dat += "\[[emergency_insert_ready ? "Cancel emergency insertion" : "Emergency insert"]\]
" + var/font_colour = "green" + if(cached_power_avail < active_power_usage) + font_colour = "red" + else if(cached_power_avail < active_power_usage * 2) + font_colour = "orange" + dat += "Power status: [active_power_usage]/[cached_power_avail] W
" + dat += "\[[remote_access_enabled ? "Disable remote access" : "Enable remote access"]\]
" + + dat += "
" + dat += "Refresh " + dat += "Close
" + + user << browse(dat, "window=fuel_injector;size=500x300") + onclose(user, "fuel_injector") + user.set_machine(src) + +/obj/machinery/power/rust_fuel_injector/Topic(href, href_list) + ..() + + if( href_list["modify_tag"] ) + id_tag = input("Enter new ID tag", "Modifying ID tag") as text|null + + if( href_list["fuel_assembly"] ) + if(!trying_to_swap_fuel) + trying_to_swap_fuel = 1 + spawn(50) + attempt_fuel_swap() + trying_to_swap_fuel = 0 + + if( href_list["emergency_fuel_assembly"] ) + if(cur_assembly) + cur_assembly.loc = src.loc + cur_assembly = null + //irradiate! + else + emergency_insert_ready = !emergency_insert_ready + + if( href_list["toggle_injecting"] ) + if(injecting) + StopInjecting() + else + BeginInjecting() + + if( href_list["toggle_remote"] ) + remote_access_enabled = !remote_access_enabled + + if( href_list["fuel_usage"] ) + var/new_usage = text2num(input("Enter new fuel usage (0.01% - 100%)", "Modifying fuel usage", fuel_usage * 100)) + if(!new_usage) + usr << "\red That's not a valid number." + return + new_usage = max(new_usage, 0.01) + new_usage = min(new_usage, 100) + fuel_usage = new_usage / 100 + active_power_usage = 500 + 1000 * fuel_usage + + if( href_list["update_extern"] ) + var/obj/machinery/computer/rust_fuel_control/C = locate(href_list["update_extern"]) + if(C) + C.updateDialog() + + if( href_list["close"] ) + usr << browse(null, "window=fuel_injector") + usr.unset_machine() + + updateDialog() + +/obj/machinery/power/rust_fuel_injector/proc/BeginInjecting() + if(!injecting && cur_assembly) + icon_state = "injector1" + injecting = 1 + use_power = 1 + +/obj/machinery/power/rust_fuel_injector/proc/StopInjecting() + if(injecting) + injecting = 0 + icon_state = "injector0" + use_power = 0 + +/obj/machinery/power/rust_fuel_injector/proc/Inject() + if(!injecting) + return + if(cur_assembly) + var/amount_left = 0 + for(var/reagent in cur_assembly.rod_quantities) + //world << "checking [reagent]" + if(cur_assembly.rod_quantities[reagent] > 0) + //world << " rods left: [cur_assembly.rod_quantities[reagent]]" + var/amount = cur_assembly.rod_quantities[reagent] * fuel_usage + var/numparticles = round(amount * 1000) + if(numparticles < 1) + numparticles = 1 + //world << " amount: [amount]" + //world << " numparticles: [numparticles]" + // + + var/obj/effect/accelerated_particle/A = new/obj/effect/accelerated_particle(get_turf(src), dir) + A.particle_type = reagent + A.additional_particles = numparticles - 1 + //A.target = target_field + // + cur_assembly.rod_quantities[reagent] -= amount + amount_left += cur_assembly.rod_quantities[reagent] + cur_assembly.percent_depleted = amount_left / 300 + flick("injector-emitting",src) + else + StopInjecting() + +/obj/machinery/power/rust_fuel_injector/proc/attempt_fuel_swap() + var/rev_dir = reverse_direction(dir) + var/turf/mid = get_step(src, rev_dir) + var/success = 0 + for(var/obj/machinery/rust_fuel_assembly_port/check_port in get_step(mid, rev_dir)) + if(cur_assembly) + if(!check_port.cur_assembly) + check_port.cur_assembly = cur_assembly + cur_assembly.loc = check_port + cur_assembly = null + check_port.icon_state = "port1" + success = 1 + else + if(check_port.cur_assembly) + cur_assembly = check_port.cur_assembly + cur_assembly.loc = src + check_port.cur_assembly = null + check_port.icon_state = "port0" + success = 1 + + break + if(success) + src.visible_message("\blue \icon[src] a green light flashes on [src].") updateDialog() - // + else + src.visible_message("\red \icon[src] a red light flashes on [src].") diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/radiation.dm b/code/WorkInProgress/Cael_Aislinn/Rust/radiation.dm index 62b826532c4..155ef23c5c6 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/radiation.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/radiation.dm @@ -67,4 +67,8 @@ //particle.invisibility = 2 // return particle -*/ \ No newline at end of file +*/ + +/obj/machinery/computer/rust_radiation_monitor + name = "Radiation Monitor" + icon_state = "power" diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/virtual_particle_catcher.dm b/code/WorkInProgress/Cael_Aislinn/Rust/virtual_particle_catcher.dm index b45d28259c8..b87a12a9aef 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/virtual_particle_catcher.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/virtual_particle_catcher.dm @@ -1,49 +1,53 @@ //gimmicky hack to collect particles and direct them into the field -//byond multitiles are basically... shit -/obj/machinery/rust/particle_catcher - invisibility = 101 +/obj/effect/rust_particle_catcher icon = 'effects.dmi' icon_state = "energynet" density = 0 anchored = 1 - var/obj/machinery/rust/em_field/parent + //invisibility = 101 + layer = 4 + var/obj/effect/rust_em_field/parent var/mysize = 0 - /*New() - for(var/obj/machinery/rust/em_field/field in range(6)) - parent = field - if(!parent) - del(src)*/ +/*/obj/effect/rust_particle_catcher/New() + for(var/obj/machinery/rust/em_field/field in range(6)) + parent = field + if(!parent) + del(src)*/ - proc/SetSize(var/newsize) - name = "collector [newsize]" - mysize = newsize - UpdateSize() +/obj/effect/rust_particle_catcher/process() + if(!parent) + del(src) - proc/AddParticles(var/name, var/quantity = 1) - if(parent && parent.size >= mysize) - parent.AddParticles(name, quantity) - return 1 - return 0 +/obj/effect/rust_particle_catcher/proc/SetSize(var/newsize) + name = "collector [newsize]" + mysize = newsize + UpdateSize() - proc/UpdateSize() - if(parent.size >= mysize) - density = 1 - //invisibility = 101 - name = "collector [mysize] ON" - else - density = 0 - name = "collector [mysize] OFF" - //invisibility = 101 +/obj/effect/rust_particle_catcher/proc/AddParticles(var/name, var/quantity = 1) + if(parent && parent.size >= mysize) + parent.AddParticles(name, quantity) + return 1 + return 0 - bullet_act(var/obj/item/projectile/Proj) - if(Proj.flag != "bullet" && parent) - var/obj/item/projectile/beam/laserbeam = Proj - parent.AddEnergy(0, laserbeam.damage / 5000, laserbeam.frequency) - return 0 +/obj/effect/rust_particle_catcher/proc/UpdateSize() + if(parent.size >= mysize) + density = 1 + invisibility = 0 + name = "collector [mysize] ON" + else + density = 0 + invisibility = 101 + name = "collector [mysize] OFF" - process() - ..() - if(!parent) - del(src) +/obj/effect/rust_particle_catcher/bullet_act(var/obj/item/projectile/Proj) + if(Proj.flag != "bullet" && parent) + parent.AddEnergy(Proj.damage, 0, 1) + update_icon() + return 0 + +/obj/effect/rust_particle_catcher/Bumped(atom/AM) + if(ismob(AM) && density && prob(10)) + AM << "\red A powerful force pushes you back." + ..() diff --git a/code/modules/power/singularity/particle_accelerator/particle.dm b/code/modules/power/singularity/particle_accelerator/particle.dm index bb4bb6e7c4e..da4a32782bb 100644 --- a/code/modules/power/singularity/particle_accelerator/particle.dm +++ b/code/modules/power/singularity/particle_accelerator/particle.dm @@ -43,14 +43,14 @@ toxmob(A) if((istype(A,/obj/machinery/the_singularitygen))||(istype(A,/obj/machinery/singularity/))) A:energy += energy - else if( istype(A,/obj/machinery/rust/particle_catcher) ) - var/obj/machinery/rust/particle_catcher/collided_catcher = A + else if( istype(A,/obj/effect/rust_particle_catcher) ) + var/obj/effect/rust_particle_catcher/collided_catcher = A if(particle_type && particle_type != "neutron") if(collided_catcher.AddParticles(particle_type, 1 + additional_particles)) collided_catcher.parent.AddEnergy(energy,mega_energy) del (src) - else if( istype(A,/obj/machinery/rust/core) ) - var/obj/machinery/rust/core/collided_core = A + else if( istype(A,/obj/machinery/power/rust_core) ) + var/obj/machinery/power/rust_core/collided_core = A if(particle_type && particle_type != "neutron") if(collided_core.AddParticles(particle_type, 1 + additional_particles)) var/energy_loss_ratio = abs(collided_core.owned_field.frequency - frequency) / 1e9 diff --git a/maps/rust_test.dmm b/maps/rust_test.dmm new file mode 100644 index 00000000000..3f6d35c9608 --- /dev/null +++ b/maps/rust_test.dmm @@ -0,0 +1,372 @@ +"aa" = (/turf/space,/area) +"ab" = (/turf/simulated/wall/r_wall,/area) +"ac" = (/obj/effect/landmark/start{name = "Station Engineer"},/turf/simulated/floor,/area) +"ad" = (/turf/simulated/floor,/area) +"ae" = (/obj/machinery/power/monitor,/turf/simulated/floor,/area) +"af" = (/obj/effect/landmark/start{name = "Chief Engineer"},/turf/simulated/floor,/area) +"ag" = (/obj/machinery/computer/rust_fuel_control,/turf/simulated/floor,/area) +"ah" = (/obj/machinery/computer/rust_core_control,/turf/simulated/floor,/area) +"ai" = (/obj/machinery/computer/rust_radiation_monitor,/turf/simulated/floor,/area) +"aj" = (/turf/space,/area/engine/engineering) +"ak" = (/turf/simulated/wall/r_wall,/area/engine/engineering) +"al" = (/obj/machinery/door/airlock/engineering,/turf/simulated/floor,/area/engine/engineering) +"am" = (/obj/effect/landmark{name = "LateStart"},/turf/simulated/floor,/area/engine/engineering) +"an" = (/turf/simulated/floor,/area/engine/engineering) +"ao" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"ap" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"aq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/rust_fuel_compressor{pixel_x = 0; pixel_y = -32},/turf/simulated/floor,/area/engine/engineering) +"ar" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/rust_fuel_assembly_port{pixel_y = -32},/turf/simulated/floor,/area/engine/engineering) +"as" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"at" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engine/engineering) +"au" = (/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/engine/engineering) +"av" = (/obj/machinery/door/airlock/engineering,/turf/simulated/floor/plating,/area/engine/engineering) +"aw" = (/turf/simulated/floor/plating,/area/engine/engineering) +"ax" = (/obj/structure/closet/crate,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/turf/simulated/floor/plating,/area/engine/engineering) +"ay" = (/obj/machinery/power/rust_fuel_injector,/turf/simulated/floor/plating,/area/engine/engineering) +"az" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/engine/engineering) +"aA" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 6},/turf/space,/area) +"aB" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 4},/turf/space,/area) +"aC" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 10},/turf/space,/area) +"aD" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/simulated/floor/plating,/area/engine/engineering) +"aE" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging,/turf/space,/area) +"aF" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 9},/turf/space,/area) +"aG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/wall/r_wall,/area/engine/engineering) +"aH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine/engineering) +"aI" = (/turf/simulated/floor/plating{dir = 8; icon_state = "warnplate"; tag = "icon-warnplate (SOUTHEAST)"},/area/engine/engineering) +"aJ" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area/engine/engineering) +"aK" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area/engine/engineering) +"aL" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area/engine/engineering) +"aM" = (/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/engine/engineering) +"aN" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 5},/turf/space,/area) +"aO" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/simulated/floor/plating,/area/engine/engineering) +"aP" = (/obj/machinery/power/apc{cell_type = 15000; dir = 4; name = "Engineering APC"; pixel_x = 25; pixel_y = 0},/turf/simulated/floor,/area/engine/engineering) +"aQ" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/plating,/area/engine/engineering) +"aR" = (/obj/machinery/door/poddoor,/turf/simulated/floor/engine,/area/engine/engineering) +"aS" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8; icon_state = "manifold"; initialize_directions = 11; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"aT" = (/obj/machinery/atmospherics/pipe/manifold{icon_state = "manifold"; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"aU" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"aV" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"aW" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4; icon_state = "manifold"; initialize_directions = 11; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"aX" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/engine/engineering) +"aY" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/simulated/wall/r_wall,/area/engine/engineering) +"aZ" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8},/turf/simulated/floor/plating,/area/engine/engineering) +"ba" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/engine,/area/engine/engineering) +"bb" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 6},/turf/simulated/floor/engine,/area/engine/engineering) +"bc" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 4},/turf/simulated/floor/engine,/area/engine/engineering) +"bd" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 10},/turf/simulated/floor/engine,/area/engine/engineering) +"be" = (/turf/simulated/floor/engine,/area/engine/engineering) +"bf" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4},/turf/simulated/floor/plating,/area/engine/engineering) +"bg" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/engine/engineering) +"bh" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1; icon_state = "manifold"; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"bi" = (/obj/machinery/atmospherics/binary/pump{dir = 8},/turf/simulated/floor/plating,/area/engine/engineering) +"bj" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; dir = 10; pixel_x = 0; level = 2; initialize_directions = 10},/obj/machinery/meter,/turf/simulated/floor/plating,/area/engine/engineering) +"bk" = (/obj/machinery/atmospherics/pipe/simple{dir = 6; icon_state = "intact"; level = 2},/obj/machinery/meter,/turf/simulated/floor/plating,/area/engine/engineering) +"bl" = (/obj/machinery/atmospherics/binary/pump{dir = 4},/turf/simulated/floor/plating,/area/engine/engineering) +"bm" = (/obj/machinery/atmospherics/pipe/simple{dir = 6; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"bn" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction{dir = 4},/turf/simulated/wall/r_wall,/area/engine/engineering) +"bo" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 9},/turf/simulated/floor/engine,/area/engine/engineering) +"bp" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4},/turf/simulated/floor/engine,/area/engine/engineering) +"bq" = (/obj/machinery/atmospherics/valve/digital{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine/engineering) +"br" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"bs" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister,/turf/simulated/floor/plating,/area/engine/engineering) +"bt" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{dir = 4},/turf/simulated/floor/plating,/area/engine/engineering) +"bu" = (/obj/machinery/atmospherics/binary/circulator,/turf/simulated/floor/plating,/area/engine/engineering) +"bv" = (/obj/machinery/power/generator,/obj/structure/cable{d1 = 0; d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/engine/engineering) +"bw" = (/obj/machinery/atmospherics/binary/circulator{dir = 4; icon_state = "circ2-off"; side = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"bx" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"by" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"bz" = (/obj/machinery/power/emitter{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/engine/engineering) +"bA" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area/engine/engineering) +"bB" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 5},/turf/simulated/floor/engine,/area/engine/engineering) +"bC" = (/obj/machinery/power/emitter{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/engine/engineering) +"bD" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"bE" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction{dir = 1},/turf/space,/area) +"bF" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/obj/machinery/meter,/turf/simulated/floor/plating,/area/engine/engineering) +"bG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"bH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"bI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"bJ" = (/obj/machinery/door/airlock/engineering,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"bK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"bL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"bM" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area/engine/engineering) +"bN" = (/obj/machinery/power/rust_core,/turf/simulated/floor/engine,/area/engine/engineering) +"bO" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging,/turf/simulated/floor/engine,/area/engine/engineering) +"bP" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"bQ" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine/engineering) +"bR" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/toxins,/turf/simulated/floor/plating,/area/engine/engineering) +"bS" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact"; level = 2},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/floor/plating,/area) +"bT" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4; icon_state = "manifold"; initialize_directions = 11; level = 2},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/floor/plating,/area) +"bU" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/plating,/area) +"bV" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/plating,/area) +"bW" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/plating,/area) +"bX" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"bY" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area/engine/engineering) +"bZ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"ca" = (/turf/simulated/floor/plating,/area) +"cb" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8; icon_state = "manifold"; initialize_directions = 11; level = 2},/turf/simulated/floor/plating,/area) +"cc" = (/obj/machinery/atmospherics/binary/pump{dir = 8},/turf/simulated/floor/plating,/area) +"cd" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; dir = 10; pixel_x = 0; level = 2; initialize_directions = 10},/turf/simulated/floor/plating,/area) +"ce" = (/obj/machinery/atmospherics/pipe/simple{dir = 6; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area) +"cf" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area) +"cg" = (/obj/structure/cable{d1 = 0; d2 = 2; icon_state = "0-2"},/obj/machinery/power/terminal{dir = 4; icon_state = "term"},/turf/simulated/floor/plating,/area) +"ch" = (/obj/machinery/power/smes,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area) +"ci" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area) +"cj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/plating,/area) +"ck" = (/obj/machinery/power/smes,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area) +"cl" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable{d1 = 0; d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area) +"cm" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor,/area) +"cn" = (/obj/machinery/computer/turbine_computer,/turf/simulated/floor,/area) +"co" = (/obj/machinery/power/generator,/obj/structure/cable{d1 = 0; d2 = 2; icon_state = "0-2"},/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/engineering) +"cp" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engine/engineering) +"cq" = (/obj/machinery/atmospherics/valve/digital{dir = 4},/turf/simulated/floor,/area/engine/engineering) +"cr" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold{icon_state = "manifold"; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"cs" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 4; icon_state = "on"; on = 1},/turf/simulated/floor/engine,/area/engine/engineering) +"ct" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{dir = 4},/turf/simulated/floor/plating,/area) +"cu" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4; icon_state = "manifold"; initialize_directions = 11; level = 2},/turf/simulated/floor/plating,/area) +"cv" = (/obj/machinery/atmospherics/binary/circulator,/turf/simulated/floor/plating,/area) +"cw" = (/obj/machinery/power/generator,/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; icon_state = "on"; on = 1},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area) +"cx" = (/obj/machinery/atmospherics/binary/circulator{dir = 4; icon_state = "circ2-off"; side = 2},/turf/simulated/floor/plating,/area) +"cy" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area) +"cz" = (/obj/structure/cable{d1 = 0; d2 = 2; icon_state = "0-2"},/obj/structure/cable,/obj/machinery/power/terminal{dir = 4; icon_state = "term"},/turf/simulated/floor/plating,/area) +"cA" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable,/obj/structure/cable{d1 = 0; d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area) +"cB" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor,/area) +"cC" = (/turf/simulated/floor/engine,/area) +"cD" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area) +"cE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area) +"cF" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area) +"cG" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area) +"cH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor,/area) +"cI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area) +"cJ" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor,/area) +"cK" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating,/area) +"cL" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor,/area) +"cM" = (/obj/machinery/power/turbine{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/engine,/area) +"cN" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area) +"cO" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area) +"cP" = (/obj/machinery/door/airlock/engineering,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/plating,/area) +"cQ" = (/obj/machinery/power/monitor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor,/area) +"cR" = (/obj/machinery/power/terminal{dir = 4; icon_state = "term"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area) +"cS" = (/obj/machinery/power/smes,/obj/structure/cable,/turf/simulated/floor/plating,/area) +"cT" = (/obj/machinery/compressor,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/engine,/area) +"cU" = (/obj/machinery/power/smes,/turf/simulated/floor/plating,/area) +"cV" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHWEST)"; icon_state = "warnplate"; dir = 10},/area/engine/engineering) +"cW" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (SOUTHEAST)"},/area/engine/engineering) +"cX" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHEAST)"; icon_state = "warnplate"; dir = 6},/area/engine/engineering) +"cY" = (/obj/machinery/power/generator,/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; icon_state = "on"; on = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area) +"cZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area) +"da" = (/obj/machinery/door/window/northleft,/turf/simulated/floor/plating,/area) +"db" = (/obj/machinery/door/window/northright,/turf/simulated/floor/plating,/area) +"dc" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTHWEST)"; icon_state = "warnplate"; dir = 9},/area) +"dd" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area) +"de" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTHEAST)"; icon_state = "warnplate"; dir = 5},/area) +"df" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"dg" = (/obj/machinery/door/airlock/engineering,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"dh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engine/engineering) +"di" = (/obj/machinery/power/monitor,/turf/simulated/floor,/area/engine/engineering) +"dj" = (/obj/machinery/power/apc{cell_type = 15000; dir = 1; name = "Engineering APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{d1 = 0; d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/engine/engineering) +"dk" = (/obj/machinery/power/smes,/turf/simulated/floor/plating,/area/engine/engineering) +"dl" = (/obj/machinery/compressor{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/engine,/area/engine/engineering) +"dm" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/engine/engineering) +"dn" = (/obj/machinery/power/monitor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"do" = (/obj/machinery/computer/turbine_computer,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"dp" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"dq" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area) +"dr" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating{dir = 8; icon_state = "warnplate"; tag = "icon-warnplate (SOUTHEAST)"},/area) +"ds" = (/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area) +"dt" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/plating,/area) +"du" = (/turf/simulated/floor/plating{dir = 8; icon_state = "warnplate"; tag = "icon-warnplate (SOUTHEAST)"},/area) +"dv" = (/obj/machinery/door/poddoor,/turf/simulated/floor/engine,/area) +"dw" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4; icon_state = "manifold"; initialize_directions = 11; level = 2},/turf/simulated/wall/r_wall,/area/engine/engineering) +"dx" = (/obj/machinery/door/airlock/external,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"dy" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/wall/r_wall,/area/engine/engineering) +"dz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"dA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"dB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"dC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"dD" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/engine/engineering) +"dE" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor,/area/engine/engineering) +"dF" = (/obj/machinery/power/turbine{dir = 2},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/engine,/area/engine/engineering) +"dG" = (/obj/machinery/power/apc{cell_type = 15000; dir = 4; name = "Engineering APC"; pixel_x = 25; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/engine/engineering) +"dH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area) +"dI" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area) +"dJ" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/simulated/wall/r_wall,/area) +"dK" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8},/turf/simulated/floor/plating,/area) +"dL" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/engine,/area) +"dM" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4},/turf/simulated/floor/plating,/area) +"dN" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area) +"dO" = (/obj/machinery/power/generator,/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/engineering) +"dP" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/wall/r_wall,/area/engine/engineering) +"dQ" = (/obj/structure/cable{d1 = 0; d2 = 2; icon_state = "0-2"},/obj/machinery/power/terminal{dir = 4; icon_state = "term"},/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/engineering) +"dR" = (/obj/machinery/power/smes,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/engine/engineering) +"dS" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine/engineering) +"dT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"dU" = (/obj/machinery/power/smes,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/engine/engineering) +"dV" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable{d1 = 0; d2 = 2; icon_state = "0-2"},/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/engineering) +"dW" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor,/area/engine/engineering) +"dX" = (/obj/machinery/atmospherics/binary/pump{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area) +"dY" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/obj/machinery/meter,/turf/simulated/floor,/area) +"dZ" = (/obj/machinery/atmospherics/valve/digital{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area) +"ea" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/obj/machinery/meter,/turf/simulated/floor/plating,/area) +"eb" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; icon_state = "on"; on = 1},/turf/simulated/floor/engine,/area) +"ec" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4},/turf/simulated/floor/engine,/area) +"ed" = (/obj/machinery/atmospherics/valve/digital{dir = 4},/turf/simulated/floor/plating,/area) +"ee" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1; icon_state = "manifold"; level = 2},/obj/machinery/meter,/turf/simulated/floor/plating,/area) +"ef" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/space,/area) +"eg" = (/obj/machinery/atmospherics/pipe/simple{dir = 6; icon_state = "intact"; level = 2},/turf/simulated/wall/r_wall,/area/engine/engineering) +"eh" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact"; level = 2},/turf/simulated/wall/r_wall,/area/engine/engineering) +"ei" = (/obj/structure/cable,/obj/machinery/power/terminal{dir = 4; icon_state = "term"},/turf/simulated/floor/plating,/area/engine/engineering) +"ej" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"ek" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/engineering) +"el" = (/obj/structure/table,/obj/machinery/cell_charger,/turf/simulated/floor/plating,/area/engine/engineering) +"em" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor,/area/engine/engineering) +"en" = (/obj/machinery/computer/turbine_computer,/turf/simulated/floor,/area/engine/engineering) +"eo" = (/obj/machinery/power/emitter{dir = 4},/turf/simulated/floor/plating,/area) +"ep" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area) +"eq" = (/obj/machinery/power/emitter{dir = 8},/turf/simulated/floor/plating,/area) +"er" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction,/turf/simulated/wall/r_wall,/area/engine/engineering) +"es" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area) +"et" = (/obj/machinery/door/airlock/engineering,/turf/simulated/floor/plating,/area) +"eu" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area) +"ev" = (/obj/machinery/power/rust_core,/turf/simulated/floor/engine,/area) +"ew" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging,/obj/structure/lattice,/turf/space,/area) +"ex" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 4},/turf/simulated/floor/plating,/area) +"ey" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 10},/obj/structure/lattice,/turf/space,/area) +"ez" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area) +"eA" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 5},/obj/structure/lattice,/turf/space,/area) +"eB" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 9},/obj/structure/lattice,/turf/space,/area) +"eC" = (/obj/machinery/atmospherics/pipe/manifold{icon_state = "manifold"; level = 2},/turf/simulated/floor/plating,/area) +"eD" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1; icon_state = "manifold"; level = 2},/turf/simulated/floor/plating,/area) +"eE" = (/obj/machinery/atmospherics/binary/pump{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area) +"eF" = (/obj/machinery/atmospherics/unary/vent_pump/siphon/on{dir = 8},/turf/simulated/floor/engine,/area) +"eG" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 4; icon_state = "on"; on = 1},/turf/simulated/floor/engine,/area) +"eH" = (/obj/machinery/atmospherics/valve/digital{dir = 4},/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area) +"eI" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold{dir = 1; icon_state = "manifold"; level = 2},/turf/simulated/floor/plating,/area) +"eJ" = (/obj/structure/lattice,/turf/space,/area) +"eK" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/heat_exchanging,/turf/space,/area) +"eL" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating,/area) +"eM" = (/obj/machinery/atmospherics/binary/pump,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/plating,/area) +"eN" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor,/area) +"eO" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 6},/obj/structure/lattice,/turf/space,/area) +"eP" = (/obj/machinery/atmospherics/binary/pump,/turf/simulated/floor/plating,/area) +"eQ" = (/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHWEST)"; icon_state = "warnplate"; dir = 10},/area) +"eR" = (/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (SOUTHEAST)"},/area) +"eS" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area) +"eT" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area) +"eU" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area) +"eV" = (/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHEAST)"; icon_state = "warnplate"; dir = 6},/area) +"eW" = (/obj/machinery/atmospherics/portables_connector{dir = 1; name = "Connector Port (Air Supply)"},/turf/simulated/floor/plating,/area) +"eX" = (/obj/machinery/atmospherics/binary/pump{dir = 1},/turf/simulated/floor/plating,/area) +"eY" = (/obj/structure/closet/crate,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/turf/simulated/floor/plating,/area) +"eZ" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area) +"fa" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area) +"fb" = (/obj/machinery/power/rust_fuel_injector{dir = 1},/turf/simulated/floor/plating,/area) +"fc" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/simulated/floor/plating,/area) +"fd" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area) +"fe" = (/obj/machinery/rust_fuel_compressor{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plating,/area) +"ff" = (/obj/machinery/rust_fuel_assembly_port{pixel_y = 32},/turf/simulated/floor/plating,/area) +"fg" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/wall/r_wall,/area) +"fh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/wall/r_wall,/area) +"fi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/space,/area) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacadadadaeacabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacadafadadacabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacadadadadacabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabagahaiadadacabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajajajajajajajajajajajakakakakakalakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajajajajajajajajajajajakamamamamamamamamamananananananananananananananakaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajajajajajajajajajajajakaoapapapapapapaqarararaparararaqapapapapapasanakaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajajajajajajajajajajajakatanakakauauauakakakakavakakakakauauauakakatanakaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajajajajajajajajajajajakatanakakawaxaxakayayayawayayayakazazawakakatanakaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaAaBaBaBaBaBaBaBaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajajajajajajajajajajajakatanakakawaxaxakawawawawawawawakaDaDawakakatanakaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaEaAaBaBaBaBaBaBaFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakaGakakaHawaIawakakakakaJaKaLakaJaKaLakakakakawaMaHawakaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaEaNaBaBaBaBaBaBaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakaOaOaOaOaOaOaOaOataPakaHawaIaMaQaIawakaRaRaRakaRaRaRakawaMaQaIaMaHawakaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaEaAaBaBaBaBaBaBaFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakaSaTaTaUaVaTaTaWatanakaHawaIaXaYaZaMbabbbcbcbcbcbdbebaaIbfaYbgaMaHawakakakaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaEaNaBaBaBaBaBaBaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakaVbhbibjawbkblaWatanakaHbmaYaYaYaYaYbnbobbbcbcbcbobpaYaYaYaYaYaYbqbrbhbsakaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaEaAaBaBaBaBaBaBaFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakbtaWawbubvbwawbxatanakaHbxakawbybzbAaRbebBbcbcbcbcbdaRbAbCbDawakaHawaVbsakaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaabEbEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakawaSbFaUbGaVbFaWatanakbHbIbJbKbLbzbMaRbebebebNbebebOaRbMbCbPbKbJbQawbmbRakaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabbSbTbUbVbVbVbVbWabababababababababababaaaaaaaaaaaaaaabababababababababaaaaaaaaaaaaaaaaaaakawaSbibjbGbkblaWatanakaHbxakawbXbzbYaRbebbbcbcbcbcboaRbYbCbZawakaHawaSbRakaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabcacbcccdcacecfcdadadabcgchcicjckclcacmaaaaaaaaaaaaaacmcacacncncncncnabaaaaaaaaaaaaaaaaaaakbtaWawbucobwawaScpcqaYbqcraYaYaYaYaYbnbdbBbcbcbcbdcsaYaYaYaYaYaYbqbraTbRakaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabctcucacvcwcxcacyadadabczchcicjckcAcacBcCcCcCcCcCcCcCcBcacaadadadadadabaaaaaaaaaaaaaaaaaaakawaSbFaUbGaVbFaWatanakaHawaIaXaYaZaMbabBbcbcbcbcbobebaaIbfaYbgaMaHawakakakaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabcacbcfcDcEcFcdcyadadabcGcHcIcHcHcJcKcLcMcMcMcMcMcMcMcLcacaadadadadadabaaaaaaaaaaaaaaaaaaakawaSbibjbGbkblaWatanakaHawaIaMaQaIawakaRakaRaRaRaRaRakawaMaQaIaMaHawakaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabcacbcccdcEcecNcucOcHcPcHcHcIcHcQcRcSabcTcTcTcTcTcTcTabcUcaaecncnadadabaaaaaaaaaaaaaaaaaaakbtaWawbucobwawbxatanakaHawcVcWakakakakbeakbebebebebeakakakakcWcXaHawakaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabctcucacvcYcxcycycZadabdadbdcddababababcCcCcCcCcCcCcCababababdddedadbabaaaaaaaaaaaaaaaaaaakawaSbFaUbGaVbFaWdfapdgdhapasandidjdkakdlakdldldldldlakdkdmdndododpanakaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabcacbcfcDcEcFcucycZadabdqcjdrdsdtducaabdvdvdvdvdvdvdvabcadsdtdudscacaabaaaaaaaaaaaaaaaaaaakawaSbibjbGbkbldwdxdydydzdAdBdAdAdCdDdEdFakdFdFdFdFdFdEawawananandfdGakaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabcacbcccdcEcecNcucZadabdHcadudIdJdKdsdLcCcCcCcCcCcCcCdLdudMdJdNcacacaabaaaaaaaaaaaaaaaaaaakbtaWawbudObwawdPawawakdQdRdSdTdUdVawdWbebebebebebebedWawawanananananakaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabctcucacvcYcxcycbdXdYdJdZeadJdJdJdJdJdJebcCcCcCcCcCecdJdJdJdJdJdJedeedJefaaaaaaaaaaaaaaaaegbhaTbFaUawaVbFehawawakeidRejdTdUekelemajajajajajajajemelawenenenenenakaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabcacbcfcDcEcFcucycZadabdHcaabcacaeoepdvcCcCcCcCcCcCcCdvepeqcacaabcacyabaaaaaaaaaaaaaaaaaaererakakakakakakakakaQakakakakakakakakakajajajajajajajakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabcacbcccdcEceescDcZadabdHcaetcacaeoeudvcCcCcCevcCcCcCdveueqcacaetcacyabaaaaaaaaaaaaaaaaaaewaNaBaBaBaBaBaBaBaBexaBaBaBaBaBaBaBaBeyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabctcucacvcYcxcycacZadabdHcaabcacaeoezdvcCcCcCcCcCcCcCdvezeqcacaabcecDabaaaaaaaaaaaaaaaaaaeAaBaBaBaBaBaBaBaBaCcaaAaBaBaBaBaBaBaBeBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabcacbcfcDcEcFeCeDeEdYdJdZeadJdJdJdJdJdJeFcCcCcCcCcCeGdJdJdJdJdJdJeHeIdJefaaaaaaaaaaaaaaaaeJeJeJeJeJeJeJeJeJeKcaeKeJeJeJeJeJeJeJeJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabcacycacaeLcjcjeMeNadabdHcadudIdJdKdsdLcCcCcCcCcCcCcCdLdudMdJdNdscycyabaaaaaaaaaaaaaaaaaaeOaBaBaBaBaBaBaBaBaFcaaNaBaBaBaBaBaBaBeyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabcacbcfcfcfcfcfcuadadabdHcadudsdtducaabdvdvdvabdvdvdvabcadsdtdudsePcyabaaaaaaaaaaaaaaaaaaeAaBaBaBaBaBaBaBaBaCcaaAaBaBaBaBaBaBaBeBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabcecucacacacacacyadadabdHcaeQeRababababeSeTeUabeSeTeUababababeReVeWcyabaaaaaaaaaaaaaaaaaaeJeJeJeJeJeJeJeJeJeKcaeKeJeJeJeJeJeJeJeJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabeXePcacacacacacyadadabdHcacacadueYeYabcacacacacacacaabeZeZfacacacacyabaaaaaaaaaaaaaaaaaaeOaBaBaBaBaBaBaBaBaFcaaNaBaBaBaBaBaBaBeyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabeWeWcacacacacacyadadabdHcacacadueYeYabfbfbfbcafbfbfbabfcfcfdcacacacyabaaaaaaaaaaaaaaaaaaeAaBaBaBaBaBaBaBaBaBexaBaBaBaBaBaBaBaBeBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabcacacacacacacacyadadabdHcacacaeQeReRababababetababababeReReVcaceeDcuabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabcacacacacacacacyadadabdHcacacacacacafeffffffcafffffffecacacacaeXeXeXabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabcacacacacacacacyadadabdHcacacacacacacacacacacacacacacacacacacaeWeWeWabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaababababababababfgabababfhabababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} From 7f9c95526dff3e7d53db57924b027877539d840c Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Fri, 22 Feb 2013 19:51:04 +1000 Subject: [PATCH 03/17] consolidated icons Signed-off-by: Cael_Aislinn --- baystation12.dme | 3 +++ .../WorkInProgress/Cael_Aislinn/Rust/core.dmi | Bin 2196 -> 0 bytes .../Cael_Aislinn/Rust/core_control.dm | 4 ++-- .../Cael_Aislinn/Rust/core_field.dm | 2 +- .../Cael_Aislinn/Rust/core_gen.dm | 3 +-- .../Cael_Aislinn/Rust/emfield.dmi | Bin 8012 -> 0 bytes .../Cael_Aislinn/Rust/fuel_assembly.dm | 2 +- .../Cael_Aislinn/Rust/fuel_assembly.dmi | Bin 251 -> 0 bytes .../Cael_Aislinn/Rust/fuel_assembly_port.dm | 14 ++++++++++---- .../Cael_Aislinn/Rust/fuel_assembly_port.dmi | Bin 1122 -> 0 bytes .../Cael_Aislinn/Rust/fuel_compressor.dm | 10 ++++++++-- .../Cael_Aislinn/Rust/fuel_compressor.dmi | Bin 312 -> 0 bytes .../Cael_Aislinn/Rust/fuel_control.dm | 3 ++- .../Cael_Aislinn/Rust/fuel_injector.dm | 3 +-- .../Cael_Aislinn/Rust/fuel_injector.dmi | Bin 3886 -> 0 bytes .../Cael_Aislinn/Rust/gyrotron.dm | 2 +- .../Cael_Aislinn/Rust/gyrotron.dmi | Bin 6121 -> 0 bytes .../Cael_Aislinn/Rust/gyrotron_controller.dm | 3 ++- .../WorkInProgress/Cael_Aislinn/Rust/rust.dmi | Bin 617 -> 41308 bytes .../Cael_Aislinn/Rust/rust_computers.dmi | Bin 1076 -> 0 bytes .../Cael_Aislinn/Rust/rust_old.dmi | Bin 0 -> 492 bytes .../Rust/virtual_particle_catcher.dm | 2 +- 22 files changed, 33 insertions(+), 18 deletions(-) delete mode 100644 code/WorkInProgress/Cael_Aislinn/Rust/core.dmi delete mode 100644 code/WorkInProgress/Cael_Aislinn/Rust/emfield.dmi delete mode 100644 code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly.dmi delete mode 100644 code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dmi delete mode 100644 code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dmi delete mode 100644 code/WorkInProgress/Cael_Aislinn/Rust/fuel_injector.dmi delete mode 100644 code/WorkInProgress/Cael_Aislinn/Rust/gyrotron.dmi delete mode 100644 code/WorkInProgress/Cael_Aislinn/Rust/rust_computers.dmi create mode 100644 code/WorkInProgress/Cael_Aislinn/Rust/rust_old.dmi diff --git a/baystation12.dme b/baystation12.dme index adb5f39af0f..b01f9d9427a 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1200,12 +1200,15 @@ #include "code\WorkInProgress\Cael_Aislinn\Jungle\jungle_turfs.dm" #include "code\WorkInProgress\Cael_Aislinn\Jungle\misc_helpers.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\areas.dm" +#include "code\WorkInProgress\Cael_Aislinn\Rust\circuits_and_design.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\core_control.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\core_field.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\core_gen.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\fuel_assembly.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\fuel_assembly_port.dm" +#include "code\WorkInProgress\Cael_Aislinn\Rust\fuel_assembly_port_construction.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\fuel_compressor.dm" +#include "code\WorkInProgress\Cael_Aislinn\Rust\fuel_compressor_construction.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\fuel_control.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\fuel_injector.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\gyrotron.dm" diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/core.dmi b/code/WorkInProgress/Cael_Aislinn/Rust/core.dmi deleted file mode 100644 index 3fa8c9a3696f27cd489e02fb495d7fb77237dc5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2196 zcmZuydpy%^8~<$%i-pmFsmQsJ@=JwLV-bFO#hjOBnnN0yCdz6?dx%sHAx}af%Hz;e z!Yijt5upQ$a!lz_4BN9Fv;E%n`MiI;f4tY{zV7e+xv%T`Uf2Eo=T7r*cUDo>Rt5k- z#nr`;BtwqOsq5rq`*c}43jh#-9!I>L+S}WAn3}1msNrxp3jus9G8k+C42&dMOu zSrC~9;)x*smjS!af}NO~Y%4^PCC$g-9g91KFT0}U^0Rt?iKU>N~OB+`cA78o9f ze;Eyii8Q7?(TPZ+5oMfoF2t0r3_O`mr!$EpGQ`S&SU2=!!;?sO8WV@dlW253JOptI z3jpBhlWG_MTI#DI?u|m3a6kcY5CVWgfJg%RVIT|uWMLYh2NFRdNk>U=C-TTV{z95{mO0nTJxZM3!|S-!P|wiixk^Rm6Sd*N)_b`064U9mKJ zRH@Z%^?CY;8PxZ$-|9TQvC|$3kByA>nLO0s4R>$?UnZ5CA9! zxjH&{pG;~Yiw}+ZZfxy2t6%NE!w2L%mW%4T_9ywT_H-BgS)5m9`p@@)&3>ZFNGVMC zK7Px}(B?cNo;_FywB@;R~+@223{VOx~X+?%eEV+~sX*^!!Amor&Frlc$q3H*0(oly;Su zJ1c4TenS=H=6;)U$t;W9->aPY3d%0i=*AukS^j5;IJJ~xlC~TD+lhz%WQqaGzgXLS zU5Lp#9`oocxs7PUqNvD7JF|Q%D=WA1`o0xm?Y)$vn4258feZI<+cyQCUz&ERUlaD` z?{1(BQAYUF@Azppb>`2b3iETrtdWELs3s*a*m$hn&4!Bmmh)h?%OyAUA&`=*;#aix|dL8ea`qDvs zoL-xhx4CEr479OJ<{t{xsEFr8Iv;uUd)8>!CJ!a*o*49mRouk3;@IXEO6}NzgHa2a zawm;4($RwD`B+|*Wm~mE<3y18(}~fDY{@{s;-!v&TJwgu!Sl$}u28dGhOV(?*N&n2 zjGGk7*vHX`EDh7LU*iUy z_GKHDwo)EOnr~GzuHa%U3gE;TGp}{~e6-zCr(E=~s_;l@U1MZdR@}h0Xotdjj$Iya zWF#g`=|fmY#QdUSQ`XMsOIkHRW2e*@!9u@pQ^*0DvI=8a;f4vHW+Y*yS?8(`jyQIy zAZg|$uyIbOo&CzErI`HZJz&#_U;nogdw6#kAJT2>Ik6n`bl2Me#W8o_%g*=JerELz z1$`bzsne0>j80)aFU6pGIN)`lij!wHz9Bor8)&P}H7ovbYWUQTg?$fh-J(P6kiy`N zh3c5oJqd=|4#SGsMSBL1mGr@0HQrld9isO>m|bR--}F0dQ2HX6FSn^e{(S=Vs;XNe z9ph4w?^gaMSEs!GMAlXcs9`;WqFB353@g>mw(DdhF{++$#`}BH!>*#v|1PyRe`x9c zrlE!ZB&F24=co=bM?-u+#ZfC$V2bz?-f`RgtKXGga@mR`F(P4K(w1?>m;!Z+0YZeY zy*|3^FlQ+|YyV-1r>2FM6|&W)5AkZy=$nK=xX5ZaHym!v?nL~T`0cK2P4KMdCqsBahJ zI|LGIop%Hap{>t;R8;)M+5^7LGs+y>#eo3$QsX6d8@goCK#Yo$uwz}wllK;dFHWh+ zh;#l+=Dr%#`e=@2Vt1E7?JAJ^t(WxgdZTo)_S_sxELD|qHpTNb?Io(y>Jqtd30u>C z!da;HTwvR*-t-qsVjA~iC}1*q%cJfEHO8-jCQBw3k#pioX$QB}#GF3}k4riG(RPeb z?@ZRhch=p7J0~f@B2Mi|Eg}E zZXk?$*0JU=4x6q2yFE8;5xusNQ!7O&0gEDsM4&wwSsXcms;fE|I5BU%AzxLRG$OS? zEKHy{>yzhUduuI(poML){PQ674T0~*DVB=dwsWLvT(LfNEIq?0|&xrSaEbK-EUKbrfj1`|Hzmb#iyCAySk71OI#tK>z>% diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/core_control.dm b/code/WorkInProgress/Cael_Aislinn/Rust/core_control.dm index 19d8e07dd85..9cee19cea8f 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/core_control.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/core_control.dm @@ -1,7 +1,7 @@ /obj/machinery/computer/rust_core_control - name = "RUST Core Control" - icon_state = "power" + icon = 'code/WorkInProgress/Cael_Aislinn/Rust/rust.dmi' + icon_state = "core" var/list/connected_devices = list() var/id_tag = "allan remember to update this before you leave" var/scan_range = 25 diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm b/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm index 9442ced3a46..6127e8f9d7e 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm @@ -9,7 +9,7 @@ Deuterium-tritium fusion: 4.5 x 10^7 K /obj/effect/rust_em_field name = "EM Field" desc = "A coruscating, barely visible field of energy. It is shaped like a slightly flattened torus." - icon = 'code/WorkInProgress/Cael_Aislinn/Rust/emfield.dmi' + icon = 'code/WorkInProgress/Cael_Aislinn/Rust/rust.dmi' icon_state = "emfield_s1" // var/major_radius = 0 //longer radius in meters = field_strength * 0.21875, max = 8.75 diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/core_gen.dm b/code/WorkInProgress/Cael_Aislinn/Rust/core_gen.dm index 7dadb4943a6..a7cb88708f0 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/core_gen.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/core_gen.dm @@ -48,9 +48,8 @@ max volume of plasma storeable by the field = the total volume of a number of ti /obj/machinery/power/rust_core name = "RUST Tokamak core" desc = "Enormous solenoid for generating extremely high power electromagnetic fields" - icon = 'core.dmi' + icon = 'code/WorkInProgress/Cael_Aislinn/Rust/rust.dmi' icon_state = "core0" - anchored = 1 density = 1 var/obj/effect/rust_em_field/owned_field var/field_strength = 1//0.01 diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/emfield.dmi b/code/WorkInProgress/Cael_Aislinn/Rust/emfield.dmi deleted file mode 100644 index 4f53b069c64296bd351539c81c63b2b198d9c94f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8012 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 diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm index d0e23e290c2..1f881c8150e 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm @@ -1,16 +1,22 @@ + /obj/machinery/rust_fuel_assembly_port name = "Fuel Assembly Port" - icon = 'fuel_assembly_port.dmi' - icon_state = "port0" + icon = 'code/WorkInProgress/Cael_Aislinn/Rust/rust.dmi' + icon_state = "port2" density = 0 var/obj/item/weapon/fuel_assembly/cur_assembly layer = 4 var/busy = 0 anchored = 1 + var/opened = 1 //0=closed, 1=opened + var/coverlocked = 0 + var/locked = 0 + var/has_electronics = 0 // 0 - none, bit 1 - circuitboard, bit 2 - wires + /obj/machinery/rust_fuel_assembly_port/attackby(var/obj/item/I, var/mob/user) - if(istype(I,/obj/item/weapon/fuel_assembly)) + if(istype(I,/obj/item/weapon/fuel_assembly) && !opened) if(cur_assembly) user << "\red There is already a fuel rod assembly in there!" else @@ -21,7 +27,7 @@ /obj/machinery/rust_fuel_assembly_port/attack_hand(mob/user) add_fingerprint(user) - if(stat & (BROKEN|NOPOWER)) + if(stat & (BROKEN|NOPOWER) || opened) return if(!busy) diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dmi b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dmi deleted file mode 100644 index d2250e97d53b2752f34e79a1e3b4a04d03776c13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1122 zcmW+!3rrMO6dfVdjjae`t0=fDN-003%)s*7nYS~$xVs>*Z{C~5-L)S;k&o;LELNhe zy8{N%5@xBXDG0G5wAe~ggT(%56;o1_SgonrMn%!oinjhRZInKHlY7s7FE{7joO_## z3RcgZvv>|gQFF~E10)EDYgEA`ekgn}NKrvyMfu1$JUrYe`+PpRk$~SP%l_xEgSh{B z>LWlt<>!GE$TFM5LWo5xL=ZDhg|WA#*%fAO8{=$Cf1{nTD;Q#8&}zj9`(?R|-Lb^TR@ZO0t&!jmNgCH0Lo)-j!aic766!iMshVt!CO5T0IvOtos zZ7tzLacgEAb$9IUKhqomZAJ#*d81&IYN~I`0&xV-ZH_P9@dRrga9=>;a4=D2fmku{sVyYfMaxTCHXn znqe5DQ6K}7Os!F48|GLJBV@6dJRZ*`SB(+~D6IjH$L)2y&1N%%VlkmY(C7C%m5-|r z9Iov@%CRh=201JuU6DvM<^Zr_3|N3fEE1Lce!%Jg2PBb*N?f#9EN+*}>+vXx(jHJe z9v5kbu}Jm-04rjg$}k3=HwZ>Ll^CtoXk=d#004>*OQ_g}kqE62+Uz!ohykHQltL0& zA**Bc|2Na=I9AW)_ur3hB;+M0oEaMz2XM++`szf|cz*mS<=wq!D1(OdIohJ> zm{3kCNF#o#`L6FIXl|inzwBG|qxQx`exhY;P2+$SMNYt;!&h(L3L1=}R1quM`xjqvG-?7#sUGD+SO?{Al;8@CvhcE6N_)8UDm=vBD^T~nIlI!`ew-%c6 z=U45`f5#NwbEqe81Xh&gZjc6(Zsm=~X5W}>c@okXYP>KK65F#rMi>m8d|8F1(f+E+ z$<3ayO?-o1wojtCffgNIHm=!!I@Ez61?jy_cW(X5ciCN(LY z{Y!7+SV>$TyKYu}_j%Rn)2otJCLdv9jvhaC;q7h01FW5NT+aTgLFJjgm=zVZG`g!} ze`o)yvbn$g)L%6isy#o|Ir8+x_t($SkM7_9=hTIn>E7wkN&n@LjAx6R$t_T3V}aod H{w?2sU2nE( diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dm index 3b0589008c6..1dd5a77c22d 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dm @@ -1,12 +1,18 @@ var/const/max_assembly_amount = 300 /obj/machinery/rust_fuel_compressor - icon = 'fuel_compressor.dmi' - icon_state = "fuel_compressor" + icon = 'code/WorkInProgress/Cael_Aislinn/Rust/rust.dmi' + icon_state = "fuel_compressor0" name = "Fuel Compressor" var/list/new_assembly_quantities + var/compressed_matter = 100 anchored = 1 + var/opened = 1 //0=closed, 1=opened + var/coverlocked = 0 + var/locked = 0 + var/has_electronics = 0 // 0 - none, bit 1 - circuitboard, bit 2 - wires + /obj/machinery/rust_fuel_compressor/New() new_assembly_quantities = new/list spawn(0) diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dmi b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dmi deleted file mode 100644 index 75c6cde035056853f9cc9f1dec697bbfc4db6227..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 312 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 diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/gyrotron.dm b/code/WorkInProgress/Cael_Aislinn/Rust/gyrotron.dm index 83d43833775..ba12179bf60 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/gyrotron.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/gyrotron.dm @@ -3,7 +3,7 @@ /obj/item/projectile/beam/ehf_beam /obj/machinery/rust/gyrotron - icon = 'gyrotron.dmi' + icon = 'code/WorkInProgress/Cael_Aislinn/Rust/rust.dmi' icon_state = "emitter-off" name = "Gyrotron" anchored = 1 diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/gyrotron.dmi b/code/WorkInProgress/Cael_Aislinn/Rust/gyrotron.dmi deleted file mode 100644 index 919503515fdb6e901aebfda9b738696920fe9a91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6121 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
" + t += "- New fuel assembly constituents:-
" + for(var/reagent in new_assembly_quantities) + t += " [reagent] rods: [new_assembly_quantities[reagent]] \[Modify\]
" + t += "
" + t += "Close
" + + user << browse(t, "window=fuelcomp;size=500x300") + user.set_machine(src) + + //var/locked + //var/coverlocked /obj/machinery/rust_fuel_compressor/Topic(href, href_list) ..() if( href_list["close"] ) usr << browse(null, "window=fuelcomp") usr.machine = null - return - // - for(var/reagent in new_assembly_quantities) - if(href_list[reagent]) - var/new_amount = text2num(input("Enter new rod amount", "Fuel Assembly Rod Composition ([reagent])", new_assembly_quantities[reagent]) as text|null) - if(!new_amount) - usr << "\red That's not a valid number." - return - var/sum_reactants = new_amount - new_assembly_quantities[reagent] - for(var/rod in new_assembly_quantities) - sum_reactants += new_assembly_quantities[rod] - if(sum_reactants > max_assembly_amount) - usr << "\red You have entered too many rods." - else - new_assembly_quantities[reagent] = new_amount - updateDialog() - return - if( href_list["activate"] ) - var/obj/item/weapon/fuel_assembly/F = new(src) - //world << "\blue New fuel rod assembly" - for(var/reagent in new_assembly_quantities) - F.rod_quantities[reagent] = new_assembly_quantities[reagent] - //world << "\blue [reagent]: new_assembly_quantities[reagent]
" - F.loc = src.loc - F.percent_depleted = 0 - return -/obj/machinery/rust_fuel_compressor/interact(mob/user) - /*if ( (get_dist(src, user) > 1 ) || (stat & (BROKEN|NOPOWER)) ) - if (!istype(user, /mob/living/silicon)) - user.machine = null - user << browse(null, "window=fuelcomp") - return*/ - var/t = "Reactor Fuel Rod Compressor / Assembler
" - t += "Close
" - t += "Activate Fuel Synthesis
(fuel assemblies require no more than [max_assembly_amount] rods).
" - t += "
" - t += "- New fuel assembly constituents:-
" - for(var/reagent in new_assembly_quantities) - t += " [reagent] rods: [new_assembly_quantities[reagent]] \[Modify\]
" - t += "
" - t += "Close
" - user << browse(t, "window=fuelcomp;size=500x300") - user.machine = src + if( href_list["eject_matter"] ) + while(compressed_matter > 10) + new /obj/item/weapon/rcd_ammo(src.loc) + compressed_matter -= 10 + src.visible_message("\blue \icon[src] [src] ejects some compressed matter units.") + + if( href_list["activate"] ) + //world << "\blue New fuel rod assembly" + var/obj/item/weapon/fuel_assembly/F = new(src) + var/fail = 0 + var/old_matter = compressed_matter + for(var/reagent in new_assembly_quantities) + var/req_matter = F.rod_quantities[reagent] / 10 + if(req_matter <= compressed_matter) + F.rod_quantities[reagent] = new_assembly_quantities[reagent] + compressed_matter -= req_matter + else + fail = 1 + break + //world << "\blue [reagent]: new_assembly_quantities[reagent]
" + if(fail) + del(F) + compressed_matter = old_matter + src.visible_message("\red \icon[src] [src] flashes red: \'Out of matter.\'") + else + F.loc = src.loc + F.percent_depleted = 0 + + if( href_list["change_reagent"] ) + var/cur_reagent = href_list["change_reagent"] + var/avail_rods = 300 + for(var/rod in new_assembly_quantities) + avail_rods -= new_assembly_quantities[rod] + avail_rods += new_assembly_quantities[cur_reagent] + avail_rods = max(avail_rods, 0) + + var/new_amount = min(input("Enter new [cur_reagent] rod amount (max [avail_rods])", "Fuel Assembly Rod Composition ([cur_reagent])") as num, avail_rods) + new_assembly_quantities[cur_reagent] = new_amount + + updateDialog() diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor_construction.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor_construction.dm index 9f2e40d7e82..068301a59c7 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor_construction.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor_construction.dm @@ -43,7 +43,6 @@ else has_electronics = 3 opened = 1 - coverlocked = 1 locked = 0 icon_state = "port0" @@ -65,21 +64,19 @@ "\red [user.name] has removed the circuitboard from [src.name]!",\ "\blue You remove the circuitboard board.") has_electronics = 0 - new /obj/item/weapon/circuitboard/rust_fuel_compressor(loc) + new /obj/item/weapon/module/rust_fuel_compressor(loc) has_electronics &= ~1 else opened = 0 icon_state = "fuel_compressor0" user << "\blue You close the maintenance cover." - else if(!coverlocked) + else if(compressed_matter > 0) user << "\red You cannot open the cover while there is compressed matter inside." else opened = 1 user << "\blue You open the maintenance cover." icon_state = "fuel_compressor1" - else - user << "\red The cover is locked and cannot be opened." return else if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda)) // trying to unlock the interface with an ID card @@ -134,7 +131,7 @@ has_electronics &= ~2 return - else if (istype(W, /obj/item/weapon/circuitboard/rust_fuel_compressor) && opened && !(has_electronics & 1)) + else if (istype(W, /obj/item/weapon/module/rust_fuel_compressor) && opened && !(has_electronics & 1)) user << "You trying to insert the circuitboard into the frame..." playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) if(do_after(user, 10)) diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_control.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_control.dm index a69f4023e53..3c72a216a1f 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_control.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_control.dm @@ -62,14 +62,14 @@ return var/dat = "Reactor Core Fuel Control
" - dat += "Fuel depletion announcement: " + /*dat += "Fuel depletion announcement: " dat += "[announce_fueldepletion == 0 ? "Disabled" : "\[Disable\]"] " dat += "[announce_fueldepletion == 1 ? "Announcing" : "\[Announce\]"] " dat += "[announce_fueldepletion == 2 ? "Broadcasting" : "\[Broadcast\]"]
" dat += "Stage progression announcement: " dat += "[announce_stageprogression == 0 ? "Disabled" : "\[Disable\]"] " dat += "[announce_stageprogression == 1 ? "Announcing" : "\[Announce\]"] " - dat += "[announce_stageprogression == 2 ? "Broadcasting" : "\[Broadcast\]"]
" + dat += "[announce_stageprogression == 2 ? "Broadcasting" : "\[Broadcast\]"]
"*/ dat += "
" dat += "Detected devices \[Refresh list\]" From bdf1589cc2bbd19160949c5ed6119ea35356039c Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Fri, 22 Feb 2013 22:42:25 +1000 Subject: [PATCH 08/17] made rogue vending machines revert after event end, reduced chance of machines going rogue Signed-off-by: Cael_Aislinn --- code/modules/events/brand_intelligence.dm | 36 +++++++++++++++-------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/code/modules/events/brand_intelligence.dm b/code/modules/events/brand_intelligence.dm index 36aa9eb9e2e..31fe141ad10 100644 --- a/code/modules/events/brand_intelligence.dm +++ b/code/modules/events/brand_intelligence.dm @@ -4,6 +4,7 @@ oneShot = 1 var/list/obj/machinery/vending/vendingMachines = list() + var/list/obj/machinery/vending/infectedVendingMachines = list() var/obj/machinery/vending/originMachine @@ -28,20 +29,29 @@ /datum/event/brand_intelligence/tick() if(!vendingMachines.len || !originMachine || originMachine.shut_up) //if every machine is infected, or if the original vending machine is missing or has it's voice switch flipped + end() kill() return - if(IsMultiple(activeFor, 3)) - var/obj/machinery/vending/infectedMachine = pick(vendingMachines) - vendingMachines.Remove(infectedMachine) - infectedMachine.shut_up = 0 - infectedMachine.shoot_inventory = 1 + if(IsMultiple(activeFor, 5)) + if(prob(25)) + var/obj/machinery/vending/infectedMachine = pick(vendingMachines) + vendingMachines.Remove(infectedMachine) + infectedVendingMachines.Add(infectedMachine) + infectedMachine.shut_up = 0 + infectedMachine.shoot_inventory = 1 - if(IsMultiple(activeFor, 12)) - originMachine.speak(pick("Try our aggressive new marketing strategies!", \ - "You should buy products to feed your lifestyle obession!", \ - "Consume!", \ - "Your money can buy happiness!", \ - "Engage direct marketing!", \ - "Advertising is legalized lying! But don't let that put you off our great deals!", \ - "You don't want to buy anything? Yeah, well I didn't want to buy your mom either.")) \ No newline at end of file + if(IsMultiple(activeFor, 12)) + originMachine.speak(pick("Try our aggressive new marketing strategies!", \ + "You should buy products to feed your lifestyle obession!", \ + "Consume!", \ + "Your money can buy happiness!", \ + "Engage direct marketing!", \ + "Advertising is legalized lying! But don't let that put you off our great deals!", \ + "You don't want to buy anything? Yeah, well I didn't want to buy your mom either.")) + +/datum/event/brand_intelligence/end() + for(var/obj/machinery/vending/infectedMachine in infectedVendingMachines) + if(prob(90)) + infectedMachine.shut_up = 1 + infectedMachine.shoot_inventory = 0 From 39895d63014afc3eedebfbc5f64a2b03ec6363ae Mon Sep 17 00:00:00 2001 From: cib Date: Fri, 22 Feb 2013 14:18:27 +0100 Subject: [PATCH 09/17] Medical side-effects now appear on overdose. Also reduced anti-toxins pill amount, because 50 units is way too much for a single pill. --- code/WorkInProgress/Cib/MedicalSideEffects.dm | 12 +++++++++--- code/modules/reagents/reagent_containers/pill.dm | 4 ++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/code/WorkInProgress/Cib/MedicalSideEffects.dm b/code/WorkInProgress/Cib/MedicalSideEffects.dm index e9dcb51e136..9552601a89e 100644 --- a/code/WorkInProgress/Cib/MedicalSideEffects.dm +++ b/code/WorkInProgress/Cib/MedicalSideEffects.dm @@ -24,11 +24,17 @@ side_effects += M /mob/living/carbon/human/proc/handle_medical_side_effects() - if(src.reagents.has_reagent("cryoxadone")) + if(src.reagents.has_reagent("cryoxadone") || src.get_reagent_amount("bicaridine") >= 15 || src.get_reagent_amount("tricordrazine") >= 15) src.add_side_effect("Headache") - /*if(src.reagents.has_reagent("kelotane") && prob(20) || src.reagents.has_reagent("dermaline")) - src.add_side_effect("Bad Stomach")*/ + (src.get_reagent_amount("kelotane") >= 30 || src.reagents.has_reagent("dermaline") >= 15) + src.add_side_effect("Bad Stomach") + + (src.get_reagent_amount("tramadol") >= 16 || src.reagents.has_reagent("anti_toxin") >= 30) + src.add_side_effect("Cramps") + + (src.get_reagent_amount("space_drugs") >= 10) + src.add_side_effect("Itch") // One full cycle(in terms of strength) every 10 minutes var/strength_percent = sin(life_tick / 2) diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index 9ffa4baa561..0e8e6f0ace4 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -84,7 +84,7 @@ icon_state = "pill17" New() ..() - reagents.add_reagent("anti_toxin", 50) + reagents.add_reagent("anti_toxin", 25) /obj/item/weapon/reagent_containers/pill/tox name = "Toxins pill" @@ -175,4 +175,4 @@ ..() reagents.add_reagent("impedrezene", 10) reagents.add_reagent("synaptizine", 5) - reagents.add_reagent("hyperzine", 5) + reagents.add_reagent("hyperzine", 5) From 961c77e26e8c5492eebcff5c8981a0384480cc6b Mon Sep 17 00:00:00 2001 From: cib Date: Fri, 22 Feb 2013 14:28:55 +0100 Subject: [PATCH 10/17] Medical side-effects now appear on overdose. Also reduced anti-toxins pill amount, because 50 units is way too much for a single pill. --- code/WorkInProgress/Cib/MedicalSideEffects.dm | 12 +++++++++--- code/modules/reagents/reagent_containers/pill.dm | 4 ++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/code/WorkInProgress/Cib/MedicalSideEffects.dm b/code/WorkInProgress/Cib/MedicalSideEffects.dm index e9dcb51e136..721c7bf5669 100644 --- a/code/WorkInProgress/Cib/MedicalSideEffects.dm +++ b/code/WorkInProgress/Cib/MedicalSideEffects.dm @@ -24,11 +24,17 @@ side_effects += M /mob/living/carbon/human/proc/handle_medical_side_effects() - if(src.reagents.has_reagent("cryoxadone")) + if(src.reagents.has_reagent("cryoxadone") || src.reagents.get_reagent_amount("bicaridine") >= 15 || src.reagents.get_reagent_amount("tricordrazine") >= 15) src.add_side_effect("Headache") - /*if(src.reagents.has_reagent("kelotane") && prob(20) || src.reagents.has_reagent("dermaline")) - src.add_side_effect("Bad Stomach")*/ + if(src.reagents.get_reagent_amount("kelotane") >= 30 || src.reagents.get_reagent_amount("dermaline") >= 15) + src.add_side_effect("Bad Stomach") + + if(src.reagents.get_reagent_amount("tramadol") >= 16 || src.reagents.get_reagent_amount("anti_toxin") >= 30) + src.add_side_effect("Cramps") + + if(src.reagents.get_reagent_amount("space_drugs") >= 10) + src.add_side_effect("Itch") // One full cycle(in terms of strength) every 10 minutes var/strength_percent = sin(life_tick / 2) diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index 9ffa4baa561..0e8e6f0ace4 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -84,7 +84,7 @@ icon_state = "pill17" New() ..() - reagents.add_reagent("anti_toxin", 50) + reagents.add_reagent("anti_toxin", 25) /obj/item/weapon/reagent_containers/pill/tox name = "Toxins pill" @@ -175,4 +175,4 @@ ..() reagents.add_reagent("impedrezene", 10) reagents.add_reagent("synaptizine", 5) - reagents.add_reagent("hyperzine", 5) + reagents.add_reagent("hyperzine", 5) From 2c585fbcc44c24201fdd60b940fea5f9fbe100b7 Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Fri, 22 Feb 2013 23:06:14 +1000 Subject: [PATCH 11/17] moved shield files to folder, made circuitry for shielding gens/caps researchable, various tweaks and balances to the research requirements, made shield gens/capacitors orderable via cargo Signed-off-by: Cael_Aislinn --- baystation12.dme | 10 +- .../Cael_Aislinn/Rust/circuits_and_design.dm | 42 +-- .../ShieldGen/circuits_and_designs.dm | 52 +++ .../{ => ShieldGen}/energy_field.dm | 104 +++--- .../{ => ShieldGen}/external_shield_gen.dm | 72 ++-- .../{ => ShieldGen}/shield_capacitor.dm | 317 +++++++++--------- .../{ => ShieldGen}/shield_gen.dm | 0 .../{ => ShieldGen}/shielding.dmi | Bin code/datums/supplypacks.dm | 43 ++- 9 files changed, 362 insertions(+), 278 deletions(-) create mode 100644 code/WorkInProgress/Cael_Aislinn/ShieldGen/circuits_and_designs.dm rename code/WorkInProgress/Cael_Aislinn/{ => ShieldGen}/energy_field.dm (96%) rename code/WorkInProgress/Cael_Aislinn/{ => ShieldGen}/external_shield_gen.dm (96%) rename code/WorkInProgress/Cael_Aislinn/{ => ShieldGen}/shield_capacitor.dm (97%) rename code/WorkInProgress/Cael_Aislinn/{ => ShieldGen}/shield_gen.dm (100%) rename code/WorkInProgress/Cael_Aislinn/{ => ShieldGen}/shielding.dmi (100%) diff --git a/baystation12.dme b/baystation12.dme index b01f9d9427a..c6bbb28d78d 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -11,6 +11,7 @@ #define FILE_DIR "code/WorkInProgress/Cael_Aislinn" #define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Jungle" #define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Rust" +#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/ShieldGen" #define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Supermatter" #define FILE_DIR "code/WorkInProgress/Susan" #define FILE_DIR "html" @@ -1180,12 +1181,8 @@ #include "code\WorkInProgress\autopsy.dm" #include "code\WorkInProgress\buildmode.dm" #include "code\WorkInProgress\explosion_particles.dm" -#include "code\WorkInProgress\Cael_Aislinn\energy_field.dm" -#include "code\WorkInProgress\Cael_Aislinn\external_shield_gen.dm" #include "code\WorkInProgress\Cael_Aislinn\meteor_battery.dm" #include "code\WorkInProgress\Cael_Aislinn\sculpture.dm" -#include "code\WorkInProgress\Cael_Aislinn\shield_capacitor.dm" -#include "code\WorkInProgress\Cael_Aislinn\shield_gen.dm" #include "code\WorkInProgress\Cael_Aislinn\Economy\Accounts.dm" #include "code\WorkInProgress\Cael_Aislinn\Economy\Economy.dm" #include "code\WorkInProgress\Cael_Aislinn\Economy\Economy_Events.dm" @@ -1215,6 +1212,11 @@ #include "code\WorkInProgress\Cael_Aislinn\Rust\gyrotron_controller.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\radiation.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\virtual_particle_catcher.dm" +#include "code\WorkInProgress\Cael_Aislinn\ShieldGen\circuits_and_designs.dm" +#include "code\WorkInProgress\Cael_Aislinn\ShieldGen\energy_field.dm" +#include "code\WorkInProgress\Cael_Aislinn\ShieldGen\external_shield_gen.dm" +#include "code\WorkInProgress\Cael_Aislinn\ShieldGen\shield_capacitor.dm" +#include "code\WorkInProgress\Cael_Aislinn\ShieldGen\shield_gen.dm" #include "code\WorkInProgress\Cael_Aislinn\Supermatter\LaserComputer.dm" #include "code\WorkInProgress\Cael_Aislinn\Supermatter\SuperMatter.dm" #include "code\WorkInProgress\Cael_Aislinn\Supermatter\ZeroPointLaser.dm" diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/circuits_and_design.dm b/code/WorkInProgress/Cael_Aislinn/Rust/circuits_and_design.dm index f1d874a68fd..06738785d63 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/circuits_and_design.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/circuits_and_design.dm @@ -5,15 +5,15 @@ /obj/item/weapon/circuitboard/rust_core_control name = "Circuit board (RUST core controller)" build_path = "/obj/machinery/computer/rust_core_control" - origin_tech = "programming=4;engineering=5;power=6" + origin_tech = "programming=3;engineering=4" datum/design/rust_core_control name = "Circuit Design (RUST core controller)" desc = "Allows for the construction of circuit boards used to build a core control console for the RUST fusion engine." id = "rust_core_control" - req_tech = list("programming" = 4, "engineering" = 5, "power" = 6) + req_tech = list("programming" = 3, "engineering" = 4) build_type = IMPRINTER - materials = list("$glass" = 2000, "sacid" = 20, "$gold" = 2000) + materials = list("$glass" = 2000, "sacid" = 20) build_path = "/obj/item/weapon/circuitboard/rust_core_control" ////////////////////////////////////// @@ -22,30 +22,30 @@ datum/design/rust_core_control /obj/item/weapon/circuitboard/rust_fuel_control name = "Circuit board (RUST fuel controller)" build_path = "/obj/machinery/computer/rust_fuel_control" - origin_tech = "programming=4;engineering=5;power=6" + origin_tech = "programming=3;engineering=4" datum/design/rust_fuel_control name = "Circuit Design (RUST fuel controller)" desc = "Allows for the construction of circuit boards used to build a fuel injector control console for the RUST fusion engine." id = "rust_fuel_control" - req_tech = list("programming" = 4, "engineering" = 5, "power" = 6) + req_tech = list("programming" = 3, "engineering" = 4) build_type = IMPRINTER - materials = list("$glass" = 2000, "sacid" = 20, "$silver" = 2000) + materials = list("$glass" = 2000, "sacid" = 20) build_path = "/obj/item/weapon/circuitboard/rust_fuel_control" ////////////////////////////////////// // RUST Fuel Port board /obj/item/weapon/module/rust_fuel_port - name = "Circuit board (RUST fuel port)" + name = "Internal circuitry (RUST fuel port)" icon_state = "card_mod" - origin_tech = "engineering=3;power=4" + origin_tech = "engineering=4;materials=5" datum/design/rust_fuel_port - name = "Circuit Design (RUST fuel port)" + name = "Internal circuitry (RUST fuel port)" desc = "Allows for the construction of circuit boards used to build a fuel injection port for the RUST fusion engine." id = "rust_fuel_port" - req_tech = list("programming" = 4, "engineering" = 5, "magnets" = 6) + req_tech = list("engineering" = 4, "materials" = 5) build_type = IMPRINTER materials = list("$glass" = 2000, "sacid" = 20, "$uranium" = 3000) build_path = "/obj/item/weapon/module/rust_fuel_port" @@ -54,15 +54,15 @@ datum/design/rust_fuel_port // RUST Fuel Compressor board /obj/item/weapon/module/rust_fuel_compressor - name = "Circuit board (RUST fuel compressor)" + name = "Internal circuitry (RUST fuel compressor)" icon_state = "card_mod" - origin_tech = "power=4;engineering=5;plasmatech=6" + origin_tech = "materials=7;plasmatech=4" datum/design/rust_fuel_compressor name = "Circuit Design (RUST fuel compressor)" desc = "Allows for the construction of circuit boards used to build a fuel compressor of the RUST fusion engine." id = "rust_fuel_compressor" - req_tech = list("power" = 4, "engineering" = 5, "plasmatech" = 6) + req_tech = list("materials" = 7, "plasmatech" = 4) build_type = IMPRINTER materials = list("$glass" = 2000, "sacid" = 20, "$plasma" = 3000, "$diamond" = 1000) build_path = "/obj/item/weapon/module/rust_fuel_compressor" @@ -71,10 +71,10 @@ datum/design/rust_fuel_compressor // RUST Tokamak Core board /obj/item/weapon/circuitboard/rust_core - name = "Circuit Design (RUST tokamak core)" + name = "Internal circuitry (RUST tokamak core)" build_path = "/obj/machinery/power/rust_core" board_type = "machine" - origin_tech = "bluespace=3;engineering=4;plasmatech=5;magnets=6;power=7" + origin_tech = "bluespace=3;plasmatech=4;magnets=5;materials=6;powerstorage=6" frame_desc = "Requires 2 Pico Manipulators, 1 Ultra Micro-Laser, 5 Pieces of Cable, 1 Subspace Crystal and 1 Console Screen." req_components = list( "/obj/item/weapon/stock_parts/manipulator/pico" = 2, @@ -84,10 +84,10 @@ datum/design/rust_fuel_compressor "/obj/item/weapon/cable_coil" = 5) datum/design/rust_core - name = "Circuit board (RUST tokamak core)" + name = "Internal circuitry (RUST tokamak core)" desc = "The circuit board that for a RUST-pattern tokamak fusion core." id = "pacman" - req_tech = list(bluespace = 3, engineering = 4, plasmatech = 5, magnets = 6, power = 7) + req_tech = list(bluespace = 3, plasmatech = 4, magnets = 5, materials = 6, powerstorage = 6) build_type = IMPRINTER reliability_base = 79 materials = list("$glass" = 2000, "sacid" = 20, "$plasma" = 3000, "$diamond" = 2000) @@ -97,10 +97,10 @@ datum/design/rust_core // RUST Fuel Injector board /obj/item/weapon/circuitboard/rust_injector - name = "Circuit Design (RUST fuel injector)" + name = "Internal circuitry (RUST fuel injector)" build_path = "/obj/machinery/power/rust_fuel_injector" board_type = "machine" - origin_tech = "power=3;engineering=4;plasmatech=5;magnets=6;materials=7" + origin_tech = "powerstorage=3;engineering=4;plasmatech=4;materials=6" frame_desc = "Requires 2 Pico Manipulators, 1 Phasic Scanning Module, 1 Super Matter Bin, 1 Console Screen and 5 Pieces of Cable." req_components = list( "/obj/item/weapon/stock_parts/manipulator/pico" = 2, @@ -110,10 +110,10 @@ datum/design/rust_core "/obj/item/weapon/cable_coil" = 5) datum/design/rust_injector - name = "Circuit board (RUST tokamak core)" + name = "Internal circuitry (RUST tokamak core)" desc = "The circuit board that for a RUST-pattern particle accelerator." id = "pacman" - req_tech = list(power = 3, engineering = 4, plasmatech = 5, magnets = 6, materials = 7) + req_tech = list(powerstorage = 3, engineering = 4, plasmatech = 4, materials = 6) build_type = IMPRINTER reliability_base = 79 materials = list("$glass" = 2000, "sacid" = 20, "$plasma" = 3000, "$uranium" = 2000) diff --git a/code/WorkInProgress/Cael_Aislinn/ShieldGen/circuits_and_designs.dm b/code/WorkInProgress/Cael_Aislinn/ShieldGen/circuits_and_designs.dm new file mode 100644 index 00000000000..39ec7ac2d41 --- /dev/null +++ b/code/WorkInProgress/Cael_Aislinn/ShieldGen/circuits_and_designs.dm @@ -0,0 +1,52 @@ + +//////////////////////////////////////// +// Shield Generator + +/obj/item/weapon/circuitboard/shield_gen + name = "Circuit board (Experimental shield generator)" + board_type = "machine" + build_path = "/obj/machinery/shield_gen/external" + origin_tech = "bluespace=4;plasmatech=3" + frame_desc = "Requires 2 Pico Manipulators, 1 Subspace Transmitter, 5 Pieces of cable, 1 Subspace Crystal, 1 Subspace Amplifier and 1 Console Screen." + req_components = list( + "/obj/item/weapon/stock_parts/manipulator/pico" = 2, + "/obj/item/weapon/stock_parts/subspace/transmitter" = 1, + "/obj/item/weapon/stock_parts/subspace/crystal" = 1, + "/obj/item/weapon/stock_parts/subspace/amplifier" = 1, + "/obj/item/weapon/stock_parts/console_screen" = 1, + "/obj/item/weapon/cable_coil" = 5) + +datum/design/shield_gen + name = "Circuit Design (Experimental hull shield generator)" + desc = "Allows for the construction of circuit boards used to build an experimental hull shield generator." + id = "shield_gen" + req_tech = list("bluespace" = 4, "plasmatech" = 3) + build_type = IMPRINTER + materials = list("$glass" = 2000, "sacid" = 20, "$plasma" = 10000, "$diamond" = 5000, "$gold" = 10000) + build_path = "/obj/machinery/shield_gen/external" + +//////////////////////////////////////// +// Shield Capacitor + +/obj/item/weapon/circuitboard/shield_cap + name = "Circuit board (Experimental shield capacitor)" + board_type = "machine" + build_path = "/obj/machinery/shield_capacitor" + origin_tech = "magnets=3;powerstorage=4" + frame_desc = "Requires 2 Pico Manipulators, 1 Subspace Filter, 5 Pieces of cable, 1 Subspace Treatment disk, 1 Subspace Analyzer and 1 Console Screen." + req_components = list( + "/obj/item/weapon/stock_parts/manipulator/pico" = 2, + "/obj/item/weapon/stock_parts/subspace/filter" = 1, + "/obj/item/weapon/stock_parts/subspace/treatment" = 1, + "/obj/item/weapon/stock_parts/subspace/analyzer" = 1, + "/obj/item/weapon/stock_parts/console_screen" = 1, + "/obj/item/weapon/cable_coil" = 5) + +datum/design/shield_cap + name = "Circuit Design (Experimental shield capacitor)" + desc = "Allows for the construction of circuit boards used to build an experimental shielding capacitor." + id = "shield_cap" + req_tech = list("magnets" = 3, "powerstorage" = 4) + build_type = IMPRINTER + materials = list("$glass" = 2000, "sacid" = 20, "$plasma" = 10000, "$diamond" = 5000, "$silver" = 10000) + build_path = "/obj/machinery/shield_gen/external" diff --git a/code/WorkInProgress/Cael_Aislinn/energy_field.dm b/code/WorkInProgress/Cael_Aislinn/ShieldGen/energy_field.dm similarity index 96% rename from code/WorkInProgress/Cael_Aislinn/energy_field.dm rename to code/WorkInProgress/Cael_Aislinn/ShieldGen/energy_field.dm index 4488fc3af03..dee4c063fbc 100644 --- a/code/WorkInProgress/Cael_Aislinn/energy_field.dm +++ b/code/WorkInProgress/Cael_Aislinn/ShieldGen/energy_field.dm @@ -1,52 +1,52 @@ - -//---------- actual energy field - -/obj/effect/energy_field - name = "energy field" - desc = "Impenetrable field of energy, capable of blocking anything as long as it's active." - icon = 'shielding.dmi' - icon_state = "shieldsparkles" - anchored = 1 - layer = 2.1 - density = 0 - invisibility = 2 - var/strength = 0 - var/obj/machinery/shield_gen/parent - var/stress = 0 - -/obj/effect/energy_field/ex_act(var/severity) - Stress(0.5 + severity) - -/obj/effect/energy_field/bullet_act(var/obj/item/projectile/Proj) - Stress(1 + 1 * (Proj.damage / 100)) - - -/obj/effect/energy_field/meteorhit(obj/effect/meteor/M as obj) - if(M) - walk(M,0) - -/obj/effect/energy_field/proc/Stress(var/severity) - strength -= severity - stress += severity - - //if we take too much damage, drop out - the generator will bring us back up if we have enough power - if(strength < 1) - invisibility = 2 - density = 0 - -/obj/effect/energy_field/proc/Strengthen(var/severity) - strength += severity - - //if we take too much damage, drop out - the generator will bring us back up if we have enough power - if(strength > 1) - invisibility = 0 - density = 1 - -/obj/effect/energy_field/CanPass(atom/movable/mover, turf/target, height=1.5, air_group = 0) - //Purpose: Determines if the object (or airflow) can pass this atom. - //Called by: Movement, airflow. - //Inputs: The moving atom (optional), target turf, "height" and air group - //Outputs: Boolean if can pass. - - //return (!density || !height || air_group) - return density + +//---------- actual energy field + +/obj/effect/energy_field + name = "energy field" + desc = "Impenetrable field of energy, capable of blocking anything as long as it's active." + icon = 'shielding.dmi' + icon_state = "shieldsparkles" + anchored = 1 + layer = 2.1 + density = 0 + invisibility = 2 + var/strength = 0 + var/obj/machinery/shield_gen/parent + var/stress = 0 + +/obj/effect/energy_field/ex_act(var/severity) + Stress(0.5 + severity) + +/obj/effect/energy_field/bullet_act(var/obj/item/projectile/Proj) + Stress(1 + 1 * (Proj.damage / 100)) + + +/obj/effect/energy_field/meteorhit(obj/effect/meteor/M as obj) + if(M) + walk(M,0) + +/obj/effect/energy_field/proc/Stress(var/severity) + strength -= severity + stress += severity + + //if we take too much damage, drop out - the generator will bring us back up if we have enough power + if(strength < 1) + invisibility = 2 + density = 0 + +/obj/effect/energy_field/proc/Strengthen(var/severity) + strength += severity + + //if we take too much damage, drop out - the generator will bring us back up if we have enough power + if(strength > 1) + invisibility = 0 + density = 1 + +/obj/effect/energy_field/CanPass(atom/movable/mover, turf/target, height=1.5, air_group = 0) + //Purpose: Determines if the object (or airflow) can pass this atom. + //Called by: Movement, airflow. + //Inputs: The moving atom (optional), target turf, "height" and air group + //Outputs: Boolean if can pass. + + //return (!density || !height || air_group) + return density diff --git a/code/WorkInProgress/Cael_Aislinn/external_shield_gen.dm b/code/WorkInProgress/Cael_Aislinn/ShieldGen/external_shield_gen.dm similarity index 96% rename from code/WorkInProgress/Cael_Aislinn/external_shield_gen.dm rename to code/WorkInProgress/Cael_Aislinn/ShieldGen/external_shield_gen.dm index 1b3b7bf8506..08352989eb2 100644 --- a/code/WorkInProgress/Cael_Aislinn/external_shield_gen.dm +++ b/code/WorkInProgress/Cael_Aislinn/ShieldGen/external_shield_gen.dm @@ -1,36 +1,36 @@ - -//---------- external shield generator -//generates an energy field that loops around any built up area in space (is useless inside) halts movement and airflow, is blocked by walls, windows, airlocks etc - -/obj/machinery/shield_gen/external/New() - ..() - -/obj/machinery/shield_gen/external/get_shielded_turfs() - var - list - open = list(get_turf(src)) - closed = list() - - while(open.len) - for(var/turf/T in open) - for(var/turf/O in orange(1, T)) - if(get_dist(O,src) > field_radius) - continue - var/add_this_turf = 0 - if(istype(O,/turf/space)) - for(var/turf/simulated/G in orange(1, O)) - add_this_turf = 1 - break - for(var/obj/structure/S in orange(1, O)) - add_this_turf = 1 - break - for(var/obj/structure/S in O) - add_this_turf = 0 - break - - if(add_this_turf && !(O in open) && !(O in closed)) - open += O - open -= T - closed += T - - return closed + +//---------- external shield generator +//generates an energy field that loops around any built up area in space (is useless inside) halts movement and airflow, is blocked by walls, windows, airlocks etc + +/obj/machinery/shield_gen/external/New() + ..() + +/obj/machinery/shield_gen/external/get_shielded_turfs() + var + list + open = list(get_turf(src)) + closed = list() + + while(open.len) + for(var/turf/T in open) + for(var/turf/O in orange(1, T)) + if(get_dist(O,src) > field_radius) + continue + var/add_this_turf = 0 + if(istype(O,/turf/space)) + for(var/turf/simulated/G in orange(1, O)) + add_this_turf = 1 + break + for(var/obj/structure/S in orange(1, O)) + add_this_turf = 1 + break + for(var/obj/structure/S in O) + add_this_turf = 0 + break + + if(add_this_turf && !(O in open) && !(O in closed)) + open += O + open -= T + closed += T + + return closed diff --git a/code/WorkInProgress/Cael_Aislinn/shield_capacitor.dm b/code/WorkInProgress/Cael_Aislinn/ShieldGen/shield_capacitor.dm similarity index 97% rename from code/WorkInProgress/Cael_Aislinn/shield_capacitor.dm rename to code/WorkInProgress/Cael_Aislinn/ShieldGen/shield_capacitor.dm index bd7ccfd7737..cf78443b410 100644 --- a/code/WorkInProgress/Cael_Aislinn/shield_capacitor.dm +++ b/code/WorkInProgress/Cael_Aislinn/ShieldGen/shield_capacitor.dm @@ -1,158 +1,159 @@ - -//---------- shield capacitor -//pulls energy out of a power net and charges an adjacent generator - -/obj/machinery/shield_capacitor - name = "shield capacitor" - desc = "Machine that charges a shield generator." - icon = 'shielding.dmi' - icon_state = "capacitor" - var/active = 1 - density = 1 - anchored = 1 - var/obj/machinery/shield_gen/target_generator - var/stored_charge = 0 - var/time_since_fail = 100 - var/max_charge = 1000000 - var/max_charge_rate = 100000 - var/min_charge_rate = 0 - var/locked = 0 - // - use_power = 1 //0 use nothing - //1 use idle power - //2 use active power - idle_power_usage = 10 - active_power_usage = 100 - var/charge_rate = 100 - -/obj/machinery/shield_capacitor/New() - spawn(10) - for(var/obj/machinery/shield_gen/possible_gen in range(1, src)) - if(get_dir(src, possible_gen) == src.dir) - target_generator = possible_gen - possible_gen.owned_capacitor = src - break - ..() - -/obj/machinery/shield_capacitor/verb/rotate() - set name = "Rotate Clockwise" - set category = "Object" - set src in oview(1) - - if (src.anchored || usr:stat) - usr << "It is fastened to the floor!" - return 0 - src.dir = turn(src.dir, 270) - target_generator = locate() in get_step(src,dir) - if(target_generator && !target_generator.owned_capacitor) - target_generator.owned_capacitor = src - return 1 - -/obj/machinery/shield_capacitor/power_change() - if(stat & BROKEN) - icon_state = "broke" - else - if( powered() ) - if (src.active) - icon_state = "capacitor" - else - icon_state = "capacitor" - stat &= ~NOPOWER - else - spawn(rand(0, 15)) - src.icon_state = "capacitor" - stat |= NOPOWER - -/obj/machinery/shield_capacitor/process() - // - if(active) - use_power = 2 - if(stored_charge + charge_rate > max_charge) - active_power_usage = max_charge - stored_charge - else - active_power_usage = charge_rate - stored_charge += active_power_usage - else - use_power = 1 - - time_since_fail++ - if(stored_charge < active_power_usage * 1.5) - time_since_fail = 0 - // - updateDialog() - -/obj/machinery/shield_capacitor/attackby(obj/item/W, mob/user) - /*if(istype(W, /obj/item/weapon/wrench)) - if(active) - user << "Turn off the field generator first." - return - - else if(state == 0) - state = 1 - playsound(src.loc, 'Ratchet.ogg', 75, 1) - user << "You secure the external reinforcing bolts to the floor." - src.anchored = 1 - return - - else if(state == 1) - state = 0 - playsound(src.loc, 'Ratchet.ogg', 75, 1) - user << "You undo the external reinforcing bolts." - src.anchored = 0 - return*/ - - if(istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda)) - if (src.allowed(user)) - src.locked = !src.locked - user << "Controls are now [src.locked ? "locked." : "unlocked."]" - else - user << "\red Access denied." - - else if(istype(W, /obj/item/weapon/wrench)) - src.anchored = !src.anchored - src.visible_message("\blue \icon[src] [src] has been [anchored ? "bolted to the floor" : "unbolted from the floor"] by [user].") - - else - src.add_fingerprint(user) - user << "\red You hit the [src.name] with your [W.name]!" - for(var/mob/M in viewers(src)) - if(M == user) continue - M.show_message("\red The [src.name] has been hit with the [W.name] by [user.name]!") - -/obj/machinery/shield_capacitor/Topic(href, href_list[]) - ..() - if( href_list["close"] ) - usr << browse(null, "window=shield_capacitor") - usr.machine = null - return - if( href_list["toggle"] ) - active = !active - if(active) - use_power = 2 - else - use_power = 1 - if( href_list["charge_rate"] ) - charge_rate += text2num(href_list["charge_rate"]) - if(charge_rate > max_charge_rate) - charge_rate = max_charge_rate - else if(charge_rate < min_charge_rate) - charge_rate = min_charge_rate - // - updateDialog() - -/obj/machinery/shield_capacitor/interact(mob/user) - if ( (get_dist(src, user) > 1 ) || (stat & (BROKEN|NOPOWER)) ) - if (!istype(user, /mob/living/silicon)) - user.machine = null - user << browse(null, "window=shield_capacitor") - return - var/t = "Shield Capacitor Control Console
" - t += "[target_generator ? "Shield generator connected." : "Unable to locate shield generator!"]
" - t += "This capacitor is: [active ? "Online" : "Offline" ] [active ? "\[Deactivate\]" : "\[Activate\]"]
" - t += "[time_since_fail > 2 ? "Charging stable." : "Warning, low charge!"]
" - t += "Capacitor charge: [stored_charge] Watts ([100 * stored_charge/max_charge]%)
" - t += "Capacitor charge rate (approx): \[min\] \[--\] \[-\][charge_rate] Watts/sec \[+\] \[++\] \[max\]
" - t += "
" - t += "Close
" - user << browse(t, "window=shield_capacitor;size=500x800") - user.machine = src + +//---------- shield capacitor +//pulls energy out of a power net and charges an adjacent generator + +/obj/machinery/shield_capacitor + name = "shield capacitor" + desc = "Machine that charges a shield generator." + icon = 'shielding.dmi' + icon_state = "capacitor" + var/active = 1 + density = 1 + anchored = 1 + var/obj/machinery/shield_gen/target_generator + var/stored_charge = 0 + var/time_since_fail = 100 + var/max_charge = 1000000 + var/max_charge_rate = 100000 + var/min_charge_rate = 0 + var/locked = 0 + // + use_power = 1 //0 use nothing + //1 use idle power + //2 use active power + idle_power_usage = 10 + active_power_usage = 100 + var/charge_rate = 100 + +/obj/machinery/shield_capacitor/New() + spawn(10) + for(var/obj/machinery/shield_gen/possible_gen in range(1, src)) + if(get_dir(src, possible_gen) == src.dir) + target_generator = possible_gen + possible_gen.owned_capacitor = src + break + ..() + +/obj/machinery/shield_capacitor/verb/rotate() + set name = "Rotate Clockwise" + set category = "Object" + set src in oview(1) + + if (src.anchored || usr:stat) + usr << "It is fastened to the floor!" + return 0 + src.dir = turn(src.dir, 270) + target_generator = locate() in get_step(src,dir) + if(target_generator && !target_generator.owned_capacitor) + target_generator.owned_capacitor = src + return 1 + +/obj/machinery/shield_capacitor/power_change() + if(stat & BROKEN) + icon_state = "broke" + else + if( powered() ) + if (src.active) + icon_state = "capacitor" + else + icon_state = "capacitor" + stat &= ~NOPOWER + else + spawn(rand(0, 15)) + src.icon_state = "capacitor" + stat |= NOPOWER + +/obj/machinery/shield_capacitor/process() + // + if(active) + use_power = 2 + if(stored_charge + charge_rate > max_charge) + active_power_usage = max_charge - stored_charge + else + active_power_usage = charge_rate + stored_charge += active_power_usage + else + use_power = 1 + + time_since_fail++ + if(stored_charge < active_power_usage * 1.5) + time_since_fail = 0 + // + updateDialog() + +/obj/machinery/shield_capacitor/attackby(obj/item/W, mob/user) + /*if(istype(W, /obj/item/weapon/wrench)) + if(active) + user << "Turn off the field generator first." + return + + else if(state == 0) + state = 1 + playsound(src.loc, 'Ratchet.ogg', 75, 1) + user << "You secure the external reinforcing bolts to the floor." + src.anchored = 1 + return + + else if(state == 1) + state = 0 + playsound(src.loc, 'Ratchet.ogg', 75, 1) + user << "You undo the external reinforcing bolts." + src.anchored = 0 + return*/ + + if(istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda)) + if (src.allowed(user)) + src.locked = !src.locked + user << "Controls are now [src.locked ? "locked." : "unlocked."]" + else + user << "\red Access denied." + + else if(istype(W, /obj/item/weapon/wrench)) + src.anchored = !src.anchored + src.visible_message("\blue \icon[src] [src] has been [anchored ? "bolted to the floor" : "unbolted from the floor"] by [user].") + + else + src.add_fingerprint(user) + user << "\red You hit the [src.name] with your [W.name]!" + for(var/mob/M in viewers(src)) + if(M == user) continue + M.show_message("\red The [src.name] has been hit with the [W.name] by [user.name]!") + +/obj/machinery/shield_capacitor/Topic(href, href_list[]) + ..() + if( href_list["close"] ) + usr << browse(null, "window=shield_capacitor") + usr.machine = null + return + if( href_list["toggle"] ) + active = !active + if(active) + use_power = 2 + else + use_power = 1 + if( href_list["charge_rate"] ) + charge_rate += text2num(href_list["charge_rate"]) + if(charge_rate > max_charge_rate) + charge_rate = max_charge_rate + else if(charge_rate < min_charge_rate) + charge_rate = min_charge_rate + // + updateDialog() + +/obj/machinery/shield_capacitor/interact(mob/user) + if ( (get_dist(src, user) > 1 ) || (stat & (BROKEN|NOPOWER)) ) + if (!istype(user, /mob/living/silicon)) + user.machine = null + user << browse(null, "window=shield_capacitor") + return + var/t = "Shield Capacitor Control Console
" + t += "[target_generator ? "Shield generator connected." : "Unable to locate shield generator!"]
" + t += "This capacitor is: [active ? "Online" : "Offline" ] [active ? "\[Deactivate\]" : "\[Activate\]"]
" + t += "[time_since_fail > 2 ? "Charging stable." : "Warning, low charge!"]
" + t += "Capacitor charge: [stored_charge] Watts ([100 * stored_charge/max_charge]%)
" + t += "Capacitor charge rate (approx): \[min\] \[--\] \[-\][charge_rate] Watts/sec \[+\] \[++\] \[max\]
" + t += "
" + t += "Close
" + + user << browse(t, "window=shield_capacitor;size=500x800") + user.machine = src diff --git a/code/WorkInProgress/Cael_Aislinn/shield_gen.dm b/code/WorkInProgress/Cael_Aislinn/ShieldGen/shield_gen.dm similarity index 100% rename from code/WorkInProgress/Cael_Aislinn/shield_gen.dm rename to code/WorkInProgress/Cael_Aislinn/ShieldGen/shield_gen.dm diff --git a/code/WorkInProgress/Cael_Aislinn/shielding.dmi b/code/WorkInProgress/Cael_Aislinn/ShieldGen/shielding.dmi similarity index 100% rename from code/WorkInProgress/Cael_Aislinn/shielding.dmi rename to code/WorkInProgress/Cael_Aislinn/ShieldGen/shielding.dmi diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index 045ab1d689a..904866d07c6 100755 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -850,18 +850,47 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee containername = "Formalwear for the best occasions." group = "Operations" +/datum/supply_packs/rust_injector + contains = list(/obj/machinery/power/rust_fuel_injector) + name = "RUST fuel injector" + cost = 50 + containertype = /obj/structure/largecrate + containername = "RUST injector crate" + group = "Engineering" + access = access_engine + +/datum/supply_packs/rust_compressor + contains = list(/obj/item/weapon/module/rust_fuel_compressor) + name = "RUST fuel compressor circuitry" + cost = 60 + containertype = /obj/structure/closet/crate/secure + containername = "RUST fuel compressor circuitry" + group = "Engineering" + access = access_engine + /datum/supply_packs/rust_core contains = list(/obj/machinery/power/rust_core) name = "RUST Tokamak Core" cost = 75 containertype = /obj/structure/largecrate - containername = "RUST tokamak crate." + containername = "RUST tokamak crate" group = "Engineering" + access = access_engine -/datum/supply_packs/rust_injector - contains = list(/obj/machinery/power/rust_fuel_injector) - name = "RUST fuel injector" - cost = 40 - containertype = /obj/structure/largecrate - containername = "RUST injector crate." +/datum/supply_packs/shield_gen + contains = list(/obj/item/weapon/circuitboard/shield_gen) + name = "Experimental shield generator circuitry" + cost = 50 + containertype = /obj/structure/closet/crate/secure + containername = "Experimental shield generator" group = "Engineering" + access = access_ce + +/datum/supply_packs/shield_cap + contains = list(/obj/item/weapon/circuitboard/shield_cap) + name = "Experimental shield capacitor circuitry" + cost = 50 + containertype = /obj/structure/closet/crate/secure + containername = "Experimental shield capacitor" + group = "Engineering" + access = access_ce From 3144de6a47eba827942cc3f637bd1d2b91236001 Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Sat, 23 Feb 2013 00:08:29 +1000 Subject: [PATCH 12/17] changelog update Signed-off-by: Cael_Aislinn --- html/changelog.html | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/html/changelog.html b/html/changelog.html index 7a6ebff0b4c..1f5ab8579eb 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -58,6 +58,16 @@ Stuff which is in development and not yet visible to players or just code relate should be listed in the changelog upon commit though. Thanks. --> +
+

February 23rd 2013

+

Cael Aislinn updated:

+
    +
  • RUST machinery components should now be researchable (with high requirements) and orderable through QM (with high cost).
  • +
  • Shield machinery should now be researchable (with high requirements) and orderable through QM (with high cost). This one is reportedly buggy.
  • +
  • Rogue vending machines should revert back to normal at the end of the event.
  • +
+
+

20/02/2013

Chinsky updated:

From bfd02c3474b787b0985c441fb97196f96df2a1a7 Mon Sep 17 00:00:00 2001 From: cib Date: Fri, 22 Feb 2013 15:08:42 +0100 Subject: [PATCH 13/17] Chemical rebalance across the board. - Halved metabolism in general. This is not a huge change, and will probably work out fine. - Nerfed metabolism for individual chemicals, for example spaceacillin, greatly. - Made mildly toxic chemicals, like pure carbon, cause medical side-effects. --- code/modules/reagents/Chemistry-Reagents.dm | 74 ++++++++++++++++++--- code/setup.dm | 2 +- 2 files changed, 65 insertions(+), 11 deletions(-) diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index 3e014582c94..f327da094f4 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -19,6 +19,8 @@ datum var/list/data = null var/volume = 0 var/nutriment_factor = 0 + var/custom_metabolism = REAGENTS_METABOLISM + var/mildly_toxic = 0 //var/list/viruses = list() var/color = "#000000" // rgb: 0, 0, 0 (does not support alpha channels - yet!) @@ -68,7 +70,14 @@ datum on_mob_life(var/mob/living/M as mob) if(!istype(M, /mob/living)) return //Noticed runtime errors from pacid trying to damage ghosts, this should fix. --NEO - holder.remove_reagent(src.id, REAGENTS_METABOLISM) //By default it slowly disappears. + // Certain elements in too large amounts cause side-effects + + if(mildly_toxic && istype(M, /mob/living/carbon/human/)) + var/mob/living/carbon/human/H = M + if(H.side_effects.len == 0) + M.add_side_effect(pick("Headache", "Bad Stomach", "Itch")) + + holder.remove_reagent(src.id, custom_metabolism) //By default it slowly disappears. return on_move(var/mob/M) @@ -199,6 +208,7 @@ datum description = "A ubiquitous chemical substance that is composed of hydrogen and oxygen." reagent_state = LIQUID color = "#0064C8" // rgb: 0, 100, 200 + custom_metabolism = 0.01 reaction_turf(var/turf/simulated/T, var/volume) if (!istype(T)) return @@ -309,24 +319,28 @@ datum description = "A Toxic chemical." reagent_state = LIQUID color = "#CF3600" // rgb: 207, 54, 0 + custom_metabolism = 0.01 on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom - M.adjustToxLoss(1.5*REM) + // Toxins are really weak, but without being treated, last very long. + M.adjustToxLoss(0.2) ..() return cyanide + // Fast and lethal name = "Cyanide" id = "cyanide" description = "A highly toxic chemical." reagent_state = LIQUID color = "#CF3600" // rgb: 207, 54, 0 + custom_metabolism = 0.4 on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom - M.adjustToxLoss(3*REM) - M.adjustOxyLoss(3*REM) + M.adjustToxLoss(4) + M.adjustOxyLoss(4) M.sleeping += 1 ..() return @@ -405,6 +419,8 @@ datum reagent_state = LIQUID color = "#E895CC" // rgb: 232, 149, 204 + custom_metabolism = 0.1 + on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom if(!data) data = 1 @@ -540,12 +556,17 @@ datum reagent_state = GAS color = "#808080" // rgb: 128, 128, 128 + custom_metabolism = 0.01 + copper name = "Copper" id = "copper" description = "A highly ductile metal." color = "#6E3B08" // rgb: 110, 59, 8 + mildly_toxic = 1 + custom_metabolism = 0.01 + nitrogen name = "Nitrogen" id = "nitrogen" @@ -553,6 +574,9 @@ datum reagent_state = GAS color = "#808080" // rgb: 128, 128, 128 + mildly_toxic = 1 + custom_metabolism = 0.01 + hydrogen name = "Hydrogen" id = "hydrogen" @@ -560,6 +584,9 @@ datum reagent_state = GAS color = "#808080" // rgb: 128, 128, 128 + mildly_toxic = 1 + custom_metabolism = 0.01 + potassium name = "Potassium" id = "potassium" @@ -567,6 +594,10 @@ datum reagent_state = SOLID color = "#A0A0A0" // rgb: 160, 160, 160 + + mildly_toxic = 1 + custom_metabolism = 0.01 + mercury name = "Mercury" id = "mercury" @@ -589,6 +620,9 @@ datum reagent_state = SOLID color = "#BF8C00" // rgb: 191, 140, 0 + mildly_toxic = 1 + custom_metabolism = 0.01 + carbon name = "Carbon" id = "carbon" @@ -596,6 +630,9 @@ datum reagent_state = SOLID color = "#1C1300" // rgb: 30, 20, 0 + mildly_toxic = 1 + custom_metabolism = 0.01 + reaction_turf(var/turf/T, var/volume) src = null if(!istype(T, /turf/space)) @@ -634,6 +671,9 @@ datum reagent_state = SOLID color = "#808080" // rgb: 128, 128, 128 + mildly_toxic = 1 + custom_metabolism = 0.01 + phosphorus name = "Phosphorus" id = "phosphorus" @@ -641,6 +681,9 @@ datum reagent_state = SOLID color = "#832828" // rgb: 131, 40, 40 + mildly_toxic = 1 + custom_metabolism = 0.01 + lithium name = "Lithium" id = "lithium" @@ -826,6 +869,9 @@ datum reagent_state = LIQUID color = "#808080" // rgb: 128, 128, 128 + mildly_toxic = 1 + custom_metabolism = 0.01 + nitroglycerin name = "Nitroglycerin" id = "nitroglycerin" @@ -833,6 +879,9 @@ datum reagent_state = LIQUID color = "#808080" // rgb: 128, 128, 128 + mildly_toxic = 1 + custom_metabolism = 0.01 + radium name = "Radium" id = "radium" @@ -1403,6 +1452,7 @@ datum description = "Synaptizine is used to treat various diseases." reagent_state = LIQUID color = "#C8A5DC" // rgb: 200, 165, 220 + custom_metabolism = 0.01 on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom @@ -1440,6 +1490,7 @@ datum description = "Hyronalin is a medicinal drug used to counter the effect of radiation poisoning." reagent_state = LIQUID color = "#C8A5DC" // rgb: 200, 165, 220 + custom_metabolism = 0.05 on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom @@ -1453,6 +1504,7 @@ datum description = "Arithrazine is an unstable medication used for the most extreme cases of radiation poisoning." reagent_state = LIQUID color = "#C8A5DC" // rgb: 200, 165, 220 + custom_metabolism = 0.05 on_mob_life(var/mob/living/M as mob) if(M.stat == 2.0) @@ -1471,6 +1523,7 @@ datum description = "Alkysine is a drug used to lessen the damage to neurological tissue after a catastrophic injury. Can heal brain tissue." reagent_state = LIQUID color = "#C8A5DC" // rgb: 200, 165, 220 + custom_metabolism = 0.05 on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom @@ -1516,11 +1569,11 @@ datum description = "Hyperzine is a highly effective, long lasting, muscle stimulant." reagent_state = LIQUID color = "#C8A5DC" // rgb: 200, 165, 220 + custom_metabolism = 0.03 on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom if(prob(5)) M.emote(pick("twitch","blink_r","shiver")) - holder.remove_reagent(src.id, 0.5 * REAGENTS_METABOLISM) ..() return @@ -1535,9 +1588,9 @@ datum if(!M) M = holder.my_atom if(M.bodytemperature < 170) M.adjustCloneLoss(-1) - M.adjustOxyLoss(-3) - M.heal_organ_damage(3,3) - M.adjustToxLoss(-3) + M.adjustOxyLoss(-1) + M.heal_organ_damage(1,1) + M.adjustToxLoss(-1) ..() return @@ -1564,9 +1617,9 @@ datum description = "An all-purpose antiviral agent." reagent_state = LIQUID color = "#C8A5DC" // rgb: 200, 165, 220 + custom_metabolism = 0.01 - on_mob_life(var/mob/living/M as mob)//no more mr. panacea - holder.remove_reagent(src.id, 0.2) + on_mob_life(var/mob/living/M as mob) ..() return @@ -1612,6 +1665,7 @@ datum description = "A powerful hallucinogen. Not a thing to be messed with." reagent_state = LIQUID color = "#B31008" // rgb: 139, 166, 233 + custom_metabolism = 0.05 on_mob_life(var/mob/living/M) if(!M) M = holder.my_atom diff --git a/code/setup.dm b/code/setup.dm index 33202de26f0..bb9989c098e 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -74,7 +74,7 @@ #define HUNGER_FACTOR 0.05 // How many units of reagent are consumed per tick, by default. -#define REAGENTS_METABOLISM 0.4 +#define REAGENTS_METABOLISM 0.2 // By defining the effect multiplier this way, it'll exactly adjust // all effects according to how they originally were with the 0.4 metabolism From 389be7d4cfba7c9b53a5691c9649a033733e8ef0 Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Sat, 23 Feb 2013 00:45:48 +1000 Subject: [PATCH 14/17] NPC mice periodically fall asleep Signed-off-by: Cael_Aislinn --- .../living/simple_animal/friendly/mouse.dm | 7 +++++++ icons/mob/animal.dmi | Bin 189514 -> 185597 bytes 2 files changed, 7 insertions(+) diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index 379ab571347..010f9e6d65d 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -34,6 +34,13 @@ for(var/mob/M in view()) M << 'sound/effects/mousesqueek.ogg' + if(prob(0.5) && stat == CONSCIOUS) + stat = UNCONSCIOUS + icon_state = "mouse_[color]_sleep" + if(stat == UNCONSCIOUS && prob(1)) + stat = CONSCIOUS + icon_state = "mouse_[color]" + /mob/living/simple_animal/mouse/New() ..() if(!color) diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi index 81cf8d4de2bd6a18990eb259c56066afc15c5c30..88fb1e19fcfe5e1a9565d630e9ae858a6fcb1ee9 100644 GIT binary patch delta 118671 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 delta 122619 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 z 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 F{{?L8R0{wA From 43e58aacbb8ec814a830e3643e266f42af45acd2 Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Sat, 23 Feb 2013 00:45:57 +1000 Subject: [PATCH 15/17] new unathi hair styles Signed-off-by: Cael_Aislinn --- .../mob/new_player/sprite_accessories.dm | 30 +++++++++++++++--- html/changelog.html | 1 + icons/mob/human_face.dmi | Bin 36926 -> 37749 bytes 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm index 38d1d9cdf90..f3d5e084230 100644 --- a/code/modules/mob/new_player/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories.dm @@ -382,11 +382,30 @@ */ /datum/sprite_accessory/hair - tentacle_m - name = "Skrell Male Tentacles" - icon_state = "skrell_hair_m" - species_allowed = list("Skrell") - gender = MALE + spines_long + name = "Long Unathi Spines" + icon_state = "soghun_longspines" + species_allowed = list("Unathi") + + spines_short + name = "Short Unathi Spines" + icon_state = "soghun_shortspines" + species_allowed = list("Unathi") + + frills_long + name = "Long Unathi Frills" + icon_state = "soghun_longfrills" + species_allowed = list("Unathi") + + frills_short + name = "Short Unathi Frills" + icon_state = "soghun_shortfrill" + species_allowed = list("Unathi") + + horns + name = "Unathi Horns" + icon_state = "soghun_horns" + species_allowed = list("Unathi") tentacle_f name = "Skrell Female Tentacles" @@ -499,6 +518,7 @@ name = "Smallsatche" icon_state = "facial_smallstache" species_allowed = list("Tajaran") + //skin styles - WIP //going to have to re-integrate this with surgery //let the icon_state hold an icon preview for now diff --git a/html/changelog.html b/html/changelog.html index 1f5ab8579eb..9559cb76328 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -65,6 +65,7 @@ should be listed in the changelog upon commit though. Thanks. -->

  • RUST machinery components should now be researchable (with high requirements) and orderable through QM (with high cost).
  • Shield machinery should now be researchable (with high requirements) and orderable through QM (with high cost). This one is reportedly buggy.
  • Rogue vending machines should revert back to normal at the end of the event.
  • +
  • New Unathi hair styles.
  • diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi index ce3cdb97681659fd0e423131276cab2fc65bbc0b..4c897039264e04a16989a41edb1db4ba6b91971d 100644 GIT binary patch literal 37749 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

    JM^DUUcL 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

    K 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 literal 36926 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 From 59c96782d04b8144af9f7f6db268c2fa69bbfd92 Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Sat, 23 Feb 2013 01:18:55 +1000 Subject: [PATCH 16/17] fixed up some derps with admin ooc colour Signed-off-by: Cael_Aislinn --- code/game/verbs/ooc.dm | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/code/game/verbs/ooc.dm b/code/game/verbs/ooc.dm index 1b79efe6c15..8ccbba84845 100644 --- a/code/game/verbs/ooc.dm +++ b/code/game/verbs/ooc.dm @@ -41,22 +41,25 @@ var/global/normal_ooc_colour = "#002eb8" log_ooc("[mob.name]/[key] : [msg]") + var/display_colour = normal_ooc_colour + if(holder && !holder.fakekey) + display_colour = "#0099cc" //light blue + if(holder.rights & R_MOD) + display_colour = "#184880" //dark blue + else if(holder.rights & R_ADMIN) + if(config.allow_admin_ooccolor) + display_colour = src.prefs.ooccolor + else + display_colour = "#b82e00" //orange + for(var/client/C in clients) if(C.prefs.toggles & CHAT_OOC) var/display_name = src.key - var/display_colour = normal_ooc_colour - - if(holder) - if(holder.fakekey) - if(C.holder) - display_name = "[holder.fakekey]/([src.key])" - else - display_name = holder.fakekey - else if(config.allow_admin_ooccolor) - display_colour = src.prefs.ooccolor + if(holder.fakekey) + if(C.holder) + display_name = "[holder.fakekey]/([src.key])" else - display_colour = "#b82e00" - + display_name = holder.fakekey C << "OOC: [display_name]: [msg]" /* From 3c3d19ade876192d8489f7b1b7db1791044d14ed Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Sat, 23 Feb 2013 01:31:52 +1000 Subject: [PATCH 17/17] added missing config links, added holder rights check to hearing deadchat Signed-off-by: Cael_Aislinn --- code/controllers/configuration.dm | 4 ++-- code/modules/mob/say.dm | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index 49829fea88f..f537bbae3e6 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -63,8 +63,8 @@ var/server var/banappeals - var/wikiurl - var/forumurl + var/wikiurl = "http://baystation12.net/wiki/index.php?title=Main_Page" + var/forumurl = "http://baystation12.net/forums/" //Alert level description var/alert_desc_green = "All threats to the station have passed. Security may not have weapons visible, privacy laws are once again fully enforced." diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index 9ff0030e90b..9a8999b8dfb 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -50,7 +50,7 @@ for(var/mob/M in player_list) if(istype(M, /mob/new_player)) continue - if(M.client && M.client.holder && (M.client.prefs.toggles & CHAT_DEAD)) //admins can toggle deadchat on and off. This is a proc in admin.dm and is only give to Administrators and above + if(M.client && M.client.holder && M.client.holder.rights & R_ADMIN && (M.client.prefs.toggles & CHAT_DEAD)) //admins can toggle deadchat on and off. This is a proc in admin.dm and is only give to Administrators and above M << rendered //Admins can hear deadchat, if they choose to, no matter if they're blind/deaf or not. else if(M.stat == DEAD) M.show_message(rendered, 2) //Takes into account blindness and such.

    R3t7v%)Lg{zZP~m#nhJrhQVdarPHZ0QaslZE*zajCJTJK zGvtjT?UYi4kp0*gVPIf10%XQOb7X8lDTP-s5+&p1fe+?yz?@V!ceg~1=8A=I^fT2t zhjP`;)gl(3%GNHG{7w(G*%uiY_!QvR2&cVl+i0%V9T4G)A{MZBDSNqgJanzC3zU0x z0(BY~Ljt*ba(=4U;PkV$-kN`>EW*VBN>c1&I(?Rg)0s4y>^?b`ornECLizpxq1PG7 z1Y@iW6ns{WRi;kRzUV%t2BkCUd~zGNJ#p^YXThhtWZ2*a^MhC3NF73ffZtUUi%Zo; HF46x33+8n1 literal 617 zcmV-v0+#)WP)UZ#FJAxv00DGTPE!Ct z=GbNc0066cR9JLGWpiV4X>fFDZ*Bkpc$|&U!485j3ydG#H0WK0X9iQK~z|U?Uk`@!!QsDXMGXUPA4pLzM-s;$N4ds8V0EiZfPENz0qMLpE_z`G2 z;L~XYoX@ub`jx(%Br8b|4PR?23hx2eY5)NL{{SZcKtMpZ|4iQhBf!AGX&+3V00001bW%=J06^y0W&i*Hi+WU8 zbVOxyV{&P5bZKvH004NLQ&wAzGbOXA7|1o`;!G<_%uNNcO@N}QIf<1ZrVbb) zbfuN1=3v)ljL>ChpaVt-ZN0008_Nkl z;O3#h?#GE;AApx{8x#)U0G#}n2q=qEZDp}94hm*~fiH?*1uwrZjtYVPW_&{-2soWi zmH>obh;Io%{f`je5`b_xpU<{{Rv!HE2^e^f0M!3@_+tw|{oMkv!a;x_GT`RN47mAG zfWR3jJB@e^h|AUD@fvXPcn!GwoAHCIw2HuoPm_wD4_~P&eje^s?o0Jfb^)0AOx*6b zyM&vQgdNymSKjq89Uuy?aI3D@>ZbO3UNvCn^OmfY!WMa6cRTRNaAD{DPYaMAb)n$q zy^l*m$V(f5nb(lH%(C%gcL*9t8HbnZ`%xbea&<(=D7=7AR)X{)8G#pCj)_)bE&2IO z)ZTSkx8EHzuN%}tPF}SUfRTp=0Aan_gE9EPnJS|2nY}&+MBx*@0lqa7jrZR$WAUr} z{r^!PXbe0aj|K-Y`RDVwi1+$}PX#O$I1antt2e+9P&TF7O5Xr0c~n180^lNO3NZ1v z3C?gSZ)8BaGoa?s2at_D!xcQLA1uj$AZ9q9pDsU`e=9)X43ym*G{C_(*x#G{>-7rq z@Atd$)DKVwP<_ChfEF=M3BII4c}O|Dtqe@RJNo z{QFvdrU0CRsei{cp2Fep#|ntKhC2WMQ3jBIr~EzD{{sOUoBe;l909EUpA^9D|49MN z{(s*13OxRw9G~0&(*pdD6Px&dQh@)VeMA3Gf!qI+<1_nza(rh0Pl4V4lLEN?|11HV u{+|}W?Egstfm3-4o`k)A25iEAIsO44)B}-}!P1%l0000)|0H4bH2?qr0d!JMQvg8b*k%9#0G@hO zSad{Xb7OL8aCB*JZU6vyoKseCa&`CgQ*iP1yRS7+;WIRDw&jvVyCh3phvs zdD2ustDMYD0002bNkl2AR<3~I|DQgf!K%u#8xCA$|4{Lf(V5X!xjt)il1OZz2+x?b{@+g0;r`g z3Ye%TxWw4wInkAb@x$d7x%Ne&&4jKbU?%jN3*wffL$iOYp-s)5<$|Spy(7Vq;MNMW zg=W1#w}wE75l$l55Fim;2;d6``=tJD{tE%ZGCgrc0r2jb9z|b!dMpc1&xbG!8w)Rw ipe6CpIe#e}ROb!ds!2Uw=l_ZT0000 Date: Fri, 22 Feb 2013 20:00:05 +1000 Subject: [PATCH 04/17] made circuits to construct RUST computers researchable, made circuits to construct wall mounted RUST machinery researchable, made other RUST machinery orderable via QM Signed-off-by: Cael_Aislinn --- .../Cael_Aislinn/Rust/circuits_and_design.dm | 56 ++++++ .../Rust/fuel_assembly_port_construction.dm | 163 ++++++++++++++++++ .../Rust/fuel_compressor_construction.dm | 163 ++++++++++++++++++ code/datums/supplypacks.dm | 16 ++ .../items/stacks/sheets/sheet_types.dm | 2 + code/game/turfs/simulated/walls.dm | 10 ++ 6 files changed, 410 insertions(+) create mode 100644 code/WorkInProgress/Cael_Aislinn/Rust/circuits_and_design.dm create mode 100644 code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port_construction.dm create mode 100644 code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor_construction.dm diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/circuits_and_design.dm b/code/WorkInProgress/Cael_Aislinn/Rust/circuits_and_design.dm new file mode 100644 index 00000000000..3b00bbc7a7e --- /dev/null +++ b/code/WorkInProgress/Cael_Aislinn/Rust/circuits_and_design.dm @@ -0,0 +1,56 @@ + +/obj/item/weapon/circuitboard/rust_core_control + name = "Circuit board (RUST core controller)" + build_path = "/obj/machinery/computer/rust_core_control" + origin_tech = "programming=4;engineering=5;power=6" + +/obj/item/weapon/circuitboard/rust_fuel_control + name = "Circuit board (RUST fuel controller)" + build_path = "/obj/machinery/computer/rust_fuel_control" + origin_tech = "programming=4;engineering=5;power=6" + +/obj/item/weapon/circuitboard/rust_fuel_port + name = "Circuit board (RUST fuel port)" + build_path = "/obj/machinery/computer/rust_fuel_control" + origin_tech = "programming=4;engineering=5;power=6" + +/obj/item/weapon/circuitboard/rust_fuel_compressor + name = "Circuit board (RUST fuel compressor)" + build_path = "/obj/machinery/computer/rust_fuel_control" + origin_tech = "programming=4;engineering=5;power=6" + +datum/design/rust_core_control + name = "Circuit Design (RUST core controller)" + desc = "Allows for the construction of circuit boards used to build a core control console for the RUST fusion engine." + id = "rust_core_control" + req_tech = list("programming" = 4, "engineering" = 5, "power" = 6) + build_type = IMPRINTER + materials = list("$glass" = 2000, "sacid" = 20, "$gold" = 2000) + build_path = "/obj/item/weapon/circuitboard/rust_core_control" + +datum/design/rust_fuel_control + name = "Circuit Design (RUST fuel controller)" + desc = "Allows for the construction of circuit boards used to build a fuel injector control console for the RUST fusion engine." + id = "rust_fuel_control" + req_tech = list("programming" = 4, "engineering" = 5, "power" = 6) + build_type = IMPRINTER + materials = list("$glass" = 2000, "sacid" = 20, "$silver" = 2000) + build_path = "/obj/item/weapon/circuitboard/rust_fuel_control" + +datum/design/rust_fuel_port + name = "Circuit Design (RUST fuel port)" + desc = "Allows for the construction of circuit boards used to build a fuel injection port for the RUST fusion engine." + id = "rust_fuel_port" + req_tech = list("programming" = 4, "engineering" = 5, "magnets" = 6) + build_type = IMPRINTER + materials = list("$glass" = 2000, "sacid" = 20, "$uranium" = 3000) + build_path = "/obj/item/weapon/circuitboard/rust_fuel_port" + +datum/design/rust_fuel_compressor + name = "Circuit Design (RUST fuel compressor)" + desc = "Allows for the construction of circuit boards used to build a fuel compressor of the RUST fusion engine." + id = "rust_fuel_compressor" + req_tech = list("programming" = 4, "engineering" = 5 "magnets" = 6) + build_type = IMPRINTER + materials = list("$glass" = 2000, "sacid" = 20, "$plasma" = 3000) + build_path = "/obj/item/weapon/circuitboard/rust_fuel_compressor" diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port_construction.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port_construction.dm new file mode 100644 index 00000000000..81bec6781e3 --- /dev/null +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port_construction.dm @@ -0,0 +1,163 @@ + +//frame assembly + +/obj/item/rust_fuel_assembly_port_frame + name = "Fuel Assembly Port frame" + icon = 'code/WorkInProgress/Cael_Aislinn/Rust/rust.dmi' + icon_state = "port2" + w_class = 4 + flags = FPRINT | TABLEPASS| CONDUCT + +/obj/item/rust_fuel_assembly_port_frame/attackby(obj/item/weapon/W as obj, mob/user as mob) + if (istype(W, /obj/item/weapon/wrench)) + new /obj/item/stack/sheet/plasteel( get_turf(src.loc), 12 ) + del(src) + return + ..() + +/obj/item/rust_fuel_assembly_port_frame/proc/try_build(turf/on_wall) + if (get_dist(on_wall,usr)>1) + return + var/ndir = get_dir(usr,on_wall) + if (!(ndir in cardinal)) + return + var/turf/loc = get_turf(usr) + var/area/A = loc.loc + if (!istype(loc, /turf/simulated/floor)) + usr << "\red Port cannot be placed on this spot." + return + if (A.requires_power == 0 || A.name == "Space") + usr << "\red Port cannot be placed in this area." + return + new /obj/machinery/rust_fuel_assembly_port(loc, ndir, 1) + del(src) + +//construction steps +/obj/machinery/rust_fuel_assembly_port/New(turf/loc, var/ndir, var/building=0) + ..() + + // offset 24 pixels in direction of dir + // this allows the APC to be embedded in a wall, yet still inside an area + if (building) + dir = ndir + else + has_electronics = 3 + opened = 1 + coverlocked = 1 + locked = 0 + icon_state = "port0" + + //20% easier to read than apc code + pixel_x = (dir & 3)? 0 : (dir == 4 ? 32 : -32) + pixel_y = (dir & 3)? (dir ==1 ? 32 : -32) : 0 + +/obj/machinery/rust_fuel_assembly_port/attackby(obj/item/W, mob/user) + + if (istype(user, /mob/living/silicon) && get_dist(src,user)>1) + return src.attack_hand(user) + if (istype(W, /obj/item/weapon/crowbar)) + if(opened) + if(has_electronics & 1) + playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1) + user << "You begin removing the circuitboard" //lpeters - fixed grammar issues + if(do_after(user, 50)) + user.visible_message(\ + "\red [user.name] has removed the circuitboard from [src.name]!",\ + "\blue You remove the circuitboard.") + has_electronics = 0 + new /obj/item/weapon/circuitboard/rust_fuel_port(loc) + has_electronics &= ~1 + else + opened = 0 + icon_state = "port0" + user << "\blue You close the maintenance cover." + else if(!coverlocked) + if(cur_assembly) + user << "\red You cannot open the cover while there is a fuel assembly inside." + else + opened = 1 + user << "\blue You open the maintenance cover." + icon_state = "port2" + else + user << "\red The cover is locked and cannot be opened." + return + + else if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda)) // trying to unlock the interface with an ID card + if(opened) + user << "You must close the cover to swipe an ID card." + else + if(src.allowed(usr)) + locked = !locked + user << "You [ locked ? "lock" : "unlock"] the port interface." + update_icon() + else + user << "\red Access denied." + return + + else if (istype(W, /obj/item/weapon/card/emag) && !emagged) // trying to unlock with an emag card + if(opened) + user << "You must close the cover to swipe an ID card." + else + flick("apc-spark", src) + if (do_after(user,6)) + if(prob(50)) + emagged = 1 + locked = 0 + user << "You emag the port interface." + else + user << "You fail to [ locked ? "unlock" : "lock"] the port interface." + return + + else if (istype(W, /obj/item/weapon/cable_coil) && opened && !(has_electronics & 2)) + var/obj/item/weapon/cable_coil/C = W + if(C.amount < 10) + user << "\red You need more wires." + return + user << "You start adding cables to the frame..." + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + if(do_after(user, 20) && C.amount >= 10) + C.use(10) + user.visible_message(\ + "\red [user.name] has added cables to the port frame!",\ + "You add cables to the port frame.") + has_electronics &= 2 + return + + else if (istype(W, /obj/item/weapon/wirecutters) && opened && (has_electronics & 2)) + user << "You begin to cut the cables..." + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + if(do_after(user, 50)) + new /obj/item/weapon/cable_coil(loc,10) + user.visible_message(\ + "\red [user.name] cut the cabling inside the port.",\ + "You cut the cabling inside the port.") + has_electronics &= ~2 + return + + else if (istype(W, /obj/item/weapon/circuitboard/rust_fuel_port) && opened && !(has_electronics & 1)) + user << "You trying to insert the port control board into the frame..." + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + if(do_after(user, 10)) + has_electronics &= 1 + user << "You place the port control board inside the frame." + del(W) + return + + else if (istype(W, /obj/item/weapon/weldingtool) && opened && !has_electronics) + var/obj/item/weapon/weldingtool/WT = W + if (WT.get_fuel() < 3) + user << "\blue You need more welding fuel to complete this task." + return + user << "You start welding the port frame..." + playsound(src.loc, 'sound/items/Welder.ogg', 50, 1) + if(do_after(user, 50)) + if(!src || !WT.remove_fuel(3, user)) return + new /obj/item/rust_fuel_assembly_port_frame(loc) + user.visible_message(\ + "\red [src] has been cut away from the wall by [user.name].",\ + "You detached the port frame.",\ + "\red You hear welding.") + del(src) + return + + ..() diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor_construction.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor_construction.dm new file mode 100644 index 00000000000..9f2e40d7e82 --- /dev/null +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor_construction.dm @@ -0,0 +1,163 @@ + +//frame assembly + +/obj/item/rust_fuel_compressor_frame + name = "Fuel Compressor frame" + icon = 'code/WorkInProgress/Cael_Aislinn/Rust/rust.dmi' + icon_state = "fuel_compressor0" + w_class = 4 + flags = FPRINT | TABLEPASS| CONDUCT + +/obj/item/rust_fuel_compressor_frame/attackby(obj/item/weapon/W as obj, mob/user as mob) + if (istype(W, /obj/item/weapon/wrench)) + new /obj/item/stack/sheet/plasteel( get_turf(src.loc), 12 ) + del(src) + return + ..() + +/obj/item/rust_fuel_compressor_frame/proc/try_build(turf/on_wall) + if (get_dist(on_wall,usr)>1) + return + var/ndir = get_dir(usr,on_wall) + if (!(ndir in cardinal)) + return + var/turf/loc = get_turf(usr) + var/area/A = loc.loc + if (!istype(loc, /turf/simulated/floor)) + usr << "\red Compressor cannot be placed on this spot." + return + if (A.requires_power == 0 || A.name == "Space") + usr << "\red Compressor cannot be placed in this area." + return + new /obj/machinery/rust_fuel_assembly_port(loc, ndir, 1) + del(src) + +//construction steps +/obj/machinery/rust_fuel_compressor/New(turf/loc, var/ndir, var/building=0) + ..() + + // offset 24 pixels in direction of dir + // this allows the APC to be embedded in a wall, yet still inside an area + if (building) + dir = ndir + else + has_electronics = 3 + opened = 1 + coverlocked = 1 + locked = 0 + icon_state = "port0" + + //20% easier to read than apc code + pixel_x = (dir & 3)? 0 : (dir == 4 ? 32 : -32) + pixel_y = (dir & 3)? (dir ==1 ? 32 : -32) : 0 + +/obj/machinery/rust_fuel_compressor/attackby(obj/item/W, mob/user) + + if (istype(user, /mob/living/silicon) && get_dist(src,user)>1) + return src.attack_hand(user) + if (istype(W, /obj/item/weapon/crowbar)) + if(opened) + if(has_electronics & 1) + playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1) + user << "You begin removing the circuitboard" //lpeters - fixed grammar issues + if(do_after(user, 50)) + user.visible_message(\ + "\red [user.name] has removed the circuitboard from [src.name]!",\ + "\blue You remove the circuitboard board.") + has_electronics = 0 + new /obj/item/weapon/circuitboard/rust_fuel_compressor(loc) + has_electronics &= ~1 + else + opened = 0 + icon_state = "fuel_compressor0" + user << "\blue You close the maintenance cover." + else if(!coverlocked) + if(compressed_matter > 0) + user << "\red You cannot open the cover while there is compressed matter inside." + else + opened = 1 + user << "\blue You open the maintenance cover." + icon_state = "fuel_compressor1" + else + user << "\red The cover is locked and cannot be opened." + return + + else if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda)) // trying to unlock the interface with an ID card + if(opened) + user << "You must close the cover to swipe an ID card." + else + if(src.allowed(usr)) + locked = !locked + user << "You [ locked ? "lock" : "unlock"] the compressor interface." + update_icon() + else + user << "\red Access denied." + return + + else if (istype(W, /obj/item/weapon/card/emag) && !emagged) // trying to unlock with an emag card + if(opened) + user << "You must close the cover to swipe an ID card." + else + flick("apc-spark", src) + if (do_after(user,6)) + if(prob(50)) + emagged = 1 + locked = 0 + user << "You emag the port interface." + else + user << "You fail to [ locked ? "unlock" : "lock"] the compressor interface." + return + + else if (istype(W, /obj/item/weapon/cable_coil) && opened && !(has_electronics & 2)) + var/obj/item/weapon/cable_coil/C = W + if(C.amount < 10) + user << "\red You need more wires." + return + user << "You start adding cables to the compressor frame..." + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + if(do_after(user, 20) && C.amount >= 10) + C.use(10) + user.visible_message(\ + "\red [user.name] has added cables to the compressor frame!",\ + "You add cables to the port frame.") + has_electronics &= 2 + return + + else if (istype(W, /obj/item/weapon/wirecutters) && opened && (has_electronics & 2)) + user << "You begin to cut the cables..." + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + if(do_after(user, 50)) + new /obj/item/weapon/cable_coil(loc,10) + user.visible_message(\ + "\red [user.name] cut the cabling inside the compressor.",\ + "You cut the cabling inside the port.") + has_electronics &= ~2 + return + + else if (istype(W, /obj/item/weapon/circuitboard/rust_fuel_compressor) && opened && !(has_electronics & 1)) + user << "You trying to insert the circuitboard into the frame..." + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + if(do_after(user, 10)) + has_electronics &= 1 + user << "You place the circuitboard inside the frame." + del(W) + return + + else if (istype(W, /obj/item/weapon/weldingtool) && opened && !has_electronics) + var/obj/item/weapon/weldingtool/WT = W + if (WT.get_fuel() < 3) + user << "\blue You need more welding fuel to complete this task." + return + user << "You start welding the compressor frame..." + playsound(src.loc, 'sound/items/Welder.ogg', 50, 1) + if(do_after(user, 50)) + if(!src || !WT.remove_fuel(3, user)) return + new /obj/item/rust_fuel_assembly_port_frame(loc) + user.visible_message(\ + "\red [src] has been cut away from the wall by [user.name].",\ + "You detached the compressor frame.",\ + "\red You hear welding.") + del(src) + return + + ..() diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index 33caf8f1164..045ab1d689a 100755 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -849,3 +849,19 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee containertype = /obj/structure/closet containername = "Formalwear for the best occasions." group = "Operations" + +/datum/supply_packs/rust_core + contains = list(/obj/machinery/power/rust_core) + name = "RUST Tokamak Core" + cost = 75 + containertype = /obj/structure/largecrate + containername = "RUST tokamak crate." + group = "Engineering" + +/datum/supply_packs/rust_injector + contains = list(/obj/machinery/power/rust_fuel_injector) + name = "RUST fuel injector" + cost = 40 + containertype = /obj/structure/largecrate + containername = "RUST injector crate." + group = "Engineering" diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 6c62365fdb3..6b95c453374 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -73,6 +73,8 @@ var/global/list/datum/stack_recipe/metal_recipes = list ( \ var/global/list/datum/stack_recipe/plasteel_recipes = list ( \ new/datum/stack_recipe("AI core", /obj/structure/AIcore, 4, time = 50, one_per_turf = 1), \ new/datum/stack_recipe("Metal crate", /obj/structure/closet/crate, 10, time = 50, one_per_turf = 1), \ + new/datum/stack_recipe("RUST fuel assembly port frame", /obj/item/rust_fuel_assembly_port_frame, 12, time = 50, one_per_turf = 1), \ + new/datum/stack_recipe("RUST fuel compressor frame", /obj/item/rust_fuel_compressor_frame, 12, time = 50, one_per_turf = 1), \ ) /obj/item/stack/sheet/plasteel diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index 37f71d1f3c7..5d055f1a8cb 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -265,6 +265,16 @@ AH.try_build(src) return + else if(istype(W,/obj/item/rust_fuel_compressor_frame)) + var/obj/item/rust_fuel_compressor_frame/AH = W + AH.try_build(src) + return + + else if(istype(W,/obj/item/rust_fuel_assembly_port_frame)) + var/obj/item/rust_fuel_assembly_port_frame/AH = W + AH.try_build(src) + return + //Poster stuff else if(istype(W,/obj/item/weapon/contraband/poster)) place_poster(W,user) From 08340bec34e1b42d9f095d66ee72222025988ef9 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Fri, 22 Feb 2013 02:19:02 -0800 Subject: [PATCH 05/17] Added a single positronic brain to R&D. --- maps/tgstation.2.1.0.0.1.dmm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maps/tgstation.2.1.0.0.1.dmm b/maps/tgstation.2.1.0.0.1.dmm index 665e180d8f6..23b4ef07a92 100644 --- a/maps/tgstation.2.1.0.0.1.dmm +++ b/maps/tgstation.2.1.0.0.1.dmm @@ -3062,7 +3062,7 @@ "bgT" = (/obj/structure/sign/securearea,/turf/simulated/wall,/area/medical/research{name = "Research Division"}) "bgU" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50; pixel_x = 3; pixel_y = 3},/obj/item/stack/sheet/metal{amount = 50},/obj/item/clothing/glasses/welding,/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/toxins/lab) "bgV" = (/obj/structure/stool,/obj/effect/landmark/start{name = "Scientist"},/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/toxins/lab) -"bgW" = (/obj/structure/table,/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/toxins/lab) +"bgW" = (/obj/structure/table,/obj/item/device/posibrain,/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/toxins/lab) "bgX" = (/obj/machinery/camera{c_tag = "Research and Development"; dir = 2; network = list("RD"); pixel_x = 22},/obj/machinery/camera{c_tag = "Research and Development Lab"; dir = 2},/obj/machinery/power/apc{dir = 1; name = "Research Lab APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor{dir = 1; icon_state = "whitepurplecorner"},/area/toxins/lab) "bgY" = (/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) "bgZ" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) From 947d69be6967730887d9e0b0612b5518ad8d8ddd Mon Sep 17 00:00:00 2001 From: cib Date: Fri, 22 Feb 2013 13:33:49 +0100 Subject: [PATCH 06/17] Removes random side-effects being caused by most medicine. Cryo and cloning will still cause it. --- code/WorkInProgress/Cib/MedicalSideEffects.dm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/code/WorkInProgress/Cib/MedicalSideEffects.dm b/code/WorkInProgress/Cib/MedicalSideEffects.dm index a61d9cf4f50..e9dcb51e136 100644 --- a/code/WorkInProgress/Cib/MedicalSideEffects.dm +++ b/code/WorkInProgress/Cib/MedicalSideEffects.dm @@ -24,12 +24,11 @@ side_effects += M /mob/living/carbon/human/proc/handle_medical_side_effects() - if(src.reagents.has_reagent("bicaridine") && prob(40) || src.reagents.has_reagent("tricordrazine") && prob(10) || src.reagents.has_reagent("cryoxadone") && prob(20)) + if(src.reagents.has_reagent("cryoxadone")) src.add_side_effect("Headache") - - if(src.reagents.has_reagent("kelotane") && prob(20) || src.reagents.has_reagent("dermaline") && prob(40)) - src.add_side_effect("Bad Stomach") + /*if(src.reagents.has_reagent("kelotane") && prob(20) || src.reagents.has_reagent("dermaline")) + src.add_side_effect("Bad Stomach")*/ // One full cycle(in terms of strength) every 10 minutes var/strength_percent = sin(life_tick / 2) From 4052e987235304868cb10c6b9cb0590376e73a49 Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Fri, 22 Feb 2013 21:55:43 +1000 Subject: [PATCH 07/17] made circuitboards for fuel injectors and rust core, made said circuits researchable, miscellaneous tweaks and cleanups Signed-off-by: Cael_Aislinn --- .../Cael_Aislinn/Rust/circuits_and_design.dm | 102 +++++++++++--- .../Cael_Aislinn/Rust/core_field.dm | 2 +- .../Cael_Aislinn/Rust/fuel_assembly_port.dm | 2 - .../Rust/fuel_assembly_port_construction.dm | 36 +---- .../Cael_Aislinn/Rust/fuel_compressor.dm | 128 ++++++++++-------- .../Rust/fuel_compressor_construction.dm | 9 +- .../Cael_Aislinn/Rust/fuel_control.dm | 4 +- 7 files changed, 165 insertions(+), 118 deletions(-) diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/circuits_and_design.dm b/code/WorkInProgress/Cael_Aislinn/Rust/circuits_and_design.dm index 3b00bbc7a7e..f1d874a68fd 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/circuits_and_design.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/circuits_and_design.dm @@ -1,24 +1,12 @@ +////////////////////////////////////// +// RUST Core Control computer + /obj/item/weapon/circuitboard/rust_core_control name = "Circuit board (RUST core controller)" build_path = "/obj/machinery/computer/rust_core_control" origin_tech = "programming=4;engineering=5;power=6" -/obj/item/weapon/circuitboard/rust_fuel_control - name = "Circuit board (RUST fuel controller)" - build_path = "/obj/machinery/computer/rust_fuel_control" - origin_tech = "programming=4;engineering=5;power=6" - -/obj/item/weapon/circuitboard/rust_fuel_port - name = "Circuit board (RUST fuel port)" - build_path = "/obj/machinery/computer/rust_fuel_control" - origin_tech = "programming=4;engineering=5;power=6" - -/obj/item/weapon/circuitboard/rust_fuel_compressor - name = "Circuit board (RUST fuel compressor)" - build_path = "/obj/machinery/computer/rust_fuel_control" - origin_tech = "programming=4;engineering=5;power=6" - datum/design/rust_core_control name = "Circuit Design (RUST core controller)" desc = "Allows for the construction of circuit boards used to build a core control console for the RUST fusion engine." @@ -28,6 +16,14 @@ datum/design/rust_core_control materials = list("$glass" = 2000, "sacid" = 20, "$gold" = 2000) build_path = "/obj/item/weapon/circuitboard/rust_core_control" +////////////////////////////////////// +// RUST Fuel Control computer + +/obj/item/weapon/circuitboard/rust_fuel_control + name = "Circuit board (RUST fuel controller)" + build_path = "/obj/machinery/computer/rust_fuel_control" + origin_tech = "programming=4;engineering=5;power=6" + datum/design/rust_fuel_control name = "Circuit Design (RUST fuel controller)" desc = "Allows for the construction of circuit boards used to build a fuel injector control console for the RUST fusion engine." @@ -37,6 +33,14 @@ datum/design/rust_fuel_control materials = list("$glass" = 2000, "sacid" = 20, "$silver" = 2000) build_path = "/obj/item/weapon/circuitboard/rust_fuel_control" +////////////////////////////////////// +// RUST Fuel Port board + +/obj/item/weapon/module/rust_fuel_port + name = "Circuit board (RUST fuel port)" + icon_state = "card_mod" + origin_tech = "engineering=3;power=4" + datum/design/rust_fuel_port name = "Circuit Design (RUST fuel port)" desc = "Allows for the construction of circuit boards used to build a fuel injection port for the RUST fusion engine." @@ -44,13 +48,73 @@ datum/design/rust_fuel_port req_tech = list("programming" = 4, "engineering" = 5, "magnets" = 6) build_type = IMPRINTER materials = list("$glass" = 2000, "sacid" = 20, "$uranium" = 3000) - build_path = "/obj/item/weapon/circuitboard/rust_fuel_port" + build_path = "/obj/item/weapon/module/rust_fuel_port" + +////////////////////////////////////// +// RUST Fuel Compressor board + +/obj/item/weapon/module/rust_fuel_compressor + name = "Circuit board (RUST fuel compressor)" + icon_state = "card_mod" + origin_tech = "power=4;engineering=5;plasmatech=6" datum/design/rust_fuel_compressor name = "Circuit Design (RUST fuel compressor)" desc = "Allows for the construction of circuit boards used to build a fuel compressor of the RUST fusion engine." id = "rust_fuel_compressor" - req_tech = list("programming" = 4, "engineering" = 5 "magnets" = 6) + req_tech = list("power" = 4, "engineering" = 5, "plasmatech" = 6) build_type = IMPRINTER - materials = list("$glass" = 2000, "sacid" = 20, "$plasma" = 3000) - build_path = "/obj/item/weapon/circuitboard/rust_fuel_compressor" + materials = list("$glass" = 2000, "sacid" = 20, "$plasma" = 3000, "$diamond" = 1000) + build_path = "/obj/item/weapon/module/rust_fuel_compressor" + +////////////////////////////////////// +// RUST Tokamak Core board + +/obj/item/weapon/circuitboard/rust_core + name = "Circuit Design (RUST tokamak core)" + build_path = "/obj/machinery/power/rust_core" + board_type = "machine" + origin_tech = "bluespace=3;engineering=4;plasmatech=5;magnets=6;power=7" + frame_desc = "Requires 2 Pico Manipulators, 1 Ultra Micro-Laser, 5 Pieces of Cable, 1 Subspace Crystal and 1 Console Screen." + req_components = list( + "/obj/item/weapon/stock_parts/manipulator/pico" = 2, + "/obj/item/weapon/stock_parts/micro_laser/ultra" = 1, + "/obj/item/weapon/stock_parts/subspace/crystal" = 1, + "/obj/item/weapon/stock_parts/console_screen" = 1, + "/obj/item/weapon/cable_coil" = 5) + +datum/design/rust_core + name = "Circuit board (RUST tokamak core)" + desc = "The circuit board that for a RUST-pattern tokamak fusion core." + id = "pacman" + req_tech = list(bluespace = 3, engineering = 4, plasmatech = 5, magnets = 6, power = 7) + build_type = IMPRINTER + reliability_base = 79 + materials = list("$glass" = 2000, "sacid" = 20, "$plasma" = 3000, "$diamond" = 2000) + build_path = "/obj/item/weapon/circuitboard/rust_core" + +////////////////////////////////////// +// RUST Fuel Injector board + +/obj/item/weapon/circuitboard/rust_injector + name = "Circuit Design (RUST fuel injector)" + build_path = "/obj/machinery/power/rust_fuel_injector" + board_type = "machine" + origin_tech = "power=3;engineering=4;plasmatech=5;magnets=6;materials=7" + frame_desc = "Requires 2 Pico Manipulators, 1 Phasic Scanning Module, 1 Super Matter Bin, 1 Console Screen and 5 Pieces of Cable." + req_components = list( + "/obj/item/weapon/stock_parts/manipulator/pico" = 2, + "/obj/item/weapon/stock_parts/scanning_module/phasic" = 1, + "/obj/item/weapon/stock_parts/matter_bin/super" = 1, + "/obj/item/weapon/stock_parts/console_screen" = 1, + "/obj/item/weapon/cable_coil" = 5) + +datum/design/rust_injector + name = "Circuit board (RUST tokamak core)" + desc = "The circuit board that for a RUST-pattern particle accelerator." + id = "pacman" + req_tech = list(power = 3, engineering = 4, plasmatech = 5, magnets = 6, materials = 7) + build_type = IMPRINTER + reliability_base = 79 + materials = list("$glass" = 2000, "sacid" = 20, "$plasma" = 3000, "$uranium" = 2000) + build_path = "/obj/item/weapon/circuitboard/rust_core" diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm b/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm index 6127e8f9d7e..13c791b75a2 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm @@ -258,7 +258,7 @@ Deuterium-tritium fusion: 4.5 x 10^7 K switch(newsize) if(1) size = 1 - icon = 'emfield.dmi' + icon = 'rust.dmi' icon_state = "emfield_s1" pixel_x = 0 pixel_y = 0 diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm index 1f881c8150e..67935b9ad1f 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm @@ -11,8 +11,6 @@ anchored = 1 var/opened = 1 //0=closed, 1=opened - var/coverlocked = 0 - var/locked = 0 var/has_electronics = 0 // 0 - none, bit 1 - circuitboard, bit 2 - wires /obj/machinery/rust_fuel_assembly_port/attackby(var/obj/item/I, var/mob/user) diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port_construction.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port_construction.dm index 81bec6781e3..0e7aa477cd6 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port_construction.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port_construction.dm @@ -43,8 +43,6 @@ else has_electronics = 3 opened = 1 - coverlocked = 1 - locked = 0 icon_state = "port0" //20% easier to read than apc code @@ -65,47 +63,19 @@ "\red [user.name] has removed the circuitboard from [src.name]!",\ "\blue You remove the circuitboard.") has_electronics = 0 - new /obj/item/weapon/circuitboard/rust_fuel_port(loc) + new /obj/item/weapon/module/rust_fuel_port(loc) has_electronics &= ~1 else opened = 0 icon_state = "port0" user << "\blue You close the maintenance cover." - else if(!coverlocked) + else if(cur_assembly) user << "\red You cannot open the cover while there is a fuel assembly inside." else opened = 1 user << "\blue You open the maintenance cover." icon_state = "port2" - else - user << "\red The cover is locked and cannot be opened." - return - - else if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda)) // trying to unlock the interface with an ID card - if(opened) - user << "You must close the cover to swipe an ID card." - else - if(src.allowed(usr)) - locked = !locked - user << "You [ locked ? "lock" : "unlock"] the port interface." - update_icon() - else - user << "\red Access denied." - return - - else if (istype(W, /obj/item/weapon/card/emag) && !emagged) // trying to unlock with an emag card - if(opened) - user << "You must close the cover to swipe an ID card." - else - flick("apc-spark", src) - if (do_after(user,6)) - if(prob(50)) - emagged = 1 - locked = 0 - user << "You emag the port interface." - else - user << "You fail to [ locked ? "unlock" : "lock"] the port interface." return else if (istype(W, /obj/item/weapon/cable_coil) && opened && !(has_electronics & 2)) @@ -134,7 +104,7 @@ has_electronics &= ~2 return - else if (istype(W, /obj/item/weapon/circuitboard/rust_fuel_port) && opened && !(has_electronics & 1)) + else if (istype(W, /obj/item/weapon/module/rust_fuel_port) && opened && !(has_electronics & 1)) user << "You trying to insert the port control board into the frame..." playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) if(do_after(user, 10)) diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dm index 1dd5a77c22d..273d2298f01 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dm @@ -5,11 +5,10 @@ var/const/max_assembly_amount = 300 icon_state = "fuel_compressor0" name = "Fuel Compressor" var/list/new_assembly_quantities - var/compressed_matter = 100 + var/compressed_matter = 0 anchored = 1 var/opened = 1 //0=closed, 1=opened - var/coverlocked = 0 var/locked = 0 var/has_electronics = 0 // 0 - none, bit 1 - circuitboard, bit 2 - wires @@ -32,64 +31,83 @@ var/const/max_assembly_amount = 300 return*/ interact(user) -/*/obj/machinery/rust_fuel_compressor/power_change() - if(stat & BROKEN) - icon_state = "broken" +/obj/machinery/rust_fuel_compressor/attackby(obj/item/weapon/W as obj, mob/user as mob) + if (istype(W, /obj/item/weapon/rcd_ammo)) + compressed_matter += 10 + del(W) + return + ..() + +/obj/machinery/rust_fuel_compressor/interact(mob/user) + if ( (get_dist(src, user) > 1 ) || (stat & (BROKEN|NOPOWER)) ) + if (!istype(user, /mob/living/silicon)) + user.unset_machine() + user << browse(null, "window=fuelcomp") + return + + var/t = "Reactor Fuel Rod Compressor / Assembler
    " + t += "
    Close
    " + if(locked) + t += "Swipe your ID to unlock this console." else - if( powered() ) - icon_state = initial(icon_state) - stat &= ~NOPOWER - else - spawn(rand(0, 15)) - src.icon_state = "c_unpowered" - stat |= NOPOWER*/ + t += "Compressed matter in storage: [compressed_matter] \[Eject all\]" + t += "Activate Fuel Synthesis
    (fuel assemblies require no more than [max_assembly_amount] rods).
    " + t += "