From 43889a89d5a9378fd120d627f74613edb1841a66 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Sun, 21 Aug 2016 03:14:08 -0400 Subject: [PATCH 01/22] Ports Mining Shelters --- .../objects/items/stacks/tiles/tile_types.dm | 8 + code/game/objects/items/weapons/dice.dm | 70 ++++- .../objects/items/weapons/storage/firstaid.dm | 10 - code/modules/mining/mine_items.dm | 286 +++++++++++++++++- icons/obj/dice.dmi | Bin 4686 -> 2958 bytes icons/obj/doors/door_assembly.dmi | Bin 45559 -> 47022 bytes icons/obj/doors/survival.dmi | Bin 0 -> 12043 bytes icons/obj/items.dmi | Bin 116874 -> 117171 bytes icons/obj/lavaland/donkvendor.dmi | Bin 0 -> 1627 bytes icons/obj/lavaland/pod_computer.dmi | Bin 0 -> 1545 bytes icons/obj/lavaland/survival_pod.dmi | Bin 7962 -> 10474 bytes icons/obj/mining.dmi | Bin 53624 -> 53823 bytes icons/turf/floors.dmi | Bin 369775 -> 370464 bytes icons/turf/walls/survival_pod_walls.dmi | Bin 0 -> 4113 bytes 14 files changed, 355 insertions(+), 19 deletions(-) create mode 100644 icons/obj/doors/survival.dmi create mode 100644 icons/obj/lavaland/donkvendor.dmi create mode 100644 icons/obj/lavaland/pod_computer.dmi create mode 100644 icons/turf/walls/survival_pod_walls.dmi diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index bfbd0a4ccb6..f5b3650c5bb 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -129,3 +129,11 @@ turf_type = /turf/simulated/floor/silent mineralType = "tranquillite" materials = list(MAT_TRANQUILLITE=500) + +//Pod floor +/obj/item/stack/tile/pod + name = "pod floor tile" + singular_name = "pod floor tile" + desc = "A grooved floor tile." + icon_state = "tile_pod" + turf_type = /turf/simulated/floor/pod \ No newline at end of file diff --git a/code/game/objects/items/weapons/dice.dm b/code/game/objects/items/weapons/dice.dm index 0b090581595..dcd32582046 100644 --- a/code/game/objects/items/weapons/dice.dm +++ b/code/game/objects/items/weapons/dice.dm @@ -1,16 +1,49 @@ -/obj/item/weapon/dice - name = "d6" +/obj/item/weapon/storage/pill_bottle/dice + name = "bag of dice" + desc = "Contains all the luck you'll ever need." + icon = 'icons/obj/dice.dmi' + icon_state = "dicebag" + +/obj/item/weapon/storage/pill_bottle/dice/New() + ..() + var/special_die = pick("1","2","fudge","00","100") + if(special_die == "1") + new /obj/item/weapon/dice/d1(src) + if(special_die == "2") + new /obj/item/weapon/dice/d2(src) + new /obj/item/weapon/dice/d4(src) + new /obj/item/weapon/dice/d6(src) + if(special_die == "fudge") + new /obj/item/weapon/dice/fudge(src) + new /obj/item/weapon/dice/d8(src) + new /obj/item/weapon/dice/d10(src) + if(special_die == "00") + new /obj/item/weapon/dice/d00(src) + new /obj/item/weapon/dice/d12(src) + new /obj/item/weapon/dice/d20(src) + if(special_die == "100") + new /obj/item/weapon/dice/d100(src) + +/obj/item/weapon/dice //depreciated d6, use /obj/item/weapon/dice/d6 if you actually want a d6 + name = "die" desc = "A die with six sides. Basic and servicable." icon = 'icons/obj/dice.dmi' icon_state = "d6" w_class = 1 var/sides = 6 var/result = null + var/list/special_faces = list() //entries should match up to sides var if used /obj/item/weapon/dice/New() result = rand(1, sides) update_icon() +/obj/item/weapon/dice/d1 + name = "d1" + desc = "A die with one side. Deterministic!" + icon_state = "d1" + sides = 1 + /obj/item/weapon/dice/d2 name = "d2" desc = "A die with two sides. Coins are undignified!" @@ -23,6 +56,16 @@ icon_state = "d4" sides = 4 +/obj/item/weapon/dice/d6 + name = "d6" + +/obj/item/weapon/dice/fudge + name = "fudge die" + desc = "A die with six sides but only three results. Is this a plus or a minus? Your mind is drawing a blank..." + sides = 3 //shhh + icon_state = "fudge" + special_faces = list("minus","blank","plus") + /obj/item/weapon/dice/d8 name = "d8" desc = "A die with eight sides. It feels... lucky." @@ -53,6 +96,15 @@ icon_state = "d20" sides = 20 +/obj/item/weapon/dice/d100 + name = "d100" + desc = "A die with one hundred sides! Probably not fairly weighted..." + icon_state = "d100" + sides = 100 + +/obj/item/weapon/dice/d100/update_icon() + return + /obj/item/weapon/dice/d20/e20 var/triggered = 0 @@ -64,8 +116,9 @@ return diceroll(user) -/obj/item/weapon/dice/proc/diceroll(mob/user as mob) +/obj/item/weapon/dice/proc/diceroll(mob/user) result = rand(1, sides) + var/fake_result = rand(1, sides)//Daredevil isn't as good as he used to be var/comment = "" if(sides == 20 && result == 20) comment = "Nat 20!" @@ -74,20 +127,20 @@ update_icon() if(initial(icon_state) == "d00") result = (result - 1)*10 + if(special_faces.len == sides) + result = special_faces[result] if(user != null) //Dice was rolled in someone's hand - user.visible_message("[user] has thrown [src]. It lands on [result]. [comment]", \ + user.visible_message("[user] has thrown [src]. It lands on [result]. [comment]", \ "You throw [src]. It lands on [result]. [comment]", \ - "You hear [src] landing on [result]. [comment]") + "You hear [src] rolling, it sounds like a [fake_result].") else if(src.throwing == 0) //Dice was thrown and is coming to rest visible_message("[src] rolls to a stop, landing on [result]. [comment]") -/* + /obj/item/weapon/dice/d4/Crossed(var/mob/living/carbon/human/H) if(istype(H) && !H.shoes) to_chat(H, "You step on the D4!") H.apply_damage(4,BRUTE,(pick("l_leg", "r_leg"))) H.Weaken(3) -*///ew. - /obj/item/weapon/dice/d20/e20/diceroll(mob/user as mob, thrown) if(triggered) @@ -112,6 +165,7 @@ /obj/item/weapon/dice/update_icon() overlays.Cut() overlays += "[src.icon_state][src.result]" + /obj/item/weapon/storage/box/dice name = "Box of dice" desc = "ANOTHER ONE!? FUCK!" diff --git a/code/game/objects/items/weapons/storage/firstaid.dm b/code/game/objects/items/weapons/storage/firstaid.dm index 03ba6bed54b..67d44c53b2d 100644 --- a/code/game/objects/items/weapons/storage/firstaid.dm +++ b/code/game/objects/items/weapons/storage/firstaid.dm @@ -276,16 +276,6 @@ new /obj/item/weapon/reagent_containers/food/pill/charcoal( src ) new /obj/item/weapon/reagent_containers/food/pill/charcoal( src ) -/obj/item/weapon/storage/pill_bottle/dice - name = "pack of dice" - desc = "It's a small container with dice inside." - - New() - ..() - new /obj/item/weapon/dice( src ) - new /obj/item/weapon/dice/d20( src ) - - /obj/item/weapon/storage/pill_bottle/painkillers name = "Pill Bottle (Salicylic Acid)" desc = "Contains various pills for minor pain relief." diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index e774ef23924..c79f2aa4046 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -263,6 +263,268 @@ icon_state = "mobcap[colorindex]" update_icon() +/*****************************Survival Pod********************************/ + + +/area/survivalpod + name = "\improper Emergency Shelter" + icon_state = "away" + requires_power = 0 + has_gravity = 1 + +/obj/item/weapon/survivalcapsule + name = "bluespace shelter capsule" + desc = "An emergency shelter stored within a pocket of bluespace." + icon_state = "capsule" + icon = 'icons/obj/mining.dmi' + w_class = 1 + var/used = FALSE + +/obj/item/weapon/survivalcapsule/attack_self() + if(used == FALSE) + loc.visible_message("[src] begins to shake. Stand back!") + used = TRUE + sleep(50) + var/turf/T = get_turf(src) + var/clear = TRUE + for(var/turf/turf in range(2, T)) + if(turf.density && !istype(turf, /turf/simulated/mineral)) + clear = FALSE + break + for(var/obj/obj in turf) + if(obj.density && obj.anchored) + clear = FALSE + break + if(!clear) + loc.visible_message("[src] doesn't have room to deploy! You need to clear a 5x5 area!") + used = FALSE + return + playsound(get_turf(src), 'sound/effects/phasein.ogg', 100, 1) + if(!is_mining_level(T.z))//only report capsules away from the mining/lavaland level + message_admins("[key_name_admin(usr)] (?) (FLW) activated a bluespace capsule away from the mining level! (JMP)") + log_admin("[key_name(usr)] activated a bluespace capsule away from the mining level at [T.x], [T.y], [T.z]") + load() + new /obj/effect/effect/smoke(loc) + qdel(src) + +/obj/item/weapon/survivalcapsule/proc/load() + var/list/blacklist = list(/area/shuttle) //Shuttles move based on area, and we'd like not to break them + var/turf/start_turf = get_turf(loc) + var/turf/cur_turf + var/x_size = 5 + var/y_size = 5 + var/list/walltypes = list(/turf/simulated/wall/survival) + var/floor_type = /turf/simulated/floor/pod + var/room + + //Center the room/spawn it + start_turf = locate(start_turf.x -2, start_turf.y - 2, start_turf.z) + + room = spawn_room(start_turf, x_size, y_size, walltypes, floor_type, "Emergency Shelter") + + start_turf = get_turf(loc) + + //Fill it + + //The door + cur_turf = locate(start_turf.x, start_turf.y-2, start_turf.z) + new /obj/machinery/door/airlock/survival_pod(cur_turf) + + + //Bed middle right + cur_turf = locate(start_turf.x+1, start_turf.y, start_turf.z) + new /obj/structure/stool/bed/pod(cur_turf) + new /obj/item/weapon/bedsheet/brown(cur_turf) + + //Chair bottom right + cur_turf = locate(start_turf.x+1, start_turf.y-1, start_turf.z) + new /obj/structure/tubes(cur_turf) + var/obj/structure/stool/bed/chair/comfy/black/C = new (cur_turf) + C.dir = 8 + + //GPS computer top right + cur_turf = locate(start_turf.x+1, start_turf.y+1, start_turf.z) + new /obj/item/device/gps/computer(cur_turf) + + //Donk Pocket Storage Top/middle + cur_turf = locate(start_turf.x, start_turf.y+1, start_turf.z) + new /obj/machinery/smartfridge/survival_pod(cur_turf) + + //Table in Bottom Left + cur_turf = locate(start_turf.x-1, start_turf.y-1, start_turf.z) + new /obj/structure/table/survival_pod(cur_turf) + + //Sleeper Middle Left + cur_turf = locate(start_turf.x-1, start_turf.y, start_turf.z) + new /obj/machinery/sleeper/survival_pod(cur_turf) + + //Fans Top Left + cur_turf = locate(start_turf.x-1, start_turf.y+1, start_turf.z) + new /obj/structure/fans(cur_turf) + + //Signs + cur_turf = locate(start_turf.x-2, start_turf.y, start_turf.z) + var/obj/structure/sign/mining/survival/S1 = new(cur_turf) + S1.dir = EAST + + cur_turf = locate(start_turf.x+2, start_turf.y, start_turf.z) + var/obj/structure/sign/mining/survival/S2 = new(cur_turf) + S2.dir = WEST + + cur_turf = locate(start_turf.x, start_turf.y+2, start_turf.z) + var/obj/structure/sign/mining/survival/S3 = new(cur_turf) + S3.dir = NORTH + + cur_turf = locate(start_turf.x-1, start_turf.y-2, start_turf.z) + var/obj/structure/sign/mining/survival/S4 = new(cur_turf) + S4.dir = SOUTH + + cur_turf = locate(start_turf.x+1, start_turf.y-2, start_turf.z) + new /obj/structure/sign/mining(cur_turf) + + var/area/survivalpod/L = new /area/survivalpod + + var/turf/threshhold = locate(start_turf.x, start_turf.y-2, start_turf.z) + threshhold.ChangeTurf(/turf/simulated/floor/pod) + var/turf/simulated/floor/pod/doorturf = threshhold + air_master.remove_from_active(doorturf) + doorturf.oxygen = 21 + doorturf.temperature = 293.15 + doorturf.nitrogen = 82 + doorturf.carbon_dioxide = 0 + doorturf.toxins = 0 + doorturf.air.oxygen = 21 + doorturf.air.carbon_dioxide = 0 + doorturf.air.nitrogen = 82 + doorturf.air.toxins = 0 + doorturf.air.temperature = 293.15 + air_master.add_to_active(doorturf) + var/area/ZZ = get_area(threshhold) + if(!is_type_in_list(ZZ, blacklist)) + L.contents += threshhold + threshhold.overlays.Cut() + + new /obj/structure/fans/tiny(threshhold) //a tiny fan, to keep the air in. + + var/list/turfs = room["floors"] + for(var/turf/simulated/floor/A in turfs) + air_master.remove_from_active(A) + A.oxygen = 21 + A.temperature = 293.15 + A.nitrogen = 82 + A.carbon_dioxide = 0 + A.toxins = 0 + A.air.oxygen = 21 + A.air.carbon_dioxide = 0 + A.air.nitrogen = 82 + A.air.toxins = 0 + A.air.temperature = 293.15 + air_master.add_to_active(A) + A.overlays.Cut() + var/area/Z = get_area(A) + if(!is_type_in_list(Z, blacklist)) + L.contents += A + +//Pod turfs and objects + + +//Floors +/turf/simulated/floor/pod + name = "pod floor" + icon_state = "podfloor" + icon_regular_floor = "podfloor" + floor_tile = /obj/item/stack/tile/pod + +//Walls +/turf/simulated/wall/survival + name = "pod wall" + desc = "An easily-compressable wall used for temporary shelter." + icon = 'icons/turf/walls/survival_pod_walls.dmi' + icon_state = "smooth" + walltype = "shuttle" + smooth = SMOOTH_MORE // To Do: Add in Diagnaol Smooth Support + canSmoothWith = list(/turf/simulated/wall/survival, /obj/machinery/door/airlock/survival_pod) + +//Door +/obj/machinery/door/airlock/survival_pod + name = "Airlock" + icon = 'icons/obj/doors/survival.dmi' + assembly_type = /obj/structure/door_assembly/door_assembly_pod + opacity = 0 + glass = 1 + +/obj/structure/door_assembly/door_assembly_pod + base_icon_state = "survival_pod" + glass_type = "/survival_pod" + +//Table +/obj/structure/table/survival_pod + icon = 'icons/obj/lavaland/survival_pod.dmi' + icon_state = "table" + smooth = SMOOTH_FALSE + +//Sleeper +/obj/machinery/sleeper/survival_pod + icon = 'icons/obj/lavaland/survival_pod.dmi' + icon_state = "sleeper-open" + density = 0 + +//Computer +/obj/item/device/gps/computer + name = "pod computer" + icon_state = "pod_computer" + icon = 'icons/obj/lavaland/pod_computer.dmi' + anchored = 1 + density = 1 + pixel_y = -32 + +/obj/item/device/gps/computer/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/wrench)) + playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) + user.visible_message("[user] disassembles the gps.", \ + "You start to disassemble the gps...", "You hear clanking and banging noises.") + if(do_after(user, 20, target = src)) + new /obj/item/device/gps(loc) + qdel(src) + return ..() + +/obj/item/device/gps/computer/attack_hand(mob/user) + attack_self(user) + +//Bed +/obj/structure/stool/bed/pod + icon = 'icons/obj/lavaland/survival_pod.dmi' + icon_state = "bed" + +//Survival Storage Unit +/obj/machinery/smartfridge/survival_pod + name = "survival pod storage" + desc = "A heated storage unit." + icon_state = "donkvendor" + icon = 'icons/obj/lavaland/donkvendor.dmi' + icon_on = "donkvendor" + icon_off = "donkvendor" + light_range = 8 + max_n_of_items = 10 + pixel_y = -4 + +/obj/machinery/smartfridge/survival_pod/accept_check(obj/item/O) + if(istype(O, /obj/item)) + return 1 + return 0 + +/obj/machinery/smartfridge/survival_pod/New() + ..() + for(var/i in 1 to 5) + var/obj/item/weapon/reagent_containers/food/snacks/warmdonkpocket/W = new(src) + load(W) + if(prob(50)) + var/obj/item/weapon/storage/pill_bottle/dice/D = new(src) + load(D) + else + var/obj/item/device/guitar/G = new(src) + load(G) + //Fans /obj/structure/fans icon = 'icons/obj/lavaland/survival_pod.dmi' @@ -307,4 +569,26 @@ return ..() /obj/structure/fans/CanAtmosPass(turf/T) - return !arbitraryatmosblockingvar \ No newline at end of file + return !arbitraryatmosblockingvar + +//Signs +/obj/structure/sign/mining + name = "nanotrasen mining corps sign" + desc = "A sign of relief for weary miners, and a warning for would-be competitors to Nanotrasen's mining claims." + icon = 'icons/turf/walls/survival_pod_walls.dmi' + icon_state = "ntpod" + +/obj/structure/sign/mining/survival + name = "shelter sign" + desc = "A high visibility sign designating a safe shelter." + icon = 'icons/turf/walls/survival_pod_walls.dmi' + icon_state = "survival" + +//Fluff +/obj/structure/tubes + icon_state = "tubes" + icon = 'icons/obj/lavaland/survival_pod.dmi' + name = "tubes" + anchored = 1 + layer = MOB_LAYER - 0.2 + density = 0 \ No newline at end of file diff --git a/icons/obj/dice.dmi b/icons/obj/dice.dmi index d1a2dde45500762dad6afe321f392198e1f780f0..9ec030df05e7328828e09671e4044602b632f8a0 100644 GIT binary patch literal 2958 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 C7iYu( literal 4686 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%0A@8%uH6*jN-j;q6lee>G0oad}5VkKu}d( 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 literal 0 HcmV?d00001 diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index 863c25a7aee9acc8c8c776dd467e218fcd195bf7..d0c6f7591acc14ff69456905d248e4f918714ea7 100644 GIT binary patch delta 20131 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 delta 19832 zcmYhi1z1$?*EKwVf(VF;bStH_lt`x_B?y9acS-jFq*Fi|q>=7!>68ZP?rs<+zJvaM z&-Y%}%rG#_9sBH9Ywi0~#$bd*VSJ+jlH8Ql9K?<64eZQp9n5U3ArP08;$#JzHEz7X z;l7`2vxQoni$m7#y%}BBp`Jbj_d|a8KjDhb&6SGF-hY#Z5Ri)4=zIvs;=Bli3}Xi( z131KXZ@XA^fZNNS)q$fWYv=v1YLzZ(92WalzhUoNn#W7X>h#)lbmomsu88KRwtD%P3ZtUAoWmJccJ^#Vn_A0|=&jAwu!9$TN^_hu?v=3# z>&j1VqsNIH_s8)#b^VL?IA5g#~&#_bgoRg*g88W&=R8{c|obWuU)ep%uDj4J7 zDT@;S%A_(86|7&ES6xS((HP^iw^6v%)Q_D-uSC2VZ`dofq&0MH;!m6_G+;=ijp;b0 ztXg@S$J()=#b%_Z%sI2VCo zuUyWo0TVl7@*}uo>Mc0T&fPH1*&A-!b|VB*A7jU15mgY>#Y36*7_Ki=O;2$iCtf&e zeQ&^!c1(9TFMu|%03^fMnNu+$a*q0AqlLSB4aeAFW;)YdEwK-3T5M?TMlqBxe5z~Q zy~Cpf$_z2AV=o!;EoRDvVA79zvAVZ2Pcz386*t7KcGv~=R4|RUoFhU*BeH>vJF;EbrD=h~hRT%t8xt;oVZngfa-PTp<+SiY zO{`T(2*uLT-Go`*{Z;Myu~^H z`lrAr)5Nu1hgyt>45vGCZsLlJ-)q>()deeW&v`j2rg%^*3{HCPv>sFqA0?u7GJ ze9HRzC)#C*T3EtI@!mVGk163b+T*9^-TO&r7QMMopF=lYS3r-N2=fdf)<^w@xwj(dhiu1hd*O$l zqTUbb0<f^`Ea_hbLN-x5Ng_K9UWBALDRL63 zCvh7SVNuX1a*9nhFeLrb*LpT&TFf#lupE&k;LRg2`f=%royuaCQPtu~ybT`rE!66H zvJ)*HQJrt{h_^!WNE_F@{HvOfvGU$0Ox_lFwm{vIE9vnjRT`$1_Cu7fIFTIuo$eNe zDX%scV;ITK%N{g6Cv&RIv~p|Y54PVCUy)9!v_HF?`kG1qkNINd8oZb14vf^b}p1#2E^Kg$>-CtfsI` z4_p8T;aklKyX{|$EE52Is4q^0w6Z5)Oflvd|QL_?7bj z;rlHF3+pVF9Gqv))vIa~m4L;UdU$7sQsnjWOxh&=C0uJjxqgb|(axsAe%O7y$P-xC zpX-G`SD~eV$7hcl_}l>!rKWHycOE_y_jL%Pb_fH-(jCa#bzed@zot(7M#|2HN#(~* zO*5-o_rNkFb|C@P&NQ6h;jG)GS+D>FbU$;lvhdySnbxex1H=q!&sMp0*JWK}=xlnI zprts8nc`#od%uF}ZHe0@qJ_!q5(j0aHr){kHzh@hgPvL~9Ernwu9-1|MXsesfn1e~ zdzFGq!&ks_7M+$bK%9KF3&I^v^%nOwCwXvM^Na?im@YU6>(Cgz4yad=VG7R?-dHXp+&&(vE zuk2}%EmSh$_ybhZC_`+=-l~}uwTc87tD?Tw1Qc(#3zV8*y&a?XY?}*Vo3MAQrlRp2 z!;rk%cqCp*;2oSfYyh;BJ%+F~H_jd1FshcW7Ib7;kdE0x-H^92Eoz>>7nT}QJufCz zU63&`V?3Kn?bdZG=uH>#Xk#~Ic*#ARJJtv(p(+Hp8tEgZrnt4pes8oa!YxdH?agE* zst3MQ4@7C4fjy_oDV;~Xf+k84!Q}VZnwN-QKME)CfcW1R9{93-a~S0l20x}DyePC# zGm`L!-M&x|P{1l9e$bUh6-~MO_xs{<@LiG`^NoiPZ^v0fi0~Rh%n%jlxyq_eYeToq z#eo&yr36=tORWs2=V&(cI@}xk4LIi$d~nP^zH^%>kPs#Uh&G;Sqb+fx(-DvnQ~W#o zJq(QlR$o8!#$(;I^W?rY24sktnY~A%s>M{v6DBFbwG1v=e9*zk5d~sN$g*}$oV?sD zEzoTas}CL+8j}2+k8hOo>HLEC!)HbISB)f=d@XX;*4z;Bd6v<0iJ09ro~H#U^q^TX zb4!PP=I1S+eP*gSVPve%1nP4nj(>zpo*&o>oL_{sZo7Oz?TJrL4sQ{B*Ll$YzSxT$ zr6F^cMe+Qj03x%;rb_V6UP0`_@FaC~$Q%iYqmbFf1@FkT$yusl)HmWkL&@A_DvYYj z;1VsVc2%d@vgCK&cK4nDMmLaQZ4zQuTA#JO{oUxRmrubZI{;3OD|i2j8Y3b!xyI@S zdw!mO&!6hS^S*qYj{`MaobSOoXstUhbmt;GpAJ`TZW@ETCzVetr`1f|+LR+zI~eOa zrRjPedLOi3z`~a-cVNS}XYJSW1$9%!QMNhU zgkp)v8J2e4^=T41xiK!fTUvjmt*ojVIDc6J9KprfiJptE8Quxm<`Na$a8sA zWowKuhoE3by8x0^7=HURqtlnx_vlqX|SgG%%7SLHfoepL~kQ0nrH*5qwRQv zOGO%3o>!_0tH0?T8j8btwoD!q#eX_+HU_%O`uO`QVgwkS&;A(*04=17+3%WmHaDmx07I)=p!vbn_!yg6D+~OR^A&D97mj>YP3iz2f&%$l9*lrKN){{b;2{o#Z26btcm#QC2Su2VX?}_`#BVbpC~yC_XCq z3vpsEr^&ArE{aW{=mdOA{bGC{-q$NGDH)JLtDwLm@gWGCr`62N3^eJff}2}I6998Y zsMTv#?4fC&!9in4O_ykO@DMKa*Adfqo>gw}RHiYvCdx4nb~Lv_am~#2eq=x;Nxw>2 zHUlh;F4a9YqR&fpHt46yvq8h4$vk4wKKM0tyF~&(>w)$Bt(?s`g6vfIJ=tGh8k?F0il-|?dWmz7;B3$0B_m&}?{l$-coG0`t;raNX?VBcJ&FBxO zIshdx`!WO_9euqAuLW*3*`3V6$$78MqNRSZ?#tS@A3q|(!mteu4Rz=1zMQUc#$eKY zY_M#vp2gLMwo_sx>1jWGAsr1%i3^(8+H|*;z~q}6W6^4K!U5phe&<6HwH5XFw1%Dc zD{c@H`_o4r)OQwoF((wwz0?{cPyx>Z{Q4zHF?m{BXWb=dYYft=EUqZ(RVa@-AIq_> z8BVIAl`>N%zS$aDKD+PbRecpk(|*r-u3TZZ4xZq!*6G3DP{f&enKkf!CLHgq{L3x7 zbm$w>oV48&LIE#D=*hHq>or)oFBkRs9_lto@`*#UqG&Mh^J=qtiLsy=m@O^=Q30f< z5UI9KO-NVU{#xYWqZ^*^QPC37iS7)oWOHED3UR zpG7}}@=@@VPdaDoDV5_B4yU~nVd=o<`;d?pPzv?&)l8oTtz}2t;7(*sG(56^A)CmJ zqsnJ>J&qweDL$xSve-K|J|2~t%4|}PvV3V$v$~9Q`Eyjwukj-`_I_Z;O7b&TaygTh zFbyOCOAlCZSyMIy43jpBYS%ed=MC)^e*F@02?%6=^JW|VrSbS?OJ`YU38Aclb6wDQ z6c=9FX97c$djqMz^Z@OPxQP@(eg>!AJvG}uWP@J4qSFf)Q~ijB$Z~Y%$Vqf6Z3tUx zxr~E(EonM1HaZ=UL{wMFAepzQKZUx#Ykv1)@t&}xCNAKzgE{Pmw7ePGpGKbm?5jBW z?^1eyUr4#b+)WnYJT+2$tWjvWd3g18PeIPbb@i003WM9p zss!2RR_!5;yyy7m0;Nn%;=Z&@0oS>iLvT4pMSD=!`2S(&AU5t!vH#i9>J8dOtVZdC~(!`<-nK zN4i<%&S1w6Y#elEM%}De56-(l6Gu7m5=>l_c^{;Czm$IZnuCLLCQ{g-aIgh~M60E= zqvK@ZbBIKm(9gh@*IAwq<-7pgL1Sbt^8QZi27l-GQutghrCXZEuCvRP`;uxktGJ8! zgcswSo!Mk2qw@4O=p+}DZG|4t_bfC;qT*!(3r(dL)AkdjT0(^`@9qyb?E||rt z5lxa7P3m@6Qd06gJ2;?Db8cLCu{ozokST$#sbuI>f3umLIM#eIEcn9ub>cF6B4_c} zN5;o!X=_GoO%!~#jV_<d^syHA z{Tcl5swI*Sc^w!8+6c&{)E^ewkb!(ytnsdfU+yX1H|R@w=yW_DmtHDxe#mkeCve8n~VT~0TU^|Q7|Se z@5=C5kL34^c`gIZk)D(GAsZ9b_!R%m&snfV`#Pdyw_=V~(31=#_O1&zx`S`LTGPmw zAj_#91xW3aDO{S#Rmz~zwdwalhuAI_7P#7;j#yMESH)*j zXbSz>Z6$9Wk?Q+uXt*EmT4+Gf=be{2qIgEcgmhtU-{R1vbgv6=dxz0WF3|3~QfThQ zv#}FyAEH?UM7WvnXZ?%)=6~*L zG#D3QLR0H0EY`z2G#J~MmF2@+K}HC%HSIFJD*OrmnKAJX4vKf z3cg2S&Ot2kSP;qB%;Q!I`k!oLC`N?+m4l8LHlkl-Fz*O{;-t7y4^GP zmGYeCgmlGcg zduCOmU0if8;;wH&E(L9_Vh*)2@y<}(Tm3NCd>G-_1Ui!Zx9I57p@M#GQW(#=%;Pf# z7tVLaN4*YHVD4;RNw7d0c8E=Xfj87n+zX=~G87G9oh!BkP_|E8*f=@;Rx+q{=v*GK z#B0O~LU;>{CfHxjQlTEZN0j#Wsb)`n1j$ckASmaM1~HG5p9;ut$YJY!YGmfcqC<79 ztx2uWa$UnYB1~LG>Y#qGs_HnHj`TWDetE1-B#QkHYPMJN%w`BnB-D$Td&PI& zef@E=B|f{PMn8YQ#_40@o8M~me@Uz4UXN8Uqdw2N@=B_Aks zMS#M(H)dI{4X1vw_1U`Av5Pn6%<(1i_l1+}OJMMfMZR?Gw*L*;qU8wBVIA60E3#$U zH;k^XR9tw-j+k|1|8g+`#g}{|6nlt@} zWZ)>7g-+-jl&jiuv zoUDZJ&28UimVccOZzW(S2U`Q#f?sQ4tA&D)Z@NcU@?}+5?(id3Pw(%Wo`Q0yC70&4 z_juW&yS$E?uRQQ51dgvOR)~p-7h6%@I3JR+Tn{=g*PN_6G&IFL3@llLUhEN(k@=19 z_|0v!r_V7Xbr8g4ofmu4><*qIbAcXGp7c+1^2sSEE?bZz-}pxrXPklLX`M4H4Cco< zr4o|KL6LWcK+Kz`@Vfsl<#@Lv$MFI574|)T~`1$Z3 z49=l+Mu&kq9B?PZUH8PWuAxCxp@BK^G@u_-}ib5Een8cl(Yn!kI(3&JU{$D$@@)& z*h1fr7sm@yM~o#KFAvVxpB^(nYb`DVr$VclCuf`uu#0hpE@4s3ZLbXt|Az|jnD~4^Z#k`7YFZ%Tfb$47vj60{qp@uzjc7H!eDmfA-#JFJCf#oUCC zpQ82CJfw-1{we=yJI|syzE_y($FCk2yDFtS_jP~wdJi02CfN$JNa#WM1@Q()bMJL& zOc(E4FiV4|HvmRQhfearS`;H?*P`tPAo`xmJ%W8U&CpY%g5&ZAzBk?MjD9{r-#M}* z1WA|SUYR#M)2?_QvoJP=4)O9dUh+H=Q-R(Utb$lZ*n8bfc6$##-Sy|cO!2(z${?{V zJvCVI8+e6^lA2g>@n9jF#O}EQ+K2p&OEElRQj`u^|Ae&CTCaI@7+e96e-A^(*vamj zMg+_8Fx;lRf))boOb0Ifh%o}Lff2N}lNu}~#~aRWxdrdiE~?=-81mhN{r&B2ZQhos z3bSvOcWma|MWG1t%0I_tJqoNG;~LOtcI)+HBW$8mqpw!;pn^@|se(+nQk=9ozS^SA9KILX%iw=&gN}W0mR_M3<1cI#j1)9+diEf=4 zjAo}D{Z@8~>NE7mYK3#tTWsgoV;}!jZOJ_uEjVzpP=Ww2Gtn@_p2M6bzeM42=btXV zj0#Oeb51c1{>DacA2BHAbq$*yd2O*Smohh-p+k;>vs(cOvz1jAorUDYC2{@pPzmjC z0VY$<2a9+$N6b9lu#0)|knNVo3KqY_M+or&>!P~+RmslYM#8A&+g_P_-?0jaPHYN) z0$v4w6~JwaXq0JdXQ?!*2l^UfS<0=sP7@1}2n5RcRa#6qH_vL5xWs1;ipZNy7o0UI z?!40BR+iWEPN3#^8a&fG7AZVYMewYc^*O@lHaU-Z@4G;3cuQl(&;Ld*{HGmniyd=+ z-SEnxdmlq?`e%)6i44fWya%h)imF+gBeIG>ePX3Mu^k!&%CHh&?V`zA>y}d)qqY9C zSInJ;D~0N7)D=soQM?kj)Dw?cP?RUElZNK$IU38(p!%J&fm4@B4Ld*gv(vO&Dd0KIseClE%yTUiQ9Ipotk-p z`A>ttexTti8YAqBXIa104G+Y&B4Skn4Se@uP}(w)tKjVcggs5|URV zL*SB3zvvb?jJi1hk8t$V_X9IB(;xkpe(WD$n7&df;s7#uiW2J{*K$8C@4)+F22jK< z9ey$@%NYNXnX$TmXr?C#bBjUFwknh+j25mOz#8%zu)fH<|KR~#I`+E9J$ih1ok3lP zGhfha^aBj|`T}~ZP=!#VHbm#=;USeEzyh^pP?FY|U?e{=dasaHp3$q%?%-dbJ5gGq z*H6j37*ooW8>YZHaL>Zu6s|V%0+G3*BbdW8Bn%)So|we41)V~RF`A%0&J9>|fwHbj z*Z*|<%#3S{cc4F+!pp^_&=#k+zJ-$mJkI3_$Dks=Lg#Uoi(@(2k8g(=9+!CCc1@J( zLr_eKZfuOhi)#snjivBCzGye zB)q88r~V3C=GJB?kelas9R|IjZHc{iq1q?765wWPiZc`+)@asFSz4HW7vyy!^RC6t z%PE$tG-|6Bcc7DE^=w{CW2jYK6X^SLHaauupOSJS{qvs^HVP#h?P*nyzPM!_y~yh7 zJ=1AIyvRdY0M8P37;0b+aIJ6cAkP*1*8Q#3*Hg|AqVgn!O|;M8B3iSWtFGTrrY zRFwqg$Zr#btvQqdao@s32)=B+ zN`a~IWZawli;Fs2E_A+3&jDRAymZDBgzfamYy17hvxp~3>={jvR~2fuoBO77bdSe<^mt>%`J2mH!<#~^#TD`XeM9SQaC$6EBx0i2P??D?j{Uf{nHTZ1~+G$pBOE1@b{Ho0C6s|aMenN?3uye~we2&Kc77!6YV+x((=4V|uJkp|^BlKVksn1@vw$0h3K1Va$rKO?r}cbtqELm` z^tAa(uBt_mBtz=rBy>u_?>g|gN(=I-v`%o)wS`{WxPj|Q_d!qg-NlGxVKnlQlqn`& zXWnzMXa+zqou{MKk;!hk!h-#@Sn#c)boVvoeTe^#;KOuzR(7=Divq1ZR?1Om@ZdPS zV+?es03w#ls{Zzg3tXAwSk3$0vq3Q#rk+&QYq&w=VCZM9Dl7r|(wWyh_Y)3t)t0C% zaa`EAt%c|o-mp{NO@Aja-aXY5Y!-ovh~!qVjw>_T9C}!~D(A4f9siZ*BwBw{Nbb-Z zz;5D?6<a4%tl z;=xlGN_+_KKcF?hM0F0Q|0I;Ssx!Cf$hXS2@Ls>)+x~7r2OgFHZ=w6HD<;HAuqI_v z;5K3x;?pRN_tCrLm+}s9!yuuwuq;>`v6dU^wf^Dw z#4ChPsMPv;SdT`ld)&d|nfyo}izd=4{Oz-#sYo*&#~^^op+qgDf&4c6ZJ41hY9ex; zHN(>Xe%N`aO4bm-;p5oCPU;B@{eM=>_}_|4X?~31$!nsMK|mEkt7W0ogN$_^=IG?u z_gQU`{YC2)84G%ow&5l*byWgBc5D6C&InzUhP@0@C6I)?N}YT_`qKCVi^EYTGA z{a9rpgsNccW+Wv3H?Kya$=3xhLbRd5B*;`=y30$gCF~m! zY=DdUT`8_%UQ%T_C#F=D7r(mX)Jk_jjw&P5XiTg4|FnoI!FQ$qn;--L)1G=qyT+N= zfec$^>UVT9DHyklTdm%+V$e!k15_9+1&@me$bu~YObT0-b?(xO!ag=%#Qk5;t3HQb z^SJ5!1roSGAjOGJz00G4!QO8GavTx4arG%Km7zA+@DG|a16oO38+-;NzF@1oe>hFh zAk>|jXcX&7@Khvv@!Bvw*qCf2$Ny~@_^dW~zy zgx-5KQtQPR5b*_d z*1sZg99Fo_fxru`rrEDx{s{k*`I7kDKxE*WamYEUYjrwK%Iz>-tsbT!QoFOiD++>d zW9C}OQL9Lm&UuqW{Af7_Ov3@?#f8J!)+Y-R+^mc62%zkfTClNT_iK=f-nC?k(~81k zk6OjYBMFLEhr=Ce7b2#Hh2oLc+{xv3CuEntlSxYplcDZ$EQbA7r)Q_S+{x_JLX>!? zXYe1m{;$wL-XlD;+0Z7J{&Zu#UF|NNy<&W|T)%U)ju|;R62pV`BN_2179amlQKkfl zeq2UgBj9kfEaQ>D*8sTjMv_J7LZ#(K$OgO7=O2fZai2=mSWMQ!vr7QAUCr`mHt@sG zcUbDZO_C3Y$i?L9;-Hc}LS^_sW`i1SC0|~a6;z19fHtj8KvXk|n4zo_Hwi|qTg+**?Rlb!E z+C+a?G$lb~ZIm;W5Jq)`t<>mH4#Nvi+?b1vRX3Og4^~X3OTcQu6AB;?0sD*Vf4)G3 z-^7p)mK9PjhBas>UYjb$U4ut9`gBD5a#>#?eyQuxu7)%)sxtM!w!C;Z{}Mry*XK5?#Juzi!tki?DSe_xw*e0(l+Fbum+lcg%{?fv*UoHmOJ-h-d= zD3JHYzs2{q(z52PDdC$aoknf0#x)h0s94s?g!Z2U7cId)B?#wy4%&_C&oe;mczE~( zbMeVK2shC%SdKDAO=ir+~oMGrzDKlNuUbICfz* zs!?5Y^b2`|_EdK@KUk*7bkhCG-;GIhXZytQ(|8@A^Spo>SOTbjf@gXgTN&m2;cAa;o**L@{+^u%u(BuzF z`keK6w6dCd3LH&C} zw(p5w|6w)e?q&sSPcG9ZK%2YhGG&Ss9bbZ;s#p{8#Xqb?1|Gu^;}`~f{)cDhZO@8h zTk@_gJju+$w_{Qk|JSc9ro;ptsfuRrN+)x>kaqE!(()}cFM88$D#w>qhL{D{71UXU zR8cTy+I>-lI<#Ng(?LtM{lOz39XsDSHo#+}w6fONH)}2x$&!Cz;v%=p;z?N1!;{1Qp?)gfAUPxB&JwCo{VIw4G&;l{cX^`4E`jiSW?FU zCeg$E6h@=!Hjd4!!5jBaO#pr9X=WtSRC@EMRap>84la>7|JB(U%g)XYXyo3+H&5WI zrI}^vkOe2c*Bq~xiHN*&${vHi0CsfpejPi02D%W8Wck3!$azB9pJb>KM+*qeF=9RXi3fqnI;HDH8n*bn0lTWPjJiN7_h**SWjc={BHOm5 zLAy-$@}@@`uJ5QQ&KT9xsDe5r&;M`GjB7keyvV*s?=-Pajwy!Qdc|9{8n425V+d_- z{5}~G{>M8X90a@5${Jbl^_M*bxheP%cgRx@`SFi=QU(1X`Y1DcM}olzAfAb*N-BDH zU`(xZyB|`5``FJ_P6cemod6u+fe-G<5pj#JG}}k#Km_l1s3DtLUgl zN$t&UC&iExXq9)>0J#W*^u!wLq!1t(p2mj$`tGC``)T@6Kzz|+SBa)IPs4%J&|;(U z;?Sutt_9!Q4{9GEf#bv{hQDhWnHYriL{O%j93YTH+vjxAE7vj?!)ZU(=)=C6w}Biy zvvb4Az|@6^^>eYyh%p+(@+FHT_yspNcdk)36XWL`FVFyRaixTW23GbQPM?cGU->ZQ zi9W{y?i6$maOCvzil;Lys+|Yt;)${L^$UNT&qK><`{I>j%fX~{GX*^qOCxd9&;pr3 zCka4R9@(mlgzX4;flzvKniEYMR8LPP^Tmas*$U9?(w_nDwvQppwr|UG>WCoVR=ff0 zMy(d|qWhq4R1Xa?Ffl+NMHMsOQe$b;h&q1N?$pc~%*tCFes1`-v9+NG?j@0!SV}13ZXPQCT6n7_mhUw2@9ba+8wD(}PtKn;j+d zqMB~%8Y4QdN2dTloRbKVBlXX@IF`5O_^4msO5E85$hPq#5W;kFbnakhgY>j{=cYb# zqJ%2j)oVh$(IzKP`@pP8bQxD>$Jb(|CnC~$P?hWD7!ErsTfP3WUsNOxCLYHYjm?#1 z`oj3o(B??b4M_jh1X$Z5A<^>9kOBhE@cYelFgwnTtw|#Xk|yW?_k|{W!AjZnN;D zxD=gvbyzy!Z(zBFr9}X1=PE{Rq%us?=5vj7_YgvdJmBe7dQV_Xfx^>kC8LoJsUP`$ zfyXY**Yx%v%dT25aC`?2B<#n$#_IV}uX&34!YvZycwmhbio1Gr_V$Gk-b?t+xOyl! z^hG`{c*axQca3jH6U3BjLR@Fo5&4@O2_iF|+aLSD@^`gN1xnD*f50Ab zr^bQrMu71-MkIsk)mgLiU}7Duic!&Br2l!U0%rOSz0Q;P-t6}4kML{4jM5rhmyg0z z`O+J=QJ@P8?$C#}WE?Zy!C_%tI{AaXwA#VlnmI) zkkqp0aG_iSqiuuu*5VNlxgSq=f0}sK`o(5N~J0yDm(NV zuxdeszEP1ULSN$i`s=reo>m5U5b<#v;6}fJ$)Yx!ns%?cfmZUb$ywhEbqZ>s+1k#u z&tO9+?mr?)^}o}~)(80YlKc0Q!5nH_`T6&UX5(s9`JepuLdr~@iPZcgOt(24kxmX| zmQ3YkcdPBu!RoDzbVV+R3Uizl=XkyD))`o1{nS0X#ro-~9?W3pnlK-rEXUFNk5PeO z7G0p%H+7#=5aljS3hrQy;?@W~Py*W{>5n)kS~|Zb#c8P@zT@nCYGGu-r9GE#Sscf3 zca5VO3@*-oej4vRiR@a_`R=8LRxD%7{L&tDw#t4f?>4YuN z+UOwpH%by(Ahvj>~LPv1T+EiJ7bbv`0W=#y%=6{^(ZJ$4%UiZU)37-KjoGCCv zk`nwh`UYEK88Kh!K+TanbPAkB#rZtiPl8;tZWKFPO6(O%SivTDccj6D9YzEu?Cw1b zu4S0`rtMoFMpd@ze!jl84X3Q1wS>Rq?O=YGVG}pUc*aF&io09d^}hT*(3r-CZ`|%R zZ1B?(mN)lyhYxl|e+t9--tv8cPHFh>lI+BK%u+{j!VlUAyD4fn@Ob_#eTz9p}?wEEJL^M&X-+3Z+&xVpBJ+nUGUoYB@>9; zzH7vt7^S$oxvywE)KooVR?=Zy4R0l37Wi8RiMhZs*tH#aHUr;~|tzPSge)`qj#6dr}IpQzc~4 zU^@1={5%0AE-nV&B+@}Qw6shs)xME`_0qFotl%0;o164EAixUIA7M4Kl8BOoIy*S6 zHfKKnp8DoVHDX#_{e#o0A03pDkFUHj@4+PdHo$6bCQ>bVXOLsJFYMMrUi{|p*-hhl zFIXKNbkDOm;ZtY2&h&g3KFN;I{HPCeSC<;zR|E*G)Uu)w{ayBISFv7Ay49Ply45Vf zPL0JMf3mp#G9Nl>8H)r7YnX=6Qyi=U>?0I1%q7g(Qf6^2`^tGtYBCUS_}{;8*9t5* zY#KvOQ7IbIU=n*4K1tU-A&Y;@br{8eSD&SJ&YhOi^X)^dhY;c4{PmhF4z<;N0(fwx zeJd-7cl)WGrnx!D04S!Z>RRai5V{ZGB57WduDotsBS*|HF$>a0XGxTWvZ^N=DJzYC zoz0jOT(J6&uwrNEYy;y*Ke(`FNVaPOMp!X3bXLc0(zviBNVb9329h7(rPWpUCXwng zSditjkcXfZGt>d#0bGLmobcvcs31?c8XekLG?fko!IQ{^g{MwJcx-GP{QAozwA6p3 z6f0x6waod`Cw+f(C^#cP<%d8MgfFRn(hq;=sY{dfI~)+?xgE78bcuR=72&5VtwL;J zZPtT~kFTYf*MIW-14#^iPvqLhsy+xczDGvdPH^!IlwwF88WTB|Q>*J>O>_#Wp9>@I)U;WIw%z~~Gvhzeh@^`darl;t9bYoB#_t8`OXLgv znF;`~{k>*y&W`;?t{BcaILC%ft-6+rKA+mV9vp1n*=`uQXjN-qJH;e-j-{b7T0D|A zyBHxuea`ywype0{&dVA_fluyy>SEiqug>SV#_p^oSeo}OEg3i@6HH`(ktc|B2T{^6 z<15Zlory8u$Y)TQ;nWVqW9ThD6reQA)|s0RlU$0YzC)g61LipY=FBRuP{M82)0m(e$g6 z_}w(2sI{MKOKR|RbeQhASsy#wGTdk^Taj+=3xXds?Ro=&P=}iKBh7l$_<{R@<1bAL z^hNTQ2-A-e1kR&W>ieO9bgae)c`! zBuR{Q;@w?PVd2Xk*{Y8Ex9MSc`znzii$ebmoT)k;PGhZ zuB8(VkD+{wj2o$IyqEGeI7qZc|g<;j^c_erGd-A^0+?(#q`XmHZpp^L(3f{4=sSGqVhOgpa>d(8}kFuui?uxzdsj90Qu`)KuZ| zFSc8YDiLuHpc=}%7>qu_n>4wObb>@6b8wyacK!hYfa-xliy@FKy+8aV0#-bBPR?g1 z>&|7sP8BD3;2rdiF*&;P^Gg!9Q^Mj>uJUdnlCU@be_WMPexatIJuQweDoT$KJbw6L z?^pESdb(F!YT0vP`z}xubsUTnQ&WcQd{t{z5Cmc*C7(pI-afHzR8s@NC@Bd=oWdYW zybOzsQVsTt2Lf!XcWe>Rc^;WI5|@DeCLJjqcMjejCaqJ|a%$KeO!qa@atnXJX*6>` z^3bkPac-Vz8Uc2o&%5*fqUzwcUZNWM+;@C6U%1Iw=P10K*>ooLhkAnfhk z2IBM9=&QcowUfo8Gc1`U!B0$;;NaXRc(cOjK+6AEIW~>f`J+2VelN;R%}zGc*@wz6 zstR3m#(_dusdj++Z`YVgDKMK!WQ8NjCn`tj!jwoM=I^&fDH+h@vtLsau1YJrY|d@i zt@vyjyAo9V7#KRGHOczC^UAhSTq7gm-&Buf#^TcXO)FPu3-OHs7Y!80xdSO4GkdO~ z_~fDA{q3)kalj-B(h4IE@>f~Knz;lJ^W@|cw=Z8n@})a2qhS<-ocKzLGh7!sb$3q{ z*perZBt8bQI}^tXF_r_Vs>`=5wWMMl9WH(5U0=CLA-XbO*umm4GCo%r9Kg$g2Xa`p zlIwA|ebLf&>-sI1Q@lax7@9=;an5nAC$xT6KS2KYBg|FJu&5V)Hh;Q$zF^W#D zN>C&lH7@1;sf4vEQV;6!1iV>|-HVo?$>TYApAI-|?_lppRgoCh{MWA#P$mcl%O#{~ zpu`DGPP`!mZ&KvJs2rHtSK%fFIqN!Bj4g0%)o^f`Q1h{4uhm6VgvGSeBnDa-dmuw`4UOq#KYkzVQ$IygS8smbs4%Kx}DWD!2Eq#0)2 zNDhYBJ|EQI_;Us*ih*9zR`n-5yy;2vEToTJhK!bqfR;|M@H3cVNg z@OZ!WHP+otdNizdgwL$orkx#hf0k~#f;9V5S#?ca0rw&O#@(G@nD%oVit))R);+b8 z7Kx_TUgLbFy^hoTXO`laL8hMIMS1R;!NMT^ilg6~klM9YDuQ*8-!Uzo_8X=VDs2#5tw-*`>vTMr}Z_ zvhl?G1dym2_eYTXY~Y;`$u_H#l6ZV}~Z6e|Szr+F;#o!;aD zdwkZnB;#ZE)a(e#R0?yKYfGEC`aMW9D6zB7#S$kCDS)!jmoF}=z0a$s!P_pgUuS)4 zpLagTG6U22Mq1mJ=VoP}iR6oDY@iq?tIMRQ&_i+#_sM4RxYIh`LSqzo+PW(eIM&MO zi3a1FvL@8uO3I4>R}!}C1a^hd z6tjkVGP^zK&%hR%#VGH)^J`3frl-?N=MV9IgEuAm!P@RySUnIPm;wT1AnWfuVgnfD zt}Fa2XTWFTkImcPj!SyZCAW|GPTj;loE7q9UUZzSQF_ELIBwbLfpORp)pWC&Os&w8 zauwmhaxhoRntvg7G0Xj4==*26&1(#8S>oc-`+Y@}`@X-WKzH=TyHYxDeZ`_(akVy_ ztquvNB|u+Z&Li9aHmLt8qkERzO~%#wsY3y&v9SfJ0YzXJrKZ|h`qThTgJ!D6Sq^NJ zm;GhMYoCj4bgI_xmbidhi~*_pJ!`wwa8%~3b9=^+%9FPEeBpMzWB-e{+2@Dt7vsip zdb&1QE6^w~@H7bj-6&!DfYp5kN$9hU&(gDNo^0T# z8MWMF_bNP*D%!v9^)hvy5`vQ{PaV}o^}FWMC`y|}g43r@<`u8jlRD%?C`l#27)p<< z7B%zIGO;3REh31In_LDL$WAlYe*ymKbSZ2?;ThArMVmjfZ|6VQ6+Cc3L?VRVqy7LG zc~$(1i#u?Bh1LI%{r_6H@^~n>KK{&&nOw4rin0^B*~*gLWGTFs;mwt;$k22#)UBk6 zdFU1SU?k!yx00pT7G`vn42lT3gD};&l(B}fjCD5enY{lzpU*je{XXC4Jm>da&UqS1 z&!)ERu$bkedU|?o6a0+YMO#bEe>@5;C)J#f0+uKgMY;&e>C0#3!j+qpt+vNa)Jchd1D` zr{kk!-D!O7yL1KI--VVWW;SUBol8Mb$*A#Z&+t6g!re zRw;JUo1;IJa^s&jWgpSOb(9?wAG8yGfKo@1!FA2@wQU{(kv7?ReOutwhF5xtc_N&+XA7nDoyz@`!ol9`;Q; z9l`TX;q*ZWyrZZ)TXvhe@((Q#F9qu@<__dLi0Xi)Sr6lRoK3s2;pmNN=Q;N9;E7XK zNOTe3^_3cK%}@P~Q>YIz9%zWlg6k%MfOAM5_ck7uNENjQM@L6d=GNGi3`m>@IJSGG zE*9^4breompbrevcwwxY3k@}`M2dJ5@*)25jdGU_$2l_txo_OUH|hCrzcbCZ2l~+W z)waLBt|}`-7L>W``!_l@q}|0%B%J*($+U@Uq=SUc)F4pOe2>9sS&hC>v~m%qF031; zJ#b96g5Pz~X-?kh$Txhe)(feO2Bve#a7w>yFYI7}8%hqu{U>`5=6_E9|x=M-#K zIJMkUjI`}d)L1wbPw&7!4|;=*ekG3KRVaY*@H;WgM_!Vbz~vGrL72NS{oU-zWQ|Vm zdNEtLhKAy~v(GH9&d3^WNFfFMbL<1T(kfQTSd3sW#=4&y(VOebUB0k4$5z-?0;_!x zi!7>{QgkWZly|DoFlwikRAl)7Ecp$P+q@(|mJyIGjrIw+p!U1{#81E48(;G4VN1S) zeNE}teOBJp}_d!8VVQvCV+t z^XdGC*X$s2!&m~!NXUbg9?S-io5q%$Mj3UN^SWwAt@jH=-y?mM6yoQcduIDxdl_8} zTu?dEY+1OXYj3bW(KYs7sn{u3W44K$b-k=icK2p@tBR*CSdtT9HTCvFt%1mc(aj=D zrm<#~C0=Q^Ena!ewVp}%)9PB6q;Dh%Xm;Q_6h-@Y!N90WSyxBhGP+Y-C9l>L*X1Qh zqGeK+)jly5>pjm#p5t$rmw>V*g$#K67ty2KaLPJ+t?lv{W{(>&>}`%5DCvOYA)JIe zs0gr3eNYayGpiHmtfru#48TBuYQ&wav4>=dmr>twx$#b%_b(seS`+qH?p+p=6YMyahxc6 z@=>uIlZI56!WWe)Dz%~&^pf=AtqMIw=^F8mrPgh82BuH%zi}bM+xY?Du(3a8)VRL*uh~(!g-rnuqroO$Nzh& z(S!9Co78nTxZQ-N);{9d_xpq(1y97B=qlHw#Tsb_+oI-aB$ePyB@|@wIOmJ@FUiYZ z2kyo>-CyyNkh4$jG}=X~ovrsVS-dc%s+=2$jJR(`25EU_(YNzW6FnWp#g1$Z)rDA@ zFHwNmFY~(p74|yll8iJQL5Tq>ZDM+|tBgc&M(u=PO}^(&2jK~c^mtTYhI7mS=%M@% z#*m`_9bI)v!=J&<*`hj9!{lA3t?&=_V4^NU>#Ty(Rukv1__uR=xk>2@msq_DOZ^1h zwxz4vwX0#|v;|N-R2wy7;jU1p<<#xa5ol94n&bkU>S=zyAE-%4C4VE(H?%x*>PCcJLR8i0ceAQ4JBDy!! z<|*j(U(G%d``5ZTk@}y@kX3B4Xzws8HkLbw()So+Glypea!$OIKqW@NuiZBB57l?G zWM9-u8_YP$W@qc3*E!g26-frVcs$HG-1?p0U+McNC%gcdz?hq-1R&y!p!#N9Nc*9l zi>oKyDH-k9xfVJUll5f-WBJ>rU7AQ1xm>u2*2(TZRE0o|FPc8Ro_bHD4&_&9D!XqG z8Xrws5j`pHNI{@iJWgn^LP|T@`h#-cJ7E0P=}1l=(k9z`U4fy+@epZ3+>cpDV=-0C=1w#ytvzFc1dNI&+E-?U(fjyJ?mLNuhTTGMXSJkOcSo7QX7W_?g+R z(2J#8atSGdF@CoF6D-l3%P*Nk=pZi$@>;& z)zFKj2jdAGNhvN4)c^nmp-DtRR9J<@m)}oQXBfvnh2xxgO1msHQlq@D7Rb0dtL9qNftyoHt7O=ah z=k)Z)0fsJn67ukUp7(v8@B5tdK7EeO;c#U6A4OK(kQMfv_!gKf#RwHVDQN_ z$3NPOmPj)>6XyeuToP=vwRLa(e~wHe%e4U591cfzuk2zvo?x%+0$@6xpjL9Qy0&fv zPrgo5D>-EQ7m5porGBwrS82{KvC)nYOa zu0SBrz`(!&0J5xDZrrNG;~D_1t*wlXhOyi21%3fQlBx{?O-;=V3=AO43PPak!}x59 zsqmC3UKs*M59ONB!cv;0bbdP1H%)~LHx$85@kYr3gt3|Y3u5jAZEdH3t+n7{DQ?Mk z@7}W}aM0rfN-J>g+&KWk;V=yi4TQt_v)ODmve~Smb(=2wAfl@3<^+l>(B0i_;O_2j z?oSNkIdT|)nMaTD964-g-FDJ<)JWv(Y=y~TrXPgJyhw5N>W@aO;@<(UcYnSDdKCbc z(pkdcF!v{hIr#Obw4D708xR@1&B5bm7#qBedi)FkL$_{n|Cc+Q^c}_5*-G1Y-{$On zzY@9GZ;W(`QaVKg2*XdON{q6spsEc3XfMKy4c=x^i;~U4*x+px~Q#h zVdhyMlIJx~hhG73;M55Ywwz{RZit#aExegX85M9koh&XcmgtSU1dvKjGV`pDRC1E^ zvS!%Q%NnWVWWn0GMpPd8e|7DX{f!0mQp*18<74e{Q*LNER89&C3P2zucqS=WSXxY! zvrLqh?7B|bSnx1h8nwMdDJGbOXA7$|JW#hF%=n41b>n*l{r za}p~-!a87R06|>J3a)-GU|Rt&o+4M3HuJLp00ccrL_t(&f$f=(bJ{i($3;m>49w7$ z7^Uvy;Æ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 diff --git a/icons/obj/mining.dmi b/icons/obj/mining.dmi index c39dbef36a825c2f9d3912a80db9b076dfcce09c..ef7ea2ddac733cefec36ea2a124f5712dca89e91 100644 GIT binary patch delta 10812 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 delta 29395 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 literal 0 HcmV?d00001 From 8cd6e58c07a8f8c399416e15c07b280817ff9421 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Sun, 21 Aug 2016 11:44:54 -0400 Subject: [PATCH 02/22] updates --- _maps/map_files/templates/shelter_1.dmm | 110 ++++++++++++++ code/__DEFINES/misc.dm | 9 +- code/_globalvars/mapping.dm | 1 + code/datums/helper_datums/map_template.dm | 19 +-- code/game/objects/items/weapons/dice.dm | 8 +- code/modules/mining/mine_items.dm | 171 +++++----------------- code/modules/mining/shelters.dm | 42 ++++++ paradise.dme | 1 + 8 files changed, 210 insertions(+), 151 deletions(-) create mode 100644 _maps/map_files/templates/shelter_1.dmm create mode 100644 code/modules/mining/shelters.dm diff --git a/_maps/map_files/templates/shelter_1.dmm b/_maps/map_files/templates/shelter_1.dmm new file mode 100644 index 00000000000..a3535c89361 --- /dev/null +++ b/_maps/map_files/templates/shelter_1.dmm @@ -0,0 +1,110 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/simulated/wall/survival, +/area/survivalpod) +"b" = ( +/obj/structure/sign/mining/survival{ + tag = "icon-survival (NORTH)"; + icon_state = "survival"; + dir = 1 + }, +/turf/simulated/wall/survival, +/area/survivalpod) +"c" = ( +/obj/structure/fans, +/turf/simulated/floor/pod, +/area/survivalpod) +"d" = ( +/obj/machinery/smartfridge/survival_pod, +/turf/simulated/floor/pod, +/area/survivalpod) +"e" = ( +/obj/item/device/gps/computer, +/turf/simulated/floor/pod, +/area/survivalpod) +"f" = ( +/obj/structure/sign/mining/survival{ + dir = 8 + }, +/turf/simulated/wall/survival, +/area/survivalpod) +"g" = ( +/obj/machinery/sleeper/survival_pod, +/turf/simulated/floor/pod, +/area/survivalpod) +"h" = ( +/turf/simulated/floor/pod, +/area/survivalpod) +"i" = ( +/obj/structure/stool/bed/pod, +/obj/item/weapon/bedsheet/brown, +/turf/simulated/floor/pod, +/area/survivalpod) +"j" = ( +/obj/structure/sign/mining/survival{ + tag = "icon-survival (EAST)"; + icon_state = "survival"; + dir = 4 + }, +/turf/simulated/wall/survival, +/area/survivalpod) +"k" = ( +/obj/structure/table/survival_pod, +/turf/simulated/floor/pod, +/area/survivalpod) +"l" = ( +/obj/structure/tubes, +/obj/structure/stool/bed/chair/comfy/black{ + dir = 8 + }, +/turf/simulated/floor/pod, +/area/survivalpod) +"m" = ( +/obj/structure/sign/mining/survival, +/turf/simulated/wall/survival, +/area/survivalpod) +"n" = ( +/obj/structure/fans/tiny, +/obj/machinery/door/airlock/survival_pod, +/turf/simulated/floor/pod, +/area/survivalpod) +"o" = ( +/obj/structure/sign/mining, +/turf/simulated/wall/survival, +/area/survivalpod) + +(1,1,1) = {" +a +a +f +a +a +"} +(2,1,1) = {" +a +c +g +k +m +"} +(3,1,1) = {" +b +d +h +h +n +"} +(4,1,1) = {" +a +e +i +l +o +"} +(5,1,1) = {" +a +a +j +a +a +"} diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index ab1357a5833..f8ac8d0176f 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -281,4 +281,11 @@ // Sound #define SOUND_MINIMUM_PRESSURE 10 -#define FALLOFF_SOUNDS 0.5 \ No newline at end of file +#define FALLOFF_SOUNDS 0.5 + + +// Bluespace shelter deploy checks +#define SHELTER_DEPLOY_ALLOWED "allowed" +#define SHELTER_DEPLOY_BAD_TURFS "bad turfs" +#define SHELTER_DEPLOY_BAD_AREA "bad area" +#define SHELTER_DEPLOY_ANCHORED_OBJECTS "anchored objects" \ No newline at end of file diff --git a/code/_globalvars/mapping.dm b/code/_globalvars/mapping.dm index abc81f9d52a..44b678a8f67 100644 --- a/code/_globalvars/mapping.dm +++ b/code/_globalvars/mapping.dm @@ -52,3 +52,4 @@ var/list/datum/map_template/map_templates = list() var/list/datum/map_template/ruins_templates = list() var/list/datum/map_template/space_ruins_templates = list() //var/list/datum/map_template/lava_ruins_templates = list() +var/list/datum/map_template/shelter_templates = list() \ No newline at end of file diff --git a/code/datums/helper_datums/map_template.dm b/code/datums/helper_datums/map_template.dm index 8b61be7d12b..0d52cdc9463 100644 --- a/code/datums/helper_datums/map_template.dm +++ b/code/datums/helper_datums/map_template.dm @@ -116,7 +116,7 @@ if(!config.disable_space_ruins) // so we don't unnecessarily clutter start-up preloadRuinTemplates() - //preloadShuttleTemplates() + preloadShelterTemplates() /proc/preloadRuinTemplates() // Still supporting bans by filename @@ -147,15 +147,12 @@ if(istype(R, /datum/map_template/ruin/space)) space_ruins_templates[R.name] = R -/* -/proc/preloadShuttleTemplates() - for(var/item in subtypesof(/datum/map_template/shuttle)) - var/datum/map_template/shuttle/shuttle_type = item - if(!(initial(shuttle_type.suffix))) +/proc/preloadShelterTemplates() + for(var/item in subtypesof(/datum/map_template/shelter)) + var/datum/map_template/shelter/shelter_type = item + if(!(initial(shelter_type.mappath))) continue + var/datum/map_template/shelter/S = new shelter_type() - var/datum/map_template/shuttle/S = new shuttle_type() - - shuttle_templates[S.shuttle_id] = S - map_templates[S.shuttle_id] = S -*/ + shelter_templates[S.shelter_id] = S + map_templates[S.shelter_id] = S \ No newline at end of file diff --git a/code/game/objects/items/weapons/dice.dm b/code/game/objects/items/weapons/dice.dm index dcd32582046..6399a11c291 100644 --- a/code/game/objects/items/weapons/dice.dm +++ b/code/game/objects/items/weapons/dice.dm @@ -130,18 +130,12 @@ if(special_faces.len == sides) result = special_faces[result] if(user != null) //Dice was rolled in someone's hand - user.visible_message("[user] has thrown [src]. It lands on [result]. [comment]", \ + user.visible_message("[user] has thrown [src]. It lands on [result]. [comment]", \ "You throw [src]. It lands on [result]. [comment]", \ "You hear [src] rolling, it sounds like a [fake_result].") else if(src.throwing == 0) //Dice was thrown and is coming to rest visible_message("[src] rolls to a stop, landing on [result]. [comment]") -/obj/item/weapon/dice/d4/Crossed(var/mob/living/carbon/human/H) - if(istype(H) && !H.shoes) - to_chat(H, "You step on the D4!") - H.apply_damage(4,BRUTE,(pick("l_leg", "r_leg"))) - H.Weaken(3) - /obj/item/weapon/dice/d20/e20/diceroll(mob/user as mob, thrown) if(triggered) return diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index c79f2aa4046..4e490479697 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -278,153 +278,60 @@ icon_state = "capsule" icon = 'icons/obj/mining.dmi' w_class = 1 + origin_tech = "engineering=3;bluespace=3" + var/template_id = "shelter_alpha" + var/datum/map_template/shelter/template var/used = FALSE +/obj/item/weapon/survivalcapsule/proc/get_template() + if(template) + return + template = shelter_templates[template_id] + if(!template) + throw EXCEPTION("Shelter template ([template_id]) not found!") + qdel(src) + +/obj/item/weapon/survivalcapsule/Destroy() + template = null // without this, capsules would be one use. per round. + return ..() + +/obj/item/weapon/survivalcapsule/examine(mob/user) + . = ..() + get_template() + to_chat(user, "This capsule has the [template.name] stored.") + to_chat(user, template.description) + /obj/item/weapon/survivalcapsule/attack_self() + // Can't grab when capsule is New() because templates aren't loaded then + get_template() if(used == FALSE) loc.visible_message("[src] begins to shake. Stand back!") used = TRUE sleep(50) - var/turf/T = get_turf(src) - var/clear = TRUE - for(var/turf/turf in range(2, T)) - if(turf.density && !istype(turf, /turf/simulated/mineral)) - clear = FALSE - break - for(var/obj/obj in turf) - if(obj.density && obj.anchored) - clear = FALSE - break - if(!clear) - loc.visible_message("[src] doesn't have room to deploy! You need to clear a 5x5 area!") + var/turf/deploy_location = get_turf(src) + var/status = template.check_deploy(deploy_location) + switch(status) + if(SHELTER_DEPLOY_BAD_AREA) + loc.visible_message("[src] will not function in this area.") + if(SHELTER_DEPLOY_BAD_TURFS, SHELTER_DEPLOY_ANCHORED_OBJECTS) + var/width = template.width + var/height = template.height + loc.visible_message("[src] doesn't have room to deploy! You need to clear a [width]x[height] area!") + + if(status != SHELTER_DEPLOY_ALLOWED) used = FALSE return + playsound(get_turf(src), 'sound/effects/phasein.ogg', 100, 1) + + var/turf/T = deploy_location if(!is_mining_level(T.z))//only report capsules away from the mining/lavaland level message_admins("[key_name_admin(usr)] (?) (FLW) activated a bluespace capsule away from the mining level! (JMP)") log_admin("[key_name(usr)] activated a bluespace capsule away from the mining level at [T.x], [T.y], [T.z]") - load() - new /obj/effect/effect/smoke(loc) + template.load(deploy_location, centered = TRUE) + new /obj/effect/effect/harmless_smoke(get_turf(src)) qdel(src) -/obj/item/weapon/survivalcapsule/proc/load() - var/list/blacklist = list(/area/shuttle) //Shuttles move based on area, and we'd like not to break them - var/turf/start_turf = get_turf(loc) - var/turf/cur_turf - var/x_size = 5 - var/y_size = 5 - var/list/walltypes = list(/turf/simulated/wall/survival) - var/floor_type = /turf/simulated/floor/pod - var/room - - //Center the room/spawn it - start_turf = locate(start_turf.x -2, start_turf.y - 2, start_turf.z) - - room = spawn_room(start_turf, x_size, y_size, walltypes, floor_type, "Emergency Shelter") - - start_turf = get_turf(loc) - - //Fill it - - //The door - cur_turf = locate(start_turf.x, start_turf.y-2, start_turf.z) - new /obj/machinery/door/airlock/survival_pod(cur_turf) - - - //Bed middle right - cur_turf = locate(start_turf.x+1, start_turf.y, start_turf.z) - new /obj/structure/stool/bed/pod(cur_turf) - new /obj/item/weapon/bedsheet/brown(cur_turf) - - //Chair bottom right - cur_turf = locate(start_turf.x+1, start_turf.y-1, start_turf.z) - new /obj/structure/tubes(cur_turf) - var/obj/structure/stool/bed/chair/comfy/black/C = new (cur_turf) - C.dir = 8 - - //GPS computer top right - cur_turf = locate(start_turf.x+1, start_turf.y+1, start_turf.z) - new /obj/item/device/gps/computer(cur_turf) - - //Donk Pocket Storage Top/middle - cur_turf = locate(start_turf.x, start_turf.y+1, start_turf.z) - new /obj/machinery/smartfridge/survival_pod(cur_turf) - - //Table in Bottom Left - cur_turf = locate(start_turf.x-1, start_turf.y-1, start_turf.z) - new /obj/structure/table/survival_pod(cur_turf) - - //Sleeper Middle Left - cur_turf = locate(start_turf.x-1, start_turf.y, start_turf.z) - new /obj/machinery/sleeper/survival_pod(cur_turf) - - //Fans Top Left - cur_turf = locate(start_turf.x-1, start_turf.y+1, start_turf.z) - new /obj/structure/fans(cur_turf) - - //Signs - cur_turf = locate(start_turf.x-2, start_turf.y, start_turf.z) - var/obj/structure/sign/mining/survival/S1 = new(cur_turf) - S1.dir = EAST - - cur_turf = locate(start_turf.x+2, start_turf.y, start_turf.z) - var/obj/structure/sign/mining/survival/S2 = new(cur_turf) - S2.dir = WEST - - cur_turf = locate(start_turf.x, start_turf.y+2, start_turf.z) - var/obj/structure/sign/mining/survival/S3 = new(cur_turf) - S3.dir = NORTH - - cur_turf = locate(start_turf.x-1, start_turf.y-2, start_turf.z) - var/obj/structure/sign/mining/survival/S4 = new(cur_turf) - S4.dir = SOUTH - - cur_turf = locate(start_turf.x+1, start_turf.y-2, start_turf.z) - new /obj/structure/sign/mining(cur_turf) - - var/area/survivalpod/L = new /area/survivalpod - - var/turf/threshhold = locate(start_turf.x, start_turf.y-2, start_turf.z) - threshhold.ChangeTurf(/turf/simulated/floor/pod) - var/turf/simulated/floor/pod/doorturf = threshhold - air_master.remove_from_active(doorturf) - doorturf.oxygen = 21 - doorturf.temperature = 293.15 - doorturf.nitrogen = 82 - doorturf.carbon_dioxide = 0 - doorturf.toxins = 0 - doorturf.air.oxygen = 21 - doorturf.air.carbon_dioxide = 0 - doorturf.air.nitrogen = 82 - doorturf.air.toxins = 0 - doorturf.air.temperature = 293.15 - air_master.add_to_active(doorturf) - var/area/ZZ = get_area(threshhold) - if(!is_type_in_list(ZZ, blacklist)) - L.contents += threshhold - threshhold.overlays.Cut() - - new /obj/structure/fans/tiny(threshhold) //a tiny fan, to keep the air in. - - var/list/turfs = room["floors"] - for(var/turf/simulated/floor/A in turfs) - air_master.remove_from_active(A) - A.oxygen = 21 - A.temperature = 293.15 - A.nitrogen = 82 - A.carbon_dioxide = 0 - A.toxins = 0 - A.air.oxygen = 21 - A.air.carbon_dioxide = 0 - A.air.nitrogen = 82 - A.air.toxins = 0 - A.air.temperature = 293.15 - air_master.add_to_active(A) - A.overlays.Cut() - var/area/Z = get_area(A) - if(!is_type_in_list(Z, blacklist)) - L.contents += A - //Pod turfs and objects diff --git a/code/modules/mining/shelters.dm b/code/modules/mining/shelters.dm new file mode 100644 index 00000000000..38750b12d19 --- /dev/null +++ b/code/modules/mining/shelters.dm @@ -0,0 +1,42 @@ +/datum/map_template/shelter + var/shelter_id + var/description + var/blacklisted_turfs + var/whitelisted_turfs + var/banned_areas + +/datum/map_template/shelter/New() + . = ..() + blacklisted_turfs = typecacheof(list(/turf/simulated/wall, /turf/simulated/mineral, /turf/simulated/shuttle/wall)) + whitelisted_turfs = list() + banned_areas = typecacheof(/area/shuttle) + +/datum/map_template/shelter/proc/check_deploy(turf/deploy_location) + var/affected = get_affected_turfs(deploy_location, centered=TRUE) + for(var/turf/T in affected) + var/area/A = get_area(T) + if(is_type_in_typecache(A, banned_areas)) + return SHELTER_DEPLOY_BAD_AREA + + var/banned = is_type_in_typecache(T, blacklisted_turfs) + var/permitted = is_type_in_typecache(T, whitelisted_turfs) + if(banned && !permitted) + return SHELTER_DEPLOY_BAD_TURFS + + for(var/obj/O in T) + if(O.density && O.anchored) + return SHELTER_DEPLOY_ANCHORED_OBJECTS + return SHELTER_DEPLOY_ALLOWED + +/datum/map_template/shelter/alpha + name = "Shelter Alpha" + shelter_id = "shelter_alpha" + description = "A cosy self-contained pressurized shelter, with \ + built-in navigation, entertainment, medical facilities and a \ + sleeping area! Order now, and we'll throw in a TINY FAN, \ + absolutely free!" + mappath = "_maps/map_files/templates/shelter_1.dmm" + +/datum/map_template/shelter/alpha/New() + . = ..() + whitelisted_turfs = typecacheof(/turf/simulated/mineral) diff --git a/paradise.dme b/paradise.dme index 883e8908d01..9e0e34dabc1 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1412,6 +1412,7 @@ #include "code\modules\mining\money_bag.dm" #include "code\modules\mining\ore.dm" #include "code\modules\mining\satchel_ore_boxdm.dm" +#include "code\modules\mining\shelters.dm" #include "code\modules\mining\laborcamp\laborminerals.dm" #include "code\modules\mining\laborcamp\laborshuttle.dm" #include "code\modules\mining\laborcamp\laborstacker.dm" From 137af9a5a9535e60e8668385dd71af08b41ea953 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Sun, 21 Aug 2016 18:17:54 -0400 Subject: [PATCH 03/22] fixups --- _maps/map_files/templates/shelter_1.dmm | 127 ++++-------------------- code/modules/mining/mine_items.dm | 6 +- 2 files changed, 21 insertions(+), 112 deletions(-) diff --git a/_maps/map_files/templates/shelter_1.dmm b/_maps/map_files/templates/shelter_1.dmm index a3535c89361..d3745951e23 100644 --- a/_maps/map_files/templates/shelter_1.dmm +++ b/_maps/map_files/templates/shelter_1.dmm @@ -1,110 +1,23 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"a" = ( -/turf/simulated/wall/survival, -/area/survivalpod) -"b" = ( -/obj/structure/sign/mining/survival{ - tag = "icon-survival (NORTH)"; - icon_state = "survival"; - dir = 1 - }, -/turf/simulated/wall/survival, -/area/survivalpod) -"c" = ( -/obj/structure/fans, -/turf/simulated/floor/pod, -/area/survivalpod) -"d" = ( -/obj/machinery/smartfridge/survival_pod, -/turf/simulated/floor/pod, -/area/survivalpod) -"e" = ( -/obj/item/device/gps/computer, -/turf/simulated/floor/pod, -/area/survivalpod) -"f" = ( -/obj/structure/sign/mining/survival{ - dir = 8 - }, -/turf/simulated/wall/survival, -/area/survivalpod) -"g" = ( -/obj/machinery/sleeper/survival_pod, -/turf/simulated/floor/pod, -/area/survivalpod) -"h" = ( -/turf/simulated/floor/pod, -/area/survivalpod) -"i" = ( -/obj/structure/stool/bed/pod, -/obj/item/weapon/bedsheet/brown, -/turf/simulated/floor/pod, -/area/survivalpod) -"j" = ( -/obj/structure/sign/mining/survival{ - tag = "icon-survival (EAST)"; - icon_state = "survival"; - dir = 4 - }, -/turf/simulated/wall/survival, -/area/survivalpod) -"k" = ( -/obj/structure/table/survival_pod, -/turf/simulated/floor/pod, -/area/survivalpod) -"l" = ( -/obj/structure/tubes, -/obj/structure/stool/bed/chair/comfy/black{ - dir = 8 - }, -/turf/simulated/floor/pod, -/area/survivalpod) -"m" = ( -/obj/structure/sign/mining/survival, -/turf/simulated/wall/survival, -/area/survivalpod) -"n" = ( -/obj/structure/fans/tiny, -/obj/machinery/door/airlock/survival_pod, -/turf/simulated/floor/pod, -/area/survivalpod) -"o" = ( -/obj/structure/sign/mining, -/turf/simulated/wall/survival, -/area/survivalpod) +"a" = (/turf/simulated/wall/survival,/area/survivalpod) +"b" = (/obj/structure/sign/mining/survival{tag = "icon-survival (NORTH)"; icon_state = "survival"; dir = 1},/turf/simulated/wall/survival,/area/survivalpod) +"c" = (/obj/structure/fans,/turf/simulated/floor/pod,/area/survivalpod) +"d" = (/obj/machinery/smartfridge/survival_pod,/turf/simulated/floor/pod,/area/survivalpod) +"e" = (/obj/item/device/gps/computer,/turf/simulated/floor/pod,/area/survivalpod) +"f" = (/obj/structure/sign/mining/survival{dir = 8},/turf/simulated/wall/survival,/area/survivalpod) +"g" = (/obj/machinery/sleeper/survival_pod,/turf/simulated/floor/pod,/area/survivalpod) +"h" = (/turf/simulated/floor/pod,/area/survivalpod) +"i" = (/obj/structure/stool/bed/pod,/obj/item/weapon/bedsheet/brown,/turf/simulated/floor/pod,/area/survivalpod) +"j" = (/obj/structure/sign/mining/survival{tag = "icon-survival (EAST)"; icon_state = "survival"; dir = 4},/turf/simulated/wall/survival,/area/survivalpod) +"k" = (/obj/structure/table/survival_pod,/turf/simulated/floor/pod,/area/survivalpod) +"l" = (/obj/structure/tubes,/obj/structure/stool/bed/chair/comfy/black{dir = 8},/turf/simulated/floor/pod,/area/survivalpod) +"m" = (/obj/structure/sign/mining/survival,/turf/simulated/wall/survival,/area/survivalpod) +"n" = (/obj/structure/fans/tiny,/obj/machinery/door/airlock/survival_pod,/turf/simulated/floor/pod,/area/survivalpod) +"o" = (/obj/structure/sign/mining,/turf/simulated/wall/survival,/area/survivalpod) (1,1,1) = {" -a -a -f -a -a -"} -(2,1,1) = {" -a -c -g -k -m -"} -(3,1,1) = {" -b -d -h -h -n -"} -(4,1,1) = {" -a -e -i -l -o -"} -(5,1,1) = {" -a -a -j -a -a +aabaa +acdea +fghij +akhla +amnoa "} diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index 4e490479697..cf1c4745435 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -288,13 +288,9 @@ return template = shelter_templates[template_id] if(!template) - throw EXCEPTION("Shelter template ([template_id]) not found!") + log_runtime("Shelter template ([template_id]) not found!", src) qdel(src) -/obj/item/weapon/survivalcapsule/Destroy() - template = null // without this, capsules would be one use. per round. - return ..() - /obj/item/weapon/survivalcapsule/examine(mob/user) . = ..() get_template() From f4db89eb8855fd6f58cc84fe935b9d348278ab49 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Sun, 21 Aug 2016 19:56:49 -0400 Subject: [PATCH 04/22] full desconstruction --- _maps/map_files/templates/shelter_1.dmm | 2 +- code/game/machinery/Sleeper.dm | 13 +++++ code/game/machinery/constructable_frame.dm | 9 +++ code/game/machinery/machinery.dm | 2 + code/modules/food_and_drinks/food/snacks.dm | 11 ++++ .../kitchen_machinery/smartfridge.dm | 5 +- code/modules/mining/mine_items.dm | 41 +++++++++++++- code/modules/reagents/newchem/medicine.dm | 53 +++++++++++++++++- icons/obj/lavaland/survival_pod.dmi | Bin 10474 -> 9836 bytes 9 files changed, 131 insertions(+), 5 deletions(-) diff --git a/_maps/map_files/templates/shelter_1.dmm b/_maps/map_files/templates/shelter_1.dmm index d3745951e23..19071ada955 100644 --- a/_maps/map_files/templates/shelter_1.dmm +++ b/_maps/map_files/templates/shelter_1.dmm @@ -1,7 +1,7 @@ "a" = (/turf/simulated/wall/survival,/area/survivalpod) "b" = (/obj/structure/sign/mining/survival{tag = "icon-survival (NORTH)"; icon_state = "survival"; dir = 1},/turf/simulated/wall/survival,/area/survivalpod) "c" = (/obj/structure/fans,/turf/simulated/floor/pod,/area/survivalpod) -"d" = (/obj/machinery/smartfridge/survival_pod,/turf/simulated/floor/pod,/area/survivalpod) +"d" = (/obj/machinery/smartfridge/survival_pod/loaded,/turf/simulated/floor/pod,/area/survivalpod) "e" = (/obj/item/device/gps/computer,/turf/simulated/floor/pod,/area/survivalpod) "f" = (/obj/structure/sign/mining/survival{dir = 8},/turf/simulated/wall/survival,/area/survivalpod) "g" = (/obj/machinery/sleeper/survival_pod,/turf/simulated/floor/pod,/area/survivalpod) diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index a0b3f147b46..60e650691e5 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -577,4 +577,17 @@ light_color = LIGHT_COLOR_DARKRED +/obj/machinery/sleeper/syndie/New() + ..() + component_parts = list() + component_parts += new /obj/item/weapon/circuitboard/sleeper/syndicate(null) + var/obj/item/weapon/stock_parts/matter_bin/B = new(null) + B.rating = initial_bin_rating + component_parts += B + component_parts += new /obj/item/weapon/stock_parts/manipulator(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + component_parts += new /obj/item/stack/cable_coil(null, 1) + RefreshParts() + #undef ADDICTION_SPEEDUP_TIME \ No newline at end of file diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index 2defdbf4623..2c6740ffbb3 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -744,6 +744,15 @@ obj/item/weapon/circuitboard/rdserver /obj/item/stack/cable_coil = 1, /obj/item/weapon/stock_parts/console_screen = 2) +/obj/item/weapon/circuitboard/sleeper/syndicate + name = "circuit board (Sleeper Syndicate)" + build_path = /obj/machinery/sleeper/syndie + +/obj/item/weapon/circuitboard/sleeper/survival + name = "circuit board (Sleeper Survival Pod)" + build_path = /obj/machinery/sleeper/survival_pod + + /obj/item/weapon/circuitboard/bodyscanner name = "circuit board (Body Scanner)" build_path = /obj/machinery/bodyscanner diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index 518304fda5f..b003d9ef1d6 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -386,6 +386,8 @@ Class Procs: I.crit_fail = 1 I.forceMove(loc) qdel(src) + return 1 + return 0 /obj/machinery/proc/default_deconstruction_screwdriver(var/mob/user, var/icon_state_open, var/icon_state_closed, var/obj/item/weapon/screwdriver/S) if(istype(S)) diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm index a012afa74f9..d403b4aae4b 100644 --- a/code/modules/food_and_drinks/food/snacks.dm +++ b/code/modules/food_and_drinks/food/snacks.dm @@ -779,6 +779,17 @@ Post_Consume(mob/living/M) M.reagents.add_reagent("omnizine", 15) +/obj/item/weapon/reagent_containers/food/snacks/warmdonkpocket_weak + name = "Lightly Warm Donk-pocket" + desc = "The food of choice for the seasoned traitor. This one is lukewarm." + icon_state = "donkpocket" + filling_color = "#DEDEAB" + +/obj/item/weapon/reagent_containers/food/snacks/warmdonkpocket_weak/New() + ..() + reagents.add_reagent("nutriment", 4) + reagents.add_reagent("weak_omnizine", 3) + /obj/item/weapon/reagent_containers/food/snacks/syndidonkpocket name = "Donk-pocket" desc = "This donk-pocket is emitting a small amount of heat." diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm index 9a670e42d7a..c6f7e54a003 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm @@ -49,6 +49,8 @@ /obj/machinery/smartfridge/Destroy() qdel(wires) wires = null + for(var/atom/movable/A in contents) + A.forceMove(loc) return ..() /obj/machinery/smartfridge/proc/accept_check(var/obj/item/O as obj) @@ -207,7 +209,8 @@ power_change() return - default_deconstruction_crowbar(O) + if(default_deconstruction_crowbar(O)) + return if(istype(O, /obj/item/device/multitool)||istype(O, /obj/item/weapon/wirecutters)) if(panel_open) diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index cf1c4745435..1b1e4755e9b 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -372,6 +372,19 @@ icon_state = "sleeper-open" density = 0 +/obj/machinery/sleeper/survival_pod/New() + ..() + component_parts = list() + component_parts += new /obj/item/weapon/circuitboard/sleeper/survival(null) + var/obj/item/weapon/stock_parts/matter_bin/B = new(null) + B.rating = initial_bin_rating + component_parts += B + component_parts += new /obj/item/weapon/stock_parts/manipulator(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + component_parts += new /obj/item/stack/cable_coil(null, 1) + RefreshParts() + //Computer /obj/item/device/gps/computer name = "pod computer" @@ -411,15 +424,29 @@ max_n_of_items = 10 pixel_y = -4 +/obj/item/weapon/circuitboard/smartfridge/survival + name = "circuit board (Smartfridge Survival)" + build_path = /obj/machinery/smartfridge/survival_pod + +/obj/item/weapon/circuitboard/smartfridge/attackby(obj/item/I, mob/user, params) + return + /obj/machinery/smartfridge/survival_pod/accept_check(obj/item/O) if(istype(O, /obj/item)) return 1 return 0 /obj/machinery/smartfridge/survival_pod/New() + ..() + component_parts = list() + component_parts += new /obj/item/weapon/circuitboard/smartfridge/survival(null) + component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) + RefreshParts() + +/obj/machinery/smartfridge/survival_pod/loaded/New() ..() for(var/i in 1 to 5) - var/obj/item/weapon/reagent_containers/food/snacks/warmdonkpocket/W = new(src) + var/obj/item/weapon/reagent_containers/food/snacks/warmdonkpocket_weak/W = new(src) load(W) if(prob(50)) var/obj/item/weapon/storage/pill_bottle/dice/D = new(src) @@ -494,4 +521,14 @@ name = "tubes" anchored = 1 layer = MOB_LAYER - 0.2 - density = 0 \ No newline at end of file + density = 0 + +/obj/structure/tubes/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/wrench)) + playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) + user.visible_message("[user] disassembles [src].", \ + "You start to disassemble [src]...", "You hear clanking and banging noises.") + if(do_after(user, 20, target = src)) + new /obj/item/stack/rods(loc) + qdel(src) + return ..() \ No newline at end of file diff --git a/code/modules/reagents/newchem/medicine.dm b/code/modules/reagents/newchem/medicine.dm index e5e7af93b66..c9cb554b64f 100644 --- a/code/modules/reagents/newchem/medicine.dm +++ b/code/modules/reagents/newchem/medicine.dm @@ -1007,4 +1007,55 @@ M.adjustToxLoss(-5*REM) M.adjustBrainLoss(-15*REM) M.adjustCloneLoss(-3*REM) - ..() \ No newline at end of file + ..() + + +/datum/reagent/omnizine_diluted + name = "Diluted Omnizine" + id = "weak_omnizine" + description = "Slowly heals all damage types. A far weaker substitute than actual omnizine." + reagent_state = LIQUID + color = "#DCDCDC" + overdose_threshold = 30 + metabolization_rate = 0.1 + +/datum/reagent/omnizine_diluted/on_mob_life(mob/living/M) + M.adjustToxLoss(-0.5*REM) + M.adjustOxyLoss(-0.5*REM) + M.adjustBruteLoss(-0.5*REM) + M.adjustFireLoss(-0.5*REM) + ..() + +/datum/reagent/omnizine_diluted/overdose_process(mob/living/M, severity) + var/effect = ..() + if(severity == 1) //lesser + M.stuttering += 1 + if(effect <= 1) + M.visible_message("[M] suddenly cluches their gut!") + M.emote("scream") + M.Stun(4) + M.Weaken(4) + else if(effect <= 3) + M.visible_message("[M] completely spaces out for a moment.") + M.confused += 15 + else if(effect <= 5) + M.visible_message("[M] stumbles and staggers.") + M.Dizzy(5) + M.Weaken(3) + else if(effect <= 7) + M.visible_message("[M] shakes uncontrollably.") + M.Jitter(30) + else if(severity == 2) // greater + if(effect <= 2) + M.visible_message("[M] suddenly cluches their gut!") + M.emote("scream") + M.Stun(7) + M.Weaken(7) + else if(effect <= 5) + M.visible_message("[M] jerks bolt upright, then collapses!") + M.Paralyse(5) + M.Weaken(4) + else if(effect <= 8) + M.visible_message("[M] stumbles and staggers.") + M.Dizzy(5) + M.Weaken(3) \ No newline at end of file diff --git a/icons/obj/lavaland/survival_pod.dmi b/icons/obj/lavaland/survival_pod.dmi index 3895ac4d10e1eaaba2be1be5eb9c52751e1cf816..fae242d524f169892f14d0146ebc0da1a3332830 100644 GIT binary patch literal 9836 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 JmGYKv{|i&~!fgNm literal 10474 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 Date: Mon, 22 Aug 2016 22:40:56 -0400 Subject: [PATCH 05/22] Fixes Goonchat delaying client/New, again --- code/modules/client/client procs.dm | 3 ++- goon/code/datums/browserOutput.dm | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm index ed4e648e6d0..b70c2741e83 100644 --- a/code/modules/client/client procs.dm +++ b/code/modules/client/client procs.dm @@ -295,7 +295,8 @@ prefs.last_id = computer_id //these are gonna be used for banning . = ..() //calls mob.Login() - chatOutput.start() + spawn() // Goonchat does some non-instant checks in start() + chatOutput.start() if(custom_event_msg && custom_event_msg != "") to_chat(src, "

Custom Event

") diff --git a/goon/code/datums/browserOutput.dm b/goon/code/datums/browserOutput.dm index e8af8c93430..bc5392e2251 100644 --- a/goon/code/datums/browserOutput.dm +++ b/goon/code/datums/browserOutput.dm @@ -37,6 +37,9 @@ var/list/chatResources = list( broken = TRUE return 0 + if(!owner) // In case the client vanishes before winexists returns + return 0 + if(winget(owner, "browseroutput", "is-disabled") == "false") doneLoading() From bf2a89565889f24edb850b1992890ef92f946b97 Mon Sep 17 00:00:00 2001 From: Crazylemon64 Date: Mon, 22 Aug 2016 19:46:23 -0700 Subject: [PATCH 06/22] Makes space transition checks more consistent Fixes a runtime on map start due to not having updated all the border definitions all at once - the new defines will now resolve this. --- code/__DEFINES/misc.dm | 4 +-- code/__DEFINES/zlevel.dm | 12 +++++++ code/game/turfs/space/space.dm | 8 ++--- code/modules/space_management/space_level.dm | 32 +++++++++---------- .../space_management/space_transition.dm | 10 ------ 5 files changed, 33 insertions(+), 33 deletions(-) diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index ab1357a5833..7b816cf3748 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -1,5 +1,3 @@ -#define TRANSITIONEDGE 7 //Distance from edge to move to another z-level - //Object specific defines #define CANDLE_LUM 3 //For how bright candles are @@ -281,4 +279,4 @@ // Sound #define SOUND_MINIMUM_PRESSURE 10 -#define FALLOFF_SOUNDS 0.5 \ No newline at end of file +#define FALLOFF_SOUNDS 0.5 diff --git a/code/__DEFINES/zlevel.dm b/code/__DEFINES/zlevel.dm index e69de29bb2d..274fbb75f07 100644 --- a/code/__DEFINES/zlevel.dm +++ b/code/__DEFINES/zlevel.dm @@ -0,0 +1,12 @@ +#define Z_LEVEL_NORTH "1" +#define Z_LEVEL_SOUTH "2" +#define Z_LEVEL_EAST "4" +#define Z_LEVEL_WEST "8" + +#define TRANSITIONEDGE 7 //Distance from edge to move to another z-level + +// Defining these here so everything is consistent +#define TRANSITION_BORDER_NORTH (world.maxy - TRANSITIONEDGE - 1) +#define TRANSITION_BORDER_SOUTH TRANSITIONEDGE +#define TRANSITION_BORDER_EAST (world.maxx - TRANSITIONEDGE - 1) +#define TRANSITION_BORDER_WEST TRANSITIONEDGE diff --git a/code/game/turfs/space/space.dm b/code/game/turfs/space/space.dm index fb10d23ae9c..c8c454383ea 100644 --- a/code/game/turfs/space/space.dm +++ b/code/game/turfs/space/space.dm @@ -213,21 +213,21 @@ /turf/space/proc/set_transition_north(dest_z) destination_x = x - destination_y = TRANSITIONEDGE + 2 + destination_y = TRANSITION_BORDER_SOUTH + 1 destination_z = dest_z /turf/space/proc/set_transition_south(dest_z) destination_x = x - destination_y = world.maxy - TRANSITIONEDGE - 2 + destination_y = TRANSITION_BORDER_NORTH - 1 destination_z = dest_z /turf/space/proc/set_transition_east(dest_z) - destination_x = TRANSITIONEDGE + 2 + destination_x = TRANSITION_BORDER_WEST + 1 destination_y = y destination_z = dest_z /turf/space/proc/set_transition_west(dest_z) - destination_x = world.maxx - TRANSITIONEDGE - 2 + destination_x = TRANSITION_BORDER_EAST - 1 destination_y = y destination_z = dest_z diff --git a/code/modules/space_management/space_level.dm b/code/modules/space_management/space_level.dm index 02c16552c12..dc598ccab42 100644 --- a/code/modules/space_management/space_level.dm +++ b/code/modules/space_management/space_level.dm @@ -39,57 +39,57 @@ /datum/space_level/proc/build_space_destination_arrays() // We skip `add_to_transit` here because we want to skip the checks in order to save time // Bottom border - for(var/turf/space/S in block(locate(1,1,zpos),locate(world.maxx,TRANSITIONEDGE+1,zpos))) + for(var/turf/space/S in block(locate(1,1,zpos),locate(world.maxx,TRANSITION_BORDER_SOUTH,zpos))) transit_south |= S // Top border - for(var/turf/space/S in block(locate(1,world.maxy,zpos),locate(world.maxx,world.maxy - TRANSITIONEDGE - 1,zpos))) + for(var/turf/space/S in block(locate(1,world.maxy,zpos),locate(world.maxx,TRANSITION_BORDER_NORTH,zpos))) transit_north |= S // Left border - for(var/turf/space/S in block(locate(1,TRANSITIONEDGE+1,zpos),locate(TRANSITIONEDGE+1,world.maxy - TRANSITIONEDGE - 2,zpos))) + for(var/turf/space/S in block(locate(1,TRANSITION_BORDER_SOUTH + 1,zpos),locate(TRANSITION_BORDER_WEST,TRANSITION_BORDER_NORTH - 1,zpos))) transit_west |= S // Right border - for(var/turf/space/S in block(locate(world.maxx - TRANSITIONEDGE - 1,TRANSITIONEDGE+1,zpos),locate(world.maxx,world.maxy - TRANSITIONEDGE - 2,zpos))) + for(var/turf/space/S in block(locate(TRANSITION_BORDER_EAST,TRANSITION_BORDER_SOUTH + 1,zpos),locate(world.maxx,TRANSITION_BORDER_NORTH - 1,zpos))) transit_east |= S /datum/space_level/proc/add_to_transit(turf/space/S) - if(S.y <= TRANSITIONEDGE) + if(S.y <= TRANSITION_BORDER_SOUTH) transit_south |= S return // Top border - if(S.y >= (world.maxy - TRANSITIONEDGE - 1)) + if(S.y >= TRANSITION_BORDER_NORTH) transit_north |= S return // Left border - if(S.x <= TRANSITIONEDGE) + if(S.x <= TRANSITION_BORDER_WEST) transit_west |= S return // Right border - if(S.x >= (world.maxx - TRANSITIONEDGE - 1)) + if(S.x >= TRANSITION_BORDER_EAST) transit_east |= S /datum/space_level/proc/remove_from_transit(turf/space/S) - if(S.y <= TRANSITIONEDGE) + if(S.y <= TRANSITION_BORDER_SOUTH) transit_south -= S return // Top border - if(S.y >= (world.maxy - TRANSITIONEDGE - 1)) + if(S.y >= TRANSITION_BORDER_NORTH) transit_north -= S return // Left border - if(S.x <= TRANSITIONEDGE) + if(S.x <= TRANSITION_BORDER_WEST) transit_west -= S return // Right border - if(S.x >= (world.maxx - TRANSITIONEDGE - 1)) + if(S.x >= TRANSITION_BORDER_EAST) transit_east -= S /datum/space_level/proc/apply_transition(turf/space/S) @@ -101,16 +101,16 @@ if(SELFLOOPING,CROSSLINKED) var/datum/space_level/E = get_connection() if(S in transit_north) - E = get_connection("[NORTH]") + E = get_connection(Z_LEVEL_NORTH) S.set_transition_north(E.zpos) if(S in transit_south) - E = get_connection("[SOUTH]") + E = get_connection(Z_LEVEL_SOUTH) S.set_transition_south(E.zpos) if(S in transit_east) - E = get_connection("[EAST]") + E = get_connection(Z_LEVEL_EAST) S.set_transition_east(E.zpos) if(S in transit_west) - E = get_connection("[WEST]") + E = get_connection(Z_LEVEL_WEST) S.set_transition_west(E.zpos) diff --git a/code/modules/space_management/space_transition.dm b/code/modules/space_management/space_transition.dm index b7691ce6601..f432d9733a5 100644 --- a/code/modules/space_management/space_transition.dm +++ b/code/modules/space_management/space_transition.dm @@ -1,9 +1,5 @@ //This is realisation of the working torus-looping randomized-per-round space map, this kills the cube -#define Z_LEVEL_NORTH "1" -#define Z_LEVEL_SOUTH "2" -#define Z_LEVEL_EAST "4" -#define Z_LEVEL_WEST "8" /proc/get_opposite_direction(direction) switch(direction) @@ -430,9 +426,3 @@ else our_spot = our_spot.ChangeTurf(/turf/simulated/floor/fakespace) our_spot.desc = grid_desc - - -#undef Z_LEVEL_NORTH -#undef Z_LEVEL_SOUTH -#undef Z_LEVEL_EAST -#undef Z_LEVEL_WEST From 83e3f3a1afc0152011c8a7e0b5de4f51d88a1fcc Mon Sep 17 00:00:00 2001 From: Crazylemon64 Date: Mon, 22 Aug 2016 20:55:36 -0700 Subject: [PATCH 07/22] Fixes a runtime for non-human mobs bleeding on the floor --- code/game/turfs/simulated.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/game/turfs/simulated.dm b/code/game/turfs/simulated.dm index c1b6d7d2122..a247e35a86f 100644 --- a/code/game/turfs/simulated.dm +++ b/code/game/turfs/simulated.dm @@ -116,6 +116,8 @@ if(!..()) return 0 + if(!istype(M)) // To avoid non-humans from causing runtimes whena dding blood to the floor + return 0 var/obj/effect/decal/cleanable/blood/B = locate() in contents //check for existing blood splatter if(!B) blood_splatter(src,M.get_blood(M.vessel),1) From 7c98824dbde0e98e8ad55705f275f94d496b5f8e Mon Sep 17 00:00:00 2001 From: Crazylemon64 Date: Mon, 22 Aug 2016 21:07:17 -0700 Subject: [PATCH 08/22] Fixes a couple pAI runtimes --- code/modules/mob/living/silicon/pai/software_modules.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/silicon/pai/software_modules.dm b/code/modules/mob/living/silicon/pai/software_modules.dm index adc0e54e661..dfa79a0d0d1 100644 --- a/code/modules/mob/living/silicon/pai/software_modules.dm +++ b/code/modules/mob/living/silicon/pai/software_modules.dm @@ -56,7 +56,7 @@ while(!istype(M, /mob/living)) if(!M || !M.loc || count > 6) //For a runtime where M ends up in nullspace (similar to bluespace but less colourful) - to_chat(src, "You are not being carried by anyone!") + to_chat(P, "You are not being carried by anyone!") return 0 M = M.loc count++ @@ -705,7 +705,7 @@ while(!isliving(held)) if(!held || !held.loc || count > 6) //For a runtime where M ends up in nullspace (similar to bluespace but less colourful) - to_chat(src, "You are not being carried by anyone!") + to_chat(user, "You are not being carried by anyone!") return 0 held = held.loc count++ From b6df2db84419056cf7f18bb10e930f49c984b6f0 Mon Sep 17 00:00:00 2001 From: Crazylemon64 Date: Mon, 22 Aug 2016 21:50:52 -0700 Subject: [PATCH 09/22] Fixes a gravity generator runtime for null areas --- code/modules/space_management/level_traits.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/space_management/level_traits.dm b/code/modules/space_management/level_traits.dm index 83309c3764f..6dd97020db6 100644 --- a/code/modules/space_management/level_traits.dm +++ b/code/modules/space_management/level_traits.dm @@ -38,7 +38,7 @@ var/list/default_map_traits = MAP_TRANSITION_CONFIG /proc/check_level_trait(z, trait) - if(z == 0) + if(z == 0 || isnull(z)) return 0 // If you're nowhere, you have no traits var/list/trait_list if(space_manager.initialized) From eec89c6a7e93e21743a5c857f5fe20dd3ea0c40e Mon Sep 17 00:00:00 2001 From: Crazylemon64 Date: Mon, 22 Aug 2016 21:56:39 -0700 Subject: [PATCH 10/22] Fixes a runtime when the recycler eats something and destroys something else it was going to munch --- code/game/machinery/recycler.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm index 4cdc3494927..194c384a175 100644 --- a/code/game/machinery/recycler.dm +++ b/code/game/machinery/recycler.dm @@ -123,7 +123,8 @@ var/const/SAFETY_COOLDOWN = 100 items_recycled++ else playsound(loc, 'sound/machines/buzz-sigh.ogg', 50, 0) - AM.loc = loc + if(AM) + AM.loc = loc if(items_recycled && sound) playsound(loc, item_recycle_sound, 100, 0) From 05ebb18b3dd014b8cd12eb8387426896d66b91bc Mon Sep 17 00:00:00 2001 From: Crazylemon64 Date: Mon, 22 Aug 2016 22:02:06 -0700 Subject: [PATCH 11/22] Fixes a closet runtime --- code/game/objects/structures/crates_lockers/closets.dm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index 1831b983f2c..ed0092cf60d 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -65,7 +65,10 @@ /obj/structure/closet/proc/moveMob(var/mob/M, var/atom/destination) loc.Exited(M) M.loc = destination - loc.Entered(M, ignoreRest = 1) + if(isturf(loc)) + loc.Entered(M, src, ignoreRest = 1) + else + loc.Entered(M, src) for(var/atom/movable/AM in loc) if(istype(AM, /obj/item)) continue From 88a3ba14065a5484863519fadcca5fba4f8a61bf Mon Sep 17 00:00:00 2001 From: Crazylemon64 Date: Mon, 22 Aug 2016 23:17:48 -0700 Subject: [PATCH 12/22] Moves AI movement to their own procs, and cleans up their creation --- code/game/gamemodes/gameticker.dm | 3 +- code/game/machinery/computer/ai_core.dm | 4 +- code/modules/admin/topic.dm | 3 +- code/modules/admin/verbs/randomverbs.dm | 2 + .../modules/mob/living/silicon/ai/latejoin.dm | 40 ++++++++++++++++++- code/modules/mob/new_player/new_player.dm | 13 ++---- code/modules/mob/transform_procs.dm | 32 +-------------- 7 files changed, 52 insertions(+), 45 deletions(-) diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm index b2185b15d33..843e4e1258b 100644 --- a/code/game/gamemodes/gameticker.dm +++ b/code/game/gamemodes/gameticker.dm @@ -340,7 +340,8 @@ var/round_start_time = 0 if(player.ready && player.mind) if(player.mind.assigned_role == "AI") player.close_spawn_windows() - player.AIize() + var/mob/living/silicon/ai/ai_character = player.AIize() + ai_character.moveToAILandmark() else if(!player.mind.assigned_role) continue else diff --git a/code/game/machinery/computer/ai_core.dm b/code/game/machinery/computer/ai_core.dm index f06771cc288..29e315ec001 100644 --- a/code/game/machinery/computer/ai_core.dm +++ b/code/game/machinery/computer/ai_core.dm @@ -264,9 +264,9 @@ atom/proc/transfer_ai(var/interaction, var/mob/user, var/mob/living/silicon/ai/A if(interaction == AI_TRANS_FROM_CARD) AI.control_disabled = 0 AI.aiRadio.disabledAi = 0 - AI.loc = loc//To replace the terminal. + AI.forceMove(loc)//To replace the terminal. to_chat(AI, "You have been uploaded to a stationary terminal. Remote device connection restored.") - to_chat(user, "Transfer successful: [AI.name] ([rand(1000,9999)].exe) installed and executed successfully. Local copy has been removed.") + to_chat(user, "Transfer successful: [AI.name] ([rand(1000,9999)].exe) installed and executed successfully. Local copy has been removed.") qdel(src) else //If for some reason you use an empty card on an empty AI terminal. to_chat(user, "There is no AI loaded on this terminal!") diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 6d2e116edb2..0f971300225 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1416,7 +1416,8 @@ message_admins("\red Admin [key_name_admin(usr)] AIized [key_name_admin(H)]!", 1) log_admin("[key_name(usr)] AIized [key_name(H)]") - H.AIize() + var/mob/living/silicon/ai/ai_character = H.AIize() + ai_character.moveToAILandmark() else if(href_list["makemask"]) diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 577d16233d8..b776eb9a649 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -416,6 +416,8 @@ Traitors and the like can also be revived with the previous role mostly intact. call(/datum/game_mode/proc/add_law_zero)(new_character) if("AI") new_character = new_character.AIize() + var/mob/living/silicon/ai/ai_character = new_character + ai_character.moveToAILandmark() if(new_character.mind.special_role=="traitor") call(/datum/game_mode/proc/add_law_zero)(new_character) //Add aliens. diff --git a/code/modules/mob/living/silicon/ai/latejoin.dm b/code/modules/mob/living/silicon/ai/latejoin.dm index d869b72eff3..56cee4f651f 100644 --- a/code/modules/mob/living/silicon/ai/latejoin.dm +++ b/code/modules/mob/living/silicon/ai/latejoin.dm @@ -37,4 +37,42 @@ var/global/list/empty_playable_ai_cores = list() var/datum/game_mode/traitor/autotraitor/current_mode = ticker.mode current_mode.possible_traitors.Remove(src) - qdel(src) \ No newline at end of file + qdel(src) + +// TODO: Move away from the insane name-based landmark system +/mob/living/silicon/ai/proc/moveToAILandmark() + var/obj/loc_landmark + for(var/obj/effect/landmark/start/sloc in landmarks_list) + if(sloc.name != "AI") + continue + if(locate(/mob/living) in sloc.loc) + continue + loc_landmark = sloc + if(!loc_landmark) + for(var/obj/effect/landmark/tripai in landmarks_list) + if(tripai.name == "tripai") + if(locate(/mob/living) in tripai.loc) + continue + loc_landmark = tripai + if(!loc_landmark) + to_chat(src, "Oh god sorry we can't find an unoccupied AI spawn location, so we're spawning you on top of someone.") + for(var/obj/effect/landmark/start/sloc in landmarks_list) + if(sloc.name == "AI") + loc_landmark = sloc + + forceMove(loc_landmark.loc) + +// Before calling this, make sure an empty core exists, or this will no-op +/mob/living/silicon/ai/proc/moveToEmptyCore() + if(!empty_playable_ai_cores.len) + log_debug("moveToEmptyCore called without any available cores") + return + + // IsJobAvailable for AI checks that there is an empty core available in this list + var/obj/structure/AIcore/deactivated/C = empty_playable_ai_cores[1] + empty_playable_ai_cores -= C + + forceMove(C.loc) + + + qdel(C) diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 682abdb383d..d820f984ec1 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -296,18 +296,13 @@ // AIs don't need a spawnpoint, they must spawn at an empty core if(character.mind.assigned_role == "AI") - character = character.AIize(move=0) // AIize the character, but don't move them yet + var/mob/living/silicon/ai/ai_character = character.AIize() // AIize the character, but don't move them yet // IsJobAvailable for AI checks that there is an empty core available in this list - var/obj/structure/AIcore/deactivated/C = empty_playable_ai_cores[1] - empty_playable_ai_cores -= C + ai_character.moveToEmptyCore() + AnnounceCyborg(ai_character, rank, "has been downloaded to the empty core in \the [get_area(ai_character)]") - character.loc = C.loc - - AnnounceCyborg(character, rank, "has been downloaded to the empty core in \the [get_area(character)]") - ticker.mode.latespawn(character) - - qdel(C) + ticker.mode.latespawn(ai_character) qdel(src) return diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index 98e33ee5f6b..92435b2635f 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -7,14 +7,6 @@ spawning = 1 return ..() -/mob/living/carbon/human/AIize(move=1) // 'move' argument needs defining here too because BYOND is dumb - if(notransform) - return - for(var/t in organs) - qdel(t) - - return ..(move) - /mob/living/carbon/AIize() if(notransform) return @@ -40,34 +32,12 @@ else O.key = key - var/obj/loc_landmark - for(var/obj/effect/landmark/start/sloc in landmarks_list) - if(sloc.name != "AI") - continue - if(locate(/mob/living) in sloc.loc) - continue - loc_landmark = sloc - if(!loc_landmark) - for(var/obj/effect/landmark/tripai in landmarks_list) - if(tripai.name == "tripai") - if(locate(/mob/living) in tripai.loc) - continue - loc_landmark = tripai - if(!loc_landmark) - to_chat(O, "Oh god sorry we can't find an unoccupied AI spawn location, so we're spawning you on top of someone.") - for(var/obj/effect/landmark/start/sloc in landmarks_list) - if(sloc.name == "AI") - loc_landmark = sloc - - O.loc = loc_landmark.loc - O.on_mob_init() O.add_ai_verbs() O.rename_self("AI",1) - spawn - qdel(src) + qdel(src) return O /mob/living/carbon/human/make_into_mask(var/should_gib = 0) From 38adc54c77ae79c68ebb2050c1510ca27d1e4e76 Mon Sep 17 00:00:00 2001 From: Crazylemon64 Date: Mon, 22 Aug 2016 23:40:57 -0700 Subject: [PATCH 13/22] Humans no longer spew debug messages when deleted --- code/modules/surgery/organs/organ_external.dm | 7 ++++--- code/modules/surgery/organs/organ_internal.dm | 6 ++++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/code/modules/surgery/organs/organ_external.dm b/code/modules/surgery/organs/organ_external.dm index e2702b36afe..699b9ed1ee3 100644 --- a/code/modules/surgery/organs/organ_external.dm +++ b/code/modules/surgery/organs/organ_external.dm @@ -69,13 +69,14 @@ if(parent && parent.children) parent.children -= src - if(owner) - owner.organs_by_name[limb_name] = null - if(internal_organs) for(var/obj/item/organ/internal/O in internal_organs) internal_organs -= O O.remove(owner,special = 1) + qdel(O) + + if(owner) + owner.organs_by_name[limb_name] = null if(children) for(var/obj/item/organ/external/C in children) diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index a902dc55afa..2d9ddf78e80 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -39,7 +39,7 @@ var/mob/living/carbon/human/H = M parent = H.get_organ(check_zone(parent_organ)) if(!istype(parent)) - log_to_dd("[src] attempted to insert into a [parent], but [parent] wasn't an organ! Area: [get_area(M)]") + log_debug("[src] attempted to insert into a [parent_organ], but [parent_organ] wasn't an organ! [atom_loc_line(M)]") else parent.internal_organs |= src //M.internal_organs_by_name[src] |= src(H,1) @@ -52,6 +52,8 @@ // Returns the removed object, which is usually just itself // However, you MUST set the object's positiion yourself when you call this! /obj/item/organ/internal/remove(mob/living/carbon/M, special = 0) + if(!owner) + log_debug("\'remove\' called on [src] without an owner! Mob: [M], [atom_loc_line(M)]") owner = null if(M) M.internal_organs -= src @@ -63,7 +65,7 @@ var/mob/living/carbon/human/H = M var/obj/item/organ/external/parent = H.get_organ(check_zone(parent_organ)) if(!istype(parent)) - log_to_dd("[src] attempted to remove from a [parent], but [parent] didn't exist! Area: [get_area(M)], Mob: [M]") + log_debug("[src] attempted to remove from a [parent_organ], but [parent_organ] didn't exist! [atom_loc_line(M)]") else parent.internal_organs -= src From 5b20506b02430bcf09ccbe29627c3af44b0dc491 Mon Sep 17 00:00:00 2001 From: Crazylemon64 Date: Mon, 22 Aug 2016 23:49:33 -0700 Subject: [PATCH 14/22] Replaces qdeleted with a cleaner macro --- code/__DEFINES/qdel.dm | 5 ++++- code/game/machinery/recycler.dm | 7 ++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/code/__DEFINES/qdel.dm b/code/__DEFINES/qdel.dm index 3042ff6d302..b623ce72158 100644 --- a/code/__DEFINES/qdel.dm +++ b/code/__DEFINES/qdel.dm @@ -6,4 +6,7 @@ #define QDEL_HINT_HARDDEL_NOW 4 //qdel should assume this object won't gc, and hard del it post haste. #define QDEL_HINT_PUTINPOOL 5 //qdel will put this object in the atom pool. #define QDEL_HINT_FINDREFERENCE 6 //functionally identical to QDEL_HINT_QUEUE if TESTING is not enabled in _compiler_options.dm. - //if TESTING is enabled, qdel will call this object's find_references() verb. \ No newline at end of file + //if TESTING is enabled, qdel will call this object's find_references() verb. + +// A convenient wrapper around checking for qdeletion/non-existence +#define exists(A) (A && !qdeleted(A)) diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm index 194c384a175..4a9d8c439ae 100644 --- a/code/game/machinery/recycler.dm +++ b/code/game/machinery/recycler.dm @@ -113,7 +113,9 @@ var/const/SAFETY_COOLDOWN = 100 for(var/i in to_eat) var/atom/movable/AM = i - if(isliving(AM)) + if(!exists(AM)) + continue + else if(isliving(AM)) if(emagged) crush_living(AM) else @@ -123,8 +125,7 @@ var/const/SAFETY_COOLDOWN = 100 items_recycled++ else playsound(loc, 'sound/machines/buzz-sigh.ogg', 50, 0) - if(AM) - AM.loc = loc + AM.forceMove(loc) if(items_recycled && sound) playsound(loc, item_recycle_sound, 100, 0) From ff23f932a2b5d756dd29713cc40a79bcaa81076b Mon Sep 17 00:00:00 2001 From: Crazylemon64 Date: Tue, 23 Aug 2016 00:15:30 -0700 Subject: [PATCH 15/22] Fixes some runtimes when throwing hydroponics fruit --- code/modules/hydroponics/seed.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/hydroponics/seed.dm b/code/modules/hydroponics/seed.dm index 994f141d373..a3969f7c5eb 100644 --- a/code/modules/hydroponics/seed.dm +++ b/code/modules/hydroponics/seed.dm @@ -250,11 +250,11 @@ var/no_los var/turf/last_turf = origin_turf for(var/turf/target_turf in getline(origin_turf,neighbor)) - if(!last_turf.Enter(target_turf) || target_turf.density) + if(!last_turf.Enter(thrown,target_turf) || target_turf.density) no_los = 1 break last_turf = target_turf - if(!no_los && !origin_turf.Enter(neighbor)) + if(!no_los && !origin_turf.Enter(thrown, neighbor)) no_los = 1 if(no_los) closed_turfs |= neighbor From 692a971e75d8df9a9b19b8777d8a284468153010 Mon Sep 17 00:00:00 2001 From: Crazylemon64 Date: Tue, 23 Aug 2016 00:23:26 -0700 Subject: [PATCH 16/22] Fixes an examine runtime on gas tanks --- code/game/objects/items/weapons/tanks/tanks.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/weapons/tanks/tanks.dm b/code/game/objects/items/weapons/tanks/tanks.dm index 4ec1b1587c8..d498109b2dd 100644 --- a/code/game/objects/items/weapons/tanks/tanks.dm +++ b/code/game/objects/items/weapons/tanks/tanks.dm @@ -83,7 +83,7 @@ icon = loc if(!in_range(src, user)) if(icon == src) - to_chat(user, "\blue It's \a [bicon(icon)][src]! If you want any more information you'll need to get closer.") + to_chat(user, "It's \a [bicon(icon)][src]! If you want any more information you'll need to get closer.") return var/celsius_temperature = air_contents.temperature-T0C From 84b44ea41c4429cbb500fc358d07226445ff697d Mon Sep 17 00:00:00 2001 From: Crazylemon64 Date: Tue, 23 Aug 2016 00:56:58 -0700 Subject: [PATCH 17/22] Random seeds now have a base_name --- code/modules/hydroponics/seed.dm | 4 +++- code/modules/hydroponics/seed_controller.dm | 5 ++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/code/modules/hydroponics/seed.dm b/code/modules/hydroponics/seed.dm index 994f141d373..53db9b0082c 100644 --- a/code/modules/hydroponics/seed.dm +++ b/code/modules/hydroponics/seed.dm @@ -406,8 +406,10 @@ /datum/seed/proc/randomize() roundstart = 0 - seed_name = "strange plant" // TODO: name generator. + // TODO: Better name generator + seed_name = "cultivar #[uid]" display_name = "strange plants" // TODO: name generator. + base_name = seed_name mysterious = 1 seed_noun = pick("spores","nodes","cuttings","seeds") modular_icon = 1 diff --git a/code/modules/hydroponics/seed_controller.dm b/code/modules/hydroponics/seed_controller.dm index aaa30c3275f..7e56c57a45f 100644 --- a/code/modules/hydroponics/seed_controller.dm +++ b/code/modules/hydroponics/seed_controller.dm @@ -96,9 +96,9 @@ var/global/datum/controller/plants/plant_controller // Set in New(). // Proc for creating a random seed type. /datum/controller/plants/proc/create_random_seed(var/survive_on_station) var/datum/seed/seed = new() - seed.randomize() seed.uid = plant_controller.seeds.len + 1 seed.name = "[seed.uid]" + seed.randomize() seeds[seed.name] = seed if(survive_on_station) @@ -106,8 +106,7 @@ var/global/datum/controller/plants/plant_controller // Set in New(). seed.consume_gasses["plasma"] = null seed.consume_gasses["carbon_dioxide"] = null if(seed.chems && !isnull(seed.chems["pacid"])) - seed.chems["pacid"] = null // Eating through the hull will make these plants completely inviable, albeit very dangerous. - seed.chems -= null // Setting to null does not actually remove the entry, which is weird. + seed.chems -= "pacid" // Eating through the hull will make these plants completely inviable, albeit very dangerous. seed.set_trait(TRAIT_IDEAL_HEAT,293) seed.set_trait(TRAIT_HEAT_TOLERANCE,20) seed.set_trait(TRAIT_IDEAL_LIGHT,8) From 06681a9c4cc53a53bf76071561e46dc6c603f2a9 Mon Sep 17 00:00:00 2001 From: Crazylemon64 Date: Tue, 23 Aug 2016 00:58:43 -0700 Subject: [PATCH 18/22] Slightly tweaks the level trait checker --- code/modules/space_management/level_traits.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/space_management/level_traits.dm b/code/modules/space_management/level_traits.dm index 6dd97020db6..ae5d6447aae 100644 --- a/code/modules/space_management/level_traits.dm +++ b/code/modules/space_management/level_traits.dm @@ -38,7 +38,7 @@ var/list/default_map_traits = MAP_TRANSITION_CONFIG /proc/check_level_trait(z, trait) - if(z == 0 || isnull(z)) + if(!z) return 0 // If you're nowhere, you have no traits var/list/trait_list if(space_manager.initialized) From b71db4c2220d3fd955ecb2c45d7706084462ad02 Mon Sep 17 00:00:00 2001 From: Crazylemon64 Date: Tue, 23 Aug 2016 01:33:06 -0700 Subject: [PATCH 19/22] Fixes a runtime when creating a new disposal after roundstart --- code/modules/recycling/disposal.dm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index 39945505aed..85657dd2b5b 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -27,12 +27,10 @@ idle_power_usage = 100 // create a new disposal -// find the attached trunk (if present) and init gas resvr. +// find the attached trunk (if present) /obj/machinery/disposal/New() ..() trunk_check() - - air_contents = new/datum/gas_mixture() //gas.volume = 1.05 * CELLSTANDARD update() @@ -59,6 +57,7 @@ var/datum/gas_mixture/env = new env.copy_from(L.return_air()) var/datum/gas_mixture/removed = env.remove(SEND_PRESSURE + 1) + air_contents = new air_contents.merge(removed) trunk_check() From 118c7a0a3e36c71a598cef1808d96b2b2f0a496f Mon Sep 17 00:00:00 2001 From: Crazylemon64 Date: Tue, 23 Aug 2016 01:34:28 -0700 Subject: [PATCH 20/22] Fixes a runtime when creating a golem --- code/modules/mob/living/carbon/human/human.dm | 4 ++-- code/modules/mob/living/carbon/human/species/golem.dm | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 857ff6b2de2..05031a4a82b 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -12,6 +12,8 @@ var/obj/item/weapon/rig/wearing_rig // This is very not good, but it's much much better than calling get_rig() every update_canmove() call. /mob/living/carbon/human/New(var/new_loc, var/new_species = null, var/delay_ready_dna = 0) + ..() + if(!dna) dna = new /datum/dna(null) // Species name is handled by set_species() @@ -32,8 +34,6 @@ reagents = R R.my_atom = src - ..() - prev_gender = gender // Debug for plural genders make_blood() diff --git a/code/modules/mob/living/carbon/human/species/golem.dm b/code/modules/mob/living/carbon/human/species/golem.dm index 024172abe8b..1e255ea50cc 100644 --- a/code/modules/mob/living/carbon/human/species/golem.dm +++ b/code/modules/mob/living/carbon/human/species/golem.dm @@ -99,4 +99,4 @@ desc = "strong adamantine hands" icon_state = "golem" item_state = null - flags = ABSTRACT | NODROP \ No newline at end of file + flags = ABSTRACT | NODROP From 63eb62d4e4c95ca391a1b0bd493de03923bcb561 Mon Sep 17 00:00:00 2001 From: Crazylemon64 Date: Tue, 23 Aug 2016 01:58:27 -0700 Subject: [PATCH 21/22] Fixes the golem runtime in a manner less likely to bite us in the butt later --- code/modules/mob/living/carbon/human/human.dm | 3 ++- code/modules/mob/living/carbon/human/inventory.dm | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 05031a4a82b..981dad22bf5 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -12,7 +12,6 @@ var/obj/item/weapon/rig/wearing_rig // This is very not good, but it's much much better than calling get_rig() every update_canmove() call. /mob/living/carbon/human/New(var/new_loc, var/new_species = null, var/delay_ready_dna = 0) - ..() if(!dna) dna = new /datum/dna(null) @@ -24,6 +23,8 @@ else set_species(delay_icon_update = 1) + ..() + if(species) real_name = species.get_random_name(gender) name = real_name diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 0aa2daa0f4f..3f7a76c0470 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -201,7 +201,8 @@ update_hair(redraw_mob) //rebuild hair update_fhair(redraw_mob) update_head_accessory(redraw_mob) - sec_hud_set_ID() + if(hud_list.len) + sec_hud_set_ID() update_inv_wear_mask(redraw_mob) if(slot_handcuffed) handcuffed = W @@ -220,7 +221,8 @@ update_inv_belt(redraw_mob) if(slot_wear_id) wear_id = W - sec_hud_set_ID() + if(!hud_list.len) + sec_hud_set_ID() update_inv_wear_id(redraw_mob) if(slot_wear_pda) wear_pda = W From f4c24aa963ff6d2fdfcd519822b062274167b3b8 Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Tue, 23 Aug 2016 14:03:59 -0400 Subject: [PATCH 22/22] Automatic changelog generation for PR #5509 --- html/changelogs/AutoChangeLog-pr-5509.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-5509.yml diff --git a/html/changelogs/AutoChangeLog-pr-5509.yml b/html/changelogs/AutoChangeLog-pr-5509.yml new file mode 100644 index 00000000000..f20d11714c9 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-5509.yml @@ -0,0 +1,5 @@ +author: Fox McCloud and KorPhaeron +delete-after: True +changes: + - rscadd: "Adds in mining shelters" + - rscadd: "Adds in a few more dice types and ensure dice are packed in bags and not pill bottles"