mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-15 11:39:18 +00:00
Done using this command sed -Ei 's/(\s*\S+)\s*\t+/\1 /g' code/**/*.dm We have countless examples in the codebase with this style gone wrong, and defines and such being on hideously different levels of indentation. Fixing this to keep the alignment involves tainting the blames of code your PR doesn't need to be touching at all. And ultimately, it's hideous. There are some files that this sed makes uglier. I can fix these when they are pointed out, but I believe this is ultimately for the greater good of readability. I'm more concerned with if any strings relied on this. Hi codeowners! Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
296 lines
14 KiB
Plaintext
296 lines
14 KiB
Plaintext
/**********************Mining Equipment Vendor**************************/
|
|
|
|
/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.dmi'
|
|
icon_state = "mining"
|
|
density = TRUE
|
|
circuit = /obj/item/circuitboard/machine/mining_equipment_vendor
|
|
var/icon_deny = "mining-deny"
|
|
var/obj/item/card/id/inserted_id
|
|
var/list/prize_list = list( //if you add something to this, please, for the love of god, sort it by price/type. use tabs and not spaces.
|
|
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("Skeleton Key", /obj/item/skeleton_key, 777),
|
|
new /datum/data/mining_equipment("Whiskey", /obj/item/reagent_containers/food/drinks/bottle/whiskey, 100),
|
|
new /datum/data/mining_equipment("Absinthe", /obj/item/reagent_containers/food/drinks/bottle/absinthe/premium, 100),
|
|
new /datum/data/mining_equipment("Bubblegum Gum Packet", /obj/item/storage/box/gum/bubblegum, 100),
|
|
new /datum/data/mining_equipment("Cigar", /obj/item/clothing/mask/cigarette/cigar/havana, 150),
|
|
new /datum/data/mining_equipment("Soap", /obj/item/soap/nanotrasen, 200),
|
|
new /datum/data/mining_equipment("Laser Pointer", /obj/item/laser_pointer, 300),
|
|
new /datum/data/mining_equipment("Alien Toy", /obj/item/clothing/mask/facehugger/toy, 300),
|
|
new /datum/data/mining_equipment("Stabilizing Serum", /obj/item/hivelordstabilizer, 400),
|
|
new /datum/data/mining_equipment("Fulton Beacon", /obj/item/fulton_core, 400),
|
|
new /datum/data/mining_equipment("Shelter Capsule", /obj/item/survivalcapsule, 400),
|
|
new /datum/data/mining_equipment("GAR Meson Scanners", /obj/item/clothing/glasses/meson/gar, 500),
|
|
new /datum/data/mining_equipment("Explorer's Webbing", /obj/item/storage/belt/mining, 500),
|
|
new /datum/data/mining_equipment("Point Transfer Card", /obj/item/card/mining_point_card, 500),
|
|
new /datum/data/mining_equipment("Survival Medipen", /obj/item/reagent_containers/hypospray/medipen/survival, 500),
|
|
new /datum/data/mining_equipment("Brute First-Aid Kit", /obj/item/storage/firstaid/brute, 600),
|
|
new /datum/data/mining_equipment("Tracking Implant Kit", /obj/item/storage/box/minertracker, 600),
|
|
new /datum/data/mining_equipment("Jaunter", /obj/item/wormhole_jaunter, 750),
|
|
new /datum/data/mining_equipment("Kinetic Crusher", /obj/item/kinetic_crusher, 750),
|
|
new /datum/data/mining_equipment("Kinetic Accelerator", /obj/item/gun/energy/kinetic_accelerator, 750),
|
|
new /datum/data/mining_equipment("Advanced Scanner", /obj/item/t_scanner/adv_mining_scanner, 800),
|
|
new /datum/data/mining_equipment("Resonator", /obj/item/resonator, 800),
|
|
new /datum/data/mining_equipment("Luxury Medipen", /obj/item/reagent_containers/hypospray/medipen/survival/luxury, 1000),
|
|
new /datum/data/mining_equipment("Fulton Pack", /obj/item/extraction_pack, 1000),
|
|
new /datum/data/mining_equipment("Lazarus Injector", /obj/item/lazarus_injector, 1000),
|
|
new /datum/data/mining_equipment("Silver Pickaxe", /obj/item/pickaxe/silver, 1000),
|
|
new /datum/data/mining_equipment("Mining Conscription Kit", /obj/item/storage/backpack/duffelbag/mining_conscript, 1500),
|
|
new /datum/data/mining_equipment("Jetpack Upgrade", /obj/item/tank/jetpack/suit, 2000),
|
|
new /datum/data/mining_equipment("Space Cash", /obj/item/stack/spacecash/c1000, 2000),
|
|
new /datum/data/mining_equipment("Mining Hardsuit", /obj/item/clothing/suit/space/hardsuit/mining, 2000),
|
|
new /datum/data/mining_equipment("Diamond Pickaxe", /obj/item/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/survivalcapsule/luxury, 3000),
|
|
new /datum/data/mining_equipment("Luxury Bar Capsule", /obj/item/survivalcapsule/luxuryelite, 10000),
|
|
new /datum/data/mining_equipment("Nanotrasen Minebot", /mob/living/simple_animal/hostile/mining_drone, 800),
|
|
new /datum/data/mining_equipment("Minebot Melee Upgrade", /obj/item/mine_bot_upgrade, 400),
|
|
new /datum/data/mining_equipment("Minebot Armor Upgrade", /obj/item/mine_bot_upgrade/health, 400),
|
|
new /datum/data/mining_equipment("Minebot Cooldown Upgrade", /obj/item/borg/upgrade/modkit/cooldown/minebot, 600),
|
|
new /datum/data/mining_equipment("Minebot AI Upgrade", /obj/item/slimepotion/slime/sentience/mining, 1000),
|
|
new /datum/data/mining_equipment("KA Minebot Passthrough", /obj/item/borg/upgrade/modkit/minebot_passthrough, 100),
|
|
new /datum/data/mining_equipment("KA White Tracer Rounds", /obj/item/borg/upgrade/modkit/tracer, 100),
|
|
new /datum/data/mining_equipment("KA Adjustable Tracer Rounds", /obj/item/borg/upgrade/modkit/tracer/adjustable, 150),
|
|
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 Cooldown Decrease", /obj/item/borg/upgrade/modkit/cooldown, 1000),
|
|
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/mineral/equipment_vendor/Initialize()
|
|
. = ..()
|
|
build_inventory()
|
|
|
|
/obj/machinery/mineral/equipment_vendor/proc/build_inventory()
|
|
for(var/p in prize_list)
|
|
var/datum/data/mining_equipment/M = p
|
|
GLOB.vending_products[M.equipment_path] = 1
|
|
|
|
/obj/machinery/mineral/equipment_vendor/update_icon_state()
|
|
if(powered())
|
|
icon_state = initial(icon_state)
|
|
else
|
|
icon_state = "[initial(icon_state)]-off"
|
|
|
|
/obj/machinery/mineral/equipment_vendor/ui_assets(mob/user)
|
|
return list(
|
|
get_asset_datum(/datum/asset/spritesheet/vending),
|
|
)
|
|
|
|
/obj/machinery/mineral/equipment_vendor/ui_interact(mob/user, datum/tgui/ui)
|
|
ui = SStgui.try_update_ui(user, src, ui)
|
|
if(!ui)
|
|
ui = new(user, src, "MiningVendor", name)
|
|
ui.open()
|
|
|
|
/obj/machinery/mineral/equipment_vendor/ui_static_data(mob/user)
|
|
. = list()
|
|
.["product_records"] = list()
|
|
for(var/datum/data/mining_equipment/prize in prize_list)
|
|
var/list/product_data = list(
|
|
path = replacetext(replacetext("[prize.equipment_path]", "/obj/item/", ""), "/", "-"),
|
|
name = prize.equipment_name,
|
|
price = prize.cost,
|
|
ref = REF(prize)
|
|
)
|
|
.["product_records"] += list(product_data)
|
|
|
|
/obj/machinery/mineral/equipment_vendor/ui_data(mob/user)
|
|
. = list()
|
|
var/obj/item/card/id/C
|
|
if(isliving(user))
|
|
var/mob/living/L = user
|
|
C = L.get_idcard(TRUE)
|
|
if(C)
|
|
.["user"] = list()
|
|
.["user"]["points"] = C.mining_points
|
|
if(C.registered_account)
|
|
.["user"]["name"] = C.registered_account.account_holder
|
|
if(C.registered_account.account_job)
|
|
.["user"]["job"] = C.registered_account.account_job.title
|
|
else
|
|
.["user"]["job"] = "No Job"
|
|
|
|
/obj/machinery/mineral/equipment_vendor/ui_act(action, params)
|
|
. = ..()
|
|
if(.)
|
|
return
|
|
|
|
switch(action)
|
|
if("purchase")
|
|
var/obj/item/card/id/I
|
|
if(isliving(usr))
|
|
var/mob/living/L = usr
|
|
I = L.get_idcard(TRUE)
|
|
if(!istype(I))
|
|
to_chat(usr, "<span class='alert'>Error: An ID is required!</span>")
|
|
flick(icon_deny, src)
|
|
return
|
|
var/datum/data/mining_equipment/prize = locate(params["ref"]) in prize_list
|
|
if(!prize || !(prize in prize_list))
|
|
to_chat(usr, "<span class='alert'>Error: Invalid choice!</span>")
|
|
flick(icon_deny, src)
|
|
return
|
|
if(prize.cost > I.mining_points)
|
|
to_chat(usr, "<span class='alert'>Error: Insufficient points for [prize.equipment_name] on [I]!</span>")
|
|
flick(icon_deny, src)
|
|
return
|
|
I.mining_points -= prize.cost
|
|
to_chat(usr, "<span class='notice'>[src] clanks to life briefly before vending [prize.equipment_name]!</span>")
|
|
new prize.equipment_path(loc)
|
|
SSblackbox.record_feedback("nested tally", "mining_equipment_bought", 1, list("[type]", "[prize.equipment_path]"))
|
|
. = TRUE
|
|
|
|
/obj/machinery/mineral/equipment_vendor/attackby(obj/item/I, mob/user, params)
|
|
if(istype(I, /obj/item/mining_voucher))
|
|
RedeemVoucher(I, user)
|
|
return
|
|
if(default_deconstruction_screwdriver(user, "mining-open", "mining", I))
|
|
return
|
|
if(default_deconstruction_crowbar(I))
|
|
return
|
|
return ..()
|
|
|
|
/obj/machinery/mineral/equipment_vendor/proc/RedeemVoucher(obj/item/mining_voucher/voucher, mob/redeemer)
|
|
var/items = list("Survival Capsule and Explorer's Webbing", "Resonator Kit", "Minebot Kit", "Extraction and Rescue Kit", "Crusher Kit", "Mining Conscription Kit")
|
|
|
|
var/selection = input(redeemer, "Pick your equipment", "Mining Voucher Redemption") as null|anything in sortList(items)
|
|
if(!selection || !Adjacent(redeemer) || QDELETED(voucher) || voucher.loc != redeemer)
|
|
return
|
|
var/drop_location = drop_location()
|
|
switch(selection)
|
|
if("Survival Capsule and Explorer's Webbing")
|
|
new /obj/item/storage/belt/mining/vendor(drop_location)
|
|
if("Resonator Kit")
|
|
new /obj/item/extinguisher/mini(drop_location)
|
|
new /obj/item/resonator(drop_location)
|
|
if("Minebot Kit")
|
|
new /mob/living/simple_animal/hostile/mining_drone(drop_location)
|
|
new /obj/item/weldingtool/hugetank(drop_location)
|
|
new /obj/item/clothing/head/welding(drop_location)
|
|
new /obj/item/borg/upgrade/modkit/minebot_passthrough(drop_location)
|
|
if("Extraction and Rescue Kit")
|
|
new /obj/item/extraction_pack(drop_location)
|
|
new /obj/item/fulton_core(drop_location)
|
|
new /obj/item/stack/marker_beacon/thirty(drop_location)
|
|
if("Crusher Kit")
|
|
new /obj/item/extinguisher/mini(drop_location)
|
|
new /obj/item/kinetic_crusher(drop_location)
|
|
if("Mining Conscription Kit")
|
|
new /obj/item/storage/backpack/duffelbag/mining_conscript(drop_location)
|
|
|
|
SSblackbox.record_feedback("tally", "mining_voucher_redeemed", 1, selection)
|
|
qdel(voucher)
|
|
|
|
/obj/machinery/mineral/equipment_vendor/ex_act(severity, target)
|
|
do_sparks(5, TRUE, src)
|
|
if(prob(50 / severity) && severity < 3)
|
|
qdel(src)
|
|
|
|
/****************Golem Point Vendor**************************/
|
|
|
|
/obj/machinery/mineral/equipment_vendor/golem
|
|
name = "golem ship equipment vendor"
|
|
circuit = /obj/item/circuitboard/machine/mining_equipment_vendor/golem
|
|
|
|
/obj/machinery/mineral/equipment_vendor/golem/Initialize()
|
|
desc += "\nIt seems a few selections have been added."
|
|
prize_list += list(
|
|
new /datum/data/mining_equipment("Extra Id", /obj/item/card/id/mining, 250),
|
|
new /datum/data/mining_equipment("Science Goggles", /obj/item/clothing/glasses/science, 250),
|
|
new /datum/data/mining_equipment("Monkey Cube", /obj/item/food/monkeycube, 300),
|
|
new /datum/data/mining_equipment("Toolbelt", /obj/item/storage/belt/utility, 350),
|
|
new /datum/data/mining_equipment("Royal Cape of the Liberator", /obj/item/bedsheet/rd/royal_cape, 500),
|
|
new /datum/data/mining_equipment("Grey Slime Extract", /obj/item/slime_extract/grey, 1000),
|
|
new /datum/data/mining_equipment("Modification Kit", /obj/item/borg/upgrade/modkit/trigger_guard, 1700),
|
|
new /datum/data/mining_equipment("The Liberator's Legacy", /obj/item/storage/box/rndboards, 2000)
|
|
)
|
|
return ..()
|
|
|
|
/**********************Mining Equipment Vendor 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.dmi'
|
|
icon_state = "mining_voucher"
|
|
w_class = WEIGHT_CLASS_TINY
|
|
|
|
/**********************Mining Point Card**********************/
|
|
|
|
/obj/item/card/mining_point_card
|
|
name = "mining points card"
|
|
desc = "A small card preloaded with mining points. Swipe your ID card over it to transfer the points, then discard."
|
|
icon_state = "data_1"
|
|
var/points = 500
|
|
|
|
/obj/item/card/mining_point_card/attackby(obj/item/I, mob/user, params)
|
|
if(istype(I, /obj/item/card/id))
|
|
if(points)
|
|
var/obj/item/card/id/C = I
|
|
C.mining_points += points
|
|
to_chat(user, "<span class='info'>You transfer [points] points to [C].</span>")
|
|
points = 0
|
|
else
|
|
to_chat(user, "<span class='alert'>There's no points left on [src].</span>")
|
|
..()
|
|
|
|
/obj/item/card/mining_point_card/examine(mob/user)
|
|
..()
|
|
to_chat(user, "<span class='alert'>There's [points] point\s on the card.</span>")
|
|
|
|
///Conscript kit
|
|
/obj/item/card/mining_access_card
|
|
name = "mining access card"
|
|
desc = "A small card, that when used on any ID, will add mining access."
|
|
icon_state = "data_1"
|
|
|
|
/obj/item/card/mining_access_card/afterattack(atom/movable/AM, mob/user, proximity)
|
|
. = ..()
|
|
if(istype(AM, /obj/item/card/id) && proximity)
|
|
var/obj/item/card/id/I = AM
|
|
I.access |= ACCESS_MINING
|
|
I.access |= ACCESS_MINING_STATION
|
|
I.access |= ACCESS_MECH_MINING
|
|
I.access |= ACCESS_MINERAL_STOREROOM
|
|
I.access |= ACCESS_CARGO
|
|
to_chat(user, "<span class='notice'>You upgrade [I] with mining access.</span>")
|
|
qdel(src)
|
|
|
|
/obj/item/storage/backpack/duffelbag/mining_conscript
|
|
name = "mining conscription kit"
|
|
desc = "A kit containing everything a crewmember needs to support a shaft miner in the field."
|
|
icon_state = "duffel-explorer"
|
|
inhand_icon_state = "duffel-explorer"
|
|
|
|
/obj/item/storage/backpack/duffelbag/mining_conscript/PopulateContents()
|
|
new /obj/item/clothing/glasses/meson(src)
|
|
new /obj/item/t_scanner/adv_mining_scanner/lesser(src)
|
|
new /obj/item/storage/bag/ore(src)
|
|
new /obj/item/clothing/suit/hooded/explorer(src)
|
|
new /obj/item/encryptionkey/headset_mining(src)
|
|
new /obj/item/clothing/mask/gas/explorer(src)
|
|
new /obj/item/card/mining_access_card(src)
|
|
new /obj/item/gun/energy/kinetic_accelerator(src)
|
|
new /obj/item/kitchen/knife/combat/survival(src)
|
|
new /obj/item/flashlight/seclite(src)
|