From b2f098c39b3f1c8021f29668ad0f27c313e85b43 Mon Sep 17 00:00:00 2001 From: Erthilo Date: Tue, 15 May 2012 23:31:44 +0100 Subject: [PATCH 1/5] Small fix for making cable restraints with exactly 15 lengths. Added using a wirecutter on a restrained person to quickly release them. --- code/game/objects/items/weapons/tools.dm | 13 ++++++++++++- code/modules/power/cable.dm | 4 ++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index 3e6b14ee0c5..4d301b5fc0c 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -323,4 +323,15 @@ WELDINGTOOOL New() if(prob(50)) - icon_state = "cutters-y" \ No newline at end of file + icon_state = "cutters-y" + +/obj/item/weapon/wirecutters/attack(mob/M as mob, mob/user as mob) + if((M.handcuffed) && (istype(M:handcuffed, /obj/item/weapon/handcuffs/cable))) + M.visible_message("You cut \the [M]'s restraints with \the [src]!",\ + "\The [usr] cuts \the [M]'s restraints with \the [src]!",\ + "You hear cable being cut.") + M.handcuffed = null + M.update_clothing() + return + else + ..() \ No newline at end of file diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index 78af9433113..1972513d46f 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -252,13 +252,13 @@ if(src.amount <= 14) usr << "\red You need at least 15 lengths to make restraints!" return + var/obj/item/weapon/handcuffs/cable/B = new /obj/item/weapon/handcuffs/cable(usr.loc) + usr << "\blue You wind some cable together to make some restraints." if(src.amount == 15) del(src) else src.amount -= 15 - var/obj/item/weapon/handcuffs/cable/B = new /obj/item/weapon/handcuffs/cable(usr.loc) B.layer = 20 - usr << "\blue You wind some cable together to make some restraints." ..() /obj/item/weapon/cable_coil/attackby(obj/item/weapon/W, mob/user) From 7de0918d3ebd90754ee45228ee9f7dd95d3a83b3 Mon Sep 17 00:00:00 2001 From: Erthilo Date: Tue, 15 May 2012 23:53:35 +0100 Subject: [PATCH 2/5] TG: Random button added to traitor uplinks. - All traitor items are available in the random button so long as you have the crystals to purchase it. - This means it's possible (though very unlikely) to get 5 sets of revolver ammo. - It's RANDOM, don't expect great stuff every time. Made startSinglo() a game-master only verb in the debug tab. - It is incredibly useful and time saving when testing stuff out before committing. Added borgs, AIs and dead players to the list of protected paths in the delete all verb. - Unless someone can give me a valid reason as to why an admin would delete all ghosts. Revision: r3595 Author: johnsonmt88 --- code/WorkInProgress/Ported/Abi79/uplinks.dm | 93 +++++++++++++++++++++ code/game/gamemodes/game_mode.dm | 3 +- code/modules/admin/admin_verbs.dm | 5 +- code/modules/admin/verbs/debug.dm | 6 +- 4 files changed, 102 insertions(+), 5 deletions(-) diff --git a/code/WorkInProgress/Ported/Abi79/uplinks.dm b/code/WorkInProgress/Ported/Abi79/uplinks.dm index a27345d4c02..f7af9e38cf3 100644 --- a/code/WorkInProgress/Ported/Abi79/uplinks.dm +++ b/code/WorkInProgress/Ported/Abi79/uplinks.dm @@ -71,11 +71,104 @@ A list of items and costs is stored under the datum of every game mode, alongsid src.menu_message += "[name] ([cost])
" category_items++ +// src.menu_message += "Random Item (??)
" src.menu_message += "
" return Topic(href, href_list) if (href_list["buy_item"]) +/* if(href_list["buy_item"] == "random") + var/list/randomItems = list() + + //Sorry for all the ifs, but it makes it 1000 times easier for other people/servers to add or remove items from this list + //Add only items the player can afford: + if(uses > 19) + randomItems.Add("/obj/item/weapon/circuitboard/teleporter") //Teleporter Circuit Board (costs 20, for nuke ops) + + if(uses > 9) + randomItems.Add("/obj/item/toy/syndicateballoon")//Syndicate Balloon + randomItems.Add("/obj/item/weapon/storage/syndie_kit/imp_uplink") //Uplink Implanter + randomItems.Add("/obj/item/weapon/storage/box/syndicate") //Syndicate bundle + + //if(uses > 8) //Nothing... yet. + //if(uses > 7) //Nothing... yet. + + if(uses > 6) + randomItems.Add("/obj/item/weapon/aiModule/syndicate") //Hacked AI Upload Module + randomItems.Add("/obj/machinery/singularity_beacon/syndicate") //Singularity Beacon + + if(uses > 5) + randomItems.Add("/obj/item/weapon/gun/projectile") //Revolver + + if(uses > 4) + randomItems.Add("/obj/item/weapon/gun/energy/crossbow") //Energy Crossbow + randomItems.Add("/obj/item/device/powersink") //Powersink + + if(uses > 3) + randomItems.Add("/obj/item/weapon/melee/energy/sword") //Energy Sword + randomItems.Add("/obj/item/clothing/mask/gas/voice") //Voice Changer + randomItems.Add("/obj/item/device/chameleon") //Chameleon Projector + randomItems.Add("/obj/item/clothing/glasses/thermal") //Syndicate Space Suit + + if(uses > 2) + randomItems.Add("/obj/item/weapon/storage/emp_kit") //EMP Grenades + randomItems.Add("/obj/item/weapon/pen/paralysis") //Paralysis Pen + randomItems.Add("/obj/item/weapon/cartridge/syndicate") //Detomatix Cartridge + randomItems.Add("/obj/item/clothing/under/chameleon") //Chameleon Jumpsuit + randomItems.Add("/obj/item/weapon/card/id/syndicate") //Agent ID Card + randomItems.Add("/obj/item/weapon/card/emag") //Cryptographic Sequencer + randomItems.Add("/obj/item/weapon/storage/syndie_kit/space") //Syndicate Space Suit + randomItems.Add("/obj/item/device/encryptionkey/binary") //Binary Translator Key + randomItems.Add("/obj/item/weapon/storage/syndie_kit/imp_freedom") //Freedom Implant + + if(uses > 1) + var/list/usrItems = usr.get_contents() + var/hasRevolver = 0 + for(var/obj/I in usrItems) //Only add revolver ammo if the user has a gun that can shoot it + if(istype(I,/obj/item/weapon/gun/projectile)) + hasRevolver = 1 + + if(hasRevolver) randomItems.Add("/obj/item/ammo_magazine/a357") //Revolver ammo + randomItems.Add("/obj/item/clothing/shoes/syndigaloshes") //No-Slip Syndicate Shoes + randomItems.Add("/obj/item/weapon/plastique") //C4 + + if(uses > 0) + randomItems.Add("/obj/item/weapon/soap/syndie") //Syndicate Soap + randomItems.Add("/obj/item/weapon/storage/toolbox/syndicate") //Syndicate Toolbox + + if(!randomItems) + del(randomItems) + return 0 + else + href_list["buy_item"] = pick(randomItems) + + switch(href_list["buy_item"]) //Ok, this gets a little messy, sorry. + if("/obj/item/weapon/circuitboard/teleporter") + uses -= 20 + if("/obj/item/toy/syndicateballoon" , "/obj/item/weapon/storage/syndie_kit/imp_uplink") + uses -= 10 + if("/obj/item/weapon/aiModule/syndicate" , "/obj/machinery/singularity_beacon/syndicate" , "/obj/item/weapon/storage/box/syndicate") + uses -= 7 + if("/obj/item/weapon/gun/projectile") + uses -= 6 + if("/obj/item/weapon/gun/energy/crossbow" , "/obj/item/device/powersink") + uses -= 5 + if("/obj/item/weapon/melee/energy/sword" , "/obj/item/clothing/mask/gas/voice" , "/obj/item/device/chameleon" , "/obj/item/clothing/glasses/thermal") + uses -= 4 + if("/obj/item/weapon/storage/emp_kit" , "/obj/item/weapon/pen/paralysis" , "/obj/item/weapon/cartridge/syndicate" , "/obj/item/clothing/under/chameleon" , \ + "/obj/item/weapon/card/id/syndicate" , "/obj/item/weapon/card/emag" , "/obj/item/weapon/storage/syndie_kit/space" , "/obj/item/device/encryptionkey/binary" , \ + "/obj/item/weapon/storage/syndie_kit/imp_freedom") + uses -= 3 + if("/obj/item/ammo_magazine/a357" , "/obj/item/clothing/shoes/syndigaloshes" , "/obj/item/weapon/plastique") + uses -= 2 + if("/obj/item/weapon/soap/syndie" , "/obj/item/weapon/storage/toolbox/syndicate") + uses -= 1 + + del(randomItems) + return 1 +*/ + + if(text2num(href_list["cost"]) > uses) // Not enough crystals for the item return 0 diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 35232e6ab9c..e67d702ed53 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -70,8 +70,7 @@ Implants; /obj/item/weapon/storage/syndie_kit/imp_uplink:10:Uplink Implant (Contains 5 Telecrystals); Whitespace:Seperator; Badassery; -/obj/item/toy/syndicateballoon:10:For showing that You Are The BOSS (Useless Balloon); -Whitespace:Seperator;"} +/obj/item/toy/syndicateballoon:10:For showing that You Are The BOSS (Useless Balloon);"} // Items removed from above: /* diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 0a76b274e8f..a585e8a09ec 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -291,8 +291,9 @@ verbs += /client/proc/everyone_random verbs += /client/proc/only_one verbs += /client/proc/deadmin_self - verbs += /client/proc/giveruntimelog //used by coders to retrieve runtime logs - verbs += /client/proc/cinematic //used by coders to retrieve runtime logs + verbs += /client/proc/giveruntimelog //used by coders to retrieve runtime logs + verbs += /client/proc/cinematic //show a cinematic sequence + verbs += /client/proc/startSinglo //Used to prevent the station from losing power while testing stuff out. verbs += /client/proc/enable_debug_verbs verbs += /client/proc/kill_air verbs += /client/proc/callprocgen diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 8c0bf186172..3b794c05a11 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -461,7 +461,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that set name = "Del-All" // to prevent REALLY stupid deletions - var/blocked = list(/obj, /mob, /mob/living, /mob/living/carbon, /mob/living/carbon/human) + var/blocked = list(/obj, /mob, /mob/living, /mob/living/carbon, /mob/living/carbon/human, /mob/dead, /mob/dead/observer, /mob/living/silicon, /mob/living/silicon/robot, /mob/living/silicon/ai) var/hsbitem = input(usr, "Choose an object to delete.", "Delete:") as null|anything in typesof(/obj) + typesof(/mob) - blocked if(hsbitem) for(var/atom/O in world) @@ -902,6 +902,10 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that /client/proc/startSinglo() + set category = "Debug" + set name = "Start Singularity" + set desc = "Sets up the singularity and all machines to get power flowing through the station" + if(alert("Are you sure? This will start up the engine. Should only be used during debug!",,"Yes","No") != "Yes") return From 7023d9f79dcd0bc590e01231d99020e215597dbd Mon Sep 17 00:00:00 2001 From: Erthilo Date: Wed, 16 May 2012 00:11:35 +0100 Subject: [PATCH 3/5] TG: -Added security backpacks in Warden and HoS lockers -Added spare Warden's jacket in his locker -Some re-sorting of items in security lockers for convenience -Removed leather gloves from hydro lockers Revision: r3598 Author: ericgfw...@hotmail.com --- code/game/objects/closets/secure/hydroponics.dm | 3 ++- code/game/objects/closets/secure/security.dm | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/code/game/objects/closets/secure/hydroponics.dm b/code/game/objects/closets/secure/hydroponics.dm index 3831aa5dac2..99fec169fb8 100644 --- a/code/game/objects/closets/secure/hydroponics.dm +++ b/code/game/objects/closets/secure/hydroponics.dm @@ -16,7 +16,8 @@ new /obj/item/clothing/under/rank/hydroponics(src) new /obj/item/clothing/suit/storage/apron(src) new /obj/item/clothing/under/rank/hydroponics(src) - new /obj/item/clothing/head/helmet/greenbandana(src) new /obj/item/device/analyzer/plant_analyzer(src) + new /obj/item/clothing/head/helmet/greenbandana(src) + new /obj/item/weapon/minihoe(src) new /obj/item/weapon/hatchet(src) return \ No newline at end of file diff --git a/code/game/objects/closets/secure/security.dm b/code/game/objects/closets/secure/security.dm index dfc84c4d1e1..7cc627d870b 100644 --- a/code/game/objects/closets/secure/security.dm +++ b/code/game/objects/closets/secure/security.dm @@ -144,9 +144,9 @@ new /obj/item/device/pda/security(src) new /obj/item/device/radio/headset/headset_sec(src) new /obj/item/weapon/storage/belt/security(src) - new /obj/item/weapon/flashbang(src) - new /obj/item/weapon/pepperspray(src) new /obj/item/device/flash(src) + new /obj/item/weapon/pepperspray(src) + new /obj/item/weapon/flashbang(src) new /obj/item/weapon/melee/baton(src) new /obj/item/clothing/glasses/sunglasses/sechud(src) return From f33801aa3bd18aef047bc9899fd3608e518b4f43 Mon Sep 17 00:00:00 2001 From: Erthilo Date: Wed, 16 May 2012 01:26:16 +0100 Subject: [PATCH 4/5] Hotfix for pod shuttle windows letting air through. --- code/game/shuttle_engines.dm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/code/game/shuttle_engines.dm b/code/game/shuttle_engines.dm index 1ccdb01cdf4..5449634b6ab 100644 --- a/code/game/shuttle_engines.dm +++ b/code/game/shuttle_engines.dm @@ -1,8 +1,6 @@ - /obj/structure/shuttle name = "shuttle" icon = 'shuttle.dmi' - pressure_resistance = 4*ONE_ATMOSPHERE /obj/structure/shuttle/window name = "shuttle window" @@ -12,6 +10,12 @@ opacity = 0 anchored = 1 +/obj/structure/shuttle/window/New() + var/temploc = src.loc + for(var/turf/simulated/W in range(temploc,0)) + W.blocks_air = 1 + W.density = 1 + ..() /obj/structure/shuttle/engine name = "engine" From 6ed37603e03fce14a2abeb81de1cb53bd74be128 Mon Sep 17 00:00:00 2001 From: Erthilo Date: Wed, 16 May 2012 01:27:54 +0100 Subject: [PATCH 5/5] Changelog. --- html/changelog.html | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/html/changelog.html b/html/changelog.html index 6822b7f6856..914de4de9ac 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -47,6 +47,15 @@ Stuff which is in development and not yet visible to players or just code relate should be listed in the changelog upon commit though. Thanks. --> +
+

16 May 2012

+

Erthilo updated:

+
    +
  • You can cut cable cuffs with wirecutters for quick removal.
  • +
  • Stops pod windows leaking air everywhere.
  • +
+
+

15 May 2012

TG updated:

@@ -70,7 +79,6 @@ should be listed in the changelog upon commit though. Thanks. -->
  • The Head of Personnel can now change alert levels.
  • Fixes lockdown computers being blank.
  • -