# SPDX-FileCopyrightText: 2024 EmoGarbage404 <retron404@gmail.com>
# SPDX-FileCopyrightText: 2024 Kara <lunarautomaton6@gmail.com>
# SPDX-FileCopyrightText: 2024 Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Milon <plmilonpl@gmail.com>
# SPDX-FileCopyrightText: 2024 Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Plykiya <58439124+Plykiya@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 deltanedas <@deltanedas:kde.org>
# SPDX-FileCopyrightText: 2024 lzk <124214523+lzk228@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 plykiya <plykiya@protonmail.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later

- type: entity
  parent: [BaseItem, BaseSyndicateContraband]
  id: ChameleonProjector
  name: chameleon projector
  description: Holoparasite technology used to create a hard-light replica of any object around you. Disguise is destroyed when picked up or deactivated.
  components:
  - type: Sprite
    sprite: /Textures/Objects/Devices/chameleon_projector.rsi
    state: icon
  - type: ChameleonProjector
    whitelist:
      components:
      - Anchorable
      - Item
      tags:
      - Bot # for funny bot moments
    blacklist:
      components:
      - ChameleonDisguise # no becoming kleiner
      - MindContainer # no
      - Pda # PDAs currently make you invisible /!\
    disguiseProto: ChameleonDisguise
  - type: StaticPrice
    price: 5000

- type: entity
  categories: [ HideSpawnMenu ]
  id: ChameleonDisguise
  name: Urist McKleiner
  components:
  # this and the name/desc get replaced, this is just placeholder incase something goes wrong
  - type: Sprite
    sprite: /Textures/Mobs/Species/Human/parts.rsi
    state: full
  - type: Transform
    noRot: true # players rotation and anchor is used instead
  - type: InteractionOutline
  - type: Clickable
  - type: Damageable
  - type: ChameleonDisguise

# actions
- type: entity
  parent: BaseAction
  id: ActionDisguiseNoRot
  name: Toggle Rotation
  description: Use this to prevent your disguise from rotating, making it easier to hide in some scenarios.
  components:
  - type: Action
    icon: Interface/VerbIcons/refresh.svg.192dpi.png
    itemIconStyle: BigAction
  - type: InstantAction
    event: !type:DisguiseToggleNoRotEvent

- type: entity
  parent: BaseAction
  id: ActionDisguiseAnchor
  name: Toggle Anchored
  description: For many objects you will want to be anchored to not be completely obvious.
  components:
  - type: Action
    icon:
      sprite: Objects/Tools/wrench.rsi
      state: icon
    itemIconStyle: BigAction
  - type: InstantAction
    event: !type:DisguiseToggleAnchoredEvent
