# When adding new toys, also add it somewhere nested in id: AllToysTable
# Catchall file for toys which don't have a strong grouping (only 1 or 2 prototypes)

- type: entity
  parent: BaseItem
  id: SnapPop
  name: snap pop
  description: Throw it at the floor and listen to it POP!
  components:
  - type: Sprite
    sprite: Objects/Fun/snap_pops.rsi
    state: icon
  - type: Item
    size: Tiny
  - type: Damageable
  - type: Injurable
    damageContainer: Inorganic
  - type: Destructible
    thresholds:
    - trigger:
        !type:DamageTrigger
        damage: 1
      behaviors:
      - !type:DoActsBehavior
        acts: ["Destruction"]
      - !type:PlaySoundBehavior
        sound:
          path: /Audio/Effects/snap.ogg
      - !type:ExplodeBehavior
  - type: DamageOnLand
    damage:
      types:
        Blunt: 3
  - type: Explosive
    explosionType: Default
    # Cosmetic explosion :tf:
    maxIntensity: 0.01
    intensitySlope: 1
    totalIntensity: 0.01
  - type: Construction
    graph: SnapPopExplosiveGraph
    node: snapPop

- type: entity
  parent: BaseStorageItem
  id: SnapPopBox
  name: snap pop box
  description: Contains snap pops for a few minutes of popping fun!
  components:
  - type: Item
    size: Normal
  - type: Sprite
    sprite: Objects/Fun/snap_pops.rsi
    state: box
  - type: Storage
    grid:
    - 0,0,4,3
    areaInsert: true
    maxItemSize: Tiny
  - type: EntityTableContainerFill
    containers:
      storagebase:
        id: SnapPop
        amount: 5
  - type: Dumpable

- type: entity
  parent: [SolutionSmall, FoodProduceBase]
  id: PlasticBanana
  name: banana
  suffix: Plastic
  description: A plastic banana.
  components:
  - type: Sprite
    sprite: Objects/Specific/Hydroponics/banana.rsi
  - type: FlavorProfile
    flavors:
    - plastic
  - type: Edible
  - type: Solution
    solution:
      reagents:
      - ReagentId: Nothing
        Quantity: 30
  - type: Tag
    tags:
    - Banana

- type: entity
  parent: [SolutionSmall, DrinkBase]
  id: CrazyGlue
  name: crazy glue
  description:  A bottle of crazy glue manufactured by Honk! Co.
  components:
  - type: Sprite
    sprite: Objects/Fun/glue.rsi
    state: icon
    layers:
    - state: icon
      map: ["enum.OpenableVisuals.Layer"]
  - type: Appearance
  - type: GenericVisualizer
    visuals:
      enum.OpenableVisuals.Opened:
        enum.OpenableVisuals.Layer:
          True: {state: "icon_open"}
          False: {state: "icon"}
  - type: Glue
    consumptionUnit: 10
  - type: Item
    sprite: Objects/Fun/glue.rsi
  - type: Solution
    solution:
      reagents:
      - ReagentId: SpaceGlue
        Quantity: 60
  - type: Openable
    sound:
      collection: packetOpenSounds
  - type: TrashOnSolutionEmpty
    solution: drink

- type: entity
  parent: [SolutionSmall, DrinkBase]
  id: CrazyLube
  name: crazy lube
  description: A bottle of super slipery crazy lube manufactured by Honk! Co.
  components:
  - type: Openable
    sound:
      collection: packetOpenSounds
  - type: Sprite
    sprite: Objects/Fun/lube.rsi
    layers:
    - state: icon
      map: ["enum.OpenableVisuals.Layer"]
  - type: Appearance
  - type: Solution
    solution:
      reagents:
      - ReagentId: SpaceLube
        Quantity: 60
  - type: GenericVisualizer
    visuals:
      enum.OpenableVisuals.Opened:
        enum.OpenableVisuals.Layer:
          True: {state: "icon_open"}
          False: {state: "icon"}
  - type: Lube
  - type: TrashOnSolutionEmpty
    solution: drink

- type: entity
  parent: [ BaseItem, MobCombat ]
  id: MrChips
  name: mr chips
  suffix: Dummy
  description: It's a dummy, dummy!
  components:
  - type: Sprite
    sprite: Objects/Fun/mrchips.rsi
    layers:
    - state: icon
  - type: Input
    context: "human"
  - type: DoAfter
  - type: VentriloquistPuppet
  - type: Item
    size: Normal
  - type: Muted
  - type: TypingIndicator
    proto: robot
  - type: Actions
  - type: MobState
    allowedStates:
    - Alive
  - type: MeleeWeapon
    soundHit:
      path: /Audio/Weapons/boxingpunch1.ogg
    angle: 30
    animation: WeaponArcPunch
    damage:
      types:
        Blunt: 2

- type: entity
  parent: MrChips
  id: MrDips
  name: mr dips
  components:
  - type: Sprite
    sprite: Objects/Fun/mrdips.rsi

- type: entity
  parent: [ SolutionFood, SolutionSmall, BaseItem ]
  id: Error
  name: error
  description: Hmmmm. Something went wrong.
  components:
  - type: Sprite
    sprite: error.rsi
    state: error
  - type: Edible
  - type: Solution
    id: food
    solution:
      maxVol: 26 # I'm assuming these values are some kind of reference so I'm leaving them as is
      reagents:
      - ReagentId: Nutriment
        Quantity: 5
  - type: Slippery
    slipData:
      knockdownTime: 3
      launchForwardsMultiplier: 3
  - type: StepTrigger
    intersectRatio: 0.2
  - type: CollisionWake
    enabled: false
  - type: Physics
    bodyType: Dynamic
  - type: Fixtures
    fixtures:
      slips:
        shape:
          !type:PhysShapeAabb
          bounds: "-0.4,-0.3,0.4,0.3"
        hard: false
        layer:
        - SlipLayer
      fix1:
        shape:
          !type:PhysShapeAabb
          bounds: "-0.4,-0.3,0.4,0.3"
        density: 30
        mask:
        - ItemMask

- type: entity
  parent: BaseItem
  id: SpectralLocatorUnpowered
  name: spectral locator
  suffix: Always Powered
  description: Appears to be a modified anomaly locator. Seems very old.
  components:
  - type: Sprite
    sprite: Objects/Fun/spectrallocator.rsi
    layers:
    - state: icon
    - state: screen
      shader: unshaded
      visible: false
      map: ["enum.ToggleableVisuals.Layer"]
  - type: Appearance
  - type: GenericVisualizer
    visuals:
      enum.ToggleableVisuals.Enabled:
        enum.ToggleableVisuals.Layer:
          True: { visible: true }
          False: { visible: false }
  - type: ItemToggle
  - type: ProximityBeeper
  - type: ProximityDetector
    range: 12
    components:
    - type: Spectral # ghosts, jaunts, reventants
  - type: Beeper
    isMuted: true
    minBeepInterval: 0.25
    maxBeepInterval: 0.5
    beepSound:
      path: "/Audio/Items/locator_beep.ogg"
      params:
        maxDistance: 1
        volume: -8

- type: entity
  parent: [ SpectralLocatorUnpowered, PowerCellSlotSmallItem ]
  id: SpectralLocator
  suffix: ""
  components:
  - type: PowerCellDraw
    drawRate: 1
    useCharge: 0
  - type: ToggleCellDraw

- type: entity
  parent: SpectralLocator
  id: SpectralLocatorEmpty
  suffix: Empty
  components:
  - type: ItemSlots
    slots:
      cell_slot:
        name: power-cell-slot-component-slot-name-default
