- 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
  # Sunrise start
  - type: MeleeThrowOnHit
    speed: 10
    distance: 1
  # Sunrise end

- 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
    #Sunrise - Start
    - Electrovae
    - ChargedElectrovae
    #Sunrise - End
    #- 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
      # Sunrise edit start - radial active equipment selector
      enum.MechEquipmentSelectUiKey.Key:
        type: MechEquipmentSelectBoundUserInterface
      # Sunrise edit end
  - type: MeleeWeapon
    hidden: true
    animation: WeaponArcMechDisabled # Sunrise-Edit
    wideAnimation: WeaponArcMechDisabled # Sunrise-Edit
    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
      250: Critical
    showOverlays: false
    allowRevives: true
  - type: ZombieImmune
  - type: HealthExaminable
    examinableTypes:
      - Blunt
      - Slash
      - Piercing
      - Heat
      - Shock
      - Mangleness # Sunrise-Edit
    locPrefix: mech
  - type: Appearance
  - type: ContainerContainer
    containers:
      mech-pilot-slot: !type:ContainerSlot
      mech-equipment-container: !type:Container
      mech-battery-slot: !type:ContainerSlot
  # Sunrise-Start
  - type: Inventory
    templateId: mechArmor
  - type: InventorySlots
  - type: Loadout
    prototypes: [ MechArmorLightLoadout ]
  - type: RadarBlip
    color: "#FFD700FF"
    scale: 1.1
    shape: Triangle
    requireInSpace: true
  - type: CyborgSparkEffect
  - type: FootprintEmitter # Sunrise-Add
    leftBareFootState: [ footprint-suit-heavy ]
    rightBareFootState: [ footprint-suit-heavy ]
  # Sunrise-End
  - type: Damageable
    damageContainer: Mech
  - type: FootstepModifier
    footstepSoundCollection:
      path: /Audio/Mecha/mechmove03.ogg
  - type: GuideHelp
    guides:
    - Robotics
  - type: Destructible
    thresholds:
    - trigger:
        !type:DamageTrigger
        damage: 500 # Sunrise-edit
      behaviors:
      - !type:PlaySoundBehavior
        sound:
          collection: MetalBreak
      # Sunrise-start
      - !type:SpawnEntitiesBehavior # Sunrise-edit
        spawn:
          ScrapSteel:
            min: 2
            max: 4
      # Sunrise-end
      - !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.9 # Sunrise-Edit
  - type: ProtectedFromStepTriggers # Sunrise-added
  - type: ComplexInteraction # Sunrise-added

# Ripley MK-I
- type: entity
  id: MechRipley
  parent: [ MechBreakageRipley, BaseMech, IndustrialMech, BaseCargoContraband ] # Sunrise-edit
  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: FootprintEmitter # Sunrise-Add
    leftBareFootState: [ footprint-suit-heavy ]
    rightBareFootState: [ footprint-suit-heavy ]
  - 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:
        - HumanoidProfile
  - 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 # Sunrise-edit: starlight parity
    baseSprintSpeed: 3.6 # Sunrise-edit: starlight parity
  - 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-II
- type: entity
  id: MechRipley2
  parent: [ MechBreakageRipley, BaseMech, IndustrialMech, BaseCargoContraband ] # Sunrise-edit
  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: FootprintEmitter # Sunrise-Add
    leftBareFootState: [ footprint-suit-heavy ]
    rightBareFootState: [ footprint-suit-heavy ]
  - type: Sprite
    drawdepth: Mobs
    noRot: true
    sprite: Objects/Specific/Mech/ripley.rsi
    scale: 1.08, 1.08
    layers:
    - map: [ "enum.MechVisualLayers.Base", "movement" ]
      state: ripleymkii
  - type: FootstepModifier
    footstepSoundCollection:
      path: /Audio/Mecha/sound_mecha_powerloader_step.ogg
  - type: SpriteMovement
    movementLayers:
      movement:
        state: ripleymk2
    noMovementLayers:
      movement:
        state: ripleymkii
  - type: Mech
    baseState: ripleymkii
    openState: ripleymkii-open
    brokenState: ripleymkii-broken
    mechToPilotDamageMultiplier: 0.0 # Sunrise edit
    airtight: true
    pilotWhitelist:
      components:
        - HumanoidProfile
  - type: MeleeWeapon
    hidden: true
    attackRate: 1
    damage:
      types:
        Blunt: 20
    bluntStaminaDamageFactor: 1
  - type: MovementSpeedModifier
    baseWalkSpeed: 2
    baseSprintSpeed: 3
  # Sunrise-Start
  - type: Loadout
    prototypes: [ MechArmorMediumNTLoadout ]
  # Sunrise-End
  - 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

# 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.0 # Sunrise edit
    airtight: true
    pilotWhitelist:
      components:
        - HumanoidProfile
  - 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.05
    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
  # Sunrise-Start
  - type: FootprintEmitter
    placementOffset: 0,0
    leftBareFootState: [ footprint-tracked-heavy ]
    rightBareFootState: [ footprint-tracked-heavy ]
  # Sunrise-End

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

# 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: FootprintEmitter # Sunrise-Add
    leftBareFootState: [ footprint-suit-heavy ]
    rightBareFootState: [ footprint-suit-heavy ]
  - type: Sprite
    drawdepth: Mobs
    noRot: true
    sprite: _Sunrise/Objects/Specific/Mech/mecha.rsi # Sunrise-edit
    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.0 # Sunrise edit
    airtight: true # Space Honks is real.
    pilotWhitelist:
      components:
      - HumanoidProfile
  # sunrise start
  - type: Reflect
    reflectProb: 0.05
    spread: 180
    soundOnReflect: /Audio/_Starlight/Armor/Ricochet/ricochet1_1.ogg
    reflects:
    - NonEnergy
  - type: MeleeWeapon
    hidden: true
    attackRate: 1
    damage:
      types:
        Structural: 2
    soundHit:
      path: /Audio/Items/bikehorn.ogg
  - type: MeleeThrowOnHit
    speed: 1
    distance: 2
  # sunrise end

- 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: FootprintEmitter # Sunrise-Add
    leftBareFootState: [ footprint-suit-heavy ]
    rightBareFootState: [ footprint-suit-heavy ]
  - type: Sprite
    drawdepth: Mobs
    noRot: true
    sprite: _Sunrise/Objects/Specific/Mech/mecha.rsi # Sunrise-edit
    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.0 # Sunrise edit
    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: FootprintEmitter # Sunrise-Add
  - type: Sprite
    drawdepth: Mobs
    noRot: true
    sprite: _Sunrise/Objects/Specific/Mech/mecha.rsi # Sunrise-edit
    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
      200: 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: [ MechBreakageGygax, BaseMech, CombatMech, BaseSecurityScienceContraband ] # Sunrise-edit
  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: FootprintEmitter # Sunrise-Add
  - type: Sprite
    drawdepth: Mobs
    noRot: true
    sprite: Objects/Specific/Mech/gygax.rsi
    layers:
    - map: [ "enum.MechVisualLayers.Base" ]
      state: gygax
  - type: FootstepModifier
    footstepSoundCollection:
      path: /Audio/Mecha/sound_mecha_powerloader_step.ogg
      params:
        pitch: 0.85
  - type: Mech
    baseState: base
    openState: base-open
    brokenState: base-broken
    mechToPilotDamageMultiplier: 0.0 # Sunrise edit
    airtight: true
    pilotWhitelist:
      components:
        - HumanoidProfile
  - type: MeleeThrowOnHit
    distance: 2.5
    speed: 15
  - type: MeleeWeapon
    hidden: true
    attackRate: 1
    damage:
      types:
        Blunt: 30
        Structural: 180
    bluntStaminaDamageFactor: 1.5
  - type: MovementSpeedModifier
    baseWalkSpeed: 2
    baseSprintSpeed: 4
  - type: Reflect
    reflectProb: 0.05
    spread: 180
    soundOnReflect: /Audio/_Starlight/Armor/Ricochet/ricochet1_1.ogg
    reflects:
    - NonEnergy
  - type: Tag
    tags:
    - DoorBumpOpener
    - FootstepSound
    - Gygax
  - type: MobThresholds
    thresholds:
      0: Alive
      325: Critical

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

# Durand
- type: entity
  id: MechDurand
  parent: [ MechBreakageDurand, BaseMech, CombatMech, BaseSecurityScienceContraband ] # Sunrise-edit
  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: FootprintEmitter # Sunrise-Add
    leftBareFootState: [ footprint-mech-heavy ]
    rightBareFootState: [ footprint-mech-heavy ]
  - 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
      params:
        pitch: 0.6
  - type: Mech
    baseState: base
    openState: base-open
    brokenState: base-broken
    mechToPilotDamageMultiplier: 0.0 # Sunrise edit
    airtight: true
    pilotWhitelist:
      components:
        - HumanoidProfile
  - type: MeleeThrowOnHit
    distance: 4
    speed: 18
  - type: MeleeWeapon
    hidden: true
    attackRate: 1
    damage:
      types:
        Blunt: 40
        Structural: 220
    bluntStaminaDamageFactor: 1.5
  - type: MovementSpeedModifier
    baseWalkSpeed: 1.5
    baseSprintSpeed: 2
  # Sunrise-Start
  - type: Loadout
    prototypes: [ MechArmorMediumNTLoadout ]
  # Sunrise-End
  - type: CanMoveInAir
  - type: MovementAlwaysTouching
  - type: Reflect
    reflectProb: 0.10
    spread: 180
    soundOnReflect: /Audio/_Starlight/Armor/Ricochet/ricochet1_1.ogg
    reflects:
    - NonEnergy
  - type: Tag
    tags:
    - DoorBumpOpener
    - FootstepSound
    - Durand
  - type: MobThresholds
    thresholds:
      0: Alive
      500: Critical

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

# Nanotrasen Combat Mechs

# Marauder
- type: entity
  id: MechMarauder
  parent: [ MechBreakageMarauderFamily, BaseMech, CombatMech, BaseCentcommContraband ] # Sunrise-edit
  name: Marauder
  description: Looks like we're all saved. # ERT mech
  components:
  - type: FootprintEmitter # Sunrise-Add
    leftBareFootState: [ footprint-mech-heavy ]
    rightBareFootState: [ footprint-mech-heavy ]
  - type: Sprite
    drawdepth: Mobs
    noRot: true
    sprite: _Sunrise/Objects/Specific/Mech/mecha.rsi # Sunrise-edit
    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.0 # Sunrise edit
    airtight: true
    maxEquipmentAmount: 4
    pilotWhitelist:
      components:
        - HumanoidProfile
  - type: MeleeThrowOnHit
    distance: 5
    speed: 20
  - type: MeleeWeapon
    hidden: true
    attackRate: 1
    damage:
      types:
        Blunt: 40
        Structural: 200
    bluntStaminaDamageFactor: 1.5
  - type: MovementSpeedModifier
    baseWalkSpeed: 1.5
    baseSprintSpeed: 2
  # Sunrise-Start
  - type: Loadout
    prototypes: [ MechArmorHeavyNTLoadout ]
  # Sunrise-End
  - 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: 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: [ MechBreakageMarauderFamily, BaseMech, CombatMech, BaseCentcommContraband ] # Sunrise-edit
  name: Seraph
  description: That's the last thing you'll see.
  components:
  - type: FootprintEmitter # Sunrise-Add
    leftBareFootState: [ footprint-mech-heavy ]
    rightBareFootState: [ footprint-mech-heavy ]
  - type: Sprite
    drawdepth: Mobs
    noRot: true
    sprite: _Sunrise/Objects/Specific/Mech/mecha.rsi # Sunrise-edit
    scale: 1.1, 1.1
    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.0 # Sunrise edit
    airtight: true
    maxEquipmentAmount: 5
    pilotWhitelist:
      components:
        - HumanoidProfile
  - type: MeleeThrowOnHit
    distance: 5
    speed: 20
  - type: MeleeWeapon
    hidden: true
    attackRate: 1
    damage:
      types:
        Blunt: 60
        Structural: 400
    bluntStaminaDamageFactor: 1.5
  - type: MovementSpeedModifier
    baseWalkSpeed: 1
    baseSprintSpeed: 3.7
  # Sunrise-Start
  - type: Loadout
    prototypes: [ MechArmorHeavyNTLoadout ]
  # Sunrise-End
  - 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
      700: 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

# region Syndicate Mech

# Dark Gygax
- type: entity
  id: MechGygaxSyndie
  parent: [ MechBreakageGygax, BaseMech, CombatMech, BaseSyndicateContraband ] # Sunrise-edit
  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: FootprintEmitter # Sunrise-Add
  - type: Sprite
    drawdepth: Mobs
    noRot: true
    sprite: _Sunrise/Objects/Specific/Mech/mecha.rsi # Sunrise-edit
    layers:
    - map: [ "enum.MechVisualLayers.Base" ]
      state: darkgygax
  - type: FootstepModifier
    footstepSoundCollection:
      path: /Audio/Mecha/sound_mecha_powerloader_step.ogg
      params:
        pitch: 0.85
  - type: Mech
    baseState: darkgygax
    openState: darkgygax-open
    brokenState: darkgygax-broken
    mechToPilotDamageMultiplier: 0.0 # Sunrise edit
    airtight: true
    maxEquipmentAmount: 4
    pilotWhitelist:
      components:
        - HumanoidProfile
  - type: MeleeThrowOnHit
    distance: 3
    speed: 15
  - type: MeleeWeapon
    hidden: true
    attackRate: 1
    damage:
      types:
        Blunt: 30
        Structural: 200
    bluntStaminaDamageFactor: 1.5
  - type: MovementSpeedModifier
    baseWalkSpeed: 2.5
    baseSprintSpeed: 4
  # Sunrise-Start
  - type: Loadout
    prototypes: [ MechArmorMediumSyndiLoadout ]
  # Sunrise-End
  - type: CanMoveInAir
  - type: MovementAlwaysTouching
  - type: Reflect
    reflectProb: 0.1
    spread: 180
    soundOnReflect: /Audio/_Starlight/Armor/Ricochet/ricochet1_1.ogg
    reflects:
    - NonEnergy
  - type: Tag
    tags:
    - DoorBumpOpener
    - FootstepSound
    - Gygax
  # Sunrise-Start
  - type: MobThresholds
    thresholds:
      0: Alive
      375: Critical
  - type: AccessReader
    access: [["NuclearOperative"]]
  # Sunrise-End

- 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
      - WeaponMechCombatShotgunAuto

# Mauler
- type: entity
  id: MechMaulerSyndie
  parent: [ MechBreakageMarauderFamily, BaseMech, CombatMech, BaseSyndicateContraband ] # Sunrise-edit
  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: FootprintEmitter # Sunrise-Add
    leftBareFootState: [ footprint-mech-heavy ]
    rightBareFootState: [ footprint-mech-heavy ]
  - type: Sprite
    drawdepth: Mobs
    noRot: true
    sprite: _Sunrise/Objects/Specific/Mech/mecha.rsi # Sunrise-edit
    scale: 1.1, 1.1
    layers:
    - map: [ "enum.MechVisualLayers.Base" ]
      state: mauler
  - type: FootstepModifier
    footstepSoundCollection:
      path: /Audio/Mecha/sound_mecha_powerloader_step.ogg
      params:
        pitch: 0.5
  - type: Mech
    baseState: mauler
    openState: mauler-open
    brokenState: mauler-broken
    mechToPilotDamageMultiplier: 0.0 # Sunrise edit
    airtight: true
    maxEquipmentAmount: 5
    pilotWhitelist:
      components:
        - HumanoidProfile
  - type: MeleeThrowOnHit
    distance: 5
    speed: 20
  - type: MeleeWeapon
    hidden: true
    attackRate: 1
    damage:
      types:
        Blunt: 75
        Structural: 400
    bluntStaminaDamageFactor: 1.5
  - type: MovementSpeedModifier
    baseWalkSpeed: 1.5
    baseSprintSpeed: 2
  # Sunrise-Start
  - type: Loadout
    prototypes: [ MechArmorHeavySyndiLoadout ]
  # Sunrise-End
  - type: CanMoveInAir
  - type: MovementAlwaysTouching
  - type: Reflect
    reflectProb: 0.1
    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
      600: 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


