diff --git a/code/modules/mining/machine_redemption.dm b/code/modules/mining/machine_redemption.dm index fbd689df89e..e22d858109a 100644 --- a/code/modules/mining/machine_redemption.dm +++ b/code/modules/mining/machine_redemption.dm @@ -19,7 +19,7 @@ var/ore_pickup_rate = 15 var/sheet_per_ore = 1 var/point_upgrade = 1 - var/list/ore_values = list(("sand" = 1), ("iron" = 1), ("plasma" = 15), ("silver" = 16), ("gold" = 18), ("uranium" = 30), ("diamond" = 50), ("bananium" = 60)) + var/list/ore_values = list(("sand" = 1), ("iron" = 1), ("plasma" = 15), ("silver" = 16), ("gold" = 18), ("uranium" = 30), ("diamond" = 50), ("bluespace crystal" = 50), ("bananium" = 60)) speed_process = 1 /obj/machinery/mineral/ore_redemption/New() @@ -59,11 +59,6 @@ var/obj/item/stack/sheet/s = new processed_sheet(src,0) s.amount = 0 stack_list[processed_sheet] = s - if(s.name != "glass" && s.name != "metal") //we can get these from cargo anyway - var/msg = "[capitalize(s.name)] sheets are now available in the Cargo Bay." - for(var/obj/machinery/requests_console/D in allConsoles) - if(D.department == "Science" || D.department == "Robotics" || D.department == "Research Director's Desk" || (D.department == "Chemistry" && (s.name == "uranium" || s.name == "solid plasma"))) - D.createmessage("Ore Redemption Machine", "New minerals available!", msg, 1, 0) var/obj/item/stack/sheet/storage = stack_list[processed_sheet] storage.amount += sheet_per_ore //Stack the sheets O.loc = null //Let the old sheet... @@ -93,6 +88,13 @@ else process_sheet(O) i++ + var/msg = "Now available in the Cargo Bay: \n" + for(var/s in stack_list) // Making an announcement for cargo + var/obj/item/stack/sheet/mats = stack_list[s] + msg += "[capitalize(mats.name)]: [mats.amount] sheets \n" + for(var/obj/machinery/requests_console/D in allConsoles) + if(D.department == "Science" || D.department == "Robotics" || D.department == "Research Director's Desk" || D.department == "Chemistry" || D.department == "Bar" ) + D.createmessage("Ore Redemption Machine", "New minerals available!", msg, 1, 0) /obj/machinery/mineral/ore_redemption/attackby(obj/item/weapon/W, mob/user, params) if(exchange_parts(user, W)) diff --git a/code/modules/telesci/bscrystal.dm b/code/modules/telesci/bscrystal.dm index ae377c651c6..9501710cdd5 100644 --- a/code/modules/telesci/bscrystal.dm +++ b/code/modules/telesci/bscrystal.dm @@ -9,6 +9,7 @@ origin_tech = "bluespace=6;materials=3" points = 50 var/blink_range = 8 // The teleport range when crushed/thrown at someone. + refined_type = /obj/item/stack/sheet/bluespace_crystal /obj/item/weapon/ore/bluespace_crystal/New() ..() @@ -44,3 +45,33 @@ origin_tech = "bluespace=3;plasmatech=4" blink_range = 4 // Not as good as the organic stuff! points = 0 // nice try + refined_type = null + +// Polycrystals, aka stacks + +/obj/item/stack/sheet/bluespace_crystal + name = "bluespace polycrystal" + icon = 'icons/obj/telescience.dmi' + icon_state = "polycrystal" + desc = "A stable polycrystal, made of fused-together bluespace crystals. You could probably break one off." + origin_tech = "bluespace=6;minerals=3" + attack_verb = list("bluespace polybashed", "bluespace polybattered", "bluespace polybludgeoned", "bluespace polythrashed", "bluespace polysmashed") + +/obj/item/stack/sheet/bluespace_crystal/attack_self(mob/user) // to prevent the construction menu from ever happening + user << "You cannot crush the polycrystal in-hand, try breaking one off." + return + +/obj/item/stack/sheet/bluespace_crystal/attack_hand(mob/user) + if (user.get_inactive_hand() == src) + if(zero_amount()) // in this case, a sanity check + return + var/obj/item/weapon/ore/bluespace_crystal/BC = new(src) + user.put_in_hands(BC) + amount-- + if (amount == 0) + qdel(src) + user << "You break the final crystal off." + else user << "You break off a crystal." + else + ..() + return \ No newline at end of file diff --git a/icons/obj/telescience.dmi b/icons/obj/telescience.dmi index 0ae04b8e42c..514975af914 100644 Binary files a/icons/obj/telescience.dmi and b/icons/obj/telescience.dmi differ