# 20mm - L85

- type: entity
  id: 20mmBulletBase
  parent: BaseBullet
  abstract: true
  categories: [ HideSpawnMenu ]
  components:
  - type: Projectile
    damage:
      types:
        Structural: 10
        Blunt: 25
        Piercing: 25
    ignoreWeaponGrid: true
  - type: ShipWeaponProjectile
  - type: TimedDespawn
    lifetime: 2
  - type: PointLight
    radius: 3.5
    energy: 0.5
  - type: RadarBlip
    scale: 0.85
    requireNoGrid: true
    shape: triangle
    radarColor: "#1df1f5"
  - type: Fixtures
    fixtures:
      projectile:
        shape:
          !type:PhysShapeAabb
          bounds: "-0.15,-0.15,0.15,0.15" # Slightly larger hitbox
        hard: false
        mask:
        - Impassable
        - BulletImpassable

- type: entity
  id: 20mmBullet
  name: 20mm bullet
  parent: 20mmBulletBase
  categories: [ HideSpawnMenu ]
  components:
  - type: Projectile
    damage:
      types:
        Piercing: 75
  - type: Sprite
    sprite: _Mono/Objects/SpaceArtillery/50_armorpiercing_machinegun_casing.rsi
    layers:
    - state: base-projectile
  - type: PointLight
    color: orange

# 30mm - Draupnir

- type: entity
  id: 30mmBullet
  parent: BaseBullet
  categories: [ HideSpawnMenu ]
  components:
  - type: Projectile
    damage:
      types:
        Piercing: 120
  - type: ShipWeaponProjectile
  - type: TimedDespawn
    lifetime: 3
  - type: PointLight
    radius: 3.5
    energy: 0.5
  - type: RadarBlip
    scale: 1.15
    requireNoGrid: true
    shape: arrow
    radarColor: "#1df1f5"

# 57mm 

- type: entity
  id: 57mmBullet
  parent: BaseBulletTrigger
  categories: [ HideSpawnMenu ]
  components:
  - type: Projectile
    damage:
      types:
        Blunt: 35
        Piercing: 25
  - type: Sprite
    sprite: _Mono/Objects/SpaceArtillery/57_shell.rsi
    layers:
    - state: 57-shell
    scale: 1, 1
  - type: ShipWeaponProjectile
  - type: RadarBlip
    scale: 2.5
    requireNoGrid: true
    shape: triangle
    radarColor: "#1df1f5"
  - type: TimedDespawn
    lifetime: 7
  - type: PointLight
    color: "#FCBA03"
  - type: ExplodeOnTrigger
  - type: Explosive
    explosionType: Default
    totalIntensity: 6 # totalIntensity goes first, please.
    intensitySlope: 1
    maxIntensity: 1
    maxTileBreak: 1

# 90mm

- type: entity
  id: 90mmBulletBase
  name: shell
  parent: BaseBulletTrigger
  abstract: true
  categories: [ HideSpawnMenu ]
  components:
  - type: TimedDespawn
    lifetime: 4.2
  - type: PointLight
    radius: 3.5
    energy: 0.5
  - type: ShipWeaponProjectile
  - type: RadarBlip
    scale: 1.5
    requireNoGrid: true
    shape: triangle
    radarColor: "#1df1f5"

- type: entity
  id: 90mmBullet
  parent: 90mmBulletBase
  categories: [ HideSpawnMenu ]
  components:
  - type: Projectile
    damage:
      types:
        Piercing: 70
  - type: Sprite
    sprite: _Mono/Objects/SpaceArtillery/630_armorpiercing_shell_casing.rsi
    layers:
    - state: base-projectile
  - type: ExplodeOnTrigger
  - type: Explosive
    explosionType: Default
    totalIntensity: 12
    intensitySlope: 4
    maxIntensity: 3
    maxTileBreak: 1
  - type: PointLight
    color: orange

# 220mm Cyrexa

- type: entity
  id: ShipCyrexaProjectile
  name: CYREXA 220mm projectile
  parent: BaseBulletTrigger
  categories: [ HideSpawnMenu ]
  components:
  - type: Projectile
    damage:
      types:
        Structural: 200
        Blunt: 250
  - type: Sprite
    sprite: _Mono/Objects/SpaceArtillery/630_armorpiercing_shell_casing.rsi
    layers:
    - state: base-projectile
    scale: 2, 2
  - type: Ammo
    muzzleFlash: null
  - type: ShipWeaponProjectile
  - type: RadarBlip
    scale: 3.25
    requireNoGrid: true
    shape: triangle
  - type: TimedDespawn
    lifetime: 5.15
  - type: PointLight
    color: "#FCBA03"
  - type: ExplodeOnTrigger
  - type: Explosive
    explosionType: Default
    totalIntensity: 60
    intensitySlope: 5
    maxIntensity: 35
    maxTileBreak: 3
  - type: GatheringProjectile
  - type: MiningGatheringSoft
  - type: MiningGatheringHard

# 255mm Bofors

- type: entity
  id: ShipBoforsProjectile
  name: Bofors 255mm projectile
  parent: BaseBulletTrigger
  categories: [ HideSpawnMenu ]
  components:
  - type: Projectile
    damage:
      types:
        Structural: 350
        Blunt: 250
  - type: Sprite
    sprite: _Mono/Objects/SpaceArtillery/630_armorpiercing_shell_casing.rsi
    layers:
    - state: base-projectile
    scale: 2, 2
  - type: Ammo
    muzzleFlash: null
  - type: ShipWeaponProjectile
  - type: RadarBlip
    scale: 2.5
    requireNoGrid: true
    shape: triangle
  - type: TimedDespawn
    lifetime: 7
  - type: PointLight
    color: "#fc5a03"
  - type: ExplodeOnTrigger
  - type: Explosive
    explosionType: Default
    totalIntensity: 95
    intensitySlope: 5
    maxIntensity: 45
    maxTileBreak: 4
  - type: GatheringProjectile
  - type: MiningGatheringSoft
  - type: MiningGatheringHard

# Syndicate

# Adder Cannister Shells

- type: entity
  id: AdderBullet
  name: AdderBullet
  parent: 20mmBulletBase
  categories: [ HideSpawnMenu ]
  components:
  - type: Projectile
    damage:
      types:
        Piercing: 45
  - type: Sprite
    sprite: _Mono/Objects/SpaceArtillery/50_armorpiercing_machinegun_casing.rsi
    layers:
    - state: base-projectile
  - type: PointLight
    color: orange

- type: entity
  id: AdderSpread
  categories: [ HideSpawnMenu ]
  parent: AdderBullet
  components:
  - type: ProjectileSpread
    proto: AdderBullet
    count: 6
    spread: 5

# Drone

- type: entity
  id: ShipShardProjectile
  parent: BaseBulletTrigger
  categories: [ HideSpawnMenu ]
  components:
  - type: Projectile
    damage:
      types:
        Structural: 300
        Blunt: 50
        Piercing: 50
  - type: Sprite
    sprite: _Mono/Objects/SpaceArtillery/57_shell.rsi
    layers:
    - state: 57-shell
    scale: 1, 1
  - type: ShipWeaponProjectile
  - type: RadarBlip
    scale: 2.5
    requireNoGrid: true
    shape: triangle
    radarColor: "#1df1f5"
  - type: TimedDespawn
    lifetime: 5
  - type: PointLight
    color: "#FCBA03"
  - type: ExplodeOnTrigger
  - type: Explosive
    explosionType: Default
    totalIntensity: 12
    intensitySlope: 2
    maxIntensity: 2
    maxTileBreak: 1
