From 7fa80e799a9884477d99e1ba330cfbfa20a00c2a Mon Sep 17 00:00:00 2001 From: Iamgoofball Date: Wed, 20 Nov 2013 14:56:49 -0800 Subject: [PATCH] made head PDA carts be in lockboxes. Added Abandoned Crates! --- baystation12.dme | 1 + code/modules/mining/abandonedcrates.dm | 147 +++++++++++++++++++++++++ code/modules/mining/mine_turfs.dm | 6 +- code/modules/research/designs.dm | 10 +- 4 files changed, 162 insertions(+), 2 deletions(-) create mode 100644 code/modules/mining/abandonedcrates.dm diff --git a/baystation12.dme b/baystation12.dme index 35a7237aa16..2aadb62ced4 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -819,6 +819,7 @@ #include "code\modules\maps\reader.dm" #include "code\modules\maps\swapmaps.dm" #include "code\modules\maps\writer.dm" +#include "code\modules\mining\abandonedcrates.dm" #include "code\modules\mining\machine_input_output_plates.dm" #include "code\modules\mining\machine_processing.dm" #include "code\modules\mining\machine_stacking.dm" diff --git a/code/modules/mining/abandonedcrates.dm b/code/modules/mining/abandonedcrates.dm new file mode 100644 index 00000000000..72ddbffe4a9 --- /dev/null +++ b/code/modules/mining/abandonedcrates.dm @@ -0,0 +1,147 @@ +/obj/structure/closet/crate/secure/loot + name = "abandoned crate" + desc = "What could be inside?" + icon_state = "securecrate" + icon_opened = "securecrateopen" + icon_closed = "securecrate" + var/code = null + var/lastattempt = null + var/attempts = 3 + locked = 1 + var/min = 1 + var/max = 10 + +/obj/structure/closet/crate/secure/loot/New() + ..() + code = rand(min,max) + var/loot = rand(1,30) + switch(loot) + if(1) + new/obj/item/weapon/reagent_containers/food/drinks/bottle/rum(src) + new/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiadeus(src) + new/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey(src) + new/obj/item/weapon/lighter/zippo(src) + if(2) + new/obj/item/weapon/pickaxe/drill(src) + new/obj/item/device/taperecorder(src) + new/obj/item/clothing/suit/space/rig(src) + new/obj/item/clothing/head/helmet/space/rig(src) + if(3) + for(var/i = 0, i < 12, i++) + new/obj/item/weapon/coin/diamond(src) + if(4) + new/obj/item/clothing/shoes/clown_shoes(src) + new/obj/item/clothing/under/rank/clown(src) + new/obj/item/clothing/mask/gas/clown_hat(src) + new/obj/item/weapon/bananapeel(src) + if(5) + for(var/i = 0, i < 6, i++) + new/obj/item/weapon/reagent_containers/food/snacks/sliceable/birthdaycake(src) + new/obj/item/weapon/lighter/zippo(src) + if(7) + new/obj/item/weapon/reagent_containers/glass/beaker/bluespace(src) + if(9) + for(var/i = 0, i < 5, i++) + new/obj/item/weapon/ore/diamond(src) + if(10) + for(var/i = 0, i < 5, i++) + new/obj/item/weapon/ore/clown(src) + if(11) + return + if(12) + new/obj/item/seeds/deathberryseed(src) + new/obj/item/seeds/deathnettleseed(src) + if(13) + new/obj/machinery/hydroponics(src) + if(14) + new/obj/item/seeds/cashseed(src) + if(15) + for(var/i = 0, i < 3, i++) + new/obj/item/weapon/reagent_containers/glass/beaker/noreact(src) + new/obj/item/weapon/reagent_containers/hypospray(src) + if(16) + for(var/i = 0, i < 9, i++) + new/obj/item/bluespace_crystal(src) + if(17) + new/obj/item/mecha_parts/mecha_equipment/weapon/honker(src) + new/obj/item/mecha_parts/chassis/honker(src) + new/obj/item/mecha_parts/part/honker_torso(src) + new/obj/item/mecha_parts/part/honker_head(src) + new/obj/item/mecha_parts/part/honker_left_arm(src) + if(18) + return + if(19) + for(var/i = 0, i < 4, i++) + new/obj/item/weapon/melee/classic_baton(src) + if(20) + new/obj/item/weapon/storage/lockbox/clusterbang(src) + if(21) + new/obj/item/weapon/aiModule/robocop(src) + if(22) + new/obj/item/clothing/under/chameleon(src) + for(var/i = 0, i < 7, i++) + new/obj/item/clothing/tie/horrible(src) + if(23) + new/obj/item/clothing/under/shorts(src) + new/obj/item/clothing/under/shorts/red(src) + new/obj/item/clothing/under/shorts/blue(src) + //Dummy crates start here. + if(24 to 29) + return + if(8) + return + if(6) + return + //Dummy crates end here. + if(30) + for(var/i = 0, i < 4, i++) + new/obj/item/weapon/melee/baton(src) + +/obj/structure/closet/crate/secure/loot/attack_hand(mob/user as mob) + if(locked) + user << "The crate is locked with a Deca-code lock." + var/input = input(usr, "Enter digit from [min] to [max].", "Deca-Code Lock", "") as num + if(in_range(src, user)) + input = Clamp(input, 0, 10) + if (input == code) + user << "The crate unlocks!" + locked = 0 + else if (input == null || input > max || input < min) + user << "You leave the crate alone." + else + user << "A red light flashes." + lastattempt = input + attempts-- + if (attempts == 0) + user << "The crate's anti-tamper system activates!" + var/turf/T = get_turf(src.loc) + explosion(T, 0, 1, 2, 1) + del(src) + return + else + user << "You attempt to interact with the device using a hand gesture, but it appears this crate is from before the DECANECT came out." + return + else + return ..() + +/obj/structure/closet/crate/secure/loot/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(locked) + if (istype(W, /obj/item/weapon/card/emag)) + user << "The crate unlocks!" + locked = 0 + if (istype(W, /obj/item/device/multitool)) + user << "DECA-CODE LOCK REPORT:" + if (attempts == 1) + user << "* Anti-Tamper Bomb will activate on next failed access attempt." + else + user << "* Anti-Tamper Bomb will activate after [src.attempts] failed access attempts." + if (lastattempt == null) + user << " has been made to open the crate thus far." + return + // hot and cold + if (code > lastattempt) + user << "* Last access attempt lower than expected code." + else + user << "* Last access attempt higher than expected code." + else ..() + else ..() diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index 83077154a84..c410a51c00b 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -486,7 +486,11 @@ commented out in r5061, I left it because of the shroom thingies var/turf/simulated/floor/plating/airless/asteroid/N = ChangeTurf(/turf/simulated/floor/plating/airless/asteroid) N.fullUpdateMineralOverlays() - + var/crate = rand(1,30) + switch(crate) + if(1) + visible_message("After digging, you find an old dusty crate buried within!") + new/obj/structure/closet/crate/secure/loot(src) return /turf/simulated/mineral/proc/excavate_find(var/prob_clean = 0, var/datum/find/F) diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index ab8b95e1116..7b1c2bd22b7 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -1746,6 +1746,7 @@ datum/design/cart_security build_type = PROTOLATHE materials = list("$metal" = 50, "$glass" = 50) build_path = "/obj/item/weapon/cartridge/security" + locked = 1 datum/design/cart_janitor name = "CustodiPRO Cartridge" desc = "A data cartridge for portable microcomputers." @@ -1786,6 +1787,7 @@ datum/design/cart_quartermaster build_type = PROTOLATHE materials = list("$metal" = 50, "$glass" = 50) build_path = "/obj/item/weapon/cartridge/quartermaster" + locked = 1 datum/design/cart_hop name = "Human Resources 9001 Cartridge" desc = "A data cartridge for portable microcomputers." @@ -1794,6 +1796,7 @@ datum/design/cart_hop build_type = PROTOLATHE materials = list("$metal" = 50, "$glass" = 50) build_path = "/obj/item/weapon/cartridge/hop" + locked = 1 datum/design/cart_hos name = "R.O.B.U.S.T. DELUXE Cartridge" desc = "A data cartridge for portable microcomputers." @@ -1802,6 +1805,7 @@ datum/design/cart_hos build_type = PROTOLATHE materials = list("$metal" = 50, "$glass" = 50) build_path = "/obj/item/weapon/cartridge/hos" + locked = 1 datum/design/cart_ce name = "Power-On DELUXE Cartridge" desc = "A data cartridge for portable microcomputers." @@ -1810,6 +1814,7 @@ datum/design/cart_ce build_type = PROTOLATHE materials = list("$metal" = 50, "$glass" = 50) build_path = "/obj/item/weapon/cartridge/ce" + locked = 1 datum/design/cart_cmo name = "Med-U DELUXE Cartridge" desc = "A data cartridge for portable microcomputers." @@ -1818,6 +1823,7 @@ datum/design/cart_cmo build_type = PROTOLATHE materials = list("$metal" = 50, "$glass" = 50) build_path = "/obj/item/weapon/cartridge/cmo" + locked = 1 datum/design/cart_rd name = "Signal Ace DELUXE Cartridge" desc = "A data cartridge for portable microcomputers." @@ -1826,6 +1832,7 @@ datum/design/cart_rd build_type = PROTOLATHE materials = list("$metal" = 50, "$glass" = 50) build_path = "/obj/item/weapon/cartridge/rd" + locked = 1 datum/design/cart_captain name = "Value-PAK Cartridge" desc = "A data cartridge for portable microcomputers." @@ -1834,6 +1841,7 @@ datum/design/cart_captain build_type = PROTOLATHE materials = list("$metal" = 50, "$glass" = 50) build_path = "/obj/item/weapon/cartridge/captain" + locked = 1 datum/design/cart_traitor name = "Detomatix Cart" desc = "A data cartridge for portable microcomputers." @@ -1841,4 +1849,4 @@ datum/design/cart_traitor req_tech = list("syndicate" = 2, "powerstorage" = 3) build_type = PROTOLATHE materials = list("$metal" = 50, "$glass" = 50) - build_path = "/obj/item/weapon/cartridge/syndicate" \ No newline at end of file + build_path = "/obj/item/weapon/cartridge/syndicate"