Skip to content

Commit

Permalink
[MODULAR] Crime DLC #1: Underworld Connections quirk for exploitables…
Browse files Browse the repository at this point in the history
… access & roundstart black market uplink (customizable) (#669)

* Initial commit of Crime DLC 1

* Change keys to satisfy CI?

* Use short text input for description

* CI fix attempt 2

* Remove unused import

* Fix duplicated price min

* Policy request: make sure users know they're not antags for taking the UC quirk

* Don't remove security notes upon quirk removal

* Code review suggestions

* Apply suggestions from code review

Co-authored-by: Bloop <[email protected]>

* Replace CIN mention

* Fix defunct replacetext and also clarify weapons permit difficulties in quirk description

* Prevent jobrole prisoners from using Underworld Connections quirk (by popular request)

* Remove broken uplink customization icon

* Make black market uplinks small items

---------

Co-authored-by: Bloop <[email protected]>
  • Loading branch information
2 people authored and StealsThePRs committed Feb 28, 2024
1 parent 7c2ec91 commit e2c3692
Show file tree
Hide file tree
Showing 7 changed files with 402 additions and 3 deletions.
6 changes: 4 additions & 2 deletions code/__DEFINES/~nova_defines/jobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,11 @@
#define JOB_UNAVAILABLE_FLAVOUR (JOB_UNAVAILABLE_LANGUAGE + 1)
#define JOB_UNAVAILABLE_AUGMENT (JOB_UNAVAILABLE_FLAVOUR + 1)

#define SEC_RESTRICTED_QUIRKS "Blind" = TRUE, "Brain Tumor" = TRUE, "Deaf" = TRUE, "Paraplegic" = TRUE, "Hemiplegic" = TRUE, "Mute" = TRUE, "Foreigner" = TRUE, "Pacifist" = TRUE, "No Guns" = TRUE, "Illiterate" = TRUE, "Nerve Stapled" = TRUE
#define HEAD_RESTRICTED_QUIRKS "Blind" = TRUE, "Deaf" = TRUE, "Mute" = TRUE, "Foreigner" = TRUE, "Brain Tumor" = TRUE, "Illiterate" = TRUE
#define SEC_RESTRICTED_QUIRKS "Blind" = TRUE, "Brain Tumor" = TRUE, "Deaf" = TRUE, "Paraplegic" = TRUE, "Hemiplegic" = TRUE, "Mute" = TRUE, "Foreigner" = TRUE, "Pacifist" = TRUE, "No Guns" = TRUE, "Illiterate" = TRUE, "Nerve Stapled" = TRUE, "Underworld Connections" = TRUE
#define HEAD_RESTRICTED_QUIRKS "Blind" = TRUE, "Deaf" = TRUE, "Mute" = TRUE, "Foreigner" = TRUE, "Brain Tumor" = TRUE, "Illiterate" = TRUE, "Underworld Connections" = TRUE
#define HEAD_RESTRICTED_QUIRKS_QM "Blind" = TRUE, "Deaf" = TRUE, "Mute" = TRUE, "Foreigner" = TRUE, "Brain Tumor" = TRUE, "Illiterate" = TRUE
#define GUARD_RESTRICTED_QUIRKS "Blind" = TRUE, "Deaf" = TRUE, "Foreigner" = TRUE, "Pacifist" = TRUE, "Nerve Stapled" = TRUE
#define PRISONER_RESTRICTED_QUIRKS "Underworld Connections" = TRUE

#define RESTRICTED_QUIRKS_EXCEPTIONS list("Mute" = "Signer")

Expand Down
3 changes: 2 additions & 1 deletion modular_nova/modules/customization/modules/jobs/_job.dm
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@
banned_augments = list(HEAD_RESTRICTED_AUGMENTS)

/datum/job/quartermaster
banned_quirks = list(HEAD_RESTRICTED_QUIRKS)
banned_quirks = list(HEAD_RESTRICTED_QUIRKS_QM)
banned_augments = list(HEAD_RESTRICTED_AUGMENTS)

//Silicon
Expand All @@ -142,6 +142,7 @@

/datum/job/prisoner
required_languages = null
banned_quirks = list(PRISONER_RESTRICTED_QUIRKS)

/datum/job/orderly
banned_quirks = list(GUARD_RESTRICTED_QUIRKS)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/obj/item/market_uplink
w_class = WEIGHT_CLASS_SMALL
Original file line number Diff line number Diff line change
@@ -0,0 +1,222 @@
// This file contains a WHOLE BUNCH of cost defuckulations to bring the ancient black market stuff back into line with our current cargo pricing.
// I've also taken the liberty of redoing a few descs because man they kinda suck.
// Some availability_probs have been upped considerably for items that I think should be core to the "dodgy" character archetype, like switchblades, science goggles and the various maintenance pills.

// CLOTHING

/datum/market_item/clothing/ninja_mask
price_min = PAYCHECK_CREW
price_max = PAYCHECK_CREW * 3

/datum/market_item/clothing/durathread_vest
desc = "Concerns about high asbestos content are completely unfounded. Note: may contain asbestos."
price_min = PAYCHECK_CREW * 0.5
price_max = PAYCHECK_CREW * 1.5

/datum/market_item/clothing/durathread_helmet
desc = "Smells faintly like an icewalker. Weird. Goes on your head and is vaguely armoured. Note: may contain asbestos."
price_min = PAYCHECK_CREW * 0.5
price_max = PAYCHECK_CREW * 1.5

/datum/market_item/clothing/full_spacesuit_set
desc = "Decommissioned thirty years ago, boxes of these ancient spaceproof relics keep showing up in warehouses somewhere. They're \"old style\"."
price_min = PAYCHECK_CREW * 6
price_max = PAYCHECK_CREW * 12

/datum/market_item/clothing/chameleon_hat
desc = "Emulate the appearance of any hat in the sector! Warning: device not quality tested. \[REDACTED\] assumes no risk for malfunction or mortal injury."
price_min = PAYCHECK_CREW
price_max = PAYCHECK_CREW * 3

/datum/market_item/clothing/rocket_boots
price_min = PAYCHECK_CREW * 6
price_max = PAYCHECK_CREW * 12

/datum/market_item/clothing/anti_sec_pin
price_min = PAYCHECK_CREW
price_max = PAYCHECK_CREW * 3
availability_prob = 100 //it's funny so why not

// CONSUMABLES
/datum/market_item/consumable/clown_tears
desc = "Wrung by force from ethically-sourced clowns by your local jester. 100% guaranteed baton free."
price_min = PAYCHECK_CREW * 0.5
price_max = PAYCHECK_CREW * 1.5

/datum/market_item/consumable/donk_pocket_box
price_min = PAYCHECK_CREW * 0.3
price_max = PAYCHECK_CREW * 1
availability_prob = 100 //you can always afford some (illegal) donkpockets. Donk Co loves you.

/datum/market_item/consumable/suspicious_pills
price_min = PAYCHECK_CREW * 0.5
price_max = PAYCHECK_CREW * 1.5

/datum/market_item/consumable/floor_pill
desc = "Harvested daily by responsibly-paid assistants, this pill is guaranteed to a) have been on the floor, and b) is a pill. Good luck!"
price_min = PAYCHECK_CREW * 0.1
price_max = PAYCHECK_CREW * 0.3
availability_prob = 100 // no shortage of unmarked pills babyyyy

/datum/market_item/consumable/pumpup
desc = "Clean-up crews sell off these things by the dozen after every shift - get your hands on some today! What could possibly go wrong with maintenance drugs?"
price_min = PAYCHECK_CREW * 0.2
price_max = PAYCHECK_CREW * 0.4

// MISCELLANEOUS

/datum/market_item/misc/Clear_PDA
desc = "Clearly show your appreciation for style with this limited edition clear PDA!"
price_min = PAYCHECK_CREW
price_max = PAYCHECK_CREW * 2

/datum/market_item/misc/jade_Lantern
price_min = PAYCHECK_CREW * 0.5
price_max = PAYCHECK_CREW

/datum/market_item/misc/cap_gun
price_min = PAYCHECK_CREW * 0.5
price_max = PAYCHECK_CREW

/datum/market_item/misc/shoulder_holster
name = "Shoulder Holster"
//why in great googly moogly were these so expensive? what the fuck?
price_min = PAYCHECK_CREW * 0.2
price_max = PAYCHECK_CREW * 0.6

/datum/market_item/misc/donk_recycler
price_min = PAYCHECK_CREW * 2
price_max = PAYCHECK_CREW * 4

/datum/market_item/misc/shove_blocker
// ok this is a seriously fucking good module so we'll make it cost a bit
price_min = PAYCHECK_CREW * 8
price_max = PAYCHECK_CREW * 14

/datum/market_item/misc/holywater
desc = "The Spinward Independent Magicians assume no responsibility for the holy (or unholiness) of this magical reagent."
price_min = PAYCHECK_CREW
price_max = PAYCHECK_CREW * 3

/datum/market_item/misc/strange_seed
desc = "Exotic varieties of seed outlawed in most sectors, including this one. What's the worst that could happen?"
price_min = PAYCHECK_CREW * 0.5
price_max = PAYCHECK_CREW

/datum/market_item/misc/smugglers_satchel
//inventory gamers...
price_min = PAYCHECK_CREW * 3
price_max = PAYCHECK_CREW * 6

/datum/market_item/misc/roulette
price_min = PAYCHECK_CREW * 0.5
price_max = PAYCHECK_CREW * 6 // it's how the chips fall babyyy

/datum/market_item/misc/jawed_hook
desc = "If you're struggling with the fishes, give 'em the jaws, see?"
price_min = PAYCHECK_CREW * 0.5
price_max = PAYCHECK_CREW * 1.5

/datum/market_item/misc/v8_engine
name = "Genuine V8 Engine (Preserved)"
price_min = PAYCHECK_CREW * 6
price_max = PAYCHECK_CREW * 12

/datum/market_item/misc/fish
name = "Case of Smuggled Fish"
desc = "What makes these fish such hot products? We'd have to kill you if we told you."

/datum/market_item/misc/giant_wrench_parts
name = "Comically-Large Wrench Parts"
desc = "They're searching every broadband transmission for the name of this wrench, alright? You're mad if you assemble this thing. Mad, we tell you."
price_min = PAYCHECK_CREW * 4
price_max = PAYCHECK_CREW * 8

// TOOLS
/datum/market_item/tool/caravan_wrench
price_min = PAYCHECK_CREW * 0.5
price_max = PAYCHECK_CREW * 2
availability_prob = 100 // let's have all the experimental tools be always available, because why not?

/datum/market_item/tool/caravan_wirecutters
price_min = PAYCHECK_CREW * 0.5
price_max = PAYCHECK_CREW * 2
availability_prob = 100

/datum/market_item/tool/caravan_screwdriver
price_min = PAYCHECK_CREW * 0.5
price_max = PAYCHECK_CREW * 2
availability_prob = 100

/datum/market_item/tool/caravan_crowbar
price_min = PAYCHECK_CREW * 0.5
price_max = PAYCHECK_CREW * 2
availability_prob = 100

/datum/market_item/tool/binoculars
//we can roundstart with these so let's tone them way down
desc = "Offworld military surplus. They'll never see you coming."
price_min = PAYCHECK_CREW * 0.2
price_max = PAYCHECK_CREW * 0.5

/datum/market_item/tool/riot_shield
desc = "Bloodstains not included."
price_min = PAYCHECK_CREW * 4
price_max = PAYCHECK_CREW * 8

/datum/market_item/tool/thermite_bottle
desc = "Thirty galactic units of an incendiary compound that will burn through just about anything."
price_min = PAYCHECK_CREW * 2
price_max = PAYCHECK_CREW * 6

/datum/market_item/tool/science_goggles
price_min = PAYCHECK_CREW * 0.5
price_max = PAYCHECK_CREW * 2
availability_prob = 100 // for people who want to make illicit drugs in maint

/datum/market_item/tool/fake_scanner
price_min = PAYCHECK_CREW * 0.5
price_max = PAYCHECK_CREW * 2

/datum/market_item/tool/program_disk
name = "Bootleg PDA Data Disk"
desc = "Contains a random selection of limited PDA programs purloined by bitrunners from the FTU. Wait, we're not supposed to tell you that."
price_min = PAYCHECK_CREW * 1.5
price_max = PAYCHECK_CREW * 3
availability_prob = 100 // not every program is useful but some of these are and they're fun and hackery, so why not?

// WEAPONS

/datum/market_item/weapon/bear_trap
price_min = PAYCHECK_CREW * 2
price_max = PAYCHECK_CREW * 4

/datum/market_item/weapon/shotgun_dart
price_min = PAYCHECK_CREW * 0.1
price_max = PAYCHECK_CREW * 0.3

/datum/market_item/weapon/bone_spear
price_min = PAYCHECK_CREW * 0.5
price_max = PAYCHECK_CREW * 2

/datum/market_item/weapon/chainsaw
desc = "Once used to fell trees on Gaia worlds, the humble chainsaw has come into its own as the premiere anti-mold device of the sector. And you can have one right now for one easy payment!"
price_min = PAYCHECK_CREW * 2
price_max = PAYCHECK_CREW * 4
availability_prob = 75 // USE CHAINSAWS FOR MOLDS MORE OH MY GOD

/datum/market_item/weapon/switchblade
// This is force 20 like the sabre/shamshir so price it similarly. Also, make it always available so you can shank people in maints.
desc = "Standard-issue hardware for shifty goons sector-wide. Pointy and sharp."
price_min = PAYCHECK_CREW * 4.25
price_max = PAYCHECK_CREW * 8
availability_prob = 100

/datum/market_item/weapon/emp_grenade
desc = "The bane of synthetics and station-engineers everywhere."
price_min = PAYCHECK_CREW * 1.5
price_max = PAYCHECK_CREW * 5

/datum/market_item/weapon/fisher
price_min = PAYCHECK_CREW * 4
price_max = PAYCHECK_CREW * 8
Loading

0 comments on commit e2c3692

Please sign in to comment.