Contraband Review Pass - The Threequel (#30970)

Contraband pass number three
This commit is contained in:
Plykiya
2024-08-15 11:52:46 -07:00
committed by GitHub
parent 40b9fd4ea3
commit dc66386e5f
13 changed files with 188 additions and 168 deletions

View File

@@ -7,13 +7,14 @@ namespace Content.Shared.Contraband;
/// <summary> /// <summary>
/// This is used for marking entities that are considered 'contraband' IC and showing it clearly in examine. /// This is used for marking entities that are considered 'contraband' IC and showing it clearly in examine.
/// </summary> /// </summary>
[RegisterComponent, NetworkedComponent, Access(typeof(ContrabandSystem))] [RegisterComponent, NetworkedComponent, Access(typeof(ContrabandSystem)), AutoGenerateComponentState]
public sealed partial class ContrabandComponent : Component public sealed partial class ContrabandComponent : Component
{ {
/// <summary> /// <summary>
/// The degree of contraband severity this item is considered to have. /// The degree of contraband severity this item is considered to have.
/// </summary> /// </summary>
[DataField] [DataField]
[AutoNetworkedField]
public ProtoId<ContrabandSeverityPrototype> Severity = "Restricted"; public ProtoId<ContrabandSeverityPrototype> Severity = "Restricted";
/// <summary> /// <summary>
@@ -22,5 +23,6 @@ public sealed partial class ContrabandComponent : Component
/// If null, no departments are allowed to use this. /// If null, no departments are allowed to use this.
/// </summary> /// </summary>
[DataField] [DataField]
[AutoNetworkedField]
public HashSet<ProtoId<DepartmentPrototype>>? AllowedDepartments = ["Security"]; public HashSet<ProtoId<DepartmentPrototype>>? AllowedDepartments = ["Security"];
} }

View File

@@ -234,7 +234,7 @@
coverage: EYES coverage: EYES
- type: entity - type: entity
parent: ClothingEyesBase parent: [ClothingEyesBase, BaseMajorContraband]
id: ClothingEyesVisorNinja id: ClothingEyesVisorNinja
name: ninja visor name: ninja visor
description: An advanced visor protecting a ninja's eyes from flashing lights. description: An advanced visor protecting a ninja's eyes from flashing lights.

View File

@@ -202,7 +202,7 @@
- type: FingerprintMask - type: FingerprintMask
- type: entity - type: entity
parent: [ClothingHandsBase, BaseToggleClothing] parent: [ClothingHandsBase, BaseToggleClothing, BaseMajorContraband]
id: ClothingHandsGlovesSpaceNinja id: ClothingHandsGlovesSpaceNinja
name: space ninja gloves name: space ninja gloves
description: These black nano-enhanced gloves insulate from electricity and provide fire resistance. description: These black nano-enhanced gloves insulate from electricity and provide fire resistance.
@@ -255,7 +255,7 @@
- type: CriminalRecordsHacker - type: CriminalRecordsHacker
- type: entity - type: entity
parent: [ClothingHandsGlovesColorBlack, BaseMinorContraband] parent: [ClothingHandsGlovesColorBlack, BaseSecurityEngineeringContraband]
id: ClothingHandsGlovesCombat id: ClothingHandsGlovesCombat
name: combat gloves name: combat gloves
description: These tactical gloves are fireproof and shock resistant. description: These tactical gloves are fireproof and shock resistant.

View File

@@ -127,7 +127,7 @@
slots: WITHOUT_POCKET slots: WITHOUT_POCKET
- type: entity - type: entity
parent: [ClothingOuterBaseLarge, AllowSuitStorageClothing, BaseToggleClothing] parent: [ClothingOuterBaseLarge, AllowSuitStorageClothing, BaseToggleClothing, BaseMajorContraband]
id: ClothingOuterSuitSpaceNinja id: ClothingOuterSuitSpaceNinja
name: space ninja suit name: space ninja suit
description: This black technologically advanced, cybernetically-enhanced suit provides many abilities like invisibility or teleportation. description: This black technologically advanced, cybernetically-enhanced suit provides many abilities like invisibility or teleportation.

View File

@@ -111,7 +111,7 @@
- type: NoSlip - type: NoSlip
- type: entity - type: entity
parent: ClothingShoesBaseButcherable parent: [ClothingShoesBaseButcherable, BaseMajorContraband]
id: ClothingShoesSpaceNinja id: ClothingShoesSpaceNinja
name: space ninja shoes name: space ninja shoes
description: A pair of nano-enhanced boots with built-in magnetic suction cups. description: A pair of nano-enhanced boots with built-in magnetic suction cups.

View File

@@ -23,7 +23,7 @@
sprite: Objects/Misc/Handy_Flags/NT_handy_flag.rsi sprite: Objects/Misc/Handy_Flags/NT_handy_flag.rsi
- type: entity - type: entity
parent: BaseItem parent: [BaseItem, BaseSyndicateContraband]
id: SyndieHandyFlag id: SyndieHandyFlag
name: syndicate handheld flag name: syndicate handheld flag
description: "For truly rebellious patriots. Death to NT!" description: "For truly rebellious patriots. Death to NT!"

View File

@@ -566,7 +566,7 @@
stealGroup: BoxFolderQmClipboard stealGroup: BoxFolderQmClipboard
- type: entity - type: entity
parent: Paper parent: [Paper, BaseSyndicateContraband] # eat or burn your damn piece of paper damn thieves
id: TraitorCodePaper id: TraitorCodePaper
name: syndicate codeword name: syndicate codeword
description: A leaked codeword to possibly get in touch with the Syndicate. description: A leaked codeword to possibly get in touch with the Syndicate.
@@ -575,7 +575,7 @@
- type: TraitorCodePaper - type: TraitorCodePaper
- type: entity - type: entity
parent: Paper parent: [Paper, BaseSyndicateContraband]
id: AllTraitorCodesPaper id: AllTraitorCodesPaper
name: syndicate codewords registry name: syndicate codewords registry
description: A registry of all active Syndicate codewords. description: A registry of all active Syndicate codewords.

View File

@@ -57,10 +57,8 @@
heldPrefix: luxury_pen heldPrefix: luxury_pen
- type: entity - type: entity
name: Cybersun pen id: BaseAdvancedPen
parent: [PenEmbeddable, BaseSyndicateContraband] parent: PenEmbeddable
id: CyberPen
description: A high-tech pen straight from Cybersun's legal department, capable of refracting hard-light at impossible angles through its diamond tip in order to write. So powerful, it's even able to rewrite officially stamped documents should the need arise.
components: components:
- type: Tag - type: Tag
tags: tags:
@@ -68,10 +66,6 @@
- WriteIgnoreStamps - WriteIgnoreStamps
- Pickaxe - Pickaxe
- Pen - Pen
- type: Sprite
state: overpriced_pen
- type: Item
heldPrefix: overpriced_pen
- type: MeleeWeapon - type: MeleeWeapon
wideAnimationRotation: -45 wideAnimationRotation: -45
damage: damage:
@@ -81,10 +75,32 @@
path: /Audio/Weapons/bladeslice.ogg path: /Audio/Weapons/bladeslice.ogg
- type: Tool - type: Tool
qualities: qualities:
- Screwing - Screwing
useSound: useSound:
collection: Screwdriver collection: Screwdriver
- type: entity
name: Cybersun pen
parent: [BaseAdvancedPen, BaseSyndicateContraband]
id: CyberPen
description: A high-tech pen straight from Cybersun's legal department, capable of refracting hard-light at impossible angles through its diamond tip in order to write. So powerful, it's even able to rewrite officially stamped documents should the need arise.
components:
- type: Sprite
state: overpriced_pen
- type: Item
heldPrefix: overpriced_pen
- type: entity
name: CentComm pen
parent: [BaseAdvancedPen, BaseCommandContraband]
id: PenCentcom
description: In an attempt to keep up with the "power" of the cybersun bureaucracy, NT made a replica of cyber pen, in their corporate style.
components:
- type: Sprite
state: pen_centcom
- type: Item
heldPrefix: pen_centcom
- type: entity - type: entity
name: captain's fountain pen name: captain's fountain pen
parent: PenEmbeddable parent: PenEmbeddable
@@ -94,17 +110,6 @@
- type: Sprite - type: Sprite
state: pen_cap state: pen_cap
- type: entity
name: CentComm pen
parent: CyberPen
id: PenCentcom
description: In an attempt to keep up with the "power" of the cybersun bureaucracy, NT made a replica of cyber pen, in their corporate style.
components:
- type: Sprite
state: pen_centcom
- type: Item
heldPrefix: pen_centcom
- type: entity - type: entity
name: hop's fountain pen name: hop's fountain pen
parent: PenEmbeddable parent: PenEmbeddable

View File

@@ -199,10 +199,10 @@
- type: Appearance - type: Appearance
- type: entity - type: entity
name: laser rifle name: practice laser rifle
parent: [BaseWeaponBattery, BaseGunWieldable, BaseRestrictedContraband] parent: [BaseWeaponBattery, BaseGunWieldable]
id: WeaponLaserCarbine id: WeaponLaserCarbinePractice
description: Favoured by Nanotrasen Security for being cheap and easy to use. description: This modified laser rifle fires nearly harmless beams in the 40-watt range, for target practice.
components: components:
- type: Sprite - type: Sprite
sprite: Objects/Weapons/Guns/Battery/laser_gun.rsi sprite: Objects/Weapons/Guns/Battery/laser_gun.rsi
@@ -214,28 +214,28 @@
shader: unshaded shader: unshaded
- type: Clothing - type: Clothing
sprite: Objects/Weapons/Guns/Battery/laser_gun.rsi sprite: Objects/Weapons/Guns/Battery/laser_gun.rsi
- type: StaticPrice
price: 420
- type: Gun - type: Gun
selectedMode: SemiAuto selectedMode: SemiAuto
availableModes: availableModes:
- SemiAuto - SemiAuto
- type: HitscanBatteryAmmoProvider
proto: RedLaser
fireCost: 62.5
- type: entity
name: practice laser rifle
parent: WeaponLaserCarbine
id: WeaponLaserCarbinePractice
description: This modified laser rifle fires nearly harmless beams in the 40-watt range, for target practice.
components:
- type: HitscanBatteryAmmoProvider - type: HitscanBatteryAmmoProvider
proto: RedLaserPractice proto: RedLaserPractice
fireCost: 62.5 fireCost: 62.5
- type: StaticPrice - type: StaticPrice
price: 300 price: 300
- type: entity
name: laser rifle
parent: [WeaponLaserCarbinePractice, BaseGunWieldable, BaseRestrictedContraband]
id: WeaponLaserCarbine
description: Favoured by Nanotrasen Security for being cheap and easy to use.
components:
- type: StaticPrice
price: 420
- type: HitscanBatteryAmmoProvider
proto: RedLaser
fireCost: 62.5
- type: entity - type: entity
name: pulse pistol name: pulse pistol
parent: BaseWeaponBatterySmall parent: BaseWeaponBatterySmall
@@ -406,46 +406,71 @@
zeroVisible: true zeroVisible: true
- type: Appearance - type: Appearance
- type: entity
name: practice disabler
parent: BaseWeaponBatterySmall
id: WeaponDisablerPractice
description: A self-defense weapon that exhausts organic targets, weakening them until they collapse. This one has been undertuned for cadets making it mostly harmless.
components:
- type: Sprite
sprite: Objects/Weapons/Guns/Battery/practice_disabler.rsi
layers:
- state: base
map: ["enum.GunVisualLayers.Base"]
- state: mag-unshaded-0
map: ["enum.GunVisualLayers.MagUnshaded"]
shader: unshaded
- type: Clothing
sprite: Objects/Weapons/Guns/Battery/practice_disabler.rsi
quickEquip: false
slots:
- Belt
- type: Appearance
- type: MagazineVisuals
magState: mag
steps: 5
zeroVisible: true
- type: StaticPrice
price: 100
- type: Gun
fireRate: 2
soundGunshot:
path: /Audio/Weapons/Guns/Gunshots/taser2.ogg
- type: ProjectileBatteryAmmoProvider
proto: BulletDisablerPractice
fireCost: 100
- type: Tag
tags:
- Taser
- Sidearm
- type: entity - type: entity
name: disabler name: disabler
parent: [ BaseWeaponBatterySmall, BaseSecurityCommandContraband ] parent: [ WeaponDisablerPractice, BaseSecurityCommandContraband ]
id: WeaponDisabler id: WeaponDisabler
description: A self-defense weapon that exhausts organic targets, weakening them until they collapse. description: A self-defense weapon that exhausts organic targets, weakening them until they collapse.
components: components:
- type: Tag - type: Sprite
tags: sprite: Objects/Weapons/Guns/Battery/disabler.rsi
- Taser layers:
- Sidearm - state: base
- type: Sprite map: ["enum.GunVisualLayers.Base"]
sprite: Objects/Weapons/Guns/Battery/disabler.rsi - state: mag-unshaded-0
layers: map: ["enum.GunVisualLayers.MagUnshaded"]
- state: base shader: unshaded
map: ["enum.GunVisualLayers.Base"] - type: Clothing
- state: mag-unshaded-0 sprite: Objects/Weapons/Guns/Battery/disabler.rsi
map: ["enum.GunVisualLayers.MagUnshaded"] quickEquip: false
shader: unshaded slots:
- type: Clothing - suitStorage
sprite: Objects/Weapons/Guns/Battery/disabler.rsi - Belt
quickEquip: false - type: ProjectileBatteryAmmoProvider
slots: proto: BulletDisabler
- suitStorage fireCost: 100
- Belt - type: GuideHelp
- type: Gun guides:
fireRate: 2 - Security
soundGunshot: - Antagonists
path: /Audio/Weapons/Guns/Gunshots/taser2.ogg
- type: ProjectileBatteryAmmoProvider
proto: BulletDisabler
fireCost: 100
- type: MagazineVisuals
magState: mag
steps: 5
zeroVisible: true
- type: Appearance
- type: GuideHelp
guides:
- Security
- Antagonists
- type: entity - type: entity
name: disabler SMG name: disabler SMG
@@ -485,31 +510,6 @@
- type: StaticPrice - type: StaticPrice
price: 260 price: 260
- type: entity
name: practice disabler
parent: WeaponDisabler
id: WeaponDisablerPractice
description: A self-defense weapon that exhausts organic targets, weakening them until they collapse. This one has been undertuned for cadets making it mostly harmless.
components:
- type: Sprite
sprite: Objects/Weapons/Guns/Battery/practice_disabler.rsi
layers:
- state: base
map: ["enum.GunVisualLayers.Base"]
- state: mag-unshaded-0
map: ["enum.GunVisualLayers.MagUnshaded"]
shader: unshaded
- type: Clothing
sprite: Objects/Weapons/Guns/Battery/practice_disabler.rsi
quickEquip: false
slots:
- Belt
- type: StaticPrice
price: 100
- type: ProjectileBatteryAmmoProvider
proto: BulletDisablerPractice
fireCost: 100
- type: entity - type: entity
name: taser name: taser
parent: [ BaseWeaponBatterySmall, BaseRestrictedContraband ] parent: [ BaseWeaponBatterySmall, BaseRestrictedContraband ]

View File

@@ -53,7 +53,7 @@
- type: entity - type: entity
name: AKMS name: AKMS
parent: [BaseWeaponRifle, BaseMinorContraband] parent: [BaseWeaponRifle, BaseMajorContraband]
id: WeaponRifleAk id: WeaponRifleAk
description: An iconic weapon of war. Uses .30 rifle ammo. description: An iconic weapon of war. Uses .30 rifle ammo.
components: components:

View File

@@ -1,8 +1,7 @@
- type: entity - type: entity
name: energy sword id: BaseMeleeWeaponEnergy # more generic naming in case someone makes like, idk, an energy axe
parent: [BaseItem, BaseSyndicateContraband] parent: BaseItem
id: EnergySword abstract: true
description: A very loud & dangerous sword with a beam made of pure, concentrated plasma. Cuts through unarmored targets like butter.
components: components:
- type: EnergySword - type: EnergySword
- type: ItemToggle - type: ItemToggle
@@ -38,19 +37,10 @@
params: params:
variation: 0.125 variation: 0.125
activatedDamage: activatedDamage:
types: types:
Slash: 15 Slash: 15
Heat: 15 Heat: 15
Structural: 20 Structural: 20
- type: Sprite
sprite: Objects/Weapons/Melee/e_sword.rsi
layers:
- state: e_sword
- state: e_sword_blade
color: "#FFFFFF"
visible: false
shader: unshaded
map: [ "blade" ]
- type: MeleeWeapon - type: MeleeWeapon
wideAnimationRotation: -135 wideAnimationRotation: -135
attackRate: 1 attackRate: 1
@@ -59,7 +49,6 @@
Blunt: 4.5 Blunt: 4.5
- type: Item - type: Item
size: Small size: Small
sprite: Objects/Weapons/Melee/e_sword-inhands.rsi
- type: UseDelay - type: UseDelay
delay: 1.0 delay: 1.0
- type: PointLight - type: PointLight
@@ -82,9 +71,27 @@
- type: IgnitionSource - type: IgnitionSource
temperature: 700 temperature: 700
- type: entity
name: energy sword
parent: [BaseMeleeWeaponEnergy, BaseSyndicateContraband]
id: EnergySword
description: A very loud & dangerous sword with a beam made of pure, concentrated plasma. Cuts through unarmored targets like butter.
components:
- type: Sprite
sprite: Objects/Weapons/Melee/e_sword.rsi
layers:
- state: e_sword
- state: e_sword_blade
color: "#FFFFFF"
visible: false
shader: unshaded
map: [ "blade" ]
- type: Item
sprite: Objects/Weapons/Melee/e_sword-inhands.rsi
- type: entity - type: entity
name: energy dagger name: energy dagger
parent: EnergySword parent: [BaseMeleeWeaponEnergy, BaseSyndicateContraband]
id: EnergyDaggerLoud id: EnergyDaggerLoud
description: A not as loud and dangerous dagger with a beam made of pure, concentrated plasma. This one is completely undisguised. description: A not as loud and dangerous dagger with a beam made of pure, concentrated plasma. This one is completely undisguised.
components: components:
@@ -139,30 +146,16 @@
- type: Item - type: Item
size: Tiny size: Tiny
sprite: Objects/Weapons/Melee/e_dagger_loud.rsi sprite: Objects/Weapons/Melee/e_dagger_loud.rsi
- type: UseDelay
delay: 1.0
- type: PointLight - type: PointLight
enabled: false enabled: false
radius: 1.5 radius: 1.5
energy: 1.5 energy: 1.5
color: white color: white
netsync: false netsync: false
- type: Appearance
- type: ToggleableLightVisuals
spriteLayer: blade
inhandVisuals:
left:
- state: inhand-left-blade
shader: unshaded
right:
- state: inhand-right-blade
shader: unshaded
- type: DisarmMalus
malus: 0
- type: entity - type: entity
name: pen name: pen
parent: EnergyDaggerLoud parent: BaseMeleeWeaponEnergy
id: EnergyDagger id: EnergyDagger
suffix: E-Dagger suffix: E-Dagger
description: 'A dark ink pen.' description: 'A dark ink pen.'
@@ -181,6 +174,26 @@
path: /Audio/Weapons/ebladehum.ogg path: /Audio/Weapons/ebladehum.ogg
params: params:
volume: -6 volume: -6
- type: ItemToggleMeleeWeapon
activatedSoundOnSwing:
path: /Audio/Weapons/eblademiss.ogg
params:
volume: -3
variation: 0.250
activatedDamage:
types:
Slash: 10
Heat: 10
- type: ComponentToggler
components:
- type: Sharp
- type: DisarmMalus
malus: 0.4
- type: Execution
doAfterDuration: 4.0
- type: Contraband
severity: Syndicate
allowedDepartments: null
- type: Sprite - type: Sprite
sprite: Objects/Weapons/Melee/e_dagger.rsi sprite: Objects/Weapons/Melee/e_dagger.rsi
layers: layers:
@@ -193,6 +206,19 @@
- type: Item - type: Item
size: Tiny size: Tiny
sprite: Objects/Weapons/Melee/e_dagger.rsi sprite: Objects/Weapons/Melee/e_dagger.rsi
- type: PointLight
enabled: false
radius: 1.5
energy: 1.5
color: white
netsync: false
- type: MeleeWeapon
wideAnimationRotation: 145
attackRate: 1
hidden: true
damage:
types:
Blunt: 1
- type: Tag - type: Tag
tags: tags:
- Write - Write
@@ -217,7 +243,7 @@
- type: entity - type: entity
name: energy cutlass name: energy cutlass
parent: EnergySword parent: [BaseMeleeWeaponEnergy, BaseMajorContraband]
id: EnergyCutlass id: EnergyCutlass
description: An exotic energy weapon. description: An exotic energy weapon.
components: components:
@@ -237,21 +263,11 @@
shader: unshaded shader: unshaded
map: [ "blade" ] map: [ "blade" ]
- type: Item - type: Item
size: Small
sprite: Objects/Weapons/Melee/e_cutlass.rsi sprite: Objects/Weapons/Melee/e_cutlass.rsi
- type: ToggleableLightVisuals
spriteLayer: blade
inhandVisuals:
left:
- state: inhand-left-blade
shader: unshaded
right:
- state: inhand-right-blade
shader: unshaded
- type: entity - type: entity
name: double-bladed energy sword name: double-bladed energy sword
parent: EnergySword parent: [BaseMeleeWeaponEnergy, BaseSyndicateContraband]
id: EnergySwordDouble id: EnergySwordDouble
description: Syndicate Command Interns thought that having one blade on the energy sword was not enough. This can be stored in pockets. description: Syndicate Command Interns thought that having one blade on the energy sword was not enough. This can be stored in pockets.
components: components:
@@ -312,17 +328,6 @@
- type: Reflect - type: Reflect
reflectProb: .75 reflectProb: .75
spread: 75 spread: 75
- type: UseDelay
delay: 1
- type: ToggleableLightVisuals
spriteLayer: blade
inhandVisuals:
left:
- state: inhand-left-blade
shader: unshaded
right:
- state: inhand-right-blade
shader: unshaded
- type: entity - type: entity
suffix: One-Handed, For Borgs suffix: One-Handed, For Borgs

View File

@@ -43,7 +43,7 @@
- type: entity - type: entity
name: katana name: katana
parent: [ BaseSword, BaseMinorContraband ] parent: [ BaseSword, BaseMajorContraband ]
id: Katana id: Katana
description: Ancient craftwork made with not so ancient plasteel. description: Ancient craftwork made with not so ancient plasteel.
components: components:
@@ -93,7 +93,7 @@
- type: entity - type: entity
name: machete name: machete
parent: [ BaseSword, BaseMinorContraband ] parent: [ BaseSword, BaseMajorContraband ]
id: Machete id: Machete
description: A large, vicious looking blade. description: A large, vicious looking blade.
components: components:
@@ -114,7 +114,7 @@
- type: entity - type: entity
name: claymore name: claymore
parent: [ BaseSword, BaseMinorContraband ] parent: [ BaseSword, BaseMajorContraband ]
id: Claymore id: Claymore
description: An ancient war blade. description: An ancient war blade.
components: components:
@@ -136,7 +136,7 @@
- type: entity - type: entity
name: cutlass name: cutlass
parent: [ BaseSword, BaseMinorContraband ] parent: [ BaseSword, BaseMajorContraband ]
id: Cutlass id: Cutlass
description: A wickedly curved blade, often seen in the hands of space pirates. description: A wickedly curved blade, often seen in the hands of space pirates.
components: components:
@@ -157,7 +157,7 @@
- type: entity - type: entity
name: Throngler name: Throngler
parent: [ BaseSword, BaseMinorContraband ] parent: [ BaseSword, BaseMajorContraband ]
id: Throngler id: Throngler
description: Why would you make this? description: Why would you make this?
components: components:

View File

@@ -60,6 +60,14 @@
- type: Contraband - type: Contraband
allowedDepartments: [ Security, Science, Command ] allowedDepartments: [ Security, Science, Command ]
- type: entity
id: BaseSecurityEngineeringContraband
parent: BaseRestrictedContraband
abstract: true
components:
- type: Contraband
allowedDepartments: [ Security, Engineering ]
- type: entity - type: entity
id: BaseEngineeringContraband id: BaseEngineeringContraband
parent: BaseRestrictedContraband parent: BaseRestrictedContraband