# Base Paints
- type: entity
  parent: BaseItem
  id: MechPaintBase
  abstract: true
  name: mech spray paint
  description: A tin of mech spray paint.
  categories: [ HideSpawnMenu ]
  components:
  - type: Appearance
  - type: Sprite
    sprite: Objects/Fun/spraycans.rsi
    state: clown_cap
    layers:
      - state: clown_cap
        map: ["enum.OpenableVisuals.Layer"]
  - type: MechPaint
    used: false
    whitelist:
      tags:
        - Gygax
    baseState: gygax
    openState: gygax-open
    brokenState: gygax-broken
  - type: Item
    sprite: Objects/Fun/spraycans.rsi
    heldPrefix: spray
  - type: SolutionContainerManager
    solutions:
      drink:
        maxVol: 50
        reagents:
        - ReagentId: SpaceGlue
          Quantity: 50
  - type: TrashOnSolutionEmpty
    solution: drink
  - type: Sealable
  - type: Openable
    sound:
      path: /Audio/Effects/pop_high.ogg
    closeable: true
    closeSound:
      path: /Audio/Effects/pop_high.ogg

# Paints

# Ripley-Aluminizer
- type: entity
  parent: MechPaintBase
  suffix: Ripley, Aluminizer
  id: MechPaintRipleyAluminizer
  components:
  - type: Sprite
    sprite: _Sunrise/Objects/Fun/mech_spraycans/ripley.rsi
    state: aluminizer-cap
    layers:
      - state: aluminizer-cap
        map: ["enum.OpenableVisuals.Layer"]
  - type: Item
    sprite: _Sunrise/Objects/Fun/mech_spraycans/ripley.rsi
    heldPrefix: aluminizer
  - type: MechPaint
    used: false
    whitelist:
      tags:
        - Ripley
    baseState: aluminizer
    openState: aluminizer-open
    brokenState: aluminizer-broken
  - type: GenericVisualizer
    visuals:
      enum.OpenableVisuals.Opened:
        enum.OpenableVisuals.Layer:
          True: {state: "aluminizer"}
          False: {state: "aluminizer-cap"}

# Ripley-Combat Ripley
- type: entity
  parent: MechPaintBase
  suffix: Ripley, Combat Ripley
  id: MechPaintRipleyCombatRipley
  components:
  - type: Sprite
    sprite: _Sunrise/Objects/Fun/mech_spraycans/ripley.rsi
    state: combat-ripley-cap
    layers:
      - state: combat-ripley-cap
        map: ["enum.OpenableVisuals.Layer"]
  - type: Item
    sprite: _Sunrise/Objects/Fun/mech_spraycans/ripley.rsi
    heldPrefix: combat-ripley
  - type: MechPaint
    used: false
    whitelist:
      tags:
        - Ripley
    baseState: combatripley
    openState: combatripley-open
    brokenState: combatripley-broken
  - type: GenericVisualizer
    visuals:
      enum.OpenableVisuals.Opened:
        enum.OpenableVisuals.Layer:
          True: {state: "combat-ripley"}
          False: {state: "combat-ripley-cap"}

# Ripley-Firestarter
- type: entity
  parent: MechPaintBase
  suffix: Ripley, Firestarter
  id: MechPaintRipleyFirestarter
  components:
  - type: Sprite
    sprite: _Sunrise/Objects/Fun/mech_spraycans/ripley.rsi
    state: firestarter-cap
    layers:
      - state: firestarter-cap
        map: ["enum.OpenableVisuals.Layer"]
  - type: Item
    sprite: _Sunrise/Objects/Fun/mech_spraycans/ripley.rsi
    heldPrefix: firestarter
  - type: MechPaint
    used: false
    whitelist:
      tags:
        - Ripley
    baseState: ripley_flames_red
    openState: ripley_flames_red-open
    brokenState: ripley_flames_red-broken
  - type: GenericVisualizer
    visuals:
      enum.OpenableVisuals.Opened:
        enum.OpenableVisuals.Layer:
          True: {state: "firestarter"}
          False: {state: "firestarter-cap"}

# Ripley-Hauler
- type: entity
  parent: MechPaintBase
  suffix: Ripley, Hauler
  id: MechPaintRipleyHauler
  components:
  - type: Sprite
    sprite: _Sunrise/Objects/Fun/mech_spraycans/ripley.rsi
    state: hauler-cap
    layers:
      - state: hauler-cap
        map: ["enum.OpenableVisuals.Layer"]
  - type: Item
    sprite: _Sunrise/Objects/Fun/mech_spraycans/ripley.rsi
    heldPrefix: hauler
  - type: MechPaint
    used: false
    whitelist:
      tags:
        - Ripley
    baseState: hauler
    openState: hauler-open
    brokenState: hauler-broken
  - type: GenericVisualizer
    visuals:
      enum.OpenableVisuals.Opened:
        enum.OpenableVisuals.Layer:
          True: {state: "hauler"}
          False: {state: "hauler-cap"}

# Ripley-Reaper
- type: entity
  parent: MechPaintBase
  suffix: Ripley, Reaper
  id: MechPaintRipleyReaper
  components:
  - type: Sprite
    sprite: _Sunrise/Objects/Fun/mech_spraycans/ripley.rsi
    state: reaper-cap
    layers:
      - state: reaper-cap
        map: ["enum.OpenableVisuals.Layer"]
  - type: Item
    sprite: _Sunrise/Objects/Fun/mech_spraycans/ripley.rsi
    heldPrefix: reaper
  - type: MechPaint
    used: false
    whitelist:
      tags:
        - Ripley
    baseState: deathripley
    openState: deathripley-open
    brokenState: deathripley-broken
  - type: GenericVisualizer
    visuals:
      enum.OpenableVisuals.Opened:
        enum.OpenableVisuals.Layer:
          True: {state: "reaper"}
          False: {state: "reaper-cap"}

# Ripley-Zairjah
- type: entity
  parent: MechPaintBase
  suffix: Ripley, Zairjah
  id: MechPaintRipleyZairjah
  components:
  - type: Sprite
    sprite: _Sunrise/Objects/Fun/mech_spraycans/ripley.rsi
    state: zairjah-cap
    layers:
      - state: zairjah-cap
        map: ["enum.OpenableVisuals.Layer"]
  - type: Item
    sprite: _Sunrise/Objects/Fun/mech_spraycans/ripley.rsi
    heldPrefix: zairjah
  - type: MechPaint
    used: false
    whitelist:
      tags:
        - Ripley
    baseState: ripley_zairjah
    openState: ripley_zairjah-open
    brokenState: ripley_zairjah-broken
  - type: GenericVisualizer
    visuals:
      enum.OpenableVisuals.Opened:
        enum.OpenableVisuals.Layer:
          True: {state: "zairjah"}
          False: {state: "zairjah-cap"}

# Clarke/Ripley-BigBrother
- type: entity
  parent: MechPaintBase
  suffix: Clarke/Ripley, BigBrother
  id: MechPaintClarkeRipleyBigBrother
  components:
  - type: Sprite
    sprite: _Sunrise/Objects/Fun/mech_spraycans/clarke.rsi
    state: bigbrother-cap
    layers:
      - state: bigbrother-cap
        map: ["enum.OpenableVisuals.Layer"]
  - type: Item
    sprite: _Sunrise/Objects/Fun/mech_spraycans/clarke.rsi
    heldPrefix: bigbrother
  - type: MechPaint
    used: false
    whitelist:
      tags:
        - Clarke
        - Ripley
    baseState: bigbrother
    openState: bigbrother-open
    brokenState: bigbrother-broken
  - type: GenericVisualizer
    visuals:
      enum.OpenableVisuals.Opened:
        enum.OpenableVisuals.Layer:
          True: {state: "bigbrother"}
          False: {state: "bigbrother-cap"}

# Clarke-Orangey
- type: entity
  parent: MechPaintBase
  suffix: Clarke, Orangey
  id: MechPaintClarkeOrangey
  components:
  - type: Sprite
    sprite: _Sunrise/Objects/Fun/mech_spraycans/clarke.rsi
    state: orangey-cap
    layers:
      - state: orangey-cap
        map: ["enum.OpenableVisuals.Layer"]
  - type: Item
    sprite: _Sunrise/Objects/Fun/mech_spraycans/clarke.rsi
    heldPrefix: orangey
  - type: MechPaint
    used: false
    whitelist:
      tags:
        - Clarke
    baseState: orangey
    openState: orangey-open
    brokenState: orangey-broken
  - type: GenericVisualizer
    visuals:
      enum.OpenableVisuals.Opened:
        enum.OpenableVisuals.Layer:
          True: {state: "orangey"}
          False: {state: "orangey-cap"}

# Gygax-Molot
- type: entity
  parent: MechPaintBase
  suffix: Gygax, Molot
  id: MechPaintGygaxMolot
  components:
  - type: Sprite
    sprite: _Sunrise/Objects/Fun/mech_spraycans/gygax.rsi
    state: pobeda-cap
    layers:
      - state: pobeda-cap
        map: ["enum.OpenableVisuals.Layer"]
  - type: Item
    sprite: _Sunrise/Objects/Fun/mech_spraycans/gygax.rsi
    heldPrefix: pobeda
  - type: MechPaint
    used: false
    whitelist:
      tags:
        - Gygax
    baseState: molot
    openState: molot-open
    brokenState: molot-broken
  - type: GenericVisualizer
    visuals:
      enum.OpenableVisuals.Opened:
        enum.OpenableVisuals.Layer:
          True: {state: "pobeda"}
          False: {state: "pobeda-cap"}

# Gygax-Black
- type: entity
  parent: MechPaintBase
  suffix: Gygax, Contraband
  id: MechPaintGygaxBlack
  components:
  - type: Sprite
    sprite: _Sunrise/Objects/Fun/mech_spraycans/gygax.rsi
    state: syndiegax-cap
    layers:
      - state: syndiegax-cap
        map: ["enum.OpenableVisuals.Layer"]
  - type: Item
    sprite: _Sunrise/Objects/Fun/mech_spraycans/gygax.rsi
    heldPrefix: syndiegax
  - type: MechPaint
    used: false
    whitelist:
      tags:
        - Gygax
    baseState: gygax_black
    openState: gygax_black-open
    brokenState: gygax_black-broken
  - type: GenericVisualizer
    visuals:
      enum.OpenableVisuals.Opened:
        enum.OpenableVisuals.Layer:
          True: {state: "syndiegax"}
          False: {state: "syndiegax-cap"}

# Gygax-White
- type: entity
  parent: MechPaintBase
  suffix: Gygax, Legal
  id: MechPaintGygaxWhite
  components:
  - type: Sprite
    sprite: _Sunrise/Objects/Fun/mech_spraycans/gygax.rsi
    state: gygax-white-cap
    layers:
      - state: gygax-white-cap
        map: ["enum.OpenableVisuals.Layer"]
  - type: Item
    sprite: _Sunrise/Objects/Fun/mech_spraycans/gygax.rsi
    heldPrefix: gygax-white
  - type: MechPaint
    used: false
    whitelist:
      tags:
        - Gygax
    baseState: gygax_white
    openState: gygax_white-open
    brokenState: gygax_white-broken
  - type: GenericVisualizer
    visuals:
      enum.OpenableVisuals.Opened:
        enum.OpenableVisuals.Layer:
          True: {state: "gygax-white"}
          False: {state: "gygax-white-cap"}

#Gygax-Pirate
- type: entity
  parent: MechPaintBase
  suffix: Gygax, Pirate
  id: MechPaintGygaxPirate
  components:
  - type: Sprite
    sprite: _Sunrise/Objects/Fun/mech_spraycans/gygax.rsi
    state: pirategax-cap
    layers:
      - state: pirategax-cap
        map: ["enum.OpenableVisuals.Layer"]
  - type: Item
    sprite: _Sunrise/Objects/Fun/mech_spraycans/gygax.rsi
    heldPrefix: pirategax
  - type: MechPaint
    used: false
    whitelist:
      tags:
        - Gygax
    baseState: piratgygax
    openState: piratgygax-open
    brokenState: piratgygax-broken
  - type: GenericVisualizer
    visuals:
      enum.OpenableVisuals.Opened:
        enum.OpenableVisuals.Layer:
          True: {state: "pirategax"}
          False: {state: "pirategax-cap"}

#Gygax

- type: entity
  parent: MechPaintBase
  suffix: Gygax
  id: MechPaintGygax
  components:
  - type: Sprite
    sprite: Objects/Fun/spraycans.rsi
    layers:
      - state: spray
        map: ["Base"]
      - state: spray_cap_colors
        map: ["enum.OpenableVisuals.Layer"]
        color: "#c64323"
  - type: MechPaint
    used: false
    whitelist:
      tags:
        - Gygax
    baseState: gygax
    openState: gygax-open
    brokenState: gygax-broken
  - type: GenericVisualizer
    visuals:
      enum.OpenableVisuals.Opened:
        enum.OpenableVisuals.Layer:
          True: {state: "spray_colors" , color: "#c64323"}
          False: {state: "spray_cap_colors" , color: "#c64323"}

#Gygax-Old

- type: entity
  parent: MechPaintBase
  suffix: Gygax, Old
  id: MechPaintGygaxOld
  components:
  - type: Sprite
    sprite: Objects/Fun/spraycans.rsi
    layers:
      - state: spray
        map: ["Base"]
      - state: spray_cap_colors
        map: ["enum.OpenableVisuals.Layer"]
        color: "#ed5f3b"
  - type: MechPaint
    used: false
    whitelist:
      tags:
        - Gygax
    baseState: gygax_alt
    openState: gygax_alt-open
    brokenState: gygax_alt-broken
  - type: GenericVisualizer
    visuals:
      enum.OpenableVisuals.Opened:
        enum.OpenableVisuals.Layer:
          True: {state: "spray_colors" , color: "#ed5f3b"}
          False: {state: "spray_cap_colors" , color: "#ed5f3b"}

#Durand-Old
- type: entity
  parent: MechPaintBase
  suffix: Durand, Old
  id: MechPaintDurandOld
  components:
  - type: Sprite
    sprite: Objects/Fun/spraycans.rsi
    layers:
      - state: spray
        map: ["Base"]
      - state: spray_cap_colors
        map: ["enum.OpenableVisuals.Layer"]
        color: "#55617b"
  - type: MechPaint
    used: false
    whitelist:
      tags:
        - Durand
    baseState: durand_old
    openState: durand-open_old
    brokenState: durand-broken_old
  - type: GenericVisualizer
    visuals:
      enum.OpenableVisuals.Opened:
        enum.OpenableVisuals.Layer:
          True: {state: "spray_colors" , color: "#55617b"}
          False: {state: "spray_cap_colors" , color: "#55617b"}

#Durand-Unathi

- type: entity
  parent: MechPaintBase
  suffix: Durand, Unathi
  id: MechPaintDurandUnathi
  components:
  - type: Sprite
    sprite: _Sunrise/Objects/Fun/mech_spraycans/durand.rsi
    layers:
      - state: kharn-cap
        map: ["enum.OpenableVisuals.Layer"]
  - type: Item
    sprite: _Sunrise/Objects/Fun/mech_spraycans/durand.rsi
    heldPrefix: kharn
  - type: MechPaint
    used: false
    whitelist:
      tags:
        - Durand
    baseState: unathi
    openState: unathi-open
    brokenState: unathi-broken
  - type: GenericVisualizer
    visuals:
      enum.OpenableVisuals.Opened:
        enum.OpenableVisuals.Layer:
          True: {state: "kharn"}
          False: {state: "kharn-cap"}

#Durand-Shire

- type: entity
  parent: MechPaintBase
  suffix: Durand , Shire
  id: MechPaintDurandShire
  components:
  - type: Sprite
    sprite: _Sunrise/Objects/Fun/mech_spraycans/durand.rsi
    layers:
      - state: shire-cap
        map: ["enum.OpenableVisuals.Layer"]
  - type: Item
    sprite: _Sunrise/Objects/Fun/mech_spraycans/durand.rsi
    heldPrefix: shire
  - type: MechPaint
    used: false
    whitelist:
      tags:
        - Durand
    baseState: shire
    openState: shire-open
    brokenState: shire-broken
  - type: GenericVisualizer
    visuals:
      enum.OpenableVisuals.Opened:
        enum.OpenableVisuals.Layer:
          True: {state: "shire"}
          False: {state: "shire-cap"}

#Durand-Dollhouse

- type: entity
  parent: MechPaintBase
  suffix: Durand , Dollhouse
  id: MechPaintDurandDollhouse
  components:
  - type: Sprite
    sprite: _Sunrise/Objects/Fun/mech_spraycans/durand.rsi
    layers:
      - state: dollhouse-cap
        map: ["enum.OpenableVisuals.Layer"]
  - type: Item
    sprite: _Sunrise/Objects/Fun/mech_spraycans/durand.rsi
    heldPrefix: dollhouse
  - type: MechPaint
    used: false
    whitelist:
      tags:
        - Durand
    baseState: dollhouse
    openState: dollhouse-open
    brokenState: dollhouse-broken
  - type: GenericVisualizer
    visuals:
      enum.OpenableVisuals.Opened:
        enum.OpenableVisuals.Layer:
          True: {state: "dollhouse"}
          False: {state: "dollhouse-cap"}

#Durand-Executor

- type: entity
  parent: MechPaintBase
  suffix: Durand , Executor
  id: MechPaintDurandExecutor
  components:
  - type: Sprite
    sprite: _Sunrise/Objects/Fun/mech_spraycans/durand.rsi
    layers:
      - state: executioner-cap
        map: ["enum.OpenableVisuals.Layer"]
  - type: Item
    sprite: _Sunrise/Objects/Fun/mech_spraycans/durand.rsi
    heldPrefix: executioner
  - type: MechPaint
    used: false
    whitelist:
      tags:
        - Durand
    baseState: executor
    openState: executor-open
    brokenState: executor-broken
  - type: GenericVisualizer
    visuals:
      enum.OpenableVisuals.Opened:
        enum.OpenableVisuals.Layer:
          True: {state: "executioner"}
          False: {state: "executioner-cap"}

#Mauler-Meowler

- type: entity
  parent: MechPaintBase
  suffix: Mauler , Meowler
  id: MechPaintMaulerMeowler
  components:
  - type: Sprite
    sprite: _Sunrise/Objects/Fun/mech_spraycans/mauler.rsi
    layers:
      - state: mauler-meow-cap
        map: ["enum.OpenableVisuals.Layer"]
  - type: Item
    sprite: _Sunrise/Objects/Fun/mech_spraycans/mauler.rsi
    heldPrefix: meowler
  - type: MechPaint
    used: false
    whitelist:
      tags:
        - Mauler
    baseState: meowler
    openState: meowler-open
    brokenState: meowler-broken
  - type: GenericVisualizer
    visuals:
      enum.OpenableVisuals.Opened:
        enum.OpenableVisuals.Layer:
          True: {state: "mauler-meow"}
          False: {state: "mauler-meow-cap"}

- type: entity
  parent: MechPaintBase
  suffix: Dollhouse , Warboss
  id: MechPaintDollHouseWarboss
  components:
  - type: Sprite
    sprite: _Sunrise/Objects/Fun/mech_spraycans/durand.rsi
    layers:
      - state: dollhouse-cap
        map: ["enum.OpenableVisuals.Layer"]
  - type: Item
    sprite: _Sunrise/Objects/Fun/mech_spraycans/durand.rsi
    heldPrefix: dollhouse
  - type: MechPaint
    used: false
    whitelist:
      tags:
        - DollHouse
    baseState: warboss
    openState: dollhouse-open
    brokenState: warboss-broken
  - type: GenericVisualizer
    visuals:
      enum.OpenableVisuals.Opened:
        enum.OpenableVisuals.Layer:
          True: {state: "dollhouse"}
          False: {state: "dollhouse-cap"}
