From c09412c33e5b9d438c43eef54139b3b2ccdf0eb0 Mon Sep 17 00:00:00 2001 From: Leshana Date: Tue, 24 Apr 2018 01:36:21 -0400 Subject: [PATCH] Implements the Mining Equipment Vendor Adds the Mining Equipment Vendor machine, which sells lots of items for points earned by mining. Enhanced the ore processor to give points for processed ore. Added some miscellaneous items such as hyposprays for miners. Switched mining machines to use the nice new icons. --- .../items/weapons/id cards/station_ids.dm | 1 + code/modules/mining/machine_processing.dm | 73 ++++++- code/modules/mining/machine_stacking.dm | 4 +- code/modules/mining/machine_unloading.dm | 2 +- code/modules/mining/orm_vr/construction.dm | 12 + .../modules/mining/orm_vr/equipment_vendor.dm | 205 ++++++++++++++++++ .../modules/mining/orm_vr/mine_point_items.dm | 33 +++ .../reagent_containers/hypospray_vr.dm | 6 +- icons/obj/machines/mining_machines_vr.dmi | Bin 0 -> 4139 bytes icons/obj/mining_vr.dmi | Bin 486 -> 583 bytes vorestation.dme | 3 + 11 files changed, 329 insertions(+), 10 deletions(-) create mode 100644 code/modules/mining/orm_vr/construction.dm create mode 100644 code/modules/mining/orm_vr/equipment_vendor.dm create mode 100644 code/modules/mining/orm_vr/mine_point_items.dm create mode 100644 icons/obj/machines/mining_machines_vr.dmi diff --git a/code/game/objects/items/weapons/id cards/station_ids.dm b/code/game/objects/items/weapons/id cards/station_ids.dm index a0760ac61e..7536d41253 100644 --- a/code/game/objects/items/weapons/id cards/station_ids.dm +++ b/code/game/objects/items/weapons/id cards/station_ids.dm @@ -8,6 +8,7 @@ SPECIES_TESHARI = 'icons/mob/species/seromi/id.dmi' ) + var/mining_points = 0 // VOREStation Edit - For redeeming at mining equipment lockers var/access = list() var/registered_name = "Unknown" // The name registered_name on the card slot_flags = SLOT_ID | SLOT_EARS diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm index 03568205c8..ca03098f55 100644 --- a/code/modules/mining/machine_processing.dm +++ b/code/modules/mining/machine_processing.dm @@ -6,11 +6,12 @@ /obj/machinery/mineral/processing_unit_console name = "production machine console" - icon = 'icons/obj/machines/mining_machines.dmi' + icon = 'icons/obj/machines/mining_machines_vr.dmi' // VOREStation Edit icon_state = "console" density = TRUE anchored = TRUE + var/obj/item/weapon/card/id/inserted_id // VOREStation Edit - Inserted Id card var/obj/machinery/mineral/processing_unit/machine = null var/show_all_ores = FALSE @@ -23,6 +24,24 @@ log_debug("Ore processing machine console at [src.x], [src.y], [src.z] could not find its machine!") qdel(src) +// VOREStation Add Start +/obj/machinery/mineral/processing_unit_console/Destroy() + if(inserted_id) + inserted_id.forceMove(loc) //Prevents deconstructing from deleting whatever ID was inside it. + . = ..() + +/obj/machinery/mineral/processing_unit_console/attackby(var/obj/item/I, var/mob/user) + if(istype(I, /obj/item/weapon/card/id)) + if(!powered()) + return + if(!inserted_id && user.unEquip(I)) + I.forceMove(src) + inserted_id = I + interact(user) + return + ..() +// VOREStation Add End + /obj/machinery/mineral/processing_unit_console/attack_hand(mob/user) if(..()) return @@ -39,6 +58,14 @@ user.set_machine(src) var/dat = "

Ore processor console

" + // VOREStation Add Start + dat += "Current unclaimed points: [machine.points]
" + if(istype(inserted_id)) + dat += "You have [inserted_id.mining_points] mining points collected. Eject ID.
" + dat += "Claim points.
" + else + dat += "No ID inserted. Insert ID.
" + // VOREStation Add End dat += "
" @@ -96,6 +123,29 @@ show_all_ores = !show_all_ores + // VOREStation Add Start + if(href_list["choice"]) + if(istype(inserted_id)) + if(href_list["choice"] == "eject") + usr.put_in_hands(inserted_id) + inserted_id = null + if(href_list["choice"] == "claim") + if(access_mining_station in inserted_id.access) + inserted_id.mining_points += machine.points + machine.points = 0 + else + to_chat(usr, "Required access not found.") + else if(href_list["choice"] == "insert") + var/obj/item/weapon/card/id/I = usr.get_active_hand() + if(istype(I)) + if(!usr.drop_item()) + return 1 + I.forceMove(src) + inserted_id = I + else + to_chat(usr, "No valid ID.") + // VOREStation Add End + src.updateUsrDialog() return @@ -104,7 +154,7 @@ /obj/machinery/mineral/processing_unit name = "material processor" //This isn't actually a goddamn furnace, we're in space and it's processing platinum and flammable phoron... - icon = 'icons/obj/machines/mining_machines.dmi' + icon = 'icons/obj/machines/mining_machines_vr.dmi' // VOREStation Edit icon_state = "furnace" density = TRUE anchored = TRUE @@ -117,6 +167,20 @@ var/list/ores_stored[0] var/static/list/alloy_data var/active = FALSE + // VOREStation Add Start + var/points = 0 + var/static/list/ore_values = list( + "sand" = 1, + "hematite" = 1, + "carbon" = 1, + "phoron" = 15, + "silver" = 16, + "gold" = 18, + "uranium" = 30, + "diamond" = 50, + "platinum" = 40, + "mhydrogen" = 40) + // VOREStation Add End /obj/machinery/mineral/processing_unit/New() ..() @@ -147,8 +211,8 @@ return /obj/machinery/mineral/processing_unit/process() - - if (!src.output || !src.input) return + if(!src.output || !src.input) return + if(panel_open || !powered()) return // VOREStation Edit - Don't work when unpowered var/list/tick_alloys = list() @@ -158,6 +222,7 @@ if(!O) break if(!isnull(ores_stored[O.material])) ores_stored[O.material]++ + points += ore_values[O.material] // VOREStation Edit - Give Points! qdel(O) diff --git a/code/modules/mining/machine_stacking.dm b/code/modules/mining/machine_stacking.dm index f6db90bac5..68c5a31c25 100644 --- a/code/modules/mining/machine_stacking.dm +++ b/code/modules/mining/machine_stacking.dm @@ -2,7 +2,7 @@ /obj/machinery/mineral/stacking_unit_console name = "stacking machine console" - icon = 'icons/obj/machines/mining_machines.dmi' + icon = 'icons/obj/machines/mining_machines_vr.dmi' // VOREStation Edit icon_state = "console" density = 1 anchored = 1 @@ -71,7 +71,7 @@ /obj/machinery/mineral/stacking_machine name = "stacking machine" - icon = 'icons/obj/machines/mining_machines.dmi' + icon = 'icons/obj/machines/mining_machines_vr.dmi' // VOREStation Edit icon_state = "stacker" density = 1 anchored = 1.0 diff --git a/code/modules/mining/machine_unloading.dm b/code/modules/mining/machine_unloading.dm index 1bbf7706ec..d54aa01761 100644 --- a/code/modules/mining/machine_unloading.dm +++ b/code/modules/mining/machine_unloading.dm @@ -3,7 +3,7 @@ /obj/machinery/mineral/unloading_machine name = "unloading machine" - icon = 'icons/obj/machines/mining_machines.dmi' + icon = 'icons/obj/machines/mining_machines_vr.dmi' // VOREStation Edit icon_state = "unloader" density = 1 anchored = 1.0 diff --git a/code/modules/mining/orm_vr/construction.dm b/code/modules/mining/orm_vr/construction.dm new file mode 100644 index 0000000000..dbf8a96ffb --- /dev/null +++ b/code/modules/mining/orm_vr/construction.dm @@ -0,0 +1,12 @@ +#ifndef T_BOARD +#error T_BOARD macro is not defined but we need it! +#endif + +/obj/item/weapon/circuitboard/mining_equipment_vendor + name = T_BOARD("Mining Equipment Vendor") + board_type = new /datum/frame/frame_types/machine + build_path = /obj/machinery/mineral/equipment_vendor + origin_tech = list(TECH_DATA = 1, TECH_ENGINEERING = 3) + req_components = list( + /obj/item/weapon/stock_parts/console_screen = 1, + /obj/item/weapon/stock_parts/matter_bin = 3) diff --git a/code/modules/mining/orm_vr/equipment_vendor.dm b/code/modules/mining/orm_vr/equipment_vendor.dm new file mode 100644 index 0000000000..7b1f2e7e12 --- /dev/null +++ b/code/modules/mining/orm_vr/equipment_vendor.dm @@ -0,0 +1,205 @@ +/**********************Mining Equipment Locker**************************/ + +/obj/machinery/mineral/equipment_vendor + name = "mining equipment vendor" + desc = "An equipment vendor for miners, points collected at an ore redemption machine can be spent here." + icon = 'icons/obj/machines/mining_machines_vr.dmi' + icon_state = "mining" + density = TRUE + anchored = TRUE + circuit = /obj/item/weapon/circuitboard/mining_equipment_vendor + var/icon_deny = "mining-deny" + var/obj/item/weapon/card/id/inserted_id + var/list/prize_list = list( + new /datum/data/mining_equipment("1 Marker Beacon", /obj/item/stack/marker_beacon, 10), + new /datum/data/mining_equipment("10 Marker Beacons", /obj/item/stack/marker_beacon/ten, 100), + new /datum/data/mining_equipment("30 Marker Beacons", /obj/item/stack/marker_beacon/thirty, 300), + new /datum/data/mining_equipment("Whiskey", /obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey, 125), + new /datum/data/mining_equipment("Absinthe", /obj/item/weapon/reagent_containers/food/drinks/bottle/absinthe, 125), + new /datum/data/mining_equipment("Cigar", /obj/item/clothing/mask/smokable/cigarette/cigar/havana, 150), + new /datum/data/mining_equipment("Soap", /obj/item/weapon/soap/nanotrasen, 200), + new /datum/data/mining_equipment("Laser Pointer", /obj/item/device/laser_pointer, 900), + new /datum/data/mining_equipment("Plush Toy", /obj/random/plushie, 300), + // TODO new /datum/data/mining_equipment("Advanced Scanner", /obj/item/device/t_scanner/adv_mining_scanner, 800), + new /datum/data/mining_equipment("Fulton Beacon", /obj/item/fulton_core, 500), + new /datum/data/mining_equipment("Shelter Capsule", /obj/item/device/survivalcapsule, 500), + // TODO new /datum/data/mining_equipment("Explorer's Webbing", /obj/item/storage/belt/mining, 500), + new /datum/data/mining_equipment("Point Transfer Card", /obj/item/weapon/card/mining_point_card, 500), + new /datum/data/mining_equipment("Survival Medipen", /obj/item/weapon/reagent_containers/hypospray/autoinjector/miner, 500), + new /datum/data/mining_equipment("Mini-Translocator", /obj/item/device/perfect_tele/one_beacon, 1200), + // new /datum/data/mining_equipment("Kinetic Crusher", /obj/item/twohanded/required/kinetic_crusher, 750), + new /datum/data/mining_equipment("Kinetic Accelerator", /obj/item/weapon/gun/energy/kinetic_accelerator, 900), + new /datum/data/mining_equipment("Resonator", /obj/item/resonator, 900), + new /datum/data/mining_equipment("Fulton Pack", /obj/item/extraction_pack, 1200), + new /datum/data/mining_equipment("Silver Pickaxe", /obj/item/weapon/pickaxe/silver, 1200), + //new /datum/data/mining_equipment("Mining Conscription Kit", /obj/item/storage/backpack/duffelbag/mining_conscript, 1000), + new /datum/data/mining_equipment("Space Cash", /obj/item/weapon/spacecash/c1000, 2000), + new /datum/data/mining_equipment("Industrial Hardsuit - Control Module", /obj/item/weapon/rig/industrial, 2000), + new /datum/data/mining_equipment("Industrial Hardsuit - Plasma Cutter", /obj/item/rig_module/device/plasmacutter, 800), + new /datum/data/mining_equipment("Industrial Hardsuit - Drill", /obj/item/rig_module/device/drill, 2000), + new /datum/data/mining_equipment("Industrial Hardsuit - Ore Scanner", /obj/item/rig_module/device/orescanner, 1000), + new /datum/data/mining_equipment("Industrial Hardsuit - Material Scanner", /obj/item/rig_module/vision/material, 500), + new /datum/data/mining_equipment("Industrial Hardsuit - Maneuvering Jets", /obj/item/rig_module/maneuvering_jets, 1250), + new /datum/data/mining_equipment("Diamond Pickaxe", /obj/item/weapon/pickaxe/diamond, 2000), + new /datum/data/mining_equipment("Super Resonator", /obj/item/resonator/upgraded, 2500), + new /datum/data/mining_equipment("Jump Boots", /obj/item/clothing/shoes/bhop, 2500), + new /datum/data/mining_equipment("Luxury Shelter Capsule", /obj/item/device/survivalcapsule/luxury, 3100), + new /datum/data/mining_equipment("KA White Tracer Rounds", /obj/item/borg/upgrade/modkit/tracer, 125), + new /datum/data/mining_equipment("KA Adjustable Tracer Rounds", /obj/item/borg/upgrade/modkit/tracer/adjustable, 175), + new /datum/data/mining_equipment("KA Super Chassis", /obj/item/borg/upgrade/modkit/chassis_mod, 250), + new /datum/data/mining_equipment("KA Hyper Chassis", /obj/item/borg/upgrade/modkit/chassis_mod/orange, 300), + new /datum/data/mining_equipment("KA Range Increase", /obj/item/borg/upgrade/modkit/range, 1000), + new /datum/data/mining_equipment("KA Damage Increase", /obj/item/borg/upgrade/modkit/damage, 1000), + new /datum/data/mining_equipment("KA Efficiency Increase", /obj/item/borg/upgrade/modkit/efficiency, 1200), + new /datum/data/mining_equipment("KA AoE Damage", /obj/item/borg/upgrade/modkit/aoe/mobs, 2000) + ) + +/datum/data/mining_equipment + var/equipment_name = "generic" + var/equipment_path = null + var/cost = 0 + +/datum/data/mining_equipment/New(name, path, cost) + src.equipment_name = name + src.equipment_path = path + src.cost = cost + +/obj/machinery/power/quantumpad/initialize() + . = ..() + default_apply_parts() + +/obj/machinery/mineral/equipment_vendor/power_change() + var/old_stat = stat + ..() + if(old_stat != stat) + update_icon() + if(inserted_id && !powered()) + visible_message("The ID slot indicator light flickers on \the [src] as it spits out a card before powering down.") + inserted_id.forceMove(get_turf(src)) + +/obj/machinery/mineral/equipment_vendor/update_icon() + if(panel_open) + icon_state = "[initial(icon_state)]-open" + else if(powered()) + icon_state = initial(icon_state) + else + icon_state = "[initial(icon_state)]-off" + +/obj/machinery/mineral/equipment_vendor/attack_hand(mob/user) + if(..()) + return + interact(user) + +/obj/machinery/mineral/equipment_vendor/attack_ghost(mob/user) + interact(user) + +/obj/machinery/mineral/equipment_vendor/interact(mob/user) + user.set_machine(src) + + var/dat + dat +="
" + if(istype(inserted_id)) + dat += "You have [inserted_id.mining_points] mining points collected. Eject ID.
" + else + dat += "No ID inserted. Insert ID.
" + dat += "
" + dat += "
Equipment point cost list:
" + for(var/datum/data/mining_equipment/prize in prize_list) + dat += "" + dat += "
[prize.equipment_name][prize.cost]Purchase
" + var/datum/browser/popup = new(user, "miningvendor", "Mining Equipment Vendor", 400, 600) + popup.set_content(dat) + popup.open() + +/obj/machinery/mineral/equipment_vendor/Topic(href, href_list) + if(..()) + return 1 + + if(href_list["choice"]) + if(istype(inserted_id)) + if(href_list["choice"] == "eject") + to_chat(usr, "You eject the ID from [src]'s card slot.") + usr.put_in_hands(inserted_id) + inserted_id = null + else if(href_list["choice"] == "insert") + var/obj/item/weapon/card/id/I = usr.get_active_hand() + if(istype(I) && !inserted_id && usr.unEquip(I)) + I.forceMove(src) + inserted_id = I + interact(usr) + to_chat(usr, "You insert the ID into [src]'s card slot.") + else + to_chat(usr, "No valid ID.") + flick(icon_deny, src) + + if(href_list["purchase"]) + if(istype(inserted_id)) + var/datum/data/mining_equipment/prize = locate(href_list["purchase"]) + if (!prize || !(prize in prize_list)) + to_chat(usr, "Error: Invalid choice!") + flick(icon_deny, src) + return + if(prize.cost > inserted_id.mining_points) + to_chat(usr, "Error: Insufficent points for [prize.equipment_name]!") + flick(icon_deny, src) + else + inserted_id.mining_points -= prize.cost + to_chat(usr, "[src] clanks to life briefly before vending [prize.equipment_name]!") + new prize.equipment_path(drop_location()) + else + to_chat(usr, "Error: Please insert a valid ID!") + flick(icon_deny, src) + updateUsrDialog() + +/obj/machinery/mineral/equipment_vendor/attackby(obj/item/I, mob/user, params) + if(default_deconstruction_screwdriver(user, I)) + updateUsrDialog() + return + if(default_part_replacement(user, I)) + return + if(default_deconstruction_crowbar(user, I)) + return + if(istype(I, /obj/item/mining_voucher)) + if(!powered()) + return + RedeemVoucher(I, user) + return + if(istype(I,/obj/item/weapon/card/id)) + if(!powered()) + return + else if(!inserted_id && user.unEquip(I)) + I.forceMove(src) + inserted_id = I + interact(user) + return + ..() + +/obj/machinery/mineral/equipment_vendor/dismantle() + if(inserted_id) + inserted_id.forceMove(loc) //Prevents deconstructing the ORM from deleting whatever ID was inside it. + . = ..() + +/obj/machinery/mineral/equipment_vendor/proc/RedeemVoucher(obj/item/mining_voucher/voucher, mob/redeemer) + var/selection = input(redeemer, "Pick your equipment", "Mining Voucher Redemption") as null|anything in list("Kinetic Accelerator", "Resonator", "Mining Drone", "Advanced Scanner", "Crusher") + if(!selection || !Adjacent(redeemer) || voucher.loc != redeemer) + return + var/drop_location = drop_location() + switch(selection) + if("Kinetic Accelerator") + new /obj/item/weapon/gun/energy/kinetic_accelerator(drop_location) + if("Resonator") + new /obj/item/resonator(drop_location) + // if("Mining Drone") + // new /obj/item/storage/box/drone_kit(drop_location) + // if("Advanced Scanner") + // new /obj/item/device/t_scanner/adv_mining_scanner(drop_location) + // if("Crusher") + // new /obj/item/twohanded/required/mining_hammer(drop_location) + qdel(voucher) + +/obj/machinery/mineral/equipment_vendor/ex_act(severity, target) + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread + s.set_up(5, 1, src) + s.start() + if(prob(50 / severity) && severity < 3) + qdel(src) diff --git a/code/modules/mining/orm_vr/mine_point_items.dm b/code/modules/mining/orm_vr/mine_point_items.dm new file mode 100644 index 0000000000..1994e77001 --- /dev/null +++ b/code/modules/mining/orm_vr/mine_point_items.dm @@ -0,0 +1,33 @@ +/**********************Mining Equipment Locker Items**************************/ + +/**********************Mining Equipment Voucher**********************/ + +/obj/item/mining_voucher + name = "mining voucher" + desc = "A token to redeem a piece of equipment. Use it on a mining equipment vendor." + icon = 'icons/obj/mining_vr.dmi' + icon_state = "mining_voucher" + w_class = ITEMSIZE_TINY + +/**********************Mining Point Card**********************/ + +/obj/item/weapon/card/mining_point_card + name = "mining point card" + desc = "A small card preloaded with mining points. Swipe your ID card over it to transfer the points, then discard." + icon_state = "data" + var/points = 500 + +/obj/item/weapon/card/mining_point_card/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/card/id)) + if(points) + var/obj/item/weapon/card/id/C = I + C.mining_points += points + to_chat(user, "You transfer [points] points to [C].") + points = 0 + else + to_chat(user, "There's no points left on [src].") + ..() + +/obj/item/weapon/card/mining_point_card/examine(mob/user) + ..(user) + to_chat(user, "There's [points] points on the card.") diff --git a/code/modules/reagents/reagent_containers/hypospray_vr.dm b/code/modules/reagents/reagent_containers/hypospray_vr.dm index 238bfdb269..9f52d9f699 100644 --- a/code/modules/reagents/reagent_containers/hypospray_vr.dm +++ b/code/modules/reagents/reagent_containers/hypospray_vr.dm @@ -1,4 +1,4 @@ -/obj/item/weapon/reagent_containers/hypospray/autoinjector/beltminer +/obj/item/weapon/reagent_containers/hypospray/autoinjector/miner name = "Emergency trauma injector" desc = "A rapid injector for emergency treatment of injuries. The warning label advises that it is not a substitute for proper medical treatment." icon_state = "autoinjector" @@ -6,7 +6,7 @@ amount_per_transfer_from_this = 10 volume = 10 -/obj/item/weapon/reagent_containers/hypospray/autoinjector/beltminer/New() +/obj/item/weapon/reagent_containers/hypospray/autoinjector/miner/New() ..() reagents.add_reagent("bicaridine", 5) reagents.add_reagent("tricordrazine", 3) @@ -21,4 +21,4 @@ /obj/item/weapon/storage/box/traumainjectors/New() ..() for (var/i = 1 to 7) - new /obj/item/weapon/reagent_containers/hypospray/autoinjector/beltminer(src) + new /obj/item/weapon/reagent_containers/hypospray/autoinjector/miner(src) diff --git a/icons/obj/machines/mining_machines_vr.dmi b/icons/obj/machines/mining_machines_vr.dmi new file mode 100644 index 0000000000000000000000000000000000000000..28d608125d70aac951964a6b3b9832d9fa03db02 GIT binary patch literal 4139 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 literal 0 HcmV?d00001 diff --git a/icons/obj/mining_vr.dmi b/icons/obj/mining_vr.dmi index 573f7de88e2f9a18d68fa9e7501ff9699474b869..070a2bf8daddd0eef672fb9ff2a9e5ccddb7e33f 100644 GIT binary patch delta 397 zcmV;80doH41IGlA7Y;xO0{{R3owtGP0000{ktIwXz`(!&W&i+{0QfiXnE(I)0d!JM zQvg8b*k%9#0E3Z+Xn!TBHa9abGcP^9EWb24BNeC7$_lQ2E?`#!05#(`vZk4M2><{A z6-h)vR9J=WmeFp5FbqZGm82ov3`=J!^8X(?n@ZaYaVA`;os|1}t;3PA5YF|ySl}mb zrvp8}06v6sh{Nsxzz9C2OM3sP00v~hbPn_9K48oY$d`2es(%2`fd|DPORpIKGkmBU zaG!lr3c@a11F;bT z1F;dJ4GiFZ6y3l8(MLi9R1|Rx&;ac9b|I7D^#GP%h