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/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 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/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" 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 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) 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:

+ +
+

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.
  • -