# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aidenkrz <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2025 Aviu00 <93730715+Aviu00@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later

- type: entity
  id: EntropicPlume
  name: entropic plume
  categories: [ HideSpawnMenu ]
  components:
  - type: MovementIgnoreGravity
  - type: Sprite
    sprite: _Goobstation/Heretic/Effects/effects160x160.rsi
    layers:
    - state: entropic_plume
      shader: unshaded
    noRot: false
  - type: Physics
    bodyType: Dynamic
    linearDamping: 1
    angularDamping: 0
  - type: Fixtures
    fixtures:
      fix1:
        shape:
          !type:PhysShapeAabb
          bounds: "-1.5,-2.5,1.5,2.5"
        density: 1
        hard: false
        mask:
        - BulletImpassable
        - Opaque
      fix2:
        shape:
          !type:PhysShapeAabb
          bounds: "-2.5,-1.5,2.5,1.5"
        density: 1
        hard: false
        mask:
        - BulletImpassable
        - Opaque
  - type: Projectile
    impactEffect: null
    deleteOnCollide: false
    penetrate: true
    damage:
      types:
        Heat: 0
    soundHit: null
    forceSound: true
  - type: TimedDespawn
    lifetime: 1.4
  - type: EntropicPlume
  - type: Tag
    tags:
      - HideContextMenu

- type: entity
  id: EffectCleave
  categories: [ HideSpawnMenu ]
  components:
  - type: TimedDespawn
    lifetime: 0.5
  - type: Sprite
    noRot: true
    drawdepth: Effects
    layers:
    - shader: unshaded
      sprite: _Goobstation/Heretic/Effects/effects.rsi
      state: cleave
  - type: Tag
    tags:
      - HideContextMenu

- type: entity
  id: EffectVolcanoExplosion
  categories: [ HideSpawnMenu ]
  components:
  - type: TimedDespawn
    lifetime: 0.8
  - type: Sprite
    noRot: true
    drawdepth: Effects
    layers:
      - shader: unshaded
        sprite: _Goobstation/Heretic/Effects/effects.rsi
        state: explosion
  - type: Tag
    tags:
      - HideContextMenu

- type: entity
  id: EffectVoidBlinkIn
  categories: [ HideSpawnMenu ]
  components:
  - type: TimedDespawn
    lifetime: 0.5
  - type: Sprite
    noRot: true
    drawdepth: Effects
    layers:
      - sprite: _Goobstation/Heretic/Effects/effects96x96.rsi
        state: void_blink_in
  - type: Tag
    tags:
      - HideContextMenu

- type: entity
  id: EffectVoidBlinkOut
  categories: [ HideSpawnMenu ]
  components:
  - type: TimedDespawn
    lifetime: 0.5
  - type: Sprite
    noRot: true
    drawdepth: Effects
    layers:
      - sprite: _Goobstation/Heretic/Effects/effects96x96.rsi
        state: void_blink_out
  - type: Tag
    tags:
      - HideContextMenu

- type: entity
  id: ShadowCloakEntity
  save: false
  name: a shadow?
  description: Something is there! Against all reason, this shadow lurks at the corners of your vision. You close your eyes, but still, it is there. No matter how far you run, it is there. In pitchest black, it is there.
  components:
  - type: TimedDespawn
    lifetime: 185 # Time of the cloak to wear off + time of particles to disappear
  - type: Sprite
    noRot: true
    drawdepth: Mobs
    layers:
      - sprite: _Goobstation/Heretic/Effects/effects.rsi
        state: curse
  - type: Clickable
  - type: InteractionOutline
  - type: Damageable
  - type: Trail
    lifetime: 3.2
    frequency: 0.1
    alphaLerpAmount: 0.05
    renderedEntityRotationStrategy: Particle
    sprite:
      sprite: /Textures/_Goobstation/Heretic/Effects/effects.rsi
      state: curse
  - type: EntityTrail
  - type: RotationVisuals
  - type: Appearance

- type: entity
  id: EffectCosmicDiamond
  categories: [ HideSpawnMenu ]
  components:
  - type: Sprite
    noRot: true
    drawdepth: Effects
    layers:
    - shader: unshaded
      sprite: _Goobstation/Heretic/Effects/effects.rsi
      state: cosmic_diamond
  - type: Tag
    tags:
      - HideContextMenu
  - type: FadingTimedDespawn
    fadeOutTime: 3
    lifetime: 15

- type: entity
  id: EffectCosmicCloud
  categories: [ HideSpawnMenu ]
  components:
  - type: TimedDespawn
    lifetime: 0.8
  - type: Sprite
    noRot: true
    drawdepth: Effects
    layers:
    - shader: unshaded
      sprite: _Goobstation/Heretic/Effects/effects.rsi
      state: cosmic_cloud
  - type: Tag
    tags:
      - HideContextMenu

- type: entity
  id: EffectCosmicExplosion
  categories: [ HideSpawnMenu ]
  components:
  - type: TimedDespawn
    lifetime: 0.5
  - type: Sprite
    drawdepth: Effects
    layers:
    - shader: unshaded
      map: ["enum.EffectLayers.Unshaded"]
      sprite: _Goobstation/Heretic/Effects/effects64x64.rsi
      state: cosmic_explosion
  - type: Tag
    tags:
      - HideContextMenu

- type: entity
  id: EffectCosmicDomain
  categories: [ HideSpawnMenu ]
  components:
  - type: TimedDespawn
    lifetime: 0.6
  - type: Sprite
    noRot: true
    drawdepth: Effects
    layers:
    - shader: unshaded
      sprite: _Goobstation/Heretic/Effects/effects160x160.rsi
      state: cosmic_domain
  - type: Tag
    tags:
      - HideContextMenu

- type: entity
  id: EffectCosmicSlash
  categories: [ HideSpawnMenu ]
  components:
  - type: FadingTimedDespawn
    fadeOutTime: 0.5
    lifetime: 0
  - type: RandomRotation
  - type: Sprite
    drawdepth: Effects
    layers:
    - shader: unshaded
      sprite: _Goobstation/Heretic/Effects/effects.rsi
      state: cosmic_slash
  - type: Tag
    tags:
      - HideContextMenu

- type: entity
  id: WeaponArcHereticCosmic
  parent: WeaponArcStatic
  categories: [ HideSpawnMenu ]
  components:
  - type: TimedDespawn
    lifetime: 0.5
  - type: RandomRotation
  - type: Sprite
    layers:
    - shader: unshaded
      sprite: _Goobstation/Heretic/Effects/effects.rsi
      state: cosmic_slash

- type: entity
  id: EffectGazerOrb
  categories: [ HideSpawnMenu ]
  components:
  - type: TimedDespawn
    lifetime: 3
  - type: Sprite
    noRot: true
    drawdepth: Effects
    layers:
    - shader: unshaded
      sprite: _Goobstation/Heretic/Effects/effects160x160.rsi
      state: gazer_beam_charge
  - type: Tag
    tags:
      - HideContextMenu

- type: entity
  id: EffectVoidPrisonEnd
  categories: [ HideSpawnMenu ]
  components:
  - type: TimedDespawn
    lifetime: 1
  - type: Sprite
    noRot: true
    drawdepth: Effects
    layers:
    - shader: unshaded
      sprite: _Goobstation/Heretic/Effects/effects.rsi
      state: voidball_closing
  - type: Tag
    tags:
      - HideContextMenu

- type: entity
  id: VoidConduit
  name: Void Conduit
  description: An open gate which leads to nothingness. Releases pulses which you do not want to get hit by.
  placement:
    mode: SnapgridCenter
  components:
  - type: Transform
    anchored: true
  - type: Physics
    bodyType: Static
    canCollide: false
  - type: Fixtures
  - type: Sprite
    layers:
    - sprite: _Goobstation/Heretic/void_overlay.rsi
      state: void_conduit
      shader: unshaded
  - type: InteractionOutline
  - type: Clickable
  - type: Damageable
    damageContainer: Inorganic
  - type: Destructible
    thresholds:
    - trigger:
        !type:DamageTrigger
        damage: 150
      behaviors:
      - !type:DoActsBehavior
        acts: [ "Destruction" ]
      - !type:PlaySoundBehavior
        sound:
          path: /Audio/_Goobstation/Heretic/runebreak.ogg
  - type: AmbientSound
    sound: /Audio/_Goobstation/Heretic/ambiatm1.ogg
    volume: 10
    range: 10
  - type: VoidConduit
  - type: TimedDespawn
    lifetime: 60

- type: entity
  id: VoidAscensionAura
  categories: [ HideSpawnMenu ]
  components:
  - type: Physics
    bodyType: Static
  - type: Fixtures
    fixtures:
      fix1:
        shape:
          !type:PhysShapeCircle
          radius: 10
        density: 1
        hard: false
        layer:
        - BulletImpassable
        - Opaque
  - type: VoidAscensionAura
