ctjsVersion: 5.0.0
notes: /* empty */
libs:
  place:
    gridX: 1200
    gridY: 1200
    debugMode: false
  tween: {}
  transition: {}
  random: {}
  pointer:
    preventdefault: false
    startlocked: false
actions:
  - name: Poof
    methods:
      - code: pointer.Primary
starting: 0
settings:
  export:
    windows64: true
    windows32: true
    linux64: true
    linux32: true
    mac64: true
    debug: false
    functionWrap: false
    codeModifier: none
    bundleAssetTree: false
    autocloseDesktop: true
    bundleAssetTypes:
      texture: true
      template: true
      room: true
      behavior: false
      font: false
      sound: false
      style: false
      tandem: false
      typefaces: !<tag:yaml.org,2002:js/undefined> ''
    showErrors: true
    errorsLink: ''
  branding:
    icon: eb24c2bc-a36c-4118-b33e-a7348c00e5bb
    accent: '#446adb'
    invertPreloaderScheme: true
    splashScreen: 5c680919-3827-4ea7-9e72-a8fc81ddfb45
  rendering:
    maxFPS: 60
    pixelatedrender: false
    highDensity: true
    usePixiLegacy: true
    desktopMode: maximized
    mobileScreenOrientation: portrait
    viewMode: scaleFit
  authoring:
    title: JettyCat
    author: ComigoGames
    site: 'https://ctjs.rocks/'
    version:
      - 1
      - 0
      - 0
    versionPostfix: ''
    appId: rocks.ctjs.jettycat
  fps: 30
scripts: []
startroom: 8677472b-4549-48b5-a5a8-a891fb029f6b
palette: []
styletick: .nan
contentTypes: []
language: typescript
assets:
  - name: Logo
    depth: 0
    uid: 6cd7876a-4918-47a7-8100-75f0375986ef
    texture: 2c8009c9-ccbc-459e-8562-3146d7210e12
    extends: {}
    lastmod: 1583983041810
    events: []
    type: template
    loopAnimation: true
    visible: true
    blendMode: normal
    animationFPS: 30
    playAnimationOnStart: false
    behaviors: []
    baseClass: AnimatedSprite
    nineSliceSettings:
      left: 16
      top: 16
      right: 16
      bottom: 16
    style: -1
    extendTypes: ''
  - name: Button_Play
    depth: 0
    uid: 25ac0f9b-57ff-461d-8eb7-a9ce800b9c71
    texture: 775ba15c-b1aa-4707-bc1e-d0811846a893
    extends: {}
    lastmod: 1657026642146
    events:
      - eventKey: OnPointerClick
        code: |-
          console.log('press', this.pressed)

          if (!this.pressed) {
              this.pressed = true;
              transition.circleOut(1000, 0x446ADB)
              .then(() => {
                  rooms.switch('InGame');
              });
          }
        arguments: {}
        lib: core
    type: template
    loopAnimation: true
    visible: true
    blendMode: normal
    animationFPS: 30
    playAnimationOnStart: false
    behaviors: []
    baseClass: AnimatedSprite
    nineSliceSettings:
      left: 16
      top: 16
      right: 16
      bottom: 16
    style: -1
    extendTypes: ''
  - name: PotatoCat
    depth: 0
    uid: 8f93611e-6e95-49c4-8e2b-4cc067be2924
    texture: eb24c2bc-a36c-4118-b33e-a7348c00e5bb
    extends: {}
    lastmod: 1657026575888
    events:
      - lib: core
        arguments: {}
        code: >-
          this.speed = 600;

          this.direction = 0; // The cat initially moves to the right, to
          advance the level


          this.gravityAcceleration = 2 * 60 * 60;


          camera.follow = this;

          camera.followY = false;

          camera.shiftX = 250;


          this.jet = emitters.follow(this, 'Jet');
        eventKey: OnCreate
      - lib: core
        arguments: {}
        code: >-
          this.move();

          this.angle = -this.vspeed * 0.005;


          if (this.y > 1750 - 200 || // If the cat is below the ground minus its
          approximate height, or
              this.y < 0) {          // the cat flew off the upper boundary,
              this.kill = true;      // remove the cat.
          }
        eventKey: OnStep
      - eventKey: OnActionRelease
        code: this.jet.pause();
        arguments:
          action: Poof
        lib: core
      - eventKey: OnActionDown
        code: >-
          // Enable gravity if it is not yet active

          this.gravity = this.gravityAcceleration;

          // Add opposite directing force to thrust the cat up, twice as
          powerful than gravity

          this.addSpeed(u.time * this.gravityAcceleration * 2, -90);
        arguments:
          action: Poof
        lib: core
      - eventKey: OnActionPress
        code: this.jet.resume();
        arguments:
          action: Poof
        lib: core
      - eventKey: collisionCGroup
        code: |-
          // Remove itself
          this.kill = true;
        arguments:
          group: Obstacle
        lib: place
      - eventKey: OnDestroy
        code: |-
          // Stop camera movement
          camera.follow = false;

          // Remove the layer with score and a pause button
          rooms.remove(rooms.current.mainUi);

          // Create an animated dummy
          var dummy = templates.copy('PotatoCat_Stunned', this.x, this.y);
          // Copy scale settings to the new copy
          dummy.scale.x = this.scale.x;
          dummy.scale.y = this.scale.y;

          // Schedule a menu appearance
          u.wait(1000)
          .then(() => {
              // Add a layer with "Lose" UI
              rooms.append('UI_OhNo', {
                  isUi: true
              });
          });
        arguments: {}
        lib: core
    type: template
    loopAnimation: true
    visible: true
    blendMode: normal
    animationFPS: 30
    playAnimationOnStart: false
    behaviors: []
    baseClass: AnimatedSprite
    nineSliceSettings:
      left: 16
      top: 16
      right: 16
      bottom: 16
    style: -1
    extendTypes: ''
  - name: Tube
    depth: 0
    uid: 455b4c7c-2249-4b12-999e-27db667688b5
    texture: 2b5a51ae-c05b-4a94-b9bd-e088bf2e4b1a
    extends:
      cgroup: Obstacle
    lastmod: 1657025842522
    events:
      - lib: core
        arguments: {}
        code: |-
          // Randomize tube's height by changing its texture
          this.tex = random.dice(
              'Tube_01',
              'Tube_02',
              'Tube_03',
              'Tube_04'
          );
        eventKey: OnCreate
    type: template
    loopAnimation: true
    visible: true
    blendMode: normal
    animationFPS: 30
    playAnimationOnStart: false
    behaviors: []
    baseClass: AnimatedSprite
    nineSliceSettings:
      left: 16
      top: 16
      right: 16
      bottom: 16
    style: -1
    extendTypes: ''
  - name: Star
    depth: 0
    uid: b7362b5c-811d-438c-b164-f53213eaefa7
    texture: 4e0a0e06-81ea-4cd2-8f3d-569a8ad3e947
    extends:
      cgroup: Collectible
    lastmod: 1657025807690
    events:
      - lib: core
        arguments: {}
        code: this.wiggleTime = 0;
        eventKey: OnCreate
      - lib: core
        arguments: {}
        code: 'emitters.fire(''Stars'', this.x, this.y);'
        eventKey: OnDestroy
      - lib: core
        arguments: {}
        code: |-
          this.wiggleTime += u.delta * 0.2;
          this.angle = Math.sin(this.wiggleTime) * 5;
        eventKey: OnDraw
      - eventKey: collisionTemplate
        code: |-
          this.kill = true;
          rooms.current.stars ++;
        arguments:
          template: 8f93611e-6e95-49c4-8e2b-4cc067be2924
        lib: place
    type: template
    loopAnimation: true
    visible: true
    blendMode: normal
    animationFPS: 30
    playAnimationOnStart: false
    behaviors: []
    baseClass: AnimatedSprite
    nineSliceSettings:
      left: 16
      top: 16
      right: 16
      bottom: 16
    style: -1
    extendTypes: ''
  - name: StarCounter
    depth: 0
    uid: d4c02f18-93d0-4ad4-8e5b-62fb9a0f0af9
    texture: 4e0a0e06-81ea-4cd2-8f3d-569a8ad3e947
    extends: {}
    lastmod: 1657025823090
    events:
      - lib: core
        arguments: {}
        code: |-
          this.label = new PIXI.Text('0', styles.get('Orange'));
          this.label.x = 130;
          this.label.y = -60;
          this.label.scale.x = this.label.scale.y = 1 / 0.75;
          this.addChild(this.label);
        eventKey: OnCreate
      - lib: core
        arguments: {}
        code: this.label.text = rooms.current.stars;
        eventKey: OnDraw
    type: template
    loopAnimation: true
    visible: true
    blendMode: normal
    animationFPS: 30
    playAnimationOnStart: false
    behaviors: []
    baseClass: AnimatedSprite
    nineSliceSettings:
      left: 16
      top: 16
      right: 16
      bottom: 16
    style: -1
    extendTypes: ''
  - name: Button_Pause
    depth: 0
    uid: 6a532c9b-7e32-4070-b72b-86012306c7fb
    texture: 343c1f60-adad-4233-bfcf-c13b8aade974
    extends: {}
    lastmod: 1657026579809
    events:
      - eventKey: OnPointerClick
        code: |-
          if (rooms.list['UI_Paused'].length === 0) {
              // Create a room UI_Paused, put it above the current one (append it),
              // and specify that it is a UI layer (isUi: true)
              rooms.append('UI_Paused', {
                  isUi: true
              });
              // Turns u.delta into 0, effectively stopping the game
              pixiApp.ticker.speed = 0;
          }
        arguments: {}
        lib: core
    type: template
    loopAnimation: true
    visible: true
    blendMode: normal
    animationFPS: 30
    playAnimationOnStart: false
    behaviors: []
    baseClass: AnimatedSprite
    nineSliceSettings:
      left: 16
      top: 16
      right: 16
      bottom: 16
    style: -1
    extendTypes: ''
  - name: Paused_Heading
    depth: 0
    uid: ee7454ca-ba35-4d79-9b78-83e763fd81f5
    texture: 8229085f-e4d3-406a-9e95-bf13a8fec3cb
    extends: {}
    lastmod: 1657025834098
    events: []
    type: template
    loopAnimation: true
    visible: true
    blendMode: normal
    animationFPS: 30
    playAnimationOnStart: false
    behaviors: []
    baseClass: AnimatedSprite
    nineSliceSettings:
      left: 16
      top: 16
      right: 16
      bottom: 16
    style: -1
    extendTypes: ''
  - name: Button_Continue
    depth: 0
    uid: 43938432-cf0b-416d-91e9-8bc9a1f8abcf
    texture: 775ba15c-b1aa-4707-bc1e-d0811846a893
    extends: {}
    lastmod: 1657026823472
    events:
      - eventKey: OnPointerClick
        code: |-
          if (!this.pressed) {
              this.pressed = true;
              tween.add({
                  obj: this.getRoom(),
                  fields: {
                      alpha: 0
                  },
                  duration: 1000,
                  isUi: true
              })
              .then(() => {
                  tween.add({
                      obj: pixiApp.ticker,
                      fields: {
                          speed: 1
                      },
                      duration: 1000,
                      isUi: true
                  });
                  rooms.remove(this.getRoom());
              });
          }
        arguments: {}
        lib: core
    type: template
    loopAnimation: true
    visible: true
    blendMode: normal
    animationFPS: 30
    playAnimationOnStart: false
    behaviors: []
    baseClass: AnimatedSprite
    nineSliceSettings:
      left: 16
      top: 16
      right: 16
      bottom: 16
    style: -1
    extendTypes: ''
  - name: OhNo_Heading
    depth: 0
    uid: 92049024-c0ef-41ae-8512-851ce20cad3a
    texture: ee0876e4-eece-42c2-aa93-a468dab47099
    extends: {}
    lastmod: 1657025835986
    events: []
    type: template
    loopAnimation: true
    visible: true
    blendMode: normal
    animationFPS: 30
    playAnimationOnStart: false
    behaviors: []
    baseClass: AnimatedSprite
    nineSliceSettings:
      left: 16
      top: 16
      right: 16
      bottom: 16
    style: -1
    extendTypes: ''
  - name: PressHint
    depth: 50
    uid: ba73f80b-0995-40b6-94d5-3e82712b5ecf
    texture: df915202-237f-498c-bec0-25116fc17008
    extends: {}
    lastmod: 1657025830714
    events:
      - lib: core
        arguments: {}
        code: this.pulsePhase = 0;
        eventKey: OnCreate
      - lib: core
        arguments: {}
        code: |-
          this.pulsePhase += u.delta * 0.2;

          this.scale.x = this.scale.y = 1 + Math.sin(this.pulsePhase) * 0.1;

          if (actions.Poof.pressed) {
              this.kill = true;
          }
        eventKey: OnStep
    type: template
    loopAnimation: true
    visible: true
    blendMode: normal
    animationFPS: 30
    playAnimationOnStart: false
    behaviors: []
    baseClass: AnimatedSprite
    nineSliceSettings:
      left: 16
      top: 16
      right: 16
      bottom: 16
    style: -1
    extendTypes: ''
  - name: EndGame_Star_Counter
    depth: 0
    uid: 8748598b-4494-433f-9f18-fbe985c2a583
    texture: -1
    extends: {}
    lastmod: 1708231349105
    events:
      - lib: core
        arguments: {}
        code: |-
          if (!('JettyCat_HighScore' in localStorage)) {
              localStorage['JettyCat_HighScore'] = rooms.current.stars;
          } else if (localStorage['JettyCat_HighScore'] < rooms.current.stars) {
              localStorage['JettyCat_HighScore'] = rooms.current.stars;
          }

          var scoreText = `Your score: ${rooms.current.stars}
          Highscore: ${localStorage['JettyCat_HighScore']}`;


          this.text = scoreText;
        eventKey: OnCreate
    type: template
    loopAnimation: true
    visible: true
    blendMode: normal
    animationFPS: 30
    playAnimationOnStart: false
    behaviors: []
    baseClass: Text
    nineSliceSettings:
      left: 16
      top: 16
      right: 16
      bottom: 16
    style: -1
    defaultText: 'Your score: 100500'
    textStyle: 316e5f08-494c-4570-ba65-8cd45d8b946f
    extendTypes: ''
  - type: template
    name: PotatoCat_Stunned
    depth: 0
    texture: eb3dadb5-49cf-4ba1-b562-421ab360842e
    playAnimationOnStart: false
    loopAnimation: false
    visible: true
    extends: {}
    events:
      - eventKey: OnCreate
        code: |-
          this.gravity = 2 * 60 * 60;

          // Jump to the left
          this.speed = 25 * 60;
          this.direction = -135;
        arguments: {}
        lib: core
      - eventKey: OnStep
        code: this.move();
        arguments: {}
        lib: core
    lastmod: 1657025714482
    uid: T9G6GkQ7GJj3fB
    blendMode: normal
    animationFPS: 30
    behaviors: []
    baseClass: AnimatedSprite
    nineSliceSettings:
      left: 16
      top: 16
      right: 16
      bottom: 16
    style: -1
    extendTypes: ''
  - name: InGame
    ondraw: ''
    onleave: ''
    width: 1080
    height: 1920
    backgrounds:
      - depth: -1000
        texture: 5c680919-3827-4ea7-9e72-a8fc81ddfb45
        shiftX: 0
        shiftY: 0
        parallaxX: 0.5
        parallaxY: 1
        movementX: 0
        movementY: 0
        scaleX: 1
        scaleY: 1
        repeat: repeat
      - depth: -100
        texture: 53da7582-ae6c-4843-976e-c84d6d74a489
        shiftX: 0
        shiftY: 1736
        parallaxX: 1
        parallaxY: 1
        movementX: 0
        movementY: 0
        scaleX: 1
        scaleY: 1
        repeat: repeat-x
    copies:
      - x: 320
        'y': 832
        opacity: 1
        tint: 16777215
        scale:
          x: 0.65
          'y': 0.65
        rotation: 0
        uid: 8f93611e-6e95-49c4-8e2b-4cc067be2924
        exts: {}
        customProperties: {}
    tiles:
      - depth: -10
        tiles: []
        extends: {}
        hidden: false
    uid: c51bc37f-69c9-4eec-8c2b-332dab64a25a
    thumbnail: 332dab64a25a
    gridX: 64
    gridY: 64
    lastmod: 1701064335232
    extends: {}
    events:
      - lib: core
        arguments: {}
        code: |-
          // This is where we will store the number of collected stars
          this.stars = 0;

          // Adds a UI layer on top of the main one
          this.mainUi = rooms.append('UI_InGame', {
              isUi: true
          });

          // Wind up the timer for tube creation
          this.obstacleTimer = settings.targetFps * 5;

          // Start a transition
          transition.circleIn(500, 0x446ADB);
        eventKey: OnRoomStart
      - lib: core
        arguments: {}
        code: |-
          // If there is no cat in the room…
          if (!templates.list['PotatoCat'].length) {
              // stop further execution
              return;
          }

          // Substract elapsed time from the timer
          this.obstacleTimer -= u.delta;
          // If the timer is up…
          if (this.obstacleTimer <= 0) {
              // Wind it again
              this.obstacleTimer += settings.targetFps * 2;

              // Create two tubes
              var tube1 = templates.copy('Tube', camera.right + 250, camera.bottom - 130); // At the bottom of the camera
              var tube2 = templates.copy('Tube', camera.right + 250, camera.top - 70); // At the top

              // Change second tube's texture depending on which texture is used in the first tube
              if (tube1.tex === 'Tube_01') { // Shortest tube will result in the longest tube
                  tube2.tex = 'Tube_04';
              } else if (tube1.tex === 'Tube_02') {
                  tube2.tex = 'Tube_03';
              } else if (tube1.tex === 'Tube_03') {
                  tube2.tex = 'Tube_02';
              } else if (tube1.tex === 'Tube_04') { // Longest will result in the shortest one
                  tube2.tex = 'Tube_01';
              }
              // Thus we will always get gaps of the same size, but with random tubes.

              // Now, flip the upper (second) tube
              tube2.scale.y = -1;

              // Create a star bonus with 30% chance somewhere in between top and bottom edge, with 300px padding.
              if (random.chance(30)) {
                  templates.copy('Star', camera.right + 250 + 500, random.range(camera.top + 300, camera.bottom - 300));
              }
          }
        eventKey: OnStep
    type: room
    simulate: true
    isUi: false
    follow: -1
    behaviors: []
    extendTypes: ''
  - name: MainMenu
    oncreate: ''
    onstep: ''
    ondraw: ''
    onleave: ''
    width: 1080
    height: 1920
    backgrounds:
      - depth: -1000
        texture: 5c680919-3827-4ea7-9e72-a8fc81ddfb45
        shiftX: 0
        shiftY: 0
        parallaxX: 1
        parallaxY: 1
        movementX: -30
        movementY: 0
        scaleX: 1
        scaleY: 1
        repeat: repeat
      - depth: -100
        texture: 53da7582-ae6c-4843-976e-c84d6d74a489
        shiftX: 0
        shiftY: 1736
        parallaxX: 1
        parallaxY: 1
        movementX: 0
        movementY: 0
        scaleX: 1
        scaleY: 1
        repeat: repeat-x
    copies:
      - x: 540
        'y': 384
        opacity: 1
        tint: 16777215
        scale:
          x: 1
          'y': 1
        rotation: 0
        uid: 6cd7876a-4918-47a7-8100-75f0375986ef
        exts: {}
        customProperties: {}
      - x: 540
        'y': 960
        opacity: 1
        tint: 16777215
        scale:
          x: 1
          'y': 1
        rotation: 0
        uid: 25ac0f9b-57ff-461d-8eb7-a9ce800b9c71
        exts: {}
        customProperties: {}
    tiles:
      - depth: -10
        tiles: []
        extends: {}
        hidden: false
    uid: 8677472b-4549-48b5-a5a8-a891fb029f6b
    thumbnail: a891fb029f6b
    gridX: 108
    gridY: 64
    lastmod: 1701063892309
    extends: {}
    events: []
    type: room
    simulate: true
    isUi: false
    follow: -1
    behaviors: []
    extendTypes: ''
  - name: UI_InGame
    oncreate: ''
    onstep: ''
    ondraw: ''
    onleave: ''
    width: 1080
    height: 1920
    backgrounds: []
    copies:
      - x: 128
        'y': 128
        opacity: 1
        tint: 16777215
        scale:
          x: 1
          'y': 1
        rotation: 0
        uid: d4c02f18-93d0-4ad4-8e5b-62fb9a0f0af9
        exts: {}
        customProperties: {}
      - x: 960
        'y': 128
        opacity: 1
        tint: 16777215
        scale:
          x: 1
          'y': 1
        rotation: 0
        uid: 6a532c9b-7e32-4070-b72b-86012306c7fb
        exts: {}
        customProperties: {}
      - x: 512
        'y': 960
        opacity: 1
        tint: 16777215
        scale:
          x: 1
          'y': 1
        rotation: 0
        uid: ba73f80b-0995-40b6-94d5-3e82712b5ecf
        exts: {}
        customProperties: {}
    tiles:
      - depth: -10
        tiles: []
        extends: {}
        hidden: false
    uid: dd0ac376-10c7-4619-9593-9c2c4e48f46a
    thumbnail: 9c2c4e48f46a
    gridX: 64
    gridY: 64
    lastmod: 1701063888331
    events: []
    type: room
    extends: {}
    simulate: true
    isUi: false
    follow: -1
    behaviors: []
    extendTypes: ''
  - name: UI_Paused
    onstep: ''
    ondraw: ''
    onleave: ''
    width: 1080
    height: 1920
    backgrounds: []
    copies:
      - x: 540
        'y': 1088
        opacity: 1
        tint: 16777215
        scale:
          x: 1
          'y': 1
        rotation: 0
        uid: 43938432-cf0b-416d-91e9-8bc9a1f8abcf
        exts: {}
        customProperties: {}
      - x: 540
        'y': 576
        opacity: 1
        tint: 16777215
        scale:
          x: 1
          'y': 1
        rotation: 0
        uid: ee7454ca-ba35-4d79-9b78-83e763fd81f5
        exts: {}
        customProperties: {}
    tiles:
      - depth: -10
        tiles: []
        extends: {}
        hidden: false
    uid: 78d3dac5-253d-4792-a85d-7d775aefe864
    thumbnail: 7d775aefe864
    gridX: 540
    gridY: 64
    lastmod: 1701063882563
    events:
      - lib: core
        arguments: {}
        code: |-
          this.alpha = 0;

          tween.add({
              obj: this,
              fields: {
                  alpha: 1
              },
              duration: 500,
              silent: true,
              isUi: true
          });
        eventKey: OnRoomStart
    type: room
    extends: {}
    simulate: true
    isUi: false
    follow: -1
    behaviors: []
    extendTypes: ''
  - name: UI_OhNo
    onstep: ''
    ondraw: ''
    onleave: ''
    width: 1080
    height: 1920
    backgrounds: []
    copies:
      - x: 540
        'y': 384
        opacity: 1
        tint: 16777215
        scale:
          x: 1
          'y': 1
        rotation: 0
        uid: 92049024-c0ef-41ae-8512-851ce20cad3a
        exts: {}
        customProperties: {}
        bindings: {}
      - x: 540
        'y': 1344
        opacity: 1
        tint: 16777215
        scale:
          x: 1
          'y': 1
        rotation: 0
        uid: 25ac0f9b-57ff-461d-8eb7-a9ce800b9c71
        exts: {}
        customProperties: {}
        bindings: {}
      - x: 540
        'y': 832
        opacity: 1
        tint: 16777215
        scale:
          x: 1
          'y': 1
        rotation: 0
        uid: 8748598b-4494-433f-9f18-fbe985c2a583
        exts: {}
        customProperties: {}
        bindings: {}
        customAnchor:
          x: 0.5
          'y': 0.5
        customText: |-
          Your score: 100
          Highscore: 200
    tiles:
      - depth: -10
        tiles: []
        extends: {}
        hidden: false
        cache: true
    uid: 158a085c-c48c-4b57-8e64-e38a4cd0cc21
    thumbnail: e38a4cd0cc21
    gridX: 540
    gridY: 64
    lastmod: 1708231376422
    events:
      - lib: core
        arguments: {}
        code: |-
          this.alpha = 0;

          tween.add({
              obj: this,
              fields: {
                  alpha: 1
              },
              duration: 500,
              silent: true,
              isUi: true
          });
        eventKey: OnRoomStart
    type: room
    extends: {}
    simulate: true
    isUi: false
    follow: -1
    behaviors: []
    extendTypes: ''
  - name: Orange
    uid: 316e5f08-494c-4570-ba65-8cd45d8b946f
    origname: s8cd45d8b946f
    font:
      family: sans-serif
      size: 80
      weight: '900'
      italic: false
      halign: center
    fill:
      type: '1'
      color: '#FF8B47'
      color1: '#E7A66F'
      gradtype: '1'
      color2: '#D28753'
    stroke:
      color: '#914121'
      weight: 10
    lastmod: 1584330374714
    type: style
    typeface: -1
  - name: BG_Ground
    untill: 0
    grid:
      - 1
      - 1
    axis:
      - 0
      - 0
    marginx: 0
    marginy: 0
    imgWidth: 1080
    imgHeight: 191
    width: 1080
    height: 191
    offx: 0
    offy: 0
    origname: i53da7582-ae6c-4843-976e-c84d6d74a489.png
    source: /home/comigo/UNWORK/ctjs/src/examples/JettyCat_assets/BG_Ground.png
    shape: rect
    left: 0
    right: 1080
    top: 0
    bottom: 191
    uid: 53da7582-ae6c-4843-976e-c84d6d74a489
    padding: 10
    lastmod: 1584325814705
    tiled: true
    type: texture
  - name: Button_Play
    untill: 0
    grid:
      - 1
      - 1
    axis:
      - 160
      - 166
    marginx: 0
    marginy: 0
    imgWidth: 320
    imgHeight: 332
    width: 320
    height: 332
    offx: 0
    offy: 0
    origname: i775ba15c-b1aa-4707-bc1e-d0811846a893.png
    source: /home/comigo/UNWORK/ctjs/src/examples/JettyCat_assets/Button_Play.png
    shape: circle
    left: 0
    right: 320
    top: 0
    bottom: 332
    uid: 775ba15c-b1aa-4707-bc1e-d0811846a893
    padding: 1
    r: 160
    lastmod: 1583981916068
    type: texture
  - name: Jetty_Cat
    untill: 0
    grid:
      - 1
      - 1
    axis:
      - 462
      - 174
    marginx: 0
    marginy: 0
    imgWidth: 925
    imgHeight: 349
    width: 925
    height: 349
    offx: 0
    offy: 0
    origname: i2c8009c9-ccbc-459e-8562-3146d7210e12.png
    source: /home/comigo/UNWORK/ctjs/src/examples/JettyCat_assets/Jetty Cat.png
    shape: rect
    left: 462
    right: 463
    top: 174
    bottom: 175
    uid: 2c8009c9-ccbc-459e-8562-3146d7210e12
    padding: 1
    lastmod: 1583981925180
    type: texture
  - name: Button_Pause
    untill: 0
    grid:
      - 1
      - 1
    axis:
      - 98
      - 104
    marginx: 0
    marginy: 0
    imgWidth: 196
    imgHeight: 208
    width: 196
    height: 208
    offx: 0
    offy: 0
    origname: i343c1f60-adad-4233-bfcf-c13b8aade974.png
    source: /home/comigo/UNWORK/ctjs/src/examples/JettyCat_assets/Button_Pause.png
    shape: rect
    left: 98
    right: 98
    top: 104
    bottom: 104
    uid: 343c1f60-adad-4233-bfcf-c13b8aade974
    padding: 1
    lastmod: 1584326777252
    type: texture
  - name: PotatoCat
    untill: 0
    grid:
      - 1
      - 1
    axis:
      - 285.5
      - 241.5
    marginx: 0
    marginy: 0
    imgWidth: 406
    imgHeight: 481
    width: 406
    height: 481
    offx: 0
    offy: 0
    origname: ieb24c2bc-a36c-4118-b33e-a7348c00e5bb.png
    source: /home/comigo/UNWORK/ctjs/src/examples/JettyCat_assets/PotatoCat.png
    shape: strip
    left: 0
    right: 406
    top: 0
    bottom: 481
    uid: eb24c2bc-a36c-4118-b33e-a7348c00e5bb
    padding: 1
    stripPoints:
      - x: 76
        'y': -171.5
      - x: 117
        'y': -57.5
      - x: 115
        'y': 108.5
      - x: 76
        'y': 172.5
      - x: -1.5
        'y': 197.5
      - x: -71.5
        'y': 183.5
      - x: -113
        'y': 153.5
      - x: -138
        'y': 88.5
      - x: -155
        'y': 86
      - x: -176
        'y': 68.5
      - x: -154
        'y': -59
      - x: -112
        'y': -98.5
      - x: -93
        'y': -92.5
      - x: -48.5
        'y': -171
      - x: -20
        'y': -188
      - x: 21.5
        'y': -241.5
      - x: 41.5
        'y': -184.5
    closedStrip: true
    lastmod: 1584325831430
    type: texture
  - name: PotatoCat_Stunned
    untill: 0
    grid:
      - 1
      - 1
    axis:
      - 284.5
      - 248
    marginx: 0
    marginy: 0
    imgWidth: 406
    imgHeight: 481
    width: 406
    height: 481
    offx: 0
    offy: 0
    origname: ieb3dadb5-49cf-4ba1-b562-421ab360842e.png
    source: >-
      /home/comigo/UNWORK/ctjs/src/examples/JettyCat_assets/PotatoCat_Stunned.png
    shape: rect
    left: 284
    right: 121
    top: 248
    bottom: 233
    uid: eb3dadb5-49cf-4ba1-b562-421ab360842e
    padding: 1
    lastmod: 1583982557780
    type: texture
  - name: Star
    untill: 0
    grid:
      - 1
      - 1
    axis:
      - 95
      - 91
    marginx: 0
    marginy: 0
    imgWidth: 190
    imgHeight: 183
    width: 190
    height: 183
    offx: 0
    offy: 0
    origname: i4e0a0e06-81ea-4cd2-8f3d-569a8ad3e947.png
    source: /home/comigo/UNWORK/ctjs/src/examples/JettyCat_assets/Star.png
    shape: strip
    left: 95
    right: 95
    top: 91
    bottom: 92
    uid: 4e0a0e06-81ea-4cd2-8f3d-569a8ad3e947
    padding: 1
    r: 76
    lastmod: 1584326817788
    stripPoints:
      - x: 0
        'y': -92
      - x: 18
        'y': -81.25
      - x: 36.5
        'y': -42
      - x: 91.5
        'y': -31.5
      - x: 93.5
        'y': -5.5
      - x: 60.25
        'y': 27.5
      - x: 68.5
        'y': 76.5
      - x: 49
        'y': 95.25
      - x: 0.75
        'y': 71.25
      - x: -47.277447246598406
        'y': 95.69231599041314
      - x: -66.94890225084308
        'y': 77.12227673315851
      - x: -59.149470707146506
        'y': 28.04854274444321
      - x: -92.70127668156597
        'y': -4.644557687527254
      - x: -90.94025346021978
        'y': -30.661836507839723
      - x: -36.03905088434353
        'y': -41.666742492108696
      - x: -17.900467381770937
        'y': -81.08506676547424
    closedStrip: true
    symmetryStrip: true
    type: texture
  - name: BG_Sky
    untill: 0
    grid:
      - 1
      - 1
    axis:
      - 0
      - 0
    marginx: 0
    marginy: 0
    imgWidth: 1080
    imgHeight: 1920
    width: 1080
    height: 1920
    offx: 0
    offy: 0
    origname: i5c680919-3827-4ea7-9e72-a8fc81ddfb45.png
    source: /home/comigo/UNWORK/ctjs/src/examples/JettyCat_assets/BG_Sky.png
    shape: rect
    left: 0
    right: 1080
    top: 0
    bottom: 1920
    uid: 5c680919-3827-4ea7-9e72-a8fc81ddfb45
    padding: 1
    tiled: true
    lastmod: 1583982722055
    type: texture
  - name: Pause
    untill: 0
    grid:
      - 1
      - 1
    axis:
      - 375
      - 113
    marginx: 0
    marginy: 0
    imgWidth: 750
    imgHeight: 226
    width: 750
    height: 226
    offx: 0
    offy: 0
    origname: i8229085f-e4d3-406a-9e95-bf13a8fec3cb.png
    source: /home/comigo/UNWORK/ctjs/src/examples/JettyCat_assets/Pause.png
    shape: rect
    left: 375
    right: 375
    top: 113
    bottom: 113
    uid: 8229085f-e4d3-406a-9e95-bf13a8fec3cb
    padding: 1
    lastmod: 1584326128285
    type: texture
  - name: Circle_08
    untill: 0
    grid:
      - 1
      - 1
    axis:
      - 0
      - 0
    marginx: 0
    marginy: 0
    imgWidth: 512
    imgHeight: 512
    width: 512
    height: 512
    offx: 0
    offy: 0
    origname: i74cac7dc-7259-4729-8494-53ed00563c2b.png
    source: data/particles/Circle_08.png
    shape: rect
    left: 0
    right: 512
    top: 0
    bottom: 512
    uid: 74cac7dc-7259-4729-8494-53ed00563c2b
    padding: 1
    type: texture
  - name: Tube_01
    untill: 0
    grid:
      - 1
      - 1
    axis:
      - 90.5
      - 281
    marginx: 0
    marginy: 0
    imgWidth: 225
    imgHeight: 289
    width: 225
    height: 289
    offx: 0
    offy: 0
    origname: i2034d885-1648-4872-b64a-e5367f1cb997.png
    source: /home/comigo/UNWORK/ctjs/src/examples/JettyCat_assets/Tube_01.png
    shape: strip
    left: 112
    right: 113
    top: 289
    bottom: 0
    uid: 2034d885-1648-4872-b64a-e5367f1cb997
    padding: 2
    stripPoints:
      - x: 95
        'y': -182.5
      - x: 81
        'y': -175
      - x: 79
        'y': 2
      - x: -75
        'y': 2
      - x: -75.25
        'y': -174.25
      - x: -90.5
        'y': -180.25
      - x: -90.5
        'y': -270
      - x: 94.25
        'y': -270.75
    closedStrip: true
    lastmod: 1705191188935
    type: texture
  - name: Tube_03
    untill: 0
    grid:
      - 1
      - 1
    axis:
      - 90
      - 774
    marginx: 0
    marginy: 0
    imgWidth: 225
    imgHeight: 780
    width: 225
    height: 780
    offx: 0
    offy: 0
    origname: ia565bf91-c494-4aaf-8acb-8991cc7e3eda.png
    source: /home/comigo/UNWORK/ctjs/src/examples/JettyCat_assets/Tube_03.png
    shape: strip
    left: 112
    right: 113
    top: 780
    bottom: 0
    uid: a565bf91-c494-4aaf-8acb-8991cc7e3eda
    padding: 2
    stripPoints:
      - x: 96
        'y': -763.25
      - x: 96
        'y': -674.5
      - x: 81
        'y': -667.5
      - x: 78
        'y': -2
      - x: -77
        'y': 1
      - x: -75
        'y': -668
      - x: -89.75
        'y': -674
      - x: -90
        'y': -763.5
    closedStrip: true
    lastmod: 1705191194252
    type: texture
  - name: Tube_04
    untill: 0
    grid:
      - 1
      - 1
    axis:
      - 92
      - 1059.25
    marginx: 0
    marginy: 0
    imgWidth: 225
    imgHeight: 1067
    width: 225
    height: 1067
    offx: 0
    offy: 0
    origname: i2a5e9894-e02c-44d8-aa28-7decb485b8fd.png
    source: /home/comigo/UNWORK/ctjs/src/examples/JettyCat_assets/Tube_04.png
    shape: strip
    left: 112
    right: 113
    top: 1067
    bottom: 0
    uid: 2a5e9894-e02c-44d8-aa28-7decb485b8fd
    padding: 1
    stripPoints:
      - x: 92.75
        'y': -1049.5
      - x: 94
        'y': -957
      - x: 78
        'y': -952.75
      - x: 78.75
        'y': -1.25
      - x: -76.75
        'y': 0.25
      - x: -76.25
        'y': -953
      - x: -91.75
        'y': -958.25
      - x: -91.25
        'y': -1048.75
    closedStrip: true
    lastmod: 1584326793258
    type: texture
  - name: Tube_02
    untill: 0
    grid:
      - 1
      - 1
    axis:
      - 99
      - 498
    marginx: 0
    marginy: 0
    imgWidth: 225
    imgHeight: 505
    width: 225
    height: 505
    offx: 0
    offy: 0
    origname: i2b5a51ae-c05b-4a94-b9bd-e088bf2e4b1a.png
    source: /home/comigo/UNWORK/ctjs/src/examples/JettyCat_assets/Tube_02.png
    shape: strip
    left: 112
    right: 113
    top: 505
    bottom: 0
    uid: 2b5a51ae-c05b-4a94-b9bd-e088bf2e4b1a
    padding: 2
    stripPoints:
      - x: 87.5
        'y': -397
      - x: 70.5
        'y': -393
      - x: 72
        'y': -3
      - x: -85
        'y': -4
      - x: -84.5
        'y': -392
      - x: -99
        'y': -399
      - x: -98
        'y': -488.5
      - x: 85.5
        'y': -490
    closedStrip: true
    lastmod: 1705191191118
    type: texture
  - name: OhNo
    untill: 0
    grid:
      - 1
      - 1
    axis:
      - 353
      - 175
    marginx: 0
    marginy: 0
    imgWidth: 707
    imgHeight: 351
    width: 707
    height: 351
    offx: 0
    offy: 0
    origname: iee0876e4-eece-42c2-aa93-a468dab47099.png
    source: /home/comigo/UNWORK/ctjs/src/examples/JettyCat_assets/OhNo.png
    shape: rect
    left: 353
    right: 354
    top: 175
    bottom: 176
    uid: ee0876e4-eece-42c2-aa93-a468dab47099
    padding: 1
    lastmod: 1584329597201
    type: texture
  - name: PressHint
    untill: 0
    grid:
      - 1
      - 1
    axis:
      - 128
      - 134
    marginx: 0
    marginy: 0
    imgWidth: 256
    imgHeight: 268
    width: 256
    height: 268
    offx: 0
    offy: 0
    origname: idf915202-237f-498c-bec0-25116fc17008.png
    source: /home/comigo/UNWORK/ctjs/src/examples/JettyCat_assets/PressHint.png
    shape: rect
    left: 128
    right: 128
    top: 134
    bottom: 134
    uid: df915202-237f-498c-bec0-25116fc17008
    padding: 1
    lastmod: 1585717811993
    type: texture
  - name: Jet
    emitters:
      - uid: d6a3c617-6986-40e6-b8de-116e91dd6bc2
        texture: 74cac7dc-7259-4729-8494-53ed00563c2b
        openedTabs:
          - texture
          - spawning
          - shape
        textureBehavior: textureRandom
        animatedSingleFramerate: 10
        settings:
          frequency: 0.035
          lifetime:
            min: 0.5
            max: 0.5
          spawnChance: 1
          emitterLifetime: 0
          maxParticles: 1000
          addAtBack: false
          particlesPerWave: 1
          pos:
            x: -144
            'y': 88
          behaviors:
            - type: alpha
              config:
                alpha:
                  list:
                    - value: 0
                      time: 0
                    - value: 0.835
                      time: 0.24000000000000002
                    - value: 0
                      time: 1
                  isStepped: false
            - type: color
              config:
                color:
                  list:
                    - value: ffffff
                      time: 0
                    - value: ffffff
                      time: 0.24000000000000002
                    - value: ffffff
                      time: 1
                  isStepped: false
            - type: blendMode
              config:
                blendMode: normal
            - type: scale
              config:
                scale:
                  list:
                    - value: 0.2
                      time: 0
                    - value: 0.4
                      time: 1
                  isStepped: false
                minMult: 0.16
            - type: moveSpeed
              config:
                speed:
                  list:
                    - value: 787.5
                      time: 0
                    - value: 400
                      time: 1
                  isStepped: false
                minMult: 1
            - type: spawnShape
              config:
                type: torus
                data:
                  innerRadius: 0
                  radius: 17
                  x: 0
                  'y': 0
                  rotation: true
            - type: rotation
              config:
                minStart: 92
                maxStart: 110
                minSpeed: 0
                maxSpeed: 0
                accel: 0
    uid: pt2acdfaefd987
    lastmod: 1699521109972
    type: tandem
  - name: Stars
    emitters:
      - uid: 9066d3fa-7519-4097-9023-e941e8835745
        texture: 4e0a0e06-81ea-4cd2-8f3d-569a8ad3e947
        openedTabs:
          - texture
          - colors
          - scaling
          - velocity
          - gravity
          - shape
          - spawning
        textureBehavior: textureRandom
        animatedSingleFramerate: 10
        settings:
          frequency: 0.008
          lifetime:
            min: 0.5
            max: 1
          spawnChance: 1
          emitterLifetime: 0.1
          maxParticles: 1000
          addAtBack: false
          particlesPerWave: 1
          pos:
            x: 0
            'y': 8
          behaviors:
            - type: alpha
              config:
                alpha:
                  list:
                    - value: 0
                      time: 0
                    - time: 0.11600000000000002
                      value: 0.6600000000000001
                    - value: 1
                      time: 0.5
                    - value: 0
                      time: 1
                  isStepped: false
            - type: color
              config:
                color:
                  list:
                    - value: ffffff
                      time: 0
                    - time: 0.11600000000000002
                      value: FFFFFF
                    - value: ffffff
                      time: 0.5
                    - value: ffffff
                      time: 1
                  isStepped: false
            - type: blendMode
              config:
                blendMode: normal
            - type: scale
              config:
                scale:
                  list:
                    - value: 0.19
                      time: 0
                    - time: 0.21999999999999995
                      value: 0.4
                    - time: 0.448
                      value: 0.5
                    - time: 0.728
                      value: 0.3500000000000001
                    - value: 0.04999999999999999
                      time: 1
                  isStepped: false
                minMult: !<tag:yaml.org,2002:js/undefined> ''
            - type: moveAcceleration
              config:
                minStart: 78.75
                maxStart: 787.5
                accel:
                  x: 0
                  'y': 1376
                rotate: false
                maxSpeed: 0
            - type: spawnShape
              config:
                type: torus
                data:
                  innerRadius: 0
                  radius: 65
                  x: 0
                  'y': 0
                  rotation: false
            - type: rotation
              config:
                minStart: 0
                maxStart: 360
                minSpeed: -180
                maxSpeed: 180
                accel: 0
    uid: pt550aaadb2b36
    lastmod: 1699521109972
    type: tandem
globalVars: []
