]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Contraband Review Pass - The Threequel (#30970)
authorPlykiya <58439124+Plykiya@users.noreply.github.com>
Thu, 15 Aug 2024 18:52:46 +0000 (11:52 -0700)
committerGitHub <noreply@github.com>
Thu, 15 Aug 2024 18:52:46 +0000 (20:52 +0200)
Contraband pass number three

13 files changed:
Content.Shared/Contraband/ContrabandComponent.cs
Resources/Prototypes/Entities/Clothing/Eyes/glasses.yml
Resources/Prototypes/Entities/Clothing/Hands/gloves.yml
Resources/Prototypes/Entities/Clothing/OuterClothing/suits.yml
Resources/Prototypes/Entities/Clothing/Shoes/specific.yml
Resources/Prototypes/Entities/Objects/Misc/handy_flags.yml
Resources/Prototypes/Entities/Objects/Misc/paper.yml
Resources/Prototypes/Entities/Objects/Misc/pen.yml
Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml
Resources/Prototypes/Entities/Objects/Weapons/Guns/Rifles/rifles.yml
Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml
Resources/Prototypes/Entities/Objects/Weapons/Melee/sword.yml
Resources/Prototypes/Entities/Objects/base_contraband.yml

index 883f503ba6eeecdf642301b123d5eaa42a3acc5a..a4ce652f2f56845107376889d6c26273b6921e25 100644 (file)
@@ -7,13 +7,14 @@ namespace Content.Shared.Contraband;
 /// <summary>
 /// This is used for marking entities that are considered 'contraband' IC and showing it clearly in examine.
 /// </summary>
-[RegisterComponent, NetworkedComponent, Access(typeof(ContrabandSystem))]
+[RegisterComponent, NetworkedComponent, Access(typeof(ContrabandSystem)), AutoGenerateComponentState]
 public sealed partial class ContrabandComponent : Component
 {
     /// <summary>
     ///     The degree of contraband severity this item is considered to have.
     /// </summary>
     [DataField]
+    [AutoNetworkedField]
     public ProtoId<ContrabandSeverityPrototype> Severity = "Restricted";
 
     /// <summary>
@@ -22,5 +23,6 @@ public sealed partial class ContrabandComponent : Component
     ///     If null, no departments are allowed to use this.
     /// </summary>
     [DataField]
+    [AutoNetworkedField]
     public HashSet<ProtoId<DepartmentPrototype>>? AllowedDepartments = ["Security"];
 }
index 5520b6751a167b8bad7b8680548decddc88e4c1f..44df034ee9d32f3d0bd98622d2326fff5b3b4b7c 100644 (file)
       coverage: EYES
 
 - type: entity
-  parent: ClothingEyesBase
+  parent: [ClothingEyesBase, BaseMajorContraband]
   id: ClothingEyesVisorNinja
   name: ninja visor
   description: An advanced visor protecting a ninja's eyes from flashing lights.
index 684ef791ec02aad73d79aa834657efe48406464c..d5d3b64e0fdda8739adb41b83b3a1bd279aafd39 100644 (file)
   - type: FingerprintMask
 
 - type: entity
-  parent: [ClothingHandsBase, BaseToggleClothing]
+  parent: [ClothingHandsBase, BaseToggleClothing, BaseMajorContraband]
   id: ClothingHandsGlovesSpaceNinja
   name: space ninja gloves
   description: These black nano-enhanced gloves insulate from electricity and provide fire resistance.
       - type: CriminalRecordsHacker
 
 - type: entity
-  parent: [ClothingHandsGlovesColorBlack, BaseMinorContraband]
+  parent: [ClothingHandsGlovesColorBlack, BaseSecurityEngineeringContraband]
   id: ClothingHandsGlovesCombat
   name: combat gloves
   description: These tactical gloves are fireproof and shock resistant.
index 1d5fbb0119147f056244b9929b99626587d88ccd..a04bdde31fbeee526ea48bb06ab3efc1fde47bc9 100644 (file)
     slots: WITHOUT_POCKET
 
 - type: entity
-  parent: [ClothingOuterBaseLarge, AllowSuitStorageClothing, BaseToggleClothing]
+  parent: [ClothingOuterBaseLarge, AllowSuitStorageClothing, BaseToggleClothing, BaseMajorContraband]
   id: ClothingOuterSuitSpaceNinja
   name: space ninja suit
   description: This black technologically advanced, cybernetically-enhanced suit provides many abilities like invisibility or teleportation.
index 80d5eab249b073b19d82b0b7a670a468124e65e6..c8a3e615f3bd635a2fc61ac63e25bdfc27a1e8c4 100644 (file)
   - type: NoSlip
 
 - type: entity
-  parent: ClothingShoesBaseButcherable
+  parent: [ClothingShoesBaseButcherable, BaseMajorContraband]
   id: ClothingShoesSpaceNinja
   name: space ninja shoes
   description: A pair of nano-enhanced boots with built-in magnetic suction cups.
index 61162edf2c0bbbfbdadec8ed61e1f401e0f2fa96..6df1a39dc8c3ab5627acf47b3d324c5646de139a 100644 (file)
@@ -23,7 +23,7 @@
     sprite: Objects/Misc/Handy_Flags/NT_handy_flag.rsi
 
 - type: entity
-  parent: BaseItem
+  parent: [BaseItem, BaseSyndicateContraband]
   id: SyndieHandyFlag
   name: syndicate handheld flag
   description: "For truly rebellious patriots. Death to NT!"
index 478521bcfd6e5ef044f8d690b46fc46a2770dd2e..7d392e016d1de3a14ea40361ca3e3ddb17408dfa 100644 (file)
     stealGroup: BoxFolderQmClipboard
 
 - type: entity
-  parent: Paper
+  parent: [Paper, BaseSyndicateContraband] # eat or burn your damn piece of paper damn thieves
   id: TraitorCodePaper
   name: syndicate codeword
   description: A leaked codeword to possibly get in touch with the Syndicate.
   - type: TraitorCodePaper
 
 - type: entity
-  parent: Paper
+  parent: [Paper, BaseSyndicateContraband]
   id: AllTraitorCodesPaper
   name: syndicate codewords registry
   description: A registry of all active Syndicate codewords.
index 2ff0a2258bd37a5d486d62d694b98a9f9e8e7d09..e5a96f26e3f9b17d6c0af2e1d1b2f8766c722005 100644 (file)
     heldPrefix: luxury_pen
 
 - type: entity
-  name: Cybersun pen
-  parent: [PenEmbeddable, 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.
+  id: BaseAdvancedPen
+  parent: PenEmbeddable
   components:
   - type: Tag
     tags:
     - WriteIgnoreStamps
     - Pickaxe
     - Pen
-  - type: Sprite
-    state: overpriced_pen
-  - type: Item
-    heldPrefix: overpriced_pen
   - type: MeleeWeapon
     wideAnimationRotation: -45
     damage:
       path: /Audio/Weapons/bladeslice.ogg
   - type: Tool
     qualities:
-      - Screwing
+    - Screwing
     useSound:
       collection: Screwdriver
 
 - type: entity
-  name: captain's fountain pen
-  parent: PenEmbeddable
-  id: PenCap
-  description: A luxurious fountain pen for the captain of the station.
+  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: pen_cap
+    state: overpriced_pen
+  - type: Item
+    heldPrefix: overpriced_pen
 
 - type: entity
   name: CentComm pen
-  parent: CyberPen
+  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: Item
     heldPrefix: pen_centcom
 
+- type: entity
+  name: captain's fountain pen
+  parent: PenEmbeddable
+  id: PenCap
+  description: A luxurious fountain pen for the captain of the station.
+  components:
+  - type: Sprite
+    state: pen_cap
+
 - type: entity
   name: hop's fountain pen
   parent: PenEmbeddable
index e60c955f4e4d00dbf2190910580beaf7792431db..4aa7ae7ba179a4cd02005cf0c3d60b5a13ca8e90 100644 (file)
   - type: Appearance
 
 - type: entity
-  name: laser rifle
-  parent: [BaseWeaponBattery, BaseGunWieldable, BaseRestrictedContraband]
-  id: WeaponLaserCarbine
-  description: Favoured by Nanotrasen Security for being cheap and easy to use.
+  name: practice laser rifle
+  parent: [BaseWeaponBattery, BaseGunWieldable]
+  id: WeaponLaserCarbinePractice
+  description: This modified laser rifle fires nearly harmless beams in the 40-watt range, for target practice.
   components:
   - type: Sprite
     sprite: Objects/Weapons/Guns/Battery/laser_gun.rsi
       shader: unshaded
   - type: Clothing
     sprite: Objects/Weapons/Guns/Battery/laser_gun.rsi
-  - type: StaticPrice
-    price: 420
   - type: Gun
     selectedMode: SemiAuto
     availableModes:
     - SemiAuto
   - type: HitscanBatteryAmmoProvider
-    proto: RedLaser
+    proto: RedLaserPractice
     fireCost: 62.5
+  - type: StaticPrice
+    price: 300
 
 - 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.
+  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: RedLaserPractice
+    proto: RedLaser
     fireCost: 62.5
-  - type: StaticPrice
-    price: 300
 
 - type: entity
   name: pulse pistol
     zeroVisible: true
   - 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
   name: disabler
-  parent: [ BaseWeaponBatterySmall, BaseSecurityCommandContraband ]
+  parent: [ WeaponDisablerPractice, BaseSecurityCommandContraband ]
   id: WeaponDisabler
   description: A self-defense weapon that exhausts organic targets, weakening them until they collapse.
   components:
-    - type: Tag
-      tags:
-        - Taser
-        - Sidearm
-    - type: Sprite
-      sprite: Objects/Weapons/Guns/Battery/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/disabler.rsi
-      quickEquip: false
-      slots:
-        - suitStorage
-        - Belt
-    - type: Gun
-      fireRate: 2
-      soundGunshot:
-        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: Sprite
+    sprite: Objects/Weapons/Guns/Battery/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/disabler.rsi
+    quickEquip: false
+    slots:
+      - suitStorage
+      - Belt
+  - type: ProjectileBatteryAmmoProvider
+    proto: BulletDisabler
+    fireCost: 100
+  - type: GuideHelp
+    guides:
+    - Security
+    - Antagonists
 
 - type: entity
   name: disabler SMG
   - type: StaticPrice
     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
   name: taser
   parent: [ BaseWeaponBatterySmall, BaseRestrictedContraband ]
index d16afb547869a1ae0d656247b75ab61da55babb1..64280542dbac06ef4589f044d8c73c761292b4a5 100644 (file)
@@ -53,7 +53,7 @@
 
 - type: entity
   name: AKMS
-  parent: [BaseWeaponRifle, BaseMinorContraband]
+  parent: [BaseWeaponRifle, BaseMajorContraband]
   id: WeaponRifleAk
   description: An iconic weapon of war. Uses .30 rifle ammo.
   components:
index 53ddd96178f20fd6e3aea44cd5d298d1f5712f13..e364809b5010f1492fe60c691a0ad083603c9fa3 100644 (file)
@@ -1,8 +1,7 @@
 - type: entity
-  name: energy sword
-  parent: [BaseItem, BaseSyndicateContraband]
-  id: EnergySword
-  description: A very loud & dangerous sword with a beam made of pure, concentrated plasma. Cuts through unarmored targets like butter.
+  id: BaseMeleeWeaponEnergy # more generic naming in case someone makes like, idk, an energy axe
+  parent: BaseItem
+  abstract: true
   components:
   - type: EnergySword
   - type: ItemToggle
       params:
         variation: 0.125
     activatedDamage:
-        types:
-            Slash: 15
-            Heat: 15
-            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" ]
+      types:
+        Slash: 15
+        Heat: 15
+        Structural: 20
   - type: MeleeWeapon
     wideAnimationRotation: -135
     attackRate: 1
@@ -59,7 +49,6 @@
         Blunt: 4.5
   - type: Item
     size: Small
-    sprite: Objects/Weapons/Melee/e_sword-inhands.rsi
   - type: UseDelay
     delay: 1.0
   - type: PointLight
   - type: IgnitionSource
     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
   name: energy dagger
-  parent: EnergySword
+  parent: [BaseMeleeWeaponEnergy, BaseSyndicateContraband]
   id: EnergyDaggerLoud
   description: A not as loud and dangerous dagger with a beam made of pure, concentrated plasma. This one is completely undisguised.
   components:
   - type: Item
     size: Tiny
     sprite: Objects/Weapons/Melee/e_dagger_loud.rsi
-  - type: UseDelay
-    delay: 1.0
   - type: PointLight
     enabled: false
     radius: 1.5
     energy: 1.5
     color: white
     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
   name: pen
-  parent: EnergyDaggerLoud
+  parent: BaseMeleeWeaponEnergy
   id: EnergyDagger
   suffix: E-Dagger
   description: 'A dark ink pen.'
       path: /Audio/Weapons/ebladehum.ogg
       params:
         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
     sprite: Objects/Weapons/Melee/e_dagger.rsi
     layers:
   - type: Item
     size: Tiny
     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
     tags:
     - Write
 
 - type: entity
   name: energy cutlass
-  parent: EnergySword
+  parent: [BaseMeleeWeaponEnergy, BaseMajorContraband]
   id: EnergyCutlass
   description: An exotic energy weapon.
   components:
         shader: unshaded
         map: [ "blade" ]
   - type: Item
-    size: Small
     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
   name: double-bladed energy sword
-  parent: EnergySword
+  parent: [BaseMeleeWeaponEnergy, BaseSyndicateContraband]
   id: EnergySwordDouble
   description: Syndicate Command Interns thought that having one blade on the energy sword was not enough. This can be stored in pockets.
   components:
   - type: Reflect
     reflectProb: .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
   suffix: One-Handed, For Borgs
index dd00c2054ad9a2096eb69db7ece52d635d0dfa98..586247bb3a95a823e8efeb02357c7a075331f49e 100644 (file)
@@ -43,7 +43,7 @@
 
 - type: entity
   name: katana
-  parent: [ BaseSword, BaseMinorContraband ]
+  parent: [ BaseSword, BaseMajorContraband ]
   id: Katana
   description: Ancient craftwork made with not so ancient plasteel.
   components:
@@ -93,7 +93,7 @@
 
 - type: entity
   name: machete
-  parent: [ BaseSword, BaseMinorContraband ]
+  parent: [ BaseSword, BaseMajorContraband ]
   id: Machete
   description: A large, vicious looking blade.
   components:
 
 - type: entity
   name: claymore
-  parent: [ BaseSword, BaseMinorContraband ]
+  parent: [ BaseSword, BaseMajorContraband ]
   id: Claymore
   description: An ancient war blade.
   components:
 
 - type: entity
   name: cutlass
-  parent: [ BaseSword, BaseMinorContraband ]
+  parent: [ BaseSword, BaseMajorContraband ]
   id: Cutlass
   description: A wickedly curved blade, often seen in the hands of space pirates.
   components:
 
 - type: entity
   name: Throngler
-  parent: [ BaseSword, BaseMinorContraband ]
+  parent: [ BaseSword, BaseMajorContraband ]
   id: Throngler
   description: Why would you make this?
   components:
index 84783ccf7d6737ea9ece2454a73ced57054566ad..fffa4b506cc7b1b799ff557b8cae2fb90a3a4e29 100644 (file)
   - type: Contraband
     allowedDepartments: [ Security, Science, Command ]
 
+- type: entity
+  id: BaseSecurityEngineeringContraband
+  parent: BaseRestrictedContraband
+  abstract: true
+  components:
+  - type: Contraband
+    allowedDepartments: [ Security, Engineering ]
+
 - type: entity
   id: BaseEngineeringContraband
   parent: BaseRestrictedContraband