# SPDX-FileCopyrightText: 2024 ScyronX <166930367+ScyronX@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 VMSolidus <evilexecutive@gmail.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later

- type: species
  id: IPC
  name: species-name-ipc
  roundStart: true
  prototype: MobIPC
  sprites: MobIPCSprites
  markingLimits: MobIPCMarkingLimits
  dollPrototype: MobIPCDummy
  skinColoration: Hues
  minAge: 1
  maxAge: 240
  oldAge: 50
  youngAge: 50
  maleFirstNames: IpcFirst
  femaleFirstNames: IpcFirst
  lastNames: IpcLast
  naming: FirstDashLast
  sexes:
  - Unsexed

# The lack of a layer means that
# this person cannot have round-start anything
# applied to that layer. It has to instead
# be defined as a 'custom base layer'
# in either the mob's starting marking prototype,
# or it has to be added in C#.
- type: speciesBaseSprites
  id: MobIPCSprites
  sprites:
    Head: MobIPCHead
    Face: MobHumanoidAnyMarking
    HeadTop: MobHumanoidAnyMarking
    HeadSide: MobHumanoidAnyMarking
    Tail: MobHumanoidAnyMarking
    Hair: MobHumanoidMarkingMatchSkin
    Chest: MobIPCChest
    Groin: MobIPCGroin
    LArm: MobIPCLArm
    RArm: MobIPCRArm
    LHand: MobIPCLHand
    RHand: MobIPCRHand
    LLeg: MobIPCLLeg
    RLeg: MobIPCRLeg
    LFoot: MobIPCLFoot
    RFoot: MobIPCRFoot
    Wings: MobHumanoidAnyMarking

- type: markingPoints
  id: MobIPCMarkingLimits
  points:
    Head:
      points: 1
      required: true
      defaultMarkings: [ MobIPCHeadDefault ]
    Hair:
      points: 1
      required: false
    Face:
      points: 1
      required: false
    Chest:
      points: 1
      required: true
      defaultMarkings: [ MobIPCChestDefault ]
    HeadSide:
      points: 1
      required: false
    Groin:
      points: 1
      required: true
      defaultMarkings: [ MobIPCGroinDefault ]
    RightLeg:
      points: 1
      required: false
      defaultMarkings: [ MobIPCRLegDefault ]
    RightFoot:
      points: 1
      required: false
      defaultMarkings: [ MobIPCRFootDefault ]
    LeftLeg:
      points: 1
      required: false
      defaultMarkings: [ MobIPCLLegDefault ]
    LeftFoot:
      points: 1
      required: false
      defaultMarkings: [ MobIPCLFootDefault ]
    RightArm:
      points: 1
      required: false
      defaultMarkings: [ MobIPCRArmDefault ]
    RightHand:
      points: 1
      required: false
      defaultMarkings: [ MobIPCRHandDefault ]
    LeftArm:
      points: 1
      required: false
      defaultMarkings: [ MobIPCLArmDefault ]
    LeftHand:
      points: 1
      required: false
      defaultMarkings: [ MobIPCLHandDefault ]

- type: humanoidBaseSprite
  id: MobIPCMarkingFollowSkin
  markingsMatchSkin: true
  layerAlpha: 0.5

- type: humanoidBaseSprite
  id: MobIPCScreen

# Head

- type: humanoidBaseSprite
  id: MobIPCHead

- type: humanoidBaseSprite
  id: MobIPCHeadMale

- type: humanoidBaseSprite
  id: MobIPCHeadFemale

- type: marking
  id: MobIPCHeadDefault
  bodyPart: Head
  markingCategory: Head
  speciesRestriction: [ IPC ]
  sprites:
  - sprite: _EinsteinEngines/Mobs/Species/IPC/parts.rsi
    state: head_m

# Torso

- type: humanoidBaseSprite
  id: MobIPCChest

- type: humanoidBaseSprite
  id: MobIPCChestMale

- type: humanoidBaseSprite
  id: MobIPCChestFemale

- type: marking
  id: MobIPCChestDefault
  bodyPart: Chest
  markingCategory: Chest
  speciesRestriction: [ IPC ]
  sprites:
  - sprite: _EinsteinEngines/Mobs/Species/IPC/parts.rsi
    state: chest_m

- type: marking
  id: MobIPCChestFemaleDefault
  bodyPart: Chest
  markingCategory: Chest
  speciesRestriction: [ IPC ]
  sprites:
  - sprite: _EinsteinEngines/Mobs/Species/IPC/parts.rsi
    state: chest_f

# Groin

- type: humanoidBaseSprite
  id: MobIPCGroin

- type: humanoidBaseSprite
  id: MobIPCGroinMale

- type: humanoidBaseSprite
  id: MobIPCGroinFemale

- type: marking
  id: MobIPCGroinDefault
  bodyPart: Groin
  markingCategory: Groin
  speciesRestriction: [IPC]
  sprites:
  - sprite: _EinsteinEngines/Mobs/Species/IPC/parts.rsi
    state: groin_m

- type: marking
  id: MobIPCGroinFemaleDefault
  bodyPart: Groin
  markingCategory: Groin
  speciesRestriction: [IPC]
  sprites:
  - sprite: _EinsteinEngines/Mobs/Species/IPC/parts.rsi
    state: groin_f

# Left Leg

- type: humanoidBaseSprite
  id: MobIPCLLeg

- type: marking
  id: MobIPCLLegDefault
  bodyPart: LLeg
  markingCategory: LeftLeg
  speciesRestriction: [ IPC ]
  sprites:
  - sprite: _EinsteinEngines/Mobs/Species/IPC/parts.rsi
    state: l_leg

# Left Arm

- type: humanoidBaseSprite
  id: MobIPCLArm

- type: marking
  id: MobIPCLArmDefault
  bodyPart: LArm
  markingCategory: LeftArm
  speciesRestriction: [ IPC ]
  sprites:
  - sprite: _EinsteinEngines/Mobs/Species/IPC/parts.rsi
    state: l_arm

#LHand

- type: humanoidBaseSprite
  id: MobIPCLHand

- type: marking
  id: MobIPCLHandDefault
  bodyPart: LHand
  markingCategory: LeftHand
  speciesRestriction: [ IPC ]
  sprites:
  - sprite: _EinsteinEngines/Mobs/Species/IPC/parts.rsi
    state: l_hand

#LFoot

- type: humanoidBaseSprite
  id: MobIPCLFoot

- type: marking
  id: MobIPCLFootDefault
  bodyPart: LFoot
  markingCategory: LeftFoot
  speciesRestriction: [ IPC ]
  sprites:
  - sprite: _EinsteinEngines/Mobs/Species/IPC/parts.rsi
    state: l_foot

#RLeg

- type: humanoidBaseSprite
  id: MobIPCRLeg

- type: marking
  id: MobIPCRLegDefault
  bodyPart: RLeg
  markingCategory: RightLeg
  speciesRestriction: [ IPC ]
  sprites:
  - sprite: _EinsteinEngines/Mobs/Species/IPC/parts.rsi
    state: r_leg

#RArm

- type: humanoidBaseSprite
  id: MobIPCRArm

- type: marking
  id: MobIPCRArmDefault
  bodyPart: RArm
  markingCategory: RightArm
  speciesRestriction: [ IPC ]
  sprites:
  - sprite: _EinsteinEngines/Mobs/Species/IPC/parts.rsi
    state: r_arm

#RHand

- type: humanoidBaseSprite
  id: MobIPCRHand

- type: marking
  id: MobIPCRHandDefault
  bodyPart: RHand
  markingCategory: RightHand
  speciesRestriction: [ IPC ]
  sprites:
  - sprite: _EinsteinEngines/Mobs/Species/IPC/parts.rsi
    state: r_hand

#RFoot

- type: humanoidBaseSprite
  id: MobIPCRFoot

- type: marking
  id: MobIPCRFootDefault
  bodyPart: RFoot
  markingCategory: RightFoot
  speciesRestriction: [ IPC ]
  sprites:
  - sprite: _EinsteinEngines/Mobs/Species/IPC/parts.rsi
    state: r_foot

- type: Tag
  id: IPCMaskWearable
