- type: entity
  id: BasePlasticExplosive
  parent: BaseItem
  abstract: true
  components:
  - type: Item
    size: Small
  - type: Sticky
    stickDelay: 5
    unstickDelay: 5
    stickPopupStart: comp-sticky-start-stick-bomb
    stickPopupSuccess: comp-sticky-success-stick-bomb
    unstickPopupStart: comp-sticky-start-unstick-bomb
    unstickPopupSuccess: comp-sticky-success-unstick-bomb
    blacklist: # can't stick it to other items
      components:
      - Item
      - Spectral # special case for the rev since it can go incorporeal and ghost bomb you. Also, Idk, its like a ghost or something no touchy.
  - type: Damageable
    damageContainer: Inorganic
  - type: Destructible
    thresholds:
    - trigger:
        !type:DamageTrigger
        damage: 50
      behaviors:
      - !type:DoActsBehavior
        acts: ["Destruction"]
      - !type:ExplodeBehavior
  - type: StickyVisualizer
  - type: Appearance
  - type: GenericVisualizer
    visuals:
      enum.Trigger.TriggerVisuals.VisualState:
        base:
          Primed: { state: primed }
          Unprimed: { state: icon }

- type: entity
  name: composition C-4
  description: Used to put holes in specific areas without too much extra hole. A saboteur's favorite.
  parent: [BasePlasticExplosive, BaseTraitorContraband] # starcup: shared contraband level with nt gear
  id: C4
  components:
  - type: Sprite
    sprite: Objects/Weapons/Bombs/c4.rsi
    state: icon
    layers:
    - state: icon
      map: ["base"]
  - type: Clothing
    sprite: Objects/Weapons/Bombs/c4.rsi
    slots:
    - HEAD
    quickEquip: false
    equipDelay: 3
    unequipDelay: 6
  - type: TriggerOnActivate
  - type: TriggerOnSignal
  - type: TriggerOnStuck
    keyOut: stuck
  - type: ToggleTriggerCondition # for toggling the start on stuck ability
    keys:
    - stuck
    toggleVerb: toggle-trigger-condition-stick-verb
    toggleOn: toggle-trigger-condition-stick-on
    toggleOff: toggle-trigger-condition-stick-off
  - type: TimerTrigger
    keysIn:
    - trigger
    - stuck
    delay: 10
    delayOptions: [10, 30, 60, 120, 300]
    initialBeepDelay: 0
    beepSound: /Audio/Machines/Nuke/general_beep.ogg
  - type: DeviceLinkSink
    ports:
    - Trigger
  - type: Explosive # Powerful explosion in a very small radius. Doesn't break underplating.
    explosionType: DemolitionCharge
    totalIntensity: 60
    intensitySlope: 5
    maxIntensity: 30
    canCreateVacuum: false
  - type: ExplodeOnTrigger
    keysIn:
    - timer
  - type: HolidayVisuals
    holidays:
      festive:
      - FestiveSeason
  - type: HolidayRsiSwap
    sprite:
      festive: Objects/Weapons/Bombs/c4gift.rsi
  - type: StaticPrice
    price: 625 # 5000 for a bundle of 8

- type: entity
  name: seismic charge
  description: Concussion based explosive designed to destroy large amounts of rock.
  parent: [ BasePlasticExplosive, BaseSecurityCargoContraband ]
  id: SeismicCharge
  components:
  - type: Sprite
    sprite: _starcup/Objects/Weapons/Bombs/seismic.rsi # starcup: old sprite has NT markings
    state: icon
    layers:
    - state: icon
      map: ["base"]
  - type: TriggerOnActivate
  - type: TriggerOnSignal
  - type: TriggerOnStuck
    keyOut: stuck
  - type: ToggleTriggerCondition # for toggling the start on stuck ability
    keys:
    - stuck
    toggleVerb: toggle-trigger-condition-stick-verb
    toggleOn: toggle-trigger-condition-stick-on
    toggleOff: toggle-trigger-condition-stick-off
  - type: TimerTrigger
    keysIn:
    - trigger
    - stuck
    delay: 5
    delayOptions: [5, 10, 15, 20]
    initialBeepDelay: 0
    beepSound:
      path: /Audio/Effects/Cargo/buzz_two.ogg
      params:
        volume: -6
  - type: DeviceLinkSink
    ports:
    - Trigger
  - type: Explosive
    explosionType: Cryo
    totalIntensity: 120
    intensitySlope: 2
    maxIntensity: 30
    canCreateVacuum: false
  - type: ExplodeOnTrigger
    keysIn:
    - timer
