# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aviu00 <93730715+Aviu00@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aviu00 <aviu00@protonmail.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 LuciferEOS <stepanteliatnik2022@gmail.com>
# SPDX-FileCopyrightText: 2025 LuciferMkshelter <154002422+LuciferEOS@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 PunishedJoe <PunishedJoeseph@proton.me>
# SPDX-FileCopyrightText: 2025 Solstice <solsticeofthewinter@gmail.com>
# SPDX-FileCopyrightText: 2025 pheenty <fedorlukin2006@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
## Buckshot

# Carpshot

- type: entity
  id: HighCaliberPelletShotgun
  name: pellet (8 Gauge carpshot)
  categories: [ HideSpawnMenu ]
  parent: BaseBullet
  components:
  - type: Sprite
    sprite: Objects/Weapons/Guns/Projectiles/projectiles2.rsi
    state: buckshot
  - type: Projectile
    damage:
      types:
        Piercing: 15
        Structural: 20

- type: entity
  id: HighCaliberPelletShotgunSpread
  categories: [ HideSpawnMenu ]
  parent: HighCaliberPelletShotgun
  components:
  - type: ProjectileSpread
    proto: HighCaliberPelletShotgun
    count: 6
    spread: 15

# Incendiary

- type: entity
  id: HighCaliberPelletShotgunIncendiary
  name: pellet (8 Gauge incendiary)
  categories: [ HideSpawnMenu ]
  parent: BaseBulletIncendiary
  components:
    - type: Sprite
      sprite: Objects/Weapons/Guns/Projectiles/projectiles2.rsi
      state: buckshot-flare
    - type: Projectile
      damage:
        types:
          Blunt: 6
          Heat: 6
    - type: IgnitionSource
      ignited: true

- type: entity
  id: HighCaliberPelletShotgunIncendiarySpread
  categories: [ HideSpawnMenu ]
  parent: HighCaliberPelletShotgunIncendiary
  components:
    - type: ProjectileSpread
      proto: HighCaliberPelletShotgunIncendiary
      count: 6
      spread: 15

# Practice

- type: entity
  id: HighCaliberPelletShotgunPractice
  name: pellet (8 Gauge practice)
  categories: [ HideSpawnMenu ]
  parent: BaseBulletPractice
  components:
    - type: Sprite
      sprite: Objects/Weapons/Guns/Projectiles/projectiles2.rsi
      state: buckshot
    - type: Projectile
      damage:
        types:
          Blunt: 2

- type: entity
  id: HighCaliberPelletShotgunPracticeSpread
  categories: [ HideSpawnMenu ]
  parent: HighCaliberPelletShotgunPractice
  components:
    - type: ProjectileSpread
      proto: HighCaliberPelletShotgunPractice
      count: 8
      spread: 15

# Depleted Uranium

- type: entity
  id: HighCaliberPelletShotgunUranium
  name: pellet (8 Gauge uranium)
  categories: [ HideSpawnMenu ]
  parent: BaseBullet
  components:
    - type: Sprite
      sprite: Objects/Weapons/Guns/Projectiles/projectiles2.rsi
      state: depleted-uranium
    - type: Projectile
      damage:
        types:
          Radiation: 8
          Piercing: 8

- type: entity
  id: HighCaliberPelletShotgunUraniumSpread
  categories: [ HideSpawnMenu ]
  parent: HighCaliberPelletShotgunUranium
  components:
    - type: ProjectileSpread
      proto: HighCaliberPelletShotgunUranium
      count: 6
      spread: 6

## Slugs

- type: entity
  id: PelletShotgunSlugHighCaliber
  name: pellet (8 Gauge slug)
  categories: [ HideSpawnMenu ]
  parent: BaseBullet
  components:
  - type: Sprite
    sprite: Objects/Weapons/Guns/Projectiles/projectiles2.rsi
    state: slug
  - type: Projectile
    damage:
      types:
        Piercing: 65

- type: entity
  id: BulletSlugEnsnaring
  name: bullet (8 Gauge ensnaring slug)
  parent: BaseBullet
  categories: [ HideSpawnMenu ]
  components:
  - type: Sprite
    sprite: Objects/Weapons/Guns/Projectiles/projectiles2.rsi
    layers:
    - state: rubber
  - type: Projectile
    deleteOnCollide: false
    damage:
      types:
        Piercing: 16 #Low damage, but ensnaring
  - type: Ensnaring
    canThrowTrigger: true
    destroyOnRemove: true
    breakoutTime: 3
    freeTime: 3
    sprintSpeed: 0.6
    walkSpeed: 0.6
    staminaDamage: 10

- type: entity
  id: BulletSlugEMP
  name: bullet (8 Gauge EMP slug)
  parent: BaseBulletTrigger
  categories: [ HideSpawnMenu ]
  components:
  - type: Sprite
    sprite: Objects/Weapons/Guns/Projectiles/projectiles2.rsi
    layers:
    - state: rubber
      color: "#009eff"
  - type: EmpOnTrigger
    range: 0.2
    energyConsumption: 80
    disableDuration: 1
  - type: Ammo
    muzzleFlash: null
  - type: PointLight
    radius: 1.5
    color: blue
    energy: 0.5
  - type: Projectile
    damage:
      types:
        Piercing: 12
        Ion: 20

- type: entity
  id: BulletSlugFlash
  name: bullet (8 Gauge flash slug)
  parent: BaseBulletTrigger
  categories: [ HideSpawnMenu ]
  components:
  - type: Sprite
    sprite: Objects/Weapons/Guns/Projectiles/projectiles2.rsi
    layers:
    - state: rubber
      color: "#fff94d"
  - type: FlashOnTrigger
    range: 5
    duration: 4
  - type: SpawnOnTrigger
    proto: GrenadeFlashEffect
  - type: Ammo
    muzzleFlash: null
  - type: PointLight
    radius: 1.5
    color: yellow
    energy: 1
  - type: Projectile
    damage:
      types:
        Piercing: 20

- type: entity
  id: BulletSlugBeanbagHighCaliber
  name: beanbag (8 Gauge)
  categories: [ HideSpawnMenu ]
  parent: BaseBullet
  components:
  - type: Sprite
    sprite: Objects/Weapons/Guns/Projectiles/projectiles2.rsi
    state: buckshot
  - type: Projectile
    damage:
      types:
        Blunt: 20 # ye-OUCH
  - type: StaminaDamageOnCollide
    damage: 80 # ye-OW

- type: entity
  id: BulletShotgunHeavySlugSarin
  name: bullet (8 Gauge Sarin)
  parent: BaseBulletTrigger
  categories: [ HideSpawnMenu ]
  components:
  - type: SmokeOnTrigger
    duration: 5
    smokePrototype: Smoke
    solution:
      reagents:
      - ReagentId: Sarin
        Quantity: 20
    spreadAmount: 1
  - type: ActiveTimerTrigger
    timeRemaining: 1
  - type: DeleteOnTrigger
  - type: Projectile
    damage:
      types:
        Piercing: 15

# Heavy shotgun

# Pellet
- type: entity
  id: BulletPelletHeavyHighExplosive
  name: pellet (2 gauge)
  categories: [ HideSpawnMenu ]
  parent: BaseBulletTrigger
  components:
  - type: Sprite
    sprite: Objects/Weapons/Guns/Projectiles/projectiles2.rsi
    state: ball
  - type: Projectile
    damage:
      types:
        Piercing: 7
  - type: ExplodeOnTrigger
  - type: Explosive
    explosionType: HardBomb # Boom
    maxIntensity: 1
    intensitySlope: 2
    totalIntensity: 1

- type: entity
  id: BulletShrapnelHeavyHighExplosive
  name: explosive shrapnel
  categories: [ HideSpawnMenu ]
  parent: BaseItem
  components:
  - type: Sprite
    sprite: Objects/Weapons/Guns/Projectiles/projectiles2.rsi
    state: ball
  - type: Explosive
    explosionType: DemolitionCharge
    totalIntensity: 15
    intensitySlope: 5
    maxIntensity: 5
  - type: ExplodeOnTrigger
  - type: TimedDespawn
    lifetime: 6

- type: entity
  id: HeavyPelletShotgunSpread
  categories: [ HideSpawnMenu ]
  parent: BulletPelletHeavyHighExplosive
  components:
  - type: ProjectileSpread
    proto: BulletPelletHeavyHighExplosive
    count: 6
    spread: 45

- type: entity
  id: BulletSlugHeavyHighExplosive
  name: slug (2 gauge)
  categories: [ HideSpawnMenu ]
  parent: BaseBulletTrigger
  components:
  - type: Sprite
    sprite: Objects/Weapons/Guns/Projectiles/projectiles2.rsi
    state: grenade
  - type: Projectile
    deleteOnCollide: false # ScatteringGrenade manages deletion
    damage:
      types:
        Piercing: 30
      armorPenetration: 0.5
  - type: StaminaDamageOnCollide
    damage: 40
  - type: ContainerContainer
    containers:
      cluster-payload: !type:Container
  - type: ScatteringGrenade
    fillPrototype: BulletShrapnelHeavyHighExplosive
    delayBeforeTriggerContents: 0.5
    intervalBetweenTriggersMax: 0.2
    capacity: 6
    randomDistance: true
    randomThrowDistanceMin: 4
    randomThrowDistanceMax: 8
    velocity: 6


# MP-APERS
- type: entity
  id: HighCaliberPelletGrenade
  name: pellet (MP-APERS)
  categories: [ HideSpawnMenu ]
  parent: BaseBullet
  components:
  - type: Sprite
    sprite: Objects/Weapons/Guns/Projectiles/projectiles2.rsi
    state: buckshot
  - type: Projectile
    damage:
      types:
        Piercing: 6 # Total 120 damage

- type: entity
  id: HighCaliberPelletGrenadeSpread
  categories: [ HideSpawnMenu ]
  parent: HighCaliberPelletGrenade
  components:
  - type: ProjectileSpread
    proto: HighCaliberPelletGrenade
    count: 20
    spread: 15

