* Port forensics from nyanotrasen

* port updates

* printing

* Update Resources/Locale/en-US/forensics/forensics.ftl

Co-authored-by: Veritius <veritiusgaming@gmail.com>

* Update Content.Server/Forensics/Components/ForensicPadComponent.cs

Co-authored-by: Kara <lunarautomaton6@gmail.com>

* Update Content.Server/Forensics/Systems/ForensicPadSystem.cs

Co-authored-by: Kara <lunarautomaton6@gmail.com>

* Update Content.Server/Forensics/Systems/ForensicScannerSystem.cs

Co-authored-by: Kara <lunarautomaton6@gmail.com>

* partially address reviews

* comments

* redo the events

* handle it

* rewrite loc

* master fixes

Co-authored-by: ike709 <ike709@github.com>
Co-authored-by: Veritius <veritiusgaming@gmail.com>
Co-authored-by: Kara <lunarautomaton6@gmail.com>
This commit is contained in:
ike709
2022-06-27 20:04:53 -05:00
committed by GitHub
parent 8b0e8915a8
commit d770eb6a35
30 changed files with 859 additions and 3 deletions

View File

@@ -0,0 +1,22 @@
forensic-fibers = {LOC($material)} fibers
forensic-fibers-colored = {LOC($color)} {LOC($material)} fibers
fibers-insulative = insulative
fibers-synthetic = synthetic
fibers-leather = leather
fibers-durathread = durathread
fibers-latex = latex
fibers-nitrile = nitrile
fibers-nanomachines = insulative nanomachine
fibers-purple = purple
fibers-red = red
fibers-black = black
fibers-blue = blue
fibers-brown = brown
fibers-grey = grey
fibers-green = green
fibers-orange = orange
fibers-white = white
fibers-yellow = yellow
fibers-regal-blue = regal blue

View File

@@ -0,0 +1,15 @@
forensic-scanner-interface-title = Forensic scanner
forensic-scanner-interface-fingerprints = Fingerprints
forensic-scanner-interface-fibers = Fibers
forensic-scanner-interface-no-data = No scan data available
forensic-scanner-interface-print = Print
forensic-scanner-report-title = Forensics Report
forensic-pad-unused = It hasn't been used.
forensic-pad-sample = It has a sample: {$sample}
forensic-pad-gloves = {CAPITALIZE($target)} is wearing gloves.
forensic-pad-start-scan-target = {CAPITALIZE($user)} is trying to take a sample of your fingerprints.
forensic-pad-start-scan-user = You start taking a sample of {CAPITALIZE($target)}'s fingerprints.
forensic-pad-already-used = This pad has already been used.
forensic-scanner-match-fiber = Match in fiber found!
forensic-scanner-match-fingerprint = Match in fingerprint found!
forensic-scanner-match-none = No matches found!

View File

@@ -128,6 +128,19 @@
- id: AcousticGuitarInstrument
- id: SaxophoneInstrument
- type: entity
noSpawn: true
parent: ClothingBackpack
id: ClothingBackpackDetectiveFilled
components:
- type: StorageFill
contents:
- id: BoxSurvival
- id: Lighter
- id: CigPackBlack
- id: HandLabeler
- id: BoxForensicPad
# ERT
- type: entity

View File

@@ -105,3 +105,17 @@
- id: BoxSurvival
- id: AcousticGuitarInstrument
- id: SaxophoneInstrument
- type: entity
noSpawn: true
parent: ClothingBackpackDuffel
id: ClothingBackpackDuffelDetectiveFilled
components:
- type: StorageFill
contents:
- id: BoxSurvival
- id: Lighter
- id: CigPackBlack
- id: BoxForensicPad
- id: HandLabeler

View File

@@ -104,6 +104,19 @@
- id: AcousticGuitarInstrument
- id: SaxophoneInstrument
- type: entity
noSpawn: true
parent: ClothingBackpackSatchel
id: ClothingBackpackSatchelDetectiveFilled
components:
- type: StorageFill
contents:
- id: BoxSurvival
- id: Lighter
- id: CigPackBlack
- id: BoxForensicPad
- id: HandLabeler
- type: entity
noSpawn: true
parent: ClothingBackpackSatchel

View File

@@ -58,6 +58,20 @@
- state: box_security
- state: ziptie
- type: entity
name: forensic pad box
parent: BoxCardboard
id: BoxForensicPad
description: A box of forensic pads.
components:
- type: StorageFill
contents:
- id: ForensicPad
amount: 10
- type: Sprite
layers:
- state: box_security
# TODO: THESE ARE BAD AND ARE DEPRECATED, DON'T USE THEM PLEASE
- type: entity
name: box of shotgun beanbag cartridges

View File

@@ -53,6 +53,8 @@
- id: ClothingOuterVestDetective
- id: ClothingOuterCoatDetective
- id: FlashlightSeclite
- id: ForensicScanner
- id: BoxForensicPad
- id: WeaponRevolverInspector
- type: entity

View File

@@ -8,6 +8,10 @@
sprite: Clothing/Hands/Gloves/Color/purple.rsi
- type: Clothing
sprite: Clothing/Hands/Gloves/Color/purple.rsi
- type: Fiber
fiberMaterial: fibers-synthetic
fiberColor: fibers-purple
- type: FingerprintMask
- type: entity
parent: ClothingHandsBase
@@ -19,6 +23,10 @@
sprite: Clothing/Hands/Gloves/Color/red.rsi
- type: Clothing
sprite: Clothing/Hands/Gloves/Color/red.rsi
- type: Fiber
fiberMaterial: fibers-synthetic
fiberColor: fibers-red
- type: FingerprintMask
- type: entity
parent: ClothingHandsBase
@@ -31,6 +39,10 @@
- type: Clothing
sprite: Clothing/Hands/Gloves/Color/black.rsi
HeatResistance: 1400
- type: Fiber
fiberMaterial: fibers-synthetic
fiberColor: fibers-black
- type: FingerprintMask
- type: entity
parent: ClothingHandsBase
@@ -42,6 +54,10 @@
sprite: Clothing/Hands/Gloves/Color/blue.rsi
- type: Clothing
sprite: Clothing/Hands/Gloves/Color/blue.rsi
- type: Fiber
fiberMaterial: fibers-synthetic
fiberColor: fibers-blue
- type: FingerprintMask
- type: entity
parent: ClothingHandsBase
@@ -53,6 +69,10 @@
sprite: Clothing/Hands/Gloves/Color/brown.rsi
- type: Clothing
sprite: Clothing/Hands/Gloves/Color/brown.rsi
- type: Fiber
fiberMaterial: fibers-synthetic
fiberColor: fibers-brown
- type: FingerprintMask
- type: entity
parent: ClothingHandsBase
@@ -64,6 +84,10 @@
sprite: Clothing/Hands/Gloves/Color/gray.rsi
- type: Clothing
sprite: Clothing/Hands/Gloves/Color/gray.rsi
- type: Fiber
fiberMaterial: fibers-synthetic
fiberColor: fibers-grey
- type: FingerprintMask
- type: entity
parent: ClothingHandsBase
@@ -75,6 +99,10 @@
sprite: Clothing/Hands/Gloves/Color/green.rsi
- type: Clothing
sprite: Clothing/Hands/Gloves/Color/green.rsi
- type: Fiber
fiberMaterial: fibers-synthetic
fiberColor: fibers-green
- type: FingerprintMask
- type: entity
parent: ClothingHandsBase
@@ -86,6 +114,10 @@
sprite: Clothing/Hands/Gloves/Color/lightbrown.rsi
- type: Clothing
sprite: Clothing/Hands/Gloves/Color/lightbrown.rsi
- type: Fiber
fiberMaterial: fibers-synthetic
fiberColor: fibers-brown
- type: FingerprintMask
- type: entity
parent: ClothingHandsBase
@@ -97,6 +129,10 @@
sprite: Clothing/Hands/Gloves/Color/orange.rsi
- type: Clothing
sprite: Clothing/Hands/Gloves/Color/orange.rsi
- type: Fiber
fiberMaterial: fibers-synthetic
fiberColor: fibers-orange
- type: FingerprintMask
- type: entity
parent: ClothingHandsBase
@@ -108,6 +144,10 @@
sprite: Clothing/Hands/Gloves/Color/white.rsi
- type: Clothing
sprite: Clothing/Hands/Gloves/Color/white.rsi
- type: Fiber
fiberMaterial: fibers-synthetic
fiberColor: fibers-white
- type: FingerprintMask
- type: entity
parent: ClothingHandsBase
@@ -121,6 +161,10 @@
sprite: Clothing/Hands/Gloves/Color/yellow.rsi
HeatResistance: 1400
- type: Insulated
- type: Fiber
fiberMaterial: fibers-insulative
fiberColor: fibers-yellow
- type: FingerprintMask
- type: entity
parent: ClothingHandsGlovesColorYellow
@@ -131,6 +175,10 @@
- type: Clothing
HeatResistance: 0
- type: Insulated
- type: Fiber
fiberMaterial: fibers-insulative
fiberColor: fibers-yellow
- type: FingerprintMask
- type: RandomInsulation
# Why repeated numbers? So some numbers are more common, of course!
list:

View File

@@ -8,6 +8,10 @@
sprite: Clothing/Hands/Gloves/boxing.rsi
- type: Clothing
sprite: Clothing/Hands/Gloves/boxing.rsi
- type: Fiber
fiberMaterial: fibers-leather
fiberColor: fibers-red
- type: FingerprintMask
- type: entity
parent: ClothingHandsBase
@@ -21,6 +25,10 @@
- type: Clothing
sprite: Clothing/Hands/Gloves/boxing.rsi
HeldPrefix: blue
- type: Fiber
fiberMaterial: fibers-leather
fiberColor: fibers-blue
- type: FingerprintMask
- type: entity
parent: ClothingHandsBase
@@ -34,6 +42,10 @@
- type: Clothing
sprite: Clothing/Hands/Gloves/boxing.rsi
HeldPrefix: green
- type: Fiber
fiberMaterial: fibers-leather
fiberColor: fibers-green
- type: FingerprintMask
- type: entity
parent: ClothingHandsBase
@@ -47,6 +59,10 @@
- type: Clothing
sprite: Clothing/Hands/Gloves/boxing.rsi
HeldPrefix: yellow
- type: Fiber
fiberMaterial: fibers-leather
fiberColor: fibers-yellow
- type: FingerprintMask
- type: entity
parent: ClothingHandsBase
@@ -60,6 +76,10 @@
sprite: Clothing/Hands/Gloves/captain.rsi
HeatResistance: 1400
- type: Insulated
- type: Fiber
fiberMaterial: fibers-durathread
fiberColor: fibers-regal-blue
- type: FingerprintMask
- type: entity
parent: ClothingHandsBase
@@ -71,6 +91,10 @@
sprite: Clothing/Hands/Gloves/ihscombat.rsi
- type: Clothing
sprite: Clothing/Hands/Gloves/ihscombat.rsi
- type: Fiber
fiberMaterial: fibers-durathread
- type: FingerprintMask
#### Medical
- type: entity
parent: ClothingHandsBase
@@ -84,6 +108,9 @@
sprite: Clothing/Hands/Gloves/latex.rsi
- type: DiseaseProtection
protection: 0.1
- type: Fiber
fiberMaterial: fibers-latex
- type: FingerprintMask
- type: entity
parent: ClothingHandsBase
@@ -97,29 +124,39 @@
sprite: Clothing/Hands/Gloves/Color/blue.rsi
- type: DiseaseProtection
protection: 0.15
- type: Fiber
fiberMaterial: fibers-nitrile
- type: FingerprintMask
####
- type: entity
parent: ClothingHandsBase
id: ClothingHandsGlovesLeather
name: "botanist's leather gloves"
description: "These leather gloves protect against thorns, barbs, prickles, spikes and other harmful objects of floral origin. They're also quite warm."
name: botanist's leather gloves
description: These leather gloves protect against thorns, barbs, prickles, spikes and other harmful objects of floral origin. They're also quite warm.
components:
- type: Sprite
sprite: Clothing/Hands/Gloves/leather.rsi
- type: Clothing
sprite: Clothing/Hands/Gloves/leather.rsi
HeatResistance: 1400
- type: Fiber
fiberMaterial: fibers-leather
fiberColor: fibers-brown
- type: FingerprintMask
- type: entity
parent: ClothingHandsBase
id: ClothingHandsGlovesPowerglove
name: power gloves
description: Now I'm playin' with power! Wait, they are turned off. # Use "Now I'm playin' with power! BAM!" for when they're turned on
description: Now I'm playin' with power! Wait, they are turned off. # Use Now I'm playin' with power! BAM! for when they're turned on
components:
- type: Sprite
sprite: Clothing/Hands/Gloves/powerglove.rsi
- type: Clothing
sprite: Clothing/Hands/Gloves/powerglove.rsi
- type: Fiber
fiberMaterial: fibers-nanomachines
- type: FingerprintMask
- type: entity
parent: ClothingHandsBase
@@ -131,6 +168,10 @@
sprite: Clothing/Hands/Gloves/robohands.rsi
- type: Clothing
sprite: Clothing/Hands/Gloves/robohands.rsi
- type: Fiber
fiberMaterial: fibers-leather
fiberColor: fibers-black
- type: FingerprintMask
- type: entity
parent: ClothingHandsBase
@@ -144,6 +185,9 @@
sprite: Clothing/Hands/Gloves/spaceninja.rsi
HeatResistance: 1400
- type: Insulated
- type: Fiber
fiberMaterial: fibers-nanomachines
- type: FingerprintMask
- type: Thieving
stealTime: 1
stealthy: true
@@ -160,6 +204,10 @@
sprite: Clothing/Hands/Gloves/Color/black.rsi
HeatResistance: 1400
- type: Insulated
- type: Fiber
fiberMaterial: fibers-insulative
fiberColor: fibers-black
- type: FingerprintMask
- type: entity
parent: ClothingHandsBase
@@ -171,6 +219,9 @@
sprite: Clothing/Hands/Gloves/fingerless.rsi
- type: Clothing
sprite: Clothing/Hands/Gloves/fingerless.rsi
- type: Fiber
fiberMaterial: fibers-synthetic
fiberColor: fibers-black
- type: entity
parent: ClothingHandsBase

View File

@@ -318,6 +318,7 @@
attributes:
proper: true
- type: StandingState
- type: Fingerprint
- type: MobPrice
price: 1500 # Kidnapping a living person and selling them for cred is a good move.
deathPenalty: 0.01 # However they really ought to be living and intact, otherwise they're worth 100x less.

View File

@@ -0,0 +1,23 @@
- type: entity
name: forensic scanner
parent: BaseItem
id: ForensicScanner
description: A handheld device that can scan objects for fingerprints and fibers.
components:
- type: Sprite
netsync: false
sprite: Objects/Devices/forensic_scanner.rsi
state: forensicnew
- type: Clothing
size: 5
sprite: Objects/Devices/forensic_scanner.rsi
quickEquip: false
Slots:
- Belt
- type: ActivatableUI
key: enum.ForensicScannerUiKey.Key
- type: UserInterface
interfaces:
- key: enum.ForensicScannerUiKey.Key
type: ForensicScannerBoundUserInterface
- type: ForensicScanner

View File

@@ -0,0 +1,15 @@
- type: entity
id: ForensicPad
name: forensic pad
parent: BaseItem
description: A forensic pad for collecting fingerprints or fibers.
components:
- type: Item
size: 3
- type: ForensicPad
- type: Sprite
sprite: Objects/Misc/bureaucracy.rsi
netsync: false
layers:
- state: paper
color: yellow

View File

@@ -48,3 +48,4 @@
interfaces:
- key: enum.StorageUiKey.Key
type: StorageBoundUserInterface

Binary file not shown.

After

Width:  |  Height:  |  Size: 736 B

View File

@@ -0,0 +1,21 @@
{
"copyright" : "Taken from https://github.com/tgstation/tgstation",
"license" : "CC-BY-SA-3.0",
"size" : {
"x" : 32,
"y" : 32
},
"states" : [
{
"delays" : [
[
0.8,
0.2
]
],
"directions" : 1,
"name" : "forensicnew"
}
],
"version" : 1
}