Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Black Market Revamp #2929

Merged
merged 60 commits into from
May 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
076507f
Fully removes black market teleportation, plus change uplink recipe
Gristlebee Apr 21, 2024
06d1f96
Target links
Gristlebee Apr 21, 2024
8275b57
Descs and examines for uplink
Gristlebee Apr 21, 2024
874a334
Actually makes link sending to LTSRBT work
Gristlebee Apr 21, 2024
0b40342
Clothing Tab Redo
Gristlebee Apr 22, 2024
0fd92f1
New Consumables
Gristlebee Apr 22, 2024
32a54fc
misc price changes
Gristlebee Apr 22, 2024
1ddb310
fancy clothing
Gristlebee Apr 22, 2024
5987c4a
less jokey name
Gristlebee Apr 22, 2024
081ce69
Adds the emergency tab to the black market
Gristlebee Apr 22, 2024
dd66b47
emergency tab stuff
Gristlebee Apr 22, 2024
4d576ea
new misc items
Gristlebee Apr 22, 2024
a77dc71
tools price adjustment
Gristlebee Apr 22, 2024
156552c
Tools, plus price adjustments
Gristlebee Apr 22, 2024
35040b5
Tools and a weapon
Gristlebee Apr 22, 2024
dbd27c7
Item pairing in the catalogue
Gristlebee Apr 22, 2024
a37a69d
More weapons, corrupt power cell
Gristlebee Apr 23, 2024
bac5029
A few more tools
Gristlebee Apr 23, 2024
2009063
proc call items dont work :(
Gristlebee Apr 23, 2024
1381c24
Update weapons.dm
Gristlebee Apr 23, 2024
d471b8b
bye corrupt cells
Gristlebee Apr 23, 2024
6cd26ef
Fixes Paired items always spawning. Also typos
Gristlebee Apr 23, 2024
68fa9d9
Clothing tidbits
Gristlebee Apr 23, 2024
158ac56
Desc clean up + Sawn off Illestren works
Gristlebee Apr 23, 2024
343f717
Explosives Tab
Gristlebee Apr 23, 2024
64e9980
Reduces telepad order time, fixes typos
Gristlebee Apr 23, 2024
1d1fe43
Paired Items show up AFTER their main item
Gristlebee Apr 23, 2024
29ee452
safethrow
Gristlebee Apr 23, 2024
48e4143
descriptions for sending methods
Gristlebee Apr 23, 2024
9486776
reduce LTSRBT cost
Gristlebee Apr 23, 2024
c0c5dca
Final passover and additions
Gristlebee Apr 23, 2024
bfeef5a
plasma name
Gristlebee Apr 23, 2024
ae7dd47
Bioterror Spray go bye bye
Gristlebee Apr 23, 2024
8ae39fe
Fixes derringer datum
Gristlebee Apr 23, 2024
18442ce
Shipping descs typos
Gristlebee Apr 23, 2024
e0297eb
Merge branch 'black-market-eoehoma' of https://github.com/Gristlebee/…
Gristlebee Apr 23, 2024
578e4de
bepis disk go bye bye
Gristlebee Apr 23, 2024
9fe8412
more expensive RPGS
Gristlebee Apr 23, 2024
9d06b17
Mech Equipment DLC Pack
Gristlebee Apr 23, 2024
549538a
typo fixes
Gristlebee Apr 23, 2024
ffa0d8f
Secret Intel DLC
Gristlebee Apr 23, 2024
0a0759e
more typos
Gristlebee Apr 23, 2024
849e303
Solar Armories DLC
Gristlebee Apr 23, 2024
8b71f9f
Price Adjustment, couple more weapons
Gristlebee Apr 23, 2024
478f3dd
I am gods typoest warrior
Gristlebee Apr 23, 2024
664fa9b
I FORGOT THE ZERO
Gristlebee Apr 23, 2024
254b4c9
That joke sucked.
Gristlebee Apr 23, 2024
f98f6db
Salvager DLC
Gristlebee Apr 23, 2024
b54fa6f
rerun tests
Gristlebee Apr 23, 2024
d7846eb
Why must you fail me so
Gristlebee Apr 23, 2024
ed47ddd
Im a fucking dumbass, thanks Meem
Gristlebee Apr 23, 2024
ab2b80f
I shouldnt code when Im tired
Gristlebee Apr 23, 2024
53f4362
bad new
Gristlebee Apr 23, 2024
ca08ad9
Final passover plus typo fixes
Gristlebee Apr 24, 2024
c09f67d
Suggestion Pack
Gristlebee Apr 24, 2024
da13b2b
bwuh bwuh bwuh
Gristlebee Apr 24, 2024
5eec299
I used datums instead of flasks. Oops
Gristlebee Apr 24, 2024
dd5d0fe
Revert "I used datums instead of flasks. Oops"
Gristlebee Apr 24, 2024
185e742
Reapply "I used datums instead of flasks. Oops"
Gristlebee Apr 24, 2024
3c37d76
Value adjustment
Gristlebee Apr 30, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions code/__DEFINES/blackmarket.dm
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@

// The BEST way of shipping items: accurate, "undetectable"
#define SHIPPING_METHOD_LTSRBT "LTSRBT"
// Picks a random area to teleport the item to and gives you a minute to get there before it is sent.
#define SHIPPING_METHOD_TELEPORT "Teleport"
// Throws the item from somewhere at the station.
// Throws the item from somewhere at the uplink.
#define SHIPPING_METHOD_LAUNCH "Launch"

27 changes: 8 additions & 19 deletions code/controllers/subsystem/blackmarket.dm
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ SUBSYSTEM_DEF(blackmarket)

/// Descriptions for each shipping methods.
var/shipping_method_descriptions = list(
SHIPPING_METHOD_LAUNCH="Launches the item at your coordinates from across deep space, cheap but you might not recieve your item at all.",
SHIPPING_METHOD_LTSRBT="Long-To-Short-Range-Bluespace-Transceiver, a machine that prepares items at a remote storage location and then teleports them to the location of the uplink."
SHIPPING_METHOD_LAUNCH="Launches the item at your coordinates from across deep space. Cheap, but you might not recieve your item at all. We recommend being stationary in space, away from any large structures, for best results.",
SHIPPING_METHOD_LTSRBT="Long-To-Short-Range-Bluespace-Transceiver, a machine that prepares items at a remote storage location and then teleports them to the location of the LTRSBT."
)

/// List of all existing markets.
Expand All @@ -29,7 +29,8 @@ SUBSYSTEM_DEF(blackmarket)
if(!markets[M])
stack_trace("SSblackmarket: Item [I] available in market that does not exist.")
continue
markets[M].add_item(item)
markets[M].add_item(item, FALSE)

qdel(I)
. = ..()

Expand All @@ -47,22 +48,10 @@ SUBSYSTEM_DEF(blackmarket)
switch(purchase.method)
// Find a ltsrbt pad and make it handle the shipping.
if(SHIPPING_METHOD_LTSRBT)
if(!telepads.len)
continue
// Prioritize pads that don't have a cooldown active.
var/free_pad_found = FALSE
for(var/obj/machinery/ltsrbt/pad in telepads)
if(pad.recharge_cooldown)
continue
pad.add_to_queue(purchase)
queued_purchases -= purchase
free_pad_found = TRUE
break

if(free_pad_found)
if(!purchase.uplink.target)
continue

var/obj/machinery/ltsrbt/pad = pick(telepads)
var/obj/machinery/ltsrbt/pad = purchase.uplink.target

to_chat(recursive_loc_check(purchase.uplink.loc, /mob), "<span class='notice'>[purchase.uplink] flashes a message noting that the order is being processed by [pad].</span>")

Expand All @@ -76,7 +65,7 @@ SUBSYSTEM_DEF(blackmarket)
var/pickedloc = vlevel.get_side_turf(startSide)

var/atom/movable/item = purchase.entry.spawn_item(pickedloc)
item.throw_at(purchase.uplink, 3, 3, spin = FALSE)
item.safe_throw_at(purchase.uplink, 3, 3, spin = FALSE)

to_chat(recursive_loc_check(purchase.uplink.loc, /mob), "<span class='notice'>[purchase.uplink] flashes a message noting the order is being launched at your coordinates from [dir2text(startSide)].</span>")

Expand All @@ -96,7 +85,7 @@ SUBSYSTEM_DEF(blackmarket)

/// Used to add /datum/blackmarket_purchase to queued_purchases var. Returns TRUE when queued.
/datum/controller/subsystem/blackmarket/proc/queue_item(datum/blackmarket_purchase/P)
if(P.method == SHIPPING_METHOD_LTSRBT && !telepads.len)
if(P.method == SHIPPING_METHOD_LTSRBT && !P.uplink.target)
return FALSE
queued_purchases += P
return TRUE
6 changes: 6 additions & 0 deletions code/game/objects/items/stacks/sheets/mineral.dm
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,9 @@ GLOBAL_LIST_INIT(uranium_recipes, list ( \
/obj/item/stack/sheet/mineral/uranium/twenty
amount = 20

/obj/item/stack/sheet/mineral/uranium/ten
amount = 10

/obj/item/stack/sheet/mineral/uranium/five
amount = 5

Expand Down Expand Up @@ -210,6 +213,9 @@ GLOBAL_LIST_INIT(plasma_recipes, list ( \
/obj/item/stack/sheet/mineral/plasma/twenty
amount = 20

/obj/item/stack/sheet/mineral/plasma/ten
amount = 10

/obj/item/stack/sheet/mineral/plasma/five
amount = 5

Expand Down
2 changes: 2 additions & 0 deletions code/modules/cargo/blackmarket/blackmarket_item.dm
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@
var/availability_prob = 0
// Should there be an unlimited stock of an item
var/unlimited = FALSE
/// Should another item spawn alongside this one in the catalogue?
var/datum/blackmarket_item/pair_item

/datum/blackmarket_item/New()
if(isnull(price))
Expand Down
140 changes: 124 additions & 16 deletions code/modules/cargo/blackmarket/blackmarket_items/clothing.dm
Original file line number Diff line number Diff line change
@@ -1,15 +1,45 @@
/datum/blackmarket_item/clothing
category = "Clothing"

/datum/blackmarket_item/clothing/ninja_mask
name = "Space Ninja Mask"
desc = "Apart from being acid, lava, fireproof and being hard to take off someone it does nothing special on it's own."
item = /obj/item/clothing/mask/gas/space_ninja
/datum/blackmarket_item/clothing/cloth
name = "Build Your Own Jumpsuit Special"
desc = "Ever wanted to learn how to sew? This lovely selection of cloth is perfect to get some practice with."
item = /obj/item/stack/sheet/cotton/cloth/ten

price_min = 200
price_max = 500
stock_max = 3
availability_prob = 40
price_max = 400
stock_max = 5
availability_prob = 80

/datum/blackmarket_item/clothing/crown
name = "Crown"
desc = "A beautiful golden crown, rich with history and pedigree. Better worn than left to collect dust in a museum, right?"
item = /obj/item/clothing/head/crown/fancy

price_min = 1000
price_max = 2000
stock_max = 1
availability_prob = 20

/datum/blackmarket_item/clothing/galaxy_blue
name = "Blue Galaxy Suit"
desc = "A handsome silk suit, treated with a finish of bluespace dust for an out of this world sheen."
item = /obj/item/clothing/under/rank/civilian/lawyer/galaxy

price_min = 500
price_max = 2000
stock = 1
availability_prob = 20

/datum/blackmarket_item/clothing/galaxy_red
name = "Red Galaxy Suit"
desc = "A handsome silk suit, treated with a finish of telecrystal dust. It cuts a menacing figure."
item = /obj/item/clothing/under/rank/civilian/lawyer/galaxy/red

price_min = 500
price_max = 2000
stock = 1
availability_prob = 20

/datum/blackmarket_item/clothing/durathread_vest
name = "Durathread Vest"
Expand All @@ -31,15 +61,73 @@
stock_max = 4
availability_prob = 50

/datum/blackmarket_item/clothing/degraded_armor_set
Gristlebee marked this conversation as resolved.
Show resolved Hide resolved
name = "Clearance Bin Armor Set"
desc = "Looking to protect yourself, but on a tight budget? These previously used vest and helmets served their former owners well! (May they rest in peace.)"
item = /obj/item/storage/box

price_min = 100
price_max = 400
stock_min = 4
stock_max = 6
availability_prob = 80

/datum/blackmarket_item/clothing/degraded_armor_set/spawn_item(loc)
var/obj/item/storage/box/B = ..()
B.name = "Used Armor Set Box"
B.desc = "It smells distinctly of iron."
new /obj/item/clothing/head/helmet/old(B)
new /obj/item/clothing/suit/armor/vest/old(B)
return B

/datum/blackmarket_item/clothing/frontiersmen_armor_set
name = "X-11 Bulletproof Armor Set"
desc = "We got a good deal on some extra bulletproof armor from a Frontiersmen Quartermaster, and we're passing those savings onto you!"
item = /obj/item/storage/box

price_min = 1000
price_max = 1750
stock_max = 3
availability_prob = 50

/datum/blackmarket_item/clothing/frontiersmen_armor_set/spawn_item(loc)
var/obj/item/storage/box/B = ..()
B.name = "Bulletproof Armor Set Box"
B.desc = "A beat up looking box with some armor inside."
new /obj/item/clothing/suit/armor/vest/bulletproof/frontier(B)
new /obj/item/clothing/head/helmet/bulletproof/x11/frontier(B)
return B

/datum/blackmarket_item/clothing/gezena_armor
name = "Raksha-Plating vest"
desc = "Genuine armor vests used by the PGF Marine Corp. If a military guy in a cape comes by, play dumb."
item = /obj/item/clothing/suit/armor/gezena/marine
pair_item = /datum/blackmarket_item/clothing/gezena_helmet

price_min = 750
price_max = 1250
stock_max = 3
availability_prob = 20

/datum/blackmarket_item/clothing/gezena_helmet
name = "Raksha-Helm"
desc = "A helmet used by the PGF Marine Corp. They won't miss it. Not like there's much to protect up there anyways."
item = /obj/item/clothing/head/helmet/gezena

price_min = 500
price_max = 600
stock_max = 3
availability_prob = 0

/datum/blackmarket_item/clothing/full_spacesuit_set
name = "\improper Nanotrasen Branded Spacesuit Box"
desc = "A few boxes of \"Old Style\" space suits fell off the back of a space truck."
item = /obj/item/storage/box

price_min = 1500
price_max = 4000
price_min = 250
price_max = 750
stock_max = 3
availability_prob = 30
availability_prob = 70

/datum/blackmarket_item/clothing/full_spacesuit_set/spawn_item(loc)
var/obj/item/storage/box/B = ..()
Expand All @@ -60,11 +148,31 @@
availability_prob = 70

/datum/blackmarket_item/clothing/combatmedic_suit
name = "Combat Medic hardsuit"
desc = "A discarded combat medic hardsuit, found in the ruins of a carpet bombed xeno hive. Definately used, but as sturdy as an anchor."
name = "Combat Medic Hardsuit"
desc = "A discarded combat medic hardsuit, found in the ruins of a carpet bombed xeno hive. Definitely used, but as sturdy as an anchor."
item = /obj/item/clothing/suit/space/hardsuit/combatmedic

price_min = 5500
price_max = 7000
stock_max = 1
availability_prob = 10
price_min = 1000
price_max = 2500
stock_max = 3
availability_prob = 30

/datum/blackmarket_item/clothing/ramzi_suit
name = "Rusted Red Hardsuit"
desc = "A vintage ICW Era Gorlex Maruader hardsuit. The previous owner said we could have it when we pried it off their cold dead hands. Dry cleaning not included."
item = /obj/item/clothing/head/helmet/space/hardsuit/syndi/ramzi

price_min = 1500
price_max = 2500
stock = 1
availability_prob = 30

/datum/blackmarket_item/clothing/frontiersmen_hardsuit
name = "Frontiersmen Hardsuit"
desc = "An old but durable hardsuit typically used by the Frontiersmen. We accept no liability if you're shot by CLIP while wearing this."
item = /obj/item/clothing/suit/space/hardsuit/security/independent/frontier

price_min = 1000
price_max = 2000
stock_max = 3
availability_prob = 40
Loading
Loading