Files
Bubberstation/code/modules/cargo/markets/market_items/misc.dm
T
63e2f45ed3 TSA: Scanner Gates and N-Spector update (#85077)
## About The Pull Request
Scanner gates now have a much-refined sprite with dirs.


https://github.com/user-attachments/assets/22659e12-5565-4feb-a8e7-0f1a56c4a99e

_The message in the video is outdated, now working with the formula
`src.say("[detected_thing][reverse ? " not ": " "]detected!!")`_

Scanner gates now can have false positive/negative which depends on the
tier of scanning modules in it:
- Tier 1 - 4%
- Tier 2 - 3%
- Tier 3 - 2%
- Tier 4 - 1%

Scanner gates now loudly blare into chat when they detect stuff.

Now there is a preset scanner gate to detect **GUNS** in main Brig
entrances on maps, they are not upgraded with N-Spector.

***

N-Spector now can not only scan items for contraband but people too. It
takes 4 seconds, makes a loud noise, and warns the person getting
scanned in a chat with bold text.


https://github.com/user-attachments/assets/6aaca7bb-8273-485b-a727-c84f132b92f5

***

Made scanner code using proper cooldowns.

The scanner gate description now tells on which mode it's turned on.

Now smuggler satchel description tells you that it can prevent items
from being detected by contraband scanners.
## Why It's Good For The Game
Scanner gates sprites were ancient and as such been updated.

Scanner gates having false-positive will make sure for Security to
always be on their toes, and also cause interaction between crew who got
false-positive. Also, it finally makes use of scanner gates being
upgradable, as before this there was no reason for using higher-tier
scanning modules for its construction.

Scanner gates blaring into the chat now make it clearer for spectators
to acknowledge why the scanner got triggered.

Putting not upgraded scanners in the Brig entrance doors gives them some
use outside of being sometimes built by bored Security Officers.

***

When N-Spector was upgraded, I immediately thought it should also be
possible to scan people, like how TSA scans people with metal detectors.
It takes around the same time as stripping a backpack, and backpack
searches still would be more effective as they can show stuff that the
scanner cannot detect.

The warning and loud sound make it possible for the person getting
scanned to walk away if they start getting scanned unprompted.
This would not likely cause any trouble, as going up and starting
scanning someone for no reason would be the same as going up to someone
and starting to strip their backpack.

With N-Spector Security can perform more fluff interesting searches. 
## Changelog
🆑 DrDiasyl aka DrTuxedo
add: Scanner gates now blare into the chat the reason why it got
triggered
add: Scanner gates now can have false positives/negatives, and the
chance of them being reduced when they are upgraded
add: Brig entrances now have scanner gates preset to detect GUNS
add: You can now scan people with N-Spector for contraband
image: Scanner gates now have a better sprite with dirs
qol: Scanner gates description now tells to what mode they are set
fix: You no longer can remove N-Spector from scanner gates without
unlocking them first
/🆑

---------

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2024-07-20 23:35:45 +00:00

146 lines
4.9 KiB
Plaintext

/datum/market_item/misc
category = "Miscellaneous"
abstract_path = /datum/market_item/misc
/datum/market_item/misc/clear_pda
name = "Clear PDA"
desc = "Show off your style with this limited edition clear PDA!."
item = /obj/item/modular_computer/pda/clear
price_min = CARGO_CRATE_VALUE * 1.25
price_max = CARGO_CRATE_VALUE *3
stock_max = 2
availability_prob = 50
/datum/market_item/misc/jade_lantern
name = "Jade Lantern"
desc = "Found in a box labeled 'Danger: Radioactive'. Probably safe."
item = /obj/item/flashlight/lantern/jade
price_min = CARGO_CRATE_VALUE * 0.75
price_max = CARGO_CRATE_VALUE * 2.5
stock_max = 2
availability_prob = 45
/datum/market_item/misc/cap_gun
name = "Cap Gun"
desc = "Prank your friends with this harmless gun! Harmlessness guranteed."
item = /obj/item/toy/gun
price_min = CARGO_CRATE_VALUE * 0.25
price_max = CARGO_CRATE_VALUE
stock_max = 6
availability_prob = 80
/datum/market_item/misc/shoulder_holster
name = "Shoulder holster"
desc = "Yeehaw, hardboiled friends! This holster is the first step in your dream of becoming a detective and being allowed to shoot real guns!"
item = /obj/item/storage/belt/holster
price_min = CARGO_CRATE_VALUE * 2
price_max = CARGO_CRATE_VALUE * 4
stock_max = 8
availability_prob = 60
/datum/market_item/misc/donk_recycler
name = "MOD Riot Foam Dart Recycler Module"
desc = "If you love toy guns, hate cleaning and got a MODsuit, this module is a must have."
item = /obj/item/mod/module/recycler/donk
price_min = CARGO_CRATE_VALUE * 2
price_max = CARGO_CRATE_VALUE * 4.5
stock_max = 2
availability_prob = 30
/datum/market_item/misc/shove_blocker
name = "MOD Bulwark Module"
desc = "You have no idea how much effort it took us to extract this module from that damn safeguard MODsuit last shift."
item = /obj/item/mod/module/shove_blocker
price_min = CARGO_CRATE_VALUE * 4
price_max = CARGO_CRATE_VALUE * 5.75
stock_max = 1
availability_prob = 25
/datum/market_item/misc/holywater
name = "Flask of holy water"
desc = "Father Lootius' own brand of ready-made holy water."
item = /obj/item/reagent_containers/cup/glass/bottle/holywater
price_min = CARGO_CRATE_VALUE * 2
price_max = CARGO_CRATE_VALUE * 3
stock_max = 3
availability_prob = 40
/datum/market_item/misc/holywater/spawn_item(loc, datum/market_purchase/purchase)
if (prob(6.66))
item = /obj/item/reagent_containers/cup/beaker/unholywater
else
item = initial(item)
return ..()
/datum/market_item/misc/strange_seed
name = "Strange Seeds"
desc = "An Exotic Variety of seed that can contain anything from glow to acid."
item = /obj/item/seeds/random
price_min = CARGO_CRATE_VALUE * 1.6
price_max = CARGO_CRATE_VALUE * 1.8
stock_min = 2
stock_max = 5
availability_prob = 50
/datum/market_item/misc/smugglers_satchel
name = "Smuggler's Satchel"
desc = "This easily hidden satchel can become a versatile tool to anybody with the desire to keep certain items out of sight and out of mind. Its contents cannot be detected by contraband scanners."
item = /obj/item/storage/backpack/satchel/flat/empty
price_min = CARGO_CRATE_VALUE * 3.75
price_max = CARGO_CRATE_VALUE * 5
stock_max = 2
availability_prob = 30
/datum/market_item/misc/roulette
name = "Roulette Beacon"
desc = "Start your own underground casino, wherever you go. One use only. No refunds."
item = /obj/item/roulette_wheel_beacon
price_min = CARGO_CRATE_VALUE * 1
price_max = CARGO_CRATE_VALUE * 2.5
stock_max = 3
availability_prob = 50
/datum/market_item/misc/jawed_hook
name = "Jawed Fishing Hook"
desc = "The thing ya use if y'are strugglin' with fishes. Just rememeber to whoop yer rod before it's too late, 'cause this thing's gonna hurt them like an Arkansas toothpick."
item = /obj/item/fishing_hook/jaws
price_min = CARGO_CRATE_VALUE * 0.75
price_max = CARGO_CRATE_VALUE * 2
stock_max = 3
availability_prob = 70
/datum/market_item/misc/v8_engine
name = "Genuine V8 Engine (Perserved)"
desc = "Hey greasemonkeys, you ready to start those engines? Want to start racing through the halls and making some tighter turns on the interstellar beltway? Then you need this classic engine."
item = /obj/item/v8_engine
price_min = CARGO_CRATE_VALUE * 4
price_max = CARGO_CRATE_VALUE * 6
stock_max = 1
availability_prob = 15
/datum/market_item/misc/fish
name = "Fish"
desc = "Fish! Fresh fish! Fish you can cut, grind and even keep in aquarium if you want to! Get some before the next fight at my village breaks out!"
price_min = PAYCHECK_CREW * 0.5
price_max = PAYCHECK_CREW * 1.2
item = /obj/item/storage/fish_case/blackmarket
stock_min = 3
stock_max = 8
availability_prob = 90
/datum/market_item/misc/giant_wrench_parts
name = "Big Slappy parts"
desc = "Cheap illegal Big Slappy parts. The fastest and statistically most dangerous wrench."
item = /obj/item/weaponcrafting/giant_wrench
price_min = CARGO_CRATE_VALUE * 2
price_max = CARGO_CRATE_VALUE * 5
stock_max = 1
availability_prob = 25