From 36afce275665798594bbc4e30f38b3189f09e1a2 Mon Sep 17 00:00:00 2001 From: Citinited Date: Sun, 26 Mar 2017 06:37:00 +0100 Subject: [PATCH 001/123] Adds the RPD Now with 100% more Travis support --- code/game/objects/items/weapons/rpd.dm | 315 ++++++++++++++++++ .../closets/secure/engineering.dm | 1 + .../research/designs/autolathe_designs.dm | 8 + nano/templates/rpd.tmpl | 113 +++++++ 4 files changed, 437 insertions(+) create mode 100644 code/game/objects/items/weapons/rpd.dm create mode 100644 nano/templates/rpd.tmpl diff --git a/code/game/objects/items/weapons/rpd.dm b/code/game/objects/items/weapons/rpd.dm new file mode 100644 index 00000000000..f640b031e46 --- /dev/null +++ b/code/game/objects/items/weapons/rpd.dm @@ -0,0 +1,315 @@ +/*Contains: + Rapid Pipe Dispenser +*/ + +/obj/item/weapon/rpd + name = "rapid pipe dispenser" + desc = "This device can rapidly dispense atmospherics and disposals piping, manipulate loose piping, and recycle any detached pipes it is applied to." + icon = 'icons/obj/tools.dmi' //Apparently we can't use double quotes here + icon_state = "rpd" + opacity = 0 + density = 0 + anchored = 0.0 + flags = CONDUCT + force = 10.0 + throwforce = 10.0 + throw_speed = 3 + throw_range = 5 + w_class = 3 + materials = list(MAT_METAL = 30000, MAT_GLASS = 5000) + origin_tech = "engineering=4;materials=2" + var/iconrotation = 0 //used to orient icons and pipes + var/initialised = 0 //This stops us unnecessarily checking the cache for icons + var/mode = 1 //Disposals, atmospherics + var/pipemenu = 1 //For nanoUI menus + var/pipetype = 1//For nanoUI menus + var/whatpipe = 0 //What kind of pipe is it? See code/game/machinery/pipe/construction.dm for a list of defines + var/whatdpipe = 0 //What kind of disposals pipe is it? See code/game/machinery/pipe/pipe_dispenser.dm for a list of defines + var/cooldown = 0 //Waiting for something to complete? + var/spawndelay = 4 //Adding a *slight* delay to the RPD, shouldn't be very noticeable + var/walldelay = 40 //How long should drilling into a wall take? + var/datum/effect/system/spark_spread/spark_system + +/obj/item/weapon/rpd/New() + spark_system = new /datum/effect/system/spark_spread() + spark_system.set_up(1, 0, src) + spark_system.attach(src) + +//List of things follow here + +//Pipename, pipe type (see construction.dm), pipe category, number of orientations this pipe has, name of pipe in the icon file, is this pipe bendy? +var/list/pipelist = list( + list("key1" = "Straight pipe", "key2" = "0", "key3" = "1", "key4" = "2", "key5" = "simple", "key6" = "0"), + list("key1" = "Bent pipe", "key2" = "1", "key3" = "1", "key4" = "4", "key5" = "simple", "key6" = "1"), + list("key1" = "T-manifold", "key2" = "5", "key3" = "1", "key4" = "4", "key5" = "manifold", "key6" = "0"), + list("key1" = "4-way manifold", "key2" = "19", "key3" = "1", "key4" = "1", "key5" = "manifold4w", "key6" = "0"), + list("key1" = "Pipe cap", "key2" = "20", "key3" = "1", "key4" = "4", "key5" = "cap", "key6" = "0"), + list("key1" = "Manual valve", "key2" = "8", "key3" = "1", "key4" = "2", "key5" = "mvalve", "key6" = "0"), + list("key1" = "Digital valve", "key2" = "35", "key3" = "1", "key4" = "2", "key5" = "dvalve", "key6" = "0"), + list("key1" = "Manual T-valve", "key2" = "18", "key3" = "1", "key4" = "4", "key5" = "tvalve", "key6" = "0"), + list("key1" = "Digital T-valve", "key2" = "38", "key3" = "1", "key4" = "4", "key5" = "dtvalve", "key6" = "0"), + list("key1" = "Straight supply pipe", "key2" = "24", "key3" = "2", "key4" = "2", "key5" = "simple", "key6" = "0"), + list("key1" = "Bent supply pipe", "key2" = "25", "key3" = "2", "key4" = "4", "key5" = "simple", "key6" = "1"), + list("key1" = "Supply T-manifold", "key2" = "28", "key3" = "2", "key4" = "4", "key5" = "manifold", "key6" = "0"), + list("key1" = "4-way supply manifold", "key2" = "30", "key3" = "2", "key4" = "1", "key5" = "manifold4w", "key6" = "0"), + list("key1" = "Supply pipe cap", "key2" = "32", "key3" = "2", "key4" = "4", "key5" = "cap", "key6" = "0"), + list("key1" = "Straight scrubbers pipe", "key2" = "26", "key3" = "3", "key4" = "2", "key5" = "simple", "key6" = "0"), + list("key1" = "Bent scrubbers pipe", "key2" = "27", "key3" = "3", "key4" = "4", "key5" = "simple", "key6" = "1"), + list("key1" = "Scrubbers T-manifold", "key2" = "29", "key3" = "3", "key4" = "4", "key5" = "manifold", "key6" = "0"), + list("key1" = "4-way scrubbers manifold", "key2" = "31", "key3" = "3", "key4" = "1", "key5" = "manifold4w", "key6" = "0"), + list("key1" = "Scrubbers pipe cap", "key2" = "33", "key3" = "3", "key4" = "4", "key5" = "cap", "key6" = "0"), + list("key1" = "Universal pipe adapter", "key2" = "23", "key3" = "4", "key4" = "2", "key5" = "universal", "key6" = "0"), + list("key1" = "Unary vent", "key2" = "7", "key3" = "4", "key4" = "4", "key5" = "uvent", "key6" = "0"), + list("key1" = "Scrubber", "key2" = "10", "key3" = "4", "key4" = "4", "key5" = "scrubber", "key6" = "0"), + list("key1" = "Air injector", "key2" = "34", "key3" = "4", "key4" = "4", "key5" = "injector", "key6" = "0"), + list("key1" = "Gas pump", "key2" = "9", "key3" = "4", "key4" = "4", "key5" = "pump", "key6" = "0"), + list("key1" = "Volume pump", "key2" = "16", "key3" = "4", "key4" = "4", "key5" = "volumepump", "key6" = "0"), + list("key1" = "Passive gate", "key2" = "15", "key3" = "4", "key4" = "4", "key5" = "passivegate", "key6" = "0"), + list("key1" = "Connector", "key2" = "4", "key3" = "4", "key4" = "4", "key5" = "connector", "key6" = "0"), + list("key1" = "Gas sensor", "key2" = "98", "key3" = "4", "key4" = "1", "key5" = "sensor", "key6" = "0"), + list("key1" = "Meter", "key2" = "99", "key3" = "4", "key4" = "1", "key5" = "meter", "key6" = "0"), + list("key1" = "Gas filter", "key2" = "13", "key3" = "4", "key4" = "4", "key5" = "filter", "key6" = "0"), + list("key1" = "Gas mixer", "key2" = "14", "key3" = "4", "key4" = "4", "key5" = "mixer", "key6" = "0"), + list("key1" = "Dual-port vent pump", "key2" = "36", "key3" = "4", "key4" = "2", "key5" = "dual-port vent", "key6" = "0"), + list("key1" = "Passive vent", "key2" = "37", "key3" = "4", "key4" = "4", "key5" = "passive vent", "key6" = "0"), + list("key1" = "Straight HE pipe", "key2" = "2", "key3" = "5", "key4" = "2", "key5" = "he", "key6" = "0"), + list("key1" = "Bent HE pipe", "key2" = "3", "key3" = "5", "key4" = "4", "key5" = "he", "key6" = "1"), + list("key1" = "Junction", "key2" = "6", "key3" = "5", "key4" = "4", "key5" = "junction", "key6" = "0"), + list("key1" = "Heat exchanger", "key2" = "17", "key3" = "5", "key4" = "4", "key5" = "heunary", "key6" = "0")) + +//Pipename, pipe type, no. of unique orientations, name of pipe icon +var/list/dpipelist = list( + list("key1" = "Straight pipe", "key2" = "0", "key3" = "2", "key4" = "conpipe-s"), + list("key1" = "Bent pipe", "key2" = "1", "key3" = "4", "key4" = "conpipe-c"), + list("key1" = "Junction", "key2" = "2", "key3" = "4", "key4" = "conpipe-j1"), + list("key1" = "Y-junction", "key2" = "4", "key3" = "4", "key4" = "conpipe-y"), + list("key1" = "Trunk", "key2" = "5", "key3" = "4", "key4" = "conpipe-t"), + list("key1" = "Bin", "key2" = "6", "key3" = "1", "key4" = "condisposal"), + list("key1" = "Outlet", "key2" = "7", "key3" = "4", "key4" = "outlet"), + list("key1" = "Chute", "key2" = "8", "key3" = "4", "key4" = "intake")) + +//Procs + +/obj/item/weapon/rpd/proc/Activaterpd(soundfile, delay) + playsound(loc, soundfile, 50, 1) + if(prob(15)) + spark_system.start() + if(delay == 1) + cooldown = 1 + spawn(spawndelay) + cooldown = 0 + return + +/obj/item/weapon/rpd/proc/Checkifbent(x) + if(x in list(1,3,25,27)) + return 1 + else + return 0 + +//This proc puts each necessary icon into the initial user's cache for later use. It then sets initialised = 1 to avoid calling itself unnecessarily. +/obj/item/weapon/rpd/proc/Initialiseicons() + if(initialised == 1) + return + var/F + var/I + var/disposalsfile = "icons/obj/pipes/disposal.dmi" + var/pipefile = "icons/obj/pipe-item.dmi" + var/list/filenames + for(I in pipelist) + if(I["key6"] == "1")//Bendy pipe icons + filenames = list( + list(I["key5"] + "-southeast.png", SOUTHEAST), + list(I["key5"] + "-southwest.png", SOUTHWEST), + list(I["key5"] + "-northwest.png", NORTHWEST), + list(I["key5"] + "-northeast.png", NORTHEAST)) + else if(I["key4"] == "2") //Dual state icons + filenames = list( + list(I["key5"] + "-north.png", NORTH), + list(I["key5"] + "-east.png", EAST)) + else if(I["key4"] == "4")//All other pipes that need icons + filenames = list( + list(I["key5"] + "-north.png", NORTH), + list(I["key5"] + "-east.png", EAST), + list(I["key5"] + "-south.png", SOUTH), + list(I["key5"] + "-west.png", WEST)) + else + filenames = . + for(F in filenames) + var/icon/iconfile = icon(pipefile, icon_state = I["key5"], dir = F[2]) + usr << browse_rsc(iconfile, F[1]) + for(I in dpipelist) //All disposals pipes have four states so we don't need to bother checking direction + filenames = list( + list(I["key4"] + "-north.png", NORTH), + list(I["key4"] + "-east.png", EAST), + list(I["key4"] + "-south.png", SOUTH), + list(I["key4"] + "-west.png", WEST)) + for(F in filenames) + var/icon/iconfile = icon(disposalsfile, icon_state = I["key4"], dir = F[2]) + usr << browse_rsc(iconfile, F[1]) + initialised = 1 + return + +/obj/item/weapon/rpd/proc/Manipulatepipes(subject, targetturf, atmosverb, disposalsverb) + if(istype(subject, /obj/item/pipe)) + call(subject, atmosverb)() + else if(istype(subject, /obj/structure/disposalconstruct/)) + call(subject, disposalsverb)() + else + return + +//NanoUI stuff + +/obj/item/weapon/rpd/attack_self(mob/user as mob) + ui_interact(user) + +/obj/item/weapon/rpd/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/topic_state/state = inventory_state) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "rpd.tmpl", "[name]", 600, 650, state = state) + ui.open() + Initialiseicons() + ui.set_auto_update(1) + +/obj/item/weapon/rpd/ui_data(mob/user, ui_key = "main", datum/topic_state/state = inventory_state) + var/data[0] + data["dpipelist"] = dpipelist + data["iconrotation"] = iconrotation + data["mode"] = mode + data["pipelist"] = pipelist + data["pipemenu"] = pipemenu + data["pipetype"] = pipetype + data["whatdpipe"] = whatdpipe + data["whatpipe"] = whatpipe + data["mainmenu"] = list( + list("key1" = "Atmospherics piping", "key2" = "1", "key3" = "wrench"), + list("key1" = "Disposals piping", "key2" = "2", "key3" = "recycle"), + list("key1" = "Rotate mode", "key2" = "3", "key3" = "rotate-right"), + list("key1" = "Flip mode", "key2" = "4", "key3" = "exchange"), + list("key1" = "Recycle mode", "key2" = "5", "key3" = "trash")) + data["mainmenu"] = list( + list("key1" = "Atmospherics piping", "key2" = "1", "key3" = "wrench"), + list("key1" = "Disposals piping", "key2" = "2", "key3" = "recycle"), + list("key1" = "Rotate mode", "key2" = "3", "key3" = "rotate-right"), + list("key1" = "Flip mode", "key2" = "4", "key3" = "exchange"), + list("key1" = "Recycle mode", "key2" = "5", "key3" = "trash")) + data["pipemenu"] = list( + list("key1" = "Normal pipes", "key2" = "1"), + list("key1" = "Supply pipes", "key2" = "2"), + list("key1" = "Scrubber pipes", "key2" = "3"), + list("key1" = "Devices", "key2" = "4"), + list("key1" = "HE pipes", "key2" = "5")) + return data + +/obj/item/weapon/rpd/Topic(href, href_list, nowindow, state) + if(href_list["iconrotation"]) + iconrotation = text2num(href_list["iconrotation"]) + else if(href_list["whatpipe"]) + whatpipe = text2num(href_list["whatpipe"]) + else if(href_list["whatdpipe"]) + whatdpipe = text2num(href_list["whatdpipe"]) + else if(href_list["pipetype"]) + pipetype = text2num(href_list["pipetype"]) + else if(href_list["mode"]) + mode = text2num(href_list["mode"]) + else if(href_list["refresh"]) + to_chat(usr, "You press the reset button, refreshing all settings on the [src].") + iconrotation = 0 + initialised = 0 + mode = 1 + pipemenu = 1 + pipetype = 1 + whatpipe = 0 + whatdpipe = 0 + cooldown = 0 + Initialiseicons() + else + return + nanomanager.update_uis(src) + return + +//What the RPD actually does + +/obj/item/weapon/rpd/afterattack(atom/target, mob/user as mob, proximity) + var/turf/T = get_turf(target) + if(!proximity) + return + else if(cooldown == 1) + return + else if(!isturf(target) && !istype(target, /obj/item/pipe) && !istype(target, /obj/item/pipe_meter) && !istype(target, /obj/item/pipe_gsensor) && !istype(target, /obj/structure/disposalconstruct)) + return + else if(istype(target, /turf/simulated/shuttle)) + return + else if(mode == 1) //Atmos mode + if(istype(T, /turf/simulated/wall)) //Drilling into walls takes time and we don't want to do anything else while drilling + cooldown = 1 + playsound(get_turf(src), "sound/weapons/circsawhit.ogg", 50, 1) + usr.visible_message("[usr] starts drilling a hole in [T]...", "You start drilling a hole in [T]...", "You hear a drill.") + if(do_after(usr, walldelay, target = T)) + usr.visible_message("[usr] finishes drilling a hole in [T]!", "You finish drilling a hole in [T]!", "You hear clanking.") + else + cooldown = 0 + return + if(whatpipe == 98)//need to check if it's a meter or a gas sensor separately ayylmao + new /obj/item/pipe_gsensor(T) + to_chat(usr, "[src] dispenses a sensor!") + Activaterpd("sound/machines/click.ogg", 1) + return + if(whatpipe == 99) + new /obj/item/pipe_meter(T) + to_chat(usr, "[src] dispenses a meter!") + Activaterpd("sound/machines/click.ogg", 1) + return + var/obj/item/pipe/P = new(T, pipe_type=whatpipe, dir = usr.dir) //Now we make the pipes + if(iconrotation == 0 && Checkifbent(P.pipe_type) == 1) //Automatic rotation of dispensed pipes + P.dir = turn(usr.dir, 135) + else if(iconrotation == 0 && P.pipe_type in list(4, 7, 10, 17, 20, 32, 33, 34, 37)) //Some pipes dispense oppositely to what you'd expect, but we don't want to do anything if they selected a direction + call(P, /obj/item/pipe/verb/flip)() + else if(iconrotation != 0 && Checkifbent(P.pipe_type) == 1) //If they selected a rotation and the pipe is bent + P.dir = turn(iconrotation, -45) + else if(iconrotation != 0) + P.dir = iconrotation + P.update() + to_chat(usr, "[src] rapidly dispenses [P]!") + Activaterpd("sound/machines/click.ogg", 1) + else if(mode == 2) //Disposals mode + if(istype(T, /turf/simulated/wall)) + to_chat(usr, "That type of pipe won't fit on [T]!") + return + if(is_blocked_turf(T) == 1 && whatdpipe in list(6, 7, 8))//We need to check if the targetted turf is already dense, in case some goofball sticks 100 bins in front of security or something + to_chat(usr, "You can't dispense that on [T] because something is in the way!") + return + var/obj/structure/disposalconstruct/P = new(T) //Now we make the pipe + P.dir = iconrotation + P.ptype = whatdpipe + if(whatdpipe in list(6, 7, 8)) //To properly set density of our bins/chutes/outlets + P.density = 1 + if(iconrotation == 0) //Automatic rotation + P.dir = usr.dir + if(iconrotation == 0 && whatdpipe != 2) //Disposals pipes are in the opposite direction to atmos pipes, so we need to flip them. Junctions don't have this quirk though + call(P, /obj/structure/disposalconstruct/verb/flip)() + P.update() + to_chat(usr, "[src] rapidly dispenses [P]!") + Activaterpd("sound/machines/click.ogg", 1) + return + else if(mode == 3) //Rotate mode + for(var/obj/W in T) + Manipulatepipes(W, T, /obj/item/pipe/verb/rotate, /obj/structure/disposalconstruct/verb/rotate) + return + else if(mode == 4) //Flip mode + for(var/obj/W in T) + Manipulatepipes(W, T, /obj/item/pipe/verb/flip, /obj/structure/disposalconstruct/verb/flip) + return + else if(mode == 5) //Delete mode + var/eaten + for(var/obj/W in T) + if(istype(W, /obj/item/pipe) || istype(W, /obj/item/pipe_meter) || istype(W, /obj/item/pipe_gsensor) || istype(W, /obj/structure/disposalconstruct) && W.anchored == 0) + qdel(W) + eaten = 1 + if(eaten == 1) + to_chat(usr, "[src] sucks up the loose pipes on [T]!") + Activaterpd("sound/items/Deconstruct.ogg", 1) + else + to_chat(usr, "There were no loose pipes on [T].") + return + else //Finished. + return diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm index d130b22074c..4ec3c0e649d 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm @@ -143,3 +143,4 @@ new /obj/item/weapon/watertank/atmos(src) new /obj/item/clothing/suit/fire/atmos(src) new /obj/item/clothing/head/hardhat/atmos(src) + new /obj/item/weapon/rpd(src) diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm index 7431e44737c..fc60cd23ffa 100644 --- a/code/modules/research/designs/autolathe_designs.dm +++ b/code/modules/research/designs/autolathe_designs.dm @@ -608,6 +608,14 @@ build_path = /obj/item/weapon/rcd category = list("hacked", "Construction") +/datum/design/rpd + name = "Rapid Pipe Dispenser" + id = "rpd" + build_type = AUTOLATHE + materials = list(MAT_METAL = 30000, MAT_GLASS = 5000) + build_path = /obj/item/weapon/rpd + category = list("hacked", "Construction") + /datum/design/electropack name = "Electropack" id = "electropack" diff --git a/nano/templates/rpd.tmpl b/nano/templates/rpd.tmpl new file mode 100644 index 00000000000..9419fcffa1d --- /dev/null +++ b/nano/templates/rpd.tmpl @@ -0,0 +1,113 @@ + +

Mode:

+
{{:helper.link("Reset RPD", "refresh", {"refresh": 1}, data.refresh == 1 ? "linkOn" : null)}}
+
+ {{for data.mainmenu}} + {{:helper.link(String(value.key1), String(value.key3), {"mode": Number(value.key2)}, data.mode == Number(value.key2) ? "linkOn" : null)}} + {{/for}} +
+{{if data.mode == 1}} +

Pipe type:

+
+ {{for data.pipemenu}} + {{:helper.link(String(value.key1), null, {"pipetype": Number(value.key2)}, data.pipetype == Number(value.key2) ? "linkOn" : null)}} + {{/for}} +
+

Available pipes:

+
+ {{for data.pipelist}} + {{if value.key3 == data.pipetype}} +
{{:helper.link(String(value.key1), "arrow-right", {"whatpipe": Number(value.key2)}, data.whatpipe == Number(value.key2) ? "linkOn" : null)}}
+ {{/if}} + {{/for}} +
+ {{for data.pipelist}} +
+ {{if value.key2 == data.whatpipe && value.key4 != 1}} +
+ {{:helper.link("Orient automatically", null, {"iconrotation": 0}, data.iconrotation == 0 ? "linkOn" : null)}} +
+ {{/if}} + {{if value.key2 == data.whatpipe && value.key4 != 1 && value.key6 != 1}} +
+ {{:helper.link("", "arrow-right", {"iconrotation": 1}, data.iconrotation == 1 ? "linkOn" : null)}} + +
+
+ {{:helper.link("", "arrow-right", {"iconrotation": 4}, data.iconrotation == 4 ? "linkOn" : null)}} + +
+ {{/if}} + {{if value.key2 == data.whatpipe && value.key4 == 4 && value.key6 != 1}} +
+ {{:helper.link("", "arrow-right", {"iconrotation": 2}, data.iconrotation == 2 ? "linkOn" : null)}} + +
+
+ {{:helper.link("", "arrow-right", {"iconrotation": 8}, data.iconrotation == 8 ? "linkOn" : null)}} + +
+ {{/if}} + {{if value.key2 == data.whatpipe && value.key6 == 1}} +
+ {{:helper.link("", "arrow-right", {"iconrotation": 1}, data.iconrotation == 1 ? "linkOn" : null)}} + +
+
+ {{:helper.link("", "arrow-right", {"iconrotation": 4}, data.iconrotation == 4 ? "linkOn" : null)}} + +
+
+ {{:helper.link("", "arrow-right", {"iconrotation": 2}, data.iconrotation == 2 ? "linkOn" : null)}} + +
+
+ {{:helper.link("", "arrow-right", {"iconrotation": 8}, data.iconrotation == 8 ? "linkOn" : null)}} + +
+ {{/if}} +
+ {{/for}} +{{else data.mode == 2}} +

Available pipes:

+
+ {{for data.dpipelist}} +
{{:helper.link(String(value.key1), "arrow-right", {"whatdpipe": Number(value.key2)}, data.whatdpipe == Number(value.key2) ? "linkOn" : null)}}
+ {{/for}} +
+ {{for data.dpipelist}} +
+ {{if value.key2 == data.whatdpipe && value.key3 != 1}} +
+ {{:helper.link("Orient automatically", null, {"iconrotation": 0}, data.iconrotation == 0 ? "linkOn" : null)}} +
+
+ {{:helper.link("", "arrow-right", {"iconrotation": 1}, data.iconrotation == 1 ? "linkOn" : null)}} + +
+
+ {{:helper.link("", "arrow-right", {"iconrotation": 4}, data.iconrotation == 4 ? "linkOn" : null)}} + +
+ {{/if}} + {{if value.key2 == data.whatdpipe && value.key3 == 4}} +
+ {{:helper.link("", "arrow-right", {"iconrotation": 2}, data.iconrotation == 2 ? "linkOn" : null)}} + +
+
+ {{:helper.link("", "arrow-right", {"iconrotation": 8}, data.iconrotation == 8 ? "linkOn" : null)}} + +
+ {{/if}} +
+ {{/for}} +{{else data.mode == 3}} +

Device ready to rotate loose pipes...

+{{else data.mode == 4}} +

Device ready to flip loose pipes...

+{{else data.mode == 5}} +

Device ready to eat loose pipes...

+{{/if}} From 16688d7494bdccef900f023b15e4f9fb53bdac8d Mon Sep 17 00:00:00 2001 From: Citinited Date: Sun, 26 Mar 2017 06:55:49 +0100 Subject: [PATCH 002/123] Commits the DME Damn you Travis --- paradise.dme | 1 + 1 file changed, 1 insertion(+) diff --git a/paradise.dme b/paradise.dme index b87c0b16ab0..84127d42021 100644 --- a/paradise.dme +++ b/paradise.dme @@ -809,6 +809,7 @@ #include "code\game\objects\items\weapons\powerfist.dm" #include "code\game\objects\items\weapons\RCD.dm" #include "code\game\objects\items\weapons\RCL.dm" +#include "code\game\objects\items\weapons\rpd.dm" #include "code\game\objects\items\weapons\RSF.dm" #include "code\game\objects\items\weapons\scissors.dm" #include "code\game\objects\items\weapons\scrolls.dm" From 769244d40a058e0d77ca86906637b82d4a826dea Mon Sep 17 00:00:00 2001 From: Citinited Date: Sat, 8 Apr 2017 07:01:57 +0100 Subject: [PATCH 003/123] Improves legibility of rpd.dm and somewhat improves the code Minor text fixes --- code/game/objects/items/weapons/rpd.dm | 224 ++++++++++++------------- 1 file changed, 106 insertions(+), 118 deletions(-) diff --git a/code/game/objects/items/weapons/rpd.dm b/code/game/objects/items/weapons/rpd.dm index f640b031e46..7db79cdd06f 100644 --- a/code/game/objects/items/weapons/rpd.dm +++ b/code/game/objects/items/weapons/rpd.dm @@ -9,17 +9,17 @@ icon_state = "rpd" opacity = 0 density = 0 - anchored = 0.0 + anchored = 0 flags = CONDUCT - force = 10.0 - throwforce = 10.0 + force = 10 + throwforce = 10 throw_speed = 3 throw_range = 5 w_class = 3 materials = list(MAT_METAL = 30000, MAT_GLASS = 5000) origin_tech = "engineering=4;materials=2" var/iconrotation = 0 //used to orient icons and pipes - var/initialised = 0 //This stops us unnecessarily checking the cache for icons + var/initialised //This stops us unnecessarily checking the cache for icons var/mode = 1 //Disposals, atmospherics var/pipemenu = 1 //For nanoUI menus var/pipetype = 1//For nanoUI menus @@ -37,56 +37,56 @@ //List of things follow here -//Pipename, pipe type (see construction.dm), pipe category, number of orientations this pipe has, name of pipe in the icon file, is this pipe bendy? +//Pipename, pipe type (see construction.dm), pipe category, number of unique orientations, name of pipe icon, is this pipe bendy? var/list/pipelist = list( - list("key1" = "Straight pipe", "key2" = "0", "key3" = "1", "key4" = "2", "key5" = "simple", "key6" = "0"), - list("key1" = "Bent pipe", "key2" = "1", "key3" = "1", "key4" = "4", "key5" = "simple", "key6" = "1"), - list("key1" = "T-manifold", "key2" = "5", "key3" = "1", "key4" = "4", "key5" = "manifold", "key6" = "0"), - list("key1" = "4-way manifold", "key2" = "19", "key3" = "1", "key4" = "1", "key5" = "manifold4w", "key6" = "0"), - list("key1" = "Pipe cap", "key2" = "20", "key3" = "1", "key4" = "4", "key5" = "cap", "key6" = "0"), - list("key1" = "Manual valve", "key2" = "8", "key3" = "1", "key4" = "2", "key5" = "mvalve", "key6" = "0"), - list("key1" = "Digital valve", "key2" = "35", "key3" = "1", "key4" = "2", "key5" = "dvalve", "key6" = "0"), - list("key1" = "Manual T-valve", "key2" = "18", "key3" = "1", "key4" = "4", "key5" = "tvalve", "key6" = "0"), - list("key1" = "Digital T-valve", "key2" = "38", "key3" = "1", "key4" = "4", "key5" = "dtvalve", "key6" = "0"), - list("key1" = "Straight supply pipe", "key2" = "24", "key3" = "2", "key4" = "2", "key5" = "simple", "key6" = "0"), - list("key1" = "Bent supply pipe", "key2" = "25", "key3" = "2", "key4" = "4", "key5" = "simple", "key6" = "1"), - list("key1" = "Supply T-manifold", "key2" = "28", "key3" = "2", "key4" = "4", "key5" = "manifold", "key6" = "0"), - list("key1" = "4-way supply manifold", "key2" = "30", "key3" = "2", "key4" = "1", "key5" = "manifold4w", "key6" = "0"), - list("key1" = "Supply pipe cap", "key2" = "32", "key3" = "2", "key4" = "4", "key5" = "cap", "key6" = "0"), - list("key1" = "Straight scrubbers pipe", "key2" = "26", "key3" = "3", "key4" = "2", "key5" = "simple", "key6" = "0"), - list("key1" = "Bent scrubbers pipe", "key2" = "27", "key3" = "3", "key4" = "4", "key5" = "simple", "key6" = "1"), - list("key1" = "Scrubbers T-manifold", "key2" = "29", "key3" = "3", "key4" = "4", "key5" = "manifold", "key6" = "0"), - list("key1" = "4-way scrubbers manifold", "key2" = "31", "key3" = "3", "key4" = "1", "key5" = "manifold4w", "key6" = "0"), - list("key1" = "Scrubbers pipe cap", "key2" = "33", "key3" = "3", "key4" = "4", "key5" = "cap", "key6" = "0"), - list("key1" = "Universal pipe adapter", "key2" = "23", "key3" = "4", "key4" = "2", "key5" = "universal", "key6" = "0"), - list("key1" = "Unary vent", "key2" = "7", "key3" = "4", "key4" = "4", "key5" = "uvent", "key6" = "0"), - list("key1" = "Scrubber", "key2" = "10", "key3" = "4", "key4" = "4", "key5" = "scrubber", "key6" = "0"), - list("key1" = "Air injector", "key2" = "34", "key3" = "4", "key4" = "4", "key5" = "injector", "key6" = "0"), - list("key1" = "Gas pump", "key2" = "9", "key3" = "4", "key4" = "4", "key5" = "pump", "key6" = "0"), - list("key1" = "Volume pump", "key2" = "16", "key3" = "4", "key4" = "4", "key5" = "volumepump", "key6" = "0"), - list("key1" = "Passive gate", "key2" = "15", "key3" = "4", "key4" = "4", "key5" = "passivegate", "key6" = "0"), - list("key1" = "Connector", "key2" = "4", "key3" = "4", "key4" = "4", "key5" = "connector", "key6" = "0"), - list("key1" = "Gas sensor", "key2" = "98", "key3" = "4", "key4" = "1", "key5" = "sensor", "key6" = "0"), - list("key1" = "Meter", "key2" = "99", "key3" = "4", "key4" = "1", "key5" = "meter", "key6" = "0"), - list("key1" = "Gas filter", "key2" = "13", "key3" = "4", "key4" = "4", "key5" = "filter", "key6" = "0"), - list("key1" = "Gas mixer", "key2" = "14", "key3" = "4", "key4" = "4", "key5" = "mixer", "key6" = "0"), - list("key1" = "Dual-port vent pump", "key2" = "36", "key3" = "4", "key4" = "2", "key5" = "dual-port vent", "key6" = "0"), - list("key1" = "Passive vent", "key2" = "37", "key3" = "4", "key4" = "4", "key5" = "passive vent", "key6" = "0"), - list("key1" = "Straight HE pipe", "key2" = "2", "key3" = "5", "key4" = "2", "key5" = "he", "key6" = "0"), - list("key1" = "Bent HE pipe", "key2" = "3", "key3" = "5", "key4" = "4", "key5" = "he", "key6" = "1"), - list("key1" = "Junction", "key2" = "6", "key3" = "5", "key4" = "4", "key5" = "junction", "key6" = "0"), - list("key1" = "Heat exchanger", "key2" = "17", "key3" = "5", "key4" = "4", "key5" = "heunary", "key6" = "0")) + list("key1" = "Straight pipe", "key2" = "0", "key3" = "1", "key4" = "2", "key5" = "simple", "key6" = "0"), + list("key1" = "Bent pipe", "key2" = "1", "key3" = "1", "key4" = "4", "key5" = "simple", "key6" = "1"), + list("key1" = "T-manifold", "key2" = "5", "key3" = "1", "key4" = "4", "key5" = "manifold", "key6" = "0"), + list("key1" = "4-way manifold", "key2" = "19", "key3" = "1", "key4" = "1", "key5" = "manifold4w", "key6" = "0"), + list("key1" = "Pipe cap", "key2" = "20", "key3" = "1", "key4" = "4", "key5" = "cap", "key6" = "0"), + list("key1" = "Manual valve", "key2" = "8", "key3" = "1", "key4" = "2", "key5" = "mvalve", "key6" = "0"), + list("key1" = "Digital valve", "key2" = "35", "key3" = "1", "key4" = "2", "key5" = "dvalve", "key6" = "0"), + list("key1" = "Manual T-valve", "key2" = "18", "key3" = "1", "key4" = "4", "key5" = "tvalve", "key6" = "0"), + list("key1" = "Digital T-valve", "key2" = "38", "key3" = "1", "key4" = "4", "key5" = "dtvalve", "key6" = "0"), + list("key1" = "Straight supply pipe", "key2" = "24", "key3" = "2", "key4" = "2", "key5" = "simple", "key6" = "0"), + list("key1" = "Bent supply pipe", "key2" = "25", "key3" = "2", "key4" = "4", "key5" = "simple", "key6" = "1"), + list("key1" = "Supply T-manifold", "key2" = "28", "key3" = "2", "key4" = "4", "key5" = "manifold", "key6" = "0"), + list("key1" = "4-way supply manifold", "key2" = "30", "key3" = "2", "key4" = "1", "key5" = "manifold4w", "key6" = "0"), + list("key1" = "Supply pipe cap", "key2" = "32", "key3" = "2", "key4" = "4", "key5" = "cap", "key6" = "0"), + list("key1" = "Straight scrubbers pipe", "key2" = "26", "key3" = "3", "key4" = "2", "key5" = "simple", "key6" = "0"), + list("key1" = "Bent scrubbers pipe", "key2" = "27", "key3" = "3", "key4" = "4", "key5" = "simple", "key6" = "1"), + list("key1" = "Scrubbers T-manifold", "key2" = "29", "key3" = "3", "key4" = "4", "key5" = "manifold", "key6" = "0"), + list("key1" = "4-way scrubbers manifold", "key2" = "31", "key3" = "3", "key4" = "1", "key5" = "manifold4w", "key6" = "0"), + list("key1" = "Scrubbers pipe cap", "key2" = "33", "key3" = "3", "key4" = "4", "key5" = "cap", "key6" = "0"), + list("key1" = "Universal pipe adapter", "key2" = "23", "key3" = "4", "key4" = "2", "key5" = "universal", "key6" = "0"), + list("key1" = "Unary vent", "key2" = "7", "key3" = "4", "key4" = "4", "key5" = "uvent", "key6" = "0"), + list("key1" = "Scrubber", "key2" = "10", "key3" = "4", "key4" = "4", "key5" = "scrubber", "key6" = "0"), + list("key1" = "Air injector", "key2" = "34", "key3" = "4", "key4" = "4", "key5" = "injector", "key6" = "0"), + list("key1" = "Gas pump", "key2" = "9", "key3" = "4", "key4" = "4", "key5" = "pump", "key6" = "0"), + list("key1" = "Volume pump", "key2" = "16", "key3" = "4", "key4" = "4", "key5" = "volumepump", "key6" = "0"), + list("key1" = "Passive gate", "key2" = "15", "key3" = "4", "key4" = "4", "key5" = "passivegate", "key6" = "0"), + list("key1" = "Connector", "key2" = "4", "key3" = "4", "key4" = "4", "key5" = "connector", "key6" = "0"), + list("key1" = "Gas sensor", "key2" = "98", "key3" = "4", "key4" = "1", "key5" = "sensor", "key6" = "0"), + list("key1" = "Meter", "key2" = "99", "key3" = "4", "key4" = "1", "key5" = "meter", "key6" = "0"), + list("key1" = "Gas filter", "key2" = "13", "key3" = "4", "key4" = "4", "key5" = "filter", "key6" = "0"), + list("key1" = "Gas mixer", "key2" = "14", "key3" = "4", "key4" = "4", "key5" = "mixer", "key6" = "0"), + list("key1" = "Dual-port vent pump", "key2" = "36", "key3" = "4", "key4" = "2", "key5" = "dual-port vent", "key6" = "0"), + list("key1" = "Passive vent", "key2" = "37", "key3" = "4", "key4" = "4", "key5" = "passive vent", "key6" = "0"), + list("key1" = "Straight HE pipe", "key2" = "2", "key3" = "5", "key4" = "2", "key5" = "he", "key6" = "0"), + list("key1" = "Bent HE pipe", "key2" = "3", "key3" = "5", "key4" = "4", "key5" = "he", "key6" = "1"), + list("key1" = "Junction", "key2" = "6", "key3" = "5", "key4" = "4", "key5" = "junction", "key6" = "0"), + list("key1" = "Heat exchanger", "key2" = "17", "key3" = "5", "key4" = "4", "key5" = "heunary", "key6" = "0")) -//Pipename, pipe type, no. of unique orientations, name of pipe icon +//Pipename, pipe type, number of unique orientations, name of pipe icon var/list/dpipelist = list( - list("key1" = "Straight pipe", "key2" = "0", "key3" = "2", "key4" = "conpipe-s"), - list("key1" = "Bent pipe", "key2" = "1", "key3" = "4", "key4" = "conpipe-c"), - list("key1" = "Junction", "key2" = "2", "key3" = "4", "key4" = "conpipe-j1"), - list("key1" = "Y-junction", "key2" = "4", "key3" = "4", "key4" = "conpipe-y"), - list("key1" = "Trunk", "key2" = "5", "key3" = "4", "key4" = "conpipe-t"), - list("key1" = "Bin", "key2" = "6", "key3" = "1", "key4" = "condisposal"), - list("key1" = "Outlet", "key2" = "7", "key3" = "4", "key4" = "outlet"), - list("key1" = "Chute", "key2" = "8", "key3" = "4", "key4" = "intake")) + list("key1" = "Straight pipe", "key2" = "0", "key3" = "2", "key4" = "conpipe-s"), + list("key1" = "Bent pipe", "key2" = "1", "key3" = "4", "key4" = "conpipe-c"), + list("key1" = "Junction", "key2" = "2", "key3" = "4", "key4" = "conpipe-j1"), + list("key1" = "Y-junction", "key2" = "4", "key3" = "4", "key4" = "conpipe-y"), + list("key1" = "Trunk", "key2" = "5", "key3" = "4", "key4" = "conpipe-t"), + list("key1" = "Bin", "key2" = "6", "key3" = "1", "key4" = "condisposal"), + list("key1" = "Outlet", "key2" = "7", "key3" = "4", "key4" = "outlet"), + list("key1" = "Chute", "key2" = "8", "key3" = "4", "key4" = "intake")) //Procs @@ -94,7 +94,7 @@ var/list/dpipelist = list( playsound(loc, soundfile, 50, 1) if(prob(15)) spark_system.start() - if(delay == 1) + if(delay) cooldown = 1 spawn(spawndelay) cooldown = 0 @@ -108,44 +108,39 @@ var/list/dpipelist = list( //This proc puts each necessary icon into the initial user's cache for later use. It then sets initialised = 1 to avoid calling itself unnecessarily. /obj/item/weapon/rpd/proc/Initialiseicons() - if(initialised == 1) - return var/F var/I + var/list/filenames var/disposalsfile = "icons/obj/pipes/disposal.dmi" var/pipefile = "icons/obj/pipe-item.dmi" - var/list/filenames for(I in pipelist) if(I["key6"] == "1")//Bendy pipe icons - filenames = list( - list(I["key5"] + "-southeast.png", SOUTHEAST), - list(I["key5"] + "-southwest.png", SOUTHWEST), - list(I["key5"] + "-northwest.png", NORTHWEST), - list(I["key5"] + "-northeast.png", NORTHEAST)) - else if(I["key4"] == "2") //Dual state icons - filenames = list( - list(I["key5"] + "-north.png", NORTH), - list(I["key5"] + "-east.png", EAST)) - else if(I["key4"] == "4")//All other pipes that need icons - filenames = list( - list(I["key5"] + "-north.png", NORTH), - list(I["key5"] + "-east.png", EAST), - list(I["key5"] + "-south.png", SOUTH), - list(I["key5"] + "-west.png", WEST)) - else - filenames = . - for(F in filenames) - var/icon/iconfile = icon(pipefile, icon_state = I["key5"], dir = F[2]) - usr << browse_rsc(iconfile, F[1]) - for(I in dpipelist) //All disposals pipes have four states so we don't need to bother checking direction - filenames = list( - list(I["key4"] + "-north.png", NORTH), - list(I["key4"] + "-east.png", EAST), - list(I["key4"] + "-south.png", SOUTH), - list(I["key4"] + "-west.png", WEST)) - for(F in filenames) - var/icon/iconfile = icon(disposalsfile, icon_state = I["key4"], dir = F[2]) - usr << browse_rsc(iconfile, F[1]) + filenames += list( + list(pipefile, I["key5"], I["key5"] + "-southeast.png", SOUTHEAST), + list(pipefile, I["key5"], I["key5"] + "-southwest.png", SOUTHWEST), + list(pipefile, I["key5"], I["key5"] + "-northwest.png", NORTHWEST), + list(pipefile, I["key5"], I["key5"] + "-northeast.png", NORTHEAST)) + continue + if(I["key4"] == "2" || I["key4"] == "4") //Dual state icons + filenames += list( + list(pipefile, I["key5"], I["key5"] + "-north.png", NORTH), + list(pipefile, I["key5"], I["key5"] + "-east.png", EAST)) + if(I["key4"] == "4")//All other pipes that need icons + filenames += list( + list(pipefile, I["key5"], I["key5"] + "-south.png", SOUTH), + list(pipefile, I["key5"], I["key5"] + "-west.png", WEST)) + for(I in dpipelist) + if(I["key3"] == "2" || I["key3"] == "4") + filenames += list( + list(disposalsfile, I["key4"], I["key4"] + "-north.png", NORTH), + list(disposalsfile, I["key4"], I["key4"] + "-east.png", EAST)) + if(I["key3"] == "4") + filenames += list( + list(disposalsfile, I["key4"], I["key4"] + "-south.png", SOUTH), + list(disposalsfile, I["key4"], I["key4"] + "-west.png", WEST)) + for(F in filenames) + var/icon/iconfile = icon(F[1], icon_state = F[2], dir = F[4]) + usr << browse_rsc(iconfile, F[3]) initialised = 1 return @@ -167,7 +162,8 @@ var/list/dpipelist = list( if(!ui) ui = new(user, src, ui_key, "rpd.tmpl", "[name]", 600, 650, state = state) ui.open() - Initialiseicons() + if(!initialised) + Initialiseicons() ui.set_auto_update(1) /obj/item/weapon/rpd/ui_data(mob/user, ui_key = "main", datum/topic_state/state = inventory_state) @@ -212,9 +208,8 @@ var/list/dpipelist = list( else if(href_list["mode"]) mode = text2num(href_list["mode"]) else if(href_list["refresh"]) - to_chat(usr, "You press the reset button, refreshing all settings on the [src].") + to_chat(usr, "You press the reset button, refreshing all settings on the [src].") iconrotation = 0 - initialised = 0 mode = 1 pipemenu = 1 pipetype = 1 @@ -231,52 +226,45 @@ var/list/dpipelist = list( /obj/item/weapon/rpd/afterattack(atom/target, mob/user as mob, proximity) var/turf/T = get_turf(target) - if(!proximity) + if(!proximity || cooldown == 1) return - else if(cooldown == 1) - return - else if(!isturf(target) && !istype(target, /obj/item/pipe) && !istype(target, /obj/item/pipe_meter) && !istype(target, /obj/item/pipe_gsensor) && !istype(target, /obj/structure/disposalconstruct)) - return - else if(istype(target, /turf/simulated/shuttle)) + else if(!isturf(target) && !istype(target, /obj/item/pipe) && !istype(target, /obj/item/pipe_meter) && !istype(target, /obj/item/pipe_gsensor) && !istype(target, /obj/structure/disposalconstruct) || istype(target, /turf/simulated/shuttle)) return else if(mode == 1) //Atmos mode if(istype(T, /turf/simulated/wall)) //Drilling into walls takes time and we don't want to do anything else while drilling cooldown = 1 playsound(get_turf(src), "sound/weapons/circsawhit.ogg", 50, 1) - usr.visible_message("[usr] starts drilling a hole in [T]...", "You start drilling a hole in [T]...", "You hear a drill.") + usr.visible_message("[usr] starts drilling a hole in [T]...", "You start drilling a hole in [T]...", "You hear a drill.") if(do_after(usr, walldelay, target = T)) - usr.visible_message("[usr] finishes drilling a hole in [T]!", "You finish drilling a hole in [T]!", "You hear clanking.") + usr.visible_message("[usr] finishes drilling a hole in [T]!", "You finish drilling a hole in [T]!", "You hear clanking.") else cooldown = 0 return if(whatpipe == 98)//need to check if it's a meter or a gas sensor separately ayylmao new /obj/item/pipe_gsensor(T) - to_chat(usr, "[src] dispenses a sensor!") - Activaterpd("sound/machines/click.ogg", 1) - return - if(whatpipe == 99) + to_chat(usr, "[src] dispenses a sensor!") + else if(whatpipe == 99) new /obj/item/pipe_meter(T) - to_chat(usr, "[src] dispenses a meter!") - Activaterpd("sound/machines/click.ogg", 1) - return - var/obj/item/pipe/P = new(T, pipe_type=whatpipe, dir = usr.dir) //Now we make the pipes - if(iconrotation == 0 && Checkifbent(P.pipe_type) == 1) //Automatic rotation of dispensed pipes - P.dir = turn(usr.dir, 135) - else if(iconrotation == 0 && P.pipe_type in list(4, 7, 10, 17, 20, 32, 33, 34, 37)) //Some pipes dispense oppositely to what you'd expect, but we don't want to do anything if they selected a direction - call(P, /obj/item/pipe/verb/flip)() - else if(iconrotation != 0 && Checkifbent(P.pipe_type) == 1) //If they selected a rotation and the pipe is bent - P.dir = turn(iconrotation, -45) - else if(iconrotation != 0) - P.dir = iconrotation - P.update() - to_chat(usr, "[src] rapidly dispenses [P]!") + to_chat(usr, "[src] dispenses a meter!") + else + var/obj/item/pipe/P = new(T, pipe_type=whatpipe, dir = usr.dir) //Now we make the pipes + if(iconrotation == 0 && Checkifbent(P.pipe_type) == 1) //Automatic rotation of dispensed pipes + P.dir = turn(usr.dir, 135) + else if(iconrotation == 0 && P.pipe_type in list(4, 7, 10, 17, 20, 32, 33, 34, 37)) //Some pipes dispense oppositely to what you'd expect, but we don't want to do anything if they selected a direction + call(P, /obj/item/pipe/verb/flip)() + else if(iconrotation != 0 && Checkifbent(P.pipe_type) == 1) //If they selected a rotation and the pipe is bent + P.dir = turn(iconrotation, -45) + else if(iconrotation != 0) + P.dir = iconrotation + P.update() + to_chat(usr, "[src] rapidly dispenses [P]!") Activaterpd("sound/machines/click.ogg", 1) else if(mode == 2) //Disposals mode if(istype(T, /turf/simulated/wall)) - to_chat(usr, "That type of pipe won't fit on [T]!") + to_chat(usr, "That type of pipe won't fit on [T]!") return if(is_blocked_turf(T) == 1 && whatdpipe in list(6, 7, 8))//We need to check if the targetted turf is already dense, in case some goofball sticks 100 bins in front of security or something - to_chat(usr, "You can't dispense that on [T] because something is in the way!") + to_chat(usr, "You can't dispense that on [T] because something is in the way!") return var/obj/structure/disposalconstruct/P = new(T) //Now we make the pipe P.dir = iconrotation @@ -288,7 +276,7 @@ var/list/dpipelist = list( if(iconrotation == 0 && whatdpipe != 2) //Disposals pipes are in the opposite direction to atmos pipes, so we need to flip them. Junctions don't have this quirk though call(P, /obj/structure/disposalconstruct/verb/flip)() P.update() - to_chat(usr, "[src] rapidly dispenses [P]!") + to_chat(usr, "[src] rapidly dispenses [P]!") Activaterpd("sound/machines/click.ogg", 1) return else if(mode == 3) //Rotate mode @@ -306,10 +294,10 @@ var/list/dpipelist = list( qdel(W) eaten = 1 if(eaten == 1) - to_chat(usr, "[src] sucks up the loose pipes on [T]!") + to_chat(usr, "[src] sucks up the loose pipes on [T]!") Activaterpd("sound/items/Deconstruct.ogg", 1) else - to_chat(usr, "There were no loose pipes on [T].") + to_chat(usr, "There were no loose pipes on [T].") return else //Finished. return From 01177217f2405ea32f08cf6083d389c26d3e025d Mon Sep 17 00:00:00 2001 From: Citinited Date: Sun, 9 Apr 2017 20:19:34 +0100 Subject: [PATCH 004/123] Removes the RPD from the autolathe and adds an additional one in the CE's closet so everyone relevant in engineering can have one --- .../crates_lockers/closets/secure/engineering.dm | 1 + code/modules/research/designs/autolathe_designs.dm | 8 -------- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm index 4ec3c0e649d..58cad5e5f36 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm @@ -34,6 +34,7 @@ new /obj/item/taperoll/engineering(src) new /obj/item/clothing/head/beret/eng(src) new /obj/item/weapon/door_remote/chief_engineer(src) + new /obj/item/weapon/rpd(src) /obj/structure/closet/secure_closet/engineering_electrical name = "electrical supplies locker" diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm index 5af1398dc71..29370cbc04b 100644 --- a/code/modules/research/designs/autolathe_designs.dm +++ b/code/modules/research/designs/autolathe_designs.dm @@ -616,14 +616,6 @@ build_path = /obj/item/weapon/twohanded/rcl category = list("hacked", "Construction") -/datum/design/rpd - name = "Rapid Pipe Dispenser" - id = "rpd" - build_type = AUTOLATHE - materials = list(MAT_METAL = 30000, MAT_GLASS = 5000) - build_path = /obj/item/weapon/rpd - category = list("hacked", "Construction") - /datum/design/electropack name = "Electropack" id = "electropack" From 4ec5d79e97bc88bdca8c89c1da9378a798e18350 Mon Sep 17 00:00:00 2001 From: Alffd Date: Wed, 19 Apr 2017 03:00:50 -0400 Subject: [PATCH 005/123] No more Human Vulp. --- code/game/sound.dm | 3 +++ code/modules/mob/living/carbon/human/emote.dm | 25 +++++++++++++++++- .../living/carbon/human/species/station.dm | 4 +++ sound/goonstation/voice/growl1.ogg | Bin 0 -> 10931 bytes sound/goonstation/voice/growl2.ogg | Bin 0 -> 10464 bytes sound/goonstation/voice/growl3.ogg | Bin 0 -> 11074 bytes sound/goonstation/voice/howl.ogg | Bin 0 -> 22339 bytes sound/voice/vulp_yelp.ogg | Bin 0 -> 18645 bytes 8 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 sound/goonstation/voice/growl1.ogg create mode 100644 sound/goonstation/voice/growl2.ogg create mode 100644 sound/goonstation/voice/growl3.ogg create mode 100644 sound/goonstation/voice/howl.ogg create mode 100644 sound/voice/vulp_yelp.ogg diff --git a/code/game/sound.dm b/code/game/sound.dm index 14269acb81f..8033e928173 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -15,6 +15,7 @@ var/list/ricochet = list('sound/weapons/effects/ric1.ogg', 'sound/weapons/effect var/list/terminal_type = list('sound/machines/terminal_button01.ogg', 'sound/machines/terminal_button02.ogg', 'sound/machines/terminal_button03.ogg', 'sound/machines/terminal_button04.ogg', 'sound/machines/terminal_button05.ogg', 'sound/machines/terminal_button06.ogg', 'sound/machines/terminal_button07.ogg', 'sound/machines/terminal_button08.ogg') +var/list/growls = list('sound/goonstation/voice/growl1.ogg', 'sound/goonstation/voice/growl2.ogg', 'sound/goonstation/voice/growl3.ogg') /proc/playsound(var/atom/source, soundin, vol as num, vary, extrarange as num, falloff, var/is_global, var/pitch) @@ -142,4 +143,6 @@ var/list/terminal_type = list('sound/machines/terminal_button01.ogg', 'sound/mac soundin = pick(ricochet) if("terminal_type") soundin = pick(terminal_type) + if("growls") + soundin = pick(growls) return soundin diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index 7b325eeeb8a..1a93e891217 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -36,8 +36,18 @@ if("drone","drones","hum","hums","rumble","rumbles") if(species.name == "Drask") //Only Drask can make whale noises on_CD = handle_emote_CD() //proc located in code\modules\mob\emote.dm + else + return + if("howl", "howls") + if (species.name == "Vulpkanin") //Only Vulpkanin can howl + on_CD = handle_emote_CD(100) else return + if("growl", "growls") + if (species.name == "Vulpkanin") //Only Vulpkanin can growl + on_CD = handle_emote_CD() + else + return if("squish", "squishes") var/found_slime_bodypart = 0 @@ -85,8 +95,21 @@ if("me") //OKAY SO RANT TIME, THIS FUCKING HAS TO BE HERE OR A SHITLOAD OF THINGS BREAK return custom_emote(m_type, message) //DO YOU KNOW WHY SHIT BREAKS? BECAUSE SO MUCH OLDCODE CALLS mob.emote("me",1,"whatever_the_fuck_it_wants_to_emote") //WHO THE FUCK THOUGHT THAT WAS A GOOD FUCKING IDEA!?!? - if("ping", "pings") + + if("howl", "howls") var/M = handle_emote_param(param) //Check to see if the param is valid (mob with the param name is in view). + message = "[src] howls[M ? " at [M]" : ""]!" + playsound(loc, 'sound/goonstation/voice/howl.ogg', 100, 0, 10) + m_type = 2 + + if("growl", "growls") + var/M = handle_emote_param(param) + message = "[src] growls[M ? " at [M]" : ""]." + playsound(loc, "growls", 80, 0) + m_type = 2 + + if("ping", "pings") + var/M = handle_emote_param(param) message = "[src] pings[M ? " at [M]" : ""]." playsound(loc, 'sound/machines/ping.ogg', 50, 0) diff --git a/code/modules/mob/living/carbon/human/species/station.dm b/code/modules/mob/living/carbon/human/species/station.dm index 10e39022315..295e7ec91ab 100644 --- a/code/modules/mob/living/carbon/human/species/station.dm +++ b/code/modules/mob/living/carbon/human/species/station.dm @@ -169,6 +169,10 @@ base_color = "#CF4D2F" butt_sprite = "vulp" + scream_verb = "yelps" + male_scream_sound = 'sound/voice/vulp_yelp.ogg' + female_scream_sound = 'sound/voice/vulp_yelp.ogg' + has_organ = list( "heart" = /obj/item/organ/internal/heart, "lungs" = /obj/item/organ/internal/lungs, diff --git a/sound/goonstation/voice/growl1.ogg b/sound/goonstation/voice/growl1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..d5152d9c0577ed845ce091000b6dd2285ffcb790 GIT binary patch literal 10931 zcmaiZ1z1(h_V+$?Hws7`N;n7-0s_)0hdwljDBTSb5=u+Mp*s#8N+}?Sl+xV@N|(SZ zNXNIq_ul({_xqmzf1Ww>%$_x~*34SJwf35Q)GRGE0W{$6@=EGYXIxqq0ilO@IJ%fv zyIv1LWXu1a@&a_tji1p?20L zIyda0icmftUOpZ^o(E8NHG2nZCl_;9a|bur^{$A)pRAOYoERSu4=)!F9~X}x6*#1+ zCa;kAsv8{C_7 zK*7C8V^N!tNaI|y4}%q^xPYww9198rfX4(B;wTi~QS`o}?H^`Q`^Bk2E-?H+PE$)o z8!YZdx*q0}9`2JKzWOP_h97+OKLi_21sfd&Kc@=$yB_;499`F&qeCG;4zqC55-g92 zCT~$V4?QTP91SqLRtXe0o(UG8uUKedQ)!)EZ&g-r-&@VuTTO5?1%v>`^=^P1>$JlE zr&{PIng8!q(&{S*APMU7i!<#PXBIgG%NG|;>>CY#1wflhA~-u;_!V6FzqpEmRl!ZR z8>!rXpiKNPBV3yu03>;7JDq8}L2V$oMqLDSUBxC{RVG1ITx;ZiF0XFz0v?1h(;~?x z0OvvM^Bc7UfNZI9abyVoNCGE>?i&~AWw z3A81wC$%#tbtuhsK#?E~^{3}WmX2LfG6IfKuVoN*Q9lRgS&yV)mrUz{YxRfHR*M@b zz+N~qovp4x>kq%bVNvolW8ky!4{$~JOuB6Yt`XQfG0WKL$Gsl=Z}>=pc6&ZW)s^`g z>Klz^Lcv(bm_Y9qLzIxi`xRC|9~CVRF9}pfP_v=jUf-M?3IIVQHz@vBa|7i+C@zS9 z!_mWD)5q7#dEJz^4~T5NZ6}c-;0004DFC84s%|yQwNm)8Evjz9;2sKzfWuIKJPI@_ z)GSsCi~7b%LQ-6MU`3!;{L^rIEQ6$U!~dv*f6;1?v4VA&k4y7`n6{R-u7|yTvit1& zV52Gbg-PFq$tdI7A^#1me|ru9I!(}xPa;hsdB0=?s!HSjG4Q`U$C=_w9Bp?Ti&8a< z$_QuwFMhRs{$X-C4Sp3(N~2*)_t9JCnu1270_LOI=Hnjb)Ai_|8|%^ZnH4y z{twT&b`d7w=%vT;82|B{9QNo%p=f5scozNmyIx6_;b|qQSsNvJc>m=&R&R<@-V}ws zSqqD14^OfVPb+Q6v+JqcYW!d8zdc96g$1mj=g7IR{KIovd1+-pZ>r{0+5dA!v0+f5 zZgRK(X#fCdjU`aJi6a^au5pCGID$)COYDF47?3*7uQJLHDmD=Sr~!Z(G;$Eh8<$vV z2QfVy-c=UNTw$!-4yvFck_QCBgiLO+Qfy)$;)UA@_P-<8DP@%dqgWqCLkZgopD3;f z;ecTe1JD3~0N$^>9aJs@irqP~1H8DI$gjd|sDu$k7*`V20~l)|ndwqS{)l3C0g_7T zO=ba^X?O*=2*3t^__;%|ln_Y@05Bmy;K72ChymDYETV^Zg%$x9F3Qjx5XPYk>fy!8 z3?zY}Xf+35Uuc8+q*gKlhosm60NM%xf70yyW^w=t8}QwUWiWwXiGo#$TyBuUe3D#c zGLgTZUqC}kyO&&hTuXcQmWp;gs|vY_%7K`$=7(o-YDg7Rw@)XtOT_u>jgC2v^BKN^|iG1J{zx zIk)PIOB*YCs^6wpmTlGV;qKHXBPC8y&V9 zo%`zTY4b}rTR3{#-u6`QZZ&e(x-)8MyMIF(E$M>ius42@Wq1@^ZU5*~#aR!?VB}bM z(2=$QTvp?72OR6#zbElrC>mv%2JW=9BE7V1tJ>jSd-;~MhPJO!qWQu@BmLVB3lF0W zC!_L8Hyb&6TR=g)b6t+KO+2(lvw|QYv$_J`*YxWV?x5{#m-Cs((xH2P6#?#-7!Vtf zYiyABNaix$Lkkds09cG`6q+O)olrLt#3r;rix-R0RTbVzi&Tf(Fe1k|x}aLoieEDl z$lz8m)alsTRCIyDSy5C<@OO2$Y#n%4Y2els*TPFW zZy82|!ZmFL3MXu?35ND!6KSsSiit5q6i6_&Zyrzc+5OkaO>DTjCQK@>g>$@1j0c6U z&KN`rBS%a?R`G~PaD|~=Lt&B)NJv9O)UD3A+6f$v8I)hkPy*i&t}zY2b-<_-fDT9o z;F{-LhmdQxl?p=)C|Z-a^a*p|O7{t~mAEKN!(iHdQaG%21Hv#^=Y%j0E9#aK2Un+# zEer;pf(y($Zrm12CA<@YN2rer$bw$n1qI^{7Bz}0aEPja!jyywMFrXgMPUl+mdce# znuFSOK#Cm}qz>nR1(U!PSy5o-iAM|Ob9O^WJz8)>f8xk90uut>5U86L9|viWGMugC z6{yh)cMuAw&OQU1irOhjoQmKHJ|$KV3KkU|DF$G|yA5t=`zDUC0%I%tf zMBo7chZC3)z11*teI1tr#!NK8>pEt_g|Tyy@~|!_G9Cen1CLbVLICQnQ|Fq1G}wlM z(6AHmAOT_3Wgr8u=+v{VWJFDvlnYFPAg)_YvxS2M+x`Xsn8U;d-lE@;6J(>p<={8F zIYa;yRAVG>2!+WT-n9%F99U-xnBx>uU8f%4OZGbdhy)4XV;4veUZcHkGF+qolbHOc zhx`9ILn^H0IDfKod9s^FQ@g*D^pro3|H#?@lfC~>Jww|H5OV))0Lf2y z*uWL`9UTQB7!5w>^%+Tsz(lV-1>7+fT~G*Yy&woQPp%AHn4J|w2@D3p2lQy90X)?e zf#6_8C0&P(F#|Xk$Qzp#HG!}JrHJ65YR9fcO-Vh5p(YF>xImYKgO4VW0wD-+O6QbG zId8!T0`yNR({j*(3~a%z+j7C`CQKshK>dReV!|XsV8Q?&`0n5Y1U!E09Fka2(>DD5 z#@38rvMqh1?dyvH0<=ZWHCh;D;UKE6F~S%Gn&Hn_Q0%|QNJQ5DKnn!a+Mjtyb?F;u z;pBp2Fgg%q>^D7Du!s96fx7`?5E+=tAwkZ6#*k#7jGOchiMU22sG4iS4ODM>xQy58 zx|z)QXYF+^2tpM7Itnwdv*hq263 zpA_*%SmB-dW9m+-aU?H_LK9)To?#NHp_XY1=WQ=X>cH9KUXQqx*Ln1T7f>h;z(d0L z;FTnVg6b??KvK~z+21pYc-E2hz$J2VK2!5G#Fp@HoP;OPc&4U*D&%#d!30A2PDCaNfVq4MV|L^K&v&lM_=?lhe}Dv(vJZa&oiN zv+@gr=vDyVZbx=;%>gk83s#(xOf>t9_iKe(VI#swsPl4UK;>;9gKlG5QuzvhK!Kl5 zM0Uv3=cFkVBU73Dol-j0wz|?qu%j*kIH#$(QlUk?Jmegmol>-U-tP0E^*+;I7KZEJ z)dlN2>u)XGrC?^T2(#<_NQcjDw|V=dilfB5rzI1nj9YlW-0%+0bi%Wfv>=B#2dGDr1-+>-dsjh#&Yx(z}98K zDpUkfW_pfM_w9fIVX9+rd{*o*WElYT4YVkn&<{HOlzfU4xhv6wV^4->`&m$6;yy(7 z{sv}P!f{Lv&R7l3GmR;&^XN_IPR*@^C$`@1CfW1QJ%KmVb4|fS@yC4}TxM5re|k-OgcA%e(EVD!~F*Y3n_5X-!i@1vM%lZAB_#S1^;rrJm8S@Ur$WH|7PN{1V z`^Y>#7ck}eAhTfgrrD-=tb3$x3GYi&o^Gr;-|0FtGoM&oZ|>k5^w5CAki!WiB@k(# zVJ*vWLhKwd{_C{uA>Q}>)<+xDUnt13UGm}+L}H@Jjj^+vlkkBKn>awP*B_enru%pe zw-s&q(@!mCEYh{&^tvwN$_|^$ALKS{B35)XLmK-FGNza9al;YDf6Z+5XC4pw3qbOTR${95*+Pvz^Wd+QkI54wCHv1={mlcjo^19iq>5WI zS99Psc4=TCFGt5;XiaHJ+UoiVSghzu@4u?d6m_l);d>Go&4iy_I#Xy-!pws&LKQF| zfA9BW^OwVAs7T-A!;O}c{zc^uNajQOjBoP=O3wg5yoXgrGx@?%XZd6hC;y=ST>ssO zV!KOP2k03YL?4?DucVAGO3JpLjC`28;11e!isR%sm-x6?Zx!OblIgykfhY_=}{J7#=3-G^?s)zRR%h99*IK_+8hYJyOTrqxNXB ztk~TsK99nmeCDSTr%%exY+~H8JA(0}2c9&uV1XY{Im59hBTOJ zG`#6uC=;dwY|1!nz{F))!M(+_XMd|*>Xc5r&?~#qv5Z&K--NoHK&F@O>LsSrJ*^P@ z;*;uVx7!<+I}QZ>_a^VWVZn=VnP)XxNRPO?h{xZizqkWj9=JBA8C~ogZ;Ekzdc_ds zD`1M#91|&1On#Su!tej8@T!|69IBvJ4 z7%&~5uwj=p-jLKs2LLnn>Cg4M1H`k@y8F_1Vu@Ov11dXpRyY+UK-h<~?zF)dM`Pah_Z1E<_@8&8Zs z7qk8PktO(u33(dr|p&(^d=slbB6J9K2gJYlbPzI zd~bTX$*4QUHMltEqY=XBugbI!;hM6$QRySQ6(;47>`gRdN(x+ik#f5Cyf4YBs!cv4 zDmd*RMmmH^v-r{7)USon<@q}pd@-&@pzYjh9|53c=0HTQ=c;SWeo^2@_Pl1klDalZ z1`GU15~84XsWx>uNXJ}}>J#TURAoLJwZl+VZ&ovXH+1K7srp`$mcmk)OpLYsj)|7CC)j~cyYC<&$Z*ah}@c`mhN2>1|eturrTGHH}fEQySjAP=KFL}SAE{1ai2 zxdO=Q@||<~{l?Sq&yB59`&cX|xb}m<)1Jse*#dt%Iy}Yv?=s7YFf!Vlih?z3@cZZE zceBMOoFunRZCkV^8J0{h=kCq~b4lxtF1zMbw)z$q6JiaZ_EuYO@2y%j??jWOFOn1q z=|4|xY#@@P&Bj(yGc>0?-&@Zt{evC$Z zG89*7;orAU+NJLH$-a7$&>!#h!0}V=eFX-h<^A4;W9?HlSvNnN4c3GX!2?Qf*JHZ< zo%b&}6TS*P4u%fEv^9+sbrtN;_>tAWy?ikwV*R40yj%`aV-HQb-R^6@c8F6gsgO;5ZD8n>ia2XV=V>hC- zh}Qi3+;}(F%t(ygl0sg=FbktIbw6p+Hb{eV96$UZ;vtW$l+$W4*Su3m;X;4IOm_{{ z0+)O5t~IPL(3tKq2(DDKzK)Y!=kF4FCmyG51$QAFbEnm@XzaiT+7#QPz>BxlDxx*- zr?U(a8Dp!D=2kD-oBHM3+E9FPMzBGB&-Fvs*Wb&;42^;m99ZKXB~b*{+(q4zRg4az zt!!wIfyWUA_pA9MB$44rh^s05REZ(`Lp+j(iX87(CNC zE^j}WStcvnF6wLqV#1n+b)*Uv^}oEtryL47w+tS2H_#8kH0a-Hq7_tD`$;+xh#bh@ z`Zk%Fls1CpJ65w=^5!G!Pw|X0hqeV}Q}#9KvQzSCjw?dC{5J9P!lFmH{V`4V?fT$h6*M1-Sk;-%c*b-a3cA!Bap8y7-cwef9qxURsY1Al$(am_+ykIBH@}To1gt!c68~z zJR81YFD{`k+w5I35XD1-yZ54dWljg#nWVXnD>*w&jPdy}oN;BZW)^=X+tDPU!P8M< zzvkf(K*KNEx)#kZZF^j{-`{leBb&%QAHTUt9!NvQuP96iI#7<~Kgfsm`(+I5j;~Nl zO@l;LwYk7mdA}yw%d0Of;VYs8rEW-09(kw4GcnbGIe3Cypwh*^YNpPQ^2)dorsQYCpb`Hpt&MLbCvJ?#~Om!4@P0LTiWz8AQ`( zsJV%)7_vMMa+8#~3K@k*yt0n222Pb<6}(T*p0pW7lbI5TAW*BXX7dRv`Oy=?(O8#K zDJdOPBWqLgf^ah@g``5x!3MpKT@z>Z*Esn;rnk<=`;U9!mOHgvg{;p_DKu#ma+oEI z8|k-hL0YlkvFqu8cp7I($BIO>D!ITfx^~%o)>s{y6{}Y8@2RIx=KTtFlhbRO>-ytf zJS2WeVB@p(`*Y18GpTz{0wHGAx!070s->f(%j5bFGqMx~qy!JQ9trg=BuFXp7uq0$ zf)=r~loeL;gN-pcb}6S#@X`C{-04b;#6Ck??tYL?QNYFco<~(VICq;n<&H2%(8bRR z{vwYT;NKk>msS{s7*~!%O)9gtsAxV0;8pGN@B`>Gz-l!Ed8E7lDgM(p2VpgV`uB4y zW6BcxZAj`)FS8Iqj`KL4FqbViJmn?a$w@)t9ZdCmqph8+v(vlhliDArXPxz5Q&71= zoh1hxmwW1!@PDR|dKoDaWJyvK-4ARfZLzTUJR>id5~S)n^v0g9k9lo^FIAGX!sUeS z*nOvk5@3C8ZQG|0h+DIq)6V!)H4TpVh7V%+x9FFcP^*u3u3Ph~n~nRE?Xes8^L^2%)Pf`r+TF*NGoiQVliS&*J*bO`qz2c8@l!qGQ(jgrA4W?U z;6A~MRmS?ohC5vm|IMJ&TFOECl3V%3{F`5@80XE_2NV0FmJ*WrL~1lu1Qi_OY+6eB z3{Bz5tH+(ikI?|Zq1wTmYII_H>*Zzo82`BnHS6>$`P>?Z3DoGj{2A4B*}wouD;u`) zHnH2z`ElZuk|Cc^K}UUkq&%(PM#9|{91N3>SJXy-z4ji5GJfNecwNJyDVIO7==n-`^95esbA;>oBOlj5(X_7b~)(5c4NuX4k4(W|D#C0O~C# zUyrvZR-Bjg?)q1Eg;v;q=cRqw_RD9bTjyRHCj#9|H1(pQZQ!_Ct>i+%8bRprl$p+= zPf{cC?$&fe6!ev3x?Sp`fZ5}4Il;(aY`X30`T%Z7kI6vRFAup#@N9t)qabF@im+(J zCy(^ps$`d7$<>QkEh6?h;F)cB{Jix+1@;N?=>zh}yfuFZJt^!i)$04ElC401L|s$Y zf$kNZ=gRpz!xt}Pj{T!&F7+*R6y=#qMeHgx5}@u9(TTNg9h zQka;x;gKvU;U!bJgNGO?z?J9os`B%FeMeHP z7q#P`7L_O~OA7b+gh3SRY52tUegqb9X*E_$$#`|3_6=2Tfk}SC{L?u=khYSKk%R~M zFc~;XTvdMbo?u@>N6_-pQ$j4|)KOsd^|2d^OkDwv6~mKv6-p1j#B!)tZk6zv`TH=#1iUi6u); ze69STMckqH9Q6yI?9K?Qd{4BbR#Q8TMKkY69)DWj9rHVuR}*ri~-&(G|=MP_`s_B%MB6UXz_U(<=C@!XUyZq0r%Iq3DVo^RUJo|-AF z)9&gE1eEs(nUF+1eI8nKw9c=!DU`@dx za{Y|~yd(g#a%TRdX$ARt1=(2{IjFn>R7QSw#HAI51qV{%Vz`RvuD7MW&=YxSgO=@= z=!HN)_GOd9Za8;QbY|YW16@D66J9GD)l=_j)^RJVPYf3COkX<+UDX@#Xkl%%Q&)J0 zR_3+fwA0M(T7PLN|0?m#6Ya6%yANc|&duGv>?x!k9Sv2$ zAbkg+&6nR5_DK#5==2`?SYfiQO9}~S4T*&SSyml(ilYoozaKSSybIsvT)LwKNi0P0 zN|Nzl0tX94tPfrkWqndAT(;X4ck5>RYrK1T=X|R`s;nK&**Sl<*Nfe|51HGgEZd(X#I>rK zmoO)7Fh3b1$3GLylcM5M(Xshh*3H6~ce%Zo@3(Uxh*wWarN(_eAs~4r_i7WhWh}RE zzBKmJBoMXwI&=FlUOBl;R%~~SBL(>+n|WW6o0smH#u>)Z;4fqRy=>X+4~DupqvG$4 z37=ZA^wZ8T41UW#JAT$4^r(h9msY)EcP*SAbgHkLhq;ej?`|{^pM~4)#921}e57lW zZer-uO+~{x72|d53>DPosrZ5I*1=y*7P!Mk@DvSW+MO!T`Ue`L-|if!a1#_r8R(?i zN^Is{!1LP(sg-r%y~KK4Wnw)&4UfJ8DMv<3k6K?JWGdb3&(Ux^D4l#z@&m24aB6nm zf~xbQ55db^30JhIR{SP*OuiZ4KKVHFNvXL-EK}qdObeOfq(EA;mq*6TM!!T7FOl&x zzqC&{jF75{pFZNCF&}q3f#aY*ts2AL7R-!sqa8ET+>f56u6ua!L-Wr4uA%o8PE@Z7 zB6Jf5sm$;T>TvB2uQoUk=j>=`$r%q4<>!mTBIbb&#v?h1-#7i$^@)Ki%G(q0zhr2D z($j%Y1P(#w$YXQtPF_K@CV(90|sr$VxQVSC9$XUyQoZ{J24@0Iwoy{4@1 zM|GOd12s^Lq&fg`9gQ61Eu_WD%^`X(uIabh5ldmdC0!+L0KAUKiyop01T0k*T$l`5 z^zNBF{N(uM$lLI;rdDS5i=NbEkG48{(bSKuL}sWcyTFgPi+6EF+=|*g_?0 zFKQQ-its%N#v?QR>h*yO8g~J2Eu~{F%VW_{Z4#L?8z=I{C8VG&rS*G?`T(VrI!_7d z`>)wp&Rk2%0re>#nOvKM7%V?4ehY$C)78sInrQEFUm8rcW6acZm=UI+0qxxP9WzrO z)zQxsmCkN>K2sMYII})YTn`BcoPA2n>7H6f&8Kr#WO)?WImv~tHQ6IfNav_XwOMUz z^OusLcI)app2=}31rcHNoPj8Dg}S#LwlBPQB77b(3^^5x8cAiNd)GwP>C)KrV$;5~ ztr+}GU0UiZap%1!Wsd6;0YzK1Ph7xLt1%bOK#6aLSDENoLd~iHRl)Ju{Ga;dGG{A({Bpbo>h*(yGg066Ov1CLd9^m!+Qz(zQR3PF@%!wM0jh z*lWq_1u}(s84!P#N=t}`Z3r~w9KXts7vQA&}!{#k! zZ1(0GK{9nLAmVKLO1dQc=ZSVh2lU)+Ya>E*q(#&}zS@`xQD#V@M6;T{nJV#9T+ipx zsC=3wH>DsAHFlHxb9F&x4m;JCql8O4g+&ivh@MIaXAQfTsxy94VR%4;k(&8~0U>5m z%?_Ufgl2|yxrwf1nxDH*ihegf?HIn5E+CU`1stQrOw-tFU|P}pSy5EV^+?EXeOmj= z&5HT3Pu>j}-*4)m0k0~>YoY$lw$8uXFV9tbJEOc@_idy4Ej>2m@mfl0hdOE`erd4o zYI^gBm}K&8h(8Qb(4qKjkjULc91oqr>O7jRZbQ9dRpKSVX*F|f$?jYTRC~HyKxY-p zjf1Jg_9GL9B6uPYC4g=pkazo&o?5G@`XbZ96Yjq@fv9P>NyT#{rQ1+%d>aOEX(_uC zNfC3Vx`C|Yc2V<~l~s_cYgs4?!{`Il_a}+O#8Si#p5MMGWi#mNwH5TpvXyYivV$rq zgW18bTNmw41!xx8Cv9pldyf#=leyPevectI~C zsl=B;tVu(aBP?7>1#-LW-lSEPji0ud&HgX=#bc}y{?JC z)Ku;yvzQ8osm{%KrIcp#sQ%JNFW+c!e`n%QQUh!sRHiH)X|7sY*1gI&dGsE?AOjQc zt8GjTzGetvJp7`q>RA}g7=?fB%XHLXj>39uwoiPRewqh|K-ioJ2?M3Kc>>{3|0#*) z^Ts%|R`hwxF$@0Xc;_SeyH2MkJ>@D@7A zKYK$u_T`&L-24`qh9?~}R{PtNm zn&_Opv3k0F)+~+DTZp)2kYAKp&}D|IR^s5+%yIw?>zS814m7(e_`zQj zKlyzu7Ca6g2|PS@Y4LZcC2*(pT5tFAf4q#9=xs2D`1Y>N`_Vmkqa3F)0Q@e`>fcP) zX9*;9Y*pQhQF@Ohltukkb!8`a)Xc<@_DA>n@?4ZrNcNVW#`%ZbA6X_tN)Dd)d!iVc z*2s71z0B@CJiG;&YSQ?b5s%hlK9`kTMezAxwIJy>6jd%xIixEvb? zsE%VM(lgS)d%$5 zGN^zch@>~*|NHLu?tACnIlX;)y1J{ns(w{dGpl4~rV8Ky|6HG?{tldzyOz58@bU5U@(J+riO_;m zs!FnI8V^x2;;MEow#G17J4Z7Un9yxu2>xG5aH&V?5P%3=$*%zG^d62z0{{g8=(EDf z;!Ne>SWGsjTN38U#i)}nBncDJNoy3&-}SE!CS*(l0C<2mCvjx%s+{E@!i<(9(lHBR z@l><`Mi{E{1ws7&7rT*deoelW?I4_uh*S$70L>`*ged@uy66mpnF49SE{NW-hp8aV z@d{UAmhTmT9+;nkz(!u&Q?ZT0+(@xa&YEGVtGqR%NCo~+>PF=)1iJ1{gNU`Xe>&nz zJz(HjqzLGYDWr%l*ayS&lN>=-f7OBk-k_Sm;~1!1CG=w@{lEyT(oY^0YT*$<8C5k! zG|gcxmAt0Q9LOil@_2=&_Sfx6^&FJ$9Dv z#V8EyE0F)o2^Ve$07-uOP6zs4&>AS-F-KtyC-F%q#YxZ<7Z&-SFP}@ifQm4snp{9D z(3kMOE8n$`sOY7M8X7B)h` zQ3xiLqqb4)FTa0aQS>}*@Eu|i+z~R9YSl=r3yzMA(|!yPU(Ee?_(+0&Gnk_7O813% zL=qT6nev(97@ecY;_+Q;6l>eeQFE*5` zkF&a8;3LmPSK2Wsw)Lii;t>fyh+-aL5XBL-s~Jw^h$mLq+6irLECz*yWB*1J=v0_- z^g{x=%OD9%a_oZ_fKl=e zITs0Kl8ShyMeuP$aXO|4!GVn%m4ovp&#1a$=-fI$tySEEsV{44Y*B%&Zqbr3iA$cg9JhjXa)MS!caWY1LMGE{==p2tPjx1<*E}^6 zTowcswZPj6km@p-;Gs8Rqnq>(D@EufD-rZ$ov?~CS_N&QrH0mWHPJdmYfN~^gH%<; zX&N-T4n6(L2A$xs=#19YFqu9?YhClynG9Gw@K~h1;5_-s1*95Gm>AT%EO1(+SXky1 z7N>9)7Z(-R*%X(T>Ex^z=M?uul(A zi#J=jKE8j`SGB#>bf?CJNd@gPkI`My0QIoZdy%1Y7*J(%udVF34`eX<8!==@-w1B2 zw!I0?b?tFW7>Gt<%~HUV7MGfwHR1A2<9C%e#iO;Kht;TNZVVYll-BQ3$N%84t=4V{0x5Agi^kJTfUH zHV-O~Q9TiVC5Hyl!MpBA{D?>A(52n)w@X_`q1J^$`|9PX%4*fEEX%q;;cQr1d1PhnH7i^G)f-5QvJ2rwo!4|CLE)-a z!ub=H7X%#}@re{CWZA?xDgq=J*|dC0dAaxfS7)@t5tva! zkX0-y9NeK}-I$+X2@+CJVYRC>PS(N)AD_3tq79 zxC~nY#gIM?>F#3-!AhA8xTzhNYdtlauH?}hW&_jdLb|~ z()*Kfb*1@{NfFV2#{i#I{Rpt5kOB!{y_f9=c38~l1p$TJfPr&xtn&o{gSr9$T=rl^ z^hU+l$u}ko%$YcV+eOYqA_%iFvhXe#CKd&X163+=Bmr&LseVDgXn%u&(6APEr2t{o zrTqw5)~RV#&V-#XEES#vL0r3#T%q3)esf0HSG-Eh_ zAk;9Fe=Y415xg@Ata0*bFG>&aA$w7Ogo6a|whJU6*61&~G^fb_Dop-sMEw6zq6nt75CZ3fH`O1D z!f#yVxzLe<3@r3IlE4!aF!%?;*Yo^A_hdgpA~@MVl)&L2e87mtXd{!IP$(`oY{EtA z7}rMfg1iaYuoEatP>L84wr2c7)YQW#aO{M37%v!dNbuG$TsRN~F6o>yEalG|MS<~2 zYg7sbkhT?gbSqwX?Sx@?Eogr*LrfTk2~TKW1-{tY1Kv;GI0VM$Rlgtka_MU(u-KNm zwD!e|0Sfd*)&*Laq>&)1E-=F654z#+oPYGc=P1P1{z3}`)Y{*57-gwTXc1+Db8rR_ zWSo~HHgH7zw}86@qdyf`%3(mxf9Eh%pp47%4uiTtBxsro!X;EMN5o7Q=DJ+W^mp$? zEeJvs_aY0kth46!Fn`6tNxM>|p&-ljx_A|6+o zJfZ8P{e#>uHAJDoW`_NdAsej5?At#&^`QwAQsBd;x_K0elopfq(Wu_urRT4aBy?6vT?Ap zvckCvOBrg3n#a!WIP-hz-@>87&y4dzZXRtZWD4d7+!!A@O3x@=&}^Fd7COWL)G%~r zMHpI~bx?=(|BS=sq$e4?KCWpK`yG9c(5vPRs)V$rK+RHuNN+{E7X=At2rE5hzjpGN zHk4%B4hVR^xuIsQqOks!PK?3cO8kgd$5L}}|4uF+gq8VM!ix1zFIs5HVg(%F0oIDs zm#7uHg17sE9yq*SSzAll%e%LK^TtMv=yk1g4h7`7k-NcuW6+lTJhg=5&?9@IaoTcP zFui%_DtBF}Upn2Y?~eKAifB64?h;R(t$y!d$8Ex*F_lZCQXA0EF_-o$;#X1l2q2_u zac|nMU*v$y?S;EQOwPeD>%wLQ&PjDAmqI}tq%y(MAAs^-hdcv{n!G4&o?^p6gSQ-+P(N%e$cPP;ixeO zQS*XOn^=82cJe6E^!f9ar6ZCL84|L$y5*0qr}8&IA0z)b$Wh|xGFNz^=eyH>XWN~N zp4H24Ejs0Bc3o5VlwB12ZTH7+*$2bhC&p!!AhIo5Jfq^(ww-wUY5F)Fv`FTufP`Cu zT(cRRlEHSXbnF*18No894p@6CK=7{bfw=$xJP&2V75#p;U{;vM6W)4YZmjH$v(EJ_ zBpw1trXO9I*dw$YDX8om5pRl`blt7xeti)1Q8OxAG4{?4mxz!1?A9NiakU{;L|;aR z=-lFPJUwSg9o+m|PsR@KIG zfoe@fMjON=U++D@TUE68)tcsJ+oCJ@Of&o9m}{5-$Vg#>CUl*fhKCZ%>OHtoByS@J zv1I$)tOUX`P~O!-FRsBFTet0<;bJT2;wA3|zXIQm+1p^)Q>m zWz}1=gF^LMes&`m;vIjU>-nx6=dTB7wr}+l8SYu|Tz@%s6Kl~Nm1XheX+wdI9JF*k zK$5Mg_>NCCV;xmh0keAbb1RbXVyWsRgJpi;x1-jO+P(Z|CwHI5y*=j%_e_5=_(m3| zNv(>T7Z>mzt9MyCsBN^nzCgZtXx9I%Yo5?Wc|xLmuYOLS^hOh>1tp$Y_NemJ*_xGJs*}eN>JWbl*h>mPtONrsu3Z9r1Qkt~Rfk!!sLO z>vv#!(sh{)oYAgwGQp$tf*~&onNFGpKO3TTtZg%W@PX$kGCrIMN83|nqO_;q_8T^n zM0{#Uqp&Ohu#T#0+)|BFU3;w|lJDXsXf2?&^_j9auYkfp8KZXWu;qzenK~Y&tfN-$~!cAA!W#&>mq=2R&Ig z8pKX$3%y=N{mKcN6-)UUNQ))%F)zHr{7XK`)3q|=P!IqzkXUcFQLoH0qVUl@pJyci zfc_+#3udW}z*OIz#@Dl=j&BW^T9zeNo5dC5?kqI&>lo@Wl~0K;&i2a>$*0)4NH7I1 z#a`jv&ub5tIMp4Ho>AI2o%?u_0`+mvWkt)g`aW)!lN3!~FOm*-z0LT+to2Kkp$`7l zYWq@p+vVy>uX4#`D1bXme&<~T^baqvLa6hvx;?^ zw6eGI^zZf_X%LUiyqrza86}|Zdsm}pZmvNwYbGt~V9S1$0QfvDofo#ZV8(K`D2N<1 zS}>v@EoA;vW)0eIGqLlgH9%WUMA*f zx}uCxD&dm*B-GzBZqqUKtZuOH(7E)c?r^@-?tR@!ABF?87U8i*q@ItFe4_W_-b;Sn z0VRy9D=w491;4wBoc`I|@X{dkdU<*e;c>VA44xQ2Hr#9-M^YE`dGksM^$kc6Vdn2+ z=Y@#dz4H20`5X4aqf0P7_nk#TcL?EAF>60N-M*o(B%jZnlYYJ?Y|1R2or#~I=Ik|1 zT;vN%e)2-%?N~CM)`2j4iovV*wOdsHkoNH=5vUk~ARzG~Fg7pQ__{JZgM?+;D&3Cgy09+QRJqZ%cV6BfHQh@5Kz8 zAII1`Q{%qP0d3^6;twhVqz;|0UXOXebw%MP--PD=cvV0~1WQ-Ae>TKnsWCt$Lg-j1 zwEsHcd=TS}C+DKtE)TPXEAE$l4;HlqiBu<&Vy!J?8}+65-bp#Wnj&y2M3xnf%? zRU5&XY}D-0Ks_-zZAU!2Cs7vQtt6i0R)2av^YZ0h2IY^{AEiC1ZM7i}Tzbpz`Z#cp z{oHV2QTnZO2RI8U z)eKy0TZ%Ygza@gSTa!p+BQ`IPbG&+SW-JY{Y7+uh9d!~q|63g0#j)4m(Sy4 z&BlW1yh$C1{d$kBB=+q-CUR5t z59*Pw?CdYTrLx`2oAFh;xstT3#%uu==5>lK#d2~5C0?bnrN)iWMVfrdF~&j%CkKt7 zI99Sfnha&B1N+v7o1cXf!(B4Qa`2^=uc@(4N9-vP+_@Q$x86{!HZ8K4d3pSL@g-&&TY zPsn;>ck9a3t*Y|+r0LsxaC0R%?pPtJshycAlCK z>hZk;M+ zJ%|2zs-qYAvbqIVNcP$Jb!mpTB;=o*+zUur9CztVo9i=Qi4W`l81b$=zJ5)QQ`Zb# zFFEp{<-xKIg$RYKdAOSNoip6`NBkLy5sYg~bZygO5-rQVgkAP%N){qcpj~`uXDjfP z6VF}7M(M33e3A}14_ZIEsi3; zG`EZD+VJkdCyPTA)Nb1dP(D72S`Yn{w3myA$$i5T{7HGcs7S{Ou8VzdY<_=)9iZou z!!_eS!JQYq;y-Y#Ld^LX$e%2e?c>Sv;x$MO=!`_NBuwYxo-n|#p7?lSiPT~i?<@i4 zk-%^4M(ZT?vhlYaQyK>@=&XHcRT;p_&cuOlx4j?>Ym|!ix+%#F$Xbby#nSfbc*Hz> zu;yI-SRu#i+3Em+E$~d>CSTpW&Z$`m4#Zf;4p1g)cYXayA2&9m_nq6~fY?;xkRdUZ z?IeXW54#VpEu^l<1fzo-o zJ3&No?3eLh$zfbJB(`4DHTjrS^<1=U30&@K=H| z^5Qj5dgTi%)*+}N^pJ*O+sCEUF$X7CR^8Qez07`4S^zxkXuPwy-`dbz?EDGFn*|`Z zj`|TA$+N(cJ_Sp+@4JU*3K3#1!Ly-04}U`W^46pz6X4N(_JHEm{V!QtHDn?g*GKfp zYFaB4tBG!sF!K&8yzW2Omn-MnL5Jdn0Ke7a;P4x7_Pst<5;xbV-AxlYAN^HxK#*dF z*Bpm;Hp9dC*^G93mszYu2R>NZk zU7y>1Lh^~_wE8KZI@ox{2|9mhP)&!re2@74s@}Za)VZctWUHdgKyaWgY~6!36Cw0# zinMOviZ-CH95pVgrMkQRu=f1~l6r}uk^Y`?=HrR@*C7;SiS($zvIg&(<*p);aprr1tmqrMY$z~IT;pn z>GC9A*0nPE#``;k-^>i~l^<4WfA{eQfF0G(33CO6KggRE#w^=Dwf#Z1!V27r$W!V$ z_#1~~9#ZeUBNX!B*`!TuLXb?Y3~D`mWP@E4DN0MtrX0(c+_CvYIoAznxe}hCtZE;% zL|fg9@vd_IEPwc7Y^*v!Dwz95A{p~Aq@?$UKZPE7mmGR^+_{hUQDcYRZ(Lwl66e75 zLta#*1ZGgN$~1TU7U1n?R;rC7)Cy4r^yAa%a^I;zl=L#_X6hb~eEU9NRh|9SdvaTa zR?E`)eBFLIQ@-`y?{PNyX|yg{a3nlaEHg;RM!WTwoZw;t-dl;rTo0RB8(j15!ga^) z3T9ZJ%690Y$jjr%L)Bq!g_`+c9>|xJ?`Md6h?T%MNj!gwx49$;@Hda!sj%!6!7Oqi zpYu9#``pAyWeFhOhXC&tV4vY3uuFTMh0#CrVB*C4GBszUZWY>j{oS7P{d=uCS3L8E z5g#gJ=Aj-$06k+o-k-g*p&VY>o*%g+%A7UJyyY7KtRDE}@q(Uqcl^%Rah(1v5L#d7 zY{6$`^uymxI8WBWYg;4cgqq&%TJ5_Llt1@g1FHd>4f;MjR&4k5`h72PC}TR_*YAHO zb2PIM4Um1gO)qezb=nhv>JbsqA z(m6IGQw0sHb}0%OLpZE!EPwt`bkCDHy%SJZTViP^0t|CXAh?GW7|o&JXVzP)N*lkE z*BMhpL-CMa%8SJx?&2vxBo8uto~@8ASLmo*BiGI#t)KNevo~9j{hU8l2$8LfdYD>G z{tQ}f(L#SzRhu7g<=Jqpb4svooQ~uMw{RZf3-0nYv_d;HaCza*;S*fK{F@E2t@?F+ zr|#w4FC~ghc*Qk>ZsdQ%QP4k*um%o!Ruq=1zGwc^;z0xc0S3T_lmm zW7a<=FUk!Q=eYYxn#?|iC`3n5*Ks^kRvnFnh2K~7IF)=Hl-PCC_Ekf;$EJpq#t9ss zG-gaeLC6*3+ZvWX}hX%}*Z_gHl6Ynis@1J&gA`PXl=T#!NCnPO58O5C5erOM@xa!c8FHQ}EZg+1( zmBaP)kk{#`4D^2_@p_le5ODpl)sQcAmgvV@zghIL^<8VZmSInNFwVII?tsp#_GV`% z62o7s3p9B24hmMj4t3O6U+6i_f;?LT-oq^}(JXQV!W{4&`juJkG!=91^98E}G z5r*fO5h4g^(oy$2wVtdh+b(@gZ*bjdPc$T1TU%NiPcwd1h0|?((hKh{Xzr=R>$~2| z-Ya~PfA`Jx@jeLI`qD2ZruhE8^H7rb*5Hj(B1${B5VP;$;^R@e&DaP*&!~)72PmJJ zgfQ)$bi#W{b9=T?G*6-k$kNMnRQKj?n9MqE7S4qL-cwmzYmJP+RcdPBv)O)?Oi)ab zb}X-AH>0e9QMCSb$(w2>?opuorQIH!de}dkN}SIhPvUJp@=|_pIPWqm)TovcmZKyS zEJ*L-wANpk^kLh2_SLj8A|i2SLUKOOllF zUqZqNw3qma5`LNNnga}7$+uRUm zN%`2+WFx=5s!a@?pyr5Zoz~e}8jp~ovX?S|6RUnCYH(aDVy7HibW>#nM>D|W8k7`ObOQ~&|9HvCuC_U`YUcUwwlS`w9VtZ(M0S~q;%mOMrj!%gFoVyf<787T#8$-;I&qf7RpR8k2` z(;>y_HZ^9yvh#XIi31nEsO=I~eN-3}lIb+T;q2%ryOlTv(_rk|iL*4ht7dO_PLw8# zFaP2fp0{?`?;t_bNS8xDk5sNngSxtglr2&2J5)gB1HQMn^?zL9IWsABRC-3^>v1Nh zUy$YO5n0}(NX(Z&pAd2b0Pep&UG=$F@%ikW=Gf?kpoC}qVbqH4W~R-pThH|bpzbMF z3{gQbrlvRlwy%N$M7{t(5MRhuqZy)kIrG1s%bAxHE$`MGXKrKrk0!Y{90A!!W{@mNV8P7h$g< zUJS*L)LKOlb{%k7x)e1OIl2tP*a@y1;sT%=Wt3UMs8E-cML5fITCjS-=+VzooaJ$i zyCnD7HNk#ph??MbVUmW#c1c03#12=(s2mYr!#Gk6KBZ?_^%l?MiRUn4E9;+%@M<4W za4m9pbXH_?1eff?VMS>kAgjOIf&#(dHUXssDwSHQ_qB{4#@IA}@@i3vj0q`d>!|C3 zkGF}wkM)d?_l!?~VOp4RbAVxUnDK0w$zhl|?el-ipMaIa%W}1KCi4A22{nRM*ipL=@nkUjj&|fq&Nf< z2*sOUsU;X>OPfb{X=9LAVhUwNp zTfzp@dveo9Gdzb?h%+#MTYeOo_?4yOU?1I97D+FiIXKRKJOjUU&H$WiIGV9p(n1Bc zBG8$fjV(HV`TYZnQq!#APQ)5GBVs<&v4zkCY#mu;ef>aq+4tY!BLmvae3rI1`x!JK z7SDo;rHCbo$t#W|DHq-kD`bj^RYaDC+(*%IV!WPR?HmdKp=4Jm{#SJc<-aH{OpN3n zorq3nohoHpXYpixK|=C4PAMul3% z%i_^pImz=hk3m>5=oSBIxbJKutuBm8UNe|e5ORbK+*Kmwa;9h>?% z?}wkln)||IlnPqH>e|#MW7OUgG}hXpCKDpo6S~$@KGt(h*2b>_44eLOn7?kbGUNRp zo^$CUtccik__p~TPlfchKU@0DYg+ArRguXOY^V&H_x$)EKZ9o4v*Xl zkL8L;v5&|oYsq&StlDk;U(0`aj*B7&*^|O-UGdLj^czN$=LyO6Th!NLWz2ap#C7Tlw-NgH=C@yMwwU8Kgu~_K!uA&Dj8{!0D z*uw#|03aCN4}VANF|0C>D?bb;%trSkI5A1%DlonjS|J#F5ryS?R>8Q+Kp~n|H8Q)9 z!ZM-~oCM&5Kcc+Rcxs3Y6#!Teqprci(5PY9W;|*TzQKq>B8s!LhYw z45RiitdB8tNOmJDWK@<50H7TZ@F&M5Y^4B@aRRGuY$Hj+s#NT%lnNtM)-#mqGs(gq zghjM;bl+3zPU+|_(5UM+v8z+6tN+r`rBu+R)}2UE*KKqj5w@Pw(Osg^oocdPpb6AZ z@m>*9Hw0g&L8|vmN`Tq4vq{=NtkkKlSc&S+G>K?=>1yd(8|vs9`dAwt>grDisDe~& z^*L%?-6q|+183cofHf~&6MgHsLtR6fK;xOPwci12w3nP`ro2I_`Lwn9EAJI9`wV-B z{F1T^uClVyvL@%Us!HSh&t>^#gLSrLRTYDE)#X)AyCAiyq^yp&tcZc(Z8fdM}|(*7d=CIGg#tG(HTgbH3AFc`^tx82^J9ab;`) zr`5YKfPKCDJksXku^8J7aHVCHnPug>buK*J6}xg;x&bE1)+=HrhBsVR#A1zSV)Dy& zTDjl1fr8+Ry{?R}1sF{hL_tD!T_sU~W&a`Jh~q-9`-#N*Z|{O?V#2;S5F3z7Y)}r$ z6Bw+($a*p{G%fwMCN_d(c7}q&**c+{mG{chV@D+>%UitI%p#g%HzlNdQ@G;j)=1ZNad7^}c~skEK>dNXeI zLP1som%^`PY^0$5^4QEK&v5l!#OVSA|5@hM|m{;L}+sClPQ} zAge^A6JM{9v09@ynGw;|swx}x933iqLE-EeT2*9iBaNdAe3Kq&UwJ9Kw1>tx78I`S zC{i@-a7i$BmYmM;L{?5uqGCXTrSsdVjK|;pwQ~yxzTRnz%1hzgwaJN~@XdLnXasuP z0%VnliUwyGJGB(0IDmu&na-auBonUN0CYaDV_cDZB zx~*(DYFNdd%wq__O(-{n;4Jk}lY_x@hhz!Z8;21vSkE+qfE`1l%FWlK=Lmy=yWj)! zjw`ptQ;+C@T)S>a2*`t8+zSQc4jvtbHe{5xkjj#b6+;W!1w&;C>Xz1%M2?%za#)rN z7J47a4GSYfs<30g%<~!}n9n(lq74|q1^ta94~Z>^;m@I7I)dEfp=wCZ(x;$CE4@J| zV0wm(94Z@TWe6(6rUg~mK`7W%zDqL#6W%Z2g1%hE5q2ORACRFf0OcZV$t;EtpBaV0 z$jBHL7U0vdG<0Jz=2 zjHpJ-%JW%5E*LYh0KdzaiA3P%p%r1hP;?>+6bEjp)Poq*U60-+0d4dJ3PQt4#D@%o zRj<)KWMz+mV-*W#+M+^a1_W{AW`-jYBshL(0f0qZe4qxKK|z$0mXKT6>S`0gP*9E0 z@aI$(k?^godjznaG%&|0qP~mo#Xr8=#NCX!)n+@B{G)_0AqUfG%jOt$5& zw0(IoK!LW%y+jL(JQ76JB}Q06K{NdA3yuG;J~D}|zt92!we@!#`o7#1vbe@t@^|iK zE(k&t`!WjO`pi}^$m%4#)`flFt{({m69a(ztivvBx*yt;6`GUE# zC=>?<n_o{+()&6^* zma+ItzPwLgib11Oy6D-f3oxaFm4(HalH%NKOmR_eac*gOMR|D@`lfeg<jt{i7akR|cgw?lU%h6E$581(lh54iDUayLyog%(@{q8!~ahP}`U1+ben|9Qu5NG{_nts06 z66b~ZvSc6G2U;Q*>j>h=oR%9mvAtL}q-A@=IK;{QrM}F^bDKXGN@{rRwQ`N<;&bCi z2w>{pQ>Hm`9wK`zWQlpfNjIuQh{zk$C|8XJKUj?B`bCX}lHy0lvEtm}<^o&igDGcBL-^ z2zR~=s2Flt3z+3J4NB*)-H_(6qbvI&nOVlhfU$?W9EniuM0p>uE3{d~=(MP@KOLZO zZvMo>FZCLE2p*tqehQ-M3>OTO9JD^_sA2alr=3Jymfy{Z{Q{X*bTR} znH{Z1^0VzzcQdsAb|Y<+mxwf-xguaUubfBslTF{UwNtivJWx2f?t_5LgA4HBv8 ztxZ4C9eWLYcZSR%(j--Wha5+FP2#1&XHJL0ftB(F-;bxHy^)TciE zsoLZ#^D&&&mU>#HvHucMxpc5SC>3MzGlXz!*VO1kwefch_!W(b9#f_gaS=->{SdP- z7X5tsTJ8;%n~aE(UU!N?9gK}BJbPIxznwx1rl^YYb09_2Kx1g(ARQ>(>w3DFR ze&s+vAu?SUU>dM0j7YwSNnG%JOdH08V!NFpW2ICrF`!Eh#;j8lxPIf*kB05~y@qq? zyKlr@U2A7`=j)p)3d6XMdV1(|n%-Ltj5sz;1yxpG*spG~G7T+&Ab`en~OtluSsCDC1Sz{L_%suj@6+7hYj=XkK z{nW($g3W=VgX@1*qn);LAi#MEPGsEZMeh=Ql5%9sM-4+I70T;H_69B+IJrRXkG|r8 z-1WrQCr3}uT`u~qZhbgSK`+D&=<|^zCmTU1{3X>H(#q9G@p@9^l)CX$nLY)7@H?tW z>gJ^|di`^W!x%}~xfiDS+B){v(c))yJOMX^#}A=O8U6?SWE5skUU^W*KHP3YVed%N zptL{QxZO+MPGIeRXvFY@k&4Wlj)}y}bmHWg9&iGrB59>n={VNRjk>G}E5 zM~|p&4)jWEzbLHjV3$rDIobZe>yS6-!~Bvvf47=O-op1IvIz3(S59?cH=b3xlfnn5 zFirRRuTb`IKQlX(YQL3^ou{E|r9+N!ge+cl3^jN2!on(UeRMc`1|HeVB{&^nzgKcY zKv!Q)XDlx!640`b6Q2T4DJbK5<(reuVI17M2n1)ymWkjw|N4%8gnya@-OD;H{?{&F z_8DjW>%Rd*{+&G?Y2N z3U0kA|260@?TKyg)_Hpes=2(p*`v()Aj-ZQBH^7oBvO9Sxi2n0|E=9;LkN&64V6bW zTqsVEhbr;xTRN*tk@HHFG(0e118{*sE5{7&%0Kl+w1S=MvCJb2!hYuy-;i1QF#%ao zg@TD*%V&E*bKF7YZQkT5OEMvg16(~%N@R{-o8So=_srXc?KWU`wdJcn|J43+s3E@p zu=zr2x@lRTXxdCpwUN1ERxl(IY`@tP}&13TpVH%cw;X5Eux zsAzZsd5CRVTG+3&5M(LvG3aITi1zb_55FL^j(B8Bf)Fm?&yM@=+OE8G`s14O552;Dn~Gk4WI|W9}i_f`%N%^Hnd;8rrShy^h>u6pXoTzeiB7ZP74? z7qfb$>$FbUEz-Y94QdMb{0%odIA^Z&dtKBvV_s6^3&u_HMXA7r!C1GkYL^fahAK(3 z2r|S4C8HOv_(|Vy_+1X`OI`MdK8e_oeyRS$tkZ!iz-!q~8c#SFxsX8seuy(rWSlo( zd$GmCS9|s&VBPdW%r(iRZK(MSiQ;rWbe5>CKF_pET|DC`5U*d6$KPG-yk8ySs^_`3 zosKGx>CcxU9!SX|*RS&g6Sk=2ZQIJzq+vl?yB4)j(IEdRz6pT!?U&@(51L2gx6F2i z{jsC$Q<0HfLU%M$R#D*c&y}(2Mb72YFDXG6)o%(muD(mx1z>&ZfIGvoi zbZXugenDXq&s~$27+)3@HO3jLF5Ed03Yz<3<;^u?KdZ z7{>quCI$6Q-jp$s;BwSu&WwG_$((zm(Hh)nuawnV*M!UZxC2;8ms|gy8CcQXH)#~c zcAE%4q@8Orw+ibKSzX}oyyBAf@{4UDX=Zcq`@?y-RdeC{py=79!7{F&(zK)%a7J7S zdxO~0oM1uVzAu!vjzdT+K<^XR{`6F670J>{oOJAP8$YeOE2lb7=501HiLyamxAUHD zYv^xsd5#x1ou$d~y0-Uuc|Om^-sFrZ#LwRUm}ul2KGD`Dby}_N;Lkcid*=wN#HHhz zz&RIJzMriZL=p*m#~*}W%cwqkAVhDU#y1?oYwnH`K>GQ+J%)y@^fcHw^7sz)06yp? zp1rMRDIOWBI6-o3$6=pd&ng`tX4K4=D1c{Qd12T`WkM^NJ0?K_@Y+UmNZH}!-pDxT zRk|ozx3wPm-SuoO56ag*ACHgK1?k8qmHc&(N2EBv-C0lT!Z5!P$R%swddghzKAXdB{8}{IANYB4PA4yv!wrP>m z%7G{HGG}JmcWMv*ZG_!$jvYeye#ptFKl|P(nkU>LxNtut3N>D`vs^1!^XJ0TA{LN= zJYf}zfiT(OK-mX^qL*?^3_KFf%|oeQH_$_QTQSeG{mr}YnVp5{dAC6OUZPbh4i5&io=eWfx~1QK{q2|F zyS_sg5v8JDoqYSuMq8rlaMM-BB@*q@2&v=V&xc+)ETXoJVht&wZyBrkIP)q_d#ZRp zg<;s27CMvVR(HcU?&e~5^mbw22432E)!?02?%GG4cHul${xu~7j1vb-bF|^x0Awwi z*k|e=OJgum2?GY6K{a$fk3|Q{Q)m21_AyE3!xDl6ujqBeGab2?$1iq*&z3Yd$yM8> z$n%1g%dT~QDNSAFD=8LRl0G82zrGie$w8Z8@$IOoo0cr%;#EA$!|qb;y6EOqpIVK~ zCh3i8`PKCz`#rB;pZ(krcki#$U)!mv9_lIrDD&F6m+4b7q#%KIR(8lV=HdgBacI8! zCnh}nJ0!ol-qC8bqMirS0ng5OKR52r+$i5N{E3La^U6t+=}iyc9n~^&olMg~%eY3; zo9qk@!1U@wH&!n~Q12}|s=#uXx zKY(Rhs}gx)>7wO&Vrvo(57Ma{%hN=YG7Q6qJ;B&QK-!j2FKbc|H0}7?^rs&~Wf#&#?o0lZ@X6Rij)vjHxRg z3FPR-BV=5doN0hjFVkT4?fZa~-K14S5wr11Ww;e(%ZnsgsaoY$!nZXmA|3>4kYG5g zaXFEYr&vOaO7f{Y-?w7?4b{2&#l#=0ANN@-OL)gvv#Oj24Ec<8d45@=Q$t#l?Wx1$ zX!Vv@`yeCN+g{vz<3L{~`%K$F%@|=3s@^|n?-k(wZhy(aU$#nLhxyo^lbjt<_@fPP zL+uWiGye{$MjCImxDKhv&4mhgCafn0?x)-NGKtUx8|DjRTkNYZ893+p|NfGJ4K`mh zeZE6pRZ~`8SyEV2RZ>z_U07U155}`x%ok>%gO#`6)7@<0&gQ6&G)Rd%6$_RPAnv z6LwDP4tiB2e>3L#_E|K7 zi+zU%dMry834`%gKHAen<``9wh|y4a-B`0K4*Iix@JgCDebZo;q*8SyEA%J1ou0ovSxpe4Dt>NxKj^=tZn>hiyhxApZ!gx5u zKs3W))!h#>foIKsWUkqonWh|UFa7y>9u+c`KQ`Ysp-876o&DtzM43Z46#V1+tWWoy zfwkTe_Ov?-Lut&4Y1efgvCjD!`e9!BH{ly}I=Fd5A9JV#L>Ld=!)BIg4q1@uaxFv$ z_3nMD=p{t2+-@?tWA7z=(_S;1s|uY*N9FEm-x@Xzh>UDZVmlm_1D1&eqMcK0(1 z=Oa~51_&O!C#3pztIF*75YKtRTqkHG6EXWnUM*fQ*-+?~H&C;ZM>%8Ga?6(o78_D0 z8^sUf8lWM|uqZ=EH}w!b)}?U!x!bzu){2XJ2hsZH>nCq^`gbz3kE5gBs{ugntWA2> zm@pHFfJyP^UzpW%UavDB4G;Ep(P(-@b(%R;h@a8{R>y}c2Ub<2qGHcN-{MbjHaId1 zonM%XGll0kM2E~|G3D{Td!MWKlY8hXm(!n&I6eY{G54Vw_Bc_ASzMQoSR0<&rPvzg zgKXb&YFKGghnpr}NN3ymhWB(Tf90O=r3y=sR5CEeemcfJacf29ldU#ld~3s*KuEHB zeTu;#RIHK!U}``(x5g4)opG3%4HhxV^TH^gFATvKz} zGm+_jIWGQLDx23^n`s)0e0q=c3y(*}eHw#4uIMcE+WW6fv%`hs*mF~hsx~}AC_@q2w)21NIY>G)+3Q4-gQ9fxi?hf z1!^kue0YAjPs;&quf9cW>U3p^2&RBm_0!-?MgykWC^Ve9K}VI0oQL z40aoMo0UIrbFM$GPxLWORWf|Asymm<=5WfqS&W3#z|z`s;gY}A{3$`(t2GzB*9_V< zX-z1P_p}^rML4gi7hxNxJmkSQ2kMm)&N~zRGlbo16~NEm_z@J*zFp$y|A9EBq)19Vc|cpY7xXRjTzI z%}ZLSLeWHGbu{17iMWr47mxn*vu|URwiPPae?waK_bS&gVO57w7w_c2H)Dmb z{KU(H=muHx^O|zo4Nqx9g0VI0^0O}|{?v4Dae{9WGff>c3POwwa%#r35q+h(byUz% zF<{xo>Y=7sYSQrq)j%g;8+GRzWi%bo9vNLh3pn^nTPKRS1bPpv?uMzi2W?bg`~)tt z7Pfc!GC9&Eajx;!zr)uZr|L>nxIqv65HzTVe_R^EQ5vBe1{9|V6?ZlBOt&M)-n&aF ziX9ZdKDDW<^A+WiuQ$k9dj!9bn5?d=BYl>D8{ZPne7)cA=xIIKHvUlTnZF@_XX|0n zLU#}yFq$~QOKuU}_`(hxoylz|1>4Pqenj)MptCunOsd4d5~qSV%~2 z9lYL8uOxA07FYM+_Mr#iTPZ`AOl{llW_y23Vui|4wV-wDnrT9Ll3 z#fBe_y1g+#o#^4tqhS4TM3NA|WqIF%r5q9k{EyrGJ2{KrGC|}_$gH1MLqRqJHXFH`2Abqj#mF&Z`h3|NT(b{G zDn0F~9{Q3m_I7_it^KI0heNQkG=6VJGvjpM?>W1mhMn|aHV+hNspV`!$l5Vf&VEv< zC1xl(+9p#5#45Xf5@5S#N-CzTzDV}SY&#(V{}ppyO20k)Yl`rfNrD zi_`p-hO=p9#?L%pj&W;z^e~0r4~R~zF_NZzz5Q|=BOPD1Wz!7J*uLQekLfIZ#s8tu zAKbFvXUH-mI^mSvLsD7(NDn`tG3nY2gSB_n?ivSoC;_y@?xh`u6!N~ dEL)!*@|tA;Bml=%T02^0*nqS8@v|1z{{i}=#+Cp8 literal 0 HcmV?d00001 diff --git a/sound/goonstation/voice/howl.ogg b/sound/goonstation/voice/howl.ogg new file mode 100644 index 0000000000000000000000000000000000000000..778fd6b2483b3c69ecb0d18fdb435ee3ca38e4f0 GIT binary patch literal 22339 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 G0Q?s&1Ggdo literal 0 HcmV?d00001 diff --git a/sound/voice/vulp_yelp.ogg b/sound/voice/vulp_yelp.ogg new file mode 100644 index 0000000000000000000000000000000000000000..740fef48cabb01169efc7c22acb1f71264a01564 GIT binary patch literal 18645 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 Date: Fri, 31 Mar 2017 18:16:14 +0200 Subject: [PATCH 006/123] Non-cult soul stones now ask the victim whether they're up for some boo --- code/_onclick/hud/alert.dm | 17 ++++++++++ code/game/gamemodes/wizard/soulstone.dm | 43 ++++++++++++++++++++++++- 2 files changed, 59 insertions(+), 1 deletion(-) diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index 0090dd654fd..3518a90d122 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -393,6 +393,23 @@ so as to remain in compliance with the most up-to-date laws." if(NOTIFY_FOLLOW) G.ManualFollow(target) +/obj/screen/alert/notify_soulstone + name = "Soul Stone" + desc = "Someone is trying to capture your soul in a soul stone. Click to allow it." + icon_state = "template" + timeout = 10 SECONDS + var/obj/item/device/soulstone/stone = null + var/stoner = null + +/obj/screen/alert/notify_soulstone/Click() + if(!usr || !usr.client) + return + if(stone) + if(alert(usr, "Do you want to be captured by [stoner]'s soul stone? This will destroy your corpse and make it \ + impossible for you to get back into the game as your regular character.",, "No", "Yes") == "Yes") + stone.opt_in = TRUE + + //OBJECT-BASED /obj/screen/alert/restrained/buckled diff --git a/code/game/gamemodes/wizard/soulstone.dm b/code/game/gamemodes/wizard/soulstone.dm index 16c9b2f5857..90270c1d64a 100644 --- a/code/game/gamemodes/wizard/soulstone.dm +++ b/code/game/gamemodes/wizard/soulstone.dm @@ -9,10 +9,13 @@ origin_tech = "bluespace=4;materials=4" var/imprinted = "empty" + var/optional = FALSE //does this soulstone ask the victim whether they want to be turned into a shade var/usability = TRUE // Can this soul stone be used by anyone, or only cultists/wizards? var/reusable = TRUE // Can this soul stone be used more than once? var/spent = FALSE // If the soul stone can only be used once, has it been used? + var/opt_in = FALSE // for tracking during the 'optional' bit + /obj/item/device/soulstone/proc/can_use(mob/living/user) if(iscultist(user) || iswizard(user) || usability) return TRUE @@ -33,6 +36,7 @@ /obj/item/device/soulstone/anybody/chaplain name = "mysterious old shard" reusable = FALSE + optional = TRUE /obj/item/device/soulstone/pickup(mob/living/user) ..() @@ -69,6 +73,43 @@ M.create_attack_log("Has had their soul captured with [src.name] by [key_name(user)]") user.create_attack_log("Used the [src.name] to capture the soul of [key_name(M)]") + if(optional) + if(!M.ckey) + to_chat(user, "They have no soul!") + return + var/mob/player_mob = M + if(M.get_ghost())//in case our player ghosted and we need to throw the alert at their ghost instead + player_mob = M.get_ghost() + var/client/player_client = player_mob.client + to_chat(user, "You attempt to channel [M]'s soul into [src]. You must give the soul some time to react and stand still...") + to_chat(player_mob, "[user] is trying to capture your soul into [src]! Click the button in the top right of the game window to respond.") + var/obj/screen/alert/notify_soulstone/A = player_mob.throw_alert("\ref[src]_soulstone_thingy", /obj/screen/alert/notify_soulstone) + player_client << 'sound/misc/notice2.ogg' + window_flash(player_client) + if(player_client.prefs && player_client.prefs.UI_style) + A.icon = ui_style2icon(player_client.prefs.UI_style) + A.stone = src + A.stoner = user.real_name + + var/old_layer = layer + var/old_plane = plane + layer = FLOAT_LAYER + plane = FLOAT_PLANE + A.overlays += src + layer = old_layer + plane = old_plane + + sleep(10 SECONDS) + + if(!opt_in) + to_chat(user, "The soul resists your attempts at capturing it!") + return + + opt_in = FALSE + + if(spent)//checking one more time against shenanigans + return + M.create_attack_log("Has had their soul captured with [src.name] by [key_name(user)]") user.create_attack_log("Used the [src.name] to capture the soul of [key_name(M)]") log_attack("[key_name(user)] used the [src.name] to capture the soul of [key_name(M)]") @@ -347,4 +388,4 @@ T.unEquip(W) init_shade(T, U) qdel(T) - return 1 \ No newline at end of file + return 1 From 8cce3ecdd2417238984b3c70c613a9df313bb502 Mon Sep 17 00:00:00 2001 From: FlattestGuitar Date: Tue, 2 May 2017 14:46:50 +0200 Subject: [PATCH 007/123] Tweaks. --- code/_onclick/hud/alert.dm | 5 +++++ code/game/gamemodes/wizard/soulstone.dm | 11 +++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index 3518a90d122..45c4331bcb3 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -409,6 +409,11 @@ so as to remain in compliance with the most up-to-date laws." impossible for you to get back into the game as your regular character.",, "No", "Yes") == "Yes") stone.opt_in = TRUE +/obj/screen/alert/notify_soulstone/Destroy() + stoner = null + stone = null + return ..() + //OBJECT-BASED diff --git a/code/game/gamemodes/wizard/soulstone.dm b/code/game/gamemodes/wizard/soulstone.dm index 90270c1d64a..46709193ec2 100644 --- a/code/game/gamemodes/wizard/soulstone.dm +++ b/code/game/gamemodes/wizard/soulstone.dm @@ -77,20 +77,26 @@ if(!M.ckey) to_chat(user, "They have no soul!") return + + to_chat(user, "You attempt to channel [M]'s soul into [src]. You must give the soul some time to react and stand still...") + var/mob/player_mob = M if(M.get_ghost())//in case our player ghosted and we need to throw the alert at their ghost instead player_mob = M.get_ghost() var/client/player_client = player_mob.client - to_chat(user, "You attempt to channel [M]'s soul into [src]. You must give the soul some time to react and stand still...") to_chat(player_mob, "[user] is trying to capture your soul into [src]! Click the button in the top right of the game window to respond.") - var/obj/screen/alert/notify_soulstone/A = player_mob.throw_alert("\ref[src]_soulstone_thingy", /obj/screen/alert/notify_soulstone) player_client << 'sound/misc/notice2.ogg' window_flash(player_client) + + var/obj/screen/alert/notify_soulstone/A = player_mob.throw_alert("\ref[src]_soulstone_thingy", /obj/screen/alert/notify_soulstone) if(player_client.prefs && player_client.prefs.UI_style) A.icon = ui_style2icon(player_client.prefs.UI_style) + + //pass the stuff to the alert itself A.stone = src A.stoner = user.real_name + //layer shenanigans to make the alert display the soulstone var/old_layer = layer var/old_plane = plane layer = FLOAT_LAYER @@ -99,6 +105,7 @@ layer = old_layer plane = old_plane + //give the victim 10 seconds to respond sleep(10 SECONDS) if(!opt_in) From 6f0e6fd93d3865747a309f4ca7535ccff67123cc Mon Sep 17 00:00:00 2001 From: FlattestGuitar Date: Wed, 3 May 2017 12:39:33 +0200 Subject: [PATCH 008/123] tweak --- code/_onclick/hud/alert.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index 45c4331bcb3..9a1643cb34d 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -410,7 +410,6 @@ so as to remain in compliance with the most up-to-date laws." stone.opt_in = TRUE /obj/screen/alert/notify_soulstone/Destroy() - stoner = null stone = null return ..() From 63c39f3c8418957aa034e418adb484fb466c5b06 Mon Sep 17 00:00:00 2001 From: Tigercat2000 Date: Sun, 7 May 2017 12:24:04 -0700 Subject: [PATCH 009/123] Restores the karma verbs tab --- code/modules/karma/karma.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/karma/karma.dm b/code/modules/karma/karma.dm index 81af3a38395..b5cdbe0154f 100644 --- a/code/modules/karma/karma.dm +++ b/code/modules/karma/karma.dm @@ -87,7 +87,7 @@ var/list/karma_spenders = list() /mob/verb/spend_karma_list() set name = "Award Karma" set desc = "Let the gods know whether someone's been nice. Can only be used once per round." - set category = "OOC" + set category = "Special Verbs" if(!can_give_karma()) return @@ -116,7 +116,7 @@ var/list/karma_spenders = list() /mob/verb/spend_karma(var/mob/M) set name = "Award Karma to Player" set desc = "Let the gods know whether someone's been nice. Can only be used once per round." - set category = "OOC" + set category = "Special Verbs" if(!M) to_chat(usr, "Please right click a mob to award karma directly, or use the 'Award Karma' verb to select a player from the player listing.") @@ -149,7 +149,7 @@ var/list/karma_spenders = list() /client/verb/check_karma() set name = "Check Karma" set desc = "Reports how much karma you have accrued." - set category = "OOC" + set category = "Special Verbs" if(config.disable_karma) to_chat(src, "Karma is disabled.") From 5a0fb81ec3461b03ab418c5242ae2a1f97cf3e78 Mon Sep 17 00:00:00 2001 From: Alffd Date: Mon, 15 May 2017 22:14:51 -0400 Subject: [PATCH 010/123] Less obnoxious scream --- sound/voice/vulp_yelp.ogg | Bin 18645 -> 15861 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/sound/voice/vulp_yelp.ogg b/sound/voice/vulp_yelp.ogg index 740fef48cabb01169efc7c22acb1f71264a01564..898cc953823dbfa72169a6a26b4d0499464801fe 100644 GIT binary patch delta 14420 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 Date: Tue, 23 May 2017 19:51:59 -0400 Subject: [PATCH 011/123] Makes PR atomic --- .../mob/living/carbon/human/species/station.dm | 2 -- sound/voice/vulp_yelp.ogg | Bin 15861 -> 0 bytes 2 files changed, 2 deletions(-) delete mode 100644 sound/voice/vulp_yelp.ogg diff --git a/code/modules/mob/living/carbon/human/species/station.dm b/code/modules/mob/living/carbon/human/species/station.dm index 295e7ec91ab..e1dc9dee6b7 100644 --- a/code/modules/mob/living/carbon/human/species/station.dm +++ b/code/modules/mob/living/carbon/human/species/station.dm @@ -170,8 +170,6 @@ butt_sprite = "vulp" scream_verb = "yelps" - male_scream_sound = 'sound/voice/vulp_yelp.ogg' - female_scream_sound = 'sound/voice/vulp_yelp.ogg' has_organ = list( "heart" = /obj/item/organ/internal/heart, diff --git a/sound/voice/vulp_yelp.ogg b/sound/voice/vulp_yelp.ogg deleted file mode 100644 index 898cc953823dbfa72169a6a26b4d0499464801fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15861 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 From c730817c31a550a417a253d42726dc52690ada41 Mon Sep 17 00:00:00 2001 From: FlattestGuitar Date: Sat, 27 May 2017 00:38:35 +0200 Subject: [PATCH 012/123] 26th century defibs --- code/game/objects/items/weapons/defib.dm | 327 +++++++++++------------ 1 file changed, 160 insertions(+), 167 deletions(-) diff --git a/code/game/objects/items/weapons/defib.dm b/code/game/objects/items/weapons/defib.dm index 5d0dcebcacc..91faedec79e 100644 --- a/code/game/objects/items/weapons/defib.dm +++ b/code/game/objects/items/weapons/defib.dm @@ -339,105 +339,102 @@ update_icon() defib.cooldowncheck(user) return - if(user.zone_sel && user.zone_sel.selecting == "chest") - user.visible_message("[user] begins to place [src] on [M.name]'s chest.", "You begin to place [src] on [M.name]'s chest.") - busy = 1 - update_icon() - if(do_after(user, 30 * toolspeed, target = M)) //beginning to place the paddles on patient's chest to allow some time for people to move away to stop the process - user.visible_message("[user] places [src] on [M.name]'s chest.", "You place [src] on [M.name]'s chest.") - playsound(get_turf(src), 'sound/machines/defib_charge.ogg', 50, 0) - var/mob/dead/observer/ghost = H.get_ghost() - if(ghost && !ghost.client) - // In case the ghost's not getting deleted for some reason - H.key = ghost.key - log_runtime(EXCEPTION("Ghost of name [ghost.name] is bound to [H.real_name], but lacks a client. Deleting ghost."), src) + user.visible_message("[user] begins to place [src] on [M.name]'s chest.", "You begin to place [src] on [M.name]'s chest.") + busy = 1 + update_icon() + if(do_after(user, 30 * toolspeed, target = M)) //beginning to place the paddles on patient's chest to allow some time for people to move away to stop the process + user.visible_message("[user] places [src] on [M.name]'s chest.", "You place [src] on [M.name]'s chest.") + playsound(get_turf(src), 'sound/machines/defib_charge.ogg', 50, 0) + var/mob/dead/observer/ghost = H.get_ghost() + if(ghost && !ghost.client) + // In case the ghost's not getting deleted for some reason + H.key = ghost.key + log_runtime(EXCEPTION("Ghost of name [ghost.name] is bound to [H.real_name], but lacks a client. Deleting ghost."), src) - qdel(ghost) - ghost = null - var/tplus = world.time - H.timeofdeath - var/tlimit = 1800 //past this much time the patient is unrecoverable (in deciseconds) - var/tloss = 600 //brain damage starts setting in on the patient after some time left rotting - var/total_burn = 0 - var/total_brute = 0 - if(do_after(user, 20 * toolspeed, target = M)) //placed on chest and short delay to shock for dramatic effect, revive time is 5sec total - for(var/obj/item/carried_item in H.contents) - if(istype(carried_item, /obj/item/clothing/suit/space)) - if(!defib.combat) - user.visible_message("[defib] buzzes: Patient's chest is obscured. Operation aborted.") - playsound(get_turf(src), 'sound/machines/defib_failed.ogg', 50, 0) - busy = 0 - update_icon() - return - if(H.heart_attack) - if(!H.get_int_organ(/obj/item/organ/internal/heart) && !H.get_int_organ(/obj/item/organ/internal/brain/slime)) //prevents defibing someone still alive suffering from a heart attack attack if they lack a heart - user.visible_message("[defib] buzzes: Resuscitation failed - Failed to pick up any heart electrical activity.") + qdel(ghost) + ghost = null + var/tplus = world.time - H.timeofdeath + var/tlimit = 1800 //past this much time the patient is unrecoverable (in deciseconds) + var/tloss = 600 //brain damage starts setting in on the patient after some time left rotting + var/total_burn = 0 + var/total_brute = 0 + if(do_after(user, 20 * toolspeed, target = M)) //placed on chest and short delay to shock for dramatic effect, revive time is 5sec total + for(var/obj/item/carried_item in H.contents) + if(istype(carried_item, /obj/item/clothing/suit/space)) + if(!defib.combat) + user.visible_message("[defib] buzzes: Patient's chest is obscured. Operation aborted.") playsound(get_turf(src), 'sound/machines/defib_failed.ogg', 50, 0) busy = 0 update_icon() return - else - H.heart_attack = 0 - user.visible_message("[defib] pings: Cardiac arrhythmia corrected.") - M.visible_message("[M]'s body convulses a bit.") - playsound(get_turf(src), 'sound/machines/defib_zap.ogg', 50, 1, -1) - playsound(get_turf(src), "bodyfall", 50, 1) - playsound(get_turf(src), 'sound/machines/defib_success.ogg', 50, 0) - defib.deductcharge(revivecost) - busy = 0 - cooldown = 1 - update_icon() - defib.cooldowncheck(user) - return - if(H.stat == DEAD) - var/health = H.health - M.visible_message("[M]'s body convulses a bit.") - playsound(get_turf(src), "bodyfall", 50, 1) - playsound(get_turf(src), 'sound/machines/defib_zap.ogg', 50, 1, -1) - for(var/obj/item/organ/external/O in H.bodyparts) - total_brute += O.brute_dam - total_burn += O.burn_dam - if(total_burn <= 180 && total_brute <= 180 && !H.suiciding && !ghost && tplus < tlimit && !(NOCLONE in H.mutations) && (H.get_int_organ(/obj/item/organ/internal/heart) || H.get_int_organ(/obj/item/organ/internal/brain/slime))) - tobehealed = min(health + threshold, 0) // It's HILARIOUS without this min statement, let me tell you - tobehealed -= 5 //They get 5 of each type of damage healed so excessive combined damage will not immediately kill them after they get revived - H.adjustOxyLoss(tobehealed) - H.adjustToxLoss(tobehealed) - H.adjustFireLoss(tobehealed) - H.adjustBruteLoss(tobehealed) - user.visible_message("[defib] pings: Resuscitation successful.") - playsound(get_turf(src), 'sound/machines/defib_success.ogg', 50, 0) - H.update_revive(FALSE) - H.KnockOut(FALSE) - H.Paralyse(5) - H.emote("gasp") - if(tplus > tloss) - H.setBrainLoss( max(0, min(99, ((tlimit - tplus) / tlimit * 100)))) - defib.deductcharge(revivecost) - add_logs(user, M, "revived", object="defibrillator") - else - if(tplus > tlimit|| !H.get_int_organ(/obj/item/organ/internal/heart)) - user.visible_message("[defib] buzzes: Resuscitation failed - Heart tissue damage beyond point of no return for defibrillation.") - else if(total_burn >= 180 || total_brute >= 180) - user.visible_message("[defib] buzzes: Resuscitation failed - Severe tissue damage detected.") - else if(ghost) - user.visible_message("[defib] buzzes: Resuscitation failed: Patient's brain is unresponsive. Further attempts may succeed.") - to_chat(ghost, "Your heart is being defibrillated. Return to your body if you want to be revived! (Verbs -> Ghost -> Re-enter corpse)") - window_flash(ghost.client) - ghost << sound('sound/effects/genetics.ogg') - else - user.visible_message("[defib] buzzes: Resuscitation failed.") - playsound(get_turf(src), 'sound/machines/defib_failed.ogg', 50, 0) - defib.deductcharge(revivecost) - update_icon() - cooldown = 1 - defib.cooldowncheck(user) - else - user.visible_message("[defib] buzzes: Patient is not in a valid state. Operation aborted.") + if(H.heart_attack) + if(!H.get_int_organ(/obj/item/organ/internal/heart) && !H.get_int_organ(/obj/item/organ/internal/brain/slime)) //prevents defibing someone still alive suffering from a heart attack attack if they lack a heart + user.visible_message("[defib] buzzes: Resuscitation failed - Failed to pick up any heart electrical activity.") playsound(get_turf(src), 'sound/machines/defib_failed.ogg', 50, 0) - busy = 0 - update_icon() - else - to_chat(user, "You need to target your patient's chest with [src].") - return + busy = 0 + update_icon() + return + else + H.heart_attack = 0 + user.visible_message("[defib] pings: Cardiac arrhythmia corrected.") + M.visible_message("[M]'s body convulses a bit.") + playsound(get_turf(src), 'sound/machines/defib_zap.ogg', 50, 1, -1) + playsound(get_turf(src), "bodyfall", 50, 1) + playsound(get_turf(src), 'sound/machines/defib_success.ogg', 50, 0) + defib.deductcharge(revivecost) + busy = 0 + cooldown = 1 + update_icon() + defib.cooldowncheck(user) + return + if(H.stat == DEAD) + var/health = H.health + M.visible_message("[M]'s body convulses a bit.") + playsound(get_turf(src), "bodyfall", 50, 1) + playsound(get_turf(src), 'sound/machines/defib_zap.ogg', 50, 1, -1) + for(var/obj/item/organ/external/O in H.bodyparts) + total_brute += O.brute_dam + total_burn += O.burn_dam + if(total_burn <= 180 && total_brute <= 180 && !H.suiciding && !ghost && tplus < tlimit && !(NOCLONE in H.mutations) && (H.get_int_organ(/obj/item/organ/internal/heart) || H.get_int_organ(/obj/item/organ/internal/brain/slime))) + tobehealed = min(health + threshold, 0) // It's HILARIOUS without this min statement, let me tell you + tobehealed -= 5 //They get 5 of each type of damage healed so excessive combined damage will not immediately kill them after they get revived + H.adjustOxyLoss(tobehealed) + H.adjustToxLoss(tobehealed) + H.adjustFireLoss(tobehealed) + H.adjustBruteLoss(tobehealed) + user.visible_message("[defib] pings: Resuscitation successful.") + playsound(get_turf(src), 'sound/machines/defib_success.ogg', 50, 0) + H.update_revive(FALSE) + H.KnockOut(FALSE) + H.Paralyse(5) + H.emote("gasp") + if(tplus > tloss) + H.setBrainLoss( max(0, min(99, ((tlimit - tplus) / tlimit * 100)))) + defib.deductcharge(revivecost) + add_logs(user, M, "revived", object="defibrillator") + else + if(tplus > tlimit|| !H.get_int_organ(/obj/item/organ/internal/heart)) + user.visible_message("[defib] buzzes: Resuscitation failed - Heart tissue damage beyond point of no return for defibrillation.") + else if(total_burn >= 180 || total_brute >= 180) + user.visible_message("[defib] buzzes: Resuscitation failed - Severe tissue damage detected.") + else if(ghost) + user.visible_message("[defib] buzzes: Resuscitation failed: Patient's brain is unresponsive. Further attempts may succeed.") + to_chat(ghost, "Your heart is being defibrillated. Return to your body if you want to be revived! (Verbs -> Ghost -> Re-enter corpse)") + window_flash(ghost.client) + ghost << sound('sound/effects/genetics.ogg') + else + user.visible_message("[defib] buzzes: Resuscitation failed.") + playsound(get_turf(src), 'sound/machines/defib_failed.ogg', 50, 0) + defib.deductcharge(revivecost) + update_icon() + cooldown = 1 + defib.cooldowncheck(user) + else + user.visible_message("[defib] buzzes: Patient is not in a valid state. Operation aborted.") + playsound(get_turf(src), 'sound/machines/defib_failed.ogg', 50, 0) + busy = 0 + update_icon() + /obj/item/weapon/borg_defib name = "defibrillator paddles" @@ -489,80 +486,76 @@ cooldown = 0 update_icon() return - if(user.zone_sel && user.zone_sel.selecting == "chest") - user.visible_message("[user] begins to place [src] on [M.name]'s chest.", "You begin to place [src] on [M.name]'s chest.") - busy = 1 - update_icon() - if(do_after(user, 30 * toolspeed, target = M)) //beginning to place the paddles on patient's chest to allow some time for people to move away to stop the process - user.visible_message("[user] places [src] on [M.name]'s chest.", "You place [src] on [M.name]'s chest.") - playsound(get_turf(src), 'sound/machines/defib_charge.ogg', 50, 0) - var/mob/dead/observer/ghost = H.get_ghost() - if(ghost && !ghost.client) - // In case the ghost's not getting deleted for some reason - H.key = ghost.key - log_runtime(EXCEPTION("Ghost of name [ghost.name] is bound to [H.real_name], but lacks a client. Deleting ghost."), H) + user.visible_message("[user] begins to place [src] on [M.name]'s chest.", "You begin to place [src] on [M.name]'s chest.") + busy = 1 + update_icon() + if(do_after(user, 30 * toolspeed, target = M)) //beginning to place the paddles on patient's chest to allow some time for people to move away to stop the process + user.visible_message("[user] places [src] on [M.name]'s chest.", "You place [src] on [M.name]'s chest.") + playsound(get_turf(src), 'sound/machines/defib_charge.ogg', 50, 0) + var/mob/dead/observer/ghost = H.get_ghost() + if(ghost && !ghost.client) + // In case the ghost's not getting deleted for some reason + H.key = ghost.key + log_runtime(EXCEPTION("Ghost of name [ghost.name] is bound to [H.real_name], but lacks a client. Deleting ghost."), H) - qdel(ghost) - ghost = null - var/tplus = world.time - H.timeofdeath - var/tlimit = 1800 //past this much time the patient is unrecoverable (in deciseconds) - var/tloss = 600 //brain damage starts setting in on the patient after some time left rotting - var/total_burn = 0 - var/total_brute = 0 - if(do_after(user, 20 * toolspeed, target = M)) //placed on chest and short delay to shock for dramatic effect, revive time is 5sec total - if(H.stat == 2) - var/health = H.health - M.visible_message("[M]'s body convulses a bit.") - playsound(get_turf(src), "bodyfall", 50, 1) - playsound(get_turf(src), 'sound/machines/defib_zap.ogg', 50, 1, -1) - for(var/obj/item/organ/external/O in H.bodyparts) - total_brute += O.brute_dam - total_burn += O.burn_dam - if(total_burn <= 180 && total_brute <= 180 && !H.suiciding && !ghost && tplus < tlimit && !(NOCLONE in H.mutations)) - tobehealed = min(health + threshold, 0) // It's HILARIOUS without this min statement, let me tell you - tobehealed -= 5 //They get 5 of each type of damage healed so excessive combined damage will not immediately kill them after they get revived - H.adjustOxyLoss(tobehealed) - H.adjustToxLoss(tobehealed) - H.adjustFireLoss(tobehealed) - H.adjustBruteLoss(tobehealed) - user.visible_message("[user] pings: Resuscitation successful.") - playsound(get_turf(src), 'sound/machines/defib_success.ogg', 50, 0) - H.update_revive(FALSE) - H.KnockOut(FALSE) - H.Paralyse(5) - H.emote("gasp") - if(tplus > tloss) - H.setBrainLoss( max(0, min(99, ((tlimit - tplus) / tlimit * 100)))) - if(isrobot(user)) - var/mob/living/silicon/robot/R = user - R.cell.use(revivecost) - add_logs(user, M, "revived", object="defibrillator") - else - if(tplus > tlimit) - user.visible_message("[user] buzzes: Resuscitation failed - Heart tissue damage beyond point of no return for defibrillation.") - else if(total_burn >= 180 || total_brute >= 180) - user.visible_message("[user] buzzes: Resuscitation failed - Severe tissue damage detected.") - else if(ghost) - user.visible_message("[user] buzzes: Resuscitation failed: Patient's brain is unresponsive. Further attempts may succeed.") - to_chat(ghost, "Your heart is being defibrillated. Return to your body if you want to be revived! (Verbs -> Ghost -> Re-enter corpse)") - window_flash(ghost.client) - ghost << sound('sound/effects/genetics.ogg') - else - user.visible_message("[user] buzzes: Resuscitation failed.") - playsound(get_turf(src), 'sound/machines/defib_failed.ogg', 50, 0) - if(isrobot(user)) - var/mob/living/silicon/robot/R = user - R.cell.use(revivecost) - update_icon() - cooldown = 1 - spawn(50) - cooldown = 0 - update_icon() + qdel(ghost) + ghost = null + var/tplus = world.time - H.timeofdeath + var/tlimit = 1800 //past this much time the patient is unrecoverable (in deciseconds) + var/tloss = 600 //brain damage starts setting in on the patient after some time left rotting + var/total_burn = 0 + var/total_brute = 0 + if(do_after(user, 20 * toolspeed, target = M)) //placed on chest and short delay to shock for dramatic effect, revive time is 5sec total + if(H.stat == 2) + var/health = H.health + M.visible_message("[M]'s body convulses a bit.") + playsound(get_turf(src), "bodyfall", 50, 1) + playsound(get_turf(src), 'sound/machines/defib_zap.ogg', 50, 1, -1) + for(var/obj/item/organ/external/O in H.bodyparts) + total_brute += O.brute_dam + total_burn += O.burn_dam + if(total_burn <= 180 && total_brute <= 180 && !H.suiciding && !ghost && tplus < tlimit && !(NOCLONE in H.mutations)) + tobehealed = min(health + threshold, 0) // It's HILARIOUS without this min statement, let me tell you + tobehealed -= 5 //They get 5 of each type of damage healed so excessive combined damage will not immediately kill them after they get revived + H.adjustOxyLoss(tobehealed) + H.adjustToxLoss(tobehealed) + H.adjustFireLoss(tobehealed) + H.adjustBruteLoss(tobehealed) + user.visible_message("[user] pings: Resuscitation successful.") + playsound(get_turf(src), 'sound/machines/defib_success.ogg', 50, 0) + H.update_revive(FALSE) + H.KnockOut(FALSE) + H.Paralyse(5) + H.emote("gasp") + if(tplus > tloss) + H.setBrainLoss( max(0, min(99, ((tlimit - tplus) / tlimit * 100)))) + if(isrobot(user)) + var/mob/living/silicon/robot/R = user + R.cell.use(revivecost) + add_logs(user, M, "revived", object="defibrillator") else - user.visible_message("[user] buzzes: Patient is not in a valid state. Operation aborted.") + if(tplus > tlimit) + user.visible_message("[user] buzzes: Resuscitation failed - Heart tissue damage beyond point of no return for defibrillation.") + else if(total_burn >= 180 || total_brute >= 180) + user.visible_message("[user] buzzes: Resuscitation failed - Severe tissue damage detected.") + else if(ghost) + user.visible_message("[user] buzzes: Resuscitation failed: Patient's brain is unresponsive. Further attempts may succeed.") + to_chat(ghost, "Your heart is being defibrillated. Return to your body if you want to be revived! (Verbs -> Ghost -> Re-enter corpse)") + window_flash(ghost.client) + ghost << sound('sound/effects/genetics.ogg') + else + user.visible_message("[user] buzzes: Resuscitation failed.") playsound(get_turf(src), 'sound/machines/defib_failed.ogg', 50, 0) - busy = 0 - update_icon() - else - to_chat(user, "You need to target your patient's chest with [src].") - return + if(isrobot(user)) + var/mob/living/silicon/robot/R = user + R.cell.use(revivecost) + update_icon() + cooldown = 1 + spawn(50) + cooldown = 0 + update_icon() + else + user.visible_message("[user] buzzes: Patient is not in a valid state. Operation aborted.") + playsound(get_turf(src), 'sound/machines/defib_failed.ogg', 50, 0) + busy = 0 + update_icon() From 1e6866ab1f8629cd8c61d1b8273e6bff2042bc04 Mon Sep 17 00:00:00 2001 From: Citinited Date: Mon, 29 May 2017 21:50:12 +0100 Subject: [PATCH 013/123] Asset-cache now deals with RPD icon generation; addresses feedback from PR Addresses feedback from PJB, Crazylemon, and others, moves the icon generation to asset-cache.dm, some minor improvement to the nanoUI --- code/game/objects/items/weapons/rpd.dm | 377 ++++++++++++------------- code/modules/client/asset_cache.dm | 27 ++ nano/templates/rpd.tmpl | 65 +++-- 3 files changed, 242 insertions(+), 227 deletions(-) diff --git a/code/game/objects/items/weapons/rpd.dm b/code/game/objects/items/weapons/rpd.dm index 7db79cdd06f..17d30d1a170 100644 --- a/code/game/objects/items/weapons/rpd.dm +++ b/code/game/objects/items/weapons/rpd.dm @@ -2,10 +2,40 @@ Rapid Pipe Dispenser */ +#define SIMPLE_BENT 1 +#define SIMPLE_CAP 20 +#define SUPPLY_BENT 25 +#define SUPPLY_CAP 32 +#define SCRUBBERS_BENT 27 +#define SCRUBBERS_CAP 33 +#define HE_BENT 3 +#define HE_EXCHANGER 17 +#define CONNECTOR 4 +#define UNARY_VENT 7 +#define PASSIVE_VENT 37 +#define GAS_SCRUBBER 10 +#define INJECTOR 34 +#define GAS_SENSOR 98 +#define METER 99 +#define DISPOSALS_JUNCTION 2 +#define DISPOSALS_BIN 6 +#define DISPOSALS_OUTLET 7 +#define DISPOSALS_CHUTE 8 +#define ATMOS_MODE 1 +#define DISPOSALS_MODE 2 +#define ROTATION_MODE 3 +#define FLIP_MODE 4 +#define DELETE_MODE 5 +#define ATMOS_PIPING 1 +#define SUPPLY_PIPING 2 +#define SCRUBBERS_PIPING 3 +#define DEVICES 4 +#define HEAT_PIPING 5 + /obj/item/weapon/rpd name = "rapid pipe dispenser" desc = "This device can rapidly dispense atmospherics and disposals piping, manipulate loose piping, and recycle any detached pipes it is applied to." - icon = 'icons/obj/tools.dmi' //Apparently we can't use double quotes here + icon = 'icons/obj/tools.dmi' icon_state = "rpd" opacity = 0 density = 0 @@ -15,289 +45,248 @@ throwforce = 10 throw_speed = 3 throw_range = 5 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL materials = list(MAT_METAL = 30000, MAT_GLASS = 5000) origin_tech = "engineering=4;materials=2" + var/datum/effect/system/spark_spread/spark_system + var/cooldown //Waiting for something to complete? var/iconrotation = 0 //used to orient icons and pipes - var/initialised //This stops us unnecessarily checking the cache for icons - var/mode = 1 //Disposals, atmospherics - var/pipemenu = 1 //For nanoUI menus + var/mode = 1 //Disposals, atmospherics, etc. var/pipetype = 1//For nanoUI menus var/whatpipe = 0 //What kind of pipe is it? See code/game/machinery/pipe/construction.dm for a list of defines - var/whatdpipe = 0 //What kind of disposals pipe is it? See code/game/machinery/pipe/pipe_dispenser.dm for a list of defines - var/cooldown = 0 //Waiting for something to complete? + var/whatdpipe = 0 //What kind of disposals pipe is it? See code/game/machinery/pipe/dispenser.dm for a list of defines var/spawndelay = 4 //Adding a *slight* delay to the RPD, shouldn't be very noticeable var/walldelay = 40 //How long should drilling into a wall take? - var/datum/effect/system/spark_spread/spark_system /obj/item/weapon/rpd/New() + ..() spark_system = new /datum/effect/system/spark_spread() spark_system.set_up(1, 0, src) spark_system.attach(src) -//List of things follow here - -//Pipename, pipe type (see construction.dm), pipe category, number of unique orientations, name of pipe icon, is this pipe bendy? -var/list/pipelist = list( - list("key1" = "Straight pipe", "key2" = "0", "key3" = "1", "key4" = "2", "key5" = "simple", "key6" = "0"), - list("key1" = "Bent pipe", "key2" = "1", "key3" = "1", "key4" = "4", "key5" = "simple", "key6" = "1"), - list("key1" = "T-manifold", "key2" = "5", "key3" = "1", "key4" = "4", "key5" = "manifold", "key6" = "0"), - list("key1" = "4-way manifold", "key2" = "19", "key3" = "1", "key4" = "1", "key5" = "manifold4w", "key6" = "0"), - list("key1" = "Pipe cap", "key2" = "20", "key3" = "1", "key4" = "4", "key5" = "cap", "key6" = "0"), - list("key1" = "Manual valve", "key2" = "8", "key3" = "1", "key4" = "2", "key5" = "mvalve", "key6" = "0"), - list("key1" = "Digital valve", "key2" = "35", "key3" = "1", "key4" = "2", "key5" = "dvalve", "key6" = "0"), - list("key1" = "Manual T-valve", "key2" = "18", "key3" = "1", "key4" = "4", "key5" = "tvalve", "key6" = "0"), - list("key1" = "Digital T-valve", "key2" = "38", "key3" = "1", "key4" = "4", "key5" = "dtvalve", "key6" = "0"), - list("key1" = "Straight supply pipe", "key2" = "24", "key3" = "2", "key4" = "2", "key5" = "simple", "key6" = "0"), - list("key1" = "Bent supply pipe", "key2" = "25", "key3" = "2", "key4" = "4", "key5" = "simple", "key6" = "1"), - list("key1" = "Supply T-manifold", "key2" = "28", "key3" = "2", "key4" = "4", "key5" = "manifold", "key6" = "0"), - list("key1" = "4-way supply manifold", "key2" = "30", "key3" = "2", "key4" = "1", "key5" = "manifold4w", "key6" = "0"), - list("key1" = "Supply pipe cap", "key2" = "32", "key3" = "2", "key4" = "4", "key5" = "cap", "key6" = "0"), - list("key1" = "Straight scrubbers pipe", "key2" = "26", "key3" = "3", "key4" = "2", "key5" = "simple", "key6" = "0"), - list("key1" = "Bent scrubbers pipe", "key2" = "27", "key3" = "3", "key4" = "4", "key5" = "simple", "key6" = "1"), - list("key1" = "Scrubbers T-manifold", "key2" = "29", "key3" = "3", "key4" = "4", "key5" = "manifold", "key6" = "0"), - list("key1" = "4-way scrubbers manifold", "key2" = "31", "key3" = "3", "key4" = "1", "key5" = "manifold4w", "key6" = "0"), - list("key1" = "Scrubbers pipe cap", "key2" = "33", "key3" = "3", "key4" = "4", "key5" = "cap", "key6" = "0"), - list("key1" = "Universal pipe adapter", "key2" = "23", "key3" = "4", "key4" = "2", "key5" = "universal", "key6" = "0"), - list("key1" = "Unary vent", "key2" = "7", "key3" = "4", "key4" = "4", "key5" = "uvent", "key6" = "0"), - list("key1" = "Scrubber", "key2" = "10", "key3" = "4", "key4" = "4", "key5" = "scrubber", "key6" = "0"), - list("key1" = "Air injector", "key2" = "34", "key3" = "4", "key4" = "4", "key5" = "injector", "key6" = "0"), - list("key1" = "Gas pump", "key2" = "9", "key3" = "4", "key4" = "4", "key5" = "pump", "key6" = "0"), - list("key1" = "Volume pump", "key2" = "16", "key3" = "4", "key4" = "4", "key5" = "volumepump", "key6" = "0"), - list("key1" = "Passive gate", "key2" = "15", "key3" = "4", "key4" = "4", "key5" = "passivegate", "key6" = "0"), - list("key1" = "Connector", "key2" = "4", "key3" = "4", "key4" = "4", "key5" = "connector", "key6" = "0"), - list("key1" = "Gas sensor", "key2" = "98", "key3" = "4", "key4" = "1", "key5" = "sensor", "key6" = "0"), - list("key1" = "Meter", "key2" = "99", "key3" = "4", "key4" = "1", "key5" = "meter", "key6" = "0"), - list("key1" = "Gas filter", "key2" = "13", "key3" = "4", "key4" = "4", "key5" = "filter", "key6" = "0"), - list("key1" = "Gas mixer", "key2" = "14", "key3" = "4", "key4" = "4", "key5" = "mixer", "key6" = "0"), - list("key1" = "Dual-port vent pump", "key2" = "36", "key3" = "4", "key4" = "2", "key5" = "dual-port vent", "key6" = "0"), - list("key1" = "Passive vent", "key2" = "37", "key3" = "4", "key4" = "4", "key5" = "passive vent", "key6" = "0"), - list("key1" = "Straight HE pipe", "key2" = "2", "key3" = "5", "key4" = "2", "key5" = "he", "key6" = "0"), - list("key1" = "Bent HE pipe", "key2" = "3", "key3" = "5", "key4" = "4", "key5" = "he", "key6" = "1"), - list("key1" = "Junction", "key2" = "6", "key3" = "5", "key4" = "4", "key5" = "junction", "key6" = "0"), - list("key1" = "Heat exchanger", "key2" = "17", "key3" = "5", "key4" = "4", "key5" = "heunary", "key6" = "0")) - -//Pipename, pipe type, number of unique orientations, name of pipe icon -var/list/dpipelist = list( - list("key1" = "Straight pipe", "key2" = "0", "key3" = "2", "key4" = "conpipe-s"), - list("key1" = "Bent pipe", "key2" = "1", "key3" = "4", "key4" = "conpipe-c"), - list("key1" = "Junction", "key2" = "2", "key3" = "4", "key4" = "conpipe-j1"), - list("key1" = "Y-junction", "key2" = "4", "key3" = "4", "key4" = "conpipe-y"), - list("key1" = "Trunk", "key2" = "5", "key3" = "4", "key4" = "conpipe-t"), - list("key1" = "Bin", "key2" = "6", "key3" = "1", "key4" = "condisposal"), - list("key1" = "Outlet", "key2" = "7", "key3" = "4", "key4" = "outlet"), - list("key1" = "Chute", "key2" = "8", "key3" = "4", "key4" = "intake")) - //Procs -/obj/item/weapon/rpd/proc/Activaterpd(soundfile, delay) - playsound(loc, soundfile, 50, 1) +/obj/item/weapon/rpd/proc/Activaterpd(delay) + playsound(loc, "sound/machines/click.ogg", 50, 1) if(prob(15)) spark_system.start() if(delay) - cooldown = 1 - spawn(spawndelay) - cooldown = 0 - return + cooldown = TRUE + sleep(spawndelay) + cooldown = null /obj/item/weapon/rpd/proc/Checkifbent(x) - if(x in list(1,3,25,27)) - return 1 - else - return 0 + return(x in list(SIMPLE_BENT, HE_BENT, SUPPLY_BENT, SCRUBBERS_BENT)) -//This proc puts each necessary icon into the initial user's cache for later use. It then sets initialised = 1 to avoid calling itself unnecessarily. -/obj/item/weapon/rpd/proc/Initialiseicons() - var/F - var/I - var/list/filenames - var/disposalsfile = "icons/obj/pipes/disposal.dmi" - var/pipefile = "icons/obj/pipe-item.dmi" - for(I in pipelist) - if(I["key6"] == "1")//Bendy pipe icons - filenames += list( - list(pipefile, I["key5"], I["key5"] + "-southeast.png", SOUTHEAST), - list(pipefile, I["key5"], I["key5"] + "-southwest.png", SOUTHWEST), - list(pipefile, I["key5"], I["key5"] + "-northwest.png", NORTHWEST), - list(pipefile, I["key5"], I["key5"] + "-northeast.png", NORTHEAST)) - continue - if(I["key4"] == "2" || I["key4"] == "4") //Dual state icons - filenames += list( - list(pipefile, I["key5"], I["key5"] + "-north.png", NORTH), - list(pipefile, I["key5"], I["key5"] + "-east.png", EAST)) - if(I["key4"] == "4")//All other pipes that need icons - filenames += list( - list(pipefile, I["key5"], I["key5"] + "-south.png", SOUTH), - list(pipefile, I["key5"], I["key5"] + "-west.png", WEST)) - for(I in dpipelist) - if(I["key3"] == "2" || I["key3"] == "4") - filenames += list( - list(disposalsfile, I["key4"], I["key4"] + "-north.png", NORTH), - list(disposalsfile, I["key4"], I["key4"] + "-east.png", EAST)) - if(I["key3"] == "4") - filenames += list( - list(disposalsfile, I["key4"], I["key4"] + "-south.png", SOUTH), - list(disposalsfile, I["key4"], I["key4"] + "-west.png", WEST)) - for(F in filenames) - var/icon/iconfile = icon(F[1], icon_state = F[2], dir = F[4]) - usr << browse_rsc(iconfile, F[3]) - initialised = 1 - return +/obj/item/weapon/rpd/proc/Checkifdense(x) //We need to check if the targetted turf is already dense, in case some goofball sticks 100 bins in front of security or something + return(x in list(DISPOSALS_BIN, DISPOSALS_OUTLET, DISPOSALS_CHUTE)) /obj/item/weapon/rpd/proc/Manipulatepipes(subject, targetturf, atmosverb, disposalsverb) if(istype(subject, /obj/item/pipe)) call(subject, atmosverb)() else if(istype(subject, /obj/structure/disposalconstruct/)) call(subject, disposalsverb)() - else - return + +//Lists of things + +var/list/pipelist = list( //id refers to the pipe_type found in construction.dm, icon refers to the name of the icon state in icons/obj/pipe-item.dmi. Icons are made with the asset-cache + list("pipename" = "Straight pipe", "id" = 0, "category" = ATMOS_PIPING, "orientations" = 2, "icon" = "simple"), + list("pipename" = "Bent pipe", "id" = 1, "category" = ATMOS_PIPING, "orientations" = 4, "icon" = "simple", "bendy" = 1), + list("pipename" = "T-manifold", "id" = 5, "category" = ATMOS_PIPING, "orientations" = 4, "icon" = "manifold"), + list("pipename" = "4-way manifold", "id" = 19, "category" = ATMOS_PIPING, "orientations" = 1, "icon" = "manifold4w"), + list("pipename" = "Pipe cap", "id" = 20, "category" = ATMOS_PIPING, "orientations" = 4, "icon" = "cap"), + list("pipename" = "Manual valve", "id" = 8, "category" = ATMOS_PIPING, "orientations" = 2, "icon" = "mvalve"), + list("pipename" = "Digital valve", "id" = 35, "category" = ATMOS_PIPING, "orientations" = 2, "icon" = "dvalve"), + list("pipename" = "Manual T-valve", "id" = 18, "category" = ATMOS_PIPING, "orientations" = 4, "icon" = "tvalve"), + list("pipename" = "Digital T-valve", "id" = 38, "category" = ATMOS_PIPING, "orientations" = 4, "icon" = "dtvalve"), + list("pipename" = "Straight supply pipe", "id" = 24, "category" = SUPPLY_PIPING, "orientations" = 2, "icon" = "simple"), + list("pipename" = "Bent supply pipe", "id" = 25, "category" = SUPPLY_PIPING, "orientations" = 4, "icon" = "simple", "bendy" = 1), + list("pipename" = "Supply T-manifold", "id" = 28, "category" = SUPPLY_PIPING, "orientations" = 4, "icon" = "manifold"), + list("pipename" = "4-way supply manifold", "id" = 30, "category" = SUPPLY_PIPING, "orientations" = 1, "icon" = "manifold4w"), + list("pipename" = "Supply pipe cap", "id" = 32, "category" = SUPPLY_PIPING, "orientations" = 4, "icon" = "cap"), + list("pipename" = "Straight scrubbers pipe", "id" = 26, "category" = SCRUBBERS_PIPING, "orientations" = 2, "icon" = "simple"), + list("pipename" = "Bent scrubbers pipe", "id" = 27, "category" = SCRUBBERS_PIPING, "orientations" = 4, "icon" = "simple", "bendy" = 1), + list("pipename" = "Scrubbers T-manifold", "id" = 29, "category" = SCRUBBERS_PIPING, "orientations" = 4, "icon" = "manifold"), + list("pipename" = "4-way scrubbers manifold", "id" = 31, "category" = SCRUBBERS_PIPING, "orientations" = 1, "icon" = "manifold4w"), + list("pipename" = "Scrubbers pipe cap", "id" = 33, "category" = SCRUBBERS_PIPING, "orientations" = 4, "icon" = "cap"), + list("pipename" = "Universal pipe adapter", "id" = 23, "category" = DEVICES, "orientations" = 2, "icon" = "universal"), + list("pipename" = "Connector", "id" = 4, "category" = DEVICES, "orientations" = 4, "icon" = "connector"), + list("pipename" = "Unary vent", "id" = 7, "category" = DEVICES, "orientations" = 4, "icon" = "uvent"), + list("pipename" = "Scrubber", "id" = 10, "category" = DEVICES, "orientations" = 4, "icon" = "scrubber"), + list("pipename" = "Gas pump", "id" = 9, "category" = DEVICES, "orientations" = 4, "icon" = "pump"), + list("pipename" = "Volume pump", "id" = 16, "category" = DEVICES, "orientations" = 4, "icon" = "volumepump"), + list("pipename" = "Passive gate", "id" = 15, "category" = DEVICES, "orientations" = 4, "icon" = "passivegate"), + list("pipename" = "Gas filter", "id" = 13, "category" = DEVICES, "orientations" = 4, "icon" = "filter"), + list("pipename" = "Gas mixer", "id" = 14, "category" = DEVICES, "orientations" = 4, "icon" = "mixer"), + list("pipename" = "Gas sensor", "id" = 98, "category" = DEVICES, "orientations" = 1, "icon" = "sensor"), + list("pipename" = "Meter", "id" = 99, "category" = DEVICES, "orientations" = 1, "icon" = "meter"), + list("pipename" = "Passive vent", "id" = 37, "category" = DEVICES, "orientations" = 4, "icon" = "passive vent"), + list("pipename" = "Dual-port vent pump", "id" = 36, "category" = DEVICES, "orientations" = 2, "icon" = "dual-port vent"), + list("pipename" = "Air injector", "id" = 34, "category" = DEVICES, "orientations" = 4, "icon" = "injector"), + list("pipename" = "Straight HE pipe", "id" = 2, "category" = HEAT_PIPING, "orientations" = 2, "icon" = "he"), + list("pipename" = "Bent HE pipe", "id" = 3, "category" = HEAT_PIPING, "orientations" = 4, "icon" = "he", "bendy" = 1), + list("pipename" = "Junction", "id" = 6, "category" = HEAT_PIPING, "orientations" = 4, "icon" = "junction"), + list("pipename" = "Heat exchanger", "id" = 17, "category" = HEAT_PIPING, "orientations" = 4, "icon" = "heunary")) +var/list/dpipelist = list( + list("pipename" = "Straight pipe", "id" = 0, "orientations" = 2, "icon" = "conpipe-s"), + list("pipename" = "Bent pipe", "id" = 1, "orientations" = 4, "icon" = "conpipe-c"), + list("pipename" = "Junction", "id" = 2, "orientations" = 4, "icon" = "conpipe-j1"), + list("pipename" = "Y-junction", "id" = 4, "orientations" = 4, "icon" = "conpipe-y"), + list("pipename" = "Trunk", "id" = 5, "orientations" = 4, "icon" = "conpipe-t"), + list("pipename" = "Bin", "id" = 6, "orientations" = 1, "icon" = "condisposal"), + list("pipename" = "Outlet", "id" = 7, "orientations" = 4, "icon" = "outlet"), + list("pipename" = "Chute", "id" = 8, "orientations" = 4, "icon" = "intake")) +var/list/mainmenu = list( + list("category" = "Atmospherics", "mode" = 1, "icon" = "wrench"), + list("category" = "Disposals", "mode" = 2, "icon" = "recycle"), + list("category" = "Rotate", "mode" = 3, "icon" = "rotate-right"), + list("category" = "Flip", "mode" = 4, "icon" = "exchange"), + list("category" = "Recycle", "mode" = 5, "icon" = "trash")) +var/list/pipemenu = list( + list("pipecategory" = "Normal", "pipemode" = 1), + list("pipecategory" = "Supply", "pipemode" = 2), + list("pipecategory" = "Scrubber", "pipemode" = 3), + list("pipecategory" = "Devices", "pipemode" = 4), + list("pipecategory" = "Heat exchange", "pipemode" = 5)) //NanoUI stuff -/obj/item/weapon/rpd/attack_self(mob/user as mob) +/obj/item/weapon/rpd/attack_self(mob/user) ui_interact(user) /obj/item/weapon/rpd/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/topic_state/state = inventory_state) ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open) if(!ui) - ui = new(user, src, ui_key, "rpd.tmpl", "[name]", 600, 650, state = state) + ui = new(user, src, ui_key, "rpd.tmpl", "[name]", 400, 650, state = state) ui.open() - if(!initialised) - Initialiseicons() ui.set_auto_update(1) /obj/item/weapon/rpd/ui_data(mob/user, ui_key = "main", datum/topic_state/state = inventory_state) var/data[0] data["dpipelist"] = dpipelist data["iconrotation"] = iconrotation + data["mainmenu"] = mainmenu data["mode"] = mode data["pipelist"] = pipelist data["pipemenu"] = pipemenu data["pipetype"] = pipetype data["whatdpipe"] = whatdpipe data["whatpipe"] = whatpipe - data["mainmenu"] = list( - list("key1" = "Atmospherics piping", "key2" = "1", "key3" = "wrench"), - list("key1" = "Disposals piping", "key2" = "2", "key3" = "recycle"), - list("key1" = "Rotate mode", "key2" = "3", "key3" = "rotate-right"), - list("key1" = "Flip mode", "key2" = "4", "key3" = "exchange"), - list("key1" = "Recycle mode", "key2" = "5", "key3" = "trash")) - data["mainmenu"] = list( - list("key1" = "Atmospherics piping", "key2" = "1", "key3" = "wrench"), - list("key1" = "Disposals piping", "key2" = "2", "key3" = "recycle"), - list("key1" = "Rotate mode", "key2" = "3", "key3" = "rotate-right"), - list("key1" = "Flip mode", "key2" = "4", "key3" = "exchange"), - list("key1" = "Recycle mode", "key2" = "5", "key3" = "trash")) - data["pipemenu"] = list( - list("key1" = "Normal pipes", "key2" = "1"), - list("key1" = "Supply pipes", "key2" = "2"), - list("key1" = "Scrubber pipes", "key2" = "3"), - list("key1" = "Devices", "key2" = "4"), - list("key1" = "HE pipes", "key2" = "5")) return data /obj/item/weapon/rpd/Topic(href, href_list, nowindow, state) + ..() if(href_list["iconrotation"]) - iconrotation = text2num(href_list["iconrotation"]) + iconrotation = text2num(sanitize(href_list["iconrotation"])) else if(href_list["whatpipe"]) - whatpipe = text2num(href_list["whatpipe"]) + whatpipe = text2num(sanitize(href_list["whatpipe"])) else if(href_list["whatdpipe"]) - whatdpipe = text2num(href_list["whatdpipe"]) + whatdpipe = text2num(sanitize(href_list["whatdpipe"])) else if(href_list["pipetype"]) - pipetype = text2num(href_list["pipetype"]) + pipetype = text2num(sanitize(href_list["pipetype"])) else if(href_list["mode"]) - mode = text2num(href_list["mode"]) - else if(href_list["refresh"]) - to_chat(usr, "You press the reset button, refreshing all settings on the [src].") - iconrotation = 0 - mode = 1 - pipemenu = 1 - pipetype = 1 - whatpipe = 0 - whatdpipe = 0 - cooldown = 0 - Initialiseicons() + mode = text2num(sanitize(href_list["mode"])) else return nanomanager.update_uis(src) - return //What the RPD actually does -/obj/item/weapon/rpd/afterattack(atom/target, mob/user as mob, proximity) +/obj/item/weapon/rpd/afterattack(atom/target, mob/user, proximity) + ..() var/turf/T = get_turf(target) - if(!proximity || cooldown == 1) + if(ismob(target) || istype(target, /obj/structure/window) || !proximity || cooldown) return - else if(!isturf(target) && !istype(target, /obj/item/pipe) && !istype(target, /obj/item/pipe_meter) && !istype(target, /obj/item/pipe_gsensor) && !istype(target, /obj/structure/disposalconstruct) || istype(target, /turf/simulated/shuttle)) - return - else if(mode == 1) //Atmos mode + if(mode == ATMOS_MODE) if(istype(T, /turf/simulated/wall)) //Drilling into walls takes time and we don't want to do anything else while drilling - cooldown = 1 + cooldown = TRUE playsound(get_turf(src), "sound/weapons/circsawhit.ogg", 50, 1) - usr.visible_message("[usr] starts drilling a hole in [T]...", "You start drilling a hole in [T]...", "You hear a drill.") - if(do_after(usr, walldelay, target = T)) - usr.visible_message("[usr] finishes drilling a hole in [T]!", "You finish drilling a hole in [T]!", "You hear clanking.") - else - cooldown = 0 + user.visible_message("[user] starts drilling a hole in [T]...", "You start drilling a hole in [T]...", "You hear a drill.") + if(!do_after(user, walldelay, target = T)) + cooldown = null return - if(whatpipe == 98)//need to check if it's a meter or a gas sensor separately ayylmao + user.visible_message("[user] finishes drilling a hole in [T]!", "You finish drilling a hole in [T]!", "You hear clanking.") + if(whatpipe == GAS_SENSOR)//need to check if it's a meter or a gas sensor separately ayylmao new /obj/item/pipe_gsensor(T) - to_chat(usr, "[src] dispenses a sensor!") - else if(whatpipe == 99) + to_chat(user, "[src] dispenses a sensor!") + else if(whatpipe == METER) new /obj/item/pipe_meter(T) - to_chat(usr, "[src] dispenses a meter!") + to_chat(user, "[src] dispenses a meter!") else - var/obj/item/pipe/P = new(T, pipe_type=whatpipe, dir = usr.dir) //Now we make the pipes - if(iconrotation == 0 && Checkifbent(P.pipe_type) == 1) //Automatic rotation of dispensed pipes - P.dir = turn(usr.dir, 135) - else if(iconrotation == 0 && P.pipe_type in list(4, 7, 10, 17, 20, 32, 33, 34, 37)) //Some pipes dispense oppositely to what you'd expect, but we don't want to do anything if they selected a direction + var/obj/item/pipe/P = new(T, pipe_type = whatpipe, dir = user.dir) //Now we make the pipes + if(iconrotation == 0 && Checkifbent(P.pipe_type)) //Automatic rotation of dispensed pipes + P.dir = turn(user.dir, 135) + else if(iconrotation == 0 && P.pipe_type in list(CONNECTOR, UNARY_VENT, GAS_SCRUBBER, HE_EXCHANGER, SIMPLE_CAP, SUPPLY_CAP, SCRUBBERS_CAP, INJECTOR, PASSIVE_VENT)) //Some pipes dispense oppositely to what you'd expect, but we don't want to do anything if they selected a direction call(P, /obj/item/pipe/verb/flip)() - else if(iconrotation != 0 && Checkifbent(P.pipe_type) == 1) //If they selected a rotation and the pipe is bent + else if(iconrotation != 0 && Checkifbent(P.pipe_type)) //If they selected a rotation and the pipe is bent P.dir = turn(iconrotation, -45) else if(iconrotation != 0) P.dir = iconrotation P.update() - to_chat(usr, "[src] rapidly dispenses [P]!") - Activaterpd("sound/machines/click.ogg", 1) - else if(mode == 2) //Disposals mode + to_chat(user, "[src] rapidly dispenses [P]!") + Activaterpd(1) + else if(mode == DISPOSALS_MODE) if(istype(T, /turf/simulated/wall)) - to_chat(usr, "That type of pipe won't fit on [T]!") + to_chat(user, "That type of pipe won't fit on [T]!") return - if(is_blocked_turf(T) == 1 && whatdpipe in list(6, 7, 8))//We need to check if the targetted turf is already dense, in case some goofball sticks 100 bins in front of security or something - to_chat(usr, "You can't dispense that on [T] because something is in the way!") + if(is_blocked_turf(T) && Checkifdense(whatdpipe)) + to_chat(user, "You can't dispense that on [T] because something is in the way!") return var/obj/structure/disposalconstruct/P = new(T) //Now we make the pipe P.dir = iconrotation P.ptype = whatdpipe - if(whatdpipe in list(6, 7, 8)) //To properly set density of our bins/chutes/outlets + if(Checkifdense(whatdpipe)) //To properly set density of our bins/chutes/outlets P.density = 1 if(iconrotation == 0) //Automatic rotation - P.dir = usr.dir - if(iconrotation == 0 && whatdpipe != 2) //Disposals pipes are in the opposite direction to atmos pipes, so we need to flip them. Junctions don't have this quirk though + P.dir = user.dir + if(iconrotation == 0 && whatdpipe != DISPOSALS_JUNCTION) //Disposals pipes are in the opposite direction to atmos pipes, so we need to flip them. Junctions don't have this quirk though call(P, /obj/structure/disposalconstruct/verb/flip)() P.update() - to_chat(usr, "[src] rapidly dispenses [P]!") - Activaterpd("sound/machines/click.ogg", 1) - return - else if(mode == 3) //Rotate mode + to_chat(user, "[src] rapidly dispenses [P]!") + Activaterpd(1) + else if(mode == ROTATION_MODE) for(var/obj/W in T) Manipulatepipes(W, T, /obj/item/pipe/verb/rotate, /obj/structure/disposalconstruct/verb/rotate) - return - else if(mode == 4) //Flip mode + else if(mode == FLIP_MODE) for(var/obj/W in T) Manipulatepipes(W, T, /obj/item/pipe/verb/flip, /obj/structure/disposalconstruct/verb/flip) - return - else if(mode == 5) //Delete mode + else if(mode == DELETE_MODE) var/eaten for(var/obj/W in T) - if(istype(W, /obj/item/pipe) || istype(W, /obj/item/pipe_meter) || istype(W, /obj/item/pipe_gsensor) || istype(W, /obj/structure/disposalconstruct) && W.anchored == 0) + if(istype(W, /obj/item/pipe) || istype(W, /obj/item/pipe_meter) || istype(W, /obj/item/pipe_gsensor) || istype(W, /obj/structure/disposalconstruct) && !W.anchored) qdel(W) - eaten = 1 - if(eaten == 1) - to_chat(usr, "[src] sucks up the loose pipes on [T]!") - Activaterpd("sound/items/Deconstruct.ogg", 1) + eaten = TRUE + if(eaten) + to_chat(user, "[src] sucks up the loose pipes on [T].") else - to_chat(usr, "There were no loose pipes on [T].") - return - else //Finished. - return + to_chat(user, "There were no loose pipes on [T].") + +#undef SIMPLE_BENT +#undef SIMPLE_CAP +#undef SUPPLY_BENT +#undef SUPPLY_CAP +#undef SCRUBBERS_BENT +#undef SCRUBBERS_CAP +#undef HE_BENT +#undef HE_EXCHANGER +#undef CONNECTOR +#undef UNARY_VENT +#undef PASSIVE_VENT +#undef GAS_SCRUBBER +#undef INJECTOR +#undef GAS_SENSOR +#undef METER +#undef DISPOSALS_JUNCTION +#undef DISPOSALS_BIN +#undef DISPOSALS_OUTLET +#undef DISPOSALS_CHUTE +#undef ATMOS_MODE +#undef DISPOSALS_MODE +#undef ROTATION_MODE +#undef FLIP_MODE +#undef DELETE_MODE +#undef ATMOS_PIPING +#undef SUPPLY_PIPING +#undef SCRUBBERS_PIPING +#undef DEVICES +#undef HEAT_PIPING diff --git a/code/modules/client/asset_cache.dm b/code/modules/client/asset_cache.dm index 72534169e6d..35b06c9e5cd 100644 --- a/code/modules/client/asset_cache.dm +++ b/code/modules/client/asset_cache.dm @@ -302,6 +302,33 @@ proc/getFilesSlow(var/client/client, var/list/files, var/register_asset = TRUE) send_asset_list(client, assets, verify) +//Pipe sprites for UIs +/datum/asset/rpd + var/assets = list() + var/verify = FALSE + +/datum/asset/rpd/register() + for(var/state in icon_states('icons/obj/pipe-item.dmi')) + if(!(state in list("cap", "connector", "dtvalve", "dual-port vent", "dvalve", "filter", "he", "heunary", "injector", "junction", "manifold", "mixer", "tvalve", "mvalve", "passive vent", "passivegate", "pump", "scrubber", "simple", "universal", "uvent", "volumepump"))) //Basically all the pipes we want sprites for + continue + if(state in list("he", "simple")) + for(var/D in alldirs) + assets["[state]-[D].png"] = icon('icons/obj/pipe-item.dmi', state, D) + continue + for(var/D in cardinal) + assets["[state]-[D].png"] = icon('icons/obj/pipe-item.dmi', state, D) + for(var/state in icon_states('icons/obj/pipes/disposal.dmi')) + if(!(state in list("conpipe-c", "conpipe-j1", "conpipe-s", "conpipe-t", "conpipe-y", "intake", "outlet"))) //Pipes we want sprites for + continue + for(var/D in cardinal) + assets["[state]-[D].png"] = icon('icons/obj/pipes/disposal.dmi', state, D) + for(var/asset_name in assets) + register_asset(asset_name, assets[asset_name]) + +/datum/asset/rpd/send(client) + send_asset_list(client, assets, verify) + + //Mob Hunt sprites for UIs /datum/asset/mob_hunt var/assets = list() diff --git a/nano/templates/rpd.tmpl b/nano/templates/rpd.tmpl index 9419fcffa1d..68d4669d38f 100644 --- a/nano/templates/rpd.tmpl +++ b/nano/templates/rpd.tmpl @@ -1,105 +1,104 @@ -

Mode:

-
{{:helper.link("Reset RPD", "refresh", {"refresh": 1}, data.refresh == 1 ? "linkOn" : null)}}
+

Mode:

{{for data.mainmenu}} - {{:helper.link(String(value.key1), String(value.key3), {"mode": Number(value.key2)}, data.mode == Number(value.key2) ? "linkOn" : null)}} + {{:helper.link(String(value.category), String(value.icon), {"mode": Number(value.mode)}, data.mode == Number(value.mode) ? "linkOn" : null)}} {{/for}}
{{if data.mode == 1}} -

Pipe type:

+

Pipe type:

- {{for data.pipemenu}} - {{:helper.link(String(value.key1), null, {"pipetype": Number(value.key2)}, data.pipetype == Number(value.key2) ? "linkOn" : null)}} + {{for data.pipemenu}} + {{:helper.link(String(value.pipecategory), null, {"pipetype": Number(value.pipemode)}, data.pipetype == Number(value.pipemode) ? "linkOn" : null)}} {{/for}}
-

Available pipes:

-
+

Available pipes:

+
{{for data.pipelist}} - {{if value.key3 == data.pipetype}} -
{{:helper.link(String(value.key1), "arrow-right", {"whatpipe": Number(value.key2)}, data.whatpipe == Number(value.key2) ? "linkOn" : null)}}
+ {{if value.category == data.pipetype}} +
{{:helper.link(String(value.pipename), "arrow-right", {"whatpipe": Number(value.id)}, data.whatpipe == Number(value.id) ? "linkOn" : null)}}
{{/if}} {{/for}}
{{for data.pipelist}} -
- {{if value.key2 == data.whatpipe && value.key4 != 1}} +
+ {{if value.id == data.whatpipe && value.orientations != 1}}
{{:helper.link("Orient automatically", null, {"iconrotation": 0}, data.iconrotation == 0 ? "linkOn" : null)}}
{{/if}} - {{if value.key2 == data.whatpipe && value.key4 != 1 && value.key6 != 1}} + {{if value.id == data.whatpipe && value.orientations != 1 && value.bendy != 1}}
{{:helper.link("", "arrow-right", {"iconrotation": 1}, data.iconrotation == 1 ? "linkOn" : null)}} - +
{{:helper.link("", "arrow-right", {"iconrotation": 4}, data.iconrotation == 4 ? "linkOn" : null)}} - +
{{/if}} - {{if value.key2 == data.whatpipe && value.key4 == 4 && value.key6 != 1}} + {{if value.id == data.whatpipe && value.orientations == 4 && value.bendy != 1}}
{{:helper.link("", "arrow-right", {"iconrotation": 2}, data.iconrotation == 2 ? "linkOn" : null)}} - +
{{:helper.link("", "arrow-right", {"iconrotation": 8}, data.iconrotation == 8 ? "linkOn" : null)}} - +
{{/if}} - {{if value.key2 == data.whatpipe && value.key6 == 1}} + {{if value.id == data.whatpipe && value.bendy == 1}}
{{:helper.link("", "arrow-right", {"iconrotation": 1}, data.iconrotation == 1 ? "linkOn" : null)}} - +
{{:helper.link("", "arrow-right", {"iconrotation": 4}, data.iconrotation == 4 ? "linkOn" : null)}} - +
{{:helper.link("", "arrow-right", {"iconrotation": 2}, data.iconrotation == 2 ? "linkOn" : null)}} - +
{{:helper.link("", "arrow-right", {"iconrotation": 8}, data.iconrotation == 8 ? "linkOn" : null)}} - +
{{/if}}
{{/for}} {{else data.mode == 2}} -

Available pipes:

-
+

Available pipes:

+
{{for data.dpipelist}} -
{{:helper.link(String(value.key1), "arrow-right", {"whatdpipe": Number(value.key2)}, data.whatdpipe == Number(value.key2) ? "linkOn" : null)}}
+
{{:helper.link(String(value.pipename), "arrow-right", {"whatdpipe": Number(value.id)}, data.whatdpipe == Number(value.id) ? "linkOn" : null)}}
{{/for}}
{{for data.dpipelist}} -
- {{if value.key2 == data.whatdpipe && value.key3 != 1}} +
+ {{if value.id == data.whatdpipe && value.orientations != 1}}
{{:helper.link("Orient automatically", null, {"iconrotation": 0}, data.iconrotation == 0 ? "linkOn" : null)}}
{{:helper.link("", "arrow-right", {"iconrotation": 1}, data.iconrotation == 1 ? "linkOn" : null)}} - +
{{:helper.link("", "arrow-right", {"iconrotation": 4}, data.iconrotation == 4 ? "linkOn" : null)}} - +
{{/if}} - {{if value.key2 == data.whatdpipe && value.key3 == 4}} + {{if value.id == data.whatdpipe && value.orientations == 4}}
{{:helper.link("", "arrow-right", {"iconrotation": 2}, data.iconrotation == 2 ? "linkOn" : null)}} - +
{{:helper.link("", "arrow-right", {"iconrotation": 8}, data.iconrotation == 8 ? "linkOn" : null)}} - +
{{/if}}
From 66bbd956b236c28c9397d34407fd337aa585b511 Mon Sep 17 00:00:00 2001 From: Chakirski Date: Thu, 1 Jun 2017 00:16:43 -0500 Subject: [PATCH 014/123] tegir --- code/game/objects/items/devices/radio/radio.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index d324de69231..6de8ab9b98c 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -600,9 +600,9 @@ var/global/list/default_medbay_channels = list( /obj/item/device/radio/emp_act(severity) frequency = get_random_freq() - if(listening == 1) - visible_message("\The [src] screeches violently!") - + if(listening) + visible_message("[src] buzzes violently!") + broadcasting = 0 listening = 0 for(var/ch_name in channels) @@ -610,7 +610,7 @@ var/global/list/default_medbay_channels = list( ..() /obj/item/device/radio/proc/get_random_freq() - var/rand_freq = round(rand(1440, 1480), 10) + pick(1, 3, 5, 9) + var/rand_freq = round(rand(PUBLIC_LOW_FREQ, PUBLIC_HIGH_FREQ - 9), 10) + pick(1, 3, 5, 9) return rand_freq /////////////////////////////// From e4bafed7dfe6e882a2e202ae876ea492a6f281a8 Mon Sep 17 00:00:00 2001 From: Chakirski Date: Thu, 1 Jun 2017 11:36:40 -0500 Subject: [PATCH 015/123] rip-freq --- code/game/objects/items/devices/radio/radio.dm | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 6de8ab9b98c..5798d77f890 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -599,7 +599,14 @@ var/global/list/default_medbay_channels = list( else return /obj/item/device/radio/emp_act(severity) - frequency = get_random_freq() + var/emp + on = 0 + emp++ + spawn(70) + emp-- + if(!emp) + on = 1 + if(listening) visible_message("[src] buzzes violently!") @@ -609,10 +616,6 @@ var/global/list/default_medbay_channels = list( channels[ch_name] = 0 ..() -/obj/item/device/radio/proc/get_random_freq() - var/rand_freq = round(rand(PUBLIC_LOW_FREQ, PUBLIC_HIGH_FREQ - 9), 10) + pick(1, 3, 5, 9) - return rand_freq - /////////////////////////////// //////////Borg Radios////////// /////////////////////////////// From 90de04c77ba5524d8807fb3df423ebc9f9d5500a Mon Sep 17 00:00:00 2001 From: Chakirski Date: Thu, 1 Jun 2017 11:37:44 -0500 Subject: [PATCH 016/123] randomness --- code/game/objects/items/devices/radio/radio.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 5798d77f890..6fa955b461f 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -602,7 +602,7 @@ var/global/list/default_medbay_channels = list( var/emp on = 0 emp++ - spawn(70) + spawn(rand(100, 200)) emp-- if(!emp) on = 1 From 93c7b4c6c321b2bfe169d763404a7c7b2ff476b2 Mon Sep 17 00:00:00 2001 From: Chakirski Date: Thu, 1 Jun 2017 13:38:53 -0500 Subject: [PATCH 017/123] faux --- code/game/objects/items/devices/radio/radio.dm | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 6fa955b461f..3930192ba47 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -37,6 +37,7 @@ var/global/list/default_medbay_channels = list( var/list/channels = list() //see communications.dm for full list. First channes is a "default" for :h var/subspace_transmission = 0 var/syndie = 0//Holder to see if it's a syndicate encrpyed radio + var/emp = 0 //How many times this is affected by EMPs var/is_special = 0 //For electropacks mostly, skips Topic() checks @@ -599,13 +600,9 @@ var/global/list/default_medbay_channels = list( else return /obj/item/device/radio/emp_act(severity) - var/emp on = 0 emp++ - spawn(rand(100, 200)) - emp-- - if(!emp) - on = 1 + addtimer(src, "enable_radio", rand(100, 200)) if(listening) visible_message("[src] buzzes violently!") @@ -616,6 +613,12 @@ var/global/list/default_medbay_channels = list( channels[ch_name] = 0 ..() +/obj/item/device/radio/proc/enable_radio() + if(emp > 0) + emp-- + if(!emp) + on = 1 + /////////////////////////////// //////////Borg Radios////////// /////////////////////////////// From db378ae8a7bd9dcebb7a1f48a5e1147efce04d5a Mon Sep 17 00:00:00 2001 From: Chakirski Date: Thu, 1 Jun 2017 13:54:39 -0500 Subject: [PATCH 018/123] faux2.0 --- code/game/objects/items/devices/radio/radio.dm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 3930192ba47..3c9c0211663 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -37,7 +37,7 @@ var/global/list/default_medbay_channels = list( var/list/channels = list() //see communications.dm for full list. First channes is a "default" for :h var/subspace_transmission = 0 var/syndie = 0//Holder to see if it's a syndicate encrpyed radio - var/emp = 0 //How many times this is affected by EMPs + var/disable_timer = 0 //How many times this is disabled by EMPs var/is_special = 0 //For electropacks mostly, skips Topic() checks @@ -601,7 +601,7 @@ var/global/list/default_medbay_channels = list( /obj/item/device/radio/emp_act(severity) on = 0 - emp++ + disable_timer++ addtimer(src, "enable_radio", rand(100, 200)) if(listening) @@ -614,9 +614,9 @@ var/global/list/default_medbay_channels = list( ..() /obj/item/device/radio/proc/enable_radio() - if(emp > 0) - emp-- - if(!emp) + if(disable_timer > 0) + disable_timer-- + if(!disable_timer) on = 1 /////////////////////////////// From b67d589c85a9a5f6229a32a72c7f74c3dcc1b871 Mon Sep 17 00:00:00 2001 From: Citinited Date: Fri, 2 Jun 2017 22:40:33 +0100 Subject: [PATCH 019/123] Some more tweaks Let's remove some redundant things and simplify some others --- code/game/objects/items/weapons/rpd.dm | 61 +++++++------------------- code/modules/client/asset_cache.dm | 6 +-- nano/templates/rpd.tmpl | 24 +++++----- 3 files changed, 32 insertions(+), 59 deletions(-) diff --git a/code/game/objects/items/weapons/rpd.dm b/code/game/objects/items/weapons/rpd.dm index 17d30d1a170..bab3bac7c20 100644 --- a/code/game/objects/items/weapons/rpd.dm +++ b/code/game/objects/items/weapons/rpd.dm @@ -2,13 +2,9 @@ Rapid Pipe Dispenser */ -#define SIMPLE_BENT 1 #define SIMPLE_CAP 20 -#define SUPPLY_BENT 25 #define SUPPLY_CAP 32 -#define SCRUBBERS_BENT 27 #define SCRUBBERS_CAP 33 -#define HE_BENT 3 #define HE_EXCHANGER 17 #define CONNECTOR 4 #define UNARY_VENT 7 @@ -18,9 +14,6 @@ #define GAS_SENSOR 98 #define METER 99 #define DISPOSALS_JUNCTION 2 -#define DISPOSALS_BIN 6 -#define DISPOSALS_OUTLET 7 -#define DISPOSALS_CHUTE 8 #define ATMOS_MODE 1 #define DISPOSALS_MODE 2 #define ROTATION_MODE 3 @@ -50,12 +43,13 @@ origin_tech = "engineering=4;materials=2" var/datum/effect/system/spark_spread/spark_system var/cooldown //Waiting for something to complete? + var/lastused var/iconrotation = 0 //used to orient icons and pipes var/mode = 1 //Disposals, atmospherics, etc. var/pipetype = 1//For nanoUI menus var/whatpipe = 0 //What kind of pipe is it? See code/game/machinery/pipe/construction.dm for a list of defines var/whatdpipe = 0 //What kind of disposals pipe is it? See code/game/machinery/pipe/dispenser.dm for a list of defines - var/spawndelay = 4 //Adding a *slight* delay to the RPD, shouldn't be very noticeable + var/spawndelay = 4 //How long should we have to wait between dispensing pipes? var/walldelay = 40 //How long should drilling into a wall take? /obj/item/weapon/rpd/New() @@ -71,17 +65,9 @@ if(prob(15)) spark_system.start() if(delay) - cooldown = TRUE - sleep(spawndelay) - cooldown = null + lastused = world.time -/obj/item/weapon/rpd/proc/Checkifbent(x) - return(x in list(SIMPLE_BENT, HE_BENT, SUPPLY_BENT, SCRUBBERS_BENT)) - -/obj/item/weapon/rpd/proc/Checkifdense(x) //We need to check if the targetted turf is already dense, in case some goofball sticks 100 bins in front of security or something - return(x in list(DISPOSALS_BIN, DISPOSALS_OUTLET, DISPOSALS_CHUTE)) - -/obj/item/weapon/rpd/proc/Manipulatepipes(subject, targetturf, atmosverb, disposalsverb) +/obj/item/weapon/rpd/proc/Manipulatepipes(subject, atmosverb, disposalsverb) if(istype(subject, /obj/item/pipe)) call(subject, atmosverb)() else if(istype(subject, /obj/structure/disposalconstruct/)) @@ -195,30 +181,28 @@ var/list/pipemenu = list( /obj/item/weapon/rpd/afterattack(atom/target, mob/user, proximity) ..() var/turf/T = get_turf(target) - if(ismob(target) || istype(target, /obj/structure/window) || !proximity || cooldown) + if(src.loc != user || ismob(target) || istype(target, /obj/structure/window) || !proximity || world.time < lastused + spawndelay) return if(mode == ATMOS_MODE) - if(istype(T, /turf/simulated/wall)) //Drilling into walls takes time and we don't want to do anything else while drilling - cooldown = TRUE + if(istype(T, /turf/simulated/wall)) //Drilling into walls takes time playsound(get_turf(src), "sound/weapons/circsawhit.ogg", 50, 1) user.visible_message("[user] starts drilling a hole in [T]...", "You start drilling a hole in [T]...", "You hear a drill.") if(!do_after(user, walldelay, target = T)) - cooldown = null return user.visible_message("[user] finishes drilling a hole in [T]!", "You finish drilling a hole in [T]!", "You hear clanking.") - if(whatpipe == GAS_SENSOR)//need to check if it's a meter or a gas sensor separately ayylmao + if(whatpipe == GAS_SENSOR) new /obj/item/pipe_gsensor(T) - to_chat(user, "[src] dispenses a sensor!") + to_chat(user, "[src] rapidly dispenses a sensor!") else if(whatpipe == METER) new /obj/item/pipe_meter(T) - to_chat(user, "[src] dispenses a meter!") + to_chat(user, "[src] rapidly dispenses a meter!") else var/obj/item/pipe/P = new(T, pipe_type = whatpipe, dir = user.dir) //Now we make the pipes - if(iconrotation == 0 && Checkifbent(P.pipe_type)) //Automatic rotation of dispensed pipes + if(iconrotation == 0 && P.is_bent_pipe()) //Automatic rotation of dispensed pipes P.dir = turn(user.dir, 135) else if(iconrotation == 0 && P.pipe_type in list(CONNECTOR, UNARY_VENT, GAS_SCRUBBER, HE_EXCHANGER, SIMPLE_CAP, SUPPLY_CAP, SCRUBBERS_CAP, INJECTOR, PASSIVE_VENT)) //Some pipes dispense oppositely to what you'd expect, but we don't want to do anything if they selected a direction call(P, /obj/item/pipe/verb/flip)() - else if(iconrotation != 0 && Checkifbent(P.pipe_type)) //If they selected a rotation and the pipe is bent + else if(iconrotation != 0 && P.is_bent_pipe()) //If they selected a rotation and the pipe is bent P.dir = turn(iconrotation, -45) else if(iconrotation != 0) P.dir = iconrotation @@ -226,48 +210,40 @@ var/list/pipemenu = list( to_chat(user, "[src] rapidly dispenses [P]!") Activaterpd(1) else if(mode == DISPOSALS_MODE) - if(istype(T, /turf/simulated/wall)) + if(istype(T, /turf/simulated/wall)) //No disposals pipes on walls to_chat(user, "That type of pipe won't fit on [T]!") return - if(is_blocked_turf(T) && Checkifdense(whatdpipe)) - to_chat(user, "You can't dispense that on [T] because something is in the way!") - return var/obj/structure/disposalconstruct/P = new(T) //Now we make the pipe P.dir = iconrotation P.ptype = whatdpipe - if(Checkifdense(whatdpipe)) //To properly set density of our bins/chutes/outlets - P.density = 1 if(iconrotation == 0) //Automatic rotation P.dir = user.dir if(iconrotation == 0 && whatdpipe != DISPOSALS_JUNCTION) //Disposals pipes are in the opposite direction to atmos pipes, so we need to flip them. Junctions don't have this quirk though - call(P, /obj/structure/disposalconstruct/verb/flip)() + P.flip() P.update() to_chat(user, "[src] rapidly dispenses [P]!") Activaterpd(1) else if(mode == ROTATION_MODE) for(var/obj/W in T) - Manipulatepipes(W, T, /obj/item/pipe/verb/rotate, /obj/structure/disposalconstruct/verb/rotate) + Manipulatepipes(W, /obj/item/pipe/verb/rotate, /obj/structure/disposalconstruct/verb/rotate) else if(mode == FLIP_MODE) for(var/obj/W in T) - Manipulatepipes(W, T, /obj/item/pipe/verb/flip, /obj/structure/disposalconstruct/verb/flip) + Manipulatepipes(W, /obj/item/pipe/verb/flip, /obj/structure/disposalconstruct/verb/flip) else if(mode == DELETE_MODE) var/eaten for(var/obj/W in T) if(istype(W, /obj/item/pipe) || istype(W, /obj/item/pipe_meter) || istype(W, /obj/item/pipe_gsensor) || istype(W, /obj/structure/disposalconstruct) && !W.anchored) - qdel(W) + QDEL_NULL(W) eaten = TRUE if(eaten) to_chat(user, "[src] sucks up the loose pipes on [T].") + Activaterpd() else to_chat(user, "There were no loose pipes on [T].") -#undef SIMPLE_BENT #undef SIMPLE_CAP -#undef SUPPLY_BENT #undef SUPPLY_CAP -#undef SCRUBBERS_BENT #undef SCRUBBERS_CAP -#undef HE_BENT #undef HE_EXCHANGER #undef CONNECTOR #undef UNARY_VENT @@ -277,9 +253,6 @@ var/list/pipemenu = list( #undef GAS_SENSOR #undef METER #undef DISPOSALS_JUNCTION -#undef DISPOSALS_BIN -#undef DISPOSALS_OUTLET -#undef DISPOSALS_CHUTE #undef ATMOS_MODE #undef DISPOSALS_MODE #undef ROTATION_MODE diff --git a/code/modules/client/asset_cache.dm b/code/modules/client/asset_cache.dm index 35b06c9e5cd..2298008c789 100644 --- a/code/modules/client/asset_cache.dm +++ b/code/modules/client/asset_cache.dm @@ -313,15 +313,15 @@ proc/getFilesSlow(var/client/client, var/list/files, var/register_asset = TRUE) continue if(state in list("he", "simple")) for(var/D in alldirs) - assets["[state]-[D].png"] = icon('icons/obj/pipe-item.dmi', state, D) + assets["[state]-[dir2text(D)].png"] = icon('icons/obj/pipe-item.dmi', state, D) continue for(var/D in cardinal) - assets["[state]-[D].png"] = icon('icons/obj/pipe-item.dmi', state, D) + assets["[state]-[dir2text(D)].png"] = icon('icons/obj/pipe-item.dmi', state, D) for(var/state in icon_states('icons/obj/pipes/disposal.dmi')) if(!(state in list("conpipe-c", "conpipe-j1", "conpipe-s", "conpipe-t", "conpipe-y", "intake", "outlet"))) //Pipes we want sprites for continue for(var/D in cardinal) - assets["[state]-[D].png"] = icon('icons/obj/pipes/disposal.dmi', state, D) + assets["[state]-[dir2text(D)].png"] = icon('icons/obj/pipes/disposal.dmi', state, D) for(var/asset_name in assets) register_asset(asset_name, assets[asset_name]) diff --git a/nano/templates/rpd.tmpl b/nano/templates/rpd.tmpl index 68d4669d38f..bd92b91c979 100644 --- a/nano/templates/rpd.tmpl +++ b/nano/templates/rpd.tmpl @@ -32,39 +32,39 @@ Used In File(s): /code/game/objects/items/weapons/rpd.dm {{if value.id == data.whatpipe && value.orientations != 1 && value.bendy != 1}}
{{:helper.link("", "arrow-right", {"iconrotation": 1}, data.iconrotation == 1 ? "linkOn" : null)}} - +
{{:helper.link("", "arrow-right", {"iconrotation": 4}, data.iconrotation == 4 ? "linkOn" : null)}} - +
{{/if}} {{if value.id == data.whatpipe && value.orientations == 4 && value.bendy != 1}}
{{:helper.link("", "arrow-right", {"iconrotation": 2}, data.iconrotation == 2 ? "linkOn" : null)}} - +
{{:helper.link("", "arrow-right", {"iconrotation": 8}, data.iconrotation == 8 ? "linkOn" : null)}} - +
{{/if}} {{if value.id == data.whatpipe && value.bendy == 1}}
{{:helper.link("", "arrow-right", {"iconrotation": 1}, data.iconrotation == 1 ? "linkOn" : null)}} - +
{{:helper.link("", "arrow-right", {"iconrotation": 4}, data.iconrotation == 4 ? "linkOn" : null)}} - +
{{:helper.link("", "arrow-right", {"iconrotation": 2}, data.iconrotation == 2 ? "linkOn" : null)}} - +
{{:helper.link("", "arrow-right", {"iconrotation": 8}, data.iconrotation == 8 ? "linkOn" : null)}} - +
{{/if}}
@@ -84,21 +84,21 @@ Used In File(s): /code/game/objects/items/weapons/rpd.dm
{{:helper.link("", "arrow-right", {"iconrotation": 1}, data.iconrotation == 1 ? "linkOn" : null)}} - +
{{:helper.link("", "arrow-right", {"iconrotation": 4}, data.iconrotation == 4 ? "linkOn" : null)}} - +
{{/if}} {{if value.id == data.whatdpipe && value.orientations == 4}}
{{:helper.link("", "arrow-right", {"iconrotation": 2}, data.iconrotation == 2 ? "linkOn" : null)}} - +
{{:helper.link("", "arrow-right", {"iconrotation": 8}, data.iconrotation == 8 ? "linkOn" : null)}} - +
{{/if}}
From 5807cd69c023cff02df94a2cf18b812d021860ab Mon Sep 17 00:00:00 2001 From: Sam Date: Sat, 3 Jun 2017 21:47:14 +0100 Subject: [PATCH 020/123] Add sentience event --- code/modules/events/event_container.dm | 1 + code/modules/events/sentience.dm | 32 ++++++++++++++++++++++++++ paradise.dme | 1 + 3 files changed, 34 insertions(+) create mode 100644 code/modules/events/sentience.dm diff --git a/code/modules/events/event_container.dm b/code/modules/events/event_container.dm index 98fe9fad27f..8b98dac200d 100644 --- a/code/modules/events/event_container.dm +++ b/code/modules/events/event_container.dm @@ -137,6 +137,7 @@ var/list/event_last_fired = list() new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Trivial News", /datum/event/trivial_news, 400), new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Mundane News", /datum/event/mundane_news, 300), new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Vermin Infestation",/datum/event/infestation, 100, list(ASSIGNMENT_JANITOR = 100)), + new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Sentience", /datum/event/sentience, 50), new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Wallrot", /datum/event/wallrot, 0, list(ASSIGNMENT_ENGINEER = 30, ASSIGNMENT_GARDENER = 50)) ) diff --git a/code/modules/events/sentience.dm b/code/modules/events/sentience.dm new file mode 100644 index 00000000000..114f30c0fb2 --- /dev/null +++ b/code/modules/events/sentience.dm @@ -0,0 +1,32 @@ +/datum/event/sentience + +/datum/event/sentience/start() + var/ghostmsg = "Do you want to awaken as a sentient being?" + var/list/candidates = pollCandidates(ghostmsg, ROLE_SENTIENT, 1) + var/list/potential = list() + for(var/mob/living/simple_animal/L in living_mob_list) + var/turf/T = get_turf(L) + if (T.z != 1) + continue + if(!(L in player_list) && !L.mind) + potential += L + + var/mob/living/simple_animal/SA = pick(potential) + var/mob/living/simple_animal/SG = pick(candidates) + + if(!SA || !SG) //if you can't find either a simple animal or a player, end + return FALSE + + SA.key = SG.key + SA.universal_speak = 1 + SA.sentience_act() + SA.maxHealth = max(SA.maxHealth, 200) + SA.health = SA.maxHealth + SA.del_on_death = FALSE + greet_sentient(SA) + +/datum/event/sentience/proc/greet_sentient(var/mob/living/carbon/human/M) + to_chat(M, "Hello world!") + to_chat(M, "Due to freak radiation, you have gained \ + human level intelligence and the ability to speak and understand \ + and the ability to speak and understand human language!") diff --git a/paradise.dme b/paradise.dme index 869bffe601b..20318ef2db6 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1285,6 +1285,7 @@ #include "code\modules\events\prison_break.dm" #include "code\modules\events\radiation_storm.dm" #include "code\modules\events\rogue_drones.dm" +#include "code\modules\events\sentience.dm" #include "code\modules\events\slaughterevent.dm" #include "code\modules\events\spacevine.dm" #include "code\modules\events\spider_infestation.dm" From 6da7035973b669d9ea3e00e8020777ac64b95b8f Mon Sep 17 00:00:00 2001 From: Sam Date: Sat, 3 Jun 2017 22:24:06 +0100 Subject: [PATCH 021/123] Fixes errata in the text --- code/modules/events/sentience.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/events/sentience.dm b/code/modules/events/sentience.dm index 114f30c0fb2..5dee712e072 100644 --- a/code/modules/events/sentience.dm +++ b/code/modules/events/sentience.dm @@ -29,4 +29,4 @@ to_chat(M, "Hello world!") to_chat(M, "Due to freak radiation, you have gained \ human level intelligence and the ability to speak and understand \ - and the ability to speak and understand human language!") + human language!") From 0a0b0430e138c07c008f6aa9d9d982dfd2151055 Mon Sep 17 00:00:00 2001 From: Sam Date: Sat, 3 Jun 2017 23:07:34 +0100 Subject: [PATCH 022/123] ghosts aren't simple animals, who knew? --- code/modules/events/sentience.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/events/sentience.dm b/code/modules/events/sentience.dm index 5dee712e072..4a1b44700e3 100644 --- a/code/modules/events/sentience.dm +++ b/code/modules/events/sentience.dm @@ -12,7 +12,7 @@ potential += L var/mob/living/simple_animal/SA = pick(potential) - var/mob/living/simple_animal/SG = pick(candidates) + var/mob/SG = pick(candidates) if(!SA || !SG) //if you can't find either a simple animal or a player, end return FALSE From d94306768ded56b8cff5aa02a6bdc8fa95965e08 Mon Sep 17 00:00:00 2001 From: Citinited Date: Wed, 7 Jun 2017 01:12:00 +0100 Subject: [PATCH 023/123] Some more tweaks --- code/game/objects/items/weapons/rpd.dm | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/code/game/objects/items/weapons/rpd.dm b/code/game/objects/items/weapons/rpd.dm index bab3bac7c20..eea9ee86f72 100644 --- a/code/game/objects/items/weapons/rpd.dm +++ b/code/game/objects/items/weapons/rpd.dm @@ -183,33 +183,31 @@ var/list/pipemenu = list( var/turf/T = get_turf(target) if(src.loc != user || ismob(target) || istype(target, /obj/structure/window) || !proximity || world.time < lastused + spawndelay) return - if(mode == ATMOS_MODE) + if(mode == ATMOS_MODE && !istype(T, /turf/simulated/shuttle)) //No pipes on shuttles nerds if(istype(T, /turf/simulated/wall)) //Drilling into walls takes time - playsound(get_turf(src), "sound/weapons/circsawhit.ogg", 50, 1) + playsound(loc, "sound/weapons/circsawhit.ogg", 50, 1) user.visible_message("[user] starts drilling a hole in [T]...", "You start drilling a hole in [T]...", "You hear a drill.") if(!do_after(user, walldelay, target = T)) return user.visible_message("[user] finishes drilling a hole in [T]!", "You finish drilling a hole in [T]!", "You hear clanking.") + var/obj/item/pipe/P if(whatpipe == GAS_SENSOR) - new /obj/item/pipe_gsensor(T) - to_chat(user, "[src] rapidly dispenses a sensor!") + P = new /obj/item/pipe_gsensor(T) else if(whatpipe == METER) - new /obj/item/pipe_meter(T) - to_chat(user, "[src] rapidly dispenses a meter!") + P = new /obj/item/pipe_meter(T) else - var/obj/item/pipe/P = new(T, pipe_type = whatpipe, dir = user.dir) //Now we make the pipes + P = new(T, pipe_type = whatpipe, dir = user.dir) if(iconrotation == 0 && P.is_bent_pipe()) //Automatic rotation of dispensed pipes P.dir = turn(user.dir, 135) else if(iconrotation == 0 && P.pipe_type in list(CONNECTOR, UNARY_VENT, GAS_SCRUBBER, HE_EXCHANGER, SIMPLE_CAP, SUPPLY_CAP, SCRUBBERS_CAP, INJECTOR, PASSIVE_VENT)) //Some pipes dispense oppositely to what you'd expect, but we don't want to do anything if they selected a direction - call(P, /obj/item/pipe/verb/flip)() + P.flip() else if(iconrotation != 0 && P.is_bent_pipe()) //If they selected a rotation and the pipe is bent P.dir = turn(iconrotation, -45) else if(iconrotation != 0) P.dir = iconrotation - P.update() - to_chat(user, "[src] rapidly dispenses [P]!") + to_chat(user, "[src] rapidly dispenses [P]!") Activaterpd(1) - else if(mode == DISPOSALS_MODE) + else if(mode == DISPOSALS_MODE && !istype(T, /turf/simulated/shuttle)) if(istype(T, /turf/simulated/wall)) //No disposals pipes on walls to_chat(user, "That type of pipe won't fit on [T]!") return From b1666b4bbfddc86b27ea2af735bb05cc2e70cae7 Mon Sep 17 00:00:00 2001 From: FlattestGuitar Date: Thu, 8 Jun 2017 22:59:28 +0200 Subject: [PATCH 024/123] fluff items for Birdtalon and Ssscratches --- code/modules/customitems/item_defines.dm | 20 ++++++++++++++++++++ icons/mob/back.dmi | Bin 103875 -> 104729 bytes icons/mob/inhands/fluff_lefthand.dmi | Bin 718 -> 775 bytes icons/mob/inhands/fluff_righthand.dmi | Bin 667 -> 723 bytes icons/obj/custom_items.dmi | Bin 76666 -> 77596 bytes 5 files changed, 20 insertions(+) diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm index 6e414737b32..4cf9422c15d 100644 --- a/code/modules/customitems/item_defines.dm +++ b/code/modules/customitems/item_defines.dm @@ -112,6 +112,20 @@ else to_chat(user, "The [src] is out of ink!") +/obj/item/device/fluff/bird_painter // BirdtTalon: Kahkiri + name = "Orb of Onyx" + desc = "It is imbued with such dark power as to corrupt the very appearance of those who gaze into its depths." + icon_state = "bird_orb" + icon = 'icons/obj/custom_items.dmi' + +/obj/item/device/fluff/bird_painter/attack_self(mob/user) + if(ishuman(user)) + var/mob/living/carbon/human/H = user + H.s_tone = -115 + H.regenerate_icons() + to_chat(user, "You use [src] on yourself.") + qdel(src) + /obj/item/weapon/claymore/fluff // MrBarrelrolll: Maximus Greenwood name = "Greenwood's Blade" desc = "A replica claymore with strange markings scratched into the blade." @@ -1002,6 +1016,12 @@ icon = 'icons/obj/custom_items.dmi' icon_state = "voxcaster_fluff" +/obj/item/weapon/storage/backpack/fluff/ssscratches_back //Ssscratches: Lasshy-Bot + name = "CatPack" + desc = "It's a backpack, but it's also a cat." + icon = 'icons/obj/custom_items.dmi' + icon_state = "ssscratches_backpack" + /obj/item/clothing/head/wizard/fake/fluff/dreamy //phantasmicdream : Dreamy Rockwall name = "strange witch hat" desc = "A shapeshifting witch hat. A strange aura comes from it..." diff --git a/icons/mob/back.dmi b/icons/mob/back.dmi index 1c4472d5299d1baba5f9ac0c8645d844b85af338..499d5ec1a0d0ddc9d23ada7a5eaaa86c80bc5e66 100644 GIT binary patch delta 20892 zcmb5Vby!qi+crFafFOv1NGS+ND;?6Ml%zD$Al=;?6%nKbL~`iv?g6DF1nKS)q#0sh zX1+cC?)!f3=R4l_IKJswTkc1@Q%kfk3X&z-B$ntOH%$I~nu9uhiKr=hPSIlC zqR+{nD)$o2LO?*#vP$Nwnynv+s5R7L&NtVc=cMp_+*>qFzN>pGwKM%$1Us|hoxp<= zOCtHRk^D~vK_4c`wu730!s*exY4TLJ;}!!BODRziJUSG*bWS&7*Ud;(cg_WGuPb(x zKF!QU`-RArScXSzK2FC^!gbs3I$@7Rg^cHpHE)=BYICE74&F}rP78%*Ss)*wFOc*k z@-rpN4=xFB+DBJgFHsIZh;n{}3U7@I-rH;B{q&@ZS;vUq?Z>w|AY7R%4Msxgp!^iy z&XgNy!D;;QKK*V#p#0F`O#mMq*SRxq;B}jm*}Ith`m{QMcbCIFpLc1}7Uny*AGYs` zSMJ81{9uSfb?FUJHBNN4ry74qM$|OzkfDwDB84j1tXq@o_}jcqwX&CUF^(^9E)cGaGPOp4UpOo#_~gMbbF3kYfDjAXvaPHf?_ey&JU zf9dx=^r)lkUfr{jnNDsT+yG1amzQdS-xOX&m0Daxlm&!c{3hMfw6bJs?fCO!J>JU_ zj{7XFISlW{WMOz#{}+Bf7n2ly6yk(}NNk$Zgv*Z?Z~0dee+^NE;T^m^j9y=RY+Ksq( zNaf<+)#uI(=B8ATq9%I$==Q6Ddo(ZEummnG{#f3t%y|1@M+6vGk_~5c5Keh?sUK2l zpZfFQWIy_GyLC_p&*#@)TR;4`?v7p`=Jq9tH#xQ}WEV|R*H!X!KWW}k{&qLR%;eYO z+pJf*FEegZGN;YxJm3K$S<|E7vK>7fN;U60LdDNe@rT&1EMsbJZ;zhzZdT)e#Qqo? zvLgbG_^A5O+QM1{=-=O=_R%|?W(WIm=TiKzP>ZHP-ntP7eOv8uD$KQ;F{+z&lP2qXp#HDGibH-xdr7wyIKmTD)nAxineT>=>Id<Z>}bDPURWNxEm}7vKDHj*#q*G zf)8X%ehf$u4C%Msr<$aFqRqGDxVoI=W>h}V0)7?X3~l{Pi+!E+vw;Uf>H|5KV6E>M zGhbH>7si@efLy%y4Ok2eC~{+qBYy7(WR3VAY(82 zg<`K{d0F9eCASgmP~DO~dE47GbXRtVL=6b|IQ*0+tD1VR0^2?TweRFaoQ^dmx2sHH zN{3unn5VvNU?I~sVIxWYEa!A-eyD8WNERFjIKCM2=&~U$c_bK53$^0(D;pP*Sy{Qls#vOX068Rpltt>-jpFMSfq?-WBpfdip+i$(G3Cbz_Co0Zrs zv@`zm$j>y1ywX71dGm^x^V-1UuhsQYa+~b#Le=aJj~_ELV;^db5$QW0%(pUZ0| znu6rCJ2{)|LLc1@5re)$pTzI=3oT*>;=($D=peWkNW#5!|9@9^n`n-OUr+_O+=$WN zm(JIfeqYv2{KfsTo)K}UjHF;+cHJK9w|J zC6yGd9HA^LDviK8cQ@mVm7`O8$@DXn^J%ko8-c(;*pB2LDtnprpE{b}SZ6iN?u687 z@%HAiL8;oERGejoc(YNbLT;Hr8|E(I>SH9v=nR3s*+y5Zr~N ziF%j+RGYC@recXKSH_Fr0k_7LRK84wBkqzJ{#xtJA%5`H!ZF;#$%d6Q+UuMWC2h5SnVVaj8f zsCRr()_~1@hBPs`a4F_rbGwy{(5NfEdBa4@ z{)E3Pc*mmu8Ds<~$>!+zHrKD|GiH5B{cXJkl<|=FM)`H zc05_bRJ`l`Mpxn;|JPf zHp7@Zw_D22hg%dbE8lPr&UtuvLX*`32fu!$EZtjtc;LBbw`<#IYiqmOR&G>P@9*8! z)iu7&QG>~}@-6V0A)ps{RzhVjNkXwNEAxtDemsZ5py9v<%=BB+I%0B9bTyy0EjD(% zSk5H*L)<~kix)2h7RLtluGp5)Q>rN;-n~&Z$SZWqT94UYuHu(AG>x!|<=#dHR`}OR=4HqRFJ!&2pY0@ z#1t2P&a6`yqIVK5JJEulBCV(xel8})7|nDuRKrRgu3GLDMa71wQIC4|g_%+=SsJNY zZbijGHAcut!D+1uJn|` zqz}0Rem#DbkcOiK{Oe!HjrVv7m}Kx?7~4oN>AxQ1!KMCBj(jN`rGGu%b8x;`iSX^uuB2fSh-`cr*metT0j_CIZT!otWXOGGP1IV^Uf9EDXD-`Cf72fQZ2 zBcUx_r}jJhQ^fF8GmKw%$0RkhSn^*@txAZDB>Gijtp+&EH{OL^EgU#F%kc8@hBya} z23+rZ!@l=K(SY}d!z#=U7Te;O>=@$Km5|6Wb$G$QdibTr`@p!=pib#^on4}pH5r5Z zsBY8grmXRM!V_+v!{x9!?g$0qUdGOmLF)89D^<74wxQkji?H^?_Gf3KC!2}9m2h@%@`nkX+o*&&aD=wgGmm=D&9 z;Rnzf*?`Y8z4xbxAmxThx)kTY&4x`xAJaU}LjTEFZ#deGsUOh00jYdxaymRi4|%jd zSI^qw7Fel3OrYVK^AL;L=@vuj{PkhbHmer_n$G-x-K}Z_5B`SvNXV zGSIVmT!wT;{(uP4qbh{!rLn-ea2Sbk8_%jCi)tF{7fvI)2z$KX+FJgDz@{Li-`}dK z1?)m}$_%g|e?}?DSXA#pT+aUJYiVoy(wV@50`)F0XuYG zuoe#}Hk?RrQE)!j*H6xJb=q5QIs>QU!$YDbe&|WFRAmD~?g=2wPI zoJSXbj3JPtK+VR@rst@xfDObhxT)j#JC6s`@T>z(&LIzpe9>tS8Ni{AO<9Nk*_c=o zSYXmh9ih_f3D>{1SZ|0{TYB)=s`dUBGHB8nKb&W*fqiO8=;y+cU%9yRMC!NOp@u2L z_`De-w0)3Qz(uAmS|9fCaYE|IgCrMg1LxNDz@}pqn{j+1`U~QU4q~^6cD4!bJ)P-{ zeF>bfo%HQq=IWvo&r4#GGBP+P%U)YIp};LW+o;7$pna*xxc0=jRS!oje;8Aj zT5@l$Vtgy2ATKZ6MTOOLsk6nffVJS0(n*!;n%seVWdB06oN{)vjP2HLE~<_|9vzmy zJjo56nr@x(bGN~biJ}aqLtpd?6ej}3zs}3}Ge#i>(!?jeQ8p96@i^3UgQRz&P^Vb# zwgi?BF|<^|;B90XT1pCP!Oyc+_w4%FZwfGL@yzw!>`qX-l~^8DEq2>wLdD@Od5vo>|L?}DH`xCXV=wH-sh|BDBj!H z)*EFTOkoG9#W6T)4**Bt^Nf7NRec!~vzCqoQrooqT%|2AXEata_9(&&Yq%-u=>=5cu3%jHV6Z3p5C z)^oaYQ@`1xXtG$FBe$U7bunOIkmA$YNJ+9kr@MC4->-xrzny_s*Y#~4zhCYBnW_2m zbtIe&VEF{@vWRp%Lw)_a)Z|s=Z@|C`e{qUBr@i|X)R-qBsSzL ze9o<6rrC`_PXB7O(Np2L^~Dw^y6wN8J4SJ}I1=>-3F8IxoTKBmq9HDuNG^A0n{%{% zcQ@t9hpo@;SNo!1DFK(&)s&-+;>LzV5TC*kVE{nCDd#FF$LC?h97p#PBE^xPug% z&-|M4Kdf9`A4ydEZ^k_S=L$I8{^hx-wy%6rlDW8J9bDJQyYwqZo+HN5lbj!9Ij3lu z<@h;)CxEh&jCr>8R385Mo~)vx;xx^{4f8~x3+;o*tr?qsqtF4$Wsd)GJZqq!wL zw{Z@vGkoz%bjrS^doSwmmdY=EiY4?r-Cj9&EkR_L*M+@x)5e8Y^!!H9_z}GXu`NWb zB}*{3sPVWNlKJ8!zdvdc<2Hp3e)YOh%l!tN>j);s9!tnIt+;JW&bP|j7nN5#-AAM? zFwPsurhU2viHhe)q$yKdDqUT2N`?`l}J zAp9ISfai@E7=QbE_h(UXG}VzL_(ujzgN!esby7z}-WN@&hc&3c zU*Me2f*f4j+e_ORc|&Gb79^#e#ZbS<@g+jCVw0;n7X&Rh&8tS}%gI(WPcDLr5S-li z+LA-x{@xb`b{jT)>@4%AY#wrzzcNM=k^fVIl^IBOJ<#XICZFiq5R9_>=mlE>X{g0t z>a3~8+VnBvFS|ZzIcS$PH)k+6H;>iU3*#}lxiO&zc@{*fUP7Pik`zUb6|^iY>Q6}{D#_?)FQkN;onbcZ8-K%&1lFGneQl$Zd#!OJKA4*@Po zw-@3R5X%V4VFZ)Mx3*gphI26gslM zwDWwv$sHGRARN6mv6PUu{sl|I zPC+sPv-QU(!cf95LenGk18KLIlqt9M&+Go=1U$K7rF%x0H$j3-5NPVu;Fj=#%Q^PB zb6*p)f>{qj+1fQfX|K+Fn9#iBJ2o8LIeF#|v@!F0UmjGMpZS6lx5QRL%cy(K{JiFV zYuV6OURAN!EcRRIkXOjl1#U&jJUxN^w@xZLs7NsiO#t1Cc4UHNmX1-jp8OQO_;pIR z^47O!9xd6A)UbiY|DIIlS)tdG+(5$aWXwmkqLVm{ihuM&e7ii%i(^+K~}3Kg@M9-OSO&Fu3p%}*Q4bF7Tq-us4~Y+uekAVib= zbfw-Wt2Lec293YF0$3!25GAJ+TN^hFrCjs!Mn9L_n`E_wA`x5SZLXF}cnk@)RdJ*k zX8(5p!HJ6F-}4{`AVhOE_=SSCF>2e|4_QW3?@e)A7&wejPPwI}p~%D}I%{r~|I&=7 z>+_L`$7JfWZIE-QW{eAU{Bye7=DJ>9{T7pM0&(Tzd2#Xq=Yaf}#2EdV6Z{Zm0Z zU=@z%`-{)qbZ4Y)@P)G9yf3?XVLVl?=kJ(aO0}yWRSXgS5%4uG$LQ)ULR1sT({zD} z1nDcRVRnVH^e4JA0e!-h6KC!58v^Bu`yuwZowMH65BA8Y{i6!g3sz>O(XAPP8ug@P zQgn}B!Mxy}$3zQRejMKJ=r28+r(C}H*)m?qI#Tza1Spny) z2j^C$$R|tUger6Eet*jg0?`J2l=YZklK`UsNo1>JfXT4j0vZE_6VR16k4(xvu90-; z4W+M5I!jOry9!38^y&F481NlF zd@x`ezq0!HM7j`0rXe9CrtA8{pEmz)@8=ue3w{30tTQN1>vD7>duYaTeb_4v(D-NV zW`kO=yG}!OgM1h9@?4Zrk@^qS_N2GuT$)NrSxJ5BZ%U2X)Q0eI*UPtU(gR2EdY)ol3zg$&F5^!dN&I{%~ zZ&^^H8Q0w&6r{5E_SmX9w5?8KM2{foMXC0bfqhIPKj zXBS;)2j!d67q!h zJ4T0y^>g1Ip?5tQ5_;`rm7)K?9wvr+J3SzOrU>Z#6(n9c6W+R&!_Yo4rB63FII$DN zBZBHrJ{veWczUU@rt5({ld`0sQKVK+5TJz7qFG#7WZc@g@+b{y)=%%{TfJ z8Ah?xS@%Gy!1?(OeXkI2wB2l-eSz|O(~B`Wb)gI5$>_M|2O=H{kyLzg13!OyrJ)e> zQIRi@dmrOZF$w`?XgqOjynB*EMWbKm&I5&0ZtI^9;t~_{qQDF^d{&Wy)<4rK@uYyP z`uNz`JNn<~dxY4d?_RIbp@RvDzrC1P7E17n9Dj3lwg(AbT{V|oD`cjp&yw4>l0}wv z+aa+s3kz9uw|;@b0@3#$czxkb1^M}cU(hCJ(`4p98Pltdey}J%4F0^GC;Rbse*Ky# zuESKhkvZlwlp=7qZ8LC9)Rr)V9r#aOqjV6&+1@RPf|8P30_wwu4+3sNG&{~ub#_hY zY@`&^JuXq&w~ZC`p3OiU14iSos(b%H{Zl9R1Ryr!jUT2jetj8$aPO@ASRK2SI9;<( zLlm?&6ejrC#-P3HEO0r3%)Opwg=jOHPSSYos@`!flzh%a)c+jVFH8IwWH(=K)bdZMCfa2vpzuIgn%KtAuUSD&t-*)||9g?|Tolez=$O}FK!+<* zVa#yoz_G-AzvQDi2evxEFN-vXHsc8-^E#WETEK}uc*njTr{HJWJtGls za^P}z>F$)W4Hbzb8$To^e+4LY~b5yVvO;*UT<1CR9n`?<~?Rs07d`7n!T5 z3iQnNr}*%5DdcVi z5O~v0YO3sYfwqp$H$^K>ad9Ip9UXJfncgKKP4`%6FYIqq^UBCk-i}Tt2?IwX0?@k> zO}!rDnQ~x?QK25Idbw3j5ydM-S~F$YZsNyeJjQPW;iV0F)g?eSYl1>}d;FeO-7D4`FQ3N8^ z$e#m}?g>ZrpD3)_5l|fbTd7oUf*)H|{4i{1D7a3SY|Rt+di zgP!9JyP<-I#V{*i%LQ?2+tuBT1zBBPRW~p&s91`zJR~bjPZ#x`yqxc)^;hQLnV+`^=Du;GFBCT`t&KWEjO6=AY3kr zItyGV@-ehgjo9q&ef|BT>ms>~^3kUAjjoX3VTr5K9`^>Pg-;M)M>;Ckh$<9JwB{#P}~_B7M4NNz}RRAHCG34xZHbbU3cf$r_$VLu&@ zKcDqVOc1BR3N3MLH{OrmMUKNT0V^V{W~>BPPt26q?iLn1Lr)P+StLV{1p zL+jy;ZpVg&P*9Wc*a5~B73XpAZ)e($<%dN@y)ZMQ2M=D`pnn=1W=NmDuGb=EAwBi& z>$C=Mm|Ixa&@7bb4pgK^l;%WJA*%pr6zi2W?&PMyi!<`mR^5Gfu<54htaP}6BB(_Ra3S( zazx#tfX~aT%kT1jgFjJ@WoLN=;+~t9iT%^?PTdIdm-in)#Kzo)!q7d(NygSwJ_MZ#e zjy{G>vC;wCK-R}v(10M2d^ISo2GF-8>9&4T6)F+c)wM$+{6%XoM6@?*NeJ=ab&_*; zjBU!RR1xO|qmNk$8LV~}2lQBCrJ3#gQ{COXApfa0rX=#SL z!lK^$U0Jdp89vD(i(q7@=)j!eA{dG4$Wj%a2LLWl8Ry!_!T?hL93iM~f3&@v)0gKb z`YM%0<#JS+Que${2F*Q{MU}_Y>jIauCIkXB6Jyc4116~Ee*XnIRaj!Hm__+yv!i>h z)7%5+C%}(;Cm_jBb`b}i6}zj&91WHaqPy@JiTG(OGrp%$v&YfZ1LT^%zP^=i#mC3T-0qvod%p{ylY$P@!Euc8-v*^^yu9iuh20*5Da%8QTwKGV;_90_{=_RX zVDC2&4bKeMtlJTiuRQVL-kB&Mnm_Ye*+*KpC3Gu{jVz)P2NgG2-Ot3y_+J%D!bvthlGE zN!nI)!EEZllpc`yg@W&@M|E?|28TcB+Na9q7XuIYdr&(E3#^>Da_1h?kW~5Ycruqa4Be3MDfxRZ(O32d;)c7XQ{W7(fjxT`h^TEqXlQ8M)le3H z^X82}dqrX4;T&o(nXitRMvygvhDiVNFmT=^sC^2!!!`~@d_*+9LIOdJlfy-TN?IY{ z&_$)+QDxD47_l|Ec2JS;OSg7!e*01ETO1SAEzSI=Qa_99 z82HvY3w@sUv6m!njuDRGLco(2xv^uW?C;$RtTywMux3fwc)5#9{b54BlFHyFX2Wa~ zYdgSd>E#aM#=Q4Q%*ywV@(IvudL+DA)Ls z)a;gCv?(BmQEyr#KV|cEC)h75f{Gr0wsqLX)SQ`{djoX*a$t(m%a^}eyq!~zVw+P-_onkVUUq@tj>!Kh-tJWdRI)-WsBljlb+Hy|=nZy&ot-`Q z^XGTh*8#b?K3{GGfyT=E^y!PBp!ReBiLTyW9Ed@K6JWG;0z%{3_P{Il7_Q%Q4bCGq zaLZ_3Yi)I4hpztw>{EqWOLX$P7Sm2_*X0f@kKd!Xuj?JKAYd@Z2f4?DnU{}Ao6e3# zR(9Bgv>Qv?uD_A3UM4L@7XNP4G3#+^Kv9Z#Hl3lwhOIQANq+U|blj$p$x?kr;|w0% znrv)BdrcR)SjM>@PR62cXc!4bc3efle2&Z=M{^Y!n3?5_ z)S(vy1OzsVt-?-C8}|+}WrfY|x5W52WM@ja%>Hx5#hO`GYLIPbtUQ23hY^?h&4!+Crx?;uU zddl#2@MgTi&a6*?=|R%$peU{`USSj!k6!8Eg5D1$o9}rbK%oR@31SK|CrXKcM%$|0*+1J= zit$~oM`a^$@5z+m&ar)-LCBRV)-6FMWv0Bmys(G}*%vQxY5o83I2#I!4~G5rmV(Q% zfJe2Zo@EH>!e2zx{0b!{&Bq0jNJX4rYiOWOUz)Zo5&#Fk2u3fB9JvFZns@SkPJqh* zvZh+wF+31l6Z*$LB6s}y;~nm;F0da&1KKIB1kKft35(PTC?=$e1X-xc=Cd1wB9f|^G}QkfXV#7f=upIVR>#e_iH~Ul}Ym+3d_OfbFXVQ0Y#fa z7`{WP?n=G$5ENqO15SoQ4-D*e9*}=cE}1~eAnj$5=``}V z<4aAhTFbeHm~a)2utsbHJ-tE(lDRI8x5-Tg3jo(ROptdfkwcfT##|pfIQo~K#HI^& zp^NYx^@!>FLa)8qqJjMA3%Op6@WF{ltZmSwC(^{*M{B)p=q1o^l?gpZju(O<1mW-AVS^gR^6|!i z&sMrOLlBN5$id26w`HJqS-tp&X+si7Zw-G#4`gbF5qF*pCy>&F%gm* zKm}kyaB*=%Yb!pv-~++d+)4i<;=ri~izu%V_Pq{B9HWn#r!kgVpx3scZ2wsiqXZTDXiB&6V3iiS4C5g-;W%=BilmP zD-JweO{^`be##g}M_ssl<}Ys->`ok|c~Vc)Mjhj3C@I2Y-Ll%%P9(6EiKitQb}U4! zB-sZ7ynkyV9}+BC`z{dAmH@PPI|^YBIeQS&XUIquOba5Ujg1V(`vU_5u3&7iAF{m| zUN8VuJ`K* zhyy=8-ReI?wcp;Z3P}81S1}qk_t1BtcqDbC#ZYa|82uf(aWiu^p#NI&;!o3YIT#GJ zn)Q^Ui=Zj=f)B-Zv+Tn;;Kc`n_jXK( zF)Z689o7Eib-l9kSMJXG#1EJW0e6A5^&jziRpuW?#gd-rGkE=(*03;YF+!NnRKHn# zy8=FdnLjbac8-#JOW-WeQ8&j!N7pt~Y-q`KnsthYVFd5|sR@wWPh@l1l8&P-NHl)OjkwLA)k@a4Qwu_ylPiM9QGAwfQlZIUhsaj_Po@#@tovi1s`*G7q zd2Vi=eXh9ye0lmh`^~@?rPb%}BuIoWFn1gro}>smegajAkOeOtoiEHBbl}<|@XMbE zBM3A=WF;3R^I5>M5HJPNAx4ByuYhrpF)NRpTJ@?@+Dc$8&pE?zmw)42zWLZ5OGntp zl_{c|7;vN{zX$g032adc?09m@-A&D5QJ})JlcK_7d_4*5cZ9Bp-9hVQ_YS`@_xZ9m9?qBaU=h)!ueIuRU_Vbc`VvOYJi0mwAgAlD<3QS1nI4mEv z_9Z3xMI4P<)Ls&WOaz*Fy_k*8f5}j=Ky4=R#=m`Uwn`FvV|FBVldL1O zq}%@Rso$#IEMYD!HSpvW39(K&0Y~Q9+N{0ldsgL}uhAmJHWkKgn5hGsU+U=E*fUJ) z=)tm24N%Y)HGjW4xIEeV-trl;J*>vT#)h>#lkk{}iv+V>X9OW^9YH>i5da1sgjj;T z16ynkrYwqqw54_IyJdO%)E!QY8gV{0!D$3s1K;uiF;KxODJ^{t*2?gyWJ;1N4)GH7 z_{b$%v>@EM15u$Ol2(DHf(xkuCZ&SLex_rWmG6Q}tr~LyCvvjJIC7M)NooB~E}u`mdU7Mwac)emqypthJ#w-I#{Wvf zgAV6aq-j7Vre1%=tR5JYk~YfVZ3a5<{B!IYkep1E=%xzZjC&sgUQFp(Fu8vg?oVSB zzcrrp-=czg1saEGoGugPDUGBlN0HoLN+A7nIlknBWb)$9(n(bdp9wUB8yJcvbBg}) zvM)f{Y;O+%TXa}pcv|p~)A?0sSF4V8OG^E>uuVnrxXqK8;HiMnlE8GlQ^an?ISSYt zCYeH9f@ANBy7otxlyH>_LPZ9gFx7 zVT|@igMeKU9;1Ui7_d*2L6%J|QP{TTvKbtkruca5`N@{UKwN@xR8~S@SH4rub_OWr z{;oC`(i2Tq3#USwzJb0D2jvwYRsHhu86YFMceZp_M}mpoG3gno5SC?UWB>T^??BPmV}G6sOu=wh@B|m+45Wd^3-=nROTRjG6#`>`2f(wJEtv?^N@o* z%PMtvvbTT`3DeQkg*He?XkV9JZPowK#(g^(fXxs6^$sQgWv?aig`vQGL`zHS5fc;c z<>jS<;?WZV1ZW`|1_qx%vVCw~93FG-Z~z|q?215>Ky31Rm_Snn1at2*%2?bJgiFkS zWxt?r%lgaIfz~4p3;ERU8_A zn^<~b3~Rnveoqn-IgzVK2I<(XfElk1O`DX*xvh2)fGo!1Xtg_N>4E|zx!?(!BKU#< zYs}NNIc)%P(Mb{{h0M_c7SZFdtX(=nRQ^W{@X~9~TC~anJ7|722B6Ex!KA?cfy%YV zBcQ_sX9Xv)|7Gi#>x88$1JlU(NN(z?MnEG`kx(F;AYJ=Y%eK~hcuE}mY)0_+Ik)GA zw@zXxn>K{773U%#U2B6(e2h~nve3}i_CqW~)(W}JhO#tD=yAQ1qUiu^cww*-D2t4= z`kqk7qVj99Ql}R5DGafldC`=WObNe0!m)X zFnVD~M=ZUp9g#=y?0XUjhV=USHXUC?P;gCxr=X0?Dk)qwBE^I1%9#+VRVeb z0IF5UnQx8x+CHeP_qL&*#>-|lT9#=1jOP89J1QoG9TvtUnAH74kgS`+7$Q-7Seins zO(5FPK#Ua(5f+53et*L%VQ3XW9O1#tYba(fVfHgrmKYZoSstQrTv)XUki|JaTaSt5 z$b^80Ul?}@TJ~~PFYO5m>+{(6$ge@TTFxF-;M*kz!0GAxJ2_OKRp?9=>;i}}C_e-f zOYvb)U!YyHHfI@V^OiC6hz!uifggsuib=5VN_ zAA8mYlQf_U;9`a%$9~El10LPp>`qr%*sJi>-va-_KeaP*-sR9K9T_aW=j=H=b(;9| zlSRpklW4{|oFwD%b*)+OhbUzre9hPRgaCqe9-zHG@Tctn|FeSTv77G~X(n3%5xE-( zF9YEc_LQ&Et=LJ#Kh9Q;KpU^oj@7j?dI7b-l8h1eQ*NDX>yQWHF>;0ytSI}e9 z`7wsYT0)1yX(qL{AEnPW^($tsHs33Nb0m}eZVp_m*pPrZn?={$FMeZ5t3cP0n4u8- zE@V?#I#Ijp)=5wdIAzbq%reS6&hy|$McG>m77$1`36nmr%2dM+dAY0lglg@tiYd0c zsr(PP`)WVDGZrOB(0D$C3;uoIqlzxDftYOWY62LtHhSXAt)jp;;fZR?KKzXqe53x< z;whN4ymjtNdwoHt6baPby%-o9L}82JDVVhV0r!)*`A*F?qC5nFPyTYovy6`mA4PBu zzpBmLU*;*W(w1_DdMPWM%$)4=&?nn)#34x_Q!0VEofTwEb^2Rw;ke!QcT)N1d2x2` z?X>;#(#e@@9q3@?r^=`No|xpp7X$~j_$G?gTBoktQx5^IQd&=(ecKh^!O{mZFE*R} z#)*A|R!kPfUc-63g~s_FZrc8MNPD<%%rR78*h@uteA(tKq4z!DJ{{*tie61*V&oXu z7PvvL9eFi^fd5+MQy6d``@4C3s60Phz`zvu?^`wXvQ8oQQZ*rv#*~@wqU6)7<94PE zVtJS2fG*KS%7`h9gClda75kCYIi@oo2fO7Ekc zrz$FzS?g+|qVi7>Y*ui%`B0!}G}6E}f4#gF;vk7TrPxGjF7V%P-`M|OU)K4nzkp)I z|F^ew{@?LC7%k}kL1`G%cg^F+H{iY;7s|m zDz5aeeDsf-GqH%@it8>;{J9R@{|}S2)7cms`KyxsYfTV@OYrjXb&uw~bo5`E`k;Ay z+fHily2qZ`3(fdg1KHb4Fy(+ZF4>%gQP#jbl32l7NdsSyW>c+c%Brf-_5SBhK<`)K zA7BaH`wK0Jb=J9eF(Tjy%MqD?{}^cF8phn@!CNGGJ7-0(wttrcoMKo2h7sYw8!~Xo zjLiFAHJBmq6(Wl`lP>(b!nugcHTFs#O>B_LttTZXvxz)rvFJG&#&@{FOM00m znC1MgI~jgF0IXhwllA@hp^@^^$|`?*p+$&UHLb9AAvS+mWMd3w!z5_??92I;s6ha- zjebuP@RvpA(CpB)Vf;!F;DKoft`BVyyCE))QOcF?|Kr28-$0W3Z(MLsS354E_=Wl$8Q< zPqBD_33XE)&HCXSICUEecDVC_U|h2Q-(;c?_CZ0@#uBc%)Gk?LpFohF;omnj4VZnT0U7wJc= z4xq31oB_Ux0Hy10(coqBewVLXUiSDh0p(Q4J4!^1h)xP{uLu%%DjwKqv~BQ{nGFe> zzQs3$Uq$ziF-9x~plG<~14yry?E#5ARIux2{Dn0rcCUhlc(K6+*v?#4v}4;PU`_NA zj<hE_{Dzbn?biqRY@mB8O%X{VM`Qq5QPJq%#GekfDMZ zg%e@Z4#?|PG%aMLD%EqBq0BJG*2{s-chyu_t+8d@W$y~ z4yhJK0_21+BMpFu93M8vB)+z-s6Pr2qARxdHsq_!mMjgk&AS{N9K4sDoSbdC)NZh; zXv&TI6W0=PlE z=+vCbFZnM4qXG6s(*P(@R)4oost1WFhpA`n6Z6c7arAP{6OXoy0j3=s$tB1Vf2nh+j@A$W*6MRmz~)!uJ3#@1hK*S4m8J&bt^`D- zoQ;+qG;>&R7ySbc$cU3X=^L`Wm45_9fN9VEh2y`kkRaS{OjNT(Q*p;Ci8}6SN?ifs z$2TPn((-1EX#5TpYKf8gd(xNXQ|MZN01z{rpxQH!WW7&X&}zPFiN;h!|uEN!&zCR4%2k!b$GtyhZNn5j)MV04)%1-+z28Fq``BOq%fo_D>`~bvx6DEK z{|`DT^!J#5;*$oZO@HN1wv5%0F?9DGz*EVU{r}jh>(D}{Ip;caaaxtW2!vygy=WeQ zTbP@>@At0nyL}B^%nLCrv5(m0CeKJD z{CHE(E_Nc>(;5b9+U#hBg`PF+NNyk5)JCB6Gy=0{Pg9NV@cissPVxg*gQSn;&JJ-o zB}Law(@cb-+K@Gm!m*qbI+2Kixpa*hFDx$NISvaSv#+&4qi)pgCXtLh-1EoF{@1TL z`bGb_jg_F%)Tx*6doXXY_+gY@9-mqf<>5h2D?8I%V=)+k*6SYdMERvoibAcWt7j@#Y<01 zkF!of#0{Y0^_*Y0e?mCE3kmX|8PD`GX!1)lQMK^s2v@cZ5tcin+MgJCK7E!g0l5s* z_;~HY!s>+Ja}_2X>s>kaUboO|3@%l^sR1!s{l^spA|MOt?3PfLusNJnPLEo024I)U zO{C_HtDlw68E%V%BriKzY^goT1Kt2xJCs-ym{}2q!|KPQPmuhu;?~H<`NBGI`nD@T zrakG5qKUDIhV@Mtxpq%7V(Vxiul{Ckkh#C}zkSs$3WZw=aNR3t;;D zdmOV~2Wb?q2^?1I5XkOdHM)A2oakJ}*6qx*fKK=Rw{pH^S<*7I!f?FXBhxLt!$2>3 zNr^vVrN?b;QKaS~-Mwd0V!U0xIaEt~sgNpxVYJ2NGNna7H_Mm6Cp^;tKygqeL81{yW(Y!rc-cZ#I%V$bgG6ww-+1-6reei%m)TAW>tE`g8Q0M!r z(NBA3r6P8nXjOanZmFcguy=YF91zIoiVpmN$U# zxU?c}slBJh!UyA3(T%o;G;gdnoFqP?=^dOO>*FMM)@HL(c;>B)*!*o8qkSRmC~eqRS>AU3x@TeBb8IDbi{E}~!yP>LqYG7ZfA zoGRYB9?<5R76$&hYHs~lNfF)?&#_s4cEJq=ZYWhe`oz ziScaweaojgTe3SPDb8obJ%Vnn^BT8XkkQ&VB7VM+=`=LgLRsoCMC-PIRdbx0(X@3Z z>H1DqS8hvz{O3c$K4AAs;-VeuHI~7cv>^uQ zFcHM4E8_Xk+xjczPmYi4C-$LbG?U$j3cgk~T>mJW<*|#;_tt^W@)hpH`_{k4R&C71NmRU-e0YeEpI zLTKy9qts7a;#-BN2ZN6lb9WU|B7FlBIF=*#st*s=?Zc75f%f5DbZxCo47Ky<%=q8) z-CtsjHEl$@-gDT6?8Bc%DHrof-Bfx?aeiH?>rtB!eeJwUb=Eh>s35&!pGVZs*mW|( zVJo?YUyYMO=AN)ksO3iMryiWGG2rKcO4eR%1SyCe6^sNKD~Ek-3M9bS(dzRxx-q|o z?v7_0UqBb6}8zGrbmfwhjR1u?-- z%+bRq8i&J_hk;5*1J0R^^mz+6UqkPo)bQCGFtC5QQCM<2@7X`)yFPXVg4v!T{B1-> z{H*l0g2fg5^*c20WW{{XSQ|#t+TJjDz#^U(7Z4*a>+ZKdh6rf#qO#9_ruZN|v-f8D zFz!LY!=sbA$=>f?L>A)lOC^M>*DHRbdzf08Cws4_pDRmLctQd$eA;IhTf{=m9S{0P z1W7Ybq!_Qq_lagPQ%^n1y<|=)cKQ01x8XLn>iD0JFQ3nea6XG1`x*ElnO{Zf)nkoj z^6sR2>}6cm{Ec(_k0|;LLnVcx#y@kM*)aXESO|xj8vQnRkJ7kJU~Jxc z*9Gpw3XDHI)X~*qkS;0}u7t#Ups(?c;+xu^IX+*frIieL@*GAhOMRW0A^-nQd`p)8vx;i=o(DmqN0uAzi{arH)1 zY9q&073ak8HrdSZQiL$8sVn46DRIlg<_kZnhgfWzGgAm&l=eq!NkyYYzN6>Q#DG67p@ynPsro$^04eKPyj-R^*zPn>{${#43+P z`mgM=*~A)KgzlCor7flFi!zR|<>i=d*{03LIO-L2)q;PS#68PlN*{(Z_G~Gn$t8R} z+3#r0S_C_LKZ9pT@OwS%!PsR07X_@Mu%D$%G8aw!!EHeKpeKz8RLCJN7-J;eXkJ zBYVWSl(FR^-fwxFWMC7BR0R)28oO&@6Q) zys{*icgJ!>`=A-O^bmCe3;3CDT&!f$kq+rQc9kwPBmVuOdi)MFZ_N!&dw7t9WC-uR z>50U$ne`@ES`y&m4k~X}qu;^n8yW@{GIJ2BQdF>$RUFQz5_huKXALd)C0Abc|2b{} z2^WFOdt1z3$X*FgO_y&~op;hjl@PW!!V9;HuW_jLKE}qs70DrNA?zqe&lL2GyytI} z!ntCct?#{3IClUpe|;;QL(sw2l*c2eui6=b?#3S;c6G>DG{Sfw2iJ|Ui!kLEFKD+e ze~&ExIT4ybU(^iA)6=`v)iC**f6b=QVGz()yBk1ZN3E#_gKaq}6HN03-&rSzvTiLU3SV>x+wY8Bo`N!9zM zeXz4ssV-Nozm&^OVhP;d$*o24szh$l`kllPrR5MqR450vRLvWCBACtOW&#G%%FUbZ z&?4e}bu!e37xlx1vtaEF28IYJ@~>4@RqLUXua%3=zsw)_B?i;yEj@WDNgfvw!SO>w z(?lSbI)NP7BJSd!MypFf}dW|(mYw$%#|Mw2O-@5V}zGi~Tj8H&g?uW2c}E1DTQ znnSwxHA4>{_K~E9{ex=B$PxZ2Q1=TMi(-dnd^TDCK8N}5b9nkXZAJ@N*${Y-{mu32 ztNry|F$=Rze&CipVEGIj-(6~WNv+qXms}9b`1hXU@sGjt<5J=~HmfvVdM>nZgzY(4 zU*-_u&@gkC+@1oe6{9Dt#Qv6?-6?<7N&7#aM@`{*wc>6*VK*GUH^uclnS|1X->xW* z%jn=%*7Pxo%@TjhqR7c1bfaOoG{t2d8s6?Odw?VDXB0L&=YHi^fu49r@bSHmh%HS6 zZ}s5s8CCG(f$;4Y4L&g6yS5Xvd~FZJAucZ2jw`hVe&&~+;z!SWS~ja$QAs0yCaiUEwqN$VU-yt z^j{u^a%C;<92j(ZOZOy@ly`l(k$*1r*a_ZnyvBR=+BFV-ek!qR*MP5TA8l~MLh2=g z?^S#qe<*DJK(?CJ;f9FZ&mfu{IHq**+vW$QjSWiem|k_>WE{npub^+LX^ZJO)S#{9 z3fsy4N_zwQeviZB^)G!sP{7Y_t$xGOWV2#U|Fu4xmPQfD=@@xjt@u%zAuG7Cr1m@6 zhq$rS+vV6F@U4Y}Yd1b4xD0+@N%7oML$s?pDXqqkEvXC!$n0K6TPm)(AOAl-R z_XnF-1Ym~CCUmtlR>Emv?Hdj$&kF~nt;hg{jyIN%t{yOKjF!$!`Vz$6}YWikG=t(C7U%~!k^ z^K2v*N=8S_E$9Ead&qzgD$zevQQIm`KA(=qJh8ELBmBAlCtkF#8^3<~h&vOO!NM>qM6xu!DF`UrXQb5q1M5{#aA%FS1vCH`%W004W8q0_kPn`{%&&#iN)>L zpHsQ95aMGICFo&xd+f4f^vjwzy~5;niyK8gzXMe;kI?n(!mtns=M1Vq|H5!SObrok z|4sY2?>Q;6Y%i@mwE-jvGeHs#grUdN45|?Pu6rW~brFJJJp1IAJu(>WO2X!3FZ`fJx48G>HCUh|4)Iw^BY z5Psbp&si^Ec13Xon!gldu`2n3m{d7sE@gSrzTrS$%Vnm{y#mqKn;_#Y2mtq1R)~%FW4lse-po?2ZvC#@H43iyYazSU-pUAj?t6$LimGG zN*$kEh!A6>S?acGEjYh>dsdWNAt(m}A(`J1LrKIDz#k~YU<2Vd+lhR)b_^yx41Aok zgTdoTz+B~RV60akBlH&$*4lwDGvwo_YtB~Y(~QXU0vO8-lmthVzSw8iurO~qr~`#EKK!rT_gJxJH@DpVgCS(90xZo z5TvhOceN`k>^5G+nrLZheZ$-l?!`r+2&E%A}p$MHBq&(p{vpNTtNGlWpx?=G`y zlvD{hJ9s_)^8+2kdBjkrRXs5zMo}v^Jkqr-1tK;$q=z?n!@w$VT6TpjqI_&C&V*%0PQh~!9x04Gyu9_87UB7dvrU)jN!1NHhYL&|KZ69+xa{QV zLR5^Dp=+9@@4m473cA8jP}rs9i3+r8wY7XFw1)c;1YwL3gvtaJGU8E;%{SbFUt*H} zlvyvmWxYwW+7xWz;_>c6*4}U(K8H-XW5C49e1bt~Qo_->3UjFxb$3GPRUVU|eRGIV7 z=QauPjX%XMetkz2^|zYmO|WNwEBS5+yY{!7>i?_`IxYF%>I-tqCBJf7@{Dg@-Yp`S z^+?`8UcoipoFu=gupnDT1@-(5=+|b}SoDClHm~`g26Z@sp*LRah;TdEX=i5bzyDN2 zBl`4M$Z_$>wLYUpUm~8Lw;!dKmk<;lSrZul-t^-1rbft@Xspg%Sl?^s(PZE!@W?rx zWD0fx#3AQh`0o1tBaom(-ts%iA_;WB#2K$@yu){<7*<>7H%lqUw$u??hUyJNl zTN*;g_E$%rqV7K8N&yJ0o@?2et$Tg&!a6D3J!ThbIcInuVbau~`+h7xETx6$%H9&+ zOuIUUP*JBh@3+xZ;noYA<$3Lnh346oM|4ru{#gFX-Q)d*H-~RTtPlpIu%a$R6`y?! z%-3I_HuX5*{7n1w!q8T5vq<3w&l0xcHYZYFY6Hf(&940Lx?D!}WS;~~7`joxkCX_u zQ6g|*v~J#=fUIS3#mz=xc68X?H7&g#*CU#*8N{$k>4m!LS3O%@hlU~{gAZ}27^9&` zn&Z)bc!+d2j|^%z$VWY6kjY`NCsuB{2+dFr+WAC=f}pCAY}L%5lM^o;33FISN5?jT zU({|Y>(8?_^0iZ)mV05a+KpgP>H_SZ(-Otn`g(o1{Zy4u-th@*ow=#$`C8Ui>dS&K zECz+)FJ=*QOc#Z`1l|0@ap9~N$&?wTD$&l?E9B3WlrRV_e%>)owZKp2NJWOeunH+R zZ}n6#RjiGGIy)T;YdDb;s!@w1MMQVa*vIjI7llBA~k@!=l3 z|UTD)(kJXYhpx9h}?OuV0N@0w|*~aDWcqpl0d^kd-#$X>|m|!Yu=Y zF0n*vAJtpk041&VGRt3exW0}Knz;bwMg$pZSK?8%np!}3PrRsS!;h?q&C9JYfk#l8mS|pL5qqP<@p8$_G5i9ewh@$ z8vQ^?iADT)`EB=r&`YjqiQv7kU&zOJSXUZ;X`3=xdVwj|J{E=xR2|6k#B5!LLq1;L z#-9zpIy}pCCK=rSw~YFBB8h7C=IeDvF~?VtUj^KY8INMuv>OiR$zhb(CMvAV=YtNz ztJdn}w!XOV5qu!4^e^g~)^>xtRLO(cIjHSSj3oC=4#lhBW4qxTth?C*bz5PUkUgLbvP~lvnv!LFad$SN@kqVA*#j|MXt8Edwj#Klk ze2Qq%n>Hz!@5t(zGDU_f2+Ld_7PlWem7CNhWY*^mTuK3l{Hg>v3<8)N(iAaD(-!YT?_$!hD;5VtiHF84TOK{*|4Yn)|;OV2$-;REN_p zK9CQ>WvQD{US?$|Tea=0u=xo;aY1hG-d6mRGu0@Ya8{X)I1%eR?!8Dn4$ILJcv4Go zou|MnC$r&GXkAt4F!qeaN(4eFr(g_V)DI(gX2*+Z0MEc+dNmm^WoDU;D+`(Yr{Nq{ zlxG+$YLl2>pJGE%-M1(eg&jJdRu2(if?RuYFyD+)j5~D&zecV&ETTz)zroYFrQwV1 zq(zB_R&7LSvj(H+(F0gxox!ME%ZMxYLX@omX=PGpQsv6KFAb^{w%P+}l_Cm`1KkXot7CAENTwvYKc&f`x{4l6id5~Wdp`6lY@WK3V!UFejg zlHO++?Z87ilH@#nxWW5+urMOk@99L_-7oT9s-&MZi~BAcYO-w~f0jS!P9QmuME%lq zI(Yo^FLRzOAi1Za5-x}8Bc1)4;pJ|dv`dZ(i9bof0IC{YXLo!nD*;FG=D*nLcp-s| z%`IhoG*W!>L`xa9VeaeXU|LTt0d4#47Uw6C^nf*_(wlR;DU>PtIycwNPN(4vPihuv zQ&ZD1hMDuPnz_%^6YW!NqnPj72zvk9e$5eH*%~XCd)q!B*cXE^Jmt05qp)?bBF>dA z1EMod%5E58v8CH8U7pj77k%wPpsc5q4{sfTNodN30xr7i4iQPWqiq4tJ&mRMb#n0N zUw@crmVP{y!%yOv+?1U*&oad|vyq;(!g0yo{6`BfbYT{WFES-8ybqtXw0Tar@JWO2 zcvfjo>OEa4wOjCqJ@>5>MjEDrzAc3DOn%27z%5MZ!MqhTN^mlh<_^J%o}Pf;V9-G! z;Jqsy$(VL|oJ35T{jcwoGtbnqSomNtW~}E&D6`1$@(*qIS-zI`FPi$RlIT}80B4TcII)ylT*ftpXxIu(b-;@3`mhPw%!M9+(LfkZ=h> z!(SO!Z6I%sYKgjOIkN{hfb{n5WzFESMu4ssjVqPDyeM<9?9+>Nrev#!PcoM&stx^z zL^qkidyF5Qquf7cFDt$Pcbg*%sKaB-u9D)I015Z&@mYKS!m}#x|3KP-(<@71&%?MC ziA-fuo}cxJ``e}_prM1-CoT>sRbZGpy@ zF^HNQV{k-~lBx#(RXtzNseAAHqDBpe zLvyv7*+>?3su_t2&Sv?z=O`dNv!OqNt~X-{8eQ>>xIVmp%97Wx$1xo1-#ATvcrJvB z!eF`NK8vxVgtaq$QlHD2AF<2yTu3_}?d0N225TCdQ%sCNPv z&c&kJ;&E7$F1;VnW7Cl)O!Iqk5*W&x&6{vptODOG+T$I{h~;>BcrF82MF=Q_9E=G% zUi&ORH!|(F`vq>Q+o~Y*CvLelXGZ*C&%fwoREuq0&*S&;K0rTuvAU6o`mB!3-8|mg zSjnF#wa+BqS66=zrFQ$ojT26Tf#VXYqV9IfR`B?1crSUZW6W}0Aw7!TsLk_HqtJ~+ zT)%);B*VQ6O8`<0K9+>ew;+9Gz5=Fg7=-$4{6#|3=%D+A(cPds0PAqcP1d66C(>y6 z#ObFw+&d=E`>eT{FeRy`65VUZgYs1*sC zGKWJA-oCCZ)%L{aO|@*&--Q}IBEUP?@;c#aoz%wj8@#Z_?TpT?+Nrn`lf`=wtmt^_Yu1quBdo8_EsLl)ps9L|!Nge*Tlh89CAH;RS<@^1nKoR&59IWcIm6=3g16cE37*`<=^OGXOESVyq zSD}Db8{>ZOz3RD_Jeh^x#D55Jx#))pcg6zNV*`K+12&V%+vn@$?IzKP#d_NB5k%|F#cmdf z{BG0_H|r?+)MsgT8&%ieG!6ak{2bAxW{nP$>zUb^X^3~&G6x41ljV)frzJ5hnvc&h zN=&-&S^VMb>n#{)c|2>Bkj33VBZ3r=4OG$;#~&c)ehmxm>3RbpAPEk!0fiicmjv>k zd}JggmRrr-61rJ^0il%+FsifVl04YAV*f%g7IGHYOxKIl4GMK0!W%HDYqm z`D_@%gaYiT4Du@awMXoIG{XCMFU)e#jR$%;P4Gk$Mq)F37N+8?-!IQ9&3H6fICcl@ z49%=eony#d_qFPq3{t7gunbc%+8&Xc8P-Rz;MpEkY#Ho^TrL=h4Q(&2L@EB5tBp*W zwQMzJ&7X(CuE3r?e4zG+#-a>6FTvIK2t3P{@)6jr1*cW4;7L0;}SdK4vp zN0#9lS5!eBS<~SZu^0OL2ZOdF#)}hju-Z&jW9}J z@lDXJEh|M2y60M_Kx4&*O=lt^Bflxc3O^YBB&XI?lZ1P^z`;=naV_kuS z$PfuHOQ-#v1YPG_KR$*~Bl$WnO|X-_U>3v=r5Z3*n)k7(=<0^d&l~I3xm~oc+j%?& zCq^t_`I~fVUGhI+xu=9e(sIb=*t&D?A0AAHeZ`Ua0*`pCQ}0n8EACpbl#X`=6jo(( z&MpvVPH3UrOGPZ7rAz@Nms406`sE@nb~$szRx~3qX~?CgzTE*E(KIe`3{%_7zYZ%W z>bSrKVS_5{TNn)D``Sddbnz z@s2xw?i~qvEAX3UkHo{tUZA9oZD3gLzd3hsa9{yop<=RBs2>@1fN&Xd=YUY*wqr~L z131aZ9{I#|#+{pU^FbAkEM;+a6zS5v(XeQLGj$p(@V+4WUat*he`*lr=9c5-<&{-bRD3A8Jss9y`ufE+i4C$RWRQp-@YNnCcI=3Ir-j5pb*Y{pJQDMr`ZEpcSc z$w#DP&_|poR6*e2Ynm>zj5LwSqDYRvYx}|lHt!Gm!nx4elITHI^31Q58!c9rF!QL#`)vw-)OFz}!MeI-T>iNLPq2T+^V|TM&HXvXbfzKu+ zPs<9GMjP@V#4^f*?B7FqHB1N22U!hj)UX?HNT*ykf%fw8*r!A{Y44=+*^wxCn z7vA9jCGl>2oSv+^yBIAkEev-4{Q0b$9IFA0oZ~i~g?Ozi$_{OvsgzuxuBJ8%wlGd5 zucf|Z_MN`B4a-9IGZK_A;4-YMOO*6asR4q9$OaWxp{pF9a2P{E=w`!`ORbJJ6mJ{K zDEt_v%p~>phmm4iUQPrECF#drd+)aOIP-YC*0L$e2bM&ul{_#wn$af`Zli2d_qUu{ z^{7&Qn|HN+VJ!@CL)zkpxr_~$)DIzh@3%L*P6SqQ3R{u$U#kUftVibI-Wv4MILEB* z7&SQ`PJ6;z6)|S0(JU4L+T&#ij~glUTJ}h}>a$V5;Ly%0nx=Pxp(u1P9#JEL<&G>e z-_>w3xlAubG`smIvaK)k`U6D(Uf00c>^-4Gl?;NWGqIEV6n<7>9hp zauNzeOkMvQ!osSpZEZKHlYNE#66mb$ZdP}rqZtVA4;}0;-wo3FX_5kp8R5P zSPr)z*zeOKea-cQdUUfvVuBEgY{&^^7oCXOJ`bxuzWP;&!Z+Xw4U| zkIl-<+wXM&TUDf@Q?H3Z-}KkI+Fx6Uj*d>Vovio}9xnIv>G{u}Ki4I1xULPIPrUE^ z;Y1=g+jQ?d{({u^V95(sObHj_t#j5_}zSl|2ts?=9LS|8$Zf9tTU%lE3nD z)O~f!X(%=GaJ2o}p@C=ylhh^i2a<}AcaBuQ&BDo)f%RjO6xi}B^qP}xPAph|64%B% zTy~JZeuOiJiuw?8T(AP+=;UPV`t`{ej{W`7%r*6}X<9`6%Y%u}FB(g4jfU(%wY#F< z&z7oN@0RO(f9}s!qD@M|_`^b|lLt>1AVXm&rR2J>_2K4E ze@NX++7@#^LwUW>3({|UJH14pL?d~l-%g+UI@xj0v&Pi~#O<=-1k+HAJ9G7khKF6R zOul?2dSx(Q(&w~W{QHz+>7nKW{7H<+e2$$a(e?(zw;$Cg1on=*@@S?KdxOC@NCM2D z+}zxj#<#>=Os=zyZ?kf9Wo2Z}jBvACzR_9;)SeE}xsH5Cwr=0d7ir(L9%;~C?X=9v z)E9&IiTm>93ru2Jo&M4#BP=Y(j!9S=))l{BK1? z{k0OxBWqZe<~HCo(U^vXh{uGbNdl}H|N7EfbP3rdm)QI}SU=72qQrEC}t-NZ{9 z>(1VhnuFr_Avr98bzGE-qSFj~0k*UQuK7D$uK~7!cDaxvupsZyb}9 z5@AdjCn&RN&Jap9$#5QMq&v=47nUgLS+O!*3yIdaYzBc_wDqX88V!I9-FyDp!b?Us zuinnq`~|7@MAxZMPZVBY^UIg@Jf5zuZf_G{${SdmgnP-$3Y)L7;M;Y4(*QZXg>&UK zW5QfkcLEvVv5E8a&o;KR5S>^3~Mro}&brmwgjC3MSgPWT9Hp$!UT zRx=5$-I>u>?0Y;S5}oazpWNzzv^02IGU-#vVWgBy{uLsHACr(VsZJyYWZ9C5PJKJdHy zT|R$vR~B)XTc1mxA#wjtNoSu)_@6yZJ& zxje9eMnVK{)5@mpHaxZ+&pbs4O>Dx;84y@Si9NPwADk?9hK}uF15cyEsoE&y(59Jb zF`b%eRCH1(M?m(#ctbxAwXwJ^>jmc5d z^6w-mUw9=U%oXojyi^2{U6Or5&e@j2BP!_yM(JVAx0G$_(*?Ih&anv`Bp~UYjYSLp zP!xsmUilRjmu}v?2@ub{C*@5>h!0b_`r{pQ-oTF(MET(@xF2j}&X^Sowfh?EWwD$iB`$ZrhrUI6YE=_Cf}b5gbo z?Z{5gv{1usI`$NS3AVO;gM)+0YHI#vclvI=1<7<`IXOAtd=Xb`#d`k@4EAPqFk`&1 z3xu-(3dS@qFUyWk91l?W+}2Sdxy@kRNcCa`E?W7jHcabXEig(&TRTX~``B=@!WQNW z_7`q{XoUqReO{~%4-CI^s~XB~f3#U`&UR6Wu=FKXJItD1xWHw-?=(16GPv{KJ#hH4 zT(SpPW_ykEdaIMuB`b|?U(($!!tu{fn*k*#QFsGoc>Xcm&9Jb>K`BY%V^Giqutzq9 zI_!!O82zpge|>&_eu#2S*vHtIbE48de7&Hy*Rvo};!6Ei%{m1mq-ix>;~d#;*1bIy zUIjvOy(b3EPs}1@?9U-mx7RD~ww&nd&m!-0h~MoJ5MBG&pv`rmM?MSWoG zKLzr@N-%8hE!=%aA(Rx!S4CXs66bNrR!+%rL5pb35r^wTmjRlx)_AXE3D9O7MRK^* z@eSVq$VnljfNu!v<#QYlPn%Zg)2d14kypCWAlb9~yQ`dp{L%-@U*FyBpYanAK$N(+ zGW#$CEDvS&$V00ZOG`@&B%*$h{L{+t(9jhQj?~VDLd0$)g#uXeBTMBQMK%%a zaVXR9iZp|T2f!+)Fg80|MM?^byo~LG@LdEz%GMiFh5sQuIqZGY&+bbZ`IWUQn38Pu$#7-R*WkL5N^q*YvyQ2=*?|4vxon0_cWH6iY z5)uG#L~J*f_+9RJPuwZCa5PUxSlAx291RJ!oGC)l78%Mns{zlFfj}&?vbGlTK7NC$ za&(Wq*oE>9AWyudS5pSIAlUtxY+FBE)OIT6g-#aOMPP38AG!VWv_#MiLg-|i=qqJ- zS}`GRax*L|MH=jNJsK_0a{#llNPsronAuFb%r7O!Jrhqc(k!|lYxqgPS{3XM?tF`y3}s^KG8#;FOP-+8RpI_SUp9)D_U0O zQk$>P8{=u9-2+W25~vO&5$7WYG`ymiFwj;6yYTSRmBdR@M26k5LdIi7MuMFFKewxG zC+|-7oz10L-LSm1fFS1AA8N(7kiAxIST}ZI|Ktww@bI+$9)H>8Gqa&g40Mtk6qG5_ zZVv`O&Z#m9n}qhM>#xPP0?^} zAb^s&>{q7JHxLOsy1OZA1jjq)=mgR8PbiZAWPvQc3h48FmU>n`Gf?SoGRTE)sBE&R z<7>a+WvRcZCuxzE!vE%${4@DH{$Cv_ZS2SYA(P}Gi?kj|0Tcauf5F~(vygA^zLsm( z8;lXYk3q6Oj0k*eT|am7eUkV<8VsmBk7no52P$@{TLsliOf7}l)+6_LVzr>$VJy&n zf^e=|_jrm3y{vL1+`}Mg<<8@J< zNO*VO+!t2~vFBnNfC5zPabR_EwNLuSq)>^#@lN6hq=f-;00n_n`r*UHJ3CE?l)SvW zaY*U;b2W|UPJf>;VuqEdl0T0;_A~faY4VD2uppjK=ipmbDaH$d0tc z{Xr`p2Wub9u8c$Ih726WyDtKj%=g<~+zgF$^~yXj5ST&|x7>GWT=C(a9iq{e5Ri^NEC=pe4Yn@gaT9U7J>aWjbun zHg)jso9xWDoq+`f2UCtCc;?tnh?4xO>*^#nrmE?5Dr_tVni7Ki44_G&TEg3;K-FXR zPFfqVWKd@k#KgqnBwQVv-jT>O`~#I;JF#u=#$&?@38LKl1_qv0UG~^Q-EZ~YDclu_ z`9E4e(y=-#>wwmVY`LBR?N=_5{4#m_^GUz-duCLX0dWGeMS^zaG=+`ij01MyqsZhJ zI*e(S2pMI{vEL1-D`lUI5g@!nkPPT>a=7y;h~hoVe^W`IQ<>ydegumz8&H}=M3QuF zjSLOVg3WloV;}Y9={Pb%_v87`$osaZ~^8FJ7r!uIXu69P?fQQR5`$=;JP4bY$xO8O2bT! zdTyCstxKw0I9mmEDjmeF_z!6Hj{^UzrgL<#iVVsoaHt+H+zq~Lyc_+F}6YP$3;axq#ha z33+J>l10zJ0;pIoG&=Q1L`C_>#W8hEkWsN*)(CZ6)yl%|{qJ%|CaQ!K4HrZ=5d9(D zYsV<-wjg@rpHVj}618H%kgN=RBU4Pg|6V;;<7WO|`KUe}$U}v!-ssorp+QOBIArGj?!Lyt8lhX`lC*WNOJkY4r}BY8 zxI260B))1Vdx3K&Ik?!Xm->qoBrfk-{n#MqWo7nvw@WZ3=-yCPszOo%d$lo&A=ces*UE>@!vHJ(HJjnQ>8647+YFb?Mein*Ail z_Apjipb2T0U&zkqFd-0|0OT zU+92K%jWZV?|KQG_Jj`Ji@5q2UMj-XoH@fRaL~lvhZ$UCuiXp>U6fJ3^MXCMOHiSv zON0qFAK7mFyT2iIVHtV(c9^Oe!B_?Se*ZIG)HD4ypev}%889QCJhOUvW)ITF*;VaL z9RjXj?ETy2q+qzc>dh+9`)H%QZ@V9E8#QzxUc7km8oi+flYaX2V@FSq2rf`qR8;d+ zM$nRb_Uu_?;ds5LD2Qw<1NZip`$p}m=15WW4>A?vmoU{o+flVBsZB8UFs5S${yz@l zK;X_#XvJd<30y4@Ueq*ZHpBeQAw}z&w-Gv|j8!(~YRoj#MXBFtuS)B7+{LUB3(z~h z3Nbt*bMh3886oOV;1Vy=+1aw|xD$xVle^%=@eiLGkKyd^`ckpnqXA?00L zVYw!b0{XsoniT(YnJ!tvrF+EsuC-3#xJ^f&@5QF*=5N%=;prMiHwDew5e3@vSfmY1 z(se5Vql)tE(`S8SQeIyEvjB1a&J74 zvh*&@P9~J(@ho`XR~bq0ul9P8=mFe^f=KI)pHhz$>0+kE6^U!u6?B+$Z39Q-1Zy|7YS zg;Jo;vz5)HuX+=jQwew(hSUCK1MFj9ig4h1Cy9t;3_`Z|tTZHj;TYndQ@w3%@RC*P znz%o|xWAG;-}O!ETuk*Bua@NoSPPh99a`nA*cxrT)1~$OIaM_LGc?mKiU|j3eHhkP zE$wQz5%S-8yw4^7?K-w_pyt|9_WZwzyzA?f{{xSYnZ*oGQG7tP!Cw)YGf)Ip$n13X z!!@uF&h%Z~~#PJ)B)GS;|{kOY5U` zVf`sz2hx3W$^$<^i~bbf?1n{J9f7`hh`-~$#+gz<4}BA^$|)Ip$|QKb^(x{i0J45C@qaMJ;Pn` z{4sbNO$B6{u3>MMoxTUHEBNn`b5tw@IUZC(qq37gjMi1kC4~I^CIbg zo?eF5exbDnGB-=-FO8a$9Dm$bzt!hF% z6>QZUi$3nM>%Xt4R|sE(_BJL+LFc5TFTzZ7PJ!Slu?->k6 zV|AKLaDCYe@ZYP`znNJ1u$cp5$w4jL{qGo+vwSS zgDrLsa|;n`-o*D@HZFT$wnA0DJ!X7C3=3fr$r*S{)xSSW48cICQC3y`=5_MBE5;h^ z572;BcyA_3AMZWa{GPMFDf`*KGQJ0x^^XtWER($fqE2N_E7$V@sE_rEZ=4uzknY^R zzcEqXB~E9hap<)cwt+0l&e`X820;YSX^qdRXdD(l{h&>*hiiYmhh{)Yiw zPQBdS)w9ZF%018VtiHT{g4UUEY*A z83y?ne%oDnC5Xnj>>}4=iyrS9d^-fks}TEgC%J(?~*1m4S-V;n-aO?zXrEQm7hd6`<{I{}DA(oId^OoD3YXAG)rXaAWanKA4&| zCEa8E;B>|I82EgicKI`5r|)jHp2gpjSMwwh8f7Tw1`Q8rPD_D5gRg$ure9kz>BfG5 z66_F~M9)FgwPf5%|D@TNb0S2$=qSEefct&c9_ z``s#Cu=AwnY0o!O?En0=7XPq;_I z8faVYd$0-T1}Jyl9|dRj*YUq}%$J*%^eGQON0db+VcZJ!f!Zw*F8t5#I+>nRmdYWN zckjg}Ww99vuUN0I4tLp#ghp=1xYCtlffo<)d?Y_W8$vBst@CCnPT#H>538ej;iWGG zn|?AsyQjNcd4-HFD0&KI20V5a}? zrJm*gUtR-({%@}p_0s@GtN&6@R$i>wtk!WJ@y58v<#((1YHQr)&yU!_zeG2K&iZ=V zSTl_2oj0;Rd;ExUy0YSJetYognU=aznGwN+8OuI7Mi~2nr)x{v*szI6PPU&M^>#{l z;o1+gT82dRg~xF*pVE(G!s(Jq8UK`Qzxzj2I}2OokKw}v>a9DL0A_CsvPi{6E56#1KN1@FBSTT ztDO0q%`YU3v>o%gP=?duk2!=^b_w>*%)$tYs>ikl@8878Usf@2aj97O`uUxh5}ft* zq-Kq7+LXUHolSy!pCr&sBtC++WR$-$HxC9%zY)ldcvi_gNUNLabFB5HySzf z*PenmG1hmm?D2zo1p_bxf=kh>95LZfh=p!PsQMv0j9}UC226e8THOjU-3#E+nYL3H z$#txCcXy9tZRUnW)lN@*AxcVCnfvvGBboT8Qsc(W>EE>Wd?VY}NM~RC-~nXd<{)*r z8s4k}KdD;Nbqx;#K{Ke3Fy<`gYeReO;|3HGF-O<zlT4w&+h9)-7wIafPjx|7kmu>x`J*;>%@|3s_Pn>f@Z{hPDjEYqu{^sJ`_ug97lssA zc4h!WyBCXJUI_W9#3mkq6OGZDgH#6tmBp}@Wy(JUtx3l=isMX%J|mTFhTkjanoDt= zpW`4=KFXc|q-QSV0qLhXSvD`G`Ob+zJVYCt9bUoyb>G_kxjh5lxw*)V7E!OCc;X-Lm3HmBqWR`Qa`EA+5@a=wE%YHB z%7W#v^Y){AW*9V3p1du~RSv83O=QUrfSgzCGkrhdo;z(D8P!V{hpZ8pyN0z zH6&$1*CJ=L0IXPznZE7y;}X)ek|KE|LSEYBnippW8a^qA9P$?OI((hKpBU54R1m?- zN0AIuRxVOsA1~#evJ+kGULG;yfBxz!J@y^Z&;zf&qmml7+YBw{e`-AvUyf|zx_kEi zGM(Y!op_35AkkO0VeN1F>U-yl3qXTE_k?=bCcAT|Nk1nh@`3t5`pcxnxUG|ByGT%w zcN1)lM&dBUmLj=06!=ryHe>B&sm+!Raw?K}&z;nzf-q}RUUVS6i8iBDX=&*rFn4Z9 zy-s<07?nrWK4%DXh6xMYlR>v^Gfo~JhwGUcy#BD!5=2h*hOX-OzvTPnB&&yVpMMFMw3ZOu`Uj#B$gtV6p2Mi z+L3fPLyORQvqirFT2_C*CJN7$p&x=ST8IENJda_S-W{gj-e+~zMqg3l;2j;?EQd~A^hUwnD`pRP zBg0xl{AJkAB;tO_%s6Hn4pNfgzDPsUxm+S;#69*EVq2zh^0bUy#L80Tq8lqekC^CF zO$oY-n7){;kMMD8e-v>fgZ_b7KP=(djH|Y2>wQto96)rnakoEGbKrb_SH`$aidpws3gq6p8x)5LmCBx-BU{+BHO&w9~c z<)V4d)PNYNX5rzQ4JhU z3oPb=@(UB7TBM)hAM)=EJ2gKUJ;h&;EcPysxD)XWxfky%>}Qxp3cFFLw0vgUlvTn8 z4}pV;@jQZ6m9W`5w8c@*^pD~BoSL4R7b-8V>e~!6#cDqA3^(1MFD8M7jkJpH;QZr? zI0E5-aJM}xBR9KEHoD<2e461IhTIGT$9j2dyesT;?d$8%ceu~f0rtpZ_`1n`r_5uB zDC~(Au-#-eI4u1iA&6bw!mAdd_Qc%Re*HT0#8lV866MTW~;a*J9*A zMPM?$1qNra-aceP9!zc@R)#xW$i<9k2o}4VOsB$%;kFpE& z8{&TJP$=|JAkqf4SZBss3}+jfsap>>#HKR3JtJd1mYI2Ax1oIUgY_WY(d?)iCq4eU zNbVX_WSQWAvA9imwd_H*`2F@^vIvdpX`iilxoXqVAM}jaiCaXe`f(h5!z*NFM;a_5 zYHo}e(ODE}jmd77`v1UN(nE6y1&LxoVVz=~z+GA$b5SA02A76tyr~~H4fd*xSiMP8 zK}}a(kQL&)v4I~dXRmorr;koCSO-* z1)pe0b&T_9m&*~!kpqyh**HMk>0o2aHB%4IR5Dkd-R-_t4r}V;VuZ?f%}-Q9jORSv zj|CEtXYWXY_(#K0e5OJfO9hMn!5Ujmx zMm{`}O)+1Eu}b;&)LLKqQ@aFoQ-Fo&#uvfGGXHoxpyb;JC;92v_6ZtBQyX`_^MqvB zBL5RDNobMpleiS-sjh0Cg~E-bx?PuRdi#t%rca3Xhcs9kqI%Pm6!P_rG431iPnJfg z0&Y3;5Yr$f{DKtMuH=`2L?hH$`OZ{I(I!e^?2#ISPfA&Vfo+Xem71fiRO-^2b#MYm zF#*9n)hUo@=qW=B*u|+T3ZQp|g5V=an|o}y z+=X6n`{OLYLf1C5=To9 diff --git a/icons/mob/inhands/fluff_lefthand.dmi b/icons/mob/inhands/fluff_lefthand.dmi index 209f7660781e0df6989f1e6b491bbde22f616b0e..417ca1bb107325871934633390ec79ce29f3d223 100644 GIT binary patch delta 692 zcmV;l0!#hQ1&0QZ7Y=|30{{R3^x%>C0000~ktIxj003wJ0E#Ik{{R5b6fr@V00001 zbW%=J06^y0W&i*Hm3mZIbVOxyV{&P5bZKvH004NLg^xQ9gD?;UYx@)y^ih6onh1m_ z;0nl=7rYX9rS*p7_%TV5Dx#Z_<`u6r_qu6&Q+2IgffG_RH*-B4wR)nLkmYjLDgaJF zzLLa$3S=xiB$_i1&I-jsE03JEwN@kB1vWnYatjltN5qkM*^OT|N}xHyZt0NyKBL_t(|ob8w0a)K}rg|$scA>xV#)cXGK*-hF`MS}Su zj??jc7hz_1&)Fl!3s)-u001D!`t4~xZ|m=WGgoGYGR64#XWk1X2>X=U1ONa400000;J+fIJI6J9Na2}Y z?meBUm8hyZSj!>G zr{RdQYJ#;KqI`5y*L9{_w}3B^km2knx8&>Z}h-_eST)WgOL8%X(BxgdLZvRaMi&M@K|?D-yhO% zI_~#G#*m%~ply?SPS~Ztg0Q|NqwR9j8}B6`*U@gOP2L})7xo6&j5PDVnaK4G$&CFm zdhXMn{8!NRd)J>07!0sb4*&oF0001ZJx-_RTAx2J=LhYNvp!uek9q}>*3bSM3IG7$ awfF+YTN;K7Mnduc0000+n668y}^K2Q1nVxLEU7rFAOQ{p04=DXIJEF00000008_|ln&>z<`1nR)BC;GGmU=U7Ia+Sn;_;LnK6FoaU0jX z%OV z00020(+_7p&qN!2qR=0Dp?^w$8R>dE--tF6_y+f{G+u=JU+eq9P2|YUmY*^Gg)%2Y`m9Y?@#Ibk^2*ob7VIHSl^_H6OQGtAgv$BS-;#( zE_w+lbZnR!iudQ}mA?T#BW?U|CJKE=TChJy&waX5{0fHt6#AP1lL2<>0r=N^0Jc~d UEU>)#ng9R*07*qoM6N<$f|^t+WB>pF diff --git a/icons/mob/inhands/fluff_righthand.dmi b/icons/mob/inhands/fluff_righthand.dmi index d048ff860034d2af5d4f584f893efa3ecbaa45af..6d4f3a2c76bd8b6a964a258407612e36339becfd 100644 GIT binary patch delta 639 zcmV-_0)YLS1=9tP7Y=|30{{R3^x%>C0000~ktIxj003wJ0E#Ik{{R5blu0&x00001 zbW%=J06^y0W&i*Hm3mZIbVOxyV{&P5bZKvH004NLg^xQ9gD?;UYx@)y^ih6onh1m_ z;0nl=7rYX9rS*p7_%TV5Dx#Z_<`u6r_qu6&Q+2IgffG_RH*-B4wR)nLkmYjLDgaJF zzLLa$3S=xiB$_i1&I-jsE03JEwN@kB1vWnYatjltN5qkM*^OT|N}xHyZt0NyKu z+N4zKnFk}m+1U*?52-2u005wX!!bE}JmfupTj{@CxinWSyY?)v|I+;@Ou*{@^L{b* z@>~Dd{k&hZUH_c+1$EnbazBNAc+Rxx)|X-f&-+{T0000000000c18F_inOe}SL92U zoKhtf3zu7L#F2zfU#nA!T~_-}L6##4q)Kb2)LJDB;A2%4W;v2T`YN=RTDxn0mLmy& zr1GmaX$vA*jwF=U($%^(Wq?SQBMGhkXuH#s^cBRi97#Z}lu)WJ%W@=h8aKIAO<9&B znPZx|t{YR9x!H*l z{#wg>xIi+;y*j#3+UXIoFh>Fa00000002vj(VSol1Sf$)>3PKt@zS(2EMoDFquamS^(FiR36!shud*@+51t>r!3Ac^sR9bKvH^oU%TBLM(>^9c*+ V7$c!Fdkz2q002ovPDHLkV1jq`4P5{L diff --git a/icons/obj/custom_items.dmi b/icons/obj/custom_items.dmi index 639bedfde29645660ef809ff73a814f332d67c24..b5f06ca47451e41220b9a7dfb49b803e811fd0e1 100644 GIT binary patch delta 18109 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 From 6bff5d59f7f228e5d7dd529354e2a83fbafcc0b1 Mon Sep 17 00:00:00 2001 From: Citinited Date: Fri, 9 Jun 2017 16:14:50 +0100 Subject: [PATCH 025/123] Minor tweaks --- code/game/objects/items/weapons/rpd.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/weapons/rpd.dm b/code/game/objects/items/weapons/rpd.dm index eea9ee86f72..647b8402f2d 100644 --- a/code/game/objects/items/weapons/rpd.dm +++ b/code/game/objects/items/weapons/rpd.dm @@ -42,7 +42,6 @@ materials = list(MAT_METAL = 30000, MAT_GLASS = 5000) origin_tech = "engineering=4;materials=2" var/datum/effect/system/spark_spread/spark_system - var/cooldown //Waiting for something to complete? var/lastused var/iconrotation = 0 //used to orient icons and pipes var/mode = 1 //Disposals, atmospherics, etc. @@ -233,6 +232,7 @@ var/list/pipemenu = list( if(istype(W, /obj/item/pipe) || istype(W, /obj/item/pipe_meter) || istype(W, /obj/item/pipe_gsensor) || istype(W, /obj/structure/disposalconstruct) && !W.anchored) QDEL_NULL(W) eaten = TRUE + ..() if(eaten) to_chat(user, "[src] sucks up the loose pipes on [T].") Activaterpd() From 3e60634dc322182c8007eecebd3f00efb168cb37 Mon Sep 17 00:00:00 2001 From: Kyep Date: Tue, 13 Jun 2017 02:41:45 -0700 Subject: [PATCH 026/123] Updates Gamma Ship --- _maps/map_files/cyberiad/cyberiad.dmm | 31 +++++++------- _maps/map_files/cyberiad/z2.dmm | 58 +++++++++++++-------------- code/modules/admin/admin.dm | 6 --- 3 files changed, 43 insertions(+), 52 deletions(-) diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm index f2be8c0e0d2..75a171a30f7 100644 --- a/_maps/map_files/cyberiad/cyberiad.dmm +++ b/_maps/map_files/cyberiad/cyberiad.dmm @@ -393,8 +393,8 @@ "ahC" = (/obj/structure/table,/obj/item/weapon/paper,/obj/item/weapon/pen,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/security/permabrig) "ahD" = (/obj/structure/stool/bed,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/plating,/area/security/permabrig) "ahE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/security/permabrig) -"ahF" = (/obj/item/weapon/restraints/handcuffs/pinkcuffs,/turf/simulated/floor/plating,/area/security/permabrig) -"ahG" = (/obj/item/clothing/mask/muzzle/gag,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/plating,/area/security/permabrig) +"ahF" = (/turf/space,/area/shuttle/gamma/station) +"ahG" = (/obj/item/clothing/mask/muzzle/gag,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/plating,/area/space) "ahH" = (/obj/machinery/deployable/barrier,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 9},/area/security/armoury) "ahI" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/shuttle/plating/vox,/area/shuttle/vox) "ahJ" = (/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id_tag = "voxshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/shuttle/window{tag = "icon-window5_end (EAST)"; icon = 'icons/turf/shuttle.dmi'; icon_state = "window5_end"; dir = 4},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox) @@ -737,7 +737,7 @@ "aoi" = (/obj/effect/landmark/start{name = "Brig Physician"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/security/medbay) "aoj" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/plasteel{tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8},/area/security/medbay) "aok" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/security/medbay) -"aol" = (/turf/simulated/floor/plasteel,/area/shuttle/gamma/station) +"aol" = (/obj/item/weapon/restraints/handcuffs/pinkcuffs,/turf/simulated/floor/plating,/area/space) "aom" = (/turf/simulated/wall,/area/security/prisonlockers) "aon" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/security/medbay) "aoo" = (/obj/structure/table/glass,/obj/machinery/computer/med_data/laptop,/turf/simulated/floor/plasteel{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/security/medbay) @@ -2610,6 +2610,7 @@ "aYj" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel,/area/bridge) "aYk" = (/obj/machinery/door/window/eastright{name = "Coroner Office"; req_access_txt = "5"},/turf/simulated/floor/plasteel,/area/medical/morgue) "aYl" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay2) +"aYm" = (/turf/simulated/floor/plating,/area/space) "aYn" = (/obj/machinery/atmospherics/pipe/simple/hidden/universal,/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aYo" = (/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes/stokcubes,/obj/item/weapon/storage/box/monkeycubes/neaeracubes,/obj/structure/table/glass,/obj/item/weapon/storage/box/monkeycubes/wolpincubes,/obj/item/weapon/storage/box/monkeycubes/farwacubes,/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/plasteel{tag = "icon-whitepurple (SOUTHEAST)"; icon_state = "whitepurple"; dir = 6},/area/medical/genetics) "aYp" = (/obj/machinery/ai_status_display{pixel_y = 32},/obj/machinery/computer/card/minor/rd,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/crew_quarters/hor) @@ -9042,18 +9043,18 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNagkagjagmaglagoagnagqagpagragrafsagsagsaftagsagvabNaabaabaabaabaabaaaaaaaaaaabaaaafOafXafXafOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiCaiDaiEaiFaiGaiHagwahZagZahZagZahZagwaiIaiJaiKaiLaiDaiMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNagMagLagNagOagPagQafvafuafUafwafUafVafYafWagPagWabNaaaaaaaabaaaaabaabaivaivaivaivaaaafOafXafXafOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahJaiDahaahaahaajdagwahaahaahaahaahaagwahaahaajeahaaiDahMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNabNabNabNabNabNahjahkabNabNabNabNabNabNabNagtagtagtagtagtagtagtaaaaguaivagSagRaivaguaaaafOafXafXagUagTagTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagwajzajAajBajCajDagwajEahaahaahaajFagwajGahaajHajIajzagwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNagVahDahCabNahEaigacWahGahFabNaaaaaaaaaagtahHahRagtahTahSagtaaaaivahUahVahVahWaivaaaaaaafOafXagTahXahYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagwajYajYagZagZagZagwajZahaahaahaakaagwagZagZagZajYajYagwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNaiaaicaibaieaidaitabNabNabNabNabNabNabNagtaifaijaiiainaikagtaaaaivaioaiqaipairaivaaaaaaaaaagTagTaisagTagTagTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahsakpakpahnaaaaaaagwakqahaahaahaakragwaaaaaaahsakpakpahnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahQahQahQahQahQahQajJaiuabNaolaolaolaolaolaolagtaiwaiyaixannaizagtaivaivaiAaiNaiBaiOaivaivaaaaabagTaiQaiPaiSaiRagTaaaanHaiTaiVaiUanHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagwakAahaahaahaakragwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahQahQahQahQaiZaiXajfajaahQahEaigabNaolaolaolaolaolaolagtajgajiajhajlajkajnajmajpajoajrajqajLajKaivaaaajMagTajOajNajQajPanAanHanHajRajTajSanHanHaihaihaihaihaihaihaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagwakRakPahZakRakPagwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajWajUakcakbakeakdakhakgahQakiaitalcaolaolaolaolaolaolajnakjanWakkannanWaklajjajjakmajjaksakwaktaivaabaabagTakCakxakEakDanAakFakGaoJaoJakHakJakIakvakKakMakLakNaihaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvalvalvalwalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagwalxalyahaalzalAagwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajWakOakSakQakVakTalaakYaldalbaitaleaolaolaolaolaolaolagtalfalgakkalialhajnaljallalkalnalmakfakuaivanHanHanAanAanAanAaloanAalpalralqalualtalFalCalGaiYaiYaiYalHaihaihaaaaaaaaaajbajbajbajbajbajbajbalIalJaaaabpaaaaaaalvaaaaabaaaamhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagwamiamjahaamkamlagwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajWalKalMalLalOalNalQalPahQalRalSalcaolaolaolaolaolaolagtagtalUalTapPagtagtalValWaivalYalXalZaivaivanHambamaamdamcamfameanAamgaoJammampamnalFamqamrajVamvamsamuamtaihaaaaaaaaaajbajsajtajvajuajwajxajyaaaaaaaaaaaaaaaamWaabamUaabamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahsagZamYamZanaagZahnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahQahQaqqahQahQahQahQahQahQamwaigapFapFapFapFapFapFapFapFamxamzamyamzamAamCamBamEamDamGamFamIamHamJauiaoJamKamKamKamKamLakIaoJapmamMamOamNamQamPamTamSanbamXandancaneaaaaaaaaaajbajXajwajwajwajwajxajyaaaaaaaaaaaaamWalvaaaanGaaaalvamWamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahsagZagZagZahnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanfangaomanianhankanjanlajJanmapGanpanoanranqantansapFanuanwanvanzanyanCanBanEanDanIanFanJanJanJanKaoJanLanNanManPanOanQaofaofanRanTanSalFanUanVajVajVanXanZanYaoaaaaaaaaaaajbaknajwakoajwajwajxajyaaaaaaaaaaaaamWaabaabanGaabaabaabamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwalwalvalwalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanfangaomaocaobaoeaodaohaogaitapGaojaoiaonaokaopaooapFaoqaosaoraouaotaowaovaoxalWaozaoyaoBaoAaoDaoCaoJaoEaoGaoFaoFaoHaoLaoIaoIaoMaoPaoNalFaoQaoRaiYaiYaiYaoTaoSaihaabaaaaaaajbakyajwajwajwajwakzajyaaaaaaaaaaaaamWaaaaaaaoKaaaaaaaaaamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwaaaaabaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanfaoUaomaoValEaoXaoWanlajJaigapGaoZaoYapbapaapdapcapFapeapgapfaphamyapjapiapkapSapAaplapCapBapEapDapIapHapJapJapLapKapNapMapOaoJapQaoJapRapNapTaiYapVapUapXapWaihaaaaabaabajbapYaqaapZaqcaqbajbalIaqeaaaaaaaaaamWaabappapnapqaabaabamWamWamWamWamWamWaqpamWamWamWamWamWamWamWamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapsaprapuaptapwapraprapxapraprapvaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaabapyaabalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakBakBakBakBaslakWakZaomaomaomaomakUaqsapFapGapGapGaqtaquapGapFaqvalUaqwaqwalTaqxaqxapPapSapSaqyaqzapSapSapSanAaqAaqCaqBanxanAanAaqAaqDanxaqFaqEanxanAaqGaqGaqGaqGaqHaihaihaqIaqIaqIaqIajbalsaqJaqKalsajbaabaaaaaaaaaaaaamWaaaappaqdapqaaaaaaaabaabaabaabaabaabaabaabaqLaabaabaabaaaaaaamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNagVahDahCabNahEaigabNahFahFahFahFahFahFagtahHahRagtahTahSagtaaaaivahUahVahVahWaivaaaaaaafOafXagTahXahYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagwajYajYagZagZagZagwajZahaahaahaakaagwagZagZagZajYajYagwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNaiaaicaibaieaidaitabNahFahFahFahFahFahFagtaifaijaiiainaikagtaaaaivaioaiqaipairaivaaaaaaaaaagTagTaisagTagTagTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahsakpakpahnaaaaaaagwakqahaahaahaakragwaaaaaaahsakpakpahnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahQahQahQahQahQahQajJaiuabNahFahFahFahFahFahFagtaiwaiyaixannaizagtaivaivaiAaiNaiBaiOaivaivaaaaabagTaiQaiPaiSaiRagTaaaanHaiTaiVaiUanHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagwakAahaahaahaakragwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahQahQahQahQaiZaiXajfajaahQahEaigabNahFahFahFahFahFahFagtajgajiajhajlajkajnajmajpajoajrajqajLajKaivaaaajMagTajOajNajQajPanAanHanHajRajTajSanHanHaihaihaihaihaihaihaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagwakRakPahZakRakPagwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajWajUakcakbakeakdakhakgahQakiaitalcahFahFahFahFahFahFajnakjanWakkannanWaklajjajjakmajjaksakwaktaivaabaabagTakCakxakEakDanAakFakGaoJaoJakHakJakIakvakKakMakLakNaihaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvalvalvalwalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagwalxalyahaalzalAagwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajWakOakSakQakVakTalaakYaldalbaitaleahFahFahFahFahFahFagtalfalgakkalialhajnaljallalkalnalmakfakuaivanHanHanAanAanAanAaloanAalpalralqalualtalFalCalGaiYaiYaiYalHaihaihaaaaaaaaaajbajbajbajbajbajbajbalIalJaaaabpaaaaaaalvaaaaabaaaamhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagwamiamjahaamkamlagwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajWalKalMalLalOalNalQalPahQalRalSalcahFahFahFahFahFahFagtagtalUalTapPagtagtalValWaivalYalXalZaivaivanHambamaamdamcamfameanAamgaoJammampamnalFamqamrajVamvamsamuamtaihaaaaaaaaaajbajsajtajvajuajwajxajyaaaaaaaaaaaaaaaamWaabamUaabamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahsagZamYamZanaagZahnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahQahQaqqahQahQahQahQahQahQamwaigapFapFapFapFapFapFapFapFamxamzamyamzamAamCamBamEamDamGamFamIamHamJauiaoJamKamKamKamKamLakIaoJapmamMamOamNamQamPamTamSanbamXandancaneaaaaaaaabajbajXajwajwajwajwajxajyaaaaaaaaaaaaamWalvaaaanGaaaalvamWamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahsagZagZagZahnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanfangaomanianhankanjanlajJanmapGanpanoanranqantansapFanuanwanvanzanyanCanBanEanDanIanFanJanJanJanKaoJanLanNanManPanOanQaofaofanRanTanSalFanUanVajVajVanXanZanYaoaaaaaabaabajbaknajwakoajwajwajxajyaaaaaaaaaaaaamWaabaabanGaabaabaabamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwalwalvalwalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanfangaomaocaobaoeaodaohaogaitapGaojaoiaonaokaopaooapFaoqaosaoraouaotaowaovaoxalWaozaoyaoBaoAaoDaoCaoJaoEaoGaoFaoFaoHaoLaoIaoIaoMaoPaoNalFaoQaoRaiYaiYaiYaoTaoSaihaoOaoOaoOajbakyajwajwajwajwakzajyaaaaaaaaaaaaamWaaaaaaaoKaaaaaaaaaamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwaaaaabaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanfaoUaomaoValEaoXaoWanlajJaigapGaoZaoYapbapaapdapcapFapeapgapfaphamyapjapiapkapSapAaplapCapBapEapDapIapHapJapJapLapKapNapMapOaoJapQaoJapRapNapTaiYapVapUapXapWaihahGaYmaolajbapYaqaapZaqcaqbajbalIaqeaaaaaaaaaamWaabappapnapqaabaabamWamWamWamWamWamWaqpamWamWamWamWamWamWamWamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapsaprapuaptapwapraprapxapraprapvaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaabapyaabalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakBakBakBakBaslakWakZaomaomaomaomakUaqsapFapGapGapGaqtaquapGapFaqvalUaqwaqwalTaqxaqxapPapSapSaqyaqzapSapSapSanAaqAaqCaqBanxanAanAaqAaqDanxaqFaqEanxanAaqGaqGaqGaqGaqHaihaihaqIaucaqIaqIajbalsaqJaqKalsajbaabaaaaaaaaaaaaamWaaaappaqdapqaaaaaaaabaabaabaabaabaabaabaabaqLaabaabaabaaaaaaamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfaqhaqiaqgaqkaqlaqlaqlaqmaqjaqoaaaaaaaaaalwalwalwalvalvaabaabaaaaqnaaaaabaabalvalvalwalwalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakBakXaqraqMaqNaqraqOapzaqQaqPakWaqRaqSaqXaqVaqUaqXaqWariaqYarjaqXaqXaqXaqXarkaqXaqXaqXarlarnarmarparoarrarqarsarsarsartarsaruarwarvarxaqXaryaqWaqXarzarBarAarCaqXariaqXaqXarDarEaqVaqXarFarHarGarJarIajbaabaaaaaaaaaaaaamWaaaappaqdapqaaaaaaaabaqZaraaraaraaraarbaraaraaraaraarcaabaaaamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaardaqhareargaqlarharharharharharfaaaaaaaaaalwaaaaaaaabaaaaabaaaaaaaqnaaaaaaaabaaaaabaaaaaaalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakBalDarKalDarLalDarNarMarParOarRaqTarSarQasdascaseaseasfaseasgaseaseaseasiashasiasjasiasiassaskasnasmaspasoasoasoasoasqasoasoasoasrastasAasvasuasxaswaszasyasAasAasCasBasBasDasEasEasEasFasHasGasIamRamVaaaaaaaaaaaaaaaamWaabappaqdapqaaaaaaaabarUaabaaaaaaaabarUaabaabaaaaaaarUaabaaaamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarVaqharWarYarharharharharZasaaqoaaaaaaaaaalwaabarXarXarXarXarXaaaasbaaaarXarXarXarXarXaabalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakBamoasYasXasZasYasYataatbalBakWaryatgatgatgatfatiathatkatjatmatlatnatjatpatoatratqatratsatuattatwatvatyatxatAatzatCatBatEatDatAatOatRatQaFLaFLaFLaFLaFLaFLaFLaxeatSatSatSatTatSatSatSarFatVatUatXatWajbaaaaaaaaaaaaaabamWaaaappaqdapqaabaabappapnapqaabaabappapnapqaabaabappapnapqaabamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/_maps/map_files/cyberiad/z2.dmm b/_maps/map_files/cyberiad/z2.dmm index 79d5bede9fd..318f9986fe0 100644 --- a/_maps/map_files/cyberiad/z2.dmm +++ b/_maps/map_files/cyberiad/z2.dmm @@ -152,7 +152,7 @@ "cV" = (/obj/structure/flora/ausbushes/brflowers,/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/centcom/specops) "cW" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/centcom/specops) "cX" = (/obj/structure/flora/ausbushes/reedbush,/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/centcom/specops) -"cY" = (/obj/structure/closet/secure_closet/guncabinet,/obj/item/ammo_box/shotgun/buck,/obj/item/ammo_box/shotgun/buck,/obj/item/ammo_box/shotgun/buck,/obj/item/weapon/gun/projectile/shotgun/automatic/combat,/obj/item/weapon/gun/projectile/shotgun/automatic/combat,/obj/item/weapon/gun/projectile/shotgun/automatic/combat,/turf/simulated/floor/engine,/area/shuttle/gamma/space) +"cY" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/shuttle/gamma/space) "cZ" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/mousetraps,/obj/item/weapon/storage/box/trackimp,/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/admin) "da" = (/obj/structure/table/reinforced,/obj/item/weapon/scalpel,/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/admin) "db" = (/turf/simulated/floor/holofloor{tag = "icon-carpet2-0 (EAST)"; icon_state = "carpet2-0"; dir = 4},/area/holodeck/source_theatre) @@ -756,25 +756,25 @@ "oB" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (WEST)"; icon_state = "fakewindows"; dir = 8},/area/syndicate_mothership) "oC" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (EAST)"; icon_state = "fakewindows"; dir = 4},/area/syndicate_mothership) "oD" = (/turf/unsimulated/floor/snow,/obj/structure/flora/bush,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (WEST)"; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership) -"oE" = (/obj/structure/closet/secure_closet/guncabinet,/obj/item/weapon/gun/energy/gun/nuclear,/obj/item/weapon/gun/energy/gun/nuclear,/obj/item/weapon/gun/energy/gun/nuclear,/obj/machinery/light{dir = 1},/turf/simulated/floor/engine,/area/shuttle/gamma/space) -"oF" = (/obj/structure/closet/secure_closet/guncabinet,/obj/item/ammo_box/magazine/m10mm,/obj/item/ammo_box/magazine/m10mm,/obj/item/ammo_box/magazine/m10mm,/obj/item/weapon/gun/projectile/automatic/pistol{name = "pistol"},/obj/item/weapon/gun/projectile/automatic/pistol{name = "pistol"},/obj/item/weapon/gun/projectile/automatic/pistol{name = "pistol"},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/engine,/area/shuttle/gamma/space) -"oG" = (/obj/structure/closet/secure_closet/guncabinet,/obj/item/ammo_casing/rocket,/obj/item/ammo_casing/rocket,/obj/item/ammo_casing/rocket,/obj/item/weapon/gun/rocketlauncher,/obj/machinery/ai_status_display{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/engine,/area/shuttle/gamma/space) +"oE" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"; dir = 2},/area/shuttle/gamma/space) +"oF" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/shuttle/gamma/space) +"oG" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/shuttle/gamma/space) "oH" = (/obj/structure/table,/obj/item/weapon/storage/fancy/crayons,/obj/item/weapon/storage/fancy/crayons,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) "oI" = (/obj/machinery/washing_machine,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) -"oJ" = (/obj/structure/table/reinforced,/obj/item/weapon/grenade/clusterbuster,/turf/simulated/floor/engine,/area/shuttle/gamma/space) +"oJ" = (/obj/structure/closet/secure_closet/guncabinet,/obj/item/ammo_box/magazine/m10mm,/obj/item/ammo_box/magazine/m10mm,/obj/item/ammo_box/magazine/m10mm,/obj/item/weapon/gun/projectile/automatic/pistol{name = "pistol"},/obj/item/weapon/gun/projectile/automatic/pistol{name = "pistol"},/obj/item/weapon/gun/projectile/automatic/pistol{name = "pistol"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space) "oK" = (/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/centcom/gamma) "oL" = (/turf/unsimulated/floor{tag = "icon-red (EAST)"; icon_state = "red"; dir = 4},/area/centcom/gamma) "oM" = (/obj/machinery/door/airlock/centcom{name = "Team Storage"; opacity = 1; req_access_txt = "109"},/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/specops) -"oN" = (/obj/machinery/power/apc{dir = 8; name = "Gamma Armory APC"; pixel_x = -27; pixel_y = 2},/obj/structure/cable{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/engine,/area/shuttle/gamma/space) +"oN" = (/obj/structure/closet/secure_closet/guncabinet,/obj/item/ammo_box/shotgun/buck,/obj/item/ammo_box/shotgun/buck,/obj/item/ammo_box/shotgun/buck,/obj/item/weapon/gun/projectile/shotgun/automatic/combat,/obj/item/weapon/gun/projectile/shotgun/automatic/combat,/obj/item/weapon/gun/projectile/shotgun/automatic/combat,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/light/spot{tag = "icon-tube1 (WEST)"; icon_state = "tube1"; dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space) "oO" = (/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) -"oP" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/engine,/area/shuttle/gamma/space) +"oP" = (/obj/structure/closet/secure_closet/guncabinet,/obj/item/weapon/gun/energy/sniperrifle,/obj/item/weapon/gun/energy/sniperrifle,/obj/item/weapon/gun/energy/sniperrifle,/obj/machinery/light/spot{tag = "icon-tube1 (EAST)"; icon_state = "tube1"; dir = 4},/obj/machinery/ai_status_display{pixel_y = 32},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space) "oQ" = (/obj/machinery/vending/syndisnack,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "oR" = (/obj/machinery/vending/syndicigs,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "oS" = (/obj/structure/table/woodentable{dir = 10},/obj/machinery/door_control{desc = "A remote control switch to block view of the singularity."; icon_state = "doorctrl0"; id = "SPECOPS"; name = "Ready Room"; pixel_x = 6; pixel_y = 6; req_access_txt = "114"},/obj/machinery/door_control{desc = "A remote control switch to block view of the singularity."; icon_state = "doorctrl0"; id = "ASSAULT"; name = "Assault Armor"; pixel_x = -6; pixel_y = 6; req_access_txt = "114"},/obj/machinery/door_control{desc = "A remote control switch to block view of the singularity."; icon_state = "doorctrl0"; id = "specopsoffice"; name = "Privacy Shutters"; pixel_x = 6; pixel_y = -6; req_access_txt = "114"},/obj/machinery/door_control{desc = "A remote control switch to block view of the singularity."; icon_state = "doorctrl0"; id = "CCGAMMA"; name = "Gamma Lockdown"; pixel_x = -6; pixel_y = -6; req_access_txt = "114"},/turf/unsimulated/floor{dir = 8; icon_state = "carpetside"},/area/centcom/specops) "oT" = (/turf/simulated/floor/plasteel{icon_state = "red"},/area/centcom/gamma) "oU" = (/turf/simulated/floor/plasteel{icon_state = "red"; dir = 10},/area/centcom/gamma) "oV" = (/turf/simulated/floor/plasteel{icon_state = "red"; dir = 6},/area/centcom/gamma) -"oW" = (/obj/structure/sign/securearea,/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/shuttle/gamma/space) +"oW" = (/obj/structure/closet/secure_closet/guncabinet,/obj/item/weapon/gun/energy/gun/nuclear,/obj/item/weapon/gun/energy/gun/nuclear,/obj/item/weapon/gun/energy/gun/nuclear,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space) "oX" = (/obj/machinery/door/airlock/centcom{name = "Prison"; opacity = 1; req_access_txt = "104"},/turf/unsimulated/floor{icon_state = "bot"},/area/centcom/specops) "oY" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/flora/ausbushes,/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/centcom/specops) "oZ" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/flora/ausbushes/fernybush,/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/centcom/specops) @@ -783,20 +783,21 @@ "pc" = (/mob/living/simple_animal/pet/fox/Syndifox,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "pd" = (/obj/effect/decal/warning_stripes/southeastcorner,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "pe" = (/obj/effect/decal/warning_stripes/south,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) -"pf" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/shuttle/gamma/space) -"pg" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/shuttle/gamma/space) -"ph" = (/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/plasteel{icon_state = "dark"},/area/shuttle/gamma/space) -"pi" = (/obj/structure/cable,/obj/machinery/mech_bay_recharge_port/upgraded,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/shuttle/gamma/space) -"pj" = (/obj/structure/cable,/obj/machinery/computer/mech_bay_power_console,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/shuttle/gamma/space) -"pk" = (/obj/mecha/combat/durand/loaded{operation_req_access = list(1)},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/shuttle/gamma/space) +"pf" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space) +"pg" = (/obj/machinery/recharger/wallcharger{pixel_x = -24},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space) +"ph" = (/obj/machinery/recharger/wallcharger{pixel_x = 32},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space) +"pi" = (/obj/machinery/door/airlock/shuttle{req_access_txt = "114"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space) +"pj" = (/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space) +"pk" = (/obj/structure/closet/secure_closet/guncabinet,/obj/item/ammo_casing/rocket,/obj/item/ammo_casing/rocket,/obj/item/ammo_casing/rocket,/obj/item/weapon/gun/rocketlauncher,/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space) "pl" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "pm" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/cans/beer{pixel_x = -2; pixel_y = 5},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) -"pn" = (/obj/structure/table/reinforced,/obj/item/weapon/kitchen/knife/combat,/obj/item/weapon/kitchen/knife/combat,/obj/item/weapon/kitchen/knife/combat,/turf/simulated/floor/engine,/area/shuttle/gamma/space) -"po" = (/obj/structure/table/reinforced,/obj/item/weapon/grenade/chem_grenade/incendiary{name = "Incendiary Grenade"},/turf/simulated/floor/engine,/area/shuttle/gamma/space) +"pn" = (/obj/machinery/door/airlock/shuttle,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space) +"po" = (/obj/structure/table/reinforced,/obj/item/weapon/grenade/clusterbuster,/obj/item/weapon/grenade/chem_grenade/incendiary{name = "Incendiary Grenade"},/obj/item/weapon/kitchen/knife/combat,/obj/item/weapon/kitchen/knife/combat,/obj/item/weapon/kitchen/knife/combat,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space) "pp" = (/obj/machinery/computer/telecrystals/uplinker,/turf/unsimulated/floor{icon_state = "floor4"},/area/syndicate_mothership) "pq" = (/obj/machinery/camera{c_tag = "CentComm Special Ops. Bathroom"; dir = 2; network = list("ERT","CentComm")},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops) "pr" = (/obj/machinery/door/airlock/centcom{name = "Bathroom"; opacity = 1; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "ps" = (/obj/machinery/telecomms/server/presets/centcomm,/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/control) +"pt" = (/obj/mecha/combat/durand/loaded{operation_req_access = list(1)},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space) "pu" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (NORTHWEST)"; icon_state = "fakewindows"; dir = 9},/area/syndicate_mothership) "pv" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows2 (WEST)"; icon_state = "fakewindows2"; dir = 8},/area/syndicate_mothership) "pw" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/mushroompizzaslice{pixel_x = -5; pixel_y = 5},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) @@ -806,6 +807,7 @@ "pA" = (/obj/machinery/light,/turf/unsimulated/floor{icon_state = "floor"},/area/syndicate_mothership) "pB" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{dir = 4; pixel_x = 32; pixel_y = 0},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops) "pC" = (/obj/machinery/door/poddoor{id_tag = "nukeop_ready"; name = "Shuttle Dock Door"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"pD" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/shuttle/gamma/space) "pE" = (/obj/structure/stool/bed,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "pF" = (/turf/unsimulated/wall/fakeglass,/area/syndicate_mothership) "pG" = (/obj/structure/toilet{dir = 8},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops) @@ -890,16 +892,10 @@ "rh" = (/obj/structure/toilet{dir = 8},/turf/unsimulated/floor{icon_state = "platingdmg1"},/area/centcom) "ri" = (/obj/structure/toilet{dir = 8},/turf/unsimulated/floor{icon_state = "floorscorched2"},/area/centcom) "rj" = (/obj/structure/rack,/obj/item/weapon/implanter/adrenalin{pixel_x = 12; pixel_y = -12},/obj/item/weapon/implanter/emp{pixel_x = 9; pixel_y = -9},/obj/item/weapon/implanter/explosive{pixel_x = 6; pixel_y = -6},/obj/item/weapon/implanter/explosive_macro{pixel_x = 3; pixel_y = -3},/obj/item/weapon/implanter/freedom,/obj/item/weapon/implanter/krav_maga{pixel_x = -9; pixel_y = 9},/obj/item/weapon/implanter/mindshield{pixel_x = -6; pixel_y = 6},/obj/item/weapon/implanter/storage{pixel_x = -3; pixel_y = 3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) +"rk" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/shuttle/gamma/space) "rE" = (/turf/unsimulated/wall,/area/start) "rH" = (/obj/effect/landmark/start,/turf/unsimulated/floor,/area/start) "rK" = (/turf/unsimulated/wall/splashscreen,/area/start) -"rV" = (/obj/structure/closet/secure_closet/guncabinet,/obj/item/weapon/gun/energy/sniperrifle,/obj/item/weapon/gun/energy/sniperrifle,/obj/item/weapon/gun/energy/sniperrifle,/turf/simulated/floor/engine,/area/shuttle/gamma/space) -"rX" = (/turf/simulated/floor/engine,/area/shuttle/gamma/space) -"sa" = (/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/shuttle/gamma/space) -"sb" = (/turf/simulated/floor/plasteel{tag = "icon-stage_stairs"; icon_state = "stage_stairs"},/area/shuttle/gamma/space) -"se" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel{tag = "icon-stage_stairs"; icon_state = "stage_stairs"},/area/shuttle/gamma/space) -"sg" = (/turf/simulated/floor/plasteel{icon_state = "dark"},/area/shuttle/gamma/space) -"sm" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/table/reinforced,/obj/machinery/recharger{pixel_y = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/shuttle/gamma/space) "sq" = (/turf/unsimulated/wall,/area/centcom/control) "sr" = (/obj/structure/table,/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) "ss" = (/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) @@ -1619,14 +1615,14 @@ aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNthtitititititititItktitititItJtmtntdtdtdsqtKtLtMedtFtFtFtFtFeesqsusxsusqsusususususususqsqfLsqsqsqsqsqsqsqsqsqsqsqsqsqsqfXaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNsXsXsXsXsXsXsXsXsXsXsXsXsXtatttutdtdtdsqsqeWeVsqeWeVsqsqsqsqsqtQtRtStTtTtTtTtTtTtTtTtTuEtRtZsqfXaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNthtitititititititVtktitititVtWtXtYtdtdtdsXaNaNaNaNaNaNsXfecoflsqtQtRtRtRtRtRtRtRtRtRtRtRtRtRtZsqaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmfmfmfmfmfmfmfmfmfmsXsXsXsXsXsXuaubsXsXsXsXsXsXsXsXsXfeujflsqtQtRucudududududududududuetRtZsqaNaNoeodododododododofaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmfofnfqfpfsfrfnfEfmufuguguhuiujujujsXukukukukulukumunfeujflsqtQtRtZsususususususususutQtRtZsqaNaNohogojoioioioiokohaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmfmfmfmfmfmfmfmjHfFkdkdkdkdfFlZmdujujujujujujujujuqururururururussXfeujflsqtQtRtZsuutuuuvuwuxuyuzsutQtRtZsqaNaNohogogogogogogogohaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmcYoFoErVoGoJfmoKkdkdkdkdkdkdoLmdujujujujujujujujsXuAuBuBuBuBuBuCsXsXoMsXsquEtRtSsuuFtRuGuHtRtRtRsuuEtRtZsqsqsqohogogogogogogogohaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmoNoPrXrXrXrXfdoUoToToToToToToVfdujujujuIuIujujujuJuKuKuKuKuKuKuKuLuKuKuKuMtRtRtRuNtRtRtRtRtRtRtRuNtRtRtZoltRolomogogogogogogogohaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmsasesbsbsaoWfmfmfmfmfmfmfmfmfmfmujujuOuPuQuRujuSsXsXuTuUuTsXsXoXsXoZoYpbsquetRucsutRtRtRtRtRtRtRsuuetRtZsqsqsqohogogogogogogogohaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmpfphpgsgsgsgfmaNaNaNaNaNaNaNaNsXujuXuRooonvavbujvcvdvdvdvdvesXuKsXsXsXsXsqtQtRtZsuvfuuvgvgvgvhvisutQtRtZsqaNaNohogogogogogogogohaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmpipkpjsmpnpofmaNaNaNaNsXuWuWsXsXujujvauRvmuRujujvnvdvovpvqvdsXuKsXvrtTtUsqtQtRtZsqsqvsvtvuvvvwsqsqtQtRtZsqaNaNohogogogopogogogohaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmfmfmfmfmfmfmfmfmfmfmfmfmfmfmfmfmsXsXsXsXsXsXuaubsXsXsXsXsXsXsXsXsXfeujflsqtQtRucudududududududududuetRtZsqaNaNoeodododododododofaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmcYoEoEoEoEoFfmfofnfqfpfsfrfnfEfmufuguguhuiujujujsXukukukukulukumunfeujflsqtQtRtZsususususususususutQtRtZsqaNaNohogojoioioioiokohaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmoGoNoJoWoPoGfmjHfFkdkdkdkdfFlZmdujujujujujujujujuqururururururussXfeujflsqtQtRtZsuutuuuvuwuxuyuzsutQtRtZsqaNaNohogogogogogogogohaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmoGpgpfpfphoGfmoKkdkdkdkdkdkdoLmdujujujujujujujujsXuAuBuBuBuBuBuCsXsXoMsXsquEtRtSsuuFtRuGuHtRtRtRsuuEtRtZsqsqsqohogogogogogogogohaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmoGpfpfpfpfpifdoUoToToToToToToVfdujujujuIuIujujujuJuKuKuKuKuKuKuKuLuKuKuKuMtRtRtRuNtRtRtRtRtRtRtRuNtRtRtZoltRolomogogogogogogogohaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmoGpjpfpfpkoGfmfmfmfmfmfmfmfmfmfmujujuOuPuQuRujuSsXsXuTuUuTsXsXoXsXoZoYpbsquetRucsutRtRtRtRtRtRtRsuuetRtZsqsqsqohogogogogogogogohaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmpnpfpopfptoGfmaNaNaNaNaNaNaNaNsXujuXuRooonvavbujvcvdvdvdvdvesXuKsXsXsXsXsqtQtRtZsuvfuuvgvgvgvhvisutQtRtZsqaNaNohogogogogogogogohaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmpDoEoEoEoErkfmaNaNaNaNsXuWuWsXsXujujvauRvmuRujujvnvdvovpvqvdsXuKsXvrtTtUsqtQtRtZsqsqvsvtvuvvvwsqsqtQtRtZsqaNaNohogogogopogogogohaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmfmfmfmfmfmfmfmaNaNaNaNsXvkvkpqprujujujvyvyujujujvzvdvAvBvCbesXuKsqpstRtRvFtRtRtZsqsqsusususususqsqtQtRtZsqaNaNoqodododododododoraNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNsXvkvkvksXvIvJujujujujvLujsXvdoSmjeTvPsXuKsqvQtRtZsutQtRtStTtTtTtTtTtTtTtTtTuEtRtZsqaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNsXvkpBsXsXsXsXsXsXbfbfsXsXsXvSvTvUvVvdsXuKsqvWtRvXsutQtRtRtRtRtRtRtRtRtRtRtRtRtRtZsqaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index d7de6dd6844..8925e06b2e3 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -909,12 +909,6 @@ var/gamma_ship_location = 1 // 0 = station , 1 = space toArea = locate(/area/shuttle/gamma/space) fromArea.move_contents_to(toArea) - for(var/obj/machinery/power/apc/A in toArea) - A.init() - - for(var/obj/machinery/alarm/A in toArea) - A.first_run() - if(gamma_ship_location) gamma_ship_location = 0 else From fea7e56d637ba9c290a4772fae7622e092d1ea42 Mon Sep 17 00:00:00 2001 From: Kyep Date: Tue, 13 Jun 2017 23:09:50 -0700 Subject: [PATCH 027/123] Requests on the PR --- _maps/map_files/cyberiad/cyberiad.dmm | 21 ++++++++++++--------- _maps/map_files/cyberiad/z2.dmm | 21 +++++++++++++-------- code/game/mecha/mech_bay.dm | 3 +++ code/modules/admin/admin.dm | 6 ++++++ 4 files changed, 34 insertions(+), 17 deletions(-) diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm index 75a171a30f7..1dad73fe90e 100644 --- a/_maps/map_files/cyberiad/cyberiad.dmm +++ b/_maps/map_files/cyberiad/cyberiad.dmm @@ -395,7 +395,7 @@ "ahE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/security/permabrig) "ahF" = (/turf/space,/area/shuttle/gamma/station) "ahG" = (/obj/item/clothing/mask/muzzle/gag,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/plating,/area/space) -"ahH" = (/obj/machinery/deployable/barrier,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 9},/area/security/armoury) +"ahH" = (/obj/machinery/deployable/barrier,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 9},/area/security/armoury) "ahI" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/shuttle/plating/vox,/area/shuttle/vox) "ahJ" = (/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id_tag = "voxshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/shuttle/window{tag = "icon-window5_end (EAST)"; icon = 'icons/turf/shuttle.dmi'; icon_state = "window5_end"; dir = 4},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox) "ahK" = (/obj/machinery/light/spot,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox) @@ -419,10 +419,10 @@ "aic" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5; level = 1},/obj/machinery/alarm{dir = 1; pixel_y = -24},/turf/simulated/floor/plating,/area/security/permabrig) "aid" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/security/permabrig) "aie" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Prison Gate"; name = "Prison Blast Doors"; opacity = 0},/obj/machinery/door/airlock/glass_security{name = "Solitary Confinement"; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/security/permabrig) -"aif" = (/obj/machinery/deployable/barrier,/obj/structure/window/reinforced{dir = 8},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 10},/area/security/armoury) +"aif" = (/obj/machinery/deployable/barrier,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 10},/area/security/armoury) "aig" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/security/permabrig) "aih" = (/turf/simulated/wall/r_wall,/area/security/hos) -"aii" = (/obj/structure/table,/obj/effect/decal/warning_stripes/red/hollow,/obj/item/weapon/storage/toolbox/mechanical,/obj/item/device/lock_buster,/obj/machinery/light{dir = 1; on = 1},/obj/item/device/radio/intercom{broadcasting = 0; name = "station intercom (General)"; pixel_y = 25},/turf/simulated/floor/plasteel,/area/security/armoury) +"aii" = (/obj/structure/table,/obj/effect/decal/warning_stripes/red/hollow,/obj/item/weapon/storage/toolbox/mechanical,/obj/item/device/lock_buster,/obj/machinery/light{dir = 1; on = 1},/obj/item/device/radio/intercom{broadcasting = 0; name = "station intercom (General)"; pixel_y = 25},/obj/item/weapon/storage/box/chemimp{pixel_x = 4; pixel_y = 3},/obj/item/weapon/storage/box/trackimp,/obj/item/weapon/storage/lockbox/mindshield,/obj/machinery/camera{c_tag = "Brig Armory"; dir = 2; network = list("SS13")},/turf/simulated/floor/plasteel,/area/security/armoury) "aij" = (/obj/machinery/deployable/barrier,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel{dir = 6; icon_state = "red"},/area/security/armoury) "aik" = (/obj/machinery/flasher/portable,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel{dir = 6; icon_state = "red"},/area/security/armoury) "ail" = (/turf/simulated/shuttle/plating/vox,/area/shuttle/vox) @@ -434,7 +434,7 @@ "air" = (/obj/effect/decal/warning_stripes/west,/obj/effect/decal/warning_stripes/east,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/securearmoury) "ais" = (/obj/machinery/door/airlock{name = "Toilet"; req_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/security/vacantoffice{name = "\improper Security Toilet"}) "ait" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/security/permabrig) -"aiu" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/security/permabrig) +"aiu" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/security/permabrig) "aiv" = (/turf/simulated/wall/r_wall,/area/security/securearmoury) "aiw" = (/obj/machinery/power/apc{cell_type = 5000; dir = 8; name = "west bump Important Area"; pixel_x = -24; shock_proof = 0},/obj/structure/cable{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 1},/area/security/armoury) "aix" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plasteel,/area/security/armoury) @@ -472,7 +472,7 @@ "ajd" = (/obj/item/weapon/storage/toolbox/syndicate,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox) "aje" = (/obj/item/weapon/skeleton/r_arm,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox) "ajf" = (/obj/structure/stool/bed,/turf/simulated/floor/plasteel{dir = 8; icon_state = "vault"; tag = "icon-vault (WEST)"},/area/security/execution{name = "\improper Prisoner Transfer Center"}) -"ajg" = (/obj/structure/rack,/obj/item/weapon/storage/box/chemimp{pixel_x = 4; pixel_y = 3},/obj/item/weapon/storage/box/trackimp,/obj/effect/decal/warning_stripes/red/hollow,/obj/item/weapon/storage/lockbox/mindshield,/obj/machinery/light_switch{pixel_x = -25},/obj/machinery/camera{c_tag = "Brig Armory"; dir = 4; network = list("SS13")},/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 1},/area/security/armoury) +"ajg" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/security/permabrig) "ajh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/armoury) "aji" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 101; on = 1; pressure_checks = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/armoury) "ajj" = (/obj/effect/decal/warning_stripes/north,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/securearmoury) @@ -527,7 +527,7 @@ "akg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/execution{name = "\improper Prisoner Transfer Center"}) "akh" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/universal{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/execution{name = "\improper Prisoner Transfer Center"}) "aki" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/security/permabrig) -"akj" = (/obj/structure/rack,/obj/item/weapon/storage/box/seccarts{pixel_x = 3; pixel_y = 2},/obj/item/weapon/storage/box/handcuffs,/obj/item/weapon/storage/box/flashbangs{pixel_x = -2; pixel_y = -2},/obj/item/weapon/storage/box/handcuffs,/obj/effect/decal/warning_stripes/red/hollow,/obj/item/weapon/storage/box/teargas{pixel_x = -3; pixel_y = -3},/obj/machinery/light{dir = 8},/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 1},/area/security/armoury) +"akj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/security/permabrig) "akk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/armoury) "akl" = (/obj/machinery/door/airlock/security{name = "Warden's office"; req_access = null; req_access_txt = "3"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/armoury) "akm" = (/obj/effect/decal/warning_stripes/northwestcorner,/obj/effect/decal/warning_stripes/northeastcorner,/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/securearmoury) @@ -2685,7 +2685,10 @@ "aZG" = (/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor/plasteel{icon_state = "bluecorner"},/area/hallway/primary/fore) "aZH" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/visible/universal{dir = 4},/obj/machinery/requests_console{department = "Atmospherics"; departmentType = 3; name = "Atmospherics Requests Console"; pixel_y = -30},/obj/item/stack/sheet/glass{amount = 50},/obj/item/clothing/head/welding,/obj/item/clothing/head/welding,/turf/simulated/floor/plasteel,/area/atmos) "aZI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint) +"aZJ" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/security/permabrig) "aZK" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) +"aZL" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/security/permabrig) +"aZM" = (/obj/structure/rack,/obj/item/weapon/storage/box/seccarts{pixel_x = 3; pixel_y = 2},/obj/item/weapon/storage/box/handcuffs,/obj/item/weapon/storage/box/flashbangs{pixel_x = -2; pixel_y = -2},/obj/item/weapon/storage/box/handcuffs,/obj/effect/decal/warning_stripes/red/hollow,/obj/item/weapon/storage/box/teargas{pixel_x = -3; pixel_y = -3},/obj/machinery/light{dir = 8},/obj/machinery/light_switch{pixel_x = -21; pixel_y = 9},/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 1},/area/security/armoury) "aZN" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aZV" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/wood,/area/crew_quarters/bar) "aZW" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) @@ -9045,9 +9048,9 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNabNabNabNabNabNahjahkabNabNabNabNabNabNabNagtagtagtagtagtagtagtaaaaguaivagSagRaivaguaaaafOafXafXagUagTagTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagwajzajAajBajCajDagwajEahaahaahaajFagwajGahaajHajIajzagwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNagVahDahCabNahEaigabNahFahFahFahFahFahFagtahHahRagtahTahSagtaaaaivahUahVahVahWaivaaaaaaafOafXagTahXahYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagwajYajYagZagZagZagwajZahaahaahaakaagwagZagZagZajYajYagwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNaiaaicaibaieaidaitabNahFahFahFahFahFahFagtaifaijaiiainaikagtaaaaivaioaiqaipairaivaaaaaaaaaagTagTaisagTagTagTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahsakpakpahnaaaaaaagwakqahaahaahaakragwaaaaaaahsakpakpahnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahQahQahQahQahQahQajJaiuabNahFahFahFahFahFahFagtaiwaiyaixannaizagtaivaivaiAaiNaiBaiOaivaivaaaaabagTaiQaiPaiSaiRagTaaaanHaiTaiVaiUanHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagwakAahaahaahaakragwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahQahQahQahQaiZaiXajfajaahQahEaigabNahFahFahFahFahFahFagtajgajiajhajlajkajnajmajpajoajrajqajLajKaivaaaajMagTajOajNajQajPanAanHanHajRajTajSanHanHaihaihaihaihaihaihaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagwakRakPahZakRakPagwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajWajUakcakbakeakdakhakgahQakiaitalcahFahFahFahFahFahFajnakjanWakkannanWaklajjajjakmajjaksakwaktaivaabaabagTakCakxakEakDanAakFakGaoJaoJakHakJakIakvakKakMakLakNaihaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvalvalvalwalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagwalxalyahaalzalAagwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahQahQahQahQahQahQaiuaigajgahFahFahFahFahFahFagtaiwaiyaixannaizagtaivaivaiAaiNaiBaiOaivaivaaaaabagTaiQaiPaiSaiRagTaaaanHaiTaiVaiUanHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagwakAahaahaahaakragwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahQahQahQahQaiZaiXajfajaahQakjaZLaZJahFahFahFahFahFahFalealgajiajhajlajkajnajmajpajoajrajqajLajKaivaaaajMagTajOajNajQajPanAanHanHajRajTajSanHanHaihaihaihaihaihaihaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagwakRakPahZakRakPagwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajWajUakcakbakeakdakhakgahQakiaitalcahFahFahFahFahFahFajnaZManWakkannanWaklajjajjakmajjaksakwaktaivaabaabagTakCakxakEakDanAakFakGaoJaoJakHakJakIakvakKakMakLakNaihaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvalvalvalwalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagwalxalyahaalzalAagwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajWakOakSakQakVakTalaakYaldalbaitaleahFahFahFahFahFahFagtalfalgakkalialhajnaljallalkalnalmakfakuaivanHanHanAanAanAanAaloanAalpalralqalualtalFalCalGaiYaiYaiYalHaihaihaaaaaaaaaajbajbajbajbajbajbajbalIalJaaaabpaaaaaaalvaaaaabaaaamhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagwamiamjahaamkamlagwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajWalKalMalLalOalNalQalPahQalRalSalcahFahFahFahFahFahFagtagtalUalTapPagtagtalValWaivalYalXalZaivaivanHambamaamdamcamfameanAamgaoJammampamnalFamqamrajVamvamsamuamtaihaaaaaaaaaajbajsajtajvajuajwajxajyaaaaaaaaaaaaaaaamWaabamUaabamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahsagZamYamZanaagZahnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahQahQaqqahQahQahQahQahQahQamwaigapFapFapFapFapFapFapFapFamxamzamyamzamAamCamBamEamDamGamFamIamHamJauiaoJamKamKamKamKamLakIaoJapmamMamOamNamQamPamTamSanbamXandancaneaaaaaaaabajbajXajwajwajwajwajxajyaaaaaaaaaaaaamWalvaaaanGaaaalvamWamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahsagZagZagZahnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/_maps/map_files/cyberiad/z2.dmm b/_maps/map_files/cyberiad/z2.dmm index 318f9986fe0..7c6dbdded8c 100644 --- a/_maps/map_files/cyberiad/z2.dmm +++ b/_maps/map_files/cyberiad/z2.dmm @@ -784,11 +784,11 @@ "pd" = (/obj/effect/decal/warning_stripes/southeastcorner,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "pe" = (/obj/effect/decal/warning_stripes/south,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "pf" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space) -"pg" = (/obj/machinery/recharger/wallcharger{pixel_x = -24},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space) +"pg" = (/obj/structure/grille,/obj/structure/window/full/shuttle{icon_state = "16"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space) "ph" = (/obj/machinery/recharger/wallcharger{pixel_x = 32},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space) -"pi" = (/obj/machinery/door/airlock/shuttle{req_access_txt = "114"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space) +"pi" = (/obj/structure/grille,/obj/structure/window/full/shuttle{icon_state = "15"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space) "pj" = (/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space) -"pk" = (/obj/structure/closet/secure_closet/guncabinet,/obj/item/ammo_casing/rocket,/obj/item/ammo_casing/rocket,/obj/item/ammo_casing/rocket,/obj/item/weapon/gun/rocketlauncher,/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space) +"pk" = (/obj/structure/closet/secure_closet/guncabinet,/obj/item/ammo_casing/rocket,/obj/item/ammo_casing/rocket,/obj/item/ammo_casing/rocket,/obj/item/weapon/gun/rocketlauncher,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space) "pl" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "pm" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/cans/beer{pixel_x = -2; pixel_y = 5},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "pn" = (/obj/machinery/door/airlock/shuttle,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space) @@ -797,7 +797,7 @@ "pq" = (/obj/machinery/camera{c_tag = "CentComm Special Ops. Bathroom"; dir = 2; network = list("ERT","CentComm")},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops) "pr" = (/obj/machinery/door/airlock/centcom{name = "Bathroom"; opacity = 1; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "ps" = (/obj/machinery/telecomms/server/presets/centcomm,/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/control) -"pt" = (/obj/mecha/combat/durand/loaded{operation_req_access = list(1)},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space) +"pt" = (/obj/machinery/door/airlock/shuttle{req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space) "pu" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (NORTHWEST)"; icon_state = "fakewindows"; dir = 9},/area/syndicate_mothership) "pv" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows2 (WEST)"; icon_state = "fakewindows2"; dir = 8},/area/syndicate_mothership) "pw" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/mushroompizzaslice{pixel_x = -5; pixel_y = 5},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) @@ -893,6 +893,11 @@ "ri" = (/obj/structure/toilet{dir = 8},/turf/unsimulated/floor{icon_state = "floorscorched2"},/area/centcom) "rj" = (/obj/structure/rack,/obj/item/weapon/implanter/adrenalin{pixel_x = 12; pixel_y = -12},/obj/item/weapon/implanter/emp{pixel_x = 9; pixel_y = -9},/obj/item/weapon/implanter/explosive{pixel_x = 6; pixel_y = -6},/obj/item/weapon/implanter/explosive_macro{pixel_x = 3; pixel_y = -3},/obj/item/weapon/implanter/freedom,/obj/item/weapon/implanter/krav_maga{pixel_x = -9; pixel_y = 9},/obj/item/weapon/implanter/mindshield{pixel_x = -6; pixel_y = 6},/obj/item/weapon/implanter/storage{pixel_x = -3; pixel_y = 3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) "rk" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/shuttle/gamma/space) +"rl" = (/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space) +"rm" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/mech_bay_recharge_port/upgraded,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space) +"rn" = (/obj/machinery/power/apc{dir = 2; name = "Gamma Armory APC"; pixel_y = -24},/obj/structure/cable{d2 = 4; icon_state = "0-4"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space) +"ro" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/computer/mech_bay_power_console,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space) +"rp" = (/obj/mecha/combat/durand/loaded{operation_req_access = list(1)},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/mech_bay_recharge_floor,/area/shuttle/gamma/space) "rE" = (/turf/unsimulated/wall,/area/start) "rH" = (/obj/effect/landmark/start,/turf/unsimulated/floor,/area/start) "rK" = (/turf/unsimulated/wall/splashscreen,/area/start) @@ -1618,10 +1623,10 @@ aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmfmfmfmfmfmfmfmfmfmfmfmfmfmfmfmfmsXsXsXsXsXsXuaubsXsXsXsXsXsXsXsXsXfeujflsqtQtRucudududududududududuetRtZsqaNaNoeodododododododofaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmcYoEoEoEoEoFfmfofnfqfpfsfrfnfEfmufuguguhuiujujujsXukukukukulukumunfeujflsqtQtRtZsususususususususutQtRtZsqaNaNohogojoioioioiokohaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmoGoNoJoWoPoGfmjHfFkdkdkdkdfFlZmdujujujujujujujujuqururururururussXfeujflsqtQtRtZsuutuuuvuwuxuyuzsutQtRtZsqaNaNohogogogogogogogohaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmoGpgpfpfphoGfmoKkdkdkdkdkdkdoLmdujujujujujujujujsXuAuBuBuBuBuBuCsXsXoMsXsquEtRtSsuuFtRuGuHtRtRtRsuuEtRtZsqsqsqohogogogogogogogohaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmoGpfpfpfpfpifdoUoToToToToToToVfdujujujuIuIujujujuJuKuKuKuKuKuKuKuLuKuKuKuMtRtRtRuNtRtRtRtRtRtRtRuNtRtRtZoltRolomogogogogogogogohaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmoGpjpfpfpkoGfmfmfmfmfmfmfmfmfmfmujujuOuPuQuRujuSsXsXuTuUuTsXsXoXsXoZoYpbsquetRucsutRtRtRtRtRtRtRsuuetRtZsqsqsqohogogogogogogogohaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmpnpfpopfptoGfmaNaNaNaNaNaNaNaNsXujuXuRooonvavbujvcvdvdvdvdvesXuKsXsXsXsXsqtQtRtZsuvfuuvgvgvgvhvisutQtRtZsqaNaNohogogogogogogogohaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmpgpfpfpfphoGfmoKkdkdkdkdkdkdoLmdujujujujujujujujsXuAuBuBuBuBuBuCsXsXoMsXsquEtRtSsuuFtRuGuHtRtRtRsuuEtRtZsqsqsqohogogogogogogogohaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmpipfpkpopfptfdoUoToToToToToToVfdujujujuIuIujujujuJuKuKuKuKuKuKuKuLuKuKuKuMtRtRtRuNtRtRtRtRtRtRtRuNtRtRtZoltRolomogogogogogogogohaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmoGpjpfpfrloGfmfmfmfmfmfmfmfmfmfmujujuOuPuQuRujuSsXsXuTuUuTsXsXoXsXoZoYpbsquetRucsutRtRtRtRtRtRtRsuuetRtZsqsqsqohogogogogogogogohaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmpnrnrmrprooGfmaNaNaNaNaNaNaNaNsXujuXuRooonvavbujvcvdvdvdvdvesXuKsXsXsXsXsqtQtRtZsuvfuuvgvgvgvhvisutQtRtZsqaNaNohogogogogogogogohaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmpDoEoEoEoErkfmaNaNaNaNsXuWuWsXsXujujvauRvmuRujujvnvdvovpvqvdsXuKsXvrtTtUsqtQtRtZsqsqvsvtvuvvvwsqsqtQtRtZsqaNaNohogogogopogogogohaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmfmfmfmfmfmfmfmaNaNaNaNsXvkvkpqprujujujvyvyujujujvzvdvAvBvCbesXuKsqpstRtRvFtRtRtZsqsqsusususususqsqtQtRtZsqaNaNoqodododododododoraNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNsXvkvkvksXvIvJujujujujvLujsXvdoSmjeTvPsXuKsqvQtRtZsutQtRtStTtTtTtTtTtTtTtTtTuEtRtZsqaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN diff --git a/code/game/mecha/mech_bay.dm b/code/game/mecha/mech_bay.dm index 24b6b1822d9..89f3a4ae032 100644 --- a/code/game/mecha/mech_bay.dm +++ b/code/game/mecha/mech_bay.dm @@ -33,6 +33,9 @@ component_parts += new /obj/item/weapon/stock_parts/capacitor(null) component_parts += new /obj/item/stack/cable_coil(null, 1) RefreshParts() + update_recharge_turf() + +/obj/machinery/mech_bay_recharge_port/proc/update_recharge_turf() recharging_turf = get_step(loc, dir) /obj/machinery/mech_bay_recharge_port/upgraded/New() diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 8925e06b2e3..11be4d0a87e 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -909,6 +909,12 @@ var/gamma_ship_location = 1 // 0 = station , 1 = space toArea = locate(/area/shuttle/gamma/space) fromArea.move_contents_to(toArea) + for(var/obj/machinery/mech_bay_recharge_port/P in toArea) + P.update_recharge_turf() + + for(var/obj/machinery/power/apc/A in toArea) + A.init() + if(gamma_ship_location) gamma_ship_location = 0 else From 1ae39de93ebb969729d7772b289fe67978d61acf Mon Sep 17 00:00:00 2001 From: Kyep Date: Tue, 13 Jun 2017 23:32:20 -0700 Subject: [PATCH 028/123] Tweaks signage --- _maps/map_files/cyberiad/cyberiad.dmm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm index 1dad73fe90e..3d0dc5147b6 100644 --- a/_maps/map_files/cyberiad/cyberiad.dmm +++ b/_maps/map_files/cyberiad/cyberiad.dmm @@ -9052,7 +9052,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahQahQahQahQaiZaiXajfajaahQakjaZLaZJahFahFahFahFahFahFalealgajiajhajlajkajnajmajpajoajrajqajLajKaivaaaajMagTajOajNajQajPanAanHanHajRajTajSanHanHaihaihaihaihaihaihaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagwakRakPahZakRakPagwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajWajUakcakbakeakdakhakgahQakiaitalcahFahFahFahFahFahFajnaZManWakkannanWaklajjajjakmajjaksakwaktaivaabaabagTakCakxakEakDanAakFakGaoJaoJakHakJakIakvakKakMakLakNaihaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvalvalvalwalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagwalxalyahaalzalAagwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajWakOakSakQakVakTalaakYaldalbaitaleahFahFahFahFahFahFagtalfalgakkalialhajnaljallalkalnalmakfakuaivanHanHanAanAanAanAaloanAalpalralqalualtalFalCalGaiYaiYaiYalHaihaihaaaaaaaaaajbajbajbajbajbajbajbalIalJaaaabpaaaaaaalvaaaaabaaaamhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagwamiamjahaamkamlagwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajWalKalMalLalOalNalQalPahQalRalSalcahFahFahFahFahFahFagtagtalUalTapPagtagtalValWaivalYalXalZaivaivanHambamaamdamcamfameanAamgaoJammampamnalFamqamrajVamvamsamuamtaihaaaaaaaaaajbajsajtajvajuajwajxajyaaaaaaaaaaaaaaaamWaabamUaabamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahsagZamYamZanaagZahnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajWalKalMalLalOalNalQalPahQalRalSabNahFahFahFahFahFahFagtagtalUalTapPagtagtalValWaivalYalXalZaivaivanHambamaamdamcamfameanAamgaoJammampamnalFamqamrajVamvamsamuamtaihaaaaaaaaaajbajsajtajvajuajwajxajyaaaaaaaaaaaaaaaamWaabamUaabamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahsagZamYamZanaagZahnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahQahQaqqahQahQahQahQahQahQamwaigapFapFapFapFapFapFapFapFamxamzamyamzamAamCamBamEamDamGamFamIamHamJauiaoJamKamKamKamKamLakIaoJapmamMamOamNamQamPamTamSanbamXandancaneaaaaaaaabajbajXajwajwajwajwajxajyaaaaaaaaaaaaamWalvaaaanGaaaalvamWamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahsagZagZagZahnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanfangaomanianhankanjanlajJanmapGanpanoanranqantansapFanuanwanvanzanyanCanBanEanDanIanFanJanJanJanKaoJanLanNanManPanOanQaofaofanRanTanSalFanUanVajVajVanXanZanYaoaaaaaabaabajbaknajwakoajwajwajxajyaaaaaaaaaaaaamWaabaabanGaabaabaabamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwalwalvalwalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanfangaomaocaobaoeaodaohaogaitapGaojaoiaonaokaopaooapFaoqaosaoraouaotaowaovaoxalWaozaoyaoBaoAaoDaoCaoJaoEaoGaoFaoFaoHaoLaoIaoIaoMaoPaoNalFaoQaoRaiYaiYaiYaoTaoSaihaoOaoOaoOajbakyajwajwajwajwakzajyaaaaaaaaaaaaamWaaaaaaaoKaaaaaaaaaamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa From 911cf316351058a515ecf412497967199a7f2a91 Mon Sep 17 00:00:00 2001 From: Sam Date: Thu, 15 Jun 2017 01:39:29 +0100 Subject: [PATCH 029/123] Adds a random crayon option for map makers --- code/game/objects/items/crayons.dm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index a3d302f1326..4e133ddf922 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -147,6 +147,29 @@ colour = "#DA00FF" colourName = "purple" +/obj/item/toy/crayon/random/New() + icon_state = pick(list("crayonred", "crayonorange", "crayonyellow", "crayongreen", "crayonblue", "crayonpurple")) + switch(icon_state) + if("crayonred") + colour = "#DA0000" + colourName = "red" + if("crayonorange") + colour = "#FF9300" + colourName = "orange" + if("crayonyellow") + colour = "#FFF200" + colourName = "yellow" + if("crayongreen") + colour = "#A8E61D" + colourName = "green" + if("crayonblue") + colour = "#00B7EF" + colourName = "blue" + if("crayonpurple") + colour = "#DA00FF" + colourName = "purple" + ..() + /obj/item/toy/crayon/white icon_state = "crayonwhite" colour = "#FFFFFF" From e3bf6e356289aabf2d2e7ffaed4f3cfe8d14e415 Mon Sep 17 00:00:00 2001 From: Sam Date: Thu, 15 Jun 2017 01:47:28 +0100 Subject: [PATCH 030/123] Adds random option for cable cuffs too --- code/game/objects/items/weapons/handcuffs.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm index f22c706d4f5..0b7850bba1f 100644 --- a/code/game/objects/items/weapons/handcuffs.dm +++ b/code/game/objects/items/weapons/handcuffs.dm @@ -104,6 +104,10 @@ /obj/item/weapon/restraints/handcuffs/cable/white color = COLOR_WHITE +/obj/item/weapon/restraints/handcuffs/cable/random/New() + color = pick(COLOR_RED, COLOR_BLUE, COLOR_GREEN, COLOR_WHITE, COLOR_PINK, COLOR_YELLOW, COLOR_CYAN) + ..() + /obj/item/weapon/restraints/handcuffs/alien icon_state = "handcuffAlien" From 804692d9884fddf4bde6f1b84da9b58efb2aef46 Mon Sep 17 00:00:00 2001 From: Sam Date: Thu, 15 Jun 2017 02:20:27 +0100 Subject: [PATCH 031/123] Adds a random option for flashes --- code/game/objects/items/devices/flash.dm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/code/game/objects/items/devices/flash.dm b/code/game/objects/items/devices/flash.dm index e309cae9bbe..de82f0b8c34 100644 --- a/code/game/objects/items/devices/flash.dm +++ b/code/game/objects/items/devices/flash.dm @@ -39,6 +39,11 @@ overcharged = 1 overlays += "overcharge" +/obj/item/device/flash/random/New() + ..() + if(prob(25)) + broken = 1 + icon_state = "[initial(icon_state)]burnt" /obj/item/device/flash/proc/burn_out() //Made so you can override it if you want to have an invincible flash from R&D or something. broken = 1 From 1774148d9a32996adc957264b824b6f0a681e8b1 Mon Sep 17 00:00:00 2001 From: imsxz Date: Fri, 16 Jun 2017 13:01:15 -0400 Subject: [PATCH 032/123] removes singularity beacon from surplus crate --- code/datums/uplink_item.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm index 1cf08abebd0..e8ce62692a9 100644 --- a/code/datums/uplink_item.dm +++ b/code/datums/uplink_item.dm @@ -1079,6 +1079,7 @@ var/list/uplink_items = list() reference = "SNGB" item = /obj/item/device/radio/beacon/syndicate cost = 14 + surplus = 0 /datum/uplink_item/device_tools/syndicate_bomb name = "Syndicate Bomb" From b1a0f351d51b67eb7d311b9bf607ee51d778083b Mon Sep 17 00:00:00 2001 From: Sam Date: Sun, 18 Jun 2017 06:45:52 +0100 Subject: [PATCH 033/123] Changes the OPEN link to just O --- code/modules/mob/living/silicon/ai/say.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/silicon/ai/say.dm b/code/modules/mob/living/silicon/ai/say.dm index ccd0f652b68..39af8059e8b 100644 --- a/code/modules/mob/living/silicon/ai/say.dm +++ b/code/modules/mob/living/silicon/ai/say.dm @@ -55,7 +55,7 @@ if(mob_to_track) track = "[speaker_name] ([jobname])" - track += "\[OPEN\]" + track += "\[O\]" return track From 39fafb001b88d464846c269d2099269a6165677a Mon Sep 17 00:00:00 2001 From: Driker Date: Sun, 18 Jun 2017 20:05:14 -0400 Subject: [PATCH 034/123] Cheese Burger Borg Sprites for Cheese Burger --- .../mob/custom_synthetic/custom-synthetic.dmi | Bin 186004 -> 190394 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/custom_synthetic/custom-synthetic.dmi b/icons/mob/custom_synthetic/custom-synthetic.dmi index 29917049c851879826e1b541c5f2333b4d83053d..2309a10aa1a68a0132e71e464465f0d91af11f54 100644 GIT binary patch literal 190394 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