## Plushies

- type: entity
  parent: BasePlushie
  id: PlushieJester #Weh!
  name: jester plushie
  description: A dubious little creature getting up to mischief.
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/toys.rsi
    state: plushie_jester
  - type: EmitSoundOnUse
    sound:
      path: /Audio/Items/Toys/hew.ogg
  - type: EmitSoundOnLand
    sound:
      path: /Audio/Items/Toys/hew.ogg
  - type: EmitSoundOnActivate
    sound:
      path: /Audio/Items/Toys/hew.ogg
  - type: MeleeWeapon
    soundHit:
      path: /Audio/Items/Toys/hew.ogg
  - type: StinkyTrait

- type: entity
  parent: PlushieLizard
  id: NFPlushieBotanist #Weh!
  name: botanist plushie
  description: You need food and it just wont stop making rainbow weed.
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/toys.rsi
    state: plushie_botanist

- type: entity
  parent: PlushieLizard
  id: NFPlushieEngineer #Weh!
  name: engineer plushie
  description: The poor thing is just sitting there with nothing to do! Give it a hug!
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/toys.rsi
    state: plushie_engineer

- type: entity
  parent: PlushieLizard
  id: NFPlushieConstruction #Weh!
  name: construction plushie
  description: A work in progress. A shame it had to end this way.
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/toys.rsi
    state: plushie_construction

- type: entity
  parent: PlushieLizard
  id: NFPlushieCmo #Weh!
  name: chief medical officer plushie
  description: Just a weh away.
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/toys.rsi
    state: plushie_cmo

- type: entity
  parent: PlushieCarp
  id: NFPlushieSharkMinnow
  name: sharkminnow plushie
  description: It's killed you! It's killed your friends! Now this source of PTSD is a Pretty Terrific Stuffed Doodad!
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/sharkminnow.rsi
    state: sharkminnowplush
  - type: Item
    heldPrefix: sharkminnowplush
    inhandVisuals:
      left:
      - state: inhand-left
      right:
      - state: inhand-right

- type: entity
  parent: BasePlushie
  id: PlushieJanitor
  name: janitor plushie
  description: The silent cleaner, the one that you dont hear say "Weh"!
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/toys.rsi
    state: plushie_janitor
  - type: EmitSoundOnUse
    sound:
      path: /Audio/_NF/Effects/silence.ogg
  - type: EmitSoundOnLand
    sound:
      path: /Audio/_NF/Effects/silence.ogg
  - type: EmitSoundOnActivate
    sound:
      path: /Audio/_NF/Effects/silence.ogg
  - type: MeleeWeapon
    soundHit:
      path: /Audio/_NF/Effects/silence.ogg
  - type: Tag
    tags:
    - Soap
  - type: Slippery
    slipData:
      paralyzeTime: 0.7
      launchForwardsMultiplier: 0.5
  - 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"
        layer:
        - SlipLayer
        hard: false
      fix1:
        shape:
          !type:PhysShapeAabb
          bounds: "-0.4,-0.3,0.4,0.3"
        density: 10
        mask:
        - ItemMask

- type: entity
  id: PetRockCarrier
  parent: HappyHonk
  name: pet rock carrier
  description: Your new and only best friend home!
  components:
  - type: Sprite
    sprite: _NF/Objects/Storage/Happyhonk/rock_carrier.rsi
    state: box
  - type: Item
    sprite: _NF/Objects/Storage/Happyhonk/rock_carrier.rsi
    heldPrefix: box
  - type: StorageFill
    contents:
      - id: PetRock
        prob: 0.8
        orGroup: Rock
      - id: PetRockFred
        prob: 0.1
        orGroup: Rock
      - id: PetRockRoxie
        prob: 0.1
        orGroup: Rock

- type: entity
  parent: [BaseItem, MrChips]
  id: BasePetRock
  name: pet rock
  description: Your new and only best friend!
  abstract: true
  components:
  - type: StaticPrice
    price: 5
  - type: VentriloquistPuppet # Frontier
    removeHand:
      - ventriloquist-rock-release-hand
    removedHand:
      - ventriloquist-rock-released-hand
    insertHand:
      - ventriloquist-rock-grasp-hand
    insertedHand:
      - ventriloquist-rock-grasped-hand
    puppetRoleName:
      - ventriloquist-rock-role-name
    puppetRoleDescription:
      - ventriloquist-rock-role-description
  - type: DamageOnLand
    damage:
      types:
        Blunt: 1
  - type: DamageOtherOnHit
    damage:
      types:
        Blunt: 1
  - type: Damageable
    damageContainer: Inorganic
  - type: Destructible
    thresholds:
    - trigger:
        !type:DamageTrigger
        damage: 10
      behaviors:
      - !type:PlaySoundBehavior
        sound:
          path: /Audio/Effects/break_stone.ogg
      - !type:SpawnEntitiesBehavior
        spawn:
          Ash:
            min: 1
            max: 1
      - !type:DoActsBehavior
        acts: [ "Destruction" ]

- type: entity
  parent: BasePetRock
  id: PetRock
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/petrock.rsi
    layers:
    - state: rock

- type: entity
  parent: BasePetRock
  id: PetRockFred
  name: fred
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/petrock.rsi
    layers:
    - state: fred

- type: entity
  parent: BasePetRock
  id: PetRockRoxie
  name: roxie
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/petrock.rsi
    layers:
    - state: roxie

- type: entity
  parent: BasePlushie
  id: PlushieGnome
  name: gnome plushie
  description: A stuffed toy that resembles a gnome! or a drawf...
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/toys.rsi
    state: gnome

- type: entity
  parent: BasePlushie
  id: PlushieLoveable
  name: loveable plushie
  description: A stuffed toy that resembles... a creature.
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/toys.rsi
    state: loveable

- type: entity
  parent: BasePlushie
  id: PlushieDeer
  name: deer plushie
  description: A stuffed toy that resembles a deer!
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/toys.rsi
    state: deer

- type: entity
  parent: BasePlushie
  id: PlushieIpc
  name: ipc plushie
  description: A stuffed toy that resembles a ipc!
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/toys.rsi
    state: ipc

- type: entity
  parent: BasePlushie
  id: PlushieGrey
  name: grey plushie
  description: A stuffed toy that resembles a grey!
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/toys.rsi
    state: grey

- type: entity
  parent: BasePlushie
  id: PlushieAbductor
  name: abductor plushie
  description: A stuffed toy that resembles an abductor!
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/toys.rsi
    state: abductor

- type: entity
  parent: BasePlushie
  id: PlushieAbductorAgent
  name: abductor agent plushie
  description: A stuffed toy that resembles an abductor agent!
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/toys.rsi
    state: abductor_agent

- type: entity
  parent: BasePlushie
  id: PlushieRedFox
  name: red fox plushie
  description: A cute plushie that look like a red foxxo!
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/foxplushie.rsi
    state: red

- type: entity
  parent: BasePlushie
  id: PlushiePurpleFox
  name: purple fox plushie
  description: A cute plushie that look like a purple foxxo!
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/foxplushie.rsi
    state: purple

- type: entity
  parent: BasePlushie
  id: PlushiePinkFox
  name: pink fox plushie
  description: A cute plushie that look like a pink foxxo!
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/foxplushie.rsi
    state: pink

- type: entity
  parent: BasePlushie
  id: PlushieOrangeFox
  name: orange fox plushie
  description: A cute plushie that look like a orange foxxo!
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/foxplushie.rsi
    state: orange

- type: entity
  parent: BasePlushie
  id: PlushieMarbleFox
  name: marble fox plushie
  description: A cute plushie that look like a marble foxxo!
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/foxplushie.rsi
    state: marble

- type: entity
  parent: BasePlushie
  id: PlushieCrimsonFox
  name: crimson fox plushie
  description: A cute plushie that look like a crimson foxxo!
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/foxplushie.rsi
    state: crimson

- type: entity
  parent: BasePlushie
  id: PlushieCoffeeFox
  name: coffee fox plushie
  description: A cute plushie that look like a coffee foxxo!
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/foxplushie.rsi
    state: coffee

- type: entity
  parent: BasePlushie
  id: PlushieBlueFox
  name: blue fox plushie
  description: A cute plushie that look like a blue foxxo!
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/foxplushie.rsi
    state: blue

- type: entity
  parent: BasePlushie
  id: PlushieBlackFox
  name: black fox plushie
  description: A cute plushie that look like a black foxxo!
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/foxplushie.rsi
    state: black

- type: entity
  parent: BasePlushie
  id: BasePlushieVulp
  name: vulpkanin plushie
  description: A vulpkanin plushie, at least you can hug this one without the risk to get bitten.
  abstract: true
  components:
  - type: EmitSoundOnUse
    sound:
      path: /Audio/_DV/Voice/Vulpkanin/dog_bark1.ogg
  - type: EmitSoundOnLand
    sound:
      path: /Audio/_DV/Voice/Vulpkanin/dog_bark1.ogg
  - type: EmitSoundOnActivate
    sound:
      path: /Audio/_DV/Voice/Vulpkanin/dog_bark1.ogg
  - type: MeleeWeapon
    soundHit:
      path: /Audio/_DV/Voice/Vulpkanin/dog_bark1.ogg

- type: entity
  parent: BasePlushieVulp
  id: PlushieVulp
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/toys.rsi
    state: plushie_vulp

- type: entity
  parent: BasePlushieVulp
  id: PlushieMailVulp
  name: mail vulp plushie
  description: Smells minty and reminds you of unopened mail. You should check your mail!
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/toys.rsi
    state: plushie_mailvulp

- type: entity
  parent: BasePlushieMoff
  id: PlushieYarrMoth
  name: yarr moth plushie
  description: It's dastardly and has a dashing cloak. It chitters when you squeeze it!
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/toys.rsi
    state: plushie_yarrmoth

- type: entity
  parent: BasePlushieVulp
  id: PlushieCorgi
  name: corgi plushie
  description: The ian plushie edition!
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/corgiplushie.rsi
    state: corgi

- type: entity
  parent: BasePlushieVulp
  id: PlushieGirlyCorgi
  name: girly corgi plushie
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/corgiplushie.rsi
    state: girlycorgi

- type: entity
  parent: BasePlushieVulp
  id: PlushieRobotCorgi
  name: robot corgi plushie
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/corgiplushie.rsi
    state: robotcorgi

- type: entity
  parent: BasePlushie
  id: BasePlushieCat
  abstract: true
  components:
  - type: EmitSoundOnUse
    sound:
      path: /Audio/Nyanotrasen/Voice/Felinid/cat_meow1.ogg
  - type: EmitSoundOnLand
    sound:
      path: /Audio/Nyanotrasen/Voice/Felinid/cat_meow1.ogg
  - type: EmitSoundOnActivate
    sound:
      path: /Audio/Nyanotrasen/Voice/Felinid/cat_meow1.ogg
  - type: MeleeWeapon
    soundHit:
      path: /Audio/Nyanotrasen/Voice/Felinid/cat_meow1.ogg

- type: entity
  parent: BasePlushieCat
  id: PlushieCatBlack
  name: black cat plushie
  description: A stuffed toy that resembles a cute kitty!
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/catplushie.rsi
    state: black

- type: entity
  parent: BasePlushieCat
  id: PlushieCatGrey
  name: grey cat plushie
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/catplushie.rsi
    state: grey

- type: entity
  parent: BasePlushieCat
  id: PlushieCatOrange
  name: orange cat plushie
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/catplushie.rsi
    state: orange

- type: entity
  parent: BasePlushieCat
  id: PlushieCatSiames
  name: siames cat plushie
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/catplushie.rsi
    state: siames

- type: entity
  parent: BasePlushieCat
  id: PlushieCatTabby
  name: tabby cat plushie
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/catplushie.rsi
    state: tabby

- type: entity
  parent: BasePlushieCat
  id: PlushieCatTuxedo
  name: tuxedo cat plushie
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/catplushie.rsi
    state: tuxedo

- type: entity
  parent: BasePlushieCat
  id: PlushieCatWhite
  name: white cat plushie
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/catplushie.rsi
    state: white

- type: entity
  name: toy RPG
  parent: WeaponLauncherRocket
  id: WeaponLauncherRocketToy
  suffix: Toy
  description: A plush toy, this launches foam "grenades". There are stitches on the side that spell out "SAM".
  components:
  - type: Sprite
    sprite: _NF/Objects/Fun/emotional_support_rpg.rsi
    layers: # explicit just in case the base changes.
      - state: base
        map: ["enum.GunVisualLayers.Base"]
      - state: mag-0
        map: ["enum.GunVisualLayers.Mag"]
  - type: Clothing
    sprite: _NF/Objects/Fun/emotional_support_rpg.rsi
  - type: Gun
    soundGunshot:
      path: /Audio/Effects/thunk.ogg
    soundEmpty:
      collection: ToySqueak
  - type: BallisticAmmoProvider
    whitelist:
      tags:
        - NFFoamRPG
    proto: BulletFoamRPG
    soundInsert:
      collection: ToySqueak
  - type: EmitSoundOnCollide
    sound:
      collection: ToySqueak

- type: entity
  id: BulletFoamRPG
  description: Looks like the REAL THING... if you squint. I hope your target's wearing face protection.
  name: foam RPG rocket
  parent: BaseItem
  components:
    - type: Tag
      tags:
        - NFFoamRPG
        - Trash
    - type: Ammo
    - type: Sprite
      sprite: _NF/Objects/Fun/emotional_support_rocket.rsi
      state: icon
    - type: EmitSoundOnCollide
      sound:
       path: /Audio/Weapons/rubberhammer.ogg
    - type: StaminaDamageOnCollide
      damage: 20

# Grown cap gun, in toys.yml for consistency with fake parent
- type: entity
  parent: RevolverCapGunFake
  id: RevolverCapGunFakeGrown
  categories: [ HideSpawnMenu ]
  suffix: Fake, Grown
  components:
  - type: RevolverAmmoProvider
    proto: Cartridge45_magnumFMJ # Base has AP rounds
