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 e717cbb77f..332b3e83d3 100644 --- a/code/game/objects/items/weapons/id cards/station_ids.dm +++ b/code/game/objects/items/weapons/id cards/station_ids.dm @@ -58,6 +58,12 @@ var/icon/F = getFlatIcon(M, defdir = SOUTH, no_anim = TRUE) front = "'data:image/png;base64,[icon2base64(F)]'" +/obj/item/card/id/proc/adjust_mining_points(var/points) + if(mining_points + points < 0) + return FALSE + mining_points += points + return TRUE + /mob/proc/set_id_info(var/obj/item/card/id/id_card) id_card.age = 0 id_card.registered_name = real_name diff --git a/code/modules/mining/machinery/machine_processing.dm b/code/modules/mining/machinery/machine_processing.dm index 32e74bc863..a5a0c16795 100644 --- a/code/modules/mining/machinery/machine_processing.dm +++ b/code/modules/mining/machinery/machine_processing.dm @@ -125,7 +125,7 @@ if("claim") if(istype(inserted_id)) if(access_mining_station in inserted_id.GetAccess()) - inserted_id.mining_points += machine.points + inserted_id.adjust_mining_points(machine.points) machine.points = 0 else to_chat(ui.user, span_warning("Required access not found.")) diff --git a/code/modules/mining/ore_redemption_machine/equipment_vendor.dm b/code/modules/mining/ore_redemption_machine/equipment_vendor.dm index b76d5c32bc..7404779aac 100644 --- a/code/modules/mining/ore_redemption_machine/equipment_vendor.dm +++ b/code/modules/mining/ore_redemption_machine/equipment_vendor.dm @@ -182,7 +182,7 @@ return target.mining_points /obj/machinery/mineral/equipment_vendor/proc/remove_points(obj/item/card/id/target, amt) - target.mining_points -= amt + target.adjust_mining_points(-amt) /obj/machinery/mineral/equipment_vendor/tgui_static_data(mob/user) var/list/static_data[0] diff --git a/code/modules/mob/living/silicon/robot/dogborg/dog_modules_vr.dm b/code/modules/mob/living/silicon/robot/dogborg/dog_modules_vr.dm index 063bc1cc15..68f403491f 100644 --- a/code/modules/mob/living/silicon/robot/dogborg/dog_modules_vr.dm +++ b/code/modules/mob/living/silicon/robot/dogborg/dog_modules_vr.dm @@ -522,3 +522,38 @@ R = null last_robot_loc = null ..() + +/obj/item/mining_scanner/robot + name = "integrated deep scan device" + description_info = "This scanner can be upgraded for mining points." + var/upgrade_cost = 2500 + +/obj/item/mining_scanner/robot/attackby(obj/item/O, mob/user) + if(exact) + return + if(!istype(O, /obj/item/card/id/cargo/miner/borg)) + return + if(!(user == loc || user == loc.loc)) + return + var/obj/item/card/id/cargo/miner/borg/id = O + if(!id.adjust_mining_points(-upgrade_cost)) + return + upgrade(user) + +/obj/item/mining_scanner/robot/proc/upgrade(mob/user) + desc = "An advanced device used to locate ore deep underground." + description_info = "This scanner has variable range, you can use the Set Scanner Range verb, or alt+click the device. Drills dig in 5x5." + scan_time = 0.5 SECONDS + exact = TRUE + to_chat(user, span_notice("You've upgraded the mining scanner for [upgrade_cost] points.")) + +/obj/item/mining_scanner/robot/AltClick(mob/user) + change_size(user) + +/obj/item/mining_scanner/robot/proc/change_size(mob/user) + if(!exact) + return + var/custom_range = tgui_input_list(user, "Scanner Range","Pick a range to scan. ", list(0,1,2,3,4,5,6,7)) + if(custom_range) + range = custom_range + to_chat(user, span_notice("Scanner will now look up to [range] tile(s) away.")) diff --git a/code/modules/mob/living/silicon/robot/robot_modules/station.dm b/code/modules/mob/living/silicon/robot/robot_modules/station.dm index dd6c5eddbd..102a3ee8b9 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules/station.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules/station.dm @@ -722,7 +722,7 @@ var/global/list/robot_modules = list( src.modules += new /obj/item/pickaxe/borgdrill(src) src.modules += new /obj/item/storage/bag/sheetsnatcher/borg(src) src.modules += new /obj/item/gripper/miner(src) - src.modules += new /obj/item/mining_scanner(src) + src.modules += new /obj/item/mining_scanner/robot(src) src.modules += new /obj/item/card/id/cargo/miner/borg(src) src.modules += new /obj/item/gun/energy/robotic/phasegun(src) //CHOMPedit: Phasegun for regular mining cyborg. src.modules += new /obj/item/vac_attachment(src) //CHOMPAdd