From 1f7d39d99f66a9d3de47b982c13b925379d9ca11 Mon Sep 17 00:00:00 2001 From: Segrain Date: Sun, 23 Jun 2013 20:31:55 +0300 Subject: [PATCH 1/5] Stacks update. --- baystation12.dme | 3 - .../objects/items/stacks/sheets/mineral.dm | 1 - .../items/stacks/sheets/sheet_types.dm | 14 ++- code/game/objects/items/stacks/stack.dm | 112 ++++++++++++------ 4 files changed, 86 insertions(+), 44 deletions(-) diff --git a/baystation12.dme b/baystation12.dme index 889d36ae3f1..0ff2b2711b1 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -54,9 +54,6 @@ #define FILE_DIR "sound/voice/Serithi" #define FILE_DIR "sound/vox" #define FILE_DIR "sound/weapons" -#define FILE_DIR "tools" -#define FILE_DIR "tools/AddToChangelog" -#define FILE_DIR "tools/AddToChangelog/AddToChangelog" // END_FILE_DIR // BEGIN_PREFERENCES #define DEBUG diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index c76ff2511f6..3671b6ce08e 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -124,7 +124,6 @@ var/global/list/datum/stack_recipe/plasma_recipes = list ( \ throw_range = 3 origin_tech = "materials=3" perunit = 2000 - sheettype = "plastic" var/global/list/datum/stack_recipe/plastic_recipes = list ( \ new/datum/stack_recipe("plastic crate", /obj/structure/closet/pcrate, 10, one_per_turf = 1, on_floor = 1), \ diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 0dfabb85e12..767c6c69aab 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -13,10 +13,20 @@ var/global/list/datum/stack_recipe/metal_recipes = list ( \ new/datum/stack_recipe("stool", /obj/structure/stool, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("chair", /obj/structure/stool/bed/chair, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("swivel chair", /obj/structure/stool/bed/chair/office/dark, 5, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("comfy chair", /obj/structure/stool/bed/chair/comfy/beige, 2, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("bed", /obj/structure/stool/bed, 2, one_per_turf = 1, on_floor = 1), \ null, \ + new/datum/stack_recipe_list("office chairs",list( \ + new/datum/stack_recipe("dark office chair", /obj/structure/stool/bed/chair/office/dark, 5, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("light office chair", /obj/structure/stool/bed/chair/office/light, 5, one_per_turf = 1, on_floor = 1), \ + ), 5), \ + new/datum/stack_recipe_list("comfy chairs", list( \ + new/datum/stack_recipe("beige comfy chair", /obj/structure/stool/bed/chair/comfy/beige, 2, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("black comfy chair", /obj/structure/stool/bed/chair/comfy/black, 2, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("brown comfy chair", /obj/structure/stool/bed/chair/comfy/brown, 2, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("lime comfy chair", /obj/structure/stool/bed/chair/comfy/lime, 2, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("teal comfy chair", /obj/structure/stool/bed/chair/comfy/teal, 2, one_per_turf = 1, on_floor = 1), \ + ), 2), \ + null, \ new/datum/stack_recipe("table parts", /obj/item/weapon/table_parts, 2), \ new/datum/stack_recipe("rack parts", /obj/item/weapon/rack_parts), \ new/datum/stack_recipe("closet", /obj/structure/closet, 2, time = 15, one_per_turf = 1, on_floor = 1), \ diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index 3c8b694d288..43ea24b112e 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -1,7 +1,8 @@ /* Stack type objects! * Contains: * Stacks - * Recipe datum + * Recipe datum + * Recipe list datum */ /* @@ -32,51 +33,66 @@ return /obj/item/stack/attack_self(mob/user as mob) - interact(user) + list_recipes(user) -/obj/item/stack/interact(mob/user as mob) +/obj/item/stack/proc/list_recipes(mob/user as mob, recipes_sublist) if (!recipes) return if (!src || amount<=0) user << browse(null, "window=stack") user.set_machine(src) //for correct work of onclose + var/list/recipe_list = recipes + if (recipes_sublist && recipe_list[recipes_sublist] && istype(recipe_list[recipes_sublist], /datum/stack_recipe_list)) + var/datum/stack_recipe_list/srl = recipe_list[recipes_sublist] + recipe_list = srl.recipes var/t1 = text("Constructions from []Amount Left: []
", src, src.amount) - for(var/i=1;i<=recipes.len,i++) - var/datum/stack_recipe/R = recipes[i] - if (isnull(R)) + for(var/i=1;i<=recipe_list.len,i++) + var/E = recipe_list[i] + if (isnull(E)) t1 += "
" continue - if (i>1 && !isnull(recipes[i-1])) + + if (i>1 && !isnull(recipe_list[i-1])) t1+="
" - var/max_multiplier = round(src.amount / R.req_amount) - var/title as text - var/can_build = 1 - can_build = can_build && (max_multiplier>0) - /* - if (R.one_per_turf) - can_build = can_build && !(locate(R.result_type) in usr.loc) - if (R.on_floor) - can_build = can_build && istype(usr.loc, /turf/simulated/floor) - */ - if (R.res_amount>1) - title+= "[R.res_amount]x [R.title]\s" - else - title+= "[R.title]" - title+= " ([R.req_amount] [src.singular_name]\s)" - if (can_build) - t1 += text("[] ", src, i, title) - else - t1 += text("[]", title) - continue - if (R.max_res_amount>1 && max_multiplier>1) - max_multiplier = min(max_multiplier, round(R.max_res_amount/R.res_amount)) - t1 += " |" - var/list/multipliers = list(5,10,25) - for (var/n in multipliers) - if (max_multiplier>=n) - t1 += " [n*R.res_amount]x" - if (!(max_multiplier in multipliers)) - t1 += " [max_multiplier*R.res_amount]x" + + if (istype(E, /datum/stack_recipe_list)) + var/datum/stack_recipe_list/srl = E + if (src.amount >= srl.req_amount) + t1 += "[srl.title] ([srl.req_amount] [src.singular_name]\s)" + else + t1 += "[srl.title] ([srl.req_amount] [src.singular_name]\s
" + + if (istype(E, /datum/stack_recipe)) + var/datum/stack_recipe/R = E + var/max_multiplier = round(src.amount / R.req_amount) + var/title as text + var/can_build = 1 + can_build = can_build && (max_multiplier>0) + /* + if (R.one_per_turf) + can_build = can_build && !(locate(R.result_type) in usr.loc) + if (R.on_floor) + can_build = can_build && istype(usr.loc, /turf/simulated/floor) + */ + if (R.res_amount>1) + title+= "[R.res_amount]x [R.title]\s" + else + title+= "[R.title]" + title+= " ([R.req_amount] [src.singular_name]\s)" + if (can_build) + t1 += text("[title] ") + else + t1 += text("[]", title) + continue + if (R.max_res_amount>1 && max_multiplier>1) + max_multiplier = min(max_multiplier, round(R.max_res_amount/R.res_amount)) + t1 += " |" + var/list/multipliers = list(5,10,25) + for (var/n in multipliers) + if (max_multiplier>=n) + t1 += " [n*R.res_amount]x" + if (!(max_multiplier in multipliers)) + t1 += " [max_multiplier*R.res_amount]x" t1 += "
" user << browse(t1, "window=stack") @@ -87,10 +103,18 @@ ..() if ((usr.restrained() || usr.stat || usr.get_active_hand() != src)) return + + if (href_list["sublist"] && !href_list["make"]) + list_recipes(usr, text2num(href_list["sublist"])) + if (href_list["make"]) if (src.amount < 1) del(src) //Never should happen - var/datum/stack_recipe/R = recipes[text2num(href_list["make"])] + var/list/recipes_list = recipes + if (href_list["sublist"]) + var/datum/stack_recipe_list/srl = recipes_list[text2num(href_list["sublist"])] + recipes_list = srl.recipes + var/datum/stack_recipe/R = recipes_list[text2num(href_list["make"])] var/multiplier = text2num(href_list["multiplier"]) if (!multiplier) multiplier = 1 if (src.amount < R.req_amount*multiplier) @@ -222,4 +246,16 @@ src.max_res_amount = max_res_amount src.time = time src.one_per_turf = one_per_turf - src.on_floor = on_floor \ No newline at end of file + src.on_floor = on_floor + +/* + * Recipe list datum + */ +/datum/stack_recipe_list + var/title = "ERROR" + var/list/recipes = null + var/req_amount = 1 + New(title, recipes, req_amount = 1) + src.title = title + src.recipes = recipes + src.req_amount = req_amount \ No newline at end of file From 7fec5309f7dd9125dd80f57a32d2483adb8a3dd0 Mon Sep 17 00:00:00 2001 From: Segrain Date: Sun, 23 Jun 2013 20:42:58 +0300 Subject: [PATCH 2/5] Airlock construction update. --- code/game/machinery/doors/airlock.dm | 116 ++--- code/game/machinery/doors/alarmlock.dm | 1 - .../items/stacks/sheets/sheet_types.dm | 19 +- code/game/objects/structures/door_assembly.dm | 441 ++++++------------ icons/obj/doors/door_assembly.dmi | Bin 36379 -> 36832 bytes 5 files changed, 197 insertions(+), 380 deletions(-) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 045257fc71d..c0b5f370fbc 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -86,7 +86,8 @@ Airlock index -> wire color are { 9, 4, 6, 7, 5, 8, 1, 2, 3 }. var/list/signalers[12] var/lockdownbyai = 0 autoclose = 1 - var/doortype = 0 + var/assembly_type = /obj/structure/door_assembly + var/mineral = null var/justzap = 0 var/safe = 1 normalspeed = 1 @@ -96,125 +97,122 @@ Airlock index -> wire color are { 9, 4, 6, 7, 5, 8, 1, 2, 3 }. /obj/machinery/door/airlock/command name = "Airlock" icon = 'icons/obj/doors/Doorcom.dmi' - doortype = 1 + assembly_type = /obj/structure/door_assembly/door_assembly_com /obj/machinery/door/airlock/security name = "Airlock" icon = 'icons/obj/doors/Doorsec.dmi' - doortype = 2 + assembly_type = /obj/structure/door_assembly/door_assembly_sec /obj/machinery/door/airlock/engineering name = "Airlock" icon = 'icons/obj/doors/Dooreng.dmi' - doortype = 3 + assembly_type = /obj/structure/door_assembly/door_assembly_eng /obj/machinery/door/airlock/medical name = "Airlock" icon = 'icons/obj/doors/Doormed.dmi' - doortype = 4 + assembly_type = /obj/structure/door_assembly/door_assembly_med /obj/machinery/door/airlock/maintenance name = "Maintenance Access" icon = 'icons/obj/doors/Doormaint.dmi' - doortype = 5 + assembly_type = /obj/structure/door_assembly/door_assembly_mai /obj/machinery/door/airlock/external name = "External Airlock" icon = 'icons/obj/doors/Doorext.dmi' - doortype = 6 + assembly_type = /obj/structure/door_assembly/door_assembly_ext /obj/machinery/door/airlock/glass name = "Glass Airlock" icon = 'icons/obj/doors/Doorglass.dmi' opacity = 0 - doortype = 7 glass = 1 /obj/machinery/door/airlock/centcom name = "Airlock" icon = 'icons/obj/doors/Doorele.dmi' opacity = 0 - doortype = 8 /obj/machinery/door/airlock/vault name = "Vault" icon = 'icons/obj/doors/vault.dmi' opacity = 1 - doortype = 9 + assembly_type = /obj/structure/door_assembly/door_assembly_highsecurity //Until somebody makes better sprites. /obj/machinery/door/airlock/glass_large name = "Glass Airlock" icon = 'icons/obj/doors/Door2x1glassfull.dmi' opacity = 0 - doortype = 10 glass = 1 /obj/machinery/door/airlock/freezer name = "Freezer Airlock" icon = 'icons/obj/doors/Doorfreezer.dmi' opacity = 1 - doortype = 11 + assembly_type = /obj/structure/door_assembly/door_assembly_fre /obj/machinery/door/airlock/hatch name = "Airtight Hatch" icon = 'icons/obj/doors/Doorhatchele.dmi' opacity = 1 - doortype = 12 + assembly_type = /obj/structure/door_assembly/door_assembly_hatch /obj/machinery/door/airlock/maintenance_hatch name = "Maintenance Hatch" icon = 'icons/obj/doors/Doorhatchmaint2.dmi' opacity = 1 - doortype = 13 + assembly_type = /obj/structure/door_assembly/door_assembly_mhatch /obj/machinery/door/airlock/glass_command name = "Maintenance Hatch" icon = 'icons/obj/doors/Doorcomglass.dmi' opacity = 0 - doortype = 14 + assembly_type = /obj/structure/door_assembly/door_assembly_com glass = 1 /obj/machinery/door/airlock/glass_engineering name = "Maintenance Hatch" icon = 'icons/obj/doors/Doorengglass.dmi' opacity = 0 - doortype = 15 + assembly_type = /obj/structure/door_assembly/door_assembly_eng glass = 1 /obj/machinery/door/airlock/glass_security name = "Maintenance Hatch" icon = 'icons/obj/doors/Doorsecglass.dmi' opacity = 0 - doortype = 16 + assembly_type = /obj/structure/door_assembly/door_assembly_sec glass = 1 /obj/machinery/door/airlock/glass_medical name = "Maintenance Hatch" icon = 'icons/obj/doors/Doormedglass.dmi' opacity = 0 - doortype = 17 + assembly_type = /obj/structure/door_assembly/door_assembly_med glass = 1 /obj/machinery/door/airlock/mining name = "Mining Airlock" icon = 'icons/obj/doors/Doormining.dmi' - doortype = 18 + assembly_type = /obj/structure/door_assembly/door_assembly_min /obj/machinery/door/airlock/atmos name = "Atmospherics Airlock" icon = 'icons/obj/doors/Dooratmo.dmi' - doortype = 19 + assembly_type = /obj/structure/door_assembly/door_assembly_atmo /obj/machinery/door/airlock/research name = "Airlock" icon = 'icons/obj/doors/Doorresearch.dmi' - doortype = 20 + assembly_type = /obj/structure/door_assembly/door_assembly_research /obj/machinery/door/airlock/glass_research name = "Maintenance Hatch" icon = 'icons/obj/doors/Doorresearchglass.dmi' opacity = 0 - doortype = 21 + assembly_type = /obj/structure/door_assembly/door_assembly_research glass = 1 heat_proof = 1 @@ -222,40 +220,36 @@ Airlock index -> wire color are { 9, 4, 6, 7, 5, 8, 1, 2, 3 }. name = "Maintenance Hatch" icon = 'icons/obj/doors/Doorminingglass.dmi' opacity = 0 - doortype = 22 + assembly_type = /obj/structure/door_assembly/door_assembly_min glass = 1 /obj/machinery/door/airlock/glass_atmos name = "Maintenance Hatch" icon = 'icons/obj/doors/Dooratmoglass.dmi' opacity = 0 - doortype = 23 + assembly_type = /obj/structure/door_assembly/door_assembly_atmo glass = 1 /obj/machinery/door/airlock/gold name = "Gold Airlock" icon = 'icons/obj/doors/Doorgold.dmi' - var/mineral = "gold" - doortype = 24 + mineral = "gold" /obj/machinery/door/airlock/silver name = "Silver Airlock" icon = 'icons/obj/doors/Doorsilver.dmi' - var/mineral = "silver" - doortype = 25 + mineral = "silver" /obj/machinery/door/airlock/diamond name = "Diamond Airlock" icon = 'icons/obj/doors/Doordiamond.dmi' - var/mineral = "diamond" - doortype = 26 + mineral = "diamond" /obj/machinery/door/airlock/uranium name = "Uranium Airlock" desc = "And they said I was crazy." icon = 'icons/obj/doors/Dooruranium.dmi' - var/mineral = "uranium" - doortype = 27 + mineral = "uranium" var/last_event = 0 /obj/machinery/door/airlock/uranium/process() @@ -274,8 +268,7 @@ Airlock index -> wire color are { 9, 4, 6, 7, 5, 8, 1, 2, 3 }. name = "Plasma Airlock" desc = "No way this can end badly." icon = 'icons/obj/doors/Doorplasma.dmi' - var/mineral = "plasma" - doortype = 28 + mineral = "plasma" /obj/machinery/door/airlock/plasma/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) if(exposed_temperature > 300) @@ -303,37 +296,35 @@ Airlock index -> wire color are { 9, 4, 6, 7, 5, 8, 1, 2, 3 }. W.ignite((temperature/4))//Added so that you can't set off a massive chain reaction with a small flame for(var/obj/machinery/door/airlock/plasma/D in range(3,src)) D.ignite(temperature/4) - new/obj/structure/door_assembly/door_assembly_0( src.loc ) + new/obj/structure/door_assembly/*/door_assembly_0*/( src.loc ) del (src) /obj/machinery/door/airlock/clown name = "Bananium Airlock" icon = 'icons/obj/doors/Doorbananium.dmi' - var/mineral = "clown" - doortype = 29 + mineral = "clown" /obj/machinery/door/airlock/sandstone name = "Sandstone Airlock" icon = 'icons/obj/doors/Doorsand.dmi' - var/mineral = "sandstone" - doortype = 30 + mineral = "sandstone" /obj/machinery/door/airlock/science name = "Airlock" icon = 'icons/obj/doors/Doorsci.dmi' - doortype = 31 + assembly_type = /obj/structure/door_assembly/door_assembly_science /obj/machinery/door/airlock/glass_science name = "Glass Airlocks" icon = 'icons/obj/doors/Doorsciglass.dmi' opacity = 0 - doortype = 32 + assembly_type = /obj/structure/door_assembly/door_assembly_science glass = 1 /obj/machinery/door/airlock/highsecurity name = "High Tech Security Airlock" icon = 'icons/obj/doors/hightechsecurity.dmi' - doortype = 33 + assembly_type = /obj/structure/door_assembly/door_assembly_highsecurity /* About the new airlock wires panel: @@ -1203,37 +1194,16 @@ About the new airlock wires panel: user.visible_message("[user] removes the electronics from the airlock assembly.", "You start to remove electronics from the airlock assembly.") if(do_after(user,40)) user << "\blue You removed the airlock electronics!" - switch(src.doortype) - if(0) new/obj/structure/door_assembly/door_assembly_0( src.loc ) - if(1) new/obj/structure/door_assembly/door_assembly_com( src.loc ) - if(2) new/obj/structure/door_assembly/door_assembly_sec( src.loc ) - if(3) new/obj/structure/door_assembly/door_assembly_eng( src.loc ) - if(4) new/obj/structure/door_assembly/door_assembly_med( src.loc ) - if(5) new/obj/structure/door_assembly/door_assembly_mai( src.loc ) - if(6) new/obj/structure/door_assembly/door_assembly_ext( src.loc ) - if(7) new/obj/structure/door_assembly/door_assembly_glass( src.loc ) - if(12) new/obj/structure/door_assembly/door_assembly_hatch( src.loc ) - if(13) new/obj/structure/door_assembly/door_assembly_mhatch( src.loc ) - if(14) new/obj/structure/door_assembly/door_assembly_com/glass( src.loc ) - if(15) new/obj/structure/door_assembly/door_assembly_eng/glass( src.loc ) - if(16) new/obj/structure/door_assembly/door_assembly_sec/glass( src.loc ) - if(17) new/obj/structure/door_assembly/door_assembly_med/glass( src.loc ) - if(18) new/obj/structure/door_assembly/door_assembly_min( src.loc ) - if(19) new/obj/structure/door_assembly/door_assembly_atmo( src.loc ) - if(20) new/obj/structure/door_assembly/door_assembly_research( src.loc ) - if(21) new/obj/structure/door_assembly/door_assembly_research/glass( src.loc ) - if(22) new/obj/structure/door_assembly/door_assembly_min/glass( src.loc ) - if(23) new/obj/structure/door_assembly/door_assembly_atmo/glass( src.loc ) - if(24) new/obj/structure/door_assembly/door_assembly_gold( src.loc ) - if(25) new/obj/structure/door_assembly/door_assembly_silver( src.loc ) - if(26) new/obj/structure/door_assembly/door_assembly_diamond( src.loc ) - if(27) new/obj/structure/door_assembly/door_assembly_uranium( src.loc ) - if(28) new/obj/structure/door_assembly/door_assembly_plasma( src.loc ) - if(29) new/obj/structure/door_assembly/door_assembly_clown( src.loc ) - if(30) new/obj/structure/door_assembly/door_assembly_sandstone( src.loc ) - if(31) new/obj/structure/door_assembly/door_assembly_science( src.loc ) - if(32) new/obj/structure/door_assembly/door_assembly_science/glass( src.loc ) - if(33) new/obj/structure/door_assembly/door_assembly_highsecurity(src.loc) + + var/obj/structure/door_assembly/da = new assembly_type(src.loc) + da.anchored = 1 + if(mineral) + da.glass = mineral + else if(glass) + da.glass = 1 + da.state = 1 + da.created_name = src.name + da.update_state() var/obj/item/weapon/airlock_electronics/ae if(!electronics) diff --git a/code/game/machinery/doors/alarmlock.dm b/code/game/machinery/doors/alarmlock.dm index 2dd1d7ac79e..67e5c83dc30 100644 --- a/code/game/machinery/doors/alarmlock.dm +++ b/code/game/machinery/doors/alarmlock.dm @@ -3,7 +3,6 @@ name = "Glass Alarm Airlock" icon = 'icons/obj/doors/Doorglass.dmi' opacity = 0 - doortype = 7 glass = 1 var/datum/radio_frequency/air_connection diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 767c6c69aab..cef4c6dedb4 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -38,10 +38,27 @@ var/global/list/datum/stack_recipe/metal_recipes = list ( \ null, \ new/datum/stack_recipe("computer frame", /obj/structure/computerframe, 5, time = 25, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("wall girders", /obj/structure/girder, 2, time = 50, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("airlock assembly", /obj/structure/door_assembly, 4, time = 50, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("machine frame", /obj/machinery/constructable_frame/machine_frame, 5, time = 25, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("turret frame", /obj/machinery/porta_turret_construct, 5, time = 25, one_per_turf = 1, on_floor = 1), \ null, \ + new/datum/stack_recipe_list("airlock assemblies", list( \ + new/datum/stack_recipe("standart airlock assembly", /obj/structure/door_assembly, 4, time = 50, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("command airlock assembly", /obj/structure/door_assembly/door_assembly_com, 4, time = 50, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("security airlock assembly", /obj/structure/door_assembly/door_assembly_sec, 4, time = 50, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("engineering airlock assembly", /obj/structure/door_assembly/door_assembly_eng, 4, time = 50, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("mining airlock assembly", /obj/structure/door_assembly/door_assembly_min, 4, time = 50, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("atmospherics airlock assembly", /obj/structure/door_assembly/door_assembly_atmo, 4, time = 50, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("research airlock assembly", /obj/structure/door_assembly/door_assembly_research, 4, time = 50, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("science airlock assembly", /obj/structure/door_assembly/door_assembly_science, 4, time = 50, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("medical airlock assembly", /obj/structure/door_assembly/door_assembly_med, 4, time = 50, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("maintenance airlock assembly", /obj/structure/door_assembly/door_assembly_mai, 4, time = 50, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("external airlock assembly", /obj/structure/door_assembly/door_assembly_ext, 4, time = 50, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("freezer airlock assembly", /obj/structure/door_assembly/door_assembly_fre, 4, time = 50, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("airtight hatch assembly", /obj/structure/door_assembly/door_assembly_hatch, 4, time = 50, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("maintenance hatch assembly", /obj/structure/door_assembly/door_assembly_mhatch, 4, time = 50, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("high security airlock assembly", /obj/structure/door_assembly/door_assembly_highsecurity, 4, time = 50, one_per_turf = 1, on_floor = 1), \ + ), 4), \ + null, \ new/datum/stack_recipe("grenade casing", /obj/item/weapon/grenade/chem_grenade), \ new/datum/stack_recipe("light fixture frame", /obj/item/light_fixture_frame, 2), \ new/datum/stack_recipe("small light fixture frame", /obj/item/light_fixture_frame/small, 1), \ diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm index 9930d8d84fb..8052fe52806 100644 --- a/code/game/objects/structures/door_assembly.dm +++ b/code/game/objects/structures/door_assembly.dm @@ -6,278 +6,100 @@ obj/structure/door_assembly anchored = 0 density = 1 var/state = 0 - var/mineral = null - var/base_icon_state = "door_as_0" - var/glass_base_icon_state = "door_as_g0" + var/base_icon_state = "" + var/base_name = "Airlock" var/obj/item/weapon/airlock_electronics/electronics = null - var/airlock_type = /obj/machinery/door/airlock //the type path of the airlock once completed - var/glass_type = /obj/machinery/door/airlock/glass - var/glass = null + var/airlock_type = "" //the type path of the airlock once completed + var/glass_type = "/glass" + var/glass = 0 // 0 = glass can be installed. -1 = glass can't be installed. 1 = glass is already installed. Text = mineral plating is installed instead. var/created_name = null New() - base_icon_state = copytext(icon_state,1,lentext(icon_state)) - - door_assembly_0 - name = "Airlock Assembly" - icon_state = "door_as_1" - airlock_type = /obj/machinery/door/airlock - anchored = 1 - density = 1 - state = 1 - glass = 0 + update_state() door_assembly_com - name = "Command Airlock Assembly" - icon_state = "door_as_com1" - glass_base_icon_state = "door_as_gcom" - glass_type = /obj/machinery/door/airlock/glass_command - airlock_type = /obj/machinery/door/airlock/command - anchored = 1 - density = 1 - state = 1 - glass = 0 - - glass - glass = 1 - icon_state = "door_as_gcom1" + base_icon_state = "com" + base_name = "Command Airlock" + glass_type = "/glass_command" + airlock_type = "/command" door_assembly_sec - name = "Security Airlock Assembly" - icon_state = "door_as_sec1" - glass_base_icon_state = "door_as_gsec" - glass_type = /obj/machinery/door/airlock/glass_security - airlock_type = /obj/machinery/door/airlock/security - anchored = 1 - density = 1 - state = 1 - glass = 0 - - glass - glass = 1 - icon_state = "door_as_gsec1" + base_icon_state = "sec" + base_name = "Security Airlock" + glass_type = "/glass_security" + airlock_type = "/security" door_assembly_eng - name = "Engineering Airlock Assembly" - icon_state = "door_as_eng1" - glass_base_icon_state = "door_as_geng" - glass_type = /obj/machinery/door/airlock/glass_engineering - airlock_type = /obj/machinery/door/airlock/engineering - anchored = 1 - density = 1 - state = 1 - glass = 0 - - glass - glass = 1 - icon_state = "door_as_geng1" + base_icon_state = "eng" + base_name = "Engineering Airlock" + glass_type = "/glass_engineering" + airlock_type = "/engineering" door_assembly_min - name = "Mining Airlock Assembly" - icon_state = "door_as_min1" - glass_base_icon_state = "door_as_gmin" - glass_type = /obj/machinery/door/airlock/glass_mining - airlock_type = /obj/machinery/door/airlock/mining - anchored = 1 - density = 1 - state = 1 - glass = 0 - - glass - glass = 1 - icon_state = "door_as_gmin1" + base_icon_state = "min" + base_name = "Mining Airlock" + glass_type = "/glass_mining" + airlock_type = "/mining" door_assembly_atmo - name = "Atmospherics Airlock Assembly" - icon_state = "door_as_atmo1" - glass_base_icon_state = "door_as_gatmo" - glass_type = /obj/machinery/door/airlock/glass_atmos - airlock_type = /obj/machinery/door/airlock/atmos - anchored = 1 - density = 1 - state = 1 - glass = 0 - - glass - glass = 1 - icon_state = "door_as_gatmo1" + base_icon_state = "atmo" + base_name = "Atmospherics Airlock" + glass_type = "/glass_atmos" + airlock_type = "/atmos" door_assembly_research - name = "Research Airlock Assembly" - icon_state = "door_as_res1" - glass_base_icon_state = "door_as_gres" - glass_type = /obj/machinery/door/airlock/glass_research - airlock_type = /obj/machinery/door/airlock/research - anchored = 1 - density = 1 - state = 1 - glass = 0 - - glass - glass = 1 - icon_state = "door_as_gres1" + base_icon_state = "res" + base_name = "Research Airlock" + glass_type = "/glass_research" + airlock_type = "/research" door_assembly_science - name = "Science Airlock Assembly" - icon_state = "door_as_sci1" - glass_base_icon_state = "door_as_gsci" - glass_type = /obj/machinery/door/airlock/glass_science - airlock_type = /obj/machinery/door/airlock/science - anchored = 1 - density = 1 - state = 1 - glass = 0 - - glass - glass = 1 - icon_state = "door_as_gsci1" + base_icon_state = "sci" + base_name = "Science Airlock" + glass_type = "/glass_science" + airlock_type = "/science" door_assembly_med - name = "Medical Airlock Assembly" - icon_state = "door_as_med1" - airlock_type = /obj/machinery/door/airlock/medical - anchored = 1 - density = 1 - state = 1 - - glass - mineral = "glass" - icon_state = "door_as_gmed1" + base_icon_state = "med" + base_name = "Medical Airlock" + glass_type = "/glass_medical" + airlock_type = "/medical" door_assembly_mai - name = "Maintenance Airlock Assembly" - icon_state = "door_as_mai1" - airlock_type = /obj/machinery/door/airlock/maintenance - anchored = 1 - density = 1 - state = 1 - glass = 0 + base_icon_state = "mai" + base_name = "Maintenance Airlock" + airlock_type = "/maintenance" + glass = -1 door_assembly_ext - name = "External Airlock Assembly" - icon_state = "door_as_ext1" - airlock_type = /obj/machinery/door/airlock/external - anchored = 1 - density = 1 - state = 1 - glass = 0 + base_icon_state = "ext" + base_name = "External Airlock" + airlock_type = "/external" + glass = -1 door_assembly_fre - name = "Freezer Airlock Assembly" - icon_state = "door_as_fre1" - airlock_type = /obj/machinery/door/airlock/freezer - anchored = 1 - density = 1 - state = 1 - glass = 0 + base_icon_state = "fre" + base_name = "Freezer Airlock" + airlock_type = "/freezer" + glass = -1 door_assembly_hatch - name = "Airtight Hatch Assembly" - icon_state = "door_as_hatch1" - airlock_type = /obj/machinery/door/airlock/hatch - anchored = 1 - density = 1 - state = 1 - glass = 0 + base_icon_state = "hatch" + base_name = "Airtight Hatch" + airlock_type = "/hatch" + glass = -1 door_assembly_mhatch - name = "Maintenance Hatch Assembly" - icon_state = "door_as_mhatch1" - airlock_type = /obj/machinery/door/airlock/maintenance_hatch - anchored = 1 - density = 1 - state = 1 - glass = 0 - - door_assembly_glass - name = "Glass Airlock Assembly" - icon_state = "door_as_g1" - airlock_type = /obj/machinery/door/airlock/glass - anchored = 1 - density = 1 - state = 1 - mineral = "glass" - - door_assembly_gold - name = "Gold Airlock Assembly" - icon_state = "door_as_gold1" - airlock_type = /obj/machinery/door/airlock/gold - anchored = 1 - density = 1 - state = 1 - mineral = "gold" - - door_assembly_silver - name = "Silver Airlock Assembly" - icon_state = "door_as_silver1" - airlock_type = /obj/machinery/door/airlock/silver - anchored = 1 - density = 1 - state = 1 - mineral = "silver" - - door_assembly_diamond - name = "Diamond Airlock Assembly" - icon_state = "door_as_diamond1" - airlock_type = /obj/machinery/door/airlock/diamond - anchored = 1 - density = 1 - state = 1 - mineral = "diamond" - - door_assembly_uranium - name = "Uranium Airlock Assembly" - icon_state = "door_as_uranium1" - airlock_type = /obj/machinery/door/airlock/uranium - anchored = 1 - density = 1 - state = 1 - mineral = "uranium" - - door_assembly_plasma - name = "Plasma Airlock Assembly" - icon_state = "door_as_plasma1" - airlock_type = /obj/machinery/door/airlock/plasma - anchored = 1 - density = 1 - state = 1 - mineral = "plasma" - - door_assembly_clown - name = "Bananium Airlock Assembly" - icon_state = "door_as_clown1" - airlock_type = /obj/machinery/door/airlock/clown - anchored = 1 - density = 1 - state = 1 - mineral = "clown" - - door_assembly_sandstone - name = "Sandstone Airlock Assembly" - icon_state = "door_as_sandstone1" - airlock_type = /obj/machinery/door/airlock/sandstone - anchored = 1 - density = 1 - state = 1 - mineral = "sandstone" - - door_assembly_sandstone - name = "Sandstone Airlock Assembly" - icon_state = "door_as_sandstone1" - airlock_type = /obj/machinery/door/airlock/sandstone - anchored = 1 - density = 1 - state = 1 - mineral = "sandstone" + base_icon_state = "mhatch" + base_name = "Maintenance Hatch" + airlock_type = "/maintenance_hatch" + glass = -1 door_assembly_highsecurity // Borrowing this until WJohnston makes sprites for the assembly - name = "High Tech Security Assembly" - icon_state = "door_as_highsec1" - airlock_type = /obj/machinery/door/airlock/highsecurity - anchored = 1 - density = 1 - state = 1 - glass = 0 + base_icon_state = "highsec" + base_name = "High Security Airlock" + airlock_type = "/highsecurity" + glass = -1 /obj/structure/door_assembly/attackby(obj/item/W as obj, mob/user as mob) if(istype(W, /obj/item/weapon/pen)) @@ -287,46 +109,47 @@ obj/structure/door_assembly created_name = t return - if(istype(W, /obj/item/weapon/weldingtool) && !anchored ) + if(istype(W, /obj/item/weapon/weldingtool) && ( (istext(glass)) || (glass == 1) || (!anchored) )) var/obj/item/weapon/weldingtool/WT = W - if(WT.remove_fuel(0,user)) - user.visible_message("[user] dissassembles the airlock assembly.", "You start to dissassemble the airlock assembly.") + if (WT.remove_fuel(0, user)) playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) - - if(do_after(user, 40)) - if(!src || !WT.isOn()) return - user << "\blue You dissasembled the airlock assembly!" - new /obj/item/stack/sheet/metal(get_turf(src), 4) - if (mineral) - if (mineral == "glass") - new /obj/item/stack/sheet/rglass(get_turf(src)) - else - var/M = text2path("/obj/item/stack/sheet/mineral/[mineral]") - new M(get_turf(src)) - new M(get_turf(src)) - del(src) + if(istext(glass)) + user.visible_message("[user] welds the [glass] plating off the airlock assembly.", "You start to weld the [glass] plating off the airlock assembly.") + if(do_after(user, 40)) + if(!src || !WT.isOn()) return + user << "\blue You welded the [glass] plating off!" + var/M = text2path("/obj/item/stack/sheet/mineral/[glass]") + new M(src.loc, 2) + glass = 0 + else if(glass == 1) + user.visible_message("[user] welds the glass panel out of the airlock assembly.", "You start to weld the glass panel out of the airlock assembly.") + if(do_after(user, 40)) + if(!src || !WT.isOn()) return + user << "\blue You welded the glass panel out!" + new /obj/item/stack/sheet/rglass(src.loc) + glass = 0 + else if(!anchored) + user.visible_message("[user] dissassembles the airlock assembly.", "You start to dissassemble the airlock assembly.") + if(do_after(user, 40)) + if(!src || !WT.isOn()) return + user << "\blue You dissasembled the airlock assembly!" + new /obj/item/stack/sheet/metal(src.loc, 4) + del (src) else - user << "\blue You need more welding fuel to dissassemble the airlock assembly." + user << "\blue You need more welding fuel." return - else if(istype(W, /obj/item/weapon/wrench) && !anchored ) + else if(istype(W, /obj/item/weapon/wrench) && state == 0) playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) - user.visible_message("[user] secures the airlock assembly to the floor.", "You start to secure the airlock assembly to the floor.") + if(anchored) + user.visible_message("[user] unsecures the airlock assembly from the floor.", "You start to unsecure the airlock assembly from the floor.") + else + user.visible_message("[user] secures the airlock assembly to the floor.", "You start to secure the airlock assembly to the floor.") if(do_after(user, 40)) if(!src) return - user << "\blue You secured the airlock assembly!" - src.name = "Secured Airlock Assembly" - src.anchored = 1 - - else if(istype(W, /obj/item/weapon/wrench) && anchored ) - playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) - user.visible_message("[user] unsecures the airlock assembly from the floor.", "You start to unsecure the airlock assembly from the floor.") - if(do_after(user, 40)) - if(!src) return - user << "\blue You unsecured the airlock assembly!" - src.name = "Airlock Assembly" - src.anchored = 0 + user << "\blue You [anchored? "un" : ""]secured the airlock assembly!" + anchored = !anchored else if(istype(W, /obj/item/weapon/cable_coil) && state == 0 && anchored ) var/obj/item/weapon/cable_coil/coil = W @@ -336,7 +159,6 @@ obj/structure/door_assembly coil.use(1) src.state = 1 user << "\blue You wire the Airlock!" - src.name = "Wired Airlock Assembly" else if(istype(W, /obj/item/weapon/wirecutters) && state == 1 ) playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1) @@ -345,9 +167,8 @@ obj/structure/door_assembly if(do_after(user, 40)) if(!src) return user << "\blue You cut the airlock wires.!" - new/obj/item/weapon/cable_coil(get_turf(user), 1) + new/obj/item/weapon/cable_coil(src.loc, 1) src.state = 0 - src.name = "Secured Airlock Assembly" else if(istype(W, /obj/item/weapon/airlock_electronics) && state == 1 && W:icon_state != "door_electronics_smoked") playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1) @@ -364,8 +185,6 @@ obj/structure/door_assembly else W.loc = src.loc - //del(W) - else if(istype(W, /obj/item/weapon/crowbar) && state == 2 ) playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1) user.visible_message("[user] removes the electronics from the airlock assembly.", "You start to install electronics into the airlock assembly.") @@ -382,32 +201,28 @@ obj/structure/door_assembly ae = electronics electronics = null ae.loc = src.loc - else if(istype(W, /obj/item/stack/sheet) && !mineral) - var/obj/item/stack/sheet/G = W - if(G) - if(G.amount>=1) - if(G.type == /obj/item/stack/sheet/rglass) + + else if(istype(W, /obj/item/stack/sheet) && !glass) + var/obj/item/stack/sheet/S = W + if (S) + if (S.amount>=1) + if(istype(S, /obj/item/stack/sheet/rglass)) playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1) - user.visible_message("[user] adds [G.name] to the airlock assembly.", "You start to install [G.name] into the airlock assembly.") + user.visible_message("[user] adds [S.name] to the airlock assembly.", "You start to install [S.name] into the airlock assembly.") if(do_after(user, 40)) user << "\blue You installed reinforced glass windows into the airlock assembly!" - G.use(1) - src.mineral = "glass" - src.name = "Near finished Window Airlock Assembly" - src.airlock_type = /obj/machinery/door/airlock/glass - src.base_icon_state = "door_as_g" //this will be applied to the icon_state with the correct state number at the proc's end. - else if(istype(G, /obj/item/stack/sheet/mineral)) - var/M = G.sheettype - if(G.amount>=2) + S.use(1) + glass = 1 + else if(istype(S, /obj/item/stack/sheet/mineral) && S.sheettype) + var/M = S.sheettype + if(S.amount>=2) playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1) - user.visible_message("[user] adds [G.name] to the airlock assembly.", "You start to install [G.name] into the airlock assembly.") + user.visible_message("[user] adds [S.name] to the airlock assembly.", "You start to install [S.name] into the airlock assembly.") if(do_after(user, 40)) user << "\blue You installed [M] plating into the airlock assembly!" - G.use(2) - src.mineral = "[M]" - src.name = "Near finished [M] Airlock Assembly" - src.airlock_type = text2path ("/obj/machinery/door/airlock/[M]") - src.base_icon_state = "door_as_[M]" + S.use(2) + glass = "[M]" + else if(istype(W, /obj/item/weapon/screwdriver) && state == 2 ) playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1) user << "\blue Now finishing the airlock." @@ -415,11 +230,15 @@ obj/structure/door_assembly if(do_after(user, 40)) if(!src) return user << "\blue You finish the airlock!" - var/obj/machinery/door/airlock/door - if (mineral) - airlock_type = text2path("/obj/machinery/door/airlock/[mineral]") - door = new src.airlock_type( src.loc ) - //door.req_access = src.req_access + var/path + if(istext(glass)) + path = text2path("/obj/machinery/door/airlock/[glass]") + else if (glass == 1) + path = text2path("/obj/machinery/door/airlock[glass_type]") + else + path = text2path("/obj/machinery/door/airlock[airlock_type]") + var/obj/machinery/door/airlock/door = new path(src.loc) + door.assembly_type = type door.electronics = src.electronics if(src.electronics.one_access) door.req_access = null @@ -428,11 +247,23 @@ obj/structure/door_assembly door.req_access = src.electronics.conf_access if(created_name) door.name = created_name + else + door.name = "[istext(glass) ? "[glass] airlock" : base_name]" src.electronics.loc = door del(src) else ..() - icon_state = "[base_icon_state][state]" - //This updates the icon_state. They are named as "door_as1_eng" where the 1 in that example - //represents what state it's in. So the most generic algorithm for the correct updating of - //this is simply to change the number. \ No newline at end of file + update_state() + +/obj/structure/door_assembly/proc/update_state() + icon_state = "door_as_[glass == 1 ? "g" : ""][istext(glass) ? glass : base_icon_state][state]" + name = "" + switch (state) + if(0) + if (anchored) + name = "Secured " + if(1) + name = "Wired " + if(2) + name = "Near Finished " + name += "[glass == 1 ? "Window " : ""][istext(glass) ? "[glass] Airlock" : base_name] Assembly" \ No newline at end of file diff --git a/icons/obj/doors/door_assembly.dmi b/icons/obj/doors/door_assembly.dmi index 691f53a76f3790833b45cb7869087533eef23d7c..3cc3b44b4a3e6448ce469230e5275a411474b3ae 100644 GIT binary patch literal 36832 zcmZs@2UHW$8Z|nA^d{14L`9l3=`|n%igct%SCHPj5C}*U5U_wCEi|QrO7BfTdIu4Z z-g`{~A$f!M-uM20t+!T&OlF46H)qbAZ}0u>lV}|+HA*rTG5`Q5A3u7i2LN~>;9^BW z1aA2eRwfSs_yGY=jlCbf^s@GJaQAj_a|HnZ^o*1N$J-*;!-q2SulEG?3|Ry{V`G4P zFcN++_UWhk)=gdxD3-$(pS+l+w0>HL@N{HOFM(sCyk>r#+9v?2E!o@YrKfg!+&$)P zj4{iQDVj>&T=->bGzI;#rM^|bVY>z!Sv@)tX17Je$`q|{x(~>Vo?k#$D~!>%44Y$; z3^~SoKbpLH%0J{Nwf9y2+S-u$jO$UeOLC6e4A<6go?W9HH|49h0`Sc{?rrNP3v>3E z`2E-UPB!5~zIZc7q0hFKDp!v_$0%@qiB{lD0+)zr1tlN6#e0wJl;p^dRCZU*8LN_! zX5$urJ#;TZgL9d;BvZ5h`zDI9$o@YTn(7Bc&-rbx|K}}on&(~N=Z}&q!ChzdwS^o~ zdx7#ZPpR((Ht|VJ5Yz>VI~5UoBCB)12Hf;>V|2XwATjyx1JtExwXXd0%6D)n1ea`Z z`J7SK)uS(K9`|wGx1NPtd(T_kbwQ7f0zy32-G=fIhJSr+M)jG@Q`&~_*Xp}M#V2=2 z?3854m!7>VPr2m!;T9(7ThU^C=AyG3;I4W4D`-l|p=kA3ERbDVDfY-##j)bq`*UZ* z0#&w~I(>LKm25X3_Teq@E6nmJ-(Ks8yD#?gYBlU?wH=-0b7VP8FlVdsNRt0`{WF@$ zp{yt4BwJe#9~p7u*UQjo(fWs4=x8hu20Rc6W!#|byk?Q5mY6eU#+QE?XY?ZS>&XlS zM4qGDr$9)1`-61( zKnAnsyu3SrqJ;%VQE@RIAd#jyNu{C-q&>X6uqCaJq~>#Tzbovh1sitm8{cEN3S*|)$NgKxRmx z-6&FfE?~P955YF);_|5X7XUmpG>l27Zk5UU@Zkm!()mIO27}$KP>MZJ?rzx`ed6)> zIVWKCYcsrK@tr0sJv||%=CY(|^+G5y$3amj_GnP{y^ZiS7XlzY(6KbUoDJ7Wt=;=| z)utjPJ3$g35ab9lswV1{&N^gRjEdLxg1oS{&Yo~YvxkL+eKRQqLN+$+g9D9>j1+U5 z2fGn2?M9!5q#;2X6eq#Xf6gxmJnjHFuf$D zut_^eS{-{p{5~zMkGr6}Jj$>*V#1N|c7Z(p&OBvd3ulAhKG76K8zh9gynJ_S%aJa? zQ4wqp%MDoB#R&U8%c!WfW6nkjljhTQG&v=okC`6jvTwr+dxJCZ{O83NljX?Hqb29k zrgeA?vLQt^CTF~?c@I;l?`c-esa8I>xV7)z1;&#il2J1; zW=L#O+L2X3otSX^o*&Mb&`dsWOH#JB>C}+B$uoL)fBI5{}i-{(_!<}+6>>nF`dC3iWlA6_nO*^5T$@4bX}l};%7$`3e!z|B`PFM95;4?KeW!I2 zoDN2ay0LdjpWBf4h#Vt-_4d1;`S`F@kv`s+F)O<~&s*^`+0sI)aC5aRyVog9v5p$x zs`j*kr3e=J`=}?;fFdr7_rK@zgiX{M-#%A$>gxYIkTF0xO%d|x4{fZz=W(-ZseD}u zUWZvpc?QHzLqfJx-s^SMdgWPvwCJ5Qp-Du>5TN0-TiD54C)(^0_=)7de)Uk*$e?>$7 zr|?_ZL8}7lNsIKh->rbgR^q0b$xyoShxf^FfMR(tRoDI7YJapFm)*KphOANdQ21@w zOLW_>=hUurdIb+r*^9)Nz=CZy9~byw%)iU@D5|LA6cu%w{7c@QAozT?EIX1`E!kEJ zfqraiKJXyKqgqUyi^!?Gs*ab2V%fP^);#^Q(Z?0Fy`=bIjDf>%=q}Q6gTJeMx%R9z-r=j z1+)knTw>FkE)A)fKs4N{v2ykDQ@gMcybPn3zaveXq_3@JYWTuYRsXWkdR`qN6NHPP zoiNhoZCuGcr!_Fr&XBiDDExBUYjovtJ}G#!0n-le-xp1esanYy^WBBm;XYuc53w)& zaFB@Gk_hZ}NJso59}31z>l}il*Iq|H3VIS4@t4<|?_PnKeJ5$pX&wp~?Gk=eepoUZYv~ef&f`?c9RIXK+SwBB`@~PKW(JXi!PwUJFXJ2Cy zQXRD|-+z!U9GU$q5pi%kj2ig3UiP!HuX*>SnpEIZp1LD$`k2yffik~=%;nhLUSr25X|2A#mVjL*QxX>8@^ zc;%*1jE)$yGt}%sJi}s-6ZRXI&t}3D;yJY`j&?T3piS=Q{YA6jpnw;X zD(AJvUAjJKA^*k7!Yk0rizqp`5mi$+Ekap|j}b^S!(2$lK?I|Fp^N;3Mx0-0>-gDn z81-aCdfG%;xaFGW2u8+xt!p!GM&Uw5 zUn1TQZT_I;{sV*=mZ9yj^y*?uVV10nu?x%2~8)% z3e$2Xr3@~|DBXORfJizFsNMaAI2grUz+(;~s>HZZ($dmWft~cIleM&_N#c#h-ri^28H{LFR`TMz`9rRQD#b__A34>hDeoC!w9S}s@$T?VgL zPJ1boK|NkftUN;_LhxVqr;Ix`|9&r#iTT0D0*&%3BRGB&dGptE-z!Qmt1LV9!!WkcKafzVSOfs&{^(D%)1t(a{5c-o;@yfh%>{2Ps8&; z85OiT0%wl`w!>e0C=?zyhcPG5b3McQ?#=SD#(lWB^b#^RNSeaBAK)#d^hR6ry+k#) z;2td$%fuID?|&8y@L@Ap)_KLhg;eDvtwVuV39e-ayU}T=VWMajM<@2<+Ov-gz1a*p zUVP6=_^MPKgF4HP&vgv{XnDq6eTF;kRaZeZS5>+nd3kv$y^;woHRSj7@*43-6u91G zp0U|g(lan%=aj77gJ@b`hRWk2htVZX7ooJIT|cR%F7!rtGWtF(M(~$k1DJed{_RPC zp8ftt8{l!VU5BoKx|GRR^ruMIb-vhJamorWzX#7d$}ppQTRV^QuMA4~)KVFvDw4ST zV6F=&jc?=rj(wCL`+PK)%fPSvas3pdxV;Nf%K$rtHWUwDkLq?RAb@qdfI2%9j@)%Dc+mTT=# z$FdleAk;Z~h$@GybbSu|la3S?c`Q^Zo{lqId;7YaCnm?IYkb-4T(LvsY9)(D285Kw zXXNWb${M4wHM0#KL(2*BL?P@MNBIM|@mBKvXSVXpXK)LxboI3I{$@Z6xyU>VO2&w|f2&cYc~{ z<8g~=Fs^(4rHlW866T1pWg$xJMzbg8kD6}|NL>Q{Y`r!~bTDrMtG!Io2$vm$Y#M|La+WM^_@j;dwz`I)<5BF{t&e zEn$~)Zz1kGyh**~$BW~mb+5Ac(j@SLVA;9vyrev1 zQ&1m;gM>jo%&b63Awpopl+gQX?giQ_^|)@ao-kHDn7uK!_m@#p2b$^A0$u= z#;(S#I{|)j`_A3FFaDft4iE2mUzY8;o&<8Ru(PwLNca>%)04kyX2gh!i*M}hb$w1{ z`T4V}eIeRlNIEk!lLNC_4krY8=m$h~h~+Jv4YBY(BK1;3`bX_2p-137hn=4|_`a+y zD=Q08mFCtnHhu#J64_@b%wz?=z8mY9n^U&pSZaWW;?KawM{I0k)E%H=#W91H1svD%v?e20tk z+4aJ*F`EZQev)T9(_sx|m5YZ+GpWF{d$6>du63&nwtYi6cz~%zzRv$E?##0_r%Pe2 zWj8~rNe~C16rpfBHQ)b^LV)k-@hjFJ`9B7zSuHuL|pX)vjaeEQ+|nO5+XwBCW#JhyX_;Bx{(0 zo2#x?5+rebp&teUh5Cbcu2#Y!(y%Q?Nn2q6^}22IAX;J8_`};siGBBL(#$5tF0QkO zvQKnebiogpAiw;)pzMEFE3MFU5Y5dSgWn+>!s5;mumGlBgnObKuZEngBk~fYW0r(( z$PrL9$FMz@%?*Xct8Twtc_HCbDgN{1ER|T`Q<>5ezvO#1l`tnaKMgm(^_xhU@n;ye zMgAd(={`OU%?Lca(xkL!(n~~zG0pymX`tT9dTD~zAZNp4)Es5hlpokxYNmhVHbKpia1c_Z>Zu{ z29L0J&nyhDkEB*;jq;bR1f!742C)As3*c5d8jhmt~HqdC@ZfA(uc_1&Ft zKK;X4kZ|?*m5;VcXXgmMGcB`--0hX!>B&F!3jk~pW0(% zX)l6(SnKszuQ%BUT5SJ1{E<6_GZ<~QDDQSUgx+vT7<|&c7}i?YWT%2@o_3b90fjy2 zz@Lvx+u>CC*s0p1Wvv^*caAzHD-6uc-d?V*VvsM34cjJlmbr-+qtb9~MF^``yZq0W z_t_7yfy$sXT9+N=DX!a&8(Iylq87t-_DHI{tvO3h?iin^&Q~SKS6%iI4u>#fR%eu# zVI9pFOWr9m(+z{ zs;CM|(NmpwtDn^iemy;{~?^v3=O==#(VkA^7pBK4%L(0=5OTQO9?lr0Zi!QbJ(=pPREjFrW&M)L zMi!iP0df5Ir+IYBG6q_7H|zbw+~vFp#}SEy(z)t^T#-A*g?G(hK+5)4k*QJ&c;8)L zaRf+#XnLp(p*Zvq7n*YDiJy)KMiB`ehqdA^sl_cfxAzl3?G#w}+nu(*kBthW{xy$t zKS*lE>cOyh?{rH@i%4I9@ua#|HFdr;*bk7t+Vk>-91Qu(*JC0>0}Tj6Czy-si` z6yUD0`cow7J|>R3;<>q`LP`81g`0B}BSx=2;L^R;6W)Q#!-#`UM$0@4*rAGg*>xf> zobmuMW*(<=44x6pG{^7tc=q7xFJJyfhn!qeGlKC6b*?wX1;m@)&rO7JCttfA+lkMv z8D>b|Rte-l6s1s4itT^L#^{8qkAPUaW^MuB{AqYMgwUG=hkkO%XpZ4#_|k>v6#_A_ zSRI2j|BmV)4n=&~BRC3K=MR-V{tbCA!b#?ba)_n-Gi_1B7AuIQjk@q`z`BS4>3=P-sU;t zT&<|aM!CeG2JJ+_bPW4^W;T!I<}vlB7T*1Z6m)vrqb1@%98P~|K3QmLO)e87C|i-a z++h8-#pnYRy5@LAELz?TL4nk}rYfIX;~aEz9_>{C&KNaw;lHOTt_3A?kf+KA!KZS}P;2rB8QQOUw9CERY;JRpdHG z;wrHi#Uq@8jtkMyfQv(=m@T8Q#|rbX@AK!IPRqU8kJ9MuG-7gHT#?p10zvOU*+|>6 z=4S{swJ)JLi5g3smO2}zo@*yuvONK&Fomar!hOb+;{rM&2Rnr@7>j3 z`#w^;LE?5kWh*Dy{5hmhJyd1g6yBn;B2OLnz@wZI4+)qH_|1Sprk^v0Zzd+_^Is&IA%wMM+fq`Z;mP;IEx2&V(}5J1)Ts*!eUYwLBJRY;pv>!+z*7**Q9qV>>Bb=v~_Vd6oHG)y|W zL+3h}q=N4pZ-(MY(5igDB%`4H<{8})MI9JqN3G!RaSynOapSNQWMW^0AETOQUN0sX zT;=hz2jQU5M3 zX$ev@Xgi+(p-!>eD|sg6zCyC{R8J2dkn-NpQ8Y!P(H5_+($49u{4s%oXR0jmyNrG+ zk@H=s#)pn~;e_su|1wqfqLJ|$k;d5EWMm$NFa6+A{6Pk7}W4S{Y^D%+8u&2`S2RI!PQ8uqd!dqv~AZXY4c>`L9Ux zv#aYyb31ISdfSs3XtZ8<`fMg{|K7lZF_rxY;=5nAM%?_Cu+W+}e{yCM)1Dzae6Clk zXsJ&u&k32_*(Fy2MM-NT%-Z9aoZq@6j;;0UQ^*8vXz(uXGV^t6Hd9Qtnb;U|QW+^l zm`g)q$&5vZ@&c{0L|Uh(r#ym!k<-p+e_X{_M5LtNm^b(mPB6HLvFPgRaynS@fLNs* z|0h@xgOTUy@TuN^7?BsQ0p`&Cd-YEGYNpB>Zso6rUu?2ediznvOSYW$6PDH;<_ygK ze!lJO%D(YAX!{sUhA_+Z1?^_4$LbQFCyK&v+$Xh^#!8hF-xO&TFS&&oSsQn(x@$V5 z5;h~f^5fJ@?AoBn{pL@T<~Bs;RLFOIn;hQKAfhq~Bm{2^cWMgRIo_}}dyrMm;q}F+ zL@0@s4hV>xYtERwK?Jot=vPF%@O8&s-?z8)hrVmlH};QUM<9MGT-B=+bD-QoeUA5z zN%s6b$uegf8U+zKrIO>7uO1im)$^DBrNo z9k%xIpAb9W)e45>H)Og2H(PGS?K}TZdLODW4g3LOzq{@pqz_ux9jh~ul~^qH<7|jH z*v{17#5K|e)(pnj*w|K(9)Ie*@-49+xSpsQm~w%5+d`irh`nQG-(azq{;vps-a>lb z*PND13;G*BMqgeP7v`5?caGy3E&X;9Onum>6>kBqOn0tgU)h$jU1#fF{HPzc_9Ws~ zN@nmi`kc=cqqi^z$D1+M1NI6-*yT!Drj4B6KX(}z%Lb+v586a6m<6jZBH31}YZeZa zJf8M$_K0Z!e~Z+wr0kZaoE&`p+y*67@3Ecc_TxjJ2lU;k-AR^CLrDvkH^D-h)08kU z7<(j;O4;AD*Lg>|bn0xbf$IPYyX7vP6-ABZBaLRglgRwCVnAElogs-Jr(!_;n+K18i_O?cxKHzvA+x(<{- z&?i44KHjm*8ReZbz9m9`S>d~hzFoNa%((L5EK!f93UNqc3X>FG9*E#7t?+=5gQRsY zoH*G3Tt1b>I)qV8MZ6^EromoYNQUF3JACHsHL|o!`1H3=MVCL6=&=IO7^LVN6{o4M ziK6MvM?xH4k9q4R9`=!kJ!0N@nAW*l6_n@lF7A*|G3~7izhRc|g>U76^+ksGUD|hF zRi)4~RIYZCf&c@5t7X7y?C&2vSEz64v!x0Z+=C`YixIqQ5~#e%-UCU6e%~`!m@&I92>2H11}`9j3O9rPciFVG%wj$xIYuv*zM+>HBhz>+F`87^ zlbOw&cRyu)cd|f%_3kAC6bV<7hyqckzNHimydd|eAW%Exk+bL(l= zhk1w=wwl!}EA~pj4xw6v!li@L9>!JpyZZj#gV&=VIp*|_0u zn-g1r3$0VKi_s^ySnPK9G$!RtrDB>h{$G@Z7Z9y~upJaiHzM5_(KGCcQmi%RgRKQ) zoS>7W#++mJdX3H@q6O9rN~It)ERWOErV@viZp56j!OxcrKycXNd#L&k912-#`RtN+ z_pdwC(bFHUmKX5U9+T1Is&h=~!5f8r&^$%ZDyjO`oqc3P-Cp@Wu<<$kf&$cebxpt| zG2|n6-Y07qtTwT(?E&lc-b)74BSt5N+)l^9pfeeoHgNYDmK2HsDGz zCGbPJB%!XJUqcNA>M-AhLWpSts1Lu}gF}6AP*Bitv7X118|NQetZYC_PxYvtw>O2* z(<>Ui`C&8KzYwxFFg|6i2DoM;q^j*F|B?In zS_6BewPq#C4oH#7NlAokzXUZP_BP~KS_XeNqoDLgL!6hwZSzF46a^g%5aetB#}PHb zMRkW>otfe+2i7+YNEd1|jEAyKZp) z?U2lXEf7@QPLR7XJjw1iyO@LkLw1{QW>2;V;B8h2AoCL}>3T>0=rO*T;7wKXlAup< zH&IC3SC8fW^qe8teO+RWV?$=bzISAN`K;V&p>T1!=h#_%*y)7Pzb*n_cQeCD2LY+-@a1V>ZHw@tzWFm#u%j}*}(L; zB){-A{(=?LLtVN&M@q9o8^G9HPyqs9W?r;y4>5Th2iba8>(wrg()#z%CcX!|tL5^v zo5q_5CBafn6Kk*Ql6U3e^Sc>7{zB|pjb0DlK#8@=ym6VSj=ujXDJi?EioU0(CpVJ# zhb9P@4fyEITou2(IHpsq4Fz%SUEgGv-vAt*a8~;w3^cp1DRo7@0S7Lka@I zd&t{F@8GMhGJkFS?_a^Rf~Ka7d8pH5iHPzS=3rv2X(7w$|Yf`I+Nfj-QVZSb|iT_P@FWldcxCJ$DT^+!+f zSQ2t?ZVlNSi-x4;Tqj&uIG#2!hQ%dpeLFv zX2L7fB0liL^*X47Tz>s?EWrXSI~CH!5Z7OdP58a|OTD%LD$E(`rlx5tN>x==(WCew zoKTJe!b~{!6_`wpXZXR&e|kE_Kem%TzA`deU-oHT{$+%%f)ifMRPZf{kO`QnRAYk=cm*_ zuZ=@@76EDDVGc#9_-MRs<^RcK+!xykuY>k6Er-obdyq_C?CWb=!sTzD2-EQhTP=h) z9*5e^e+19^@YSfkf_xmZ8K-c1j%*pq1Eq;8XHWWrMHsMoG-YY};j8Nt*JgNyfpkE*3 zdZK>Nv>#)a)4Uo$jzeDJXb0rX;qFa$Zr;94fDATjbek-B=6^Dxh6nJ9h`8fFDl7?i zzzaOTdU|Q;yFM#jb+%8Ct-B?UUzwZlG{}8cD zY9?H}V?7c>Uoh9q?sEJa%FgnUG)0Dfam7uxHe;?9FfIY$n@K`1`tCBi1{uZL1=BOb zwAgodm8dDFT+N51=Kda%IwX;Sb~yUsYpc)EFrw8 ztkC(T3IKnaebcbaj90p5<=0Hok5`o@0`Pxi=0?d=T0sS%-)Agk+c2`_C9Uior@p&J z4-a``9{6cf^8oac^E-a^o5Nj!Df*O`QZr%;r!o`63E6Q-)PO0xo1KF2+dUaQ1&38s z{4u(UQAKYSWXA5O?C)>SJKh|{OX5l?;YNw&C+NUKUd5>giy21t)xtV-!oonW z>$+NOt+{h3t9M;%?VOd|?$FyT_SEN0XR^z-PG!Eb(4*GE5%6^|_-hegERJp)b|p4J z;<`qDP1iQGAcWw47Y;=v#5keLwz%dCZFxB7{62wVZTyaX=d?fOushqbf(Vq~4?rB( zT0qV=_WGcs)ed+<6eim;&`KD>!uD|Q1J^I}My9c~p{SYF2Yr!hdh}e?F8`K*ITV$bK-g;s17`grX>bKad%hx8*1`w==I9XSEWM zd`!xTd-s)vzTl@CdE#O@yplo7j~*NlSnDvt8++JbGq0VL7psVaFKE6H7dI-yf9?^^ zWGB=Cjn;Q12TRJ}q!_4mbJo+O(K(HCm`V#~~e!Y!LwqbAP2* zS5`w=m;fF!>9PC@BDo94<6{(!C9_(_4R*N3FZBOe^QtF@w3LURzXR0iA8P%QOcc%si+C%bPA$mKuk7T+e?=h| zSwDWntIVnT9Ll`W&x*?xW!day;F&%W zA|eG)|97Q9_bIZbayMtCjo+${{Gw)*OL|JgA@QIW$&RK0>sY^HA1$W^5`W{H2{~F5 zd{6sfJDlyYnEI8lZ7@xg63G5vhYIk|QDSnB;s0`!)XY$t5K6JpHN(r9%c0f}>$Ql5 zDN;7<0U&p*ZOiwzVX10MUj&o(Kq6yD$jGLZUjxm+myu1K+0jsm465@+xjP(EK-$Qg zDrBmzIo?Lq!c;jWF>a7xH^tVQugmBhb9p$>L{-u&;qN13;v)Eeo%^4gWzc>ym;Nht z7byC7wAg4VRKtjz8;`CDj_cN#( z#NZ}a9O?y)#D^g8aNqore56&d$QHph|I&yjVFcd^@e=m{d)eYJi;~UXI35ffhozp9 zSN^t;=1~U;VuVE$S=>7BPu04E4Lg+-XbWH&bV?6gZ+?wYVY2wIo8`RB(7@2J3nYjG z`}gplpDR+m1;=rHP(z^rynTGo73*AeyuXxK0npIW*i74eAJ#BOmE0GxwDf|lSSF0p zh%IVNQ%RX%JM&m7JrIoKE$TR}CFgk+!FQR3ue;c>W&@UpE@MfHvc_v(LZAN;Yxxf5 zD-C>5lmm8W)omn4<;sSFNZ@~BZf*`*)c^pLfYKmLrf6==;j;e4*)BN?8`)g&#V$pw z%q>M3!}{{BEr2&>Y54^;1qCRmE_-e5?Oi!bFv7X!?=@ez0^1P)v?Zat)pL_s3k^$la=<7m70I|eF+e-TfMXd zA=T6FEf&=FVj&RXpFN0DHsBa&&DR70!(#FBG;wQ~QwAUxx_zyb^UzVz`uk#ARlv8o zKLmJath1&jQOp#6bD3Mt5j`Am@9pnTWG_m2|DNXl%vDLn`a$B3P8EtK9&9TpxaBb{ z>1JGD3PhFz<}gE>0imG|>F?KYp1B(j>(Mk+*J9}Ig9w3+Fu5xm&ylSMH>S%uu~R=+ov*flh29#^e>@gEp(S>WmU6As=WJtubHPnvdiavb&NLFbIB2YDtyok17d#ang1u*?iBH1GIri>->1NA2FTaQ4N)QgaZF%6#}FmJ5&_TSkEf! zf*v~`3Q;<)WNa9cmLZlq$$3& zcXYsgf`;@9{C-G%5_tS_eAqThMClC8B!)ZaM-K_e9E&fi0l3&n=`{N|YD=MR2pc1o z)8No6nafDSKlq^>0JKWm?CTdBcnBspXqOsBGxo3%U$pPLN}U54O5f)542$*51Zy6b z8pZ{8`o3!Z=UO5iCPiwW92DzQ~NT=!^)=5@Z>6D3#d?-%y z+&=ufaBcEXvl3`w+F)XFG%Vx^v$ijgzJ^g+e6scX?g5&3g*?BD7W;GA51ffahk4@< zxaZ{Nd`PEKlVqn)T4`|0Ya7PznIa89F>6KT#>L0nhzq2^gAe<$O2c1aAB8;!eF_Xv z-pm8#Hi%KNX^rbkpmpV0z@W|j#i}U_@^2?%{DWw`koCD=yR<}4(!`xUIj3W+cD?3< z&g`Vv<0YtDG;7_`QOpk-nk7G{x5!yC-Q(w0mMrT00ZNj6>y9mt55+w1SAP4Ws=$*3 zVheDdRM{KzL73~@`qbxn*zth><>{2ikUVl>+78kANx<~=5B4u3OlE?92zAZCQ&;zR zRpSe@rT}rkLyn@%Xx2}cZji{R!dHfEPE3&$Nfk-G~;0+8}TP4r~=M_`wZ+cSX5du6OuvQChqp zObzX0b*fRf;lz-v?N9HuH~K8?dV-bR?&(&1tLZ!zx8^LY{QIlMQmEO>{nYZ^Ob#z} zyX+UkE~)wj-`Vrg6|_gQmODt!`!Cwq|@KVmlbTZ-bCl;v|Ph(jQ)f zV-_>u4)!xZaX1KQ=X~dyJeIAe`@N0B=-VGl3o3m$G@XSqoh5Fn^Ey?VXG3}zAN|V% zYd$(mbTIbHRZs2UnXcI6_)V_6L|OoEQj)NMamWWQF5u=$O=!+& zKz|0K`lm!iJZ!iuF7?t9|0CzpRJyghzbX~WpPe6amIl}-jisWui2+lsAT*#;f#3wE zFQ=+pDt=5Ue>R@*g=@s#{+L++{X-7^M{{ZIeL95zwwX0tr~~2y3312Tn-Vfx0GnLc8sV!YPF+)&> zp-$uht8&|aORyg>?-008nmg|rL0?`>I?n%aHHWhdo92D&D94<4W2%|xy&P*eQUXZ7VHZTf>ZZZs0krJd||rOSI-AV2J~mg z^C)3fL*L~NN6TR2LCY8f4gbK<8}_yRO_un#r)@~<18}j)ylA7Cc>pWpwV}Cwkha@MIs6cF<%O?)ZXYTc-FPkVf&cz4Kz{tOV{Gt? z_2sLl;COvVS#2!KKt)&p@HQ}jvHEuwdgXAt^8C*Oh*y0;ih3@MyPAH)NWXZfhR5Cx z$Le94Ai<Ej$xn$s+5=C%oiLEWmTU908wW-4!FR=RfSfL;k?Inf_{r&tq z4v=CE$7!x4%*lI5kXWW(eF+G1&TCO(ip{EW43rK_+aNR?pMLTrd!~x~T>P&xLrIf- z9C&~kwdGN?oGMnCn^lJ6r~|RF4h~k@sOM{HKVJ)X5{{A0iuAY$T9Le!%`WbiA)$Eu zmEA?GH@x!kNLQXz)xfT+ii5+~K5@2@Z?#r`^!HL$y3G}#On#n5302T*7%6K#HW#l3 zh_b_Gm;#102s?G=EjOX-*(BMbR4@9fa)c)c9Z5h;0)2p*8gLCPGRLta{vYDrJRZvL ze;>c?3E3mkhzgM{A=^myWJ@W@2!+VL6vL40d)5kLjY5;1FbLT~l6~K^@60e}en+qO z`~CU6zu)iwzen>xGiT;L_kEu^=en-v^?aT!Pm>_{SDR!kGV9Rwn+Bx<)ZX6y<@tzo z-hup8-QCHQj?vG3Pi8BBNsTX7o@$K+vcT_UC%J=XUEdN?)_x3By^w~Y>ZXhsi33j@ zqWhoB%HFK6*zZf}t9sKLY=vXpB2;tP>5q>FmX57E4nF*nyl^9LV2HJ3;J<%VqE=&N-w{l|7W)t)UT z%})z0DZI?F`^q00)HZbgbcrXc1(ePOEfXrY(XGg47*r49(SwUNMfYFOT;nRMsNh#r zR1^f%Lu6v*<%tvWJcZI6B#JYUUMad4e!1x%mqQ@B-=a55O}qErTZiBf&Z@Nuo)(Zq zY|{AsG-$nkRG(r#V-m%}n)ijF6t%6Ry6($fnpfX45s&S^9W zri1WKPv*?1bQeCt&AUh;2Yg5Wa5@G^8GqGR#Y2AtOdn@WV2o_s}`Q-IwHFu z^GmHKaFJpz6`TZ#tY)iS81nlpikCgz@a)J7ubF_AQy@%8*_*Ynh3mS zuXyB8r%|`IPkWPBXFV=y!P}yg39CXFBUhSzr*Kwj{ns$A*fCuy_=k1X7JL)u_Ta%8 z3TSL>#cPV5|BQ9(EyGkM7qYNy5cPcXX7E}Y4K+3HdBaxASRf`3MIe0*72yUl0`a-YFwQEzK@;?Xa=H3L}MPL=J*@MaNB?#8SZ?h@+*wJ$T zS#D;uEOMFC=6v%eMkK^&z*aINzna^7Z>8ap@$d%Dd&|Q{Xo$Tg6O1niOaQAUf2%>ODQ=_@Cb7Z_1EivGg5 z`xpAMj1f-;vayG2)xaS-9WM5lcoQlsWkv3PfzF&c6A~TW!tGe&-CHaMc+#laumiSwT>g9Z-RaxC9N znI8~=0UVr@DoLJ~AnEWk2aCp3vo2wKmf<7o!pA`}2G+4!?+V2GhvoJSvHTk3#T=rh zoIm@67`Rn$9=j>9Kk=QZ-a;lOCO97k1_sFQ)vH&2_8Cz;hbLR2UJhh0bk(vs)@)My zZUn$yB?M`sEma%}lgOFnK zgXXMIEva`y?cf4WRLsARiGiR$tE+1F?jyu+M#1X||(KkJ3eF;gB#ySL}qU@*97lzpkk3Ah45X8Z+(mX>Wz7WX>W zmv{=FnMj!vFhA`->2?2$Yui%?@wZ7R8IaA%A)9M|HcB58@tXZ_D=o4kuyZS~B+j>Y z+-S+9=-YfNtSE_n9woUIE!*}xgh6QGiE*AseN#OBV8XgjmL?1Lqo}q_~b`hHw(C^8^cF+?jORZuX z0}D~k9-g|A)+lNgU9G1a7uT9-HQM67HI-y}OfW)oyRKx=nUAz)gz~8I!;%k3x}$(g zVuupLY_g9$qw4K#e&?(E zvK1bKJ-B>Y)bvDn^YoLF++3Q_(9q&NV0a=lhbL{LbI$S@Q(*Uo?RrK!x}F|P20YqW zrKEyBvr3&mPX-1J2Q=Ly<+mRKDwRxKix%KRQ~QaTEZApWI}&oJu&XRo|1eaM@mzc| zOxdt_&jW}7Fhh2@=L47KM-WrKy8{>J##Bch>gR=ru4ifC5>dXNbGx;G@0fmh2)wQ{)`MoJ+`YiM6Sw9NnIGBKJ|s)!f)zBV(5UY(Uv)WEyl(R$D^v39&6}NAY7N$C6~U+mt(*^K z*uxsU9ENbp8xFUM-yoIX3{M7@a4oj70e3E93FfDdy*8-_KWcT{rV)6|aNoWc#en47 ztW}T$Qo)p)?C>9u+%%zM=}a`-azDX`)x(7q$--V@_pdX9#dKnC%IUXJAaE=PG4lR- z9OeHG4h%+auX0WYl*z~931Tsan-tJ~S18@3cs9LgFEy?VpS9{y-#wofv$2g`-#J5n zHE*QG%zX3IUKaq)*rPH%ifP@}&6pT1AnWGpp}V?G6F^;{pCRwypahe+&%sW5ubve! zUKw!RF7KF=#uKkBoUQ$`2mi%xE6Z)#2||>mJ^%20TD>N7Ei7wI7IVMSGGpyZlGs^) za{7^&X^m!URuE05(E5X{)TeYoRxt}2-h>4d&anVb%W*}f!&Mp8!`EMzKG~7g=X)#* zi?Y3P8d>VgK^DI45H3(d9V}|xul?$#vTX}FRgI2Y9w`i$j0L`A$$+aD^L3`Jikg#s zu{Z3zhv9j3Pa4~0kN#}x6;YS@mx%WIr=SM$&)KM;04|jDucp66% zc3Hc zcAsq?B6O(rT~EYWuJZY2-94T==4Ks#9B4LOM=xXQ%$iW7qx~m5yi>u!uvR=7F?Ia@ z_H8$%=k9V13`eYTWcj_JR*@6_T>OT>m<*D$wkMJbO{gB;WT5uyOuvAmsD0X69lSa9 zuVNT;Qs=q^m?qH20-nK(Z1O?oGf^2CPZPo%bzz zSd_s#*!{m^=iH3gx>b>#(qs&mY_GyVmdYuwI<(#V<`alC!!0OLDTHaxw z(vU_A5;B8NwLovv9N7~7O=T6_249JNy36^>v6|R=0KJ3KneLZbP$m8sqrGI##S|Ay z^WEsm^qsbsU%G|Pp{4)Ok-lfL3+q?=$PdpKjq6%UlG%QIJoi8GcZAy!zaLEWib)Z9 zLboD~_xYb1y(>qISr^t($@t7=*m;7voN&M#<;dgqoCGe#tFgGo8F@vx?=g9G>$p-O zZpcqYv|9aESoEt9RE0YIP`W5T^!d;%dFmVTa_{@^U`Zm~h-!~3C9Vs)%yoO68sak_ zG_3F`+m7!w0`?+3n5mBg^Cd0Hxv$Y;SR!-NzF_j1JeN7gv9Im~O}2XP*WsY{RawlD z{gu}^Vz56Wu8Q>d*m9hM!(P3gb77A6s559TNRHa2V06iZ^{rmZuhM~N^c@jJf<54u zyboIX*RIp7KRi*{T`}rH$G^*zmzP%$YGfSysX^GSXf^1vxyi{))`&0eVfY?eb)^%V zKLcle>QqreFKA|>#pYiBQ!^s8{H2s+lpL8+ru9_W<2hhTW|u#-wY|$Oj=4~P?AeWm zu$b(WXmO@96)Wj*B57iLC|J!o?T}R6QCa<&uJ}Z2cvxPDgo ZK0G6%+2-U*_U! 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

degDZ=Jwb57gycMyzfxY&U;~ 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 literal 36379 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 l`?33gTO;O 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 J%Q~loCIE Date: Sun, 23 Jun 2013 20:52:19 +0300 Subject: [PATCH 3/5] Quickfix and changelog. --- code/game/machinery/doors/airlock.dm | 2 +- code/game/objects/items/stacks/sheets/sheet_types.dm | 2 +- html/changelog.html | 8 ++++++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index c0b5f370fbc..443eb98b9ac 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -296,7 +296,7 @@ Airlock index -> wire color are { 9, 4, 6, 7, 5, 8, 1, 2, 3 }. W.ignite((temperature/4))//Added so that you can't set off a massive chain reaction with a small flame for(var/obj/machinery/door/airlock/plasma/D in range(3,src)) D.ignite(temperature/4) - new/obj/structure/door_assembly/*/door_assembly_0*/( src.loc ) + new/obj/structure/door_assembly( src.loc ) del (src) /obj/machinery/door/airlock/clown diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index cef4c6dedb4..b421b5aeb3d 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -49,7 +49,7 @@ var/global/list/datum/stack_recipe/metal_recipes = list ( \ new/datum/stack_recipe("mining airlock assembly", /obj/structure/door_assembly/door_assembly_min, 4, time = 50, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("atmospherics airlock assembly", /obj/structure/door_assembly/door_assembly_atmo, 4, time = 50, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("research airlock assembly", /obj/structure/door_assembly/door_assembly_research, 4, time = 50, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("science airlock assembly", /obj/structure/door_assembly/door_assembly_science, 4, time = 50, one_per_turf = 1, on_floor = 1), \ +/* new/datum/stack_recipe("science airlock assembly", /obj/structure/door_assembly/door_assembly_science, 4, time = 50, one_per_turf = 1, on_floor = 1), \ */ new/datum/stack_recipe("medical airlock assembly", /obj/structure/door_assembly/door_assembly_med, 4, time = 50, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("maintenance airlock assembly", /obj/structure/door_assembly/door_assembly_mai, 4, time = 50, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("external airlock assembly", /obj/structure/door_assembly/door_assembly_ext, 4, time = 50, one_per_turf = 1, on_floor = 1), \ diff --git a/html/changelog.html b/html/changelog.html index 9172fde59e2..724a069885e 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -57,6 +57,14 @@ Stuff which is in development and not yet visible to players or just code relate (ie. code improvements for expandability, etc.) should not be listed here. They should be listed in the changelog upon commit though. Thanks. --> +

+

23.06.2013

+

Segrain updated:

+
    +
  • Airlocks of various models can be constructed again.
  • +
+
+

June 22nd 2013

Cael_Aislinn updated:

From 0d6e49742aefe047e9067810e8b63a223d638813 Mon Sep 17 00:00:00 2001 From: Segrain Date: Mon, 24 Jun 2013 06:06:00 +0300 Subject: [PATCH 4/5] Typo fix. --- code/game/objects/items/stacks/sheets/sheet_types.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index b421b5aeb3d..e9ce0e9c5ba 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -42,7 +42,7 @@ var/global/list/datum/stack_recipe/metal_recipes = list ( \ new/datum/stack_recipe("turret frame", /obj/machinery/porta_turret_construct, 5, time = 25, one_per_turf = 1, on_floor = 1), \ null, \ new/datum/stack_recipe_list("airlock assemblies", list( \ - new/datum/stack_recipe("standart airlock assembly", /obj/structure/door_assembly, 4, time = 50, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("standard airlock assembly", /obj/structure/door_assembly, 4, time = 50, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("command airlock assembly", /obj/structure/door_assembly/door_assembly_com, 4, time = 50, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("security airlock assembly", /obj/structure/door_assembly/door_assembly_sec, 4, time = 50, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("engineering airlock assembly", /obj/structure/door_assembly/door_assembly_eng, 4, time = 50, one_per_turf = 1, on_floor = 1), \ From f97f3596a63d2d157ccc1f8f36dea059f1cfaed7 Mon Sep 17 00:00:00 2001 From: Segrain Date: Mon, 24 Jun 2013 12:03:47 +0300 Subject: [PATCH 5/5] Punctuation fix. --- code/game/objects/items/stacks/stack.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index 43ea24b112e..551213c7fb4 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -60,7 +60,7 @@ if (src.amount >= srl.req_amount) t1 += "[srl.title] ([srl.req_amount] [src.singular_name]\s)" else - t1 += "[srl.title] ([srl.req_amount] [src.singular_name]\s
" + t1 += "[srl.title] ([srl.req_amount] [src.singular_name]\s)
" if (istype(E, /datum/stack_recipe)) var/datum/stack_recipe/R = E