diff --git a/baystation12.dme b/baystation12.dme index cb3cc48b238..ce1809a193a 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -179,7 +179,6 @@ #define FILE_DIR "icons/vending_icons" #define FILE_DIR "interface" #define FILE_DIR "maps" -#define FILE_DIR "maps/backup" #define FILE_DIR "sound" #define FILE_DIR "sound/ambience" #define FILE_DIR "sound/announcer" diff --git a/code/modules/mining/satchel_ore_box.dm b/code/modules/mining/satchel_ore_box.dm new file mode 100644 index 00000000000..c49cb19258d --- /dev/null +++ b/code/modules/mining/satchel_ore_box.dm @@ -0,0 +1,125 @@ +/**********************Satchel**************************/ + +/obj/item/weapon/satchel + icon = 'mining.dmi' + icon_state = "satchel" + name = "Mining Satchel" + var/mode = 1; //0 = pick one at a time, 1 = pick all on tile + var/capacity = 50; //the number of ore pieces it can carry. + flags = FPRINT | TABLEPASS | ONBELT + w_class = 1 + +/obj/item/weapon/satchel/attack_self(mob/user as mob) + for (var/obj/item/weapon/ore/O in contents) + contents -= O + O.loc = user.loc + user << "\blue You empty the satchel." + return + +/obj/item/weapon/satchel/attackby(obj/item/weapon/W as obj, mob/user as mob) + ..() + if (istype(W, /obj/item/weapon/ore)) + var/obj/item/weapon/ore/O = W + src.contents += O; + return + +/obj/item/weapon/satchel/verb/toggle_mode() + set name = "Switch Satchel Method" + set category = "Object" + + mode = !mode + switch (mode) + if(1) + usr << "The satchel now picks up all ore in a tile at once." + if(0) + usr << "The satchel now picks up one ore at a time." + + +/**********************Ore box**************************/ + +/obj/structure/ore_box + icon = 'mining.dmi' + icon_state = "orebox0" + name = "Ore Box" + desc = "It's heavy" + density = 1 + + New() + if(prob(50)) + icon_state = "orebox1" + +/obj/structure/ore_box/attackby(obj/item/weapon/W as obj, mob/user as mob) + if (istype(W, /obj/item/weapon/ore)) + src.contents += W; + if (istype(W, /obj/item/weapon/satchel)) + src.contents += W.contents + user << "\blue You empty the satchel into the box." + return + +/obj/structure/ore_box/attack_hand(obj, mob/user as mob) + var/amt_gold = 0 + var/amt_silver = 0 + var/amt_diamond = 0 + var/amt_glass = 0 + var/amt_iron = 0 + var/amt_plasma = 0 + var/amt_uranium = 0 + var/amt_clown = 0 + var/amt_adamantine = 0 + + for (var/obj/item/weapon/ore/C in contents) + if (istype(C,/obj/item/weapon/ore/diamond)) + amt_diamond++; + if (istype(C,/obj/item/weapon/ore/glass)) + amt_glass++; + if (istype(C,/obj/item/weapon/ore/plasma)) + amt_plasma++; + if (istype(C,/obj/item/weapon/ore/iron)) + amt_iron++; + if (istype(C,/obj/item/weapon/ore/silver)) + amt_silver++; + if (istype(C,/obj/item/weapon/ore/gold)) + amt_gold++; + if (istype(C,/obj/item/weapon/ore/uranium)) + amt_uranium++; + if (istype(C,/obj/item/weapon/ore/clown)) + amt_clown++; + if (istype(C,/obj/item/weapon/ore/adamantine)) + amt_adamantine++; + + var/dat = text("The contents of the ore box reveal...
") + if (amt_gold) + dat += text("Gold ore: [amt_gold]
") + if (amt_silver) + dat += text("Silver ore: [amt_silver]
") + if (amt_iron) + dat += text("Metal ore: [amt_iron]
") + if (amt_glass) + dat += text("Sand: [amt_glass]
") + if (amt_diamond) + dat += text("Diamond ore: [amt_diamond]
") + if (amt_plasma) + dat += text("Plasma ore: [amt_plasma]
") + if (amt_uranium) + dat += text("Uranium ore: [amt_uranium]
") + if (amt_clown) + dat += text("Bananium ore: [amt_clown]
") + if (amt_adamantine) + dat += text("Adamantine ore: [amt_adamantine]
") + + dat += text("

Empty box") + user << browse("[dat]", "window=orebox") + return + +/obj/structure/ore_box/Topic(href, href_list) + if(..()) + return + usr.machine = src + src.add_fingerprint(usr) + if(href_list["removeall"]) + for (var/obj/item/weapon/ore/O in contents) + contents -= O + O.loc = src.loc + usr << "\blue You empty the box" + src.updateUsrDialog() + return \ No newline at end of file