From 7eb6f83932a8acfd8556d482c29dec7edac2aded Mon Sep 17 00:00:00 2001 From: Hubblenaut Date: Mon, 19 May 2014 23:38:54 +0200 Subject: [PATCH 01/64] Removing name prefix of cabinet-generated paper --- code/modules/paperwork/filingcabinet.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/paperwork/filingcabinet.dm b/code/modules/paperwork/filingcabinet.dm index aeb6851145..1dd51443fb 100644 --- a/code/modules/paperwork/filingcabinet.dm +++ b/code/modules/paperwork/filingcabinet.dm @@ -121,7 +121,7 @@ P.info += "[S.fields["com_[counter]"]]
" counter++ P.info += "" - P.name = "paper - '[G.fields["name"]]'" + P.name = "Security Record ([G.fields["name"]])" virgin = 0 //tabbing here is correct- it's possible for people to try and use it //before the records have been generated, so we do this inside the loop. ..() @@ -157,7 +157,7 @@ P.info += "[M.fields["com_[counter]"]]
" counter++ P.info += "" - P.name = "paper - '[G.fields["name"]]'" + P.name = "Medical Record ([G.fields["name"]])" virgin = 0 //tabbing here is correct- it's possible for people to try and use it //before the records have been generated, so we do this inside the loop. ..() From 40c90a88d6f91eb9fdc832b09e2049b7426befc4 Mon Sep 17 00:00:00 2001 From: Hubblenaut Date: Mon, 19 May 2014 23:41:53 +0200 Subject: [PATCH 02/64] Removes name prefix of renamed photos --- code/modules/paperwork/photography.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm index 00d5dc2b95..a2bfb3bf0f 100644 --- a/code/modules/paperwork/photography.dm +++ b/code/modules/paperwork/photography.dm @@ -68,7 +68,7 @@ var/n_name = copytext(sanitize(input(usr, "What would you like to label the photo?", "Photo Labelling", null) as text), 1, MAX_NAME_LEN) //loc.loc check is for making possible renaming photos in clipboards if(( (loc == usr || (loc.loc && loc.loc == usr)) && usr.stat == 0)) - name = "photo[(n_name ? text("- '[n_name]'") : null)]" + name = "[(n_name ? text("[n_name]") : null)]" add_fingerprint(usr) return From a5b306ea70c4656c4d895a2854d0b1738957a47e Mon Sep 17 00:00:00 2001 From: Hubblenaut Date: Tue, 20 May 2014 00:02:31 +0200 Subject: [PATCH 03/64] Copies tiny icon of photos accordingly --- code/modules/paperwork/photocopier.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index 1b02d2d7eb..1fc580c27c 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -223,14 +223,18 @@ var/obj/item/weapon/photo/p = new /obj/item/weapon/photo (src.loc) var/icon/I = icon(photocopy.icon, photocopy.icon_state) var/icon/img = icon(photocopy.img) + var/icon/tiny = icon(photocopy.tiny) if(toner > 10) //plenty of toner, go straight greyscale I.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0)) //I'm not sure how expensive this is, but given the many limitations of photocopying, it shouldn't be an issue. img.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0)) + tiny.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0)) else //not much toner left, lighten the photo I.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(100,100,100)) img.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(100,100,100)) + tiny.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(100,100,100)) p.icon = I p.img = img + P.tiny = tiny p.name = photocopy.name p.desc = photocopy.desc p.scribble = photocopy.scribble From 81b73357a6aa39f7b5c840ddaa6534fe435a55e6 Mon Sep 17 00:00:00 2001 From: Hubblenaut Date: Tue, 20 May 2014 00:28:54 +0200 Subject: [PATCH 04/64] Fixes typo in code --- code/modules/paperwork/photocopier.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index 1fc580c27c..2321d7587d 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -234,7 +234,7 @@ tiny.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(100,100,100)) p.icon = I p.img = img - P.tiny = tiny + p.tiny = tiny p.name = photocopy.name p.desc = photocopy.desc p.scribble = photocopy.scribble From b54bc552e7476a5659fd667e4954a58a454dedad Mon Sep 17 00:00:00 2001 From: Hubblenaut Date: Tue, 20 May 2014 01:25:06 +0200 Subject: [PATCH 05/64] Personal closets are resettable with verb 'Reset Lock' --- .../crates_lockers/closets/secure/personal.dm | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm index eaeba38e43..3abf6d61d3 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm @@ -95,3 +95,25 @@ else user << "\red Access Denied" return + +/obj/structure/closet/secure_closet/personal/verb/reset() + set src in oview(1) // One square distance + set category = "Object" + set name = "Reset Lock" + if(!usr.canmove || usr.stat || usr.restrained()) // Don't use it if you're not able to! Checks for stuns, ghost and restrain + return + if(ishuman(usr)) + src.add_fingerprint(usr) + if (src.locked || !src.registered_name) + usr << "\red You need to unlock it first." + else if (src.broken) + usr << "\red It appears to be broken." + else + if (src.opened) + if(!src.close()) + return + src.locked = 1 + src.icon_state = src.icon_locked + src.registered_name = null + src.desc = "It's a secure locker for personnel. The first card swiped gains control." + return \ No newline at end of file From eb58fb1e0c314cc689b32164dcbd5a49844bc673 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Thu, 22 May 2014 17:25:08 -0400 Subject: [PATCH 06/64] Fixes RD console circuit var not set. Also removes redundant attackby code, and small change to text when setting access protocol on the board. Related to issue #5006 --- .../game/machinery/computer/buildandrepair.dm | 5 +-- code/modules/research/rdconsole.dm | 34 ++++--------------- 2 files changed, 9 insertions(+), 30 deletions(-) diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm index 61784e98c3..5772cd7756 100644 --- a/code/game/machinery/computer/buildandrepair.dm +++ b/code/game/machinery/computer/buildandrepair.dm @@ -277,14 +277,15 @@ /obj/item/weapon/circuitboard/rdconsole/attackby(obj/item/I as obj, mob/user as mob) if(istype(I,/obj/item/weapon/screwdriver)) + user << "\blue You adjust the jumper on the access protocol pins." if(src.build_path == "/obj/machinery/computer/rdconsole/core") src.name = "Circuit Board (RD Console - Robotics)" src.build_path = "/obj/machinery/computer/rdconsole/robotics" - user << "\blue Access protocols succesfully updated." + user << "\blue Access protocols set to robotics." else src.name = "Circuit Board (RD Console)" src.build_path = "/obj/machinery/computer/rdconsole/core" - user << "\blue Defaulting access protocols." + user << "\blue Access protocols set to default." return /obj/structure/computerframe/attackby(obj/item/P as obj, mob/user as mob) diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index 103969bdd1..9deb5f1fe2 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -34,6 +34,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, /obj/machinery/computer/rdconsole name = "R&D Console" icon_state = "rdcomp" + circuit = /obj/item/weapon/circuitboard/rdconsole var/datum/research/files //Stores all the collected research data. var/obj/item/weapon/disk/tech_disk/t_disk = null //Stores the technology disk. var/obj/item/weapon/disk/design_disk/d_disk = null //Stores the design disk. @@ -141,35 +142,8 @@ won't update every console in existence) but it's more of a hassle to do. Also, */ /obj/machinery/computer/rdconsole/attackby(var/obj/item/weapon/D as obj, var/mob/user as mob) - //The construction/deconstruction of the console code. - if(istype(D, /obj/item/weapon/screwdriver)) - playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) - if(do_after(user, 20)) - if (src.stat & BROKEN) - user << "\blue The broken glass falls out." - var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc ) - new /obj/item/weapon/shard( src.loc ) - var/obj/item/weapon/circuitboard/rdconsole/M = new /obj/item/weapon/circuitboard/rdconsole( A ) - for (var/obj/C in src) - C.loc = src.loc - A.circuit = M - A.state = 3 - A.icon_state = "3" - A.anchored = 1 - del(src) - else - user << "\blue You disconnect the monitor." - var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc ) - var/obj/item/weapon/circuitboard/rdconsole/M = new /obj/item/weapon/circuitboard/rdconsole( A ) - for (var/obj/C in src) - C.loc = src.loc - A.circuit = M - A.state = 4 - A.icon_state = "4" - A.anchored = 1 - del(src) //Loading a disk into it. - else if(istype(D, /obj/item/weapon/disk)) + if(istype(D, /obj/item/weapon/disk)) if(t_disk || d_disk) user << "A disk is already loaded into the machine." return @@ -186,6 +160,10 @@ won't update every console in existence) but it's more of a hassle to do. Also, playsound(src.loc, 'sound/effects/sparks4.ogg', 75, 1) emagged = 1 user << "\blue You you disable the security protocols" + else + //The construction/deconstruction of the console code. + ..() + src.updateUsrDialog() return From 6308c2b7fe71f1a81ab88c851fe273ac718aa822 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Thu, 22 May 2014 17:34:46 -0400 Subject: [PATCH 07/64] Fixes wrong access on RD console --- code/modules/research/rdconsole.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index 9deb5f1fe2..94c27e4105 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -47,7 +47,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, var/id = 0 //ID of the computer (for server restrictions). var/sync = 1 //If sync = 0, it doesn't show up on Server Control Console - req_access = list(access_tox) //Data and setting manipulation requires scientist access. + req_access = list(access_research) //Data and setting manipulation requires scientist access. /obj/machinery/computer/rdconsole/proc/CallTechName(var/ID) //A simple helper proc to find the name of a tech with a given ID. From 637f7193fc8561ac57bc3716c958a03005a2cc5b Mon Sep 17 00:00:00 2001 From: mwerezak Date: Thu, 22 May 2014 18:05:57 -0400 Subject: [PATCH 08/64] Fixes circuit var for other consoles Also cleans up attackby while we're at it. --- code/game/dna/dna_modifier.dm | 36 ++------------------ code/game/machinery/computer/aifixer.dm | 35 ++----------------- code/game/machinery/computer/arcade.dm | 21 ++---------- code/game/machinery/computer/pod.dm | 4 ++- code/game/supplyshuttle.dm | 30 +--------------- code/modules/mining/mine_items.dm | 24 ++----------- code/modules/power/turbine.dm | 3 ++ code/modules/reagents/Chemistry-Machinery.dm | 31 ++--------------- code/modules/research/research_shuttle.dm | 23 ++----------- code/modules/research/server.dm | 29 ++-------------- code/modules/virus2/curer.dm | 8 ++--- 11 files changed, 27 insertions(+), 217 deletions(-) diff --git a/code/game/dna/dna_modifier.dm b/code/game/dna/dna_modifier.dm index eadbfb06e1..3306556a24 100644 --- a/code/game/dna/dna_modifier.dm +++ b/code/game/dna/dna_modifier.dm @@ -220,6 +220,7 @@ icon = 'icons/obj/computer.dmi' icon_state = "scanner" density = 1 + circuit = obj/item/weapon/circuitboard/scan_consolenew var/selected_ui_block = 1.0 var/selected_ui_subblock = 1.0 var/selected_se_block = 1.0 @@ -241,32 +242,6 @@ var/waiting_for_user_input=0 // Fix for #274 (Mash create block injector without answering dialog to make unlimited injectors) - N3X /obj/machinery/computer/scan_consolenew/attackby(obj/item/I as obj, mob/user as mob) - if(istype(I, /obj/item/weapon/screwdriver)) - playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) - if(do_after(user, 20)) - if (src.stat & BROKEN) - user << "\blue The broken glass falls out." - var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc ) - new /obj/item/weapon/shard( src.loc ) - var/obj/item/weapon/circuitboard/scan_consolenew/M = new /obj/item/weapon/circuitboard/scan_consolenew( A ) - for (var/obj/C in src) - C.loc = src.loc - A.circuit = M - A.state = 3 - A.icon_state = "3" - A.anchored = 1 - del(src) - else - user << "\blue You disconnect the monitor." - var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc ) - var/obj/item/weapon/circuitboard/scan_consolenew/M = new /obj/item/weapon/circuitboard/scan_consolenew( A ) - for (var/obj/C in src) - C.loc = src.loc - A.circuit = M - A.state = 4 - A.icon_state = "4" - A.anchored = 1 - del(src) if (istype(I, /obj/item/weapon/disk/data)) //INSERT SOME diskS if (!src.disk) user.drop_item() @@ -276,7 +251,7 @@ nanomanager.update_uis(src) // update all UIs attached to src return else - src.attack_hand(user) + ..() return /obj/machinery/computer/scan_consolenew/ex_act(severity) @@ -339,13 +314,6 @@ I.buf = buffer return 1 -/obj/machinery/computer/scan_consolenew/attackby(obj/item/W as obj, mob/user as mob) - if ((istype(W, /obj/item/weapon/disk/data)) && (!src.disk)) - user.drop_item() - W.loc = src - src.disk = W - user << "You insert [W]." - nanomanager.update_uis(src) // update all UIs attached to src /* /obj/machinery/computer/scan_consolenew/process() //not really used right now if(stat & (NOPOWER|BROKEN)) diff --git a/code/game/machinery/computer/aifixer.dm b/code/game/machinery/computer/aifixer.dm index 98548372af..3048b644b4 100644 --- a/code/game/machinery/computer/aifixer.dm +++ b/code/game/machinery/computer/aifixer.dm @@ -2,6 +2,7 @@ name = "AI System Integrity Restorer" icon = 'icons/obj/computer.dmi' icon_state = "ai-fixer" + circuit = /obj/item/weapon/circuitboard/aifixer req_access = list(access_captain, access_robotics, access_heads) var/mob/living/silicon/ai/occupant = null var/active = 0 @@ -11,43 +12,13 @@ /obj/machinery/computer/aifixer/attackby(I as obj, user as mob) -/* - if(istype(I, /obj/item/weapon/screwdriver)) - playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) - if(do_after(user, 20)) - if (src.stat & BROKEN) - user << "\blue The broken glass falls out." - var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc ) - new /obj/item/weapon/shard( src.loc ) - var/obj/item/weapon/circuitboard/robotics/M = new /obj/item/weapon/circuitboard/robotics( A ) - for (var/obj/C in src) - C.loc = src.loc - M.id = src.id - A.circuit = M - A.state = 3 - A.icon_state = "3" - A.anchored = 1 - del(src) - else - user << "\blue You disconnect the monitor." - var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc ) - var/obj/item/weapon/circuitboard/robotics/M = new /obj/item/weapon/circuitboard/robotics( A ) - for (var/obj/C in src) - C.loc = src.loc - M.id = src.id - A.circuit = M - A.state = 4 - A.icon_state = "4" - A.anchored = 1 - del(src) -*/ if(istype(I, /obj/item/device/aicard)) if(stat & (NOPOWER|BROKEN)) user << "This terminal isn't functioning right now, get it working!" return I:transfer_ai("AIFIXER","AICARD",src,user) - - //src.attack_hand(user) + + ..() return /obj/machinery/computer/aifixer/attack_ai(var/mob/user as mob) diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index e5d4d3675a..11bebd70b6 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -238,27 +238,10 @@ src.updateUsrDialog() - else if(istype(I, /obj/item/weapon/screwdriver)) - playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) - if(do_after(user, 20)) - var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc ) - var/obj/item/weapon/circuitboard/arcade/M = new /obj/item/weapon/circuitboard/arcade( A ) - for (var/obj/C in src) - C.loc = src.loc - A.circuit = M - A.anchored = 1 + else + ..() - if (src.stat & BROKEN) - user << "\blue The broken glass falls out." - new /obj/item/weapon/shard( src.loc ) - A.state = 3 - A.icon_state = "3" - else - user << "\blue You disconnect the monitor." - A.state = 4 - A.icon_state = "4" - del(src) /obj/machinery/computer/arcade/emp_act(severity) if(stat & (NOPOWER|BROKEN)) ..(severity) diff --git a/code/game/machinery/computer/pod.dm b/code/game/machinery/computer/pod.dm index 0a5696ee4c..d65b3b5639 100644 --- a/code/game/machinery/computer/pod.dm +++ b/code/game/machinery/computer/pod.dm @@ -4,6 +4,7 @@ name = "Pod Launch Control" desc = "A controll for launching pods. Some people prefer firing Mechas." icon_state = "computer_generic" + circuit = /obj/item/weapon/circuitboard/pod var/id = 1.0 var/obj/machinery/mass_driver/connected = null var/timing = 0.0 @@ -48,7 +49,7 @@ return return - +/* /obj/machinery/computer/pod/attackby(I as obj, user as mob) if(istype(I, /obj/item/weapon/screwdriver)) playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1) @@ -103,6 +104,7 @@ else attack_hand(user) return +*/ /obj/machinery/computer/pod/attack_ai(var/mob/user as mob) diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm index f28b649ba7..6ec412033a 100644 --- a/code/game/supplyshuttle.dm +++ b/code/game/supplyshuttle.dm @@ -497,36 +497,8 @@ var/list/mechtoys = list( user << "\blue Special supplies unlocked." hacked = 1 return - if(istype(I, /obj/item/weapon/screwdriver)) - playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1) - if(do_after(user, 20)) - if (stat & BROKEN) - user << "\blue The broken glass falls out." - var/obj/structure/computerframe/A = new /obj/structure/computerframe( loc ) - new /obj/item/weapon/shard( loc ) - var/obj/item/weapon/circuitboard/supplycomp/M = new /obj/item/weapon/circuitboard/supplycomp( A ) - for (var/obj/C in src) - C.loc = loc - A.circuit = M - A.state = 3 - A.icon_state = "3" - A.anchored = 1 - del(src) - else - user << "\blue You disconnect the monitor." - var/obj/structure/computerframe/A = new /obj/structure/computerframe( loc ) - var/obj/item/weapon/circuitboard/supplycomp/M = new /obj/item/weapon/circuitboard/supplycomp( A ) - if(can_order_contraband) - M.contraband_enabled = 1 - for (var/obj/C in src) - C.loc = loc - A.circuit = M - A.state = 4 - A.icon_state = "4" - A.anchored = 1 - del(src) else - attack_hand(user) + ..() return /obj/machinery/computer/supplycomp/Topic(href, href_list) diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index 14e07c3f8c..81165e3035 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -161,28 +161,8 @@ proc/move_mining_shuttle() src.req_access = list() hacked = 1 usr << "You fried the consoles ID checking system. It's now available to everyone!" - - else if(istype(W, /obj/item/weapon/screwdriver)) - playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) - if(do_after(user, 20)) - var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc ) - var/obj/item/weapon/circuitboard/mining_shuttle/M = new /obj/item/weapon/circuitboard/mining_shuttle( A ) - for (var/obj/C in src) - C.loc = src.loc - A.circuit = M - A.anchored = 1 - - if (src.stat & BROKEN) - user << "\blue The broken glass falls out." - new /obj/item/weapon/shard( src.loc ) - A.state = 3 - A.icon_state = "3" - else - user << "\blue You disconnect the monitor." - A.state = 4 - A.icon_state = "4" - - del(src) + else + ..() /******************************Lantern*******************************/ diff --git a/code/modules/power/turbine.dm b/code/modules/power/turbine.dm index 82e05e954b..03afd0723f 100644 --- a/code/modules/power/turbine.dm +++ b/code/modules/power/turbine.dm @@ -31,6 +31,7 @@ desc = "A computer to remotely control a gas turbine" icon = 'icons/obj/computer.dmi' icon_state = "airtunnel0e" + circuit = /obj/item/weapon/circuitboard/turbine_control anchored = 1 density = 1 var/obj/machinery/compressor/compressor @@ -220,6 +221,7 @@ if(P.id == id) doors += P +/* /obj/machinery/computer/turbine_computer/attackby(I as obj, user as mob) if(istype(I, /obj/item/weapon/screwdriver)) playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) @@ -252,6 +254,7 @@ else src.attack_hand(user) return +*/ /obj/machinery/computer/turbine_computer/attack_hand(var/mob/user as mob) user.machine = src diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index bf8e233813..81222b8255 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -599,8 +599,9 @@ anchored = 1 icon = 'icons/obj/chemical.dmi' icon_state = "mixer0" - use_power = 1 - idle_power_usage = 20 + circuit = /obj/item/weapon/circuitboard/pandemic + //use_power = 1 + //idle_power_usage = 20 //defaults make more sense. var/temphtml = "" var/wait = null var/obj/item/weapon/reagent_containers/glass/beaker = null @@ -829,32 +830,6 @@ /obj/machinery/computer/pandemic/attackby(var/obj/I as obj, var/mob/user as mob) - if(istype(I, /obj/item/weapon/screwdriver)) - playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) - if(do_after(user, 20)) - if (src.stat & BROKEN) - user << "\blue The broken glass falls out." - var/obj/structure/computerframe/A = new /obj/structure/computerframe(src.loc) - new /obj/item/weapon/shard(src.loc) - var/obj/item/weapon/circuitboard/pandemic/M = new /obj/item/weapon/circuitboard/pandemic(A) - for (var/obj/C in src) - C.loc = src.loc - A.circuit = M - A.state = 3 - A.icon_state = "3" - A.anchored = 1 - del(src) - else - user << "\blue You disconnect the monitor." - var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc ) - var/obj/item/weapon/circuitboard/pandemic/M = new /obj/item/weapon/circuitboard/pandemic(A) - for (var/obj/C in src) - C.loc = src.loc - A.circuit = M - A.state = 4 - A.icon_state = "4" - A.anchored = 1 - del(src) else if(istype(I, /obj/item/weapon/reagent_containers/glass)) if(stat & (NOPOWER|BROKEN)) return if(src.beaker) diff --git a/code/modules/research/research_shuttle.dm b/code/modules/research/research_shuttle.dm index 91c1464d36..b0119b42aa 100644 --- a/code/modules/research/research_shuttle.dm +++ b/code/modules/research/research_shuttle.dm @@ -104,24 +104,5 @@ proc/move_research_shuttle() hacked = 1 usr << "You fried the consoles ID checking system. It's now available to everyone!" - else if(istype(W, /obj/item/weapon/screwdriver)) - playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) - if(do_after(user, 20)) - var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc ) - var/obj/item/weapon/circuitboard/research_shuttle/M = new /obj/item/weapon/circuitboard/research_shuttle( A ) - for (var/obj/C in src) - C.loc = src.loc - A.circuit = M - A.anchored = 1 - - if (src.stat & BROKEN) - user << "\blue The broken glass falls out." - new /obj/item/weapon/shard( src.loc ) - A.state = 3 - A.icon_state = "3" - else - user << "\blue You disconnect the monitor." - A.state = 4 - A.icon_state = "4" - - del(src) + else + ..() diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm index ac9166602f..1ff42aa095 100644 --- a/code/modules/research/server.dm +++ b/code/modules/research/server.dm @@ -193,6 +193,7 @@ /obj/machinery/computer/rdservercontrol name = "R&D Server Controller" icon_state = "rdcomp" + circuit = /obj/item/weapon/circuitboard/rdservercontrol var/screen = 0 var/obj/machinery/r_n_d/server/temp_server var/list/servers = list() @@ -332,38 +333,12 @@ return /obj/machinery/computer/rdservercontrol/attackby(var/obj/item/weapon/D as obj, var/mob/user as mob) - if(istype(D, /obj/item/weapon/screwdriver)) - playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) - if(do_after(user, 20)) - if (src.stat & BROKEN) - user << "\blue The broken glass falls out." - var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc ) - new /obj/item/weapon/shard( src.loc ) - var/obj/item/weapon/circuitboard/rdservercontrol/M = new /obj/item/weapon/circuitboard/rdservercontrol( A ) - for (var/obj/C in src) - C.loc = src.loc - A.circuit = M - A.state = 3 - A.icon_state = "3" - A.anchored = 1 - del(src) - else - user << "\blue You disconnect the monitor." - var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc ) - var/obj/item/weapon/circuitboard/rdservercontrol/M = new /obj/item/weapon/circuitboard/rdservercontrol( A ) - for (var/obj/C in src) - C.loc = src.loc - A.circuit = M - A.state = 4 - A.icon_state = "4" - A.anchored = 1 - del(src) else if(istype(D, /obj/item/weapon/card/emag) && !emagged) playsound(src.loc, 'sound/effects/sparks4.ogg', 75, 1) emagged = 1 user << "\blue You you disable the security protocols" src.updateUsrDialog() - return + return ..() /obj/machinery/r_n_d/server/robotics diff --git a/code/modules/virus2/curer.dm b/code/modules/virus2/curer.dm index 4d616048d1..44a0fd348b 100644 --- a/code/modules/virus2/curer.dm +++ b/code/modules/virus2/curer.dm @@ -2,20 +2,20 @@ name = "Cure Research Machine" icon = 'icons/obj/computer.dmi' icon_state = "dna" + circuit = /obj/item/weapon/circuitboard/curefab var/curing var/virusing var/obj/item/weapon/reagent_containers/container = null /obj/machinery/computer/curer/attackby(var/obj/I as obj, var/mob/user as mob) - if(istype(I, /obj/item/weapon/screwdriver)) - return ..(I,user) if(istype(I,/obj/item/weapon/reagent_containers)) var/mob/living/carbon/C = user if(!container) container = I C.drop_item() I.loc = src + return if(istype(I,/obj/item/weapon/virusdish)) if(virusing) user << "The pathogen materializer is still recharging.." @@ -31,8 +31,8 @@ state("The [src.name] Buzzes", "blue") return - src.attack_hand(user) - return + ..() + return /obj/machinery/computer/curer/attack_ai(var/mob/user as mob) return src.attack_hand(user) From 70333dfb51dc3a59a87c182e8f460c5581182ca0 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Thu, 22 May 2014 18:19:34 -0400 Subject: [PATCH 09/64] Setting RD board access now uses visible_message --- code/game/machinery/computer/buildandrepair.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm index 5772cd7756..77362e7aa1 100644 --- a/code/game/machinery/computer/buildandrepair.dm +++ b/code/game/machinery/computer/buildandrepair.dm @@ -277,7 +277,7 @@ /obj/item/weapon/circuitboard/rdconsole/attackby(obj/item/I as obj, mob/user as mob) if(istype(I,/obj/item/weapon/screwdriver)) - user << "\blue You adjust the jumper on the access protocol pins." + user.visible_message("\blue \the [user] adjusts the jumper on the [src]'s access protocol pins.", "\blue You adjust the jumper on the access protocol pins.") if(src.build_path == "/obj/machinery/computer/rdconsole/core") src.name = "Circuit Board (RD Console - Robotics)" src.build_path = "/obj/machinery/computer/rdconsole/robotics" From 296336e15eeac8eb449da8aeaa20789a05a8e762 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Thu, 22 May 2014 18:19:55 -0400 Subject: [PATCH 10/64] Small fixes --- code/game/dna/dna_modifier.dm | 2 +- code/modules/reagents/Chemistry-Machinery.dm | 2 +- code/modules/research/server.dm | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/dna/dna_modifier.dm b/code/game/dna/dna_modifier.dm index 3306556a24..1edca25f8e 100644 --- a/code/game/dna/dna_modifier.dm +++ b/code/game/dna/dna_modifier.dm @@ -220,7 +220,7 @@ icon = 'icons/obj/computer.dmi' icon_state = "scanner" density = 1 - circuit = obj/item/weapon/circuitboard/scan_consolenew + circuit = /obj/item/weapon/circuitboard/scan_consolenew var/selected_ui_block = 1.0 var/selected_ui_subblock = 1.0 var/selected_se_block = 1.0 diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index 81222b8255..22031620ce 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -830,7 +830,7 @@ /obj/machinery/computer/pandemic/attackby(var/obj/I as obj, var/mob/user as mob) - else if(istype(I, /obj/item/weapon/reagent_containers/glass)) + if(istype(I, /obj/item/weapon/reagent_containers/glass)) if(stat & (NOPOWER|BROKEN)) return if(src.beaker) user << "A beaker is already loaded into the machine." diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm index 1ff42aa095..a22d6e0399 100644 --- a/code/modules/research/server.dm +++ b/code/modules/research/server.dm @@ -333,7 +333,7 @@ return /obj/machinery/computer/rdservercontrol/attackby(var/obj/item/weapon/D as obj, var/mob/user as mob) - else if(istype(D, /obj/item/weapon/card/emag) && !emagged) + if(istype(D, /obj/item/weapon/card/emag) && !emagged) playsound(src.loc, 'sound/effects/sparks4.ogg', 75, 1) emagged = 1 user << "\blue You you disable the security protocols" From 5736200d18c8f2d48bd1afba2c0fac5d0d680c10 Mon Sep 17 00:00:00 2001 From: Hubblenaut Date: Fri, 23 May 2014 17:56:27 +0200 Subject: [PATCH 11/64] Strip interface changes: Accessories, Pockets, Suit Sensors --- code/modules/clothing/clothing.dm | 57 +++++++++++++------ code/modules/mob/living/carbon/human/human.dm | 12 ++-- .../mob/living/carbon/human/inventory.dm | 53 ++++++++++++++++- 3 files changed, 97 insertions(+), 25 deletions(-) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 9ec56f1fc9..fc3ec4668c 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -220,7 +220,7 @@ BLIND // can't see anything allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen) slowdown = 3 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 50) - flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL + flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE siemens_coefficient = 0.9 @@ -252,7 +252,7 @@ BLIND // can't see anything if(hastie) hastie.attackby(I, user) return - + if(!hastie && istype(I, /obj/item/clothing/tie)) user.drop_item() hastie = I @@ -265,7 +265,7 @@ BLIND // can't see anything return ..() - + /obj/item/clothing/under/attack_hand(mob/user as mob) //only forward to the attached accessory if the clothing is equipped (not in a storage) if(hastie && src.loc == user) @@ -279,7 +279,7 @@ BLIND // can't see anything //makes sure that the clothing is equipped so that we can't drag it into our hand from miles away. if (!(src.loc == usr)) return - + if (!( usr.restrained() ) && !( usr.stat )) switch(over_object.name) if("r_hand") @@ -307,10 +307,7 @@ BLIND // can't see anything if(hastie) usr << "\A [hastie] is clipped to it." -/obj/item/clothing/under/verb/toggle() - set name = "Toggle Suit Sensors" - set category = "Object" - set src in usr +/obj/item/clothing/under/proc/set_sensors(mob/usr as mob) var/mob/M = usr if (istype(M, /mob/dead/)) return if (usr.stat) return @@ -323,17 +320,41 @@ BLIND // can't see anything var/list/modes = list("Off", "Binary sensors", "Vitals tracker", "Tracking beacon") var/switchMode = input("Select a sensor mode:", "Suit Sensor Mode", modes[sensor_mode + 1]) in modes + if(get_dist(usr, src) > 1) + usr << "You have moved too far away." + return sensor_mode = modes.Find(switchMode) - 1 - switch(sensor_mode) - if(0) - usr << "You disable your suit's remote sensing equipment." - if(1) - usr << "Your suit will now report whether you are live or dead." - if(2) - usr << "Your suit will now report your vital lifesigns." - if(3) - usr << "Your suit will now report your vital lifesigns as well as your coordinate position." + if (src.loc == usr) + switch(sensor_mode) + if(0) + usr << "You disable your suit's remote sensing equipment." + if(1) + usr << "Your suit will now report whether you are live or dead." + if(2) + usr << "Your suit will now report your vital lifesigns." + if(3) + usr << "Your suit will now report your vital lifesigns as well as your coordinate position." + else if (istype(src.loc, /mob)) + switch(sensor_mode) + if(0) + for(var/mob/V in viewers(usr, 1)) + V.show_message("\red [usr] disables [src.loc]'s remote sensing equipment.", 1) + if(1) + for(var/mob/V in viewers(usr, 1)) + V.show_message("[usr] turns [src.loc]'s remote sensors to binary.", 1) + if(2) + for(var/mob/V in viewers(usr, 1)) + V.show_message("[usr] sets [src.loc]'s sensors to track vitals.", 1) + if(3) + for(var/mob/V in viewers(usr, 1)) + V.show_message("[usr] sets [src.loc]'s sensors to maximum.", 1) + +/obj/item/clothing/under/verb/toggle() + set name = "Toggle Suit Sensors" + set category = "Object" + set src in usr + set_sensors(usr) ..() /obj/item/clothing/under/verb/rollsuit() @@ -354,7 +375,7 @@ BLIND // can't see anything /obj/item/clothing/under/proc/remove_accessory(mob/user as mob) if(!hastie) return - + hastie.on_removed(user) hastie = null diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 9f5289c43f..62d2f4d976 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -398,6 +398,9 @@ /mob/living/carbon/human/show_inv(mob/user as mob) + var/obj/item/clothing/under/suit = null + if (istype(w_uniform, /obj/item/clothing/under)) + suit = w_uniform user.set_machine(src) var/dat = {" @@ -412,21 +415,22 @@
Right Ear: [(r_ear ? r_ear : "Nothing")]
Head: [(head ? head : "Nothing")]
Shoes: [(shoes ? shoes : "Nothing")] -
Belt: [(belt ? belt : "Nothing")] -
Uniform: [(w_uniform ? w_uniform : "Nothing")] +
Belt: [(belt ? belt : "Nothing")] [((istype(wear_mask, /obj/item/clothing/mask) && istype(belt, /obj/item/weapon/tank) && !( internal )) ? text(" Set Internal", src) : "")] +
Uniform: [(w_uniform ? w_uniform : "Nothing")] [(suit) ? ((suit.has_sensor == 1) ? text(" Sensors", src) : "") :]
(Exo)Suit: [(wear_suit ? wear_suit : "Nothing")]
Back: [(back ? back : "Nothing")] [((istype(wear_mask, /obj/item/clothing/mask) && istype(back, /obj/item/weapon/tank) && !( internal )) ? text(" Set Internal", src) : "")]
ID: [(wear_id ? wear_id : "Nothing")] -
Suit Storage: [(s_store ? s_store : "Nothing")] +
Suit Storage: [(s_store ? s_store : "Nothing")] [((istype(wear_mask, /obj/item/clothing/mask) && istype(s_store, /obj/item/weapon/tank) && !( internal )) ? text(" Set Internal", src) : "")]
[(handcuffed ? text("Handcuffed") : text("Not Handcuffed"))]
[(legcuffed ? text("Legcuffed") : text(""))] +
[(suit) ? ((suit.hastie) ? text(" Remove Accessoire", src) : "") :]
[(internal ? text("Remove Internal") : "")]
Remove Splints
Empty Pockets
Refresh
Close
"} - user << browse(dat, text("window=mob[name];size=340x480")) + user << browse(dat, text("window=mob[name];size=340x540")) onclose(user, "mob[name]") return diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 64d1ff64ef..8e3e42a39c 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -388,11 +388,14 @@ if(count == 0) del(src) return + if("sensor") + if (! target.w_uniform ) + del(src) if("internal") if ((!( (istype(target.wear_mask, /obj/item/clothing/mask) && istype(target.back, /obj/item/weapon/tank) && !( target.internal )) ) && !( target.internal ))) del(src) - var/list/L = list( "syringe", "pill", "drink", "dnainjector", "fuel") + var/list/L = list( "syringe", "pill", "drink", "dnainjector", "fuel", "sensor", "internal", "tie") if ((item && !( L.Find(place) ))) if(isrobot(source) && place != "handcuff") del(src) @@ -508,6 +511,17 @@ return else message = "\red [source] is trying to take off \a [target.w_uniform] from [target]'s body!" + if("tie") + var/obj/item/clothing/under/suit = target.w_uniform + target.attack_log += text("\[[time_stamp()]\] Has had their accessoire ([suit.hastie]) removed by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) accessoire ([suit.hastie])") + if(istype(suit.hastie, /obj/item/clothing/tie/holobadge) || istype(suit.hastie, /obj/item/clothing/tie/medal)) + for(var/mob/M in viewers(target, null)) + M.show_message("\red [source] tears off \the [suit.hastie] from [target]'s suit!" , 1) + done() + return + else + message = "\red [source] is trying to take off \a [suit.hastie] from [target]'s suit!" if("s_store") target.attack_log += text("\[[time_stamp()]\] Has had their suit storage item ([target.s_store]) removed by [source.name] ([source.ckey])") source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) suit storage item ([target.s_store])") @@ -537,6 +551,14 @@ message = "\red [source] is trying to set on [target]'s internals." if("splints") message = text("\red [] is trying to remove []'s splints!", source, target) + if("sensor") + target.attack_log += text("\[[time_stamp()]\] Has had their sensors toggled by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to toggle [target.name]'s ([target.ckey]) sensors") + var/obj/item/clothing/under/suit = target.w_uniform + if (suit.has_sensor >= 2) + source << "The controls are locked." + return + message = "\red [source] is trying to set [target]'s suit sensors!" for(var/mob/M in viewers(target, null)) M.show_message(message, 1) @@ -624,6 +646,19 @@ It can still be worn/put on as normal. slot_to_process = slot_wear_suit if (target.wear_suit && target.wear_suit.canremove) strip_item = target.wear_suit + if("tie") + var/obj/item/clothing/under/suit = target.w_uniform + //var/obj/item/clothing/tie/tie = suit.hastie + /*if(tie) + if (istype(tie,/obj/item/clothing/tie/storage)) + var/obj/item/clothing/tie/storage/W = tie + if (W.hold) + W.hold.close(usr) + usr.put_in_hands(tie) + suit.hastie = null*/ + suit.hastie.on_removed(usr) + suit.hastie = null + target.update_inv_w_uniform() if("id") slot_to_process = slot_wear_id if (target.wear_id) @@ -675,8 +710,20 @@ It can still be worn/put on as normal. O.show_message("\red [source] injects [target] with the DNA Injector!", 1) S.inuse = 0 if("pockets") - slot_to_process = slot_l_store - strip_item = target.l_store //We'll do both + if (!item || (target.l_store && target.r_store)) // Only empty pockets when hand is empty or both pockets are full + slot_to_process = slot_l_store + strip_item = target.l_store //We'll do both + else if (target.l_store) + slot_to_process = slot_r_store + else + slot_to_process = slot_l_store + if("sensor") + var/obj/item/clothing/under/suit = target.w_uniform + if (suit) + if(suit.has_sensor >= 2) + source << "The controls are locked." + else + suit.set_sensors(source) if("internal") if (target.internal) target.internal.add_fingerprint(source) From 964e408b36a7ffcd43bf843a0261ebfdedc1c65b Mon Sep 17 00:00:00 2001 From: Hubblenaut Date: Fri, 23 May 2014 17:58:07 +0200 Subject: [PATCH 12/64] Line breaks in records\! --- code/game/machinery/computer/computer.dm | 5 +++++ code/game/machinery/computer/medical.dm | 6 +++--- code/game/machinery/computer/security.dm | 6 +++--- code/game/machinery/computer/skills.dm | 8 ++++---- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/code/game/machinery/computer/computer.dm b/code/game/machinery/computer/computer.dm index c47eb1f913..b289bcaa20 100644 --- a/code/game/machinery/computer/computer.dm +++ b/code/game/machinery/computer/computer.dm @@ -95,6 +95,11 @@ stat |= BROKEN update_icon() +/obj/machinery/computer/proc/decode(text) + // Adds line breaks + text = replacetext(text, "\n", "
") + return text + /obj/machinery/computer/attackby(I as obj, user as mob) if(istype(I, /obj/item/weapon/screwdriver) && circuit) diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index 37cdd7deb6..b9c821e18e 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -78,7 +78,7 @@ else dat += "General Record Lost!
" if ((istype(src.active2, /datum/data/record) && data_core.medical.Find(src.active2))) - dat += text("
\n
Medical Data

\nBlood Type: []
\nDNA: []
\n
\nMinor Disabilities: []
\nDetails: []
\n
\nMajor Disabilities: []
\nDetails: []
\n
\nAllergies: []
\nDetails: []
\n
\nCurrent Diseases: [] (per disease info placed in log/comment section)
\nDetails: []
\n
\nImportant Notes:
\n\t[]
\n
\n
Comments/Log

", src, src.active2.fields["b_type"], src, src.active2.fields["b_dna"], src, src.active2.fields["mi_dis"], src, src.active2.fields["mi_dis_d"], src, src.active2.fields["ma_dis"], src, src.active2.fields["ma_dis_d"], src, src.active2.fields["alg"], src, src.active2.fields["alg_d"], src, src.active2.fields["cdi"], src, src.active2.fields["cdi_d"], src, src.active2.fields["notes"]) + dat += text("
\n
Medical Data

\nBlood Type: []
\nDNA: []
\n
\nMinor Disabilities: []
\nDetails: []
\n
\nMajor Disabilities: []
\nDetails: []
\n
\nAllergies: []
\nDetails: []
\n
\nCurrent Diseases: [] (per disease info placed in log/comment section)
\nDetails: []
\n
\nImportant Notes:
\n\t[]
\n
\n
Comments/Log

", src, src.active2.fields["b_type"], src, src.active2.fields["b_dna"], src, src.active2.fields["mi_dis"], src, src.active2.fields["mi_dis_d"], src, src.active2.fields["ma_dis"], src, src.active2.fields["ma_dis_d"], src, src.active2.fields["alg"], src, src.active2.fields["alg_d"], src, src.active2.fields["cdi"], src, src.active2.fields["cdi_d"], src, decode(src.active2.fields["notes"])) var/counter = 1 while(src.active2.fields[text("com_[]", counter)]) dat += text("[]
Delete Entry

", src.active2.fields[text("com_[]", counter)], src, counter) @@ -302,7 +302,7 @@ src.active2.fields["cdi_d"] = t1 if("notes") if (istype(src.active2, /datum/data/record)) - var/t1 = copytext(sanitize(input("Please summarize notes:", "Med. records", src.active2.fields["notes"], null) as message),1,MAX_MESSAGE_LEN) + var/t1 = copytext(html_encode(input("Please summarize notes:", "Med. records", html_decode(src.active2.fields["notes"]), null) as message),1,MAX_MESSAGE_LEN) if ((!( t1 ) || !( src.authenticated ) || usr.stat || usr.restrained() || (!in_range(src, usr) && (!istype(usr, /mob/living/silicon))) || src.active2 != a2)) return src.active2.fields["notes"] = t1 @@ -487,7 +487,7 @@ P.info += "General Record Lost!
" P.name = "Medical Record" if (record2) - P.info += text("
\n
Medical Data

\nBlood Type: []
\nDNA: []
\n
\nMinor Disabilities: []
\nDetails: []
\n
\nMajor Disabilities: []
\nDetails: []
\n
\nAllergies: []
\nDetails: []
\n
\nCurrent Diseases: [] (per disease info placed in log/comment section)
\nDetails: []
\n
\nImportant Notes:
\n\t[]
\n
\n
Comments/Log

", record2.fields["b_type"], record2.fields["b_dna"], record2.fields["mi_dis"], record2.fields["mi_dis_d"], record2.fields["ma_dis"], record2.fields["ma_dis_d"], record2.fields["alg"], record2.fields["alg_d"], record2.fields["cdi"], record2.fields["cdi_d"], record2.fields["notes"]) + P.info += text("
\n
Medical Data

\nBlood Type: []
\nDNA: []
\n
\nMinor Disabilities: []
\nDetails: []
\n
\nMajor Disabilities: []
\nDetails: []
\n
\nAllergies: []
\nDetails: []
\n
\nCurrent Diseases: [] (per disease info placed in log/comment section)
\nDetails: []
\n
\nImportant Notes:
\n\t[]
\n
\n
Comments/Log

", record2.fields["b_type"], record2.fields["b_dna"], record2.fields["mi_dis"], record2.fields["mi_dis_d"], record2.fields["ma_dis"], record2.fields["ma_dis_d"], record2.fields["alg"], record2.fields["alg_d"], record2.fields["cdi"], record2.fields["cdi_d"], decode(record2.fields["notes"])) var/counter = 1 while(record2.fields[text("com_[]", counter)]) P.info += text("[]
", record2.fields[text("com_[]", counter)]) diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index 129c677201..5cbd9bde9c 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -125,7 +125,7 @@ else dat += "General Record Lost!
" if ((istype(active2, /datum/data/record) && data_core.security.Find(active2))) - dat += text("
\n
Security Data

\nCriminal Status: []
\n
\nMinor Crimes: []
\nDetails: []
\n
\nMajor Crimes: []
\nDetails: []
\n
\nImportant Notes:
\n\t[]
\n
\n
Comments/Log

", src, active2.fields["criminal"], src, active2.fields["mi_crim"], src, active2.fields["mi_crim_d"], src, active2.fields["ma_crim"], src, active2.fields["ma_crim_d"], src, active2.fields["notes"]) + dat += text("
\n
Security Data

\nCriminal Status: []
\n
\nMinor Crimes: []
\nDetails: []
\n
\nMajor Crimes: []
\nDetails: []
\n
\nImportant Notes:
\n\t[]
\n
\n
Comments/Log

", src, active2.fields["criminal"], src, active2.fields["mi_crim"], src, active2.fields["mi_crim_d"], src, active2.fields["ma_crim"], src, active2.fields["ma_crim_d"], src, decode(active2.fields["notes"])) var/counter = 1 while(active2.fields[text("com_[]", counter)]) dat += text("[]
Delete Entry

", active2.fields[text("com_[]", counter)], src, counter) @@ -345,7 +345,7 @@ What a mess.*/ P.info += "General Record Lost!
" P.name = "Security Record" if (record2) - P.info += text("
\n
Security Data

\nCriminal Status: []
\n
\nMinor Crimes: []
\nDetails: []
\n
\nMajor Crimes: []
\nDetails: []
\n
\nImportant Notes:
\n\t[]
\n
\n
Comments/Log

", record2.fields["criminal"], record2.fields["mi_crim"], record2.fields["mi_crim_d"], record2.fields["ma_crim"], record2.fields["ma_crim_d"], record2.fields["notes"]) + P.info += text("
\n
Security Data

\nCriminal Status: []
\n
\nMinor Crimes: []
\nDetails: []
\n
\nMajor Crimes: []
\nDetails: []
\n
\nImportant Notes:
\n\t[]
\n
\n
Comments/Log

", record2.fields["criminal"], record2.fields["mi_crim"], record2.fields["mi_crim_d"], record2.fields["ma_crim"], record2.fields["ma_crim_d"], decode(record2.fields["notes"])) var/counter = 1 while(record2.fields[text("com_[]", counter)]) P.info += text("[]
", record2.fields[text("com_[]", counter)]) @@ -488,7 +488,7 @@ What a mess.*/ active2.fields["ma_crim_d"] = t1 if("notes") if (istype(active2, /datum/data/record)) - var/t1 = copytext(sanitize(input("Please summarize notes:", "Secure. records", active2.fields["notes"], null) as message),1,MAX_MESSAGE_LEN) + var/t1 = copytext(html_encode(input("Please summarize notes:", "Secure. records", html_decode(active2.fields["notes"]), null) as message),1,MAX_MESSAGE_LEN) if ((!( t1 ) || !( authenticated ) || usr.stat || usr.restrained() || (!in_range(src, usr) && (!istype(usr, /mob/living/silicon))) || active2 != a2)) return active2.fields["notes"] = t1 diff --git a/code/game/machinery/computer/skills.dm b/code/game/machinery/computer/skills.dm index 3068d99301..27360e963e 100644 --- a/code/game/machinery/computer/skills.dm +++ b/code/game/machinery/computer/skills.dm @@ -100,7 +100,7 @@ Fingerprint: [active1.fields["fingerprint"]]
\n \ Physical Status: [active1.fields["p_stat"]]
\n \ Mental Status: [active1.fields["m_stat"]]

\n \ - Employment/skills summary:
[active1.fields["notes"]]
\ + Employment/skills summary:
[decode(active1.fields["notes"])]
\ Photo:
\ ") else @@ -275,11 +275,11 @@ What a mess.*/ var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( loc ) P.info = "
Employment Record

" if ((istype(active1, /datum/data/record) && data_core.general.Find(active1))) - P.info += text("Name: [] ID: []
\nSex: []
\nAge: []
\nFingerprint: []
\nPhysical Status: []
\nMental Status: []
\nEmployment/Skills Summary:[]
", active1.fields["name"], active1.fields["id"], active1.fields["sex"], active1.fields["age"], active1.fields["fingerprint"], active1.fields["p_stat"], active1.fields["m_stat"], active1.fields["notes"]) + P.info += text("Name: [] ID: []
\nSex: []
\nAge: []
\nFingerprint: []
\nPhysical Status: []
\nMental Status: []
\nEmployment/Skills Summary:
\n[]
", active1.fields["name"], active1.fields["id"], active1.fields["sex"], active1.fields["age"], active1.fields["fingerprint"], active1.fields["p_stat"], active1.fields["m_stat"], decode(active1.fields["notes"])) else P.info += "General Record Lost!
" P.info += "" - P.name = "paper - 'Employment Record'" + P.name = "Employment Record ([active1.fields["name"]])" printing = null //RECORD DELETE if ("Delete All Records") @@ -302,7 +302,7 @@ What a mess.*/ temp += "No" //RECORD CREATE if ("New Record (General)") - + if(PDA_Manifest.len) PDA_Manifest.Cut() var/datum/data/record/G = new /datum/data/record() From 52a9f0eb8e3ecc68f258be0220724254bfc68b83 Mon Sep 17 00:00:00 2001 From: Hubblenaut Date: Fri, 23 May 2014 22:05:13 +0200 Subject: [PATCH 13/64] Huge code cleanup and bugfixes, slight overlay modifications --- code/modules/paperwork/paper.dm | 46 ++++++++++++++++------- code/modules/paperwork/paper_bundle.dm | 49 ++++++------------------- icons/obj/bureaucracy.dmi | Bin 10570 -> 10562 bytes 3 files changed, 45 insertions(+), 50 deletions(-) diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 4fec2ee842..7e16c426db 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -316,25 +316,45 @@ clown = 1 if(istype(P, /obj/item/weapon/paper) || istype(P, /obj/item/weapon/photo)) + if (istype(P, /obj/item/weapon/paper/carbon)) + var/obj/item/weapon/paper/carbon/C = P + if (!C.iscopy && !C.copied) + user << "Take off the carbon copy first." + add_fingerprint(user) + return var/obj/item/weapon/paper_bundle/B = new(src.loc) if (name != "paper") B.name = name else if (P.name != "paper" && P.name != "photo") B.name = P.name user.drop_from_inventory(P) - if (user.r_hand == src) - user.drop_from_inventory(src) - B.loc = user - user.r_hand = B - B.layer = 20 - else if (user.l_hand == src) - user.drop_from_inventory(src) - B.loc = user - user.l_hand = B - B.layer = 20 - if(istype(user,/mob/living/carbon/human)) - user:update_inv_l_hand() - user:update_inv_r_hand() + if (istype(user, /mob/living/carbon/human)) + var/mob/living/carbon/human/h_user = user + if (h_user.r_hand == src) + h_user.drop_from_inventory(src) + h_user.put_in_r_hand(B) + else if (h_user.l_hand == src) + h_user.drop_from_inventory(src) + h_user.put_in_l_hand(B) + else if (h_user.l_store == src) + h_user.drop_from_inventory(src) + B.loc = h_user + B.layer = 20 + h_user.l_store = B + h_user.update_inv_pockets() + else if (h_user.r_store == src) + h_user.drop_from_inventory(src) + B.loc = h_user + B.layer = 20 + h_user.r_store = B + h_user.update_inv_pockets() + else if (h_user.head == src) + h_user.u_equip(src) + h_user.put_in_hands(B) + else if (!istype(src.loc, /turf)) + src.loc = get_turf(h_user) + if(h_user.client) h_user.client.screen -= src + h_user.put_in_hands(B) user << "You clip the [P.name] to [(src.name == "paper") ? "the paper" : src.name]." src.loc = B P.loc = B diff --git a/code/modules/paperwork/paper_bundle.dm b/code/modules/paperwork/paper_bundle.dm index 8ede4c9ed1..241fd852d9 100644 --- a/code/modules/paperwork/paper_bundle.dm +++ b/code/modules/paperwork/paper_bundle.dm @@ -21,6 +21,13 @@ var/obj/item/weapon/paper/P if(istype(W, /obj/item/weapon/paper)) P = W + if (istype(P, /obj/item/weapon/paper/carbon)) + var/obj/item/weapon/paper/carbon/C = P + if (!C.iscopy && !C.copied) + user << "Take off the carbon copy first." + add_fingerprint(user) + return + amount++ if(screen == 2) screen = 1 @@ -37,9 +44,6 @@ user << "You add [(W.name == "photo") ? "the photo" : W.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name]." user.drop_from_inventory(W) W.loc = src - if(istype(user,/mob/living/carbon/human)) - user:update_inv_l_hand() - user:update_inv_r_hand() else if(istype(W, /obj/item/weapon/pen) || istype(W, /obj/item/toy/crayon)) usr << browse("", "window=[name]") //Closes the dialog @@ -103,7 +107,7 @@ /obj/item/weapon/paper_bundle/Topic(href, href_list) ..() - if((src in usr.contents) || (src.loc in usr.contents)) + if((src in usr.contents) || (istype(src.loc, /obj/item/weapon/folder) && (src.loc in usr.contents))) usr.set_machine(src) if(href_list["next_page"]) if(page == amount) @@ -125,44 +129,18 @@ playsound(src.loc, "pageturn", 50, 1) if(href_list["remove"]) var/obj/item/weapon/W = src[page] - W.loc = usr.loc - if(istype(usr,/mob/living/carbon)) - //Place the item in the user's hand if possible - if(!usr.r_hand) - W.loc = usr - usr.r_hand = W - W.layer = 20 - else if(!usr.l_hand) - W.loc = usr - usr.l_hand = W - W.layer = 20 + usr.put_in_hands(W) usr << "You remove the [W.name] from the bundle." - if(amount == 1) var/obj/item/weapon/paper/P = src[1] - P.loc = usr.loc - if (usr.r_hand == src) - usr.drop_from_inventory(src) - P.loc = usr - usr.r_hand = P - P.layer = 20 - else if (usr.l_hand == src) - usr.drop_from_inventory(src) - P.loc = usr - usr.l_hand = P - P.layer = 20 - if(istype(usr,/mob/living/carbon/human)) - usr:update_inv_l_hand() - usr:update_inv_r_hand() + usr.drop_from_inventory(src) + usr.put_in_hands(P) del(src) else if(page == amount) screen = 2 else if(page == amount+1) page-- - if(istype(usr,/mob/living/carbon/human)) - usr:update_inv_l_hand() - usr:update_inv_r_hand() amount-- update_icon() else @@ -193,10 +171,8 @@ usr << "You loosen the bundle." for(var/obj/O in src) O.loc = usr.loc + O.layer = initial(O.layer) usr.drop_from_inventory(src) - if(istype(usr,/mob/living/carbon/human)) - usr:update_inv_l_hand() - usr:update_inv_r_hand() del(src) return @@ -220,7 +196,6 @@ i++ else if(istype(O, /obj/item/weapon/photo)) var/obj/item/weapon/photo/Ph = O -// img.icon_state = "photo" img = Ph.tiny photo = 1 overlays += img diff --git a/icons/obj/bureaucracy.dmi b/icons/obj/bureaucracy.dmi index 3c6d52748c6255248e09cc72ef77496aa3d61b7a..b44265089264032458e63e5724ef75bb8dee1384 100644 GIT binary patch delta 9877 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 U2MumL0l<&8hJkvSs%^yo0lW9`cmMzZ delta 9892 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 From 041254ddc53430a031124a34ebb107a1ccd5203a Mon Sep 17 00:00:00 2001 From: Hubblenaut Date: Fri, 23 May 2014 22:23:02 +0200 Subject: [PATCH 14/64] Fixes #5029 --- code/modules/paperwork/paper_bundle.dm | 27 ++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/code/modules/paperwork/paper_bundle.dm b/code/modules/paperwork/paper_bundle.dm index 241fd852d9..3fc2c8c75f 100644 --- a/code/modules/paperwork/paper_bundle.dm +++ b/code/modules/paperwork/paper_bundle.dm @@ -44,6 +44,8 @@ user << "You add [(W.name == "photo") ? "the photo" : W.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name]." user.drop_from_inventory(W) W.loc = src + else if(istype(W, /obj/item/weapon/lighter)) + burnpaper(W, user) else if(istype(W, /obj/item/weapon/pen) || istype(W, /obj/item/toy/crayon)) usr << browse("", "window=[name]") //Closes the dialog @@ -54,6 +56,31 @@ return +/obj/item/weapon/paper_bundle/proc/burnpaper(obj/item/weapon/lighter/P, mob/user) + var/class = "" + + if(P.lit && !user.restrained()) + if(istype(P, /obj/item/weapon/lighter/zippo)) + class = "" + + user.visible_message("[class][user] holds \the [P] up to \the [src], it looks like \he's trying to burn it!", \ + "[class]You hold \the [P] up to \the [src], burning it slowly.") + + spawn(20) + if(get_dist(src, user) < 2 && user.get_active_hand() == P && P.lit) + user.visible_message("[class][user] burns right through \the [src], turning it to ash. It flutters through the air before settling on the floor in a heap.", \ + "[class]You burn right through \the [src], turning it to ash. It flutters through the air before settling on the floor in a heap.") + + if(user.get_inactive_hand() == src) + user.drop_from_inventory(src) + + new /obj/effect/decal/cleanable/ash(src.loc) + del(src) + + else + user << "\red You must hold \the [P] steady to burn \the [src]." + + /obj/item/weapon/paper_bundle/examine() set src in oview(1) From e28ce8a366e42668f35de1db20517961a4b7baaf Mon Sep 17 00:00:00 2001 From: Hubblenaut Date: Fri, 23 May 2014 22:31:27 +0200 Subject: [PATCH 15/64] Removed all prefixes of type 'paper - ' --- code/game/gamemodes/game_mode.dm | 2 +- code/game/gamemodes/revolution/rp-revolution.dm | 6 +++--- code/game/gamemodes/revolution/rp_revolution.dm | 2 +- code/game/machinery/cloning.dm | 2 +- code/modules/paperwork/photography.dm | 2 +- code/unused/computer2/peripherals.dm | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index fe252c3ab3..14c8b67f2b 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -248,7 +248,7 @@ Implants; for (var/obj/machinery/computer/communications/comm in machines) if (!(comm.stat & (BROKEN | NOPOWER)) && comm.prints_intercept) var/obj/item/weapon/paper/intercept = new /obj/item/weapon/paper( comm.loc ) - intercept.name = "paper - 'Cent. Com. Status Summary'" + intercept.name = "Cent. Com. Status Summary" intercept.info = intercepttext comm.messagetitle.Add("Cent. Com. Status Summary") diff --git a/code/game/gamemodes/revolution/rp-revolution.dm b/code/game/gamemodes/revolution/rp-revolution.dm index 963579af7c..2fdf8af27c 100644 --- a/code/game/gamemodes/revolution/rp-revolution.dm +++ b/code/game/gamemodes/revolution/rp-revolution.dm @@ -45,7 +45,7 @@ for (var/obj/machinery/computer/communications/comm in world) if (!(comm.stat & (BROKEN | NOPOWER)) && comm.prints_intercept) var/obj/item/weapon/paper/intercept = new /obj/item/weapon/paper( comm.loc ) - intercept.name = "paper - 'Cent. Com. Status Summary'" + intercept.name = "Cent. Com. Status Summary" intercept.info = intercepttext comm.messagetitle.Add("Cent. Com. Status Summary") @@ -116,7 +116,7 @@ for (var/obj/machinery/computer/communications/comm in world) if (!(comm.stat & (BROKEN | NOPOWER)) && comm.prints_intercept) var/obj/item/weapon/paper/intercept = new /obj/item/weapon/paper( comm.loc ) - intercept.name = "paper - 'Cent. Com. Status Summary'" + intercept.name = "Cent. Com. Status Summary" intercept.info = intercepttext comm.messagetitle.Add("Cent. Com. Status Summary") @@ -134,7 +134,7 @@ for (var/obj/machinery/computer/communications/comm in world) if (!(comm.stat & (BROKEN | NOPOWER)) && comm.prints_intercept) var/obj/item/weapon/paper/intercept = new /obj/item/weapon/paper( comm.loc ) - intercept.name = "paper - 'Cent. Com. Status Summary'" + intercept.name = "Cent. Com. Status Summary" intercept.info = intercepttext comm.messagetitle.Add("Cent. Com. Status Summary") diff --git a/code/game/gamemodes/revolution/rp_revolution.dm b/code/game/gamemodes/revolution/rp_revolution.dm index 70fd1387f0..71c34c0d04 100644 --- a/code/game/gamemodes/revolution/rp_revolution.dm +++ b/code/game/gamemodes/revolution/rp_revolution.dm @@ -248,7 +248,7 @@ for (var/obj/machinery/computer/communications/comm in world) if (!(comm.stat & (BROKEN | NOPOWER)) && comm.prints_intercept) var/obj/item/weapon/paper/intercept = new /obj/item/weapon/paper( comm.loc ) - intercept.name = "paper - 'Cent. Com. Announcement'" + intercept.name = "Cent. Com. Announcement" intercept.info = message comm.messagetitle.Add("Cent. Com. Announcement") diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 4361460980..5b94030066 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -433,7 +433,7 @@ */ /obj/item/weapon/paper/Cloning - name = "paper - 'H-87 Cloning Apparatus Manual" + name = "H-87 Cloning Apparatus Manual" info = {"

Getting Started

Congratulations, your station has purchased the H-87 industrial cloning device!
Using the H-87 is almost as simple as brain surgery! Simply insert the target humanoid into the scanning chamber and select the scan option to create a new profile!
diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm index a2bfb3bf0f..3656d55090 100644 --- a/code/modules/paperwork/photography.dm +++ b/code/modules/paperwork/photography.dm @@ -68,7 +68,7 @@ var/n_name = copytext(sanitize(input(usr, "What would you like to label the photo?", "Photo Labelling", null) as text), 1, MAX_NAME_LEN) //loc.loc check is for making possible renaming photos in clipboards if(( (loc == usr || (loc.loc && loc.loc == usr)) && usr.stat == 0)) - name = "[(n_name ? text("[n_name]") : null)]" + name = "[(n_name ? text("[n_name]") : "photo")]" add_fingerprint(usr) return diff --git a/code/unused/computer2/peripherals.dm b/code/unused/computer2/peripherals.dm index 9e19cb9d23..1e6ff79e8b 100644 --- a/code/unused/computer2/peripherals.dm +++ b/code/unused/computer2/peripherals.dm @@ -110,7 +110,7 @@ var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( src.host.loc ) P.info = print_data if(print_title) - P.name = "paper - '[print_title]'" + P.name = "[print_title]" src.printing = 0 return From 7e10d6425271daf5fef22058d2f0c07cf3dbbf5d Mon Sep 17 00:00:00 2001 From: Hubblenaut Date: Fri, 23 May 2014 22:50:34 +0200 Subject: [PATCH 16/64] Attack paper bundles with paper bundles --- code/modules/paperwork/paper_bundle.dm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/code/modules/paperwork/paper_bundle.dm b/code/modules/paperwork/paper_bundle.dm index 3fc2c8c75f..a1bd5b52f9 100644 --- a/code/modules/paperwork/paper_bundle.dm +++ b/code/modules/paperwork/paper_bundle.dm @@ -46,6 +46,13 @@ W.loc = src else if(istype(W, /obj/item/weapon/lighter)) burnpaper(W, user) + else if(istype(W, /obj/item/weapon/paper_bundle)) + user.drop_from_inventory(W) + for(var/obj/O in W) + O.loc = src + O.add_fingerprint(usr) + user << "You add \the [W.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name]." + del(W) else if(istype(W, /obj/item/weapon/pen) || istype(W, /obj/item/toy/crayon)) usr << browse("", "window=[name]") //Closes the dialog @@ -199,6 +206,7 @@ for(var/obj/O in src) O.loc = usr.loc O.layer = initial(O.layer) + O.add_fingerprint(usr) usr.drop_from_inventory(src) del(src) return From 4aff667d69541f0d955c36d2c1f893be4eb45874 Mon Sep 17 00:00:00 2001 From: Hubblenaut Date: Fri, 23 May 2014 23:23:25 +0200 Subject: [PATCH 17/64] Spelling correction: It's called 'Accessory', not 'Accessoires'. Dang. --- code/modules/mob/living/carbon/human/human.dm | 2 +- code/modules/mob/living/carbon/human/inventory.dm | 4 ++-- 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 62d2f4d976..f17bb061d9 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -423,7 +423,7 @@
Suit Storage: [(s_store ? s_store : "Nothing")] [((istype(wear_mask, /obj/item/clothing/mask) && istype(s_store, /obj/item/weapon/tank) && !( internal )) ? text(" Set Internal", src) : "")]
[(handcuffed ? text("Handcuffed") : text("Not Handcuffed"))]
[(legcuffed ? text("Legcuffed") : text(""))] -
[(suit) ? ((suit.hastie) ? text(" Remove Accessoire", src) : "") :] +
[(suit) ? ((suit.hastie) ? text(" Remove Accessory", src) : "") :]
[(internal ? text("Remove Internal") : "")]
Remove Splints
Empty Pockets diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 8e3e42a39c..06dd4d6b0b 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -513,8 +513,8 @@ message = "\red [source] is trying to take off \a [target.w_uniform] from [target]'s body!" if("tie") var/obj/item/clothing/under/suit = target.w_uniform - target.attack_log += text("\[[time_stamp()]\] Has had their accessoire ([suit.hastie]) removed by [source.name] ([source.ckey])") - source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) accessoire ([suit.hastie])") + target.attack_log += text("\[[time_stamp()]\] Has had their accessory ([suit.hastie]) removed by [source.name] ([source.ckey])") + source.attack_log += text("\[[time_stamp()]\] Attempted to remove [target.name]'s ([target.ckey]) accessory ([suit.hastie])") if(istype(suit.hastie, /obj/item/clothing/tie/holobadge) || istype(suit.hastie, /obj/item/clothing/tie/medal)) for(var/mob/M in viewers(target, null)) M.show_message("\red [source] tears off \the [suit.hastie] from [target]'s suit!" , 1) From f602e10073a1db297920dea451b647a82ac5f1ef Mon Sep 17 00:00:00 2001 From: Hubblenaut Date: Fri, 23 May 2014 23:23:58 +0200 Subject: [PATCH 18/64] No longer toggling suit sensors when restrained. --- code/modules/clothing/clothing.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index fc3ec4668c..978b055fd7 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -310,7 +310,7 @@ BLIND // can't see anything /obj/item/clothing/under/proc/set_sensors(mob/usr as mob) var/mob/M = usr if (istype(M, /mob/dead/)) return - if (usr.stat) return + if (usr.stat || usr.restrained()) return if(has_sensor >= 2) usr << "The controls are locked." return 0 From cd917e412534e6f88fa41058adf6834ac7025dd5 Mon Sep 17 00:00:00 2001 From: Hubblenaut Date: Sat, 24 May 2014 02:27:38 +0200 Subject: [PATCH 19/64] Small bugfix for merging paper bundles --- code/modules/paperwork/paper_bundle.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/modules/paperwork/paper_bundle.dm b/code/modules/paperwork/paper_bundle.dm index a1bd5b52f9..da9a3e150e 100644 --- a/code/modules/paperwork/paper_bundle.dm +++ b/code/modules/paperwork/paper_bundle.dm @@ -51,6 +51,9 @@ for(var/obj/O in W) O.loc = src O.add_fingerprint(usr) + src.amount++ + if(screen == 2) + screen = 1 user << "You add \the [W.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name]." del(W) else From fa458a63ec4b912004e079e5be05d9afd496411b Mon Sep 17 00:00:00 2001 From: mwerezak Date: Sat, 24 May 2014 11:00:46 -0400 Subject: [PATCH 20/64] Fixes #5050 --- code/modules/clothing/clothing.dm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index da36e5544a..9ff41b4ff7 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -5,6 +5,10 @@ //BS12: Species-restricted clothing check. /obj/item/clothing/mob_can_equip(M as mob, slot) + //if we can equip the item anyway, don't bother with species_restricted (aslo cuts down on spam) + if (!..()) + return 0 + if(species_restricted && istype(M,/mob/living/carbon/human)) var/wearable = null @@ -26,7 +30,7 @@ M << "\red Your species cannot wear [src]." return 0 - return ..() + return 1 //Ears: headsets, earmuffs and tiny objects /obj/item/clothing/ears From 2c3ecc78d56c9372c1fdf1a6cf7a2d710c7f051d Mon Sep 17 00:00:00 2001 From: mwerezak Date: Sat, 24 May 2014 11:54:55 -0400 Subject: [PATCH 21/64] Fixes #4889 --- code/modules/admin/admin_verbs.dm | 32 +++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 77e45f2d67..3c31f44329 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -557,14 +557,42 @@ var/list/admin_verbs_mentor = list( /client/proc/give_disease(mob/T as mob in mob_list) // -- Giacom set category = "Fun" - set name = "Give Disease" - set desc = "Gives a Disease to a mob." + set name = "Give Disease (old)" + set desc = "Gives an (old-style) Disease to a mob." var/datum/disease/D = input("Choose the disease to give to that guy", "ACHOO") as null|anything in diseases if(!D) return T.contract_disease(new D, 1) feedback_add_details("admin_verb","GD") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! log_admin("[key_name(usr)] gave [key_name(T)] the disease [D].") message_admins("\blue [key_name_admin(usr)] gave [key_name(T)] the disease [D].", 1) + +/client/proc/give_disease2(mob/T as mob in mob_list) // -- Giacom + set category = "Fun" + set name = "Give Disease" + set desc = "Gives a Disease to a mob." + + var/datum/disease2/disease/D = new /datum/disease2/disease() + + var/greater = ((input("Is this a lesser or greater disease?", "Give Disease") in list("Lesser", "Greater")) == "Greater") + + D.makerandom(greater) + if (!greater) + D.infectionchance = 1 + + D.infectionchance = input("How virulent is this disease? (1-100)", "Give Disease", D.infectionchance) as num + + if(istype(T,/mob/living/carbon/human)) + var/mob/living/carbon/human/H = T + if (H.species) + D.affected_species = list(H.species.name) + if(istype(T,/mob/living/carbon/monkey)) + var/mob/living/carbon/monkey/M = T + D.affected_species = list(M.greaterform) + infect_virus2(T,D,1) + + feedback_add_details("admin_verb","GD2") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + log_admin("[key_name(usr)] gave [key_name(T)] a [(greater)? "greater":"lesser"] disease2 with infection chance [D.infectionchance].") + message_admins("\blue [key_name_admin(usr)] gave [key_name(T)] a [(greater)? "greater":"lesser"] disease2 with infection chance [D.infectionchance].", 1) /client/proc/make_sound(var/obj/O in world) // -- TLE set category = "Special Verbs" From d5b22e9125f30c89f1cfed23307285e321076966 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Sat, 24 May 2014 12:14:16 -0400 Subject: [PATCH 22/64] Forgot to add VV menu entry for give_disease2 --- code/datums/datumvars.dm | 14 +++++++++++++- code/modules/admin/admin_verbs.dm | 2 +- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index b6e157c59b..4c01933dbe 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -245,7 +245,8 @@ client if(ismob(D)) body += "" - body += "" + body += "" + body += "" body += "" body += "" @@ -494,6 +495,17 @@ client src.give_disease(M) href_list["datumrefresh"] = href_list["give_spell"] + + else if(href_list["give_disease2"]) + if(!check_rights(R_ADMIN|R_FUN)) return + + var/mob/M = locate(href_list["give_disease2"]) + if(!istype(M)) + usr << "This can only be used on instances of type /mob" + return + + src.give_disease2(M) + href_list["datumrefresh"] = href_list["give_spell"] else if(href_list["ninja"]) if(!check_rights(R_SPAWN)) return diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 3c31f44329..05afecb3a9 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -558,7 +558,7 @@ var/list/admin_verbs_mentor = list( /client/proc/give_disease(mob/T as mob in mob_list) // -- Giacom set category = "Fun" set name = "Give Disease (old)" - set desc = "Gives an (old-style) Disease to a mob." + set desc = "Gives a (tg-style) Disease to a mob." var/datum/disease/D = input("Choose the disease to give to that guy", "ACHOO") as null|anything in diseases if(!D) return T.contract_disease(new D, 1) From d8645a59e894b533810a0e3993cfccda6fa550c9 Mon Sep 17 00:00:00 2001 From: Vivalas Date: Sat, 24 May 2014 19:56:35 -0500 Subject: [PATCH 23/64] Pod Launch Fix Fixed a derpy code error. --- code/game/machinery/computer/pod.dm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/code/game/machinery/computer/pod.dm b/code/game/machinery/computer/pod.dm index d65b3b5639..f254c4eb4b 100644 --- a/code/game/machinery/computer/pod.dm +++ b/code/game/machinery/computer/pod.dm @@ -34,7 +34,7 @@ for(var/obj/machinery/door/poddoor/M in world) if(M.id == id) M.open() - return + sleep(20) for(var/obj/machinery/mass_driver/M in world) @@ -173,6 +173,12 @@ connected.power = t if(href_list["alarm"]) alarm() + if(href_list["drive"]) + for(var/obj/machinery/mass_driver/M in world) + if(M.id == id) + M.power = connected.power + M.drive() + if(href_list["time"]) timing = text2num(href_list["time"]) if(href_list["tp"]) From dec86791dfc3a9fa1cc6490d6c3351b0707c8013 Mon Sep 17 00:00:00 2001 From: Loganbacca Date: Sun, 25 May 2014 13:10:44 +1200 Subject: [PATCH 24/64] Bot attack fix - Fixes bots attacking through windows --- code/game/machinery/bots/ed209bot.dm | 2 +- code/game/machinery/bots/medbot.dm | 2 +- code/game/machinery/bots/secbot.dm | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/machinery/bots/ed209bot.dm b/code/game/machinery/bots/ed209bot.dm index 49c491b16e..ab59cb9701 100644 --- a/code/game/machinery/bots/ed209bot.dm +++ b/code/game/machinery/bots/ed209bot.dm @@ -269,7 +269,7 @@ Auto Patrol: []"}, walk_to(src,0) if (target) // make sure target exists - if (get_dist(src, src.target) <= 1) // if right next to perp + if (Adjacent(target)) // if right next to perp playsound(src.loc, 'sound/weapons/Egloves.ogg', 50, 1, -1) src.icon_state = "[lasercolor]ed209-c" spawn(2) diff --git a/code/game/machinery/bots/medbot.dm b/code/game/machinery/bots/medbot.dm index 31fbb8c467..a1d524a480 100644 --- a/code/game/machinery/bots/medbot.dm +++ b/code/game/machinery/bots/medbot.dm @@ -284,7 +284,7 @@ continue - if(src.patient && (get_dist(src,src.patient) <= 1)) + if(src.patient && Adjacent(patient)) if(!src.currently_healing) src.currently_healing = 1 src.frustration = 0 diff --git a/code/game/machinery/bots/secbot.dm b/code/game/machinery/bots/secbot.dm index ee014dd6df..917d399323 100644 --- a/code/game/machinery/bots/secbot.dm +++ b/code/game/machinery/bots/secbot.dm @@ -219,7 +219,7 @@ Auto Patrol: []"}, walk_to(src,0) if(target) // make sure target exists - if(get_dist(src, src.target) <= 1 && isturf(src.target.loc)) // if right next to perp + if(Adjacent(target)) // if right next to perp if(istype(src.target,/mob/living/carbon)) playsound(src.loc, 'sound/weapons/Egloves.ogg', 50, 1, -1) src.icon_state = "secbot-c" From 57a5bf45de63d0d31aa113330ef4294c54a81a10 Mon Sep 17 00:00:00 2001 From: RavingManiac Date: Sun, 25 May 2014 16:49:24 +0800 Subject: [PATCH 25/64] Fixed inflatable barrier crates --- code/datums/supplypacks.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index 12941e7cc6..11eb36ffd1 100755 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -179,7 +179,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee containername = "Emergency crate" group = "Engineering" -/datum/supply_packs/evacuation +/datum/supply_packs/inflatable name = "Inflatable barriers" contains = list(/obj/item/weapon/storage/briefcase/inflatable, /obj/item/weapon/storage/briefcase/inflatable, From a9d868a241b822e547ef9928fb1900c931f0d1a0 Mon Sep 17 00:00:00 2001 From: Vivalas Date: Sun, 25 May 2014 14:59:25 -0500 Subject: [PATCH 26/64] Update pod.dm --- code/game/machinery/computer/pod.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/machinery/computer/pod.dm b/code/game/machinery/computer/pod.dm index f254c4eb4b..eeadf4de4c 100644 --- a/code/game/machinery/computer/pod.dm +++ b/code/game/machinery/computer/pod.dm @@ -174,7 +174,7 @@ if(href_list["alarm"]) alarm() if(href_list["drive"]) - for(var/obj/machinery/mass_driver/M in world) + for(var/obj/machinery/mass_driver/M in machines) if(M.id == id) M.power = connected.power M.drive() From bb3d947b6411d01a8d558d37161b1ae1077d2696 Mon Sep 17 00:00:00 2001 From: ZekeSulastin Date: Sun, 25 May 2014 17:56:08 -0400 Subject: [PATCH 27/64] Adds languages to DNA2 cloning records --- code/game/dna/dna_modifier.dm | 1 + code/game/machinery/computer/cloning.dm | 1 + 2 files changed, 2 insertions(+) diff --git a/code/game/dna/dna_modifier.dm b/code/game/dna/dna_modifier.dm index eadbfb06e1..e0de636ff3 100644 --- a/code/game/dna/dna_modifier.dm +++ b/code/game/dna/dna_modifier.dm @@ -16,6 +16,7 @@ var/implant=null var/ckey=null var/mind=null + var/languages=null /datum/dna2/record/proc/GetData() var/list/ser=list("data" = null, "owner" = null, "label" = null, "type" = null, "ue" = 0) diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index 293046b076..9ce8ccb4fc 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -361,6 +361,7 @@ R.id= copytext(md5(subject.real_name), 2, 6) R.name=R.dna.real_name R.types=DNA2_BUF_UI|DNA2_BUF_UE|DNA2_BUF_SE + R.languages=subject.languages //Add an implant if needed var/obj/item/weapon/implant/health/imp = locate(/obj/item/weapon/implant/health, subject) From e03b0bc316ce7a121bbd09db33156eaa73fb9051 Mon Sep 17 00:00:00 2001 From: ZekeSulastin Date: Sun, 25 May 2014 17:56:39 -0400 Subject: [PATCH 28/64] Uncomments application of languages to clone --- code/game/machinery/cloning.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 15d0b2d61c..cdb2063d87 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -214,8 +214,8 @@ H.set_species(R.dna.species) - //for(var/datum/language/L in languages) - // H.add_language(L.name) + for(var/datum/language/L in R.languages) + H.add_language(L.name) H.suiciding = 0 src.attempting = 0 return 1 From fb4f97011327eaac99acba63a5fcbfbd73ab5a8a Mon Sep 17 00:00:00 2001 From: Walter0o Date: Mon, 26 May 2014 01:32:07 +0200 Subject: [PATCH 29/64] exploit fix, electric boogaloo : canister edition https://github.com/Baystation12/Baystation12/commit/024a0baa49df0cb1ec8af4967fefe9d5575453eb removed the exploit protection of canisters without replacement, this commit fixes that. without this, anybody can open/close valves and all other forms of messing with any canister from anywhere. ALWAYS keep in mind, NanoUI will update the fancy buttons CLIENTSIDE, that does NOT protect against exploits ! the actual buttonpush can still be spoofed to the server even if NanoUI disabled/hid/greyed-out/removed the button ! --- code/game/machinery/atmoalter/canister.dm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/code/game/machinery/atmoalter/canister.dm b/code/game/machinery/atmoalter/canister.dm index 7cdfe57af3..0876c56f71 100644 --- a/code/game/machinery/atmoalter/canister.dm +++ b/code/game/machinery/atmoalter/canister.dm @@ -275,10 +275,15 @@ update_flag /obj/machinery/portable_atmospherics/canister/Topic(href, href_list) - //Do not use "if(..()) return" here, canisters will stop working in unpowered areas like space or on the derelict. + //Do not use "if(..()) return" here, canisters will stop working in unpowered areas like space or on the derelict. // yeah but without SOME sort of Topic check any dick can mess with them via exploits as he pleases -walter0o if (!istype(src.loc, /turf)) return 0 - + + if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr)) // exploit protection -walter0o + usr << browse(null, "window=canister") + onclose(usr, "canister") + return + if(href_list["toggle"]) if (valve_open) if (holding) From 3ef879669631dc174885b5c856ed7215537ccaad Mon Sep 17 00:00:00 2001 From: Hubblenaut Date: Mon, 26 May 2014 04:16:47 +0200 Subject: [PATCH 30/64] Updated changelog --- html/changelog.html | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/html/changelog.html b/html/changelog.html index 00e5e6a5f4..aad9533a69 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -54,7 +54,33 @@ should be listed in the changelog upon commit though. Thanks. --> - + + +
+

23 Mai 2014

+

Hubble updated:

+
    +
  • Personal lockers are now resettable
  • +
  • Take off people's accessories or change their sensors in the drag and drop-interface
  • +
  • Merge paper bundles by hitting one with another
  • +
  • Line breaks in Security, Medical and Employment Records
  • +
  • Record printouts will have names on it
  • +
  • Set other people's internals in belt and suit storage slots
  • +
  • No longer changing suit sensors while cuffed
  • +
  • No longer emptying other people's pockets when they are not full yet
  • +
+
+ + +
+

6 Mai 2014

+

Hubble updated:

+
    +
  • Clip papers together by hitting a paper with a paper or photo
  • +
  • Adds icons for copied stamps
  • +
+
+
From 7c7df8b4e251a931af816df3c17e443a25db7ec3 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Mon, 26 May 2014 17:16:58 -0400 Subject: [PATCH 31/64] Fixes #5018 --- code/modules/supermatter/supermatter.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/supermatter/supermatter.dm b/code/modules/supermatter/supermatter.dm index 3fc7e7d9a7..118c1e8181 100644 --- a/code/modules/supermatter/supermatter.dm +++ b/code/modules/supermatter/supermatter.dm @@ -188,7 +188,7 @@ if(!istype(l.glasses, /obj/item/clothing/glasses/meson)) l.hallucination = max(0, min(200, l.hallucination + power * config_hallucination_power * sqrt( 1 / max(1,get_dist(l, src)) ) ) ) - for(var/mob/living/l in range(src, round((power / 100) ** 0.25))) + for(var/mob/living/l in range(src, 8)) var/rads = (power / 10) * sqrt( 1 / get_dist(l, src) ) l.apply_effect(rads, IRRADIATE) From 60d4dd34c37c23ed3ba1af10ec02c12abd08b8b3 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Tue, 27 May 2014 11:55:51 +0930 Subject: [PATCH 32/64] Added Pear's custom borg sprite. --- icons/mob/custom-synthetic.dmi | Bin 157815 -> 186692 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/custom-synthetic.dmi b/icons/mob/custom-synthetic.dmi index f47c2e673ea32b7e9579f06ee4f72e879ece9938..4bb113428337837aff651aed8dcb748461511224 100644 GIT binary patch literal 186692 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⁢0UAfJU0Y= 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

[part] description:

[part.desc]
Return From 2b372962c815e8215cfbb3ca6731ea9625ec937d Mon Sep 17 00:00:00 2001 From: Walter0o Date: Thu, 29 May 2014 19:02:17 +0200 Subject: [PATCH 44/64] alien weeds performance and layer fixes recently i fixed a couple of issues with /vg/'s alien weeds and nodes, and i see some applying to Bay12 too. one of those issues was the order of checks in weeds/Life(). it should cancel the weed's search for tiles to expand to without starting the direction loop first, saving quite a few proc calls. another issue is alien weeds having the default OBJ_LAYER layer 3 which makes them grow over all kinds of items and objects which makes sense i guess fluffwise but is really annoying ingame for both crew and aliens. ( and this coming from the host of Alium Deathtrap 13 ;) ) nodes stay at layer 3 to appear properly over things like AI-holopads. a really tiny improvement is setting linked_node after the space-turf check in weeds/New(). link to the /vg/ commit : https://github.com/d3athrow/vgstation13/commit/4dcb434f7258fe2acd266a1709ab2022389eb845 --- code/game/objects/effects/aliens.dm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/code/game/objects/effects/aliens.dm b/code/game/objects/effects/aliens.dm index 1e762e68b3..da510025e3 100644 --- a/code/game/objects/effects/aliens.dm +++ b/code/game/objects/effects/aliens.dm @@ -184,6 +184,7 @@ anchored = 1 density = 0 + layer = 2 var/health = 15 var/obj/effect/alien/weeds/node/linked_node = null @@ -191,6 +192,7 @@ icon_state = "weednode" name = "purple sac" desc = "Weird purple octopus-like thing." + layer = 3 luminosity = NODERANGE var/node_range = NODERANGE @@ -200,10 +202,10 @@ /obj/effect/alien/weeds/New(pos, node) ..() - linked_node = node if(istype(loc, /turf/space)) del(src) return + linked_node = node if(icon_state == "weeds")icon_state = pick("weeds", "weeds1", "weeds2") spawn(rand(150, 200)) if(src) @@ -230,6 +232,9 @@ Alien plants should do something if theres a lot of poison del(src) return + if(!linked_node || (get_dist(linked_node, src) > linked_node.node_range) ) + return + direction_loop: for(var/dirn in cardinal) var/turf/T = get_step(src, dirn) @@ -237,9 +242,6 @@ Alien plants should do something if theres a lot of poison if (!istype(T) || T.density || locate(/obj/effect/alien/weeds) in T || istype(T.loc, /area/arrival) || istype(T, /turf/space)) continue - if(!linked_node || get_dist(linked_node, src) > linked_node.node_range) - return - // if (locate(/obj/movable, T)) // don't propogate into movables // continue From fd78c58f46225c3531231fdf9cf32af8370157d6 Mon Sep 17 00:00:00 2001 From: Ccomp5950 Date: Thu, 29 May 2014 21:36:34 -0500 Subject: [PATCH 45/64] Bot down? Let's not lock up the entire server. Instead we'll spawn a thread to handle it, not like we care what is returned either way. --- code/modules/ext_scripts/irc.dm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/code/modules/ext_scripts/irc.dm b/code/modules/ext_scripts/irc.dm index e145617690..8006652139 100644 --- a/code/modules/ext_scripts/irc.dm +++ b/code/modules/ext_scripts/irc.dm @@ -7,9 +7,11 @@ else nudge_lib = "lib/nudge.so" - call(nudge_lib, "nudge")("[config.comms_password]","[config.irc_bot_host]","[channel]","[msg]") + spawn(0) + call(nudge_lib, "nudge")("[config.comms_password]","[config.irc_bot_host]","[channel]","[msg]") else - ext_python("ircbot_message.py", "[config.comms_password] [config.irc_bot_host] [channel] [msg]") + spawn(0) + ext_python("ircbot_message.py", "[config.comms_password] [config.irc_bot_host] [channel] [msg]") return /proc/send2mainirc(var/msg) From cee0d0c3c1fbc9aa2d83e8c95ad8f2093e4845f3 Mon Sep 17 00:00:00 2001 From: Loganbacca Date: Fri, 30 May 2014 17:04:44 +1200 Subject: [PATCH 46/64] Farmbot fixes Fixed a few bugs in the construction code, before realizing there were a lot more bugs in the move_to_target() code, giving up and disabling it pending rewrite. --- baystation12.dme | 1 - code/game/machinery/bots/farmbot.dm | 10 ++++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/baystation12.dme b/baystation12.dme index 3285a6fcb6..67d8ca6c6a 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -326,7 +326,6 @@ #include "code\game\machinery\bots\bots.dm" #include "code\game\machinery\bots\cleanbot.dm" #include "code\game\machinery\bots\ed209bot.dm" -#include "code\game\machinery\bots\farmbot.dm" #include "code\game\machinery\bots\floorbot.dm" #include "code\game\machinery\bots\medbot.dm" #include "code\game\machinery\bots\mulebot.dm" diff --git a/code/game/machinery/bots/farmbot.dm b/code/game/machinery/bots/farmbot.dm index fe110939a0..b6f8198463 100644 --- a/code/game/machinery/bots/farmbot.dm +++ b/code/game/machinery/bots/farmbot.dm @@ -540,10 +540,9 @@ var/obj/item/weapon/farmbot_arm_assembly/A = new /obj/item/weapon/farmbot_arm_assembly A.loc = src.loc - A.layer = 20 user << "You add the robot arm to the [src]" src.loc = A //Place the water tank into the assembly, it will be needed for the finished bot - + user.u_equip(S) del(S) /obj/item/weapon/farmbot_arm_assembly/attackby(obj/item/weapon/W as obj, mob/user as mob) @@ -552,18 +551,21 @@ src.build_step++ user << "You add the plant analyzer to [src]!" src.name = "farmbot assembly" + user.u_equip(W) del(W) else if(( istype(W, /obj/item/weapon/reagent_containers/glass/bucket)) && (src.build_step == 1)) src.build_step++ user << "You add a bucket to [src]!" src.name = "farmbot assembly with bucket" + user.u_equip(W) del(W) else if(( istype(W, /obj/item/weapon/minihoe)) && (src.build_step == 2)) src.build_step++ user << "You add a minihoe to [src]!" src.name = "farmbot assembly with bucket and minihoe" + user.u_equip(W) del(W) else if((isprox(W)) && (src.build_step == 3)) @@ -575,6 +577,7 @@ S.tank = wTank S.loc = get_turf(src) S.name = src.created_name + user.u_equip(W) del(W) del(src) @@ -587,3 +590,6 @@ return src.created_name = t + +/obj/item/weapon/farmbot_arm_assembly/attack_hand(mob/user as mob) + return //it's a converted watertank, no you cannot pick it up and put it in your backpack \ No newline at end of file From 3d2cc3cd821c8cba5f57e8a842f9a705416e4454 Mon Sep 17 00:00:00 2001 From: Mloc-Argent Date: Sat, 31 May 2014 00:25:56 +0100 Subject: [PATCH 47/64] Revert "Merge pull request #4985 from jack-fractal/dev" This reverts commit 1679b4062fdc70116999a3b4eb041d8d873a79fc, reversing changes made to b149b273d950aa43c1454dac43f4719675a99315. Signed-off-by: Mloc-Argent Conflicts: code/datums/visibility_networks/update_triggers.dm --- baystation12.dme | 12 - code/__HELPERS/global_lists.dm | 1 - code/__HELPERS/unsorted.dm | 45 +- code/datums/datumvars.dm | 14 +- code/datums/mind.dm | 13 +- code/datums/visibility_networks/chunk.dm | 179 -- code/datums/visibility_networks/dictionary.dm | 11 - .../visibility_networks/update_triggers.dm | 94 - .../visibility_interface.dm | 46 - .../visibility_networks/visibility_network.dm | 141 -- code/defines/obj/weapon.dm | 2 +- code/game/gamemodes/cult/cult.dm | 159 +- code/game/gamemodes/cult/ritual.dm | 206 +- code/game/gamemodes/cult/runes.dm | 1832 ++++++++--------- .../gamemodes/malfunction/Malf_Modules.dm | 4 +- code/game/machinery/camera/camera.dm | 2 +- code/game/machinery/camera/tracking.dm | 2 +- code/game/machinery/computer/camera.dm | 2 +- code/game/machinery/doors/door.dm | 9 + code/modules/admin/admin.dm | 1 - code/modules/admin/player_panel.dm | 7 - code/modules/admin/topic.dm | 9 - code/modules/admin/verbs/mapping.dm | 4 +- code/modules/mob/living/carbon/human/death.dm | 7 +- code/modules/mob/living/silicon/ai/ai.dm | 6 +- .../living/silicon/ai/freelook/cameranet.dm | 171 +- .../mob/living/silicon/ai/freelook/chunk.dm | 185 +- .../mob/living/silicon/ai/freelook/eye.dm | 9 +- .../mob/living/silicon/ai/freelook/read_me.dm | 2 +- .../silicon/ai/freelook/update_triggers.dm | 87 +- .../ai/freelook/visibility_interface.dm | 10 - code/modules/mob/mob.dm | 11 +- code/modules/mob/mob_defines.dm | 1 - code/modules/mob/mob_helpers.dm | 10 - code/modules/mob/mob_movement.dm | 11 +- code/modules/mob/spirit/cultnet.dm | 80 - code/modules/mob/spirit/mask/mask.dm | 227 -- code/modules/mob/spirit/mask/respawn.dm | 20 - code/modules/mob/spirit/movement.dm | 62 - code/modules/mob/spirit/spirit.dm | 73 - code/modules/mob/spirit/viewpoint.dm | 202 -- code/modules/mob/transform_procs.dm | 52 - code/setup.dm | 3 - icons/mob/spirits/mask.dmi | Bin 972 -> 0 bytes 44 files changed, 1504 insertions(+), 2520 deletions(-) delete mode 100644 code/datums/visibility_networks/chunk.dm delete mode 100644 code/datums/visibility_networks/dictionary.dm delete mode 100644 code/datums/visibility_networks/update_triggers.dm delete mode 100644 code/datums/visibility_networks/visibility_interface.dm delete mode 100644 code/datums/visibility_networks/visibility_network.dm delete mode 100644 code/modules/mob/living/silicon/ai/freelook/visibility_interface.dm delete mode 100644 code/modules/mob/spirit/cultnet.dm delete mode 100644 code/modules/mob/spirit/mask/mask.dm delete mode 100644 code/modules/mob/spirit/mask/respawn.dm delete mode 100644 code/modules/mob/spirit/movement.dm delete mode 100644 code/modules/mob/spirit/spirit.dm delete mode 100644 code/modules/mob/spirit/viewpoint.dm delete mode 100644 icons/mob/spirits/mask.dmi diff --git a/baystation12.dme b/baystation12.dme index 67d8ca6c6a..29c3bf3a45 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -157,11 +157,6 @@ #include "code\datums\spells\trigger.dm" #include "code\datums\spells\turf_teleport.dm" #include "code\datums\spells\wizard.dm" -#include "code\datums\visibility_networks\chunk.dm" -#include "code\datums\visibility_networks\dictionary.dm" -#include "code\datums\visibility_networks\update_triggers.dm" -#include "code\datums\visibility_networks\visibility_interface.dm" -#include "code\datums\visibility_networks\visibility_network.dm" #include "code\defines\obj.dm" #include "code\defines\obj\hydro.dm" #include "code\defines\obj\weapon.dm" @@ -979,7 +974,6 @@ #include "code\modules\mob\living\silicon\ai\freelook\eye.dm" #include "code\modules\mob\living\silicon\ai\freelook\read_me.dm" #include "code\modules\mob\living\silicon\ai\freelook\update_triggers.dm" -#include "code\modules\mob\living\silicon\ai\freelook\visibility_interface.dm" #include "code\modules\mob\living\silicon\decoy\death.dm" #include "code\modules\mob\living\silicon\decoy\decoy.dm" #include "code\modules\mob\living\silicon\decoy\life.dm" @@ -1053,12 +1047,6 @@ #include "code\modules\mob\new_player\preferences_setup.dm" #include "code\modules\mob\new_player\skill.dm" #include "code\modules\mob\new_player\sprite_accessories.dm" -#include "code\modules\mob\spirit\cultnet.dm" -#include "code\modules\mob\spirit\movement.dm" -#include "code\modules\mob\spirit\spirit.dm" -#include "code\modules\mob\spirit\viewpoint.dm" -#include "code\modules\mob\spirit\mask\mask.dm" -#include "code\modules\mob\spirit\mask\respawn.dm" #include "code\modules\nano\_JSON.dm" #include "code\modules\nano\JSON Reader.dm" #include "code\modules\nano\JSON Writer.dm" diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index f45c3ffc89..45341d8f92 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -7,7 +7,6 @@ var/list/directory = list() //list of all ckeys with associated client var/global/list/player_list = list() //List of all mobs **with clients attached**. Excludes /mob/new_player var/global/list/mob_list = list() //List of all mobs, including clientless -var/global/list/spirits = list() //List of all the spirits, including Masks var/global/list/living_mob_list = list() //List of all alive mobs, including clientless. Excludes /mob/new_player var/global/list/dead_mob_list = list() //List of all dead mobs, including clientless. Excludes /mob/new_player diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 71fd57697a..9c3b69676e 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -443,29 +443,36 @@ Turf and target are seperate in case you want to teleport some distance from a t return creatures -var/list/sortMobsOrder = list( "/mob/living/silicon/ai", - "/mob/living/silicon/pai", - "/mob/living/silicon/robot", - "/mob/living/carbon/human", - "/mob/spirit/mask", - "/mob/living/carbon/brain", - "/mob/living/carbon/alien", - "/mob/dead/observer", - "/mob/new_player", - "/mob/living/carbon/monkey", - "/mob/living/carbon/slime", - "/mob/living/simple_animal", - "/mob/living/silicon/hivebot", - "/mob/living/silicon/hive_mainframe" ) - //Orders mobs by type then by name /proc/sortmobs() var/list/moblist = list() var/list/sortmob = sortAtom(mob_list) - for (var/path in sortMobsOrder) - for (var/mob/sorting in sortmob) - if (istype(sorting,text2path(path))) - moblist.Add(sorting) + for(var/mob/living/silicon/ai/M in sortmob) + moblist.Add(M) + for(var/mob/living/silicon/pai/M in sortmob) + moblist.Add(M) + for(var/mob/living/silicon/robot/M in sortmob) + moblist.Add(M) + for(var/mob/living/carbon/human/M in sortmob) + moblist.Add(M) + for(var/mob/living/carbon/brain/M in sortmob) + moblist.Add(M) + for(var/mob/living/carbon/alien/M in sortmob) + moblist.Add(M) + for(var/mob/dead/observer/M in sortmob) + moblist.Add(M) + for(var/mob/new_player/M in sortmob) + moblist.Add(M) + for(var/mob/living/carbon/monkey/M in sortmob) + moblist.Add(M) + for(var/mob/living/carbon/slime/M in sortmob) + moblist.Add(M) + for(var/mob/living/simple_animal/M in sortmob) + moblist.Add(M) +// for(var/mob/living/silicon/hivebot/M in world) +// mob_list.Add(M) +// for(var/mob/living/silicon/hive_mainframe/M in world) +// mob_list.Add(M) return moblist //E = MC^2 diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index 907789244b..4c01933dbe 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -269,7 +269,6 @@ client body += "" body += "" body += "" - body += "" body += "" body += "" body += "" @@ -742,18 +741,7 @@ client usr << "Mob doesn't exist anymore" return holder.Topic(href, list("makeai"=href_list["makeai"])) - - - else if(href_list["makemask"]) - if(!check_rights(R_SPAWN)) return - var/mob/currentMob = locate(href_list["makemask"]) - if(alert("Confirm mob type change?",,"Transform","Cancel") != "Transform") return - if(!currentMob) - usr << "Mob doesn't exist anymore" - return - holder.Topic(href, list("makemask"=href_list["makemask"])) - - + else if(href_list["setmutantrace"]) if(!check_rights(R_SPAWN)) return diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 32ebbed57e..733c3e4e93 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -642,11 +642,20 @@ datum/mind switch(href_list["cult"]) if("clear") if(src in ticker.mode.cult) - ticker.mode.remove_cultist(src) + ticker.mode.cult -= src + ticker.mode.update_cult_icons_removed(src) + special_role = null + var/datum/game_mode/cult/cult = ticker.mode + if (istype(cult)) + if(!config.objectives_disabled) + cult.memoize_cult_objectives(src) + current << "\red You have been brainwashed! You are no longer a cultist!" + memory = "" log_admin("[key_name_admin(usr)] has de-cult'ed [current].") if("cultist") if(!(src in ticker.mode.cult)) - ticker.mode.add_cultist(src) + ticker.mode.cult += src + ticker.mode.update_cult_icons_added(src) special_role = "Cultist" current << "You catch a glimpse of the Realm of Nar-Sie, The Geometer of Blood. You now see how flimsy the world is, you see that it should be open to the knowledge of Nar-Sie." current << "Assist your new compatriots in their dark dealings. Their goal is yours, and yours is theirs. You serve the Dark One above all else. Bring It back." diff --git a/code/datums/visibility_networks/chunk.dm b/code/datums/visibility_networks/chunk.dm deleted file mode 100644 index 4abc1340b0..0000000000 --- a/code/datums/visibility_networks/chunk.dm +++ /dev/null @@ -1,179 +0,0 @@ -#define UPDATE_BUFFER 25 // 2.5 seconds - -// CAMERA CHUNK -// -// A 16x16 grid of the map with a list of turfs that can be seen, are visible and are dimmed. -// Allows the mob using this chunk to stream these chunks and know what it can and cannot see. - -/datum/visibility_chunk - var/obscured_image = 'icons/effects/cameravis.dmi' - var/obscured_sub = "black" - var/list/obscuredTurfs = list() - var/list/visibleTurfs = list() - var/list/obscured = list() - var/list/viewpoints = list() - var/list/turfs = list() - var/list/seenby = list() - var/visible = 0 - var/changed = 0 - var/updating = 0 - var/x = 0 - var/y = 0 - var/z = 0 - -/datum/visibility_chunk/proc/add(mob/new_mob) - - // if this thing doesn't use one of these visibility systems, kick it out - if (!new_mob.visibility_interface) - return - - // if the mob being added isn't a valid form of that mob, kick it out - if (!new_mob.visibility_interface:canBeAddedToChunk(src)) - return - - // add this chunk to the list of visible chunks - new_mob.visibility_interface:addChunk(src) - - visible++ - seenby += new_mob - if(changed && !updating) - update() - -/datum/visibility_chunk/proc/remove(mob/new_mob) - // if this thing doesn't use one of these visibility systems, kick it out - if (!new_mob.visibility_interface) - return - - // if the mob being added isn't a valid form of that mob, kick it out - if (!new_mob.visibility_interface:canBeAddedToChunk(src)) - return - - // remove the chunk - new_mob.visibility_interface:removeChunk(src) - - // remove the mob from out lists - seenby -= new_mob - if(visible > 0) - visible-- - -/datum/visibility_chunk/proc/visibilityChanged(turf/loc) - if(!visibleTurfs[loc]) - return - hasChanged() - -/datum/visibility_chunk/proc/hasChanged(var/update_now = 0) - if(visible || update_now) - if(!updating) - updating = 1 - spawn(UPDATE_BUFFER) // Batch large changes, such as many doors opening or closing at once - update() - updating = 0 - else - changed = 1 - - -/* -This function needs to be overwritten to return True if the viewpoint object is valid, and false if it is not. -*/ -/datum/visibility_chunk/proc/validViewpoint(var/viewpoint) - return FALSE - -/* -This function needs to be overwritten to return a list of visible turfs for that viewpoint -*/ -/datum/visibility_chunk/proc/getVisibleTurfsForViewpoint(var/viewpoint) - return list() - -// returns a list of turfs which can be seen in by the chunks viewpoints -/datum/visibility_chunk/proc/getVisibleTurfs() - var/list/newVisibleTurfs = list() - for(var/viewpoint in viewpoints) - if (validViewpoint(viewpoint)) - for (var/turf/t in getVisibleTurfsForViewpoint(viewpoint)) - newVisibleTurfs[t]=t - return newVisibleTurfs - -/* -This function needs to be overwritten to find nearby viewpoint objects to the chunk center. -*/ -/datum/visibility_chunk/proc/findNearbyViewpoints() - return FALSE - -/* -This function can be overwritten to change or randomize the obscuring images -*/ -/datum/visibility_chunk/proc/setObscuredImage(var/turf/target_turf) - if(!target_turf.obscured) - target_turf.obscured = image(obscured_image, target_turf, obscured_sub, 15) - -/datum/visibility_chunk/proc/update() - - set background = 1 - - // get a list of all the turfs that our viewpoints can see - var/list/newVisibleTurfs = getVisibleTurfs() - - // Removes turf that isn't in turfs. - newVisibleTurfs &= turfs - - var/list/visAdded = newVisibleTurfs - visibleTurfs - var/list/visRemoved = visibleTurfs - newVisibleTurfs - - visibleTurfs = newVisibleTurfs - obscuredTurfs = turfs - newVisibleTurfs - - // update the visibility overlays - for(var/turf in visAdded) - var/turf/t = turf - if(t.obscured) - obscured -= t.obscured - for(var/mob/current_mob in seenby) - if (current_mob.visibility_interface) - current_mob.visibility_interface:removeObscuredTurf(t) - - for(var/turf in visRemoved) - var/turf/t = turf - if(obscuredTurfs[t]) - setObscuredImage(t) - obscured += t.obscured - for(var/mob/current_mob in seenby) - if (current_mob.visibility_interface) - current_mob.visibility_interface:addObscuredTurf(t) - else - seenby -= current_mob - - -// Create a new chunk, since the chunks are made as they are needed. -/datum/visibility_chunk/New(loc, x, y, z) - - // 0xf = 15 - x &= ~0xf - y &= ~0xf - - src.x = x - src.y = y - src.z = z - - for(var/turf/t in range(10, locate(x + 8, y + 8, z))) - if(t.x >= x && t.y >= y && t.x < x + 16 && t.y < y + 16) - turfs[t] = t - - // locate all nearby viewpoints - findNearbyViewpoints() - - // get the turfs that are visible to those viewpoints - visibleTurfs = getVisibleTurfs() - - // Removes turf that isn't in turfs. - visibleTurfs &= turfs - - // create the list of turfs we can't see - obscuredTurfs = turfs - visibleTurfs - - // create the list of obscuring images to add to viewing clients - for(var/turf in obscuredTurfs) - var/turf/t = turf - setObscuredImage(t) - obscured += t.obscured - -#undef UPDATE_BUFFER \ No newline at end of file diff --git a/code/datums/visibility_networks/dictionary.dm b/code/datums/visibility_networks/dictionary.dm deleted file mode 100644 index 5f57ddd7a1..0000000000 --- a/code/datums/visibility_networks/dictionary.dm +++ /dev/null @@ -1,11 +0,0 @@ -var/datum/visibility_network/cameras/cameranet = new() -var/datum/visibility_network/cult/cultNetwork = new() -var/datum/visibility_network/list/visibility_networks = list("ALL_CAMERAS"=cameranet, "CULT" = cultNetwork) - - -// used by turfs and objects to update all visibility networks -/proc/updateVisibilityNetworks(atom/A, var/opacity_check = 1) - var/datum/visibility_network/currentNetwork - for (var/networkName in visibility_networks) - currentNetwork = visibility_networks[networkName] - currentNetwork.updateVisibility(A, opacity_check) \ No newline at end of file diff --git a/code/datums/visibility_networks/update_triggers.dm b/code/datums/visibility_networks/update_triggers.dm deleted file mode 100644 index 97ed2db3a6..0000000000 --- a/code/datums/visibility_networks/update_triggers.dm +++ /dev/null @@ -1,94 +0,0 @@ -//UPDATE TRIGGERS, when the chunk (and the surrounding chunks) should update. - -// TURFS - -/turf - var/image/obscured - -/turf/proc/visibilityChanged() - if(ticker) - updateVisibilityNetworks(src) - -/turf/simulated/Del() - visibilityChanged() - ..() - -/turf/simulated/New() - ..() - visibilityChanged() - - - -// STRUCTURES - -/obj/structure/Del() - if(ticker) - updateVisibilityNetworks(src) - ..() - -/obj/structure/New() - ..() - if(ticker) - updateVisibilityNetworks(src) - -// EFFECTS - -/obj/effect/Del() - if(ticker) - updateVisibilityNetworks(src) - ..() - -/obj/effect/New() - ..() - if(ticker) - updateVisibilityNetworks(src) - - -// DOORS - -// Simply updates the visibility of the area when it opens/closes/destroyed. -/obj/machinery/door/proc/update_nearby_tiles(need_rebuild) - - if(!glass) - updateVisibilityNetworks(src,0) - - if(!air_master) - return 0 - - for(var/turf/simulated/turf in locs) - update_heat_protection(turf) - air_master.mark_for_update(turf) - - return 1 - - - -#define UPDATE_VISIBILITY_NETWORK_BUFFER 30 - -/mob - var/datum/visibility_network/list/visibilityNetworks=list() - var/updatingVisibilityNetworks=FALSE - -/mob/Move(n,direct) - var/oldLoc = src.loc - //. = ..() - if(..(n,direct)) - if(src.visibilityNetworks.len) - if(!src.updatingVisibilityNetworks) - src.updatingVisibilityNetworks = 1 - spawn(UPDATE_VISIBILITY_NETWORK_BUFFER) - if(oldLoc != src.loc) - for (var/datum/visibility_network/currentNetwork in src.visibilityNetworks) - currentNetwork.updateMob(src) - src.updatingVisibilityNetworks = 0 - return . - -/mob/proc/addToVisibilityNetwork(var/datum/visibility_network/network) - if(network) - src.visibilityNetworks+=network - -/mob/proc/removeFromVisibilityNetwork(var/datum/visibility_network/network) - if(network) - src.visibilityNetworks|=network - -#undef UPDATE_VISIBILITY_NETWORK_BUFFER \ No newline at end of file diff --git a/code/datums/visibility_networks/visibility_interface.dm b/code/datums/visibility_networks/visibility_interface.dm deleted file mode 100644 index 7d8efba41d..0000000000 --- a/code/datums/visibility_networks/visibility_interface.dm +++ /dev/null @@ -1,46 +0,0 @@ -/datum/visibility_interface - var/chunk_type = null - var/mob/controller = null - var/list/visible_chunks = list() - - -/datum/visibility_interface/New(var/mob/controller) - src.controller = controller - - -/datum/visibility_interface/proc/validMob() - return getClient() - -/datum/visibility_interface/proc/getClient() - return controller.client - -/datum/visibility_interface/proc/canBeAddedToChunk(var/datum/visibility_chunk/test_chunk) - return istype(test_chunk,chunk_type) - - -/datum/visibility_interface/proc/addChunk(var/datum/visibility_chunk/test_chunk) - visible_chunks+=test_chunk - var/client/currentClient = getClient() - if(currentClient) - currentClient.images += test_chunk.obscured - - -/datum/visibility_interface/proc/removeChunk(var/datum/visibility_chunk/test_chunk) - visible_chunks-=test_chunk - var/client/currentClient = getClient() - if(currentClient) - currentClient.images -= test_chunk.obscured - - -/datum/visibility_interface/proc/removeObscuredTurf(var/turf/target_turf) - if(validMob()) - var/client/currentClient = getClient() - if(currentClient) - currentClient.images -= target_turf.obscured - - -/datum/visibility_interface/proc/addObscuredTurf(var/turf/target_turf) - if(validMob()) - var/client/currentClient = getClient() - if(currentClient) - currentClient.images -= target_turf.obscured \ No newline at end of file diff --git a/code/datums/visibility_networks/visibility_network.dm b/code/datums/visibility_networks/visibility_network.dm deleted file mode 100644 index 225b6e3def..0000000000 --- a/code/datums/visibility_networks/visibility_network.dm +++ /dev/null @@ -1,141 +0,0 @@ -/datum/visibility_network - var/list/viewpoints = list() - - // the type of chunk used by this network - var/datum/visibility_chunk/ChunkType = /datum/visibility_chunk - - // The chunks of the map, mapping the areas that the viewpoints can see. - var/list/chunks = list() - - var/ready = 0 - - -// Creates a chunk key string from x,y,z coordinates -/datum/visibility_network/proc/createChunkKey(x,y,z) - x &= ~0xf - y &= ~0xf - return "[x],[y],[z]" - - -// Checks if a chunk has been Generated in x, y, z. -/datum/visibility_network/proc/chunkGenerated(x, y, z) - return (chunks[createChunkKey(x, y, z)]) - - -// Returns the chunk in the x, y, z. -// If there is no chunk, it creates a new chunk and returns that. -/datum/visibility_network/proc/getChunk(x, y, z) - var/key = createChunkKey(x, y, z) - if(!chunks[key]) - chunks[key] = new ChunkType(null, x, y, z) - return chunks[key] - - -/datum/visibility_network/proc/visibility(var/mob/targetMob) - - // if we've got not visibility interface on the mob, we canot do this - if (!targetMob.visibility_interface) - return - - // 0xf = 15 - var/x1 = max(0, targetMob.x - 16) & ~0xf - var/y1 = max(0, targetMob.y - 16) & ~0xf - var/x2 = min(world.maxx, targetMob.x + 16) & ~0xf - var/y2 = min(world.maxy, targetMob.y + 16) & ~0xf - - var/list/visibleChunks = list() - - for(var/x = x1; x <= x2; x += 16) - for(var/y = y1; y <= y2; y += 16) - visibleChunks += getChunk(x, y, targetMob.z) - - var/list/remove = targetMob.visibility_interface:visible_chunks - visibleChunks - var/list/add = visibleChunks - targetMob.visibility_interface:visible_chunks - - for(var/datum/visibility_chunk/chunk in remove) - chunk.remove(targetMob) - - for(var/datum/visibility_chunk/chunk in add) - chunk.add(targetMob) - - -// Updates the chunks that the turf is located in. Use this when obstacles are destroyed or when doors open. -/datum/visibility_network/proc/updateVisibility(atom/A, var/opacity_check = 1) - if(!ticker || (opacity_check && !A.opacity)) - return - majorChunkChange(A, 2) - - -/datum/visibility_network/proc/updateChunk(x, y, z) - if(!chunkGenerated(x, y, z)) - return - var/datum/visibility_chunk/chunk = getChunk(x, y, z) - chunk.hasChanged() - - -/datum/visibility_network/proc/validViewpoint(var/viewpoint) - return FALSE - - -/datum/visibility_network/proc/addViewpoint(var/viewpoint) - if(validViewpoint(viewpoint)) - majorChunkChange(viewpoint, 1) - - -/datum/visibility_network/proc/removeViewpoint(var/viewpoint) - if(validViewpoint(viewpoint)) - majorChunkChange(viewpoint, 0) - -/datum/visibility_network/proc/getViewpointFromMob(var/mob/currentMob) - return FALSE - -/datum/visibility_network/proc/updateMob(var/mob/currentMob) - var/viewpoint = getViewpointFromMob(currentMob) - if(viewpoint) - updateViewpoint(viewpoint) - - -/datum/visibility_network/proc/updateViewpoint(var/viewpoint) - if(validViewpoint(viewpoint)) - majorChunkChange(viewpoint, 1) - - -// Never access this proc directly!!!! -// This will update the chunk and all the surrounding chunks. -// It will also add the atom to the cameras list if you set the choice to 1. -// Setting the choice to 0 will remove the viewpoint from the chunks. -// If you want to update the chunks around an object, without adding/removing a viewpoint, use choice 2. -/datum/visibility_network/proc/majorChunkChange(atom/c, var/choice) - // 0xf = 15 - if(!c) - return - - var/turf/T = get_turf(c) - if(T) - var/x1 = max(0, T.x - 8) & ~0xf - var/y1 = max(0, T.y - 8) & ~0xf - var/x2 = min(world.maxx, T.x + 8) & ~0xf - var/y2 = min(world.maxy, T.y + 8) & ~0xf - - for(var/x = x1; x <= x2; x += 16) - for(var/y = y1; y <= y2; y += 16) - if(chunkGenerated(x, y, T.z)) - var/datum/visibility_chunk/chunk = getChunk(x, y, T.z) - if(choice == 0) - // Remove the viewpoint. - chunk.viewpoints -= c - else if(choice == 1) - // You can't have the same viewpoint in the list twice. - chunk.viewpoints |= c - chunk.hasChanged() - -// checks if the network can see a particular atom -/datum/visibility_network/proc/checkCanSee(var/atom/target) - var/turf/position = get_turf(target) - var/datum/visibility_chunk/chunk = getChunk(position.x, position.y, position.z) - if(chunk) - if(chunk.changed) - chunk.hasChanged(1) // Update now, no matter if it's visible or not. - if(chunk.visibleTurfs[position]) - return 1 - return 0 \ No newline at end of file diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index f16d2810b0..e11a950eee 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -431,7 +431,7 @@ /obj/item/weapon/camera_bug/attack_self(mob/usr as mob) var/list/cameras = new/list() - for (var/obj/machinery/camera/C in cameranet.viewpoints) + for (var/obj/machinery/camera/C in cameranet.cameras) if (C.bugged && C.status) cameras.Add(C) if (length(cameras) == 0) diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index b1e3442d34..45452a95e1 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -8,7 +8,6 @@ /proc/iscultist(mob/living/M as mob) return istype(M) && M.mind && ticker && ticker.mode && (M.mind in ticker.mode.cult) - /proc/is_convertable_to_cult(datum/mind/mind) if(!istype(mind)) return 0 if(istype(mind.current, /mob/living/carbon/human) && (mind.assigned_role in list("Captain", "Chaplain"))) return 0 @@ -138,8 +137,7 @@ mob << "Your training has allowed you to overcome your clownish nature, allowing you to wield weapons without harming yourself." mob.mutations.Remove(CLUMSY) - add_cult_viewpoint(mob) // give them a viewpoint - + var/obj/item/weapon/paper/talisman/supply/T = new(mob) var/list/slots = list ( "backpack" = slot_in_backpack, @@ -175,20 +173,11 @@ cult_mob.mind.store_memory("You remember that [wordexp]", 0, 0) -/datum/game_mode/proc/add_cult_viewpoint(var/mob/target) - for(var/obj/cult_viewpoint/viewpoint in target) - return - var/obj/cult_viewpoint/viewpoint = new(target) - viewpoint.loc = target - return viewpoint - - /datum/game_mode/proc/add_cultist(datum/mind/cult_mind) //BASE if (!istype(cult_mind)) return 0 if(!(cult_mind in cult) && is_convertable_to_cult(cult_mind)) cult += cult_mind - add_cult_viewpoint(cult_mind.current) update_cult_icons_added(cult_mind) return 1 @@ -205,133 +194,57 @@ cult -= cult_mind cult_mind.current << "\red An unfamiliar white light flashes through your mind, cleansing the taint of the dark-one and the memories of your time as his servant with it." cult_mind.memory = "" - - // remove the cult viewpoint object - var/obj/viewpoint = getCultViewpoint(cult_mind.current) - del(viewpoint) - update_cult_icons_removed(cult_mind) if(show_message) for(var/mob/M in viewers(cult_mind.current)) M << "[cult_mind.current] looks like they just reverted to their old faith!" - /datum/game_mode/proc/update_all_cult_icons() spawn(0) - // reset the cult - for(var/datum/mind/cultist in cult) - reset_cult_icons_for_cultist(cultist) - // reset the spirits - for(var/mob/spirit/currentSpirit in spirits) - reset_cult_icons_for_spirit(currentSpirit) - - -/datum/game_mode/proc/reset_cult_icons_for_cultist(var/datum/mind/target) - if(target.current) - if(target.current.client) - remove_all_cult_icons(target) - for(var/datum/mind/cultist in cult) - if(cultist.current) - add_cult_icon(target.current.client,cultist.current) - - -/datum/game_mode/proc/reset_cult_icons_for_spirit(mob/spirit/target) - if (target.client) - remove_all_cult_icons(target) for(var/datum/mind/cultist in cult) if(cultist.current) - add_cult_icon(target.client,cultist.current) - - -/datum/game_mode/proc/add_cult_icon(client/target_client,mob/target_mob) - var/I = image('icons/mob/mob.dmi', loc = target_mob, icon_state = "cult") - target_client.images += I + if(cultist.current.client) + for(var/image/I in cultist.current.client.images) + if(I.icon_state == "cult") + del(I) - -/datum/game_mode/proc/remove_cult_icon(client/target_client,mob/target_mob) - for(var/image/I in target_client.images) - if(I.icon_state == "cult" && I.loc == target_mob) - del(I) - - -/datum/game_mode/proc/remove_all_cult_icons_from_client(client/target) - for(var/image/I in target.images) - if(I.icon_state == "cult") - del(I) - - -/datum/game_mode/proc/remove_all_cult_icons(target) - var/datum/mind/cultist = target - if(istype(cultist)) - if(cultist.current) - if(cultist.current.client) - remove_all_cult_icons_from_client(cultist.current.client) - return TRUE - var/mob/spirit/currentSpirit = target - if(istype(currentSpirit)) - if (currentSpirit.client) - remove_all_cult_icons_from_client(currentSpirit.client) - return TRUE - return FALSE - - -/datum/game_mode/proc/add_cult_icon_to_spirit(mob/spirit/currentSpirit,datum/mind/cultist) - if(!istype(currentSpirit) || !istype(cultist)) - return FALSE - if (currentSpirit.client) - if (cultist.current) - add_cult_icon(currentSpirit.client,cultist.current) - - -/datum/game_mode/proc/add_cult_icon_to_cultist(datum/mind/first_cultist,datum/mind/second_cultist) - if(first_cultist.current && second_cultist.current) - if(first_cultist.current.client) - add_cult_icon(first_cultist.current.client, second_cultist.current) - - -/datum/game_mode/proc/remove_cult_icon_from_cultist(datum/mind/first_cultist,datum/mind/second_cultist) - if(first_cultist.current && second_cultist.current) - if(first_cultist.current.client) - remove_cult_icon(first_cultist.current.client,second_cultist.current) + for(var/datum/mind/cultist in cult) + if(cultist.current) + if(cultist.current.client) + for(var/datum/mind/cultist_1 in cult) + if(cultist_1.current) + var/I = image('icons/mob/mob.dmi', loc = cultist_1.current, icon_state = "cult") + cultist.current.client.images += I - -/datum/game_mode/proc/remove_cult_icon_from_spirit(mob/spirit/currentSpirit,datum/mind/cultist) - if(!istype(currentSpirit) || !istype(cultist)) - return FALSE - if (currentSpirit.client) - if (cultist.current) - remove_cult_icon(currentSpirit.client,cultist.current) - - -/datum/game_mode/proc/cult_icon_pair_link(datum/mind/first_cultist,datum/mind/second_cultist) - if (!istype(first_cultist) || !istype(second_cultist)) - return 0 - add_cult_icon_to_cultist(first_cultist,second_cultist) - add_cult_icon_to_cultist(second_cultist,first_cultist) - -/datum/game_mode/proc/cult_icon_pair_unlink(datum/mind/first_cultist,datum/mind/second_cultist) - if (!istype(first_cultist) || !istype(second_cultist)) - return 0 - remove_cult_icon(first_cultist,second_cultist) - remove_cult_icon(second_cultist,first_cultist) - - /datum/game_mode/proc/update_cult_icons_added(datum/mind/cult_mind) spawn(0) for(var/datum/mind/cultist in cult) - cult_icon_pair_link(cultist,cult_mind) - for(var/mob/spirit/currentSpirit in spirits) - add_cult_icon_to_spirit(currentSpirit,cult_mind) - - + if(cultist.current) + if(cultist.current.client) + var/I = image('icons/mob/mob.dmi', loc = cult_mind.current, icon_state = "cult") + cultist.current.client.images += I + if(cult_mind.current) + if(cult_mind.current.client) + var/image/J = image('icons/mob/mob.dmi', loc = cultist.current, icon_state = "cult") + cult_mind.current.client.images += J + + /datum/game_mode/proc/update_cult_icons_removed(datum/mind/cult_mind) spawn(0) for(var/datum/mind/cultist in cult) - cult_icon_pair_unlink(cultist,cult_mind) - for(var/mob/spirit/currentSpirit in spirits) - remove_cult_icon_from_spirit(currentSpirit,cult_mind) - + if(cultist.current) + if(cultist.current.client) + for(var/image/I in cultist.current.client.images) + if(I.icon_state == "cult" && I.loc == cult_mind.current) + del(I) + + if(cult_mind.current) + if(cult_mind.current.client) + for(var/image/I in cult_mind.current.client.images) + if(I.icon_state == "cult") + del(I) + /datum/game_mode/cult/proc/get_unconvertables() var/list/ucs = list() @@ -367,10 +280,6 @@ return 1 -/atom/proc/cult_log(var/message) - investigate_log(message, "cult") - - /datum/game_mode/cult/declare_completion() if(config.objectives_disabled) return 1 diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm index 33a7b905d8..ac89f04647 100644 --- a/code/game/gamemodes/cult/ritual.dm +++ b/code/game/gamemodes/cult/ritual.dm @@ -1,7 +1,6 @@ //This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 var/cultwords = list() -var/rune_to_english = list() var/runedec = 0 var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology", "self", "see", "other", "hide") @@ -17,22 +16,19 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology", /proc/runerandom() //randomizes word meaning var/list/runewords=list("ire","ego","nahlizet","certum","veri","jatkaa","mgar","balaq", "karazet", "geeri") ///"orkan" and "allaq" removed. for (var/word in engwords) - var/runeword = pick(runewords) - cultwords[word] = runeword - rune_to_english[runeword] = word + cultwords[word] = pick(runewords) runewords-=cultwords[word] - /obj/effect/rune desc = "" anchored = 1 icon = 'icons/obj/rune.dmi' icon_state = "1" var/visibility = 0 - var/view_range = 7 unacidable = 1 layer = TURF_LAYER + var/word1 var/word2 var/word3 @@ -65,112 +61,122 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology", // self other technology - Communication rune //was other hear blood // join hide technology - stun rune. Rune color: bright pink. + New() + ..() + var/image/blood = image(loc = src) + blood.override = 1 + for(var/mob/living/silicon/ai/AI in player_list) + AI.client.images += blood -/obj/effect/rune/New() - ..() - var/image/blood = image(loc = src) - blood.override = 1 - for(var/mob/living/silicon/ai/AI in player_list) - AI.client.images += blood - cultNetwork.viewpoints+=src - cultNetwork.addViewpoint(src) + examine() + set src in view(2) -/obj/effect/rune/Del() - ..() - cultNetwork.viewpoints-=src - cultNetwork.removeViewpoint(src) + if(!iscultist(usr)) + usr << "A strange collection of symbols drawn in blood." + return + /* Explosions... really? + if(desc && !usr.stat) + usr << "It reads: [desc]." + sleep(30) + explosion(src.loc, 0, 2, 5, 5) + if(src) + del(src) + */ + if(!desc) + usr << "A spell circle drawn in blood. It reads: [word1] [word2] [word3]." + else + usr << "Explosive Runes inscription in blood. It reads: [desc]." -/obj/effect/rune/examine() - set src in view(2) - - if(!iscultist(usr) && !isSpirit(usr)) - usr << "A strange collection of symbols drawn in blood." return - if(!desc) - usr << "A spell circle drawn in blood. It reads: [word1] [word2] [word3]." - else - usr << "Explosive Runes inscription in blood. It reads: [desc]." - - return -/obj/effect/rune/attackby(I as obj, user as mob) - if(istype(I, /obj/item/weapon/tome) && iscultist(user)) - user << "You retrace your steps, carefully undoing the lines of the rune." - del(src) + attackby(I as obj, user as mob) + if(istype(I, /obj/item/weapon/tome) && iscultist(user)) + user << "You retrace your steps, carefully undoing the lines of the rune." + del(src) + return + else if(istype(I, /obj/item/weapon/nullrod)) + user << "\blue You disrupt the vile magic with the deadening field of the null rod!" + del(src) + return return - else if(istype(I, /obj/item/weapon/nullrod)) - user << "\blue You disrupt the vile magic with the deadening field of the null rod!" - del(src) - return - return -/obj/effect/rune/proc/get_word_string() - if (word1 == cultwords["travel"]) - if (word2 == cultwords["self"]) - return "teleport" - if (word2 == cultwords["other"]) - return "itemport" - return "[rune_to_english[word1]]_[rune_to_english[word2]]_[rune_to_english[word3]]" - - -/obj/effect/rune - var/list/effect_dictionary = list( "teleport"=/obj/effect/rune/proc/teleportRune, - "itemport"=/obj/effect/rune/proc/itemportRune, - "see_blood_hell"=/obj/effect/rune/proc/tomesummon, - "hell_destroy_other"=/obj/effect/rune/proc/armor, - "join_blood_self"=/obj/effect/rune/proc/convert, - "hell_join_self"=/obj/effect/rune/proc/tearreality, - "destroy_see_technology"=/obj/effect/rune/proc/empRune, - "travel_blood_self"=/obj/effect/rune/proc/drain, - "see_hell_join"=/obj/effect/rune/proc/seer, - "blood_join_hell"=/obj/effect/rune/proc/raise, - "hide_see_blood"=/obj/effect/rune/proc/obscureRune, - "hell_travel_self"=/obj/effect/rune/proc/ajourney, - "blood_see_travel"=/obj/effect/rune/proc/manifest, - "hell_technology_join"=/obj/effect/rune/proc/talisman, - "hell_blood_join"=/obj/effect/rune/proc/sacrifice, - "blood_see_hide"=/obj/effect/rune/proc/revealrunesrune, - "destroy_travel_self"=/obj/effect/rune/proc/wall, - "travel_technology_other"=/obj/effect/rune/proc/freedom, - "join_other_self"=/obj/effect/rune/proc/cultsummon, - "hide_other_see"=/obj/effect/rune/proc/deafen, - "destroy_see_other"=/obj/effect/rune/proc/blind, - "destroy_see_blood"=/obj/effect/rune/proc/bloodboil, - "self_other_technology"=/obj/effect/rune/proc/communicate, - "join_hide_technology"=/obj/effect/rune/proc/runestun ) - -/obj/effect/rune/attack_hand(mob/living/user as mob) - if(!iscultist(user)) - user << "You can't mouth the arcane scratchings without fumbling over them." - return - if(istype(user.wear_mask, /obj/item/clothing/mask/muzzle)) - user << "You are unable to speak the words of the rune." - return - if(user.silent) // checking if we've been muted somehow - user << "You are unable to speak at all! You cannot say the words of the rune." - if(!word1 || !word2 || !word3 || prob(user.getBrainLoss())) - return fizzle() - - var/word_string = get_word_string() - if (word_string in effect_dictionary) - cult_log("of type [effect_dictionary[word_string]] activated by [key_name_admin(user)].") - return call(src,effect_dictionary[word_string])() - return fizzle() + attack_hand(mob/living/user as mob) + if(!iscultist(user)) + user << "You can't mouth the arcane scratchings without fumbling over them." + return + if(istype(user.wear_mask, /obj/item/clothing/mask/muzzle)) + user << "You are unable to speak the words of the rune." + return + if(!word1 || !word2 || !word3 || prob(user.getBrainLoss())) + return fizzle() +// if(!src.visibility) +// src.visibility=1 + if(word1 == cultwords["travel"] && word2 == cultwords["self"]) + return teleport(src.word3) + if(word1 == cultwords["see"] && word2 == cultwords["blood"] && word3 == cultwords["hell"]) + return tomesummon() + if(word1 == cultwords["hell"] && word2 == cultwords["destroy"] && word3 == cultwords["other"]) + return armor() + if(word1 == cultwords["join"] && word2 == cultwords["blood"] && word3 == cultwords["self"]) + return convert() + if(word1 == cultwords["hell"] && word2 == cultwords["join"] && word3 == cultwords["self"]) + return tearreality() + if(word1 == cultwords["destroy"] && word2 == cultwords["see"] && word3 == cultwords["technology"]) + return emp(src.loc,3) + if(word1 == cultwords["travel"] && word2 == cultwords["blood"] && word3 == cultwords["self"]) + return drain() + if(word1 == cultwords["see"] && word2 == cultwords["hell"] && word3 == cultwords["join"]) + return seer() + if(word1 == cultwords["blood"] && word2 == cultwords["join"] && word3 == cultwords["hell"]) + return raise() + if(word1 == cultwords["hide"] && word2 == cultwords["see"] && word3 == cultwords["blood"]) + return obscure(4) + if(word1 == cultwords["hell"] && word2 == cultwords["travel"] && word3 == cultwords["self"]) + return ajourney() + if(word1 == cultwords["blood"] && word2 == cultwords["see"] && word3 == cultwords["travel"]) + return manifest() + if(word1 == cultwords["hell"] && word2 == cultwords["technology"] && word3 == cultwords["join"]) + return talisman() + if(word1 == cultwords["hell"] && word2 == cultwords["blood"] && word3 == cultwords["join"]) + return sacrifice() + if(word1 == cultwords["blood"] && word2 == cultwords["see"] && word3 == cultwords["hide"]) + return revealrunes(src) + if(word1 == cultwords["destroy"] && word2 == cultwords["travel"] && word3 == cultwords["self"]) + return wall() + if(word1 == cultwords["travel"] && word2 == cultwords["technology"] && word3 == cultwords["other"]) + return freedom() + if(word1 == cultwords["join"] && word2 == cultwords["other"] && word3 == cultwords["self"]) + return cultsummon() + if(word1 == cultwords["hide"] && word2 == cultwords["other"] && word3 == cultwords["see"]) + return deafen() + if(word1 == cultwords["destroy"] && word2 == cultwords["see"] && word3 == cultwords["other"]) + return blind() + if(word1 == cultwords["destroy"] && word2 == cultwords["see"] && word3 == cultwords["blood"]) + return bloodboil() + if(word1 == cultwords["self"] && word2 == cultwords["other"] && word3 == cultwords["technology"]) + return communicate() + if(word1 == cultwords["travel"] && word2 == cultwords["other"]) + return itemport(src.word3) + if(word1 == cultwords["join"] && word2 == cultwords["hide"] && word3 == cultwords["technology"]) + return runestun() + else + return fizzle() -/obj/effect/rune/proc/fizzle() - if(istype(src,/obj/effect/rune)) - usr.say(pick("Hakkrutju gopoenjim.", "Nherasai pivroiashan.", "Firjji prhiv mazenhor.", "Tanah eh wakantahe.", "Obliyae na oraie.", "Miyf hon vnor'c.", "Wakabai hij fen juswix.")) - else - usr.whisper(pick("Hakkrutju gopoenjim.", "Nherasai pivroiashan.", "Firjji prhiv mazenhor.", "Tanah eh wakantahe.", "Obliyae na oraie.", "Miyf hon vnor'c.", "Wakabai hij fen juswix.")) - for (var/mob/V in viewers(src)) - V.show_message("\red The markings pulse with a small burst of light, then fall dark.", 3, "\red You hear a faint fizzle.", 2) - return + proc + fizzle() + if(istype(src,/obj/effect/rune)) + usr.say(pick("Hakkrutju gopoenjim.", "Nherasai pivroiashan.", "Firjji prhiv mazenhor.", "Tanah eh wakantahe.", "Obliyae na oraie.", "Miyf hon vnor'c.", "Wakabai hij fen juswix.")) + else + usr.whisper(pick("Hakkrutju gopoenjim.", "Nherasai pivroiashan.", "Firjji prhiv mazenhor.", "Tanah eh wakantahe.", "Obliyae na oraie.", "Miyf hon vnor'c.", "Wakabai hij fen juswix.")) + for (var/mob/V in viewers(src)) + V.show_message("\red The markings pulse with a small burst of light, then fall dark.", 3, "\red You hear a faint fizzle.", 2) + return -/obj/effect/rune/proc/check_icon() - icon = get_uristrune_cult(word1, word2, word3) + check_icon() + icon = get_uristrune_cult(word1, word2, word3) /obj/item/weapon/tome name = "arcane tome" diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index d78c3333ea..a9217cd00f 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -1,205 +1,197 @@ var/list/sacrificed = list() - +/obj/effect/rune /////////////////////////////////////////FIRST RUNE -/obj/effect/rune/proc/teleportRune() - return teleport(src.word3) - -/obj/effect/rune/proc/teleport(var/key) - var/mob/living/user = usr - var/allrunesloc[] - allrunesloc = new/list() - var/index = 0 -// var/tempnum = 0 - for(var/obj/effect/rune/R in world) - if(R == src) - continue - if(R.word1 == cultwords["travel"] && R.word2 == cultwords["self"] && R.word3 == key && R.z != 2) - index++ - allrunesloc.len = index - allrunesloc[index] = R.loc - if(index >= 5) - user << "\red You feel pain, as rune disappears in reality shift caused by too much wear of space-time fabric" - if (istype(user, /mob/living)) - user.take_overall_damage(5, 0) - del(src) - if(allrunesloc && index != 0) - if(istype(src,/obj/effect/rune)) - user.say("Sas[pick("'","`")]so c'arta forbici!")//Only you can stop auto-muting - else - user.whisper("Sas[pick("'","`")]so c'arta forbici!") - user.visible_message("\red [user] disappears in a flash of red light!", \ - "\red You feel as your body gets dragged through the dimension of Nar-Sie!", \ - "\red You hear a sickening crunch and sloshing of viscera.") - user.loc = allrunesloc[rand(1,index)] - return - if(istype(src,/obj/effect/rune)) - return fizzle() //Use friggin manuals, Dorf, your list was of zero length. - else - call(/obj/effect/rune/proc/fizzle)() - return + proc + teleport(var/key) + var/mob/living/user = usr + var/allrunesloc[] + allrunesloc = new/list() + var/index = 0 + // var/tempnum = 0 + for(var/obj/effect/rune/R in world) + if(R == src) + continue + if(R.word1 == cultwords["travel"] && R.word2 == cultwords["self"] && R.word3 == key && R.z != 2) + index++ + allrunesloc.len = index + allrunesloc[index] = R.loc + if(index >= 5) + user << "\red You feel pain, as rune disappears in reality shift caused by too much wear of space-time fabric" + if (istype(user, /mob/living)) + user.take_overall_damage(5, 0) + del(src) + if(allrunesloc && index != 0) + if(istype(src,/obj/effect/rune)) + user.say("Sas[pick("'","`")]so c'arta forbici!")//Only you can stop auto-muting + else + user.whisper("Sas[pick("'","`")]so c'arta forbici!") + user.visible_message("\red [user] disappears in a flash of red light!", \ + "\red You feel as your body gets dragged through the dimension of Nar-Sie!", \ + "\red You hear a sickening crunch and sloshing of viscera.") + user.loc = allrunesloc[rand(1,index)] + return + if(istype(src,/obj/effect/rune)) + return fizzle() //Use friggin manuals, Dorf, your list was of zero length. + else + call(/obj/effect/rune/proc/fizzle)() + return -/obj/effect/rune/proc/itemportRune() - return itemport(src.word3) -/obj/effect/rune/proc/itemport(var/key) + + itemport(var/key) // var/allrunesloc[] // allrunesloc = new/list() // var/index = 0 -// var/tempnum = 0 - var/culcount = 0 - var/runecount = 0 - var/obj/effect/rune/IP = null - var/mob/living/user = usr - for(var/obj/effect/rune/R in world) - if(R == src) - continue - if(R.word1 == cultwords["travel"] && R.word2 == cultwords["other"] && R.word3 == key) - IP = R - runecount++ - if(runecount >= 2) - user << "\red You feel pain, as rune disappears in reality shift caused by too much wear of space-time fabric" - if (istype(user, /mob/living)) - user.take_overall_damage(5, 0) - del(src) - for(var/mob/living/carbon/C in orange(1,src)) - if(iscultist(C) && !C.stat) - culcount++ - if(culcount>=3) - user.say("Sas[pick("'","`")]so c'arta forbici tarem!") - user.visible_message("\red You feel air moving from the rune - like as it was swapped with somewhere else.", \ - "\red You feel air moving from the rune - like as it was swapped with somewhere else.", \ - "\red You smell ozone.") - for(var/obj/O in src.loc) - if(!O.anchored) - O.loc = IP.loc - for(var/mob/M in src.loc) - M.loc = IP.loc - return + // var/tempnum = 0 + var/culcount = 0 + var/runecount = 0 + var/obj/effect/rune/IP = null + var/mob/living/user = usr + for(var/obj/effect/rune/R in world) + if(R == src) + continue + if(R.word1 == cultwords["travel"] && R.word2 == cultwords["other"] && R.word3 == key) + IP = R + runecount++ + if(runecount >= 2) + user << "\red You feel pain, as rune disappears in reality shift caused by too much wear of space-time fabric" + if (istype(user, /mob/living)) + user.take_overall_damage(5, 0) + del(src) + for(var/mob/living/carbon/C in orange(1,src)) + if(iscultist(C) && !C.stat) + culcount++ + if(culcount>=3) + user.say("Sas[pick("'","`")]so c'arta forbici tarem!") + user.visible_message("\red You feel air moving from the rune - like as it was swapped with somewhere else.", \ + "\red You feel air moving from the rune - like as it was swapped with somewhere else.", \ + "\red You smell ozone.") + for(var/obj/O in src.loc) + if(!O.anchored) + O.loc = IP.loc + for(var/mob/M in src.loc) + M.loc = IP.loc + return - return fizzle() + return fizzle() /////////////////////////////////////////SECOND RUNE -/obj/effect/rune/proc/tomesummon() - if(istype(src,/obj/effect/rune)) - usr.say("N[pick("'","`")]ath reth sh'yro eth d'raggathnor!") - else - usr.whisper("N[pick("'","`")]ath reth sh'yro eth d'raggathnor!") - usr.visible_message("\red Rune disappears with a flash of red light, and in its place now a book lies.", \ - "\red You are blinded by the flash of red light! After you're able to see again, you see that now instead of the rune there's a book.", \ - "\red You hear a pop and smell ozone.") - if(istype(src,/obj/effect/rune)) - new /obj/item/weapon/tome(src.loc) - else - new /obj/item/weapon/tome(usr.loc) - del(src) - return + tomesummon() + if(istype(src,/obj/effect/rune)) + usr.say("N[pick("'","`")]ath reth sh'yro eth d'raggathnor!") + else + usr.whisper("N[pick("'","`")]ath reth sh'yro eth d'raggathnor!") + usr.visible_message("\red Rune disappears with a flash of red light, and in its place now a book lies.", \ + "\red You are blinded by the flash of red light! After you're able to see again, you see that now instead of the rune there's a book.", \ + "\red You hear a pop and smell ozone.") + if(istype(src,/obj/effect/rune)) + new /obj/item/weapon/tome(src.loc) + else + new /obj/item/weapon/tome(usr.loc) + del(src) + return /////////////////////////////////////////THIRD RUNE -/obj/effect/rune/proc/convert() - for(var/mob/living/carbon/M in src.loc) - if(iscultist(M)) - continue - if(M.stat==2) - continue - usr.say("Mah[pick("'","`")]weyh pleggh at e'ntrath!") - M.visible_message("\red [M] writhes in pain as the markings below him glow a bloody red.", \ - "\red AAAAAAHHHH!.", \ - "\red You hear an anguished scream.") - cult_log("[key_name_admin(usr)] tried to convert [key_name_admin(M)]") - if(is_convertable_to_cult(M.mind) && !jobban_isbanned(M, "cultist"))//putting jobban check here because is_convertable uses mind as argument - ticker.mode.add_cultist(M.mind) - M.mind.special_role = "Cultist" - M << "Your blood pulses. Your head throbs. The world goes red. All at once you are aware of a horrible, horrible truth. The veil of reality has been ripped away and in the festering wound left behind something sinister takes root." - M << "Assist your new compatriots in their dark dealings. Their goal is yours, and yours is theirs. You serve the Dark One above all else. Bring It back." - return 1 - else - M << "Your blood pulses. Your head throbs. The world goes red. All at once you are aware of a horrible, horrible truth. The veil of reality has been ripped away and in the festering wound left behind something sinister takes root." - M << "And you were able to force it out of your mind. You now know the truth, there's something horrible out there, stop it and its minions at all costs." - return 0 + convert() + for(var/mob/living/carbon/M in src.loc) + if(iscultist(M)) + continue + if(M.stat==2) + continue + usr.say("Mah[pick("'","`")]weyh pleggh at e'ntrath!") + M.visible_message("\red [M] writhes in pain as the markings below him glow a bloody red.", \ + "\red AAAAAAHHHH!.", \ + "\red You hear an anguished scream.") + if(is_convertable_to_cult(M.mind) && !jobban_isbanned(M, "cultist"))//putting jobban check here because is_convertable uses mind as argument + ticker.mode.add_cultist(M.mind) + M.mind.special_role = "Cultist" + M << "Your blood pulses. Your head throbs. The world goes red. All at once you are aware of a horrible, horrible truth. The veil of reality has been ripped away and in the festering wound left behind something sinister takes root." + M << "Assist your new compatriots in their dark dealings. Their goal is yours, and yours is theirs. You serve the Dark One above all else. Bring It back." + return 1 + else + M << "Your blood pulses. Your head throbs. The world goes red. All at once you are aware of a horrible, horrible truth. The veil of reality has been ripped away and in the festering wound left behind something sinister takes root." + M << "And you were able to force it out of your mind. You now know the truth, there's something horrible out there, stop it and its minions at all costs." + return 0 - return fizzle() + return fizzle() /////////////////////////////////////////FOURTH RUNE -/obj/effect/rune/proc/tearreality() - var/cultist_count = 0 - for(var/mob/M in range(1,src)) - if(iscultist(M) && !M.stat) - M.say("Tok-lyr rqa'nap g[pick("'","`")]lt-ulotf!") - cultist_count += 1 - if(cultist_count >= 9) - cult_log("THE CULT HAS SUMMONED NAR'SIE. GGNORE") - new /obj/machinery/singularity/narsie/large(src.loc) - if(ticker.mode.name == "cult") - ticker.mode:eldergod = 0 - return - else - return fizzle() + tearreality() + var/cultist_count = 0 + for(var/mob/M in range(1,src)) + if(iscultist(M) && !M.stat) + M.say("Tok-lyr rqa'nap g[pick("'","`")]lt-ulotf!") + cultist_count += 1 + if(cultist_count >= 9) + new /obj/machinery/singularity/narsie/large(src.loc) + if(ticker.mode.name == "cult") + ticker.mode:eldergod = 0 + return + else + return fizzle() /////////////////////////////////////////FIFTH RUNE -/obj/effect/rune/proc/empRune() - emp(src.loc,3) - -/obj/effect/rune/proc/emp(var/U,var/range_red) //range_red - var which determines by which number to reduce the default emp range, U is the source loc, needed because of talisman emps which are held in hand at the moment of using and that apparently messes things up -- Urist - if(istype(src,/obj/effect/rune)) - usr.say("Ta'gh fara[pick("'","`")]qha fel d'amar det!") - else - usr.whisper("Ta'gh fara[pick("'","`")]qha fel d'amar det!") - playsound(U, 'sound/items/Welder2.ogg', 25, 1) - var/turf/T = get_turf(U) - if(T) - T.hotspot_expose(700,125) - var/rune = src // detaching the proc - in theory - empulse(U, (range_red - 2), range_red) - del(rune) - return + + emp(var/U,var/range_red) //range_red - var which determines by which number to reduce the default emp range, U is the source loc, needed because of talisman emps which are held in hand at the moment of using and that apparently messes things up -- Urist + if(istype(src,/obj/effect/rune)) + usr.say("Ta'gh fara[pick("'","`")]qha fel d'amar det!") + else + usr.whisper("Ta'gh fara[pick("'","`")]qha fel d'amar det!") + playsound(U, 'sound/items/Welder2.ogg', 25, 1) + var/turf/T = get_turf(U) + if(T) + T.hotspot_expose(700,125) + var/rune = src // detaching the proc - in theory + empulse(U, (range_red - 2), range_red) + del(rune) + return /////////////////////////////////////////SIXTH RUNE -/obj/effect/rune/proc/drain() - var/drain = 0 - for(var/obj/effect/rune/R in world) - if(R.word1==cultwords["travel"] && R.word2==cultwords["blood"] && R.word3==cultwords["self"]) - for(var/mob/living/carbon/D in R.loc) - if(D.stat!=2) - cult_log("[key_name_admin(usr)] has drained blood from [key_name_admin(D)]") - var/bdrain = rand(1,25) - D << "\red You feel weakened." - D.take_overall_damage(bdrain, 0) - drain += bdrain - if(!drain) - return fizzle() - usr.say ("Yu[pick("'","`")]gular faras desdae. Havas mithum javara. Umathar uf'kal thenar!") - usr.visible_message("\red Blood flows from the rune into [usr]!", \ - "\red The blood starts flowing from the rune and into your frail mortal body. You feel... empowered.", \ - "\red You hear a liquid flowing.") - var/mob/living/user = usr - if(user.bhunger) - user.bhunger = max(user.bhunger-2*drain,0) - if(drain>=50) - user.visible_message("\red [user]'s eyes give off eerie red glow!", \ - "\red ...but it wasn't nearly enough. You crave, crave for more. The hunger consumes you from within.", \ - "\red You hear a heartbeat.") - user.bhunger += drain - src = user - spawn() - for (,user.bhunger>0,user.bhunger--) - sleep(50) - user.take_overall_damage(3, 0) - return - user.heal_organ_damage(drain%5, 0) - drain-=drain%5 - for (,drain>0,drain-=5) - sleep(2) - user.heal_organ_damage(5, 0) - return + drain() + var/drain = 0 + for(var/obj/effect/rune/R in world) + if(R.word1==cultwords["travel"] && R.word2==cultwords["blood"] && R.word3==cultwords["self"]) + for(var/mob/living/carbon/D in R.loc) + if(D.stat!=2) + var/bdrain = rand(1,25) + D << "\red You feel weakened." + D.take_overall_damage(bdrain, 0) + drain += bdrain + if(!drain) + return fizzle() + usr.say ("Yu[pick("'","`")]gular faras desdae. Havas mithum javara. Umathar uf'kal thenar!") + usr.visible_message("\red Blood flows from the rune into [usr]!", \ + "\red The blood starts flowing from the rune and into your frail mortal body. You feel... empowered.", \ + "\red You hear a liquid flowing.") + var/mob/living/user = usr + if(user.bhunger) + user.bhunger = max(user.bhunger-2*drain,0) + if(drain>=50) + user.visible_message("\red [user]'s eyes give off eerie red glow!", \ + "\red ...but it wasn't nearly enough. You crave, crave for more. The hunger consumes you from within.", \ + "\red You hear a heartbeat.") + user.bhunger += drain + src = user + spawn() + for (,user.bhunger>0,user.bhunger--) + sleep(50) + user.take_overall_damage(3, 0) + return + user.heal_organ_damage(drain%5, 0) + drain-=drain%5 + for (,drain>0,drain-=5) + sleep(2) + user.heal_organ_damage(5, 0) + return @@ -208,98 +200,98 @@ var/list/sacrificed = list() /////////////////////////////////////////SEVENTH RUNE -/obj/effect/rune/proc/seer() - if(usr.loc==src.loc) - if(usr.seer==1) - usr.say("Rash'tla sektath mal[pick("'","`")]zua. Zasan therium viortia.") - usr << "\red The world beyond fades from your vision." - usr.see_invisible = SEE_INVISIBLE_LIVING - usr.seer = 0 - else if(usr.see_invisible!=SEE_INVISIBLE_LIVING) - usr << "\red The world beyond flashes your eyes but disappears quickly, as if something is disrupting your vision." - usr.see_invisible = SEE_INVISIBLE_OBSERVER - usr.seer = 0 - else - usr.say("Rash'tla sektath mal[pick("'","`")]zua. Zasan therium vivira. Itonis al'ra matum!") - usr << "\red The world beyond opens to your eyes." - usr.see_invisible = SEE_INVISIBLE_OBSERVER - usr.seer = 1 - return - return fizzle() + seer() + if(usr.loc==src.loc) + if(usr.seer==1) + usr.say("Rash'tla sektath mal[pick("'","`")]zua. Zasan therium viortia.") + usr << "\red The world beyond fades from your vision." + usr.see_invisible = SEE_INVISIBLE_LIVING + usr.seer = 0 + else if(usr.see_invisible!=SEE_INVISIBLE_LIVING) + usr << "\red The world beyond flashes your eyes but disappears quickly, as if something is disrupting your vision." + usr.see_invisible = SEE_INVISIBLE_OBSERVER + usr.seer = 0 + else + usr.say("Rash'tla sektath mal[pick("'","`")]zua. Zasan therium vivira. Itonis al'ra matum!") + usr << "\red The world beyond opens to your eyes." + usr.see_invisible = SEE_INVISIBLE_OBSERVER + usr.seer = 1 + return + return fizzle() /////////////////////////////////////////EIGHTH RUNE -/obj/effect/rune/proc/raise() - var/mob/living/carbon/human/corpse_to_raise - var/mob/living/carbon/human/body_to_sacrifice + raise() + var/mob/living/carbon/human/corpse_to_raise + var/mob/living/carbon/human/body_to_sacrifice - var/is_sacrifice_target = 0 - for(var/mob/living/carbon/human/M in src.loc) - if(M.stat == DEAD) - if(ticker.mode.name == "cult" && M.mind == ticker.mode:sacrifice_target) - is_sacrifice_target = 1 - else - corpse_to_raise = M - if(M.key) - M.ghostize(1) //kick them out of their body - break - if(!corpse_to_raise) - if(is_sacrifice_target) - usr << "\red The Geometer of blood wants this mortal for himself." - return fizzle() - - - is_sacrifice_target = 0 - find_sacrifice: - for(var/obj/effect/rune/R in world) - if(R.word1==cultwords["blood"] && R.word2==cultwords["join"] && R.word3==cultwords["hell"]) - for(var/mob/living/carbon/human/N in R.loc) - if(ticker.mode.name == "cult" && N.mind && N.mind == ticker.mode:sacrifice_target) + var/is_sacrifice_target = 0 + for(var/mob/living/carbon/human/M in src.loc) + if(M.stat == DEAD) + if(ticker.mode.name == "cult" && M.mind == ticker.mode:sacrifice_target) is_sacrifice_target = 1 else - if(N.stat!= DEAD) - body_to_sacrifice = N - break find_sacrifice + corpse_to_raise = M + if(M.key) + M.ghostize(1) //kick them out of their body + break + if(!corpse_to_raise) + if(is_sacrifice_target) + usr << "\red The Geometer of blood wants this mortal for himself." + return fizzle() - if(!body_to_sacrifice) - if (is_sacrifice_target) - usr << "\red The Geometer of blood wants that corpse for himself." - else - usr << "\red The sacrifical corpse is not dead. You must free it from this world of illusions before it may be used." - return fizzle() - var/mob/dead/observer/ghost - for(var/mob/dead/observer/O in loc) - if(!O.client) continue - if(O.mind && O.mind.current && O.mind.current.stat != DEAD) continue - ghost = O - break + is_sacrifice_target = 0 + find_sacrifice: + for(var/obj/effect/rune/R in world) + if(R.word1==cultwords["blood"] && R.word2==cultwords["join"] && R.word3==cultwords["hell"]) + for(var/mob/living/carbon/human/N in R.loc) + if(ticker.mode.name == "cult" && N.mind && N.mind == ticker.mode:sacrifice_target) + is_sacrifice_target = 1 + else + if(N.stat!= DEAD) + body_to_sacrifice = N + break find_sacrifice - if(!ghost) - usr << "\red You require a restless spirit which clings to this world. Beckon their prescence with the sacred chants of Nar-Sie." - return fizzle() + if(!body_to_sacrifice) + if (is_sacrifice_target) + usr << "\red The Geometer of blood wants that corpse for himself." + else + usr << "\red The sacrifical corpse is not dead. You must free it from this world of illusions before it may be used." + return fizzle() - corpse_to_raise.revive() + var/mob/dead/observer/ghost + for(var/mob/dead/observer/O in loc) + if(!O.client) continue + if(O.mind && O.mind.current && O.mind.current.stat != DEAD) continue + ghost = O + break - corpse_to_raise.key = ghost.key //the corpse will keep its old mind! but a new player takes ownership of it (they are essentially possessed) - //This means, should that player leave the body, the original may re-enter - usr.say("Pasnar val'keriam usinar. Savrae ines amutan. Yam'toth remium il'tarat!") - corpse_to_raise.visible_message("\red [corpse_to_raise]'s eyes glow with a faint red as he stands up, slowly starting to breathe again.", \ - "\red Life... I'm alive again...", \ - "\red You hear a faint, slightly familiar whisper.") - body_to_sacrifice.visible_message("\red [body_to_sacrifice] is torn apart, a black smoke swiftly dissipating from his remains!", \ - "\red You feel as your blood boils, tearing you apart.", \ - "\red You hear a thousand voices, all crying in pain.") - body_to_sacrifice.gib() + if(!ghost) + usr << "\red You require a restless spirit which clings to this world. Beckon their prescence with the sacred chants of Nar-Sie." + return fizzle() + + corpse_to_raise.revive() + + corpse_to_raise.key = ghost.key //the corpse will keep its old mind! but a new player takes ownership of it (they are essentially possessed) + //This means, should that player leave the body, the original may re-enter + usr.say("Pasnar val'keriam usinar. Savrae ines amutan. Yam'toth remium il'tarat!") + corpse_to_raise.visible_message("\red [corpse_to_raise]'s eyes glow with a faint red as he stands up, slowly starting to breathe again.", \ + "\red Life... I'm alive again...", \ + "\red You hear a faint, slightly familiar whisper.") + body_to_sacrifice.visible_message("\red [body_to_sacrifice] is torn apart, a black smoke swiftly dissipating from his remains!", \ + "\red You feel as your blood boils, tearing you apart.", \ + "\red You hear a thousand voices, all crying in pain.") + body_to_sacrifice.gib() // if(ticker.mode.name == "cult") // ticker.mode:add_cultist(corpse_to_raise.mind) // else // ticker.mode.cult |= corpse_to_raise.mind - corpse_to_raise << "Your blood pulses. Your head throbs. The world goes red. All at once you are aware of a horrible, horrible truth. The veil of reality has been ripped away and in the festering wound left behind something sinister takes root." - corpse_to_raise << "Assist your new compatriots in their dark dealings. Their goal is yours, and yours is theirs. You serve the Dark One above all else. Bring It back." - return + corpse_to_raise << "Your blood pulses. Your head throbs. The world goes red. All at once you are aware of a horrible, horrible truth. The veil of reality has been ripped away and in the festering wound left behind something sinister takes root." + corpse_to_raise << "Assist your new compatriots in their dark dealings. Their goal is yours, and yours is theirs. You serve the Dark One above all else. Bring It back." + return @@ -307,118 +299,116 @@ var/list/sacrificed = list() /////////////////////////////////////////NINETH RUNE -/obj/effect/rune/proc/obscureRune() - return obscure(4) -/obj/effect/rune/proc/obscure(var/rad) - var/S=0 - for(var/obj/effect/rune/R in orange(rad,src)) - if(R!=src) - R.invisibility=INVISIBILITY_OBSERVER - S=1 - if(S) - if(istype(src,/obj/effect/rune)) - usr.say("Kla[pick("'","`")]atu barada nikt'o!") - for (var/mob/V in viewers(src)) - V.show_message("\red The rune turns into gray dust, veiling the surrounding runes.", 3) - del(src) - else - usr.whisper("Kla[pick("'","`")]atu barada nikt'o!") - usr << "\red Your talisman turns into gray dust, veiling the surrounding runes." - for (var/mob/V in orange(1,src)) - if(V!=usr) - V.show_message("\red Dust emanates from [usr]'s hands for a moment.", 3) + obscure(var/rad) + var/S=0 + for(var/obj/effect/rune/R in orange(rad,src)) + if(R!=src) + R.invisibility=INVISIBILITY_OBSERVER + S=1 + if(S) + if(istype(src,/obj/effect/rune)) + usr.say("Kla[pick("'","`")]atu barada nikt'o!") + for (var/mob/V in viewers(src)) + V.show_message("\red The rune turns into gray dust, veiling the surrounding runes.", 3) + del(src) + else + usr.whisper("Kla[pick("'","`")]atu barada nikt'o!") + usr << "\red Your talisman turns into gray dust, veiling the surrounding runes." + for (var/mob/V in orange(1,src)) + if(V!=usr) + V.show_message("\red Dust emanates from [usr]'s hands for a moment.", 3) - return - if(istype(src,/obj/effect/rune)) - return fizzle() - else - call(/obj/effect/rune/proc/fizzle)() - return + return + if(istype(src,/obj/effect/rune)) + return fizzle() + else + call(/obj/effect/rune/proc/fizzle)() + return /////////////////////////////////////////TENTH RUNE -/obj/effect/rune/proc/ajourney() //some bits copypastaed from admin tools - Urist - if(usr.loc==src.loc) - var/mob/living/carbon/human/L = usr - usr.say("Fwe[pick("'","`")]sh mah erl nyag r'ya!") - usr.visible_message("\red [usr]'s eyes glow blue as \he freezes in place, absolutely motionless.", \ - "\red The shadow that is your spirit separates itself from your body. You are now in the realm beyond. While this is a great sight, being here strains your mind and body. Hurry...", \ - "\red You hear only complete silence for a moment.") - usr.ghostize(1) - L.ajourn = 1 - while(L) - if(L.key) - L.ajourn=0 - return - else - L.take_organ_damage(10, 0) - sleep(100) - return fizzle() + ajourney() //some bits copypastaed from admin tools - Urist + if(usr.loc==src.loc) + var/mob/living/carbon/human/L = usr + usr.say("Fwe[pick("'","`")]sh mah erl nyag r'ya!") + usr.visible_message("\red [usr]'s eyes glow blue as \he freezes in place, absolutely motionless.", \ + "\red The shadow that is your spirit separates itself from your body. You are now in the realm beyond. While this is a great sight, being here strains your mind and body. Hurry...", \ + "\red You hear only complete silence for a moment.") + usr.ghostize(1) + L.ajourn = 1 + while(L) + if(L.key) + L.ajourn=0 + return + else + L.take_organ_damage(10, 0) + sleep(100) + return fizzle() /////////////////////////////////////////ELEVENTH RUNE -/obj/effect/rune/proc/manifest() - var/obj/effect/rune/this_rune = src - src = null - if(usr.loc!=this_rune.loc) - return this_rune.fizzle() - var/mob/dead/observer/ghost - for(var/mob/dead/observer/O in this_rune.loc) - if(!O.client) continue - if(O.mind && O.mind.current && O.mind.current.stat != DEAD) continue - ghost = O - break - if(!ghost) - return this_rune.fizzle() - if(jobban_isbanned(ghost, "cultist")) - return this_rune.fizzle() + manifest() + var/obj/effect/rune/this_rune = src + src = null + if(usr.loc!=this_rune.loc) + return this_rune.fizzle() + var/mob/dead/observer/ghost + for(var/mob/dead/observer/O in this_rune.loc) + if(!O.client) continue + if(O.mind && O.mind.current && O.mind.current.stat != DEAD) continue + ghost = O + break + if(!ghost) + return this_rune.fizzle() + if(jobban_isbanned(ghost, "cultist")) + return this_rune.fizzle() - usr.say("Gal'h'rfikk harfrandid mud[pick("'","`")]gib!") - var/mob/living/carbon/human/dummy/D = new(this_rune.loc) - usr.visible_message("\red A shape forms in the center of the rune. A shape of... a man.", \ - "\red A shape forms in the center of the rune. A shape of... a man.", \ - "\red You hear liquid flowing.") - D.real_name = "Unknown" - var/chose_name = 0 - for(var/obj/item/weapon/paper/P in this_rune.loc) - if(P.info) - D.real_name = copytext(P.info, findtext(P.info,">")+1, findtext(P.info,"<",2) ) - chose_name = 1 - break - if(!chose_name) - D.real_name = "[pick(first_names_male)] [pick(last_names)]" - D.universal_speak = 1 - D.status_flags &= ~GODMODE - D.s_tone = 35 - D.b_eyes = 200 - D.r_eyes = 200 - D.g_eyes = 200 - D.underwear = 0 + usr.say("Gal'h'rfikk harfrandid mud[pick("'","`")]gib!") + var/mob/living/carbon/human/dummy/D = new(this_rune.loc) + usr.visible_message("\red A shape forms in the center of the rune. A shape of... a man.", \ + "\red A shape forms in the center of the rune. A shape of... a man.", \ + "\red You hear liquid flowing.") + D.real_name = "Unknown" + var/chose_name = 0 + for(var/obj/item/weapon/paper/P in this_rune.loc) + if(P.info) + D.real_name = copytext(P.info, findtext(P.info,">")+1, findtext(P.info,"<",2) ) + chose_name = 1 + break + if(!chose_name) + D.real_name = "[pick(first_names_male)] [pick(last_names)]" + D.universal_speak = 1 + D.status_flags &= ~GODMODE + D.s_tone = 35 + D.b_eyes = 200 + D.r_eyes = 200 + D.g_eyes = 200 + D.underwear = 0 - D.key = ghost.key + D.key = ghost.key - if(ticker.mode.name == "cult") - ticker.mode:add_cultist(D.mind) - else - ticker.mode.cult+=D.mind + if(ticker.mode.name == "cult") + ticker.mode:add_cultist(D.mind) + else + ticker.mode.cult+=D.mind - D.mind.special_role = "Cultist" - D << "Your blood pulses. Your head throbs. The world goes red. All at once you are aware of a horrible, horrible truth. The veil of reality has been ripped away and in the festering wound left behind something sinister takes root." - D << "Assist your new compatriots in their dark dealings. Their goal is yours, and yours is theirs. You serve the Dark One above all else. Bring It back." + D.mind.special_role = "Cultist" + D << "Your blood pulses. Your head throbs. The world goes red. All at once you are aware of a horrible, horrible truth. The veil of reality has been ripped away and in the festering wound left behind something sinister takes root." + D << "Assist your new compatriots in their dark dealings. Their goal is yours, and yours is theirs. You serve the Dark One above all else. Bring It back." - var/mob/living/user = usr - while(this_rune && user && user.stat==CONSCIOUS && user.client && user.loc==this_rune.loc) - user.take_organ_damage(1, 0) - sleep(30) - if(D) - D.visible_message("\red [D] slowly dissipates into dust and bones.", \ - "\red You feel pain, as bonds formed between your soul and this homunculus break.", \ - "\red You hear faint rustle.") - D.dust() - return + var/mob/living/user = usr + while(this_rune && user && user.stat==CONSCIOUS && user.client && user.loc==this_rune.loc) + user.take_organ_damage(1, 0) + sleep(30) + if(D) + D.visible_message("\red [D] slowly dissipates into dust and bones.", \ + "\red You feel pain, as bonds formed between your soul and this homunculus break.", \ + "\red You hear faint rustle.") + D.dust() + return @@ -426,649 +416,625 @@ var/list/sacrificed = list() /////////////////////////////////////////TWELFTH RUNE -/obj/effect/rune/proc/talisman()//only hide, emp, teleport, deafen, blind and tome runes can be imbued atm - var/obj/item/weapon/paper/newtalisman - var/unsuitable_newtalisman = 0 - for(var/obj/item/weapon/paper/P in src.loc) - if(!P.info) - newtalisman = P - break - else - unsuitable_newtalisman = 1 - if (!newtalisman) - if (unsuitable_newtalisman) - usr << "\red The blank is tainted. It is unsuitable." - return fizzle() + talisman()//only hide, emp, teleport, deafen, blind and tome runes can be imbued atm + var/obj/item/weapon/paper/newtalisman + var/unsuitable_newtalisman = 0 + for(var/obj/item/weapon/paper/P in src.loc) + if(!P.info) + newtalisman = P + break + else + unsuitable_newtalisman = 1 + if (!newtalisman) + if (unsuitable_newtalisman) + usr << "\red The blank is tainted. It is unsuitable." + return fizzle() - var/obj/effect/rune/imbued_from - var/obj/item/weapon/paper/talisman/T - for(var/obj/effect/rune/R in orange(1,src)) - if(R==src) - continue - if(R.word1==cultwords["travel"] && R.word2==cultwords["self"]) //teleport - T = new(src.loc) - T.imbue = "[R.word3]" - T.info = "[R.word3]" - imbued_from = R - break - if(R.word1==cultwords["see"] && R.word2==cultwords["blood"] && R.word3==cultwords["hell"]) //tome - T = new(src.loc) - T.imbue = "newtome" - imbued_from = R - break - if(R.word1==cultwords["destroy"] && R.word2==cultwords["see"] && R.word3==cultwords["technology"]) //emp - T = new(src.loc) - T.imbue = "emp" - imbued_from = R - break - if(R.word1==cultwords["blood"] && R.word2==cultwords["see"] && R.word3==cultwords["destroy"]) //conceal - T = new(src.loc) - T.imbue = "conceal" - imbued_from = R - break - if(R.word1==cultwords["hell"] && R.word2==cultwords["destroy"] && R.word3==cultwords["other"]) //armor - T = new(src.loc) - T.imbue = "armor" - imbued_from = R - break - if(R.word1==cultwords["blood"] && R.word2==cultwords["see"] && R.word3==cultwords["hide"]) //reveal - T = new(src.loc) - T.imbue = "revealrunes" - imbued_from = R - break - if(R.word1==cultwords["hide"] && R.word2==cultwords["other"] && R.word3==cultwords["see"]) //deafen - T = new(src.loc) - T.imbue = "deafen" - imbued_from = R - break - if(R.word1==cultwords["destroy"] && R.word2==cultwords["see"] && R.word3==cultwords["other"]) //blind - T = new(src.loc) - T.imbue = "blind" - imbued_from = R - break - if(R.word1==cultwords["self"] && R.word2==cultwords["other"] && R.word3==cultwords["technology"]) //communicat - T = new(src.loc) - T.imbue = "communicate" - imbued_from = R - break - if(R.word1==cultwords["join"] && R.word2==cultwords["hide"] && R.word3==cultwords["technology"]) //communicat - T = new(src.loc) - T.imbue = "runestun" - imbued_from = R - break - if (imbued_from) - for (var/mob/V in viewers(src)) - V.show_message("\red The runes turn into dust, which then forms into an arcane image on the paper.", 3) - usr.say("H'drak v[pick("'","`")]loso, mir'kanas verbot!") - del(imbued_from) - del(newtalisman) - else - return fizzle() + var/obj/effect/rune/imbued_from + var/obj/item/weapon/paper/talisman/T + for(var/obj/effect/rune/R in orange(1,src)) + if(R==src) + continue + if(R.word1==cultwords["travel"] && R.word2==cultwords["self"]) //teleport + T = new(src.loc) + T.imbue = "[R.word3]" + T.info = "[R.word3]" + imbued_from = R + break + if(R.word1==cultwords["see"] && R.word2==cultwords["blood"] && R.word3==cultwords["hell"]) //tome + T = new(src.loc) + T.imbue = "newtome" + imbued_from = R + break + if(R.word1==cultwords["destroy"] && R.word2==cultwords["see"] && R.word3==cultwords["technology"]) //emp + T = new(src.loc) + T.imbue = "emp" + imbued_from = R + break + if(R.word1==cultwords["blood"] && R.word2==cultwords["see"] && R.word3==cultwords["destroy"]) //conceal + T = new(src.loc) + T.imbue = "conceal" + imbued_from = R + break + if(R.word1==cultwords["hell"] && R.word2==cultwords["destroy"] && R.word3==cultwords["other"]) //armor + T = new(src.loc) + T.imbue = "armor" + imbued_from = R + break + if(R.word1==cultwords["blood"] && R.word2==cultwords["see"] && R.word3==cultwords["hide"]) //reveal + T = new(src.loc) + T.imbue = "revealrunes" + imbued_from = R + break + if(R.word1==cultwords["hide"] && R.word2==cultwords["other"] && R.word3==cultwords["see"]) //deafen + T = new(src.loc) + T.imbue = "deafen" + imbued_from = R + break + if(R.word1==cultwords["destroy"] && R.word2==cultwords["see"] && R.word3==cultwords["other"]) //blind + T = new(src.loc) + T.imbue = "blind" + imbued_from = R + break + if(R.word1==cultwords["self"] && R.word2==cultwords["other"] && R.word3==cultwords["technology"]) //communicat + T = new(src.loc) + T.imbue = "communicate" + imbued_from = R + break + if(R.word1==cultwords["join"] && R.word2==cultwords["hide"] && R.word3==cultwords["technology"]) //communicat + T = new(src.loc) + T.imbue = "runestun" + imbued_from = R + break + if (imbued_from) + for (var/mob/V in viewers(src)) + V.show_message("\red The runes turn into dust, which then forms into an arcane image on the paper.", 3) + usr.say("H'drak v[pick("'","`")]loso, mir'kanas verbot!") + del(imbued_from) + del(newtalisman) + else + return fizzle() /////////////////////////////////////////THIRTEENTH RUNE -/obj/effect/rune/proc/mend() - var/mob/living/user = usr - src = null - user.say("Uhrast ka'hfa heldsagen ver[pick("'","`")]lot!") - user.take_overall_damage(200, 0) - runedec+=10 - user.visible_message("\red [user] keels over dead, his blood glowing blue as it escapes his body and dissipates into thin air.", \ - "\red In the last moment of your humble life, you feel an immense pain as fabric of reality mends... with your blood.", \ - "\red You hear faint rustle.") - for(,user.stat==2) - sleep(600) - if (!user) + mend() + var/mob/living/user = usr + src = null + user.say("Uhrast ka'hfa heldsagen ver[pick("'","`")]lot!") + user.take_overall_damage(200, 0) + runedec+=10 + user.visible_message("\red [user] keels over dead, his blood glowing blue as it escapes his body and dissipates into thin air.", \ + "\red In the last moment of your humble life, you feel an immense pain as fabric of reality mends... with your blood.", \ + "\red You hear faint rustle.") + for(,user.stat==2) + sleep(600) + if (!user) + return + runedec-=10 return - runedec-=10 - return /////////////////////////////////////////FOURTEETH RUNE -// returns 0 if the rune is not used. returns 1 if the rune is used. -/obj/effect/rune/proc/communicate() - . = 1 // Default output is 1. If the rune is deleted it will return 1 - var/input = stripped_input(usr, "Please choose a message to tell to the other acolytes.", "Voice of Blood", "") - if(!input) - if (istype(src)) - fizzle() - return 0 - else - return 0 - - // record this - cult_log("[key_name(usr,0)] says : [input]") + // returns 0 if the rune is not used. returns 1 if the rune is used. + communicate() + . = 1 // Default output is 1. If the rune is deleted it will return 1 + var/input = stripped_input(usr, "Please choose a message to tell to the other acolytes.", "Voice of Blood", "") + if(!input) + if (istype(src)) + fizzle() + return 0 + else + return 0 + if(istype(src,/obj/effect/rune)) + usr.say("O bidai nabora se[pick("'","`")]sma!") + else + usr.whisper("O bidai nabora se[pick("'","`")]sma!") - var/obj/cult_viewpoint/vp = getCultViewpoint(usr) - if (!vp) - return 0 - - var/displayName = vp.get_display_name() - var/cultName = vp.get_cult_name() - - if(istype(src,/obj/effect/rune)) - usr.say("O bidai nabora se[pick("'","`")]sma!") - else - usr.whisper("O bidai nabora se[pick("'","`")]sma!") - - if(istype(src,/obj/effect/rune)) - usr.say("[input]") - else - usr.whisper("[input]") - - for(var/datum/mind/H in ticker.mode.cult) - if (H.current) - H.current << "[cultName]: [input]" - - for(var/mob/spirit/spirit in spirits) - spirit << "[displayName]: [input]" - - del(src) - return 1 + if(istype(src,/obj/effect/rune)) + usr.say("[input]") + else + usr.whisper("[input]") + for(var/datum/mind/H in ticker.mode.cult) + if (H.current) + H.current << "\red \b [input]" + del(src) + return 1 /////////////////////////////////////////FIFTEENTH RUNE -/obj/effect/rune/proc/sacrifice() - var/list/mob/living/carbon/human/cultsinrange = list() - var/list/mob/living/carbon/human/victims = list() - for(var/mob/living/carbon/human/V in src.loc)//Checks for non-cultist humans to sacrifice - if(ishuman(V)) - if(!(iscultist(V))) - victims += V//Checks for cult status and mob type - for(var/obj/item/I in src.loc)//Checks for MMIs/brains/Intellicards - if(istype(I,/obj/item/brain)) - var/obj/item/brain/B = I - victims += B.brainmob - else if(istype(I,/obj/item/device/mmi)) - var/obj/item/device/mmi/B = I - victims += B.brainmob - else if(istype(I,/obj/item/device/aicard)) - for(var/mob/living/silicon/ai/A in I) - victims += A - for(var/mob/living/carbon/C in orange(1,src)) - if(iscultist(C) && !C.stat) - cultsinrange += C - C.say("Barhah hra zar[pick("'","`")]garis!") - for(var/mob/H in victims) - if (ticker.mode.name == "cult") - if(H.mind == ticker.mode:sacrifice_target) - if(cultsinrange.len >= 3) - sacrificed += H.mind - if(isrobot(H)) - H.dust()//To prevent the MMI from remaining + sacrifice() + var/list/mob/living/carbon/human/cultsinrange = list() + var/list/mob/living/carbon/human/victims = list() + for(var/mob/living/carbon/human/V in src.loc)//Checks for non-cultist humans to sacrifice + if(ishuman(V)) + if(!(iscultist(V))) + victims += V//Checks for cult status and mob type + for(var/obj/item/I in src.loc)//Checks for MMIs/brains/Intellicards + if(istype(I,/obj/item/brain)) + var/obj/item/brain/B = I + victims += B.brainmob + else if(istype(I,/obj/item/device/mmi)) + var/obj/item/device/mmi/B = I + victims += B.brainmob + else if(istype(I,/obj/item/device/aicard)) + for(var/mob/living/silicon/ai/A in I) + victims += A + for(var/mob/living/carbon/C in orange(1,src)) + if(iscultist(C) && !C.stat) + cultsinrange += C + C.say("Barhah hra zar[pick("'","`")]garis!") + for(var/mob/H in victims) + if (ticker.mode.name == "cult") + if(H.mind == ticker.mode:sacrifice_target) + if(cultsinrange.len >= 3) + sacrificed += H.mind + if(isrobot(H)) + H.dust()//To prevent the MMI from remaining + else + H.gib() + usr << "\red The Geometer of Blood accepts this sacrifice, your objective is now complete." + else + usr << "\red Your target's earthly bonds are too strong. You need more cultists to succeed in this ritual." else - H.gib() - usr << "\red The Geometer of Blood accepts this sacrifice, your objective is now complete." + if(cultsinrange.len >= 3) + if(H.stat !=2) + if(prob(80)) + usr << "\red The Geometer of Blood accepts this sacrifice." + ticker.mode:grant_runeword(usr) + else + usr << "\red The Geometer of blood accepts this sacrifice." + usr << "\red However, this soul was not enough to gain His favor." + if(isrobot(H)) + H.dust()//To prevent the MMI from remaining + else + H.gib() + else + if(prob(40)) + usr << "\red The Geometer of blood accepts this sacrifice." + ticker.mode:grant_runeword(usr) + else + usr << "\red The Geometer of blood accepts this sacrifice." + usr << "\red However, a mere dead body is not enough to satisfy Him." + if(isrobot(H)) + H.dust()//To prevent the MMI from remaining + else + H.gib() + else + if(H.stat !=2) + usr << "\red The victim is still alive, you will need more cultists chanting for the sacrifice to succeed." + else + if(prob(40)) + usr << "\red The Geometer of blood accepts this sacrifice." + ticker.mode:grant_runeword(usr) + else + usr << "\red The Geometer of blood accepts this sacrifice." + usr << "\red However, a mere dead body is not enough to satisfy Him." + if(isrobot(H)) + H.dust()//To prevent the MMI from remaining + else + H.gib() else - usr << "\red Your target's earthly bonds are too strong. You need more cultists to succeed in this ritual." - else - if(cultsinrange.len >= 3) - if(H.stat !=2) - if(prob(80)) - usr << "\red The Geometer of Blood accepts this sacrifice." + if(cultsinrange.len >= 3) + if(H.stat !=2) + if(prob(80)) + usr << "\red The Geometer of Blood accepts this sacrifice." + ticker.mode:grant_runeword(usr) + else + usr << "\red The Geometer of blood accepts this sacrifice." + usr << "\red However, this soul was not enough to gain His favor." + if(isrobot(H)) + H.dust()//To prevent the MMI from remaining + else + H.gib() + else + if(prob(40)) + usr << "\red The Geometer of blood accepts this sacrifice." + ticker.mode:grant_runeword(usr) + else + usr << "\red The Geometer of blood accepts this sacrifice." + usr << "\red However, a mere dead body is not enough to satisfy Him." + if(isrobot(H)) + H.dust()//To prevent the MMI from remaining + else + H.gib() + else + if(H.stat !=2) + usr << "\red The victim is still alive, you will need more cultists chanting for the sacrifice to succeed." + else + if(prob(40)) + usr << "\red The Geometer of blood accepts this sacrifice." + ticker.mode:grant_runeword(usr) + else + usr << "\red The Geometer of blood accepts this sacrifice." + usr << "\red However, a mere dead body is not enough to satisfy Him." + if(isrobot(H)) + H.dust()//To prevent the MMI from remaining + else + H.gib() + for(var/mob/living/carbon/monkey/M in src.loc) + if (ticker.mode.name == "cult") + if(M.mind == ticker.mode:sacrifice_target) + if(cultsinrange.len >= 3) + sacrificed += M.mind + usr << "\red The Geometer of Blood accepts this sacrifice, your objective is now complete." + else + usr << "\red Your target's earthly bonds are too strong. You need more cultists to succeed in this ritual." + continue + else + if(prob(20)) + usr << "\red The Geometer of Blood accepts your meager sacrifice." ticker.mode:grant_runeword(usr) else usr << "\red The Geometer of blood accepts this sacrifice." - usr << "\red However, this soul was not enough to gain His favor." - if(isrobot(H)) - H.dust()//To prevent the MMI from remaining - else - H.gib() - else - if(prob(40)) - usr << "\red The Geometer of blood accepts this sacrifice." - ticker.mode:grant_runeword(usr) - else - usr << "\red The Geometer of blood accepts this sacrifice." - usr << "\red However, a mere dead body is not enough to satisfy Him." - if(isrobot(H)) - H.dust()//To prevent the MMI from remaining - else - H.gib() + usr << "\red However, a mere monkey is not enough to satisfy Him." else - if(H.stat !=2) - usr << "\red The victim is still alive, you will need more cultists chanting for the sacrifice to succeed." - else - if(prob(40)) - usr << "\red The Geometer of blood accepts this sacrifice." - ticker.mode:grant_runeword(usr) - else - usr << "\red The Geometer of blood accepts this sacrifice." - usr << "\red However, a mere dead body is not enough to satisfy Him." - if(isrobot(H)) - H.dust()//To prevent the MMI from remaining - else - H.gib() - else - if(cultsinrange.len >= 3) - if(H.stat !=2) - if(prob(80)) - usr << "\red The Geometer of Blood accepts this sacrifice." - ticker.mode:grant_runeword(usr) - else - usr << "\red The Geometer of blood accepts this sacrifice." - usr << "\red However, this soul was not enough to gain His favor." - if(isrobot(H)) - H.dust()//To prevent the MMI from remaining - else - H.gib() - else - if(prob(40)) - usr << "\red The Geometer of blood accepts this sacrifice." - ticker.mode:grant_runeword(usr) - else - usr << "\red The Geometer of blood accepts this sacrifice." - usr << "\red However, a mere dead body is not enough to satisfy Him." - if(isrobot(H)) - H.dust()//To prevent the MMI from remaining - else - H.gib() - else - if(H.stat !=2) - usr << "\red The victim is still alive, you will need more cultists chanting for the sacrifice to succeed." - else - if(prob(40)) - usr << "\red The Geometer of blood accepts this sacrifice." - ticker.mode:grant_runeword(usr) - else - usr << "\red The Geometer of blood accepts this sacrifice." - usr << "\red However, a mere dead body is not enough to satisfy Him." - if(isrobot(H)) - H.dust()//To prevent the MMI from remaining - else - H.gib() - for(var/mob/living/carbon/monkey/M in src.loc) - if (ticker.mode.name == "cult") - if(M.mind == ticker.mode:sacrifice_target) - if(cultsinrange.len >= 3) - sacrificed += M.mind - usr << "\red The Geometer of Blood accepts this sacrifice, your objective is now complete." - else - usr << "\red Your target's earthly bonds are too strong. You need more cultists to succeed in this ritual." - continue - else - if(prob(20)) usr << "\red The Geometer of Blood accepts your meager sacrifice." - ticker.mode:grant_runeword(usr) - else - usr << "\red The Geometer of blood accepts this sacrifice." - usr << "\red However, a mere monkey is not enough to satisfy Him." - else - usr << "\red The Geometer of Blood accepts your meager sacrifice." - if(prob(20)) - ticker.mode.grant_runeword(usr) - M.gib() + if(prob(20)) + ticker.mode.grant_runeword(usr) + M.gib() /* for(var/mob/living/carbon/alien/A) - for(var/mob/K in cultsinrange) - K.say("Barhah hra zar'garis!") - A.dust() /// A.gib() doesnt work for some reason, and dust() leaves that skull and bones thingy which we dont really need. - if (ticker.mode.name == "cult") - if(prob(75)) - usr << "\red The Geometer of Blood accepts your exotic sacrifice." - ticker.mode:grant_runeword(usr) - else - usr << "\red The Geometer of Blood accepts your exotic sacrifice." - usr << "\red However, this alien is not enough to gain His favor." - else - usr << "\red The Geometer of Blood accepts your exotic sacrifice." - return - return fizzle() */ + for(var/mob/K in cultsinrange) + K.say("Barhah hra zar'garis!") + A.dust() /// A.gib() doesnt work for some reason, and dust() leaves that skull and bones thingy which we dont really need. + if (ticker.mode.name == "cult") + if(prob(75)) + usr << "\red The Geometer of Blood accepts your exotic sacrifice." + ticker.mode:grant_runeword(usr) + else + usr << "\red The Geometer of Blood accepts your exotic sacrifice." + usr << "\red However, this alien is not enough to gain His favor." + else + usr << "\red The Geometer of Blood accepts your exotic sacrifice." + return + return fizzle() */ /////////////////////////////////////////SIXTEENTH RUNE -/obj/effect/rune/proc/revealrunesrune() - revealrunes(src) - -/obj/effect/rune/proc/revealrunes(var/obj/W as obj) - var/go=0 - var/rad - var/S=0 - if(istype(W,/obj/effect/rune)) - rad = 6 - go = 1 - if (istype(W,/obj/item/weapon/paper/talisman)) - rad = 4 - go = 1 - if (istype(W,/obj/item/weapon/nullrod)) - rad = 1 - go = 1 - if(go) - for(var/obj/effect/rune/R in orange(rad,src)) - if(R!=src) - R:visibility=15 - S=1 - if(S) - if(istype(W,/obj/item/weapon/nullrod)) - usr << "\red Arcane markings suddenly glow from underneath a thin layer of dust!" - return - if(istype(W,/obj/effect/rune)) - usr.say("Nikt[pick("'","`")]o barada kla'atu!") - for (var/mob/V in viewers(src)) - V.show_message("\red The rune turns into red dust, reveaing the surrounding runes.", 3) - del(src) - return - if(istype(W,/obj/item/weapon/paper/talisman)) - usr.whisper("Nikt[pick("'","`")]o barada kla'atu!") - usr << "\red Your talisman turns into red dust, revealing the surrounding runes." - for (var/mob/V in orange(1,usr.loc)) - if(V!=usr) - V.show_message("\red Red dust emanates from [usr]'s hands for a moment.", 3) - return - return - if(istype(W,/obj/effect/rune)) - return fizzle() - if(istype(W,/obj/item/weapon/paper/talisman)) - call(/obj/effect/rune/proc/fizzle)() - return + revealrunes(var/obj/W as obj) + var/go=0 + var/rad + var/S=0 + if(istype(W,/obj/effect/rune)) + rad = 6 + go = 1 + if (istype(W,/obj/item/weapon/paper/talisman)) + rad = 4 + go = 1 + if (istype(W,/obj/item/weapon/nullrod)) + rad = 1 + go = 1 + if(go) + for(var/obj/effect/rune/R in orange(rad,src)) + if(R!=src) + R:visibility=15 + S=1 + if(S) + if(istype(W,/obj/item/weapon/nullrod)) + usr << "\red Arcane markings suddenly glow from underneath a thin layer of dust!" + return + if(istype(W,/obj/effect/rune)) + usr.say("Nikt[pick("'","`")]o barada kla'atu!") + for (var/mob/V in viewers(src)) + V.show_message("\red The rune turns into red dust, reveaing the surrounding runes.", 3) + del(src) + return + if(istype(W,/obj/item/weapon/paper/talisman)) + usr.whisper("Nikt[pick("'","`")]o barada kla'atu!") + usr << "\red Your talisman turns into red dust, revealing the surrounding runes." + for (var/mob/V in orange(1,usr.loc)) + if(V!=usr) + V.show_message("\red Red dust emanates from [usr]'s hands for a moment.", 3) + return + return + if(istype(W,/obj/effect/rune)) + return fizzle() + if(istype(W,/obj/item/weapon/paper/talisman)) + call(/obj/effect/rune/proc/fizzle)() + return /////////////////////////////////////////SEVENTEENTH RUNE -/obj/effect/rune/proc/wall() - usr.say("Khari[pick("'","`")]d! Eske'te tannin!") - src.density = !src.density - var/mob/living/user = usr - user.take_organ_damage(2, 0) - if(src.density) - usr << "\red Your blood flows into the rune, and you feel that the very space over the rune thickens." - else - usr << "\red Your blood flows into the rune, and you feel as the rune releases its grasp on space." - return + wall() + usr.say("Khari[pick("'","`")]d! Eske'te tannin!") + src.density = !src.density + var/mob/living/user = usr + user.take_organ_damage(2, 0) + if(src.density) + usr << "\red Your blood flows into the rune, and you feel that the very space over the rune thickens." + else + usr << "\red Your blood flows into the rune, and you feel as the rune releases its grasp on space." + return /////////////////////////////////////////EIGHTTEENTH RUNE -/obj/effect/rune/proc/freedom() - var/mob/living/user = usr - var/list/mob/living/carbon/cultists = new - for(var/datum/mind/H in ticker.mode.cult) - if (istype(H.current,/mob/living/carbon)) - cultists+=H.current - var/list/mob/living/carbon/users = new - for(var/mob/living/carbon/C in orange(1,src)) - if(iscultist(C) && !C.stat) - users+=C - if(users.len>=3) - var/mob/living/carbon/cultist = input("Choose the one who you want to free", "Followers of Geometer") as null|anything in (cultists - users) - if(!cultist) + freedom() + var/mob/living/user = usr + var/list/mob/living/carbon/cultists = new + for(var/datum/mind/H in ticker.mode.cult) + if (istype(H.current,/mob/living/carbon)) + cultists+=H.current + var/list/mob/living/carbon/users = new + for(var/mob/living/carbon/C in orange(1,src)) + if(iscultist(C) && !C.stat) + users+=C + if(users.len>=3) + var/mob/living/carbon/cultist = input("Choose the one who you want to free", "Followers of Geometer") as null|anything in (cultists - users) + if(!cultist) + return fizzle() + if (cultist == user) //just to be sure. + return + if(!(cultist.buckled || \ + cultist.handcuffed || \ + istype(cultist.wear_mask, /obj/item/clothing/mask/muzzle) || \ + (istype(cultist.loc, /obj/structure/closet)&&cultist.loc:welded) || \ + (istype(cultist.loc, /obj/structure/closet/secure_closet)&&cultist.loc:locked) || \ + (istype(cultist.loc, /obj/machinery/dna_scannernew)&&cultist.loc:locked) \ + )) + user << "\red The [cultist] is already free." + return + cultist.buckled = null + if (cultist.handcuffed) + cultist.drop_from_inventory(cultist.handcuffed) + if (cultist.legcuffed) + cultist.drop_from_inventory(cultist.legcuffed) + if (istype(cultist.wear_mask, /obj/item/clothing/mask/muzzle)) + cultist.u_equip(cultist.wear_mask) + if(istype(cultist.loc, /obj/structure/closet)&&cultist.loc:welded) + cultist.loc:welded = 0 + if(istype(cultist.loc, /obj/structure/closet/secure_closet)&&cultist.loc:locked) + cultist.loc:locked = 0 + if(istype(cultist.loc, /obj/machinery/dna_scannernew)&&cultist.loc:locked) + cultist.loc:locked = 0 + for(var/mob/living/carbon/C in users) + user.take_overall_damage(15, 0) + C.say("Khari[pick("'","`")]d! Gual'te nikka!") + del(src) return fizzle() - if (cultist == user) //just to be sure. - return - if(!(cultist.buckled || \ - cultist.handcuffed || \ - istype(cultist.wear_mask, /obj/item/clothing/mask/muzzle) || \ - (istype(cultist.loc, /obj/structure/closet)&&cultist.loc:welded) || \ - (istype(cultist.loc, /obj/structure/closet/secure_closet)&&cultist.loc:locked) || \ - (istype(cultist.loc, /obj/machinery/dna_scannernew)&&cultist.loc:locked) \ - )) - user << "\red The [cultist] is already free." - return - cultist.buckled = null - if (cultist.handcuffed) - cultist.handcuffed.loc = cultist.loc - cultist.handcuffed = null - cultist.update_inv_handcuffed() - if (cultist.legcuffed) - cultist.legcuffed.loc = cultist.loc - cultist.legcuffed = null - cultist.update_inv_legcuffed() - if (istype(cultist.wear_mask, /obj/item/clothing/mask/muzzle)) - cultist.u_equip(cultist.wear_mask) - if(istype(cultist.loc, /obj/structure/closet)&&cultist.loc:welded) - cultist.loc:welded = 0 - if(istype(cultist.loc, /obj/structure/closet/secure_closet)&&cultist.loc:locked) - cultist.loc:locked = 0 - if(istype(cultist.loc, /obj/machinery/dna_scannernew)&&cultist.loc:locked) - cultist.loc:locked = 0 - for(var/mob/living/carbon/C in users) - user.take_overall_damage(15, 0) - C.say("Khari[pick("'","`")]d! Gual'te nikka!") - del(src) - return fizzle() /////////////////////////////////////////NINETEENTH RUNE -/obj/effect/rune/proc/cultsummon() - var/mob/living/user = usr - var/list/mob/living/carbon/cultists = new - for(var/datum/mind/H in ticker.mode.cult) - if (istype(H.current,/mob/living/carbon)) - cultists+=H.current - var/list/mob/living/carbon/users = new - for(var/mob/living/carbon/C in orange(1,src)) - if(iscultist(C) && !C.stat) - users+=C - if(users.len>=3) - var/mob/living/carbon/cultist = input("Choose the one who you want to summon", "Followers of Geometer") as null|anything in (cultists - user) - if(!cultist) + cultsummon() + var/mob/living/user = usr + var/list/mob/living/carbon/cultists = new + for(var/datum/mind/H in ticker.mode.cult) + if (istype(H.current,/mob/living/carbon)) + cultists+=H.current + var/list/mob/living/carbon/users = new + for(var/mob/living/carbon/C in orange(1,src)) + if(iscultist(C) && !C.stat) + users+=C + if(users.len>=3) + var/mob/living/carbon/cultist = input("Choose the one who you want to summon", "Followers of Geometer") as null|anything in (cultists - user) + if(!cultist) + return fizzle() + if (cultist == user) //just to be sure. + return + if(cultist.buckled || cultist.handcuffed || (!isturf(cultist.loc) && !istype(cultist.loc, /obj/structure/closet))) + user << "\red You cannot summon \the [cultist], for his shackles of blood are strong." + return fizzle() + cultist.loc = src.loc + cultist.lying = 1 + cultist.regenerate_icons() + for(var/mob/living/carbon/human/C in orange(1,src)) + if(iscultist(C) && !C.stat) + C.say("N'ath reth sh'yro eth d[pick("'","`")]rekkathnor!") + C.take_overall_damage(25, 0) + user.visible_message("\red Rune disappears with a flash of red light, and in its place now a body lies.", \ + "\red You are blinded by the flash of red light! After you're able to see again, you see that now instead of the rune there's a body.", \ + "\red You hear a pop and smell ozone.") + del(src) return fizzle() - if (cultist == user) //just to be sure. - return - if(cultist.buckled || cultist.handcuffed || (!isturf(cultist.loc) && !istype(cultist.loc, /obj/structure/closet))) - user << "\red You cannot summon \the [cultist], for his shackles of blood are strong." - return fizzle() - cultist.loc = src.loc - cultist.lying = 1 - cultist.regenerate_icons() - for(var/mob/living/carbon/human/C in orange(1,src)) - if(iscultist(C) && !C.stat) - C.say("N'ath reth sh'yro eth d[pick("'","`")]rekkathnor!") - C.take_overall_damage(25, 0) - user.visible_message("\red Rune disappears with a flash of red light, and in its place now a body lies.", \ - "\red You are blinded by the flash of red light! After you're able to see again, you see that now instead of the rune there's a body.", \ - "\red You hear a pop and smell ozone.") - del(src) - return fizzle() /////////////////////////////////////////TWENTIETH RUNES -/obj/effect/rune/proc/deafen() - if(istype(src,/obj/effect/rune)) - var/affected = 0 - for(var/mob/living/carbon/C in range(7,src)) - if (iscultist(C)) - continue - var/obj/item/weapon/nullrod/N = locate() in C - if(N) - continue - C.ear_deaf += 50 - C.show_message("\red The world around you suddenly becomes quiet.", 3) - affected++ - if(prob(1)) - C.sdisabilities |= DEAF - if(affected) - usr.say("Sti[pick("'","`")] kaliedir!") - usr << "\red The world becomes quiet as the deafening rune dissipates into fine dust." - del(src) - else - return fizzle() - else - var/affected = 0 - for(var/mob/living/carbon/C in range(7,usr)) - if (iscultist(C)) - continue - var/obj/item/weapon/nullrod/N = locate() in C - if(N) - continue - C.ear_deaf += 30 - //talismans is weaker. - C.show_message("\red The world around you suddenly becomes quiet.", 3) - affected++ - if(affected) - usr.whisper("Sti[pick("'","`")] kaliedir!") - usr << "\red Your talisman turns into gray dust, deafening everyone around." - for (var/mob/V in orange(1,src)) - if(!(iscultist(V))) - V.show_message("\red Dust flows from [usr]'s hands for a moment, and the world suddenly becomes quiet..", 3) - return + deafen() + if(istype(src,/obj/effect/rune)) + var/affected = 0 + for(var/mob/living/carbon/C in range(7,src)) + if (iscultist(C)) + continue + var/obj/item/weapon/nullrod/N = locate() in C + if(N) + continue + C.ear_deaf += 50 + C.show_message("\red The world around you suddenly becomes quiet.", 3) + affected++ + if(prob(1)) + C.sdisabilities |= DEAF + if(affected) + usr.say("Sti[pick("'","`")] kaliedir!") + usr << "\red The world becomes quiet as the deafening rune dissipates into fine dust." + del(src) + else + return fizzle() + else + var/affected = 0 + for(var/mob/living/carbon/C in range(7,usr)) + if (iscultist(C)) + continue + var/obj/item/weapon/nullrod/N = locate() in C + if(N) + continue + C.ear_deaf += 30 + //talismans is weaker. + C.show_message("\red The world around you suddenly becomes quiet.", 3) + affected++ + if(affected) + usr.whisper("Sti[pick("'","`")] kaliedir!") + usr << "\red Your talisman turns into gray dust, deafening everyone around." + for (var/mob/V in orange(1,src)) + if(!(iscultist(V))) + V.show_message("\red Dust flows from [usr]'s hands for a moment, and the world suddenly becomes quiet..", 3) + return -/obj/effect/rune/proc/blind() - if(istype(src,/obj/effect/rune)) - var/affected = 0 - for(var/mob/living/carbon/C in viewers(src)) - if (iscultist(C)) - continue - var/obj/item/weapon/nullrod/N = locate() in C - if(N) - continue - C.eye_blurry += 50 - C.eye_blind += 20 - if(prob(5)) - C.disabilities |= NEARSIGHTED - if(prob(10)) - C.sdisabilities |= BLIND - C.show_message("\red Suddenly you see red flash that blinds you.", 3) - affected++ - if(affected) - usr.say("Sti[pick("'","`")] kaliesin!") - usr << "\red The rune flashes, blinding those who not follow the Nar-Sie, and dissipates into fine dust." - del(src) - else - return fizzle() - else - var/affected = 0 - for(var/mob/living/carbon/C in view(2,usr)) - if (iscultist(C)) - continue - var/obj/item/weapon/nullrod/N = locate() in C - if(N) - continue - C.eye_blurry += 30 - C.eye_blind += 10 - //talismans is weaker. - affected++ - C.show_message("\red You feel a sharp pain in your eyes, and the world disappears into darkness..", 3) - if(affected) - usr.whisper("Sti[pick("'","`")] kaliesin!") - usr << "\red Your talisman turns into gray dust, blinding those who not follow the Nar-Sie." - return + blind() + if(istype(src,/obj/effect/rune)) + var/affected = 0 + for(var/mob/living/carbon/C in viewers(src)) + if (iscultist(C)) + continue + var/obj/item/weapon/nullrod/N = locate() in C + if(N) + continue + C.eye_blurry += 50 + C.eye_blind += 20 + if(prob(5)) + C.disabilities |= NEARSIGHTED + if(prob(10)) + C.sdisabilities |= BLIND + C.show_message("\red Suddenly you see red flash that blinds you.", 3) + affected++ + if(affected) + usr.say("Sti[pick("'","`")] kaliesin!") + usr << "\red The rune flashes, blinding those who not follow the Nar-Sie, and dissipates into fine dust." + del(src) + else + return fizzle() + else + var/affected = 0 + for(var/mob/living/carbon/C in view(2,usr)) + if (iscultist(C)) + continue + var/obj/item/weapon/nullrod/N = locate() in C + if(N) + continue + C.eye_blurry += 30 + C.eye_blind += 10 + //talismans is weaker. + affected++ + C.show_message("\red You feel a sharp pain in your eyes, and the world disappears into darkness..", 3) + if(affected) + usr.whisper("Sti[pick("'","`")] kaliesin!") + usr << "\red Your talisman turns into gray dust, blinding those who not follow the Nar-Sie." + return -/obj/effect/rune/proc/bloodboil() //cultists need at least one DANGEROUS rune. Even if they're all stealthy. + bloodboil() //cultists need at least one DANGEROUS rune. Even if they're all stealthy. /* - var/list/mob/living/carbon/cultists = new - for(var/datum/mind/H in ticker.mode.cult) - if (istype(H.current,/mob/living/carbon)) - cultists+=H.current + var/list/mob/living/carbon/cultists = new + for(var/datum/mind/H in ticker.mode.cult) + if (istype(H.current,/mob/living/carbon)) + cultists+=H.current */ - var/culcount = 0 //also, wording for it is old wording for obscure rune, which is now hide-see-blood. + var/culcount = 0 //also, wording for it is old wording for obscure rune, which is now hide-see-blood. // var/list/cultboil = list(cultists-usr) //and for this words are destroy-see-blood. - for(var/mob/living/carbon/C in orange(1,src)) - if(iscultist(C) && !C.stat) - culcount++ - if(culcount>=3) - for(var/mob/living/carbon/M in viewers(usr)) - if(iscultist(M)) - continue - var/obj/item/weapon/nullrod/N = locate() in M - if(N) - continue - cult_log(": Blood Boil damaged [key_name_admin(M)].") - M.take_overall_damage(51,51) - M << "\red Your blood boils!" - if(prob(5)) - spawn(5) - M.gib() - for(var/obj/effect/rune/R in view(src)) - if(prob(10)) - explosion(R.loc, -1, 0, 1, 5) - for(var/mob/living/carbon/human/C in orange(1,src)) - if(iscultist(C) && !C.stat) - C.say("Dedo ol[pick("'","`")]btoh!") - C.take_overall_damage(15, 0) - del(src) - else - return fizzle() - return + for(var/mob/living/carbon/C in orange(1,src)) + if(iscultist(C) && !C.stat) + culcount++ + if(culcount>=3) + for(var/mob/living/carbon/M in viewers(usr)) + if(iscultist(M)) + continue + var/obj/item/weapon/nullrod/N = locate() in M + if(N) + continue + M.take_overall_damage(51,51) + M << "\red Your blood boils!" + if(prob(5)) + spawn(5) + M.gib() + for(var/obj/effect/rune/R in view(src)) + if(prob(10)) + explosion(R.loc, -1, 0, 1, 5) + for(var/mob/living/carbon/human/C in orange(1,src)) + if(iscultist(C) && !C.stat) + C.say("Dedo ol[pick("'","`")]btoh!") + C.take_overall_damage(15, 0) + del(src) + else + return fizzle() + return // WIP rune, I'll wait for Rastaf0 to add limited blood. -/obj/effect/rune/proc/burningblood() - var/culcount = 0 - for(var/mob/living/carbon/C in orange(1,src)) - if(iscultist(C) && !C.stat) - culcount++ - if(culcount >= 5) - for(var/obj/effect/rune/R in world) - if(R.blood_DNA == src.blood_DNA) - for(var/mob/living/M in orange(2,R)) - M.take_overall_damage(0,15) - if (R.invisibility>M.see_invisible) - M << "\red Aargh it burns!" - else - M << "\red Rune suddenly ignites, burning you!" - var/turf/T = get_turf(R) - T.hotspot_expose(700,125) - for(var/obj/effect/decal/cleanable/blood/B in world) - if(B.blood_DNA == src.blood_DNA) - for(var/mob/living/M in orange(1,B)) - M.take_overall_damage(0,5) - M << "\red Blood suddenly ignites, burning you!" - var/turf/T = get_turf(B) - T.hotspot_expose(700,125) - del(B) - del(src) + burningblood() + var/culcount = 0 + for(var/mob/living/carbon/C in orange(1,src)) + if(iscultist(C) && !C.stat) + culcount++ + if(culcount >= 5) + for(var/obj/effect/rune/R in world) + if(R.blood_DNA == src.blood_DNA) + for(var/mob/living/M in orange(2,R)) + M.take_overall_damage(0,15) + if (R.invisibility>M.see_invisible) + M << "\red Aargh it burns!" + else + M << "\red Rune suddenly ignites, burning you!" + var/turf/T = get_turf(R) + T.hotspot_expose(700,125) + for(var/obj/effect/decal/cleanable/blood/B in world) + if(B.blood_DNA == src.blood_DNA) + for(var/mob/living/M in orange(1,B)) + M.take_overall_damage(0,5) + M << "\red Blood suddenly ignites, burning you!" + var/turf/T = get_turf(B) + T.hotspot_expose(700,125) + del(B) + del(src) ////////// Rune 24 (counting burningblood, which kinda doesnt work yet.) -/obj/effect/rune/proc/runestun(var/mob/living/T as mob) - if(istype(src,/obj/effect/rune)) ///When invoked as rune, flash and stun everyone around. - usr.say("Fuu ma[pick("'","`")]jin!") - for(var/mob/living/L in viewers(src)) + runestun(var/mob/living/T as mob) + if(istype(src,/obj/effect/rune)) ///When invoked as rune, flash and stun everyone around. + usr.say("Fuu ma[pick("'","`")]jin!") + for(var/mob/living/L in viewers(src)) - if(iscarbon(L)) - var/mob/living/carbon/C = L - flick("e_flash", C.flash) - if(C.stuttering < 1 && (!(HULK in C.mutations))) - C.stuttering = 1 - C.Weaken(1) - C.Stun(1) - C.show_message("\red The rune explodes in a bright flash.", 3) + if(iscarbon(L)) + var/mob/living/carbon/C = L + flick("e_flash", C.flash) + if(C.stuttering < 1 && (!(HULK in C.mutations))) + C.stuttering = 1 + C.Weaken(1) + C.Stun(1) + C.show_message("\red The rune explodes in a bright flash.", 3) - else if(issilicon(L)) - var/mob/living/silicon/S = L - S.Weaken(5) - S.show_message("\red BZZZT... The rune has exploded in a bright flash.", 3) - del(src) - else ///When invoked as talisman, stun and mute the target mob. - usr.say("Dream sign ''Evil sealing talisman'[pick("'","`")]!") - var/obj/item/weapon/nullrod/N = locate() in T - if(N) - for(var/mob/O in viewers(T, null)) - O.show_message(text("\red [] invokes a talisman at [], but they are unaffected!", usr, T), 1) - else - for(var/mob/O in viewers(T, null)) - O.show_message(text("\red [] invokes a talisman at []", usr, T), 1) + else if(issilicon(L)) + var/mob/living/silicon/S = L + S.Weaken(5) + S.show_message("\red BZZZT... The rune has exploded in a bright flash.", 3) + del(src) + else ///When invoked as talisman, stun and mute the target mob. + usr.say("Dream sign ''Evil sealing talisman'[pick("'","`")]!") + var/obj/item/weapon/nullrod/N = locate() in T + if(N) + for(var/mob/O in viewers(T, null)) + O.show_message(text("\red [] invokes a talisman at [], but they are unaffected!", usr, T), 1) + else + for(var/mob/O in viewers(T, null)) + O.show_message(text("\red [] invokes a talisman at []", usr, T), 1) - if(issilicon(T)) - T.Weaken(15) + if(issilicon(T)) + T.Weaken(15) - else if(iscarbon(T)) - var/mob/living/carbon/C = T - flick("e_flash", C.flash) - if (!(HULK in C.mutations)) - C.silent += 15 - C.Weaken(25) - C.Stun(25) - return + else if(iscarbon(T)) + var/mob/living/carbon/C = T + flick("e_flash", C.flash) + if (!(HULK in C.mutations)) + C.silent += 15 + C.Weaken(25) + C.Stun(25) + return /////////////////////////////////////////TWENTY-FIFTH RUNE -/obj/effect/rune/proc/armor() - var/mob/living/carbon/human/user = usr - if(istype(src,/obj/effect/rune)) - usr.say("N'ath reth sh'yro eth d[pick("'","`")]raggathnor!") - else - usr.whisper("N'ath reth sh'yro eth d[pick("'","`")]raggathnor!") - usr.visible_message("\red The rune disappears with a flash of red light, and a set of armor appears on [usr]...", \ - "\red You are blinded by the flash of red light! After you're able to see again, you see that you are now wearing a set of armor.") + armor() + var/mob/living/carbon/human/user = usr + if(istype(src,/obj/effect/rune)) + usr.say("N'ath reth sh'yro eth d[pick("'","`")]raggathnor!") + else + usr.whisper("N'ath reth sh'yro eth d[pick("'","`")]raggathnor!") + usr.visible_message("\red The rune disappears with a flash of red light, and a set of armor appears on [usr]...", \ + "\red You are blinded by the flash of red light! After you're able to see again, you see that you are now wearing a set of armor.") - user.equip_to_slot_or_del(new /obj/item/clothing/head/culthood/alt(user), slot_head) - user.equip_to_slot_or_del(new /obj/item/clothing/suit/cultrobes/alt(user), slot_wear_suit) - user.equip_to_slot_or_del(new /obj/item/clothing/shoes/cult(user), slot_shoes) - user.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/cultpack(user), slot_back) - //the above update their overlay icons cache but do not call update_icons() - //the below calls update_icons() at the end, which will update overlay icons by using the (now updated) cache - user.put_in_hands(new /obj/item/weapon/melee/cultblade(user)) //put in hands or on floor + user.equip_to_slot_or_del(new /obj/item/clothing/head/culthood/alt(user), slot_head) + user.equip_to_slot_or_del(new /obj/item/clothing/suit/cultrobes/alt(user), slot_wear_suit) + user.equip_to_slot_or_del(new /obj/item/clothing/shoes/cult(user), slot_shoes) + user.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/cultpack(user), slot_back) + //the above update their overlay icons cache but do not call update_icons() + //the below calls update_icons() at the end, which will update overlay icons by using the (now updated) cache + user.put_in_hands(new /obj/item/weapon/melee/cultblade(user)) //put in hands or on floor - del(src) - return + del(src) + return diff --git a/code/game/gamemodes/malfunction/Malf_Modules.dm b/code/game/gamemodes/malfunction/Malf_Modules.dm index 81559bcfe3..104fbf1cdb 100644 --- a/code/game/gamemodes/malfunction/Malf_Modules.dm +++ b/code/game/gamemodes/malfunction/Malf_Modules.dm @@ -122,7 +122,7 @@ rcd light flash thingy on matter drain mod_pick_name = "recam" uses = 10 -/client/proc/reactivate_camera(obj/machinery/camera/C as obj in cameranet.viewpoints) +/client/proc/reactivate_camera(obj/machinery/camera/C as obj in cameranet.cameras) set name = "Reactivate Camera" set category = "Malfunction" if (istype (C, /obj/machinery/camera)) @@ -143,7 +143,7 @@ rcd light flash thingy on matter drain mod_pick_name = "upgradecam" uses = 10 -/client/proc/upgrade_camera(obj/machinery/camera/C as obj in cameranet.viewpoints) +/client/proc/upgrade_camera(obj/machinery/camera/C as obj in cameranet.cameras) set name = "Upgrade Camera" set category = "Malfunction" if(istype(C)) diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index e9257eacc0..5d206b9f94 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -39,7 +39,7 @@ assembly = new(src) assembly.state = 4 /* // Use this to look for cameras that have the same c_tag. - for(var/obj/machinery/camera/C in cameranet.viewpoints) + for(var/obj/machinery/camera/C in cameranet.cameras) var/list/tempnetwork = C.network&src.network if(C != src && C.c_tag == src.c_tag && tempnetwork.len) world.log << "[src.c_tag] [src.x] [src.y] [src.z] conflicts with [C.c_tag] [C.x] [C.y] [C.z]" diff --git a/code/game/machinery/camera/tracking.dm b/code/game/machinery/camera/tracking.dm index 631594d28e..b019c4ee86 100644 --- a/code/game/machinery/camera/tracking.dm +++ b/code/game/machinery/camera/tracking.dm @@ -4,7 +4,7 @@ return var/list/L = list() - for (var/obj/machinery/camera/C in cameranet.viewpoints) + for (var/obj/machinery/camera/C in cameranet.cameras) L.Add(C) camera_sort(L) diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index 9eaf5c6da7..d2bf8a1661 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -36,7 +36,7 @@ user.set_machine(src) var/list/L = list() - for (var/obj/machinery/camera/C in cameranet.viewpoints) + for (var/obj/machinery/camera/C in cameranet.cameras) L.Add(C) camera_sort(L) diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index fb4c43daee..950871d983 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -262,6 +262,15 @@ /obj/machinery/door/proc/requiresID() return 1 +/obj/machinery/door/proc/update_nearby_tiles(need_rebuild) + if(!air_master) + return 0 + + for(var/turf/simulated/turf in locs) + update_heat_protection(turf) + air_master.mark_for_update(turf) + + return 1 /obj/machinery/door/proc/update_heat_protection(var/turf/simulated/source) if(istype(source)) diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 64728d2d9a..54b4c2c2fb 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -108,7 +108,6 @@ var/global/floorIsLava = 0 body += "Is an AI " else if(ishuman(M)) body += {"Make AI | - Make Mask | Make Robot | Make Alien | Make slime diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm index 34c844487c..87ed478705 100644 --- a/code/modules/admin/player_panel.dm +++ b/code/modules/admin/player_panel.dm @@ -265,9 +265,6 @@ else if(isobserver(M)) M_job = "Ghost" - - else if(isSpirit(M)) - M_job = (ismask(M)) ? "Mask" : "Spirit" M_job = replacetext(M_job, "'", "") M_job = replacetext(M_job, "\"", "") @@ -351,10 +348,6 @@ dat += "Monkey" else if(isalien(M)) dat += "Alien" - else if(ismask(M)) - dat += "Mask" - else if(isSpirit(M)) - dat += "Spirit" else dat += "Unknown" diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 9336b7ed3c..87588e97e8 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1196,15 +1196,6 @@ 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() - - - else if(href_list["makemask"]) - if(!check_rights(R_SPAWN)) return - var/mob/currentMob = locate(href_list["makemask"]) - message_admins("\red Admin [key_name_admin(usr)] made [key_name_admin(currentMob)] into a Mask of Nar'Sie!", 1) - log_admin("[key_name(usr)] made [key_name(currentMob)] into a Mask of Nar'Sie!") - currentMob.make_into_mask(0,0) - else if(href_list["makealien"]) if(!check_rights(R_SPAWN)) return diff --git a/code/modules/admin/verbs/mapping.dm b/code/modules/admin/verbs/mapping.dm index d0c552fe15..0a7c1fe345 100644 --- a/code/modules/admin/verbs/mapping.dm +++ b/code/modules/admin/verbs/mapping.dm @@ -58,7 +58,7 @@ var/intercom_range_display_status = 0 del(C) if(camera_range_display_status) - for(var/obj/machinery/camera/C in cameranet.viewpoints) + for(var/obj/machinery/camera/C in cameranet.cameras) new/obj/effect/debugging/camera_range(C.loc) feedback_add_details("admin_verb","mCRD") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -74,7 +74,7 @@ var/intercom_range_display_status = 0 var/list/obj/machinery/camera/CL = list() - for(var/obj/machinery/camera/C in cameranet.viewpoints) + for(var/obj/machinery/camera/C in cameranet.cameras) CL += C var/output = {"CAMERA ANNOMALITIES REPORT
diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index 42cd5dce98..018f154b86 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -71,10 +71,9 @@ var/datum/organ/external/head = get_organ("head") var/mob/living/simple_animal/borer/B - if(istype(head)) - for(var/I in head.implants) - if(istype(I,/mob/living/simple_animal/borer)) - B = I + for(var/I in head.implants) + if(istype(I,/mob/living/simple_animal/borer)) + B = I if(B) if(!B.ckey && ckey && B.controlling) B.ckey = ckey diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index fe027c6748..77ec775059 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -358,7 +358,7 @@ var/list/ai_list = list() unset_machine() src << browse(null, t1) if (href_list["switchcamera"]) - switchCamera(locate(href_list["switchcamera"])) in cameranet.viewpoints + switchCamera(locate(href_list["switchcamera"])) in cameranet.cameras if (href_list["showalerts"]) ai_alerts() //Carn: holopad requests @@ -574,7 +574,7 @@ var/list/ai_list = list() var/mob/living/silicon/ai/U = usr - for (var/obj/machinery/camera/C in cameranet.viewpoints) + for (var/obj/machinery/camera/C in cameranet.cameras) if(!C.can_use()) continue @@ -592,7 +592,7 @@ var/list/ai_list = list() if(isnull(network)) network = old_network // If nothing is selected else - for(var/obj/machinery/camera/C in cameranet.viewpoints) + for(var/obj/machinery/camera/C in cameranet.cameras) if(!C.can_use()) continue if(network in C.network) diff --git a/code/modules/mob/living/silicon/ai/freelook/cameranet.dm b/code/modules/mob/living/silicon/ai/freelook/cameranet.dm index e34dee5b24..7d52fbd7a2 100644 --- a/code/modules/mob/living/silicon/ai/freelook/cameranet.dm +++ b/code/modules/mob/living/silicon/ai/freelook/cameranet.dm @@ -1,25 +1,148 @@ -/datum/visibility_network/cameras - ChunkType = /datum/visibility_chunk/camera +// CAMERA NET +// +// The datum containing all the chunks. -/datum/visibility_network/cameras/getViewpointFromMob(var/mob/currentMob) - var/mob/living/silicon/robot/currentRobot=currentMob - if(currentRobot) - return currentRobot.camera - return FALSE - -/datum/visibility_network/cameras/validViewpoint(var/viewpoint) - var/obj/machinery/camera/c = viewpoint - if (!c) - return FALSE - return c.can_use() - - -// adding some indirection so that I don't have to edit a ton of files -/datum/visibility_network/cameras/proc/addCamera(var/camera) - return addViewpoint(camera) - -/datum/visibility_network/cameras/proc/removeCamera(var/camera) - return removeViewpoint(camera) - -/datum/visibility_network/cameras/proc/checkCameraVis(var/atom/target) - return checkCanSee(target) \ No newline at end of file +var/datum/cameranet/cameranet = new() + +/datum/cameranet + // The cameras on the map, no matter if they work or not. Updated in obj/machinery/camera.dm by New() and Del(). + var/list/cameras = list() + // The chunks of the map, mapping the areas that the cameras can see. + var/list/chunks = list() + var/ready = 0 + +// Checks if a chunk has been Generated in x, y, z. +/datum/cameranet/proc/chunkGenerated(x, y, z) + x &= ~0xf + y &= ~0xf + var/key = "[x],[y],[z]" + return (chunks[key]) + +// Returns the chunk in the x, y, z. +// If there is no chunk, it creates a new chunk and returns that. +/datum/cameranet/proc/getCameraChunk(x, y, z) + x &= ~0xf + y &= ~0xf + var/key = "[x],[y],[z]" + if(!chunks[key]) + chunks[key] = new /datum/camerachunk(null, x, y, z) + + return chunks[key] + +// Updates what the aiEye can see. It is recommended you use this when the aiEye moves or it's location is set. + +/datum/cameranet/proc/visibility(mob/aiEye/ai) + // 0xf = 15 + var/x1 = max(0, ai.x - 16) & ~0xf + var/y1 = max(0, ai.y - 16) & ~0xf + var/x2 = min(world.maxx, ai.x + 16) & ~0xf + var/y2 = min(world.maxy, ai.y + 16) & ~0xf + + var/list/visibleChunks = list() + + for(var/x = x1; x <= x2; x += 16) + for(var/y = y1; y <= y2; y += 16) + visibleChunks += getCameraChunk(x, y, ai.z) + + var/list/remove = ai.visibleCameraChunks - visibleChunks + var/list/add = visibleChunks - ai.visibleCameraChunks + + for(var/chunk in remove) + var/datum/camerachunk/c = chunk + c.remove(ai) + + for(var/chunk in add) + var/datum/camerachunk/c = chunk + c.add(ai) + +// Updates the chunks that the turf is located in. Use this when obstacles are destroyed or when doors open. + +/datum/cameranet/proc/updateVisibility(atom/A, var/opacity_check = 1) + + if(!ticker || (opacity_check && !A.opacity)) + return + majorChunkChange(A, 2) + +/datum/cameranet/proc/updateChunk(x, y, z) + // 0xf = 15 + if(!chunkGenerated(x, y, z)) + return + var/datum/camerachunk/chunk = getCameraChunk(x, y, z) + chunk.hasChanged() + +// Removes a camera from a chunk. + +/datum/cameranet/proc/removeCamera(obj/machinery/camera/c) + if(c.can_use()) + majorChunkChange(c, 0) + +// Add a camera to a chunk. + +/datum/cameranet/proc/addCamera(obj/machinery/camera/c) + if(c.can_use()) + majorChunkChange(c, 1) + +// Used for Cyborg cameras. Since portable cameras can be in ANY chunk. + +/datum/cameranet/proc/updatePortableCamera(obj/machinery/camera/c) + if(c.can_use()) + majorChunkChange(c, 1) + //else + // majorChunkChange(c, 0) + +// Never access this proc directly!!!! +// This will update the chunk and all the surrounding chunks. +// It will also add the atom to the cameras list if you set the choice to 1. +// Setting the choice to 0 will remove the camera from the chunks. +// If you want to update the chunks around an object, without adding/removing a camera, use choice 2. + +/datum/cameranet/proc/majorChunkChange(atom/c, var/choice) + // 0xf = 15 + if(!c) + return + + var/turf/T = get_turf(c) + if(T) + var/x1 = max(0, T.x - 8) & ~0xf + var/y1 = max(0, T.y - 8) & ~0xf + var/x2 = min(world.maxx, T.x + 8) & ~0xf + var/y2 = min(world.maxy, T.y + 8) & ~0xf + + //world << "X1: [x1] - Y1: [y1] - X2: [x2] - Y2: [y2]" + + for(var/x = x1; x <= x2; x += 16) + for(var/y = y1; y <= y2; y += 16) + if(chunkGenerated(x, y, T.z)) + var/datum/camerachunk/chunk = getCameraChunk(x, y, T.z) + if(choice == 0) + // Remove the camera. + chunk.cameras -= c + else if(choice == 1) + // You can't have the same camera in the list twice. + chunk.cameras |= c + chunk.hasChanged() + +// Will check if a mob is on a viewable turf. Returns 1 if it is, otherwise returns 0. + +/datum/cameranet/proc/checkCameraVis(mob/living/target as mob) + + // 0xf = 15 + var/turf/position = get_turf(target) + var/datum/camerachunk/chunk = getCameraChunk(position.x, position.y, position.z) + if(chunk) + if(chunk.changed) + chunk.hasChanged(1) // Update now, no matter if it's visible or not. + if(chunk.visibleTurfs[position]) + return 1 + return 0 + + +// Debug verb for VVing the chunk that the turf is in. +/* +/turf/verb/view_chunk() + set src in world + + if(cameranet.chunkGenerated(x, y, z)) + var/datum/camerachunk/chunk = cameranet.getCameraChunk(x, y, z) + usr.client.debug_variables(chunk) +*/ \ No newline at end of file diff --git a/code/modules/mob/living/silicon/ai/freelook/chunk.dm b/code/modules/mob/living/silicon/ai/freelook/chunk.dm index 89c88c1aaf..33dbfd0966 100644 --- a/code/modules/mob/living/silicon/ai/freelook/chunk.dm +++ b/code/modules/mob/living/silicon/ai/freelook/chunk.dm @@ -1,23 +1,168 @@ -/datum/visibility_chunk/camera +#define UPDATE_BUFFER 25 // 2.5 seconds + +// CAMERA CHUNK +// +// A 16x16 grid of the map with a list of turfs that can be seen, are visible and are dimmed. +// Allows the AI Eye to stream these chunks and know what it can and cannot see. + +/datum/camerachunk + var/list/obscuredTurfs = list() + var/list/visibleTurfs = list() + var/list/obscured = list() + var/list/cameras = list() + var/list/turfs = list() + var/list/seenby = list() + var/visible = 0 + var/changed = 0 + var/updating = 0 + var/x = 0 + var/y = 0 + var/z = 0 + +// Add an AI eye to the chunk, then update if changed. + +/datum/camerachunk/proc/add(mob/aiEye/ai) + if(!ai.ai) + return + ai.visibleCameraChunks += src + if(ai.ai.client) + ai.ai.client.images += obscured + visible++ + seenby += ai + if(changed && !updating) + update() + +// Remove an AI eye from the chunk, then update if changed. + +/datum/camerachunk/proc/remove(mob/aiEye/ai) + if(!ai.ai) + return + ai.visibleCameraChunks -= src + if(ai.ai.client) + ai.ai.client.images -= obscured + seenby -= ai + if(visible > 0) + visible-- + +// Called when a chunk has changed. I.E: A wall was deleted. + +/datum/camerachunk/proc/visibilityChanged(turf/loc) + if(!visibleTurfs[loc]) + return + hasChanged() + +// Updates the chunk, makes sure that it doesn't update too much. If the chunk isn't being watched it will +// instead be flagged to update the next time an AI Eye moves near it. + +/datum/camerachunk/proc/hasChanged(var/update_now = 0) + if(visible || update_now) + if(!updating) + updating = 1 + spawn(UPDATE_BUFFER) // Batch large changes, such as many doors opening or closing at once + update() + updating = 0 + else + changed = 1 + +// The actual updating. It gathers the visible turfs from cameras and puts them into the appropiate lists. + +/datum/camerachunk/proc/update() + + set background = 1 + + var/list/newVisibleTurfs = list() + + for(var/camera in cameras) + var/obj/machinery/camera/c = camera + + if(!c) + continue + + if(!c.can_use()) + continue + + var/turf/point = locate(src.x + 8, src.y + 8, src.z) + if(get_dist(point, c) > 24) + continue + + for(var/turf/t in c.can_see()) + newVisibleTurfs[t] = t + + // Removes turf that isn't in turfs. + newVisibleTurfs &= turfs + + var/list/visAdded = newVisibleTurfs - visibleTurfs + var/list/visRemoved = visibleTurfs - newVisibleTurfs + + visibleTurfs = newVisibleTurfs + obscuredTurfs = turfs - newVisibleTurfs + + for(var/turf in visAdded) + var/turf/t = turf + if(t.obscured) + obscured -= t.obscured + for(var/eye in seenby) + var/mob/aiEye/m = eye + if(!m || !m.ai) + continue + if(m.ai.client) + m.ai.client.images -= t.obscured + + for(var/turf in visRemoved) + var/turf/t = turf + if(obscuredTurfs[t]) + if(!t.obscured) + t.obscured = image('icons/effects/cameravis.dmi', t, "black", 15) + + obscured += t.obscured + for(var/eye in seenby) + var/mob/aiEye/m = eye + if(!m || !m.ai) + seenby -= m + continue + if(m.ai.client) + m.ai.client.images += t.obscured + +// Create a new camera chunk, since the chunks are made as they are needed. + +/datum/camerachunk/New(loc, x, y, z) + + // 0xf = 15 + x &= ~0xf + y &= ~0xf + + src.x = x + src.y = y + src.z = z -/datum/visibility_chunk/camera/validViewpoint(var/viewpoint) - var/obj/machinery/camera/c = viewpoint - if(!c) - return FALSE - if(!c.can_use()) - return FALSE - var/turf/point = locate(src.x + 8, src.y + 8, src.z) - if(get_dist(point, c) > 24) - return FALSE - return TRUE - - -/datum/visibility_chunk/camera/getVisibleTurfsForViewpoint(var/viewpoint) - var/obj/machinery/camera/c = viewpoint - return c.can_see() - - -/datum/visibility_chunk/camera/findNearbyViewpoints() for(var/obj/machinery/camera/c in range(16, locate(x + 8, y + 8, z))) if(c.can_use()) - viewpoints += c \ No newline at end of file + cameras += c + + for(var/turf/t in range(10, locate(x + 8, y + 8, z))) + if(t.x >= x && t.y >= y && t.x < x + 16 && t.y < y + 16) + turfs[t] = t + + for(var/camera in cameras) + var/obj/machinery/camera/c = camera + if(!c) + continue + + if(!c.can_use()) + continue + + for(var/turf/t in c.can_see()) + visibleTurfs[t] = t + + // Removes turf that isn't in turfs. + visibleTurfs &= turfs + + obscuredTurfs = turfs - visibleTurfs + + for(var/turf in obscuredTurfs) + var/turf/t = turf + if(!t.obscured) + t.obscured = image('icons/effects/cameravis.dmi', t, "black", 15) + obscured += t.obscured + +#undef UPDATE_BUFFER \ No newline at end of file diff --git a/code/modules/mob/living/silicon/ai/freelook/eye.dm b/code/modules/mob/living/silicon/ai/freelook/eye.dm index 351b9b60fa..c82fbb7c76 100644 --- a/code/modules/mob/living/silicon/ai/freelook/eye.dm +++ b/code/modules/mob/living/silicon/ai/freelook/eye.dm @@ -6,16 +6,13 @@ /mob/aiEye name = "Inactive AI Eye" icon = 'icons/obj/status_display.dmi' // For AI friend secret shh :o + var/list/visibleCameraChunks = list() var/mob/living/silicon/ai/ai = null density = 0 status_flags = GODMODE // You can't damage it. mouse_opacity = 0 see_in_dark = 7 -/mob/aiEye/New() - ..() - visibility_interface = new /datum/visibility_interface/ai_eye(src) - // Movement code. Returns 0 to stop air movement from moving it. /mob/aiEye/Move() return 0 @@ -40,6 +37,7 @@ // It will also stream the chunk that the new loc is in. /mob/aiEye/proc/setLoc(var/T) + if(ai) if(!isturf(ai.loc)) return @@ -138,8 +136,7 @@ if(client && client.eye) client.eye = src - - for(var/datum/visibility_chunk/camera/c in eyeobj.visibility_interface.visible_chunks) + for(var/datum/camerachunk/c in eyeobj.visibleCameraChunks) c.remove(eyeobj) /mob/living/silicon/ai/verb/toggle_acceleration() diff --git a/code/modules/mob/living/silicon/ai/freelook/read_me.dm b/code/modules/mob/living/silicon/ai/freelook/read_me.dm index aa3d99bdba..53e68ff137 100644 --- a/code/modules/mob/living/silicon/ai/freelook/read_me.dm +++ b/code/modules/mob/living/silicon/ai/freelook/read_me.dm @@ -43,7 +43,7 @@ WHERE IS EVERYTHING? - cameraNetwork.dm = Everything about the cameraNetwork datum. + cameranet.dm = Everything about the cameranet datum. chunk.dm = Everything about the chunk datum. eye.dm = Everything about the AI and the AIEye. updating.dm = Everything about triggers that will update chunks. diff --git a/code/modules/mob/living/silicon/ai/freelook/update_triggers.dm b/code/modules/mob/living/silicon/ai/freelook/update_triggers.dm index 5a1f9c6e9b..c1f6331372 100644 --- a/code/modules/mob/living/silicon/ai/freelook/update_triggers.dm +++ b/code/modules/mob/living/silicon/ai/freelook/update_triggers.dm @@ -1,5 +1,80 @@ #define BORG_CAMERA_BUFFER 30 +//UPDATE TRIGGERS, when the chunk (and the surrounding chunks) should update. + +// TURFS + +/turf + var/image/obscured + +/turf/proc/visibilityChanged() + if(ticker) + cameranet.updateVisibility(src) + +/turf/simulated/Del() + visibilityChanged() + ..() + +/turf/simulated/New() + ..() + visibilityChanged() + + + +// STRUCTURES + +/obj/structure/Del() + if(ticker) + cameranet.updateVisibility(src) + ..() + +/obj/structure/New() + ..() + if(ticker) + cameranet.updateVisibility(src) + +// EFFECTS + +/obj/effect/Del() + if(ticker) + cameranet.updateVisibility(src) + ..() + +/obj/effect/New() + ..() + if(ticker) + cameranet.updateVisibility(src) + + +// DOORS + +// Simply updates the visibility of the area when it opens/closes/destroyed. +/obj/machinery/door/update_nearby_tiles(need_rebuild) + . = ..(need_rebuild) + // Glass door glass = 1 + // don't check then? + if(!glass && cameranet) + cameranet.updateVisibility(src, 0) + + +// ROBOT MOVEMENT + +// Update the portable camera everytime the Robot moves. +// This might be laggy, comment it out if there are problems. +/mob/living/silicon/robot/var/updating = 0 + +/mob/living/silicon/robot/Move() + var/oldLoc = src.loc + . = ..() + if(.) + if(src.camera && src.camera.network.len) + if(!updating) + updating = 1 + spawn(BORG_CAMERA_BUFFER) + if(oldLoc != src.loc) + cameranet.updatePortableCamera(src.camera) + updating = 0 + // CAMERA // An addition to deactivate which removes/adds the camera from the chunk list based on if it works or not. @@ -7,23 +82,23 @@ /obj/machinery/camera/deactivate(user as mob, var/choice = 1) ..(user, choice) if(src.can_use()) - cameranet.addViewpoint(src) + cameranet.addCamera(src) else src.SetLuminosity(0) - cameranet.removeViewpoint(src) + cameranet.removeCamera(src) /obj/machinery/camera/New() ..() - cameranet.viewpoints += src //Camera must be added to global list of all cameras no matter what... + cameranet.cameras += src //Camera must be added to global list of all cameras no matter what... var/list/open_networks = difflist(network,RESTRICTED_CAMERA_NETWORKS) //...but if all of camera's networks are restricted, it only works for specific camera consoles. if(open_networks.len) //If there is at least one open network, chunk is available for AI usage. - cameranet.addViewpoint(src) + cameranet.addCamera(src) /obj/machinery/camera/Del() - cameranet.viewpoints -= src + cameranet.cameras -= src var/list/open_networks = difflist(network,RESTRICTED_CAMERA_NETWORKS) if(open_networks.len) - cameranet.removeViewpoint(src) + cameranet.removeCamera(src) ..() #undef BORG_CAMERA_BUFFER \ No newline at end of file diff --git a/code/modules/mob/living/silicon/ai/freelook/visibility_interface.dm b/code/modules/mob/living/silicon/ai/freelook/visibility_interface.dm deleted file mode 100644 index b55598c609..0000000000 --- a/code/modules/mob/living/silicon/ai/freelook/visibility_interface.dm +++ /dev/null @@ -1,10 +0,0 @@ -/datum/visibility_interface/ai_eye - chunk_type = /datum/visibility_chunk/camera - -/datum/visibility_interface/ai_eye/getClient() - var/mob/aiEye/eye = controller - if (!eye) - return FALSE - if (!eye.ai) - return FALSE - return eye.ai.client diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 7905a8f363..fdb32e82cc 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -333,9 +333,6 @@ var/list/slot_equipment_priority = list( \ return */ -/mob - var/newPlayerType = /mob/new_player - /mob/verb/abandon_mob() set name = "Respawn" set category = "OOC" @@ -385,12 +382,14 @@ var/list/slot_equipment_priority = list( \ log_game("[usr.key] AM failed due to disconnect.") return - var/mob/newPlayer = new newPlayerType() + var/mob/new_player/M = new /mob/new_player() if(!client) log_game("[usr.key] AM failed due to disconnect.") - del(newPlayer) + del(M) return - newPlayer.key = key + + M.key = key +// M.Login() //wat return /client/verb/changes() diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 803b2e7c00..777f684dcb 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -205,7 +205,6 @@ var/obj/control_object //Used by admins to possess objects. All mobs should have this var - var/datum/visibility_interface/visibility_interface = null // used by the visibility system to provide an interface for the visibility networks //Whether or not mobs can understand other mobtypes. These stay in /mob so that ghosts can hear everything. var/universal_speak = 0 // Set to 1 to enable the mob to speak to everyone -- TLE diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index bef1dd940d..314a4026ab 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -114,17 +114,7 @@ proc/isobserver(A) if(istype(A, /mob/dead/observer)) return 1 return 0 - -/proc/isSpirit(A) - if(istype(A, /mob/spirit)) - return 1 - return 0 -/proc/ismask(A) - if(istype(A, /mob/spirit/mask)) - return 1 - return 0 - proc/isorgan(A) if(istype(A, /datum/organ/external)) return 1 diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 0e1514177a..59721a24ab 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -176,15 +176,8 @@ return if(mob.stat==2) return - -// handle possible spirit movement - if(istype(mob,/mob/spirit)) - var/mob/spirit/currentSpirit = mob - return currentSpirit.Spirit_Move(direct) - - // handle possible AI movement - if(isAI(mob)) - return AIMove(n,direct,mob) + + if(isAI(mob)) return AIMove(n,direct,mob) if(mob.monkeyizing) return//This is sota the goto stop mobs from moving var diff --git a/code/modules/mob/spirit/cultnet.dm b/code/modules/mob/spirit/cultnet.dm deleted file mode 100644 index df0cd57ff5..0000000000 --- a/code/modules/mob/spirit/cultnet.dm +++ /dev/null @@ -1,80 +0,0 @@ -/* - -This file contains the code necessary to do the display code for cult spirits. - -It reuses a lot of code from the AIEye cameraNetwork. In order to work properly, some of those files needed to be modified as well. - -*/ - - -/proc/isCultRune(var/viewpoint) - var/obj/effect/rune/test_rune = viewpoint - if (test_rune) - return TRUE - return FALSE - - -/proc/isCultViewpoint(var/viewpoint) - var/obj/cult_viewpoint/vp = viewpoint - if (vp) - return TRUE - return FALSE - - -/datum/visibility_chunk/cult/validViewpoint(var/atom/viewpoint) - var/turf/point = locate(src.x + 8, src.y + 8, src.z) - if(get_dist(point, viewpoint) > 24) - return FALSE - - if (isCultRune(viewpoint) || isCultViewpoint(viewpoint)) - return viewpoint:can_use() - return FALSE - - -/datum/visibility_chunk/cult/getVisibleTurfsForViewpoint(var/viewpoint) - var/obj/effect/rune/rune = viewpoint - if (rune) - return rune.can_see() - var/obj/cult_viewpoint/cvp = viewpoint - if (cvp) - return cvp.can_see() - return null - - -/datum/visibility_chunk/cult/findNearbyViewpoints() - for(var/obj/cult_viewpoint/vp in range(16, locate(x + 8, y + 8, z))) - if(vp.can_use()) - viewpoints += vp - for(var/obj/effect/rune/rune in range(16, locate(x + 8, y + 8, z))) - viewpoints += rune - - -/datum/visibility_network/cult - ChunkType = /datum/visibility_chunk/cult - - -/datum/visibility_network/cult/validViewpoint(var/viewpoint) - if (isCultRune(viewpoint) || isCultViewpoint(viewpoint)) - return viewpoint:can_use() - return FALSE - -/datum/visibility_network/cult/getViewpointFromMob(var/mob/currentMob) - for(var/obj/cult_viewpoint/currentView in currentMob) - return currentView - return FALSE - - -/datum/visibility_interface/cult - chunk_type = /datum/visibility_chunk/cult - - -/* -RUNE JUNK -*/ - -/obj/effect/rune/proc/can_use() - return TRUE - -/obj/effect/rune/proc/can_see() - return hear(view_range, get_turf(src)) - diff --git a/code/modules/mob/spirit/mask/mask.dm b/code/modules/mob/spirit/mask/mask.dm deleted file mode 100644 index 6b58f201cf..0000000000 --- a/code/modules/mob/spirit/mask/mask.dm +++ /dev/null @@ -1,227 +0,0 @@ -/mob/spirit/mask - icon = 'icons/mob/spirits/mask.dmi' - icon_state = "depressurized" - -/mob/spirit/mask/New() - ..() - spell_list += new /obj/effect/proc_holder/spell/aoe_turf/conjure/create_talisman(src) - spell_list += new /obj/effect/proc_holder/spell/aoe_turf/blood_speech(src) - spell_list += new /obj/effect/proc_holder/spell/aoe_turf/shatter_lights(src) - - -/mob/spirit/mask/verb/go_to_follower() - set category = "Mask" - set name = "Go to follower" - set desc = "Select who you would like to go too." - - var/obj/cult_viewpoint/cultist = pick_cultist() - if (cultist) - follow_cultist(cultist.owner) - cult_log("[key_name_admin(src)] started following [key_name_admin(cultist)].") - src << "You start following [cultist.get_display_name()]." - - -/mob/spirit/mask/verb/urge_cultist() - set category = "Mask" - set name = "Urge cultist" - set desc = "Push your cultists to do something." - - var/obj/cult_viewpoint/cultist = pick_cultist() - if (cultist) - if (cultist.owner) - var/newUrge = stripped_input(usr, "", "Set Urge", "") - cultist.set_urge(newUrge) - src << "You urge [cultist.owner.name] to [newUrge]." - cult_log("controlled by [key_name_admin(src)] has urged [key_name_admin(cultist.owner)] to [newUrge].") - -/mob/spirit/mask/verb/set_cult_name() - set category = "Mask" - set name = "Set Cult Name" - set desc = "Grant a cultist a name." - - var/obj/cult_viewpoint/cultist = pick_cultist() - if (cultist) - var/newName = stripped_input(usr, "", "Set Cult Name", "") - if (!newName) - return - cultist.set_cult_name(newName) - src << "You grant [cultist.owner.name] the secret name of [newName]." - if (cultist.owner) - cult_log("[key_name_admin(src)] has set [key_name_admin(cultist.owner)] to \'[newName]\'") - - -/mob/spirit/mask/verb/urge_cult() - set category = "Mask" - set name = "Urge Cult" - set desc = "Set urge on the entire cult." - - var/newUrge = stripped_input(usr, "Please choose an urge.", "Set Urge", "") - for(var/obj/cult_viewpoint/viewpoint in cult_viewpoints) - viewpoint.set_urge(newUrge) - src << "You urge the entire cult to [newUrge]." - cult_log("[key_name_admin(src)] has urged the entire cult to [newUrge]") - - -/mob/spirit/mask/verb/set_favor_for_cultist() - set category = "Mask" - set name = "Show your favor" - set desc = "Set the favor for a cultist" - - var/obj/cult_viewpoint/cultist = pick_cultist() - if (cultist) - if (cultist.owner) - var/list/favor = list("Pleased", "Displeased", "Indifference") - var/emotion = input("Pick your emotion", "Mask", null, null) in favor - switch(emotion) - if("Pleased") - cultist.set_favor(1) - cult_log("[key_name_admin(src)] is pleased with [key_name_admin(cultist.owner)]") - if("Displeased") - cultist.set_favor(-1) - cult_log("[key_name_admin(src)] is displeased with [key_name_admin(cultist.owner)]") - if("Indifference") - cultist.set_favor(0) - cult_log("[key_name_admin(src)] is indifferent too [key_name_admin(cultist.owner)]") - - -/mob/spirit/mask/proc/set_name() - spawn(0) - var/newName = stripped_input(src, "Please pick a name.", "Pick Name for Mask", "") - name = newName ? newName : "Mask of Nar'sie" - src << "You have set your name to [name]." - - -/mob/spirit/mask/proc/pick_cultist() - var/list/cultists = list() - for(var/obj/cult_viewpoint/viewpoint in cult_viewpoints) - cultists[viewpoint.get_display_name()]=viewpoint - var/input = input("Please, select a cultist!", "Cult", null, null) as null|anything in cultists - var/obj/cult_viewpoint/result = cultists[input] - return result - - -// this proc makes the mask visible very briefly -/mob/spirit/mask/proc/flicker() - spawn(0) - alpha = 127 - invisibility=0 - sleep(5) - invisibility=initial(invisibility) - alpha = 255 - -/proc/flicker_mask(mob/spirit/mask/target) - if(istype(target)) - target.flicker() - -// SPELLS -/obj/effect/proc_holder/spell/aoe_turf/blood_speech - name = "Speak to your Acolytes" - desc = "This spell allows you to speak to your flock." - school = "unknown evil" - charge_type = "recharge" - charge_max = 2000 - clothes_req = 0 - invocation = "none" - invocation_type = "none" - range = 0 - -/obj/effect/proc_holder/spell/aoe_turf/blood_speech/cast(list/targets) - var/input = stripped_input(usr, "Please choose a message to tell your acolytes.", "Voice of Blood", "") - if(!input) - revert_cast(usr) - cult_log("[key_name_admin(usr)]says : [input]") - flicker_mask(usr) - for(var/datum/mind/H in ticker.mode.cult) - if (H.current) - H.current << "[usr.name]: [input]" - for(var/mob/spirit/spirit in spirits) - spirit << "[usr.name]: [input]" - - -/obj/effect/proc_holder/spell/aoe_turf/shatter_lights - name = "Spread Shadows" - desc = "This spell breaks lights near the mask." - school = "unknown evil" - charge_type = "recharge" - charge_max = 1000 - clothes_req = 0 - invocation = "none" - invocation_type = "none" - range = 0 - -/obj/effect/proc_holder/spell/aoe_turf/shatter_lights/cast(list/targets) - cult_log("[key_name_admin(usr)] used Spread Shadows.") - flicker_mask(usr) - spawn(0) - for(var/area/A in range(3,get_turf(usr))) - for(var/obj/machinery/light/L in A) - L.on = 1 - L.broken() - sleep(1) - for(var/obj/item/device/flashlight/F in A) - F.on = 0 - - -/obj/effect/proc_holder/spell/aoe_turf/conjure/create_talisman - name = "Create Talisman" - desc = "This spell conjures a talisman" - - school = "conjuration" - charge_type = "recharge" - charge_max = 3000 - clothes_req = 0 - invocation = "none" - invocation_type = "none" - range = 0 - summon_type = list(/obj/item/weapon/paper/talisman) - - var/list/talismans = list( "Armor"="armor", - "Blind"="blind", - "Conceal"="conceal", - "Communicate"="communicate", - "Deafen"="deafen", - "EMP"="emp", - "Teleport"="teleport", - "Tome"="newtome", - "Reveal Runes", - "Stun"="runestun", - "Soul Stone"="soulstone", - "Construct"="construct") - - -/obj/effect/proc_holder/spell/aoe_turf/conjure/create_talisman/cast(list/targets) - - var/talisman = input("Pick a talisman type", "Talisman", null, null) as null|anything in talismans - var/imbue_value = talismans[talisman] - if (!talisman) - usr << "You choose not to create a talisman." - revert_cast(usr) - return - - cult_log("[key_name_admin(usr,0)] created a talisman of type [talisman].") - flicker_mask(usr) - - switch(talisman) - - if ("Teleport") - var/target_rune = input("Pick a teleport target", "Teleport Rune", null, null) as null|anything in engwords - if (!target_rune) - usr << "You choose not to create a talisman." - revert_cast(usr) - return - summon_type = list(/obj/item/weapon/paper/talisman) - newVars = list("imbue" = "[target_rune]", "info" = "[target_rune]") - - if ("Soul Stone") - summon_type = list(/obj/item/device/soulstone) - newVars = list() - - if ("Construct") - summon_type = list(/obj/structure/constructshell) - newVars = list() - - else - summon_type = list(/obj/item/weapon/paper/talisman) - newVars = list("imbue" = "[imbue_value]") - - ..() \ No newline at end of file diff --git a/code/modules/mob/spirit/mask/respawn.dm b/code/modules/mob/spirit/mask/respawn.dm deleted file mode 100644 index acfb69073c..0000000000 --- a/code/modules/mob/spirit/mask/respawn.dm +++ /dev/null @@ -1,20 +0,0 @@ -/proc/there_can_be_only_one_mask(var/mob/spirit/mask/target) - if(!istype(target)) - return - for(var/mob/spirit/mask/currentSpirit in spirits) - if(currentSpirit) - if(currentSpirit!=target) - // create the ghost - var/mob/dead/observer/ghost = currentSpirit.ghostize(TRUE) - // let the deposed mask respawn immediately, the poor dear - ghost.timeofdeath = world.time - 20000 - ghost.newPlayerType = /mob/new_player/cultist - // remove old mask body - del(currentSpirit) - - -/mob/new_player/cultist/AttemptLateSpawn(rank) - var/mob/newCharacter = ..(rank) - if(ticker.mode) - if(is_convertable_to_cult(newCharacter.mind)) - ticker.mode.add_cultist(newCharacter.mind) \ No newline at end of file diff --git a/code/modules/mob/spirit/movement.dm b/code/modules/mob/spirit/movement.dm deleted file mode 100644 index d8847cb480..0000000000 --- a/code/modules/mob/spirit/movement.dm +++ /dev/null @@ -1,62 +0,0 @@ -// spirits are not moved by airflow -mob/spirit/Move() - return 0 - -// this is the main move proc for spirits, it uses their 'setLoc' function to handle all the visibility shenanigans -// this, like most movement code for these guys, is cribbed from the AIEye movement code -mob/spirit/proc/Spirit_Move(direct) - - var/initial = initial(sprint) - var/max_sprint = 50 - - // if we haven't moved in a while, we stop sprinting - if(cooldown && cooldown < world.timeofday) // 3 seconds - sprint = initial - - for(var/i = 0; i < max(sprint, initial); i += 20) - var/turf/step = get_turf(get_step(src, direct)) - if(step) - setLoc(step) - - dir = direct // update our sprite - - cooldown = world.timeofday + 5 - if(acceleration) - sprint = min(sprint + 0.5, max_sprint) - else - sprint = initial - - // if we're trying to move, we want to stop following our target - follow_target = null - - -/mob/spirit/proc/follow_cultist(mob/living/target as mob) - if(!istype(target)) return - var/obj/cult_viewpoint/currentView = getCultViewpoint(target) - var/mob/spirit/U = usr - - if (!currentView) - U << "As a spirit, you may only track cultists." - - U.follow_target = target - U << "Now following [currentView.get_cult_name()]." - - spawn (0) - while (U.follow_target == target) - if (U.follow_target == null) - return - U.setLoc(get_turf(target)) - sleep(10) - - -mob/spirit/proc/setLoc(var/T) - T = get_turf(T) - loc = T - cultNetwork.visibility(src) - -mob/spirit/verb/toggle_acceleration() - set category = "Spirit" - set name = "Toggle Acceleration" - - acceleration = !acceleration - usr << "Acceleration has been toggled [acceleration ? "on" : "off"]." \ No newline at end of file diff --git a/code/modules/mob/spirit/spirit.dm b/code/modules/mob/spirit/spirit.dm deleted file mode 100644 index ce7080b744..0000000000 --- a/code/modules/mob/spirit/spirit.dm +++ /dev/null @@ -1,73 +0,0 @@ -/* -This mob type is used for entities that exist within the Cult's spirit world. They share the same visibility network and are intangible. -*/ - -mob/spirit - name = "spirit" - desc = "A spirit" - icon = 'icons/mob/mob.dmi' - icon_state = "ghost" - layer = 4 - stat = CONSCIOUS - status_flags = GODMODE // spirits cannot be killed - density = 0 - canmove = 0 - blinded = 0 - anchored = 1 - mouse_opacity = 0 - invisibility = INVISIBILITY_SPIRIT - universal_speak = 1 - - // pseudo-movement values - var/sprint = 10 - var/cooldown = 0 - var/acceleration = 1 - var/follow_target = null - - -mob/spirit/is_active() - if (client && client.inactivity <= 10 * 60 * 10) - return TRUE - return FALSE - - -mob/spirit/New() - sight |= SEE_TURFS | SEE_MOBS | SEE_OBJS | SEE_SELF - see_invisible = SEE_SPIRITS - see_in_dark = 100 - - loc = pick(latejoin) - - // hook them to the cult visibility network - visibility_interface = new /datum/visibility_interface/cult(src) - - // no nameless spirits - if (!name) - name = "Boogyman" - - spirits+=src - - ..() - -mob/spirit/Del() - spirits-=src - ..() - - -mob/spirit/Topic(href, href_list) - - if(usr != src) - return - ..() - - usr << "Spirit Href = [href]" - for (var/tempref in href_list) - usr << "Spirit href list [tempref] = [href_list[tempref]]" - - if (href_list["track"]) - usr << "Got to tracking." - var/mob/target = locate(href_list["track"]) in mob_list - var/mob/spirit/A = locate(href_list["track2"]) in spirits - if(A && target) - A.follow_cultist(target) - return \ No newline at end of file diff --git a/code/modules/mob/spirit/viewpoint.dm b/code/modules/mob/spirit/viewpoint.dm deleted file mode 100644 index 5e06356129..0000000000 --- a/code/modules/mob/spirit/viewpoint.dm +++ /dev/null @@ -1,202 +0,0 @@ -#define FAVOR_PLEASED 1 -#define FAVOR_INDIFFERENT 0 -#define FAVOR_DISPLEASED -1 - - -var/obj/cult_viewpoint/list/cult_viewpoints = list() - - -/obj/cult_viewpoint - var/view_range = 7 - var/updating = 0 - var/mob/owner = null - var/urge = "" - var/favor = FAVOR_INDIFFERENT - var/cult_name = null - - -/obj/cult_viewpoint/New(var/mob/target) - owner = target - //src.loc = owner - owner.addToVisibilityNetwork(cultNetwork) - cultNetwork.viewpoints+=src - cultNetwork.addViewpoint(src) - cult_viewpoints+=src - //handle_missing_mask() - ..() - - -/obj/cult_viewpoint/Del() - processing_objects.Remove(src) - cultNetwork.viewpoints-=src - cultNetwork.removeViewpoint(src) - cult_viewpoints-=src - owner.removeFromVisibilityNetwork(cultNetwork) - ..() - return - - -// VERBS -/obj/cult_viewpoint/verb/check_urge() - set category = "Cult" - set desc = "Discover what your god commands of you." - set name = "Check Urge" - set src in usr - if (src.urge) - owner << "\red \b You feel the urge to [src.urge]" - else - owner << "\b You feel no supernatural compulsions." - - -/obj/cult_viewpoint/verb/reach_out() - set category = "Cult" - set desc = "Reach out for your gods presence." - set name = "Reach Out" - set src in usr - - for(var/mob/spirit/mask/currentMask in spirits) - if (currentMask.is_active()) - owner << "\red \b You feel the reassuring presence of your god." - currentMask << "[get_display_name()] has reached out to you." - return - owner << "\b You feel a chilling absence." - handle_missing_mask() - - -/obj/cult_viewpoint/verb/check_favor() - set category = "Cult" - set desc = "Check your favor with your god." - set name = "Check Favor" - set src in usr - switch(favor) - if(FAVOR_PLEASED) - owner << "\red \b You bask in your gods favor." - if(FAVOR_INDIFFERENT) - owner << "\red \b You feel nothing." - if(FAVOR_DISPLEASED) - owner << "\red \b You cringe at your gods displeasure." - - -/obj/cult_viewpoint/verb/pray_to_mask() - set category = "Cult" - set desc = "Pray to your god" - set name = "Pray to Nar'Sie" - set src in usr - - var/input = stripped_input(usr, "Please choose a message to say to your god.", "Pray to Nar'Sie", "") - if(!input) - return - - cult_log("[key_name(usr,0)](Pray):[input]") - owner << "You pray to Nar'Sie: [input]" - - for(var/mob/spirit/spirit in spirits) - spirit << "[get_display_name()] prays : [input]" - -// PROCS -/obj/cult_viewpoint/proc/set_favor(var/newFavor) - favor = newFavor - check_favor() - - -/obj/cult_viewpoint/proc/set_urge(var/newUrge) - if (!newUrge) - src.urge = null - src.urge = copytext(newUrge, 1, MAX_MESSAGE_LEN) - check_urge() - - -/obj/cult_viewpoint/proc/can_use() - if (owner.stat != DEAD) - return TRUE - return FALSE - - -/obj/cult_viewpoint/proc/can_see() - return hear(view_range, get_turf(owner)) - - -/obj/cult_viewpoint/proc/get_cult_name() - if (cult_name) - return cult_name - return "An Unknown Servent" - - -/obj/cult_viewpoint/proc/set_cult_name(var/newName) - if (!owner) - return FALSE - if (newName) - cult_name = newName - owner << "\red \b You have been blessed with the secret name of '[newName]'." - else - cult_name = null - owner << "\red \b Your god has taken your secret name." - - -/obj/cult_viewpoint/proc/get_display_name() - if (!owner) - return - if (cult_name) - return cult_name - return owner.name - - -/obj/cult_viewpoint/proc/become_mask() - set category = "Cult" - set name = "Become Mask" - set desc = "Sacrifice your life and become a Mask of Nar'sie." - set src in usr - - cult_log("[key_name(usr,0)] has tried to become a Mask of Nar'sie.") - - if (!active_mask()) - var/transformation_type = alert(owner.client, "You are about to become a Mask. Do you want it to be subtle or violent?", "Mask", "Subtle", "Violent") - if(!active_mask()) - cult_log("[key_name(usr,0)] has become a Mask of Nar'sie.") - if (transformation_type=="Subtle") - log_admin("[key_name_admin(owner)] has subtly become a Mask of Nar'sie") - owner.make_into_mask(0,0) - else - log_admin("[key_name_admin(owner)] has violently become a Mask of Nar'sie") - owner.make_into_mask(1,1) - else - owner << "\b You cannot become a mask of Nar'Sie because a Mask already exists." - mask_has_been_found() - return - - -/obj/cult_viewpoint/proc/active_mask() - for(var/mob/spirit/mask/currentMask in spirits) - if (currentMask.is_active()) - return TRUE - return FALSE - - -/obj/cult_viewpoint/proc/handle_missing_mask() - if (active_mask()) - mask_has_been_found() - else - mask_is_missing() - - -/obj/cult_viewpoint/proc/mask_has_been_found() - for(var/obj/cult_viewpoint/viewpoint in cult_viewpoints) - if (viewpoint.verbs.Find(/obj/cult_viewpoint/proc/become_mask)) - viewpoint.verbs-=/obj/cult_viewpoint/proc/become_mask - - -/obj/cult_viewpoint/proc/mask_is_missing() - for(var/obj/cult_viewpoint/viewpoint in cult_viewpoints) - if (!viewpoint.verbs.Find(/obj/cult_viewpoint/proc/become_mask)) - viewpoint.verbs+=/obj/cult_viewpoint/proc/become_mask - - -/proc/getCultViewpoint(var/mob/currentMob) - for(var/obj/cult_viewpoint/currentView in currentMob) - return currentView - return FALSE - - -#undef FAVOR_PLEASED -#undef FAVOR_INDIFFERENT -#undef FAVOR_DISPLEASED \ No newline at end of file diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index 6c5e1749cc..9a2493f23a 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -134,59 +134,7 @@ . = O del(src) - -/mob/living/carbon/human/make_into_mask(var/should_gib = 0) - for(var/t in organs) - del(t) - return ..(should_gib) - -/mob/proc/make_into_mask(var/should_gib = 0, var/should_remove_items = 0) - - if(!should_gib) - icon = null - invisibility = 101 - - if(!should_remove_items) - for(var/obj/item/W in src) - drop_from_inventory(W) - - var/mob/spirit/mask/new_spirit = new() - - if(mind) - new_spirit.mind = mind - new_spirit.mind.assigned_role = "Mask" - new_spirit.mind.original = new_spirit - - new_spirit.key = key - new_spirit.loc=loc - - if (should_gib) - spawn(0) - src.gib() // gib the body - else - spawn(0)//To prevent the proc from returning null. - src.visible_message( \ - "[src] disappears into the shadows, never to be seen again.", \ - "You disappear into the shadows, never to be seen again.", \ - "You hear strange noise, you can't quite place it.") - del(src) - - new_spirit << "You are a Mask of Nar'sie now. You are a tiny fragment of the unknowable entity that is the god." - new_spirit << "Your job is to help your acolytes complete their goals. Be spooky. Do evil." - - new_spirit.set_name() - - // let spirits identify cultists - if(ticker.mode) - ticker.mode.reset_cult_icons_for_spirit(new_spirit) - - // highlander test - there_can_be_only_one_mask(new_spirit) - - return new_spirit - - //human -> robot /mob/living/carbon/human/proc/Robotize() if (monkeyizing) diff --git a/code/setup.dm b/code/setup.dm index b31ed19205..aeca6c5826 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -533,9 +533,6 @@ var/list/liftable_structures = list(\ #define SEE_INVISIBLE_LEVEL_TWO 45 //Used by some other stuff in code. It's really poorly organized. #define INVISIBILITY_LEVEL_TWO 45 //Used by some other stuff in code. It's really poorly organized. -#define INVISIBILITY_SPIRIT 50 -#define SEE_SPIRITS 50 - #define INVISIBILITY_OBSERVER 60 #define SEE_INVISIBLE_OBSERVER 60 diff --git a/icons/mob/spirits/mask.dmi b/icons/mob/spirits/mask.dmi deleted file mode 100644 index 20fe26c4bced41886718c66c2569db7bd9b7fbd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 972 zcmV;-12g=IP){f|1VR6J#Mc^K`AXmVMIPFJvJXTFe5%V zBsVf292pHHAs8-Ws%~RG_TXpZ00001bW%=J06^y0W&i*Ha(Yx)bVOxyV{&P5bZKvH z004NLQ&wT#GdI(F^OKlJp@5n z3+G-O)8xJHrvs6nx=Jo`A42HJ5lVMOTR3O5vEub0sZCjjSC?tfNQ;& zK6vu6ItKLD>y-nO$OcF?z(PxiVV|95=x+*0iLqo6UOE8LE>r;TS@i(;Ad*O!m#Pir z2=ZM4`!;4D*!0L{JfY_fApF3h`WmvPI3ky^yAdh?ive_(N)G~b5^;o#+Y+Ls0l*3r ziavGTw1mni7{Ijv=r48&goSN_0ulh}Cjg-V2#Glb?|5y#XYT;vyCZ$n0DbfUs87%7 zlAwartl$8!05iVJ%<490{9$YgLDCW3NTEc0DL<2AMkPjjQ|G(DltqR z7xDE_cduOM@4PNZsrJqHG*O`Th;e1lmco(_K`aU1nK3Kum%us!Fue{St#864FeEs$ zpD&LG?`D+Cm49sj=tb%;rrM1VoC|=*uIy zkP((@e#pAJ&L21{Sovcz>+MAEvlXEFs)QWi%{rZAi(NKG6p%bXv=vZ!gU%I{b$~I0 z+($$JkbKfz7Ut?A^mqe+#s+YhrQp&Pz>_2exFY~XFRlSVcQL0dBS2OFjJFNIY-XK+ zwKhNM3Wx^aZ4TH0vi?j9plK^MKnyByq5vKO)-fQT0hAM9L}<*BEAa;C^gw5zRLqfE z28TDP0PgoTplE2dA);Y^yl#M@c`^WibOGzp7t{7`TRe8R|8bBWq;2s Date: Sat, 31 May 2014 01:34:55 +0200 Subject: [PATCH 48/64] airalarm exploit fixes airalarm had various checks missing, e.g. making sure the AA was unlocked before triggering panicsyphon and the like. added proper rangecheck, added var checks for the different types of calls. also replaced usr.machine = src with usr.set_machine(src) so the window updates properly for silicon mobs using the machine from afar. i had no time to look for functionality exploits, this commit merely makes sure the commands can only be called in proper circumstances. --- code/game/machinery/alarm.dm | 267 ++++++++++++++++++----------------- 1 file changed, 141 insertions(+), 126 deletions(-) diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index 04da621a45..c8b138aa5f 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -956,109 +956,29 @@ table tr:first-child th:first-child { border: none;} return output /obj/machinery/alarm/Topic(href, href_list) - - if(href_list["rcon"]) - rcon_setting = text2num(href_list["rcon"]) - - if ( (get_dist(src, usr) > 1 )) - if (!istype(usr, /mob/living/silicon)) - usr.machine = null - usr << browse(null, "window=air_alarm") - usr << browse(null, "window=AAlarmwires") - return + if(..() || !( Adjacent(usr) || istype(usr, /mob/living/silicon)) ) // dont forget calling super in machine Topics -walter0o + usr.machine = null + usr << browse(null, "window=air_alarm") + usr << browse(null, "window=AAlarmwires") + return add_fingerprint(usr) - usr.machine = src - - if(href_list["command"]) - var/device_id = href_list["id_tag"] - switch(href_list["command"]) - if( "power", - "adjust_external_pressure", - "set_external_pressure", - "checks", - "co2_scrub", - "tox_scrub", - "n2o_scrub", - "panic_siphon", - "scrubbing") - - send_signal(device_id, list(href_list["command"] = text2num(href_list["val"]) ) ) - - if("set_threshold") - var/env = href_list["env"] - var/threshold = text2num(href_list["var"]) - var/list/selected = TLV[env] - var/list/thresholds = list("lower bound", "low warning", "high warning", "upper bound") - var/newval = input("Enter [thresholds[threshold]] for [env]", "Alarm triggers", selected[threshold]) as null|num - if (isnull(newval) || ..() || (locked && issilicon(usr))) - return - if (newval<0) - selected[threshold] = -1.0 - else if (env=="temperature" && newval>5000) - selected[threshold] = 5000 - else if (env=="pressure" && newval>50*ONE_ATMOSPHERE) - selected[threshold] = 50*ONE_ATMOSPHERE - else if (env!="temperature" && env!="pressure" && newval>200) - selected[threshold] = 200 - else - newval = round(newval,0.01) - selected[threshold] = newval - if(threshold == 1) - if(selected[1] > selected[2]) - selected[2] = selected[1] - if(selected[1] > selected[3]) - selected[3] = selected[1] - if(selected[1] > selected[4]) - selected[4] = selected[1] - if(threshold == 2) - if(selected[1] > selected[2]) - selected[1] = selected[2] - if(selected[2] > selected[3]) - selected[3] = selected[2] - if(selected[2] > selected[4]) - selected[4] = selected[2] - if(threshold == 3) - if(selected[1] > selected[3]) - selected[1] = selected[3] - if(selected[2] > selected[3]) - selected[2] = selected[3] - if(selected[3] > selected[4]) - selected[4] = selected[3] - if(threshold == 4) - if(selected[1] > selected[4]) - selected[1] = selected[4] - if(selected[2] > selected[4]) - selected[2] = selected[4] - if(selected[3] > selected[4]) - selected[3] = selected[4] - - apply_mode() - - if(href_list["screen"]) - screen = text2num(href_list["screen"]) - - if(href_list["atmos_unlock"]) - switch(href_list["atmos_unlock"]) - if("0") - air_doors_close(1) - if("1") - air_doors_open(1) - - if(href_list["atmos_alarm"]) - if (alarm_area.atmosalert(2)) - apply_danger_level(2) - update_icon() - - if(href_list["atmos_reset"]) - if (alarm_area.atmosalert(0)) - apply_danger_level(0) - update_icon() - - if(href_list["mode"]) - mode = text2num(href_list["mode"]) - apply_mode() - + usr.set_machine(src) + + // hrefs that can always be called -walter0o + if(href_list["rcon"]) + var/attempted_rcon_setting = text2num(href_list["rcon"]) + + switch(attempted_rcon_setting) + if(RCON_NO) + rcon_setting = RCON_NO + if(RCON_AUTO) + rcon_setting = RCON_AUTO + if(RCON_YES) + rcon_setting = RCON_YES + else + return + if(href_list["temperature"]) var/list/selected = TLV["temperature"] var/max_temperature = min(selected[3] - T0C, MAX_TEMPERATURE) @@ -1069,31 +989,126 @@ table tr:first-child th:first-child { border: none;} else target_temperature = input_temperature + T0C - if (href_list["AAlarmwires"]) - var/t1 = text2num(href_list["AAlarmwires"]) - if (!( istype(usr.equipped(), /obj/item/weapon/wirecutters) )) - usr << "You need wirecutters!" - return - if (isWireColorCut(t1)) - mend(t1) - else - cut(t1) - if (AAlarmwires == 0) - usr << "You cut last of wires inside [src]" - update_icon() - buildstage = 1 - return - - else if (href_list["pulse"]) - var/t1 = text2num(href_list["pulse"]) - if (!istype(usr.equipped(), /obj/item/device/multitool)) - usr << "You need a multitool!" - return - if (isWireColorCut(t1)) - usr << "You can't pulse a cut wire." - return - else - pulse(t1) + // hrefs that need the AA unlocked -walter0o + if(!locked || istype(usr, /mob/living/silicon)) + + if(href_list["command"]) + var/device_id = href_list["id_tag"] + switch(href_list["command"]) + if( "power", + "adjust_external_pressure", + "set_external_pressure", + "checks", + "co2_scrub", + "tox_scrub", + "n2o_scrub", + "panic_siphon", + "scrubbing") + + send_signal(device_id, list(href_list["command"] = text2num(href_list["val"]) ) ) + + if("set_threshold") + var/env = href_list["env"] + var/threshold = text2num(href_list["var"]) + var/list/selected = TLV[env] + var/list/thresholds = list("lower bound", "low warning", "high warning", "upper bound") + var/newval = input("Enter [thresholds[threshold]] for [env]", "Alarm triggers", selected[threshold]) as null|num + if (isnull(newval) || ..() || (locked && issilicon(usr))) + return + if (newval<0) + selected[threshold] = -1.0 + else if (env=="temperature" && newval>5000) + selected[threshold] = 5000 + else if (env=="pressure" && newval>50*ONE_ATMOSPHERE) + selected[threshold] = 50*ONE_ATMOSPHERE + else if (env!="temperature" && env!="pressure" && newval>200) + selected[threshold] = 200 + else + newval = round(newval,0.01) + selected[threshold] = newval + if(threshold == 1) + if(selected[1] > selected[2]) + selected[2] = selected[1] + if(selected[1] > selected[3]) + selected[3] = selected[1] + if(selected[1] > selected[4]) + selected[4] = selected[1] + if(threshold == 2) + if(selected[1] > selected[2]) + selected[1] = selected[2] + if(selected[2] > selected[3]) + selected[3] = selected[2] + if(selected[2] > selected[4]) + selected[4] = selected[2] + if(threshold == 3) + if(selected[1] > selected[3]) + selected[1] = selected[3] + if(selected[2] > selected[3]) + selected[2] = selected[3] + if(selected[3] > selected[4]) + selected[4] = selected[3] + if(threshold == 4) + if(selected[1] > selected[4]) + selected[1] = selected[4] + if(selected[2] > selected[4]) + selected[2] = selected[4] + if(selected[3] > selected[4]) + selected[3] = selected[4] + + apply_mode() + + if(href_list["screen"]) + screen = text2num(href_list["screen"]) + + if(href_list["atmos_unlock"]) + switch(href_list["atmos_unlock"]) + if("0") + air_doors_close(1) + if("1") + air_doors_open(1) + + if(href_list["atmos_alarm"]) + if (alarm_area.atmosalert(2)) + apply_danger_level(2) + update_icon() + + if(href_list["atmos_reset"]) + if (alarm_area.atmosalert(0)) + apply_danger_level(0) + update_icon() + + if(href_list["mode"]) + mode = text2num(href_list["mode"]) + apply_mode() + + // hrefs that need the AA wires exposed, note that borgs should be in range here too -walter0o + if(wiresexposed && Adjacent(usr)) + + if (href_list["AAlarmwires"]) + var/t1 = text2num(href_list["AAlarmwires"]) + if (!( istype(usr.equipped(), /obj/item/weapon/wirecutters) )) + usr << "You need wirecutters!" + return + if (isWireColorCut(t1)) + mend(t1) + else + cut(t1) + if (AAlarmwires == 0) + usr << "You cut last of wires inside [src]" + update_icon() + buildstage = 1 + return + + else if (href_list["pulse"]) + var/t1 = text2num(href_list["pulse"]) + if (!istype(usr.equipped(), /obj/item/device/multitool)) + usr << "You need a multitool!" + return + if (isWireColorCut(t1)) + usr << "You can't pulse a cut wire." + return + else + pulse(t1) updateUsrDialog() From ed3a8ac44bc2a8a3787594e4b5e24992def7bcc9 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sat, 31 May 2014 15:11:08 +0930 Subject: [PATCH 49/64] Fixes #5100 --- code/WorkInProgress/Cael_Aislinn/ShieldGen/shield_gen.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/WorkInProgress/Cael_Aislinn/ShieldGen/shield_gen.dm b/code/WorkInProgress/Cael_Aislinn/ShieldGen/shield_gen.dm index 2cdccda1b7..cae2f1bdf0 100644 --- a/code/WorkInProgress/Cael_Aislinn/ShieldGen/shield_gen.dm +++ b/code/WorkInProgress/Cael_Aislinn/ShieldGen/shield_gen.dm @@ -281,7 +281,6 @@ /obj/machinery/shield_gen/proc/get_shielded_turfs() var/list/out = list() for(var/turf/T in range(field_radius, src)) - world << "turf dist:[get_dist(src,T)]" if(get_dist(src,T) == field_radius) out.Add(T) world << " added" From 42ed91feda9e2d741fa83079702a98497dd27990 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sat, 31 May 2014 15:13:50 +0930 Subject: [PATCH 50/64] Actually fixes #5100 --- code/WorkInProgress/Cael_Aislinn/ShieldGen/shield_gen.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/WorkInProgress/Cael_Aislinn/ShieldGen/shield_gen.dm b/code/WorkInProgress/Cael_Aislinn/ShieldGen/shield_gen.dm index cae2f1bdf0..e6f206a21e 100644 --- a/code/WorkInProgress/Cael_Aislinn/ShieldGen/shield_gen.dm +++ b/code/WorkInProgress/Cael_Aislinn/ShieldGen/shield_gen.dm @@ -283,5 +283,4 @@ for(var/turf/T in range(field_radius, src)) if(get_dist(src,T) == field_radius) out.Add(T) - world << " added" return out From 825a77b7029cee07ebc392a7bb6813f378257d51 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sat, 31 May 2014 15:38:10 +0930 Subject: [PATCH 51/64] Fixes end of round drone spam. --- code/game/gamemodes/gameticker.dm | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm index d42f88e891..da9ce972ce 100644 --- a/code/game/gamemodes/gameticker.dm +++ b/code/game/gamemodes/gameticker.dm @@ -364,7 +364,14 @@ var/global/datum/controller/gameticker/ticker robolist += "[robo.name][robo.stat?" (Deactivated) (Played by: [robo.key]), ":" (Played by: [robo.key]), "]" world << "[robolist]" + var/dronecount = 0 + for (var/mob/living/silicon/robot/robo in mob_list) + + if(istype(robo,/mob/living/silicon/robot/drone)) + dronecount++ + continue + if (!robo.connected_ai) if (robo.stat != 2) world << "[robo.name] (Played by: [robo.key]) survived as an AI-less borg! Its laws were:" @@ -374,6 +381,9 @@ var/global/datum/controller/gameticker/ticker if(robo) //How the hell do we lose robo between here and the world messages directly above this? robo.laws.show_laws(world) + if(dronecount) + world << "There [dronecount>1 ? "were" : "was"] [dronecount] industrious maintenance [dronecount>1 ? "drones" : "drone"] this round." + mode.declare_completion()//To declare normal completion. //calls auto_declare_completion_* for all modes From b6b4d0826f8671af09ff675b2a8597656d197f93 Mon Sep 17 00:00:00 2001 From: Ccomp5950 Date: Sat, 31 May 2014 02:33:51 -0500 Subject: [PATCH 52/64] Ghost dsay verbs. Now a bit more accurate. --- code/modules/mob/say.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index 6371108c27..b08279354b 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -53,8 +53,7 @@ if(name != real_name) alt_name = " (died as [real_name])" - message = src.say_quote(message) - var/rendered = "DEAD: [name][alt_name] [message]" + var/rendered = "DEAD: [name][alt_name] [pick("complains","moans","whines","laments","blubbers")], \"[message]\"" for(var/mob/M in player_list) if(istype(M, /mob/new_player)) From 5f98ccaaf8938b5bc15004b3b96a4cfb2f2eec1d Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sat, 31 May 2014 22:15:28 +0930 Subject: [PATCH 53/64] Added smaller spraybottle for drones. --- code/modules/reagents/reagent_containers/spray.dm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 47e2ca5a7b..741a5493d9 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -118,11 +118,14 @@ name = "space cleaner" desc = "BLAM!-brand non-foaming space cleaner!" +/obj/item/weapon/reagent_containers/spray/cleaner/drone + name = "space cleaner" + desc = "BLAM!-brand non-foaming space cleaner!" + volume = 50 /obj/item/weapon/reagent_containers/spray/cleaner/New() ..() - reagents.add_reagent("cleaner", 250) - + reagents.add_reagent("cleaner", src.volume) //pepperspray /obj/item/weapon/reagent_containers/spray/pepper name = "pepperspray" From 46df8d4cef48cf4c285eb6e52efd7ccd27ad77ab Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sat, 31 May 2014 22:15:47 +0930 Subject: [PATCH 54/64] Allowed drones to login to airlock electronics. --- code/game/machinery/doors/airlock_electronics.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/machinery/doors/airlock_electronics.dm b/code/game/machinery/doors/airlock_electronics.dm index f56ff86384..33621a301f 100644 --- a/code/game/machinery/doors/airlock_electronics.dm +++ b/code/game/machinery/doors/airlock_electronics.dm @@ -59,7 +59,7 @@ Topic(href, href_list) ..() - if (usr.stat || usr.restrained() || !ishuman(usr)) + if (usr.stat || usr.restrained() || (!ishuman(usr) && !istype(usr,/mob/living/silicon))) return if (href_list["close"]) usr << browse(null, "window=airlock") From 273f729eee822fa656ebec8f15ee1fbb26395d4e Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sat, 31 May 2014 22:28:05 +0930 Subject: [PATCH 55/64] Several drone fixes (walking over, pushing, pulling, AI sync) --- code/modules/mob/living/carbon/human/human.dm | 5 +++ .../mob/living/silicon/robot/drone/drone.dm | 14 +++++++ .../living/silicon/robot/drone/drone_items.dm | 2 +- .../modules/mob/living/silicon/robot/robot.dm | 11 ++---- .../mob/living/silicon/robot/robot_modules.dm | 4 +- .../mob/living/simple_animal/simple_animal.dm | 38 +++++++++---------- 6 files changed, 45 insertions(+), 29 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index f17bb061d9..7b254cf890 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -106,6 +106,11 @@ now_pushing = 0 return + if(istype(tmob,/mob/living/silicon/robot/drone)) //I have no idea why the hell this isn't already happening. How do mice do it? + loc = tmob.loc + now_pushing = 0 + return + //BubbleWrap: people in handcuffs are always switched around as if they were on 'help' intent to prevent a person being pulled from being seperated from their puller if((tmob.a_intent == "help" || tmob.restrained()) && (a_intent == "help" || src.restrained()) && tmob.canmove && canmove) // mutual brohugs all around! var/turf/oldloc = loc diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm index 4e9c806850..30ffc9b280 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone.dm @@ -12,6 +12,7 @@ braintype = "Robot" lawupdate = 0 density = 0 + small = 1 // We need to keep track of a few module items so we don't need to do list operations // every time we need them. These get set in New() after the module is chosen. @@ -303,3 +304,16 @@ src << "Systems rebooted. Loading base pattern maintenance protocol... loaded." full_law_reset() +/mob/living/silicon/robot/drone/Bump(atom/movable/AM as mob|obj, yes) + if (!yes) return + if (istype(AM, /obj/machinery/recharge_station)) + var/obj/machinery/recharge_station/F = AM + F.move_inside() + return + +/mob/living/silicon/robot/drone/Bumped(AM as mob|obj) + return + +/mob/living/silicon/robot/drone/start_pulling(var/atom/movable/AM) + src << "You are too small to pull anything." + return \ No newline at end of file diff --git a/code/modules/mob/living/silicon/robot/drone/drone_items.dm b/code/modules/mob/living/silicon/robot/drone/drone_items.dm index a121991977..454aff850c 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_items.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_items.dm @@ -160,7 +160,7 @@ stored_comms["plastic"]++ return - else if(istype(M,/mob/living/silicon/robot/drone) && M.stat == 2 && !M.client) + else if(istype(M,/mob/living/silicon/robot/drone) && !M.client) var/mob/living/silicon/robot/drone/D = src.loc diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 484fd521c6..0a98997647 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -91,10 +91,7 @@ modtype = "Security" else if(istype(src,/mob/living/silicon/robot/drone)) laws = new /datum/ai_laws/drone() - connected_ai = select_active_ai_with_fewest_borgs() - if(connected_ai) - connected_ai.connected_robots += src - lawsync() + connected_ai = null else laws = new /datum/ai_laws/nanotrasen() connected_ai = select_active_ai_with_fewest_borgs() @@ -529,15 +526,15 @@ /mob/living/silicon/robot/triggerAlarm(var/class, area/A, list/cameralist, var/source) if (stat == 2) return 1 - + ..() - + queueAlarm(text("--- [class] alarm detected in [A.name]!"), class) /mob/living/silicon/robot/cancelAlarm(var/class, area/A as area, obj/origin) var/has_alarm = ..() - + if (!has_alarm) queueAlarm(text("--- [class] alarm in [A.name] has been cleared."), class, 0) // if (viewalerts) robot_alerts() diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 1aad22242f..c3448aada4 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -292,9 +292,9 @@ src.modules += new /obj/item/weapon/wirecutters(src) src.modules += new /obj/item/device/multitool(src) src.modules += new /obj/item/device/lightreplacer(src) - src.modules += new /obj/item/weapon/reagent_containers/spray/cleaner(src) src.modules += new /obj/item/weapon/gripper(src) src.modules += new /obj/item/weapon/matter_decompiler(src) + src.modules += new /obj/item/weapon/reagent_containers/spray/cleaner/drone(src) src.emag = new /obj/item/weapon/card/emag(src) src.emag.name = "Cryptographic Sequencer" @@ -308,7 +308,7 @@ /obj/item/weapon/robot_module/drone/respawn_consumable(var/mob/living/silicon/robot/R) var/obj/item/weapon/reagent_containers/spray/cleaner/C = locate() in src.modules - C.reagents.add_reagent("cleaner", 10) + C.reagents.add_reagent("cleaner", 3) for(var/T in stacktypes) var/O = locate(T) in src.modules diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 69eaa58b77..30ba30f6ad 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -454,22 +454,22 @@ overlays = null if (targeted_by && target_locked) overlays += target_locked - -/mob/living/simple_animal/say(var/message) - if(stat) - return - - if(copytext(message,1,2) == "*") - return emote(copytext(message,2)) - - if(stat) - return - - var/verb = "says" - - if(speak_emote.len) - verb = pick(speak_emote) - - message = capitalize(trim_left(message)) - - ..(message, null, verb) + +/mob/living/simple_animal/say(var/message) + if(stat) + return + + if(copytext(message,1,2) == "*") + return emote(copytext(message,2)) + + if(stat) + return + + var/verb = "says" + + if(speak_emote.len) + verb = pick(speak_emote) + + message = capitalize(trim_left(message)) + + ..(message, null, verb) From a3be0051130c9de84f10db88bcb4177751148309 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sun, 1 Jun 2014 02:05:25 +0930 Subject: [PATCH 56/64] Adds a drone spawn blurb. --- code/modules/mob/living/silicon/robot/drone/drone.dm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm index 30ffc9b280..ebf427720d 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone.dm @@ -299,10 +299,15 @@ if(player.mob && player.mob.mind) player.mob.mind.transfer_to(src) - emagged = 0 lawupdate = 0 src << "Systems rebooted. Loading base pattern maintenance protocol... loaded." full_law_reset() + src << "
You are a maintenance drone, a tiny-brained robotic repair machine." + src << "You have no individual will, no personality, and no drives or urges other than your laws." + src << "Use :b to talk to your fellow synthetics, or use say to speak silently to other drones nearby." + src << "Remember, you are lawed against interference with the crew." + src << "Don't invade their worksites, don't steal their resources, don't tell them about the changeling in the toilets." + src << "If a crewmember has noticed you, you are probably breaking your third law." /mob/living/silicon/robot/drone/Bump(atom/movable/AM as mob|obj, yes) if (!yes) return From a8ecbeb518ae4e6ae224f392d8a80e0dccf00885 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sun, 1 Jun 2014 02:38:02 +0930 Subject: [PATCH 57/64] Drone door fix. --- code/modules/mob/living/silicon/robot/drone/drone.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm index ebf427720d..8c07974133 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone.dm @@ -11,8 +11,7 @@ pass_flags = PASSTABLE braintype = "Robot" lawupdate = 0 - density = 0 - small = 1 + density = 1 // We need to keep track of a few module items so we don't need to do list operations // every time we need them. These get set in New() after the module is chosen. @@ -310,7 +309,8 @@ src << "If a crewmember has noticed you, you are probably breaking your third law." /mob/living/silicon/robot/drone/Bump(atom/movable/AM as mob|obj, yes) - if (!yes) return + if (!yes || istype(AM,/mob/living)) return + ..() if (istype(AM, /obj/machinery/recharge_station)) var/obj/machinery/recharge_station/F = AM F.move_inside() From 55d1aa868ddfb849343657a51168852fe1f667db Mon Sep 17 00:00:00 2001 From: Jarcolr Date: Sun, 1 Jun 2014 10:20:43 +0300 Subject: [PATCH 58/64] Readds icon_states removed by RKF in #4775 How was this not seen faster, I don't know. --- icons/obj/contraband.dmi | Bin 83433 -> 92737 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/contraband.dmi b/icons/obj/contraband.dmi index f23f5f9eb563e4e38fdec470d211429780fc8df0..56703f884493db50a4694982f6357cbefec09617 100644 GIT binary patch literal 92737 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

?U9iPJO{YA4tn;@Rt z?5vr6Z~E$A;1K!P8S< z#ls=tHLu6KP^7`uqetUe2JOz*87P=Xa8hdZT^vu<{{W&vUA{Abx~5}jI+~`w;;|5* zYZ|Vmp=!xmC8ajrip=&Dr{R1?49@5kB6`!)>GK5cES35J(Bkp;OJ=IIAr=U9y zVZ*%q#DH|Q9^2PR>UmV*leJTXwF-t}6H+XW4{8i9RM@KOJaOnLe*En7RI>|oIR+!M zlJ2Ih zqEILh3WWezyLK)4d>+s9@H~&2ni{g%EF&W$tLnXGscapgBsSp7w zzQ9!#gep*c2So|UCv+qpK^vM)(2C~46}2ITLn(ae1m|EcBG7pH&@-&>Zlu1xj`O1v zn4vJCaE#`LMz(I~;l#;PoIXEHESliC=bj@LiwBE=ZcwdOsZ=a%%f~PyD9WXyTzB4i zr)Y0)r&ugeD3nRY!)Ut3_dfG3KKVB%*}1KY^8+KGMQ~jg(=gFAjbgD(G#a6yF3$6( z(`0kd+LYqyfhbSk^PAMBJgQYFm8*n8P%4#!vZho7DYcb*c;Wk@AZ4&4P!u2R0_UH9 zoa+2B8e(YEyAOc^cBz$s;Y{j zDD2v`i%O+}=Xon}y>vQFB9UNhY;48z2!%q-&CSu)*2ebj+c|yuG-G39_`bi=7AJ&Q zp~<=uXflZPB_wpHDskVV9ca}Igm9@yNyT+(GQ%jokD;l!o=d^95U7MzjkswtRW4Cn zI`svBYaM56bTbi z6%1Soj?dAjpW;;S8GiR;A45@8lu{nujIh3~i^=gplJPK}Ri#co_8MVLzG&CL0^Ds0W zS9ejWfl8a91v&_ts;>N~j*G5q;QMs$-_3j9yr0eMyNH+uKl$>XP%Py6#7F)l7_eF; zq+hr>`NnOV`C%p^YhrY zeZ>^`LQzmW9|LF-8Vy3FSxD-nq(;|RtX2@NhXNR$3$BCaC>Vwy?*jy!h*3wSGnQby zn5Q6vq=vInOL+0s-;c$~EjT!qMmSWD>XpE+;(8Wk6jY&7E>&=?G!Z?_#B`25*Ih?l za~eGwW_Uc!fnPjLZCw*$|Nee-d|XdnS|rSOK~XsV+zCz|KSsIg5KA`EH;^VufvjGnHWnos*0FpW z)eKSB+C{~8$yO8|{pP*g{N_99>FFU}lLCCyi^wuu)BqaEIMtqYBMFV_h)7AL zm}Piikj2pjrl)3j@E^Xzo@@6JjwZ;&sOlAN2G=l!?eiTmRlxFWaXm!Rt!l~ReB$q5!qMOvC#NKa3L zB4}xEXZYMXse_bMPIl&T76dVATmV+-f{2HCK-ozth!5YiOR&((7ynP1_! zl9q4_x4dpIH($R86v3IZL->zgcolVEsEMl4_p64+)H@76|DORYmE_<$i zVEmeePC~jQ95C^NjIQsa3W2FzEuEK&_;a)*|KnJdsEguVO*9N>_IW?d|P6dH5Nwzx^(z z7r?Cg%w)@0zQWI*IKZ`6UyV>TiscfPWufT`mVJ3aav=os`3i}siIhG^2B+DurW**1 z8o)pN>@3?h_YjY3lu8Rk%@BP9qikBghU`Lyn%X)vP2+4|j>nE2!_?r&z-|2R`wsH& z-n5TYQ;3Z_cc6(t;jvu41WBzbNl#58q{ofd-$1pvo!Rj-R2PRRS{lL=kYK-mrBIv6>pv=`_CYldP-1=uj6mfDJ%P#3V5}Oe7pZuInbDX*`x* zAmpZ5%nTFDo#5ERvpoIy!z62Jn9p0dRvD|j$fJi(v;OY)Q6En+W3N^h?&a8Wdkq^~ zYMCz7GWbF}PkqHi?s$}szVCVt_nu*0V~lvjcGFQX{4GOX=!QUu}6PS zc43~@_I4&F#uytOA{vR|`yR1qjGlGtX=`moRRgX>RZ$QK>N+~eDPT&$$n*V-Pt8&) zS9s*$v)ppyE)G5R3wltIrcR``7FAK<3iR?O%Ppj>2CAM(jgh0`g^6iJ*2jnFpOUzQ z(92oA^wn>2^DVdVlShBSXzwv%A(ew?YIxV)3?x@~J){q=@c8Pz5Awzvuc2>noP4>= z#-`0w<;)7v>Sdt?p5IbG8Nvf;1Rmltwrtr#sZ@Gdp{(b5q*5u;>GVox$8wy|_kE_O zrs(MCSkYR}X0y1ii|e{rmW64WM59-xf~ydajV7hT8ZAt#Do`z#q@v)uE}l>*J1%A< zPN^KQo9n8{Sk)sDQplwLr|=+unKykywJ+bQV`vD9uL5 z&yJyZK8`0TmntNTTDsP5B^(Qr>+R>c=XST0k3|~>{-ms3L{&O5TdX(K)ZNu{{ z3dKci%f-6_LGoxcN<0$c>RsFEZf>BVR;R7CgUP9JZrr1l z<7&*!%@Iu`FPe3}r~&NBWf1MHtbghksC%!$jD?8cGr9MAHkGPuY`vQ7;;lq$>-prT z|B}9=BQ$p3MrI+ybGn3A6=&@&c zy`o@CNu^p1*sZU?0W?($SE?9_jqMw_zP3_yyRl8Msbzubg%$)zw zuD`5>%`glmCnqrsV`W?Gx^57TFpQO~a6>}_`Fwt*Q^7C{gb;LhcXRdCm(F}H!w><1 zXqRfz;<|K%B4jNn`95(|Cs(TA>IUg@0ULpZ#I3p*0!me%B#=@-^8-&RDg_A?@~Vy_ zeWDU#msl|#{@H^xw6wB!|BYO;|K0TU^>g~^XBmC=7@|}m90{Z78Y6k1ZEM;{)i?3@ zE{Nq@cEu{=(_S!~#+oh#vH|6{y`D~h8 zHqG?RIGeX@qoK8na5M>u!rbgEi;Ihd!(p=7EDeo~7aZ&2DWVRra{HG7TmnVPm9DVsF(o^HKuieBwAN~lcsS#EcBC2>* zo4vw$g_0{#oiN4|8!@PmW&@?8KAGAJIi@NtG=}EL*(uW1 zdKyFXXlf9YudT0VWO$B}r?C6BI~le#T5h@-pSyt7$zm#+LVxZo`|KV3;DMh~uGn06 z%}!3FPtq#F;DC|=Opp;!a)1ib1W^Gm1;Ph43vL4_MG!XlsipTy@Rve~nx?JP`3WH~ zO>?Etxu&Luo}M0NXJ?t5oFo>DQ7)I6nwmmU6c!g30}0cm@|k2ZNhlPewY7Dnv*dEn ze2D0PV-ZnIRO!SzBpDi*qHN{P@znzYzH9TSKO!p1rX3Hq}v~}&`%=sZUU$vX3 zpLv@5ANW39J)Kmm6=KmanfWvlj~9AR(b?Wcc3~c*az(LF%d$9rZkmnVYcLIyt9CT; z8?W!-zMq_6cx(jIG|AflD)X}^`_Zt_q6UBe zlTln3-usRobX6f43*&lz5I4U>9pLQDR1iACBcER+Y(~(-A$-?IF~aBuBx5mBtu3_J zRpMi#OifJD-Wg#z?VC!aICAtEwr}6g;zE{&i+tBE>Y8mncb0XhPf>sN1;~l@jo*Ql^6bhjWL32o@BYI^S z&x=9UmS}BGF*f0oqLWtE^Bb&ZEt}wEC!WxVSEDo#L$_}uKGaQed>_5*7p~~|%2FY& zSkfH{3Uk$!zZFGA5ekY>f}+r+_b#`d^`AS#^G`fLT~`~bs$l9mEmfCmcW$J;xsJ76 zZFGb}NFZkDyycorI5RI?(cDzwp(_p&g_N;~80Mx;7dU+v5o}`W^+Y^;_==O z|1NjE;~m7-Y+mZK{naV~OAT2*_36Lh>RmgzYR5LdbMN;tTZ3gxDT6U9Fa`zMENHU= zVS_#r6rGxV0<%xxhl9t)us}FqoD1fnPm7m*@*Kxm>EsB7LM#2gGcz*`3=9wshuOS& zGvnjqD?Pr;WiQJf;c}OVZQE?zxRLt$i^qLl3Jq`_kQms8N!qQ_Un~(zgqY5ksM8G^ zb(0#F!a_hR&>Hj7=e;5lY2*<|c=!6!OeW&Ei-t4K)q; zuFu-89=2@WcEvh0Qc4DgM>#h#NWL&f|M^Ak`^i~cH%9lGcEBc+c1eUHba$=i@dN!> zMM%X}S{qIJdM6kf9;d6NmD_LHz`>)>ar5qtE4nQI<1ZhhTn!lFwWXT8ONrI{mV;My z@ui1tSFs#>rT5rzEIi-B@+>?QG$TSsR}YJ&694$qpMvdx5EP3=1_lQB+~+>WCqD5B z?)~<+FM9tkh}vD-i08A&j=gx>?|3>qU5ri)D&dW5OdbL`kuVtC*HfBjI2t8RQd zTD+d?_U~UgjxHdfzq&1OswG12@evL^HAgKv%?K96Rfo_gj0AG~`%U!9mjj?W^5 zV5_Dx^xS#g|KWFY@W8XQY8r}^gbbbXVu82b^#;x_UjE!2sZ(%bMAQo1(NO@N8`c=i zwQ_PI!er+M*uN{x;}1VfA>6^wo|)n7%)?ksDa=GIziRX$+H6p>v7P(w`yo>^Y4mWE zhV?J0t#gBzo*xR>N#xQRr)I$Ek{H7RKM5k3GTNNLZI<{+@Us%R^36cF=#O1@2_q7aM4(0q?-v4klkVNIn}UZg!$hhDL$NS_#Bn>uyAf`*{WmaMr% zEnZ9&ROaW=-7q=Q%r{MvZXD-^n|DCe2y>ZvdU|@8o0}s&e|hg;N=bWLGo`Y_(8L^{`sjWhJEl`Cx|}>U z$lC5s)^>$R=kwIp#A)hu@VqeRhBC~}XV5|#>8y*dz*q1639je!*WY}I1MAvx-Jnsx zP{qpkWqHhtLA4aZVFRa9#t#|Tb{V1R=&FuYuApl^x^Cjz4pP%mg->f+6A%6HL6XTN zH{E&*gM&ldaKjDM*Vm)#=0!c>i{6=dB8p5d1(IuOR-XT(6GKcqdytzpbaK_c^&C0& z6hC^QmCt;o~&WR;zk4s;t2A1 zjFY9->c)*&fk46~;QNx4jD8i~?>?i|V5TC(%=+<4PX zc%F|C9*%7hH9!c3WOF^9l$e@^rh3c_P7n&2WG83Qg+K~{swmhM8=+l!wmP8~aD0uK zY9lS-84gcw;hU8&2hsa9ypRU!mxNzS@XT4sdqe&F_8ogM70I*DKC`Op?fa7SS&Kit z=lu)}4AXmhfSsE*@QvAfsp&M3COF+o1b7}GKwSW@UIrOq0Zxm=I0tr@L@9yW0@`Gd z0P$Y@IIYD0mRVhvi4hta8rZUB3#MsOEEehL=pdiZ6NyBanVF%ku5P6tI3ABLI;gVc5;bqC=V2Hs)j|nmf&SiebhLCL7q{@fJL`z$-pN0F z>xWbmjm(VAp+-HF3h0ptk){NhLY7F}psub7%dL>hWDuHQZf+J&x)k!c%U**}D1@de zsEXj`eJ_@grRNq%CQbSWh5(4gVt8INlT$Nn-nf?D7y1E~>HzEc(s%xGMVw1l6$Zy< z@O(+JY!eOZ2*B|@Ea%c5py#@Hj=<1VY^#DA4k0`r+p^FUiRU=DwuP?7aBLeXT|yxP zS4w{I)DiaVy_Rj;wlO(1#o*u|S6y`#o40P|_kRE57r6fy!7m#v&viL=w0KHLlGXQPMxH!sTSAwXzXZX*!M93O;f2Yml+yQQ=Xo~P{a~P8}trL@r_UQ zbNz>RU3P8)NyQ7H3LnMy2-!94u781VkJ$K%@uFhRFJXAnCu(Y!{GcsE%D};2oT<`K zX=g|6c51daQmRzB?%JzpscT?jDoyx>R=j+bV$D3swihe;y~bBgz-tVC0Q{vawA=pT zYp*!ZB|g7QCWEf))YjGp#GbB;VHkLxM_XGP$z+m=iHViM=X^d-JRT<+jZ$AdYu^xj=PEZBNrw z%4LUSB1EWMCF(;6Nz{{U3df0+3m4}^kdpjj7S&X#ItpeeinJ<(golpCjn~H*IJKE` z;R2p#V8%SkrCEyAJUjPX2Zlyp-)VfOOtBQml+Mr3bL;-=sYxan8yUXrHPCgPFMr|< z^v~$L`?e&%{mF;<;BUT}tGCpW&O+l$7Oa_!&(4k8n92Cubo~w*YZPWOKFxIszxSax z1F*5F!nxTCd*B;dJnsJ8AHGc619|R4kHu1h48NGzBzpg^!{Ii>2?{cv66H z5JCl^GQW^zpns55Dn+qa#vIoOprJ zL?1@t)h&3-^Ho(9%d%FAc$YmtMG4A{3WWmEXcQp?+qP|^x3@PabdAU9>+56l=FOB! zC7PR?866$HbgR`%P)3kPpc)#}wo4c&TUAn4m5rK8NKtX@5(xnz0iG|hD^;Rqgi5tc z92Lj%k&41pzDh$w0+}xo_aS8%#GNV;J?JC85K5IIiXNd{&VuStEXFv0zMtdI^^%#{ zNPb2lwM9C6qMRQdAf3rk-&{j>XqwZfo}+3BlBqbAyhU?OBhwQDxQ5Tc#~vk~2(fYf zy31dKa+&^_B=EbqSa8h-afZ>A>B%HQ`s@a)Qam;ZkEoq=BSrQUNPy!*~;_`zrI zCK8EUbUwE4VCp7{(D6JlmP|?I|7Y*b!{oZkbKl?EW6f1PRL`?pvt&t@Y{|AH&)CK` zGaMjH7szl!P6o(H$jKo&NeGb3O-@cAa3DBvJtTPcqRI6ius zu4a>R>L@+&EI;~RXIb<5chJ#uWj(nUodXW<$ZcRXbu`e-L5`uKqN1Rpp(5y_l?Dt( zC{v(HhLiNNj*5~YU|;$~Ps4Uyn%mlG>+GahE)y_JR8_&6O1K-EPD@u8Rm;NAG;GK5 zb=jok<(J|d-(KcDcOAtu1bbzSPP>HbxY%Zps$HQ}EK(yqgr_j12Dq)^e!hJ2d9J7V zGBbmU8$b~rje#+2Pp3xDfEHnO>_uK>6%u78X9+%`NYABztcqnj7<2g|8a4RcTYrOC zB!m$N5RJ#MJdbS?Hl_MnFoN8&d;|TjZla|%iJ_`A4A=7Vfe43`T^Nz6&5eGLir?v> zPJ*cVr7*&ts{Qi?KJX$Sr?M;4k(%duOioUs>pH<;5Gf_qY874ADHe-3jzc<~CYemm z6r3j#38a)H5(#YEM$7-0iXCw2rYm>5HM`) zYKGlAwlUf_N?o*(k%>bDf_ZA{6w1{Ku~-z#X=XB;p`k8GEE1ukA&ynfAR3!UO$-nW z2M|(W&(1xUKL-~q(a$9~_*v4M>oFIS)mnU*imZ5Azb%H3=|SI zwX9p&L8&85BvwPRr3W>bK-CN$d**rW-LQm2b2lmqFK+uGRqKA{T||QBN?_NQxo2Vt z6>J&^0R;xA018z+B7`|Zo)}deT>3c-D8w*GQ^w%(k$^R&HK%$iFFyAyon2knmQAHv zA)ZK3%;gY@O1!?FhK2?d#X=x(RS(CmqMmp^#}66QV{o#ypJMQFr0Y`9RsP4{^byNt zXwn1{k2BgL5+?=wNy8inP*WUCs!UYt2&xt8%@oN%iVm@b?aoIKMrh{SO-zYp3IUeh z$cYojS+Z#HWye?@UX7vo1<2BM5vpKfGEY8L!Zb~c8iQS1w-78BK!R!bErQowvw(qP z{ZtlA_qT`Uyr_ps2S15#oAuLBC6uo`CJ)I(@7>9Nu|b-Sa^+{2<1Uu5TiNucMgDB(t5J_t}X z1ufCcz~BhZ9Hik}gDs>odCv5WvhIdu=$cBoRN-x_y4i8K53MxGoeMiS*-%yPs}_^eCJ~G`fn`ySo#(`1LR=0X8-@F_NkxD>%e%&ZW@I?pdU!pg&o5z089dS54Qem75k zD~Fb=VT_Zw)G;Q-hd#NHI~9Q|CH;;|YUnm5*bK~{)91H6ow6Gw zq?Rc-VRDXN46K`BlHn8^I*aTWeI9z>4O4SF$#{ zDAlPHr0x@-)If2j#A2rUf%Ex1nx-*1If-Rigu`KM+nyn?N~MC764NvhLSR|eOkVI@ z39acqV$bs^l}d9az?G^-)pf8P&OS|~*K;zdxdu>QXL+5W^+mmJ@7r}DNcc%FaVg$$e2_-Sfu z>#?l@`K+W+$RVX9H9n4QSu`}%Gd4Ctv0Nb(2~sSUQ51#l&M4B8eyyse%&81i(=-;e zxaTcnFI=`x|NpKxUC;BIUb^Vx3vppy@Z8@qD=LsE1c=7!_}~YBhY!B~!~F2GUuNR) zFvFuG5ENX0{c0k`AXGy{?I2_%^8+2^&Q21lsb%|f+h}fV=7zVfr=hU{&$|i&ER{;k zU$hu$6_9ooO$(sKYl+3{G0g;;nLyD^JgSVRC)vMi3rcY}E$#DhtyRQoJGf_UEwAi< z0`&5iXOJ=MpNQ++I3G@o>8l4R1C zm8zDjv^FF;J2=LzYnId5+Q4`^%l^Zs5m|pn&$*!G&b{!5DF??3F>SI_DwU|Mt)*Bj z&P0En=gla@Ot-pCzek@^)EOHa!*Lu!q0mgrTq-p;5s2lUpafJ=KoNvO5mY2p$^-xd z2&*b_Er8pkk6-3HHTC08Reag{sW9BJZFJRS z+HUi5C>D!I;YWe*deik-wzz0655TeohW^@pbs@=3zkVUfUHJU0yYvo3Y!%Y@B8yQC zOZE8RLw^BBD*W3cU+0_O`VngzmhkKszDgxrf`E;vdeqj`5nbHC;feheq|Mvj^`F24 zMY*{8(yRpd%`ZJj#2V+ZquUT#0GD<&8An$QWC)}frXem_)M4P}_S4W%%lBSfPlLCB zC7B~EndcCzYvYDxb?lm)ZKT;@?1zMwqwDt*Jpb)9YDHn#9N<=hsOSVpVxv+|mH+`X z3{G=^o=}XrIDa~xM7S=BC(eKDzD9tq>*0FR7g=;1q$e30AEQ`k=NLcY7~?#R0^G+~ z!A1#d1QdxTCQ($4qU&+ezKb$`4_P;J73>s9DUc|r!lx9AFxRyVvhbGQBM>mTd6mbp z;S%>e@D^TqWgDjyf6wvA;ltd1+wE-Iwq@24mh^Vwd6NB`cVH?y3%WaSYzsrxuu2um zl_~+#Bx>r!+gs@y9HpbRfn;r*WPO~>Hk$MEp*%r5ewLx-rXttAi$kWQ!PT#mItH*ge#qVTA= z9-eeDH60O(qPP|j1ght6(kPz5L_x(v^%NW&gr`s`Sja$t-o;C?ySmV8YdC%IAlJ6E z@$AM;D6@!OOn*rT;USQOB0+ZTJ&tC2OcV!*L~F=qDy&$#hOMu@OlN13eXnj|$-+gr zu1hwXBU{K*SC_;pIV@PP5M2)3jfwe|KXCm z#D*@t2p#4sp^RbLuo&(;}3ndX$7e zX}zlhC6Po{N}N8qheu!i9_`&>PESPmqtAYpL^Q^k{vn?I(L>zWevGE(pMN(v?^f9P zXUn;zu!bTo18kv6nKpEEOk!xvV--K*8!YEdXxL=W9LCr8ogJPh{rVyy&U@@iZ>EgI zovQg_iUd6=NwmgEwrrtp;8Psp5bza*5@Mp*PS)!qp=$(<5GAF;pzSd@d_Qm;D6xa5 zfXjPUfFz(+a6FBAbAqB9VxZj0olA!J;ZOe(+4OeG7DVb>KziJ8!x~nuypAnfUM8E% zkffFTiEjl2P$fQp#msvSy4oHdRxib-!3MjZ}Q!M3Rw0j<2Z49NhmWA^dfDm-F zHjz7)=Tf3nt|w6yKhfgikj zXk>&13l>qIjI(9aR+^ieN!I#bu5)bya$R@UUEYg5o+iEN=cmc<3jjcb1soHA5wP9N&y)!loLT9A*w{}X7jpzp7Yg1CeN z`y~l*&&!)c*Xx#Zgyk1`wE&f=%BE|Y>A2<(0O;w3(|dQ%9JTPe8=2%rCVxIPECB4q z3GP353sqbyD714OKV~OKI7X3EETSC`NxX9ro7qnwkY&-)xv2uLYP~vdj-_{O;5~P2 z00!_iMLs(9%I!19tUc%W-^2mBr~b_iJ(07(*^9n5Z^3%3x@$250j^)ao`)ZPn6|by zEZaul=figHe3ek>3gqGcosrFEu`FxG!y}i=%|vyvSd7NTM&{3-PqA2}QmN3`*hnN2 zp*&TaIsN|WnlH<;W@-rM0!OHL(wkCq@u}Z+-6_{MKX)rs1y4xaX-iBgQKp1Yh0qXE z67VGXojVar7o(KQh-{vL-Mi^Kae|mtz2x}1;_nvuM5wTL-wx`MQL1)@zP^5zFT0k} z@d=Kf*h`^MS`M~dGaI+=g%h`3NUbH0N3^?=8H7c`XyYtKDW({bETV&Qo@K`lr*@1RSQTqX;s zM9etFY=vUMLRA7N1Q;5a;JOv785_sM3%j<><+D3pp^vJl1d z`@;b|*JJg{>9Ue(g7A0swJB8#Pr{wI-is$48tPk6gqT{GE8KloJDxiwyY0B3%9)aw z*&u{CkF2JbxEJOCr*UDFc;PPb#W0t;!CwY`r3vuY_&*={e10ZsEf$LyhCw_Y=eFB! z!?tbm`860 z=u-J!LA7F2DCW=%71w#KolyuC*Y+??ouXR?Twe(XiEUT?U2o6Dwq1l2C_?kMXq4e(=UC%+;ADlhYuDnsE|z7X>pE-Jtf5-1lFepu9EW5wiRXC)0s&0Zq^qk7Aq4a1 z`z2k|#puao63eoPL?U!`b#|m5-lt8N)?Y1PMzrx_Jkux9q}JRfH#Tq=!@`s;VL@E~-$` zAGrVG6A&O&4NW(ZcxV9w+o>X?gQ`k&#h_|e5Q;wRMSAF=hkn)VqyM+z*97=${8BM3;sDGDn|hwd{Q2{V#bWH+x9>b* z1k*HGvSbN$b#=t!aT19HJv}{q|NGyc`JHoZg9GSXIGf&m}ri5>x|NZkgOHbI??cSUiq5<8+=tCd+cU==a_~3(=yfrR2mxjo#xY9${qkd#`T767ul;E}_~3)$k`ds?KmPGw_@qAbna})(xd46{IC0{{oR77OHsjmU zREDZZB$yCs4G~=uA$2lE)v406x*O#plF+@qmzPL7apVA09gaNx6m?ylB$q7)B`~#1 z0QsE7mp}In9(nYq-2bL~`7eL+C0rLY#RJqpC z87i@;A;@@Hk_AD0^&~2#N5?8rAl^j2Qq4)KL@0o5ehs=vF5MHtvy}q7HwHFB? zC>M(yI=F|4RGL-SubpubOe7L4U+&km&bkENymc!+e=B4vS$6H-PbxEsrfICWb}3zr zEq=LxE74TVuXmp^g~oMoh4jO51UKJ!(`8S>Mdz?_le8TN(+q;@_lDZlqA%F$c?8WM zW-x@~3RKh25e32ls?{<=k*ryJ(-o8MukyFQ^dtx)=2Dp6 zObH5)Rrw50nLW7G8VuE@D-puguO*c`MQcz}w{|5;W|W;dg?E2(AAfw`Kd|biKm0kJ zpMSZCC;=QKny%tV7e{fCcqp1gq7n($5(!30r~B|63tiPw6#-J9Y62-$0w}mrGI?^Y zqh9KaP2WBqnHOHfo=8zSbqYJ3qUY0}o_bxJm;P{Enc63DwVsIF5s= z&b=n-Lii;QDy6DlOQos;T{kgRzcj%#OyAJR1JAX62YAmx!6Pt>>g?t4`R{xe@C}oS zxh&s!{0qFGZ)UPA2^TzWs$WE)Si{;?cX7*_JADO`DMgZCD1_%pEXzXEb>92>s~3a# z83-s2l^NfeVr+bjyvU*?B{FI=5IV!?{!udN486hmjBFZ1yICdF6haSP+27#MPo5w# zI*B_r!I@lvylJrP{x?8PJ+_3O{OBj#cgspvE=b~4ZsSY;_&J{d6#=R*?c~>$Xk0>z z@{({R92&Rio5-`QEx~igGvul+!JgH;`NJRaWw2U$SfGUItK|9d@J`;)ltU44s{Jl{ z`kw*($LC`D`ME+-6f_i;pV-9awl~w4@8I;YyEVMB00q%UoMf)W-tR0mM*`Il{ehZ z*yss1KKWI$nK5+D#86cVQ=3^*g5_S`oc;33z0^*pxpFH|Bg-R92 z6X=FY&uiGqS=sA#xczveo^!2sF0ocoKy_q@{9Tk4^{EvA1J@3R80!7n7D5$DHRoy8A^j{o=5Ev1Sa;!xA+nY#D>a1M3 zoKvSxv1iX7?!50#lF1}r_}mwX6e6UK1c|g=nNKpn;&tm`bb=F4JW1Dz6;NLfn(u)y zF;c-agCv3m5ls>`O{6Uu8%)#CTihHuY0Wy^o-da#RO z1E`S%8LbPwX+A60-A8S*nPAYsFm7eV@|)Sc`4RtK7XsIIa2$Ke%--Q|zwo`Qn4ut_ z&r&KDG0gz3=b|Vo*L?P~R8F13Y;7gKdk<=Cy64~5!?bOOTrS7t*f_atj?~$HLgB;| z0iJ)lXC*)f*t%mo*=!cgFo=asfRsVNk%&*Cismnabr<2;C{i$)&5#~1Q(Ie$84Tf}pt^!&QzNPI3DQCmYwWnHaXr_! zA9o#xXOBKZDOH4$3ss1&kI^=+(x_=@MvnXMx{)2bwqrQie%4Lsz1N8LVY@zluBY0$TF+%Z_y+*?slD z{T{ci-N5kh=*;WCC=xvJ#CJJaGt9)`VY+F#j5ZZn}?XB90l3({jynvg2n^ga${Bq4W)5-+B|eakVQzNi-VAs#e&sWiv~b zucW1|9gsv;`1e)q>t2iUrwirV+uH#M)+A`{>7h+ix&O^?o;l`R%*srsNBS5~kE3f6 zL$QejT&(;UP9+6i5x11XsgyW=<^=nW9imh$;5rsA9u9tCsZf-emZGbIqM;eSOnV|0 z#dB;_ByOd|w;%c%-+Ab3eB-NMWoV$EYPCwmwip~4VPIsGp|LA71V0zrlxtfqn;|us z1IL4?3SA~vf0YkvOQ=4YMj#ZTqq~ci);3DT%c=3r9n$ms zKcFVjOkXHq;gsUGrfIzMo$uu7r=RB3sZ;d#_jB)W+|7%Jo+tHchKcQIJm(75qN<;} zyX6D#fvBHtY8B6I+euOCetupm^mzSbhy8x(VxdSfwVxAe z$4u0BwNMm6LOPrk4!9;9egZG=f}NslO(66FN;E{twn&c;GF~ciDqZH_*)urVQR40d z|NP|M%Qj<7likA31v5WSKW=Vrq`A3~g`Eq|Bgw15$!EXE=IvkNF=rEfhtBdFZ~L2B zk8kbhA`l1>u5Tt&D52_MD)oyPO%-|STc6|QC%(foU;Y#aH$TI~L>jB=>lrdOf&T4B z(7yE}j8qy`pJTP%v?uL35JE6KILL|PM|u9IkHM7h&E;TKE9}|3msou*XZy}xxh*EZ z@l(g~oDywyArb)tO>uDylUy!`88A`GStKrcLyS*<|ur0-DMPe(S>=KXD38S5Y;;3!q%Fs9F}W_?0jHrXhraqDl7d z-$pf8g*pu!(5^8FZMTWnDZHy^72EnVy!5T_<1}^62y@y~3e&+@2=glB#xFT1MZtAk zijzeg+o7|wlT)Wo%?N`kio%CK{9*R*-%oRMGsR+&uGe>P^o1i_Z>>gA=bnlYnaMOC{pg=^?D$cd8e3-yq}!XDx#!MX(13;W7x37t9o*m8KT~U$ zDmt7QJxuSSWgP7*(bVlQoOfvRz_@~I(GU=`auf}saup_-c;86FbQ=+_be2{}91>Sk#9wKLCvGVm8vAHcr=C54~*x)(7 z^SKc0dU-oW+~QN8{wr#0YuWnj6a3xZe}Rwv`6md5LrfOZXrTaYYt~TQx0~d`1rQFs z)+>Fi_Kle}k=)DW*thu->(#6m?GR#*d5-@NKih~ep06UF{ zEkZge4!rmxD^|~Aes`F`vnQyeN>HjmsDUr83UIWgi|x<-1W~xO9^=B!1vEGNO0v@= zI6OSc!p;TfkzjLkBS+32j_Yz7OB4fs!$PZvLox(Is!ihQ( z?cGfFA7|j1M_Fd^1v7-@H2d_SX{P4R#RndhyCt(U9;Mjrv z3=a$tOT-x-9YLV5?zY=;U6)WG#I@Hgnm&3e3Vf}I{`@qX#4t@7+B!(Y4sp|s>j{TK zC<08=JTJ(cl>nFYEM{vsLai#OWYVO|IUK9X!2?IIJi+4CtLbcOC1Y2Rie%EZLDiXb z;lb}eiED(|vh!7(E4TqJgj3DoS^~FPBoqh`3Djb$3P_hsHqTF=e475@5eS62`IcLW zL?Q%3CUrHj^KPaqh7cS(bBxlp7L4dD$b>P?Fmi8^H9bjo50@yrQC>Z87(Lv?y2bMu z9Ui7W*?=cK#zsac6^q1T@vEQ1Igp;j%2~KYmukjh&&zvQy2iJMY-(yE5D1{_I{WtR zqo$^2#zAfV{Q2ZZ^R%?JP)%8LCP05T*92kur7fyPHDFLxB=KaJiP15>@|8yjhXP1+ z9N`j)#<5)wRE?aX6E*_=@6hJ{ceta$;<3I8CN6((h0+(Rmr;>?*d z3=I#F&15N+N|aqmY{lIS$Whi0JVU!)=6Knlxw#QFGs>bfKVjQPmSJ2$1Pt)~(|N2& z2b52vMiu_;t*dxX;Rcq;6YSdlG7HzO__;<4vnW?xn1j+XZY_kQx3N#6R-ccE+Al=q1|FAq5Dfx;HR&g z<@98TfqZPXVP-`vq7sj4#G)p_kdDxxXxse7-+YR}RE9Gn;|xz^c=oyHIep?JZA}f- zg#*Mi$dC13^|(R^Ces-PtO^8FCYm%tBRY52B~hzY-ha~)erLlxoLq+MJ0sMD0$kHO zkGi@#G*zRqxtX4M^KtB7fEXfx0H@$mP221}ybnCV*zgz&7cL|m4zp*^9v*t=AwQ9Jo)4k=!VY5jT_13 za+FF%>T2uAJ^DDK-+P#Q@4cUm8=s+N?HhRbjLv(Ogt+sLyZOlP{vq#L*~q%?*cFo> zfatuNmS6@Hhu+TlEbMOQ`OfXgYt}${g1>6-B32XUzB|@)(+xM$+TKerlAz*g>^XUc ziLy;?a}s?PVTKFI@7(7fy#D`1Z3y5{<U9?9oe--=9D53NL){Z;7?UX^l3r zOzWlYj7h-Kh?)To>vLO?2}MCD0!0zD_AI1j@oJhHYcaC@JpRHq2BTfnELcN1+)5@r zg6%liu7m41RI61itBP$~bGiqr)heEJsY@o=@Va}rN`_A&x3(pb?g)xi(Lj(PsI(ZC$LZLt+9`_~8E`iyvOb-?=SPaE1 z(fT;5q0-vXju}iK4TF-fDOpvVs>kHm1cQTVPEC|KayrGH!vhSBmQjr;D1z2Go${YW zXIC4lrsGK!q>6{eXFl^;Ci6vfMI~Rh2uA#ttmijA%k3N1aN_WOVnLn$Gbg#N=jwK0 zg;1!E)}Zy-ShXq>QJ0=!i4iayOTfv^FL!UlOnOJo>D2pOPgQfO>cV(?#KRw@~8eE z%AL*p^(X(D+i$;%V+Vi2ywwXZ43kP`3>s^$Y96liR*ZDt-P5XC-<^+=~9|+UBa=U4AKa&D$qx>JBoGaW%SN#@d9C_ z>ma8DDbzW90ahy&QmGX6^-0X2hGW~zU$}@$)uLP~kRBc42jBQQ$);w`o;i)FskFDX zQM4@f?A}W<*+_e57phQZl@lQl`ip0{V?N$S<;g(6_}aO)xeBIh(uzzo`UBJ z`uc|0vUMx5Sd3gQM|~(rHk-w@s`U4rW!Ed)(XnuI4wZc7s>f9ol|_q|(D~h3j<=<8 zJdd$Zl`~Eay{1ALms6*PsY}#T)`Hx$dM*9KqbQoj#Ml^`Zcxk@e(oYz&+!=Bk-|z@ zWC!x>KfMpHQPRGqg;lFoQ79BxwQ3bYh#7Sh+qUUm(#>QkO>=DnuCOUtWt^--z@6i! z%(O<{v?!=_X{fCu8Zs_a*5KO+ypfl&q98RsS|OXR=GdoOcrs zJ@j=x{prt;Og8Y-pZ=6@f9D|-9G-seY2Kiy<_PCeC$yOx8mtNy#2eo`KRj)hQ>2=U%#G!siOmtaENN9f>kaPtVz(- zZ16|#e>0!i)xgdJr%~g#&1t;prS0j_GXVVYnZLuP%5Y_z7oXXLQdVYif#*hlqqlsV z-<)_anZp*IJ<7>ynbm2JA0{_4S;%5fRH&&*Fu!XVhYlYg(h|Y`#)FrgPd=N)^CX_@ zAw3t*b6I-lJ6L_!8?Y>w>q=RSP>AuTzfNi(jglXxZ}Vvy*1efvAcQ9b?vz&JvOhpL{xi86a9$W-T(Dg;e!og6xQl#=71mR(dW zjIQfsGi9V&W_)mjbq#GSs11=^dkr=94LtG6As&BW3&CK-SB<|4#Ovw_2E(`xc%H)k z{ZILc@CCgzB^%hh=_MSyN-$s`?J65LKF19!ml9IBqU8I95JI6?%;R`fNI4KyagZD< zWvNwzBy5Y8ngF&DXHO=}ZK{D`n3T&U8k<{aYH8!d(Zgi3S5LwKNU(-2296AI_UKv8 zhEJo`2*UMY#>U22w{9K%{r$|FH;;Ti&*0!7FMMqi-hM%RNez`um1uJmyJBO8Ow7>S zq7lclQ5AtQwSzl8K2CjY%)cny3a!m8eEBPnP^y%8$8X%i!i8;!yoa+x5mbzLCkvG|xZ(B!O_4@7{4Er85J#H8C21a;eC^V`u2xyN`H0 z&Z2wXkH-sB?j2VKXQH3KUpT=(p6p=QiPGqvMM<=iIqUFabqqyK;<^sPb#c-uWTi-9 zXaJ)jNi=A({dkHuuj)n9FTWW#IX*tK`y17w$SR~OV;p{RFIKNkX+AX9Hl7##omulI zd}!`fe7kxfQ4Cp@l*-*U)Sb!tcECzi|E9 zVZ$)!>beHHu9-SWa?SjC1a*VE-*7+4)=nP!%9mNu+`_`8%lO2{{{)aMzIHj)s;@HM z)Y?XU-LyZ9{F#7c_D+x~;uffMw{=l26gf3K#PCFxKvnY?$`;P8wR< z&@_Wo|87Q4ZD(1JK~qy5C+F6G{xhglU4kKvhNdKr<#KTU0aPh*D^->+T}oXd!HE+m z*t~fQh6?$7fn1?N!Ko07{(N2-1O0s{6&)f1PFLt(C} z9^6l7&pgb435r567$Vu&Jg4ygQjk(&+csXaOX}qmdPrx&9;dBROB<5L_I7k#XWQn@ z9N4>`;CKX6m^2Ny5Nrt&3WW(OAsTv;#2TU(6-KxeR7J&;4yy14IFrdbCP#|b zhN>|(DfV<4m?FImjO`ahB@HpH4{#n%4 z2)F$0ZPd2)knHWGvvD;aSn;1Yc{+@AUn4#Mq{JzX@%aZ2@z2!)!Yj38dt&311iK=P1c9nQM#t**x z9TXrGjpA5U9NR_}3LV{@Q@{J-*TAfIXDXegzwZpi)Htdtu!UrJWE^ViNLd!LXpu`# za%|5Y>Vqa@<0<<3`>APbBH-o;sd-}2IQ3DRIrlL6#OD+OChwm38OC0-AxTF zyQY)YrUw4>*~iJ1w$Qir6ywL1qNobV_8wYWJ4iM(QY>9vA+(f|^gx=iQ{z|_o1#}h z?H=d9u6q;vPMpBVW_abPpK{ZE4{&2wCx?z4p%9mh9vx*uO|hVT0V)c5)zXcf-9!pO&ML8c^GmF|`%biQ6-_rujgB*ZWQ0gf44V>VQ{#VSb1a*eq&Bkh zva^iG+|J!|^ex?_dQSY)P%d#a`VQgcAONes`0ZbsBINU&TDaj=eQYa>u za%lkqhG0_+#@N^fcNtr@WEok-lGQau(`U|{es=x7`^TOcOSUD=jJPKExxCLaI-}j* zv-j-1_P5rz*1P61I6O+=R2j|X864tY z|6)pwsZWJ42bV>n9_H|&L-Y*|)6mpNb@xu}Y?h2=(p~Q3tsj3k zLJ0ojpT0#ye=}|K+8Eh7hCAxfc>dItVWMYNMb~r$A$whKihDkCRr(7(u zc2p}{Mm%L+lQjF+#l=BjH5V{!Ix+s3+h5=+yl zYi}i15{z^W5Vl(sLW8U80}hfQmP~QFIKYJK3onfV*NHj2eeTtK`-xrLcKz zLyU9-VWGl!u{BaeeXA82g1aAC+X2D@#lViu;>t}+_PBu(34Feg5 z6pA@YVBe#pkT0wY8OA*P*4Z0kfJX z>6Xw(d&$Ah8ZFVa>o~S;GnOmRer`Ror<;Yd=iqJFz_xAM_{!~f(B4qb z@4fyC`XmY zwuLLNzlouK4^7cgk)-1(Dz#Ch?_(&D@e`3B49FQzf>`k+KmPHLx$3H`*s^5{p6Bt* zGtXe?I(F6~lSu&zVHnbLypOtU79j*J35`ElP-IcV*;V1>giTpf7^{GO@Ce01g>0+K zc^6;K{ADXS{`3}F(itqng4tPO^#&sJDc8-X)vQB{?;z$qgGf$I4QPMY0dD^4Qj-5z z$CG;v{`Ze8e60hs>JkPj;c%1_C}m^-Q9=}d1nKMnzXvceW9{6rx|jA}eHMY`9ezi_U&TPx{I;u>-nqK{|*oC+sVeZIb7SZgxx!yBVVktXw5k^G`FBi8TD-u z0?jzH3mm=RPEH)CmMioRj}S{{7#__rJerFVoZDJRXR|zX|Gf+j4>5o49L`<0jzx4p=I|H>Qjv6%REx+;2&PKfScs|V)U_-?li)cH zzLd;vUdf#9F4kQ8R~*dkWK(JcMc0YPb&mABfU|1dw7I2}q#9Cmte!(>p_^FT#!-Cq zi!VhALH5u=e)o_5n2RsDlTo!E_yRI63Gy1I};64Vs(BYDggo%-{# zXXHH*iUI)wb-d$P;7K$Ca`_rkgna6gU&dDF68b(b?Ap)5MQQfz+Ref@T|K`4*~uT) z0%&Y)$38SbUtcd9H*TbTUDq&86Gc@B#+8T8*7!kWJQBdbp<~3e z83Lh^A09-H8PvD5VqWn&p1OkZIOGzZ`s%i}EdzM0fCvW)kzh`u?m-7Qb_JuwC^nst!xcFRD-6oSw zV;DMOytAJK)G3SrCn`H$f@Jmj3s}Bx9mn<`q~>^}k||ndw=-w{JbrrT_j%~yhgj6H z07Xcie|9U!4j-a*&RkyDxq~Bz_c53&QY?&}miM&LFC@$6001BWNkl6vHqgYp$sX84!97UbTd#sHlp9swi}Kcd~TFa?IGwAA+`o%B+M<+*MIM zjg_&R(9Hlpu^PwoBC!Bf#Y$zc#}YiV^;xQ!I<}9+NT=hds=^f=NnY6Y)U>%Lx`NfW z*0FTMVpd(aim<9tw{jJk#Y>pId^u0we?LFC?>;VGvxZdrEPA@TfvCw)M@I+6p%Tq4 z%`92JnEDlUsJel zNXIlR-KR1|=asPakeIk78)dugmak z@6c&OfD`E~%C&#S{XcG_@A7$k{`L$hyNgh(2k8@*hM=?$LLcc3AS+KGOOJxrMKYP? zfy*6kJMtc!yFd49JNF1t>rqA3$sa#L!Y`o@9_DBN`y=fA#%E#6Lk#VD61P@m>Dmp{ zH#XuHayZo*Qpj=FS7KSy3_~c9ibfbjC9cVAJ&xm|*%rt9dwKSmr@8+ZKWBFP9ApqM zt79&)Sd8A@UgD_)Bcr1{xBCEn{e#@|lc-lrln1E3;>CRW=&)bIsZ(a=b( z7Bbw`iJ2c|g=rDw%dC9!TT$%uI zGbss_QP;BxNq11tHBh9EQxTX77=}(D0!pI}w}1CXeCT~Qqbd4JevF)2U)ooL0<5a- zV%yd@hOV<|ZyTLn%6g3ny zHf>zWzdrl7@PDZ#wBtIMhQZ+AAiI8XKUu#E5-Q*>-~8-ESs=g_{xfFu|hrn+Yr?(Ur^zQ+%~_(hcPg$SIKWL z68bZoj8MYy{To6C{pr zBaw(BCCr^WmsB!=Wf?f0$H9X~s8p)Vp3_ciYcuoabzvGSVBdH?nG#2RCG zewO#|sBzs_?%>&HoAqP;y5u|$n>;=f$9)zJ4Az|61vJI%ZMRQvl$xMb=EQV!T=u_5%R8SO^gL`+g<*`R8mMT=r74oAw!cZ_g zJdES}EM2?^B@EcLcP}9@n$L6S-~p;Nho<^^8WL&Rnwx2AXrxjsvt!#f?!5hWKKj8A za^F37pCp`cS_7y`9j{Wu5;a7wpW2}VoLAq(6^qWHUf5v7uZ1Y0{JPk!q6juR5Q1efVaw z?R9M2xDhLpBA+kedp=7VXQoM~YAU*>p(QnvbK?j_(D{5+!zrs(#`f=L!^Ibqj>S0V z>Z{T0li#xOrZ|2vWOVCH!w)K|qM`u4j3zR40|rM%@I#3}AqYYgMIo7}qw{D#eFHh> zE?N=IOujs#Jwv2|Jeh2EytRUkZABRctu2kTwzksL)PN8Ze6X_R*Jl8i)te|mKr9KH z*3Lnn^*XA(UEI+b5EZ-#(k-pLZuJ!`nQKGbWFS|?)f)NIuXYjm9*djm$QMtY4F6f< z22eCi;qaenAheNcBfh!-p(a7g5(XuNdk~N)s3-)y?vm9f9cOFo8b-C&$^Uzb&GYu< z+>`n<%4!x8$QQnLJG=KC#7d?ZvTcsJ0mu5r$OS2$ z=@vYAutsN3A6uT>Ov&+Z{eV4tU!c3En~~fop$sUM3sb)4zVGqq&woyT{~(&G(c0dM znTQc;lIEr+lD5szz#zwt_hQB4go=hQRbJThBH#bkciH*e4$xFY7*Z;i2|b@=JV`tj zqvpCi{`g~rCkz%&YXD8tCY?;;R%^s{9n*DLGj9P})u)szbME?!u(FMGcJ&~GkYc5X z>wDB?8(FYu1&PKsmae&gTxI5^a3h0*964~1QlUh7ti)*lAj{^>qZMe;6tcAn8`@&5 zZH&`kz@`ls(%ae1Q138>k<)c!Jw1XzkoSD>1+CU{>YH29b(L7kVA-ZO@z{YPW!Z|I zFwr!X!}|`h@eLOvq(o2KlpLROp@eWx@BW+)R=tIh(NS~-fneVN&9NHiap;Tu_!*Ha=cJzfQo{FrWgpo51>@75ld$&*L+mdKu8ru ziD8&o4jkzRD-ILQ1}A1K&jPk>Giz2m^$qpZ90xIeJlnQ0#zkv0=@gZ6g-WGDTW02I zFRy^>;8n{w9;8wbvsB`9m(jNB+DPnINE(~lX-ybhasJye#tws~bN>;Sdmr6N=kZ6$ zG+s-8`P6A(`;XK>Re8?VDJCw!vlbwvgV0Qn8fXnj?V|r@1rz*K`|8X$v~}W&B1itKM_kV+@Ss=^Gs3>Z`9|R(l)k)~sRi znl&uH{Bq{5SVm~5G&Q!P=yCi|V5c$&-^U;BgTg4q;UNYF1{fL{nervCl*{xT?~SUO zjvuF7E>ZOzX0w{KkykE%@J2M*3WMPO<}B5 zK+`nh@pv>bbHXioS_3E*ff-9NQVJQ#`&_i~G7Q7O4Sj}7C5UA?(mO=4R-@!psW~2{ za+U7meK>A_2n}3EQWz^w`2xHg+4?5h+Gi7s*$BTzesBQItue2$p1AZ$1p!TA$P(LT zMJh=u@XD}L_ST3XK2Ch`7I1V*uW-jm~BzTU8&_av>n;(ARM`*T9?EDK@+SG)hDpVbZ-Me?6 zw3|2JLs_BHT}1}dH$s{k&HjdgKe=pZC~DGOEEY*5V|bp69kU2SiI6Ie8%}nBn;Ze2 zr2*9aDtlkp$MZXOl1Zn@)-{nYlmHOp+5NunqG>wKag~Je>+8I#8YY_XSTh%%dSRFa z%P%H#-k(sv@B*SpRfu64T=nMbx$=_b-15eEQa`$jBfolv#ziam>=Ok-;c?lL##3_S zM!Hd@hqUG)6bmV$Jr`4tTH5yw4^ga?X>VxY%^S{VUSl1aqDDHUhCw=+WZ}X^QHzanoPHMA z(6LfUF1z|hE`I%W*s(OlQkh(_K(1V(e{ckefmd@7H4iUeK&|;mUl6l1lq(+n1EY+N zj!yXkyd1OJ+gZ3^9vyR9nAP4yLpFhFXqX8LB@xH76OKj5jA({wLLJvjy)M_PkO%et!LU@z$WnI?^!*H^X z@Jz9OZi-5!LVZIWnQWTwt}fK^7>=fEIF5^y(TwAQnZNH|9ae(7Q|n0ALC1n7v}8!z znj1)_AWHO(`o@e^9G0&>ho!UY`M1CM7v{9IuxUjHW-`gZ;1k%|sXd@nJU|9T6wx0Y zPccvkkTOJihmh{eYN!+q%vTze#okW-x#>HTalM1)8ZN8-lnu3C&^7Mr-kkq5n-jlF zeK^EoZzpX*=V?#>#Y4wXP&jhv09~EO2!oK&_vty_%dd9sqEe}$C<=by;8rW7Q*qkX zUPNj3GD(MkV z5?ToZMvHk+Rq8TXGz34`yqT{*_6)jVkWQt@jgC_DJvLr^a$fEkB=L_Bk0()yk*S|e zsa9cltjy@h7@<%om#YZJA*n&Kt%c6R-E_>K&q%IJUe8kvJkTtX)>#Om)=Jc8Z02uR zjaPHnzh^&#ef<=rPEn0BIxg7o{y%yLvAQHh8PYp4LZLK3OY6)lP(lfos*(;HKsD&? zd6B-JA-WFlU{=RmZvW~7%wM^b;r=nql*z$Ed${n5Yx(Mzzs-szv)JETrLEnedKLyy zgyU|HCa8|pa9e6Dzi=@C-~P^b_{{BhuyXBr{Nq3VBXxBzC7XFQA2Vw*>jkRRZ2wYA*DhXNZgu+rfDd;c2>$SuZFsqhStBA0dEntsxzKq z6d6FvG%1zJ*tUgkm@J%%0d%L{phwyXZmRY3$x<8h7Qt9)8M)js8dJ?6MI;QNgk-a6 zvKF*8)idkdHGCx-i4~)KtE`8agQTs;U#>sWxKOQM5FZOow<^I=^6jKxEICQid!!S@4g|V?H zpKjvYXn-wY{@ga^&T6HlwG~~{h$RwOmK}v%gg`TNEOUBciH(PjM#4Qf*-iKeSV%s*J7jp2xVdC*5R4e$kGW(AA@Wg`;v1H9!mc8yO zs=h*yXe61kvHY34z%BLl7^X%T`lRNzv25iE_Uzfq@bEA-*W=LPPF{b-Wf-$s5sFX7 z&?r>$ESleje->h-mabu&2I+JM#e$3L43TZHC=@h~KJoymy44g5!<37A>FaK!xy_*a z$WdC`=g~T60d`DMbv#PbtObs8+9ckX&+t>D2wyN<8fMrVX6coSX=-lb*s)`5*|LR4 z9(jcQ`}ebP<3C_>PaAn0`Lw&VT)9*8KI~@bp){f*tyt z_gDXe;_xuOuA&AZ1TLCtqXghM9-3|;)p6tUYc_(PxUz+>?HpjV;~aMG+(CVPq~~^0 z6Kp?VdEIHwvu47c4k*TfEmI>_b(BOMA8H-p6Nel5`oW`IxuTVKX7(YK*(f4JO0W%+ zsvpq2Y%S@!G^x4^xw-!^pV~9Rm%96T<0Yrog#6}bE*tM5YXH^pr7c9uu0Q2|9-B}4 ze+pPNx$e|3&#?YP{KJiF_}Q*Lb{!i;0EVidYYK~i&yQyp?8{`yjFg!5h5w{-)0;@# zbw7pAe3Y=M9z!<(WkxUH^%q{m!UYT1wPQQEkr8(9*hN=Y4~nAVxB-siqo^tZL1Q}0 za50ansyKm9rCKEj141XHsi}o)Hf`edS6;<==bcYf+cZT3m_MGQ8U(a2vGD_kN~MBZ zb})<>b;&wvfs5`qXubWInnp4=h8!JbY%GtLY+(DIPV7XCOBS`Bj^?z`)F`*jks))I zE+x~@Oxv=>w?Mw$c^PVZ{2x}jg9ezFMNSyGD$X@ zrL(h>uC6XRIy$f{i*##>R7(=yothTgt6|M8f5GN2et}JY{nu>&>}Pr6-~XL_-4a5f zPR92X1R)_x7&WX90`IJi--D|U15j7CNx2qF1{$z*mH&QzlK(g|zzZ)+shH@ytSXRw zm5QU984&Yy*uDss_CZS?woUQNhyYXrEuQ2bmgYFPUb3)NMU6E=2r>wxR3#B`^ws3)^UGs>6=Qc-)s< zwq++Pp4~;I>fkJ0NaC*hsai>se+1Dovr^dlrdC#*vxeU8PS&ko z&$cbk@Z_VL5klgJKDJ>|u2#tfB?^@?3Q%(#VzC(O)}7B4S6A12V+*JPKoZoQj9^BvMguWI#g@k_ZI#nnp%ZFuZ`St}e1|3+T#KY1ZQm7iT^Z zP|O#oxejJF!_ni%vGPR%-y_J6P#7L%{``4_!sqz$_~#qlZSa`?3}wrw(#B$RJ{ z^P9isG0fCqqzvM1Hu+se%&b9qphCG&#Bww)zu|J8e)?&eo10M-g?;<>O$KzYy6UQv zMnsCDU|0rnrkaQiX*PZI!ypybfAsG_N$|PP{RpIvkjnUMWPqZCXqX@a0&hH6f8tFh zr&kMnZg=#u981(FSuPK*I?R>ZmSPH(cg(Be7X;6q;808$c-_z$7^~74i)O<;J>>D_ z$0)=cnnto*_T)0OmT77;I%P29Q71A5Zr>C~XnCZbLJ6aXNlJ<0IefHp4lU&dzP)BA zx|YV&65RDK3f+gQ{KMUsvYlUdmB#;l438Cf{zxAcPm)U7tX$ebHWA0NEre~byR9A> zM!Bl0s$iYBn6N&J;rWDV6aCNLg6kGgdZy|DMhW*55TQpln<151i>6AhuFDc4cDOSp8nnp|eEH1q0VlKPva$4Kl5kiv9W_UHjH-Xa{z^~r*oil#r!xO(a zz}n@}NgUe^$9AIwIpBdQocgJ-;PN-W;_)#pAUU7(uP5REzZ~?0j*-%%`=MUq9}L*} z&4|a2O@tw;79t6wW;FqkQi(kEO?Nu97LqT09!%0*@!4{29~VEm3_E9YUELUu zhl3=>rOqa1f)j~2y@fohhE`E)%k%h^+c~ehjn+bvZUm29zm?aOQ-tc&zf)MwqbCFy zc2tHYeAHMLf)FX9^As}54#!}qwS6cmgwh8T<}O~wH~%KjIp3Q0rTC5GP*)ER z?j0Z$QBAmM*(8!lEX%|)b>?s0HQoRT;sYa?V~hXovvzVaP)b1%gs0R2 zoWLm!;HN(Iso&Tr=>JzNTD0i2>+d=D?$_v>z|uuCkP;h#MXOGK4rjume|;6@+y{Uu zC`vxV3ETY#!08L&&x945erHJhgoX-?;6}gSA(KvU&678592&zr}CyTbvCxZQAr3kofyT03b(K7ELRhEIs`iuEThGl+8G1lmcome8tn;>s8vHciTLJYuMXm^h5eHWsS88IbdEiQ&jNtx6{X zjS3kmGEI?Fmj*!;ynp{2-bB4B=xZ8dG-%<_PzM!dgt|E?>MW0Hp+F&#Wu7;RIMT`4U}M2*OBBcw!R#x3Ua|?A{=gr#(P=R_Bij>gNff_3C znK{!t|I_h*tf_)++r(lql8FT6N`+djhT}N=?XZ2;{I4Y@4WN{gQeh0YRzgaNsz5NV z=Vq8T4Gpab5h4Lyt)a;pF%&{Hgrd@-bWxNI)JWhGL!e^f;1WZ}ry$d4N`Nv&k?t4* zb4+I-UXReVIm zg>e$rnR^4A2@^){R7UaT#_>eMsF>EY`88F8aREn7lc=hW@7FlI`R@Vv+{@zg8j5DqMyo`1TmoM~G%9!{m!cFXu7|Xlc3%ttbG)OTi6B5l z#iB@niNV5!3;EE8J~X-Qr$7B^lG`Kg$toTuI#mQF0v%&U_y4K*Plw20{(AUd3rrfo zUC%$x!r>B4j*DTMh)@tS4DwEe&Si6HXlNx21&&i=zrF}XQBYMCUDr`njl66kp%kf+ zX19o1`$ee`f|dn0(NUM;nH_tP%9#h9p68J?1I)&dj=E7s$~s9FAUhO%B~L?EQpv{& zEt{lMhFS?D%#!U1_;GA2Yr;j$lXDoAE-5_f@-`Dg`l(=|k^6)}d$}>2Fm~-9zj|_? zzK=b0k`X*{R46@n+Wesi2}1`dLJTv8>sC1O#Q%I%!?$&R^fR&U{XhLME3W!1ND-y1 zNHJypFbri71n5QziA^Yq3=AEmSOy^`B(BDXT9Y5+h5Hhu0=fp3sw5O9kijrgNGS=! za7u5#iR(Wx+B0+o-_bbOE!o@S(qC{Xdp_ZKii4)8Bn^}LxWSS(o5dX(snkmksvpQ{ zU4PegiJJn)hjd$(Yd?_(UaDt(_*2VpT%UNez^&>SMhz)+R4u?nL9=uetw2JRI8F)6 z2qs72h!i~t{-7#=vSpIdLem79*-#Le6L5okClYe!+2*VH&f|s-CvRZK47E#7#xJ%MD zKT9q@Oj=f{`GPSVl$gqZJ%XImjv2;jP!f1*8L2c-MyHnY@kXaE$rXm-D@JrDV%8_4 z5~ZCt-49=WBi!-;YsQUX-^U($)qN&zs;Tm8sur~(ls-Y=apZ~r$sdjv)JzyXchoThGkd&+hp8os{ETbAUUqN001BWNklJ|(MTN&Xdy`q507DT^o2tlcFGKuUHWn@%y-O#|CfsJRIg0z~Mer_y+1Wv~^5C}YL~s-7}!{@@HF zt*u+P@|L%}g*)%ObMo_a_;vG77t`T?Eull?^J|LE()tDlLxtsqQ4OW4Y6vM%r3Olfs(_*x zXoiXiT?7&l2z1Rv*Cp||hf@>N=ASTrPF3g89WML3edfvzF5&_%Vgrj=NQx8zKK%@^ zgB|>w$Jp-e;?PKuKqOF5>1YSjnBMtYmWAp`{@d4m9{cgf`SNFe&RyH0i~7ZXej7Jk zxPdD^u$5=Nx*kV{7`BcRYMAjDrUFW1g0SG@5Bs<-_+iu`Z9369tp$|NT$L|N7ToM0~&Jl9206m%_e zWu=tV20BrP9>!mI3AG@`@GplrzV(L;mIsL^O#Hd4Fg2Jcb*a^=;}6-Zqot*Vf>A&Z zb9C4P?USxYYj!yFI3M_(^ECGcwwPsFxS)S;HCutL3zR83NEHR9%b zr!@p`X=&laP976(?<$9epOXDv4ZffZCiQZlS_Hy-$kRqTRw0t zcm3X0gcU;ukt~>PrSW|qUl)i{j+o)2Ck%oDSaEY&2B4*-1!r#$praC^qa*OgMGT^U zw{DI8;0+B896EG}d_F(EHp8Bzx#@PA003I z{fFWBjQL+n=m0`U6w~BrtwLefE&>sPqTnl%s;2o-jm;S8I(*+{ zR`q){pWDYhFRbOw8<)@=U&(OEqv!C8?Csr8xj0BV+crs>Or|K6POa8lC>9WU8L!qv zYOD?;C^6dsrL9Imm?R1Vn6rOH(63M}N&GUzQefzjTv{bF#!+V<3&IXW%0?aXFs-Re zV-<=g>zBQJmKT68zmYYqFU3Q4J|riN;KV*Bjv}Ya-{L!{ib@zpH}ob4EIZ4022QAF zeVNglfMsXd!Znpk&zMZyYD`} z{q1i9aNTv+0dUv)R^Gn74+kB6+>KS4{{8oA{2w1qQ^w;*>s$H22R`tU3$8Bb?-M`a z;g8MWFj)35j|k?3_p|f)W88H8+i0B~!*z4iWqv@@g5B)yxe?F2d^}(dsZ{!uU&^*( zEmwVk}u0A?@UnuevtnU@No?I62?BMgm7OdDcJ@QYBXK%xzV0*|?yY4a~fMI&ig z^mO-3`J&iXl+SRY;hXiz>)Dx-@MWTyU#l`X%9EbUnolZ|MsQ*jIN=H_=JfeR7=Wgu zX$GHqYo2R>&+nfHWO?7RP5{31?=S6R*;)2)h}M06fAqQkpi2-2SZ3_3_(Lh8CfQ2V zfL@9aDJ7<}E~Y4MBTrI5n`wIE90d;j5kJaFq$ z3{%G)k7I4V@95-u1qDUbkwFEWGG3TP3)ARvgFu4WEYZet`2N)EVQni$Fh2Jx@USCo zZf;xOIO%c%G#=Q`4ed*~x9=c~8^Df^4(KD9lo6!yXUzXvLI-dv6|#03Q?)RBA6)4{ zoI?nKt{ddbn<$O^f^};~$jcoZI8kR0aWP3&-$A zo}*>#3Y5n9v}WPPa=BL@^}%G!ZvwBn-HER8IHt=#doCD;h3i!K@DH-EGtc|(i)vdx z|3YL8-}e`t(f{|)o80$(t1^7}!=11u%e&9l(4>swiD$vD8#b<6!t<)=nu%e=A|r@O zsZ>ByGibUMsX~vZPB~5)O*hfTV}{e^cbXOYb3UF7*uVwMrGxKrCqvXwiF1%GGRW|I58K+tdg=7em*0?2Bu;;=NnBTw zFpq-zW^TUuW^P$? zE??fc3xL~hi`1YyIy(3+@cY{b@sPw(rhWZi&adL(;Snd&Ts+YQA87d;O{=Ms^k!l6U$MVTkVwJnz)AOr~X`B`w-k#u+U7 z#42?(X#M1bLM&4wuLI}4=yw47x&qF988(e?J0H;WiND><`CX^Pp#wiBoz|E$X91mE6&$C=vK5z6 zamz^3_?<1e$B;*8+dw(pfonEHle0vj_1>9cm%I7ejObhTyez}+&Zh38`_uf z+|6&}gS`X9s;H{Qtq z`e}*>ZV$NU9ol#XA;gi>=6@}r0~AX|R8>bvK{gKU8I>go1wHU7B}4Ato5zZ0kx2Af zH@|n@ar%of2CEqekJFrib*mI?N5|Luom$1BL$55>8XOeJYfEcQQmm!%SjU=JP<8kJT0nI@{2G)*G*7Vu6b7!_xr`S zvus+HW%Gpa@kg?pq=EdAEZ2<3+OK(6o}*nBLEyb&7I~`tnr5J@8iDVyWZ9b-8-1Ko zDaX*@i+t!qAL8?0_ztUApNFoS2pKXmw425TZ@gQZh96YPjlM`GJH3k{gdmjQham}) zq)9Wv2m*u`j^CnySln)Zf+)aLZk6}`wsH% zhLr#`H8oMI)fgHYnlzYqtZ(Mc+lOb&FOXCbsKEEvHewjj3t<2L{XFo%1FT=ap6%PW zvus(U9`xvr8sA?#o3}qdIz9#jZ^{)!uRT;CDwon!kP=-tQ4JNhK~QV}nN?|RttXRB zlZeMy(wHL|^SS&2m;do6{e0jr;qCAA8FpNLzPmzIsq*X-A-6v~pP^t4x|NC=r@IcR zOqN(YMm!NCnL4#psbLuSfzLC~K10563@7D~)mLDb1bRs)mbKVweU2fghvFclTfnVC zi=Ae1M*|xcHjy@Cw5D2_zb+s#YkIw64a0cV%8tH|J;a)l5*fLdySWcV#&2Tu2d8k4 zr^v7CCVt=|M8Lr#{|ksle-KTGoazVQ7yl;t{Qh~=YLRYWFiitE!5@Sk+qZs&uFi*1 z6osQlkJ8)Q%iG@eHoo??uc7OayDOw1H+q2jI)_X;O?P*9q)(VmQ(xy$$RC_Gzk(!g z>L@^!GIG4~JVTN;I`DXk3cD$A5XlP&N-SYHDdKd~NuFquO`So5cEd2Z^F1neZQII& zAE`%r6%^A#Q8X_9%jbCP#~+_Gj+$bD=OO$M6$o7qsT8S}z;*L@`6_`wJymYQFz}E} zbklBbZk~+$4Gl&42^}3Be6V+b8`_uf!QO#MgEz5$!dL>6al4uDtAuz2{BUg}EzQl; zkN2Lr@x~juZS>Gys6?f$;M?tZ`h+>cJka+x~h zp&0^ART(|uu>02z11EIUSPw-dfvN@ZJc+Jr{*?HDfubrHhB2#6_1Tgyyeix%)lR~X1QR662AIGH$S z2kg%+`O?`PY^!88^o^%k`(OQ=>fqBes{PuWs6EfD^0*5j!F(z2yCkR<-s1dq1M{QUnu^X)k}H)`G2LSrw7Zjc>M9lX>V(z zSk@`z^C;>lkzkrca~A`H12iW#BNUY*NB6Lxs|(L7)nx+aOL;Wiqcx^+atp%Bt9pajh@D4QCO{--cTw2`8z z5h|AEG`fCt-(H^o$IX1?ju!#g{dXHdlL)E#O|ZQZ;pP~c)G3Tl@g4&h&sx8SO0n|! zS4r*G)D#aVn<$k^ghC;DdU|+Ze7r_}rIK$|-IN;V(PV4wb+uWg7l5y!@koXICa0#b zZJR_(3x9t5?F=4148SwbJj1G$D@nAp@Z&viFgZ0vds`citb-d4j1lF783Be00U7}V zP1Er_4MliJ>Ed|8FTfYj)ughxqnX0+b6ndU;N=$uFXX$KDjC?8jiy-GwoSN2LvM^z z_5ui_u>v7+T@T$bYDv?&t`muzTLVnQ6O3mh5t*T@v5%OYXG$%g1{9`qf@6he@ubJ; z0Z;x4pgyR3e@r&DqTksv2Rn>}~De%-qzq z1FwH0b)DL>>9GGV30Bpx6zZH8k zYyo-{)h~yulK^Mque$Uz{PLGSq`$u((=-_x8ltzimlgf}=th7Se>F%$bckikmNPgw zKrFt2NJ9t3;!(Mvnc9OEq#B=`#V@G6Iy zCPObhY-TMwWuE0}_OOov7Ex8FEw0v*s?S%15JYv0sMdhvxCEmD)i7{P|GTaF|2}fZ zi#%}eX93vqr>Y98XG$g(7yjh@xl|iVo3`hKI}W@jNBAUNKD*iNy6>G(Cvxn3&}ZfuL^``I?`oPn%%*snY&1*-Wq-W705{U$@ zEjsZ?1ILaYMb&!=hue^z%h20Tz6JH)e5PsQhQRVX^l~0ecerM|ukGA) z#g(kOq@Q2>Xr`50l@KKgt_M<1Vwxt3sv|5(sZI;fG)+8Iz^z144f41sDBPAxSL$;W zs)@>Fyh`q!1XL8DSV@QuBI-6l=i`6=z$AHGqNsSNKK{v3K;ytw+t^mY-}T3mZKP3v zG7=9-a8~Nf2T>I8eGJiPlz3B|Kq!P1D#en5?WpAPHhN1hry8#$*4vI@s)XWwEMLA9 zp=dOZiV#Nyj`ubSBcriUaJuFfV|g%Q&g}5 z8u7)A#2U-wC+iyvX;~JBcCP2p&h>MM?3Mdg)%IVxZ&mI5>UoEDuCJXZi~xsruIH8e zR?Rv0eDSNpzh}#z#4~*BlXD0Aj2!g$SM1I3wf`As@0JXI60e*iJrtqf*!7hm&ByOw zaShpAm@78jh@qJz5*<9hXAh=j@sX>pLKqdu`Rr~6j~wGKzwYfBgqc3xM;wG$yOdtwv$KT zp`f6#E7{It$qqCEI7qVRJqYuIfqyYY188k)rJ)=}RaNr21f!>pQZ`L&*Z18S4ehio z=*Ago;jP9nD=)p8p|?(;>H#9r#!A(I!m9^TT(WxoZ+ub3Qjw{$Nm=Vei&%Kp5Dh|N zTN6x&f;a&|VG2SGg5~N)dfPXUPiL_j!oX+qLOw=Zg=pdi#D3 z?Oe~Adj@&szE!NbXOKhpt!MT2{eVw`)$RErEpyK6wJ+C)uc(?|c~SA5t@!x;JovM_ zVJ~w?a4+z!S=$Hq`c)y9{NCUC(Ol`FYI@!4pN;Q&tt{;6AeVDM2@wcnC=^aGGBSdc zlGc_MwqBcHVBj>3@eUMKLlc6It~Iruh8Obr+pc8AVg=6&@cgSU;S_B;WgF8>5F>Hi7cl=`&ld@1=y_7y zk!x@En+os#&PKL;X;1Ck|NWm^G3y+QT`Uy|qTrzLaI%ZfrH1)_vXjrHCV4p7%(m1J z4<);}Ej0wdZK+XqB|Eq&b%tHZ4z{JzwURjP0!-ld8~pTxM!&ic-lY ztgCpQhU0?inq<8=W3mq-3a`KR8Yd4QAX~6FGdjh@^os}~ctKajY6rrFrG!O_aA#Lm@mJ36+Koemy9Y-l;B%TF!L2zyFCy-f{ zLS_Wlb;&CMVqq7fsB_wg5N!#fpDENj)}D{NllBD{9@UkWSvS7tI<*1LimKr_7X2UF z!Gk~lDi1#HpZEEh42e0VaQz?Kfe}FpNoelJi@w0 zUo=X8w@&XOmsrGqAKQ_2;oG)NQE_RM0gPyvC%@Isr@l5b?WpSa8$5E1(AY3ALxNlG zd>MeJ|J!mb%i<5d{wDwH%jXR}XZ_Xux$h@C`Fv`eB5vh)r3-TI~CU1)8G@jnM#}r((J#jvqhH z)Z`S7&M`8k5=lU}TuL|;#?}-j%PNj5v26ugYUr|z zv~mRE9)ZR6rNO*c;e6GvSJm)lAA2W1V7=mb9tZ_hQBf4l4`kqLQcJgdvli8T@E0=; zG5bHZ!w;I+WjxQpaV#`d!?DXKYJH8r&xK#e4-*Ma(30qaLqFsX8guM^Sw$$DX>D!g z>Z`71@bDn7pBSROWBG4}KTrA=LQ{jmns4L?0?rg&%h&p)Qtu&_Wie?E(GWR`D7G;v(!@IZXl#C(GdzPeQpV7r z)m_YF-XxJ|BoJ@HDwa{Fb4vY+|dL z$I>!uCi47q>J`hfX3|EaZ^rtqsQi=;64|c;*QIx_dWUw`@gKRa#qGXii8D96Uoj-f_YB zz*+6^o8u6V30CxISf-$C350-vAy8G9a7f}wzbVG-ZqW6TV5w9>(V_I#IDxiie($f} z;<fa|Gj`NFe+Un5*?mayuQ{+c=bogF^~;Hhsep)fg(=1g+K&br_$>lZbmsS=5S z%C=OR2a~Pbni@r`1Q)7N)+j1Bq=wm*^c#=dni{Hjk{bS>e?xwSw=QD}%tqGFt|B`Jv$6x8K7r#qQgl*7T} z*214+iB__cl3;9_mgW#S+s3s$+)@}Bh%&4PIJ~5f%ZumkJaaDmHTMkqJJw8;w@Pf) zZNZEtI9n^6?ejgCkMOsl~7fk)ZV|Zos+!cKakot(+y$mhCk!weg9b7 z-*EXCk(DU0rq!2+H6K5lc@ycKWJUi94j(>@sxLuNUd2`;D5}B6c#-G#?BS}-n`-88 zEP5QriC6rO_2bV@U76h+)%7IdkRTkAP%+VFo)>uYw7v_`05wg+a|HR|j22Xw&T`#X zUgz0={wSX5f{<*z`5QcN?`P)(LI8IE_w|&gC(wn8bm2!|ge$*U-}()F6ZEFkI0`Ot zbjo<-vDubN;}?EvY)hpn;&EGQ6a{~P`K_r@%6OC!L@UwbdgT4aznD_HG8LQl_I6fZ z+RvuVo4EQTA7R7Bjr8^{rMbDeGND}(jYjF}>}1udRdlvQxO`odbyqLpy6di>n4O@z zy@kwcFH#&mjy-;oMkmjT_7>KzTTg3q49!e)Z2$A`eo=}-(Cx-8YbfC|QDrTT5$06O zG;hCYVYo3gJ3&YYrf>+1&;S4kBuPX;RB{RvQ!a)o(1n3!7{pAEqSr=2>aPRG>>!2H<8i}mm_~)$Ka64Y59sKIG zp96feW!;9`0oZuO9ex`vQF)&_a`0y3d(vZa;wVAG&+|Kc_%N>QARg~U6_N#=9dxub z64Z5;t+emkC+`DdBEUEQ}G z$<8Njc0OsNYhuoJ{p(i|We3$!`PscoFe+{br#Q{lyY{g4&KCf`T<$Nw{saEc14(}Q zFB|yTKX1aJGN4I1*e2+8W79U0rrcR=@ciqEO3avz#C|aWT805B5{O8 z;s}ey087O|mWl(kiBq&`qjd5d>w3qC=l5YA{vna6ee_4(<}+(tlHG!vSBLqd%L=rG z#%Y>*j!uzddEY`T%X!!KK%VDe+JdsWi3xovs^~mm>HAkB9RIuA^X+v!|MzQobl+Z{+Oe8|ox{sIc%>53whntC^p>lI^uTyXxaDsWX*4J}@r8|Mq_4UrbQ|S~!hF zAdn=)Fdhm~GC1fcxI`)gVcNvol!(&A7!jsP4>=q;kft;_%|yl|WDU^}gwAD2dO8w> z^l8+1H;E=4;g*OsnoJfv!kYBE2A@MzRV8DNAl0LYqRpgCQ|MaEu=fV40hi^rK)%3< zH!_T5EL=k%^cbEn(DKum=maf~ZmUF2fa%m{f~l%{me%%8THI_caJH#i^BrEG2B@n3 zJdmmxs;FAU|L1FW{?tDIziWN+3;wmtI_60aMe+0hOtXM|m+=Gh<^KEc7rL&4e2eZb zjfQBHfx!VH4eRMzupWQ-kx!_mWntMaUWH^;MPuXTUtrG*dnj8SjE@d;^5jWGoj#!I z1ht({+I;oX=l<@h#5mu~-T9s{aDT==f*;#m&ZHX@(riT|%TF~PyRZAu!?NGGtH0hZlRnR#TwHv0w5JhvEU(!d2}5J zf>K`|er5gsZ}zs-C{AT8CBRLo5gtu;U{&^SOpWkxvJ3Fr;KSUpm_V(B?so;sXNud=$2Wm`Tl~z zD5hE9ip_Un+a?<>|6(oDx^Bbm{tRKOmUkQWIoH|+o3R#MoPgC{sIccDGXdxTgTIEbQfGtK@WiC z8JMO;u+B6XfBiF`S#>NWfKfSKeXLe!0F*0)^H4IuO{wvk8CpI5yMli)MfCOcy|3L0 zzx&vdL><_l_ zJW3^##mkp)@TFh#z3+YRyzayg@y`SQ%n%a(pIrYPcibUO)12d{wk(TSEQVniSe8{A z>XpmoYWR^z1YOq&hr?)^hT}L?-)DMynui{G=yziM7ZZQWmM!OVN&jXdcJJQ(zFxqG w@}Ybv|NqMSO@JTV1f37%L-|lXlz(ISzh$gCv7iOL9{>OV07*qoM6N<$f*Gj*HUIzs literal 83433 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 Date: Sun, 1 Jun 2014 20:07:22 +0930 Subject: [PATCH 59/64] Fixes #5109 --- code/game/machinery/hologram.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index 22cb0dc741..56d71e1e0f 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -33,6 +33,9 @@ var/const/HOLOPAD_MODE = 0 name = "\improper AI holopad" desc = "It's a floor-mounted device for projecting holographic images. It is activated remotely." icon_state = "holopad0" + + layer = TURF_LAYER+0.1 //Preventing mice and drones from sneaking under them. + var/mob/living/silicon/ai/master//Which AI, if any, is controlling the object? Only one AI may control a hologram at any time. var/last_request = 0 //to prevent request spam. ~Carn var/holo_range = 5 // Change to change how far the AI can move away from the holopad before deactivating. From 69c882bfecc94dbb5f05b15416bf932761bc771e Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sun, 1 Jun 2014 20:46:58 +0930 Subject: [PATCH 60/64] Fixes #4973 --- code/datums/spells/ethereal_jaunt.dm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/code/datums/spells/ethereal_jaunt.dm b/code/datums/spells/ethereal_jaunt.dm index 2ec9a72367..1b1646ffa4 100644 --- a/code/datums/spells/ethereal_jaunt.dm +++ b/code/datums/spells/ethereal_jaunt.dm @@ -17,6 +17,11 @@ /obj/effect/proc_holder/spell/targeted/ethereal_jaunt/cast(list/targets) //magnets, so mostly hardcoded for(var/mob/living/target in targets) spawn(0) + + if(target.buckled) + var/obj/structure/stool/bed/buckled_to = target.buckled. + buckled_to.unbuckle() + var/mobloc = get_turf(target.loc) var/obj/effect/dummy/spell_jaunt/holder = new /obj/effect/dummy/spell_jaunt( mobloc ) var/atom/movable/overlay/animation = new /atom/movable/overlay( mobloc ) From 81af443155f71055600347693720940e4c124730 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sun, 1 Jun 2014 20:51:58 +0930 Subject: [PATCH 61/64] Drones fixes. --- .../mob/living/silicon/robot/drone/drone.dm | 41 +++++++++++++++---- .../living/silicon/robot/drone/drone_items.dm | 16 ++++++-- 2 files changed, 45 insertions(+), 12 deletions(-) diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm index 8c07974133..86af5c33a9 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone.dm @@ -15,7 +15,6 @@ // We need to keep track of a few module items so we don't need to do list operations // every time we need them. These get set in New() after the module is chosen. - var/obj/item/stack/sheet/metal/cyborg/stack_metal = null var/obj/item/stack/sheet/wood/cyborg/stack_wood = null var/obj/item/stack/sheet/glass/cyborg/stack_glass = null @@ -25,6 +24,8 @@ //Used for self-mailing. var/mail_destination = 0 + //Used for pulling. + /mob/living/silicon/robot/drone/New() ..() @@ -58,7 +59,6 @@ updatename() updateicon() - //Redefining some robot procs... /mob/living/silicon/robot/drone/updatename() real_name = "maintenance drone ([rand(100,999)])" @@ -101,10 +101,27 @@ return emote(copytext(message,2)) else if(length(message) >= 2) if(copytext(message, 1 ,3) == ":b" || copytext(message, 1 ,3) == ":B") + if(!is_component_functioning("comms")) src << "\red Your binary communications component isn't functional." return + robot_talk(trim(copytext(message,3))) + + else if(copytext(message, 1 ,3) == ":d" || copytext(message, 1 ,3) == ":d") + + if(!is_component_functioning("radio")) + src << "\red Your radio transmitter isn't functional." + return + + for (var/mob/living/S in living_mob_list) + if(istype(S, /mob/living/silicon/robot/drone)) + S << "Drone Talk, [name] transmits, \"[message]\"" + + for (var/mob/M in dead_mob_list) + if(!istype(M,/mob/new_player) && !istype(M,/mob/living/carbon/brain)) + M << "Drone Talk, [name] transmits, \"[message]\"" + else var/list/listeners = hearers(5,src) @@ -309,16 +326,24 @@ src << "If a crewmember has noticed you, you are probably breaking your third law." /mob/living/silicon/robot/drone/Bump(atom/movable/AM as mob|obj, yes) - if (!yes || istype(AM,/mob/living)) return + if (!yes || (!istype(AM,/obj/machinery/door) && !istype(AM,/obj/machinery/recharge_station)) ) return ..() - if (istype(AM, /obj/machinery/recharge_station)) - var/obj/machinery/recharge_station/F = AM - F.move_inside() return /mob/living/silicon/robot/drone/Bumped(AM as mob|obj) return /mob/living/silicon/robot/drone/start_pulling(var/atom/movable/AM) - src << "You are too small to pull anything." - return \ No newline at end of file + + if(istype(AM,/obj/item/pipe) || istype(AM,/obj/structure/disposalconstruct)) + ..() + else if(istype(AM,/obj/item)) + var/obj/item/O = AM + if(O.w_class > 2) + src << "You are too small to pull that." + return + else + ..() + else + src << "You are too small to pull that." + return diff --git a/code/modules/mob/living/silicon/robot/drone/drone_items.dm b/code/modules/mob/living/silicon/robot/drone/drone_items.dm index 454aff850c..e2fcadb7d5 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_items.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_items.dm @@ -1,4 +1,4 @@ -//Simple borg hand. +s//Simple borg hand. //Limited use. /obj/item/weapon/gripper name = "magnetic gripper" @@ -53,9 +53,12 @@ wrapped = null //update_icon() -/obj/item/weapon/gripper/afterattack(atom/target, mob/user as mob) +/obj/item/weapon/gripper/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) + return - if(!target) //Target is invalid. +/obj/item/weapon/gripper/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, flag, params) + + if(!target || !flag) //Target is invalid or we are not adjacent. return //There's some weirdness with items being lost inside the arm. Trying to fix all cases. ~Z @@ -139,7 +142,12 @@ "plastic" = 0 ) -/obj/item/weapon/matter_decompiler/afterattack(atom/target, mob/user as mob) +/obj/item/weapon/matter_decompiler/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) + return + +/obj/item/weapon/matter_decompiler/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, flag, params) + + if(!flag) return //Not adjacent. //We only want to deal with using this on turfs. Specific items aren't important. var/turf/T = get_turf(target) From a7c3c67da88fbf5a66e49b04ae59063e6fa3d29a Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sun, 1 Jun 2014 21:09:30 +0930 Subject: [PATCH 62/64] Fixes #5098 --- code/game/objects/items/weapons/tools.dm | 37 +++++++----------------- code/modules/power/cable.dm | 36 +++++------------------ 2 files changed, 18 insertions(+), 55 deletions(-) diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index b88550a0b5..2a7f3a5061 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -458,36 +458,19 @@ if(!(S.status & ORGAN_ROBOT) || user.a_intent != "help") return ..() - if(S.brute_dam) - S.heal_damage(15,0,0,1) - if(user != M) - user.visible_message("\red \The [user] patches some dents on \the [M]'s [S.display_name] with \the [src]",\ - "\red You patch some dents on \the [M]'s [S.display_name]",\ - "You hear a welder.") - else - user.visible_message("\red \The [user] patches some dents on their [S.display_name] with \the [src]",\ - "\red You patch some dents on your [S.display_name]",\ - "You hear a welder.") - return - if(istype(M,/mob/living/carbon/human)) - var/mob/living/carbon/human/H = M - if(H.species.flags & IS_SYNTHETIC) - - if(H.getBruteLoss() > 0) - - if(M == user) - user << "\red You can't repair damage to your own body - it's against OH&S." - return - - user.visible_message("\red \The [user] patches some dents on \the [M] with \the [src]",\ - "\red You patch some of the dents on \the [M].",\ - "You hear a welder.") - H.heal_overall_damage(5,0) + if(M == user) + user << "\red You can't repair damage to your own body - it's against OH&S." return - user << "Nothing to fix!" + if(S.brute_dam) + S.heal_damage(15,0,0,1) + user.visible_message("\red \The [user] patches some dents on \the [M]'s [S.display_name] with \the [src].") + return + else + user << "Nothing to fix!" + else - return ..() + return ..() \ No newline at end of file diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index 93d196942f..0c143c28a4 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -640,39 +640,19 @@ obj/structure/cable/proc/cableColor(var/colorC) if(!(S.status & ORGAN_ROBOT) || user.a_intent != "help") return ..() - if(S.burn_dam > 0 && use(1)) - S.heal_damage(0,15,0,1) - - if(user != M) - user.visible_message("\The [user] repairs some burn damage on [M]'s [S.display_name] with \the [src]",\ - "\The [user] repairs some burn damage on your [S.display_name]",\ - "You hear wires being cut.") - else - user.visible_message("\The [user] repairs some burn damage on their [S.display_name] with \the [src]",\ - "You repair some burn damage on your [S.display_name]",\ - "You hear wires being cut.") - - return - if(istype(M,/mob/living/carbon/human)) - var/mob/living/carbon/human/H = M - if(H.species.flags & IS_SYNTHETIC) - - if(H.getFireLoss() > 0) - - if(M == user) - user << "\red You can't repair damage to your own body - it's against OH&S." - return - - user.visible_message("\The [user] repairs some burn damage on [M] with \the [src]",\ - "You repair some of \the [M]'s burn damage.",\ - "You hear wires being cut.") - H.heal_overall_damage(0,5) + if(M == user) + user << "\red You can't repair damage to your own body - it's against OH&S." return - user << "Nothing to fix!" + if(S.burn_dam > 0 && use(1)) + S.heal_damage(0,15,0,1) + user.visible_message("\red \The [user] repairs some burn damage on \the [M]'s [S.display_name] with \the [src].") + return + else + user << "Nothing to fix!" else return ..() From 5563fa9471643d5e5dcba90e970f5a10989499d3 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Mon, 2 Jun 2014 00:02:08 +0930 Subject: [PATCH 63/64] Typo. --- code/modules/mob/living/silicon/robot/drone/drone_items.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/silicon/robot/drone/drone_items.dm b/code/modules/mob/living/silicon/robot/drone/drone_items.dm index e2fcadb7d5..b8d3025db1 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_items.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_items.dm @@ -1,4 +1,4 @@ -s//Simple borg hand. +//Simple borg hand. //Limited use. /obj/item/weapon/gripper name = "magnetic gripper" From eb23c44c8a02ef573fd5198ca480f4f6f5421304 Mon Sep 17 00:00:00 2001 From: Hubblenaut Date: Sun, 1 Jun 2014 20:15:39 +0200 Subject: [PATCH 64/64] Removes explosive implants from nuke ops --- code/game/gamemodes/nuclear/nuclear.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm index 5674ea9098..814b6fbf1c 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -247,9 +247,9 @@ synd_mob.equip_to_slot_or_del(new /obj/item/clothing/suit/space/rig/syndi/human(synd_mob), slot_wear_suit) synd_mob.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/rig/syndi/human(synd_mob), slot_head) - var/obj/item/weapon/implant/explosive/E = new/obj/item/weapon/implant/explosive(synd_mob) - E.imp_in = synd_mob - E.implanted = 1 +// var/obj/item/weapon/implant/explosive/E = new/obj/item/weapon/implant/explosive(synd_mob) +// E.imp_in = synd_mob +// E.implanted = 1 synd_mob.update_icons() return 1

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 Date: Tue, 27 May 2014 12:20:23 +0930 Subject: [PATCH 33/64] Updated icon for previous commit, sigh. --- icons/mob/custom-synthetic.dmi | Bin 186692 -> 188295 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/custom-synthetic.dmi b/icons/mob/custom-synthetic.dmi index 4bb113428337837aff651aed8dcb748461511224..0e2f6ea246ea6406b9301ddb94652f09d18a6da9 100644 GIT binary patch delta 39226 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 Ai~s-t delta 37610 zcmZU*2Urtb*EJk^Q$VRoRZv7kP@2>rC`E*zC{+kWL@CmXw4o`2bOaQTA_&q!s!~D~ zklv;D-b*MUzW=}=v>W$k`|qRDW-Uz_ zeE-$d7f#wMt66=*ysEaGx49a#&mZtMrb~yC(y*VNwl00DzWTf)eIC-G_8R8QFV1wmOF2GXq5SoD`T3{$nIq6K;>ZipF`8rV-P&`^ev}5 zYtSqwq;TB0-9+`WX3>qU<`Kg6^3G`$?PWAYA*qI3<*?AX-5Kfc^vpkBh+pGlP&lHK z-nv2EB#rmpc{?4<(Cg8$dD9~!W$oU~kt55!HM(aM@gA?`^)Ao-=QG1dMdEA5`t97K z?!CnhO)|OeN1pdigaHlp=lb>Nou;I)?G!w+mCUw`~KkHeq` zCQh!3i;K_j5RR#ol$FnMb4U1-QGJC7_&d%^XYeOI(AwP`MJp=-e)Yz-XufkC93P5{ zMJHSaG^>^pZF;As3hAuW)k9u�&rZVfo?m@ogWB%fnBiB+!Km7dF0dF2@QW=7_&U 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 From 694f0706bbf1e94ce4a53655f8454e095ff31a82 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Tue, 27 May 2014 02:39:32 -0400 Subject: [PATCH 34/64] Fixes inhale_pp ratio The amount of inhaled gas used shouldn't approach infinity as inhale_pp goes to zero, should it? Also the amount of gas used should decrease with inhale_pp as the oxyloss is being caused by the fact that fewer moles are entering the bloodstream. --- code/modules/mob/living/carbon/human/life.dm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 036a84b8b1..a5a877990a 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -491,10 +491,11 @@ if(prob(20)) spawn(0) emote("gasp") if(inhale_pp > 0) - var/ratio = safe_pressure_min/inhale_pp + var/ratio = inhale_pp/safe_pressure_min // Don't fuck them up too fast (space only does HUMAN_MAX_OXYLOSS after all!) - adjustOxyLoss(min(5*ratio, HUMAN_MAX_OXYLOSS)) + // What's going on here? ratio will always be < 1, and HUMAN_MAX_OXYLOSS = 1... + adjustOxyLoss(min(5*(1/ratio), HUMAN_MAX_OXYLOSS)) failed_last_breath = 1 inhaled_gas_used = inhaling*ratio/6 From fbaa84c509742b06fcb6767b2cb9db1711ae6610 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Tue, 27 May 2014 02:41:12 -0400 Subject: [PATCH 35/64] More sensible oxyloss scaling --- code/modules/mob/living/carbon/human/life.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index a5a877990a..a190f0221c 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -494,8 +494,7 @@ var/ratio = inhale_pp/safe_pressure_min // Don't fuck them up too fast (space only does HUMAN_MAX_OXYLOSS after all!) - // What's going on here? ratio will always be < 1, and HUMAN_MAX_OXYLOSS = 1... - adjustOxyLoss(min(5*(1/ratio), HUMAN_MAX_OXYLOSS)) + adjustOxyLoss(min(5*(1 - ratio), HUMAN_MAX_OXYLOSS)) failed_last_breath = 1 inhaled_gas_used = inhaling*ratio/6 From f9e23cb39b43ef46b9d4ea48bc7d60e615c4010d Mon Sep 17 00:00:00 2001 From: Ccomp5950 Date: Tue, 27 May 2014 03:58:36 -0500 Subject: [PATCH 36/64] Beepsky will no longer attack monkeys while doing weapons authorization checks. I'd say it's a holdover from monkey epidemic but the truth is this is cael code that is being changed, it's been that way for over a year and I still can't rap my head around why these lines were put in. --- code/game/machinery/bots/secbot.dm | 2 -- 1 file changed, 2 deletions(-) diff --git a/code/game/machinery/bots/secbot.dm b/code/game/machinery/bots/secbot.dm index 917d399323..784011e4d9 100644 --- a/code/game/machinery/bots/secbot.dm +++ b/code/game/machinery/bots/secbot.dm @@ -600,8 +600,6 @@ Auto Patrol: []"}, if(istype(C, /mob/living/carbon/human)) src.threatlevel = src.assess_perp(C) - else if((src.idcheck) && (istype(C, /mob/living/carbon/monkey))) - src.threatlevel = 4 else if(istype(M, /mob/living/simple_animal/hostile)) if(M.stat == DEAD) From a29861480a77bb862953cf5ed15c05724f75b3da Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Wed, 28 May 2014 16:35:06 +0930 Subject: [PATCH 37/64] Fixes #5023 --- code/game/objects/items/toys.dm | 12 +++++++++++- code/game/objects/items/weapons/storage/belt.dm | 6 ------ maps/tgstation2.dmm | 6 +++--- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index b7c0cef238..852072769a 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -585,4 +585,14 @@ force = 5 w_class = 4.0 slot_flags = SLOT_BACK -*/ \ No newline at end of file +*/ + +//This should really be somewhere else but I don't know where. w/e +/obj/item/weapon/inflatable_duck + name = "inflatable duck" + desc = "No bother to sink or swim when you can just float!" + icon_state = "inflatable" + item_state = "inflatable" + flags = FPRINT | TABLEPASS + icon = 'icons/obj/clothing/belts.dmi' + slot_flags = SLOT_BELT \ No newline at end of file diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index 8bdae5d853..06a94d0af6 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -157,12 +157,6 @@ "/obj/item/clothing/mask/luchador" ) -/obj/item/weapon/storage/belt/inflatable - name = "inflatable duck" - desc = "No bother to sink or swim when you can just float!" - icon_state = "inflatable" - item_state = "inflatable" - /obj/item/weapon/storage/belt/security/tactical name = "combat belt" desc = "Can hold security gear like handcuffs and flashes, with more pouches for more storage." diff --git a/maps/tgstation2.dmm b/maps/tgstation2.dmm index 706758221c..69fdec8200 100644 --- a/maps/tgstation2.dmm +++ b/maps/tgstation2.dmm @@ -6665,7 +6665,7 @@ "cyi" = (/turf/simulated/floor/holofloor{dir = 10; icon_state = "red"},/area/holodeck/source_basketball) "cyj" = (/turf/simulated/floor/holofloor{dir = 2; icon_state = "red"},/area/holodeck/source_basketball) "cyk" = (/turf/simulated/floor/holofloor{dir = 6; icon_state = "red"},/area/holodeck/source_basketball) -"cyl" = (/obj/item/weapon/storage/belt/inflatable,/turf/simulated/floor/beach/sand{tag = "icon-desert1"; icon_state = "desert1"},/area/holodeck/source_beach) +"cyl" = (/obj/item/inflatable,/turf/simulated/floor/beach/sand{tag = "icon-desert1"; icon_state = "desert1"},/area/holodeck/source_beach) "cym" = (/obj/structure/holowindow,/turf/simulated/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/source_thunderdomecourt) "cyn" = (/obj/structure/holowindow,/turf/simulated/floor/holofloor,/area/holodeck/source_thunderdomecourt) "cyo" = (/obj/structure/holowindow,/turf/simulated/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/source_thunderdomecourt) @@ -7626,7 +7626,7 @@ "cQH" = (/obj/machinery/door/airlock/hatch{icon_state = "door_locked"; locked = 1},/obj/machinery/atmospherics/pipe/simple/visible/yellow,/turf/simulated/floor/plating,/area/engine/engine_room) "cQI" = (/turf/unsimulated/floor{dir = 8; icon_state = "whitegreen"},/area/centcom/holding) "cQJ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{icon_state = "pdoor1"; id = "EngineEmitter"; layer = 3.3; name = "Engine Blast Doors"},/turf/simulated/floor/plating,/area/engine/engine_room) -"cQK" = (/turf/unsimulated/beach/sand{tag = "icon-desert"; icon_state = "desert"},/obj/item/weapon/storage/belt/inflatable,/turf/unsimulated/floor{tag = "icon-siding4"; name = "plating"; icon_state = "siding4"},/area/centcom/holding) +"cQK" = (/turf/unsimulated/beach/sand{tag = "icon-desert"; icon_state = "desert"},/obj/item/inflatable,/turf/unsimulated/floor{tag = "icon-siding4"; name = "plating"; icon_state = "siding4"},/area/centcom/holding) "cQL" = (/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/turf/unsimulated/floor{tag = "icon-siding8"; name = "plating"; icon_state = "siding8"},/area/centcom/holding) "cQM" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom) "cQN" = (/obj/machinery/door/airlock/hatch{icon_state = "door_locked"; locked = 1},/obj/machinery/atmospherics/pipe/simple/visible/cyan,/turf/simulated/floor/plating,/area/engine/engine_room) @@ -7686,7 +7686,7 @@ "cRP" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom) "cRQ" = (/obj/machinery/power/smes,/turf/simulated/floor/plating,/area/engine/engine_room) "cRR" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = 0; pixel_y = 29; req_access_txt = "0"},/turf/unsimulated/floor{dir = 4; icon_state = "whitegreencorner"},/area/centcom/holding) -"cRS" = (/obj/item/weapon/storage/belt/inflatable,/turf/unsimulated/beach/sand{tag = "icon-desert"; icon_state = "desert"},/area/centcom/ferry) +"cRS" = (/obj/item/inflatable,/turf/unsimulated/beach/sand{tag = "icon-desert"; icon_state = "desert"},/area/centcom/ferry) "cRT" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/tdome) "cRU" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/drinks/drinkingglass,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/holding) "cRV" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/evac) From c2b97b7fcba92179017ab16355d193444e8a988a Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Wed, 28 May 2014 16:41:54 +0930 Subject: [PATCH 38/64] Fixes #4643 --- code/modules/mob/living/simple_animal/hostile/mimic.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mimic.dm b/code/modules/mob/living/simple_animal/hostile/mimic.dm index fb1d63ca34..bf02fadbfb 100644 --- a/code/modules/mob/living/simple_animal/hostile/mimic.dm +++ b/code/modules/mob/living/simple_animal/hostile/mimic.dm @@ -127,7 +127,7 @@ // Copy Mimic // -var/global/list/protected_objects = list(/obj/structure/table, /obj/structure/cable, /obj/structure/window) +var/global/list/protected_objects = list(/obj/structure/table, /obj/structure/cable, /obj/structure/window, /obj/item/projectile/animate) /mob/living/simple_animal/hostile/mimic/copy From d9f728cff5160dcd2e66f40a381f76d4799a75ed Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Wed, 28 May 2014 16:57:15 +0930 Subject: [PATCH 39/64] Fixes #5061 --- code/WorkInProgress/kilakk/fax.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/WorkInProgress/kilakk/fax.dm b/code/WorkInProgress/kilakk/fax.dm index 0d8f4cdde1..2934d2ed74 100644 --- a/code/WorkInProgress/kilakk/fax.dm +++ b/code/WorkInProgress/kilakk/fax.dm @@ -136,7 +136,9 @@ var/list/alldepartments = list("Central Command") authenticated = 0 if(href_list["dept"]) + var/lastdpt = dpt dpt = input(usr, "Which department?", "Choose a department", "") as null|anything in alldepartments + if(!dpt) dpt = lastdpt if(href_list["auth"]) if ( (!( authenticated ) && (scan)) ) From d4c9bf19856cde4fd29a7846feb17c2331e15a6a Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Wed, 28 May 2014 16:57:30 +0930 Subject: [PATCH 40/64] Fixes #5035 --- code/game/machinery/bots/ed209bot.dm | 2 +- code/game/machinery/bots/medbot.dm | 2 +- code/game/machinery/bots/secbot.dm | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/machinery/bots/ed209bot.dm b/code/game/machinery/bots/ed209bot.dm index ab59cb9701..4893bf47c2 100644 --- a/code/game/machinery/bots/ed209bot.dm +++ b/code/game/machinery/bots/ed209bot.dm @@ -731,7 +731,7 @@ Auto Patrol: []"}, /obj/machinery/bot/ed209/Bump(M as mob|obj) //Leave no door unopened! if ((istype(M, /obj/machinery/door)) && (!isnull(src.botcard))) var/obj/machinery/door/D = M - if (!istype(D, /obj/machinery/door/firedoor) && D.check_access(src.botcard)) + if (!istype(D, /obj/machinery/door/firedoor) && D.check_access(src.botcard) && !istype(D,/obj/machinery/door/poddoor)) D.open() src.frustration = 0 else if ((istype(M, /mob/living/)) && (!src.anchored)) diff --git a/code/game/machinery/bots/medbot.dm b/code/game/machinery/bots/medbot.dm index a1d524a480..1054f3c358 100644 --- a/code/game/machinery/bots/medbot.dm +++ b/code/game/machinery/bots/medbot.dm @@ -480,7 +480,7 @@ /obj/machinery/bot/medbot/Bump(M as mob|obj) //Leave no door unopened! if ((istype(M, /obj/machinery/door)) && (!isnull(src.botcard))) var/obj/machinery/door/D = M - if (!istype(D, /obj/machinery/door/firedoor) && D.check_access(src.botcard)) + if (!istype(D, /obj/machinery/door/firedoor) && D.check_access(src.botcard) && !istype(D,/obj/machinery/door/poddoor)) D.open() src.frustration = 0 else if ((istype(M, /mob/living/)) && (!src.anchored)) diff --git a/code/game/machinery/bots/secbot.dm b/code/game/machinery/bots/secbot.dm index 784011e4d9..06efb4673c 100644 --- a/code/game/machinery/bots/secbot.dm +++ b/code/game/machinery/bots/secbot.dm @@ -680,7 +680,7 @@ Auto Patrol: []"}, /obj/machinery/bot/secbot/Bump(M as mob|obj) //Leave no door unopened! if((istype(M, /obj/machinery/door)) && (!isnull(src.botcard))) var/obj/machinery/door/D = M - if(!istype(D, /obj/machinery/door/firedoor) && D.check_access(src.botcard)) + if(!istype(D, /obj/machinery/door/firedoor) && D.check_access(src.botcard) && !istype(D,/obj/machinery/door/poddoor)) D.open() src.frustration = 0 else if((istype(M, /mob/living/)) && (!src.anchored)) From 8f50fbcd3bd89a8e69cb68eaa476cc599398434a Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Wed, 28 May 2014 17:00:31 +0930 Subject: [PATCH 41/64] Fixes #4940 --- code/modules/mob/living/simple_animal/friendly/spiderbot.dm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm index 71e38d0ba5..4f50ef31e4 100644 --- a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm +++ b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm @@ -19,6 +19,8 @@ icon_state = "spiderbot-chassis" icon_living = "spiderbot-chassis" icon_dead = "spiderbot-smashed" + universal_speak = 1 //Temp until these are rewritten. + wander = 0 health = 10 @@ -33,9 +35,8 @@ response_disarm = "shoos" response_harm = "stomps on" + var/emagged = 0 var/obj/item/held_item = null //Storage for single item they can hold. - var/emagged = 0 //IS WE EXPLODEN? - var/syndie = 0 //IS WE SYNDICAT? (currently unused) speed = -1 //Spiderbots gotta go fast. //pass_flags = PASSTABLE //Maybe griefy? small = 1 From 47a7617edd8bfc933b32a8a68829e8a8f6d85972 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Wed, 28 May 2014 11:27:21 -0400 Subject: [PATCH 42/64] Inaprovaline no longer a substitute for breathing --- code/modules/mob/living/carbon/human/life.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index cfcc611f19..907d6043c7 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -308,9 +308,11 @@ var/datum/gas_mixture/environment = loc.return_air() var/datum/gas_mixture/breath + // HACK NEED CHANGING LATER - if(health < config.health_threshold_crit) + if(health < config.health_threshold_crit && !reagents.has_reagent("inaprovaline")) losebreath++ + if(losebreath>0) //Suffocating so do not take a breath losebreath-- if (prob(10)) //Gasp per 10 ticks? Sounds about right. @@ -418,8 +420,6 @@ return if(!breath || (breath.total_moles() == 0) || suiciding) - if(reagents.has_reagent("inaprovaline")) - return if(suiciding) adjustOxyLoss(2)//If you are suiciding, you should die a little bit faster failed_last_breath = 1 From c9ec1fc00152dc10c830494d805cca15536fd4ca Mon Sep 17 00:00:00 2001 From: Walter0o Date: Wed, 28 May 2014 22:05:29 +0200 Subject: [PATCH 43/64] fixes exploits with the mech fabricator (bay12) this exploit is in all public builds i could look at. using the mech fabricator, and you were able to duplicate any obj in the server. as a nice bonus you could also abuse the part-description-function to identify any atom in the server memory for even easier access to other yet unknown exploits of this kind. and also range check was missing to make sure you are not on some other z level massproducing guns. i will not go into details, as it is exactly the same kind of exploit over and over, so if you are interested on how and why these exploits work, see some of my other exploit commits : https://github.com/Baystation12/Baystation12/pull/5068 https://github.com/Baystation12/Baystation12/pull/4750 i advise any coder team to be supercautious when changing/writing new Topic procs to prevent these, and to always doublecheck other coder's works. --- code/game/mecha/mech_fabricator.dm | 47 +++++++++++++++++++++++++++--- 1 file changed, 43 insertions(+), 4 deletions(-) diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm index f15ae7eb48..2af96aeeac 100644 --- a/code/game/mecha/mech_fabricator.dm +++ b/code/game/mecha/mech_fabricator.dm @@ -362,6 +362,11 @@ /obj/machinery/mecha_part_fabricator/proc/build_part(var/obj/item/part) if(!part) return + + // critical exploit prevention, do not remove unless you replace it -walter0o + if( !(locate(part, src.contents)) || !(part.vars.Find("construction_time")) || !(part.vars.Find("construction_cost")) ) // these 3 are the current requirements for an object being buildable by the mech_fabricator + return + src.being_built = new part.type(src) src.desc = "It's building [src.being_built]." src.remove_resources(part) @@ -603,9 +608,26 @@ onclose(user, "mecha_fabricator") return +/obj/machinery/mecha_part_fabricator/proc/exploit_prevention(var/obj/Part, mob/user as mob, var/desc_exploit) +// critical exploit prevention, feel free to improve or replace this, but do not remove it -walter0o + + if(!Part || !user || !istype(Part) || !istype(user)) // sanity + return 1 + + if( !(locate(Part, src.contents)) || !(Part.vars.Find("construction_time")) || !(Part.vars.Find("construction_cost")) ) // these 3 are the current requirements for an object being buildable by the mech_fabricator + + var/turf/LOC = get_turf(user) + message_admins("[key_name_admin(user)] tried to exploit an Exosuit Fabricator to [desc_exploit ? "get the desc of" : "duplicate"] [Part] ! ([LOC ? "JMP" : "null"])", 0) + log_admin("EXPLOIT : [key_name(user)] tried to exploit an Exosuit Fabricator to [desc_exploit ? "get the desc of" : "duplicate"] [Part] !") + return 1 + + return null /obj/machinery/mecha_part_fabricator/Topic(href, href_list) - ..() + + if(..()) // critical exploit prevention, do not remove unless you replace it -walter0o + return + var/datum/topic_input/filter = new /datum/topic_input(href,href_list) if(href_list["part_set"]) var/tpart_set = filter.getStr("part_set") @@ -616,13 +638,25 @@ src.part_set = tpart_set screen = "parts" if(href_list["part"]) - var/list/part = filter.getObj("part") + var/obj/part = filter.getObj("part") + + // critical exploit prevention, do not remove unless you replace it -walter0o + if(src.exploit_prevention(part, usr)) + return + if(!processing_queue) build_part(part) else add_to_queue(part) if(href_list["add_to_queue"]) - add_to_queue(filter.getObj("add_to_queue")) + var/obj/part = filter.getObj("add_to_queue") + + // critical exploit prevention, do not remove unless you replace it -walter0o + if(src.exploit_prevention(part, usr)) + return + + add_to_queue(part) + return update_queue_on_page() if(href_list["remove_from_queue"]) remove_from_queue(filter.getNum("remove_from_queue")) @@ -661,7 +695,12 @@ return update_queue_on_page() if(href_list["part_desc"]) var/obj/part = filter.getObj("part_desc") - if(part) + + // critical exploit prevention, do not remove unless you replace it -walter0o + if(src.exploit_prevention(part, usr, 1)) + return + + if(part) temp = {"