- type: entity
  id: CombatMech
  abstract: true
  categories: [ HideSpawnMenu ]
  components:
  - type: Magboots
  - type: Mech
    equipmentWhitelist:
      tags:
      - CombatMech
      - PaddyMech
  - type: Speech
    speechSounds: Borg
  - type: TTS
    voice: Crysis2AICostume
  - type: Prying
    pryPowered: true

- type: entity
  id: IndustrialMech
  abstract: true
  categories: [ HideSpawnMenu ]
  components:
  - type: Mech
    equipmentWhitelist:
      tags:
      - IndustrialMech
  - type: Speech
    speechSounds: Borg
  - type: TTS
    voice: Glados

- type: entity
  id: SpecialMech
  abstract: true
  categories: [ HideSpawnMenu ]
  components:
  - type: Mech
    equipmentWhitelist:
      tags:
      - SpecialMech
  - type: Speech
    speechSounds: Borg
  - type: TTS
    voice: Sentrybot

- type: entity
  id: SmallMech
  abstract: true
  categories: [ HideSpawnMenu ]
  components:
  - type: Mech
    equipmentWhitelist:
      tags:
      - SmallMech
  - type: Speech
    speechSounds: Pai
  - type: TTS
    voice: NecoArcTwo

- type: entity
  id: BaseMech
  save: false
  abstract: true
  components:
  - type: MobMover
  - type: Mech
  - type: MechAir
  - type: AirFilter
    # everything except oxygen and nitrogen
    gases:
    - CarbonDioxide
    - Plasma
    - Tritium
    - WaterVapor
    - Ammonia
    - NitrousOxide
    - Frezon
    #- Helium3 TODO: fusion
    # remove everything except oxygen to maintain oxygen ratio
    overflowGases:
    - Nitrogen
    - CarbonDioxide
    - Plasma
    - Tritium
    - WaterVapor
    - Ammonia
    - NitrousOxide
    - Frezon
    #- Helium3 TODO: fusion
  - type: AirIntake
  # for intake and filter to work
  - type: AtmosDevice
    requireAnchored: false
    joinSystem: true
  - type: DoAfter
  - type: MechVulnerableToEMP # Sunrise-edit
  - type: Repairable
    doAfterDelay: 1
    damage:
      types:
        Blunt: -15
        Slash: -15
        Piercing: -15
        Caustic: -15
        Structural: -15
        Mangleness: 5 # Sunrise-Edit
  - type: UserInterface
    interfaces:
      enum.MechUiKey.Key:
        type: MechBoundUserInterface
  - type: MeleeWeapon
    hidden: true
    attackRate: 0.75
    damage:
      types:
        Blunt: 25 #thwack
        Structural: 20
    soundHit:
      collection: MetalThud
  - type: Puller
    needsHands: false
  - type: InputMover
  - type: InteractionOutline
  - type: MovementSpeedModifier
    baseWalkSpeed: 1
    baseSprintSpeed: 3.9 # sunrise-edit
  - type: Tag
    tags:
    - DoorBumpOpener
    - FootstepSound
  - type: Pullable
  - type: Physics
    bodyType: KinematicController
    angularDamping: 10 # sunrise-edit
    linearDamping: 10 # sunrise-edit
  - type: GravityAffected
  - type: Clickable
  - type: WiresPanel
  - type: Fixtures
    fixtures:
      fix1:
        shape:
          !type:PhysShapeCircle
          radius: 0.45
        density: 10000 # sunrise-edit
        mask:
        - MobMask
        layer:
        - MobLayer
  - type: MobState
    allowedStates:
    - Alive
    - Critical
  - type: MobThresholds
    currentThresholdState : Alive
    thresholds:
      0: Alive
      500: Critical
    showOverlays: false
    allowRevives: true
  - type: HealthExaminable
    examinableTypes:
      - Blunt
      - Slash
      - Piercing
      - Heat
      - Shock
    locPrefix: mech
  - type: Appearance
  - type: ContainerContainer
    containers:
      mech-pilot-slot: !type:ContainerSlot
      mech-equipment-container: !type:Container
      mech-battery-slot: !type:ContainerSlot
  - type: Damageable
    damageContainer: Mech
    damageModifierSet: LightArmor
  - type: FootstepModifier
    footstepSoundCollection:
      path: /Audio/Mecha/mechmove03.ogg
  - type: GuideHelp
    guides:
    - Robotics
  - type: Destructible
    thresholds:
    - trigger:
        !type:DamageTrigger
        damage: 1200
      behaviors:
      - !type:PlaySoundBehavior
        sound:
          collection: MetalBreak
      - !type:ChangeConstructionNodeBehavior
        node: start
      - !type:DoActsBehavior
        acts: ["Destruction"]
  - type: Prying
    speedModifier: 6
  - type: StatusIcon
    bounds: "-0.6,-0.6, 0.6, 0.6"
  - type: PointLight
    enabled: false
    mask: /Textures/Effects/LightMasks/cone.png
    autoRot: true
    energy: 3 # Sunrise-edit
    radius: 18 # Sunrise-edit
    netsync: false
  - type: AccessReader
  - type: DamageOverlay # Sunrise-Edit
  - type: ExplosionResistance # Sunrise-Edit
    damageCoefficient: 0.8 # Sunrise-Edit
  - type: ProtectedFromStepTriggers # Sunrise-added
  - type: ComplexInteraction # Sunrise-added

# Ripley MK-I
- type: entity
  id: MechRipley
  parent: [ BaseMech, IndustrialMech, BaseCargoContraband ]
  name: Ripley APLU
  description: Versatile and lightly armored, the Ripley is useful for almost any heavy work scenario. The "APLU" stands for Autonomous Power Loading Unit.
  components:
  - type: Sprite
    drawdepth: Mobs
    noRot: true
    sprite: Objects/Specific/Mech/ripley.rsi
    scale: 1.08, 1.08
    layers:
    - map: [ "enum.MechVisualLayers.Base" ]
      state: ripley
  - type: FootstepModifier
    footstepSoundCollection:
      path: /Audio/Mecha/sound_mecha_powerloader_step.ogg
  - type: Mech
    baseState: ripley
    openState: ripley-open
    brokenState: ripley-broken
    mechToPilotDamageMultiplier: 0.75
    pilotWhitelist:
      components:
        - HumanoidAppearance
  - type: MeleeWeapon
    hidden: true
    attackRate: 1
    damage:
      types:
        Blunt: 14 #intentionally shit so people realize that going into combat with the ripley is usually a bad idea.
  - type: MovementSpeedModifier
    baseWalkSpeed: 2.25
    baseSprintSpeed: 3.75
  - type: Reflect
    reflectProb: 0.05
    spread: 180
    soundOnReflect: /Audio/_Starlight/Armor/Ricochet/ricochet1_1.ogg
    reflects:
    - NonEnergy
  - type: Tag
    tags:
    - DoorBumpOpener
    - FootstepSound
    - Ripley

- type: entity
  id: MechRipleyBattery
  parent: MechRipley
  suffix: Battery
  components:
  - type: ContainerFill
    containers:
      mech-battery-slot:
      - PowerCageMedium

# Ripley Mk-I Hauler
- type: entity
  id: MechHauler
  parent: MechRipley
  suffix: Filled
  name: APLU "Hauler"
  description: A cargo tech"s best friend — ready to haul crates, ignore traffic rules on-station, and assert dominance over pedestrians. Still the standard APLU model — Autonomous Power Loading Unit — but now with 30% more dents, lost manifests, and spilled kvass.
  components:
  - type: Sprite
    layers:
    - map: [ "enum.MechVisualLayers.Base" ]
      state: hauler
  - type: Mech
    baseState: hauler
    openState: hauler-open
    brokenState: hauler-broken
    startingEquipment:
      - MechEquipmentGrabberSmall
      - MechEquipmentGrabberSmall
  - type: ContainerFill
    containers:
      mech-battery-slot:
      - PowerCageMedium

# Ripley MK-II
- type: entity
  id: MechRipley2
  parent: [ BaseMech, IndustrialMech, BaseCargoContraband ]
  name: Ripley APLU MK-II
  description: The "MK-II" has a pressurized cabin for space operations, but the added weight has slowed it down.
  components:
  - type: Sprite
    drawdepth: Mobs
    noRot: true
    sprite: Objects/Specific/Mech/ripley.rsi
    scale: 1.08, 1.08
    layers:
    - map: [ "enum.MechVisualLayers.Base" ]
      state: ripleymkii
  - type: FootstepModifier
    footstepSoundCollection:
      path: /Audio/Mecha/sound_mecha_powerloader_step.ogg
  - type: Mech
    baseState: ripleymkii
    openState: ripleymkii-open
    brokenState: ripleymkii-broken
    mechToPilotDamageMultiplier: 0.40
    airtight: true
    pilotWhitelist:
      components:
        - HumanoidAppearance
  - type: MeleeWeapon
    hidden: true
    attackRate: 1
    damage:
      types:
        Blunt: 20
    bluntStaminaDamageFactor: 1
  - type: MovementSpeedModifier
    baseWalkSpeed: 1
    baseSprintSpeed: 2.25
  - type: Damageable
    damageModifierSet: MediumArmorNT
  - type: Reflect
    reflectProb: 0.10
    spread: 180
    soundOnReflect: /Audio/_Starlight/Armor/Ricochet/ricochet1_1.ogg
    reflects:
    - NonEnergy
  - type: Tag
    tags:
    - DoorBumpOpener
    - FootstepSound
    - Ripley

- type: entity
  id: MechRipley2Battery
  parent: MechRipley2
  suffix: Battery
  components:
  - type: ContainerFill
    containers:
      mech-battery-slot:
      - PowerCageMedium

# Ripley MK-II "Death"
- type: entity
  id: MechRipley2Death
  parent: [ MechRipley2, IndustrialMech, CombatMech, BaseMajorContraband ]
  name: Ripley APLU MK-II
  description: The "MK-II" has a pressurized cabin for space opera....wait!! why is it red? Oh no, it's a Death Ripley!
  components:
  - type: Sprite
    drawdepth: Mobs
    noRot: true
    sprite: Objects/Specific/Mech/ripley.rsi
    scale: 1.08, 1.08
    layers:
    - map: [ "enum.MechVisualLayers.Base" ]
      state: death
  - type: FootstepModifier
    footstepSoundCollection:
      path: /Audio/Mecha/sound_mecha_powerloader_step.ogg
  - type: Mech
    baseState: death
    openState: death-open
    brokenState: death-broken
    mechToPilotDamageMultiplier: 0.1
    airtight: true
    pilotWhitelist:
      components:
        - HumanoidAppearance
  - type: MeleeThrowOnHit
    distance: 1
    speed: 8
  - type: MeleeWeapon
    hidden: true
    attackRate: 1
    damage:
      types:
        Blunt: 25
        Structural: 25
    bluntStaminaDamageFactor: 1.5
  - type: MovementSpeedModifier
    baseWalkSpeed: 3.5
    baseSprintSpeed: 4
  - type: Damageable
    damageModifierSet: HeavyArmorSyndi
  - type: Reflect
    reflectProb: 0.1
    spread: 180
    soundOnReflect: /Audio/_Starlight/Armor/Ricochet/ricochet1_1.ogg
    reflects:
    - NonEnergy
  - type: Tag
    tags:
    - DoorBumpOpener
    - FootstepSound
    - Ripley
  - type: MobThresholds
    currentThresholdState : Alive
    thresholds:
      0: Alive
      500: Critical
    showOverlays: false
    allowRevives: true
  - type: AccessReader
    access: [["SyndicateAgent"]]

- type: entity
  id: MechRipley2DeathBattery
  parent: MechRipley2Death
  suffix: Battery
  components:
  - type: ContainerFill
    containers:
      mech-battery-slot:
      - PowerCageSyndicate

# Paddy
- type: entity
  id: MechPaddy
  parent: [ BaseMech, CombatMech, IndustrialMech, BaseSecurityContraband ]
  name: Paddy
  description: Autonomous Power Loader Unit Subtype Paddy. A Modified MK-II Ripley design intended for light security use.
  components:
  - type: Sprite
    drawdepth: Mobs
    noRot: true
    sprite: Objects/Specific/Mech/ripley.rsi
    scale: 1.08, 1.08
    layers:
    - map: [ "enum.MechVisualLayers.Base" ]
      state: paddy
    # - state: base-sirens  # Todo: port siren system from starlight
    #   map: [ "enum.MechVisualLayers.Siren" ]
    #   shader: unshaded
  - type: FootstepModifier
    footstepSoundCollection:
      path: /Audio/Mecha/sound_mecha_powerloader_step.ogg
  - type: Mech
    equipmentWhitelist:
      tags:
      - PaddyMech
      - IndustrialMech
    baseState: paddy
    openState: paddy-open
    brokenState: paddy-broken
    mechToPilotDamageMultiplier: 0.60
    airtight: true
    maxEquipmentAmount: 4
    #siren: true # Todo: port siren system from starlight
    pilotWhitelist:
      components:
        - HumanoidAppearance
  - type: Reflect
    reflectProb: 0.10
    spread: 180
    soundOnReflect: /Audio/_Starlight/Armor/Ricochet/ricochet1_1.ogg
    reflects:
    - NonEnergy
  - type: MeleeThrowOnHit
    distance: 1
    speed: 8
  - type: MeleeWeapon
    hidden: true
    attackRate: 1
    damage:
      types:
        Blunt: 30 #intentionally shit so people realize that going into combat with the ripley is usually a bad idea.
        Structural: 10
    bluntStaminaDamageFactor: 1.5
  - type: MovementSpeedModifier
    baseWalkSpeed: 2.5
    baseSprintSpeed: 4
  - type: PointLight
    mask: /Textures/Effects/LightMasks/cone.png
    autoRot: true
    radius: 5
    energy: 5
    enabled: false
  - type: AccessReader
    access: [["Security"]]

- type: entity
  id: MechPaddyBattery
  parent: MechPaddy
  suffix: Battery
  components:
  - type: ContainerFill
    containers:
      mech-battery-slot:
      - PowerCageMedium

- type: entity
  id: MechPaddyFilled
  parent: MechPaddyBattery
  suffix: Battery, Filled
  components:
  - type: Mech
    startingEquipment:
      - WeaponMechCombatDisabler
      - WeaponMechCombatFlashbangLauncher
      - MechEquipmentGrabberSmall

# Clarke
- type: entity
  id: MechClarke
  parent: [ BaseMech, IndustrialMech, BaseCargoContraband ]
  name: Clarke
  description: A fast-moving mech for space travel. It has built-in trusts.
  components:
  - type: Sprite
    drawdepth: Mobs
    noRot: true
    sprite: Objects/Specific/Mech/clarke.rsi
    scale: 1.08, 1.08
    layers:
    - map: [ "enum.MechVisualLayers.Base" ]
      state: clarke
  - type: FootstepModifier
    footstepSoundCollection:
      path: /Audio/Mecha/sound_mecha_powerloader_step.ogg
  - type: Mech
    baseState: clarke
    openState: clarke-open
    brokenState: clarke-broken
    mechToPilotDamageMultiplier: 0.5
    airtight: true
    pilotWhitelist:
      components:
        - HumanoidAppearance
  - type: MeleeWeapon
    hidden: true
    attackRate: 1
    damage:
      types:
        Blunt: 26
  - type: MovementSpeedModifier
    baseWalkSpeed: 2.5
    baseSprintSpeed: 4.5
  - type: CanMoveInAir
  - type: MovementAlwaysTouching
  - type: Reflect
    reflectProb: 0.1
    spread: 180
    soundOnReflect: /Audio/_Starlight/Armor/Ricochet/ricochet1_1.ogg
    reflects:
    - NonEnergy
  - type: PointLight
    enabled: false
    mask: /Textures/Effects/LightMasks/cone.png
    autoRot: true
    radius: 8
    netsync: false
  - type: Tag
    tags:
    - DoorBumpOpener
    - FootstepSound
    - Clarke

- type: entity
  id: MechClarkeBattery
  parent: MechClarke
  suffix: Battery
  components:
  - type: ContainerFill
    containers:
      mech-battery-slot:
      - PowerCageMedium

# Pirate Mech Yarrk
- type: entity
  id: MechBigYarrke
  parent: [ BaseMech, IndustrialMech, CombatMech, BaseMajorContraband ]
  name: Big Yarrke
  description: A heavy ancient mech for cold harsh realities of deep space. It has built-in trusts and Mining Industrial Drill.
  components:
  - type: Sprite
    drawdepth: Mobs
    noRot: true
    sprite: Objects/Specific/Mech/clarke.rsi
    scale: 1.08, 1.08
    layers:
    - map: [ "enum.MechVisualLayers.Base" ]
      state: bigbrother
  - type: FootstepModifier
    footstepSoundCollection:
      collection: FootstepCyborgLegs
      params:
        volume: 5
  - type: Mech
    baseState: bigbrother
    openState: bigbrother-open
    brokenState: bigbrother-broken
    mechToPilotDamageMultiplier: 0.25
    airtight: true
    pilotWhitelist:
      components:
        - HumanoidAppearance
    equipmentWhitelist:
      tags:
      - IndustrialMech
      - CombatMech
  - type: Damageable
    damageModifierSet: MediumArmorSyndi
  - type: MeleeWeapon
    hidden: true
    autoAttack: true
    attackRate: 3.5
    damage:
      types:
        Structural: 60
        Piercing: 4
        Slash: 5
        Blunt: 10
    bluntStaminaDamageFactor: 0.5
    soundHit:
      path: "/Audio/Items/drill_use.ogg"
  - type: MovementSpeedModifier
    baseWalkSpeed: 2
    baseSprintSpeed: 3
  - type: CanMoveInAir
  - type: MovementAlwaysTouching
  - type: Reflect
    reflectProb: 0.1
    spread: 180
    soundOnReflect: /Audio/_Starlight/Armor/Ricochet/ricochet1_1.ogg
    reflects:
    - NonEnergy
  - type: PointLight
    enabled: false
    mask: /Textures/Effects/LightMasks/soft_cone.png
    autoRot: true
    color: "#FFFF00"
    radius: 6
    netsync: false
  - type: Tag
    tags:
    - DoorBumpOpener
    - FootstepSound
    - Clarke
    - Pickaxe
  - type: AccessReader
    access: [["NuclearOperative"]]

- type: entity
  id: MechBigYarrkeBattery
  parent: MechBigYarrke
  suffix: Battery
  components:
  - type: ContainerFill
    containers:
      mech-battery-slot:
      - PowerCageHigh

# H.O.N.K.
- type: entity
  parent: [ BaseMech, SpecialMech, BaseCivilianContraband ]
  id: MechHonker
  name: H.O.N.K.
  description: "Produced by \"Tyranny of Honk, INC\", this exosuit is designed as heavy clown-support. Used to spread the fun and joy of life. HONK!"
  components:
  - type: Sprite
    drawdepth: Mobs
    noRot: true
    sprite: Objects/Specific/Mech/mecha.rsi
    scale: 1.08, 1.08
    layers:
    - map: [ "enum.MechVisualLayers.Base" ]
      state: honker
  - type: FootstepModifier
    footstepSoundCollection:
      collection: FootstepClown
      params:
        variation: 0.17
  - type: Mech
    baseState: honker
    openState: honker-open
    brokenState: honker-broken
    mechToPilotDamageMultiplier: 0.5
    airtight: true # Space Honks is real.
    pilotWhitelist:
      components:
      - HumanoidAppearance
  - type: Reflect
    reflectProb: 0.35
    spread: 180
    soundOnReflect: /Audio/_Starlight/Armor/Ricochet/ricochet1_1.ogg
    reflects:
    - NonEnergy

- type: entity
  parent: MechHonker
  id: MechHonkerBattery
  suffix: Battery
  components:
  - type: ContainerFill
    containers:
      mech-battery-slot:
      - PowerCageMedium

- type: entity
  parent: MechHonkerBattery
  id: MechHonkerFilled
  suffix: Battery, Filled
  components:
  - type: Mech
    startingEquipment:
      - WeaponMechSpecialBananaMortar
      - WeaponMechSpecialMousetrapMortar
      - MechEquipmentHorn

# HAMTR
- type: entity
  parent: [ BaseMech, SmallMech ]
  id: MechHamtr
  name: HAMTR
  description: "An experimental mech which uses a brain–computer interface to connect directly to a hamsters brain."
  components:
  - type: Sprite
    drawdepth: Mobs
    noRot: true
    sprite: Objects/Specific/Mech/mecha.rsi
    scale: 1.08, 1.08
    layers:
    - map: [ "enum.MechVisualLayers.Base" ]
      state: hamtr
  - type: FootstepModifier
    footstepSoundCollection:
      path: /Audio/Mecha/sound_mecha_powerloader_step.ogg
  - type: Mech
    baseState: hamtr
    openState: hamtr-open
    brokenState: hamtr-broken
    mechToPilotDamageMultiplier: 0.2
    maxEquipmentAmount: 2
    airtight: true
    pilotWhitelist:
      tags:
      - Hamster
  - type: MeleeWeapon
    hidden: true
    attackRate: 0.8
    damage:
      types:
        Blunt: 10 #thwack
        Structural: 2
  - type: MovementSpeedModifier
    baseWalkSpeed: 2.4
    baseSprintSpeed: 3.7
  - type: Reflect
    reflectProb: 0.05
    spread: 180
    soundOnReflect: /Audio/_Starlight/Armor/Ricochet/ricochet1_1.ogg
    reflects:
    - NonEnergy

- type: entity
  parent: MechHamtr
  id: MechHamtrBattery
  suffix: Battery
  components:
  - type: ContainerFill
    containers:
      mech-battery-slot:
      - PowerCageSmall

# Vim!!!!!!!

- type: entity
  parent: BaseMech
  id: MechVim
  name: Vim
  description: A miniature exosuit from Nanotrasen, developed to let the irreplaceable station pets live a little longer.
  components:
  - type: Sprite
    drawdepth: Mobs
    noRot: true
    sprite: Objects/Specific/Mech/mecha.rsi
    scale: 1.08, 1.08
    layers:
    - map: [ "enum.MechVisualLayers.Base" ]
      state: vim
  - type: Fixtures
    fixtures:
      fix1:
        shape:
          !type:PhysShapeCircle
          radius: 0.15
        density: 80
        mask:
        - MobMask
        layer:
        - MobLayer
  - type: FootstepModifier
    footstepSoundCollection:
      path: /Audio/Mecha/mechmove03.ogg
      params:
        volume: -10
  - type: Mech
    baseState: vim
    openState: vim-open
    brokenState: vim-broken
    maxEquipmentAmount: 0
    # keep mouse safe
    mechToPilotDamageMultiplier: 0.1
    airtight: true
    pilotWhitelist:
      tags:
      - VimPilot
  - type: MeleeWeapon
    hidden: true
    attackRate: 0.8
    damage:
      types:
        Blunt: 10 #thwack
        Structural: 2
  - type: MovementSpeedModifier
    baseWalkSpeed: 2.25
    baseSprintSpeed: 3.6
  - type: Access
    tags:
    - Maintenance
  - type: Reflect
    reflectProb: 0.05
    spread: 180
    soundOnReflect: /Audio/_Starlight/Armor/Ricochet/ricochet1_1.ogg
    reflects:
    - NonEnergy
  - type: MobThresholds
    currentThresholdState : Alive
    thresholds:
      0: Alive
      400: Critical
    showOverlays: false
    allowRevives: true
  # Sunrise-Start
  - type: Speech
    speechSounds: Pai
  - type: TTS
    voice: NecoArcTwo
  # Sunrise-End
  # TOOD: buzz / chime actions
  # TODO: builtin flashlight

- type: entity
  parent: MechVim
  id: MechVimBattery
  suffix: Battery
  components:
  - type: ContainerFill
    containers:
      mech-battery-slot:
      - PowerCageSmall

# Combat-Station Mechs

# Gygax
- type: entity
  id: MechGygax
  parent: [ BaseMech, CombatMech, BaseRestrictedContraband ]
  name: Gygax
  description: While lightly armored, the Gygax has incredible mobility thanks to its ability that lets it smash through walls at high speeds.
  components:
  - type: Sprite
    drawdepth: Mobs
    noRot: true
    sprite: Objects/Specific/Mech/gygax.rsi
    scale: 1.08, 1.08
    layers:
    - map: [ "enum.MechVisualLayers.Base" ]
      state: gygax
  - type: FootstepModifier
    footstepSoundCollection:
      path: /Audio/Mecha/sound_mecha_powerloader_step.ogg
  - type: Mech
    baseState: base
    openState: base-open
    brokenState: base-broken
    mechToPilotDamageMultiplier: 0.3
    airtight: true
    pilotWhitelist:
      components:
        - HumanoidAppearance
  - type: MeleeThrowOnHit
    distance: 1
    speed: 8
  - type: MeleeWeapon
    hidden: true
    attackRate: 1
    damage:
      types:
        Blunt: 25
        Structural: 180
    bluntStaminaDamageFactor: 1.5
  - type: MovementSpeedModifier
    baseWalkSpeed: 2
    baseSprintSpeed: 3.5
  - type: Reflect
    reflectProb: 0.15
    spread: 180
    soundOnReflect: /Audio/_Starlight/Armor/Ricochet/ricochet1_1.ogg
    reflects:
    - NonEnergy
  - type: Tag
    tags:
    - DoorBumpOpener
    - FootstepSound
    - Gygax

- type: entity
  id: MechGygaxBattery
  parent: MechGygax
  suffix: Battery
  components:
  - type: ContainerFill
    containers:
      mech-battery-slot:
      - PowerCageHigh

# Durand
- type: entity
  id: MechDurand
  parent: [ BaseMech, CombatMech, BaseRestrictedContraband ]
  name: Durand
  description: A slow but beefy combat exosuit that is extra scary in confined spaces due to its punches. Xenos hate it!
  components:
  - type: Sprite
    drawdepth: Mobs
    noRot: true
    sprite: Objects/Specific/Mech/durand.rsi
    scale: 1.08, 1.08
    layers:
    - map: [ "enum.MechVisualLayers.Base" ]
      state: base
  - type: FootstepModifier
    footstepSoundCollection:
      path: /Audio/Mecha/sound_mecha_powerloader_step.ogg
  - type: Mech
    baseState: base
    openState: base-open
    brokenState: base-broken
    mechToPilotDamageMultiplier: 0.25
    airtight: true
    pilotWhitelist:
      components:
        - HumanoidAppearance
  - type: MeleeThrowOnHit
    distance: 1
    speed: 8
  - type: MeleeWeapon
    hidden: true
    attackRate: 1
    damage:
      types:
        Blunt: 40
        Structural: 220
    bluntStaminaDamageFactor: 1.5
  - type: MovementSpeedModifier
    baseWalkSpeed: 1.5
    baseSprintSpeed: 2
  - type: Damageable
    damageModifierSet: MediumArmorNT
  - type: CanMoveInAir
  - type: MovementAlwaysTouching
  - type: Reflect
    reflectProb: 0.20
    spread: 180
    soundOnReflect: /Audio/_Starlight/Armor/Ricochet/ricochet1_1.ogg
    reflects:
    - NonEnergy
  - type: Tag
    tags:
    - DoorBumpOpener
    - FootstepSound
    - Durand

- type: entity
  id: MechDurandBattery
  parent: MechDurand
  suffix: Battery
  components:
  - type: ContainerFill
    containers:
      mech-battery-slot:
      - PowerCageHigh

# Phazon

- type: entity
  id: MechPhazon
  parent: [ BaseMech, CombatMech, BaseRestrictedContraband ]
  name: Phazon
  description: The most advanced mech on the market, the pinnacle of technological development, extremely mobile and deadly.
  components:
  - type: Sprite
    drawdepth: Mobs
    noRot: true
    sprite: Objects/Specific/Mech/mecha.rsi
    scale: 1.08, 1.08
    layers:
    - map: [ "enum.MechVisualLayers.Base" ]
      state: phazon
  - type: FootstepModifier
    footstepSoundCollection:
      path: /Audio/Mecha/sound_mecha_powerloader_step.ogg
  - type: Mech
    baseState: phazon
    openState: phazon-open
    brokenState: phazon-broken
    mechToPilotDamageMultiplier: 0.25
    maxEquipmentAmount: 5
    airtight: true
    pilotWhitelist:
      components:
        - HumanoidAppearance
  - type: MeleeWeapon
    hidden: true
    attackRate: 1
    damage:
      types:
        Blunt: 20
        Structural: 80
  - type: MovementSpeedModifier
    baseWalkSpeed: 3.2
    baseSprintSpeed: 4
  - type: Damageable
    damageModifierSet: MediumArmorNT
  - type: Reflect
    reflectProb: 0.5
    spread: 180
    soundOnReflect: /Audio/_Starlight/Armor/Ricochet/ricochet1_1.ogg
    reflects:
    - NonEnergy
    - Energy
  - type: MobThresholds
    currentThresholdState : Alive
    thresholds:
      0: Alive
      450: Critical
    showOverlays: false
    allowRevives: true
  - type: Tag
    tags:
    - DoorBumpOpener
    - FootstepSound
    - Phazon

- type: entity
  id: MechPhazonBattery
  parent: MechPhazon
  suffix: Battery
  components:
  - type: ContainerFill
    containers:
      mech-battery-slot:
      - PowerCageHigh

# Nanotrasen Combat Mechs

# NT Gygax
- type: entity
  id: MechNTGygax
  parent: [ BaseMech, CombatMech, BaseRestrictedContraband ]
  name: Nanotrasen Special Gygax
  description: "Nanotrasen's trump card when solving problems. High durability, increased protection against shock, explosions, temperature, shots: conventional, laser and energy, as well as expanded equipment slots allow to turn the situation on the station upside down. Gas pedals consume a colossal amount of energy."
  components:
  - type: Sprite
    drawdepth: Mobs
    noRot: true
    sprite: Objects/Specific/Mech/gygax.rsi
    scale: 1.08, 1.08
    layers:
    - map: [ "enum.MechVisualLayers.Base" ]
      state: ntgygax
  - type: FootstepModifier
    footstepSoundCollection:
      path: /Audio/Mecha/sound_mecha_powerloader_step.ogg
  - type: Mech
    baseState: ntgygax
    openState: ntgygax-open
    brokenState: ntgygax-broken
    mechToPilotDamageMultiplier: 0.3
    airtight: true
    maxEquipmentAmount: 4
    pilotWhitelist:
      components:
        - HumanoidAppearance
    pilotBlacklist:
      species:
      - Felinid
  - type: MeleeThrowOnHit
    distance: 1
    speed: 8
  - type: MeleeWeapon
    hidden: true
    attackRate: 1
    damage:
      types:
        Blunt: 35
        Structural: 180
    bluntStaminaDamageFactor: 1.5
  - type: MovementSpeedModifier
    baseWalkSpeed: 2
    baseSprintSpeed: 3
  - type: Reflect
    reflectProb: 0.15
    spread: 180
    soundOnReflect: /Audio/_Starlight/Armor/Ricochet/ricochet1_1.ogg
    reflects:
    - NonEnergy
  - type: Damageable
    damageModifierSet: MediumArmorNT
  - type: CanMoveInAir
  - type: MovementAlwaysTouching
  - type: Tag
    tags:
    - DoorBumpOpener
    - FootstepSound
    - Gygax
  - type: AccessReader
    access: [["CentralCommand"]]

- type: entity
  id: MechNTGygaxBattery
  parent: MechNTGygax
  suffix: Battery
  components:
  - type: ContainerFill
    containers:
      mech-battery-slot:
      - PowerCageERT

- type: entity
  id: MechNTGygaxFilled
  parent: MechNTGygaxBattery
  suffix: Battery, Filled
  components:
  - type: Mech
    startingEquipment:
      - WeaponMechChainSword
      - WeaponMechCombatShotgun
      - WeaponMechCombatPulseRifle
      - WeaponMechCombatMissileRack8

# Marauder
- type: entity
  id: MechMarauder
  parent: [ BaseMech, CombatMech, BaseCentcommContraband ]
  name: Marauder
  description: Looks like we're all saved. # ERT mech
  components:
  - type: Sprite
    drawdepth: Mobs
    noRot: true
    sprite: Objects/Specific/Mech/mecha.rsi
    scale: 1.08, 1.08
    layers:
    - map: [ "enum.MechVisualLayers.Base" ]
      state: marauder
  - type: FootstepModifier
    footstepSoundCollection:
      path: /Audio/Mecha/sound_mecha_powerloader_step.ogg
  - type: Mech
    baseState: marauder
    openState: marauder-open
    brokenState: marauder-broken
    mechToPilotDamageMultiplier: 0.1
    airtight: true
    maxEquipmentAmount: 4
    pilotWhitelist:
      components:
        - HumanoidAppearance
    pilotBlacklist:
      species:
      - Felinid
  - type: MeleeThrowOnHit
    distance: 1
    speed: 8
  - type: MeleeWeapon
    hidden: true
    attackRate: 1
    damage:
      types:
        Blunt: 50
        Structural: 350
    bluntStaminaDamageFactor: 1.5
  - type: MovementSpeedModifier
    baseWalkSpeed: 1
    baseSprintSpeed: 1.5
  - type: Damageable
    damageModifierSet: HeavyArmorNT
  - type: CanMoveInAir
  - type: MovementAlwaysTouching
  - type: Reflect
    reflectProb: 0.20
    spread: 180
    soundOnReflect: /Audio/_Starlight/Armor/Ricochet/ricochet1_1.ogg
    reflects:
    - NonEnergy
  - type: MobThresholds
    currentThresholdState : Alive
    thresholds:
      0: Alive
      550: Critical
    showOverlays: false
    allowRevives: true
  - type: AccessReader
    access: [["CentralCommand"]]

- type: entity
  id: MechMarauderBattery
  parent: MechMarauder
  suffix: Battery
  components:
  - type: ContainerFill
    containers:
      mech-battery-slot:
      - PowerCageERT

- type: entity
  id: MechMarauderFilled
  parent: MechMarauderBattery
  suffix: Battery, Filled
  components:
  - type: Mech
    startingEquipment:
      - WeaponMechCombatMG
      - WeaponMechCombatPulseRifle
      - WeaponMechCombatHeavyRifle
      - WeaponMechCombatMissileRack8

# Seraph
- type: entity
  id: MechSeraph
  parent: [ BaseMech, CombatMech, BaseCentcommContraband ]
  name: Seraph
  description: That's the last thing you'll see.
  components:
  - type: Sprite
    drawdepth: Mobs
    noRot: true
    sprite: Objects/Specific/Mech/mecha.rsi
    scale: 1.08, 1.08
    layers:
    - map: [ "enum.MechVisualLayers.Base" ]
      state: seraph
  - type: FootstepModifier
    footstepSoundCollection:
      path: /Audio/Mecha/sound_mecha_powerloader_step.ogg
  - type: Mech
    baseState: seraph
    openState: seraph-open
    brokenState: seraph-broken
    mechToPilotDamageMultiplier: 0.05
    airtight: true
    maxEquipmentAmount: 5
    pilotWhitelist:
      components:
        - HumanoidAppearance
    pilotBlacklist:
      species:
      - Felinid
  - type: MeleeThrowOnHit
    distance: 1
    speed: 8
  - type: MeleeWeapon
    hidden: true
    attackRate: 1
    damage:
      types:
        Blunt: 60
        Structural: 400
    bluntStaminaDamageFactor: 1.5
  - type: MovementSpeedModifier
    baseWalkSpeed: 1
    baseSprintSpeed: 3.7
  - type: Damageable
    damageModifierSet: HeavyArmorNT
  - type: CanMoveInAir
  - type: MovementAlwaysTouching
  - type: Reflect
    reflectProb: 0.15
    spread: 180
    soundOnReflect: /Audio/_Starlight/Armor/Ricochet/ricochet1_1.ogg
    reflects:
    - NonEnergy
  - type: MobThresholds
    currentThresholdState : Alive
    thresholds:
      0: Alive
      600: Critical
    showOverlays: false
    allowRevives: true
  - type: AccessReader
    access: [["CentralCommand"]]

- type: entity
  id: MechSeraphBattery
  parent: MechSeraph
  suffix: Battery
  components:
  - type: ContainerFill
    containers:
      mech-battery-slot:
      - PowerCageERT

- type: entity
  id: MechSeraphFilled
  parent: MechSeraphBattery
  suffix: Battery, Filled
  components:
  - type: Mech
    startingEquipment:
      - WeaponMechChainSword
      - WeaponMechCombatPulseRifle
      - WeaponMechCombatVindictor
      - WeaponMechCombatMissileRack6
      - WeaponMechCombatDuster

# Syndicate Combat Mech

# Dark Gygax
- type: entity
  id: MechGygaxSyndie
  parent: [ BaseMech, CombatMech, BaseSyndicateContraband ]
  name: Dark Gygax
  description: A modified Gygax used for nefarious purposes. On the back of the armor plate there is an inscription "Cybersun Inc."
  components:
  - type: Sprite
    drawdepth: Mobs
    noRot: true
    sprite: Objects/Specific/Mech/mecha.rsi
    scale: 1.08, 1.08
    layers:
    - map: [ "enum.MechVisualLayers.Base" ]
      state: darkgygax
  - type: FootstepModifier
    footstepSoundCollection:
      path: /Audio/Mecha/sound_mecha_powerloader_step.ogg
  - type: Mech
    baseState: darkgygax
    openState: darkgygax-open
    brokenState: darkgygax-broken
    mechToPilotDamageMultiplier: 0.15
    airtight: true
    maxEquipmentAmount: 4
    pilotWhitelist:
      components:
        - HumanoidAppearance
    pilotBlacklist:
      species:
      - Felinid
  - type: MeleeThrowOnHit
    distance: 1
    speed: 8
  - type: MeleeWeapon
    hidden: true
    attackRate: 1
    damage:
      types:
        Blunt: 35
        Structural: 200
    bluntStaminaDamageFactor: 1.5
  - type: MovementSpeedModifier
    baseWalkSpeed: 2.5
    baseSprintSpeed: 3.7
  - type: Damageable
    damageModifierSet: MediumArmorSyndi
  - type: CanMoveInAir
  - type: MovementAlwaysTouching
  - type: Reflect
    reflectProb: 0.15
    spread: 180
    soundOnReflect: /Audio/_Starlight/Armor/Ricochet/ricochet1_1.ogg
    reflects:
    - NonEnergy
  - type: Tag
    tags:
    - DoorBumpOpener
    - FootstepSound
    - Gygax
  - type: AccessReader
    access: [["NuclearOperative"]]

- type: entity
  id: MechGygaxSyndieBattery
  parent: MechGygaxSyndie
  suffix: Battery
  components:
  - type: ContainerFill
    containers:
      mech-battery-slot:
      - PowerCageSyndicate

- type: entity
  id: MechGygaxSyndieFilled
  parent: MechGygaxSyndieBattery
  suffix: Battery, Filled
  components:
  - type: Mech
    startingEquipment:
      - WeaponMechCombatMissileRack8
      - WeaponMechCombatShotgun

# Rover
- type: entity
  id: MechRoverSyndie
  parent: [ BaseMech, CombatMech, BaseSyndicateContraband ]
  name: Rover
  description: A modified Durand used for nefarious purposes. On the back of the armor plate there is an inscription "Cybersun Inc."
  components:
  - type: Sprite
    drawdepth: Mobs
    noRot: true
    sprite: Objects/Specific/Mech/durand.rsi
    scale: 1.08, 1.08
    layers:
    - map: [ "enum.MechVisualLayers.Base" ]
      state: darkdurand
  - type: FootstepModifier
    footstepSoundCollection:
      path: /Audio/Mecha/sound_mecha_powerloader_step.ogg
  - type: Mech
    baseState: darkdurand
    openState: darkdurand-open
    brokenState: darkdurand-broken
    mechToPilotDamageMultiplier: 0.1
    airtight: true
    maxEquipmentAmount: 5
    pilotWhitelist:
      components:
        - HumanoidAppearance
    pilotBlacklist:
      species:
      - Felinid
  - type: MeleeThrowOnHit
    distance: 1
    speed: 8
  - type: MeleeWeapon
    hidden: true
    attackRate: 1
    damage:
      types:
        Blunt: 50
        Structural: 350
    bluntStaminaDamageFactor: 1.5
  - type: MovementSpeedModifier
    baseWalkSpeed: 1.5
    baseSprintSpeed: 2.8
  - type: Damageable
    damageModifierSet: MediumArmorSyndi
  - type: CanMoveInAir
  - type: MovementAlwaysTouching
  - type: Reflect
    reflectProb: 0.20
    spread: 180
    soundOnReflect: /Audio/_Starlight/Armor/Ricochet/ricochet1_1.ogg
    reflects:
    - NonEnergy
  - type: AccessReader
    access: [["NuclearOperative"]]

- type: entity
  id: MechRoverSyndieBattery
  parent: MechRoverSyndie
  suffix: Battery
  components:
  - type: ContainerFill
    containers:
      mech-battery-slot:
      - PowerCageSyndicate

- type: entity
  id: MechRoverSyndieFilled
  parent: MechRoverSyndieBattery
  suffix: Battery, Filled
  components:
  - type: Mech
    startingEquipment:
      - WeaponMechCombatMissileRack8
      - WeaponMechCombatUltraRifle

# Mauler
- type: entity
  id: MechMaulerSyndie
  parent: [ BaseMech, CombatMech, BaseSyndicateContraband ]
  name: Mauler
  description: A modified Marauder used by the Syndicate that's not as maneuverable as the Dark Gygax, but it makes up for that in armor and sheer firepower. On the back of the armor plate there is an inscription "Cybersun Inc."
  components:
  - type: Sprite
    drawdepth: Mobs
    noRot: true
    sprite: Objects/Specific/Mech/mecha.rsi
    scale: 1.08, 1.08
    layers:
    - map: [ "enum.MechVisualLayers.Base" ]
      state: mauler
  - type: FootstepModifier
    footstepSoundCollection:
      path: /Audio/Mecha/sound_mecha_powerloader_step.ogg
  - type: Mech
    baseState: mauler
    openState: mauler-open
    brokenState: mauler-broken
    mechToPilotDamageMultiplier: 0.1
    airtight: true
    maxEquipmentAmount: 5
    pilotWhitelist:
      components:
        - HumanoidAppearance
    pilotBlacklist:
      species:
      - Felinid
  - type: MeleeThrowOnHit
    distance: 1
    speed: 8
  - type: MeleeWeapon
    hidden: true
    attackRate: 1
    damage:
      types:
        Blunt: 50
        Structural: 400
    bluntStaminaDamageFactor: 1.5
  - type: MovementSpeedModifier
    baseWalkSpeed: 1
    baseSprintSpeed: 1.5
  - type: Damageable
    damageModifierSet: HeavyArmorSyndi
  - type: CanMoveInAir
  - type: MovementAlwaysTouching
  - type: Reflect
    reflectProb: 0.20
    spread: 180
    soundOnReflect: /Audio/_Starlight/Armor/Ricochet/ricochet1_1.ogg
    reflects:
    - NonEnergy
  - type: Tag
    tags:
    - DoorBumpOpener
    - FootstepSound
    - Mauler
  - type: MobThresholds
    currentThresholdState : Alive
    thresholds:
      0: Alive
      650: Critical
    showOverlays: false
    allowRevives: true
  - type: AccessReader
    access: [["NuclearOperative"]]

- type: entity
  id: MechMaulerSyndieBattery
  parent: MechMaulerSyndie
  suffix: Battery
  components:
  - type: ContainerFill
    containers:
      mech-battery-slot:
      - PowerCageSyndicate

- type: entity
  id: MechMaulerSyndieFilled
  parent: MechMaulerSyndieBattery
  suffix: Battery, Filled
  components:
  - type: Mech
    startingEquipment:
      - WeaponMechCombatMG
      - WeaponMechCombatShotgun
      - WeaponMechCombatMissileRack6
