Skip to content

Commit

Permalink
Nerfs the black market (#4674)
Browse files Browse the repository at this point in the history
# About the pull request

- Removed several guns from the black market
- Removed extended m4ra mags from black market
- Removed monkeycubes from the "food" crate
- The black market now requires a specialized tool (sprite by Wei) to
hack. Can be found in the scanner object spawner 2.5% of the time. 9
spawners exist on the Almayer, meaning one will normally spawn every 2-3
rounds.
- Removed lunge mines from black market

# Explain why it's good for the game
The black market is not in a good place currently.

- It is completely trivial to access the black market, owing to the ease
of hacking and the CL's ability to print money. This removes any chance
of it being a special thing, instead turning it into an affair that
occurs almost every round.
- The CMB don't actually fix anything, they just encourage CTs to fuck
around with the black market
- Many of the things in the black market are just better than marine
gear. Removing the really good weapons is the start, I will have to see
if anything more is necessary.
- Monkey cubes allow for effectively infinite greenoes. The black market
shouldn't be significantly impacting a round, and this is directly
counter to that.
- Lunge mines are dumb as fuck, instantly gib humans (yes even the
broken ones do that) and encourage LRP behavior.

# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>


![image](https://github.com/cmss13-devs/cmss13/assets/41448081/a5f28f12-f660-4d0d-944d-ecfba40879fc)

</details>


# Changelog
:cl: Zonespace, Wei (sprites)
balance: Removed NSG, Type71, tactical Mar-40, and Mar-50 from the black
market
balance: Removed Ext. M4ra mags from the black market
balance: Removed monkeycubes from the black market
balance: Removed lunge mines from the black market
balance: You now need a modified security access tuner to access the
black market, which can be found ship- and ground-side where scanners
and radios can spawn.
/:cl:
  • Loading branch information
Zonespace27 committed Oct 15, 2023
1 parent dc49f4d commit e7e86c3
Show file tree
Hide file tree
Showing 6 changed files with 48 additions and 74 deletions.
3 changes: 3 additions & 0 deletions code/__DEFINES/traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,9 @@
/// Can lockout blackmarket from ASRS console circuits.
#define TRAIT_TOOL_TRADEBAND "t_tool_tradeband"

/// Can hack ASRS consoles to access the black market
#define TRAIT_TOOL_BLACKMARKET_HACKER "t_tool_blackmarket_hacker"

// CLOTHING TRAITS
#define TRAIT_CLOTHING_HOOD "t_clothing_hood"

Expand Down
89 changes: 22 additions & 67 deletions code/datums/supply_packs/black_market.dm
Original file line number Diff line number Diff line change
Expand Up @@ -127,70 +127,42 @@ Non-USCM items, from CLF, UPP, colonies, etc. Mostly combat-related.
spawn_guns() //the crate gives 2 guns

/obj/structure/largecrate/black_market/confiscated_weaponry/proc/spawn_guns()
switch(rand(1,6))
switch(rand(1, 5))
if(1) //pmc
if(prob(50))
new /obj/item/weapon/gun/rifle/nsg23/no_lock(src)
new /obj/item/ammo_magazine/rifle/nsg23(src)
new /obj/item/ammo_magazine/rifle/nsg23(src)
new /obj/item/ammo_magazine/rifle/nsg23/ap(src)
new /obj/item/ammo_magazine/rifle/nsg23/extended(src)
else
new /obj/item/weapon/gun/smg/fp9000(src)
new /obj/item/ammo_magazine/smg/fp9000(src)
new /obj/item/ammo_magazine/smg/fp9000(src)
new /obj/item/ammo_magazine/smg/fp9000(src)
new /obj/item/ammo_magazine/smg/fp9000(src)
new /obj/item/weapon/gun/smg/fp9000(src)
new /obj/item/ammo_magazine/smg/fp9000(src)
new /obj/item/ammo_magazine/smg/fp9000(src)
new /obj/item/ammo_magazine/smg/fp9000(src)
new /obj/item/ammo_magazine/smg/fp9000(src)
if(2) //pizza
new /obj/item/weapon/gun/pistol/holdout(src)
new /obj/item/ammo_magazine/pistol/holdout(src)
if(3) //clf
switch(rand(1, 3))
switch(rand(1, 2))
if(1)
new /obj/item/weapon/twohanded/lungemine/damaged(src)
if(2)
new /obj/item/weapon/gun/smg/uzi(src)
new /obj/item/ammo_magazine/smg/uzi/extended(src)
new /obj/item/ammo_magazine/smg/uzi(src)
new /obj/item/ammo_magazine/smg/uzi(src)
if(3)
if(2)
new /obj/item/weapon/gun/smg/mac15(src)
new /obj/item/ammo_magazine/smg/mac15/extended(src)
new /obj/item/ammo_magazine/smg/mac15(src)
new /obj/item/ammo_magazine/smg/mac15(src)
if(4) //upp
if(prob(50))
new /obj/item/weapon/gun/rifle/type71(src)
new /obj/item/ammo_magazine/rifle/type71/ap(src)
new /obj/item/ammo_magazine/rifle/type71(src)
new /obj/item/ammo_magazine/rifle/type71(src)
else
new /obj/item/weapon/gun/shotgun/type23/riot_control(src)
new /obj/item/ammo_magazine/handful/shotgun/heavy/beanbag(src)
new /obj/item/ammo_magazine/handful/shotgun/heavy/beanbag(src)
new /obj/item/ammo_magazine/handful/shotgun/heavy/flechette(src)
new /obj/item/ammo_magazine/handful/shotgun/heavy/flechette(src)
new /obj/item/ammo_magazine/handful/shotgun/heavy/slug(src)
new /obj/item/ammo_magazine/handful/shotgun/heavy/slug(src) //NO buckshot!
new /obj/item/weapon/gun/shotgun/type23/riot_control(src)
new /obj/item/ammo_magazine/handful/shotgun/heavy/beanbag(src)
new /obj/item/ammo_magazine/handful/shotgun/heavy/beanbag(src)
new /obj/item/ammo_magazine/handful/shotgun/heavy/flechette(src)
new /obj/item/ammo_magazine/handful/shotgun/heavy/flechette(src)
new /obj/item/ammo_magazine/handful/shotgun/heavy/slug(src)
new /obj/item/ammo_magazine/handful/shotgun/heavy/slug(src) //NO buckshot!
if(5) //freelancer
if(prob(80))
new /obj/item/weapon/gun/rifle/mar40(src)
new /obj/item/ammo_magazine/rifle/mar40/extended(src)
new /obj/item/ammo_magazine/rifle/mar40(src)
new /obj/item/ammo_magazine/rifle/mar40(src)
else
new /obj/item/weapon/gun/rifle/mar40/lmg(src)
new /obj/item/ammo_magazine/rifle/mar40/lmg(src)
if(6) //VAIPO
if(prob(50))
new /obj/item/weapon/gun/rifle/mar40/tactical(src)
new /obj/item/ammo_magazine/rifle/mar40/extended(src)
new /obj/item/ammo_magazine/rifle/mar40/extended(src)
new /obj/item/ammo_magazine/rifle/mar40(src)
else
new /obj/item/weapon/gun/rifle/mar40/lmg(src)
new /obj/item/ammo_magazine/rifle/mar40/lmg(src)
new /obj/item/ammo_magazine/rifle/mar40/lmg(src)
new /obj/item/weapon/gun/rifle/mar40(src)
new /obj/item/ammo_magazine/rifle/mar40/extended(src)
new /obj/item/ammo_magazine/rifle/mar40(src)
new /obj/item/ammo_magazine/rifle/mar40(src)


/* Misc. Individual Guns */

Expand Down Expand Up @@ -561,10 +533,6 @@ Primarily made up of things that would be best utilized, well, shipside. Recreat
/obj/item/reagent_container/food/snacks/egg/random,
/obj/item/reagent_container/food/snacks/egg/random, //not a dupe
/obj/item/reagent_container/food/snacks/xemeatpie,
/obj/item/reagent_container/food/snacks/monkeycube,
/obj/item/reagent_container/food/snacks/monkeycube/farwacube,
/obj/item/reagent_container/food/snacks/monkeycube/stokcube,
/obj/item/reagent_container/food/snacks/monkeycube/yirencube,
/obj/item/reagent_container/food/snacks/upp,
/obj/item/reagent_container/food/snacks/mre_pack/xmas1,
/obj/item/reagent_container/food/snacks/mre_pack/xmas2,
Expand Down Expand Up @@ -722,13 +690,6 @@ USCM spare items, miscellaneous gear that's too niche and distant (or restricted
dollar_cost = 50
containertype = /obj/structure/largecrate/black_market

/datum/supply_packs/contraband/surplus/surplus_m4ra_extended
name = "surplus magazine box (Ext M4RA x 12)"
contains = list(/obj/item/ammo_box/magazine/m4ra/ext)
dollar_cost = 45
crate_heat = 3
containertype = /obj/structure/largecrate/black_market

/* - Misc. USCM weaponry - */

/datum/supply_packs/contraband/surplus/mk45_automag
Expand Down Expand Up @@ -1108,21 +1069,15 @@ Things that don't fit anywhere else. If they're meant for shipside use, they pro
new /obj/item/ammo_magazine/smg/mac15/extended(loc)
new /obj/item/ammo_magazine/smg/mac15/extended(loc)
loot_message = SPAN_NOTICE("It's some CLF SMG armaments.")
if(21 to 25)
if(21 to 29)
// Discovered Yautja ruins.. (None of these will trigger any alarms. They are far too old, degraded, and useless for any Yautja to care.)
new /obj/item/clothing/mask/yautja_flavor(loc)
new /obj/item/clothing/suit/armor/yautja_flavor(loc)
new /obj/item/clothing/shoes/yautja_flavor(loc)
new /obj/item/weapon/twohanded/yautja/glaive/damaged(loc)
new /obj/item/stack/yautja_rope(loc)
loot_message = SPAN_NOTICE("It's some strange ancient gear...?")
if(26 to 30)
// Damaged lunge mines, don't let the marines near these. Not even *close* to effective against even a runner.
new /obj/item/weapon/twohanded/lungemine/damaged(loc)
new /obj/item/weapon/twohanded/lungemine/damaged(loc)
new /obj/item/weapon/twohanded/lungemine/damaged(loc)
loot_message = SPAN_NOTICE("It's a bunch of lunge mines..?")
if(31 to 35)
if(30 to 35)
// CLF nades!
loot_message = SPAN_NOTICE("It's a package of assorted CLF grenades!")
var/list/nades_to_pick = list(
Expand Down
11 changes: 7 additions & 4 deletions code/game/objects/effects/spawners/random.dm
Original file line number Diff line number Diff line change
Expand Up @@ -57,10 +57,13 @@
icon_state = "atmos"

/obj/effect/spawner/random/technology_scanner/item_to_spawn()
return pick(prob(5);/obj/item/device/t_scanner,\
prob(2);/obj/item/device/radio,\
prob(5);/obj/item/device/analyzer)

return pick_weight(list(
"none" = 10,
/obj/item/device/t_scanner = 10,
/obj/item/device/radio = 8,
/obj/item/device/analyzer = 10,
/obj/item/device/black_market_hacking_device = 2,
))

/obj/effect/spawner/random/powercell
name = "Random Powercell"
Expand Down
9 changes: 6 additions & 3 deletions code/game/objects/items/circuitboards/computer.dm
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,11 @@

/obj/item/circuitboard/computer/supplycomp/attackby(obj/item/tool, mob/user)
if(HAS_TRAIT(tool, TRAIT_TOOL_MULTITOOL))
to_chat(user, SPAN_WARNING("You start messing around with the electronics of \the [src]..."))
to_chat(user, SPAN_WARNING("You try to pulse the circuit board, but nothing happens. Maybe you need something more specialized?"))
return

else if(HAS_TRAIT(tool, TRAIT_TOOL_BLACKMARKET_HACKER))
to_chat(user, SPAN_WARNING("You start messing around with the electronics of [src]..."))
if(do_after(user, 8 SECONDS, INTERRUPT_ALL, BUSY_ICON_FRIENDLY))
if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI))
to_chat(user, SPAN_WARNING("You have no idea what you're doing."))
Expand All @@ -191,8 +195,7 @@
to_chat(user, SPAN_WARNING("You weaken the broadcasting function with \the [tool], and the red light stops blinking, turning off. It's probably good now."))
contraband_enabled = FALSE

if(HAS_TRAIT(tool, TRAIT_TOOL_TRADEBAND))

else if(HAS_TRAIT(tool, TRAIT_TOOL_TRADEBAND))
if(!skillcheck(user, SKILL_POLICE, SKILL_POLICE_SKILLED))
to_chat(user, SPAN_NOTICE("You do not know how to use [tool]"))
return
Expand Down
10 changes: 10 additions & 0 deletions code/game/objects/items/devices/scanners.dm
Original file line number Diff line number Diff line change
Expand Up @@ -457,6 +457,16 @@ FORENSIC SCANNER
playsound(user, 'sound/machines/twobeep.ogg', 15, TRUE)
to_chat(user, SPAN_NOTICE("You scan [hit_atom] and notice a reading on [src]'s pad, it says:<b> ITEM HAS [market_value] VALUE <b>"))

/obj/item/device/black_market_hacking_device
name = "modified security access tuner"
desc = "A security access tuner with wires and electrical pins sticking out at odd angles. A handwritten label on the bottom says something about the ASRS system."
icon_state = "bm_hacker"
item_state = "analyzer"
w_class = SIZE_SMALL
flags_atom = FPRINT
flags_equip_slot = SLOT_WAIST
inherent_traits = list(TRAIT_TOOL_BLACKMARKET_HACKER)

/obj/item/device/cmb_black_market_tradeband
name = "\improper CMB Tradeband Compliance Device"
desc = "A device used to reset any tampering done to trading devices' signal range. Occasionally used to fix any signal chips damaged in an accident, but often for malpractice in trading. Use this with caution, as it will also reset any evidence of potential illicit trade. Created to fulfill a joint-organization requirement for CMB-ICC teams on the frontier, where tampered machinery was difficult to move and refurbish. Smugglers beware."
Expand Down
Binary file modified icons/obj/items/devices.dmi
Binary file not shown.

0 comments on commit e7e86c3

Please sign in to comment.