# SPDX-FileCopyrightText: 2024 BombasterDS <115770678+BombasterDS@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2024 username <113782077+whateverusername0@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 whateverusername0 <whateveremail>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2025 Aidenkrz <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2025 Aviu00 <93730715+Aviu00@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Baptr0b0t <152836416+Baptr0b0t@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 Scruq445 <storchdamien@gmail.com>
# SPDX-FileCopyrightText: 2025 Solstice <solsticeofthewinter@gmail.com>
# SPDX-FileCopyrightText: 2025 SolsticeOfTheWinter <solsticeofthewinter@gmail.com>
# SPDX-FileCopyrightText: 2025 Ted Lukin <66275205+pheenty@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 TurboTracker <130304754+TurboTrackerss14@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 crasg <109207982+Scruq445@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 pheenty <fedorlukin2006@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later

- type: entity
  parent: BaseSubdermalImplant
  id: BluespaceLifelineImplant
  name: bluespace lifeline implant
  description: Teleports the hosts body to Central Command on activation. They will not be able to return.
  categories: [ HideSpawnMenu ]
  components:
  - type: SubdermalImplant
    permanent: true
    implantAction: ActionActivateBluespaceLifeline
  - type: MansusGraspBlockTrigger
  - type: TriggerOnMobstateChange
    mobState:
    - Dead
  - type: TriggerImplantAction
  - type: DeleteParentOnTrigger
  - type: SpawnOnTrigger
    proto: BluespaceLifelineSpawnCore
  - type: Tag
    tags:
    - SubdermalImplant
    - HideContextMenu

- type: entity
  parent: BaseSubdermalImplant
  id: CommandTrackingImplant
  name: command tracking implant
  description: This implant reserved for command has a tracking device attached to a private suit sensor network, as well as a condition monitor for the Command radio channel.
  categories: [ HideSpawnMenu ]
  components:
    - type: SubdermalImplant
      whitelist:
        components:
        - MobState # admeme implanting a chair with tracking implant needs to give the chair mobstate so it can die first
    - type: SuitSensor
      randomMode: false
      controlsLocked: true
      commandTracker: true #for BSO command monitor
      mode: SensorCords
      activationContainer: "implant"
    - type: DeviceNetwork
      deviceNetId: Wireless
      transmitFrequencyId: SuitSensor
    - type: StationLimitedNetwork
    - type: WirelessNetworkConnection
      range: 500

- type: entity
  parent: BaseSubdermalImplant
  id: PacifismImplant
  name: pacifism implant
  description: Pacifism implant, given to life sentenced prisoners or such to prevent them from committing violence.
  categories: [ HideSpawnMenu ]
  components:
  - type: SubdermalImplant
    whitelist:
      components:
      - MobState
  - type: Pacified

- type: entity
  parent: BaseSubdermalImplant
  id: SmokeImplant
  name: smoke implant
  description: This implant releases smoke cloud on activation.
  categories: [ HideSpawnMenu ]
  components:
    - type: SubdermalImplant
      implantAction: ActivateSmokeImplant
    - type: TriggerImplantAction
    - type: SmokeOnTrigger
      spreadAmount: 25
      duration: 10
    - type: SoundOnTrigger
      sound: /Audio/Effects/smoke.ogg

- type: entity
  parent: BaseSubdermalImplant
  id: KravMagaImplant
  name: krav maga implant
  description: This implant allows the user to perform various Krav Maga moves.
  categories: [ HideSpawnMenu ]
  components:
  - type: ComponentsImplant
    added:
    - type: KravMaga

- type: entity
  parent: BaseSubdermalImplant
  id: AutoinjectorImplant
  name: autoinjector implant
  description: This implant allows the user to inject themselves with a chemical on use. Ephedrine by default.
  categories: [ HideSpawnMenu ]
  components:
  - type: SubdermalImplant
    implantAction: ActionActivateAutoinjector
  - type: Tag
    tags:
    - SubdermalImplant
    - HideContextMenu

- type: entity
  parent: BaseSubdermalImplant
  id: NutrimentPumpImplant
  name: nutriment pump implant
  description: This implant allows prevents the user from getting hungry or thirsty.
  categories: [ HideSpawnMenu ]
  components:
  - type: NutrimentPumpImplant

- type: entity
  parent: BaseSubdermalImplant
  id: SpaceProofImplant
  name: space proofing implant
  description: This implant allows the user to survive in space and without air.
  categories: [ HideSpawnMenu ]
  components:
  - type: ComponentsImplant
    added:
    - type: BreathingImmunity
    - type: PressureImmunity
    - type: SpecialLowTempImmunity

- type: entity
  parent: BaseSubdermalImplant
  id: StypticStimulatorImplant
  name: styptic stimulator implant
  description: This implant sends the users regeneration into overdrive.
  categories: [ HideSpawnMenu ]
  components:
  - type: StypticStimulatorImplant

- type: entity
  parent: BaseSubdermalImplant
  id: BinaryImplant
  name: binary decoder implant
  description: This implant allows the user to access Binary and communicate with silicons (use +b).
  categories: [ HideSpawnMenu ]
  components:
  - type: ImplantGrantCollectiveMind
    collectiveMind: Binary

- type: entity
  parent: BaseSubdermalImplant
  id: ClumsyImplant
  name: clumsy implant
  description: This implant makes the user clumsy, allowing them to drive a certain vehicle.
  categories: [ HideSpawnMenu ]
  components:
  - type: ComponentsImplant
    added:
    - type: Clumsy

- type: entity
  parent: BaseSubdermalImplant
  id: ShadowmindImplant
  name: shadowmind implant
  description: This implant allows the user to access Shadowmind channel (use +q).
  categories: [ HideSpawnMenu ]
  components:
  - type: SubdermalImplant
    permanent: true
  - type: ImplantGrantCollectiveMind
    collectiveMind: Shadowmind

# Admeme

- type: entity
  parent: BaseSubdermalImplant
  id: BlinkImplant
  name: blink implant
  description: This implant allows the user temporarily blink into a higher dimension.
  categories: [ HideSpawnMenu ]
  components:
  - type: SubdermalImplant
    implantAction: ActionBlinkFreeman

- type: entity
  parent: BaseSubdermalImplant
  id: VaporizeImplant
  name: vaporize implant
  description: This implant allows the user to vaporize targets with the power of their mind.
  categories: [ HideSpawnMenu ]
  components:
  - type: SubdermalImplant
    implantAction: ActionVaporizeFreeman

- type: entity
  parent: BaseSubdermalImplant
  id: NaniteMenderImplant
  name: nanite mender implant
  description: This implant allows the user to heal entities with microscopic nanites.
  categories: [ HideSpawnMenu ]
  components:
  - type: SubdermalImplant
    implantAction: ActionNaniteMend

- type: entity
  parent: BaseSubdermalImplant
  id: ShiftImplant
  name: shift implant
  description: This implant allows the user to teleport to a point in range.
  categories: [ HideSpawnMenu ]
  components:
  - type: SubdermalImplant
    implantAction: ActionShiftFreeman

- type: entity
  parent: BaseSubdermalImplant
  id: StopTimeImplant
  name: stop time implant
  description: This implant allows the user to stop time in an area briefly.
  categories: [ HideSpawnMenu ]
  components:
  - type: SubdermalImplant
    implantAction: ActionStopTimeFreeman

# Antag Planet

- type: entity
  parent: BaseSubdermalImplant
  id: AntagImplantChangeling
  name: changeling implant
  description: This implant allows the user to shift their bodies like a changeling
  categories: [ HideSpawnMenu ]
  components:
  - type: ComponentsImplant
    added:
    - type: Changeling
    - type: ChangelingIdentity
    - type: Store
    # this shit is broken still CBF to fix it but you need to make it find or add a ling rule, then MakeChangeling it
    removed:
    - type: Hunger
    - type: Thirst

- type: entity
  parent: BaseSubdermalImplant
  id: AntagImplantHeretic
  name: heretic implant
  description: This implant allows the user to connect to the powers of the mansus.
  categories: [ HideSpawnMenu ]
  components:
  - type: ComponentsImplant
    added:
    - type: Heretic
    - type: Store
      currencyWhitelist:
      - KnowledgePoint
      balance:
        KnowledgePoint: 2

- type: entity
  parent: BaseSubdermalImplant
  id: AntagImplantSpaceNinja
  name: ninja implant
  description: This implant allows the user to gain the skills of a space ninja.
  categories: [ HideSpawnMenu ]
  components:
  - type: ComponentsImplant
    added:
    - type: SpaceNinja

- type: entity
  parent: BaseSubdermalImplant
  id: XenoCompatibilityImplant
  name: xeno compatibility implant
  description: Allows a subject to have xeno organs transplanted.
  categories: [ HideSpawnMenu ]
  components:
  - type: SubdermalImplant
    permanent: true
    whitelist:
      requireAll: true
      components: # should cover all the bases (no IPCs)
      - Body
      - Bloodstream
      - Dna
  - type: ComponentsImplant
    added:
    - type: XenoCompatible

- type: entity
  parent: BaseSubdermalImplant
  id: RedspaceLifelineImplant
  name: redspace lifeline implant
  description: Teleports the hosts body to Syndicate High Command on activation. They will not be able to return.
  categories: [ HideSpawnMenu ]
  components:
    - type: SubdermalImplant
      permanent: true
      implantAction: ActionActivateRedspaceLifeline
    - type: MansusGraspBlockTrigger
    - type: TriggerOnMobstateChange
      mobState:
        - Dead
    - type: TriggerImplantAction
    - type: DeleteParentOnTrigger
    - type: SpawnOnTrigger
      proto: RedspaceLifelineSpawnCore
    - type: Tag
      tags:
        - SubdermalImplant
        - HideContextMenu
