{ "firstLayout": "MainMenu", "gdVersion": { "build": 99, "major": 4, "minor": 0, "revision": 0 }, "properties": { "adaptGameResolutionAtRuntime": true, "antialiasingMode": "MSAA", "antialisingEnabledOnMobile": false, "folderProject": false, "orientation": "landscape", "packageName": "com.datacrystals.SneakySalamander", "pixelsRounding": false, "projectUuid": "cf42ef2c-31a0-4955-b502-9545c6ff56e3", "scaleMode": "linear", "sizeOnStartupMode": "adaptWidth", "templateSlug": "platformer", "useExternalSourceFiles": false, "version": "0.0.7", "name": "SneakySalamander", "description": "idk play it and find out lol.", "author": "datacrystals", "windowWidth": 2400, "windowHeight": 1350, "latestCompilationDirectory": "/home/eliott/Documents/SneakySalamander/Builds/0.0.7", "maxFPS": 120, "minFPS": 20, "verticalSync": false, "platformSpecificAssets": { "android-icon-144": "android-icon-144.png", "android-icon-192": "android-icon-192.png", "android-icon-36": "android-icon-36.png", "android-icon-48": "android-icon-48.png", "android-icon-72": "android-icon-72.png", "android-icon-96": "android-icon-96.png", "android-windowSplashScreenAnimatedIcon": "android-windowSplashScreenAnimatedIcon.png", "desktop-icon-512": "desktop-icon-512.png", "ios-icon-100": "ios-icon-100.png", "ios-icon-1024": "ios-icon-1024.png", "ios-icon-114": "ios-icon-114.png", "ios-icon-120": "ios-icon-120.png", "ios-icon-144": "ios-icon-144.png", "ios-icon-152": "ios-icon-152.png", "ios-icon-167": "ios-icon-167.png", "ios-icon-180": "ios-icon-180.png", "ios-icon-20": "ios-icon-20.png", "ios-icon-29": "ios-icon-29.png", "ios-icon-40": "ios-icon-40.png", "ios-icon-50": "ios-icon-50.png", "ios-icon-57": "ios-icon-57.png", "ios-icon-58": "ios-icon-58.png", "ios-icon-60": "ios-icon-60.png", "ios-icon-72": "ios-icon-72.png", "ios-icon-76": "ios-icon-76.png", "ios-icon-80": "ios-icon-80.png", "ios-icon-87": "ios-icon-87.png", "liluo-thumbnail": "Assets/Images/Common/Salamander/Salamander_Idle1.png" }, "loadingScreen": { "backgroundColor": 0, "backgroundFadeInDuration": 0.2, "backgroundImageResourceName": "AssetDev/Sinage/Title/Title.png", "gdevelopLogoStyle": "light", "logoAndProgressFadeInDuration": 0.1, "logoAndProgressLogoFadeInDelay": 0.1, "minDuration": 2, "progressBarColor": 16777215, "progressBarHeight": 20, "progressBarMaxWidth": 0, "progressBarMinWidth": 40, "progressBarWidthPercent": 45, "showGDevelopSplash": false, "showProgressBar": true }, "watermark": { "placement": "bottom-left", "showWatermark": false }, "authorIds": [], "authorUsernames": [], "categories": [], "playableDevices": [ "keyboard", "gamepad", "mobile" ], "extensionProperties": [], "platforms": [ { "name": "GDevelop JS platform" } ], "currentPlatform": "GDevelop JS platform" }, "resources": { "resources": [ { "alwaysLoaded": false, "file": "AssetDev/Salamander/Salamander_Idle1.png", "kind": "image", "metadata": "", "name": "AssetDev/Salamander/Salamander_Idle1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Salamander/Salamander_Idle2.png", "kind": "image", "metadata": "", "name": "AssetDev/Salamander/Salamander_Idle2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Salamander/Salamander_Idle3.png", "kind": "image", "metadata": "", "name": "AssetDev/Salamander/Salamander_Idle3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Salamander/Salamander_Idle4.png", "kind": "image", "metadata": "", "name": "AssetDev/Salamander/Salamander_Idle4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Salamander/Salamander_Walk1.png", "kind": "image", "metadata": "", "name": "AssetDev/Salamander/Salamander_Walk1.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/Salamander/Salamander_Walk2.png", "kind": "image", "metadata": "", "name": "AssetDev/Salamander/Salamander_Walk2.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/Salamander/Salamander_Walk3.png", "kind": "image", "metadata": "", "name": "AssetDev/Salamander/Salamander_Walk3.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/Salamander/Salamander_Walk4.png", "kind": "image", "metadata": "", "name": "AssetDev/Salamander/Salamander_Walk4.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/Ladder/Ladder.png", "kind": "image", "metadata": "", "name": "AssetDev/Ladder/Ladder.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/StaticPlatform/StaticPlatform.png", "kind": "image", "metadata": "", "name": "AssetDev/StaticPlatform/StaticPlatform.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/FlyingEnemy/FlyingEnemy_4.png", "kind": "image", "metadata": "", "name": "AssetDev/FlyingEnemy/FlyingEnemy_4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/FlyingEnemy/FlyingEnemy_3.png", "kind": "image", "metadata": "", "name": "AssetDev/FlyingEnemy/FlyingEnemy_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/FlyingEnemy/FlyingEnemy_2.png", "kind": "image", "metadata": "", "name": "AssetDev/FlyingEnemy/FlyingEnemy_2.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/FlyingEnemy/FlyingEnemy_1.png", "kind": "image", "metadata": "", "name": "AssetDev/FlyingEnemy/FlyingEnemy_1.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/Portal/Portal.png", "kind": "image", "metadata": "", "name": "AssetDev/Portal/Portal.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/LargeIsland/LargeIsland.png", "kind": "image", "metadata": "", "name": "AssetDev/LargeIsland/LargeIsland.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/MediumIsland/MediumIsland.png", "kind": "image", "metadata": "", "name": "AssetDev/MediumIsland/MediumIsland.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/MovingIsland/MovingIsland_4.png", "kind": "image", "metadata": "", "name": "AssetDev/MovingIsland/MovingIsland_4.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/MovingIsland/MovingIsland_3.png", "kind": "image", "metadata": "", "name": "AssetDev/MovingIsland/MovingIsland_3.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/MovingIsland/MovingIsland_2.png", "kind": "image", "metadata": "", "name": "AssetDev/MovingIsland/MovingIsland_2.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/MovingIsland/MovingIsland_1.png", "kind": "image", "metadata": "", "name": "AssetDev/MovingIsland/MovingIsland_1.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/FireEnemy/FireEnemy_NoFire_1.png", "kind": "image", "metadata": "", "name": "AssetDev/FireEnemy/FireEnemy_NoFire_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/FireEnemy/FireEnemy_NoFire_4.png", "kind": "image", "metadata": "", "name": "AssetDev/FireEnemy/FireEnemy_NoFire_4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/FireEnemy/FireEnemy_NoFire_3.png", "kind": "image", "metadata": "", "name": "AssetDev/FireEnemy/FireEnemy_NoFire_3.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/FireEnemy/FireEnemy_NoFire_2.png", "kind": "image", "metadata": "", "name": "AssetDev/FireEnemy/FireEnemy_NoFire_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/FireEnemy/FireEnemy_WithFire_4.png", "kind": "image", "metadata": "", "name": "AssetDev/FireEnemy/FireEnemy_WithFire_4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/FireEnemy/FireEnemy_WithFire_3.png", "kind": "image", "metadata": "", "name": "AssetDev/FireEnemy/FireEnemy_WithFire_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/FireEnemy/FireEnemy_WithFire_2.png", "kind": "image", "metadata": "", "name": "AssetDev/FireEnemy/FireEnemy_WithFire_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/FireEnemy/FireEnemy_WithFire_1.png", "kind": "image", "metadata": "", "name": "AssetDev/FireEnemy/FireEnemy_WithFire_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/LargeIsland/LargeIsland_4.png", "kind": "image", "metadata": "", "name": "AssetDev/LargeIsland/LargeIsland_4.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/LargeIsland/LargeIsland_3.png", "kind": "image", "metadata": "", "name": "AssetDev/LargeIsland/LargeIsland_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/LargeIsland/LargeIsland_2.png", "kind": "image", "metadata": "", "name": "AssetDev/LargeIsland/LargeIsland_2.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/LargeIsland/LargeIsland_1.png", "kind": "image", "metadata": "", "name": "AssetDev/LargeIsland/LargeIsland_1.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/Ladder/Ladder_4.png", "kind": "image", "metadata": "", "name": "AssetDev/Ladder/Ladder_4.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/Ladder/Ladder_3.png", "kind": "image", "metadata": "", "name": "AssetDev/Ladder/Ladder_3.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/Ladder/Ladder_2.png", "kind": "image", "metadata": "", "name": "AssetDev/Ladder/Ladder_2.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/Ladder/Ladder_1.png", "kind": "image", "metadata": "", "name": "AssetDev/Ladder/Ladder_1.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/RectangularPlatform/RectangularPlatform_4.png", "kind": "image", "metadata": "", "name": "AssetDev/RectangularPlatform/RectangularPlatform_4.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/RectangularPlatform/RectangularPlatform_3.png", "kind": "image", "metadata": "", "name": "AssetDev/RectangularPlatform/RectangularPlatform_3.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/RectangularPlatform/RectangularPlatform_2.png", "kind": "image", "metadata": "", "name": "AssetDev/RectangularPlatform/RectangularPlatform_2.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/RectangularPlatform/RectangularPlatform_1.png", "kind": "image", "metadata": "", "name": "AssetDev/RectangularPlatform/RectangularPlatform_1.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/HeartCoin/HeartCoin_2.png", "kind": "image", "metadata": "", "name": "AssetDev/HeartCoin/HeartCoin_2.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/HeartCoin/HeartCoin_1.png", "kind": "image", "metadata": "", "name": "AssetDev/HeartCoin/HeartCoin_1.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/Checkpoint/Checkpoint_Closed_3.png", "kind": "image", "metadata": "", "name": "AssetDev/Checkpoint/Checkpoint_Closed_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Checkpoint/Checkpoint_Closed_2.png", "kind": "image", "metadata": "", "name": "AssetDev/Checkpoint/Checkpoint_Closed_2.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/Checkpoint/Checkpoint_Closed_1.png", "kind": "image", "metadata": "", "name": "AssetDev/Checkpoint/Checkpoint_Closed_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Checkpoint/Checkpoint_Open_3.png", "kind": "image", "metadata": "", "name": "AssetDev/Checkpoint/Checkpoint_Open_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Checkpoint/Checkpoint_Open_2.png", "kind": "image", "metadata": "", "name": "AssetDev/Checkpoint/Checkpoint_Open_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Checkpoint/Checkpoint_Open_1.png", "kind": "image", "metadata": "", "name": "AssetDev/Checkpoint/Checkpoint_Open_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Portal/Portal_2.png", "kind": "image", "metadata": "", "name": "AssetDev/Portal/Portal_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Portal/Portal_1.png", "kind": "image", "metadata": "", "name": "AssetDev/Portal/Portal_1.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/Arrow/Arrow.png", "kind": "image", "metadata": "", "name": "AssetDev/Arrow/Arrow.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Sinage/Jump/Jump.png", "kind": "image", "metadata": "", "name": "AssetDev/Sinage/Jump/Jump.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Backgrounds/Mountains/Mountains_1.png", "kind": "image", "metadata": "", "name": "AssetDev/Backgrounds/Mountains/Mountains_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Backgrounds/Mountains/Mountains_2.png", "kind": "image", "metadata": "", "name": "AssetDev/Backgrounds/Mountains/Mountains_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Sinage/Collect/Collect.png", "kind": "image", "metadata": "", "name": "AssetDev/Sinage/Collect/Collect.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Sinage/Kill/Kill.png", "kind": "image", "metadata": "", "name": "AssetDev/Sinage/Kill/Kill.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Sinage/CheckPoint/CheckPoint.png", "kind": "image", "metadata": "", "name": "AssetDev/Sinage/CheckPoint/CheckPoint.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Sinage/DownArrow/DownArrow.png", "kind": "image", "metadata": "", "name": "AssetDev/Sinage/DownArrow/DownArrow.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Particles/Drop/Drop.png", "kind": "image", "metadata": "", "name": "AssetDev/Particles/Drop/Drop.png", "smoothed": true, "userAdded": true }, { "file": "AssetDev/Audio/509444__erokia__ambient-wave-54-msfxp7-1_3-psess.wav", "kind": "audio", "metadata": "", "name": "AssetDev/Audio/509444__erokia__ambient-wave-54-msfxp7-1_3-psess.wav", "preloadAsMusic": false, "preloadAsSound": false, "preloadInCache": false, "userAdded": true }, { "file": "AssetDev/Audio/Heartbeat_Amplified.wav", "kind": "audio", "metadata": "", "name": "AssetDev/Audio/Heartbeat_Amplified.wav", "preloadAsMusic": false, "preloadAsSound": false, "preloadInCache": false, "userAdded": true }, { "file": "AssetDev/Audio/Squelch.wav", "kind": "audio", "metadata": "", "name": "AssetDev/Audio/Squelch.wav", "preloadAsMusic": false, "preloadAsSound": false, "preloadInCache": false, "userAdded": true }, { "file": "AssetDev/Audio/DeathSound.wav", "kind": "audio", "metadata": "", "name": "AssetDev/Audio/DeathSound.wav", "preloadAsMusic": false, "preloadAsSound": false, "preloadInCache": false, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Sinage/Death/Death.png", "kind": "image", "metadata": "", "name": "AssetDev/Sinage/Death/Death.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Moon/Moon.png", "kind": "image", "metadata": "", "name": "AssetDev/Moon/Moon.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Sinage/Title/Title.png", "kind": "image", "metadata": "", "name": "AssetDev/Sinage/Title/Title.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Sinage/Proceed/Proceed.png", "kind": "image", "metadata": "", "name": "AssetDev/Sinage/Proceed/Proceed.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Backgrounds/Forest/Forest.png", "kind": "image", "metadata": "", "name": "AssetDev/Backgrounds/Forest/Forest.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/MediumIsland/MediumIsland_1.png", "kind": "image", "metadata": "", "name": "AssetDev/MediumIsland/MediumIsland_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/MediumIsland/MediumIsland_2.png", "kind": "image", "metadata": "", "name": "AssetDev/MediumIsland/MediumIsland_2.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/MediumIsland/MediumIsland_3.png", "kind": "image", "metadata": "", "name": "AssetDev/MediumIsland/MediumIsland_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/MediumIsland/MediumIsland_4.png", "kind": "image", "metadata": "", "name": "AssetDev/MediumIsland/MediumIsland_4.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/Sinage/TutorialKeys/TutorialKeysWide_Space.png", "kind": "image", "metadata": "", "name": "AssetDev/Sinage/TutorialKeys/TutorialKeysWide_Space.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Sinage/TutorialKeys/TutorialKeys_W.png", "kind": "image", "metadata": "", "name": "AssetDev/Sinage/TutorialKeys/TutorialKeys_W.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Sinage/TutorialKeys/TutorialKeys_A.png", "kind": "image", "metadata": "", "name": "AssetDev/Sinage/TutorialKeys/TutorialKeys_A.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Sinage/TutorialKeys/TutorialKeys_D.png", "kind": "image", "metadata": "", "name": "AssetDev/Sinage/TutorialKeys/TutorialKeys_D.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Sinage/TutorialKeys/TutorialKeys_S.png", "kind": "image", "metadata": "", "name": "AssetDev/Sinage/TutorialKeys/TutorialKeys_S.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/FireEnemy/FireEnemy_WithRedFire_1.png", "kind": "image", "metadata": "", "name": "AssetDev/FireEnemy/FireEnemy_WithRedFire_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/FireEnemy/FireEnemy_WithRedFire_2.png", "kind": "image", "metadata": "", "name": "AssetDev/FireEnemy/FireEnemy_WithRedFire_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/FireEnemy/FireEnemy_WithRedFire_3.png", "kind": "image", "metadata": "", "name": "AssetDev/FireEnemy/FireEnemy_WithRedFire_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/FireEnemy/FireEnemy_WithRedFire_4.png", "kind": "image", "metadata": "", "name": "AssetDev/FireEnemy/FireEnemy_WithRedFire_4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Backgrounds/Ocean/Ocean.png", "kind": "image", "metadata": "", "name": "AssetDev/Backgrounds/Ocean/Ocean.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/HeartCoin/HeartCoin_Blank.png", "kind": "image", "metadata": "", "name": "AssetDev/HeartCoin/HeartCoin_Blank.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/HeartCoin/HeartIcon.png", "kind": "image", "metadata": "", "name": "AssetDev/HeartCoin/HeartIcon.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/HeartCoin/HeartIcon_Blank.png", "kind": "image", "metadata": "", "name": "AssetDev/HeartCoin/HeartIcon_Blank.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Sinage/LifeForceBar/LifeForceBar_Frame.png", "kind": "image", "metadata": "", "name": "AssetDev/Sinage/LifeForceBar/LifeForceBar_Frame.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Sinage/LifeForceBar/LifeForceBar_Content.png", "kind": "image", "metadata": "", "name": "AssetDev/Sinage/LifeForceBar/LifeForceBar_Content.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Sinage/Lives/Lives.png", "kind": "image", "metadata": "", "name": "AssetDev/Sinage/Lives/Lives.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Sinage/LifeForce/LifeForce.png", "kind": "image", "metadata": "", "name": "AssetDev/Sinage/LifeForce/LifeForce.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_Mountains1.png", "kind": "image", "metadata": "", "name": "AssetDev/Memories/Memories_Mountains1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_Mountains2.png", "kind": "image", "metadata": "", "name": "AssetDev/Memories/Memories_Mountains2.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_Mountains3.png", "kind": "image", "metadata": "", "name": "AssetDev/Memories/Memories_Mountains3.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_Mountains4.png", "kind": "image", "metadata": "", "name": "AssetDev/Memories/Memories_Mountains4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Shatter/Shatter.png", "kind": "image", "metadata": "", "name": "AssetDev/Shatter/Shatter.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Shatter/ShatterScaled.png", "kind": "image", "metadata": "", "name": "AssetDev/Shatter/ShatterScaled.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Sinage/YouDied/YouDied.png", "kind": "image", "metadata": "", "name": "AssetDev/Sinage/YouDied/YouDied.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Sinage/ProceedButton/ProceedButton_Idle.png", "kind": "image", "metadata": "", "name": "AssetDev/Sinage/ProceedButton/ProceedButton_Idle.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Sinage/ProceedButton/ProceedButton_Hovered.png", "kind": "image", "metadata": "", "name": "AssetDev/Sinage/ProceedButton/ProceedButton_Hovered.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Sinage/ProceedButton/ProceedButton_Pressed.png", "kind": "image", "metadata": "", "name": "AssetDev/Sinage/ProceedButton/ProceedButton_Pressed.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Sinage/MemoryAcquired/MemoryAcquired.png", "kind": "image", "metadata": "", "name": "AssetDev/Sinage/MemoryAcquired/MemoryAcquired.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Entities/HorizontalDemon/HorizontalDemon_1.png", "kind": "image", "metadata": "", "name": "AssetDev/Entities/HorizontalDemon/HorizontalDemon_1.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/Entities/HorizontalDemon/HorizontalDemon_2.png", "kind": "image", "metadata": "", "name": "AssetDev/Entities/HorizontalDemon/HorizontalDemon_2.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/Entities/HorizontalDemon/HorizontalDemon_3.png", "kind": "image", "metadata": "", "name": "AssetDev/Entities/HorizontalDemon/HorizontalDemon_3.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/Entities/HorizontalDemon/HorizontalDemon_4.png", "kind": "image", "metadata": "", "name": "AssetDev/Entities/HorizontalDemon/HorizontalDemon_4.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/Entities/ShootingSpikeDemon/ShootingSpikeDemon_1.png", "kind": "image", "metadata": "", "name": "AssetDev/Entities/ShootingSpikeDemon/ShootingSpikeDemon_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Entities/ShootingSpikeDemon/ShootingSpikeDemon_2.png", "kind": "image", "metadata": "", "name": "AssetDev/Entities/ShootingSpikeDemon/ShootingSpikeDemon_2.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/Entities/ShootingSpikeDemon/ShootingSpikeDemon_3.png", "kind": "image", "metadata": "", "name": "AssetDev/Entities/ShootingSpikeDemon/ShootingSpikeDemon_3.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/Entities/ShootingSpikeDemon/Spike_1.png", "kind": "image", "metadata": "", "name": "AssetDev/Entities/ShootingSpikeDemon/Spike_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Entities/ShootingSpikeDemon/Spike_2.png", "kind": "image", "metadata": "", "name": "AssetDev/Entities/ShootingSpikeDemon/Spike_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Entities/ShootingSpikeDemon/Spike_3.png", "kind": "image", "metadata": "", "name": "AssetDev/Entities/ShootingSpikeDemon/Spike_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Entities/ShootingSpikeDemon/Spike_4.png", "kind": "image", "metadata": "", "name": "AssetDev/Entities/ShootingSpikeDemon/Spike_4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Backgrounds/Beach/Beach.png", "kind": "image", "metadata": "", "name": "AssetDev/Backgrounds/Beach/Beach.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Platforms/VerticalMovingPlatform/VerticalMovingPlatform_1.png", "kind": "image", "metadata": "", "name": "AssetDev/Platforms/VerticalMovingPlatform/VerticalMovingPlatform_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Platforms/VerticalMovingPlatform/VerticalMovingPlatform_2.png", "kind": "image", "metadata": "", "name": "AssetDev/Platforms/VerticalMovingPlatform/VerticalMovingPlatform_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Platforms/VerticalMovingPlatform/VerticalMovingPlatform_3.png", "kind": "image", "metadata": "", "name": "AssetDev/Platforms/VerticalMovingPlatform/VerticalMovingPlatform_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Platforms/DiagonallyMovingPlatform/DiagonallyMovingPlatform_1.png", "kind": "image", "metadata": "", "name": "AssetDev/Platforms/DiagonallyMovingPlatform/DiagonallyMovingPlatform_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Platforms/DiagonallyMovingPlatform/DiagonallyMovingPlatform_2.png", "kind": "image", "metadata": "", "name": "AssetDev/Platforms/DiagonallyMovingPlatform/DiagonallyMovingPlatform_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Platforms/DiagonallyMovingPlatform/DiagonallyMovingPlatform_3.png", "kind": "image", "metadata": "", "name": "AssetDev/Platforms/DiagonallyMovingPlatform/DiagonallyMovingPlatform_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Platforms/DiagonallyMovingPlatform/DiagonallyMovingPlatform_4.png", "kind": "image", "metadata": "", "name": "AssetDev/Platforms/DiagonallyMovingPlatform/DiagonallyMovingPlatform_4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Platforms/FlippingPlatform/FlippingPlatform_1.png", "kind": "image", "metadata": "", "name": "AssetDev/Platforms/FlippingPlatform/FlippingPlatform_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Platforms/FlippingPlatform/FlippingPlatform_2.png", "kind": "image", "metadata": "", "name": "AssetDev/Platforms/FlippingPlatform/FlippingPlatform_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Platforms/FlippingPlatform/FlippingPlatform_3.png", "kind": "image", "metadata": "", "name": "AssetDev/Platforms/FlippingPlatform/FlippingPlatform_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Platforms/FlippingPlatform/FlippingPlatform_4.png", "kind": "image", "metadata": "", "name": "AssetDev/Platforms/FlippingPlatform/FlippingPlatform_4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Entities/StalactiteDemon/StalactiteDemon_1.png", "kind": "image", "metadata": "", "name": "AssetDev/Entities/StalactiteDemon/StalactiteDemon_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Entities/StalactiteDemon/StalactiteDemon_2.png", "kind": "image", "metadata": "", "name": "AssetDev/Entities/StalactiteDemon/StalactiteDemon_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Entities/StalactiteDemon/StalactiteDemon_3.png", "kind": "image", "metadata": "", "name": "AssetDev/Entities/StalactiteDemon/StalactiteDemon_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Entities/StalactiteDemon/Stalatgite_1.png", "kind": "image", "metadata": "", "name": "AssetDev/Entities/StalactiteDemon/Stalatgite_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Entities/StalactiteDemon/Stalatgite_2.png", "kind": "image", "metadata": "", "name": "AssetDev/Entities/StalactiteDemon/Stalatgite_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Entities/StalactiteDemon/Stalatgite_3.png", "kind": "image", "metadata": "", "name": "AssetDev/Entities/StalactiteDemon/Stalatgite_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_Beach1.png", "kind": "image", "metadata": "", "name": "AssetDev/Memories/Memories_Beach1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_Beach2.png", "kind": "image", "metadata": "", "name": "AssetDev/Memories/Memories_Beach2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_Beach3.png", "kind": "image", "metadata": "", "name": "AssetDev/Memories/Memories_Beach3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_Beach4.png", "kind": "image", "metadata": "", "name": "AssetDev/Memories/Memories_Beach4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_Forest1.png", "kind": "image", "metadata": "", "name": "AssetDev/Memories/Memories_Forest1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_Forest2.png", "kind": "image", "metadata": "", "name": "AssetDev/Memories/Memories_Forest2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_Forest3.png", "kind": "image", "metadata": "", "name": "AssetDev/Memories/Memories_Forest3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_Forest4.png", "kind": "image", "metadata": "", "name": "AssetDev/Memories/Memories_Forest4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Backgrounds/LivingRoom/LivingRoom.png", "kind": "image", "metadata": "", "name": "AssetDev/Backgrounds/LivingRoom/LivingRoom.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_Ocean1.png", "kind": "image", "metadata": "", "name": "AssetDev/Memories/Memories_Ocean1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_Ocean2.png", "kind": "image", "metadata": "", "name": "AssetDev/Memories/Memories_Ocean2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_Ocean3.png", "kind": "image", "metadata": "", "name": "AssetDev/Memories/Memories_Ocean3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_Ocean4.png", "kind": "image", "metadata": "", "name": "AssetDev/Memories/Memories_Ocean4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Backgrounds/Infrastructure/Infrastructure.png", "kind": "image", "metadata": "", "name": "AssetDev/Backgrounds/Infrastructure/Infrastructure.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Decorations/ServerRack/Rack_1.png", "kind": "image", "metadata": "", "name": "AssetDev/Decorations/ServerRack/Rack_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Decorations/ServerRack/Rack_2.png", "kind": "image", "metadata": "", "name": "AssetDev/Decorations/ServerRack/Rack_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Decorations/Server/Server_1.png", "kind": "image", "metadata": "", "name": "AssetDev/Decorations/Server/Server_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Decorations/Server/Server_2.png", "kind": "image", "metadata": "", "name": "AssetDev/Decorations/Server/Server_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Decorations/MemoryHolder/MemoryHolder_1.png", "kind": "image", "metadata": "", "name": "AssetDev/Decorations/MemoryHolder/MemoryHolder_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Decorations/MemoryHolder/MemoryHolder_2.png", "kind": "image", "metadata": "", "name": "AssetDev/Decorations/MemoryHolder/MemoryHolder_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Platforms/MindscapeFloor/MindscapeFloor_1.png", "kind": "image", "metadata": "", "name": "AssetDev/Platforms/MindscapeFloor/MindscapeFloor_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Platforms/MindscapeFloor/MindscapeFloor_2.png", "kind": "image", "metadata": "", "name": "AssetDev/Platforms/MindscapeFloor/MindscapeFloor_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Sinage/TutorialKeys/TutorialKeys_E.png", "kind": "image", "metadata": "", "name": "AssetDev/Sinage/TutorialKeys/TutorialKeys_E.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_LivingRoom1.png", "kind": "image", "metadata": "", "name": "AssetDev/Memories/Memories_LivingRoom1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_LivingRoom2.png", "kind": "image", "metadata": "", "name": "AssetDev/Memories/Memories_LivingRoom2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_LivingRoom3.png", "kind": "image", "metadata": "", "name": "AssetDev/Memories/Memories_LivingRoom3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_LivingRoom4.png", "kind": "image", "metadata": "", "name": "AssetDev/Memories/Memories_LivingRoom4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_School1.png", "kind": "image", "metadata": "", "name": "AssetDev/Memories/Memories_School1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_School2.png", "kind": "image", "metadata": "", "name": "AssetDev/Memories/Memories_School2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_School3.png", "kind": "image", "metadata": "", "name": "AssetDev/Memories/Memories_School3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_School4.png", "kind": "image", "metadata": "", "name": "AssetDev/Memories/Memories_School4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Backgrounds/School/School.png", "kind": "image", "metadata": "", "name": "AssetDev/Backgrounds/School/School.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_WhimsicalTree1.png", "kind": "image", "metadata": "", "name": "AssetDev/Memories/Memories_WhimsicalTree1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_WhimsicalTree2.png", "kind": "image", "metadata": "", "name": "AssetDev/Memories/Memories_WhimsicalTree2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_WhimsicalTree3.png", "kind": "image", "metadata": "", "name": "AssetDev/Memories/Memories_WhimsicalTree3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_WhimsicalTree4.png", "kind": "image", "metadata": "", "name": "AssetDev/Memories/Memories_WhimsicalTree4.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/Backgrounds/WhimsicalTree/WhimsicalTree.png", "kind": "image", "metadata": "", "name": "AssetDev/Backgrounds/WhimsicalTree/WhimsicalTree.png", "smoothed": true, "userAdded": true }, { "file": "Assets/Sounds/Checkpoint/Activate.wav", "kind": "audio", "metadata": "", "name": "Assets/Sounds/Checkpoint/Activate.wav", "preloadAsMusic": false, "preloadAsSound": false, "preloadInCache": false, "userAdded": true }, { "file": "Assets/Sounds/RandomSounds/RandomAmbiance1.wav", "kind": "audio", "metadata": "", "name": "Assets/Sounds/RandomSounds/RandomAmbiance1.wav", "preloadAsMusic": false, "preloadAsSound": false, "preloadInCache": false, "userAdded": true }, { "file": "Assets/Sounds/RandomSounds/RandomAmbiance2.wav", "kind": "audio", "metadata": "", "name": "Assets/Sounds/RandomSounds/RandomAmbiance2.wav", "preloadAsMusic": false, "preloadAsSound": false, "preloadInCache": false, "userAdded": true }, { "file": "Assets/Sounds/RandomSounds/RandomAmbiance3.wav", "kind": "audio", "metadata": "", "name": "Assets/Sounds/RandomSounds/RandomAmbiance3.wav", "preloadAsMusic": false, "preloadAsSound": false, "preloadInCache": false, "userAdded": true }, { "file": "Assets/Sounds/Portal/PortalInteract.wav", "kind": "audio", "metadata": "", "name": "Assets/Sounds/Portal/PortalInteract.wav", "preloadAsMusic": false, "preloadAsSound": false, "preloadInCache": false, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Credits/Titles/SoundDesign/SoundDesign.png", "kind": "image", "metadata": "", "name": "Assets/Images/Credits/Titles/SoundDesign/SoundDesign.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Credits/Colon/Colon.png", "kind": "image", "metadata": "", "name": "Assets/Images/Credits/Colon/Colon.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Credits/Names/DylanMooney/DylanMooney.png", "kind": "image", "metadata": "", "name": "Assets/Images/Credits/Names/DylanMooney/DylanMooney.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Credits/Background/Background.png", "kind": "image", "metadata": "", "name": "Assets/Images/Credits/Background/Background.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Credits/Titles/Director/Director.png", "kind": "image", "metadata": "", "name": "Assets/Images/Credits/Titles/Director/Director.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Credits/Names/ThomasLiao/ThomasLiao.png", "kind": "image", "metadata": "", "name": "Assets/Images/Credits/Names/ThomasLiao/ThomasLiao.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "Assets/Images/Credits/Names/AlexHu/AlexHu.png", "kind": "image", "metadata": "", "name": "Assets/Images/Credits/Names/AlexHu/AlexHu.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Credits/SneakySalamander/SneakySalamander.png", "kind": "image", "metadata": "", "name": "Assets/Images/Credits/SneakySalamander/SneakySalamander.png", "smoothed": true, "userAdded": false }, { "file": "Assets/Sounds/Levels/1/AmbientLoop.ogg", "kind": "audio", "metadata": "", "name": "Assets/Sounds/Levels/1/AmbientLoop.ogg", "preloadAsMusic": false, "preloadAsSound": false, "preloadInCache": false, "userAdded": true }, { "file": "Assets/Sounds/Levels/3/AmbientLoop.ogg", "kind": "audio", "metadata": "", "name": "Assets/Sounds/Levels/3/AmbientLoop.ogg", "preloadAsMusic": false, "preloadAsSound": false, "preloadInCache": false, "userAdded": true }, { "file": "Assets/Sounds/Levels/6/AmbientLoop.ogg", "kind": "audio", "metadata": "", "name": "Assets/Sounds/Levels/6/AmbientLoop.ogg", "preloadAsMusic": false, "preloadAsSound": false, "preloadInCache": false, "userAdded": true }, { "file": "Assets/Sounds/Levels/0/AmbientLoop.ogg", "kind": "audio", "metadata": "", "name": "Assets/Sounds/Levels/0/AmbientLoop.ogg", "preloadAsMusic": false, "preloadAsSound": false, "preloadInCache": false, "userAdded": true }, { "file": "Assets/Sounds/Levels/5/AmbientLoop.ogg", "kind": "audio", "metadata": "", "name": "Assets/Sounds/Levels/5/AmbientLoop.ogg", "preloadAsMusic": false, "preloadAsSound": false, "preloadInCache": false, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Common/Border/Border.png", "kind": "image", "metadata": "", "name": "Assets/Images/Common/Border/Border.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Common/Black/Black.png", "kind": "image", "metadata": "", "name": "Assets/Images/Common/Black/Black.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Common/Salamander/Salamander_Idle1.png", "kind": "image", "metadata": "", "name": "Assets/Images/Common/Salamander/Salamander_Idle1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "desktop-icon-512.png", "kind": "image", "metadata": "", "name": "desktop-icon-512.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "android-icon-192.png", "kind": "image", "metadata": "", "name": "android-icon-192.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "android-icon-144.png", "kind": "image", "metadata": "", "name": "android-icon-144.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "android-icon-96.png", "kind": "image", "metadata": "", "name": "android-icon-96.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "android-icon-72.png", "kind": "image", "metadata": "", "name": "android-icon-72.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "android-icon-48.png", "kind": "image", "metadata": "", "name": "android-icon-48.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "android-icon-36.png", "kind": "image", "metadata": "", "name": "android-icon-36.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "android-windowSplashScreenAnimatedIcon.png", "kind": "image", "metadata": "", "name": "android-windowSplashScreenAnimatedIcon.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "ios-icon-1024.png", "kind": "image", "metadata": "", "name": "ios-icon-1024.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "ios-icon-180.png", "kind": "image", "metadata": "", "name": "ios-icon-180.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "ios-icon-167.png", "kind": "image", "metadata": "", "name": "ios-icon-167.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "ios-icon-152.png", "kind": "image", "metadata": "", "name": "ios-icon-152.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "ios-icon-144.png", "kind": "image", "metadata": "", "name": "ios-icon-144.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "ios-icon-120.png", "kind": "image", "metadata": "", "name": "ios-icon-120.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "ios-icon-114.png", "kind": "image", "metadata": "", "name": "ios-icon-114.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "ios-icon-100.png", "kind": "image", "metadata": "", "name": "ios-icon-100.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "ios-icon-87.png", "kind": "image", "metadata": "", "name": "ios-icon-87.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "ios-icon-80.png", "kind": "image", "metadata": "", "name": "ios-icon-80.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "ios-icon-76.png", "kind": "image", "metadata": "", "name": "ios-icon-76.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "ios-icon-72.png", "kind": "image", "metadata": "", "name": "ios-icon-72.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "ios-icon-60.png", "kind": "image", "metadata": "", "name": "ios-icon-60.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "ios-icon-58.png", "kind": "image", "metadata": "", "name": "ios-icon-58.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "ios-icon-57.png", "kind": "image", "metadata": "", "name": "ios-icon-57.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "ios-icon-50.png", "kind": "image", "metadata": "", "name": "ios-icon-50.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "ios-icon-40.png", "kind": "image", "metadata": "", "name": "ios-icon-40.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "ios-icon-29.png", "kind": "image", "metadata": "", "name": "ios-icon-29.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "ios-icon-20.png", "kind": "image", "metadata": "", "name": "ios-icon-20.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Common/Salamander/Salamander_Idle4.png", "kind": "image", "metadata": "", "name": "Assets/Images/Common/Salamander/Salamander_Idle4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Common/Salamander/Salamander_Idle3.png", "kind": "image", "metadata": "", "name": "Assets/Images/Common/Salamander/Salamander_Idle3.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "Assets/Images/Common/Salamander/Salamander_Idle2.png", "kind": "image", "metadata": "", "name": "Assets/Images/Common/Salamander/Salamander_Idle2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Common/Salamander/Salamander_Walk4.png", "kind": "image", "metadata": "", "name": "Assets/Images/Common/Salamander/Salamander_Walk4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Common/Salamander/Salamander_Walk3.png", "kind": "image", "metadata": "", "name": "Assets/Images/Common/Salamander/Salamander_Walk3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Common/Salamander/Salamander_Walk2.png", "kind": "image", "metadata": "", "name": "Assets/Images/Common/Salamander/Salamander_Walk2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Common/Salamander/Salamander_Walk1.png", "kind": "image", "metadata": "", "name": "Assets/Images/Common/Salamander/Salamander_Walk1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "assets/Transparent Button With White Yellow Border_Hovered.png", "kind": "image", "metadata": "", "name": "Transparent Button With White Yellow Border_Hovered.png", "smoothed": true, "userAdded": false, "origin": { "identifier": "https://asset-resources.gdevelop.io/public-resources/Menu buttons/09c5d56e61a6a8b031a30ff89ae4229243317908385b5701a46e458c2fd6906c_Transparent Button With White Yellow Border_Hovered.png", "name": "Transparent Button With White Yellow Border_Hovered.png" } }, { "alwaysLoaded": false, "file": "assets/Transparent Button With White Yellow Border_Idle.png", "kind": "image", "metadata": "", "name": "Transparent Button With White Yellow Border_Idle.png", "smoothed": true, "userAdded": false, "origin": { "identifier": "https://asset-resources.gdevelop.io/public-resources/Menu buttons/7311d88d62c25c9a5e7ed4f2031f4d58fabe564e093b203e62e467a1a995ed32_Transparent Button With White Yellow Border_Idle.png", "name": "Transparent Button With White Yellow Border_Idle.png" } }, { "alwaysLoaded": false, "file": "assets/Transparent Button With White Yellow Border_Pressed.png", "kind": "image", "metadata": "", "name": "Transparent Button With White Yellow Border_Pressed.png", "smoothed": true, "userAdded": false, "origin": { "identifier": "https://asset-resources.gdevelop.io/public-resources/Menu buttons/e00d068010472f362dc46547bd727f20d85163a88cd2414d7f4fb9df63db2917_Transparent Button With White Yellow Border_Pressed.png", "name": "Transparent Button With White Yellow Border_Pressed.png" } }, { "file": "assets/Charm-Regular.ttf", "kind": "font", "metadata": "", "name": "Charm-Regular.ttf", "userAdded": false, "origin": { "identifier": "https://asset-resources.gdevelop.io/public-resources/Menu buttons/668523d3d2bb73faa358e1ebafa55f43d2760f8abbe99aa15476121c1bcc7eb6_Charm-Regular.ttf", "name": "Charm-Regular.ttf" } }, { "alwaysLoaded": false, "file": "Assets/Images/MainMenu/NewGameButton/NewGameButton_Idle.png", "kind": "image", "metadata": "", "name": "Assets/Images/MainMenu/NewGameButton/NewGameButton_Idle.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/MainMenu/NewGameButton/NewGameButton_Hovered.png", "kind": "image", "metadata": "", "name": "Assets/Images/MainMenu/NewGameButton/NewGameButton_Hovered.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/MainMenu/NewGameButton/NewGameButton_Pressed.png", "kind": "image", "metadata": "", "name": "Assets/Images/MainMenu/NewGameButton/NewGameButton_Pressed.png", "smoothed": true, "userAdded": true }, { "file": "Assets/Sounds/Levels/2/AmbientLoop.ogg", "kind": "audio", "metadata": "", "name": "Assets/Sounds/Levels/2/AmbientLoop.ogg", "preloadAsMusic": false, "preloadAsSound": false, "preloadInCache": false, "userAdded": true }, { "file": "Assets/Sounds/Levels/MainMenu/Theme.ogg", "kind": "audio", "metadata": "", "name": "Assets/Sounds/Levels/MainMenu/Theme.ogg", "preloadAsMusic": false, "preloadAsSound": false, "preloadInCache": false, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/MainMenu/CreditsButton/CreditsButton_Idle.png", "kind": "image", "metadata": "", "name": "Assets/Images/MainMenu/CreditsButton/CreditsButton_Idle.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/MainMenu/CreditsButton/CreditsButton_Hovered.png", "kind": "image", "metadata": "", "name": "Assets/Images/MainMenu/CreditsButton/CreditsButton_Hovered.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/MainMenu/CreditsButton/CreditsButton_Pressed.png", "kind": "image", "metadata": "", "name": "Assets/Images/MainMenu/CreditsButton/CreditsButton_Pressed.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/MainMenu/ExitButton/ExitButton_Idle.png", "kind": "image", "metadata": "", "name": "Assets/Images/MainMenu/ExitButton/ExitButton_Idle.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/MainMenu/ExitButton/ExitButton_Hovered.png", "kind": "image", "metadata": "", "name": "Assets/Images/MainMenu/ExitButton/ExitButton_Hovered.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/MainMenu/ExitButton/ExitButton_Pressed.png", "kind": "image", "metadata": "", "name": "Assets/Images/MainMenu/ExitButton/ExitButton_Pressed.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Common/Platforms/Static/RectangularPlatform/RectangularPlatform_4.png", "kind": "image", "metadata": "", "name": "Assets/Images/Common/Platforms/Static/RectangularPlatform/RectangularPlatform_4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Common/Platforms/Static/RectangularPlatform/RectangularPlatform_3.png", "kind": "image", "metadata": "", "name": "Assets/Images/Common/Platforms/Static/RectangularPlatform/RectangularPlatform_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Common/Platforms/Static/RectangularPlatform/RectangularPlatform_2.png", "kind": "image", "metadata": "", "name": "Assets/Images/Common/Platforms/Static/RectangularPlatform/RectangularPlatform_2.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "Assets/Images/Common/Platforms/Static/RectangularPlatform/RectangularPlatform_1.png", "kind": "image", "metadata": "", "name": "Assets/Images/Common/Platforms/Static/RectangularPlatform/RectangularPlatform_1.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "Assets/Images/Common/Platforms/Static/MediumIsland/MediumIsland_4.png", "kind": "image", "metadata": "", "name": "Assets/Images/Common/Platforms/Static/MediumIsland/MediumIsland_4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Common/Platforms/Static/MediumIsland/MediumIsland_3.png", "kind": "image", "metadata": "", "name": "Assets/Images/Common/Platforms/Static/MediumIsland/MediumIsland_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Common/Platforms/Static/MediumIsland/MediumIsland_2.png", "kind": "image", "metadata": "", "name": "Assets/Images/Common/Platforms/Static/MediumIsland/MediumIsland_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Common/Platforms/Static/MediumIsland/MediumIsland_1.png", "kind": "image", "metadata": "", "name": "Assets/Images/Common/Platforms/Static/MediumIsland/MediumIsland_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/UI/Hope/HopeBar_Content.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\UI\\Hope\\HopeBar_Content.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/UI/Hope/HopeBar_Frame.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\UI\\Hope\\HopeBar_Frame.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/UI/Hope/Hope.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\UI\\Hope\\Hope.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/UI/HopeBar/GraduatedHopeBar_Content.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\UI\\HopeBar\\GraduatedHopeBar_Content.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/UI/HopeBar/GraduatedHopeBar_Frame.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\UI\\HopeBar\\GraduatedHopeBar_Frame.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/UI/Hope/Hope_2.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\UI\\Hope\\Hope_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/UI/Labels/TryAgain/TryAgainButton_Idle.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\UI\\Labels\\TryAgain\\TryAgainButton_Idle.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/UI/Labels/TryAgain/TryAgainButton_Hovered.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\UI\\Labels\\TryAgain\\TryAgainButton_Hovered.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/UI/Labels/TryAgain/TryAgainButton_Pressed.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\UI\\Labels\\TryAgain\\TryAgainButton_Pressed.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Sinage/ProceedButton/ProceedButton_Idle.png", "kind": "image", "metadata": "", "name": "AssetDev\\Sinage\\ProceedButton\\ProceedButton_Idle.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Sinage/ProceedButton/ProceedButton_Hovered.png", "kind": "image", "metadata": "", "name": "AssetDev\\Sinage\\ProceedButton\\ProceedButton_Hovered.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Sinage/ProceedButton/ProceedButton_Pressed.png", "kind": "image", "metadata": "", "name": "AssetDev\\Sinage\\ProceedButton\\ProceedButton_Pressed.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/LaserDemon/LaserBeam_1.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserBeam_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/LaserDemon/LaserBeam_2.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserBeam_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/LaserDemon/LaserBeam_3.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserBeam_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/LaserDemon/LaserBeam_4.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserBeam_4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/LaserDemon/LaserDemon_Base_1.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemon_Base_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/LaserDemon/LaserDemon_Base_2.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemon_Base_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/LaserDemon/LaserDemon_Base_3.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemon_Base_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/LaserDemon/LaserDemon_Base_4.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemon_Base_4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/LaserDemon/LaserDemon_Beam_1.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemon_Beam_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/LaserDemon/LaserDemon_Beam_2.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemon_Beam_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/LaserDemon/LaserDemon_Beam_3.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemon_Beam_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/LaserDemon/LaserDemon_Beam_4.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemon_Beam_4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Credits/Titles/LevelDesign/LevelDesign.png", "kind": "image", "metadata": "", "name": "Assets/Images/Credits/Titles/LevelDesign/LevelDesign.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "Assets/Images/Credits/Titles/Programming/Programming.png", "kind": "image", "metadata": "", "name": "Assets/Images/Credits/Titles/Programming/Programming.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "Assets/Images/Credits/Titles/QualityAssurance/QualityAssurance.png", "kind": "image", "metadata": "", "name": "Assets/Images/Credits/Titles/QualityAssurance/QualityAssurance.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "Assets/Images/Credits/Titles/SpecialThanks/SpecialThanks.png", "kind": "image", "metadata": "", "name": "Assets/Images/Credits/Titles/SpecialThanks/SpecialThanks.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Entities/StalactiteDemon/StalactiteDemon_1.png", "kind": "image", "metadata": "", "name": "AssetDev\\Entities\\StalactiteDemon\\StalactiteDemon_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Entities/StalactiteDemon/StalactiteDemon_2.png", "kind": "image", "metadata": "", "name": "AssetDev\\Entities\\StalactiteDemon\\StalactiteDemon_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Entities/StalactiteDemon/StalactiteDemon_3.png", "kind": "image", "metadata": "", "name": "AssetDev\\Entities\\StalactiteDemon\\StalactiteDemon_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Entities/StalactiteDemon/Stalactite_1.png", "kind": "image", "metadata": "", "name": "AssetDev\\Entities\\StalactiteDemon\\Stalactite_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Entities/StalactiteDemon/Stalactite_2.png", "kind": "image", "metadata": "", "name": "AssetDev\\Entities\\StalactiteDemon\\Stalactite_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Entities/StalactiteDemon/Stalactite_3.png", "kind": "image", "metadata": "", "name": "AssetDev\\Entities\\StalactiteDemon\\Stalactite_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/LaserDemon/LaserRing_1.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserRing_1.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/LaserDemon/LaserRing_2.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserRing_2.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/LaserDemon/LaserRing_3.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserRing_3.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "AssetDev/MovingIsland/MovingIslandRight_1.png", "kind": "image", "metadata": "", "name": "AssetDev\\MovingIsland\\MovingIslandRight_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/MovingIsland/MovingIslandRIght_2.png", "kind": "image", "metadata": "", "name": "AssetDev\\MovingIsland\\MovingIslandRIght_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/MovingIsland/MovingIslandRight_3.png", "kind": "image", "metadata": "", "name": "AssetDev\\MovingIsland\\MovingIslandRight_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/MovingIsland/MovingIslandRight_4.png", "kind": "image", "metadata": "", "name": "AssetDev\\MovingIsland\\MovingIslandRight_4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/MovingIsland/MovingIslandLeft_1.png", "kind": "image", "metadata": "", "name": "AssetDev\\MovingIsland\\MovingIslandLeft_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/MovingIsland/MovingIslandLeft_2.png", "kind": "image", "metadata": "", "name": "AssetDev\\MovingIsland\\MovingIslandLeft_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/MovingIsland/MovingIslandLeft_3.png", "kind": "image", "metadata": "", "name": "AssetDev\\MovingIsland\\MovingIslandLeft_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/MovingIsland/MovingIslandLeft_4.png", "kind": "image", "metadata": "", "name": "AssetDev\\MovingIsland\\MovingIslandLeft_4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Platforms/DiagonallyMovingPlatform/SpinningPlatformClockwise_1.png", "kind": "image", "metadata": "", "name": "AssetDev\\Platforms\\DiagonallyMovingPlatform\\SpinningPlatformClockwise_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Platforms/DiagonallyMovingPlatform/SpinningPlatformClockwise_2.png", "kind": "image", "metadata": "", "name": "AssetDev\\Platforms\\DiagonallyMovingPlatform\\SpinningPlatformClockwise_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Platforms/DiagonallyMovingPlatform/SpinningPlatformClockwise_3.png", "kind": "image", "metadata": "", "name": "AssetDev\\Platforms\\DiagonallyMovingPlatform\\SpinningPlatformClockwise_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Platforms/DiagonallyMovingPlatform/SpinningPlatformClockwise_4.png", "kind": "image", "metadata": "", "name": "AssetDev\\Platforms\\DiagonallyMovingPlatform\\SpinningPlatformClockwise_4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Platforms/DiagonallyMovingPlatform/SpinningPlatformCounterclockwise_1.png", "kind": "image", "metadata": "", "name": "AssetDev\\Platforms\\DiagonallyMovingPlatform\\SpinningPlatformCounterclockwise_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Platforms/DiagonallyMovingPlatform/SpinningPlatformCounterclockwise_2.png", "kind": "image", "metadata": "", "name": "AssetDev\\Platforms\\DiagonallyMovingPlatform\\SpinningPlatformCounterclockwise_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Platforms/DiagonallyMovingPlatform/SpinningPlatformCounterclockwise_3.png", "kind": "image", "metadata": "", "name": "AssetDev\\Platforms\\DiagonallyMovingPlatform\\SpinningPlatformCounterclockwise_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Platforms/DiagonallyMovingPlatform/SpinningPlatformCounterclockwise_4.png", "kind": "image", "metadata": "", "name": "AssetDev\\Platforms\\DiagonallyMovingPlatform\\SpinningPlatformCounterclockwise_4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/LaserDemon/LaserDemon_Beam_Single_1.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemon_Beam_Single_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/LaserDemon/LaserDemon_Beam_Single_2.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemon_Beam_Single_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/LaserDemon/LaserDemon_Beam_Single_3.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemon_Beam_Single_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Levels/7/Background/Background.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Levels\\7\\Background\\Background.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Levels/8/Background/Background.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Levels\\8\\Background\\Background.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/TurretDemon/TurretDemonBase_1.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\TurretDemon\\TurretDemonBase_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/TurretDemon/TurretDemonBase_2.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\TurretDemon\\TurretDemonBase_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/TurretDemon/TurretDemonBase_3.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\TurretDemon\\TurretDemonBase_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/TurretDemon/TurretDemonBase_4.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\TurretDemon\\TurretDemonBase_4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/TurretDemon/TurretDemonEye_1.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\TurretDemon\\TurretDemonEye_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/TurretDemon/TurretDemonEye_2.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\TurretDemon\\TurretDemonEye_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/TurretDemon/TurretDemonEye_3.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\TurretDemon\\TurretDemonEye_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/TurretDemon/TurretDemonEye_4.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\TurretDemon\\TurretDemonEye_4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Common/CameraGlitchFix/CameraGlitchFix.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Common\\CameraGlitchFix\\CameraGlitchFix.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/SweepingLaserDemon/SweepingLaserDemon_4.png", "kind": "image", "metadata": "", "name": "Assets/Images/Entites/Enemies/SweepingLaserDemon/SweepingLaserDemon_4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/SweepingLaserDemon/SweepingLaserDemon_3.png", "kind": "image", "metadata": "", "name": "Assets/Images/Entites/Enemies/SweepingLaserDemon/SweepingLaserDemon_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/SweepingLaserDemon/SweepingLaserDemon_2.png", "kind": "image", "metadata": "", "name": "Assets/Images/Entites/Enemies/SweepingLaserDemon/SweepingLaserDemon_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/SweepingLaserDemon/SweepingLaserDemon_1.png", "kind": "image", "metadata": "", "name": "Assets/Images/Entites/Enemies/SweepingLaserDemon/SweepingLaserDemon_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/SweepingLaserDemon/Shockwave_4.png", "kind": "image", "metadata": "", "name": "Assets/Images/Entites/Enemies/SweepingLaserDemon/Shockwave_4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/SweepingLaserDemon/Shockwave_3.png", "kind": "image", "metadata": "", "name": "Assets/Images/Entites/Enemies/SweepingLaserDemon/Shockwave_3.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/SweepingLaserDemon/Shockwave_2.png", "kind": "image", "metadata": "", "name": "Assets/Images/Entites/Enemies/SweepingLaserDemon/Shockwave_2.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/SweepingLaserDemon/Shockwave_1.png", "kind": "image", "metadata": "", "name": "Assets/Images/Entites/Enemies/SweepingLaserDemon/Shockwave_1.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/MiteSpawnerDemon/MiteSpawnerBase_4.png", "kind": "image", "metadata": "", "name": "Assets/Images/Entites/Enemies/MiteSpawnerDemon/MiteSpawnerBase_4.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/MiteSpawnerDemon/MiteSpawnerBase_3.png", "kind": "image", "metadata": "", "name": "Assets/Images/Entites/Enemies/MiteSpawnerDemon/MiteSpawnerBase_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/MiteSpawnerDemon/MiteSpawnerBase_2.png", "kind": "image", "metadata": "", "name": "Assets/Images/Entites/Enemies/MiteSpawnerDemon/MiteSpawnerBase_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/MiteSpawnerDemon/MiteSpawnerBase_1.png", "kind": "image", "metadata": "", "name": "Assets/Images/Entites/Enemies/MiteSpawnerDemon/MiteSpawnerBase_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/MiteSpawnerDemon/MiteDemon_4.png", "kind": "image", "metadata": "", "name": "Assets/Images/Entites/Enemies/MiteSpawnerDemon/MiteDemon_4.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/MiteSpawnerDemon/MiteDemon_3.png", "kind": "image", "metadata": "", "name": "Assets/Images/Entites/Enemies/MiteSpawnerDemon/MiteDemon_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/MiteSpawnerDemon/MiteDemon_2.png", "kind": "image", "metadata": "", "name": "Assets/Images/Entites/Enemies/MiteSpawnerDemon/MiteDemon_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/MiteSpawnerDemon/MiteDemon_1.png", "kind": "image", "metadata": "", "name": "Assets/Images/Entites/Enemies/MiteSpawnerDemon/MiteDemon_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Levels/9/Background/Background.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Levels\\9\\Background\\Background.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/MiteDemon/MiteDemonBase_1.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\MiteDemon\\MiteDemonBase_1.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/MiteDemon/MiteDemonBase_2.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\MiteDemon\\MiteDemonBase_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/MiteDemon/MiteDemonBase_3.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\MiteDemon\\MiteDemonBase_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/MiteDemon/MiteDemonBase_4.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\MiteDemon\\MiteDemonBase_4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/MiteDemon/MiteDemonMite_1.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\MiteDemon\\MiteDemonMite_1.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/MiteDemon/MiteDemonMite_2.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\MiteDemon\\MiteDemonMite_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/MiteDemon/MiteDemonMite_3.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\MiteDemon\\MiteDemonMite_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/MiteDemon/MiteDemonMite_4.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\MiteDemon\\MiteDemonMite_4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/LaserDemon/LaserDemonBase_1.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemonBase_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/LaserDemon/LaserDemonBase_2.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemonBase_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/LaserDemon/LaserDemonBase_3.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemonBase_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/LaserDemon/LaserDemonBase_4.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemonBase_4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/LaserDemon/LaserDemonBeam_1.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemonBeam_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/LaserDemon/LaserDemonBeam_2.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemonBeam_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/LaserDemon/LaserDemonBeam_3.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemonBeam_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/LaserDemon/LaserDemonBeamSingle_1.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemonBeamSingle_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/LaserDemon/LaserDemonBeamSingle_2.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemonBeamSingle_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/LaserDemon/LaserDemonBeamSingle_3.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemonBeamSingle_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/LaserDemon/LaserRing1.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserRing1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/LaserDemon/LaserRing2.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserRing2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/LaserDemon/LaserRing3.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserRing3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/ShockwaveDemon/ShockwaveDemon_1.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\ShockwaveDemon\\ShockwaveDemon_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/ShockwaveDemon/ShockwaveDemon_2.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\ShockwaveDemon\\ShockwaveDemon_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/ShockwaveDemon/ShockwaveDemon_3.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\ShockwaveDemon\\ShockwaveDemon_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/ShockwaveDemon/ShockwaveDemon_4.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\ShockwaveDemon\\ShockwaveDemon_4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/ShockwaveDemon/Shockwave_1.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\ShockwaveDemon\\Shockwave_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/ShockwaveDemon/Shockwave_2.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\ShockwaveDemon\\Shockwave_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/ShockwaveDemon/Shockwave_3.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\ShockwaveDemon\\Shockwave_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/ShockwaveDemon/Shockwave_4.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\ShockwaveDemon\\Shockwave_4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/ShockwaveDemon/ShockwaveDemonBase_1.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\ShockwaveDemon\\ShockwaveDemonBase_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/ShockwaveDemon/ShockwaveDemonBase_2.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\ShockwaveDemon\\ShockwaveDemonBase_2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/ShockwaveDemon/ShockwaveDemonBase_3.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\ShockwaveDemon\\ShockwaveDemonBase_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Entites/Enemies/ShockwaveDemon/ShockwaveDemonBase_4.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Entites\\Enemies\\ShockwaveDemon\\ShockwaveDemonBase_4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_BlockWorld1.png", "kind": "image", "metadata": "", "name": "AssetDev\\Memories\\Memories_BlockWorld1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_BlockWorld2.png", "kind": "image", "metadata": "", "name": "AssetDev\\Memories\\Memories_BlockWorld2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_BlockWorld3.png", "kind": "image", "metadata": "", "name": "AssetDev\\Memories\\Memories_BlockWorld3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_BlockWorld4.png", "kind": "image", "metadata": "", "name": "AssetDev\\Memories\\Memories_BlockWorld4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_TangentHell1.png", "kind": "image", "metadata": "", "name": "AssetDev\\Memories\\Memories_TangentHell1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_TangentHell2.png", "kind": "image", "metadata": "", "name": "AssetDev\\Memories\\Memories_TangentHell2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_TangentHell3.png", "kind": "image", "metadata": "", "name": "AssetDev\\Memories\\Memories_TangentHell3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_TangentHell4.png", "kind": "image", "metadata": "", "name": "AssetDev\\Memories\\Memories_TangentHell4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_Recursion1.png", "kind": "image", "metadata": "", "name": "AssetDev\\Memories\\Memories_Recursion1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_Recursion2.png", "kind": "image", "metadata": "", "name": "AssetDev\\Memories\\Memories_Recursion2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_Recursion3.png", "kind": "image", "metadata": "", "name": "AssetDev\\Memories\\Memories_Recursion3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_Recursion4.png", "kind": "image", "metadata": "", "name": "AssetDev\\Memories\\Memories_Recursion4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_Linux1.png", "kind": "image", "metadata": "", "name": "AssetDev\\Memories\\Memories_Linux1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_Linux2.png", "kind": "image", "metadata": "", "name": "AssetDev\\Memories\\Memories_Linux2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_Linux3.png", "kind": "image", "metadata": "", "name": "AssetDev\\Memories\\Memories_Linux3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_Linux4.png", "kind": "image", "metadata": "", "name": "AssetDev\\Memories\\Memories_Linux4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_Boss1.png", "kind": "image", "metadata": "", "name": "AssetDev\\Memories\\Memories_Boss1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_Boss2.png", "kind": "image", "metadata": "", "name": "AssetDev\\Memories\\Memories_Boss2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_Boss3.png", "kind": "image", "metadata": "", "name": "AssetDev\\Memories\\Memories_Boss3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_Boss4.png", "kind": "image", "metadata": "", "name": "AssetDev\\Memories\\Memories_Boss4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Tutorial/Labels/Hold/Hold.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Tutorial\\Labels\\Hold\\Hold.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Tutorial/Labels/LongerJump/LongerJump.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Tutorial\\Labels\\LongerJump\\LongerJump.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Tutorial/Labels/ShiftToHealHint/ShiftToHealHint.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Tutorial\\Labels\\ShiftToHealHint\\ShiftToHealHint.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Sinage/TutorialKeys/TutorialKeys_A.png", "kind": "image", "metadata": "", "name": "AssetDev\\Sinage\\TutorialKeys\\TutorialKeys_A.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Sinage/TutorialKeys/TutorialKeys_W.png", "kind": "image", "metadata": "", "name": "AssetDev\\Sinage\\TutorialKeys\\TutorialKeys_W.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Sinage/TutorialKeys/TutorialKeys_S.png", "kind": "image", "metadata": "", "name": "AssetDev\\Sinage\\TutorialKeys\\TutorialKeys_S.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Sinage/TutorialKeys/TutorialKeys_D.png", "kind": "image", "metadata": "", "name": "AssetDev\\Sinage\\TutorialKeys\\TutorialKeys_D.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Sinage/TutorialKeys/TutorialKeysWide_Space.png", "kind": "image", "metadata": "", "name": "AssetDev\\Sinage\\TutorialKeys\\TutorialKeysWide_Space.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Tutorial/Labels/PauseHint/PauseMenu.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Tutorial\\Labels\\PauseHint\\PauseMenu.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Tutorial/Labels/RestartHint/RestartHint.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Tutorial\\Labels\\RestartHint\\RestartHint.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_WhimsicalTree1.png", "kind": "image", "metadata": "", "name": "AssetDev\\Memories\\Memories_WhimsicalTree1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_WhimsicalTree2.png", "kind": "image", "metadata": "", "name": "AssetDev\\Memories\\Memories_WhimsicalTree2.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_WhimsicalTree3.png", "kind": "image", "metadata": "", "name": "AssetDev\\Memories\\Memories_WhimsicalTree3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "AssetDev/Memories/Memories_WhimsicalTree4.png", "kind": "image", "metadata": "", "name": "AssetDev\\Memories\\Memories_WhimsicalTree4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Credits/Names/BaileyBorbas/BaileyBorbas.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Credits\\Names\\BaileyBorbas\\BaileyBorbas.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Credits/Names/BrennerKrogh/BrennerKrogh.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Credits\\Names\\BrennerKrogh\\BrennerKrogh.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Credits/Names/BrennerMuskatel/BrennerMuskatel.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Credits\\Names\\BrennerMuskatel\\BrennerMuskatel.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Credits/Names/HunterBoggs/HunterBoggs.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Credits\\Names\\HunterBoggs\\HunterBoggs.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Credits/Names/JackMccarthySmith/JackMccarthySmith.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Credits\\Names\\JackMccarthySmith\\JackMccarthySmith.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Credits/Names/JacobMorrison/JacobMorrison.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Credits\\Names\\JacobMorrison\\JacobMorrison.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Credits/Names/JasonWong/JasonWong.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Credits\\Names\\JasonWong\\JasonWong.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Credits/Names/JoshVegher/JoshVegher.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Credits\\Names\\JoshVegher\\JoshVegher.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Credits/Names/JustinHumes/JustinHumes.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Credits\\Names\\JustinHumes\\JustinHumes.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Credits/Names/RyanReilly/RyanReilly.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Credits\\Names\\RyanReilly\\RyanReilly.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Credits/Titles/Art/Art.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Credits\\Titles\\Art\\Art.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/MainMenu/Background/Background.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\MainMenu\\Background\\Background.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Levels/10/Background/Background.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Levels\\10\\Background\\Background.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Credits/Titles/Concept/Concept.png", "kind": "image", "metadata": "", "name": "Assets/Images/Credits/Titles/Concept/Concept.png", "smoothed": true, "userAdded": true }, { "file": "Assets/Sounds/Levels/Mindscape/AmbientLoop_Train.ogg", "kind": "audio", "metadata": "", "name": "Assets/Sounds/Levels/Mindscape/AmbientLoop_Train.ogg", "preloadAsMusic": false, "preloadAsSound": false, "preloadInCache": false, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Credits/Logos/AGPL_Logo.png", "kind": "image", "metadata": "", "name": "Assets/Images/Credits/Logos/AGPL_Logo.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Credits/LicenseText/LicenseText.png", "kind": "image", "metadata": "", "name": "Assets/Images/Credits/LicenseText/LicenseText.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Credits/Names/BrennerMuscatell/BrennerMuscatell.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Credits\\Names\\BrennerMuscatell\\BrennerMuscatell.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Credits/Names/ConnorLebrun/ConnorLebrun.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Credits\\Names\\ConnorLebrun\\ConnorLebrun.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Credits/Logos/AGPL/AGPL_Logo.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Credits\\Logos\\AGPL\\AGPL_Logo.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Credits/Logos/DRMFree/DRM_Free_Logo.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Credits\\Logos\\DRMFree\\DRM_Free_Logo.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, "file": "Assets/Images/Credits/Logos/Git/Git-Logo-White.png", "kind": "image", "metadata": "", "name": "Assets\\Images\\Credits\\Logos\\Git\\Git-Logo-White.png", "smoothed": true, "userAdded": true } ], "resourceFolders": [] }, "objects": [ { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "Player", "type": "Sprite", "updateIfNotVisible": false, "variables": [ { "folded": true, "name": "Lives", "type": "number", "value": 5 }, { "folded": true, "name": "IsTrulyDead", "type": "boolean", "value": false }, { "folded": true, "name": "LifeForce", "type": "number", "value": 0 }, { "folded": true, "name": "NeedsEnemiesReset", "type": "boolean", "value": false }, { "name": "IsImmortal", "type": "boolean", "value": false }, { "folded": true, "name": "IsInShockwave", "type": "boolean", "value": false }, { "folded": true, "name": "GodModeX", "type": "number", "value": 6333 }, { "folded": true, "name": "GodModeY", "type": "number", "value": 360 } ], "effects": [ { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 1, "outerStrength": 2 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} } ], "behaviors": [ { "name": "PlatformerCharacterAnimator", "type": "PlatformerCharacterAnimator::PlatformerCharacterAnimator", "EnableAnimationChanges": true, "EnableHorizontalFlipping": true, "IdleAnimationName": "Idle", "MoveAnimationName": "Move", "JumpAnimationName": "Jump", "FallAnimationName": "Fall", "ClimbAnimationName": "Climb", "PlatformerBehavior": "PlatformerObject", "RunAnimationName": "Run", "AnimatableCapability": "Animation", "FlippableCapability": "Flippable", "AnimatableCapacity": "Animation", "FlippableCapacity": "Flippable", "Animation": "Animation", "Flip": "Flippable", "Flippable": "Flippable" }, { "name": "PlatformerGamepadMapper", "type": "Gamepads::PlatformerGamepadMapper", "PlatformerCharacter": "PlatformerObject", "GamepadIdentifier": 1, "UseArrows": true, "UseLeftStick": true, "UseRightStick": false, "JumpButton": "A or Cross" }, { "name": "PlatformerMultitouchMapper", "type": "SpriteMultitouchJoystick::PlatformerMultitouchMapper", "Property": "PlatformerObject", "ControllerIdentifier": 1, "JoystickIdentifier": "Primary", "JumpButton": "A" }, { "name": "PlatformerObject", "type": "PlatformBehavior::PlatformerObjectBehavior", "maxFallingSpeed": 1000, "xGrabTolerance": 20, "canGoDownFromJumpthru": true, "canGrabPlatforms": false, "canGrabWithoutMoving": false, "ignoreDefaultControls": true, "maxSpeed": 600, "slopeMaxAngle": 60, "acceleration": 4750, "deceleration": 4750, "gravity": 2200, "jumpSpeed": 1500, "ladderClimbingSpeed": 600, "jumpSustainTime": 0.2, "useLegacyTrajectory": false, "yGrabOffset": 0 }, { "name": "SmoothCamera", "type": "SmoothCamera::SmoothCamera", "LeftwardSpeed": 0.9, "RightwardSpeed": 0.9, "UpwardSpeed": 0.75, "DownwardSpeed": 0.9, "FollowOnX": true, "FollowOnY": true, "FollowFreeAreaLeft": 0, "FollowFreeAreaRight": 0, "FollowFreeAreaTop": 0, "FollowFreeAreaBottom": 0, "CameraOffsetX": 0, "CameraOffsetY": 0, "CameraDelay": 0, "ForecastTime": 0, "ForecastHistoryDuration": 0, "LogLeftwardSpeed": 0, "LogRightwardSpeed": 0, "LogDownwardSpeed": 0, "LogUpwardSpeed": 0, "DelayedCenterX": 0, "DelayedCenterY": 0, "ForecastHistoryMeanX": 0, "ForecastHistoryMeanY": 0, "ForecastHistoryVarianceX": 0, "ForecastHistoryCovariance": 0, "ForecastHistoryLinearA": 0, "ForecastHistoryLinearB": 0, "ForecastedX": 0, "ForecastedY": 0, "ProjectedNewestX": 0, "ProjectedNewestY": 0, "ProjectedOldestX": 0, "ProjectedOldestY": 0, "ForecastHistoryVarianceY": 0, "Index": 0, "CameraDelayCatchUpSpeed": 0, "CameraExtraDelay": 0, "WaitingSpeedXMax": 0, "WaitingSpeedYMax": 0, "WaitingEnd": 0, "CameraDelayCatchUpDuration": 0, "LeftwardSpeedMax": 10000, "RightwardSpeedMax": 10000, "UpwardSpeedMax": 1500, "DownwardSpeedMax": 1500, "OldX": 0, "OldY": 0 }, { "name": "Tween", "type": "Tween::TweenBehavior" } ], "animations": [ { "name": "Idle", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.3, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets/Images/Common/Salamander/Salamander_Idle4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 822, "y": 172.5 }, { "x": 911.5, "y": 254 }, { "x": 676, "y": 323.5 }, { "x": 326, "y": 309 }, { "x": 71.5, "y": 257 }, { "x": 297.5, "y": 152.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets/Images/Common/Salamander/Salamander_Idle3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 822, "y": 172.5 }, { "x": 911.5, "y": 254 }, { "x": 676, "y": 323.5 }, { "x": 326, "y": 309 }, { "x": 71.5, "y": 257 }, { "x": 297.5, "y": 152.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets/Images/Common/Salamander/Salamander_Idle2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 822, "y": 172.5 }, { "x": 911.5, "y": 254 }, { "x": 676, "y": 323.5 }, { "x": 326, "y": 309 }, { "x": 71.5, "y": 257 }, { "x": 297.5, "y": 152.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets/Images/Common/Salamander/Salamander_Idle1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 822, "y": 172.5 }, { "x": 911.5, "y": 254 }, { "x": 676, "y": 323.5 }, { "x": 326, "y": 309 }, { "x": 71.5, "y": 257 }, { "x": 297.5, "y": 152.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets/Images/Common/Salamander/Salamander_Idle2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 822, "y": 172.5 }, { "x": 911.5, "y": 254 }, { "x": 676, "y": 323.5 }, { "x": 326, "y": 309 }, { "x": 71.5, "y": 257 }, { "x": 297.5, "y": 152.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets/Images/Common/Salamander/Salamander_Idle3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 822, "y": 172.5 }, { "x": 911.5, "y": 254 }, { "x": 676, "y": 323.5 }, { "x": 326, "y": 309 }, { "x": 71.5, "y": 257 }, { "x": 297.5, "y": 152.5 } ] ] } ] } ] }, { "name": "Run", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.15, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets/Images/Common/Salamander/Salamander_Walk4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 822, "y": 172.5 }, { "x": 911.5, "y": 254 }, { "x": 676, "y": 323.5 }, { "x": 326, "y": 309 }, { "x": 71.5, "y": 257 }, { "x": 297.5, "y": 152.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets/Images/Common/Salamander/Salamander_Walk3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 822, "y": 172.5 }, { "x": 911.5, "y": 254 }, { "x": 676, "y": 323.5 }, { "x": 326, "y": 309 }, { "x": 71.5, "y": 257 }, { "x": 297.5, "y": 152.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets/Images/Common/Salamander/Salamander_Walk2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 822, "y": 172.5 }, { "x": 911.5, "y": 254 }, { "x": 676, "y": 323.5 }, { "x": 326, "y": 309 }, { "x": 71.5, "y": 257 }, { "x": 297.5, "y": 152.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets/Images/Common/Salamander/Salamander_Walk1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 822, "y": 172.5 }, { "x": 911.5, "y": 254 }, { "x": 676, "y": 323.5 }, { "x": 326, "y": 309 }, { "x": 71.5, "y": 257 }, { "x": 297.5, "y": 152.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets/Images/Common/Salamander/Salamander_Walk2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 822, "y": 172.5 }, { "x": 911.5, "y": 254 }, { "x": 676, "y": 323.5 }, { "x": 326, "y": 309 }, { "x": 71.5, "y": 257 }, { "x": 297.5, "y": 152.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets/Images/Common/Salamander/Salamander_Walk3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 822, "y": 172.5 }, { "x": 911.5, "y": 254 }, { "x": 676, "y": 323.5 }, { "x": 326, "y": 309 }, { "x": 71.5, "y": 257 }, { "x": 297.5, "y": 152.5 } ] ] } ] } ] }, { "name": "Jump", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets/Images/Common/Salamander/Salamander_Walk2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 822, "y": 172.5 }, { "x": 911.5, "y": 254 }, { "x": 676, "y": 323.5 }, { "x": 326, "y": 309 }, { "x": 71.5, "y": 257 }, { "x": 297.5, "y": 152.5 } ] ] } ] } ] }, { "name": "Climb", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.45, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets/Images/Common/Salamander/Salamander_Walk4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 822, "y": 172.5 }, { "x": 911.5, "y": 254 }, { "x": 676, "y": 323.5 }, { "x": 326, "y": 309 }, { "x": 71.5, "y": 257 }, { "x": 297.5, "y": 152.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets/Images/Common/Salamander/Salamander_Walk3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 822, "y": 172.5 }, { "x": 911.5, "y": 254 }, { "x": 676, "y": 323.5 }, { "x": 326, "y": 309 }, { "x": 71.5, "y": 257 }, { "x": 297.5, "y": 152.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets/Images/Common/Salamander/Salamander_Walk2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 822, "y": 172.5 }, { "x": 911.5, "y": 254 }, { "x": 676, "y": 323.5 }, { "x": 326, "y": 309 }, { "x": 71.5, "y": 257 }, { "x": 297.5, "y": 152.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets/Images/Common/Salamander/Salamander_Walk1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 822, "y": 172.5 }, { "x": 911.5, "y": 254 }, { "x": 676, "y": 323.5 }, { "x": 326, "y": 309 }, { "x": 71.5, "y": 257 }, { "x": 297.5, "y": 152.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets/Images/Common/Salamander/Salamander_Walk2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 822, "y": 172.5 }, { "x": 911.5, "y": 254 }, { "x": 676, "y": 323.5 }, { "x": 326, "y": 309 }, { "x": 71.5, "y": 257 }, { "x": 297.5, "y": 152.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets/Images/Common/Salamander/Salamander_Walk3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 822, "y": 172.5 }, { "x": 911.5, "y": 254 }, { "x": 676, "y": 323.5 }, { "x": 326, "y": 309 }, { "x": 71.5, "y": 257 }, { "x": 297.5, "y": 152.5 } ] ] } ] } ] }, { "name": "Fall", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets/Images/Common/Salamander/Salamander_Walk2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 822, "y": 172.5 }, { "x": 911.5, "y": 254 }, { "x": 676, "y": 323.5 }, { "x": 326, "y": 309 }, { "x": 71.5, "y": 257 }, { "x": 297.5, "y": 152.5 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "FlyingDemon", "type": "Sprite", "updateIfNotVisible": false, "variables": [ { "folded": true, "name": "IsKillable", "type": "boolean", "value": true }, { "name": "IsDead", "type": "boolean", "value": false }, { "folded": true, "name": "HasBeenReaped", "type": "boolean", "value": false }, { "name": "LifeForce", "type": "number", "value": 1 }, { "folded": true, "name": "OldPosition_X", "type": "number", "value": 0 }, { "folded": true, "name": "OldPosition_Y", "type": "number", "value": 0 }, { "folded": true, "name": "OldAngle", "type": "number", "value": 0 } ], "effects": [], "behaviors": [ { "name": "RectangleMovement", "type": "RectangleMovement::RectangleMovement", "Width": 0, "Height": 150, "Clockwise": true, "HorizontalEdgeDuration": 0, "VerticalEdgeDuration": 1.35, "Left": 1, "Top": 1, "Progress": 1, "OldX": 1, "OldY": 1, "Easing": "easeInOutSine", "InitialPosition": "Bottom-left corner", "ToogleClockwise": false }, { "name": "ShakeObject_PositionAngle", "type": "ShakeObject::ShakeObject_PositionAngle" } ], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/FlyingEnemy/FlyingEnemy_4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 128.5, "y": 333.5 }, { "x": 266, "y": 3.5 }, { "x": 686.5, "y": 113 }, { "x": 839.5, "y": 221 }, { "x": 649.5, "y": 656.5 }, { "x": 318.5, "y": 833 }, { "x": 88, "y": 726.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/FlyingEnemy/FlyingEnemy_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 128.5, "y": 333.5 }, { "x": 266, "y": 3.5 }, { "x": 686.5, "y": 113 }, { "x": 839.5, "y": 221 }, { "x": 649.5, "y": 656.5 }, { "x": 318.5, "y": 833 }, { "x": 88, "y": 726.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/FlyingEnemy/FlyingEnemy_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 128.5, "y": 333.5 }, { "x": 266, "y": 3.5 }, { "x": 686.5, "y": 113 }, { "x": 839.5, "y": 221 }, { "x": 649.5, "y": 656.5 }, { "x": 318.5, "y": 833 }, { "x": 88, "y": 726.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/FlyingEnemy/FlyingEnemy_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 128.5, "y": 333.5 }, { "x": 266, "y": 3.5 }, { "x": 686.5, "y": 113 }, { "x": 839.5, "y": 221 }, { "x": 649.5, "y": 656.5 }, { "x": 318.5, "y": 833 }, { "x": 88, "y": 726.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/FlyingEnemy/FlyingEnemy_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 128.5, "y": 333.5 }, { "x": 266, "y": 3.5 }, { "x": 686.5, "y": 113 }, { "x": 839.5, "y": 221 }, { "x": 649.5, "y": 656.5 }, { "x": 318.5, "y": 833 }, { "x": 88, "y": 726.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/FlyingEnemy/FlyingEnemy_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 128.5, "y": 333.5 }, { "x": 266, "y": 3.5 }, { "x": 686.5, "y": 113 }, { "x": 839.5, "y": 221 }, { "x": 649.5, "y": 656.5 }, { "x": 318.5, "y": 833 }, { "x": 88, "y": 726.5 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "FireDemon", "type": "Sprite", "updateIfNotVisible": false, "variables": [ { "name": "Fire", "type": "boolean", "value": false }, { "folded": true, "name": "IsKillable", "type": "boolean", "value": true }, { "folded": true, "name": "IsDead", "type": "boolean", "value": false }, { "folded": true, "name": "HasBeenReaped", "type": "boolean", "value": false }, { "name": "LifeForce", "type": "number", "value": 2 }, { "folded": true, "name": "OldPosition_X", "type": "number", "value": 0 }, { "folded": true, "name": "OldPosition_Y", "type": "number", "value": 0 }, { "folded": true, "name": "OldAngle", "type": "number", "value": 0 } ], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 6, "greenX": 0, "greenY": 0, "redX": -6, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [ { "name": "MonsterEnemy", "type": "Enemy::MonsterEnemy", "Animation": "Animation" } ], "animations": [ { "name": "NoFire", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/FireEnemy/FireEnemy_NoFire_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 112, "y": 650 }, { "x": 461, "y": 335 }, { "x": 823, "y": 701 }, { "x": 823, "y": 875 }, { "x": 112, "y": 875 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/FireEnemy/FireEnemy_NoFire_4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 112, "y": 650 }, { "x": 461, "y": 335 }, { "x": 823, "y": 701 }, { "x": 823, "y": 875 }, { "x": 112, "y": 875 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/FireEnemy/FireEnemy_NoFire_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 112, "y": 650 }, { "x": 461, "y": 335 }, { "x": 823, "y": 701 }, { "x": 823, "y": 875 }, { "x": 112, "y": 875 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/FireEnemy/FireEnemy_NoFire_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 112, "y": 650 }, { "x": 461, "y": 335 }, { "x": 823, "y": 701 }, { "x": 823, "y": 875 }, { "x": 112, "y": 875 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/FireEnemy/FireEnemy_NoFire_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 112, "y": 650 }, { "x": 461, "y": 335 }, { "x": 823, "y": 701 }, { "x": 823, "y": 875 }, { "x": 112, "y": 875 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/FireEnemy/FireEnemy_NoFire_4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 112, "y": 650 }, { "x": 461, "y": 335 }, { "x": 823, "y": 701 }, { "x": 823, "y": 875 }, { "x": 112, "y": 875 } ] ] } ] } ] }, { "name": "Fire", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/FireEnemy/FireEnemy_WithRedFire_4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 112, "y": 650 }, { "x": 461, "y": 335 }, { "x": 823, "y": 701 }, { "x": 823, "y": 875 }, { "x": 112, "y": 875 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/FireEnemy/FireEnemy_WithRedFire_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 112, "y": 650 }, { "x": 461, "y": 335 }, { "x": 823, "y": 701 }, { "x": 823, "y": 875 }, { "x": 112, "y": 875 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/FireEnemy/FireEnemy_WithRedFire_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 112, "y": 650 }, { "x": 461, "y": 335 }, { "x": 823, "y": 701 }, { "x": 823, "y": 875 }, { "x": 112, "y": 875 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/FireEnemy/FireEnemy_WithRedFire_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 112, "y": 650 }, { "x": 461, "y": 335 }, { "x": 823, "y": 701 }, { "x": 823, "y": 875 }, { "x": 112, "y": 875 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/FireEnemy/FireEnemy_WithRedFire_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 112, "y": 650 }, { "x": 461, "y": 335 }, { "x": 823, "y": 701 }, { "x": 823, "y": 875 }, { "x": 112, "y": 875 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/FireEnemy/FireEnemy_WithRedFire_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 112, "y": 650 }, { "x": 461, "y": 335 }, { "x": 823, "y": 701 }, { "x": 823, "y": 875 }, { "x": 112, "y": 875 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "Checkpoint", "type": "Sprite", "updateIfNotVisible": false, "variables": [ { "name": "active", "type": "boolean", "value": false } ], "effects": [ { "effectType": "Glow", "name": "Glow", "doubleParameters": { "distance": 15, "innerStrength": 1, "outerStrength": 2 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} } ], "behaviors": [ { "name": "RectangleMovement", "type": "RectangleMovement::RectangleMovement", "Width": 0, "Height": 10, "Clockwise": true, "HorizontalEdgeDuration": 0, "VerticalEdgeDuration": 1.5, "Left": 1, "Top": 1, "Progress": 1, "OldX": 1, "OldY": 1, "Easing": "easeInOutSine", "InitialPosition": "Top-left corner", "ToogleClockwise": false } ], "animations": [ { "name": "Inactive", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": false, "image": "AssetDev/Checkpoint/Checkpoint_Closed_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [] }, { "hasCustomCollisionMask": false, "image": "AssetDev/Checkpoint/Checkpoint_Closed_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [] }, { "hasCustomCollisionMask": false, "image": "AssetDev/Checkpoint/Checkpoint_Closed_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [] }, { "hasCustomCollisionMask": false, "image": "AssetDev/Checkpoint/Checkpoint_Closed_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [] } ] } ] }, { "name": "Activate", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": false, "image": "AssetDev/Checkpoint/Checkpoint_Open_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [] }, { "hasCustomCollisionMask": false, "image": "AssetDev/Checkpoint/Checkpoint_Open_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [] }, { "hasCustomCollisionMask": false, "image": "AssetDev/Checkpoint/Checkpoint_Open_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [] }, { "hasCustomCollisionMask": false, "image": "AssetDev/Checkpoint/Checkpoint_Open_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "StaticPlatform3", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [], "behaviors": [ { "name": "Platform", "type": "PlatformBehavior::PlatformBehavior", "canBeGrabbed": false, "platformType": "NormalPlatform", "yGrabOffset": 0 } ], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/LargeIsland/LargeIsland_4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 664.5, "y": 48 }, { "x": 2044.5, "y": 48 }, { "x": 1662.5, "y": 490.5 }, { "x": 865, "y": 786 }, { "x": 624.5, "y": 530 } ], [ { "x": 71.5, "y": 278 }, { "x": 80, "y": 60.5 }, { "x": 664.5, "y": 48 }, { "x": 624.5, "y": 530 }, { "x": 297.5, "y": 461.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/LargeIsland/LargeIsland_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 664.5, "y": 48 }, { "x": 2044.5, "y": 48 }, { "x": 1662.5, "y": 490.5 }, { "x": 865, "y": 786 }, { "x": 624.5, "y": 530 } ], [ { "x": 71.5, "y": 278 }, { "x": 80, "y": 60.5 }, { "x": 664.5, "y": 48 }, { "x": 624.5, "y": 530 }, { "x": 297.5, "y": 461.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/LargeIsland/LargeIsland_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 664.5, "y": 48 }, { "x": 2044.5, "y": 48 }, { "x": 1662.5, "y": 490.5 }, { "x": 865, "y": 786 }, { "x": 624.5, "y": 530 } ], [ { "x": 71.5, "y": 278 }, { "x": 80, "y": 60.5 }, { "x": 664.5, "y": 48 }, { "x": 624.5, "y": 530 }, { "x": 297.5, "y": 461.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/LargeIsland/LargeIsland_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 664.5, "y": 48 }, { "x": 2044.5, "y": 48 }, { "x": 1662.5, "y": 490.5 }, { "x": 865, "y": 786 }, { "x": 624.5, "y": 530 } ], [ { "x": 71.5, "y": 278 }, { "x": 80, "y": 60.5 }, { "x": 664.5, "y": 48 }, { "x": 624.5, "y": 530 }, { "x": 297.5, "y": 461.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/LargeIsland/LargeIsland_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 664.5, "y": 48 }, { "x": 2044.5, "y": 48 }, { "x": 1662.5, "y": 490.5 }, { "x": 865, "y": 786 }, { "x": 624.5, "y": 530 } ], [ { "x": 71.5, "y": 278 }, { "x": 80, "y": 60.5 }, { "x": 664.5, "y": 48 }, { "x": 624.5, "y": 530 }, { "x": 297.5, "y": 461.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/LargeIsland/LargeIsland_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 664.5, "y": 48 }, { "x": 2044.5, "y": 48 }, { "x": 1662.5, "y": 490.5 }, { "x": 865, "y": 786 }, { "x": 624.5, "y": 530 } ], [ { "x": 71.5, "y": 278 }, { "x": 80, "y": 60.5 }, { "x": 664.5, "y": 48 }, { "x": 624.5, "y": 530 }, { "x": 297.5, "y": 461.5 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "StaticPlatform2", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [], "behaviors": [ { "name": "Platform", "type": "PlatformBehavior::PlatformBehavior", "canBeGrabbed": false, "platformType": "NormalPlatform", "yGrabOffset": 0 } ], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets/Images/Common/Platforms/Static/MediumIsland/MediumIsland_4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 44.5, "y": 120 }, { "x": 19, "y": 56.5 }, { "x": 998, "y": 29 }, { "x": 950.5, "y": 163 }, { "x": 446, "y": 306.5 }, { "x": 123.5, "y": 166.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets/Images/Common/Platforms/Static/MediumIsland/MediumIsland_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 44.5, "y": 120 }, { "x": 19, "y": 56.5 }, { "x": 998, "y": 29 }, { "x": 950.5, "y": 163 }, { "x": 446, "y": 306.5 }, { "x": 123.5, "y": 166.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets/Images/Common/Platforms/Static/MediumIsland/MediumIsland_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 44.5, "y": 120 }, { "x": 19, "y": 56.5 }, { "x": 998, "y": 29 }, { "x": 950.5, "y": 163 }, { "x": 446, "y": 306.5 }, { "x": 123.5, "y": 166.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets/Images/Common/Platforms/Static/MediumIsland/MediumIsland_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 44.5, "y": 120 }, { "x": 19, "y": 56.5 }, { "x": 998, "y": 29 }, { "x": 950.5, "y": 163 }, { "x": 446, "y": 306.5 }, { "x": 123.5, "y": 166.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets/Images/Common/Platforms/Static/MediumIsland/MediumIsland_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 44.5, "y": 120 }, { "x": 19, "y": 56.5 }, { "x": 998, "y": 29 }, { "x": 950.5, "y": 163 }, { "x": 446, "y": 306.5 }, { "x": 123.5, "y": 166.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets/Images/Common/Platforms/Static/MediumIsland/MediumIsland_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 44.5, "y": 120 }, { "x": 19, "y": 56.5 }, { "x": 998, "y": 29 }, { "x": 950.5, "y": 163 }, { "x": 446, "y": 306.5 }, { "x": 123.5, "y": 166.5 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "HorizontalMovingPlatformRight", "type": "Sprite", "updateIfNotVisible": false, "variables": [ { "folded": true, "name": "OldPosition_X", "type": "number", "value": 0 }, { "folded": true, "name": "OldPosition_Y", "type": "number", "value": 0 }, { "folded": true, "name": "OldAngle", "type": "number", "value": 0 } ], "effects": [], "behaviors": [ { "name": "Platform", "type": "PlatformBehavior::PlatformBehavior", "canBeGrabbed": false, "platformType": "NormalPlatform", "yGrabOffset": 0 }, { "name": "RectangleMovement", "type": "RectangleMovement::RectangleMovement", "Width": 500, "Height": 0, "Clockwise": true, "HorizontalEdgeDuration": 3, "VerticalEdgeDuration": 0, "Left": 1, "Top": 1, "Progress": 1, "OldX": 1, "OldY": 1, "Easing": "easeInOutSine", "InitialPosition": "Top-left corner", "ToogleClockwise": false } ], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev\\MovingIsland\\MovingIslandRight_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 38, "y": 32 }, { "x": 999, "y": 32 }, { "x": 942, "y": 235 }, { "x": 693, "y": 437.5 }, { "x": 152, "y": 432 }, { "x": 35, "y": 261.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\MovingIsland\\MovingIslandRIght_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 38, "y": 32 }, { "x": 999, "y": 32 }, { "x": 942, "y": 235 }, { "x": 693, "y": 437.5 }, { "x": 152, "y": 432 }, { "x": 35, "y": 261.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\MovingIsland\\MovingIslandRight_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 38, "y": 32 }, { "x": 999, "y": 32 }, { "x": 942, "y": 235 }, { "x": 693, "y": 437.5 }, { "x": 152, "y": 432 }, { "x": 35, "y": 261.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\MovingIsland\\MovingIslandRight_4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 38, "y": 32 }, { "x": 999, "y": 32 }, { "x": 942, "y": 235 }, { "x": 693, "y": 437.5 }, { "x": 152, "y": 432 }, { "x": 35, "y": 261.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\MovingIsland\\MovingIslandRight_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 38, "y": 32 }, { "x": 999, "y": 32 }, { "x": 942, "y": 235 }, { "x": 693, "y": 437.5 }, { "x": 152, "y": 432 }, { "x": 35, "y": 261.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\MovingIsland\\MovingIslandRIght_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 38, "y": 32 }, { "x": 999, "y": 32 }, { "x": 942, "y": 235 }, { "x": 693, "y": 437.5 }, { "x": 152, "y": 432 }, { "x": 35, "y": 261.5 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "StaticPlatform1", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [], "behaviors": [ { "name": "Platform", "type": "PlatformBehavior::PlatformBehavior", "canBeGrabbed": false, "platformType": "NormalPlatform", "yGrabOffset": 0 } ], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": false, "image": "Assets/Images/Common/Platforms/Static/RectangularPlatform/RectangularPlatform_4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [] }, { "hasCustomCollisionMask": false, "image": "Assets/Images/Common/Platforms/Static/RectangularPlatform/RectangularPlatform_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [] }, { "hasCustomCollisionMask": false, "image": "Assets/Images/Common/Platforms/Static/RectangularPlatform/RectangularPlatform_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [] }, { "hasCustomCollisionMask": false, "image": "Assets/Images/Common/Platforms/Static/RectangularPlatform/RectangularPlatform_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [] }, { "hasCustomCollisionMask": false, "image": "Assets/Images/Common/Platforms/Static/RectangularPlatform/RectangularPlatform_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [] }, { "hasCustomCollisionMask": false, "image": "Assets/Images/Common/Platforms/Static/RectangularPlatform/RectangularPlatform_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "Portal", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "AdvancedBloom", "name": "Effect", "doubleParameters": { "bloomScale": 0.7, "blur": 4, "brightness": 0.7, "padding": 0, "quality": 7, "threshold": 0.5 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.4, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Portal/Portal_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 89.5, "y": 211.5 }, { "x": 313.5, "y": 42.5 }, { "x": 608.5, "y": 167.5 }, { "x": 597.5, "y": 1022.5 }, { "x": 55.5, "y": 1024 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Portal/Portal_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 89.5, "y": 211.5 }, { "x": 313.5, "y": 42.5 }, { "x": 608.5, "y": 167.5 }, { "x": 597.5, "y": 1022.5 }, { "x": 55.5, "y": 1024 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "Ladder", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [], "behaviors": [ { "name": "Platform", "type": "PlatformBehavior::PlatformBehavior", "canBeGrabbed": true, "platformType": "Ladder", "yGrabOffset": 0 } ], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Ladder/Ladder_4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 0, "y": 0 }, { "x": 256, "y": 0 }, { "x": 256, "y": 768 }, { "x": 0, "y": 768 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Ladder/Ladder_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 0, "y": 0 }, { "x": 256, "y": 0 }, { "x": 256, "y": 768 }, { "x": 0, "y": 768 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Ladder/Ladder_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 0, "y": 0 }, { "x": 256, "y": 0 }, { "x": 256, "y": 768 }, { "x": 0, "y": 768 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Ladder/Ladder_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 0, "y": 0 }, { "x": 256, "y": 0 }, { "x": 256, "y": 768 }, { "x": 0, "y": 768 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Ladder/Ladder_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 0, "y": 0 }, { "x": 256, "y": 0 }, { "x": 256, "y": 768 }, { "x": 0, "y": 768 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Ladder/Ladder_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 0, "y": 0 }, { "x": 256, "y": 0 }, { "x": 256, "y": 768 }, { "x": 0, "y": 768 } ] ] } ] } ] } ] }, { "additive": true, "assetStoreId": "", "destroyWhenNoParticles": true, "emitterAngleA": 0, "emitterAngleB": 360, "emitterForceMax": 300, "emitterForceMin": 250, "flow": 1000, "jumpForwardInTimeOnCreation": 0, "maxParticleNb": 250, "name": "BloodParticles", "particleAlpha1": 200, "particleAlpha2": 0, "particleAlphaRandomness1": 0, "particleAlphaRandomness2": 0, "particleAngle1": 0, "particleAngle2": 0, "particleAngleRandomness1": 0, "particleAngleRandomness2": 0, "particleBlue1": 0, "particleBlue2": 0, "particleGravityX": 5, "particleGravityY": 750, "particleGreen1": 0, "particleGreen2": 0, "particleLifeTimeMax": 2, "particleLifeTimeMin": 1.5, "particleRed1": 255, "particleRed2": 0, "particleSize1": 10, "particleSize2": 2, "particleSizeRandomness1": 0, "particleSizeRandomness2": 0, "rendererParam1": 10, "rendererParam2": 1, "rendererType": "Quad", "tank": 250, "textureParticleName": "AssetDev/Particles/Drop/Drop.png", "type": "ParticleSystem::ParticleEmitter", "zoneRadius": 10, "variables": [], "effects": [], "behaviors": [] }, { "additive": true, "assetStoreId": "", "destroyWhenNoParticles": true, "emitterAngleA": 0, "emitterAngleB": 360, "emitterForceMax": 250, "emitterForceMin": 200, "flow": 1000, "jumpForwardInTimeOnCreation": 0, "maxParticleNb": 75, "name": "ProjectileDeathParticles", "particleAlpha1": 200, "particleAlpha2": 0, "particleAlphaRandomness1": 0, "particleAlphaRandomness2": 0, "particleAngle1": 0, "particleAngle2": 0, "particleAngleRandomness1": 0, "particleAngleRandomness2": 0, "particleBlue1": 255, "particleBlue2": 100, "particleGravityX": 5, "particleGravityY": 750, "particleGreen1": 255, "particleGreen2": 100, "particleLifeTimeMax": 1.5, "particleLifeTimeMin": 0.5, "particleRed1": 255, "particleRed2": 100, "particleSize1": 100, "particleSize2": 100, "particleSizeRandomness1": 0, "particleSizeRandomness2": 0, "rendererParam1": 5, "rendererParam2": 1, "rendererType": "Point", "tank": 200, "textureParticleName": "", "type": "ParticleSystem::ParticleEmitter", "zoneRadius": 1, "variables": [], "effects": [], "behaviors": [] }, { "additive": true, "assetStoreId": "", "destroyWhenNoParticles": true, "emitterAngleA": 0, "emitterAngleB": 360, "emitterForceMax": 45, "emitterForceMin": 30, "flow": 40, "jumpForwardInTimeOnCreation": 0, "maxParticleNb": 400, "name": "DoorParticles", "particleAlpha1": 100, "particleAlpha2": 0, "particleAlphaRandomness1": 0, "particleAlphaRandomness2": 0, "particleAngle1": 0, "particleAngle2": 0, "particleAngleRandomness1": 0, "particleAngleRandomness2": 0, "particleBlue1": 255, "particleBlue2": 255, "particleGravityX": 0, "particleGravityY": 0, "particleGreen1": 255, "particleGreen2": 255, "particleLifeTimeMax": 5, "particleLifeTimeMin": 1, "particleRed1": 255, "particleRed2": 255, "particleSize1": 100, "particleSize2": 100, "particleSizeRandomness1": 0, "particleSizeRandomness2": 0, "rendererParam1": 3.5, "rendererParam2": 1, "rendererType": "Point", "tank": -1, "textureParticleName": "", "type": "ParticleSystem::ParticleEmitter", "zoneRadius": 7, "variables": [], "effects": [], "behaviors": [] }, { "additive": false, "assetStoreId": "", "destroyWhenNoParticles": true, "emitterAngleA": 0, "emitterAngleB": 30, "emitterForceMax": 40, "emitterForceMin": 20, "flow": 200, "jumpForwardInTimeOnCreation": 0, "maxParticleNb": 300, "name": "DustParticle", "particleAlpha1": 255, "particleAlpha2": 0, "particleAlphaRandomness1": 0, "particleAlphaRandomness2": 0, "particleAngle1": 0, "particleAngle2": 0, "particleAngleRandomness1": 0, "particleAngleRandomness2": 0, "particleBlue1": 255, "particleBlue2": 255, "particleGravityX": 0, "particleGravityY": 0, "particleGreen1": 255, "particleGreen2": 255, "particleLifeTimeMax": 1.5, "particleLifeTimeMin": 0.5, "particleRed1": 255, "particleRed2": 255, "particleSize1": 100, "particleSize2": 50, "particleSizeRandomness1": 0, "particleSizeRandomness2": 0, "rendererParam1": 6, "rendererParam2": 1, "rendererType": "Point", "tank": 5, "textureParticleName": "", "type": "ParticleSystem::ParticleEmitter", "zoneRadius": 10, "variables": [], "effects": [], "behaviors": [] }, { "assetStoreId": "c807d51d4bab0016401aef4d64d10d137f5ac8738ffa15865e1bc81435b9720b", "name": "LivesBar", "type": "TiledUnitsBar::TiledUnitsBar", "variables": [], "effects": [], "behaviors": [], "content": { "UnitWidth": 96, "HideBackground": true, "ShowBackground": false, "InitialValue": 5, "MaxValue": 5 }, "childrenContent": { "Background": { "bottomMargin": 0, "height": 64, "leftMargin": 0, "rightMargin": 0, "texture": "AssetDev/HeartCoin/HeartIcon_Blank.png", "tiled": false, "topMargin": 0, "width": 240 }, "Bar": { "height": 96, "texture": "AssetDev/HeartCoin/HeartIcon_Blank.png", "width": 96 }, "FillBar": { "height": 96, "texture": "AssetDev/HeartCoin/HeartIcon.png", "width": 69 } } }, { "assetStoreId": "45827f5ecff9d1cc17847c948a055323dbd4ca63159a0ed696d49ddf18bd071e", "name": "HopeBar", "type": "PanelSpriteContinuousBar::PanelSpriteContinuousBar", "variables": [], "effects": [], "behaviors": [], "content": { "BarTopPadding": 3, "BarLeftPadding": 4, "BarRightPadding": 4, "BarBottomPadding": 4, "EasingDuration": 0.25, "PreviousHighValueDuration": 0, "ShowLabel": false, "InitialValue": 0, "MaxValue": 18 }, "childrenContent": { "Background": { "bottomMargin": 4, "height": 26, "leftMargin": 2, "rightMargin": 2, "texture": "Assets\\Images\\UI\\HopeBar\\GraduatedHopeBar_Frame.png", "tiled": false, "topMargin": 3, "width": 118 }, "Buffer": { "bottomMargin": 0, "height": 19, "leftMargin": 0, "rightMargin": 0, "texture": "Assets\\Images\\UI\\HopeBar\\GraduatedHopeBar_Content.png", "tiled": true, "topMargin": 0, "width": 21 }, "FillBar": { "bottomMargin": 0, "height": 19, "leftMargin": 0, "rightMargin": 0, "texture": "Assets\\Images\\UI\\HopeBar\\GraduatedHopeBar_Content.png", "tiled": true, "topMargin": 0, "width": 21 }, "Label": { "bold": false, "italic": false, "smoothed": true, "underlined": false, "string": "2 / 3", "font": "", "textAlignment": "", "characterSize": 20, "color": { "b": 0, "g": 0, "r": 0 } } } }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "Memory", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 2, "outerStrength": 4 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "Mountains", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Mountains1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Mountains2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Mountains3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Mountains4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Mountains3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Mountains2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] } ] } ] }, { "name": "Beach", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Beach1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Beach2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Beach3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Beach4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Beach3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Beach2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] } ] } ] }, { "name": "Forest", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Forest1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Forest2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Forest3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Forest4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Forest3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Forest2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] } ] } ] }, { "name": "Ocean", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Ocean1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Ocean2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Ocean3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Ocean4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Ocean3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Ocean2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] } ] } ] }, { "name": "LivingRoom", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_LivingRoom1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_LivingRoom2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_LivingRoom3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_LivingRoom4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_LivingRoom3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_LivingRoom2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] } ] } ] }, { "name": "School", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_School1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_School2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_School3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_School4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_School3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_School2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] } ] } ] }, { "name": "WhimsicalTree", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_WhimsicalTree1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_WhimsicalTree2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_WhimsicalTree3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_WhimsicalTree4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_WhimsicalTree3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_WhimsicalTree2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] } ] } ] }, { "name": "BlockWorld", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_BlockWorld1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_BlockWorld2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_BlockWorld3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_BlockWorld4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_BlockWorld3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_BlockWorld2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] } ] } ] }, { "name": "TangentHell", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_TangentHell1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_TangentHell2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_TangentHell3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_TangentHell4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_TangentHell3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_TangentHell2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] } ] } ] }, { "name": "Recursion", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_Recursion1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_Recursion2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_Recursion3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_Recursion4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_Recursion3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_Recursion2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] } ] } ] }, { "name": "Linux", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_Linux1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_Linux2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_Linux3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_Linux4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_Linux3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_Linux2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] } ] } ] }, { "name": "Boss", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_Boss1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_Boss2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_Boss3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_Boss4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_Boss3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_Boss2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "UI_Sinage_DeathText", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Sinage/YouDied/YouDied.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 69, "y": 132 }, { "x": 1883, "y": 132 }, { "x": 1883, "y": 914 }, { "x": 69, "y": 914 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "UI_Sinage_MemoryAcquired", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Sinage/MemoryAcquired/MemoryAcquired.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 26, "y": 106 }, { "x": 1970, "y": 106 }, { "x": 1970, "y": 974 }, { "x": 26, "y": 974 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "UI_Sinage_Lives", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Sinage/Lives/Lives.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 19, "y": 33 }, { "x": 759, "y": 33 }, { "x": 759, "y": 252 }, { "x": 19, "y": 252 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "UI_Sinage_Hope", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets\\Images\\UI\\Hope\\Hope.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 35, "y": 56 }, { "x": 503, "y": 56 }, { "x": 503, "y": 230 }, { "x": 35, "y": 230 } ] ] } ] } ] } ] }, { "assetStoreId": "a48315b9a9c655af87118d7bb8f6be03b4dbb14e066387849b2d2d4c3600573c", "name": "UI_Sinage_RetryButton", "type": "PanelSpriteButton::PanelSpriteButton", "variables": [], "effects": [], "behaviors": [], "content": { "LeftPadding": 16, "RightPadding": 16, "PressedLabelOffsetY": 3, "BottomPadding": 24, "TopPadding": 16, "HoveredFadeOutDuration": 0.25 }, "childrenContent": { "Hovered": { "bottomMargin": 16, "height": 69, "leftMargin": 16, "rightMargin": 16, "texture": "Assets\\Images\\UI\\Labels\\TryAgain\\TryAgainButton_Hovered.png", "tiled": true, "topMargin": 16, "width": 192 }, "Idle": { "bottomMargin": 16, "height": 69, "leftMargin": 16, "rightMargin": 16, "texture": "Assets\\Images\\UI\\Labels\\TryAgain\\TryAgainButton_Idle.png", "tiled": true, "topMargin": 16, "width": 192 }, "Label": { "bold": false, "italic": false, "smoothed": true, "underlined": false, "string": "", "font": "CantoraOne-Regular.ttf", "textAlignment": "center", "characterSize": 40, "color": { "b": 255, "g": 255, "r": 255 } }, "Pressed": { "bottomMargin": 16, "height": 69, "leftMargin": 16, "rightMargin": 16, "texture": "Assets\\Images\\UI\\Labels\\TryAgain\\TryAgainButton_Pressed.png", "tiled": true, "topMargin": 16, "width": 192 } } }, { "assetStoreId": "", "height": 32, "name": "UI_Sinage_Background", "texture": "Assets/Images/Common/Black/Black.png", "type": "TiledSpriteObject::TiledSprite", "width": 32, "variables": [], "effects": [], "behaviors": [] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "HorizontalDemon", "type": "Sprite", "updateIfNotVisible": false, "variables": [ { "folded": true, "name": "IsKillable", "type": "boolean", "value": true }, { "name": "IsDead", "type": "boolean", "value": false }, { "folded": true, "name": "HasBeenReaped", "type": "boolean", "value": false }, { "folded": true, "name": "LifeForce", "type": "number", "value": 2.5 }, { "folded": true, "name": "OldPosition_X", "type": "number", "value": 0 }, { "folded": true, "name": "OldPosition_Y", "type": "number", "value": 0 }, { "folded": true, "name": "OldAngle", "type": "number", "value": 0 } ], "effects": [], "behaviors": [ { "name": "TimedBackAndForthMirroredMovement", "type": "TimedBackAndForthMovement::TimedBackAndForthMirroredMovement", "Vertical": false, "Speed": 300, "Distance": 800, "Timeout": 2, "StartPosition": 0, "LastPosition": 0, "Timecheck": 0 } ], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Entities/HorizontalDemon/HorizontalDemon_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 52, "y": 8 }, { "x": 925, "y": 8 }, { "x": 925, "y": 1013 }, { "x": 52, "y": 1013 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Entities/HorizontalDemon/HorizontalDemon_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 52, "y": 8 }, { "x": 925, "y": 8 }, { "x": 925, "y": 1013 }, { "x": 52, "y": 1013 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Entities/HorizontalDemon/HorizontalDemon_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 52, "y": 8 }, { "x": 925, "y": 8 }, { "x": 925, "y": 1013 }, { "x": 52, "y": 1013 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Entities/HorizontalDemon/HorizontalDemon_4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 52, "y": 8 }, { "x": 925, "y": 8 }, { "x": 925, "y": 1013 }, { "x": 52, "y": 1013 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "SpikeDemon_Base", "type": "Sprite", "updateIfNotVisible": false, "variables": [ { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 7 }, { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 }, { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": true }, { "folded": true, "name": "CurrentlyChargingUp", "type": "boolean", "value": false }, { "folded": true, "name": "NeedsOffsetReset", "type": "boolean", "value": true }, { "folded": true, "name": "IsKillable", "type": "boolean", "value": true }, { "folded": true, "name": "IsDead", "type": "boolean", "value": false }, { "folded": true, "name": "HasBeenReaped", "type": "boolean", "value": false }, { "folded": true, "name": "LifeForce", "type": "number", "value": 2 }, { "folded": true, "name": "OldPosition_X", "type": "number", "value": 0 }, { "folded": true, "name": "OldPosition_Y", "type": "number", "value": 0 }, { "folded": true, "name": "OldAngle", "type": "number", "value": 0 } ], "effects": [ { "effectType": "AdvancedBloom", "name": "Bloom", "doubleParameters": { "bloomScale": 2, "blur": 7, "brightness": 2, "padding": 0, "quality": 7, "threshold": 0.5 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [ { "name": "InOnScreen", "type": "IsOnScreen::InOnScreen" }, { "name": "Tween", "type": "Tween::TweenBehavior" } ], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Entities/ShootingSpikeDemon/ShootingSpikeDemon_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 35, "y": 25 }, { "x": 973, "y": 25 }, { "x": 973, "y": 988 }, { "x": 35, "y": 988 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Entities/ShootingSpikeDemon/ShootingSpikeDemon_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 35, "y": 25 }, { "x": 973, "y": 25 }, { "x": 973, "y": 988 }, { "x": 35, "y": 988 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Entities/ShootingSpikeDemon/ShootingSpikeDemon_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 35, "y": 25 }, { "x": 973, "y": 25 }, { "x": 973, "y": 988 }, { "x": 35, "y": 988 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Entities/ShootingSpikeDemon/ShootingSpikeDemon_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 35, "y": 25 }, { "x": 973, "y": 25 }, { "x": 973, "y": 988 }, { "x": 35, "y": 988 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "SpikeDemon_Spike", "type": "Sprite", "updateIfNotVisible": false, "variables": [ { "folded": true, "name": "IsKillable", "type": "boolean", "value": false } ], "effects": [], "behaviors": [ { "name": "AdvancedProjectile", "type": "AdvancedProjectile::AdvancedProjectile", "MaxLifetime": 3, "MaxDistanceFromStartingPosition": 1750, "MaxSpeed": 0, "MinSpeed": 0, "Acceleration": 0, "StartingSpeed": 500, "DeleteWhenLifetimeExceeded": true, "DeleteWhenDistanceExceeded": true } ], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Entities/ShootingSpikeDemon/Spike_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 55, "y": 108 }, { "x": 472, "y": 108 }, { "x": 472, "y": 391 }, { "x": 55, "y": 391 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Entities/ShootingSpikeDemon/Spike_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 55, "y": 108 }, { "x": 472, "y": 108 }, { "x": 472, "y": 391 }, { "x": 55, "y": 391 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Entities/ShootingSpikeDemon/Spike_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 55, "y": 108 }, { "x": 472, "y": 108 }, { "x": 472, "y": 391 }, { "x": 55, "y": 391 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Entities/ShootingSpikeDemon/Spike_4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 55, "y": 108 }, { "x": 472, "y": 108 }, { "x": 472, "y": 391 }, { "x": 55, "y": 391 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Entities/ShootingSpikeDemon/Spike_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 55, "y": 108 }, { "x": 472, "y": 108 }, { "x": 472, "y": 391 }, { "x": 55, "y": 391 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Entities/ShootingSpikeDemon/Spike_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 55, "y": 108 }, { "x": 472, "y": 108 }, { "x": 472, "y": 391 }, { "x": 55, "y": 391 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "VerticalMovingPlatformDown", "type": "Sprite", "updateIfNotVisible": false, "variables": [ { "folded": true, "name": "OldPosition_X", "type": "number", "value": 0 }, { "folded": true, "name": "OldPosition_Y", "type": "number", "value": 0 }, { "folded": true, "name": "OldAngle", "type": "number", "value": 0 } ], "effects": [], "behaviors": [ { "name": "EllipseMovement", "type": "EllipseMovement::EllipseMovement", "RadiusX": 0, "RadiusY": 300, "LoopDuration": 6, "InitialTurningLeft": false, "InitialDirectionAngle": 0, "ShouldRotate": false, "RotationOffset": 0, "CenterX": 0, "CenterY": 0, "MovementAngle": 0, "OldX": 0, "OldY": 0 }, { "name": "Platform", "type": "PlatformBehavior::PlatformBehavior", "canBeGrabbed": false, "platformType": "NormalPlatform", "yGrabOffset": 0 } ], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Platforms/VerticalMovingPlatform/VerticalMovingPlatform_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 52, "y": 64.5 }, { "x": 933, "y": 67 }, { "x": 947.5, "y": 971.5 }, { "x": 36.5, "y": 973 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Platforms/VerticalMovingPlatform/VerticalMovingPlatform_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 52, "y": 64.5 }, { "x": 933, "y": 67 }, { "x": 947.5, "y": 971.5 }, { "x": 36.5, "y": 973 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Platforms/VerticalMovingPlatform/VerticalMovingPlatform_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 52, "y": 64.5 }, { "x": 933, "y": 67 }, { "x": 947.5, "y": 971.5 }, { "x": 36.5, "y": 973 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Platforms/VerticalMovingPlatform/VerticalMovingPlatform_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 52, "y": 64.5 }, { "x": 933, "y": 67 }, { "x": 947.5, "y": 971.5 }, { "x": 36.5, "y": 973 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "FlippingPlatform", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [], "behaviors": [ { "name": "Platform", "type": "PlatformBehavior::PlatformBehavior", "canBeGrabbed": false, "platformType": "NormalPlatform", "yGrabOffset": 0 }, { "name": "ShakeObject_PositionAngleScale", "type": "ShakeObject::ShakeObject_PositionAngleScale" } ], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Platforms/FlippingPlatform/FlippingPlatform_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 978, "y": 456 }, { "x": 387, "y": 251.5 }, { "x": 14, "y": 60 }, { "x": 590, "y": 43 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Platforms/FlippingPlatform/FlippingPlatform_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 978, "y": 456 }, { "x": 387, "y": 251.5 }, { "x": 14, "y": 60 }, { "x": 590, "y": 43 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Platforms/FlippingPlatform/FlippingPlatform_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 978, "y": 456 }, { "x": 387, "y": 251.5 }, { "x": 14, "y": 60 }, { "x": 590, "y": 43 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Platforms/FlippingPlatform/FlippingPlatform_4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 978, "y": 456 }, { "x": 387, "y": 251.5 }, { "x": 14, "y": 60 }, { "x": 590, "y": 43 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Platforms/FlippingPlatform/FlippingPlatform_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 978, "y": 456 }, { "x": 387, "y": 251.5 }, { "x": 14, "y": 60 }, { "x": 590, "y": 43 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Platforms/FlippingPlatform/FlippingPlatform_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 978, "y": 456 }, { "x": 387, "y": 251.5 }, { "x": 14, "y": 60 }, { "x": 590, "y": 43 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "StalactiteDemon_Base", "type": "Sprite", "updateIfNotVisible": false, "variables": [ { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 6.5 }, { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 }, { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": true }, { "folded": true, "name": "CurrentlyChargingUp", "type": "boolean", "value": false }, { "folded": true, "name": "NeedsOffsetReset", "type": "boolean", "value": true }, { "name": "IsKillable", "type": "boolean", "value": false }, { "name": "IsDead", "type": "boolean", "value": false }, { "folded": true, "name": "HasBeenReaped", "type": "boolean", "value": false }, { "name": "LifeForce", "type": "number", "value": 0 }, { "folded": true, "name": "OldPosition_X", "type": "number", "value": 0 }, { "folded": true, "name": "OldPosition_Y", "type": "number", "value": 0 }, { "folded": true, "name": "OldAngle", "type": "number", "value": 0 } ], "effects": [ { "effectType": "AdvancedBloom", "name": "Bloom", "doubleParameters": { "bloomScale": 2, "blur": 7, "brightness": 2, "padding": 0, "quality": 7, "threshold": 0.5 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 6, "greenX": 0, "greenY": 0, "redX": -6, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [ { "name": "InOnScreen", "type": "IsOnScreen::InOnScreen" }, { "name": "Tween", "type": "Tween::TweenBehavior" } ], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev\\Entities\\StalactiteDemon\\StalactiteDemon_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 131, "y": 496 }, { "x": 40, "y": 50 }, { "x": 943, "y": 50 }, { "x": 768, "y": 442.5 }, { "x": 506.5, "y": 698.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Entities\\StalactiteDemon\\StalactiteDemon_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 131, "y": 496 }, { "x": 40, "y": 50 }, { "x": 943, "y": 50 }, { "x": 768, "y": 442.5 }, { "x": 506.5, "y": 698.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Entities\\StalactiteDemon\\StalactiteDemon_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 131, "y": 496 }, { "x": 40, "y": 50 }, { "x": 943, "y": 50 }, { "x": 768, "y": 442.5 }, { "x": 506.5, "y": 698.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Entities\\StalactiteDemon\\StalactiteDemon_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 131, "y": 496 }, { "x": 40, "y": 50 }, { "x": 943, "y": 50 }, { "x": 768, "y": 442.5 }, { "x": 506.5, "y": 698.5 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "StalactiteDemon_Spike", "type": "Sprite", "updateIfNotVisible": false, "variables": [ { "name": "IsKillable", "type": "boolean", "value": false } ], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 6, "greenX": 0, "greenY": 0, "redX": -6, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [ { "name": "AdvancedProjectile", "type": "AdvancedProjectile::AdvancedProjectile", "MaxLifetime": 0, "MaxDistanceFromStartingPosition": 1750, "MaxSpeed": 0, "MinSpeed": 0, "Acceleration": 0, "StartingSpeed": 550, "DeleteWhenLifetimeExceeded": true, "DeleteWhenDistanceExceeded": true } ], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev\\Entities\\StalactiteDemon\\Stalactite_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 52.5, "y": 38 }, { "x": 633, "y": 170.5 }, { "x": 1004.5, "y": 287.5 }, { "x": 563.5, "y": 439.5 }, { "x": 309, "y": 474.5 }, { "x": 52.5, "y": 484 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Entities\\StalactiteDemon\\Stalactite_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 52.5, "y": 38 }, { "x": 633, "y": 170.5 }, { "x": 1004.5, "y": 287.5 }, { "x": 563.5, "y": 439.5 }, { "x": 309, "y": 474.5 }, { "x": 52.5, "y": 484 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Entities\\StalactiteDemon\\Stalactite_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 52.5, "y": 38 }, { "x": 633, "y": 170.5 }, { "x": 1004.5, "y": 287.5 }, { "x": 563.5, "y": 439.5 }, { "x": 309, "y": 474.5 }, { "x": 52.5, "y": 484 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Entities\\StalactiteDemon\\Stalactite_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 52.5, "y": 38 }, { "x": 633, "y": 170.5 }, { "x": 1004.5, "y": 287.5 }, { "x": 563.5, "y": 439.5 }, { "x": 309, "y": 474.5 }, { "x": 52.5, "y": 484 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "StalagmiteDemon_Base", "type": "Sprite", "updateIfNotVisible": false, "variables": [ { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 6.5 }, { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 }, { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": true }, { "folded": true, "name": "CurrentlyChargingUp", "type": "boolean", "value": false }, { "folded": true, "name": "NeedsOffsetReset", "type": "boolean", "value": true }, { "name": "IsKillable", "type": "boolean", "value": false }, { "name": "IsDead", "type": "boolean", "value": false }, { "folded": true, "name": "HasBeenReaped", "type": "boolean", "value": false }, { "name": "LifeForce", "type": "number", "value": 0 }, { "folded": true, "name": "OldPosition_X", "type": "number", "value": 0 }, { "folded": true, "name": "OldPosition_Y", "type": "number", "value": 0 }, { "folded": true, "name": "OldAngle", "type": "number", "value": 0 } ], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 6, "greenX": 0, "greenY": 0, "redX": -6, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "AdvancedBloom", "name": "Bloom", "doubleParameters": { "bloomScale": 2, "blur": 7, "brightness": 2, "padding": 0, "quality": 7, "threshold": 0.5 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [ { "name": "InOnScreen", "type": "IsOnScreen::InOnScreen" }, { "name": "Tween", "type": "Tween::TweenBehavior" } ], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Entities/StalactiteDemon/StalactiteDemon_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 40, "y": 50 }, { "x": 943, "y": 50 }, { "x": 768, "y": 442.5 }, { "x": 506.5, "y": 698.5 }, { "x": 131, "y": 496 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Entities/StalactiteDemon/StalactiteDemon_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 40, "y": 50 }, { "x": 943, "y": 50 }, { "x": 768, "y": 442.5 }, { "x": 506.5, "y": 698.5 }, { "x": 131, "y": 496 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Entities/StalactiteDemon/StalactiteDemon_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 40, "y": 50 }, { "x": 943, "y": 50 }, { "x": 768, "y": 442.5 }, { "x": 506.5, "y": 698.5 }, { "x": 131, "y": 496 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Entities/StalactiteDemon/StalactiteDemon_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 40, "y": 50 }, { "x": 943, "y": 50 }, { "x": 768, "y": 442.5 }, { "x": 506.5, "y": 698.5 }, { "x": 131, "y": 496 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "FlippingPlatform2", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [], "behaviors": [ { "name": "Platform", "type": "PlatformBehavior::PlatformBehavior", "canBeGrabbed": false, "platformType": "NormalPlatform", "yGrabOffset": 0 }, { "name": "ShakeObject_PositionAngleScale", "type": "ShakeObject::ShakeObject_PositionAngleScale" } ], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Platforms/FlippingPlatform/FlippingPlatform_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 978, "y": 456 }, { "x": 387, "y": 251.5 }, { "x": 14, "y": 60 }, { "x": 590, "y": 43 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Platforms/FlippingPlatform/FlippingPlatform_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 978, "y": 456 }, { "x": 387, "y": 251.5 }, { "x": 14, "y": 60 }, { "x": 590, "y": 43 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Platforms/FlippingPlatform/FlippingPlatform_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 978, "y": 456 }, { "x": 387, "y": 251.5 }, { "x": 14, "y": 60 }, { "x": 590, "y": 43 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Platforms/FlippingPlatform/FlippingPlatform_4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 978, "y": 456 }, { "x": 387, "y": 251.5 }, { "x": 14, "y": 60 }, { "x": 590, "y": 43 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Platforms/FlippingPlatform/FlippingPlatform_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 978, "y": 456 }, { "x": 387, "y": 251.5 }, { "x": 14, "y": 60 }, { "x": 590, "y": 43 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Platforms/FlippingPlatform/FlippingPlatform_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 978, "y": 456 }, { "x": 387, "y": 251.5 }, { "x": 14, "y": 60 }, { "x": 590, "y": 43 } ] ] } ] } ] } ] }, { "assetStoreId": "a48315b9a9c655af87118d7bb8f6be03b4dbb14e066387849b2d2d4c3600573c", "name": "UI_Sinage_ProceedButton", "type": "PanelSpriteButton::PanelSpriteButton", "variables": [], "effects": [], "behaviors": [], "content": { "LeftPadding": 16, "RightPadding": 16, "PressedLabelOffsetY": 3, "BottomPadding": 24, "TopPadding": 16, "HoveredFadeOutDuration": 0.25 }, "childrenContent": { "Hovered": { "bottomMargin": 16, "height": 69, "leftMargin": 16, "rightMargin": 16, "texture": "AssetDev\\Sinage\\ProceedButton\\ProceedButton_Hovered.png", "tiled": true, "topMargin": 16, "width": 192 }, "Idle": { "bottomMargin": 16, "height": 69, "leftMargin": 16, "rightMargin": 16, "texture": "AssetDev\\Sinage\\ProceedButton\\ProceedButton_Idle.png", "tiled": true, "topMargin": 16, "width": 192 }, "Label": { "bold": false, "italic": false, "smoothed": true, "underlined": false, "string": "", "font": "CantoraOne-Regular.ttf", "textAlignment": "center", "characterSize": 40, "color": { "b": 255, "g": 255, "r": 255 } }, "Pressed": { "bottomMargin": 16, "height": 69, "leftMargin": 16, "rightMargin": 16, "texture": "AssetDev\\Sinage\\ProceedButton\\ProceedButton_Pressed.png", "tiled": true, "topMargin": 16, "width": 192 } } }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "LaserDemon_Beam", "type": "Sprite", "updateIfNotVisible": false, "variables": [ { "folded": true, "name": "OnOffTime", "type": "number", "value": 4 }, { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 4 }, { "folded": true, "name": "CurrentlyChargingOrHasChargedUp", "type": "boolean", "value": false }, { "folded": true, "name": "CurrentlyChargingOrHasChargedDown", "type": "boolean", "value": false }, { "folded": true, "name": "IsKillable", "type": "boolean", "value": false }, { "folded": true, "name": "OrgPosition_X", "type": "number", "value": 0 }, { "folded": true, "name": "OrgPosition_Y", "type": "number", "value": 0 }, { "folded": true, "name": "OldAngle", "type": "number", "value": 0 } ], "effects": [ { "effectType": "AdvancedBloom", "name": "Bloom", "doubleParameters": { "bloomScale": 2, "blur": 4, "brightness": 0.45, "padding": 10, "quality": 5, "threshold": 0.5 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [ { "name": "Tween", "type": "Tween::TweenBehavior" } ], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemonBeam_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 53, "y": 0 }, { "x": 204, "y": 0 }, { "x": 204, "y": 256 }, { "x": 53, "y": 256 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemonBeam_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 53, "y": 0 }, { "x": 204, "y": 0 }, { "x": 204, "y": 256 }, { "x": 53, "y": 256 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemonBeam_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 53, "y": 0 }, { "x": 204, "y": 0 }, { "x": 204, "y": 256 }, { "x": 53, "y": 256 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemonBeam_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 53, "y": 0 }, { "x": 204, "y": 0 }, { "x": 204, "y": 256 }, { "x": 53, "y": 256 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "LaserDemon_Base", "type": "Sprite", "updateIfNotVisible": false, "variables": [ { "folded": true, "name": "OnOffTime", "type": "number", "value": 4 }, { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 4 }, { "folded": true, "name": "CurrentlyChargingOrHasChargedUp", "type": "boolean", "value": false }, { "folded": true, "name": "CurrentlyChargingOrHasChargedDown", "type": "boolean", "value": false }, { "folded": true, "name": "NeedsOffsetReset", "type": "boolean", "value": true }, { "folded": true, "name": "IsKillable", "type": "boolean", "value": false }, { "folded": true, "name": "HasBeenReaped", "type": "boolean", "value": false }, { "folded": true, "name": "OldAngle", "type": "number", "value": 0 } ], "effects": [ { "effectType": "AdvancedBloom", "name": "Bloom", "doubleParameters": { "bloomScale": 2, "blur": 5, "brightness": 2, "padding": 0, "quality": 5, "threshold": 0.5 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "AdvancedBloom", "name": "Bloom 2", "doubleParameters": { "bloomScale": 2, "blur": 5, "brightness": 2, "padding": 0, "quality": 5, "threshold": 0.5 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 6, "greenX": 0, "greenY": 0, "redX": -6, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [ { "name": "InOnScreen", "type": "IsOnScreen::InOnScreen" }, { "name": "Tween", "type": "Tween::TweenBehavior" } ], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemonBase_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 170, "y": 145 }, { "x": 870, "y": 145 }, { "x": 870, "y": 890 }, { "x": 170, "y": 890 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemonBase_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 170, "y": 145 }, { "x": 870, "y": 145 }, { "x": 870, "y": 890 }, { "x": 170, "y": 890 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemonBase_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 170, "y": 145 }, { "x": 870, "y": 145 }, { "x": 870, "y": 890 }, { "x": 170, "y": 890 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemonBase_4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 170, "y": 145 }, { "x": 870, "y": 145 }, { "x": 870, "y": 890 }, { "x": 170, "y": 890 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemonBase_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 170, "y": 145 }, { "x": 870, "y": 145 }, { "x": 870, "y": 890 }, { "x": 170, "y": 890 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemonBase_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 170, "y": 145 }, { "x": 870, "y": 145 }, { "x": 870, "y": 890 }, { "x": 170, "y": 890 } ] ] } ] } ] } ] }, { "assetStoreId": "", "bold": false, "italic": false, "name": "Test", "smoothed": true, "type": "TextObject::Text", "underlined": false, "variables": [], "effects": [], "behaviors": [], "string": "test", "font": "", "textAlignment": "left", "characterSize": 50, "color": { "b": 0, "g": 0, "r": 255 } }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "HorizontalMovingPlatformLeft", "type": "Sprite", "updateIfNotVisible": false, "variables": [ { "folded": true, "name": "OldPosition_X", "type": "number", "value": 0 }, { "folded": true, "name": "OldPosition_Y", "type": "number", "value": 0 }, { "folded": true, "name": "OldAngle", "type": "number", "value": 0 } ], "effects": [], "behaviors": [ { "name": "Platform", "type": "PlatformBehavior::PlatformBehavior", "canBeGrabbed": false, "platformType": "NormalPlatform", "yGrabOffset": 0 }, { "name": "RectangleMovement", "type": "RectangleMovement::RectangleMovement", "Width": -500, "Height": 0, "Clockwise": true, "HorizontalEdgeDuration": 3, "VerticalEdgeDuration": 0, "Left": 1, "Top": 1, "Progress": 1, "OldX": 1, "OldY": 1, "Easing": "easeInOutSine", "InitialPosition": "Top-left corner", "ToogleClockwise": false } ], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev\\MovingIsland\\MovingIslandLeft_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 25, "y": 32 }, { "x": 35.5, "y": 145 }, { "x": 168.5, "y": 335 }, { "x": 301.5, "y": 418.5 }, { "x": 401.5, "y": 435.5 }, { "x": 747.5, "y": 435.5 }, { "x": 887, "y": 414.5 }, { "x": 989, "y": 261.5 }, { "x": 986, "y": 32 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\MovingIsland\\MovingIslandLeft_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 25, "y": 32 }, { "x": 35.5, "y": 145 }, { "x": 168.5, "y": 335 }, { "x": 301.5, "y": 418.5 }, { "x": 401.5, "y": 435.5 }, { "x": 747.5, "y": 435.5 }, { "x": 887, "y": 414.5 }, { "x": 989, "y": 261.5 }, { "x": 986, "y": 32 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\MovingIsland\\MovingIslandLeft_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 25, "y": 32 }, { "x": 35.5, "y": 145 }, { "x": 168.5, "y": 335 }, { "x": 301.5, "y": 418.5 }, { "x": 401.5, "y": 435.5 }, { "x": 747.5, "y": 435.5 }, { "x": 887, "y": 414.5 }, { "x": 989, "y": 261.5 }, { "x": 986, "y": 32 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\MovingIsland\\MovingIslandLeft_4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 25, "y": 32 }, { "x": 35.5, "y": 145 }, { "x": 168.5, "y": 335 }, { "x": 301.5, "y": 418.5 }, { "x": 401.5, "y": 435.5 }, { "x": 747.5, "y": 435.5 }, { "x": 887, "y": 414.5 }, { "x": 989, "y": 261.5 }, { "x": 986, "y": 32 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\MovingIsland\\MovingIslandLeft_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 25, "y": 32 }, { "x": 35.5, "y": 145 }, { "x": 168.5, "y": 335 }, { "x": 301.5, "y": 418.5 }, { "x": 401.5, "y": 435.5 }, { "x": 747.5, "y": 435.5 }, { "x": 887, "y": 414.5 }, { "x": 989, "y": 261.5 }, { "x": 986, "y": 32 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\MovingIsland\\MovingIslandLeft_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 25, "y": 32 }, { "x": 35.5, "y": 145 }, { "x": 168.5, "y": 335 }, { "x": 301.5, "y": 418.5 }, { "x": 401.5, "y": 435.5 }, { "x": 747.5, "y": 435.5 }, { "x": 887, "y": 414.5 }, { "x": 989, "y": 261.5 }, { "x": 986, "y": 32 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "VerticalMovingPlatformUp", "type": "Sprite", "updateIfNotVisible": false, "variables": [ { "folded": true, "name": "OldPosition_X", "type": "number", "value": 0 }, { "folded": true, "name": "OldPosition_Y", "type": "number", "value": 0 }, { "folded": true, "name": "OldAngle", "type": "number", "value": 0 } ], "effects": [], "behaviors": [ { "name": "EllipseMovement", "type": "EllipseMovement::EllipseMovement", "RadiusX": 0, "RadiusY": -300, "LoopDuration": 6, "InitialTurningLeft": false, "InitialDirectionAngle": 0, "ShouldRotate": false, "RotationOffset": 0, "CenterX": 0, "CenterY": 0, "MovementAngle": 0, "OldX": 0, "OldY": 0 }, { "name": "Platform", "type": "PlatformBehavior::PlatformBehavior", "canBeGrabbed": false, "platformType": "NormalPlatform", "yGrabOffset": 0 } ], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Platforms/VerticalMovingPlatform/VerticalMovingPlatform_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 52, "y": 64.5 }, { "x": 933, "y": 67 }, { "x": 947.5, "y": 971.5 }, { "x": 36.5, "y": 973 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Platforms/VerticalMovingPlatform/VerticalMovingPlatform_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 52, "y": 64.5 }, { "x": 933, "y": 67 }, { "x": 947.5, "y": 971.5 }, { "x": 36.5, "y": 973 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Platforms/VerticalMovingPlatform/VerticalMovingPlatform_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 52, "y": 64.5 }, { "x": 933, "y": 67 }, { "x": 947.5, "y": 971.5 }, { "x": 36.5, "y": 973 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Platforms/VerticalMovingPlatform/VerticalMovingPlatform_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 52, "y": 64.5 }, { "x": 933, "y": 67 }, { "x": 947.5, "y": 971.5 }, { "x": 36.5, "y": 973 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "SpinningPlatformClockwise", "type": "Sprite", "updateIfNotVisible": false, "variables": [ { "folded": true, "name": "OldPosition_X", "type": "number", "value": 0 }, { "folded": true, "name": "OldPosition_Y", "type": "number", "value": 0 }, { "folded": true, "name": "OldAngle", "type": "number", "value": 0 } ], "effects": [], "behaviors": [ { "name": "EllipseMovement", "type": "EllipseMovement::EllipseMovement", "RadiusX": 600, "RadiusY": 600, "LoopDuration": 8, "InitialTurningLeft": false, "InitialDirectionAngle": 0, "ShouldRotate": false, "RotationOffset": 0, "CenterX": 0, "CenterY": 0, "MovementAngle": 0, "OldX": 0, "OldY": 0 }, { "name": "Platform", "type": "PlatformBehavior::PlatformBehavior", "canBeGrabbed": true, "platformType": "NormalPlatform", "yGrabOffset": 0 } ], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev\\Platforms\\DiagonallyMovingPlatform\\SpinningPlatformCounterclockwise_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 28.5, "y": 225.5 }, { "x": 129.5, "y": 299 }, { "x": 306, "y": 347 }, { "x": 751, "y": 347 }, { "x": 887, "y": 288.5 }, { "x": 947.5, "y": 220 }, { "x": 956, "y": 67 }, { "x": 23, "y": 67 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Platforms\\DiagonallyMovingPlatform\\SpinningPlatformCounterclockwise_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 28.5, "y": 225.5 }, { "x": 129.5, "y": 299 }, { "x": 306, "y": 347 }, { "x": 751, "y": 347 }, { "x": 887, "y": 288.5 }, { "x": 947.5, "y": 220 }, { "x": 956, "y": 67 }, { "x": 23, "y": 67 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Platforms\\DiagonallyMovingPlatform\\SpinningPlatformCounterclockwise_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 28.5, "y": 225.5 }, { "x": 129.5, "y": 299 }, { "x": 306, "y": 347 }, { "x": 751, "y": 347 }, { "x": 887, "y": 288.5 }, { "x": 947.5, "y": 220 }, { "x": 956, "y": 67 }, { "x": 23, "y": 67 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Platforms\\DiagonallyMovingPlatform\\SpinningPlatformCounterclockwise_4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 28.5, "y": 225.5 }, { "x": 129.5, "y": 299 }, { "x": 306, "y": 347 }, { "x": 751, "y": 347 }, { "x": 887, "y": 288.5 }, { "x": 947.5, "y": 220 }, { "x": 956, "y": 67 }, { "x": 23, "y": 67 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Platforms\\DiagonallyMovingPlatform\\SpinningPlatformCounterclockwise_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 28.5, "y": 225.5 }, { "x": 129.5, "y": 299 }, { "x": 306, "y": 347 }, { "x": 751, "y": 347 }, { "x": 887, "y": 288.5 }, { "x": 947.5, "y": 220 }, { "x": 956, "y": 67 }, { "x": 23, "y": 67 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Platforms\\DiagonallyMovingPlatform\\SpinningPlatformCounterclockwise_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 28.5, "y": 225.5 }, { "x": 129.5, "y": 299 }, { "x": 306, "y": 347 }, { "x": 751, "y": 347 }, { "x": 887, "y": 288.5 }, { "x": 947.5, "y": 220 }, { "x": 956, "y": 67 }, { "x": 23, "y": 67 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "SpinningPlatformCounterclockwise", "type": "Sprite", "updateIfNotVisible": false, "variables": [ { "folded": true, "name": "OldPosition_X", "type": "number", "value": 0 }, { "folded": true, "name": "OldPosition_Y", "type": "number", "value": 0 }, { "folded": true, "name": "OldAngle", "type": "number", "value": 0 } ], "effects": [], "behaviors": [ { "name": "EllipseMovement", "type": "EllipseMovement::EllipseMovement", "RadiusX": -600, "RadiusY": 600, "LoopDuration": 8, "InitialTurningLeft": false, "InitialDirectionAngle": 0, "ShouldRotate": false, "RotationOffset": 0, "CenterX": 0, "CenterY": 0, "MovementAngle": 0, "OldX": 0, "OldY": 0 }, { "name": "Platform", "type": "PlatformBehavior::PlatformBehavior", "canBeGrabbed": true, "platformType": "NormalPlatform", "yGrabOffset": 0 } ], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev\\Platforms\\DiagonallyMovingPlatform\\SpinningPlatformCounterclockwise_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 28.5, "y": 225.5 }, { "x": 129.5, "y": 299 }, { "x": 306, "y": 347 }, { "x": 751, "y": 347 }, { "x": 887, "y": 288.5 }, { "x": 947.5, "y": 220 }, { "x": 956, "y": 67 }, { "x": 23, "y": 67 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Platforms\\DiagonallyMovingPlatform\\SpinningPlatformCounterclockwise_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 28.5, "y": 225.5 }, { "x": 129.5, "y": 299 }, { "x": 306, "y": 347 }, { "x": 751, "y": 347 }, { "x": 887, "y": 288.5 }, { "x": 947.5, "y": 220 }, { "x": 956, "y": 67 }, { "x": 23, "y": 67 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Platforms\\DiagonallyMovingPlatform\\SpinningPlatformCounterclockwise_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 28.5, "y": 225.5 }, { "x": 129.5, "y": 299 }, { "x": 306, "y": 347 }, { "x": 751, "y": 347 }, { "x": 887, "y": 288.5 }, { "x": 947.5, "y": 220 }, { "x": 956, "y": 67 }, { "x": 23, "y": 67 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Platforms\\DiagonallyMovingPlatform\\SpinningPlatformCounterclockwise_4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 28.5, "y": 225.5 }, { "x": 129.5, "y": 299 }, { "x": 306, "y": 347 }, { "x": 751, "y": 347 }, { "x": 887, "y": 288.5 }, { "x": 947.5, "y": 220 }, { "x": 956, "y": 67 }, { "x": 23, "y": 67 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Platforms\\DiagonallyMovingPlatform\\SpinningPlatformCounterclockwise_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 28.5, "y": 225.5 }, { "x": 129.5, "y": 299 }, { "x": 306, "y": 347 }, { "x": 751, "y": 347 }, { "x": 887, "y": 288.5 }, { "x": 947.5, "y": 220 }, { "x": 956, "y": 67 }, { "x": 23, "y": 67 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Platforms\\DiagonallyMovingPlatform\\SpinningPlatformCounterclockwise_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 28.5, "y": 225.5 }, { "x": 129.5, "y": 299 }, { "x": 306, "y": 347 }, { "x": 751, "y": 347 }, { "x": 887, "y": 288.5 }, { "x": 947.5, "y": 220 }, { "x": 956, "y": 67 }, { "x": 23, "y": 67 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "SpinningRotatingPlatformClockwise", "type": "Sprite", "updateIfNotVisible": false, "variables": [ { "folded": true, "name": "OldPosition_X", "type": "number", "value": 0 }, { "folded": true, "name": "OldPosition_Y", "type": "number", "value": 0 }, { "folded": true, "name": "OldAngle", "type": "number", "value": 0 } ], "effects": [], "behaviors": [ { "name": "EllipseMovement", "type": "EllipseMovement::EllipseMovement", "RadiusX": 600, "RadiusY": 600, "LoopDuration": 8, "InitialTurningLeft": false, "InitialDirectionAngle": 0, "ShouldRotate": true, "RotationOffset": 0, "CenterX": 0, "CenterY": 0, "MovementAngle": 0, "OldX": 0, "OldY": 0 }, { "name": "Platform", "type": "PlatformBehavior::PlatformBehavior", "canBeGrabbed": true, "platformType": "NormalPlatform", "yGrabOffset": 0 } ], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev\\Platforms\\DiagonallyMovingPlatform\\SpinningPlatformClockwise_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 28.5, "y": 268.5 }, { "x": 129.5, "y": 213 }, { "x": 306, "y": 165 }, { "x": 751, "y": 165 }, { "x": 887, "y": 223.5 }, { "x": 947.5, "y": 292 }, { "x": 956, "y": 445 }, { "x": 23, "y": 445 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Platforms\\DiagonallyMovingPlatform\\SpinningPlatformClockwise_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 28.5, "y": 268.5 }, { "x": 129.5, "y": 213 }, { "x": 306, "y": 165 }, { "x": 751, "y": 165 }, { "x": 887, "y": 223.5 }, { "x": 947.5, "y": 292 }, { "x": 956, "y": 445 }, { "x": 23, "y": 445 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Platforms\\DiagonallyMovingPlatform\\SpinningPlatformClockwise_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 28.5, "y": 268.5 }, { "x": 129.5, "y": 213 }, { "x": 306, "y": 165 }, { "x": 751, "y": 165 }, { "x": 887, "y": 223.5 }, { "x": 947.5, "y": 292 }, { "x": 956, "y": 445 }, { "x": 23, "y": 445 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Platforms\\DiagonallyMovingPlatform\\SpinningPlatformClockwise_4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 28.5, "y": 268.5 }, { "x": 129.5, "y": 213 }, { "x": 306, "y": 165 }, { "x": 751, "y": 165 }, { "x": 887, "y": 223.5 }, { "x": 947.5, "y": 292 }, { "x": 956, "y": 445 }, { "x": 23, "y": 445 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Platforms\\DiagonallyMovingPlatform\\SpinningPlatformClockwise_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 28.5, "y": 268.5 }, { "x": 129.5, "y": 213 }, { "x": 306, "y": 165 }, { "x": 751, "y": 165 }, { "x": 887, "y": 223.5 }, { "x": 947.5, "y": 292 }, { "x": 956, "y": 445 }, { "x": 23, "y": 445 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Platforms\\DiagonallyMovingPlatform\\SpinningPlatformClockwise_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 28.5, "y": 268.5 }, { "x": 129.5, "y": 213 }, { "x": 306, "y": 165 }, { "x": 751, "y": 165 }, { "x": 887, "y": 223.5 }, { "x": 947.5, "y": 292 }, { "x": 956, "y": 445 }, { "x": 23, "y": 445 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "SpinningRotatingPlatformCounterclockwise", "type": "Sprite", "updateIfNotVisible": false, "variables": [ { "folded": true, "name": "OldPosition_X", "type": "number", "value": 0 }, { "folded": true, "name": "OldPosition_Y", "type": "number", "value": 0 }, { "folded": true, "name": "OldAngle", "type": "number", "value": 0 } ], "effects": [], "behaviors": [ { "name": "EllipseMovement", "type": "EllipseMovement::EllipseMovement", "RadiusX": 600, "RadiusY": 600, "LoopDuration": 8, "InitialTurningLeft": true, "InitialDirectionAngle": 0, "ShouldRotate": true, "RotationOffset": 0, "CenterX": 0, "CenterY": 0, "MovementAngle": 0, "OldX": 0, "OldY": 0 }, { "name": "Platform", "type": "PlatformBehavior::PlatformBehavior", "canBeGrabbed": true, "platformType": "NormalPlatform", "yGrabOffset": 0 } ], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev\\Platforms\\DiagonallyMovingPlatform\\SpinningPlatformCounterclockwise_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 28.5, "y": 225.5 }, { "x": 129.5, "y": 299 }, { "x": 306, "y": 347 }, { "x": 751, "y": 347 }, { "x": 887, "y": 288.5 }, { "x": 947.5, "y": 220 }, { "x": 956, "y": 67 }, { "x": 23, "y": 67 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Platforms\\DiagonallyMovingPlatform\\SpinningPlatformCounterclockwise_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 28.5, "y": 225.5 }, { "x": 129.5, "y": 299 }, { "x": 306, "y": 347 }, { "x": 751, "y": 347 }, { "x": 887, "y": 288.5 }, { "x": 947.5, "y": 220 }, { "x": 956, "y": 67 }, { "x": 23, "y": 67 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Platforms\\DiagonallyMovingPlatform\\SpinningPlatformCounterclockwise_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 28.5, "y": 225.5 }, { "x": 129.5, "y": 299 }, { "x": 306, "y": 347 }, { "x": 751, "y": 347 }, { "x": 887, "y": 288.5 }, { "x": 947.5, "y": 220 }, { "x": 956, "y": 67 }, { "x": 23, "y": 67 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Platforms\\DiagonallyMovingPlatform\\SpinningPlatformCounterclockwise_4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 28.5, "y": 225.5 }, { "x": 129.5, "y": 299 }, { "x": 306, "y": 347 }, { "x": 751, "y": 347 }, { "x": 887, "y": 288.5 }, { "x": 947.5, "y": 220 }, { "x": 956, "y": 67 }, { "x": 23, "y": 67 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Platforms\\DiagonallyMovingPlatform\\SpinningPlatformCounterclockwise_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 28.5, "y": 225.5 }, { "x": 129.5, "y": 299 }, { "x": 306, "y": 347 }, { "x": 751, "y": 347 }, { "x": 887, "y": 288.5 }, { "x": 947.5, "y": 220 }, { "x": 956, "y": 67 }, { "x": 23, "y": 67 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Platforms\\DiagonallyMovingPlatform\\SpinningPlatformCounterclockwise_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 28.5, "y": 225.5 }, { "x": 129.5, "y": 299 }, { "x": 306, "y": 347 }, { "x": 751, "y": 347 }, { "x": 887, "y": 288.5 }, { "x": 947.5, "y": 220 }, { "x": 956, "y": 67 }, { "x": 23, "y": 67 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "StalagmiteDemon_Spike", "type": "Sprite", "updateIfNotVisible": false, "variables": [ { "name": "IsKillable", "type": "boolean", "value": false } ], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 6, "greenX": 0, "greenY": 0, "redX": -6, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [ { "name": "AdvancedProjectile", "type": "AdvancedProjectile::AdvancedProjectile", "MaxLifetime": 0, "MaxDistanceFromStartingPosition": 1750, "MaxSpeed": 0, "MinSpeed": 0, "Acceleration": 0, "StartingSpeed": 550, "DeleteWhenLifetimeExceeded": true, "DeleteWhenDistanceExceeded": true } ], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev\\Entities\\StalactiteDemon\\Stalactite_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 52.5, "y": 38 }, { "x": 633, "y": 170.5 }, { "x": 1004.5, "y": 287.5 }, { "x": 563.5, "y": 439.5 }, { "x": 309, "y": 474.5 }, { "x": 52.5, "y": 484 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Entities\\StalactiteDemon\\Stalactite_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 52.5, "y": 38 }, { "x": 633, "y": 170.5 }, { "x": 1004.5, "y": 287.5 }, { "x": 563.5, "y": 439.5 }, { "x": 309, "y": 474.5 }, { "x": 52.5, "y": 484 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Entities\\StalactiteDemon\\Stalactite_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 52.5, "y": 38 }, { "x": 633, "y": 170.5 }, { "x": 1004.5, "y": 287.5 }, { "x": 563.5, "y": 439.5 }, { "x": 309, "y": 474.5 }, { "x": 52.5, "y": 484 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Entities\\StalactiteDemon\\Stalactite_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 52.5, "y": 38 }, { "x": 633, "y": 170.5 }, { "x": 1004.5, "y": 287.5 }, { "x": 563.5, "y": 439.5 }, { "x": 309, "y": 474.5 }, { "x": 52.5, "y": 484 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "LaserDemon_BasePermanent", "type": "Sprite", "updateIfNotVisible": false, "variables": [ { "folded": true, "name": "IsKillable", "type": "boolean", "value": false }, { "folded": true, "name": "HasBeenReaped", "type": "boolean", "value": false } ], "effects": [ { "effectType": "AdvancedBloom", "name": "Bloom", "doubleParameters": { "bloomScale": 2, "blur": 5, "brightness": 2, "padding": 0, "quality": 5, "threshold": 0.5 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "AdvancedBloom", "name": "Bloom 2", "doubleParameters": { "bloomScale": 2, "blur": 5, "brightness": 2, "padding": 0, "quality": 5, "threshold": 0.5 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 6, "greenX": 0, "greenY": 0, "redX": -6, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [ { "name": "Tween", "type": "Tween::TweenBehavior" } ], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemonBase_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 170, "y": 145 }, { "x": 870, "y": 145 }, { "x": 870, "y": 890 }, { "x": 170, "y": 890 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemonBase_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 170, "y": 145 }, { "x": 870, "y": 145 }, { "x": 870, "y": 890 }, { "x": 170, "y": 890 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemonBase_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 170, "y": 145 }, { "x": 870, "y": 145 }, { "x": 870, "y": 890 }, { "x": 170, "y": 890 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemonBase_4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 170, "y": 145 }, { "x": 870, "y": 145 }, { "x": 870, "y": 890 }, { "x": 170, "y": 890 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemonBase_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 170, "y": 145 }, { "x": 870, "y": 145 }, { "x": 870, "y": 890 }, { "x": 170, "y": 890 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemonBase_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 170, "y": 145 }, { "x": 870, "y": 145 }, { "x": 870, "y": 890 }, { "x": 170, "y": 890 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "LaserDemon_BeamPermanent", "type": "Sprite", "updateIfNotVisible": false, "variables": [ { "folded": true, "name": "IsKillable", "type": "boolean", "value": false } ], "effects": [ { "effectType": "AdvancedBloom", "name": "Bloom", "doubleParameters": { "bloomScale": 2, "blur": 4, "brightness": 0.45, "padding": 10, "quality": 5, "threshold": 0.5 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemonBeam_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 53, "y": 0 }, { "x": 204, "y": 0 }, { "x": 204, "y": 256 }, { "x": 53, "y": 256 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemonBeam_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 53, "y": 0 }, { "x": 204, "y": 0 }, { "x": 204, "y": 256 }, { "x": 53, "y": 256 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemonBeam_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 53, "y": 0 }, { "x": 204, "y": 0 }, { "x": 204, "y": 256 }, { "x": 53, "y": 256 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemonBeam_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 53, "y": 0 }, { "x": 204, "y": 0 }, { "x": 204, "y": 256 }, { "x": 53, "y": 256 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "LaserRing", "type": "Sprite", "updateIfNotVisible": false, "variables": [ { "folded": true, "name": "IsKillable", "type": "boolean", "value": false } ], "effects": [ { "effectType": "AdvancedBloom", "name": "Bloom", "doubleParameters": { "bloomScale": 2, "blur": 4, "brightness": 0.45, "padding": 10, "quality": 5, "threshold": 0.5 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserRing1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 240, "y": 239 }, { "x": 783, "y": 239 }, { "x": 783, "y": 782 }, { "x": 240, "y": 782 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserRing2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 240, "y": 239 }, { "x": 783, "y": 239 }, { "x": 783, "y": 782 }, { "x": 240, "y": 782 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserRing3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 240, "y": 239 }, { "x": 783, "y": 239 }, { "x": 783, "y": 782 }, { "x": 240, "y": 782 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserRing2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 240, "y": 239 }, { "x": 783, "y": 239 }, { "x": 783, "y": 782 }, { "x": 240, "y": 782 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "LaserDemon_BeamSingle", "type": "Sprite", "updateIfNotVisible": false, "variables": [ { "folded": true, "name": "OnOffTime", "type": "number", "value": 4 }, { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 4 }, { "folded": true, "name": "CurrentlyChargingOrHasChargedUp", "type": "boolean", "value": false }, { "folded": true, "name": "CurrentlyChargingOrHasChargedDown", "type": "boolean", "value": false }, { "folded": true, "name": "IsKillable", "type": "boolean", "value": false }, { "folded": true, "name": "OrgPosition_X", "type": "number", "value": 0 }, { "folded": true, "name": "OrgPosition_Y", "type": "number", "value": 0 }, { "folded": true, "name": "OldAngle", "type": "number", "value": 0 } ], "effects": [ { "effectType": "AdvancedBloom", "name": "Bloom", "doubleParameters": { "bloomScale": 2, "blur": 4, "brightness": 0.45, "padding": 10, "quality": 5, "threshold": 0.5 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [ { "name": "Tween", "type": "Tween::TweenBehavior" } ], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemonBeamSingle_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 54, "y": 128 }, { "x": 204, "y": 128 }, { "x": 204, "y": 256 }, { "x": 54, "y": 256 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemonBeamSingle_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 54, "y": 128 }, { "x": 204, "y": 128 }, { "x": 204, "y": 256 }, { "x": 54, "y": 256 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemonBeamSingle_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 54, "y": 128 }, { "x": 204, "y": 128 }, { "x": 204, "y": 256 }, { "x": 54, "y": 256 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemonBeamSingle_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 54, "y": 128 }, { "x": 204, "y": 128 }, { "x": 204, "y": 256 }, { "x": 54, "y": 256 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "LaserDemon_BeamPermanentSingle", "type": "Sprite", "updateIfNotVisible": false, "variables": [ { "folded": true, "name": "IsKillable", "type": "boolean", "value": false } ], "effects": [ { "effectType": "AdvancedBloom", "name": "Bloom", "doubleParameters": { "bloomScale": 2, "blur": 4, "brightness": 0.55, "padding": 10, "quality": 5, "threshold": 0.5 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemonBeamSingle_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 54, "y": 128 }, { "x": 204, "y": 128 }, { "x": 204, "y": 256 }, { "x": 54, "y": 256 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemonBeamSingle_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 54, "y": 128 }, { "x": 204, "y": 128 }, { "x": 204, "y": 256 }, { "x": 54, "y": 256 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemonBeamSingle_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 54, "y": 128 }, { "x": 204, "y": 128 }, { "x": 204, "y": 256 }, { "x": 54, "y": 256 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\LaserDemon\\LaserDemonBeamSingle_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 54, "y": 128 }, { "x": 204, "y": 128 }, { "x": 204, "y": 256 }, { "x": 54, "y": 256 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "TurretDemon_Base", "type": "Sprite", "updateIfNotVisible": false, "variables": [ { "folded": true, "name": "IsKillable", "type": "boolean", "value": true }, { "folded": true, "name": "IsDead", "type": "boolean", "value": false }, { "folded": true, "name": "HasBeenReaped", "type": "boolean", "value": false }, { "folded": true, "name": "LifeForce", "type": "number", "value": 2 }, { "folded": true, "name": "OldPosition_X", "type": "number", "value": 0 }, { "folded": true, "name": "OldPosition_Y", "type": "number", "value": 0 }, { "folded": true, "name": "OldAngle", "type": "number", "value": 0 } ], "effects": [], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\TurretDemon\\TurretDemonBase_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 54, "y": 610 }, { "x": 52.5, "y": 386.5 }, { "x": 231, "y": 267.5 }, { "x": 736.5, "y": 263 }, { "x": 929.5, "y": 431 }, { "x": 928.5, "y": 607 }, { "x": 789, "y": 762 }, { "x": 197, "y": 758 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\TurretDemon\\TurretDemonBase_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 54, "y": 610 }, { "x": 52.5, "y": 386.5 }, { "x": 231, "y": 267.5 }, { "x": 736.5, "y": 263 }, { "x": 929.5, "y": 431 }, { "x": 928.5, "y": 607 }, { "x": 789, "y": 762 }, { "x": 197, "y": 758 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\TurretDemon\\TurretDemonBase_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 54, "y": 610 }, { "x": 52.5, "y": 386.5 }, { "x": 231, "y": 267.5 }, { "x": 736.5, "y": 263 }, { "x": 929.5, "y": 431 }, { "x": 928.5, "y": 607 }, { "x": 789, "y": 762 }, { "x": 197, "y": 758 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\TurretDemon\\TurretDemonBase_4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 54, "y": 610 }, { "x": 52.5, "y": 386.5 }, { "x": 231, "y": 267.5 }, { "x": 736.5, "y": 263 }, { "x": 929.5, "y": 431 }, { "x": 928.5, "y": 607 }, { "x": 789, "y": 762 }, { "x": 197, "y": 758 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\TurretDemon\\TurretDemonBase_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 54, "y": 610 }, { "x": 52.5, "y": 386.5 }, { "x": 231, "y": 267.5 }, { "x": 736.5, "y": 263 }, { "x": 929.5, "y": 431 }, { "x": 928.5, "y": 607 }, { "x": 789, "y": 762 }, { "x": 197, "y": 758 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\TurretDemon\\TurretDemonBase_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 54, "y": 610 }, { "x": 52.5, "y": 386.5 }, { "x": 231, "y": 267.5 }, { "x": 736.5, "y": 263 }, { "x": 929.5, "y": 431 }, { "x": 928.5, "y": 607 }, { "x": 789, "y": 762 }, { "x": 197, "y": 758 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "TurretDemon_Spike", "type": "Sprite", "updateIfNotVisible": false, "variables": [ { "folded": true, "name": "Lifetime", "type": "number", "value": 0 }, { "name": "IsKillable", "type": "boolean", "value": false } ], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 6, "greenX": 0, "greenY": 0, "redX": -6, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev\\Entities\\StalactiteDemon\\Stalactite_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 52.5, "y": 38 }, { "x": 633, "y": 170.5 }, { "x": 1004.5, "y": 287.5 }, { "x": 563.5, "y": 439.5 }, { "x": 309, "y": 474.5 }, { "x": 52.5, "y": 484 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Entities\\StalactiteDemon\\Stalactite_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 52.5, "y": 38 }, { "x": 633, "y": 170.5 }, { "x": 1004.5, "y": 287.5 }, { "x": 563.5, "y": 439.5 }, { "x": 309, "y": 474.5 }, { "x": 52.5, "y": 484 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Entities\\StalactiteDemon\\Stalactite_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 52.5, "y": 38 }, { "x": 633, "y": 170.5 }, { "x": 1004.5, "y": 287.5 }, { "x": 563.5, "y": 439.5 }, { "x": 309, "y": 474.5 }, { "x": 52.5, "y": 484 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Entities\\StalactiteDemon\\Stalactite_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 52.5, "y": 38 }, { "x": 633, "y": 170.5 }, { "x": 1004.5, "y": 287.5 }, { "x": 563.5, "y": 439.5 }, { "x": 309, "y": 474.5 }, { "x": 52.5, "y": 484 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "TurretDemon_Eye", "type": "Sprite", "updateIfNotVisible": false, "variables": [ { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 6 }, { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 }, { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 2.5 }, { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": false }, { "folded": true, "name": "CurrentlyChargingUp", "type": "boolean", "value": false }, { "folded": true, "name": "NeedsOffsetReset", "type": "boolean", "value": true }, { "folded": true, "name": "IsKillable", "type": "boolean", "value": true }, { "folded": true, "name": "OldPosition_X", "type": "number", "value": 0 }, { "folded": true, "name": "OldPosition_Y", "type": "number", "value": 0 }, { "folded": true, "name": "OldAngle", "type": "number", "value": 0 } ], "effects": [ { "effectType": "AdvancedBloom", "name": "Bloom", "doubleParameters": { "bloomScale": 2, "blur": 5, "brightness": 2, "padding": 0, "quality": 10, "threshold": 0.5 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "AdvancedBloom", "name": "Bloom 2", "doubleParameters": { "bloomScale": 2, "blur": 5, "brightness": 2, "padding": 0, "quality": 7, "threshold": 0.5 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [ { "name": "InOnScreen", "type": "IsOnScreen::InOnScreen" }, { "name": "Tween", "type": "Tween::TweenBehavior" } ], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\TurretDemon\\TurretDemonEye_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 512, "y": 512 }, { "x": 512, "y": 512 }, { "x": 512, "y": 512 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\TurretDemon\\TurretDemonEye_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 512, "y": 512 }, { "x": 512, "y": 512 }, { "x": 512, "y": 512 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\TurretDemon\\TurretDemonEye_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 512, "y": 512 }, { "x": 512, "y": 512 }, { "x": 512, "y": 512 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\TurretDemon\\TurretDemonEye_4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 512, "y": 512 }, { "x": 512, "y": 512 }, { "x": 512, "y": 512 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\TurretDemon\\TurretDemonEye_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 512, "y": 512 }, { "x": 512, "y": 512 }, { "x": 512, "y": 512 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\TurretDemon\\TurretDemonEye_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 512, "y": 512 }, { "x": 512, "y": 512 }, { "x": 512, "y": 512 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "CameraGlitchFix", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Common\\CameraGlitchFix\\CameraGlitchFix.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "LeftBoundary", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [], "behaviors": [ { "name": "Platform", "type": "PlatformBehavior::PlatformBehavior", "canBeGrabbed": false, "platformType": "NormalPlatform", "yGrabOffset": 0 } ], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets/Images/Common/Border/Border.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "RightBoundary", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [], "behaviors": [ { "name": "Platform", "type": "PlatformBehavior::PlatformBehavior", "canBeGrabbed": false, "platformType": "NormalPlatform", "yGrabOffset": 0 } ], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets/Images/Common/Border/Border.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "TopBoundary", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets/Images/Common/Border/Border.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "BottomBoundary", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets/Images/Common/Border/Border.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "BoundaryJumpThrough", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [], "behaviors": [ { "name": "Platform", "type": "PlatformBehavior::PlatformBehavior", "canBeGrabbed": false, "platformType": "Jumpthru", "yGrabOffset": 0 } ], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets/Images/Common/Border/Border.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 0, "y": 0 }, { "x": 32, "y": 0 }, { "x": 32, "y": 30.258825302124023 }, { "x": 0, "y": 32 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "ShockwaveDemon_Base", "type": "Sprite", "updateIfNotVisible": false, "variables": [ { "folded": true, "name": "ShockwavePower", "type": "number", "value": 750 }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 5 }, { "name": "FireOffsetTime", "type": "number", "value": 0 }, { "folded": true, "name": "FixedAngle", "type": "boolean", "value": false }, { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": false }, { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 2 }, { "folded": true, "name": "CurrentlyChargingUp", "type": "boolean", "value": false }, { "folded": true, "name": "NeedsOffsetReset", "type": "boolean", "value": true }, { "folded": true, "name": "IsKillable", "type": "boolean", "value": false }, { "folded": true, "name": "IsDead", "type": "boolean", "value": false }, { "folded": true, "name": "HasBeenReaped", "type": "boolean", "value": false }, { "folded": true, "name": "LifeForce", "type": "number", "value": 0 }, { "folded": true, "name": "OldPosition_X", "type": "number", "value": 0 }, { "folded": true, "name": "OldPosition_Y", "type": "number", "value": 0 }, { "folded": true, "name": "OldAngle", "type": "number", "value": 0 } ], "effects": [ { "effectType": "AdvancedBloom", "name": "Bloom", "doubleParameters": { "bloomScale": 2, "blur": 7, "brightness": 2, "padding": 0, "quality": 7, "threshold": 0.5 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 6, "greenX": 0, "greenY": 0, "redX": -6, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [ { "name": "InOnScreen", "type": "IsOnScreen::InOnScreen" }, { "name": "Tween", "type": "Tween::TweenBehavior" } ], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\ShockwaveDemon\\ShockwaveDemonBase_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 293.5, "y": 0 }, { "x": 673, "y": 0 }, { "x": 695, "y": 634.5 }, { "x": 519, "y": 691.5 }, { "x": 347, "y": 658.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\ShockwaveDemon\\ShockwaveDemonBase_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 293.5, "y": 0 }, { "x": 673, "y": 0 }, { "x": 695, "y": 634.5 }, { "x": 519, "y": 691.5 }, { "x": 347, "y": 658.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\ShockwaveDemon\\ShockwaveDemonBase_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 293.5, "y": 0 }, { "x": 673, "y": 0 }, { "x": 695, "y": 634.5 }, { "x": 519, "y": 691.5 }, { "x": 347, "y": 658.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\ShockwaveDemon\\ShockwaveDemonBase_4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 293.5, "y": 0 }, { "x": 673, "y": 0 }, { "x": 695, "y": 634.5 }, { "x": 519, "y": 691.5 }, { "x": 347, "y": 658.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\ShockwaveDemon\\ShockwaveDemonBase_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 293.5, "y": 0 }, { "x": 673, "y": 0 }, { "x": 695, "y": 634.5 }, { "x": 519, "y": 691.5 }, { "x": 347, "y": 658.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\ShockwaveDemon\\ShockwaveDemonBase_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 293.5, "y": 0 }, { "x": 673, "y": 0 }, { "x": 695, "y": 634.5 }, { "x": 519, "y": 691.5 }, { "x": 347, "y": 658.5 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "ShockwaveDemon_Shockwave", "type": "Sprite", "updateIfNotVisible": false, "variables": [ { "folded": true, "name": "Lifetime", "type": "number", "value": 0 }, { "folded": true, "name": "Power", "type": "number", "value": 0 } ], "effects": [ { "effectType": "Glow", "name": "Glow", "doubleParameters": { "distance": 15, "innerStrength": 1, "outerStrength": 2 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} } ], "behaviors": [ { "name": "Tween", "type": "Tween::TweenBehavior" } ], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\ShockwaveDemon\\Shockwave_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 113, "y": 536.5 }, { "x": 132, "y": 254.5 }, { "x": 225.5, "y": 26.5 }, { "x": 710, "y": 148 }, { "x": 710, "y": 969 }, { "x": 277.5, "y": 1024 }, { "x": 176, "y": 819 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\ShockwaveDemon\\Shockwave_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 113, "y": 536.5 }, { "x": 132, "y": 254.5 }, { "x": 225.5, "y": 26.5 }, { "x": 710, "y": 148 }, { "x": 710, "y": 969 }, { "x": 277.5, "y": 1024 }, { "x": 176, "y": 819 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\ShockwaveDemon\\Shockwave_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 113, "y": 536.5 }, { "x": 132, "y": 254.5 }, { "x": 225.5, "y": 26.5 }, { "x": 710, "y": 148 }, { "x": 710, "y": 969 }, { "x": 277.5, "y": 1024 }, { "x": 176, "y": 819 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\ShockwaveDemon\\Shockwave_4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 113, "y": 536.5 }, { "x": 132, "y": 254.5 }, { "x": 225.5, "y": 26.5 }, { "x": 710, "y": 148 }, { "x": 710, "y": 969 }, { "x": 277.5, "y": 1024 }, { "x": 176, "y": 819 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\ShockwaveDemon\\Shockwave_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 113, "y": 536.5 }, { "x": 132, "y": 254.5 }, { "x": 225.5, "y": 26.5 }, { "x": 710, "y": 148 }, { "x": 710, "y": 969 }, { "x": 277.5, "y": 1024 }, { "x": 176, "y": 819 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\ShockwaveDemon\\Shockwave_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 113, "y": 536.5 }, { "x": 132, "y": 254.5 }, { "x": 225.5, "y": 26.5 }, { "x": 710, "y": 148 }, { "x": 710, "y": 969 }, { "x": 277.5, "y": 1024 }, { "x": 176, "y": 819 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "MiteDemon_Base", "type": "Sprite", "updateIfNotVisible": false, "variables": [ { "folded": true, "name": "MiteMaxSpeed", "type": "number", "value": 400 }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 4 }, { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 }, { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 5 }, { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": false }, { "folded": true, "name": "CurrentlyChargingUp", "type": "boolean", "value": false }, { "folded": true, "name": "NeedsOffsetReset", "type": "boolean", "value": true }, { "folded": true, "name": "IsKillable", "type": "boolean", "value": false }, { "folded": true, "name": "IsDead", "type": "boolean", "value": false }, { "folded": true, "name": "HasBeenReaped", "type": "boolean", "value": false }, { "folded": true, "name": "LifeForce", "type": "number", "value": 0 }, { "folded": true, "name": "OldPosition_X", "type": "number", "value": 0 }, { "folded": true, "name": "OldPosition_Y", "type": "number", "value": 0 }, { "folded": true, "name": "OldAngle", "type": "number", "value": 0 } ], "effects": [ { "effectType": "AdvancedBloom", "name": "Bloom", "doubleParameters": { "bloomScale": 2, "blur": 7, "brightness": 2, "padding": 0, "quality": 7, "threshold": 0.5 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 6, "greenX": 0, "greenY": 0, "redX": -6, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [ { "name": "InOnScreen", "type": "IsOnScreen::InOnScreen" }, { "name": "ShakeObject_PositionAngleScale", "type": "ShakeObject::ShakeObject_PositionAngleScale" }, { "name": "Tween", "type": "Tween::TweenBehavior" } ], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\MiteDemon\\MiteDemonBase_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 89.5, "y": 0 }, { "x": 899, "y": 0 }, { "x": 767, "y": 556.5 }, { "x": 632, "y": 602.5 }, { "x": 402, "y": 605 }, { "x": 296.5, "y": 592 }, { "x": 209, "y": 522.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\MiteDemon\\MiteDemonBase_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 89.5, "y": 0 }, { "x": 899, "y": 0 }, { "x": 767, "y": 556.5 }, { "x": 632, "y": 602.5 }, { "x": 402, "y": 605 }, { "x": 296.5, "y": 592 }, { "x": 209, "y": 522.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\MiteDemon\\MiteDemonBase_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 89.5, "y": 0 }, { "x": 899, "y": 0 }, { "x": 767, "y": 556.5 }, { "x": 632, "y": 602.5 }, { "x": 402, "y": 605 }, { "x": 296.5, "y": 592 }, { "x": 209, "y": 522.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\MiteDemon\\MiteDemonBase_4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 89.5, "y": 0 }, { "x": 899, "y": 0 }, { "x": 767, "y": 556.5 }, { "x": 632, "y": 602.5 }, { "x": 402, "y": 605 }, { "x": 296.5, "y": 592 }, { "x": 209, "y": 522.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\MiteDemon\\MiteDemonBase_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 89.5, "y": 0 }, { "x": 899, "y": 0 }, { "x": 767, "y": 556.5 }, { "x": 632, "y": 602.5 }, { "x": 402, "y": 605 }, { "x": 296.5, "y": 592 }, { "x": 209, "y": 522.5 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\MiteDemon\\MiteDemonBase_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 89.5, "y": 0 }, { "x": 899, "y": 0 }, { "x": 767, "y": 556.5 }, { "x": 632, "y": 602.5 }, { "x": 402, "y": 605 }, { "x": 296.5, "y": 592 }, { "x": 209, "y": 522.5 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "MiteDemon_Mite", "type": "Sprite", "updateIfNotVisible": false, "variables": [ { "name": "MaxSpeed", "type": "number", "value": 0 }, { "folded": true, "name": "Lifetime", "type": "number", "value": 0 }, { "folded": true, "name": "IsKillable", "type": "boolean", "value": true }, { "folded": true, "name": "IsDead", "type": "boolean", "value": false }, { "folded": true, "name": "HasBeenReaped", "type": "boolean", "value": false }, { "folded": true, "name": "LifeForce", "type": "number", "value": 0.01 } ], "effects": [ { "effectType": "KawaseBlur", "name": "Effect", "doubleParameters": { "blur": 0.5, "padding": 0, "pixelizeX": 1, "pixelizeY": 1, "quality": 3 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glow", "name": "Effect2", "doubleParameters": { "distance": 15, "innerStrength": 1, "outerStrength": 2 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} } ], "behaviors": [ { "name": "PlatformerObject", "type": "PlatformBehavior::PlatformerObjectBehavior", "ladderClimbingSpeed": 400, "maxFallingSpeed": 1000, "canGoDownFromJumpthru": true, "maxSpeed": 400, "acceleration": 1500, "canGrabPlatforms": false, "canGrabWithoutMoving": true, "deceleration": 1500, "gravity": 600, "ignoreDefaultControls": true, "jumpSpeed": 600, "jumpSustainTime": 0.2, "slopeMaxAngle": 60, "useLegacyTrajectory": false, "xGrabTolerance": 10, "yGrabOffset": 0 } ], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\MiteDemon\\MiteDemonMite_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 52.5, "y": 375 }, { "x": 985.5, "y": 375 }, { "x": 985.5, "y": 650 }, { "x": 52.5, "y": 650 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\MiteDemon\\MiteDemonMite_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 52.5, "y": 375 }, { "x": 985.5, "y": 375 }, { "x": 985.5, "y": 650 }, { "x": 52.5, "y": 650 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\MiteDemon\\MiteDemonMite_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 52.5, "y": 375 }, { "x": 985.5, "y": 375 }, { "x": 985.5, "y": 650 }, { "x": 52.5, "y": 650 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\MiteDemon\\MiteDemonMite_4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 52.5, "y": 375 }, { "x": 985.5, "y": 375 }, { "x": 985.5, "y": 650 }, { "x": 52.5, "y": 650 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\MiteDemon\\MiteDemonMite_3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 52.5, "y": 375 }, { "x": 985.5, "y": 375 }, { "x": 985.5, "y": 650 }, { "x": 52.5, "y": 650 } ] ] }, { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Entites\\Enemies\\MiteDemon\\MiteDemonMite_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 52.5, "y": 375 }, { "x": 985.5, "y": 375 }, { "x": 985.5, "y": 650 }, { "x": 52.5, "y": 650 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "Sinage_W", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "CRT", "name": "Lines", "doubleParameters": { "animationFrequency": 0, "animationSpeed": 1, "curvature": 1, "lineContrast": 0.25, "lineWidth": 1, "noise": 0.3, "noiseSize": 0, "padding": 0, "vignetting": 0.3, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": { "verticalLine": false } } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Sinage/TutorialKeys/TutorialKeys_W.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 0, "y": 10 }, { "x": 1013, "y": 10 }, { "x": 1013, "y": 1010 }, { "x": 0, "y": 1010 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "Sinage_A", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "CRT", "name": "Lines", "doubleParameters": { "animationFrequency": 0, "animationSpeed": 1, "curvature": 1, "lineContrast": 0.25, "lineWidth": 1, "noise": 0.3, "noiseSize": 0, "padding": 0, "vignetting": 0.3, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": { "verticalLine": false } } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Sinage/TutorialKeys/TutorialKeys_A.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 0, "y": 10 }, { "x": 1013, "y": 10 }, { "x": 1013, "y": 1010 }, { "x": 0, "y": 1010 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "Sinage_S", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "CRT", "name": "Lines", "doubleParameters": { "animationFrequency": 0, "animationSpeed": 1, "curvature": 1, "lineContrast": 0.25, "lineWidth": 1, "noise": 0.3, "noiseSize": 0, "padding": 0, "vignetting": 0.3, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": { "verticalLine": false } } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Sinage/TutorialKeys/TutorialKeys_S.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 0, "y": 10 }, { "x": 1013, "y": 10 }, { "x": 1013, "y": 1010 }, { "x": 0, "y": 1010 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "Sinage_D", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "CRT", "name": "Lines", "doubleParameters": { "animationFrequency": 0, "animationSpeed": 1, "curvature": 1, "lineContrast": 0.25, "lineWidth": 1, "noise": 0.3, "noiseSize": 0, "padding": 0, "vignetting": 0.3, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": { "verticalLine": false } } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Sinage/TutorialKeys/TutorialKeys_D.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 0, "y": 10 }, { "x": 1013, "y": 10 }, { "x": 1013, "y": 1010 }, { "x": 0, "y": 1010 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "Sinage_Space", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "CRT", "name": "Lines", "doubleParameters": { "animationFrequency": 0, "animationSpeed": 1, "curvature": 1, "lineContrast": 0.25, "lineWidth": 1, "noise": 0.3, "noiseSize": 0, "padding": 0, "vignetting": 0.3, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": { "verticalLine": false } } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Sinage/TutorialKeys/TutorialKeysWide_Space.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 0, "y": 31 }, { "x": 2044, "y": 31 }, { "x": 2044, "y": 1014 }, { "x": 0, "y": 1014 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "Sinage_Heal", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "CRT", "name": "Lines", "doubleParameters": { "animationFrequency": 0, "animationSpeed": 1, "curvature": 1, "lineContrast": 0.25, "lineWidth": 1, "noise": 0.3, "noiseSize": 0, "padding": 0, "vignetting": 0.3, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": { "verticalLine": false } } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Tutorial\\Labels\\ShiftToHealHint\\ShiftToHealHint.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 23, "y": 74 }, { "x": 1184, "y": 74 }, { "x": 1184, "y": 412 }, { "x": 23, "y": 412 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "Sinage_Proceed", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "CRT", "name": "Lines", "doubleParameters": { "animationFrequency": 0, "animationSpeed": 1, "curvature": 1, "lineContrast": 0.25, "lineWidth": 1, "noise": 0.3, "noiseSize": 0, "padding": 0, "vignetting": 0.3, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": { "verticalLine": false } } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Sinage/Proceed/Proceed.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 25, "y": 96 }, { "x": 953, "y": 96 }, { "x": 953, "y": 373 }, { "x": 25, "y": 373 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "Sinage_Death", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "CRT", "name": "Lines", "doubleParameters": { "animationFrequency": 0, "animationSpeed": 1, "curvature": 1, "lineContrast": 0.25, "lineWidth": 1, "noise": 0.3, "noiseSize": 0, "padding": 0, "vignetting": 0.3, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": { "verticalLine": false } } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Sinage/Death/Death.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 31, "y": 64 }, { "x": 992, "y": 64 }, { "x": 992, "y": 415 }, { "x": 31, "y": 415 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "Sinage_DownArrow", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "CRT", "name": "Lines", "doubleParameters": { "animationFrequency": 0, "animationSpeed": 1, "curvature": 1, "lineContrast": 0.25, "lineWidth": 1, "noise": 0.3, "noiseSize": 0, "padding": 0, "vignetting": 0.3, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": { "verticalLine": false } } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Sinage/DownArrow/DownArrow.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 48, "y": 16 }, { "x": 449, "y": 16 }, { "x": 449, "y": 893 }, { "x": 48, "y": 893 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "Sinage_Checkpoint", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "CRT", "name": "Lines", "doubleParameters": { "animationFrequency": 0, "animationSpeed": 1, "curvature": 1, "lineContrast": 0.25, "lineWidth": 1, "noise": 0.3, "noiseSize": 0, "padding": 0, "vignetting": 0.3, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": { "verticalLine": false } } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Sinage/CheckPoint/CheckPoint.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 14, "y": 116 }, { "x": 1011, "y": 116 }, { "x": 1011, "y": 324 }, { "x": 14, "y": 324 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "Sinage_Kill", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "CRT", "name": "Lines", "doubleParameters": { "animationFrequency": 0, "animationSpeed": 1, "curvature": 1, "lineContrast": 0.25, "lineWidth": 1, "noise": 0.3, "noiseSize": 0, "padding": 0, "vignetting": 0.3, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": { "verticalLine": false } } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Sinage/Kill/Kill.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 91, "y": 25 }, { "x": 944, "y": 25 }, { "x": 944, "y": 436 }, { "x": 91, "y": 436 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "Sinage_Collect", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "CRT", "name": "Lines", "doubleParameters": { "animationFrequency": 0, "animationSpeed": 1, "curvature": 1, "lineContrast": 0.25, "lineWidth": 1, "noise": 0.3, "noiseSize": 0, "padding": 0, "vignetting": 0.3, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": { "verticalLine": false } } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Sinage/Collect/Collect.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 17, "y": 6 }, { "x": 736, "y": 6 }, { "x": 736, "y": 448 }, { "x": 17, "y": 448 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "Sinage_Arrow", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "CRT", "name": "Lines", "doubleParameters": { "animationFrequency": 0, "animationSpeed": 1, "curvature": 1, "lineContrast": 0.25, "lineWidth": 1, "noise": 0.3, "noiseSize": 0, "padding": 0, "vignetting": 0.3, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": { "verticalLine": false } } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Arrow/Arrow.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 7, "y": 32 }, { "x": 991, "y": 32 }, { "x": 991, "y": 471 }, { "x": 7, "y": 471 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "Sinage_Jump", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "CRT", "name": "Lines", "doubleParameters": { "animationFrequency": 0, "animationSpeed": 1, "curvature": 1, "lineContrast": 0.25, "lineWidth": 1, "noise": 0.3, "noiseSize": 0, "padding": 0, "vignetting": 0.3, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": { "verticalLine": false } } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Sinage/Jump/Jump.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 50, "y": 92 }, { "x": 815, "y": 92 }, { "x": 815, "y": 380 }, { "x": 50, "y": 380 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "Sinage_Hold", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "CRT", "name": "Lines", "doubleParameters": { "animationFrequency": 0, "animationSpeed": 1, "curvature": 1, "lineContrast": 0.25, "lineWidth": 1, "noise": 0.3, "noiseSize": 0, "padding": 0, "vignetting": 0.3, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": { "verticalLine": false } } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Tutorial\\Labels\\Hold\\Hold.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 117, "y": 108 }, { "x": 1234, "y": 108 }, { "x": 1234, "y": 679 }, { "x": 117, "y": 679 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "Sinage_LongerJump", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "CRT", "name": "Lines", "doubleParameters": { "animationFrequency": 0, "animationSpeed": 1, "curvature": 1, "lineContrast": 0.25, "lineWidth": 1, "noise": 0.3, "noiseSize": 0, "padding": 0, "vignetting": 0.3, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": { "verticalLine": false } } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Tutorial\\Labels\\LongerJump\\LongerJump.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 44, "y": 177 }, { "x": 1661, "y": 177 }, { "x": 1661, "y": 582 }, { "x": 44, "y": 582 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "Sinage_Restart", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "CRT", "name": "Lines", "doubleParameters": { "animationFrequency": 0, "animationSpeed": 1, "curvature": 1, "lineContrast": 0.25, "lineWidth": 1, "noise": 0.3, "noiseSize": 0, "padding": 0, "vignetting": 0.3, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": { "verticalLine": false } } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Tutorial\\Labels\\RestartHint\\RestartHint.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 128 }, { "x": 934, "y": 128 }, { "x": 934, "y": 438 }, { "x": 27, "y": 438 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "Sinage_Pause", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "CRT", "name": "Lines", "doubleParameters": { "animationFrequency": 0, "animationSpeed": 1, "curvature": 1, "lineContrast": 0.25, "lineWidth": 1, "noise": 0.3, "noiseSize": 0, "padding": 0, "vignetting": 0.3, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": { "verticalLine": false } } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Tutorial\\Labels\\PauseHint\\PauseMenu.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 12, "y": 122 }, { "x": 922, "y": 122 }, { "x": 922, "y": 397 }, { "x": 12, "y": 397 } ] ] } ] } ] } ] }, { "assetStoreId": "", "bold": false, "italic": false, "name": "Test2", "smoothed": true, "type": "TextObject::Text", "underlined": false, "variables": [], "effects": [], "behaviors": [], "string": "test", "font": "", "textAlignment": "left", "characterSize": 50, "color": { "b": 0, "g": 0, "r": 255 } }, { "assetStoreId": "", "bold": false, "italic": false, "name": "FrameRate", "smoothed": true, "type": "TextObject::Text", "underlined": false, "variables": [], "effects": [], "behaviors": [], "string": "test", "font": "", "textAlignment": "left", "characterSize": 30, "color": { "b": 0, "g": 255, "r": 0 } } ], "objectsFolderStructure": { "folderName": "__ROOT", "children": [ { "folderName": "UI", "children": [ { "folderName": "Particles", "children": [ { "objectName": "DustParticle" }, { "objectName": "DoorParticles" }, { "objectName": "ProjectileDeathParticles" }, { "objectName": "BloodParticles" } ] }, { "folderName": "HUD", "children": [ { "folderName": "Sinage", "children": [ { "objectName": "Sinage_W" }, { "objectName": "Sinage_A" }, { "objectName": "Sinage_S" }, { "objectName": "Sinage_D" }, { "objectName": "Sinage_Space" }, { "objectName": "Sinage_Heal" }, { "objectName": "Sinage_Proceed" }, { "objectName": "Sinage_Death" }, { "objectName": "Sinage_DownArrow" }, { "objectName": "Sinage_Checkpoint" }, { "objectName": "Sinage_Kill" }, { "objectName": "Sinage_Collect" }, { "objectName": "Sinage_Arrow" }, { "objectName": "Sinage_Jump" }, { "objectName": "Sinage_Hold" }, { "objectName": "Sinage_LongerJump" }, { "objectName": "Sinage_Pause" }, { "objectName": "Sinage_Restart" } ] }, { "objectName": "LivesBar" }, { "objectName": "HopeBar" }, { "objectName": "UI_Sinage_Lives" }, { "objectName": "UI_Sinage_Hope" }, { "objectName": "FrameRate" } ] }, { "folderName": "EndScreen", "children": [ { "objectName": "UI_Sinage_DeathText" }, { "objectName": "UI_Sinage_MemoryAcquired" }, { "objectName": "UI_Sinage_Background" }, { "objectName": "UI_Sinage_RetryButton" }, { "objectName": "UI_Sinage_ProceedButton" } ] } ] }, { "folderName": "Platforms", "children": [ { "objectName": "FlippingPlatform" }, { "objectName": "FlippingPlatform2" }, { "objectName": "SpinningPlatformClockwise" }, { "objectName": "SpinningPlatformCounterclockwise" }, { "objectName": "SpinningRotatingPlatformClockwise" }, { "objectName": "SpinningRotatingPlatformCounterclockwise" }, { "objectName": "VerticalMovingPlatformDown" }, { "objectName": "VerticalMovingPlatformUp" }, { "objectName": "HorizontalMovingPlatformRight" }, { "objectName": "HorizontalMovingPlatformLeft" }, { "objectName": "StaticPlatform1" }, { "objectName": "StaticPlatform2" }, { "objectName": "StaticPlatform3" } ] }, { "folderName": "Enemies", "children": [ { "folderName": "MiteDemon", "children": [ { "objectName": "MiteDemon_Base" }, { "objectName": "MiteDemon_Mite" } ] }, { "folderName": "ShockwaveDemon", "children": [ { "objectName": "ShockwaveDemon_Base" }, { "objectName": "ShockwaveDemon_Shockwave" } ] }, { "folderName": "TurretDemon", "children": [ { "objectName": "TurretDemon_Base" }, { "objectName": "TurretDemon_Eye" }, { "objectName": "TurretDemon_Spike" } ] }, { "folderName": "LaserDemon", "children": [ { "objectName": "LaserDemon_Base" }, { "objectName": "LaserDemon_Beam" }, { "objectName": "LaserDemon_BeamSingle" }, { "objectName": "LaserDemon_BasePermanent" }, { "objectName": "LaserDemon_BeamPermanent" }, { "objectName": "LaserDemon_BeamPermanentSingle" }, { "objectName": "LaserRing" } ] }, { "folderName": "StalactiteDemon", "children": [ { "objectName": "StalactiteDemon_Base" }, { "objectName": "StalactiteDemon_Spike" } ] }, { "folderName": "StalagmiteDemon", "children": [ { "objectName": "StalagmiteDemon_Base" }, { "objectName": "StalagmiteDemon_Spike" } ] }, { "folderName": "SpikeDemon", "children": [ { "objectName": "SpikeDemon_Base" }, { "objectName": "SpikeDemon_Spike" } ] }, { "folderName": "HorizontalDemon", "children": [ { "objectName": "HorizontalDemon" } ] }, { "folderName": "FireDemon", "children": [ { "objectName": "FireDemon" } ] }, { "folderName": "FlyingDemon", "children": [ { "objectName": "FlyingDemon" } ] } ] }, { "folderName": "MiscSceneObjects", "children": [ { "objectName": "Memory" }, { "objectName": "Player" }, { "objectName": "Portal" }, { "objectName": "Ladder" }, { "objectName": "Checkpoint" } ] }, { "folderName": "HelperObjects", "children": [ { "objectName": "LeftBoundary" }, { "objectName": "RightBoundary" }, { "objectName": "TopBoundary" }, { "objectName": "BottomBoundary" }, { "objectName": "BoundaryJumpThrough" }, { "objectName": "CameraGlitchFix" } ] }, { "objectName": "Test" }, { "objectName": "Test2" } ] }, "objectsGroups": [ { "name": "Particles", "objects": [ { "name": "BloodParticles" }, { "name": "ProjectileDeathParticles" }, { "name": "DoorParticles" }, { "name": "DustParticle" } ] }, { "name": "UI_Elements", "objects": [ { "name": "UI_Sinage_DeathText" }, { "name": "UI_Sinage_MemoryAcquired" }, { "name": "UI_Sinage_Lives" }, { "name": "UI_Sinage_Hope" }, { "name": "UI_Sinage_RetryButton" }, { "name": "UI_Sinage_Background" }, { "name": "UI_Sinage_ProceedButton" } ] }, { "name": "HelperObjects", "objects": [ { "name": "LeftBoundary" }, { "name": "RightBoundary" }, { "name": "BoundaryJumpThrough" }, { "name": "CameraGlitchFix" } ] }, { "name": "Platforms", "objects": [ { "name": "StaticPlatform1" }, { "name": "StaticPlatform2" }, { "name": "StaticPlatform3" }, { "name": "HorizontalMovingPlatformLeft" }, { "name": "HorizontalMovingPlatformRight" }, { "name": "VerticalMovingPlatformUp" }, { "name": "VerticalMovingPlatformDown" }, { "name": "SpinningPlatformClockwise" }, { "name": "SpinningPlatformCounterclockwise" }, { "name": "SpinningRotatingPlatformClockwise" }, { "name": "SpinningRotatingPlatformCounterclockwise" }, { "name": "FlippingPlatform" }, { "name": "FlippingPlatform2" } ] }, { "name": "MovingPlatforms", "objects": [ { "name": "HorizontalMovingPlatformRight" }, { "name": "HorizontalMovingPlatformLeft" }, { "name": "VerticalMovingPlatformDown" }, { "name": "VerticalMovingPlatformUp" }, { "name": "SpinningPlatformClockwise" }, { "name": "SpinningPlatformCounterclockwise" }, { "name": "SpinningRotatingPlatformClockwise" }, { "name": "SpinningRotatingPlatformCounterclockwise" } ] }, { "name": "Enemies", "objects": [ { "name": "FlyingDemon" }, { "name": "HorizontalDemon" }, { "name": "SpikeDemon_Base" }, { "name": "StalactiteDemon_Base" }, { "name": "StalagmiteDemon_Base" }, { "name": "LaserDemon_Base" }, { "name": "LaserDemon_BasePermanent" }, { "name": "ShockwaveDemon_Base" }, { "name": "MiteDemon_Base" }, { "name": "TurretDemon_Base" }, { "name": "TurretDemon_Eye" }, { "name": "FireDemon" } ] }, { "name": "ShootingEnemies", "objects": [ { "name": "SpikeDemon_Base" }, { "name": "StalactiteDemon_Base" }, { "name": "StalagmiteDemon_Base" }, { "name": "ShockwaveDemon_Base" }, { "name": "MiteDemon_Base" }, { "name": "TurretDemon_Eye" } ] }, { "name": "Projectiles", "objects": [ { "name": "SpikeDemon_Spike" }, { "name": "StalactiteDemon_Spike" }, { "name": "StalagmiteDemon_Spike" }, { "name": "TurretDemon_Spike" }, { "name": "ShockwaveDemon_Shockwave" }, { "name": "MiteDemon_Mite" } ] }, { "name": "ProjectilesThatDespawnOnLifetime", "objects": [ { "name": "TurretDemon_Spike" }, { "name": "MiteDemon_Mite" } ] }, { "name": "ProjectilesThatDieToProjectileKillers", "objects": [ { "name": "SpikeDemon_Spike" }, { "name": "StalactiteDemon_Spike" }, { "name": "StalagmiteDemon_Spike" }, { "name": "TurretDemon_Spike" } ] }, { "name": "PlayerKillers", "objects": [ { "name": "FlyingDemon" }, { "name": "FireDemon" }, { "name": "HorizontalDemon" }, { "name": "SpikeDemon_Base" }, { "name": "SpikeDemon_Spike" }, { "name": "StalactiteDemon_Base" }, { "name": "StalactiteDemon_Spike" }, { "name": "SpikeDemon_Base2" }, { "name": "SpikeDemon_Spike2" }, { "name": "StalactiteDemon_Base2" }, { "name": "LaserDemon_Beam" }, { "name": "StalactiteDemon_Spike2" }, { "name": "LaserDemon_Base2" }, { "name": "LaserDemon_Base" }, { "name": "LaserDemon_Beam2" }, { "name": "LaserDemon_BasePermanent" }, { "name": "LaserDemon_BeamPermanent" }, { "name": "LaserRing" }, { "name": "LaserDemon_BeamSingle" }, { "name": "LaserDemon_Beam2_Single" }, { "name": "LaserDemon_BeamPermanentSingle" }, { "name": "TurretDemon_Base" }, { "name": "TurretDemon_Spike" }, { "name": "TurretDemon_Base2" }, { "name": "TurretDemon_Eye2" }, { "name": "TurretDemon_Spike2" }, { "name": "ShockwaveDemon_Base" }, { "name": "MiteDemon_Base" }, { "name": "MiteDemon_Mite" }, { "name": "StalagmiteDemon_Base" }, { "name": "StalagmiteDemon_Base2" }, { "name": "StalagmiteDemon_Spike" }, { "name": "StalagmiteDemon_Spike2" } ] }, { "name": "ProjectileKillers", "objects": [ { "name": "StaticPlatform1" }, { "name": "HorizontalMovingPlatformRight" }, { "name": "StaticPlatform2" }, { "name": "StaticPlatform3" }, { "name": "VerticalMovingPlatformDown" }, { "name": "SpinningRotatingPlatformClockwise" }, { "name": "FlippingPlatform" }, { "name": "FlippingPlatform2" }, { "name": "HorizontalMovingPlatformLeft" }, { "name": "VerticalMovingPlatformUp" }, { "name": "SpinningRotatingPlatformCounterclockwise" }, { "name": "SpinningPlatformClockwise" }, { "name": "SpinningPlatformCounterclockwise" }, { "name": "LaserDemon_Beam" }, { "name": "LaserDemon_Beam2" }, { "name": "LaserDemon_BeamPermanent" }, { "name": "LaserRing" }, { "name": "LaserDemon_Base" }, { "name": "LaserDemon_BasePermanent" } ] }, { "name": "MiteKillers", "objects": [ { "name": "FlyingDemon" }, { "name": "FireDemon" }, { "name": "HorizontalDemon" }, { "name": "SpikeDemon_Base" }, { "name": "SpikeDemon_Spike" }, { "name": "StalactiteDemon_Base" }, { "name": "StalactiteDemon_Spike" }, { "name": "SpikeDemon_Base2" }, { "name": "SpikeDemon_Spike2" }, { "name": "StalactiteDemon_Base2" }, { "name": "LaserDemon_Beam" }, { "name": "StalactiteDemon_Spike2" }, { "name": "LaserDemon_Base2" }, { "name": "LaserDemon_Base" }, { "name": "LaserDemon_Beam2" }, { "name": "LaserDemon_BasePermanent" }, { "name": "LaserDemon_BeamPermanent" }, { "name": "LaserRing" }, { "name": "LaserDemon_BeamSingle" }, { "name": "LaserDemon_Beam2_Single" }, { "name": "LaserDemon_BeamPermanentSingle" }, { "name": "TurretDemon_Base" }, { "name": "TurretDemon_Spike" }, { "name": "TurretDemon_Eye" }, { "name": "TurretDemon_Base2" }, { "name": "TurretDemon_Eye2" }, { "name": "TurretDemon_Spike2" }, { "name": "ShockwaveDemon_Base" } ] }, { "name": "LaserBeams", "objects": [ { "name": "LaserDemon_Beam" }, { "name": "LaserDemon_BeamSingle" } ] } ], "variables": [ { "name": "Volume_Master", "type": "number", "value": 100 }, { "folded": true, "name": "Volume_ThemeMusic", "type": "number", "value": 100 }, { "folded": true, "name": "Volume_Music", "type": "number", "value": 35 }, { "folded": true, "name": "Volume_SFX", "type": "number", "value": 20 } ], "layouts": [ { "b": 26, "disableInputWhenNotFocused": true, "mangledName": "Level10", "name": "Level10", "r": 11, "standardSortMethod": true, "stopSoundsOnStartup": true, "title": "", "v": 24, "uiSettings": { "grid": true, "gridType": "rectangular", "gridWidth": 32, "gridHeight": 32, "gridOffsetX": 0, "gridOffsetY": 0, "gridColor": 10401023, "gridAlpha": 0.3, "snap": true, "zoomFactor": 0.10815924401425481, "windowMask": false }, "objectsGroups": [ { "name": "MobileControls", "objects": [ { "name": "JumpButton" }, { "name": "Joystick" } ] }, { "name": "EndScreenObjects", "objects": [ { "name": "EndScreenBackground" }, { "name": "EndScreenHeader" }, { "name": "EndScreenSubHeader" }, { "name": "EndScreenBestText" }, { "name": "EndScreenChallengeText" }, { "name": "EndScreenRetryText" }, { "name": "RetryButton" } ] } ], "variables": [ { "name": "Score", "type": "number", "value": 0 } ], "instances": [ { "angle": 0, "customSize": true, "depth": 1, "height": 5920, "layer": "", "name": "LeftBoundary", "persistentUuid": "78dd0ffa-b22f-47a8-9b36-ef6a432b1d1e", "width": 128, "x": -128, "y": -4224, "zOrder": 38, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 2272, "layer": "Background", "name": "BackgroundPlants", "persistentUuid": "03b6869d-198f-4807-b659-f2b863e21073", "width": 17950, "x": 0, "y": -320, "zOrder": -1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 3168, "layer": "", "name": "RightBoundary", "persistentUuid": "9562fd9d-6e93-4465-9013-efa2b833653b", "width": 128, "x": 63840, "y": -800, "zOrder": 58, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "TopBoundary", "persistentUuid": "4381c067-2682-4f00-9a24-ff28fa12b1d8", "width": 37184, "x": -128, "y": -4224, "zOrder": 59, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "Player", "persistentUuid": "014db1f5-0846-4cba-821e-57e29d368c14", "width": 256, "x": 64, "y": 640, "zOrder": 63, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 2912, "layer": "Background", "name": "BackgroundPlants", "persistentUuid": "3f0ec037-2a70-4ea5-90eb-c1f8a7387a6c", "width": 34208, "x": 0, "y": -800, "zOrder": -1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "BottomBoundary", "persistentUuid": "d1a591e5-d6c2-4c37-9b0e-bff58c09c7d5", "width": 34464, "x": -64, "y": 2624, "zOrder": 60, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 496, "layer": "", "name": "StaticPlatform3", "persistentUuid": "91892016-9d1e-49a5-b015-cda442ecdcd5", "width": 992, "x": 63168, "y": 576, "zOrder": 72, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 544, "layer": "", "name": "Portal", "persistentUuid": "1ff1c530-e0f7-4107-b03e-f1aa37458ec6", "width": 408, "x": 63432, "y": 64, "zOrder": 73, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Memory", "persistentUuid": "59780ce3-bfab-4913-9837-ce9d47ee32d8", "width": 256, "x": 63488, "y": -160, "zOrder": 74, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 448, "layer": "", "name": "StaticPlatform3", "persistentUuid": "a519f0e8-a0fa-4d89-bc53-1968b7ebf1bc", "width": 896, "x": 9760, "y": -272, "zOrder": 72, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "60792324-fc11-461a-a6d9-0c9e9ebbf12e", "width": 341, "x": 10016, "y": -496, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "a13906b5-92cf-4258-ab74-5e2d5b2710d5", "width": 80, "x": 696, "y": 384, "zOrder": 179, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 1 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 1 } ] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "6203dc8f-6755-4fbc-8b33-26c5c6d1cdc6", "width": 80, "x": 824, "y": 384, "zOrder": 179, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "OnOffTime", "type": "number", "value": 1 }, { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 1 } ] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "76e0bc23-c52b-4f7c-919d-fe1f4c3fabbf", "width": 80, "x": 1592, "y": 384, "zOrder": 179, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 1 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 1 } ] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "ab3d56be-1435-49a9-af16-9da52fd52930", "width": 80, "x": 1720, "y": 384, "zOrder": 179, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 1 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 1 } ] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "e67ef9b5-8d40-4dad-981d-b768f5ed04f7", "width": 80, "x": 1144, "y": 384, "zOrder": 179, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 1 } ] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "38bbedab-0cc5-46cd-a7ba-e497d99d7ed9", "width": 80, "x": 1272, "y": 384, "zOrder": 179, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 1 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 48, "layer": "", "name": "StaticPlatform1", "persistentUuid": "4848c009-4639-4548-885e-58f38e233c7e", "width": 192, "x": 1152, "y": 736, "zOrder": 180, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 48, "layer": "", "name": "StaticPlatform1", "persistentUuid": "a095328c-5c0a-431b-a85e-364dcb9afb86", "width": 192, "x": 704, "y": 736, "zOrder": 180, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 48, "layer": "", "name": "StaticPlatform1", "persistentUuid": "b6c6c84c-a1ee-49ad-b904-aaddf2cdf801", "width": 192, "x": 1600, "y": 736, "zOrder": 180, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "ba9ccd40-f9bc-45d9-a21c-8a0eb3549059", "width": 80, "x": 536, "y": 544, "zOrder": 17, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 1 } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "8603c22a-6eda-458c-9798-0291bae65497", "width": 80, "x": 536, "y": 672, "zOrder": 17, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 1 } ] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "e27d4abc-ee9c-47e3-a01a-d8b5e57d3c2e", "width": 80, "x": 696, "y": 832, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "16e19546-0a07-4412-b091-95883a62ad91", "width": 80, "x": 824, "y": 832, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "313b2bfc-e79f-406c-b41f-0e1510a7896e", "width": 80, "x": 1144, "y": 832, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "ca68aae7-ce37-4f55-b9bf-c328719472f9", "width": 80, "x": 1272, "y": 832, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "88fd698f-2323-4e1e-a432-f3836a763349", "width": 80, "x": 1592, "y": 832, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "8893cb7c-ad0d-467e-83ed-57ca6f374fa3", "width": 80, "x": 1720, "y": 832, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "cc9f8705-cad2-48ac-b3db-245c6b7b1dad", "width": 32, "x": 560, "y": 544, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "ce8f4e4b-078c-40a9-9d4e-ac6ff0520f83", "width": 32, "x": 1008, "y": 544, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "82661f3f-b0ee-4394-a8f8-79242e2bc1d7", "width": 32, "x": 1456, "y": 544, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "8fd2a71f-39f5-4ea5-919f-307309f6311a", "width": 192, "x": 928, "y": -96, "zOrder": 181, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "010eff47-cf86-4720-baf5-a0d5c39383e5", "width": 192, "x": 1376, "y": -96, "zOrder": 181, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "ec19a029-c6bc-4709-90a8-a25ff252d706", "width": 192, "x": 1824, "y": -96, "zOrder": 181, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "0ac53a1d-9953-4b5a-935b-16cf5005afff", "width": 80, "x": 696, "y": -64, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "f3424da0-2552-4a62-af23-c6373a6e272c", "width": 80, "x": 824, "y": -64, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "6f04610b-0992-48ae-9536-f7854c57e61c", "width": 80, "x": 1144, "y": -64, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "3b27db3e-43f4-4d20-b9c5-4598e3aa0a33", "width": 80, "x": 1272, "y": -64, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "15613f15-319e-4891-a2dd-103d10463fe1", "width": 80, "x": 1592, "y": -64, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "0f4b6ff5-dda1-47b1-b6bd-319f1175945d", "width": 80, "x": 1720, "y": -64, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "a121e45d-aa2d-42b0-9ffc-f17514ccdacc", "width": 512, "x": 768, "y": -256, "zOrder": 18, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "ef5ac1d4-aaa6-4c44-87b2-9dfe19b9d92c", "width": 512, "x": 1216, "y": -256, "zOrder": 18, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "e9078f8e-fa08-4dcb-be1d-52dda96e7792", "width": 512, "x": 1664, "y": -256, "zOrder": 18, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "1fba6394-eb2f-4bcd-8563-864448fd0a12", "width": 192, "x": 480, "y": -96, "zOrder": 181, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "dc027a0b-54bb-46f7-9622-17fe0c1a1107", "width": 512, "x": 320, "y": -256, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "d87be1a0-c982-42bb-9302-9f72ef14b1e0", "width": 80, "x": 536, "y": 96, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "96bec5ad-d2dd-412c-8c9a-6a850915196e", "width": 80, "x": 536, "y": 224, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "d14c8df9-85da-4ca7-b507-522ad2520b74", "width": 80, "x": 984, "y": 256, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "988495bb-45bb-4e0a-a67f-b15504c9e32b", "width": 80, "x": 984, "y": 128, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "1beba297-4274-4b1b-b8fe-c897103f9451", "width": 80, "x": 1432, "y": 224, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "dcd02050-a146-4d79-af13-573d3621f72b", "width": 80, "x": 1432, "y": 96, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "4589808a-5036-40b1-aa5f-0b0dd8479101", "width": 80, "x": 1880, "y": 224, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "fc51c325-08af-40ef-b78c-2587836c0bf8", "width": 80, "x": 1880, "y": 96, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "b78363bd-4b92-446c-b5eb-650b479bb51c", "width": 192, "x": 704, "y": 128, "zOrder": 183, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": false }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 1 } ] }, { "angle": 90, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "40c1c7fb-02cf-4706-83ba-fadcb16279dd", "width": 192, "x": 1152, "y": 128, "zOrder": 183, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": false }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 1 } ] }, { "angle": 90, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "e16899b6-e519-4aa4-8b85-0e9a8cc0b5d6", "width": 192, "x": 1600, "y": 128, "zOrder": 183, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": false }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 1 } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "a6792f89-79a3-4367-9c99-5c27b1a32bfb", "width": 192, "x": 480, "y": 352, "zOrder": 18, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "226007d0-47d6-4e92-9b4d-ac227cb23897", "width": 192, "x": 928, "y": 352, "zOrder": 18, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "83d4d300-35fc-44fe-b027-01dd600001a8", "width": 192, "x": 1376, "y": 352, "zOrder": 18, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "c49dd622-a134-4cdc-8f82-0ac3dc328d54", "width": 192, "x": 1824, "y": 352, "zOrder": 18, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "d55aeced-07ad-447f-b78b-aae49e923221", "width": 192, "x": 928, "y": 800, "zOrder": 181, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "2e8592a4-be9f-47f6-8297-c206a0fc8222", "width": 192, "x": 1376, "y": 800, "zOrder": 181, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "1ec5a104-eee4-44dc-bc49-f8dcef8eccaf", "width": 192, "x": 1824, "y": 800, "zOrder": 181, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "5524fa4b-8331-490f-ad89-a9fe71bd555d", "width": 80, "x": 2040, "y": 384, "zOrder": 179, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 1 } ] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "0233f523-5649-4a86-b99b-1211829736ec", "width": 80, "x": 2168, "y": 384, "zOrder": 179, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 1 } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "a59c0ceb-ef3c-4e70-9503-38c1ad0d6c49", "width": 192, "x": 2272, "y": 352, "zOrder": 18, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "28d1ad5b-9249-40fa-a4f5-500071aacb27", "width": 192, "x": 2720, "y": 352, "zOrder": 181, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "3b36c8b5-3249-4c64-86cb-fe3bdbe294e2", "width": 80, "x": 2616, "y": 384, "zOrder": 179, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 1 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 1 } ] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "0c989022-9760-4f05-9775-0a795ebc038c", "width": 80, "x": 2040, "y": 832, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "0cdef0d2-5544-4254-a594-4f2d761adc42", "width": 80, "x": 2168, "y": 832, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "0926c8b8-e547-44d5-9f95-98935f8d3f5a", "width": 192, "x": 2272, "y": 800, "zOrder": 181, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "592e898f-3660-41e1-9338-53e37408e3ea", "width": 80, "x": 2488, "y": 832, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "8e9223a3-68d0-4def-bfe4-61c0f946fea4", "width": 80, "x": 2616, "y": 832, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 48, "layer": "", "name": "StaticPlatform1", "persistentUuid": "a981c2cc-a18e-4757-ac6d-c5b7af6d2728", "width": 192, "x": 2048, "y": 736, "zOrder": 180, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 48, "layer": "", "name": "StaticPlatform1", "persistentUuid": "b11703f6-0259-4bed-bc1b-df5832df29e5", "width": 192, "x": 2496, "y": 736, "zOrder": 180, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "cc359f5c-585c-46ca-84bf-36635ffd266f", "width": 32, "x": 1904, "y": 544, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "50189148-7775-4a29-abf3-40d74f8e2bea", "width": 32, "x": 2352, "y": 544, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "9588486b-1fdf-4a6f-87ce-7143d25f7795", "width": 32, "x": 2800, "y": 544, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "6fde5b3a-31c7-45cb-92ec-9b7a6f3ff5dd", "width": 80, "x": 2776, "y": 544, "zOrder": 17, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 1 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 1 } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "0bd1ff9b-fd41-4921-95f5-c69b21fe3769", "width": 80, "x": 2776, "y": 672, "zOrder": 17, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 1 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 1 } ] }, { "angle": 90, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "26b68d53-de51-408a-a2df-a599e40a5e97", "width": 192, "x": 2048, "y": 128, "zOrder": 183, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": false }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 1 } ] }, { "angle": 90, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "7084143c-08eb-42b1-a28a-a8bb89f78ad6", "width": 192, "x": 2496, "y": 128, "zOrder": 183, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": false }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 1 } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "ff0bb62a-c064-4a65-9230-a76f5a32398f", "width": 192, "x": 2272, "y": -96, "zOrder": 181, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "a0cc1809-9e6b-4c1e-97f3-06e66cafc25a", "width": 80, "x": 2040, "y": -64, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "78cdc141-51f5-4c82-b650-e8f1e0e4d5fe", "width": 80, "x": 2168, "y": -64, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "ccd001db-d589-4362-b04b-2848e1c33832", "width": 512, "x": 2112, "y": -256, "zOrder": 18, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "96126f2b-5c26-4ae1-8019-2fe266cc8437", "width": 192, "x": 2720, "y": -96, "zOrder": 181, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "93241313-691b-4f86-8a8c-3f22458f4a69", "width": 80, "x": 2488, "y": -64, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "4d77617e-088f-4814-8d93-9ff4e3a6d73d", "width": 80, "x": 2616, "y": -64, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "87852f88-7368-4c73-9dd6-0b84caf5cbc3", "width": 512, "x": 2560, "y": -256, "zOrder": 18, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "5363af51-b3eb-4550-8dbd-b980b6e1a4b4", "width": 80, "x": 2328, "y": 96, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "98d35299-aa73-4ae4-bb0c-bbca6c2e34be", "width": 80, "x": 2328, "y": 224, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "b8aa72e9-06f9-402e-9a9c-243cc5773ac5", "width": 80, "x": 2776, "y": 96, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "720db5a1-0705-479e-8d8c-2553335e961c", "width": 80, "x": 2776, "y": 224, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 48, "layer": "", "name": "StaticPlatform1", "persistentUuid": "c9b4313b-baf4-46d8-b58f-ebc7b513130b", "width": 192, "x": 2944, "y": 736, "zOrder": 180, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "babfb291-8f38-482b-8045-5494050aadf6", "width": 192, "x": 3168, "y": 352, "zOrder": 181, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "26604104-167d-43de-b5ba-d8c28b08712f", "width": 192, "x": 3168, "y": 800, "zOrder": 181, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 48, "layer": "", "name": "StaticPlatform1", "persistentUuid": "64980321-4bb0-43be-a819-4beb99a55e9b", "width": 192, "x": 3392, "y": 320, "zOrder": 180, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "918fd1d9-badc-41a7-bf56-e45dece680c1", "width": 80, "x": 3224, "y": 544, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "24d80378-1dbb-4083-bf15-ae4d6f234619", "width": 80, "x": 3224, "y": 672, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "8749b59d-ca9b-4e5b-8891-5432c28face8", "width": 80, "x": 2936, "y": 832, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "0657e88f-f3b4-4c30-a295-861e16f53607", "width": 80, "x": 3064, "y": 832, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "8ead4a68-25a8-4269-aa13-355c331fe24f", "width": 512, "x": 3008, "y": 640, "zOrder": 18, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "d6645f66-7ffd-4379-a200-bae2cefab11b", "width": 341, "x": 3328, "y": 64, "zOrder": 18, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "78400d0b-7bd6-4598-909b-7ed67a5eb673", "width": 256, "x": 7552, "y": 32, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "9fd6a788-70f1-4cd6-8c85-417e1081ff3f", "width": 256, "x": 7760, "y": 32, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "5824da9b-a48d-460b-ab05-7164812d5470", "width": 256, "x": 7968, "y": 32, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "a4c514e0-f1e4-44f5-9d7b-b063d8e50a9f", "width": 32, "x": 7824, "y": -128, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "789c0370-6179-4dab-acdf-0ef5aa8a6063", "width": 32, "x": 7616, "y": -128, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "d5f17dd8-cafd-4a72-97ca-b3ecb307ee3b", "width": 32, "x": 8256, "y": -256, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "4cf2492c-4ec6-471f-8a99-cbedffe0f134", "width": 32, "x": 8992, "y": -256, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "LaserDemon_Base", "persistentUuid": "c7ef45c3-8df2-42ff-976b-85beaad53fa7", "width": 192, "x": 7616, "y": -320, "zOrder": 75, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 2 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "LaserDemon_Base", "persistentUuid": "40903dbf-6b01-458b-8960-f198488278d6", "width": 192, "x": 8640, "y": -320, "zOrder": 75, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 2 } ] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "73f247f1-80a4-469e-b9e5-b204650c4448", "width": 80, "x": 7832, "y": -288, "zOrder": 1018, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "OnOffTime", "type": "number", "value": 2 }, { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 } ] }, { "angle": 90, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "2ff647ae-3f88-4f9a-838a-7e1b868b495d", "width": 80, "x": 7960, "y": -288, "zOrder": 1018, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "OnOffTime", "type": "number", "value": 2 }, { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 } ] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "1c878d55-aa25-498a-8152-d01ca38fd298", "width": 80, "x": 8088, "y": -288, "zOrder": 1018, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "OnOffTime", "type": "number", "value": 2 }, { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 } ] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "87f9aa95-13f0-4a14-bbb8-98ccee490d5e", "width": 80, "x": 8472, "y": -288, "zOrder": 1018, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "OnOffTime", "type": "number", "value": 2 }, { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 } ] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "114defa4-6cc7-439a-98fc-f2bb05d5ca41", "width": 80, "x": 8344, "y": -288, "zOrder": 101, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "OnOffTime", "type": "number", "value": 2 }, { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 } ] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "bcb5d27b-84f0-467a-9578-d44e558f9f5d", "width": 80, "x": 8216, "y": -288, "zOrder": 101, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "OnOffTime", "type": "number", "value": 2 }, { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 } ] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamSingle", "persistentUuid": "5b1462af-ca98-4565-a71b-a59734624a67", "width": 80, "x": 8600, "y": -288, "zOrder": 1019, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 2 } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "cee5b6ae-ed81-48d2-ae2b-357c407955cb", "width": 192, "x": 4064, "y": -96, "zOrder": 181, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "97efb10b-0f1d-410a-9ab5-4cfd606b3b71", "width": 192, "x": 3616, "y": 800, "zOrder": 181, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "918a2d85-2ea1-4d98-ad07-8bbc217a6f61", "width": 512, "x": 3456, "y": 640, "zOrder": 18, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "8c237781-0fb7-4b49-9298-0d7530a05e68", "width": 80, "x": 3512, "y": 831, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "41148fc2-e90d-4153-8ac2-27c1454e0007", "width": 80, "x": 3384, "y": 831, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "d46441bd-ec3c-437d-b5ed-83e781b52a55", "width": 192, "x": 4064, "y": 800, "zOrder": 181, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "8bc6c5dc-19ed-40e8-a957-208b5a9aea4b", "width": 192, "x": 4512, "y": 800, "zOrder": 181, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "f98269a9-bebd-4e75-9096-008c1dfca074", "width": 512, "x": 4352, "y": 640, "zOrder": 18, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "e223b7cb-14db-4ca4-aa39-ce2f87196839", "width": 80, "x": 4416, "y": 832, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "c04ecf98-505c-445f-b115-f8fc0fd4c187", "width": 80, "x": 4288, "y": 832, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "b4901f39-ca39-44cc-9181-0c9483114745", "width": 512, "x": 3904, "y": 640, "zOrder": 18, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "c879d27f-2edf-4f0b-9c1a-3c10492ade1f", "width": 80, "x": 3960, "y": 832, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "0b9b6302-69db-4db2-b4e7-8b4c6ca582c3", "width": 80, "x": 3832, "y": 832, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "39574fb3-22c5-486a-b5f3-db3a19b0dc62", "width": 192, "x": 4952, "y": 800, "zOrder": 181, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "e923d3e9-1dd1-4dcc-ae77-e05d3de34003", "width": 192, "x": 5408, "y": 800, "zOrder": 181, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "f222113a-635c-4dfc-823d-e91ad1a03f03", "width": 512, "x": 5248, "y": 640, "zOrder": 18, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "69abbf60-40ed-4c19-8605-e8b2532ffa22", "width": 80, "x": 5304, "y": 832, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "15012d79-703b-4e74-9d2e-4662de3a7856", "width": 80, "x": 5176, "y": 832, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "0f40b1bc-3e2a-4139-b742-0ab265a7512b", "width": 512, "x": 4800, "y": 640, "zOrder": 18, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "996a3ee8-8391-4bf0-b42d-91123343dd4c", "width": 80, "x": 4856, "y": 832, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "bebf07d5-fe58-4582-8153-70696cfa650a", "width": 80, "x": 4728, "y": 832, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "e5904dc9-35d3-4342-85c2-01d4cbb8de9c", "width": 192, "x": 3616, "y": 352, "zOrder": 181, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "082689c5-b170-4bc4-a690-c8346f09ac34", "width": 192, "x": 4064, "y": 352, "zOrder": 181, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "c854199b-bfa7-4c18-ba69-1de591d13c98", "width": 192, "x": 4512, "y": 352, "zOrder": 181, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "3d8eff15-42a4-41a8-9763-9db20be9efd9", "width": 192, "x": 4960, "y": 352, "zOrder": 181, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "4a3327ed-d726-4609-8171-13a2047086ce", "width": 192, "x": 5408, "y": 352, "zOrder": 181, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "c8068d82-1e0c-47e9-b530-df2a4d499791", "width": 192, "x": 4512, "y": -96, "zOrder": 181, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "a34e3fbc-474d-4d37-be66-f4bcc8999bbe", "width": 192, "x": 4960, "y": -96, "zOrder": 181, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "06184fb2-883e-4c34-9556-2407117014c9", "width": 80, "x": 3672, "y": 544, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "fec29ab2-0dcc-468d-8eb3-59817fae2f24", "width": 80, "x": 3672, "y": 672, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "d1ce5093-d8c6-410a-9767-59c2b39a613b", "width": 80, "x": 4120, "y": 544, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "dc2ad2a9-5094-4f00-8d96-76351220b449", "width": 80, "x": 4120, "y": 672, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "5128ff60-9833-46fa-9443-bc16c6251e43", "width": 80, "x": 4568, "y": 544, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "c981b13c-de41-43ff-a010-e6e0a276a4a9", "width": 80, "x": 4568, "y": 672, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "f4e306a2-8295-4383-85ee-03e70de99807", "width": 80, "x": 5016, "y": 544, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "d50750d6-e83a-4410-b75b-5b22a79ef445", "width": 80, "x": 5016, "y": 672, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "781c8c78-9e66-4be9-a92e-2689b01b7dde", "width": 80, "x": 5464, "y": 544, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "a3b9d09b-0f52-48a5-88ba-066a21706905", "width": 80, "x": 5464, "y": 672, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "504b6788-08a2-4e70-865f-1aa504bbbc80", "width": 80, "x": 3832, "y": -64, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "b32067fe-fcb4-464e-94b5-056d71f9a7a8", "width": 80, "x": 3960, "y": -64, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "73fa8604-5b18-4881-b53e-6721fb2e3541", "width": 80, "x": 4408, "y": -64, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "36ec5f3f-bdc8-454a-a657-ed928373a9db", "width": 80, "x": 4728, "y": -64, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "7444cfdd-6ae7-408b-a8f8-7d414f13f30b", "width": 80, "x": 4856, "y": -64, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "4c6987e2-1a00-4767-8f89-41db93d582ea", "width": 80, "x": 5176, "y": -64, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "b118c6f0-2129-420e-a508-88186d512db8", "width": 80, "x": 5304, "y": -64, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "0a335cbd-cc01-409a-af1c-1aad25804bfd", "width": 80, "x": 2488, "y": 385, "zOrder": 179, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 1 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 1 } ] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "c0e8e1b0-94a7-4995-a518-3a56003be78d", "width": 80, "x": 3384, "y": 384, "zOrder": 179, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 1 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 1 } ] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "dcb2321f-dadd-41ec-91e9-e024a45b6451", "width": 80, "x": 3512, "y": 384, "zOrder": 179, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "OnOffTime", "type": "number", "value": 1 }, { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 1 } ] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "1e4d8dd2-05de-48af-9c86-15321c6c0f3a", "width": 80, "x": 4280, "y": 384, "zOrder": 179, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 1 } ] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "13fe0f04-cd15-4527-9c12-a82a17ea1299", "width": 80, "x": 4408, "y": 384, "zOrder": 179, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 1 } ] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "fa7022c4-66fd-470b-a1dc-0ac178750d34", "width": 80, "x": 3832, "y": 384, "zOrder": 179, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 1 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 1 } ] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "df414dd7-2d0e-4578-9ba0-a4d1a1935e0a", "width": 80, "x": 3960, "y": 384, "zOrder": 179, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 1 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 1 } ] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "dd40a12f-8eab-4298-80c9-ccd2b9346e5f", "width": 80, "x": 4728, "y": 384, "zOrder": 179, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 1 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 1 } ] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "a0ff4088-4b4b-4a84-9a55-0d0b8071ed88", "width": 80, "x": 4856, "y": 384, "zOrder": 179, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 1 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 1 } ] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "0039a887-b97b-4bb6-8d8e-acd175ed08a3", "width": 80, "x": 5304, "y": 384, "zOrder": 179, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 1 } ] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "aafab2fe-702c-4a09-aee7-a53a5548d457", "width": 80, "x": 5176, "y": 384, "zOrder": 179, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 1 } ] }, { "angle": 0, "customSize": true, "depth": 2, "height": 48, "layer": "", "name": "StaticPlatform2", "persistentUuid": "21d8d123-ebbd-4a63-92ee-f728ed3166b3", "width": 64, "x": 3680, "y": 320, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 48, "layer": "", "name": "StaticPlatform2", "persistentUuid": "43b2f945-33ba-44ad-8993-24ba0c425106", "width": 64, "x": 4128, "y": 320, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 48, "layer": "", "name": "StaticPlatform2", "persistentUuid": "964afeb4-5134-4a4c-962c-528fdd6d0b78", "width": 64, "x": 4576, "y": 320, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 48, "layer": "", "name": "StaticPlatform2", "persistentUuid": "15af60d3-1083-4b0c-beb7-dd518e940b36", "width": 64, "x": 5024, "y": 320, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 48, "layer": "", "name": "StaticPlatform2", "persistentUuid": "5f3145e7-3058-4d5f-8d8c-c27356d4c5ad", "width": 64, "x": 5472, "y": 320, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 48, "layer": "", "name": "StaticPlatform2", "persistentUuid": "4412bc17-1952-465f-9f6e-e54badd6b471", "width": 64, "x": 5920, "y": 320, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 400, "layer": "", "name": "StaticPlatform2", "persistentUuid": "c6bb2b50-4bb4-47ec-bb71-ae1cd8746050", "width": 800, "x": 6592, "y": 32, "zOrder": 102, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "ee012ada-d845-4042-8559-759edbf3b5de", "width": 341, "x": 6795, "y": -208, "zOrder": 184, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 48, "layer": "", "name": "StaticPlatform1", "persistentUuid": "f575cede-521b-449f-a72b-d5d6581d9ddf", "width": 192, "x": 3840, "y": 736, "zOrder": 180, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 48, "layer": "", "name": "StaticPlatform1", "persistentUuid": "a7b6ce7f-84a0-4750-a0e5-2c4556a1112e", "width": 192, "x": 4288, "y": 736, "zOrder": 180, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 48, "layer": "", "name": "StaticPlatform1", "persistentUuid": "c9b6783e-6c3f-4615-b335-431817a85734", "width": 192, "x": 4736, "y": 736, "zOrder": 180, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 48, "layer": "", "name": "StaticPlatform1", "persistentUuid": "f6e70deb-e37b-41f5-9705-82a98fdb2a25", "width": 192, "x": 5184, "y": 736, "zOrder": 180, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "StalagmiteDemon_Base", "persistentUuid": "d306556a-aa3d-474c-bcac-3e51afe7f8e7", "width": 256, "x": 3799, "y": 565, "zOrder": 1022, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": false }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 1 } ] }, { "angle": 180, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "StalagmiteDemon_Base", "persistentUuid": "d3a794d6-acac-4ae8-9bf2-00c818e6d33b", "width": 256, "x": 4247, "y": 565, "zOrder": 1022, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": false }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 1 } ] }, { "angle": 180, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "StalagmiteDemon_Base", "persistentUuid": "4c06d0ad-5942-4082-8ab0-d7943147aa89", "width": 256, "x": 4695, "y": 565, "zOrder": 1022, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": false }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 1 } ] }, { "angle": 180, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "StalagmiteDemon_Base", "persistentUuid": "d87fcb3c-89b6-4a84-9e78-5163f5537d5e", "width": 256, "x": 5143, "y": 565, "zOrder": 1022, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": false }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 1 } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_Base", "persistentUuid": "2c6542f4-398a-435d-9730-478721600dc3", "width": 192, "x": 480, "y": 800, "zOrder": 1023, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 1 } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_Base", "persistentUuid": "b63b920a-6218-4b98-a42c-8e488c382524", "width": 192, "x": 2720, "y": 800, "zOrder": 1023, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 1 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 1 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "af83c909-8ee1-491f-9ef3-1aedfcfb2e0b", "width": 32, "x": 3616, "y": 160, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "0c00cad8-a95f-4d5f-b59b-e6dd52f0d7b2", "width": 32, "x": 3472, "y": 96, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "58896044-b046-4779-a73e-fe4a63834247", "width": 192, "x": 3616, "y": -96, "zOrder": 181, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "ec1dca09-e043-48e7-bd27-b367f5e16be0", "width": 32, "x": 3616, "y": 192, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "56d54e15-db9a-4405-8743-5dc324a7cc22", "width": 192, "x": 5408, "y": -96, "zOrder": 181, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "c4ab6191-da10-4302-a2a1-7fad527a3d32", "width": 80, "x": 4280, "y": -64, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "955ce330-4249-4c00-8dd4-164d06c0af7b", "width": 224, "x": 3136, "y": 264, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "04f5311b-c51b-4a69-97a9-7be0b88ffe04", "width": 80, "x": 2936, "y": -64, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "321941e3-9312-4c4e-bfe3-e58c1f650b52", "width": 80, "x": 3064, "y": -64, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "9c125869-b127-44c4-ac42-9a2e79ba1356", "width": 80, "x": 3192, "y": -64, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "2a49b43d-95ed-4a9c-b2a3-a03e12eb5c7a", "width": 80, "x": 3320, "y": -64, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "6d1a9e21-bf09-4ca0-ac06-77269e8747a7", "width": 80, "x": 3448, "y": -64, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamSingle", "persistentUuid": "cd3818ec-be2e-4b6c-9d11-f6c17d129408", "width": 80, "x": 3576, "y": -64, "zOrder": 1024, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "1d63f8c7-52aa-4e51-bc21-012c8adfa8b8", "width": 32, "x": 3232, "y": 96, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "020f17b5-a30b-477a-8614-c7ab12e6c24e", "width": 32, "x": 3472, "y": 96, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "d7329695-8de0-4489-bb66-9d746446e355", "width": 32, "x": 3616, "y": 160, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "4e56e823-815f-4973-808f-296a627cbe17", "width": 32, "x": 3616, "y": 192, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "c37a3b17-e9a5-4b08-a26b-be095b9793b2", "width": 448, "x": 0, "y": 736, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "d1c16bbf-2b17-47cc-b8d4-a3b46004e84b", "width": 32, "x": 3920, "y": 64, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "50e36913-9af9-44a3-bbdc-cd3c94f8618f", "width": 32, "x": 4368, "y": 64, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "dbb87fff-29eb-457e-9806-7d86a4d356a5", "width": 32, "x": 4816, "y": 64, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "29226995-b92e-4f93-8958-958f2c68ff90", "width": 32, "x": 5264, "y": 64, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "58a7f98f-a084-4376-b1d6-b01c1c5f0aaf", "width": 32, "x": 5712, "y": 64, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "7c223af0-29b0-4e3d-8d9e-2d6a5c688bb2", "width": 32, "x": 6160, "y": 64, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform3", "persistentUuid": "08872355-5168-4214-b4ee-61a6636f0eb3", "width": 256, "x": 3360, "y": 672, "zOrder": 1025, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 48, "layer": "", "name": "StaticPlatform2", "persistentUuid": "4a86d3ae-ed19-4eb3-9e9a-418ef86dd987", "width": 64, "x": 6368, "y": 480, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "2d60ee87-8c40-4ed2-bbcf-6970d24e5414", "width": 32, "x": 6608, "y": 224, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 48, "layer": "", "name": "StaticPlatform2", "persistentUuid": "2f76347b-ca4d-437c-9ffc-5406a458a665", "width": 64, "x": 6816, "y": 672, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "844ecab8-f5e7-48fe-b3fd-03cecaa8170b", "width": 32, "x": 7056, "y": 416, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "ShockwaveDemon_Base", "persistentUuid": "fa63287b-2829-4e69-aaa9-3dedf2e55bfb", "width": 192, "x": 8373, "y": 1152, "zOrder": 1027, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 6 }, { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 1.75 }, { "folded": true, "name": "ShockwavePower", "type": "number", "value": 1250 }, { "folded": true, "name": "FixedAngle", "type": "boolean", "value": true } ] }, { "angle": 0, "customSize": true, "depth": 4, "height": 64, "layer": "", "name": "BoundaryJumpThrough", "persistentUuid": "b624aa0f-0413-4a70-96a4-b3bfb46076fb", "width": 1120, "x": 7520, "y": 1344, "zOrder": 93, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "764437e2-e34a-431f-9f8b-cef7fb92f380", "width": 160, "x": 7915, "y": 1344, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "8444e583-5623-4844-b405-cc8859e8bb26", "width": 160, "x": 7723, "y": 1344, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "54f1784f-8484-4a4c-a916-c64c80f8f6a1", "width": 160, "x": 8299, "y": 1344, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "ac3d06aa-4e0d-416c-b1d3-8a71d523b5bc", "width": 160, "x": 8107, "y": 1344, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "3ad6e4fa-bc9a-48c5-8c40-ac2664b8bf82", "width": 160, "x": 7718, "y": 1707, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "94dfa215-dadc-4928-863e-c64232b9ae21", "width": 160, "x": 7910, "y": 1707, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "60dd778c-6485-4449-b429-68a39df56726", "width": 160, "x": 8102, "y": 1707, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "3a0d8f7e-e200-4257-a0d2-885b2c1f621b", "width": 160, "x": 8294, "y": 1707, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "3d7bbe14-2b44-4c10-a34d-f5a4849b2e0a", "width": 160, "x": 8491, "y": 1344, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "4ca7de19-54f2-480f-9938-adbf59523d20", "width": 160, "x": 8486, "y": 1707, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Base", "persistentUuid": "27929c44-e594-4dc4-863a-14959261c2c0", "width": 256, "x": 7808, "y": 2080, "zOrder": 1028, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Eye", "persistentUuid": "00ac482a-0db2-4f7a-9d96-d2069adeaa58", "width": 256, "x": 7808, "y": 2080, "zOrder": 1029, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": true }, { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 3.25 }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 5 } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 64, "layer": "", "name": "StaticPlatform1", "persistentUuid": "1deedca7-6dc1-4314-961e-1028f7c5e1a8", "width": 256, "x": 8064, "y": 2240, "zOrder": 1030, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "MiteDemon_Base", "persistentUuid": "bdf2701e-3266-4421-b745-43d8a26d9584", "width": 256, "x": 8064, "y": 2048, "zOrder": 1031, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": true }, { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 4.25 }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 3.5 }, { "folded": true, "name": "MiteMaxSpeed", "type": "number", "value": 175 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "2bd25453-bdcb-4039-a9b9-b055925bd5f8", "width": 160, "x": 7531, "y": 1344, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "cb950dc4-d4f7-4bbf-93a1-cc91a8036831", "width": 160, "x": 7526, "y": 1707, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "835f7a76-929e-467a-ab55-5bd0118524c4", "width": 192, "x": 7904, "y": 1120, "zOrder": 1032, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "a7e580da-ce6e-4208-b4b4-14cf261a6d5c", "width": 512, "x": 7744, "y": 960, "zOrder": 1033, "numberProperties": [], "stringProperties": [], "initialVariables": [] } ], "objects": [ { "assetStoreId": "", "height": 1024, "name": "BackgroundPlants", "texture": "Assets\\Images\\Levels\\10\\Background\\Background.png", "type": "TiledSpriteObject::TiledSprite", "width": 2048, "variables": [], "effects": [ { "effectType": "TiltShift", "name": "Effect", "doubleParameters": { "blur": 30, "gradientBlur": 1000 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "OldFilm", "name": "Effect2", "doubleParameters": { "animationFrequency": 60, "noise": 0.1, "noiseSize": 1, "scratch": 0.5, "scratchDensity": 0.4, "scratchWidth": 1, "sepia": 0.1, "vignetting": 0.75, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [] } ], "objectsFolderStructure": { "folderName": "__ROOT", "children": [ { "objectName": "BackgroundPlants" } ] }, "events": [ { "type": "BuiltinCommonInstructions::Link", "include": { "includeConfig": 0 }, "target": "LevelEvents" }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Change Scene", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "LayerVisible" }, "parameters": [ "", "\"EndScreen\"" ] }, { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "PanelSpriteButton::PanelSpriteButton::IsClicked" }, "parameters": [ "UI_Sinage_RetryButton", "" ] }, { "type": { "value": "KeyReleased" }, "parameters": [ "", "Space" ] } ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Player", "Lives", ">", "0" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Mindscape\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Player", "Lives", "<=", "0" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Level10\"", "" ] } ] } ] } ], "parameters": [] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "AnimatableCapability::AnimatableBehavior::SetName" }, "parameters": [ "Memory", "Animation", "=", "\"Linux\"" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Player", "LifeForce", "=", "10" ] } ] } ], "layers": [ { "ambientLightColorB": 8002120, "ambientLightColorG": 6031360, "ambientLightColorR": 7844472, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": true, "name": "Background", "renderingType": "2d", "visibility": true, "cameras": [], "effects": [] }, { "ambientLightColorB": 32, "ambientLightColorG": 0, "ambientLightColorR": 0, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "", "renderingType": "", "visibility": true, "cameras": [ { "defaultSize": true, "defaultViewport": true, "height": 0, "viewportBottom": 1, "viewportLeft": 0, "viewportRight": 1, "viewportTop": 0, "width": 0 } ], "effects": [ { "effectType": "Scene3D::HemisphereLight", "name": "3D Light", "doubleParameters": { "elevation": 45, "intensity": 1, "rotation": 0 }, "stringParameters": { "groundColor": "64;64;64", "skyColor": "255;255;255", "top": "Y-" }, "booleanParameters": {} }, { "effectType": "OldFilm", "name": "Effect", "doubleParameters": { "animationFrequency": 60, "noise": 0.15, "noiseSize": 1, "scratch": 0, "scratchDensity": 0.2, "scratchWidth": 1, "sepia": 0, "vignetting": 0.4, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": {} } ] }, { "ambientLightColorB": 9191608, "ambientLightColorG": 6031360, "ambientLightColorR": 8756632, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "UI", "renderingType": "2d", "visibility": true, "cameras": [], "effects": [] }, { "ambientLightColorB": -2147483616, "ambientLightColorG": 6031360, "ambientLightColorR": 11020320, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "EndScreen", "renderingType": "2d", "visibility": false, "cameras": [], "effects": [] } ], "behaviorsSharedData": [ { "name": "AdvancedProjectile", "type": "AdvancedProjectile::AdvancedProjectile" }, { "name": "Animation", "type": "AnimatableCapability::AnimatableBehavior" }, { "name": "Effect", "type": "EffectCapability::EffectBehavior" }, { "name": "EllipseMovement", "type": "EllipseMovement::EllipseMovement" }, { "name": "Flippable", "type": "FlippableCapability::FlippableBehavior" }, { "name": "InOnScreen", "type": "IsOnScreen::InOnScreen" }, { "name": "MonsterEnemy", "type": "Enemy::MonsterEnemy" }, { "name": "Opacity", "type": "OpacityCapability::OpacityBehavior" }, { "name": "Platform", "type": "PlatformBehavior::PlatformBehavior" }, { "name": "PlatformerCharacterAnimator", "type": "PlatformerCharacterAnimator::PlatformerCharacterAnimator" }, { "name": "PlatformerGamepadMapper", "type": "Gamepads::PlatformerGamepadMapper" }, { "name": "PlatformerMultitouchMapper", "type": "MultitouchJoystick::PlatformerMultitouchMapper" }, { "name": "PlatformerObject", "type": "PlatformBehavior::PlatformerObjectBehavior" }, { "name": "RectangleMovement", "type": "RectangleMovement::RectangleMovement" }, { "name": "Resizable", "type": "ResizableCapability::ResizableBehavior" }, { "name": "Scale", "type": "ScalableCapability::ScalableBehavior" }, { "name": "ShakeObject_PositionAngle", "type": "ShakeObject::ShakeObject_PositionAngle" }, { "name": "ShakeObject_PositionAngleScale", "type": "ShakeObject::ShakeObject_PositionAngleScale" }, { "name": "SmoothCamera", "type": "SmoothCamera::SmoothCamera" }, { "name": "Text", "type": "TextContainerCapability::TextContainerBehavior" }, { "name": "TimedBackAndForthMirroredMovement", "type": "TimedBackAndForthMovement::TimedBackAndForthMirroredMovement" }, { "name": "Tween", "type": "Tween::TweenBehavior" } ] }, { "b": 26, "disableInputWhenNotFocused": true, "mangledName": "Level9", "name": "Level9", "r": 11, "standardSortMethod": true, "stopSoundsOnStartup": true, "title": "", "v": 24, "uiSettings": { "grid": true, "gridType": "rectangular", "gridWidth": 32, "gridHeight": 32, "gridOffsetX": 0, "gridOffsetY": 0, "gridColor": 10401023, "gridAlpha": 0.3, "snap": true, "zoomFactor": 0.42994374832916443, "windowMask": false }, "objectsGroups": [ { "name": "MobileControls", "objects": [ { "name": "JumpButton" }, { "name": "Joystick" } ] }, { "name": "EndScreenObjects", "objects": [ { "name": "EndScreenBackground" }, { "name": "EndScreenHeader" }, { "name": "EndScreenSubHeader" }, { "name": "EndScreenBestText" }, { "name": "EndScreenChallengeText" }, { "name": "EndScreenRetryText" }, { "name": "RetryButton" } ] } ], "variables": [ { "name": "Score", "type": "number", "value": 0 } ], "instances": [ { "angle": 0, "customSize": true, "depth": 1, "height": 7680, "layer": "", "name": "LeftBoundary", "persistentUuid": "78dd0ffa-b22f-47a8-9b36-ef6a432b1d1e", "width": 128, "x": -128, "y": -5920, "zOrder": 38, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 7680, "layer": "", "name": "RightBoundary", "persistentUuid": "9562fd9d-6e93-4465-9013-efa2b833653b", "width": 128, "x": 66208, "y": -5920, "zOrder": 58, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "TopBoundary", "persistentUuid": "4381c067-2682-4f00-9a24-ff28fa12b1d8", "width": 66464, "x": -128, "y": -5920, "zOrder": 59, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "Player", "persistentUuid": "014db1f5-0846-4cba-821e-57e29d368c14", "width": 256, "x": 64, "y": 664, "zOrder": 63, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 7456, "layer": "Background", "name": "BackgroundPlants", "persistentUuid": "3f0ec037-2a70-4ea5-90eb-c1f8a7387a6c", "width": 66208, "x": 0, "y": -5824, "zOrder": -1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "e08c1888-868a-438d-bf83-a9affe5815db", "width": 448, "x": 0, "y": 760, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "BottomBoundary", "persistentUuid": "d1a591e5-d6c2-4c37-9b0e-bff58c09c7d5", "width": 66464, "x": -128, "y": 1632, "zOrder": 60, "numberProperties": [ { "name": "animation", "value": 0 } ], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 496, "layer": "", "name": "StaticPlatform3", "persistentUuid": "91892016-9d1e-49a5-b015-cda442ecdcd5", "width": 992, "x": 65536, "y": 272, "zOrder": 72, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 544, "layer": "", "name": "Portal", "persistentUuid": "1ff1c530-e0f7-4107-b03e-f1aa37458ec6", "width": 408, "x": 65800, "y": -240, "zOrder": 73, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Memory", "persistentUuid": "59780ce3-bfab-4913-9837-ce9d47ee32d8", "width": 256, "x": 65856, "y": -464, "zOrder": 74, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 288, "layer": "", "name": "FlippingPlatform", "persistentUuid": "a793e36f-6c23-4a2e-a9ce-23d577c5bf35", "width": 576, "x": 38192, "y": -544, "zOrder": 138, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 288, "layer": "", "name": "FlippingPlatform2", "persistentUuid": "2a003b45-3f59-4d70-b090-ad3c4eda56f3", "width": 576, "x": 39648, "y": -544, "zOrder": 139, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 288, "layer": "", "name": "FlippingPlatform", "persistentUuid": "752ed9d1-764d-48c9-ac4f-cfa4e36a2add", "width": 576, "x": 40864, "y": -544, "zOrder": 138, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "7db18126-4224-4da7-b222-df05969fcbe9", "width": 224, "x": 39104, "y": -576, "zOrder": 126, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 320, "layer": "", "name": "StaticPlatform2", "persistentUuid": "733b8818-a72e-497f-85e1-4c0b0de879c9", "width": 1184, "x": 40448, "y": 768, "zOrder": 141, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "HorizontalDemon", "persistentUuid": "e36a055c-7096-4474-ad37-2ea8e42694be", "width": 256, "x": 45088, "y": -608, "zOrder": 91, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "HorizontalDemon", "persistentUuid": "13e1310f-4990-4b68-8d40-d8857e512ce0", "width": 256, "x": 44832, "y": -288, "zOrder": 91, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "HorizontalDemon", "persistentUuid": "08f8f770-074e-4b92-a50d-cc8a49f8b148", "width": 256, "x": 45088, "y": 32, "zOrder": 91, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "HorizontalDemon", "persistentUuid": "ed378120-6441-4398-82a0-4a00cbf8907c", "width": 256, "x": 44832, "y": 352, "zOrder": 91, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 448, "layer": "", "name": "VerticalMovingPlatformDown", "persistentUuid": "20c7d26b-7a87-4510-a1fa-3545bc473118", "width": 448, "x": 44704, "y": -32, "zOrder": 44, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "HorizontalMovingPlatformRight", "persistentUuid": "927835bb-21d7-4808-8d52-7511e70ba6c5", "width": 512, "x": 45568, "y": 512, "zOrder": 89, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "HorizontalDemon", "persistentUuid": "c0e3fbfd-21bf-456e-8c1b-2dfdc74e86b2", "width": 256, "x": 42112, "y": 608, "zOrder": 91, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 439, "layer": "", "name": "StaticPlatform2", "persistentUuid": "27622525-4211-423f-84a8-82774f409c52", "width": 544, "x": 42432, "y": -320, "zOrder": 90, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "StalactiteDemon_Base", "persistentUuid": "9bef3e22-4dc5-45e8-8b96-79ddfa81db65", "width": 256, "x": 42656, "y": 64, "zOrder": 88, "numberProperties": [ { "name": "animation", "value": 0 } ], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 5.5 } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 64, "layer": "", "name": "HorizontalMovingPlatformRight", "persistentUuid": "cd4b049d-f9e3-4c4b-bf04-58b4c6008b6a", "width": 128, "x": 43488, "y": 864, "zOrder": 145, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "091d5c5f-f19c-4624-839d-7a5bfd6e6912", "width": 224, "x": 43072, "y": 288, "zOrder": 126, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "HorizontalMovingPlatformRight", "persistentUuid": "ab559f65-d258-42e2-9775-f0976fc47bee", "width": 512, "x": 41408, "y": -896, "zOrder": 89, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "222f747a-a50d-40ad-9e81-80328bb4883b", "width": 256, "x": 43296, "y": -800, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 320, "layer": "", "name": "StaticPlatform3", "persistentUuid": "6a64bcf3-6445-477f-845e-40e804fed53c", "width": 640, "x": 43840, "y": -480, "zOrder": 148, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 208, "layer": "", "name": "StaticPlatform2", "persistentUuid": "defdf758-9ab1-4593-8de0-01d777cc892c", "width": 480, "x": 42528, "y": 736, "zOrder": 144, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "HorizontalMovingPlatformRight", "persistentUuid": "c8fa1dc3-6301-492e-b4b3-2040ea26db9a", "width": 512, "x": 41920, "y": -960, "zOrder": 89, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 211, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "StalagmiteDemon_Base", "persistentUuid": "e73ccb81-9b08-4804-814f-dc97ecdd3863", "width": 256, "x": 42720, "y": -224, "zOrder": 100, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 3 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "a923c7df-094a-4353-8908-a5c4e3ac4184", "width": 341, "x": 41504, "y": -1152, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "80e869b5-3d8d-445c-97fb-088192e12323", "width": 341, "x": 41008, "y": 512, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "HorizontalDemon", "persistentUuid": "9f014e68-0b09-40c0-a931-eadc92b040cd", "width": 256, "x": 41984, "y": -1216, "zOrder": 112, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "288b7656-0345-46b2-a1a5-e6ae6daa96c7", "width": 192, "x": 44192, "y": 608, "zOrder": 139, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 2 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "a3d568eb-ac50-4e2b-833e-5f64b6e248e8", "width": 448, "x": 1000, "y": 760, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "d657918b-7d8b-4a36-a630-b2a3c7187213", "width": 448, "x": 1448, "y": 760, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "45f4c03d-56b9-45a1-bf75-b704284cc85f", "width": 448, "x": 1896, "y": 760, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "586130bc-9955-4527-8971-b58f44b6bf41", "width": 448, "x": 2344, "y": 760, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "ee2451d2-9c34-4690-8765-0efaed7fb1fb", "width": 448, "x": 2792, "y": 760, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "d941ed4b-81b5-4612-8ef2-b38e4fed5ff7", "width": 448, "x": 3240, "y": 760, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "078d6cf7-f312-4b10-a0a2-26869a51c3b4", "width": 448, "x": 5480, "y": 760, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "47cda15a-3aeb-45a0-9574-5bb709088666", "width": 448, "x": 5032, "y": 760, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "0d935c3f-c30f-40e0-9b00-d9b749471d50", "width": 448, "x": 4584, "y": 760, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "b6d5e053-dda3-4159-a40b-c162a356f0ba", "width": 448, "x": 4136, "y": 760, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "3d69b794-47e8-4ae6-9fcd-d8c8f8e82407", "width": 448, "x": 3688, "y": 760, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "68be6afc-767f-47bf-ab09-6ea35e6a2b6e", "width": 448, "x": 6376, "y": 760, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "3e169aa6-ab47-45ea-890b-e48bfa053d97", "width": 448, "x": 5928, "y": 760, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "14a70639-1ee0-49f2-95b1-d63bebfb4056", "width": 448, "x": 6824, "y": 760, "zOrder": 150, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "50d9b7fe-6e54-4873-bc24-e4ffcbefb56a", "width": 448, "x": 7272, "y": 760, "zOrder": 151, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "41ef4b16-aa1f-4f62-a897-d66639cd46c5", "width": 448, "x": 1448, "y": 376, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "6d93b6fa-6cb3-45d8-bd26-a6c5b502a4d2", "width": 448, "x": 1896, "y": 376, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "2a63812d-8179-47e8-96b4-6f3192dc8c89", "width": 448, "x": 2344, "y": 376, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "4a575dfe-a2dd-4680-a125-3cd62c32789f", "width": 448, "x": 2792, "y": 376, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "577d5a63-94d2-4a79-aa57-afa3c0587af5", "width": 448, "x": 3240, "y": 376, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "1bf78dde-6858-41ee-b9f7-8a9ab951a4bd", "width": 448, "x": 5480, "y": 376, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "39640890-ad1a-4faa-94bb-baf50eb2856d", "width": 448, "x": 5032, "y": 376, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "0efdfa96-5e7a-4765-aa10-878c9cf518de", "width": 448, "x": 4584, "y": 376, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "fb957850-f49d-4a10-a845-9cd8f7c5bc29", "width": 448, "x": 4136, "y": 376, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "db138cd2-b2dc-4574-ad8e-e63d367dba9c", "width": 448, "x": 3688, "y": 376, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "45f5dd1f-6c7f-4c38-917f-ba4d086e99bc", "width": 448, "x": 6376, "y": 376, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "1be0b2bf-3e07-498a-8743-103630045007", "width": 448, "x": 5928, "y": 376, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "bc26a819-212f-480b-8c63-0cc580b680d4", "width": 448, "x": 6824, "y": 376, "zOrder": 150, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "8a8569ed-c763-49d9-8e44-3ddd9075de86", "width": 448, "x": 7272, "y": 376, "zOrder": 151, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -90, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "ShockwaveDemon_Base", "persistentUuid": "d43f0f2c-51e9-453d-8957-3452e8b68eeb", "width": 192, "x": 1000, "y": 712, "zOrder": 101, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 0.9 }, { "folded": true, "name": "FixedAngle", "type": "boolean", "value": true }, { "folded": true, "name": "ShockwavePower", "type": "number", "value": 1200 }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 3 } ] }, { "angle": -90, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "ShockwaveDemon_Base", "persistentUuid": "3b2bf5b8-5d04-4817-97bf-180e796edaa0", "width": 192, "x": 2000, "y": 712, "zOrder": 101, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 0.9 }, { "name": "FireOffsetTime", "type": "number", "value": 0.9 }, { "folded": true, "name": "FixedAngle", "type": "boolean", "value": true }, { "folded": true, "name": "ShockwavePower", "type": "number", "value": 2200 }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 3 } ] }, { "angle": -90, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "ShockwaveDemon_Base", "persistentUuid": "9810fbf0-aec3-470e-af44-281cd7756366", "width": 192, "x": 4000, "y": 712, "zOrder": 101, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 0.9 }, { "name": "FireOffsetTime", "type": "number", "value": 1.8 }, { "folded": true, "name": "FixedAngle", "type": "boolean", "value": true }, { "folded": true, "name": "ShockwavePower", "type": "number", "value": 3450 }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 3 } ] }, { "angle": -90, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "ShockwaveDemon_Base", "persistentUuid": "74a0fada-7cb8-4475-b9ca-2623be1810de", "width": 192, "x": 7250, "y": 712, "zOrder": 101, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 3.4 }, { "name": "FireOffsetTime", "type": "number", "value": 2.7 }, { "folded": true, "name": "FixedAngle", "type": "boolean", "value": true }, { "folded": true, "name": "ShockwavePower", "type": "number", "value": 4000 }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 3 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "0b6201c0-f9e1-41c9-8c87-e278731e80d6", "width": 448, "x": 1000, "y": 376, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": false, "height": 0, "layer": "", "name": "FlyingDemon", "persistentUuid": "f468d415-922e-493b-b471-4b7ca147d325", "width": 0, "x": 14016, "y": -72, "zOrder": 152, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "StalactiteDemon_Base", "persistentUuid": "8a61c814-9974-4ccb-81d6-91878d70bfbf", "width": 256, "x": 16640, "y": 216, "zOrder": 153, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 1.6 }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 3 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "68a7c71d-e29f-461b-bb71-6814828ed906", "width": 448, "x": 16544, "y": 152, "zOrder": 151, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "b7578801-0500-4ce8-9121-75d9ffe2af0b", "width": 256, "x": 9760, "y": 1144, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "2ba12be9-2468-4532-9f38-80bad5a5762d", "width": 256, "x": 9760, "y": 1080, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "2fdd2653-e387-4e59-8ca0-fe0350d7a1d1", "width": 256, "x": 9952, "y": 1080, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "3648cec8-993e-4dde-b234-ee52d63527fb", "width": 256, "x": 10144, "y": 1080, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "8aaa527e-09a1-41e5-a51d-ff8dbf97e125", "width": 256, "x": 9912, "y": 1164, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "46981ade-7427-4735-ba1f-7954ec76e85a", "width": 256, "x": 10080, "y": 1208, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "9ab9cffe-ddb9-48bf-bb0f-481b79801e5c", "width": 256, "x": 9600, "y": 1096, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "424f3dfa-bd40-4d04-8f51-474a09912585", "width": 256, "x": 10336, "y": 1080, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "c3634004-b6f8-486e-957c-d43909bc3483", "width": 256, "x": 9952, "y": 1304, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 448, "layer": "", "name": "StaticPlatform3", "persistentUuid": "76d6dafe-0906-4e1e-94ff-6e6fa035d2a8", "width": 896, "x": 10592, "y": 984, "zOrder": 154, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "f386f7a1-de7f-44f3-bd28-021c902463ec", "width": 256, "x": 10208, "y": 1176, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "fa091f43-1310-4ee1-b334-5a047d1cbbe0", "width": 256, "x": 10208, "y": 1176, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "add0b5bc-9d58-4d86-a3bb-745622847e97", "width": 224, "x": 18624, "y": 1048, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "184bd3ff-8b23-489f-a81e-b640f8b0854f", "width": 224, "x": 18368, "y": 920, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "8ffcaca5-c8f4-4ab5-8dcf-b0ea3a75d2e1", "width": 224, "x": 18880, "y": 920, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "94e79a25-0b3a-4728-a4b6-9a8d65d1a724", "width": 224, "x": 18272, "y": 1048, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "d0061aef-b334-4262-aba6-9b687ddad770", "width": 224, "x": 18336, "y": 1176, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "761ed959-893d-412b-8305-7b1383174eea", "width": 224, "x": 18464, "y": 1304, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "dd5b9858-0939-462e-9c7b-e5fec57a7a35", "width": 224, "x": 18624, "y": 1432, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "7117cf1d-b7f2-455e-9fd4-8f56bfccabc0", "width": 224, "x": 18976, "y": 1048, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "175fe6f9-9c2a-4ead-869a-11ef192355d1", "width": 224, "x": 18912, "y": 1176, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "d1f7d296-68b0-4c8d-9b98-629d3626ff57", "width": 224, "x": 18784, "y": 1304, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "2732326b-879e-47f1-a14f-212e2c2cec43", "width": 224, "x": 18528, "y": 952, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "3d96a7d2-e4fa-49ce-bbc9-5f23029d209b", "width": 224, "x": 18720, "y": 952, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "9444ddad-b491-4a43-b4d1-3dfe1392308a", "width": 224, "x": 18464, "y": 888, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "e3c58260-75e3-4831-abe5-47d90ea3854a", "width": 224, "x": 18784, "y": 888, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 160, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "StalagmiteDemon_Base", "persistentUuid": "605ec0cc-ac78-406a-93f6-f0dff6985a51", "width": 256, "x": 42416, "y": -218, "zOrder": 100, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 0.5 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "StalactiteDemon_Base", "persistentUuid": "7af61270-7d5f-4e7f-b34f-e578f11c4bcc", "width": 256, "x": 42464, "y": 64, "zOrder": 88, "numberProperties": [ { "name": "animation", "value": 0 } ], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 5.5 }, { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 2.75 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 123, "layer": "", "name": "FlyingDemon", "persistentUuid": "717ed16c-6e4c-45fc-a083-18473810247b", "width": 123, "x": 1440, "y": -524, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 123, "layer": "", "name": "FlyingDemon", "persistentUuid": "f988e65a-bb26-4ae8-9cad-37d3cf575d07", "width": 123, "x": 1440, "y": -463, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 123, "layer": "", "name": "FlyingDemon", "persistentUuid": "5f972e04-a657-4531-bf9e-65726a7cbae6", "width": 123, "x": 1440, "y": -399, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 123, "layer": "", "name": "FlyingDemon", "persistentUuid": "4a8fa10d-d523-4c93-a4fb-2824068ae4c2", "width": 123, "x": 1501, "y": -338, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 123, "layer": "", "name": "FlyingDemon", "persistentUuid": "52eebf64-847e-4c7f-ad6c-518ffb44b651", "width": 123, "x": 1563, "y": -355, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 123, "layer": "", "name": "FlyingDemon", "persistentUuid": "864ec3e9-2850-41d8-959f-7d335b560e04", "width": 123, "x": 1455, "y": -355, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 123, "layer": "", "name": "FlyingDemon", "persistentUuid": "c830ce23-1aca-4fca-804c-3cfedf1d54ab", "width": 123, "x": 1580, "y": -399, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 123, "layer": "", "name": "FlyingDemon", "persistentUuid": "cadbec03-c6cc-4cdd-94b9-156b44fe748c", "width": 123, "x": 1580, "y": -463, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 123, "layer": "", "name": "FlyingDemon", "persistentUuid": "85afea78-63b6-495f-aeaa-8ff24aaf46a3", "width": 123, "x": 1580, "y": -524, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 123, "layer": "", "name": "FlyingDemon", "persistentUuid": "eb14caa6-ae46-48b4-8ff6-495ef75e23ec", "width": 123, "x": 1688, "y": -463, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 123, "layer": "", "name": "FlyingDemon", "persistentUuid": "50ecbe55-e5a8-4ef8-8c83-07007364e1cc", "width": 123, "x": 1717, "y": -399, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 123, "layer": "", "name": "FlyingDemon", "persistentUuid": "77d89ca1-7c14-4066-b181-fb38dc3ee7c3", "width": 123, "x": 1749, "y": -355, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 123, "layer": "", "name": "FlyingDemon", "persistentUuid": "126b3998-fa96-4fa1-b974-2713c9d6e1be", "width": 123, "x": 1779, "y": -399, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 123, "layer": "", "name": "FlyingDemon", "persistentUuid": "d7fd251a-330f-4770-86cd-b1c8d5ae5114", "width": 123, "x": 1811, "y": -431, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 123, "layer": "", "name": "FlyingDemon", "persistentUuid": "24cf757b-f43b-492b-9d5f-12d8951b72d1", "width": 123, "x": 1840, "y": -399, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 123, "layer": "", "name": "FlyingDemon", "persistentUuid": "8ac3fbe7-02f6-4c1e-ba9c-4b31d526ae8b", "width": 123, "x": 1872, "y": -355, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 123, "layer": "", "name": "FlyingDemon", "persistentUuid": "f23444d6-6f9c-4f0b-96ec-2df1de2ad8b3", "width": 123, "x": 1904, "y": -399, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 123, "layer": "", "name": "FlyingDemon", "persistentUuid": "a8ecfab1-7995-426c-a4cc-22c96acd05be", "width": 123, "x": 1933, "y": -463, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 123, "layer": "", "name": "FlyingDemon", "persistentUuid": "54ca0563-4074-42bd-8dcb-d37f5f235d6d", "width": 123, "x": 2041, "y": -524, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 123, "layer": "", "name": "FlyingDemon", "persistentUuid": "05bd67ee-6103-4f73-ba00-db6c52547ee6", "width": 123, "x": 2041, "y": -463, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 123, "layer": "", "name": "FlyingDemon", "persistentUuid": "7eda99e9-659f-422a-81de-87a99ac3b255", "width": 123, "x": 2041, "y": -399, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 123, "layer": "", "name": "FlyingDemon", "persistentUuid": "2d07dcbb-8399-4f92-beea-2ac1e2897899", "width": 123, "x": 2120, "y": -338, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 123, "layer": "", "name": "FlyingDemon", "persistentUuid": "40ddb0e0-3a97-48bc-8bbd-f10467e27819", "width": 123, "x": 2164, "y": -355, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 123, "layer": "", "name": "FlyingDemon", "persistentUuid": "5810291f-80ab-4c45-8a69-2ff9a2240db4", "width": 123, "x": 2056, "y": -355, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 123, "layer": "", "name": "FlyingDemon", "persistentUuid": "87e57a2a-b7fd-46f1-b4fa-34d0d41bb04b", "width": 123, "x": 2181, "y": -399, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 123, "layer": "", "name": "FlyingDemon", "persistentUuid": "3bc562a5-bf7c-4e13-9aa6-320e48c3a95d", "width": 123, "x": 2181, "y": -463, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 123, "layer": "", "name": "FlyingDemon", "persistentUuid": "954f0750-7355-4a3a-8a33-0b2f381905ab", "width": 123, "x": 2181, "y": -524, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "3e986255-eff4-43af-a669-371efcf9f611", "width": 448, "x": 22144, "y": 1024, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "aa39c35c-79f9-49f1-884e-2cb8fd871421", "width": 448, "x": 22592, "y": 1024, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "779f971b-ee8a-426c-b9c6-04a7c737d696", "width": 448, "x": 22144, "y": 608, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "5c0d6c19-9e8a-45dc-93f1-638619e70c52", "width": 448, "x": 22592, "y": 608, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "f15d87d5-ad7c-4490-b9c5-dfbeeb4f46bb", "width": 341, "x": 22432, "y": 768, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "2b58e44f-f144-437e-8b50-3eb1de97144b", "width": 341, "x": 22432, "y": 352, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "7a615f69-42d9-42f8-8843-f20665a7ab31", "width": 448, "x": 23040, "y": 608, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "1a1ca9dd-d022-4edf-a7bf-d2d47612d416", "width": 448, "x": 23040, "y": 1024, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "defff85b-3842-4516-9cc0-763b3cf13708", "width": 448, "x": 23488, "y": 608, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "729bfb20-b1ae-4c8e-b9ad-77782ed905a8", "width": 448, "x": 24064, "y": 608, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "0c50d508-c020-48e5-86d1-cced1162f80b", "width": 448, "x": 23488, "y": 1024, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "bc503635-09c1-4487-a351-3047eb74c017", "width": 448, "x": 23936, "y": 1024, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "b9cb7560-0826-423a-9635-dabc287e5d0d", "width": 448, "x": 24384, "y": 1024, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "9318a10f-c0a7-4c2a-af17-2755ada52769", "width": 448, "x": 24384, "y": 192, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "8fb01c11-2960-422a-bd87-86444aeb7929", "width": 448, "x": 24512, "y": 608, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "f94a0b66-0d91-4283-902d-6c300e7c1a96", "width": 448, "x": 24832, "y": 1024, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "MiteDemon_Base", "persistentUuid": "d23cfbfc-c6e3-49fb-bbf2-58d912cd7f98", "width": 256, "x": 24640, "y": 288, "zOrder": 155, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 5.5 }, { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": true }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 3.5 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "c010f2fc-c295-4c2d-a1ff-0a7237be73f0", "width": 448, "x": 25728, "y": 1024, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "714c0a64-b245-4b09-a3a8-12be5efaab47", "width": 448, "x": 25408, "y": 608, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 529, "layer": "", "name": "FlippingPlatform", "persistentUuid": "09c536df-0008-48fe-899d-6774d31f8746", "width": 1058, "x": 25760, "y": 552, "zOrder": 15, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "cdae75b1-9d58-4051-b196-9d7018effa66", "width": 448, "x": 26176, "y": 1024, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "be656fde-c820-4161-89f7-1451cfa8309c", "width": 448, "x": 27520, "y": 1024, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "7dc3d7a9-8b20-4d6c-99d5-527a589e29cf", "width": 448, "x": 26624, "y": 1024, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "a5b4774b-ffdc-4f3c-9f43-a81f80dd6c6c", "width": 448, "x": 27552, "y": 608, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "a613bf28-5a34-457a-bdb0-5f9c5d4e542c", "width": 448, "x": 27104, "y": 608, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "MiteDemon_Base", "persistentUuid": "381d0117-f808-4c69-a18e-d1a8c49dea8b", "width": 256, "x": 28512, "y": 832, "zOrder": 155, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0.9 }, { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 6.5 }, { "folded": true, "name": "MiteMaxSpeed", "type": "number", "value": 600 }, { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": true }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 1.5 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "3fda4a04-bfd6-40c4-964e-922bb06e58ea", "width": 448, "x": 25280, "y": 1024, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "8959cd76-0111-42cf-b109-1b0eba5e6382", "width": 448, "x": 24960, "y": 608, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "911ee21a-6502-49dd-8c03-06755fb97562", "width": 448, "x": 27291, "y": -32, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "MiteDemon_Base", "persistentUuid": "4908cbef-f246-4055-919e-d01cbadc9767", "width": 256, "x": 27387, "y": 64, "zOrder": 155, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 9 }, { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": true }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 1.5 } ] }, { "angle": -90, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "ShockwaveDemon_Base", "persistentUuid": "727f6cf6-133d-4f21-8e06-9544120fa128", "width": 192, "x": 27281, "y": 64, "zOrder": 156, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "name": "FireOffsetTime", "type": "number", "value": 4 }, { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 2 }, { "folded": true, "name": "ShockwavePower", "type": "number", "value": 1500 }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 16 }, { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": true }, { "folded": true, "name": "FixedAngle", "type": "boolean", "value": true } ] }, { "angle": 90, "customSize": true, "depth": 1, "height": 60, "layer": "", "name": "StaticPlatform1", "persistentUuid": "4d078e3d-fd34-4ece-9d0c-e71d213dc9f6", "width": 291, "x": 27628, "y": 84, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "42c00175-bab5-4260-bc0f-c5c5679ac69b", "width": 448, "x": 27296, "y": 288, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -70, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "ShockwaveDemon_Base", "persistentUuid": "14450a47-259c-4b2f-8354-5ad606a9985b", "width": 192, "x": 27286, "y": 17, "zOrder": 156, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "name": "FireOffsetTime", "type": "number", "value": 8 }, { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 2 }, { "folded": true, "name": "ShockwavePower", "type": "number", "value": 1250 }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 16 }, { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": true }, { "folded": true, "name": "FixedAngle", "type": "boolean", "value": true } ] }, { "angle": 90, "customSize": true, "depth": 1, "height": 60, "layer": "", "name": "StaticPlatform1", "persistentUuid": "39ff9525-f3d2-4de0-908e-0edc46712c1a", "width": 291, "x": 27112, "y": 84, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "e2f40c48-b2bf-4f93-939a-6ef883dcbbd9", "width": 448, "x": 28000, "y": 608, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "50962561-e394-4030-ab0a-c48f005cf80d", "width": 448, "x": 28576, "y": 608, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "7dc269ef-a7f8-4170-b1a2-5c8d30a80f16", "width": 448, "x": 29024, "y": 608, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "fdbbbe71-fa9d-4439-9bb5-e8bab1cb9ad5", "width": 448, "x": 30656, "y": 608, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "d3921ba8-9dfe-4dd8-b216-7491a5da9c11", "width": 448, "x": 30208, "y": 608, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "181961ab-e6ac-4ba1-a1d2-4266e47305fe", "width": 448, "x": 29760, "y": 608, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "e0f5b0f4-142c-47c6-89f5-77e1a1144ab2", "width": 448, "x": 28416, "y": 1024, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "2b7673bc-578b-4c3d-86c1-703ad35c6398", "width": 448, "x": 27968, "y": 1024, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "b5aceeed-861c-4c3b-b055-647af46ec705", "width": 448, "x": 29312, "y": 1024, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "4675de5f-904e-4dea-be07-fae91957af0d", "width": 448, "x": 28864, "y": 1024, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "1a9fe922-23a8-4155-a226-58e343c93184", "width": 448, "x": 31104, "y": 1024, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "e4886847-5d22-4b36-b7df-cc84f3bf7382", "width": 448, "x": 30656, "y": 1024, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "f7e83488-2f1f-44e0-b8ca-10891c1f2129", "width": 448, "x": 29760, "y": 1024, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "d91640b9-9e2f-4939-992d-4eb09d569259", "width": 448, "x": 30208, "y": 1024, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -45, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "b3789834-c94f-4643-af17-ee57d3293784", "width": 448, "x": 31712, "y": 432, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -45, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "368b62a6-0c49-45ff-bba6-f53d1b5bf2d8", "width": 448, "x": 32256, "y": -80, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "862f26ca-263c-4e30-a875-ae6b7937f4cb", "width": 448, "x": 31104, "y": 608, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -45, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "dc927224-0f03-40c8-931f-2837bfdad1a1", "width": 448, "x": 31904, "y": 848, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -90, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "ShockwaveDemon_Base", "persistentUuid": "e572ca36-aad7-4d60-9ebe-5c9c55de746e", "width": 192, "x": 27280, "y": 96, "zOrder": 15, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 2 }, { "folded": true, "name": "ShockwavePower", "type": "number", "value": 1900 }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 16 }, { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": true }, { "folded": true, "name": "FixedAngle", "type": "boolean", "value": true } ] }, { "angle": -60, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "ShockwaveDemon_Base", "persistentUuid": "2b1fe8a7-6e00-40f9-a046-75b4a4ea10eb", "width": 192, "x": 27294, "y": 35, "zOrder": 15, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "name": "FireOffsetTime", "type": "number", "value": 12 }, { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 2 }, { "folded": true, "name": "ShockwavePower", "type": "number", "value": 1250 }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 16 }, { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": true }, { "folded": true, "name": "FixedAngle", "type": "boolean", "value": true } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "6593c9a7-2c55-442b-a165-518d68697b4a", "width": 341, "x": 30947, "y": 352, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "0ca265a6-6d2d-43e9-b2fa-6226a0353c51", "width": 341, "x": 30936, "y": 768, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -45, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "7b5adb7a-8859-4b4e-a6d1-bbb97b41786d", "width": 448, "x": 32224, "y": 528, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "a17585bd-08b0-4552-bcc1-f5d110a103e0", "width": 448, "x": 23936, "y": 192, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "de797909-0eea-465d-b64b-6eb272fe8344", "width": 448, "x": 23488, "y": 192, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "303a002a-34cd-4e4c-8467-4a4f78e44bfa", "width": 448, "x": 23040, "y": 192, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "8618dbbb-7e5c-4996-9ddc-285e690192e1", "width": 448, "x": 22592, "y": 192, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "40f5404c-0210-4861-831c-15fa88bc16a1", "width": 448, "x": 22144, "y": 192, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "073741b3-9abf-4164-92f9-3a896089635a", "width": 448, "x": 24832, "y": 192, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "250a225a-f420-4380-a926-6b92300c999f", "width": 448, "x": 26176, "y": 192, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "cbe1b12c-e916-4fb4-875f-392ed19cb84e", "width": 448, "x": 25728, "y": 192, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "5b33fe94-7a3e-4a31-8cef-9b5c421d1d8e", "width": 448, "x": 25280, "y": 192, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "d9ec3bff-417d-49cf-a6d8-a6e9671fbd68", "width": 448, "x": 27968, "y": 192, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "a3d5e403-5694-42c6-b870-8ef517f3205d", "width": 448, "x": 28416, "y": 192, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "f6409571-f2b4-4e56-8fc5-908082c71504", "width": 448, "x": 29312, "y": 192, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "e39b8dba-ed34-410b-9cbb-23f0657eb7e2", "width": 448, "x": 28864, "y": 192, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "8f54812f-8913-4ee4-8d3b-9119a3c1a0d4", "width": 448, "x": 30208, "y": 192, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "87c55148-68b8-4b80-a67c-86d065f0d0a1", "width": 448, "x": 29760, "y": 192, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "fde67196-179a-42a3-af07-cac609c09103", "width": 448, "x": 31104, "y": 192, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "70c85a5e-ca6c-4de8-9daf-ca006215de33", "width": 448, "x": 30656, "y": 192, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -45, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "52c24bae-5f13-4bca-b1cb-25ecf43e95e3", "width": 448, "x": 31520, "y": 16, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "ShockwaveDemon_Base", "persistentUuid": "decd3c1c-ca28-4347-8fe1-908ceb8f9133", "width": 192, "x": 29520, "y": 968, "zOrder": 156, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 1.5 }, { "folded": true, "name": "ShockwavePower", "type": "number", "value": 750 }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 1.5 }, { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": true }, { "folded": true, "name": "FixedAngle", "type": "boolean", "value": true } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "03ab49d1-216a-46fe-bf76-bb9899a84fe8", "width": 448, "x": 26624, "y": 192, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "984ce3f1-b5fa-46c3-af31-6ee32792bd10", "width": 448, "x": 26656, "y": 608, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "3a2e1902-3315-4c08-b48d-f417f62453d3", "width": 448, "x": 27072, "y": 1024, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "d5cd24bc-91ef-4827-bc0e-57d3f5ecd28b", "width": 448, "x": 21032, "y": 827, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "2eb7444a-1321-4bcd-a211-d8727fcf8b9f", "width": 448, "x": 20584, "y": 827, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "58dfd4eb-4496-40da-aedc-1925bdbde9d8", "width": 448, "x": 20136, "y": 827, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -45, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "ad872f24-1da1-477e-a3c6-2159fa965605", "width": 448, "x": 31840, "y": -304, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -45, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "fb10c2f0-9b2a-42d1-bb1c-cbfab6b3518e", "width": 448, "x": 32160, "y": -624, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -20, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "ShockwaveDemon_Base", "persistentUuid": "c285dac7-827e-481f-8257-0ba10192b6cb", "width": 192, "x": 31419, "y": 155, "zOrder": 156, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "name": "FireOffsetTime", "type": "number", "value": 1 }, { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 1.5 }, { "folded": true, "name": "ShockwavePower", "type": "number", "value": 500 }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 4 }, { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": true }, { "folded": true, "name": "FixedAngle", "type": "boolean", "value": true } ] }, { "angle": -45, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "e90cdefe-aa71-4ade-9d0e-e62d0c883c09", "width": 448, "x": 32480, "y": -944, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -45, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "a6d20118-40d4-4eae-b1fe-32e96235d001", "width": 448, "x": 32832, "y": -48, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -45, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "78a64562-8ccb-4151-a3f8-0ff1236a1f2a", "width": 448, "x": 32576, "y": -400, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -45, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "2d15094a-cd4f-428f-b3b6-67527d9853dc", "width": 448, "x": 32896, "y": -720, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Base", "persistentUuid": "ce283183-dc08-416d-8547-591639c12d7e", "width": 256, "x": 32608, "y": 160, "zOrder": 157, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Eye", "persistentUuid": "72a128a9-0dc2-4273-9402-890f1b2a339a", "width": 256, "x": 32608, "y": 160, "zOrder": 158, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": true } ] }, { "angle": -45, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "66dbbd2f-3690-4e0d-9737-747f4b421208", "width": 448, "x": 33472, "y": -688, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -45, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "c27850cc-a59d-45db-893a-048802915cbd", "width": 448, "x": 33472, "y": -1296, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -45, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "0b65baf0-ca1f-4c65-8267-f715029ae76a", "width": 448, "x": 33792, "y": -1008, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -45, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "6f1f6a55-f5bc-41dd-a48a-7194bdd95c2d", "width": 448, "x": 32800, "y": -1264, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -45, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "664d77a4-12c0-4d2c-8c96-dd79fff212f3", "width": 448, "x": 33120, "y": -1584, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -55, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "c3a6faa7-54e1-4ba4-b50e-62e32b6c5d19", "width": 448, "x": 33448, "y": -1955, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -55, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "4f74fbcf-a6fa-4f65-bcfb-17a75aa2231c", "width": 448, "x": 34264, "y": -1683, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -55, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "6a111452-9dc8-4b95-bc51-b9ad4870e905", "width": 448, "x": 33992, "y": -2019, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -55, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "39a8db3f-6661-4c3c-9c01-779c2f4d5add", "width": 448, "x": 33704, "y": -2339, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -55, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "c69fd495-c17e-4920-af8e-209ba0b9f6ae", "width": 448, "x": 34248, "y": -2403, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -55, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "3ea13fb6-f037-4d8e-a966-fefee431832f", "width": 448, "x": 34520, "y": -2067, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -55, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "44c8a726-b0b9-472e-9874-fb727ef43897", "width": 448, "x": 33960, "y": -2723, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -55, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "f5145d5d-7c67-429e-810b-2d685d9826f5", "width": 448, "x": 34776, "y": -2451, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -55, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "ee6a91b7-b821-4a62-b4ff-b827c3c7bd18", "width": 448, "x": 34504, "y": -2787, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -55, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "68dc30b6-adf4-4bb1-aef2-9e24c8ff88c6", "width": 448, "x": 34216, "y": -3107, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "359d7254-933e-4a4f-bbd6-7c135100ba73", "width": 448, "x": 35168, "y": -2656, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "e13daef0-72be-4ef6-ae4e-168904ad0dee", "width": 448, "x": 35168, "y": -3360, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -55, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "66e31e33-2f19-4f4b-bcf4-0af0c758d206", "width": 448, "x": 34760, "y": -3171, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -55, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "fb81ccb6-6e2f-47d6-a89e-cc9ad963f57c", "width": 448, "x": 34472, "y": -3485, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -55, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "2da2209a-c27e-4aa0-bd22-f168ddf2ef57", "width": 448, "x": 34728, "y": -3875, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "e842ecc9-8bd7-4260-9cf6-d47164a909cb", "width": 448, "x": 35168, "y": -4096, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "ebd434e4-1991-4fe4-83c8-971fb3ae7f90", "width": 341, "x": 35232, "y": -3616, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "ca3196ff-a0e7-4ab6-a8a2-7924cdf48030", "width": 341, "x": 35232, "y": -2912, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "7f63fb9f-e146-4d32-b5ed-d040e19b52f8", "width": 448, "x": 35616, "y": -4096, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 288, "layer": "", "name": "FlippingPlatform", "persistentUuid": "812e218a-1613-4a5e-af64-15d47eb9052b", "width": 576, "x": 37072, "y": -3360, "zOrder": 161, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 288, "layer": "", "name": "FlippingPlatform", "persistentUuid": "c5865361-cb45-4613-bedf-51aef61107e1", "width": 576, "x": 37072, "y": -2656, "zOrder": 161, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_Base", "persistentUuid": "ff12c5e4-7790-455c-ad83-38f8d4234e4f", "width": 192, "x": 37664, "y": -4000, "zOrder": 162, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 5 } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "32caad94-5132-44c1-86e0-e0c0e82b798f", "width": 80, "x": 37720, "y": -3808, "zOrder": 163, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 5 } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "a9a19e43-e04b-4342-8150-16698e4a613b", "width": 80, "x": 37720, "y": -3680, "zOrder": 163, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 5 } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "73a52472-c2c7-4256-bcb1-aadc98901f28", "width": 80, "x": 37720, "y": -3552, "zOrder": 163, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 5 } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "b500c0ea-c929-44e4-b337-68b4bbe3e9b5", "width": 80, "x": 37720, "y": -2848, "zOrder": 163, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 5 } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "6db1de6b-c7dc-4e31-a6c9-450d01b675e5", "width": 80, "x": 37720, "y": -3104, "zOrder": 163, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 5 } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "5ef7c699-89d4-422a-91ff-998d61d5733a", "width": 80, "x": 37720, "y": -2976, "zOrder": 163, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 5 } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "f584c190-ba72-4f14-9e33-43143552dcb4", "width": 80, "x": 37720, "y": -2720, "zOrder": 163, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 5 } ] }, { "angle": -55, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "ShockwaveDemon_Base", "persistentUuid": "3bfa6be1-ff72-4614-a82c-c50e9d7772d1", "width": 192, "x": 34501, "y": -2441, "zOrder": 156, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "ShockwavePower", "type": "number", "value": 1250 }, { "name": "FireOffsetTime", "type": "number", "value": 4.5 }, { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 1 }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 9 } ] }, { "angle": 125, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "ShockwaveDemon_Base", "persistentUuid": "ff550ec5-6da7-4b48-a47e-9ee88efe4b7c", "width": 192, "x": 34338, "y": -2542, "zOrder": 156, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "ShockwavePower", "type": "number", "value": 1250 }, { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 1 }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 9 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "7ac516cd-8be0-4775-8d6f-7435869493e1", "width": 448, "x": 36064, "y": -4096, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "0779b2c4-a9eb-4f5a-b344-91f6c38a9ea5", "width": 448, "x": 36928, "y": -512, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "399983ac-f5b0-455d-9b53-c020507284c4", "width": 448, "x": 36160, "y": -531, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "1e3b60bb-5832-429a-93d7-89b1b8487cdf", "width": 448, "x": 35712, "y": -531, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "b29e92ff-f462-4085-93ee-4cc0ddf6875e", "width": 448, "x": 35712, "y": -147, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -55, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "d00e5fb1-0ff9-4c70-ab2f-480a2e9787d2", "width": 448, "x": 36550, "y": -349, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "97d37a0f-2785-41d5-81a4-517d1a9ca0eb", "width": 448, "x": 36160, "y": -147, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "200a963e-4a92-49e9-8d0a-b8aa672a7253", "width": 480, "x": 35424, "y": -339, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "MiteDemon_Base", "persistentUuid": "5cb84dc4-f90a-4d2d-a6cd-ed841b07639a", "width": 256, "x": 35808, "y": -339, "zOrder": 155, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0.75 }, { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 3 }, { "folded": true, "name": "MiteMaxSpeed", "type": "number", "value": 600 }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 1.5 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "7d20bf97-a99a-4fae-8a4e-afc92f7cb6b9", "width": 448, "x": 36512, "y": -4096, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "3b84c94a-302d-47f5-8972-0ef9ffd9e505", "width": 448, "x": 36960, "y": -4096, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "ffc4f0bf-79be-4847-9391-7f70ca91c430", "width": 448, "x": 37408, "y": -4096, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "9f148af9-d62c-490d-ae66-e1c5e4562e69", "width": 448, "x": 35616, "y": -3360, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "3ed073a5-aaea-4306-bab9-dcb64ad3c899", "width": 448, "x": 36512, "y": -3360, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "9423f9aa-62a1-4c0b-bd36-5dccebc5a5d0", "width": 448, "x": 36064, "y": -3360, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "12f0e8cb-f72a-490d-9b73-0cc2289ad2e6", "width": 448, "x": 36064, "y": -2656, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "7da1f724-7ae3-4800-976d-35d668a477d0", "width": 448, "x": 35616, "y": -2656, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "413704df-d10c-4549-8863-c761afe1aba3", "width": 448, "x": 36512, "y": -2656, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "HorizontalDemon", "persistentUuid": "0ad5f46b-a3ca-4ebb-b88d-8a7605e8c1bd", "width": 256, "x": 32480, "y": -576, "zOrder": 91, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Base", "persistentUuid": "32fcc8ea-3190-4ce1-b27a-b47e1fe0f278", "width": 256, "x": 37472, "y": -2976, "zOrder": 157, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Eye", "persistentUuid": "40dbbbc4-fcab-4b44-b625-c6eedf9692d3", "width": 256, "x": 37472, "y": -2976, "zOrder": 158, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 2 }, { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 3 }, { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": true }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 6 } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Base", "persistentUuid": "7d945f68-8ed8-4e57-9b2a-f244816268bf", "width": 256, "x": 37472, "y": -3680, "zOrder": 157, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Eye", "persistentUuid": "6e1b34bb-790d-40c5-9711-1df5a067e7fc", "width": 256, "x": 37472, "y": -3680, "zOrder": 158, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 2 }, { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": true }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 6 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "6cc11782-b266-4003-9738-ef3e407b0248", "width": 256, "x": 36992, "y": -2240, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 272, "layer": "", "name": "StaticPlatform2", "persistentUuid": "bfb1b726-ae30-4da5-bb18-1dd1d657b6c5", "width": 544, "x": 38432, "y": -2816, "zOrder": 164, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "StalagmiteDemon_Base", "persistentUuid": "6451a250-d742-4cc9-a0cb-198a097bc676", "width": 256, "x": 38560, "y": -2971, "zOrder": 165, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 3 } ] }, { "angle": 180, "customSize": true, "depth": 1, "height": 272, "layer": "", "name": "StaticPlatform2", "persistentUuid": "c9b97741-06a6-4c20-8ddf-714272ff2911", "width": 544, "x": 38688, "y": -3483, "zOrder": 164, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 272, "layer": "", "name": "StaticPlatform2", "persistentUuid": "a2932aa8-463b-4fd7-9d05-183b46ffaddf", "width": 544, "x": 38944, "y": -2816, "zOrder": 164, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "StalagmiteDemon_Base", "persistentUuid": "1c444d0a-5dac-4c07-ab5e-794e033429fd", "width": 256, "x": 39104, "y": -2971, "zOrder": 165, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 3 } ] }, { "angle": 180, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "MiteDemon_Base", "persistentUuid": "00091595-a1d3-4a9b-8f3c-66ec31ef534a", "width": 256, "x": 36224, "y": -320, "zOrder": 155, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 3 }, { "folded": true, "name": "MiteMaxSpeed", "type": "number", "value": 600 }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 1.5 } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "e2781a40-62b2-4576-83e9-b6be77ae4cd3", "width": 192, "x": 37664, "y": -2592, "zOrder": 166, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "ccfe5b2f-71ac-4e10-96d7-c28153105491", "width": 192, "x": 39136, "y": -2592, "zOrder": 166, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "fa7b5556-7e01-450e-aff9-98f4b91fd85e", "width": 512, "x": 38976, "y": -2752, "zOrder": 16, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "55ac3be4-da7d-43de-892a-c330f3c3f61b", "width": 512, "x": 37504, "y": -2752, "zOrder": 16, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "4eabed09-a1cb-451e-8ad3-b3b8c22f1325", "width": 80, "x": 37880, "y": -2560, "zOrder": 168, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "daaf37b4-e88a-462d-b770-51a0996bcded", "width": 80, "x": 38008, "y": -2560, "zOrder": 168, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "14d1892b-ee0a-4e2f-aed3-ae54dd10b6a3", "width": 80, "x": 38264, "y": -2560, "zOrder": 168, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "7e587757-7be0-4509-8668-e7d5e8b8739e", "width": 80, "x": 38136, "y": -2560, "zOrder": 168, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "7d9f9828-4a46-477d-bd00-972c6c9abecd", "width": 80, "x": 38520, "y": -2560, "zOrder": 168, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "f29ead00-9267-4325-bea3-8c3a6f102c80", "width": 80, "x": 38392, "y": -2560, "zOrder": 168, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "79d5ea6e-50e2-4f6f-a636-3a4d57ebbadc", "width": 80, "x": 38776, "y": -2560, "zOrder": 168, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "22e6d918-ed53-4daa-994b-99f6b7c352bd", "width": 80, "x": 38648, "y": -2560, "zOrder": 168, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "75bd5bc2-6d60-4ed8-983f-9d966231f1cd", "width": 80, "x": 39032, "y": -2560, "zOrder": 168, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "c8eccb7f-6d48-47d8-b04d-ee3ce745f1d7", "width": 80, "x": 38904, "y": -2560, "zOrder": 168, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "StalagmiteDemon_Base", "persistentUuid": "e76b8a84-b1f2-41ff-bfab-48d552f5b520", "width": 256, "x": 39552, "y": -2368, "zOrder": 165, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 6 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 272, "layer": "", "name": "StaticPlatform2", "persistentUuid": "4a36172a-5eb0-4325-be49-86892b50109a", "width": 544, "x": 39424, "y": -2208, "zOrder": 164, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_Base", "persistentUuid": "c664b354-d860-4598-9d6b-cda1515aebda", "width": 192, "x": 37664, "y": -3296, "zOrder": 162, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 5 } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "679a7bf8-5d91-4b5f-83f2-63f48374af57", "width": 80, "x": 37720, "y": -3424, "zOrder": 163, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 5 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FireDemon", "persistentUuid": "358b52fb-e90c-49a3-a779-1f9153ca4f27", "width": 256, "x": 38016, "y": -2912, "zOrder": 104, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 336, "layer": "", "name": "StaticPlatform3", "persistentUuid": "6f8180df-1356-4324-b008-c4b1ac454b88", "width": 672, "x": 40544, "y": -1408, "zOrder": 170, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 416, "layer": "", "name": "VerticalMovingPlatformDown", "persistentUuid": "7753a4d4-7690-48b5-bbe3-64edab3789e7", "width": 416, "x": 39488, "y": -2816, "zOrder": 171, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "HorizontalDemon", "persistentUuid": "97d71bc3-abc0-4b7d-9be8-762486d19c6c", "width": 256, "x": 39904, "y": -1984, "zOrder": 91, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "HorizontalDemon", "persistentUuid": "7025097c-6f09-4fad-8ab5-71a6e8ab91d0", "width": 256, "x": 40160, "y": -1664, "zOrder": 91, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 448, "layer": "", "name": "StaticPlatform3", "persistentUuid": "65a8883d-a9f5-486a-b3d4-c16230e3798f", "width": 896, "x": 46880, "y": 672, "zOrder": 72, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "3c58c0b1-bcde-4699-b8ad-2b5f99d04427", "width": 341, "x": 47147, "y": 432, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "StalactiteDemon_Base", "persistentUuid": "672d6b27-c653-4473-b67c-24bb37165726", "width": 256, "x": 38848, "y": -3264, "zOrder": 173, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 3 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 400, "layer": "", "name": "StaticPlatform2", "persistentUuid": "ab8815cb-4922-449b-b460-17836bedaf94", "width": 800, "x": 59520, "y": -352, "zOrder": 175, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "262d21c4-48b2-4d24-9f9b-2c198c6a4c7a", "width": 341, "x": 59723, "y": -592, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "dee1d981-d008-4835-9599-deb594c79af4", "width": 192, "x": 33312, "y": -1056, "zOrder": 176, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": false }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 3.5 } ] }, { "angle": 180, "customSize": true, "depth": 1, "height": 384, "layer": "", "name": "StaticPlatform3", "persistentUuid": "2aaadee1-93df-4479-a809-48e4ab1ccd88", "width": 768, "x": 61440, "y": -592, "zOrder": 170, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 384, "layer": "", "name": "StaticPlatform3", "persistentUuid": "069be412-ec23-48c2-99be-4c6d1afcb69c", "width": 768, "x": 61024, "y": -336, "zOrder": 170, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 384, "layer": "", "name": "StaticPlatform3", "persistentUuid": "35d5d944-b2e4-402e-943f-4cd05e47f39e", "width": 768, "x": 61728, "y": -336, "zOrder": 170, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 384, "layer": "", "name": "StaticPlatform3", "persistentUuid": "2cdf921b-7002-4a9c-a667-986915c9652c", "width": 768, "x": 60608, "y": -80, "zOrder": 17, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 384, "layer": "", "name": "StaticPlatform3", "persistentUuid": "0ae0b63f-164f-485f-be93-f84ada481601", "width": 768, "x": 61312, "y": -80, "zOrder": 170, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 384, "layer": "", "name": "StaticPlatform3", "persistentUuid": "f468f1e0-4258-4bb3-876a-65c9b39c9481", "width": 768, "x": 62016, "y": -80, "zOrder": 170, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 368, "layer": "", "name": "StaticPlatform3", "persistentUuid": "2b3cb1c1-5e0e-4f00-b282-4bd8f6d318ce", "width": 736, "x": 62656, "y": -560, "zOrder": 17, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 368, "layer": "", "name": "StaticPlatform3", "persistentUuid": "4b97ff8a-0536-49c8-95ab-85d3bd493187", "width": 736, "x": 63296, "y": -576, "zOrder": 170, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "StalagmiteDemon_Base", "persistentUuid": "bd146c6b-7b15-4ffb-b92f-062056889c8f", "width": 256, "x": 63424, "y": 65, "zOrder": 165, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 3 } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "StalactiteDemon_Base", "persistentUuid": "8c5445aa-f4f8-4e4e-90a4-a15ca9592d4a", "width": 256, "x": 62688, "y": -245, "zOrder": 174, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 1.5 } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "StalactiteDemon_Base", "persistentUuid": "ecead2f2-e7a6-4f8e-bad2-ae9ccb5d22fb", "width": 256, "x": 63424, "y": -261, "zOrder": 174, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 3 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 368, "layer": "", "name": "StaticPlatform3", "persistentUuid": "078eba74-ce57-4545-9b5e-7ab6f7627f42", "width": 736, "x": 63424, "y": 204, "zOrder": 170, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 368, "layer": "", "name": "StaticPlatform3", "persistentUuid": "23be7c06-4d7f-4f77-a6b2-2a20b5d10af6", "width": 736, "x": 62752, "y": 304, "zOrder": 170, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "StalactiteDemon_Base", "persistentUuid": "57f73112-5195-4a5c-ab2d-c00363a99cfc", "width": 256, "x": 63776, "y": -261, "zOrder": 174, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 3 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "14a190e9-4d38-46bf-9092-f935fd8bda88", "width": 256, "x": 64896, "y": 176, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 155, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "MiteDemon_Base", "persistentUuid": "a6e3a571-9af7-4c87-9cb8-4b2780c55556", "width": 256, "x": 61152, "y": -400, "zOrder": 155, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": true }, { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 6 }, { "folded": true, "name": "MiteMaxSpeed", "type": "number", "value": 300 }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 1.5 } ] }, { "angle": 135, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "StalagmiteDemon_Base", "persistentUuid": "205e190f-b106-4d67-b640-19e51a6ac51b", "width": 256, "x": 62560, "y": -464, "zOrder": 165, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 3 } ] }, { "angle": 160, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "StalagmiteDemon_Base", "persistentUuid": "c4fe17f4-f904-4954-bfb3-39a403ae70b5", "width": 256, "x": 62752, "y": -560, "zOrder": 165, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 3 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "169d4dfb-5c82-45c3-b869-af04d39bf0f7", "width": 256, "x": 60832, "y": -432, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "e92a0c6d-77a4-458b-be04-dbadc15312c6", "width": 171, "x": 48832, "y": -304, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "fb369b42-268e-48d0-be3d-b4328a03af84", "width": 171, "x": 48832, "y": 192, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 448, "layer": "", "name": "StaticPlatform3", "persistentUuid": "fd6a27c2-b954-4d04-81c0-a75ce0e76f21", "width": 896, "x": 48416, "y": 672, "zOrder": 72, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "MiteDemon_Base", "persistentUuid": "35396da1-ff03-41e1-8e91-d10fb3004222", "width": 256, "x": 49024, "y": 512, "zOrder": 155, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": true }, { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0.75 }, { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 5 }, { "folded": true, "name": "MiteMaxSpeed", "type": "number", "value": 550 }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 1.5 } ] }, { "angle": 0, "customSize": true, "depth": 4, "height": 64, "layer": "", "name": "BoundaryJumpThrough", "persistentUuid": "09495ca4-de3d-4372-902a-2ad7c06f2918", "width": 171, "x": 48832, "y": -800, "zOrder": 93, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "5434a82a-c5c8-4d34-bb35-6561b372d571", "width": 171, "x": 48832, "y": -800, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 4, "height": 64, "layer": "", "name": "BoundaryJumpThrough", "persistentUuid": "42b611c8-aabb-4ec5-901b-cb1c039364eb", "width": 171, "x": 49517, "y": -1536, "zOrder": 93, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "0999c5fa-a239-4af6-ae87-8dad022f1d72", "width": 171, "x": 49517, "y": -1536, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "5d1027df-c253-495a-a591-270bd3f96185", "width": 171, "x": 49517, "y": -1040, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 304, "layer": "", "name": "StaticPlatform3", "persistentUuid": "ca35b79f-ef6a-485d-81b6-4e8ea3c418f7", "width": 608, "x": 49280, "y": -1984, "zOrder": 177, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -50, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "ShockwaveDemon_Base", "persistentUuid": "4b4861f4-2c33-425f-b8ce-bff7aa711944", "width": 192, "x": 49245, "y": -797, "zOrder": 178, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "name": "FireOffsetTime", "type": "number", "value": 1 }, { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 1.8 }, { "folded": true, "name": "ShockwavePower", "type": "number", "value": 1000 }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 4 }, { "folded": true, "name": "FixedAngle", "type": "boolean", "value": true } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "0ca39d9b-4a5b-4aad-9afb-2096939a8eda", "width": 171, "x": 50752, "y": 432, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 4, "height": 64, "layer": "", "name": "BoundaryJumpThrough", "persistentUuid": "eef26780-c903-46db-9b25-b4633e43bb52", "width": 171, "x": 50752, "y": -64, "zOrder": 93, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "bf3a1e86-03a5-4eb8-8e97-26163439737e", "width": 171, "x": 50752, "y": -64, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform1", "persistentUuid": "8f15092d-ea82-47dc-a823-70ffd927e270", "width": 544, "x": 50976, "y": 224, "zOrder": 179, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform1", "persistentUuid": "673fbfb6-b938-4828-9bdd-f6c225c0dc01", "width": 544, "x": 51520, "y": 224, "zOrder": 179, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform1", "persistentUuid": "e4582c4e-dc66-4cb6-9867-6b0de123aefd", "width": 544, "x": 52608, "y": 224, "zOrder": 179, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform1", "persistentUuid": "7f600810-b1a1-4144-9e90-ee6db18db527", "width": 544, "x": 52064, "y": 224, "zOrder": 179, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform1", "persistentUuid": "cf761a47-f45a-423e-8998-efc4492d58ae", "width": 544, "x": 54240, "y": 224, "zOrder": 179, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform1", "persistentUuid": "1395cf6c-c9e9-4572-899b-e8ef99ef8c81", "width": 544, "x": 53696, "y": 224, "zOrder": 179, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform1", "persistentUuid": "a16d655f-8af0-4f15-be6f-9a19ff97b950", "width": 544, "x": 55328, "y": 224, "zOrder": 179, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform1", "persistentUuid": "a2a7ca6c-41c1-4a0d-9722-9da3dec7fa34", "width": 544, "x": 54784, "y": 224, "zOrder": 179, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "ShockwaveDemon_Base", "persistentUuid": "d6ba74b9-e995-4e8f-83c2-2617127f076f", "width": 192, "x": 51360, "y": 48, "zOrder": 178, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "ShockwavePower", "type": "number", "value": 750 }, { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 2.5 }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 3 }, { "folded": true, "name": "FixedAngle", "type": "boolean", "value": true } ] }, { "angle": 180, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "ShockwaveDemon_Base", "persistentUuid": "9457db15-8f7c-46ae-a75b-e4641b81f350", "width": 192, "x": 53664, "y": 48, "zOrder": 178, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "ShockwavePower", "type": "number", "value": 1000 }, { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 3.5 }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 3 }, { "folded": true, "name": "FixedAngle", "type": "boolean", "value": true } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform1", "persistentUuid": "11ebef98-bcc5-4d37-b74e-15d07ac2324d", "width": 544, "x": 52336, "y": -352, "zOrder": 179, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform1", "persistentUuid": "b44c2c0a-9e6b-4ce8-b353-e70e6df15014", "width": 544, "x": 55344, "y": -352, "zOrder": 179, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform1", "persistentUuid": "d59fa28f-c483-4496-a1bf-27edc10cd266", "width": 544, "x": 58048, "y": 224, "zOrder": 179, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform1", "persistentUuid": "1a94c502-19da-46d2-aa19-52d989b45bac", "width": 544, "x": 57504, "y": 224, "zOrder": 179, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform1", "persistentUuid": "86df0a26-53b9-4fe3-a347-0e3490092986", "width": 544, "x": 56960, "y": 224, "zOrder": 179, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform1", "persistentUuid": "a35896aa-8860-4fed-8988-680fe5d12568", "width": 544, "x": 56416, "y": 224, "zOrder": 179, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "7c3141d2-f524-49dc-938d-c8047b0e2f53", "width": 192, "x": 51008, "y": -32, "zOrder": 180, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "4ecc4345-de81-4bdf-a246-82ed3f614450", "width": 512, "x": 50848, "y": -192, "zOrder": 181, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "94a23cb4-8c81-40ab-95e5-110ddfac9438", "width": 192, "x": 58368, "y": -32, "zOrder": 180, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "c9c1c3eb-e860-4f8f-8da9-c29e34eb7abd", "width": 512, "x": 58208, "y": -192, "zOrder": 181, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "72338702-e65e-4682-a463-42e38cfb6fa8", "width": 80, "x": 51272, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "da13643b-a186-4748-937f-45e93713b755", "width": 80, "x": 51400, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "9c76467e-5f91-4dc9-ac13-df172d42f64c", "width": 80, "x": 51656, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "9608298a-aad9-4ad4-88a3-cbff0cb4eee3", "width": 80, "x": 51528, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "b7e2eec3-8557-474e-bf0a-8ef6def8e4a1", "width": 80, "x": 52168, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "2529667b-8128-4417-bc0d-2ee86ed480a2", "width": 80, "x": 52040, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "a0a3bf96-6bf8-4609-8573-fa2720ff4ec3", "width": 80, "x": 51784, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "ec60572f-c653-4864-ac6f-2f906c23b7c0", "width": 80, "x": 51912, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "fd2abd88-6c5b-4a21-9f3f-9df7c0b5dfed", "width": 80, "x": 53704, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "e77ec531-dce6-49c6-accc-cc0dddb2b193", "width": 80, "x": 53064, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "15bc364d-19a2-4b2f-80a7-06afeeff344c", "width": 80, "x": 52808, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "83a119b7-fa50-4ffd-9e72-7d1e5de6711d", "width": 80, "x": 52936, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "1e4c6e1f-3e55-4b26-9d63-dcc48a055129", "width": 80, "x": 52680, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "a079426d-dec4-4a97-948a-0567491b6445", "width": 80, "x": 52552, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "ec741562-3341-4d8a-a055-12345f113d31", "width": 80, "x": 52424, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "3eb04dcc-986e-46fe-85bb-5082f0a289db", "width": 80, "x": 52296, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "33992930-fbea-48bb-9092-ff17bde64b52", "width": 80, "x": 55752, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "065f42a4-fe87-4efd-a19f-9a28b62ff227", "width": 80, "x": 55624, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "99e8e928-e68a-445a-926b-a5b68a3df963", "width": 80, "x": 55368, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "249dbbb7-7b6b-4ec3-a05b-97176b62c1dc", "width": 80, "x": 55496, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "707c2fb2-a2ad-4a2e-9be0-4a5b55ebae31", "width": 80, "x": 55240, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "b83f2d06-b3a0-4ca2-8589-9c50af9dbd18", "width": 80, "x": 55112, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "6e230a2d-1056-493e-9e5f-80a39685a0d1", "width": 80, "x": 54984, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "c2ff7d97-bc96-4c62-8dc7-eb2c42ea7ee9", "width": 80, "x": 54856, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "27485af4-a9c6-4c56-8a36-ec273a48c22a", "width": 80, "x": 54600, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "f34efbbd-903c-4951-812b-31be15831a12", "width": 80, "x": 54728, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "3488d1d1-acc8-4826-8961-d421f568877e", "width": 80, "x": 54472, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "d0569dbf-21a7-4427-be9a-a1ef98eace30", "width": 80, "x": 54344, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "ef1370ee-5074-46fe-9e3e-a68b429e3b3b", "width": 80, "x": 54216, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "ef10db9d-645b-4891-8f83-de6d72ec35f3", "width": 80, "x": 54088, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "41536327-3e4d-4983-899e-0bb6425a972c", "width": 80, "x": 53960, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "e8ad1df9-5432-4491-9f5b-6fd8c616c8af", "width": 80, "x": 53832, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "34cb51a2-d03f-4aed-86fd-121d56b543e1", "width": 80, "x": 58184, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "b8706614-a0e6-4366-912e-4c083dec6a63", "width": 80, "x": 57928, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "2817f95f-72a3-4f23-bdac-f75022f38055", "width": 80, "x": 58056, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "157dda84-100f-4226-888c-6c5fc37562dd", "width": 80, "x": 57800, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "48189944-553a-4428-b8ec-18cac97937fc", "width": 80, "x": 57672, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "0ad7243e-0b59-4f36-af44-0a57876ca092", "width": 80, "x": 57544, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "a40bfd61-2488-460e-908f-1696dea19c40", "width": 80, "x": 57416, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "dcd69bea-c0be-449c-84fe-5c078fc31f49", "width": 80, "x": 57160, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "d5226952-68ad-4ee9-9f26-685607e1b1e5", "width": 80, "x": 57288, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "04f46110-3cd4-4fdd-b1dd-fc400b9348a4", "width": 80, "x": 57032, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "ee99755c-b2b6-40f1-8482-0240010c1944", "width": 80, "x": 56904, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "45e08b28-4aa4-4bae-928b-48b6e314a40e", "width": 80, "x": 56776, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "a4e6fc86-60e3-426a-a243-770bc82465bd", "width": 80, "x": 56648, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "daec8aeb-823f-4117-acc0-16eb6022667e", "width": 80, "x": 56520, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "21cedaa2-6bac-453e-a3f0-d36f9e59e588", "width": 80, "x": 56392, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "ShockwaveDemon_Base", "persistentUuid": "44fdb3dd-d2f9-47b0-ade3-961af820830e", "width": 192, "x": 56608, "y": 48, "zOrder": 178, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "ShockwavePower", "type": "number", "value": 1000 }, { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 5 }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 3 }, { "folded": true, "name": "FixedAngle", "type": "boolean", "value": true } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "StalactiteDemon_Base", "persistentUuid": "222f34c4-f8aa-44b8-bb3e-b510e2c15d1d", "width": 256, "x": 49472, "y": -1728, "zOrder": 184, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 4 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform1", "persistentUuid": "bf16954a-5177-4b65-b92e-b6462d003883", "width": 544, "x": 52880, "y": -352, "zOrder": 179, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform1", "persistentUuid": "ed6efdac-629a-438e-bc8e-d2120cb988d5", "width": 544, "x": 55888, "y": -352, "zOrder": 179, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform1", "persistentUuid": "d4b455a4-b741-41d4-bcaf-f92e3f23ab8f", "width": 544, "x": 55872, "y": 224, "zOrder": 179, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform1", "persistentUuid": "9a175f2f-e234-4258-925f-4e95b9131ccc", "width": 544, "x": 53152, "y": 224, "zOrder": 179, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "6bc4fb17-bb3c-4014-9974-8dfe27fd0c9f", "width": 80, "x": 53576, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "eeb59426-397d-467c-ad2b-2676d04b72d5", "width": 80, "x": 53320, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "b4610b7b-514d-40a1-bf9a-9d13fadb9ddb", "width": 80, "x": 53448, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "dd78c531-76c1-4710-908c-37efb84ff879", "width": 80, "x": 53192, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "26e70ed3-8350-4d84-b3c6-5c83b6a2bca8", "width": 80, "x": 56264, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "5b249f7f-5089-4b6f-a1d2-07ff4582b90d", "width": 80, "x": 56136, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "3206e50e-2778-403e-ad85-7b77b68d2dc9", "width": 80, "x": 55880, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "c26723d9-373a-4acf-9fbb-20123acf7c29", "width": 80, "x": 56008, "y": 0, "zOrder": 182, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "92471f02-8805-4502-b8b1-bdde23634cb9", "width": 341, "x": 52693, "y": -608, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanentSingle", "persistentUuid": "4a32c93c-9dad-4db6-9f34-d63767ace0b7", "width": 80, "x": 58312, "y": 0, "zOrder": 185, "numberProperties": [], "stringProperties": [], "initialVariables": [] } ], "objects": [ { "assetStoreId": "", "height": 1024, "name": "BackgroundPlants", "texture": "Assets\\Images\\Levels\\9\\Background\\Background.png", "type": "TiledSpriteObject::TiledSprite", "width": 2048, "variables": [], "effects": [ { "effectType": "TiltShift", "name": "Effect", "doubleParameters": { "blur": 30, "gradientBlur": 1000 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "OldFilm", "name": "Effect2", "doubleParameters": { "animationFrequency": 60, "noise": 0.1, "noiseSize": 1, "scratch": 0.5, "scratchDensity": 0.4, "scratchWidth": 1, "sepia": 0.1, "vignetting": 0.75, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [] } ], "objectsFolderStructure": { "folderName": "__ROOT", "children": [ { "objectName": "BackgroundPlants" } ] }, "events": [ { "type": "BuiltinCommonInstructions::Link", "include": { "includeConfig": 0 }, "target": "LevelEvents" }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Change Scene", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "LayerVisible" }, "parameters": [ "", "\"EndScreen\"" ] }, { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "PanelSpriteButton::PanelSpriteButton::IsClicked" }, "parameters": [ "UI_Sinage_RetryButton", "" ] }, { "type": { "value": "KeyReleased" }, "parameters": [ "", "Space" ] } ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Player", "Lives", ">", "0" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Mindscape\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Player", "Lives", "<=", "0" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Level9\"", "" ] } ] } ] } ], "parameters": [] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "AnimatableCapability::AnimatableBehavior::SetName" }, "parameters": [ "Memory", "Animation", "=", "\"Recursion\"" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Player", "LifeForce", "=", "9" ] } ] } ], "layers": [ { "ambientLightColorB": 8002120, "ambientLightColorG": 6031360, "ambientLightColorR": 7844472, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "Background", "renderingType": "2d", "visibility": true, "cameras": [], "effects": [] }, { "ambientLightColorB": 32, "ambientLightColorG": 0, "ambientLightColorR": 0, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "", "renderingType": "", "visibility": true, "cameras": [ { "defaultSize": true, "defaultViewport": true, "height": 0, "viewportBottom": 1, "viewportLeft": 0, "viewportRight": 1, "viewportTop": 0, "width": 0 } ], "effects": [ { "effectType": "Scene3D::HemisphereLight", "name": "3D Light", "doubleParameters": { "elevation": 45, "intensity": 1, "rotation": 0 }, "stringParameters": { "groundColor": "64;64;64", "skyColor": "255;255;255", "top": "Y-" }, "booleanParameters": {} }, { "effectType": "OldFilm", "name": "Effect", "doubleParameters": { "animationFrequency": 60, "noise": 0.15, "noiseSize": 1, "scratch": 0, "scratchDensity": 0.2, "scratchWidth": 1, "sepia": 0, "vignetting": 0.4, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": {} } ] }, { "ambientLightColorB": 9191608, "ambientLightColorG": 6031360, "ambientLightColorR": 8756632, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "UI", "renderingType": "2d", "visibility": true, "cameras": [], "effects": [] }, { "ambientLightColorB": -2147483616, "ambientLightColorG": 6031360, "ambientLightColorR": 11020320, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "EndScreen", "renderingType": "2d", "visibility": false, "cameras": [], "effects": [] } ], "behaviorsSharedData": [ { "name": "AdvancedProjectile", "type": "AdvancedProjectile::AdvancedProjectile" }, { "name": "Animation", "type": "AnimatableCapability::AnimatableBehavior" }, { "name": "Effect", "type": "EffectCapability::EffectBehavior" }, { "name": "EllipseMovement", "type": "EllipseMovement::EllipseMovement" }, { "name": "Flippable", "type": "FlippableCapability::FlippableBehavior" }, { "name": "InOnScreen", "type": "IsOnScreen::InOnScreen" }, { "name": "MonsterEnemy", "type": "Enemy::MonsterEnemy" }, { "name": "Opacity", "type": "OpacityCapability::OpacityBehavior" }, { "name": "Platform", "type": "PlatformBehavior::PlatformBehavior" }, { "name": "PlatformerCharacterAnimator", "type": "PlatformerCharacterAnimator::PlatformerCharacterAnimator" }, { "name": "PlatformerGamepadMapper", "type": "Gamepads::PlatformerGamepadMapper" }, { "name": "PlatformerMultitouchMapper", "type": "MultitouchJoystick::PlatformerMultitouchMapper" }, { "name": "PlatformerObject", "type": "PlatformBehavior::PlatformerObjectBehavior" }, { "name": "RectangleMovement", "type": "RectangleMovement::RectangleMovement" }, { "name": "Resizable", "type": "ResizableCapability::ResizableBehavior" }, { "name": "Scale", "type": "ScalableCapability::ScalableBehavior" }, { "name": "ShakeObject_PositionAngle", "type": "ShakeObject::ShakeObject_PositionAngle" }, { "name": "ShakeObject_PositionAngleScale", "type": "ShakeObject::ShakeObject_PositionAngleScale" }, { "name": "SmoothCamera", "type": "SmoothCamera::SmoothCamera" }, { "name": "Text", "type": "TextContainerCapability::TextContainerBehavior" }, { "name": "TimedBackAndForthMirroredMovement", "type": "TimedBackAndForthMovement::TimedBackAndForthMirroredMovement" }, { "name": "Tween", "type": "Tween::TweenBehavior" } ] }, { "b": 26, "disableInputWhenNotFocused": true, "mangledName": "Level8", "name": "Level8", "r": 11, "standardSortMethod": true, "stopSoundsOnStartup": true, "title": "", "v": 24, "uiSettings": { "grid": true, "gridType": "rectangular", "gridWidth": 32, "gridHeight": 32, "gridOffsetX": 0, "gridOffsetY": 0, "gridColor": 10401023, "gridAlpha": 0.3, "snap": true, "zoomFactor": 0.9150393103736286, "windowMask": false }, "objectsGroups": [ { "name": "MobileControls", "objects": [ { "name": "JumpButton" }, { "name": "Joystick" } ] }, { "name": "EndScreenObjects", "objects": [ { "name": "EndScreenBackground" }, { "name": "EndScreenHeader" }, { "name": "EndScreenSubHeader" }, { "name": "EndScreenBestText" }, { "name": "EndScreenChallengeText" }, { "name": "EndScreenRetryText" }, { "name": "RetryButton" } ] } ], "variables": [ { "name": "Score", "type": "number", "value": 0 } ], "instances": [ { "angle": 0, "customSize": true, "depth": 1, "height": 3392, "layer": "", "name": "LeftBoundary", "persistentUuid": "78dd0ffa-b22f-47a8-9b36-ef6a432b1d1e", "width": 128, "x": -128, "y": -928, "zOrder": 38, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 2272, "layer": "Background", "name": "BackgroundPlants", "persistentUuid": "03b6869d-198f-4807-b659-f2b863e21073", "width": 17950, "x": 0, "y": -320, "zOrder": -1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 3392, "layer": "", "name": "RightBoundary", "persistentUuid": "9562fd9d-6e93-4465-9013-efa2b833653b", "width": 128, "x": 45728, "y": -928, "zOrder": 58, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "TopBoundary", "persistentUuid": "4381c067-2682-4f00-9a24-ff28fa12b1d8", "width": 45984, "x": -128, "y": -928, "zOrder": 59, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "Player", "persistentUuid": "014db1f5-0846-4cba-821e-57e29d368c14", "width": 256, "x": 64, "y": 608, "zOrder": 63, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 3104, "layer": "Background", "name": "BackgroundPlants", "persistentUuid": "3f0ec037-2a70-4ea5-90eb-c1f8a7387a6c", "width": 45728, "x": 0, "y": -800, "zOrder": -1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "e08c1888-868a-438d-bf83-a9affe5815db", "width": 608, "x": 0, "y": 704, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 304, "layer": "", "name": "HorizontalMovingPlatformRight", "persistentUuid": "cd613744-2c22-4df5-8de6-2f7cf8ff20fd", "width": 608, "x": 992, "y": 672, "zOrder": 110, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 304, "layer": "", "name": "HorizontalMovingPlatformLeft", "persistentUuid": "bf70d694-ecf6-41ec-8d13-bdbd31c45117", "width": 608, "x": 1184, "y": 416, "zOrder": 111, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 304, "layer": "", "name": "HorizontalMovingPlatformLeft", "persistentUuid": "24915b67-ba33-4a66-bc6e-c6480440647c", "width": 608, "x": 1664, "y": -96, "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 304, "layer": "", "name": "HorizontalMovingPlatformRight", "persistentUuid": "422bc42f-23b5-424f-9f87-fe840c70aa55", "width": 608, "x": 1376, "y": 160, "zOrder": 110, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "HorizontalDemon", "persistentUuid": "4968717a-d6e7-412d-a348-1df626f31af0", "width": 256, "x": 864, "y": 96, "zOrder": 112, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "cf759b29-97ce-44ea-b461-3387f2a87f9f", "width": 80, "x": 1928, "y": 224, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 3 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 3 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "586077f3-b291-40ed-b8ec-fa99f48db11f", "width": 80, "x": 1928, "y": 352, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 3 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 3 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "ed6e580b-2179-4588-887e-5233731076ec", "width": 80, "x": 1928, "y": 608, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 3 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 3 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "00980ee0-7e45-46b1-be2c-e261e98fbc19", "width": 80, "x": 1928, "y": 480, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 3 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 3 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "8c7073dd-c385-4f89-8cb9-fd3fd6872207", "width": 80, "x": 1928, "y": 736, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 3 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 3 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "69695ba4-a747-4595-9c67-a4fa3e489f28", "width": 80, "x": 1928, "y": 96, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 3 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 3 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "f10a984f-7ce0-440c-8c3f-061cacc08fc1", "width": 80, "x": 1928, "y": -32, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "OnOffTime", "type": "number", "value": 3 }, { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 3 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "LaserDemon_Base", "persistentUuid": "ec42ba38-a990-42e0-909c-ebc33d89f934", "width": 192, "x": 1872, "y": -736, "zOrder": 75, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 3 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 3 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "LaserDemon_Base", "persistentUuid": "4e1a4979-d8aa-4793-a6c0-642c1d08afc5", "width": 192, "x": 1872, "y": 864, "zOrder": 75, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 3 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 3 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "e538cffc-d51a-403b-a963-cb04a633111e", "width": 80, "x": 1928, "y": -160, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 3 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 3 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "594e0c9c-162e-4f3c-a1e4-4cb925012a83", "width": 80, "x": 1928, "y": -288, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 3 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 3 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 320, "layer": "", "name": "VerticalMovingPlatformDown", "persistentUuid": "5d50262e-47bd-4f36-8c14-3f074ec50779", "width": 320, "x": 3488, "y": 448, "zOrder": 113, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 320, "layer": "", "name": "VerticalMovingPlatformUp", "persistentUuid": "f1b63700-3c16-45af-98d0-f2e47b73f0bc", "width": 320, "x": 3776, "y": 576, "zOrder": 114, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 320, "layer": "", "name": "VerticalMovingPlatformUp", "persistentUuid": "2567e96e-c87d-43ff-9f89-db41b83d8a1f", "width": 320, "x": 4352, "y": 416, "zOrder": 114, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 320, "layer": "", "name": "VerticalMovingPlatformDown", "persistentUuid": "38802ab5-b3f9-47f8-b0ff-b65d462378f8", "width": 320, "x": 4640, "y": 128, "zOrder": 113, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 320, "layer": "", "name": "VerticalMovingPlatformDown", "persistentUuid": "4289702f-8bf8-4a26-9716-04e89efd877e", "width": 320, "x": 4064, "y": 288, "zOrder": 113, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 320, "layer": "", "name": "VerticalMovingPlatformUp", "persistentUuid": "88166f0a-50f5-43ce-bff0-a16d14b95ffb", "width": 320, "x": 4928, "y": 288, "zOrder": 114, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "5b52d12f-2661-4474-8320-9cd56a221f77", "width": 80, "x": 1928, "y": -416, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 3 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 3 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 304, "layer": "", "name": "HorizontalMovingPlatformLeft", "persistentUuid": "9680f6ad-4f16-44c7-b70b-fa87afa352b6", "width": 608, "x": 1952, "y": 160, "zOrder": 11, "numberProperties": [ { "name": "animation", "value": 0 } ], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 304, "layer": "", "name": "HorizontalMovingPlatformRight", "persistentUuid": "95e18afc-d48e-405b-b9da-974b5cf559fc", "width": 608, "x": 2144, "y": 416, "zOrder": 110, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 304, "layer": "", "name": "HorizontalMovingPlatformLeft", "persistentUuid": "250722ef-42bf-47d2-8f90-27103c9e39ff", "width": 608, "x": 2336, "y": 672, "zOrder": 111, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 304, "layer": "", "name": "HorizontalMovingPlatformRight", "persistentUuid": "5bcd0397-c1c6-4fc8-8f90-1c454c4e7b93", "width": 608, "x": 1664, "y": -96, "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "7d7de3e9-f7ca-4208-acaa-b8efd38877b1", "width": 80, "x": 1928, "y": -544, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 3 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 3 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 320, "layer": "", "name": "VerticalMovingPlatformDown", "persistentUuid": "a97e3c2b-34dd-4883-a9da-e51b544f48b0", "width": 320, "x": 5216, "y": 0, "zOrder": 113, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 320, "layer": "", "name": "VerticalMovingPlatformUp", "persistentUuid": "9c88f151-83cf-41e7-ad63-05f96b8a2754", "width": 320, "x": 5504, "y": 160, "zOrder": 114, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "b5edf9cb-ac73-4307-bcd8-73b828a87eee", "width": 224, "x": 5280, "y": 192, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "1b2d55a9-ac4f-4a3c-9c18-2f38aace2a26", "width": 224, "x": 4704, "y": 352, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "f6f8fb99-8a2f-43ba-a380-dd20ad944692", "width": 224, "x": 4128, "y": 480, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "c3d36e62-a288-41f5-9113-41709f12c29b", "width": 576, "x": 6208, "y": -128, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "e4649d52-2992-4eb2-b6b1-94e737bcaac8", "width": 341, "x": 6315, "y": -384, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "1ac6831a-4b2b-4a5f-a686-4691ba34ac07", "width": 576, "x": 6784, "y": -32, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "02bcbfc6-9e67-4ebc-87e8-ae6e083e0b90", "width": 576, "x": 7360, "y": 64, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "90aeb841-d307-4d50-abe2-45482010b962", "width": 576, "x": 7696, "y": 400, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 384, "layer": "", "name": "StaticPlatform2", "persistentUuid": "2e573730-2ddc-4a43-9433-27105d33c634", "width": 768, "x": 9376, "y": 448, "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 208, "layer": "", "name": "StaticPlatform2", "persistentUuid": "68c5b938-8ef7-475c-bb23-a2a5c4d5f9c0", "width": 416, "x": 11040, "y": 480, "zOrder": 123, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "SpinningRotatingPlatformClockwise", "persistentUuid": "16bf0ba8-7170-4d24-9d97-93c0d9e54e39", "width": 512, "x": 13664, "y": 352, "zOrder": 127, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Eye", "persistentUuid": "4e480de3-e585-4042-ad92-ab684b650390", "width": 256, "x": 11904, "y": 448, "zOrder": 120, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "TurretDemon_Base", "persistentUuid": "896f44df-3493-4b05-9fb0-81aa18ec446b", "width": 256, "x": 11904, "y": 448, "zOrder": 119, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "fceacaf7-3c73-4f66-b997-a25c3af12197", "width": 512, "x": 14720, "y": 1664, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "HorizontalDemon", "persistentUuid": "6b6c2058-b1c0-46bd-8bfb-85dcf548d1df", "width": 256, "x": 15296, "y": 1376, "zOrder": 112, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 336, "layer": "", "name": "StaticPlatform3", "persistentUuid": "c398cec1-342e-4da2-a2bf-cad57e61195d", "width": 672, "x": 16128, "y": 1344, "zOrder": 128, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 320, "layer": "", "name": "StaticPlatform2", "persistentUuid": "bae0b2fb-aae8-4567-9c3e-b45ed9e8543c", "width": 640, "x": 12384, "y": 512, "zOrder": 123, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "6b48a844-cce8-4762-85b6-03cd3e9688bc", "width": 171, "x": 18944, "y": 645, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "99480649-4421-4ba4-a009-c376b756f1fe", "width": 171, "x": 18944, "y": 165, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 4, "height": 64, "layer": "", "name": "BoundaryJumpThrough", "persistentUuid": "78b98de9-4118-410e-b89f-f38b05de249b", "width": 176, "x": 18928, "y": 165, "zOrder": 93, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "c38498ae-2715-4a15-a3ce-4d02ede5f81c", "width": 341, "x": 12523, "y": 288, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "HorizontalDemon", "persistentUuid": "1ebb8ebd-f761-4d73-9066-af57dd16e216", "width": 256, "x": 16384, "y": 952, "zOrder": 112, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 336, "layer": "", "name": "StaticPlatform3", "persistentUuid": "10af8aa5-54f6-47e5-b88e-3654e9ca05be", "width": 672, "x": 17024, "y": 784, "zOrder": 128, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "0af2a1b1-e35e-4d73-a142-198ba0fcbd92", "width": 341, "x": 17163, "y": 544, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "9f1febad-332c-426c-9cdf-cc9be515aa44", "width": 160, "x": 40208, "y": 736, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Eye", "persistentUuid": "a67bc568-0599-4aab-ac5e-eb625494c21e", "width": 256, "x": 40192, "y": 448, "zOrder": 120, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 2.25 }, { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": true } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Base", "persistentUuid": "0a8a4de7-f6bf-4105-b373-262bdef9e364", "width": 256, "x": 40192, "y": 448, "zOrder": 13, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "33cc427c-3a32-4c84-a6a1-c7d0cc0e2c81", "width": 160, "x": 40400, "y": 736, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "d3f2d3ed-1e6c-4ea1-aa99-52bbae1192dd", "width": 160, "x": 40592, "y": 736, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "73af08ca-8318-422a-9aff-4df2a5ea8e76", "width": 160, "x": 40784, "y": 736, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "9a672692-9e64-4169-9cf7-2be77112b4a9", "width": 160, "x": 40976, "y": 736, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "LaserDemon_Base", "persistentUuid": "f687badc-6289-46e5-8db1-c8894931275e", "width": 192, "x": 40448, "y": 480, "zOrder": 75, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "LaserDemon_Base", "persistentUuid": "26810f5c-50c8-4124-aee0-5b35748e6a0b", "width": 192, "x": 40896, "y": 480, "zOrder": 75, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "b8d7eeff-0859-4965-9836-f7564b8eb3e0", "width": 80, "x": 40664, "y": 512, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "c5cb1ce1-9981-4a54-b5f5-85a38b500b21", "width": 80, "x": 40792, "y": 512, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 4, "height": 64, "layer": "", "name": "BoundaryJumpThrough", "persistentUuid": "f8f92ad1-c4a7-42a4-95ec-4b6a382b0a1f", "width": 1152, "x": 40192, "y": 736, "zOrder": 93, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "821a03e2-4f34-4e0e-87c8-37c592ae0830", "width": 160, "x": 41168, "y": 736, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "LaserDemon_Base", "persistentUuid": "2208f3f6-aa28-4892-8174-cfab69e04264", "width": 192, "x": 40000, "y": 480, "zOrder": 75, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "LaserDemon_Base", "persistentUuid": "43359aa2-f4de-41b8-9e75-9a760ce68c12", "width": 192, "x": 40000, "y": 160, "zOrder": 75, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "0f567f04-db00-4d6d-a372-cd82b26ad29c", "width": 80, "x": 40056, "y": 352, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "0e976a79-0d27-4ab9-9dc0-b3f1d4ff9d60", "width": 80, "x": 41400, "y": 352, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "LaserDemon_Base", "persistentUuid": "5cb61587-54f3-4e40-976e-2a638e3785dc", "width": 192, "x": 41344, "y": 160, "zOrder": 75, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "LaserDemon_Base", "persistentUuid": "27d43b18-1c63-4736-8733-ba46a477446f", "width": 192, "x": 41344, "y": 480, "zOrder": 75, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "1a12e478-24b0-42f6-8a11-58d3a309152b", "width": 80, "x": 40216, "y": 192, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "e24595ac-fc64-401d-a5e2-f67456d42b7f", "width": 80, "x": 40344, "y": 192, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "938ef38e-8861-4107-9e03-2b98e62b6e45", "width": 80, "x": 40472, "y": 192, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "1effdba4-be29-46c9-9f8c-dafaa3293393", "width": 80, "x": 40600, "y": 192, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "2208b37d-2ba1-46a5-aaab-b987b9737457", "width": 80, "x": 40984, "y": 192, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "f893aa52-ca8a-4aba-b573-217240e7b4e1", "width": 80, "x": 41112, "y": 192, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "3aac57e8-a073-4152-8afc-f104ab51b1a2", "width": 80, "x": 40856, "y": 192, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "d46f8714-41ff-4e83-be95-95da9a75e9be", "width": 80, "x": 40728, "y": 192, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "b5a028b4-00db-49ab-897f-8453c38bab3c", "width": 80, "x": 41240, "y": 192, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "d8da3a4c-4a62-425a-90db-e38eab1be860", "width": 160, "x": 41168, "y": 1102, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "5c15290f-0df2-4c7f-b9e8-dd9567062f81", "width": 160, "x": 40208, "y": 1102, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "a2ec326e-7ffb-4483-bc49-47558da6f88b", "width": 160, "x": 40400, "y": 1102, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "d007b096-94e2-405d-a88e-acb8729e0070", "width": 160, "x": 40592, "y": 1102, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "32e37575-1f44-487b-8656-ab8c86bf2e30", "width": 160, "x": 40784, "y": 1102, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "11894ac1-1f62-48c0-8ef3-478888ea8c17", "width": 160, "x": 40976, "y": 1102, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 64, "layer": "", "name": "StaticPlatform1", "persistentUuid": "11f6d74e-b319-4a19-ae58-627004a37f06", "width": 352, "x": 18848, "y": -104, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "StalactiteDemon_Base", "persistentUuid": "12ac6fb9-c10f-41f2-a682-86329ac437b1", "width": 256, "x": 18896, "y": -59, "zOrder": 133, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 5 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "828a4bd3-85fc-4db8-b394-a5f147ab5cde", "width": 224, "x": 19648, "y": 352, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "HorizontalMovingPlatformRight", "persistentUuid": "2424410c-797a-4df2-a476-696ee3b0ead0", "width": 448, "x": 20064, "y": 512, "zOrder": 134, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "658c7e67-3d05-41d8-8b47-cd33e37e2a19", "width": 160, "x": 42208, "y": 736, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "4cb264a1-e761-407e-9307-85c8542db634", "width": 160, "x": 42400, "y": 736, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "7ad87f5e-db23-4eef-a759-1cc9ce83d74c", "width": 160, "x": 42592, "y": 736, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "e4e9b9d1-1168-4556-9df0-87e7228e6f6f", "width": 160, "x": 42784, "y": 736, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "79f1f5cf-b36b-4485-a0e9-abb024dddff8", "width": 160, "x": 42976, "y": 736, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 4, "height": 64, "layer": "", "name": "BoundaryJumpThrough", "persistentUuid": "a3452091-faff-4c59-a068-64355bea3c63", "width": 1152, "x": 42208, "y": 736, "zOrder": 93, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "e7b1fcf0-0a4b-4b7b-88a2-2d5b7b2d8e9c", "width": 160, "x": 43168, "y": 736, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "04f1fa0e-06bd-4b60-96b0-97a8e76053ae", "width": 160, "x": 43168, "y": 1102, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "b04d6167-9809-4ba1-ab5e-29a211b66a7b", "width": 160, "x": 42208, "y": 1102, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "5332cb60-122a-4111-8553-237583c5fef6", "width": 160, "x": 42400, "y": 1102, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "288df93a-ca26-416d-adc6-f74ebe971b60", "width": 160, "x": 42592, "y": 1102, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "ee9fe803-4e70-40bd-9bca-5ea4baa23ce8", "width": 160, "x": 42784, "y": 1102, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "42a0b8ec-f872-4a60-9030-9be2b98bd504", "width": 160, "x": 42976, "y": 1102, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 64, "layer": "", "name": "StaticPlatform1", "persistentUuid": "84361642-a000-4f1f-9b24-d514fa8b3b40", "width": 320, "x": 42152, "y": 1738, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "StalagmiteDemon_Base", "persistentUuid": "5d1c44a0-c530-4ba6-9c10-ae9674644aa5", "width": 256, "x": 43120, "y": 1568, "zOrder": 120, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "StalagmiteDemon_Base", "persistentUuid": "38925c1c-6dfa-4d3c-83d8-6c278fdac685", "width": 256, "x": 42352, "y": 1568, "zOrder": 120, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "StalagmiteDemon_Base", "persistentUuid": "655c5af7-c11b-4a89-8328-cd3c7118de7b", "width": 256, "x": 42544, "y": 1568, "zOrder": 120, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 64, "layer": "", "name": "StaticPlatform1", "persistentUuid": "784ece56-39b9-403b-85c4-b74d555e23c3", "width": 320, "x": 42456, "y": 1738, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 64, "layer": "", "name": "StaticPlatform1", "persistentUuid": "fecb91f2-6626-4c2f-86a2-5dffbcc5c2f4", "width": 320, "x": 43064, "y": 1738, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 64, "layer": "", "name": "StaticPlatform1", "persistentUuid": "fdf346cc-f500-49b0-977e-ed6c989214d2", "width": 320, "x": 42760, "y": 1738, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 64, "layer": "", "name": "StaticPlatform1", "persistentUuid": "e07b55ac-9851-4e98-9730-4c7048fc707c", "width": 336, "x": 36288, "y": -160, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "0bfc80e9-a4dc-486e-a5f1-8c8728270d80", "width": 256, "x": 21344, "y": 512, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform1", "persistentUuid": "fa03096e-f750-46d5-a7b8-fca0becd4050", "width": 608, "x": 22048, "y": 832, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "91863160-f813-4a90-a1c1-667fa649db5d", "width": 341, "x": 22176, "y": 576, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "LaserDemon_Base", "persistentUuid": "74ffc612-70ae-4587-9381-7c9583388aa9", "width": 192, "x": 40448, "y": 1680, "zOrder": 75, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "LaserDemon_Base", "persistentUuid": "b9b09db0-4740-474f-9036-84e5bb4133f2", "width": 192, "x": 40896, "y": 1680, "zOrder": 75, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "a4c3c15e-fd0f-4325-833f-80573302b736", "width": 80, "x": 40664, "y": 1712, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "95a61cd0-cac9-44f5-b49e-99685c25faa3", "width": 80, "x": 40792, "y": 1712, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "LaserDemon_Base", "persistentUuid": "4fc7e6e3-43ff-4bd5-a3f2-5dac68e2d825", "width": 192, "x": 40000, "y": 1680, "zOrder": 75, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "LaserDemon_Base", "persistentUuid": "c57f33b2-a6ae-4daf-929a-7a9ee8daaba1", "width": 192, "x": 40000, "y": 2000, "zOrder": 75, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "00395cbd-3348-41fb-bf55-f81e81008cd9", "width": 80, "x": 40056, "y": 1872, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "379084eb-b72a-4f2e-9775-295d037114de", "width": 80, "x": 41400, "y": 1872, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "LaserDemon_Base", "persistentUuid": "6cb9758b-7480-426d-8f5c-8c577b981492", "width": 192, "x": 41344, "y": 2000, "zOrder": 75, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "LaserDemon_Base", "persistentUuid": "6062b389-9d7b-4a5a-b15a-9293f9a0ebe2", "width": 192, "x": 41344, "y": 1680, "zOrder": 75, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "4140e52c-6120-456c-9221-591bcd02346a", "width": 80, "x": 40216, "y": 2032, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "9837feba-e7d8-4ea6-a42f-b5d1e89570d7", "width": 80, "x": 40344, "y": 2032, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "eefd8bd6-9488-4d8e-8c10-8ecd051c37f4", "width": 80, "x": 40472, "y": 2032, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "dcc25a47-f269-49ae-8683-38125cc61768", "width": 80, "x": 40600, "y": 2032, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "224229c6-b136-4a92-ae6b-ce0a7a7aee3c", "width": 80, "x": 40984, "y": 2032, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "904d4c37-9b8e-4dbb-8c85-a376a27033f9", "width": 80, "x": 41112, "y": 2032, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "1f8899f7-c984-44ef-bc90-e79a28007ef9", "width": 80, "x": 40856, "y": 2032, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "e10ef350-9709-4e88-833d-438dbdf656a4", "width": 80, "x": 40728, "y": 2032, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "18c90809-9f7a-42ec-85e2-3304fa8a12af", "width": 80, "x": 41240, "y": 2032, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Base", "persistentUuid": "0ee876e5-8aa5-468e-853f-19a7dc447102", "width": 256, "x": 41088, "y": 1648, "zOrder": 13, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Eye", "persistentUuid": "5ca856c4-0aef-43bc-8f51-e582be8a96d2", "width": 256, "x": 41088, "y": 1648, "zOrder": 120, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 2.25 }, { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": true } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "b29f0b9a-8231-4691-aac5-5c2ccf40490f", "width": 256, "x": 18112, "y": 704, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "HorizontalDemon", "persistentUuid": "6cfb3146-1ba1-4a49-9449-cff016c5d109", "width": 256, "x": 39072, "y": 1152, "zOrder": 112, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "dafc30b6-c329-43ce-a32f-511b278e20ac", "width": 224, "x": 41664, "y": 1152, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 496, "layer": "", "name": "StaticPlatform3", "persistentUuid": "d43c915a-b014-44b9-9118-e88f35efbaa1", "width": 992, "x": 45088, "y": 1296, "zOrder": 72, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 544, "layer": "", "name": "Portal", "persistentUuid": "1ab6404e-86f4-452f-9d59-2fde73d979a6", "width": 408, "x": 45320, "y": 800, "zOrder": 73, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Memory", "persistentUuid": "a21b263c-5453-464c-9776-d610b1931973", "width": 256, "x": 45376, "y": 576, "zOrder": 74, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 224, "layer": "", "name": "FlippingPlatform", "persistentUuid": "8c79a8bc-3843-4130-915f-2932da95c146", "width": 448, "x": 44064, "y": 1248, "zOrder": 142, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "BottomBoundary", "persistentUuid": "d1a591e5-d6c2-4c37-9b0e-bff58c09c7d5", "width": 45984, "x": -128, "y": 2336, "zOrder": 60, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "1a78b49f-d0d1-4acd-86fc-dad5513b04c3", "width": 192, "x": 4256, "y": -128, "zOrder": 118, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "a02c8777-25cb-41af-ad51-98eb13f5fe98", "width": 256, "x": 8864, "y": 480, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform2", "persistentUuid": "3ca7c143-8e84-4115-a8d7-579407828d4d", "width": 192, "x": 11896, "y": 1088, "zOrder": 123, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform2", "persistentUuid": "3fcdfc54-6ba6-4804-be30-2c8029d18349", "width": 192, "x": 12016, "y": 1504, "zOrder": 123, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform2", "persistentUuid": "88a2247d-7217-4071-b834-a24620f9ae87", "width": 192, "x": 13118, "y": 1888, "zOrder": 123, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 270, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform2", "persistentUuid": "7ae07871-d5bb-46f9-90ec-a8a7448b25bd", "width": 192, "x": 14019, "y": 1968, "zOrder": 123, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 352, "layer": "", "name": "StaticPlatform2", "persistentUuid": "822349ea-8776-408e-8682-d733084ae9fd", "width": 632, "x": 11702, "y": 1920, "zOrder": 123, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "6724b948-cfe6-4e40-b98c-b7cdfcbad49f", "width": 192, "x": 12384, "y": 928, "zOrder": 81, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "ad1e76a6-7b1b-4978-8d88-0c2d8c3940e8", "width": 512, "x": 12224, "y": 768, "zOrder": 8, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "29952cff-ffe1-407a-8c38-b2ec1badd99d", "width": 512, "x": 12640, "y": 768, "zOrder": 8, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "b214f93d-99ff-45bf-97f4-92598b07d646", "width": 192, "x": 12800, "y": 928, "zOrder": 81, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "12246c4c-7cdc-4e5b-87b9-83749e134a6c", "width": 80, "x": 12616, "y": 960, "zOrder": 82, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanentSingle", "persistentUuid": "619bc82a-81c7-49b8-b2da-170caad2739d", "width": 80, "x": 12744, "y": 960, "zOrder": 147, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 320, "layer": "", "name": "StaticPlatform3", "persistentUuid": "9d8e3d24-0f4d-4792-9800-1061ac390fb9", "width": 640, "x": 12384, "y": 1248, "zOrder": 148, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "4ef66227-aada-41c5-a94e-a12fa7f045c9", "width": 341, "x": 11830, "y": 1696, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "01a324c9-96f4-4904-aed6-deb3a4b3c07c", "width": 341, "x": 28128, "y": 576, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "StaticPlatform2", "persistentUuid": "3b850945-cabf-4b1e-a52b-fee132919bf3", "width": 512, "x": 29248, "y": 1152, "zOrder": 123, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 1, "height": 80, "layer": "", "name": "StaticPlatform1", "persistentUuid": "dabbfeee-6d7f-4d0c-8bd3-752d2fef49d3", "width": 320, "x": 30232, "y": 1048, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 80, "layer": "", "name": "StaticPlatform1", "persistentUuid": "8b8163f1-adef-4307-ba3f-72917f306548", "width": 320, "x": 30432, "y": 928, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "HorizontalDemon", "persistentUuid": "115ccfcf-4aa8-4456-9872-c767f5f36deb", "width": 256, "x": 29632, "y": 384, "zOrder": 1010, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "HorizontalDemon", "persistentUuid": "cc3b5691-0bab-4874-a44e-41de7e64465b", "width": 256, "x": 29824, "y": -64, "zOrder": 1010, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "ShockwaveDemon_Base", "persistentUuid": "d788eded-1242-457c-92ae-1766d2f5c288", "width": 192, "x": 30160, "y": 992, "zOrder": 1011, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "name": "FireOffsetTime", "type": "number", "value": 1 }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 5 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "SpinningRotatingPlatformClockwise", "persistentUuid": "29edc845-961f-4c1b-919c-cf3b816daf5a", "width": 448, "x": 31840, "y": 544, "zOrder": 1012, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "ShockwaveDemon_Base", "persistentUuid": "13599d4b-8895-4308-b046-eda508ff41f6", "width": 192, "x": 31968, "y": 1824, "zOrder": 1011, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FixedAngle", "type": "boolean", "value": true }, { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 1.5 }, { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": true }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 4 }, { "name": "FireOffsetTime", "type": "number", "value": 3.5 } ] }, { "angle": 90, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "ShockwaveDemon_Base", "persistentUuid": "33ec6184-382b-4050-88cb-01a486ed27da", "width": 192, "x": 32896, "y": 1144, "zOrder": 1011, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FixedAngle", "type": "boolean", "value": true }, { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 1.5 }, { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": true }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 4 }, { "name": "FireOffsetTime", "type": "number", "value": 2 } ] }, { "angle": -90, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "ShockwaveDemon_Base", "persistentUuid": "7de48984-d9f9-45d1-a154-bb5bac81466f", "width": 192, "x": 31168, "y": 1144, "zOrder": 1011, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 1.5 }, { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": true }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 4 }, { "folded": true, "name": "FixedAngle", "type": "boolean", "value": true } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 80, "layer": "", "name": "StaticPlatform1", "persistentUuid": "a2283e43-3b2e-437a-8f8a-66a74cb82ec4", "width": 384, "x": 31872, "y": 2016, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 1, "height": 80, "layer": "", "name": "StaticPlatform1", "persistentUuid": "667061d6-8c42-492d-869e-5e29548f05a3", "width": 320, "x": 32968, "y": 1192, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 1, "height": 80, "layer": "", "name": "StaticPlatform1", "persistentUuid": "213ad7fd-5f7a-415b-afc4-57231c2351a1", "width": 320, "x": 30968, "y": 1192, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "aeae4e2e-d4d8-43aa-94ca-8c43da127e76", "width": 192, "x": 32320, "y": 1952, "zOrder": 1013, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "0be8a44d-3f0a-4f1a-bac7-0fb6e9c64f84", "width": 512, "x": 32160, "y": 1792, "zOrder": 1012, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 73, "layer": "", "name": "StaticPlatform1", "persistentUuid": "ced00831-a965-40ba-8183-88c7015ed87c", "width": 256, "x": 33200, "y": 1911, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "9985fdd0-2624-47f5-b759-3bcd4b2c0d5f", "width": 192, "x": 32960, "y": 1952, "zOrder": 1013, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "2b266867-2792-47a2-9451-70c2ac4b9b14", "width": 512, "x": 32800, "y": 1792, "zOrder": 1012, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "99ff5fd5-17f9-41e0-b0f4-eb2d60eb40b8", "width": 80, "x": 32568, "y": 1984, "zOrder": 1014, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "8b956cd3-c925-4b1b-83b2-d5d8414e6127", "width": 80, "x": 32696, "y": 1984, "zOrder": 1014, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "b1feb75a-c4b7-42b4-9ecc-9fd69dbeb37a", "width": 80, "x": 32824, "y": 1984, "zOrder": 1014, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "7c365262-646d-41e9-9fb8-17481ae0cd85", "width": 192, "x": 33216, "y": 1120, "zOrder": 1013, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "2fb03d34-47e0-4c3a-837a-e07420f21f31", "width": 192, "x": 33856, "y": 1120, "zOrder": 1013, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "5537d9a6-0658-4b66-98dd-932ec91d59e2", "width": 80, "x": 33464, "y": 1152, "zOrder": 1014, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "0a1983c7-a934-4b7f-8d9b-9bc38adab2a0", "width": 80, "x": 33592, "y": 1152, "zOrder": 1014, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "7e893e45-f85f-44fc-aabd-552173687610", "width": 80, "x": 33720, "y": 1152, "zOrder": 1014, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "ab3c0424-579d-4b97-9169-207c402d3cc8", "width": 512, "x": 33696, "y": 960, "zOrder": 101, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "a6c3dd01-5b6d-4b69-a843-65f8a2c6123d", "width": 512, "x": 33056, "y": 960, "zOrder": 101, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "HorizontalDemon", "persistentUuid": "3c9455d0-7dd8-4d89-aa15-648cd682398f", "width": 256, "x": 32352, "y": 1728, "zOrder": 1010, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Eye", "persistentUuid": "25db37ae-61f4-45f6-90b8-4af3349c0a61", "width": 256, "x": 29344, "y": -64, "zOrder": 144, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Base", "persistentUuid": "cee174c0-78f6-4823-9146-5bb9b2c64ca3", "width": 256, "x": 29344, "y": -64, "zOrder": 143, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -45, "customSize": true, "depth": 1, "height": 73, "layer": "", "name": "StaticPlatform1", "persistentUuid": "9e5ca84b-5b2d-4f0e-af11-e349669b9efd", "width": 288, "x": 34064, "y": 1820, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -45, "customSize": true, "depth": 1, "height": 73, "layer": "", "name": "StaticPlatform1", "persistentUuid": "248e6808-24d4-47d9-95b7-20a4d4b7b531", "width": 288, "x": 34256, "y": 1627, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -45, "customSize": true, "depth": 1, "height": 73, "layer": "", "name": "StaticPlatform1", "persistentUuid": "04b8b3cb-62e3-4352-b1d6-d86a1603426e", "width": 288, "x": 34640, "y": 1244, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -45, "customSize": true, "depth": 1, "height": 73, "layer": "", "name": "StaticPlatform1", "persistentUuid": "6b8af12a-5cb1-4273-88f6-d3b4d6fefe52", "width": 288, "x": 34832, "y": 1051, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -45, "customSize": true, "depth": 1, "height": 73, "layer": "", "name": "StaticPlatform1", "persistentUuid": "d918182e-9ec8-4c0e-898a-96dbf2523916", "width": 288, "x": 34064, "y": 1243, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -45, "customSize": true, "depth": 1, "height": 73, "layer": "", "name": "StaticPlatform1", "persistentUuid": "5b5aa4b6-e329-4d48-b38e-a101395547de", "width": 288, "x": 33872, "y": 1435, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -45, "customSize": true, "depth": 1, "height": 73, "layer": "", "name": "StaticPlatform1", "persistentUuid": "2d262a69-522a-4053-a0b8-676531132a28", "width": 288, "x": 34448, "y": 860, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -45, "customSize": true, "depth": 1, "height": 73, "layer": "", "name": "StaticPlatform1", "persistentUuid": "c7495ade-5c02-4427-a49d-41bf53b96325", "width": 288, "x": 34640, "y": 667, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 73, "layer": "", "name": "StaticPlatform1", "persistentUuid": "c3b41022-35b4-4d2a-b37e-0ffdc000b979", "width": 256, "x": 33456, "y": 1911, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -45, "customSize": true, "depth": 1, "height": 73, "layer": "", "name": "StaticPlatform1", "persistentUuid": "873bc59d-d937-4c20-807f-82c030c8a579", "width": 288, "x": 34256, "y": 1052, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "50780fc9-d4fd-4848-8235-2d448a381ff6", "width": 341, "x": 33536, "y": 1664, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -45, "customSize": true, "depth": 1, "height": 73, "layer": "", "name": "StaticPlatform1", "persistentUuid": "c427be16-c06a-44bb-a0a6-2f814465903a", "width": 288, "x": 35216, "y": 668, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -45, "customSize": true, "depth": 1, "height": 73, "layer": "", "name": "StaticPlatform1", "persistentUuid": "eed8f848-e713-4b65-a9b0-75ed4c1f7c0d", "width": 288, "x": 35408, "y": 475, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -45, "customSize": true, "depth": 1, "height": 73, "layer": "", "name": "StaticPlatform1", "persistentUuid": "1ac96def-b0f5-4eac-a056-6b4a1d6c08da", "width": 288, "x": 35216, "y": 91, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -45, "customSize": true, "depth": 1, "height": 73, "layer": "", "name": "StaticPlatform1", "persistentUuid": "4d525f47-eebf-4348-9a44-8f6413f22738", "width": 288, "x": 35024, "y": 283, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -45, "customSize": true, "depth": 1, "height": 73, "layer": "", "name": "StaticPlatform1", "persistentUuid": "da1c4e16-7fe5-4bc0-9a59-8f358438a787", "width": 288, "x": 34832, "y": 475, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 135, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "ShockwaveDemon_Base", "persistentUuid": "56b812c9-9f83-4254-99cf-0edb453826b3", "width": 192, "x": 35032, "y": 760, "zOrder": 1017, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 0.75 }, { "folded": true, "name": "ShockwavePower", "type": "number", "value": 1750 }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 4 } ] }, { "angle": -45, "customSize": true, "depth": 1, "height": 73, "layer": "", "name": "StaticPlatform1", "persistentUuid": "3c3acaf5-c319-47bd-8fa6-013099ca312d", "width": 288, "x": 35072, "y": 908, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": -45, "customSize": true, "depth": 1, "height": 73, "layer": "", "name": "StaticPlatform1", "persistentUuid": "fd4a1b65-e9ba-4838-b0aa-09d62a5d03f6", "width": 288, "x": 35408, "y": 476, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 45, "customSize": true, "depth": 1, "height": 73, "layer": "", "name": "StaticPlatform1", "persistentUuid": "ccfe92cd-3cb8-45a5-8447-ea975592b6d9", "width": 288, "x": 37520, "y": 508, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 45, "customSize": true, "depth": 1, "height": 73, "layer": "", "name": "StaticPlatform1", "persistentUuid": "4e3dffc6-90a3-4ba0-bc0f-1949846382cc", "width": 288, "x": 37712, "y": 699, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 45, "customSize": true, "depth": 1, "height": 73, "layer": "", "name": "StaticPlatform1", "persistentUuid": "2c7a16dd-8a9e-4e66-89ad-aae6307cd9b9", "width": 288, "x": 37904, "y": 892, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 45, "customSize": true, "depth": 1, "height": 73, "layer": "", "name": "StaticPlatform1", "persistentUuid": "27c1f228-ccb1-4d76-931e-b9bae08f1650", "width": 288, "x": 38048, "y": 1132, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 45, "customSize": true, "depth": 1, "height": 73, "layer": "", "name": "StaticPlatform1", "persistentUuid": "56b47372-9784-4eac-90bb-75ad561bd451", "width": 288, "x": 37328, "y": 316, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 45, "customSize": true, "depth": 1, "height": 73, "layer": "", "name": "StaticPlatform1", "persistentUuid": "de1c37b3-083d-4a55-858e-9f44ac8a8f59", "width": 288, "x": 37136, "y": 123, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 45, "customSize": true, "depth": 1, "height": 73, "layer": "", "name": "StaticPlatform1", "persistentUuid": "34be792e-58d0-48a3-bfec-08c335375a69", "width": 288, "x": 36944, "y": -69, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 45, "customSize": true, "depth": 1, "height": 73, "layer": "", "name": "StaticPlatform1", "persistentUuid": "20d6d0f1-e189-48e8-a626-d219082108cb", "width": 288, "x": 37136, "y": -452, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 45, "customSize": true, "depth": 1, "height": 73, "layer": "", "name": "StaticPlatform1", "persistentUuid": "c705e1fe-9f5a-4e8d-a553-2084cbfe051c", "width": 288, "x": 37328, "y": -260, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 45, "customSize": true, "depth": 1, "height": 73, "layer": "", "name": "StaticPlatform1", "persistentUuid": "d5622c35-dea7-41f4-8d6d-511d8da78448", "width": 288, "x": 37520, "y": -68, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 45, "customSize": true, "depth": 1, "height": 73, "layer": "", "name": "StaticPlatform1", "persistentUuid": "f9785907-418c-44c2-99de-8d2cdb22df3e", "width": 288, "x": 37712, "y": 124, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 45, "customSize": true, "depth": 1, "height": 73, "layer": "", "name": "StaticPlatform1", "persistentUuid": "5da3b960-d750-4b67-b517-cda25e6c75a0", "width": 288, "x": 37904, "y": 316, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 45, "customSize": true, "depth": 1, "height": 73, "layer": "", "name": "StaticPlatform1", "persistentUuid": "65332f1c-adf0-4373-81e1-3941649c2e07", "width": 288, "x": 38096, "y": 508, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 45, "customSize": true, "depth": 1, "height": 73, "layer": "", "name": "StaticPlatform1", "persistentUuid": "149c2fc8-4c24-430a-8236-c25abc7d4af9", "width": 288, "x": 38288, "y": 700, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform1", "persistentUuid": "e85a583a-a8b5-4909-8f80-bc3df2179712", "width": 704, "x": 38336, "y": 1184, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "eaf40f92-2580-46ed-ba0d-a2046d07bf52", "width": 341, "x": 38507, "y": 928, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 225, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "ShockwaveDemon_Base", "persistentUuid": "79e839c7-f225-4f80-aa82-79e691724626", "width": 192, "x": 38184, "y": 984, "zOrder": 1017, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 0.75 }, { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": true }, { "folded": true, "name": "ShockwavePower", "type": "number", "value": 1750 }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 4 } ] }, { "angle": -110, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "ShockwaveDemon_Base", "persistentUuid": "f820fd4b-7c95-4b23-9197-1575e6483778", "width": 192, "x": 9563, "y": 469, "zOrder": 101, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FixedAngle", "type": "boolean", "value": true }, { "folded": true, "name": "ShockwavePower", "type": "number", "value": 800 }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 4 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 64, "layer": "", "name": "StaticPlatform1", "persistentUuid": "b923dc13-2506-4e3b-a9ab-842a2b05c771", "width": 336, "x": 36624, "y": -160, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 73, "layer": "", "name": "StaticPlatform1", "persistentUuid": "0b453a9c-6b77-4b01-8972-fde585b1510a", "width": 256, "x": 33712, "y": 1911, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "StalagmiteDemon_Base", "persistentUuid": "8ad30bf9-bdc6-40d6-9ea6-2a768e12be1c", "width": 256, "x": 42160, "y": 1568, "zOrder": 120, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 3.25 } ] }, { "angle": 180, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "StalagmiteDemon_Base", "persistentUuid": "a2063bdf-cc9a-4c07-b310-2fc27c379837", "width": 256, "x": 42736, "y": 1568, "zOrder": 120, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 3.25 } ] }, { "angle": 180, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "StalagmiteDemon_Base", "persistentUuid": "a9badbd5-5816-4f95-b486-00dcc73113a9", "width": 256, "x": 42928, "y": 1568, "zOrder": 120, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 3.25 } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Base", "persistentUuid": "440a8103-04c7-4922-9ea7-117caef012c9", "width": 256, "x": 41088, "y": 448, "zOrder": 13, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Eye", "persistentUuid": "6c4ae49a-95a6-4792-8350-97af163bc15b", "width": 256, "x": 41088, "y": 448, "zOrder": 120, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 2.25 }, { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": true }, { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 3 } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Base", "persistentUuid": "f7a4d92b-4b56-4dd4-b4f3-30db4c6b6837", "width": 256, "x": 40192, "y": 1648, "zOrder": 13, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Eye", "persistentUuid": "9f27ab8f-bdee-48b5-8e55-619c599aab2b", "width": 256, "x": 40192, "y": 1648, "zOrder": 120, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 3 }, { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 2.25 }, { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": true } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 200, "layer": "", "name": "StaticPlatform1", "persistentUuid": "9c40be99-7986-4725-8ab5-0e7e70436ad9", "width": 736, "x": 27936, "y": 824, "zOrder": 109, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "d3b101be-6173-47a2-a0de-6bf6a79345e8", "width": 32, "x": 24448, "y": 384, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "26279ef6-68f4-43c9-8566-9c42d3118624", "width": 32, "x": 24896, "y": 512, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Base", "persistentUuid": "25654ea2-2ccc-4468-8348-aa2b0a59dc5f", "width": 256, "x": 25280, "y": -288, "zOrder": 132, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Eye", "persistentUuid": "1ec55816-f0cc-4fe7-8e2f-34250d664bfd", "width": 256, "x": 25280, "y": -288, "zOrder": 133, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 5.5 }, { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 3 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 144, "layer": "", "name": "SpinningPlatformCounterclockwise", "persistentUuid": "16fe441c-a4f9-4783-9d03-a9d4f74df7fd", "width": 288, "x": 26048, "y": 640, "zOrder": 136, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "04cb732d-de65-42ca-832a-1ae9af1accc7", "width": 32, "x": 27232, "y": 1440, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "8296f3e0-31cd-4e90-8774-90addbe61d07", "width": 32, "x": 27744, "y": 1184, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "bb2b046d-26a1-443a-915e-ac18c8b5e192", "width": 256, "x": 32480, "y": 1760, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_Base", "persistentUuid": "74c3d8c0-00eb-4934-bd4d-7f24da9c0a15", "width": 192, "x": 26368, "y": 1280, "zOrder": 1020, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_Base", "persistentUuid": "9b74bded-40ee-4b73-bc90-3283562a858c", "width": 192, "x": 26368, "y": 1856, "zOrder": 1020, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "6e98dde9-e12a-429d-b9f6-3914efc69cc1", "width": 80, "x": 26424, "y": 1472, "zOrder": 1021, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "115bdacd-7192-4a78-a12a-937c78f2ce7d", "width": 80, "x": 26424, "y": 1600, "zOrder": 1021, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "ca837ebc-988c-4ba1-ad82-f74371f7a4b0", "width": 80, "x": 26424, "y": 1728, "zOrder": 1021, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 64, "layer": "", "name": "StaticPlatform1", "persistentUuid": "d5cb44f8-ac87-4527-badd-f630ab9928be", "width": 336, "x": 36624, "y": -160, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 64, "layer": "", "name": "StaticPlatform1", "persistentUuid": "44f1df08-c561-4093-9eb5-287ca84c3afa", "width": 336, "x": 36288, "y": -160, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "830f9afd-ebb1-46d6-8cd1-9e4772e8ede3", "width": 32, "x": 23200, "y": 704, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "9f8494cd-3daa-4c90-b81a-eba92b6f3a93", "width": 32, "x": 22880, "y": 352, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "11e11ab1-7002-481f-b8c0-b8f673e71452", "width": 32, "x": 23936, "y": 256, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "2401587b-041b-445a-abde-d1272e23e545", "width": 32, "x": 23360, "y": 192, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] } ], "objects": [ { "assetStoreId": "", "height": 1024, "name": "BackgroundPlants", "texture": "Assets\\Images\\Levels\\8\\Background\\Background.png", "type": "TiledSpriteObject::TiledSprite", "width": 2048, "variables": [], "effects": [ { "effectType": "TiltShift", "name": "Effect", "doubleParameters": { "blur": 30, "gradientBlur": 1000 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "OldFilm", "name": "Effect2", "doubleParameters": { "animationFrequency": 60, "noise": 0.1, "noiseSize": 1, "scratch": 0.5, "scratchDensity": 0.4, "scratchWidth": 1, "sepia": 0.1, "vignetting": 0.75, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [] } ], "objectsFolderStructure": { "folderName": "__ROOT", "children": [ { "folderName": "NewFolder" }, { "objectName": "BackgroundPlants" } ] }, "events": [ { "type": "BuiltinCommonInstructions::Link", "include": { "includeConfig": 0 }, "target": "LevelEvents" }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Change Scene", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "LayerVisible" }, "parameters": [ "", "\"EndScreen\"" ] }, { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "PanelSpriteButton::PanelSpriteButton::IsClicked" }, "parameters": [ "UI_Sinage_RetryButton", "" ] }, { "type": { "value": "KeyReleased" }, "parameters": [ "", "Space" ] } ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Player", "Lives", ">", "0" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Mindscape\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Player", "Lives", "<=", "0" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Level8\"", "" ] } ] } ] } ], "parameters": [] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "AnimatableCapability::AnimatableBehavior::SetName" }, "parameters": [ "Memory", "Animation", "=", "\"TangentHell\"" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Player", "LifeForce", "=", "8" ] } ] } ], "layers": [ { "ambientLightColorB": 8002120, "ambientLightColorG": 6031360, "ambientLightColorR": 7844472, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "Background", "renderingType": "2d", "visibility": true, "cameras": [], "effects": [] }, { "ambientLightColorB": 32, "ambientLightColorG": 0, "ambientLightColorR": 0, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "", "renderingType": "", "visibility": true, "cameras": [ { "defaultSize": true, "defaultViewport": true, "height": 0, "viewportBottom": 1, "viewportLeft": 0, "viewportRight": 1, "viewportTop": 0, "width": 0 } ], "effects": [ { "effectType": "Scene3D::HemisphereLight", "name": "3D Light", "doubleParameters": { "elevation": 45, "intensity": 1, "rotation": 0 }, "stringParameters": { "groundColor": "64;64;64", "skyColor": "255;255;255", "top": "Y-" }, "booleanParameters": {} }, { "effectType": "OldFilm", "name": "Effect", "doubleParameters": { "animationFrequency": 60, "noise": 0.15, "noiseSize": 1, "scratch": 0, "scratchDensity": 0.2, "scratchWidth": 1, "sepia": 0, "vignetting": 0.4, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": {} } ] }, { "ambientLightColorB": 9191608, "ambientLightColorG": 6031360, "ambientLightColorR": 8756632, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "UI", "renderingType": "2d", "visibility": true, "cameras": [], "effects": [] }, { "ambientLightColorB": -2147483616, "ambientLightColorG": 6031360, "ambientLightColorR": 11020320, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "EndScreen", "renderingType": "2d", "visibility": false, "cameras": [], "effects": [] } ], "behaviorsSharedData": [ { "name": "AdvancedProjectile", "type": "AdvancedProjectile::AdvancedProjectile" }, { "name": "Animation", "type": "AnimatableCapability::AnimatableBehavior" }, { "name": "Effect", "type": "EffectCapability::EffectBehavior" }, { "name": "EllipseMovement", "type": "EllipseMovement::EllipseMovement" }, { "name": "Flippable", "type": "FlippableCapability::FlippableBehavior" }, { "name": "InOnScreen", "type": "IsOnScreen::InOnScreen" }, { "name": "MonsterEnemy", "type": "Enemy::MonsterEnemy" }, { "name": "Opacity", "type": "OpacityCapability::OpacityBehavior" }, { "name": "Platform", "type": "PlatformBehavior::PlatformBehavior" }, { "name": "PlatformerCharacterAnimator", "type": "PlatformerCharacterAnimator::PlatformerCharacterAnimator" }, { "name": "PlatformerGamepadMapper", "type": "Gamepads::PlatformerGamepadMapper" }, { "name": "PlatformerMultitouchMapper", "type": "MultitouchJoystick::PlatformerMultitouchMapper" }, { "name": "PlatformerObject", "type": "PlatformBehavior::PlatformerObjectBehavior" }, { "name": "RectangleMovement", "type": "RectangleMovement::RectangleMovement" }, { "name": "Resizable", "type": "ResizableCapability::ResizableBehavior" }, { "name": "Scale", "type": "ScalableCapability::ScalableBehavior" }, { "name": "ShakeObject_PositionAngle", "type": "ShakeObject::ShakeObject_PositionAngle" }, { "name": "ShakeObject_PositionAngleScale", "type": "ShakeObject::ShakeObject_PositionAngleScale" }, { "name": "SmoothCamera", "type": "SmoothCamera::SmoothCamera" }, { "name": "Text", "type": "TextContainerCapability::TextContainerBehavior" }, { "name": "TimedBackAndForthMirroredMovement", "type": "TimedBackAndForthMovement::TimedBackAndForthMirroredMovement" }, { "name": "Tween", "type": "Tween::TweenBehavior" } ] }, { "b": 26, "disableInputWhenNotFocused": true, "mangledName": "Level7", "name": "Level7", "r": 11, "standardSortMethod": true, "stopSoundsOnStartup": true, "title": "", "v": 24, "uiSettings": { "grid": true, "gridType": "rectangular", "gridWidth": 32, "gridHeight": 32, "gridOffsetX": 0, "gridOffsetY": 0, "gridColor": 10401023, "gridAlpha": 0.3, "snap": true, "zoomFactor": 1.4557357853572885, "windowMask": false }, "objectsGroups": [ { "name": "MobileControls", "objects": [ { "name": "JumpButton" }, { "name": "Joystick" } ] }, { "name": "EndScreenObjects", "objects": [ { "name": "EndScreenBackground" }, { "name": "EndScreenHeader" }, { "name": "EndScreenSubHeader" }, { "name": "EndScreenBestText" }, { "name": "EndScreenChallengeText" }, { "name": "EndScreenRetryText" }, { "name": "RetryButton" } ] } ], "variables": [ { "name": "Score", "type": "number", "value": 0 } ], "instances": [ { "angle": 0, "customSize": true, "depth": 1, "height": 3296, "layer": "", "name": "LeftBoundary", "persistentUuid": "78dd0ffa-b22f-47a8-9b36-ef6a432b1d1e", "width": 128, "x": -128, "y": -1056, "zOrder": 38, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 2272, "layer": "Background", "name": "BackgroundPlants", "persistentUuid": "03b6869d-198f-4807-b659-f2b863e21073", "width": 17950, "x": 0, "y": -320, "zOrder": -1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 3296, "layer": "", "name": "RightBoundary", "persistentUuid": "9562fd9d-6e93-4465-9013-efa2b833653b", "width": 128, "x": 38272, "y": -1056, "zOrder": 58, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "TopBoundary", "persistentUuid": "4381c067-2682-4f00-9a24-ff28fa12b1d8", "width": 38528, "x": -128, "y": -1056, "zOrder": 59, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "BottomBoundary", "persistentUuid": "00f86cf3-18b0-4d71-9ce8-952dfc4e6b5c", "width": 38528, "x": -128, "y": 2112, "zOrder": 60, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "Player", "persistentUuid": "014db1f5-0846-4cba-821e-57e29d368c14", "width": 256, "x": 64, "y": -64, "zOrder": 63, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 544, "layer": "", "name": "StaticPlatform3", "persistentUuid": "ec1b505e-4a50-4898-85b5-19e0cdb4b458", "width": 1088, "x": 37344, "y": 160, "zOrder": 72, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 544, "layer": "", "name": "Portal", "persistentUuid": "fa79662d-16c7-4c21-a43d-0a204befff36", "width": 408, "x": 37864, "y": -352, "zOrder": 73, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Memory", "persistentUuid": "58196f81-947d-479b-8722-7a47ea0e93a4", "width": 256, "x": 37920, "y": -576, "zOrder": 74, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 3040, "layer": "Background", "name": "BackgroundPlants", "persistentUuid": "3f0ec037-2a70-4ea5-90eb-c1f8a7387a6c", "width": 38272, "x": 0, "y": -928, "zOrder": -1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "LaserDemon_Base", "persistentUuid": "82f6604d-d5a3-4584-bf5d-3fb293ff91aa", "width": 192, "x": 2072, "y": 192, "zOrder": 75, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 2.5 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 2.5 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "bec917f8-1b5c-48f4-a650-d99dfbce285e", "width": 80, "x": 2129, "y": -448, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "OnOffTime", "type": "number", "value": 2.5 }, { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 2.5 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "ab4ca05b-5fa3-45f2-89f9-bd6292973350", "width": 80, "x": 2129, "y": -320, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 2.5 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 2.5 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "e876eebe-937d-49e0-af37-9a7164db6dd9", "width": 80, "x": 2129, "y": -64, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 2.5 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 2.5 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "f8a06d78-3166-47c9-8a49-ed7f06a2248d", "width": 80, "x": 2129, "y": -192, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 2.5 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 2.5 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "d65d7a8e-d3bd-4aeb-8090-e2ef06d9008c", "width": 80, "x": 2129, "y": 64, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 2.5 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 2.5 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "e08c1888-868a-438d-bf83-a9affe5815db", "width": 608, "x": 0, "y": 32, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "f899b706-4c05-46ee-9945-a8da9c16f7dc", "width": 608, "x": 1216, "y": 32, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "87018c72-d2ae-4ae3-9c4a-096ed7cb4b07", "width": 80, "x": 2288, "y": 224, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 2.5 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 2.5 } ] }, { "angle": 90, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "851a2d14-8e76-418b-933d-354cc16ad351", "width": 80, "x": 2416, "y": 224, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 2.5 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 2.5 } ] }, { "angle": 90, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "cdb8ef24-3042-4d10-bf23-60b96390e20a", "width": 80, "x": 2672, "y": 224, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 2.5 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 2.5 } ] }, { "angle": 90, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "cfc2cfff-84f7-4ab2-950e-2448ce3e5370", "width": 80, "x": 2544, "y": 224, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 2.5 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 2.5 } ] }, { "angle": 90, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "dfb2b7ff-418d-4476-965b-6825a1357823", "width": 80, "x": 2800, "y": 224, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 2.5 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 2.5 } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "87f11bc5-3efc-4fd1-a545-f256987818a8", "width": 192, "x": 2904, "y": -640, "zOrder": 81, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "977abecd-1a62-4c64-989b-494c97a165d0", "width": 80, "x": 2288, "y": -608, "zOrder": 82, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "c0487def-fe8b-4851-a049-f268b1dc8dbe", "width": 80, "x": 2416, "y": -608, "zOrder": 82, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "a466c3ce-f6a8-4f2f-81e9-3e6142294c48", "width": 80, "x": 2672, "y": -608, "zOrder": 82, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "93e1d6a5-1836-4016-b64b-f5eac029f210", "width": 80, "x": 2544, "y": -608, "zOrder": 82, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "e8766c93-b1b7-4b3e-8111-47996ad70ae4", "width": 80, "x": 2800, "y": -608, "zOrder": 82, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "cbee167c-eaf4-42cd-83ec-a003a491bc8d", "width": 512, "x": 2744, "y": -800, "zOrder": 8, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "a418f968-954c-4ff8-a247-e7f9e7b4aac4", "width": 80, "x": 2960, "y": -448, "zOrder": 82, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "a64000ba-9ee9-4ac7-ab78-8d357259d765", "width": 80, "x": 2960, "y": -320, "zOrder": 82, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "3f184bc7-7583-4f27-936d-eb3e4bfc0c81", "width": 80, "x": 2960, "y": -192, "zOrder": 82, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "3aa3823a-7689-4136-b227-a63a8ac0bc45", "width": 80, "x": 2960, "y": -64, "zOrder": 82, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "5ab6aaff-d10e-4eb1-bfe2-ed21ac1e5035", "width": 80, "x": 2960, "y": 64, "zOrder": 82, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "f8a9166e-4233-41f6-9425-ef7c69501802", "width": 480, "x": 2344, "y": 608, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 176, "layer": "", "name": "StaticPlatform2", "persistentUuid": "9d170a01-8cc4-4e5a-b0f6-cf9040c82524", "width": 352, "x": 4795, "y": 32, "zOrder": 88, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 304, "layer": "", "name": "FlippingPlatform", "persistentUuid": "bd38b9ff-38b0-4eca-b5a7-3af45b6ab938", "width": 608, "x": 6304, "y": 544, "zOrder": 89, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 480, "layer": "", "name": "StaticPlatform3", "persistentUuid": "785a0cf8-b5ea-410c-9d96-dd216f90a615", "width": 960, "x": 7328, "y": 544, "zOrder": 90, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "fcb9ae97-f243-41d2-b258-ac6650dfda0b", "width": 341, "x": 7403, "y": 160, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 288, "layer": "", "name": "SpinningPlatformClockwise", "persistentUuid": "7267fcc8-b094-47e0-b8b7-ac6587b94ef6", "width": 576, "x": 5024, "y": 544, "zOrder": 91, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "932c7e0e-2128-414a-9467-c08d39872ca5", "width": 171, "x": 8597, "y": 320, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 4, "height": 64, "layer": "", "name": "BoundaryJumpThrough", "persistentUuid": "6243a533-81e0-47a0-be1c-048b7c7955a9", "width": 160, "x": 8608, "y": 320, "zOrder": 93, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "276e98f4-ae22-4a21-954b-c6e8a2d711fd", "width": 224, "x": 9216, "y": 640, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "HorizontalDemon", "persistentUuid": "d903019d-7c41-4929-bc2f-e498deb54a00", "width": 256, "x": 9408, "y": 640, "zOrder": 91, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "b51f0066-0d49-4a21-9cf0-79dbb4d4da0f", "width": 192, "x": 10432, "y": 0, "zOrder": 81, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "7f423aac-42a7-40ae-ac98-6028c73775d0", "width": 512, "x": 10272, "y": -160, "zOrder": 8, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "d15c5df6-3735-44e9-896c-19c1fceefe08", "width": 192, "x": 11392, "y": 0, "zOrder": 81, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "25e53358-8bda-4a9b-b641-dca3fbeaab20", "width": 512, "x": 11232, "y": -160, "zOrder": 8, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "ae833958-6f75-466b-903b-0ee31b2fb7eb", "width": 80, "x": 10648, "y": 32, "zOrder": 82, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "4bee4326-b233-4118-82d0-7c005f5863d8", "width": 80, "x": 10776, "y": 32, "zOrder": 82, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "f220557d-778f-4b52-904a-f2d7c3ef980b", "width": 80, "x": 10904, "y": 32, "zOrder": 82, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "dad60cd3-f328-4afa-b8aa-e6d15b89893a", "width": 80, "x": 11032, "y": 32, "zOrder": 82, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "95b9345e-35e0-4557-9427-b8c2f5757bce", "width": 80, "x": 11160, "y": 32, "zOrder": 82, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "c40c954f-49ac-42ba-bb55-5df61737da7e", "width": 80, "x": 11288, "y": 32, "zOrder": 82, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 48, "layer": "", "name": "StaticPlatform1", "persistentUuid": "64ca416b-179e-4397-b46d-65c2ef107974", "width": 128, "x": 12448, "y": 288, "zOrder": 96, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 48, "layer": "", "name": "StaticPlatform1", "persistentUuid": "472008f3-6d01-4871-85cc-11be72ccdf3d", "width": 128, "x": 12000, "y": 96, "zOrder": 96, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "6f1f754d-a0de-4664-b2ea-ed4e1080c679", "width": 512, "x": 11232, "y": -160, "zOrder": 96, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "cdac6500-32cf-4821-86da-33662b8d9fed", "width": 341, "x": 11307, "y": -416, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "34856d54-ce72-42cc-b159-296a20e73d02", "width": 80, "x": 12696, "y": -352, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "5abbb8de-3bab-4cc2-80b4-5a751ae454cf", "width": 80, "x": 12696, "y": -224, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "e0ed8fca-622b-4692-a7d3-4bc524c2d048", "width": 80, "x": 12696, "y": 32, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "fc3af844-61cd-463e-a1e2-426b5b35169d", "width": 80, "x": 12696, "y": -96, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "4278a343-5188-4a20-8d81-b7da4b76307c", "width": 80, "x": 12696, "y": 160, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "LaserDemon_Base", "persistentUuid": "5d60c484-aeb7-4538-ad27-6aa80ff3c29e", "width": 192, "x": 12640, "y": 288, "zOrder": 75, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "LaserDemon_Base", "persistentUuid": "036e66bf-b1d7-4d04-9408-cbe1bdf8090c", "width": 192, "x": 12640, "y": -800, "zOrder": 75, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "4e4220cc-293e-412b-9625-76c84d13db90", "width": 80, "x": 12696, "y": -480, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 176, "layer": "", "name": "HorizontalMovingPlatformRight", "persistentUuid": "b45cf40e-d794-403c-895d-1c642094b3fb", "width": 352, "x": 12160, "y": -160, "zOrder": 97, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "e239893b-1bf6-4df2-929f-4fb1a07b78e1", "width": 224, "x": 10848, "y": -384, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "7e36bf4c-370d-4b96-bdee-0e3c1c197d3e", "width": 224, "x": 10848, "y": -192, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 288, "layer": "", "name": "StaticPlatform3", "persistentUuid": "eb423c5b-3dd6-4966-9e70-be29b288573d", "width": 576, "x": 13135, "y": 160, "zOrder": 98, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 198, "layer": "", "name": "FlyingDemon", "persistentUuid": "7d436182-98a1-46ae-9134-ea43af436dde", "width": 198, "x": 12096, "y": 576, "zOrder": 5, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "Ladder", "persistentUuid": "11e48972-96c8-4a6e-ae22-316ac1aacffb", "width": 171, "x": 8597, "y": 810, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "StaticPlatform2", "persistentUuid": "57eb53c3-bdf7-4d60-8615-d501f27803c9", "width": 320, "x": 10144, "y": 896, "zOrder": 99, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "a0724908-3562-4b57-a70c-aa9457c07804", "width": 192, "x": 2072, "y": -640, "zOrder": 100, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "9c3e4b74-bb75-4e70-8d09-eb593a4b9ec9", "width": 192, "x": 2904, "y": 192, "zOrder": 100, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "bdd4aadb-a9e6-43b1-8f5b-5d140805ad86", "width": 512, "x": 1912, "y": -800, "zOrder": 8, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "6e8d1265-674c-4680-853c-6c485df499ba", "width": 512, "x": 2744, "y": 32, "zOrder": 8, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "50621dd9-2ca1-4175-ac2e-2dcd57940dc2", "width": 341, "x": 13242, "y": -96, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 176, "layer": "", "name": "StaticPlatform2", "persistentUuid": "bc5e4806-f10f-4b37-aaac-cfbbf6eb58a1", "width": 352, "x": 5696, "y": 144, "zOrder": 88, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "c75cac6a-e90d-4ad6-9a5b-cb422950e2a6", "width": 80, "x": 12696, "y": -608, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "2f11693a-5c75-4805-87c4-5c9c2322d8ee", "width": 64, "x": 8640, "y": 1920, "zOrder": 101, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "VerticalMovingPlatformDown", "persistentUuid": "264d31de-74a8-444c-b7e6-545c82e9cc82", "width": 192, "x": 13856, "y": 128, "zOrder": 102, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "f309025f-832d-4a4c-8ede-e76fd13943b6", "width": 192, "x": 14336, "y": 192, "zOrder": 103, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 5 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "FlippingPlatform", "persistentUuid": "8148d83d-6a66-4415-bd1f-c2bc45dfaa92", "width": 384, "x": 14080, "y": 836, "zOrder": 105, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "d30bf0c3-bd97-415a-b030-0f602466fa39", "width": 192, "x": 14087, "y": -768, "zOrder": 81, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "71c5a2bb-e83c-46ad-97d1-44372d4ea6fa", "width": 512, "x": 13927, "y": -928, "zOrder": 8, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "9ba05ce7-af3c-4674-b5e2-49f94175d6fa", "width": 80, "x": 14144, "y": -576, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "970ec5f3-d409-4323-af9b-63d1b8c1bedf", "width": 80, "x": 14144, "y": -448, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "103c22f8-4bd9-4576-9ee5-77ecc4ac7961", "width": 80, "x": 14144, "y": -192, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "4c1d2c20-8809-4a38-a9e0-352cfa1c392a", "width": 80, "x": 14144, "y": -320, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "f34729fa-75dc-4ae9-a14f-1fee676e8dae", "width": 80, "x": 14144, "y": 64, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "1f5c3341-af22-4d46-b7e8-7ac4414b360d", "width": 80, "x": 14144, "y": -64, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "67358fbd-7516-47db-9f5d-d23b5f8d60c8", "width": 512, "x": 13927, "y": 32, "zOrder": 8, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "70fa2a89-60d7-41f8-982b-e6e9173346e0", "width": 192, "x": 14087, "y": 192, "zOrder": 81, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 4, "height": 64, "layer": "", "name": "BoundaryJumpThrough", "persistentUuid": "c28ad4d6-8561-4ac0-8d0f-3c0d80ecea3c", "width": 192, "x": 14720, "y": 96, "zOrder": 93, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 577, "layer": "", "name": "Ladder", "persistentUuid": "971d49a5-e5bf-4d86-8a02-003a3d2843fe", "width": 192, "x": 14720, "y": 95, "zOrder": 10, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 272, "layer": "", "name": "SpinningRotatingPlatformCounterclockwise", "persistentUuid": "46077628-a1d6-4e29-86cc-9203cb7ff739", "width": 544, "x": 15392, "y": 1240, "zOrder": 107, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 272, "layer": "", "name": "SpinningRotatingPlatformClockwise", "persistentUuid": "bbddd66d-653e-4cba-8e7c-4ee624239d0a", "width": 544, "x": 15392, "y": 40, "zOrder": 10, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FlippingPlatform", "persistentUuid": "3e550694-f472-4e4d-bd49-a3390d5d8074", "width": 448, "x": 16512, "y": 768, "zOrder": 105, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 224, "layer": "", "name": "FlippingPlatform2", "persistentUuid": "5eca9b72-ec23-48b1-84d9-0602f30a954d", "width": 448, "x": 17376, "y": 768, "zOrder": 108, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FlippingPlatform", "persistentUuid": "c337ae2d-8429-4b9a-8b8b-e86ea0646a24", "width": 448, "x": 18240, "y": 768, "zOrder": 105, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 168, "layer": "", "name": "StaticPlatform1", "persistentUuid": "3543d841-5584-4d30-b888-dfa898201537", "width": 672, "x": 19104, "y": 760, "zOrder": 109, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "d48596a1-349d-4947-a7ec-9688ebf045a1", "width": 341, "x": 19264, "y": 480, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "27ad128c-32c1-4517-9734-c589e53a695a", "width": 341, "x": 30880, "y": 528, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "49130203-eafe-4c71-bda2-524f602cbf78", "width": 256, "x": 25984, "y": 736, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "7a1277c5-7bb5-43b4-b947-ca1d3af37784", "width": 256, "x": 26144, "y": 736, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "f4b10c1b-96f5-4dcd-96be-f8e98be997e1", "width": 256, "x": 26304, "y": 736, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "57558d98-19a9-41be-8975-390377f7995b", "width": 256, "x": 26464, "y": 736, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "9d4cc7d2-f586-4502-91b3-f3e9d40b8a03", "width": 256, "x": 26624, "y": 736, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "42e6ef76-cd85-4bed-a521-421b2ab9321b", "width": 256, "x": 27451, "y": 736, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": false, "height": 0, "layer": "", "name": "StaticPlatform2", "persistentUuid": "8b2bf275-e2e1-40af-8edb-f2659d58958f", "width": 0, "x": 28192, "y": 928, "zOrder": 119, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "StalagmiteDemon_Base", "persistentUuid": "60cb2756-9127-48a1-8831-a4d963235956", "width": 256, "x": 28544, "y": 800, "zOrder": 120, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 2.5 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "HorizontalMovingPlatformRight", "persistentUuid": "3144e198-25f1-4a13-b86c-16941affb41b", "width": 384, "x": 29361, "y": 1088, "zOrder": 121, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "cc035f54-383e-47c4-acac-d6f4681f6f8e", "width": 192, "x": 31392, "y": 880, "zOrder": 81, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "8c069009-3645-426f-90c0-1aa4d2a75d3b", "width": 512, "x": 31232, "y": 728, "zOrder": 8, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "60c448de-d286-4b45-bee1-7b49afdfdcc4", "width": 192, "x": 31392, "y": 416, "zOrder": 81, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "48cde209-49b6-4365-9cec-ab8c21dab46a", "width": 512, "x": 31232, "y": 256, "zOrder": 8, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "HorizontalMovingPlatformRight", "persistentUuid": "89e261a7-eb33-4e88-b9bd-9e73b7628c0b", "width": 384, "x": 31616, "y": 768, "zOrder": 122, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "4d41cdb1-20ee-47ae-b819-70638fab7f37", "width": 192, "x": 32224, "y": 416, "zOrder": 81, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "43fa370f-0b50-42fb-b09c-85be10c267db", "width": 512, "x": 32064, "y": 256, "zOrder": 8, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 64, "layer": "", "name": "StaticPlatform1", "persistentUuid": "1e74488e-f895-45a6-a6ed-c83ca64ea949", "width": 288, "x": 30752, "y": 780, "zOrder": 124, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 64, "layer": "", "name": "StaticPlatform1", "persistentUuid": "94b6a68b-e4f3-43d0-b8b3-8c0e854dcc10", "width": 288, "x": 31040, "y": 780, "zOrder": 124, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 64, "layer": "", "name": "StaticPlatform1", "persistentUuid": "bac3d361-4bbd-4ffd-bd29-a4974a3588b2", "width": 288, "x": 31328, "y": 780, "zOrder": 124, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "41903627-b288-4f3d-8294-0e167f3598f7", "width": 192, "x": 32768, "y": 888, "zOrder": 81, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "53c46262-853e-4232-803a-09cd170f1ebc", "width": 512, "x": 32608, "y": 728, "zOrder": 8, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "e6e67734-76db-48d1-bd61-cd42c5f6d609", "width": 80, "x": 31624, "y": 920, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "6fd1360d-8902-442f-8aeb-b31cdb84ae47", "width": 80, "x": 31752, "y": 920, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "8944778d-435c-414e-9c9f-71314136994e", "width": 80, "x": 32008, "y": 920, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "4172fb74-326b-4cb0-91d0-37e423077005", "width": 80, "x": 31880, "y": 920, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "0fda4f9b-2ada-4811-b4c3-f1a5aa72bea0", "width": 80, "x": 32520, "y": 920, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "3422ef5b-7945-4498-9875-29f0307b717f", "width": 80, "x": 32392, "y": 920, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "71b80b8c-10f4-40a5-906a-918e91ed9adc", "width": 80, "x": 32264, "y": 920, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "60c8fac6-f066-4271-9b7c-674ef11adaa0", "width": 80, "x": 32136, "y": 920, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "0c46a301-fc94-42c9-9555-c1fab432ef31", "width": 80, "x": 32648, "y": 920, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "b7f7f7d4-600b-4607-8219-940db160cbec", "width": 80, "x": 31608, "y": 448, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "36658f87-52bb-4429-99d1-7bbfb501efb5", "width": 80, "x": 31736, "y": 448, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "4c07249c-4800-4d72-a86d-c3b5c6f7880b", "width": 80, "x": 31864, "y": 448, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "c9fc602e-ffd8-4f58-8e16-069f9646a2ee", "width": 80, "x": 31992, "y": 448, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "688d7274-ef1f-4d78-95bf-eeba8d792678", "width": 80, "x": 32120, "y": 448, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "ba6eae4c-fe30-431f-be67-3c3d902a8901", "width": 192, "x": 32224, "y": -176, "zOrder": 81, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "f4f03167-b58d-43e7-a3d4-09ce51421d66", "width": 512, "x": 32064, "y": -336, "zOrder": 8, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 172, "layer": "", "name": "VerticalMovingPlatformDown", "persistentUuid": "520ff56e-78e2-4e05-824b-398b63b5f09e", "width": 172, "x": 32500, "y": 168, "zOrder": 125, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "a91cd73b-de07-4ee3-9ce9-2ece089bfc5e", "width": 80, "x": 32280, "y": 280, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "6931c4f2-9126-4659-b4b6-d68e41c32da6", "width": 80, "x": 32280, "y": 152, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "6ec62170-6e98-4ea7-a785-461cddafebb2", "width": 192, "x": 32768, "y": 288, "zOrder": 81, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "3fe96db2-f7d5-4229-84ff-46c3d35e28d9", "width": 512, "x": 32608, "y": 128, "zOrder": 8, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 64, "layer": "", "name": "StaticPlatform1", "persistentUuid": "02c241c1-e2b7-4206-bcd5-6670d8940dcd", "width": 256, "x": 32736, "y": 180, "zOrder": 124, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "HorizontalMovingPlatformRight", "persistentUuid": "bb16d3df-1477-47a2-90d0-9986b85f2dc6", "width": 384, "x": 33856, "y": 168, "zOrder": 122, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "6d0aee74-b6de-4c2d-bd2a-66a05f9544f4", "width": 80, "x": 32280, "y": 24, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "449fb99b-ad43-4a12-afc4-851ce80ff7c9", "width": 80, "x": 32824, "y": 744, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "c4fc4ea5-3db7-40a7-8494-02faaa1fa727", "width": 80, "x": 32824, "y": 616, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "304827d3-f74f-4a50-ba27-9e4af9ef6d42", "width": 80, "x": 32824, "y": 488, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "HorizontalMovingPlatformLeft", "persistentUuid": "1d6d0c45-7e62-460c-91ab-27560739047c", "width": 384, "x": 33492, "y": 168, "zOrder": 126, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 172, "layer": "", "name": "VerticalMovingPlatformUp", "persistentUuid": "f49ff3d3-e4b0-44ad-9715-acb9ea3962fe", "width": 172, "x": 35060, "y": 768, "zOrder": 127, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "6b0cfd13-45aa-4665-b0e0-232b5b965171", "width": 192, "x": 34784, "y": 288, "zOrder": 81, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "53fb5468-a949-42e1-a072-9fb42aa3bb08", "width": 512, "x": 34624, "y": 128, "zOrder": 8, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "45418a26-b97f-4aa7-b034-0f7dda78308e", "width": 192, "x": 35328, "y": -176, "zOrder": 81, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "9c12f473-342a-4ce8-af7e-e60d0108f76e", "width": 512, "x": 35168, "y": -336, "zOrder": 8, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "7f45e8ed-ad59-4670-b747-31d54c8c1124", "width": 80, "x": 32456, "y": -144, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "87291111-dced-4086-a9b8-d5f127ed85b6", "width": 80, "x": 32584, "y": -144, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "ad3f4780-294c-4ed5-9521-a0dc6b4cdebf", "width": 80, "x": 32712, "y": -144, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "14bb1ff9-c1d8-4d37-b191-81e6e82f1ec6", "width": 80, "x": 32840, "y": -144, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "54046ac0-2bfc-4776-a0b6-ef7794786035", "width": 80, "x": 32968, "y": -144, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "5b793fb9-864a-4c12-9162-f3701bf901d3", "width": 80, "x": 33096, "y": -144, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "59005b45-955c-4f55-96d9-5a4130272116", "width": 80, "x": 33224, "y": -144, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "6cab1d3e-fe6a-486a-a87c-db11756a5be2", "width": 80, "x": 33352, "y": -144, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "8e57b6f3-2e01-4121-8a7f-6e562d958bc0", "width": 80, "x": 33480, "y": -144, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "6b017f1d-1d32-416a-a944-dba5b99796a7", "width": 80, "x": 33608, "y": -144, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "739f76a7-14e5-4a69-8f99-f42cf961f83a", "width": 80, "x": 33736, "y": -144, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "bcd7a90e-1bca-4b7e-b404-98602b925c34", "width": 80, "x": 33864, "y": -144, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "8ca1be9f-8994-4958-8bf5-475a67eb4d90", "width": 80, "x": 33992, "y": -144, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "95899f72-b0da-41bb-a58d-fbb13c210879", "width": 80, "x": 34120, "y": -144, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "df5afc27-2208-4cd6-91ed-3b54ced98e1f", "width": 80, "x": 34248, "y": -144, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "daaa85c2-9162-47c9-99b9-35391d3ee77a", "width": 80, "x": 34376, "y": -144, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "9ddfdce9-85d6-4c60-8aad-9230f72f9992", "width": 80, "x": 33128, "y": 320, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "99e46b8b-c5b2-4723-bbf7-c6894aacf8f6", "width": 80, "x": 33256, "y": 320, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "ce37ea4b-5cc9-45a3-a033-8fa69905e5b8", "width": 80, "x": 33384, "y": 320, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "ae0b05bf-7e48-4e6f-be8d-205527b5bae6", "width": 80, "x": 33512, "y": 320, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "d8db12e1-cd93-4c71-977d-efce3212ee94", "width": 80, "x": 33640, "y": 320, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "a2c239ba-58b6-4c73-be24-89313a222217", "width": 80, "x": 33768, "y": 320, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "deaac59a-14de-431d-afa1-7443215c89a5", "width": 80, "x": 33896, "y": 320, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "36d969a4-6dd1-4a86-958e-51affc9a82eb", "width": 80, "x": 34024, "y": 320, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "cab2aa41-6b67-4af9-b4eb-8159d088d138", "width": 80, "x": 34152, "y": 320, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "51ae6438-cedb-4ed5-8656-5719cdf9c15f", "width": 80, "x": 33000, "y": 320, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "f13d300a-52e8-4d56-92ad-f9fce8de8240", "width": 80, "x": 34280, "y": 320, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "69f4c44f-de00-4f3d-b096-22fb73418f75", "width": 80, "x": 34888, "y": -144, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "b2eb6a77-8fe8-4092-9ded-e84b9d9bbfe6", "width": 80, "x": 34760, "y": -144, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "44b50aa7-9d91-491f-9feb-d76b395cebef", "width": 80, "x": 34632, "y": -144, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "3d1945a0-4592-4efa-89fa-b6ce2f9f240c", "width": 80, "x": 34504, "y": -144, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 64, "layer": "", "name": "StaticPlatform1", "persistentUuid": "6daffc3c-b116-4369-9e6a-39bec486332e", "width": 256, "x": 34752, "y": 180, "zOrder": 124, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "01803e4a-558b-4e0a-bf90-6d065e1e8422", "width": 80, "x": 34408, "y": 320, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "34d7f896-29f7-4f8a-9827-13eab39a9665", "width": 80, "x": 34536, "y": 320, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "25fcba59-bd78-42bd-ac7d-4c013db75dfe", "width": 80, "x": 34664, "y": 320, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "83fd15c4-6318-43fb-8d43-7374e6189e8f", "width": 80, "x": 35016, "y": -144, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "2a844d25-605a-4c5b-b201-63f14cd68ffc", "width": 80, "x": 35144, "y": -144, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanentSingle", "persistentUuid": "bd9e1733-0650-431c-a123-704f4dbaef1c", "width": 80, "x": 35272, "y": -144, "zOrder": 128, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "b9872216-ae7a-4a36-9a1f-a7a16fbddc65", "width": 192, "x": 35328, "y": 888, "zOrder": 81, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "348c52f8-667f-43fe-af84-f42666225861", "width": 512, "x": 35168, "y": 728, "zOrder": 8, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "c3d225db-511b-41b1-a745-9dd926412341", "width": 80, "x": 33528, "y": 920, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "3efe68e3-3c12-4fe9-bc4f-0e753493c438", "width": 80, "x": 33656, "y": 920, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "b28c5a18-3fdb-4cc0-a649-c7b319c05709", "width": 80, "x": 33784, "y": 920, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "db980401-c318-4b3e-8be6-7cefa3a7c8f3", "width": 80, "x": 33912, "y": 920, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "3bb749ef-73a4-48b3-bfc4-9dfd65253009", "width": 80, "x": 34040, "y": 920, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "0704b894-74de-4e44-a967-b040f5de12a6", "width": 80, "x": 34168, "y": 920, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "21b5227a-85eb-427f-a6f9-7b3be208b992", "width": 80, "x": 34296, "y": 920, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "b5f7d563-87d7-460d-9e39-d7df72a40e43", "width": 80, "x": 34424, "y": 920, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "0b57f3cd-207a-465c-893c-6f33a2c61c3c", "width": 80, "x": 34936, "y": 920, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "327ee4c7-f175-4fca-b33a-07e25cc29f00", "width": 80, "x": 34808, "y": 920, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "4756b73d-54a4-41d5-93d3-277dd10da6b3", "width": 80, "x": 34680, "y": 920, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "cb29ba57-87b5-4d01-b6b8-e83681b35fb9", "width": 80, "x": 34552, "y": 920, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "b975f785-31ae-4bad-a5ef-662bceee4645", "width": 80, "x": 35064, "y": 920, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "e907f5fa-9c01-414a-afaf-a7c8e92e762f", "width": 80, "x": 35192, "y": 920, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 172, "layer": "", "name": "VerticalMovingPlatformDown", "persistentUuid": "d05495d1-1598-413c-bbc1-35eaad7f269e", "width": 172, "x": 33044, "y": 768, "zOrder": 125, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 64, "layer": "", "name": "StaticPlatform1", "persistentUuid": "25f66cac-5563-4b92-8e2e-4dfa8bc11a3b", "width": 256, "x": 33280, "y": 780, "zOrder": 124, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "6255e76c-34d2-438a-9980-3ffe6f61ecc0", "width": 192, "x": 33312, "y": 888, "zOrder": 81, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "6e37019a-1611-454d-8041-82bf62d7b9df", "width": 512, "x": 33152, "y": 728, "zOrder": 8, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "59c8753f-567e-4268-9eb1-f9c233ea21a9", "width": 80, "x": 35384, "y": 100, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "debbb82f-359b-4671-a949-d756edc741db", "width": 80, "x": 35384, "y": 228, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "8171c00e-c9e1-4b1e-a250-078faf39c050", "width": 80, "x": 35384, "y": 356, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "8a7b450c-e597-4bc6-83ef-734f9db2a47e", "width": 80, "x": 35384, "y": 484, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "182712db-f074-49ad-b641-6473d63f6ad0", "width": 80, "x": 35384, "y": 612, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "28c3fc84-150e-467d-a473-854ef2ba9013", "width": 80, "x": 35384, "y": 740, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanentSingle", "persistentUuid": "7b21ce77-5822-4e01-b036-d2a14c846606", "width": 80, "x": 35384, "y": -28, "zOrder": 128, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 64, "layer": "", "name": "StaticPlatform1", "persistentUuid": "bc933762-9fa9-45f9-a69b-34f743162882", "width": 256, "x": 33280, "y": 1380, "zOrder": 124, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "e9298120-412f-497b-9868-0e78d1da8dd5", "width": 512, "x": 32608, "y": 1328, "zOrder": 8, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "d626674c-9a9c-4159-a2cc-036ad08801f4", "width": 192, "x": 32768, "y": 1488, "zOrder": 81, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "3b6572ad-a3f1-4577-a198-140abd8e0cb1", "width": 80, "x": 32824, "y": 1092, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "f33a6c32-8b5b-4158-81f5-33b086bb65ef", "width": 80, "x": 32824, "y": 1220, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "cbcb507f-b0f6-4050-9fc2-08cb882e6a65", "width": 80, "x": 32824, "y": 1348, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 64, "layer": "", "name": "StaticPlatform1", "persistentUuid": "6e4fffcd-2aec-47f7-8f60-64e97e8bdb53", "width": 256, "x": 35296, "y": 1380, "zOrder": 124, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "dc04a1bd-2ba6-47cf-83ac-dca23a056894", "width": 512, "x": 35808, "y": 1328, "zOrder": 8, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "dd6bdd88-b3f8-49ca-ab9f-0e51a239b76e", "width": 192, "x": 35968, "y": 1488, "zOrder": 81, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "30d99425-121e-4267-a46c-5305d457d0d3", "width": 80, "x": 33000, "y": 1520, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "b670049a-275e-4a05-8627-0f755d808283", "width": 80, "x": 34696, "y": 1520, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "bdd4ea2f-3f16-4ce6-ac72-2ac04f1e826f", "width": 80, "x": 34568, "y": 1520, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "1304179d-569d-483a-8b75-965712b2a13c", "width": 80, "x": 34440, "y": 1520, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "12dde5cd-dfe9-4b2c-a74e-957c677863a2", "width": 80, "x": 34312, "y": 1520, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "7ed2748e-a731-4c1e-ad47-a365c8824de6", "width": 80, "x": 34184, "y": 1520, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "25bc0379-b1dd-49b0-ad01-8afb23098c1f", "width": 80, "x": 34056, "y": 1520, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "65ac65b5-b320-4569-b78c-2d0d3ce38ad9", "width": 80, "x": 33800, "y": 1520, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "15994841-6dea-4bae-bcf2-906606140da8", "width": 80, "x": 33928, "y": 1520, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "94bb4045-ff4f-4f69-9c8c-f32db51621d8", "width": 80, "x": 33672, "y": 1520, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "88ad83f2-aeae-4c89-8423-17dc79dba25f", "width": 80, "x": 33544, "y": 1520, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "d2909d2e-aba1-4197-857b-357253e3422d", "width": 80, "x": 33128, "y": 1520, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "e00e6d87-700f-4937-8dae-ec7f5aaaa72a", "width": 80, "x": 35208, "y": 1520, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "abc230f1-9bc1-4c72-a651-2852e4e2e4e6", "width": 80, "x": 35080, "y": 1520, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "1ce2fa96-9302-4c40-b92d-6af5e761fe19", "width": 80, "x": 34952, "y": 1520, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "3f1947b6-8af0-4028-be91-05bc8c18f2b6", "width": 80, "x": 34824, "y": 1520, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "a7706b98-d7b8-47fc-83da-ed6ff00b69e1", "width": 80, "x": 35576, "y": 1520, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "7c1d93b0-a8bb-4018-8df3-bf90fa78edec", "width": 80, "x": 35704, "y": 1520, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 172, "layer": "", "name": "VerticalMovingPlatformUp", "persistentUuid": "9ae90d59-0f6d-46fa-b284-ce6f6c36922f", "width": 172, "x": 35604, "y": 1368, "zOrder": 127, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 172, "layer": "", "name": "VerticalMovingPlatformUp", "persistentUuid": "16028bba-1a11-4cab-9004-bd8860b2259c", "width": 172, "x": 35604, "y": 768, "zOrder": 127, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "7d241701-a0ca-4383-9e2a-b29b01aa7368", "width": 192, "x": 35968, "y": 288, "zOrder": 81, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "0df6350b-389b-490b-829a-5773c1e656bd", "width": 512, "x": 35808, "y": 128, "zOrder": 8, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "38b580c9-b55d-42a0-a490-bec424451ddd", "width": 80, "x": 36024, "y": 696, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "02735caa-8a9f-466d-89e1-691fe5cbee5c", "width": 80, "x": 36024, "y": 824, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "7fcce354-6b85-4f61-b381-9a736d8ca37b", "width": 80, "x": 36024, "y": 952, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "1039c138-81cc-4eba-b37d-da64fdf89e91", "width": 80, "x": 36024, "y": 1080, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "5ed707b6-8f41-440a-b23f-57d9afe8cc5c", "width": 80, "x": 36024, "y": 1208, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "805607d5-9740-4720-9cca-67619847ccc4", "width": 80, "x": 36024, "y": 1336, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "cda60a70-9c17-41b0-9f9c-c906e043c3dc", "width": 80, "x": 36024, "y": 568, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanentSingle", "persistentUuid": "9c927b4a-ce70-4315-82fd-fbb4b868edb5", "width": 80, "x": 36024, "y": 440, "zOrder": 128, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "0230c46c-6026-4a33-9317-11af3230c675", "width": 192, "x": 37120, "y": 288, "zOrder": 81, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "HorizontalMovingPlatformRight", "persistentUuid": "539b9cb7-6f79-4ff2-a94a-21d6c1d69dfc", "width": 384, "x": 36192, "y": 168, "zOrder": 122, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 64, "layer": "", "name": "StaticPlatform1", "persistentUuid": "8ff6c0b7-5462-4cc1-a107-e095f629cbbd", "width": 256, "x": 35936, "y": 180, "zOrder": 124, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "baf88af3-5799-4561-99f1-7c4fab5fe14a", "width": 192, "x": 37120, "y": -176, "zOrder": 81, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "f2c614ec-7fa0-41af-8120-64eabc8bbb31", "width": 80, "x": 35576, "y": -144, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "3fb69b2b-3145-43ab-9d47-2782cea85fda", "width": 80, "x": 35704, "y": -144, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "860c7340-2fad-4c5b-94b1-52fb59622622", "width": 80, "x": 35832, "y": -144, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "c3454c34-8c4f-47d7-a180-7578537f94f3", "width": 80, "x": 35960, "y": -144, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "a430553a-f430-4327-b74e-55633576f8a2", "width": 80, "x": 36088, "y": -144, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "e6980061-b149-41b7-8890-5e95d8d65149", "width": 80, "x": 36216, "y": -144, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "5d92b57f-8a6e-4fba-97a1-eb70ab91d998", "width": 80, "x": 36344, "y": -144, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "20de24ba-78b6-4daf-aadb-55a856ebc69b", "width": 80, "x": 36856, "y": -144, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "1ab38094-5eab-4627-a828-b8d209eb8526", "width": 80, "x": 36728, "y": -144, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "3c8cb383-c217-40fb-b377-ef345caf6f51", "width": 80, "x": 36600, "y": -144, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "fc472973-4827-4b74-9b1e-9ca6b60b8241", "width": 80, "x": 36472, "y": -144, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "d0f9d944-1259-4d54-b6c8-56d3c9016eaf", "width": 80, "x": 36216, "y": 320, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "488c3a99-d865-451d-b36e-ef4e19ad5ed0", "width": 80, "x": 36344, "y": 320, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "937806d1-9067-4037-acbf-36befc6f183a", "width": 80, "x": 36472, "y": 320, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "83fc9086-1dd2-4530-b17d-bc38bd9208a5", "width": 80, "x": 36600, "y": 320, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "4c18dba5-d9fa-4323-af64-e8e99269d664", "width": 80, "x": 36728, "y": 320, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "375e46d1-3311-46de-ae72-5fb32c1930c7", "width": 80, "x": 36856, "y": 320, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "d481a7e3-2d07-44c4-8748-25c92bf5d529", "width": 80, "x": 36984, "y": 320, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "5968c7a8-e6f2-4f88-9a0f-a8a5318f3556", "width": 256, "x": 32992, "y": 912, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "HorizontalMovingPlatformLeft", "persistentUuid": "0427af97-aee1-4516-b17f-b222f7538e8b", "width": 384, "x": 34912, "y": 768, "zOrder": 126, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "HorizontalMovingPlatformRight", "persistentUuid": "104c56ab-efe5-4509-9f19-e93b084bc4a3", "width": 384, "x": 33536, "y": 768, "zOrder": 122, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 64, "layer": "", "name": "StaticPlatform1", "persistentUuid": "fdd1cb0a-b5c5-4ebb-a035-a390abe8c959", "width": 216, "x": 35832, "y": 788, "zOrder": 124, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "9ca4b410-6116-42ab-a705-f2b26e435910", "width": 80, "x": 35832, "y": 1520, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanent", "persistentUuid": "f1783a0b-1fa7-46a4-a3c9-9197023a7cfc", "width": 80, "x": 36984, "y": -144, "zOrder": 106, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 64, "layer": "", "name": "StaticPlatform1", "persistentUuid": "04e4403b-3024-4860-862b-fee5ed5aadc3", "width": 256, "x": 37088, "y": 180, "zOrder": 124, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "HorizontalMovingPlatformRight", "persistentUuid": "629e66e9-5cd7-468b-bead-a2ff6e32d93d", "width": 384, "x": 33536, "y": 1368, "zOrder": 122, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "HorizontalMovingPlatformLeft", "persistentUuid": "12177cb1-0424-4afd-b50e-c8c27e022647", "width": 384, "x": 34912, "y": 1368, "zOrder": 126, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "15bca4c9-bbe4-4511-b654-3d2705f17729", "width": 224, "x": 34720, "y": 1776, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "ce7dacfe-a94c-4fbd-841e-bf68df9bc1d5", "width": 256, "x": 33016, "y": 1664, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "5a95ad21-4880-47a2-a54f-2000811a8c0d", "width": 341, "x": 7883, "y": 160, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 200, "layer": "", "name": "StaticPlatform1", "persistentUuid": "55b1cea2-dd56-4fec-8e7e-258838f08e9b", "width": 736, "x": 25024, "y": 760, "zOrder": 109, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "785339ba-adb9-4886-8a3f-d60b60fe4db0", "width": 341, "x": 25227, "y": 512, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Base", "persistentUuid": "4b3043e5-93e3-4c01-a555-7fd728aea243", "width": 256, "x": 35936, "y": -320, "zOrder": 132, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Base", "persistentUuid": "bef1b06d-8873-485e-bce7-a62249ae07a7", "width": 256, "x": 36704, "y": -352, "zOrder": 132, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Eye", "persistentUuid": "8a0e20bc-549a-4c2a-91c1-80014252feed", "width": 256, "x": 36704, "y": -352, "zOrder": 133, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 1 } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Eye", "persistentUuid": "623bd615-f236-4907-a8dd-7c36e31ee76d", "width": 256, "x": 35936, "y": -320, "zOrder": 133, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "33e51be1-5774-4806-9244-fa78cb8f80bd", "width": 192, "x": 33312, "y": 1488, "zOrder": 81, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "92fe6bbb-3fe7-470f-8617-206ac524106b", "width": 512, "x": 33152, "y": 1328, "zOrder": 8, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 90, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "LaserDemon_BeamPermanentSingle", "persistentUuid": "bc40ee3d-a9f0-47fe-bddd-c9e4b34aa136", "width": 80, "x": 33256, "y": 1520, "zOrder": 145, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "c449d633-5a40-42a0-b6fb-87986daec751", "width": 512, "x": 35168, "y": 1328, "zOrder": 8, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "34b81892-21d5-4619-9e4d-f6c57a2b3bd2", "width": 192, "x": 35328, "y": 1488, "zOrder": 81, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Eye", "persistentUuid": "02a424a9-49c7-4de3-9cd6-9970ec58ea46", "width": 256, "x": 37648, "y": -32, "zOrder": 133, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 1.5 }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 5 } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Base", "persistentUuid": "7e9e0ced-4587-42d2-82f2-ccca358e4d8e", "width": 256, "x": 37648, "y": -32, "zOrder": 132, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "0ac87114-2394-4106-833e-b0c15b4232c7", "width": 341, "x": 35264, "y": 1120, "zOrder": 14, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "5593f1da-9504-4f47-8bda-9bf00687a167", "width": 512, "x": 36960, "y": 128, "zOrder": 147, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "9ea02462-d687-4a67-8983-2afe29a358eb", "width": 512, "x": 36960, "y": -336, "zOrder": 147, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 512, "layer": "", "name": "LaserRing", "persistentUuid": "804c5ba1-a48d-455a-8a84-c3c9f6de1b4e", "width": 512, "x": 36960, "y": 128, "zOrder": 147, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "8b7abb28-50c7-45ec-9277-c05d023dd8f4", "width": 32, "x": 31296, "y": 384, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "2c4b677e-2de8-42fd-870e-182a34e928ef", "width": 32, "x": 31936, "y": 384, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "18adaa18-3e1d-4ec2-a9a0-fd9e646802bc", "width": 32, "x": 31968, "y": 32, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "eb46b07a-5798-4769-a004-121fd3033970", "width": 32, "x": 32000, "y": -320, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "8e39f608-3dd1-4782-864e-2dd6b20e1a87", "width": 32, "x": 32800, "y": -320, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "50bb2602-4d23-484b-aa77-f1b58cfde4ce", "width": 32, "x": 33600, "y": -320, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "902e60b8-0843-4350-b90e-f0a52c614f2e", "width": 32, "x": 34400, "y": -320, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "dd948e51-4a23-4a65-b7a7-119394397efb", "width": 32, "x": 35200, "y": -320, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "c65f6560-17ce-45a4-b629-fe11d810105b", "width": 192, "x": 4352, "y": 192, "zOrder": 103, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 3.5 } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "6531a370-2c12-4182-aedf-be415437fc48", "width": 192, "x": 14336, "y": -64, "zOrder": 103, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 5 }, { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 2.5 } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Eye", "persistentUuid": "6d8a5772-6bf3-4d50-96ca-8a7ebf210bf1", "width": 256, "x": 35808, "y": -416, "zOrder": 133, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 3 } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Base", "persistentUuid": "fed951e2-e4a7-4cc3-b4aa-990143e173e5", "width": 256, "x": 35808, "y": -416, "zOrder": 132, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 320, "layer": "", "name": "HorizontalMovingPlatformRight", "persistentUuid": "881ee039-400b-47d8-88ba-53ef88c66180", "width": 640, "x": 20288, "y": 16, "zOrder": 138, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "bfd70373-ed51-40f5-8bb8-e55aa94ce8c8", "width": 192, "x": 21664, "y": -320, "zOrder": 139, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "1228d85e-667c-401c-ba77-afb2984a55c4", "width": 192, "x": 21856, "y": -320, "zOrder": 139, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "8927e387-c225-4d31-92d5-ddf51da95b14", "width": 192, "x": 22048, "y": -320, "zOrder": 139, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "44976f0d-1c94-4347-b476-7ec18dd02afb", "width": 192, "x": 22240, "y": -320, "zOrder": 139, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "46b4b430-9c1d-47c2-af35-7accf26a3bed", "width": 192, "x": 22432, "y": -320, "zOrder": 139, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "9df20307-b242-412b-ba24-72318e170e22", "width": 192, "x": 21664, "y": 32, "zOrder": 139, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "e467b356-059b-498c-a3f7-b45b023151fb", "width": 192, "x": 21856, "y": 32, "zOrder": 139, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "38efa5ad-f2f8-40e1-a144-2740ecd7e0bf", "width": 192, "x": 22048, "y": 32, "zOrder": 139, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "9e734adf-6557-47dd-80c5-9650058ceb83", "width": 192, "x": 22240, "y": 32, "zOrder": 139, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "fbcf43cd-b074-469c-9c89-80a050c11dc7", "width": 192, "x": 22432, "y": 32, "zOrder": 139, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "c1f175ae-2ead-4e94-aca5-93c8d65c3334", "width": 192, "x": 22624, "y": -320, "zOrder": 139, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "03c41163-ebc6-4900-b426-3750922e9cad", "width": 192, "x": 22624, "y": 32, "zOrder": 139, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 50, "layer": "", "name": "StaticPlatform1", "persistentUuid": "133384ac-8901-4d9f-affc-1eadb79ac7ea", "width": 224, "x": 23008, "y": 64, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "f34012d1-522a-49fd-ae88-919fb21839cb", "width": 192, "x": 22816, "y": 32, "zOrder": 139, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "3bbd71fd-e98f-4568-82d8-67511d73da7c", "width": 192, "x": 22816, "y": -320, "zOrder": 139, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 50, "layer": "", "name": "StaticPlatform1", "persistentUuid": "67e8072c-5276-4dea-b4c7-5c73feaa4400", "width": 224, "x": 21408, "y": 32, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 96, "layer": "", "name": "StaticPlatform2", "persistentUuid": "2b891930-7628-44df-bd04-32b9bd044c80", "width": 192, "x": 19872, "y": 384, "zOrder": 141, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Base", "persistentUuid": "8d04ed42-37dd-47ff-833f-0fe95739085c", "width": 256, "x": 22080, "y": 192, "zOrder": 143, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Eye", "persistentUuid": "c184c851-3edb-4f59-89b7-e902d6443c76", "width": 256, "x": 22080, "y": 192, "zOrder": 144, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 4 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 50, "layer": "", "name": "StaticPlatform1", "persistentUuid": "379fc8ed-11ed-4bc3-a57b-4b8f67630b12", "width": 224, "x": 23584, "y": 448, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Eye", "persistentUuid": "0cad0927-7c7a-44ed-b693-262cf691a6e1", "width": 256, "x": 22336, "y": 192, "zOrder": 144, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "ProjectileLifetime", "type": "number", "value": 4 }, { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 3 } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Base", "persistentUuid": "7f04211b-84f3-42e5-b45d-dfe276c734f5", "width": 256, "x": 22336, "y": 192, "zOrder": 143, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 50, "layer": "", "name": "StaticPlatform1", "persistentUuid": "12bb6409-7137-44ac-9ce9-5ec4de8d8d0b", "width": 224, "x": 24256, "y": 654, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "LaserDemon_Base", "persistentUuid": "1a0a0151-fa39-4c91-b543-fac7830ad6b2", "width": 192, "x": 792, "y": 192, "zOrder": 75, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 2.5 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "LaserDemon_Base", "persistentUuid": "c821e997-c500-4135-97aa-02b0b6c9dcdd", "width": 192, "x": 792, "y": -640, "zOrder": 75, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 3 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "9f92a497-336e-43b6-a7a8-7e08291b6f0a", "width": 80, "x": 848, "y": -448, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 2.5 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "155a1166-05d5-422a-a23c-577addcde242", "width": 80, "x": 848, "y": -320, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 2.5 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "aaac862a-9b62-4115-bf03-f4d0a5bbbe5d", "width": 80, "x": 848, "y": -192, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 2.5 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "b9e3bf91-8b47-42b7-a2e0-c3e48b8ae231", "width": 80, "x": 848, "y": -64, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 2.5 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "LaserDemon_Beam", "persistentUuid": "9fea9667-2a6d-4653-b7ce-e4f79de3651f", "width": 80, "x": 848, "y": 64, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 0 }, { "folded": true, "name": "OnOffTime", "type": "number", "value": 2.5 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 320, "layer": "", "name": "VerticalMovingPlatformUp", "persistentUuid": "d77f003c-4140-4f7d-9a75-5fa1afab8096", "width": 320, "x": 10688, "y": 736, "zOrder": 95, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 320, "layer": "", "name": "VerticalMovingPlatformDown", "persistentUuid": "9f7cf05d-d10c-4598-997b-7ac88734a991", "width": 320, "x": 11008, "y": 136, "zOrder": 94, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 176, "layer": "", "name": "HorizontalMovingPlatformLeft", "persistentUuid": "aa4115ee-6b7e-4b69-93bf-c26e8a95bf8a", "width": 352, "x": 11860, "y": 640, "zOrder": 148, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "HorizontalMovingPlatformLeft", "persistentUuid": "a64a6277-30de-4677-8c0d-cad2217bd9a4", "width": 512, "x": 3328, "y": 586, "zOrder": 83, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "HorizontalMovingPlatformRight", "persistentUuid": "dded2192-d8a6-40d9-9e7b-f5403beeaf99", "width": 512, "x": 3808, "y": 586, "zOrder": 84, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "fb391171-1a37-4283-b376-db90a5c3b664", "width": 32, "x": 35408, "y": 1152, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "a6dbd77e-0e51-444f-9040-8cce5f74f494", "width": 32, "x": 35552, "y": 1216, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "225e2869-deaa-4aa1-9225-f8784def1167", "width": 32, "x": 35552, "y": 1248, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "c80d49c5-6f9a-499c-861d-04f079164d77", "width": 32, "x": 35264, "y": 1216, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "0f1d2707-af3c-4423-bf9b-a6b0800b9b03", "width": 32, "x": 35264, "y": 1184, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "2d6eadc6-08b7-4076-82ee-4648ede9a93d", "width": 32, "x": 31024, "y": 560, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "030875a0-d868-4ff4-896d-e13f078b5ded", "width": 32, "x": 31168, "y": 624, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "6ddc9c70-c564-485b-a92a-b3889250b10c", "width": 32, "x": 31168, "y": 656, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "cba3c244-2626-4616-b655-c3eefd7217d1", "width": 32, "x": 35264, "y": 1248, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "StaticPlatform2", "persistentUuid": "ebc03240-3b22-40b7-af42-33ecc3b4c5ef", "width": 32, "x": 35552, "y": 1184, "zOrder": 131, "numberProperties": [], "stringProperties": [], "initialVariables": [] } ], "objects": [ { "assetStoreId": "", "height": 1024, "name": "BackgroundPlants", "texture": "Assets\\Images\\Levels\\7\\Background\\Background.png", "type": "TiledSpriteObject::TiledSprite", "width": 2048, "variables": [], "effects": [ { "effectType": "TiltShift", "name": "Effect", "doubleParameters": { "blur": 30, "gradientBlur": 1000 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "OldFilm", "name": "Effect2", "doubleParameters": { "animationFrequency": 60, "noise": 0.1, "noiseSize": 1, "scratch": 0.5, "scratchDensity": 0.4, "scratchWidth": 1, "sepia": 0.1, "vignetting": 0.75, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [] } ], "objectsFolderStructure": { "folderName": "__ROOT", "children": [ { "objectName": "BackgroundPlants" } ] }, "events": [ { "type": "BuiltinCommonInstructions::Link", "include": { "includeConfig": 0 }, "target": "LevelEvents" }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Change Scene", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "LayerVisible" }, "parameters": [ "", "\"EndScreen\"" ] }, { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "PanelSpriteButton::PanelSpriteButton::IsClicked" }, "parameters": [ "UI_Sinage_RetryButton", "" ] }, { "type": { "value": "KeyReleased" }, "parameters": [ "", "Space" ] } ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Player", "Lives", ">", "0" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Mindscape\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Player", "Lives", "<=", "0" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Level7\"", "" ] } ] } ] } ], "parameters": [] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "AnimatableCapability::AnimatableBehavior::SetName" }, "parameters": [ "Memory", "Animation", "=", "\"BlockWorld\"" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Player", "LifeForce", "=", "7" ] } ] } ], "layers": [ { "ambientLightColorB": 8002120, "ambientLightColorG": 6031360, "ambientLightColorR": 7844472, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": true, "name": "Background", "renderingType": "2d", "visibility": true, "cameras": [], "effects": [] }, { "ambientLightColorB": 32, "ambientLightColorG": 0, "ambientLightColorR": 0, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "", "renderingType": "", "visibility": true, "cameras": [ { "defaultSize": true, "defaultViewport": true, "height": 0, "viewportBottom": 1, "viewportLeft": 0, "viewportRight": 1, "viewportTop": 0, "width": 0 } ], "effects": [ { "effectType": "Scene3D::HemisphereLight", "name": "3D Light", "doubleParameters": { "elevation": 45, "intensity": 1, "rotation": 0 }, "stringParameters": { "groundColor": "64;64;64", "skyColor": "255;255;255", "top": "Y-" }, "booleanParameters": {} }, { "effectType": "OldFilm", "name": "Effect", "doubleParameters": { "animationFrequency": 60, "noise": 0.15, "noiseSize": 1, "scratch": 0, "scratchDensity": 0.2, "scratchWidth": 1, "sepia": 0, "vignetting": 0.4, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": {} } ] }, { "ambientLightColorB": 9191608, "ambientLightColorG": 6031360, "ambientLightColorR": 8756632, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "UI", "renderingType": "2d", "visibility": true, "cameras": [], "effects": [] }, { "ambientLightColorB": -2147483616, "ambientLightColorG": 6031360, "ambientLightColorR": 11020320, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "EndScreen", "renderingType": "2d", "visibility": false, "cameras": [], "effects": [] } ], "behaviorsSharedData": [ { "name": "AdvancedProjectile", "type": "AdvancedProjectile::AdvancedProjectile" }, { "name": "Animation", "type": "AnimatableCapability::AnimatableBehavior" }, { "name": "Effect", "type": "EffectCapability::EffectBehavior" }, { "name": "EllipseMovement", "type": "EllipseMovement::EllipseMovement" }, { "name": "Flippable", "type": "FlippableCapability::FlippableBehavior" }, { "name": "InOnScreen", "type": "IsOnScreen::InOnScreen" }, { "name": "MonsterEnemy", "type": "Enemy::MonsterEnemy" }, { "name": "Opacity", "type": "OpacityCapability::OpacityBehavior" }, { "name": "Platform", "type": "PlatformBehavior::PlatformBehavior" }, { "name": "PlatformerCharacterAnimator", "type": "PlatformerCharacterAnimator::PlatformerCharacterAnimator" }, { "name": "PlatformerGamepadMapper", "type": "Gamepads::PlatformerGamepadMapper" }, { "name": "PlatformerMultitouchMapper", "type": "MultitouchJoystick::PlatformerMultitouchMapper" }, { "name": "PlatformerObject", "type": "PlatformBehavior::PlatformerObjectBehavior" }, { "name": "RectangleMovement", "type": "RectangleMovement::RectangleMovement" }, { "name": "Resizable", "type": "ResizableCapability::ResizableBehavior" }, { "name": "Scale", "type": "ScalableCapability::ScalableBehavior" }, { "name": "ShakeObject_PositionAngle", "type": "ShakeObject::ShakeObject_PositionAngle" }, { "name": "ShakeObject_PositionAngleScale", "type": "ShakeObject::ShakeObject_PositionAngleScale" }, { "name": "SmoothCamera", "type": "SmoothCamera::SmoothCamera" }, { "name": "Text", "type": "TextContainerCapability::TextContainerBehavior" }, { "name": "TimedBackAndForthMirroredMovement", "type": "TimedBackAndForthMovement::TimedBackAndForthMirroredMovement" }, { "name": "Tween", "type": "Tween::TweenBehavior" } ] }, { "b": 26, "disableInputWhenNotFocused": true, "mangledName": "Level6", "name": "Level6", "r": 11, "standardSortMethod": true, "stopSoundsOnStartup": true, "title": "", "v": 24, "uiSettings": { "grid": true, "gridType": "rectangular", "gridWidth": 32, "gridHeight": 32, "gridOffsetX": 0, "gridOffsetY": 0, "gridColor": 10401023, "gridAlpha": 0.3, "snap": true, "zoomFactor": 0.15778935461153623, "windowMask": false }, "objectsGroups": [ { "name": "MobileControls", "objects": [ { "name": "JumpButton" }, { "name": "Joystick" } ] }, { "name": "EndScreenObjects", "objects": [ { "name": "EndScreenBackground" }, { "name": "EndScreenHeader" }, { "name": "EndScreenSubHeader" }, { "name": "EndScreenBestText" }, { "name": "EndScreenChallengeText" }, { "name": "EndScreenRetryText" }, { "name": "RetryButton" } ] } ], "variables": [ { "name": "Score", "type": "number", "value": 0 } ], "instances": [ { "angle": 0, "customSize": true, "depth": 1, "height": 2784, "layer": "", "name": "LeftBoundary", "persistentUuid": "78dd0ffa-b22f-47a8-9b36-ef6a432b1d1e", "width": 128, "x": -128, "y": -512, "zOrder": 38, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 2272, "layer": "Background", "name": "BackgroundPlants", "persistentUuid": "03b6869d-198f-4807-b659-f2b863e21073", "width": 17950, "x": 0, "y": -320, "zOrder": -1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 2880, "layer": "", "name": "RightBoundary", "persistentUuid": "9562fd9d-6e93-4465-9013-efa2b833653b", "width": 128, "x": 27488, "y": -608, "zOrder": 58, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "TopBoundary", "persistentUuid": "4381c067-2682-4f00-9a24-ff28fa12b1d8", "width": 27744, "x": -128, "y": -608, "zOrder": 59, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "BottomBoundary", "persistentUuid": "00f86cf3-18b0-4d71-9ce8-952dfc4e6b5c", "width": 27744, "x": -128, "y": 2144, "zOrder": 60, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "Player", "persistentUuid": "014db1f5-0846-4cba-821e-57e29d368c14", "width": 269, "x": 67, "y": 288, "zOrder": 63, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 304, "layer": "", "name": "StaticPlatform2", "persistentUuid": "c9cf2013-115e-4120-8602-4d606e8a0ad9", "width": 640, "x": 0, "y": 384, "zOrder": 64, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "a9d7e701-37a0-4b26-84b4-6e34c353f46a", "width": 224, "x": 6304, "y": 913, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "2786e4b7-4185-408d-8545-af543b61d412", "width": 341, "x": 8352, "y": 1296, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 496, "layer": "", "name": "StaticPlatform3", "persistentUuid": "ec1b505e-4a50-4898-85b5-19e0cdb4b458", "width": 992, "x": 26816, "y": 1680, "zOrder": 72, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 544, "layer": "", "name": "Portal", "persistentUuid": "fa79662d-16c7-4c21-a43d-0a204befff36", "width": 408, "x": 27080, "y": 1184, "zOrder": 73, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlippingPlatform", "persistentUuid": "60df3831-50f3-49f8-befe-9e7a197e3841", "width": 512, "x": 1248, "y": 401, "zOrder": 75, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "VerticalMovingPlatformDown", "persistentUuid": "f00d89b9-d2c5-44aa-9c7c-aa236c59190b", "width": 256, "x": 2080, "y": 433, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "VerticalMovingPlatformDown", "persistentUuid": "563c3db9-2ec4-4399-8611-611fd05f02c9", "width": 256, "x": 2720, "y": 785, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "VerticalMovingPlatformDown", "persistentUuid": "817c6b2d-0c06-4e14-b42f-b6c056eb3e63", "width": 256, "x": 5856, "y": 1073, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform2", "persistentUuid": "360e3c60-2c36-426f-bd95-89e643a6e139", "width": 256, "x": 3968, "y": 1073, "zOrder": 77, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform2", "persistentUuid": "29813e34-b552-4e1e-bfcb-a0cafca06133", "width": 256, "x": 4608, "y": 1009, "zOrder": 77, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 384, "layer": "", "name": "StaticPlatform2", "persistentUuid": "7ffc2ba4-e964-41b9-9c12-5e5c7a331388", "width": 928, "x": 4307, "y": 24, "zOrder": 87, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "StalactiteDemon_Base", "persistentUuid": "c393bb0f-5bca-4b31-b2bd-116cd8631079", "width": 256, "x": 4625, "y": 358, "zOrder": 88, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "HorizontalMovingPlatformRight", "persistentUuid": "96fbc148-506f-4e94-a8ec-aa5d0d623a4b", "width": 512, "x": 6624, "y": 1184, "zOrder": 89, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 496, "layer": "", "name": "StaticPlatform3", "persistentUuid": "ffab7bc6-3388-4ad6-b309-c59d1062aa5d", "width": 992, "x": 8032, "y": 1520, "zOrder": 72, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform2", "persistentUuid": "66f65114-26cf-4571-9c34-cbdff07fd2d2", "width": 256, "x": 5280, "y": 1201, "zOrder": 77, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 577, "layer": "", "name": "Ladder", "persistentUuid": "200ae5a9-b3be-4841-b43e-1b0f31b87c81", "width": 192, "x": 8768, "y": 975, "zOrder": 107, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 576, "layer": "", "name": "Ladder", "persistentUuid": "59d34e22-4b59-4a50-89e7-0ac8098adf4b", "width": 192, "x": 7861, "y": 151, "zOrder": 125, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "HorizontalMovingPlatformRight", "persistentUuid": "079abc42-f28b-4459-a004-7deb7a428bd1", "width": 384, "x": 8320, "y": -32, "zOrder": 89, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "22e882fc-327f-4133-a1d2-f5830cc94796", "width": 224, "x": 10960, "y": 288, "zOrder": 126, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 624, "layer": "", "name": "StaticPlatform3", "persistentUuid": "16c7f170-a082-4685-a9f4-cfd676895926", "width": 1248, "x": 10784, "y": 464, "zOrder": 129, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 464, "layer": "", "name": "StaticPlatform3", "persistentUuid": "e551e2ab-0808-4a49-98ab-fb5209cc70fd", "width": 864, "x": 12790, "y": 608, "zOrder": 129, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 2464, "layer": "Background", "name": "BackgroundPlants", "persistentUuid": "3f0ec037-2a70-4ea5-90eb-c1f8a7387a6c", "width": 27296, "x": 0, "y": -480, "zOrder": -1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 278, "layer": "", "name": "StaticPlatform2", "persistentUuid": "2b0143dd-26b8-44a0-b71c-f4d0442f7784", "width": 544, "x": 7840, "y": 682, "zOrder": 132, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 171, "customSize": true, "depth": 1, "height": 297, "layer": "", "name": "StaticPlatform2", "persistentUuid": "d415bf08-a38b-4a5b-b22a-32bc7510c4cf", "width": 763, "x": 5171, "y": 153, "zOrder": 87, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 349, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "StalactiteDemon_Base", "persistentUuid": "81a0bd4f-6f99-44e1-aaba-d3ea40d0626c", "width": 256, "x": 5304, "y": 433, "zOrder": 88, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "HorizontalDemon", "persistentUuid": "7f7c6349-adf4-4919-a21d-b0bea7f4b4da", "width": 256, "x": 12064, "y": 448, "zOrder": 91, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 160, "layer": "", "name": "VerticalMovingPlatformDown", "persistentUuid": "bb4e2ee7-2c2c-44e8-a15d-f08b48cf1c25", "width": 160, "x": 12256, "y": 384, "zOrder": 135, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 160, "layer": "", "name": "HorizontalMovingPlatformRight", "persistentUuid": "1e63636e-5304-4716-bd62-c3d10cad7a68", "width": 320, "x": 12000, "y": 896, "zOrder": 136, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "27e0283f-f166-45b8-bb5f-c1652d882814", "width": 256, "x": 12544, "y": 1610, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "01558151-f557-4b25-96b7-ce6c7c145998", "width": 256, "x": 12544, "y": 1514, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "5cdd6839-60db-4497-8243-1c2a9f5815bc", "width": 224, "x": 13088, "y": 1572, "zOrder": 126, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "7bf0f5bc-27d3-4892-b9c3-b0578f06f3d7", "width": 256, "x": 13568, "y": 1535, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "173bd697-be47-4841-841e-8a7bf04ba184", "width": 256, "x": 13568, "y": 1631, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "532c614b-5cb9-4e77-9a2e-592944d43a30", "width": 256, "x": 13568, "y": 1727, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 449, "layer": "", "name": "StaticPlatform2", "persistentUuid": "59bc2c8e-5842-47d9-903a-f287ed532a9c", "width": 960, "x": 15040, "y": 1632, "zOrder": 137, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "68ee7d42-f400-407d-9870-8b2f82a27db9", "width": 341, "x": 15168, "y": 1120, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "2d4b9cd9-2b14-40a9-b6b6-417d11e895c3", "width": 256, "x": 7360, "y": 896, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "de29adae-f13a-40d3-a3ea-49bd4de6557c", "width": 224, "x": 14063, "y": 1599, "zOrder": 126, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "ac92b6cd-e0c8-4ba5-b2ec-bd00173529b0", "width": 256, "x": 12544, "y": 1439, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 202, "customSize": true, "depth": 1, "height": 384, "layer": "", "name": "StaticPlatform2", "persistentUuid": "779a3d80-edaa-4033-aa15-d4dee8747b8b", "width": 928, "x": 12762, "y": -480, "zOrder": 87, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 23, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "StalactiteDemon_Base", "persistentUuid": "67c9be0d-d8b2-4ee0-8586-62219e448eaf", "width": 256, "x": 12731, "y": -274, "zOrder": 88, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 288, "layer": "", "name": "FlippingPlatform", "persistentUuid": "84b51e65-6b03-4dd4-8a1b-f6ba8f91140e", "width": 576, "x": 13728, "y": 736, "zOrder": 138, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 288, "layer": "", "name": "FlippingPlatform2", "persistentUuid": "18372c5c-43db-49b9-afd3-2eba68b511b6", "width": 576, "x": 14368, "y": 800, "zOrder": 139, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "65b1132d-13ac-4cb7-9401-324d528ca963", "width": 256, "x": 14528, "y": 1632, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "624221c9-e608-4ec2-8afd-0217a4e088eb", "width": 224, "x": 14976, "y": 960, "zOrder": 126, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "4e5faeb8-57ff-4afc-9473-d99e796cdbca", "width": 341, "x": 7787, "y": -128, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "fac4e629-bbfc-42b3-bf96-3d6a5bfcc6a5", "width": 224, "x": 13024, "y": 442, "zOrder": 126, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 20, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "StalactiteDemon_Base", "persistentUuid": "ec6c0776-3ea2-4553-a183-e4a1db7d72f7", "width": 256, "x": 13274, "y": -53, "zOrder": 88, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 3.25 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "42d9736a-987f-441e-8639-795e07ce29ba", "width": 224, "x": 15264, "y": 960, "zOrder": 126, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform2", "persistentUuid": "5a24071e-a2c9-44e5-b87f-066306f04ac5", "width": 256, "x": 3328, "y": 1120, "zOrder": 77, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "2c8037cf-7996-4ca0-9269-1d27c9a2bd41", "width": 192, "x": 9248, "y": 864, "zOrder": 149, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "9cdca051-c56b-44c4-aa60-0bb12e7c9fd9", "width": 192, "x": 10016, "y": 832, "zOrder": 149, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 320, "layer": "", "name": "SpinningRotatingPlatformClockwise", "persistentUuid": "ac7ea314-c88a-4306-bea2-4dd540a3fb80", "width": 640, "x": 9568, "y": 224, "zOrder": 150, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 384, "layer": "", "name": "StaticPlatform2", "persistentUuid": "ebcb06d5-5145-41b2-862f-dd7d0e0538ec", "width": 928, "x": 3264, "y": 32, "zOrder": 87, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "StalactiteDemon_Base", "persistentUuid": "abb61335-7a7a-4562-96e6-d6060d2a4961", "width": 256, "x": 3328, "y": 368, "zOrder": 88, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "StalactiteDemon_Base", "persistentUuid": "ca7788c8-925e-48a7-aa9a-f07b05d5755c", "width": 256, "x": 3904, "y": 368, "zOrder": 88, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "d0a5c08b-374c-4ee7-ab0a-329dd5b93bdc", "width": 341, "x": 11403, "y": 192, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform2", "persistentUuid": "c22bf403-6dee-4c56-80d7-27b1fed1f35f", "width": 256, "x": 16448, "y": 1344, "zOrder": 151, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 416, "layer": "", "name": "StaticPlatform2", "persistentUuid": "69a6330a-bcbc-4380-862c-d9c1261e164d", "width": 832, "x": 17056, "y": 928, "zOrder": 153, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Base", "persistentUuid": "045518d0-0a57-47f4-ae13-0ec320108264", "width": 256, "x": 17184, "y": 288, "zOrder": 154, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Eye", "persistentUuid": "4900193e-8d49-4e90-b131-984fc8a10076", "width": 256, "x": 17184, "y": 288, "zOrder": 155, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 5 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 416, "layer": "", "name": "StaticPlatform2", "persistentUuid": "16c11bd0-da76-4cb3-a1d3-950edfc840f8", "width": 832, "x": 18432, "y": 928, "zOrder": 153, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "HorizontalDemon", "persistentUuid": "db112449-3a74-400c-acf0-269fd44abad5", "width": 256, "x": 18816, "y": 704, "zOrder": 91, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Eye", "persistentUuid": "05f638ab-4a7c-499d-99b9-c544ffb6f617", "width": 256, "x": 19552, "y": 928, "zOrder": 155, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 5 } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Base", "persistentUuid": "308dd27e-be28-4efe-9d8a-43af368f1198", "width": 256, "x": 19552, "y": 928, "zOrder": 154, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 288, "layer": "", "name": "FlippingPlatform", "persistentUuid": "a09e1912-683f-44ad-9aac-3fff8c850db1", "width": 576, "x": 20032, "y": 1120, "zOrder": 138, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 288, "layer": "", "name": "FlippingPlatform", "persistentUuid": "cc61fa8b-a40d-472d-b9ab-fcc021751f91", "width": 576, "x": 20832, "y": 1120, "zOrder": 138, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Eye", "persistentUuid": "bbdf517c-dbef-46e2-b00d-14691af3d547", "width": 256, "x": 21088, "y": 416, "zOrder": 155, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Base", "persistentUuid": "4f6a01f3-486b-41a3-82bd-f3c699e913b5", "width": 256, "x": 21088, "y": 416, "zOrder": 154, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 432, "layer": "", "name": "StaticPlatform3", "persistentUuid": "2c0981de-cd73-4577-b805-ae0ddbbeb922", "width": 864, "x": 21664, "y": 1084, "zOrder": 156, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "ef87ee52-912b-4859-b7e9-e332c0b73aed", "width": 341, "x": 21963, "y": 844, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 768, "layer": "", "name": "Ladder", "persistentUuid": "00b46c36-7a29-4dd2-87da-307a3f640d6c", "width": 224, "x": 21696, "y": 364, "zOrder": 157, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 64, "layer": "", "name": "BoundaryJumpThrough", "persistentUuid": "a2aa24b8-481c-4506-b1f3-a681481f299a", "width": 224, "x": 21696, "y": 364, "zOrder": 158, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform2", "persistentUuid": "aeb35ff1-c3d6-40c2-95d3-1250c6495ede", "width": 256, "x": 22566, "y": 717, "zOrder": 159, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform2", "persistentUuid": "3b22c700-b405-4c48-b87b-ece0ea85ba6e", "width": 256, "x": 22908, "y": 350, "zOrder": 159, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform2", "persistentUuid": "a5af8de3-e191-4f9f-a253-06dfb177c6a3", "width": 256, "x": 23250, "y": -17, "zOrder": 159, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform2", "persistentUuid": "c86eb56d-f1cb-4af1-b8a9-f12adebe928b", "width": 256, "x": 23592, "y": 350, "zOrder": 159, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform2", "persistentUuid": "8a0f0ae1-9ff2-49f3-82f5-2e7f9b25146a", "width": 256, "x": 23934, "y": 760, "zOrder": 159, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Eye", "persistentUuid": "38673cdc-a1be-4abb-9650-fd22a7469077", "width": 256, "x": 24352, "y": 64, "zOrder": 155, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "TurretDemon_Base", "persistentUuid": "9cf2f9e0-f07b-4c97-b704-a9c0802982bd", "width": 256, "x": 24352, "y": 64, "zOrder": 154, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "32fd8d41-ae8a-469d-af9a-7cb0d8fbc456", "width": 192, "x": 23280, "y": 608, "zOrder": 149, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "HorizontalDemon", "persistentUuid": "d7bc5948-dc8a-44e8-a67a-830591308a7a", "width": 256, "x": 23584, "y": 256, "zOrder": 91, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform2", "persistentUuid": "db807721-79bf-4705-a7ad-5db84dd58cb0", "width": 256, "x": 24276, "y": 1084, "zOrder": 159, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 2624, "layer": "Background", "name": "BackgroundPlants", "persistentUuid": "a6ba0e08-78a6-4a8a-8f40-5c814a1c5bdc", "width": 27488, "x": 0, "y": -480, "zOrder": -1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "HorizontalMovingPlatformRight", "persistentUuid": "df6cda2c-eb3d-4157-b816-a4802aa35b90", "width": 512, "x": 24864, "y": 1248, "zOrder": 160, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 240, "layer": "", "name": "FlippingPlatform", "persistentUuid": "a1442d8b-bc55-409f-bd90-78a120781455", "width": 480, "x": 26528, "y": 1456, "zOrder": 161, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 240, "layer": "", "name": "FlippingPlatform", "persistentUuid": "0b4716c1-212e-477a-b2b8-ed9d379bebf3", "width": 480, "x": 26528, "y": 1184, "zOrder": 161, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 240, "layer": "", "name": "FlippingPlatform2", "persistentUuid": "be0ad0ff-3014-4927-b91c-28b66ccba494", "width": 480, "x": 26528, "y": 912, "zOrder": 162, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Memory", "persistentUuid": "1fe751be-1c4b-4b2e-9e23-56d3a875fad6", "width": 256, "x": 27136, "y": 960, "zOrder": 74, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 64, "layer": "", "name": "BoundaryJumpThrough", "persistentUuid": "ced4be3a-c018-4f6c-b9cd-51bcce8b0a77", "width": 192, "x": 8768, "y": 975, "zOrder": 158, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 64, "layer": "", "name": "BoundaryJumpThrough", "persistentUuid": "d3aca09c-15be-4d7e-90f2-ba2d07119b06", "width": 192, "x": 7872, "y": 151, "zOrder": 158, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "817601d6-ba2c-4880-9702-9d18162b0dec", "width": 192, "x": 9600, "y": -138, "zOrder": 149, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 3 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "StalactiteDemon_Base", "persistentUuid": "260675d0-3a83-4002-b843-aab0f574dee9", "width": 256, "x": 3616, "y": 368, "zOrder": 88, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 3.25 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "StalactiteDemon_Base", "persistentUuid": "3df686bd-a0b9-4f5e-aa2f-91dc62283f7e", "width": 256, "x": 4320, "y": 358, "zOrder": 88, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 3.25 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "StalactiteDemon_Base", "persistentUuid": "6433e0d4-a763-4de1-b5e8-81db3a50d2fb", "width": 256, "x": 4928, "y": 358, "zOrder": 88, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 3.25 } ] }, { "angle": 349, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "StalactiteDemon_Base", "persistentUuid": "d1f9cd3a-22d0-4396-8dd7-6f9aa5b4e9c9", "width": 256, "x": 5592, "y": 369, "zOrder": 88, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 3.25 } ] }, { "angle": 19, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "StalactiteDemon_Base", "persistentUuid": "86c98b43-004a-4f1e-bb0b-c63791491f12", "width": 256, "x": 12997, "y": -164, "zOrder": 88, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 3.25 } ] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "09fcb571-eb1b-4cf4-8ba4-fc63927c9e11", "width": 192, "x": 9920, "y": -128, "zOrder": 149, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 3 } ] } ], "objects": [ { "assetStoreId": "", "height": 1024, "name": "BackgroundPlants", "texture": "AssetDev/Backgrounds/WhimsicalTree/WhimsicalTree.png", "type": "TiledSpriteObject::TiledSprite", "width": 2048, "variables": [], "effects": [ { "effectType": "TiltShift", "name": "Effect", "doubleParameters": { "blur": 30, "gradientBlur": 1000 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "OldFilm", "name": "Effect2", "doubleParameters": { "animationFrequency": 60, "noise": 0.1, "noiseSize": 1, "scratch": 0.5, "scratchDensity": 0.4, "scratchWidth": 1, "sepia": 0.1, "vignetting": 0.75, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [] } ], "objectsFolderStructure": { "folderName": "__ROOT", "children": [ { "objectName": "BackgroundPlants" } ] }, "events": [ { "type": "BuiltinCommonInstructions::Link", "include": { "includeConfig": 0 }, "target": "LevelEvents" }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Change Scene", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "LayerVisible" }, "parameters": [ "", "\"EndScreen\"" ] }, { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "PanelSpriteButton::PanelSpriteButton::IsClicked" }, "parameters": [ "UI_Sinage_RetryButton", "" ] }, { "type": { "value": "KeyReleased" }, "parameters": [ "", "Space" ] } ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Player", "Lives", ">", "0" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Mindscape\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Player", "Lives", "<=", "0" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Level6\"", "" ] } ] } ] } ], "parameters": [] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "AnimatableCapability::AnimatableBehavior::SetName" }, "parameters": [ "Memory", "Animation", "=", "\"WhimsicalTree\"" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Player", "LifeForce", "=", "6" ] } ] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "MusicController", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "PlaySound" }, "parameters": [ "", "Assets/Sounds/Levels/6/AmbientLoop.ogg", "yes", "GlobalVariable(Volume_Music) - 13", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CompareTimer" }, "parameters": [ "RandomSFXIndex", "\"RandomNoiseTimer\"", ">", "Variable(TimeBeforeNextRandomSFX)" ] } ], "actions": [ { "type": { "value": "ModVarScene" }, "parameters": [ "RandomSFXIndex", "=", "RandomInRange(1, 3)" ] }, { "type": { "value": "ResetTimer" }, "parameters": [ "", "\"RandomNoiseTimer\"" ] }, { "type": { "value": "ModVarScene" }, "parameters": [ "TimeBeforeNextRandomSFX", "=", "RandomFloatInRange(30,240)" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarScene" }, "parameters": [ "RandomSFXIndex", "=", "1" ] } ], "actions": [ { "type": { "value": "PlaySound" }, "parameters": [ "", "Assets/Sounds/RandomSounds/RandomAmbiance1.wav", "", "GlobalVariable(Volume_SFX)", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarScene" }, "parameters": [ "RandomSFXIndex", "=", "2" ] } ], "actions": [ { "type": { "value": "PlaySound" }, "parameters": [ "", "Assets/Sounds/RandomSounds/RandomAmbiance2.wav", "", "GlobalVariable(Volume_SFX)", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarScene" }, "parameters": [ "RandomSFXIndex", "=", "3" ] } ], "actions": [ { "type": { "value": "PlaySound" }, "parameters": [ "", "Assets/Sounds/RandomSounds/RandomAmbiance3.wav", "", "GlobalVariable(Volume_SFX)", "" ] } ] } ] } ], "parameters": [] } ], "layers": [ { "ambientLightColorB": 8002120, "ambientLightColorG": 6031360, "ambientLightColorR": 7844472, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "Background", "renderingType": "2d", "visibility": true, "cameras": [], "effects": [] }, { "ambientLightColorB": 32, "ambientLightColorG": 0, "ambientLightColorR": 0, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "", "renderingType": "", "visibility": true, "cameras": [ { "defaultSize": true, "defaultViewport": true, "height": 0, "viewportBottom": 1, "viewportLeft": 0, "viewportRight": 1, "viewportTop": 0, "width": 0 } ], "effects": [ { "effectType": "Scene3D::HemisphereLight", "name": "3D Light", "doubleParameters": { "elevation": 45, "intensity": 1, "rotation": 0 }, "stringParameters": { "groundColor": "64;64;64", "skyColor": "255;255;255", "top": "Y-" }, "booleanParameters": {} }, { "effectType": "OldFilm", "name": "Effect", "doubleParameters": { "animationFrequency": 60, "noise": 0.15, "noiseSize": 1, "scratch": 0, "scratchDensity": 0.2, "scratchWidth": 1, "sepia": 0, "vignetting": 0.4, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": {} } ] }, { "ambientLightColorB": 9191608, "ambientLightColorG": 6031360, "ambientLightColorR": 8756632, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "UI", "renderingType": "2d", "visibility": true, "cameras": [], "effects": [] }, { "ambientLightColorB": -2147483616, "ambientLightColorG": 6031360, "ambientLightColorR": 11020320, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "EndScreen", "renderingType": "2d", "visibility": false, "cameras": [], "effects": [] } ], "behaviorsSharedData": [ { "name": "AdvancedProjectile", "type": "AdvancedProjectile::AdvancedProjectile" }, { "name": "Animation", "type": "AnimatableCapability::AnimatableBehavior" }, { "name": "Effect", "type": "EffectCapability::EffectBehavior" }, { "name": "EllipseMovement", "type": "EllipseMovement::EllipseMovement" }, { "name": "Flippable", "type": "FlippableCapability::FlippableBehavior" }, { "name": "InOnScreen", "type": "IsOnScreen::InOnScreen" }, { "name": "MonsterEnemy", "type": "Enemy::MonsterEnemy" }, { "name": "Opacity", "type": "OpacityCapability::OpacityBehavior" }, { "name": "Platform", "type": "PlatformBehavior::PlatformBehavior" }, { "name": "PlatformerCharacterAnimator", "type": "PlatformerCharacterAnimator::PlatformerCharacterAnimator" }, { "name": "PlatformerGamepadMapper", "type": "Gamepads::PlatformerGamepadMapper" }, { "name": "PlatformerMultitouchMapper", "type": "MultitouchJoystick::PlatformerMultitouchMapper" }, { "name": "PlatformerObject", "type": "PlatformBehavior::PlatformerObjectBehavior" }, { "name": "RectangleMovement", "type": "RectangleMovement::RectangleMovement" }, { "name": "Resizable", "type": "ResizableCapability::ResizableBehavior" }, { "name": "Scale", "type": "ScalableCapability::ScalableBehavior" }, { "name": "ShakeObject_PositionAngle", "type": "ShakeObject::ShakeObject_PositionAngle" }, { "name": "ShakeObject_PositionAngleScale", "type": "ShakeObject::ShakeObject_PositionAngleScale" }, { "name": "SmoothCamera", "type": "SmoothCamera::SmoothCamera" }, { "name": "Text", "type": "TextContainerCapability::TextContainerBehavior" }, { "name": "TimedBackAndForthMirroredMovement", "type": "TimedBackAndForthMovement::TimedBackAndForthMirroredMovement" }, { "name": "Tween", "type": "Tween::TweenBehavior" } ] }, { "b": 26, "disableInputWhenNotFocused": true, "mangledName": "Level5", "name": "Level5", "r": 11, "standardSortMethod": true, "stopSoundsOnStartup": true, "title": "", "v": 24, "uiSettings": { "grid": true, "gridType": "rectangular", "gridWidth": 32, "gridHeight": 32, "gridOffsetX": 0, "gridOffsetY": 0, "gridColor": 10401023, "gridAlpha": 0.3, "snap": true, "zoomFactor": 0.0897895346716662, "windowMask": false }, "objectsGroups": [ { "name": "MobileControls", "objects": [ { "name": "JumpButton" }, { "name": "Joystick" } ] }, { "name": "EndScreenObjects", "objects": [ { "name": "EndScreenBackground" }, { "name": "EndScreenHeader" }, { "name": "EndScreenSubHeader" }, { "name": "EndScreenBestText" }, { "name": "EndScreenChallengeText" }, { "name": "EndScreenRetryText" }, { "name": "RetryButton" } ] } ], "variables": [ { "name": "Score", "type": "number", "value": 0 } ], "instances": [ { "angle": 0, "customSize": true, "depth": 1, "height": 2464, "layer": "", "name": "LeftBoundary", "persistentUuid": "78dd0ffa-b22f-47a8-9b36-ef6a432b1d1e", "width": 128, "x": -128, "y": -512, "zOrder": 38, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 2208, "layer": "Background", "name": "BackgroundPlants", "persistentUuid": "03b6869d-198f-4807-b659-f2b863e21073", "width": 26430, "x": 2, "y": -384, "zOrder": -1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 2464, "layer": "", "name": "RightBoundary", "persistentUuid": "9562fd9d-6e93-4465-9013-efa2b833653b", "width": 128, "x": 26432, "y": -512, "zOrder": 58, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "TopBoundary", "persistentUuid": "4381c067-2682-4f00-9a24-ff28fa12b1d8", "width": 26688, "x": -128, "y": -512, "zOrder": 59, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "BottomBoundary", "persistentUuid": "00f86cf3-18b0-4d71-9ce8-952dfc4e6b5c", "width": 26688, "x": -128, "y": 1824, "zOrder": 60, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "Player", "persistentUuid": "014db1f5-0846-4cba-821e-57e29d368c14", "width": 256, "x": 32, "y": 736, "zOrder": 63, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "fa0301b8-9f12-4cf9-ad30-2d274d448e13", "width": 341, "x": 13323, "y": 704, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 496, "layer": "", "name": "StaticPlatform3", "persistentUuid": "ec1b505e-4a50-4898-85b5-19e0cdb4b458", "width": 992, "x": 25792, "y": 544, "zOrder": 72, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 544, "layer": "", "name": "Portal", "persistentUuid": "fa79662d-16c7-4c21-a43d-0a204befff36", "width": 408, "x": 26024, "y": 32, "zOrder": 73, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 368, "layer": "", "name": "StaticPlatform3", "persistentUuid": "3c6b702b-6ec5-451b-a065-713215ddec5e", "width": 736, "x": 3936, "y": 576, "zOrder": 65, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 368, "layer": "", "name": "StaticPlatform3", "persistentUuid": "43a3e4bd-d210-4fc2-905a-0bd7d20c0547", "width": 736, "x": 10368, "y": 544, "zOrder": 65, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Memory", "persistentUuid": "84344788-8847-4b12-8782-f9d5ac66dd87", "width": 256, "x": 26080, "y": -192, "zOrder": 84, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 384, "layer": "", "name": "StaticPlatform2", "persistentUuid": "94d6dac9-87ab-4f9a-adac-055242cadffe", "width": 768, "x": 6080, "y": 704, "zOrder": 87, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 4, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "StalactiteDemon_Base", "persistentUuid": "1692b244-0336-4129-ab2e-3d6b32d1763c", "width": 288, "x": 9320, "y": -241, "zOrder": 88, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 4 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "5e6b44c3-8064-4ba8-b5c2-e34489aaf5a6", "width": 341, "x": 6208, "y": 448, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "36214317-ff6c-4325-ab9e-4fd776f5dcac", "width": 256, "x": 15264, "y": 1056, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 28, "customSize": true, "depth": 1, "height": 368, "layer": "", "name": "StaticPlatform3", "persistentUuid": "0b961244-2f6d-4d5a-8fb5-d4c877379540", "width": 736, "x": 9013, "y": -489, "zOrder": 65, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "b8554ecf-ecf5-4e88-b9c2-b28f3553ea46", "width": 256, "x": 9856, "y": 512, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FireDemon", "persistentUuid": "3e28268d-5dab-4696-9f76-0438a1c372de", "width": 256, "x": 20096, "y": 960, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 4, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "StalactiteDemon_Base", "persistentUuid": "e48990d7-084c-480e-bf25-ee2b7ed944e3", "width": 288, "x": 10214, "y": -214, "zOrder": 88, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 384, "layer": "", "name": "StaticPlatform2", "persistentUuid": "36ac8509-8be4-4c6d-91cc-02633b235659", "width": 992, "x": 10176, "y": -544, "zOrder": 87, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 4, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "StalactiteDemon_Base", "persistentUuid": "39321aae-72b3-43de-9ea6-5fdb50a6c60c", "width": 288, "x": 10550, "y": -214, "zOrder": 88, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 4, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "StalactiteDemon_Base", "persistentUuid": "cdd2ca9d-9c3a-4a16-a6a8-10e443f1424e", "width": 288, "x": 10898, "y": -214, "zOrder": 88, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 160, "layer": "", "name": "StaticPlatform2", "persistentUuid": "8675d6a8-1464-45c1-935d-c26b8a914949", "width": 320, "x": 8640, "y": 480, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "HorizontalDemon", "persistentUuid": "c6a8618d-f05b-4be4-9113-299e446bd6bc", "width": 256, "x": 4800, "y": 672, "zOrder": 89, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 351, "customSize": true, "depth": 1, "height": 368, "layer": "", "name": "StaticPlatform3", "persistentUuid": "882cb2f0-a23f-4392-88b7-e2b9cf6a9104", "width": 736, "x": 13208, "y": 921, "zOrder": 65, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 368, "layer": "", "name": "StaticPlatform3", "persistentUuid": "203aed95-670c-40bf-be3c-fe7db0fbea7d", "width": 736, "x": 0, "y": 832, "zOrder": 65, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlippingPlatform", "persistentUuid": "cd4956ed-4aca-41ba-87d2-0c58ec676f98", "width": 512, "x": 2336, "y": 768, "zOrder": 91, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlippingPlatform", "persistentUuid": "c5e704cf-3134-4e86-befe-ef06e9bb26a5", "width": 512, "x": 3136, "y": 672, "zOrder": 91, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 176, "layer": "", "name": "StaticPlatform2", "persistentUuid": "3d8dd335-707d-4f95-bf40-96238abcbc5c", "width": 352, "x": 9248, "y": 320, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "HorizontalDemon", "persistentUuid": "9e340baa-f615-49fb-8285-0fc6f0e9017d", "width": 256, "x": 14400, "y": 1184, "zOrder": 94, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "f0fa328d-8310-4fd7-b604-5d0ad9719920", "width": 256, "x": 15824, "y": 928, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 176, "layer": "", "name": "StaticPlatform2", "persistentUuid": "6a3a2551-2856-4296-86e3-26b41f3a7034", "width": 352, "x": 14272, "y": 559, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 176, "layer": "", "name": "StaticPlatform2", "persistentUuid": "62ea50c6-b803-4fe3-949a-dee562c2ae6c", "width": 352, "x": 15104, "y": 319, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 176, "layer": "", "name": "StaticPlatform2", "persistentUuid": "5d678992-748c-461a-b254-6fa4cf421cdc", "width": 352, "x": 16000, "y": 191, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "3e3f7e79-c2df-4386-b81f-f7871c8c31ad", "width": 256, "x": 16384, "y": 800, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "985a3847-c0b2-41c3-84a9-3bba4340353c", "width": 256, "x": 5600, "y": 736, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "2a3331a3-6c00-4534-a7cd-85895cd1f269", "width": 192, "x": 8192, "y": 32, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "2e31d66a-9931-4112-b0b0-8a964ab622bc", "width": 192, "x": 7616, "y": 32, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "24778ae9-159d-468d-9afd-ce23a60f300d", "width": 192, "x": 7040, "y": 32, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 304, "layer": "", "name": "StaticPlatform2", "persistentUuid": "a0d891c7-df95-45b4-b540-bc43c76062cf", "width": 608, "x": 3584, "y": 864, "zOrder": 64, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 13, "customSize": true, "depth": 1, "height": 471, "layer": "", "name": "StaticPlatform2", "persistentUuid": "509df565-aa7d-4849-9387-57e6eb93ae0d", "width": 942, "x": 11337, "y": -444, "zOrder": 97, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 358, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "StalactiteDemon_Base", "persistentUuid": "435a7d07-7e76-48b2-9f7a-8683ad00b944", "width": 288, "x": 11779, "y": -187, "zOrder": 98, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 352, "layer": "", "name": "FlippingPlatform", "persistentUuid": "cd5c5917-7479-4547-849b-cebd769219fd", "width": 704, "x": 16816, "y": 672, "zOrder": 100, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 416, "layer": "", "name": "VerticalMovingPlatformDown", "persistentUuid": "a7984ea7-0a6b-434d-9a63-8e4df8953f5e", "width": 416, "x": 17728, "y": 608, "zOrder": 101, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform1", "persistentUuid": "a991d34d-e00c-40cf-91da-40d1d31406a0", "width": 544, "x": 18464, "y": 1472, "zOrder": 102, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "65e8baf1-395e-4949-9dd4-a75c0f3de7b7", "width": 341, "x": 18560, "y": 1184, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 48, "layer": "", "name": "StaticPlatform2", "persistentUuid": "d30b6d8c-00d9-47f0-9c77-40d024022e5e", "width": 96, "x": 19520, "y": 1312, "zOrder": 103, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "adab3235-58ab-42bd-ad8f-cbff7cc0ef9d", "width": 192, "x": 22210, "y": 1140, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 288, "layer": "", "name": "VerticalMovingPlatformDown", "persistentUuid": "e781e771-7fd6-458a-890b-4d9e0238d6df", "width": 288, "x": 23104, "y": 704, "zOrder": 105, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 896, "layer": "", "name": "StaticPlatform3", "persistentUuid": "4d8b2529-54c7-4a13-a307-dc2716b36987", "width": 1888, "x": 23520, "y": 512, "zOrder": 90, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 544, "layer": "", "name": "StaticPlatform2", "persistentUuid": "69d416aa-d1e3-4813-ad2b-565ce3d7eba4", "width": 1024, "x": 23936, "y": -384, "zOrder": 70, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 24, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "StalactiteDemon_Base", "persistentUuid": "4a5cea9e-a2c2-4a44-bdb2-59c0526d8397", "width": 288, "x": 24068, "y": -145, "zOrder": 88, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "StalagmiteDemon_Base", "persistentUuid": "caa651a3-c44c-4067-92c2-f4873cd68db6", "width": 256, "x": 23808, "y": 394, "zOrder": 107, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "StalagmiteDemon_Base", "persistentUuid": "4e26fa48-bd7f-45f6-9700-857670b439f2", "width": 256, "x": 24336, "y": 394, "zOrder": 107, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "StalagmiteDemon_Base", "persistentUuid": "58d9021c-c525-4a33-810b-93e44f513c57", "width": 256, "x": 24864, "y": 394, "zOrder": 107, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 342, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "StalactiteDemon_Base", "persistentUuid": "6526d641-d9c1-47b4-acc0-2e52f58875e5", "width": 288, "x": 24590, "y": -189, "zOrder": 88, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 48, "layer": "", "name": "StaticPlatform2", "persistentUuid": "8a5f3b16-8252-46f1-9402-c295f705a066", "width": 96, "x": 20160, "y": 1190, "zOrder": 103, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 48, "layer": "", "name": "StaticPlatform2", "persistentUuid": "6dc852a7-7608-46b9-9154-e6ee017734c8", "width": 96, "x": 20736, "y": 1040, "zOrder": 103, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 48, "layer": "", "name": "StaticPlatform2", "persistentUuid": "0c3d1c2c-ab70-480e-9486-0f42fff8a5a4", "width": 96, "x": 21280, "y": 800, "zOrder": 103, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "StalagmiteDemon_Base", "persistentUuid": "34309eb7-e2f5-4b38-ac04-9238a00d8b54", "width": 256, "x": 3712, "y": 719, "zOrder": 108, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 1 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 160, "layer": "", "name": "StaticPlatform2", "persistentUuid": "b9dae8e5-902d-461a-8f26-6b07e3281bc4", "width": 320, "x": 7968, "y": 608, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 160, "layer": "", "name": "StaticPlatform2", "persistentUuid": "da882543-1dfb-41f8-b7e1-9926235c8d74", "width": 320, "x": 7264, "y": 640, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 608, "layer": "", "name": "Ladder", "persistentUuid": "9f6039fe-1f0d-48e0-b5f2-789a1f11dc12", "width": 192, "x": 6592, "y": 128, "zOrder": 109, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 32, "layer": "", "name": "BoundaryJumpThrough", "persistentUuid": "a599ec62-1a70-4501-b55d-2475753ab85a", "width": 192, "x": 6592, "y": 128, "zOrder": 110, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "SpinningPlatformClockwise", "persistentUuid": "88d1e068-8310-4628-8f4f-1f2b1a57d1c5", "width": 512, "x": 22048, "y": 544, "zOrder": 114, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "fa384864-5ff1-4ae8-b138-eb6bc0fdf301", "width": 224, "x": 14080, "y": 1216, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 336, "layer": "", "name": "SpinningPlatformCounterclockwise", "persistentUuid": "19008cb5-2b20-49be-9efe-99f1859d6b8e", "width": 672, "x": 11808, "y": 352, "zOrder": 115, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "StalagmiteDemon_Base", "persistentUuid": "dc5afe05-a95b-4977-ad9c-a32ff2c59dea", "width": 256, "x": 1280, "y": 682, "zOrder": 108, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 5 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 272, "layer": "", "name": "StaticPlatform2", "persistentUuid": "4f6e1493-c824-4ef3-93eb-5218e01908b0", "width": 544, "x": 992, "y": 832, "zOrder": 64, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "StaticPlatform2", "persistentUuid": "61e136b9-066d-4b95-9bc7-2fe85ecd3146", "width": 384, "x": 1632, "y": 800, "zOrder": 64, "numberProperties": [], "stringProperties": [], "initialVariables": [] } ], "objects": [ { "assetStoreId": "", "height": 1024, "name": "BackgroundPlants", "texture": "AssetDev/Backgrounds/School/School.png", "type": "TiledSpriteObject::TiledSprite", "width": 2048, "variables": [], "effects": [ { "effectType": "TiltShift", "name": "Effect", "doubleParameters": { "blur": 30, "gradientBlur": 1000 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "OldFilm", "name": "Effect2", "doubleParameters": { "animationFrequency": 60, "noise": 0.1, "noiseSize": 1, "scratch": 0.5, "scratchDensity": 0.4, "scratchWidth": 1, "sepia": 0.1, "vignetting": 0.75, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [] } ], "objectsFolderStructure": { "folderName": "__ROOT", "children": [ { "objectName": "BackgroundPlants" } ] }, "events": [ { "type": "BuiltinCommonInstructions::Link", "include": { "includeConfig": 0 }, "target": "LevelEvents" }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Change Scene", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "LayerVisible" }, "parameters": [ "", "\"EndScreen\"" ] }, { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "PanelSpriteButton::PanelSpriteButton::IsClicked" }, "parameters": [ "UI_Sinage_RetryButton", "" ] }, { "type": { "value": "KeyReleased" }, "parameters": [ "", "Space" ] } ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Player", "Lives", ">", "0" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Mindscape\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Player", "Lives", "<=", "0" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Level5\"", "" ] } ] } ] } ], "parameters": [] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "AnimatableCapability::AnimatableBehavior::SetName" }, "parameters": [ "Memory", "Animation", "=", "\"School\"" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Player", "LifeForce", "=", "5" ] } ] } ], "layers": [ { "ambientLightColorB": 8002120, "ambientLightColorG": 6031360, "ambientLightColorR": 7844472, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "Background", "renderingType": "2d", "visibility": true, "cameras": [], "effects": [] }, { "ambientLightColorB": 32, "ambientLightColorG": 0, "ambientLightColorR": 0, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "", "renderingType": "", "visibility": true, "cameras": [ { "defaultSize": true, "defaultViewport": true, "height": 0, "viewportBottom": 1, "viewportLeft": 0, "viewportRight": 1, "viewportTop": 0, "width": 0 } ], "effects": [ { "effectType": "Scene3D::HemisphereLight", "name": "3D Light", "doubleParameters": { "elevation": 45, "intensity": 1, "rotation": 0 }, "stringParameters": { "groundColor": "64;64;64", "skyColor": "255;255;255", "top": "Y-" }, "booleanParameters": {} }, { "effectType": "OldFilm", "name": "Effect", "doubleParameters": { "animationFrequency": 60, "noise": 0.15, "noiseSize": 1, "scratch": 0, "scratchDensity": 0.2, "scratchWidth": 1, "sepia": 0, "vignetting": 0.4, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": {} } ] }, { "ambientLightColorB": 9191608, "ambientLightColorG": 6031360, "ambientLightColorR": 8756632, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "UI", "renderingType": "2d", "visibility": true, "cameras": [], "effects": [] }, { "ambientLightColorB": -2147483616, "ambientLightColorG": 6031360, "ambientLightColorR": 11020320, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "EndScreen", "renderingType": "2d", "visibility": false, "cameras": [], "effects": [] } ], "behaviorsSharedData": [ { "name": "AdvancedProjectile", "type": "AdvancedProjectile::AdvancedProjectile" }, { "name": "Animation", "type": "AnimatableCapability::AnimatableBehavior" }, { "name": "Effect", "type": "EffectCapability::EffectBehavior" }, { "name": "EllipseMovement", "type": "EllipseMovement::EllipseMovement" }, { "name": "Flippable", "type": "FlippableCapability::FlippableBehavior" }, { "name": "InOnScreen", "type": "IsOnScreen::InOnScreen" }, { "name": "MonsterEnemy", "type": "Enemy::MonsterEnemy" }, { "name": "Opacity", "type": "OpacityCapability::OpacityBehavior" }, { "name": "Platform", "type": "PlatformBehavior::PlatformBehavior" }, { "name": "PlatformerCharacterAnimator", "type": "PlatformerCharacterAnimator::PlatformerCharacterAnimator" }, { "name": "PlatformerGamepadMapper", "type": "Gamepads::PlatformerGamepadMapper" }, { "name": "PlatformerMultitouchMapper", "type": "MultitouchJoystick::PlatformerMultitouchMapper" }, { "name": "PlatformerObject", "type": "PlatformBehavior::PlatformerObjectBehavior" }, { "name": "RectangleMovement", "type": "RectangleMovement::RectangleMovement" }, { "name": "Resizable", "type": "ResizableCapability::ResizableBehavior" }, { "name": "Scale", "type": "ScalableCapability::ScalableBehavior" }, { "name": "ShakeObject_PositionAngle", "type": "ShakeObject::ShakeObject_PositionAngle" }, { "name": "ShakeObject_PositionAngleScale", "type": "ShakeObject::ShakeObject_PositionAngleScale" }, { "name": "SmoothCamera", "type": "SmoothCamera::SmoothCamera" }, { "name": "Text", "type": "TextContainerCapability::TextContainerBehavior" }, { "name": "TimedBackAndForthMirroredMovement", "type": "TimedBackAndForthMovement::TimedBackAndForthMirroredMovement" }, { "name": "Tween", "type": "Tween::TweenBehavior" } ] }, { "b": 26, "disableInputWhenNotFocused": true, "mangledName": "Level4", "name": "Level4", "r": 11, "standardSortMethod": true, "stopSoundsOnStartup": true, "title": "", "v": 24, "uiSettings": { "grid": true, "gridType": "rectangular", "gridWidth": 32, "gridHeight": 32, "gridOffsetX": 0, "gridOffsetY": 0, "gridColor": 10401023, "gridAlpha": 0.3, "snap": true, "zoomFactor": 0.1293181116650651, "windowMask": false }, "objectsGroups": [ { "name": "MobileControls", "objects": [ { "name": "JumpButton" }, { "name": "Joystick" } ] }, { "name": "EndScreenObjects", "objects": [ { "name": "EndScreenBackground" }, { "name": "EndScreenHeader" }, { "name": "EndScreenSubHeader" }, { "name": "EndScreenBestText" }, { "name": "EndScreenChallengeText" }, { "name": "EndScreenRetryText" }, { "name": "RetryButton" } ] } ], "variables": [ { "name": "Score", "type": "number", "value": 0 } ], "instances": [ { "angle": 0, "customSize": true, "depth": 1, "height": 2592, "layer": "", "name": "LeftBoundary", "persistentUuid": "78dd0ffa-b22f-47a8-9b36-ef6a432b1d1e", "width": 128, "x": -128, "y": -480, "zOrder": 38, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 2336, "layer": "Background", "name": "BackgroundPlants", "persistentUuid": "03b6869d-198f-4807-b659-f2b863e21073", "width": 25182, "x": 2, "y": -352, "zOrder": -1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 2592, "layer": "", "name": "RightBoundary", "persistentUuid": "9562fd9d-6e93-4465-9013-efa2b833653b", "width": 128, "x": 25184, "y": -480, "zOrder": 58, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "TopBoundary", "persistentUuid": "4381c067-2682-4f00-9a24-ff28fa12b1d8", "width": 25440, "x": -128, "y": -480, "zOrder": 59, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "BottomBoundary", "persistentUuid": "00f86cf3-18b0-4d71-9ce8-952dfc4e6b5c", "width": 25440, "x": -128, "y": 1984, "zOrder": 60, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 55, "layer": "", "name": "BoundaryJumpThrough", "persistentUuid": "d5587925-e2c2-4577-b9aa-fd05909a8cd7", "width": 203, "x": 4949, "y": 288, "zOrder": 51, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "Player", "persistentUuid": "014db1f5-0846-4cba-821e-57e29d368c14", "width": 269, "x": 67, "y": 560, "zOrder": 63, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 304, "layer": "", "name": "StaticPlatform2", "persistentUuid": "c9cf2013-115e-4120-8602-4d606e8a0ad9", "width": 640, "x": 0, "y": 656, "zOrder": 64, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 496, "layer": "", "name": "StaticPlatform3", "persistentUuid": "42e278f5-2af7-415d-bb8f-564f22f2b6e9", "width": 992, "x": 2752, "y": 1296, "zOrder": 65, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 286, "layer": "", "name": "HorizontalMovingPlatformRight", "persistentUuid": "2b9c6b21-8b60-467c-a2bd-e2e2c928c4cb", "width": 572, "x": 1730, "y": 688, "zOrder": 67, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "FlyingDemon", "persistentUuid": "c1e3952c-66b5-4b85-bc5d-9f9e07232fa3", "width": 192, "x": 2752, "y": 704, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "FlyingDemon", "persistentUuid": "469891b2-36ce-44eb-83bd-116ceb01586d", "width": 192, "x": 3264, "y": 608, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "FlyingDemon", "persistentUuid": "3c03af59-87a3-43d4-9497-191630201107", "width": 192, "x": 3712, "y": 448, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 577, "layer": "", "name": "Ladder", "persistentUuid": "f4d2584e-ccb5-49c9-a4f2-fc7227857ba0", "width": 192, "x": 4960, "y": 863, "zOrder": 68, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": false, "height": 0, "layer": "", "name": "StaticPlatform1", "persistentUuid": "08c3575e-ee7f-49a8-b5d6-eb5d582e39ea", "width": 0, "x": 4192, "y": 1408, "zOrder": 69, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "a9d7e701-37a0-4b26-84b4-6e34c353f46a", "width": 224, "x": 3456, "y": 1120, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform2", "persistentUuid": "186fefca-00c0-4bb0-a00b-080050921ff3", "width": 256, "x": 5728, "y": 320, "zOrder": 70, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform2", "persistentUuid": "41df1d4f-19c8-45f8-b4a9-ce90fcbe94e9", "width": 256, "x": 7578, "y": 192, "zOrder": 70, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform2", "persistentUuid": "e1121329-48c4-4b4c-8f86-6edb031e4894", "width": 256, "x": 8572, "y": 480, "zOrder": 70, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "2786e4b7-4185-408d-8545-af543b61d412", "width": 341, "x": 4896, "y": -32, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "FlyingDemon", "persistentUuid": "50a825dd-9186-4b2d-8262-d4a6f24f766b", "width": 192, "x": 5632, "y": 1312, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "FlyingDemon", "persistentUuid": "cea536cb-8577-415c-b64e-519da2e66fdf", "width": 192, "x": 6252, "y": 1184, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "FlyingDemon", "persistentUuid": "d1e8bd95-9226-4a8e-997f-76b6674fdfb4", "width": 192, "x": 6856, "y": 1056, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "FlyingDemon", "persistentUuid": "a46ecc12-a2ac-4a7a-a2dc-787537690cdd", "width": 192, "x": 7512, "y": 1056, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "FlyingDemon", "persistentUuid": "5a2cf3a0-c98e-4fb8-a092-d22c386e7770", "width": 192, "x": 8184, "y": 1216, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "FlyingDemon", "persistentUuid": "a0e51e1e-fe2a-4209-ac0a-17a7079a01b7", "width": 192, "x": 4192, "y": 256, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "FlyingDemon", "persistentUuid": "84b94cf5-550b-410e-a903-abd7418b1f49", "width": 192, "x": 4640, "y": 128, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "4dc27fb2-563b-46e1-8561-41bee4d2c4fd", "width": 224, "x": 2976, "y": 1120, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform2", "persistentUuid": "da386e95-0272-429d-a368-7e59b348c3da", "width": 256, "x": 9536, "y": 832, "zOrder": 70, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 577, "layer": "", "name": "Ladder", "persistentUuid": "e63bbf1d-c24e-48cf-9a1d-71b8bbc8b2d9", "width": 192, "x": 4960, "y": 288, "zOrder": 68, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "FlyingDemon", "persistentUuid": "4dfff24c-42dc-4df9-aef6-dc38f762b36a", "width": 192, "x": 8888, "y": 1408, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 168, "layer": "", "name": "StaticPlatform1", "persistentUuid": "d44d69e7-ae32-4f73-a2ec-8a6a3d2e5270", "width": 864, "x": 10112, "y": 1624, "zOrder": 69, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 368, "layer": "", "name": "StaticPlatform3", "persistentUuid": "7ddd4481-dfa5-45e1-a722-6b8adf8619e7", "width": 736, "x": 11200, "y": 1232, "zOrder": 65, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 347, "customSize": true, "depth": 1, "height": 391, "layer": "", "name": "StaticPlatform3", "persistentUuid": "54d17d41-17d5-4443-9b7e-ad9d2f5c62a0", "width": 780, "x": 12005, "y": 945, "zOrder": 65, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "2a245eeb-ac32-4381-bc5d-cd88cffd45b7", "width": 224, "x": 11520, "y": 1120, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "5d0f786c-a8ae-4777-b9d7-3d9896f6e3aa", "width": 224, "x": 13120, "y": 1088, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "FlyingDemon", "persistentUuid": "6e223543-e8fd-4ab0-9726-baf8fb76fd07", "width": 192, "x": 14528, "y": 1312, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform2", "persistentUuid": "250408d2-78cf-43e3-a4bb-1d252cb760e4", "width": 256, "x": 13120, "y": 608, "zOrder": 70, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform2", "persistentUuid": "59b78ba0-5eb2-4b24-b955-0a75f78a192a", "width": 256, "x": 13948, "y": 352, "zOrder": 70, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform2", "persistentUuid": "2551410a-95c6-40ba-b885-eaf2421f107c", "width": 256, "x": 14888, "y": 352, "zOrder": 70, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform2", "persistentUuid": "a2b7d856-f34a-43e9-b567-e2cd22d8f1e4", "width": 256, "x": 15888, "y": 512, "zOrder": 70, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform2", "persistentUuid": "e347c14b-3aed-4f9f-a78c-fa95b0071cc0", "width": 256, "x": 1024, "y": 480, "zOrder": 70, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "fa0301b8-9f12-4cf9-ad30-2d274d448e13", "width": 341, "x": 10400, "y": 1120, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 496, "layer": "", "name": "StaticPlatform3", "persistentUuid": "ec1b505e-4a50-4898-85b5-19e0cdb4b458", "width": 992, "x": 24448, "y": 432, "zOrder": 72, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 544, "layer": "", "name": "Portal", "persistentUuid": "fa79662d-16c7-4c21-a43d-0a204befff36", "width": 408, "x": 24776, "y": -64, "zOrder": 73, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Memory", "persistentUuid": "58196f81-947d-479b-8722-7a47ea0e93a4", "width": 256, "x": 24832, "y": -288, "zOrder": 74, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform2", "persistentUuid": "7568b2e3-3f6c-4ac1-8371-73f187cccc79", "width": 256, "x": 6595, "y": 160, "zOrder": 70, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "FlyingDemon", "persistentUuid": "b271a0ef-c7b0-4b8f-9b67-b36deac09667", "width": 192, "x": 15072, "y": 1312, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 121, "layer": "", "name": "StaticPlatform1", "persistentUuid": "3a47c88a-1170-4d1d-a4de-95fd82e0b825", "width": 576, "x": 17248, "y": 519, "zOrder": 75, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 121, "layer": "", "name": "StaticPlatform1", "persistentUuid": "463ad988-8a62-4d54-a22c-058a0f514c45", "width": 576, "x": 17824, "y": 519, "zOrder": 75, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 121, "layer": "", "name": "StaticPlatform1", "persistentUuid": "429ba08d-bd00-41a1-a6ca-908623c01b5b", "width": 576, "x": 17248, "y": 1095, "zOrder": 75, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 121, "layer": "", "name": "StaticPlatform1", "persistentUuid": "c677f8af-dc6e-4af9-9763-ee02f2e91657", "width": 576, "x": 17824, "y": 1095, "zOrder": 75, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 121, "layer": "", "name": "StaticPlatform1", "persistentUuid": "c5ae06d6-8ff6-4553-af54-1c221060f962", "width": 576, "x": 18400, "y": 1095, "zOrder": 75, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "bdca8cae-ffc9-41c7-8d0e-11898811ea86", "width": 341, "x": 17360, "y": 224, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "03616b37-dcad-4e26-bce7-20279c2177a2", "width": 341, "x": 18443, "y": 800, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 270, "customSize": true, "depth": 1, "height": 125, "layer": "", "name": "StaticPlatform1", "persistentUuid": "32a07abc-08d7-49c1-accb-3d9517eb6035", "width": 448, "x": 19612, "y": 1543, "zOrder": 75, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 270, "customSize": true, "depth": 1, "height": 125, "layer": "", "name": "StaticPlatform1", "persistentUuid": "b3dde7bd-a2f4-4c02-9f8b-9172b6a890c0", "width": 448, "x": 20409, "y": 1543, "zOrder": 75, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 270, "customSize": true, "depth": 1, "height": 125, "layer": "", "name": "StaticPlatform1", "persistentUuid": "60e0f483-e815-4be2-85ea-00dd9a4823d5", "width": 448, "x": 21206, "y": 1543, "zOrder": 75, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 270, "customSize": true, "depth": 1, "height": 125, "layer": "", "name": "StaticPlatform1", "persistentUuid": "252781d7-298c-47bd-9aab-f054d63087fd", "width": 448, "x": 22013, "y": 1543, "zOrder": 75, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform2", "persistentUuid": "56e55bc4-df62-4109-b5fe-346e21ebbc8a", "width": 256, "x": 22052, "y": 416, "zOrder": 70, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "793f32c8-6be5-4585-92bb-3eb3fde6b0aa", "width": 224, "x": 18880, "y": 320, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "HorizontalDemon", "persistentUuid": "986cae93-65c3-44b5-8b90-04148312b81d", "width": 256, "x": 19040, "y": 320, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "ba3ee5d8-fea6-4256-881d-82ea9b82e501", "width": 544, "x": 19840, "y": 256, "zOrder": 75, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "StaticPlatform2", "persistentUuid": "7232a73b-137f-4a7b-962d-2e1e7ba59c08", "width": 256, "x": 21056, "y": 416, "zOrder": 70, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "27983c07-2c95-445e-9347-705358eba66f", "width": 224, "x": 19040, "y": 320, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 368, "layer": "", "name": "SpinningPlatformClockwise", "persistentUuid": "7b5549e0-e031-4bc5-8c70-3442e3cdf5d7", "width": 736, "x": 23040, "y": 160, "zOrder": 77, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "4f1ce603-b4a2-42d9-bd6d-e1e509f5b5a9", "width": 341, "x": 4416, "y": 1152, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 121, "layer": "", "name": "StaticPlatform1", "persistentUuid": "c7038bbb-4cde-4da2-b9bb-9337381a6186", "width": 576, "x": 16672, "y": 519, "zOrder": 75, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "FlyingDemon", "persistentUuid": "f020ab4c-a21b-4901-a4d2-b8ee1585647a", "width": 192, "x": 9568, "y": 1536, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "FlyingDemon", "persistentUuid": "6b98c757-1156-4240-abc6-8abffa9ba934", "width": 192, "x": 16224, "y": 1120, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "FlyingDemon", "persistentUuid": "0cf2dac5-a68d-4ddf-a177-6bbbb62e11d0", "width": 192, "x": 15680, "y": 1248, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "af74a467-d4b3-4518-b93e-c98b6a28fa78", "width": 192, "x": 13760, "y": 1280, "zOrder": 102, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "CanShootOffscreen", "type": "boolean", "value": false }, { "folded": true, "name": "FireFrequencyTime", "type": "number", "value": 4 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "FlyingDemon", "persistentUuid": "1dd84913-99fd-4d7f-8269-a1595158168a", "width": 192, "x": 16736, "y": 1056, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "a069290c-0c48-4ea1-8103-d1856c47e854", "width": 224, "x": 17376, "y": 912, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] } ], "objects": [ { "assetStoreId": "", "height": 1024, "name": "BackgroundPlants", "texture": "AssetDev/Backgrounds/Ocean/Ocean.png", "type": "TiledSpriteObject::TiledSprite", "width": 2048, "variables": [], "effects": [ { "effectType": "TiltShift", "name": "Effect", "doubleParameters": { "blur": 30, "gradientBlur": 1000 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "OldFilm", "name": "Effect2", "doubleParameters": { "animationFrequency": 60, "noise": 0.1, "noiseSize": 1, "scratch": 0.5, "scratchDensity": 0.4, "scratchWidth": 1, "sepia": 0.1, "vignetting": 0.75, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [] } ], "objectsFolderStructure": { "folderName": "__ROOT", "children": [ { "objectName": "BackgroundPlants" } ] }, "events": [ { "type": "BuiltinCommonInstructions::Link", "include": { "includeConfig": 0 }, "target": "LevelEvents" }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Change Scene", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "LayerVisible" }, "parameters": [ "", "\"EndScreen\"" ] }, { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "PanelSpriteButton::PanelSpriteButton::IsClicked" }, "parameters": [ "UI_Sinage_RetryButton", "" ] }, { "type": { "value": "KeyReleased" }, "parameters": [ "", "Space" ] } ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Player", "Lives", ">", "0" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Mindscape\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Player", "Lives", "<=", "0" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Level4\"", "" ] } ] } ] } ], "parameters": [] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "AnimatableCapability::AnimatableBehavior::SetName" }, "parameters": [ "Memory", "Animation", "=", "\"Ocean\"" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Player", "LifeForce", "=", "4" ] } ] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "MusicController", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "PlaySound" }, "parameters": [ "", "Assets/Sounds/Levels/5/AmbientLoop.ogg", "yes", "GlobalVariable(Volume_Music) - 16", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CompareTimer" }, "parameters": [ "RandomSFXIndex", "\"RandomNoiseTimer\"", ">", "Variable(TimeBeforeNextRandomSFX)" ] } ], "actions": [ { "type": { "value": "ModVarScene" }, "parameters": [ "RandomSFXIndex", "=", "RandomInRange(1, 3)" ] }, { "type": { "value": "ResetTimer" }, "parameters": [ "", "\"RandomNoiseTimer\"" ] }, { "type": { "value": "ModVarScene" }, "parameters": [ "TimeBeforeNextRandomSFX", "=", "RandomFloatInRange(30,240)" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarScene" }, "parameters": [ "RandomSFXIndex", "=", "1" ] } ], "actions": [ { "type": { "value": "PlaySound" }, "parameters": [ "", "Assets/Sounds/RandomSounds/RandomAmbiance1.wav", "", "GlobalVariable(Volume_SFX)", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarScene" }, "parameters": [ "RandomSFXIndex", "=", "2" ] } ], "actions": [ { "type": { "value": "PlaySound" }, "parameters": [ "", "Assets/Sounds/RandomSounds/RandomAmbiance2.wav", "", "GlobalVariable(Volume_SFX)", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarScene" }, "parameters": [ "RandomSFXIndex", "=", "3" ] } ], "actions": [ { "type": { "value": "PlaySound" }, "parameters": [ "", "Assets/Sounds/RandomSounds/RandomAmbiance3.wav", "", "GlobalVariable(Volume_SFX)", "" ] } ] } ] } ], "parameters": [] } ], "layers": [ { "ambientLightColorB": 8002120, "ambientLightColorG": 6031360, "ambientLightColorR": 7844472, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "Background", "renderingType": "2d", "visibility": true, "cameras": [], "effects": [] }, { "ambientLightColorB": 32, "ambientLightColorG": 0, "ambientLightColorR": 0, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "", "renderingType": "", "visibility": true, "cameras": [ { "defaultSize": true, "defaultViewport": true, "height": 0, "viewportBottom": 1, "viewportLeft": 0, "viewportRight": 1, "viewportTop": 0, "width": 0 } ], "effects": [ { "effectType": "Scene3D::HemisphereLight", "name": "3D Light", "doubleParameters": { "elevation": 45, "intensity": 1, "rotation": 0 }, "stringParameters": { "groundColor": "64;64;64", "skyColor": "255;255;255", "top": "Y-" }, "booleanParameters": {} }, { "effectType": "OldFilm", "name": "Effect", "doubleParameters": { "animationFrequency": 60, "noise": 0.15, "noiseSize": 1, "scratch": 0, "scratchDensity": 0.2, "scratchWidth": 1, "sepia": 0, "vignetting": 0.4, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": {} } ] }, { "ambientLightColorB": 9191608, "ambientLightColorG": 6031360, "ambientLightColorR": 8756632, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "UI", "renderingType": "2d", "visibility": true, "cameras": [], "effects": [] }, { "ambientLightColorB": -2147483616, "ambientLightColorG": 6031360, "ambientLightColorR": 11020320, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "EndScreen", "renderingType": "2d", "visibility": false, "cameras": [], "effects": [] } ], "behaviorsSharedData": [ { "name": "AdvancedProjectile", "type": "AdvancedProjectile::AdvancedProjectile" }, { "name": "Animation", "type": "AnimatableCapability::AnimatableBehavior" }, { "name": "Effect", "type": "EffectCapability::EffectBehavior" }, { "name": "EllipseMovement", "type": "EllipseMovement::EllipseMovement" }, { "name": "Flippable", "type": "FlippableCapability::FlippableBehavior" }, { "name": "InOnScreen", "type": "IsOnScreen::InOnScreen" }, { "name": "MonsterEnemy", "type": "Enemy::MonsterEnemy" }, { "name": "Opacity", "type": "OpacityCapability::OpacityBehavior" }, { "name": "Platform", "type": "PlatformBehavior::PlatformBehavior" }, { "name": "PlatformerCharacterAnimator", "type": "PlatformerCharacterAnimator::PlatformerCharacterAnimator" }, { "name": "PlatformerGamepadMapper", "type": "Gamepads::PlatformerGamepadMapper" }, { "name": "PlatformerMultitouchMapper", "type": "MultitouchJoystick::PlatformerMultitouchMapper" }, { "name": "PlatformerObject", "type": "PlatformBehavior::PlatformerObjectBehavior" }, { "name": "RectangleMovement", "type": "RectangleMovement::RectangleMovement" }, { "name": "Resizable", "type": "ResizableCapability::ResizableBehavior" }, { "name": "Scale", "type": "ScalableCapability::ScalableBehavior" }, { "name": "ShakeObject_PositionAngle", "type": "ShakeObject::ShakeObject_PositionAngle" }, { "name": "ShakeObject_PositionAngleScale", "type": "ShakeObject::ShakeObject_PositionAngleScale" }, { "name": "SmoothCamera", "type": "SmoothCamera::SmoothCamera" }, { "name": "Text", "type": "TextContainerCapability::TextContainerBehavior" }, { "name": "TimedBackAndForthMirroredMovement", "type": "TimedBackAndForthMovement::TimedBackAndForthMirroredMovement" }, { "name": "Tween", "type": "Tween::TweenBehavior" } ] }, { "b": 26, "disableInputWhenNotFocused": true, "mangledName": "Level3", "name": "Level3", "r": 11, "standardSortMethod": true, "stopSoundsOnStartup": true, "title": "", "v": 24, "uiSettings": { "grid": true, "gridType": "rectangular", "gridWidth": 32, "gridHeight": 32, "gridOffsetX": 0, "gridOffsetY": 0, "gridColor": 10401023, "gridAlpha": 0.3, "snap": true, "zoomFactor": 0.1210189105998629, "windowMask": false }, "objectsGroups": [ { "name": "MobileControls", "objects": [ { "name": "JumpButton" }, { "name": "Joystick" } ] }, { "name": "EndScreenObjects", "objects": [ { "name": "EndScreenBackground" }, { "name": "EndScreenHeader" }, { "name": "EndScreenSubHeader" }, { "name": "EndScreenBestText" }, { "name": "EndScreenChallengeText" }, { "name": "EndScreenRetryText" }, { "name": "RetryButton" } ] } ], "variables": [ { "name": "Score", "type": "number", "value": 0 } ], "instances": [ { "angle": 0, "customSize": true, "depth": 1, "height": 2048, "layer": "Background", "name": "BackgroundPlants", "persistentUuid": "03b6869d-198f-4807-b659-f2b863e21073", "width": 27392, "x": 0, "y": -288, "zOrder": -1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 2304, "layer": "", "name": "RightBoundary", "persistentUuid": "9562fd9d-6e93-4465-9013-efa2b833653b", "width": 128, "x": 27392, "y": -416, "zOrder": 58, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "TopBoundary", "persistentUuid": "4381c067-2682-4f00-9a24-ff28fa12b1d8", "width": 27520, "x": 0, "y": -416, "zOrder": 59, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "BottomBoundary", "persistentUuid": "00f86cf3-18b0-4d71-9ce8-952dfc4e6b5c", "width": 27520, "x": 0, "y": 1760, "zOrder": 60, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "Player", "persistentUuid": "014db1f5-0846-4cba-821e-57e29d368c14", "width": 256, "x": 160, "y": 864, "zOrder": 63, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 304, "layer": "", "name": "StaticPlatform2", "persistentUuid": "c9cf2013-115e-4120-8602-4d606e8a0ad9", "width": 608, "x": 128, "y": 960, "zOrder": 64, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "fa0301b8-9f12-4cf9-ad30-2d274d448e13", "width": 341, "x": 16811, "y": 768, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 496, "layer": "", "name": "StaticPlatform3", "persistentUuid": "ec1b505e-4a50-4898-85b5-19e0cdb4b458", "width": 992, "x": 26496, "y": 1136, "zOrder": 72, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 544, "layer": "", "name": "Portal", "persistentUuid": "fa79662d-16c7-4c21-a43d-0a204befff36", "width": 408, "x": 26984, "y": 640, "zOrder": 73, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 368, "layer": "", "name": "StaticPlatform3", "persistentUuid": "3c6b702b-6ec5-451b-a065-713215ddec5e", "width": 736, "x": 3744, "y": 672, "zOrder": 65, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 368, "layer": "", "name": "StaticPlatform3", "persistentUuid": "43a3e4bd-d210-4fc2-905a-0bd7d20c0547", "width": 736, "x": 11936, "y": 960, "zOrder": 65, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 160, "layer": "", "name": "StaticPlatform2", "persistentUuid": "85a18617-414d-45f0-a124-14642efd44da", "width": 320, "x": 9280, "y": 960, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 352, "layer": "", "name": "HorizontalMovingPlatformRight", "persistentUuid": "5306322c-8319-45d8-9b40-d2757a88ee7d", "width": 704, "x": 10528, "y": 896, "zOrder": 79, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 352, "layer": "", "name": "HorizontalMovingPlatformRight", "persistentUuid": "6f771993-a5a0-43c8-a8a5-2b7e7e4b65ab", "width": 704, "x": 12960, "y": 992, "zOrder": 79, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Memory", "persistentUuid": "84344788-8847-4b12-8782-f9d5ac66dd87", "width": 256, "x": 27040, "y": 416, "zOrder": 84, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 304, "layer": "", "name": "StaticPlatform2", "persistentUuid": "7b8c1603-9854-4e8b-844b-9772155a6b5e", "width": 608, "x": 928, "y": 704, "zOrder": 64, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 304, "layer": "", "name": "StaticPlatform2", "persistentUuid": "a7dc999b-d74a-4e98-bd7b-171d85bf270e", "width": 608, "x": 1696, "y": 448, "zOrder": 64, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 136, "layer": "", "name": "StaticPlatform1", "persistentUuid": "6291f631-2a0b-403d-a8e2-6dede9a76b6d", "width": 544, "x": 6240, "y": 920, "zOrder": 86, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "5e6b44c3-8064-4ba8-b5c2-e34489aaf5a6", "width": 341, "x": 6336, "y": 672, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "36214317-ff6c-4325-ab9e-4fd776f5dcac", "width": 256, "x": 5440, "y": 672, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "StaticPlatform3", "persistentUuid": "7267fd59-17de-4a86-ae06-e6f2c249f23e", "width": 448, "x": 7136, "y": 810, "zOrder": 65, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "StaticPlatform3", "persistentUuid": "62232ff5-cf63-4fbb-846b-cd07883a7705", "width": 384, "x": 8544, "y": 864, "zOrder": 65, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "StaticPlatform2", "persistentUuid": "8675d6a8-1464-45c1-935d-c26b8a914949", "width": 448, "x": 9888, "y": 768, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 18, "customSize": true, "depth": 1, "height": 368, "layer": "", "name": "StaticPlatform3", "persistentUuid": "882cb2f0-a23f-4392-88b7-e2b9cf6a9104", "width": 736, "x": 14279, "y": 920, "zOrder": 65, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 354, "customSize": true, "depth": 1, "height": 177, "layer": "", "name": "StaticPlatform3", "persistentUuid": "eefce13e-0231-4e57-86e7-cba4b4fa7325", "width": 354, "x": 17654, "y": 1085, "zOrder": 65, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "3bbcd468-a052-48db-b25b-0622513132de", "width": 256, "x": 18176, "y": 704, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "HorizontalDemon", "persistentUuid": "79e52e0b-b378-4aa4-8dc4-8466bf981c8e", "width": 256, "x": 2560, "y": 384, "zOrder": 91, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "a8c87da3-79f9-4ea6-8f08-8fed174629b0", "width": 192, "x": 12864, "y": 827, "zOrder": 92, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "41fc5b2c-c1bc-42ca-9285-3f761a1ed253", "width": 192, "x": 11872, "y": 768, "zOrder": 92, "numberProperties": [ { "name": "animation", "value": 0 } ], "stringProperties": [], "initialVariables": [] }, { "angle": 37, "customSize": true, "depth": 1, "height": 368, "layer": "", "name": "StaticPlatform3", "persistentUuid": "63d8400f-0be8-4d2a-a1b6-d17eeae90e3c", "width": 736, "x": 15018, "y": 803, "zOrder": 65, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 50, "customSize": true, "depth": 1, "height": 368, "layer": "", "name": "StaticPlatform3", "persistentUuid": "390efc0f-0b3b-4450-baf9-cea0f7e1ed2e", "width": 736, "x": 15692, "y": 822, "zOrder": 65, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "HorizontalDemon", "persistentUuid": "81d6661a-4692-4d10-8359-2ed0a52bf49f", "width": 256, "x": 3104, "y": 576, "zOrder": 91, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 368, "layer": "", "name": "StaticPlatform3", "persistentUuid": "d4a807ab-c4d5-41b4-8f6c-7f0ec7bfd0a1", "width": 736, "x": 16622, "y": 983, "zOrder": 65, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "bc9ec261-eced-4481-a955-2aae5624f7f5", "width": 256, "x": 18622, "y": 475, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "HorizontalDemon", "persistentUuid": "588ad7a9-3bb1-4bef-9430-2a23f3464e89", "width": 256, "x": 19456, "y": 96, "zOrder": 91, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 384, "layer": "", "name": "StaticPlatform2", "persistentUuid": "a7ec6f5a-48bb-4eeb-aaa0-563d0684b22d", "width": 768, "x": 19008, "y": 320, "zOrder": 94, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 384, "layer": "", "name": "StaticPlatform2", "persistentUuid": "86960a76-cc6f-41af-92c5-ff013a06e5f0", "width": 768, "x": 19904, "y": 544, "zOrder": 94, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "HorizontalDemon", "persistentUuid": "26126611-258e-4577-bf4f-20db6f7a964b", "width": 256, "x": 19648, "y": 320, "zOrder": 91, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 384, "layer": "", "name": "StaticPlatform2", "persistentUuid": "b593749e-822f-4426-8c5b-f7c90b6ba4d4", "width": 768, "x": 21260, "y": 544, "zOrder": 94, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "8db77333-c26e-4eac-b5b0-e0574bec400e", "width": 341, "x": 20715, "y": 288, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "57dfe7ba-28cb-413c-b290-603cb0caae4d", "width": 192, "x": 21504, "y": 1152, "zOrder": 92, "numberProperties": [ { "name": "animation", "value": 0 } ], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 304, "layer": "", "name": "HorizontalMovingPlatformRight", "persistentUuid": "d68dba8a-3e1d-4b1b-bc7a-9b51e52ec349", "width": 608, "x": 21760, "y": 1200, "zOrder": 97, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "758c90ae-4a1c-49f2-8872-1fe4995b1614", "width": 256, "x": 22432, "y": 864, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 400, "layer": "", "name": "StaticPlatform3", "persistentUuid": "10442942-066c-4585-9abe-c6e0bbb071a9", "width": 800, "x": 22816, "y": 720, "zOrder": 99, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "HorizontalDemon", "persistentUuid": "eba7f98b-2acb-4ff1-b502-86bcef5d7683", "width": 256, "x": 24736, "y": 192, "zOrder": 91, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "StaticPlatform3", "persistentUuid": "d63d02e0-e6e3-4aa0-b303-57b95793cc12", "width": 384, "x": 24000, "y": 448, "zOrder": 99, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 368, "layer": "", "name": "StaticPlatform2", "persistentUuid": "a114b13f-fc3c-4b47-a261-a49271d60596", "width": 736, "x": 24928, "y": 752, "zOrder": 98, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "5683e362-126b-4041-89ac-1a4c4a62c9a8", "width": 704, "x": 20736, "y": 1280, "zOrder": 100, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "512b6603-20e6-4380-a559-2a7cee29a145", "width": 192, "x": 26016, "y": 640, "zOrder": 102, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 192, "layer": "", "name": "SpikeDemon_Base", "persistentUuid": "72ed653a-bc05-4cf8-afd4-3a6d8dcdf0da", "width": 192, "x": 7648, "y": 680, "zOrder": 103, "numberProperties": [], "stringProperties": [], "initialVariables": [ { "folded": true, "name": "FireOffsetTime", "type": "number", "value": 1 } ] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "a7507130-fb94-454d-b2ab-a9e10017486b", "width": 341, "x": 9920, "y": 512, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 2304, "layer": "", "name": "LeftBoundary", "persistentUuid": "92e44b1e-8ec3-4a11-aeee-92fe1c656975", "width": 128, "x": 0, "y": -416, "zOrder": 38, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "158491b2-9ddd-4d08-a6f4-7e0cd7144932", "width": 256, "x": 4864, "y": 672, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FireDemon", "persistentUuid": "546733e4-525c-468f-b12f-4e64fd8ec536", "width": 256, "x": 6848, "y": 704, "zOrder": 104, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "ba4dee22-5735-47b2-a85e-eb0f5291b854", "width": 256, "x": 8128, "y": 736, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] } ], "objects": [ { "assetStoreId": "", "height": 1024, "name": "BackgroundPlants", "texture": "AssetDev/Backgrounds/LivingRoom/LivingRoom.png", "type": "TiledSpriteObject::TiledSprite", "width": 2048, "variables": [], "effects": [ { "effectType": "TiltShift", "name": "Effect", "doubleParameters": { "blur": 30, "gradientBlur": 1000 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "OldFilm", "name": "Effect2", "doubleParameters": { "animationFrequency": 60, "noise": 0.1, "noiseSize": 1, "scratch": 0.5, "scratchDensity": 0.4, "scratchWidth": 1, "sepia": 0.1, "vignetting": 0.75, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [] } ], "objectsFolderStructure": { "folderName": "__ROOT", "children": [ { "objectName": "BackgroundPlants" } ] }, "events": [ { "type": "BuiltinCommonInstructions::Link", "include": { "includeConfig": 0 }, "target": "LevelEvents" }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Change Scene", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "LayerVisible" }, "parameters": [ "", "\"EndScreen\"" ] }, { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "PanelSpriteButton::PanelSpriteButton::IsClicked" }, "parameters": [ "UI_Sinage_RetryButton", "" ] }, { "type": { "value": "KeyReleased" }, "parameters": [ "", "Space" ] } ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Player", "Lives", ">", "0" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Mindscape\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Player", "Lives", "<=", "0" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Level3\"", "" ] } ] } ] } ], "parameters": [] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "AnimatableCapability::AnimatableBehavior::SetName" }, "parameters": [ "Memory", "Animation", "=", "\"LivingRoom\"" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Player", "LifeForce", "=", "3" ] } ] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "MusicController", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "PlaySound" }, "parameters": [ "", "Assets/Sounds/Levels/3/AmbientLoop.ogg", "yes", "GlobalVariable(Volume_Music) + 17", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CompareTimer" }, "parameters": [ "RandomSFXIndex", "\"RandomNoiseTimer\"", ">", "Variable(TimeBeforeNextRandomSFX)" ] } ], "actions": [ { "type": { "value": "ModVarScene" }, "parameters": [ "RandomSFXIndex", "=", "RandomInRange(1, 3)" ] }, { "type": { "value": "ResetTimer" }, "parameters": [ "", "\"RandomNoiseTimer\"" ] }, { "type": { "value": "ModVarScene" }, "parameters": [ "TimeBeforeNextRandomSFX", "=", "RandomFloatInRange(30,240)" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarScene" }, "parameters": [ "RandomSFXIndex", "=", "1" ] } ], "actions": [ { "type": { "value": "PlaySound" }, "parameters": [ "", "Assets/Sounds/RandomSounds/RandomAmbiance1.wav", "", "GlobalVariable(Volume_SFX)", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarScene" }, "parameters": [ "RandomSFXIndex", "=", "2" ] } ], "actions": [ { "type": { "value": "PlaySound" }, "parameters": [ "", "Assets/Sounds/RandomSounds/RandomAmbiance2.wav", "", "GlobalVariable(Volume_SFX)", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarScene" }, "parameters": [ "RandomSFXIndex", "=", "3" ] } ], "actions": [ { "type": { "value": "PlaySound" }, "parameters": [ "", "Assets/Sounds/RandomSounds/RandomAmbiance3.wav", "", "GlobalVariable(Volume_SFX)", "" ] } ] } ] } ], "parameters": [] } ], "layers": [ { "ambientLightColorB": 8002120, "ambientLightColorG": 6031360, "ambientLightColorR": 7844472, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "Background", "renderingType": "2d", "visibility": true, "cameras": [], "effects": [] }, { "ambientLightColorB": 32, "ambientLightColorG": 0, "ambientLightColorR": 0, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "", "renderingType": "", "visibility": true, "cameras": [ { "defaultSize": true, "defaultViewport": true, "height": 0, "viewportBottom": 1, "viewportLeft": 0, "viewportRight": 1, "viewportTop": 0, "width": 0 } ], "effects": [ { "effectType": "Scene3D::HemisphereLight", "name": "3D Light", "doubleParameters": { "elevation": 45, "intensity": 1, "rotation": 0 }, "stringParameters": { "groundColor": "64;64;64", "skyColor": "255;255;255", "top": "Y-" }, "booleanParameters": {} }, { "effectType": "OldFilm", "name": "Effect", "doubleParameters": { "animationFrequency": 60, "noise": 0.15, "noiseSize": 1, "scratch": 0, "scratchDensity": 0.2, "scratchWidth": 1, "sepia": 0, "vignetting": 0.4, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": {} } ] }, { "ambientLightColorB": 9191608, "ambientLightColorG": 6031360, "ambientLightColorR": 8756632, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "UI", "renderingType": "2d", "visibility": true, "cameras": [], "effects": [] }, { "ambientLightColorB": -2147483616, "ambientLightColorG": 6031360, "ambientLightColorR": 11020320, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "EndScreen", "renderingType": "2d", "visibility": false, "cameras": [], "effects": [] } ], "behaviorsSharedData": [ { "name": "AdvancedProjectile", "type": "AdvancedProjectile::AdvancedProjectile" }, { "name": "Animation", "type": "AnimatableCapability::AnimatableBehavior" }, { "name": "Effect", "type": "EffectCapability::EffectBehavior" }, { "name": "EllipseMovement", "type": "EllipseMovement::EllipseMovement" }, { "name": "Flippable", "type": "FlippableCapability::FlippableBehavior" }, { "name": "InOnScreen", "type": "IsOnScreen::InOnScreen" }, { "name": "MonsterEnemy", "type": "Enemy::MonsterEnemy" }, { "name": "Opacity", "type": "OpacityCapability::OpacityBehavior" }, { "name": "Platform", "type": "PlatformBehavior::PlatformBehavior" }, { "name": "PlatformerCharacterAnimator", "type": "PlatformerCharacterAnimator::PlatformerCharacterAnimator" }, { "name": "PlatformerGamepadMapper", "type": "Gamepads::PlatformerGamepadMapper" }, { "name": "PlatformerMultitouchMapper", "type": "MultitouchJoystick::PlatformerMultitouchMapper" }, { "name": "PlatformerObject", "type": "PlatformBehavior::PlatformerObjectBehavior" }, { "name": "RectangleMovement", "type": "RectangleMovement::RectangleMovement" }, { "name": "Resizable", "type": "ResizableCapability::ResizableBehavior" }, { "name": "Scale", "type": "ScalableCapability::ScalableBehavior" }, { "name": "ShakeObject_PositionAngle", "type": "ShakeObject::ShakeObject_PositionAngle" }, { "name": "ShakeObject_PositionAngleScale", "type": "ShakeObject::ShakeObject_PositionAngleScale" }, { "name": "SmoothCamera", "type": "SmoothCamera::SmoothCamera" }, { "name": "Text", "type": "TextContainerCapability::TextContainerBehavior" }, { "name": "TimedBackAndForthMirroredMovement", "type": "TimedBackAndForthMovement::TimedBackAndForthMirroredMovement" }, { "name": "Tween", "type": "Tween::TweenBehavior" } ] }, { "b": 26, "disableInputWhenNotFocused": true, "mangledName": "Level2", "name": "Level2", "r": 11, "standardSortMethod": true, "stopSoundsOnStartup": true, "title": "", "v": 24, "uiSettings": { "grid": true, "gridType": "rectangular", "gridWidth": 32, "gridHeight": 32, "gridOffsetX": 0, "gridOffsetY": 0, "gridColor": 10401023, "gridAlpha": 0.3, "snap": true, "zoomFactor": 0.2126695039591079, "windowMask": false }, "objectsGroups": [ { "name": "MobileControls", "objects": [ { "name": "JumpButton" }, { "name": "Joystick" } ] }, { "name": "EndScreenObjects", "objects": [ { "name": "EndScreenBackground" }, { "name": "EndScreenHeader" }, { "name": "EndScreenSubHeader" }, { "name": "EndScreenBestText" }, { "name": "EndScreenChallengeText" }, { "name": "EndScreenRetryText" }, { "name": "RetryButton" } ] } ], "variables": [ { "name": "Score", "type": "number", "value": 0 } ], "instances": [ { "angle": 0, "customSize": true, "depth": 1, "height": 2720, "layer": "", "name": "LeftBoundary", "persistentUuid": "78dd0ffa-b22f-47a8-9b36-ef6a432b1d1e", "width": 128, "x": -128, "y": -768, "zOrder": 38, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 2464, "layer": "Background", "name": "BackgroundPlants", "persistentUuid": "03b6869d-198f-4807-b659-f2b863e21073", "width": 21504, "x": 0, "y": -640, "zOrder": -1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 2721, "layer": "", "name": "RightBoundary", "persistentUuid": "9562fd9d-6e93-4465-9013-efa2b833653b", "width": 128, "x": 21504, "y": -768, "zOrder": 58, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "TopBoundary", "persistentUuid": "4381c067-2682-4f00-9a24-ff28fa12b1d8", "width": 21760, "x": -128, "y": -768, "zOrder": 59, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "BottomBoundary", "persistentUuid": "00f86cf3-18b0-4d71-9ce8-952dfc4e6b5c", "width": 21760, "x": -128, "y": 1824, "zOrder": 60, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "Player", "persistentUuid": "014db1f5-0846-4cba-821e-57e29d368c14", "width": 256, "x": 32, "y": 704, "zOrder": 63, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 304, "layer": "", "name": "StaticPlatform2", "persistentUuid": "c9cf2013-115e-4120-8602-4d606e8a0ad9", "width": 608, "x": 0, "y": 768, "zOrder": 64, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "2786e4b7-4185-408d-8545-af543b61d412", "width": 341, "x": 5387, "y": 128, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "fa0301b8-9f12-4cf9-ad30-2d274d448e13", "width": 341, "x": 9728, "y": 624, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 496, "layer": "", "name": "StaticPlatform3", "persistentUuid": "ec1b505e-4a50-4898-85b5-19e0cdb4b458", "width": 992, "x": 20864, "y": 1169, "zOrder": 72, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 544, "layer": "", "name": "Portal", "persistentUuid": "fa79662d-16c7-4c21-a43d-0a204befff36", "width": 408, "x": 21096, "y": 673, "zOrder": 73, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 288, "layer": "", "name": "StaticPlatform3", "persistentUuid": "fc72f1f8-76cd-4828-b4ef-4cb594249934", "width": 608, "x": 1216, "y": 1056, "zOrder": 65, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 368, "layer": "", "name": "StaticPlatform3", "persistentUuid": "3c6b702b-6ec5-451b-a065-713215ddec5e", "width": 736, "x": 3328, "y": 1120, "zOrder": 65, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "29f1957a-43ab-4bcd-8266-cb5dcf3a7e18", "width": 256, "x": 2144, "y": 832, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "995df265-eb7b-4433-9233-ba55b3559cfa", "width": 256, "x": 2779, "y": 832, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 512, "layer": "", "name": "VerticalMovingPlatformDown", "persistentUuid": "4248b20d-521a-4933-a54b-dea3289988d3", "width": 512, "x": 4320, "y": 480, "zOrder": 75, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 368, "layer": "", "name": "StaticPlatform3", "persistentUuid": "05cc6c5a-2379-4707-9127-b64bab2dd632", "width": 736, "x": 5184, "y": 352, "zOrder": 65, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 368, "layer": "", "name": "StaticPlatform3", "persistentUuid": "a1c05625-7ed1-4809-94dc-e3328d47a30f", "width": 736, "x": 6688, "y": 352, "zOrder": 65, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "10faa9a4-4f08-4f81-af80-1d43d16dff37", "width": 256, "x": 7648, "y": 448, "zOrder": 77, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 368, "layer": "", "name": "StaticPlatform3", "persistentUuid": "2e5158d2-7bb1-4edc-82a6-5ac4ba7f092e", "width": 736, "x": 8032, "y": 656, "zOrder": 65, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FireDemon", "persistentUuid": "a2b46c9f-20eb-44b7-b9b0-ad753c4d120c", "width": 256, "x": 8384, "y": 456, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 368, "layer": "", "name": "StaticPlatform3", "persistentUuid": "43a3e4bd-d210-4fc2-905a-0bd7d20c0547", "width": 736, "x": 9536, "y": 880, "zOrder": 65, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 296, "customSize": true, "depth": 1, "height": 336, "layer": "", "name": "StaticPlatform2", "persistentUuid": "85a18617-414d-45f0-a124-14642efd44da", "width": 672, "x": 10618, "y": 880, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 336, "layer": "", "name": "StaticPlatform2", "persistentUuid": "8ddb28cc-c924-428d-a53e-28a9829839a7", "width": 704, "x": 11584, "y": 928, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 35, "customSize": true, "depth": 1, "height": 352, "layer": "", "name": "HorizontalMovingPlatformRight", "persistentUuid": "5306322c-8319-45d8-9b40-d2757a88ee7d", "width": 704, "x": 12576, "y": 982, "zOrder": 79, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 352, "layer": "", "name": "HorizontalMovingPlatformRight", "persistentUuid": "6f771993-a5a0-43c8-a8a5-2b7e7e4b65ab", "width": 704, "x": 13440, "y": 1088, "zOrder": 79, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 144, "layer": "", "name": "StaticPlatform1", "persistentUuid": "f66e4bcd-6134-4903-8965-66984cea8801", "width": 576, "x": 14906, "y": 1088, "zOrder": 80, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Checkpoint", "persistentUuid": "4926eacf-8c3f-49fe-903e-f2e2c756ea5a", "width": 341, "x": 15098, "y": 832, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 144, "layer": "", "name": "StaticPlatform1", "persistentUuid": "98dd8ef6-fb4e-4154-8834-b257196b5ada", "width": 576, "x": 15482, "y": 1088, "zOrder": 80, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 576, "layer": "", "name": "Ladder", "persistentUuid": "e562f9c8-4368-4033-ba40-79db173af8c9", "width": 171, "x": 15887, "y": 521, "zOrder": 81, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FireDemon", "persistentUuid": "ca2b4263-6c7e-454e-ae4f-8cad1b9ddee5", "width": 256, "x": 16544, "y": 640, "zOrder": 83, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Memory", "persistentUuid": "84344788-8847-4b12-8782-f9d5ac66dd87", "width": 256, "x": 21152, "y": 449, "zOrder": 84, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 55, "layer": "", "name": "BoundaryJumpThrough", "persistentUuid": "91dd22b1-08ca-4a63-bbbc-9cb593f7908f", "width": 203, "x": 15872, "y": 521, "zOrder": 82, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 448, "layer": "", "name": "VerticalMovingPlatformDown", "persistentUuid": "15469d73-f99f-4aaa-b596-48fbc6ae5be6", "width": 448, "x": 17120, "y": 224, "zOrder": 75, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 448, "layer": "", "name": "StaticPlatform2", "persistentUuid": "42b824f2-25a0-4d8c-9858-c3d437127d45", "width": 896, "x": 17856, "y": -64, "zOrder": 85, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "bbcece8f-95a8-42c2-91c9-5fdb5635b1bb", "width": 256, "x": 19616, "y": -63, "zOrder": 77, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "09cffed5-b514-4508-b327-a4af2f74b564", "width": 256, "x": 19616, "y": 289, "zOrder": 77, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "c46e9be5-333f-4217-b2f5-288de3b82b3f", "width": 256, "x": 19616, "y": 641, "zOrder": 77, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 342, "customSize": true, "depth": 1, "height": 291, "layer": "", "name": "StaticPlatform2", "persistentUuid": "54830b74-75ef-4d4b-aab0-ec008a46b1af", "width": 581, "x": 19999, "y": 1611, "zOrder": 86, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "624e83d0-5f75-4f6d-ae97-129eb6ba5b73", "width": 256, "x": 19616, "y": 1537, "zOrder": 77, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 270, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "d3b46346-3062-4800-8034-791533172c1a", "width": 383, "x": 19761, "y": 657, "zOrder": 87, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "FireDemon", "persistentUuid": "a9489fa5-ac4d-4310-b901-fb2d027f7876", "width": 256, "x": 8064, "y": 456, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "HorizontalDemon", "persistentUuid": "8ac20a81-ff3d-4e29-91bc-dea520ae132d", "width": 256, "x": 18880, "y": -96, "zOrder": 88, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "HorizontalDemon", "persistentUuid": "f30c4680-7e1f-4fec-a7fd-508c791a0557", "width": 256, "x": 5760, "y": 384, "zOrder": 88, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "FlyingDemon", "persistentUuid": "e443fa19-e090-4fd3-a108-afe9a2d699e5", "width": 256, "x": 9088, "y": 736, "zOrder": 77, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 270, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "cf21c18d-644a-43b1-95f5-73a0ce1462a5", "width": 383, "x": 19761, "y": -496, "zOrder": 87, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 270, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "0c174d04-9e01-4b9a-a55d-605efc09a215", "width": 383, "x": 19761, "y": -112, "zOrder": 87, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 270, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "7f40bd27-1d89-4825-ac3a-6318598d3c0c", "width": 383, "x": 19761, "y": 273, "zOrder": 87, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 2720, "layer": "", "name": "LeftBoundary", "persistentUuid": "3ae7a15f-786f-400d-a7c9-229710f9cf83", "width": 128, "x": -128, "y": -768, "zOrder": 38, "numberProperties": [], "stringProperties": [], "initialVariables": [] } ], "objects": [ { "assetStoreId": "", "height": 1024, "name": "BackgroundPlants", "texture": "AssetDev/Backgrounds/Beach/Beach.png", "type": "TiledSpriteObject::TiledSprite", "width": 2048, "variables": [], "effects": [ { "effectType": "TiltShift", "name": "Effect", "doubleParameters": { "blur": 30, "gradientBlur": 1000 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "OldFilm", "name": "Effect2", "doubleParameters": { "animationFrequency": 60, "noise": 0.1, "noiseSize": 1, "scratch": 0.5, "scratchDensity": 0.4, "scratchWidth": 1, "sepia": 0.1, "vignetting": 0.75, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [] } ], "objectsFolderStructure": { "folderName": "__ROOT", "children": [ { "objectName": "BackgroundPlants" } ] }, "events": [ { "type": "BuiltinCommonInstructions::Link", "include": { "includeConfig": 0 }, "target": "LevelEvents" }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Change Scene", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "LayerVisible" }, "parameters": [ "", "\"EndScreen\"" ] }, { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "PanelSpriteButton::PanelSpriteButton::IsClicked" }, "parameters": [ "UI_Sinage_RetryButton", "" ] }, { "type": { "value": "KeyReleased" }, "parameters": [ "", "Space" ] } ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Player", "Lives", ">", "0" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Mindscape\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Player", "Lives", "<=", "0" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Level2\"", "" ] } ] } ] } ], "parameters": [] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "AnimatableCapability::AnimatableBehavior::SetName" }, "parameters": [ "Memory", "Animation", "=", "\"Beach\"" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Player", "LifeForce", "=", "2" ] } ] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "MusicController", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "PlaySound" }, "parameters": [ "", "Assets/Sounds/Levels/2/AmbientLoop.ogg", "yes", "GlobalVariable(Volume_Music) + 9", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CompareTimer" }, "parameters": [ "RandomSFXIndex", "\"RandomNoiseTimer\"", ">", "Variable(TimeBeforeNextRandomSFX)" ] } ], "actions": [ { "type": { "value": "ModVarScene" }, "parameters": [ "RandomSFXIndex", "=", "RandomInRange(1, 3)" ] }, { "type": { "value": "ResetTimer" }, "parameters": [ "", "\"RandomNoiseTimer\"" ] }, { "type": { "value": "ModVarScene" }, "parameters": [ "TimeBeforeNextRandomSFX", "=", "RandomFloatInRange(30,240)" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarScene" }, "parameters": [ "RandomSFXIndex", "=", "1" ] } ], "actions": [ { "type": { "value": "PlaySound" }, "parameters": [ "", "Assets/Sounds/RandomSounds/RandomAmbiance1.wav", "", "GlobalVariable(Volume_SFX)", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarScene" }, "parameters": [ "RandomSFXIndex", "=", "2" ] } ], "actions": [ { "type": { "value": "PlaySound" }, "parameters": [ "", "Assets/Sounds/RandomSounds/RandomAmbiance2.wav", "", "GlobalVariable(Volume_SFX)", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarScene" }, "parameters": [ "RandomSFXIndex", "=", "3" ] } ], "actions": [ { "type": { "value": "PlaySound" }, "parameters": [ "", "Assets/Sounds/RandomSounds/RandomAmbiance3.wav", "", "GlobalVariable(Volume_SFX)", "" ] } ] } ] } ], "parameters": [] } ], "layers": [ { "ambientLightColorB": 8002120, "ambientLightColorG": 6031360, "ambientLightColorR": 7844472, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "Background", "renderingType": "2d", "visibility": true, "cameras": [], "effects": [] }, { "ambientLightColorB": 32, "ambientLightColorG": 0, "ambientLightColorR": 0, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "", "renderingType": "", "visibility": true, "cameras": [ { "defaultSize": true, "defaultViewport": true, "height": 0, "viewportBottom": 1, "viewportLeft": 0, "viewportRight": 1, "viewportTop": 0, "width": 0 } ], "effects": [ { "effectType": "Scene3D::HemisphereLight", "name": "3D Light", "doubleParameters": { "elevation": 45, "intensity": 1, "rotation": 0 }, "stringParameters": { "groundColor": "64;64;64", "skyColor": "255;255;255", "top": "Y-" }, "booleanParameters": {} }, { "effectType": "OldFilm", "name": "Effect", "doubleParameters": { "animationFrequency": 60, "noise": 0.15, "noiseSize": 1, "scratch": 0, "scratchDensity": 0.2, "scratchWidth": 1, "sepia": 0, "vignetting": 0.4, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": {} } ] }, { "ambientLightColorB": 9191608, "ambientLightColorG": 6031360, "ambientLightColorR": 8756632, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "UI", "renderingType": "2d", "visibility": true, "cameras": [], "effects": [] }, { "ambientLightColorB": -2147483616, "ambientLightColorG": 6031360, "ambientLightColorR": 11020320, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "EndScreen", "renderingType": "2d", "visibility": false, "cameras": [], "effects": [] } ], "behaviorsSharedData": [ { "name": "AdvancedProjectile", "type": "AdvancedProjectile::AdvancedProjectile" }, { "name": "Animation", "type": "AnimatableCapability::AnimatableBehavior" }, { "name": "Effect", "type": "EffectCapability::EffectBehavior" }, { "name": "EllipseMovement", "type": "EllipseMovement::EllipseMovement" }, { "name": "Flippable", "type": "FlippableCapability::FlippableBehavior" }, { "name": "InOnScreen", "type": "IsOnScreen::InOnScreen" }, { "name": "MonsterEnemy", "type": "Enemy::MonsterEnemy" }, { "name": "Opacity", "type": "OpacityCapability::OpacityBehavior" }, { "name": "Platform", "type": "PlatformBehavior::PlatformBehavior" }, { "name": "PlatformerCharacterAnimator", "type": "PlatformerCharacterAnimator::PlatformerCharacterAnimator" }, { "name": "PlatformerGamepadMapper", "type": "Gamepads::PlatformerGamepadMapper" }, { "name": "PlatformerMultitouchMapper", "type": "MultitouchJoystick::PlatformerMultitouchMapper" }, { "name": "PlatformerObject", "type": "PlatformBehavior::PlatformerObjectBehavior" }, { "name": "RectangleMovement", "type": "RectangleMovement::RectangleMovement" }, { "name": "Resizable", "type": "ResizableCapability::ResizableBehavior" }, { "name": "Scale", "type": "ScalableCapability::ScalableBehavior" }, { "name": "ShakeObject_PositionAngle", "type": "ShakeObject::ShakeObject_PositionAngle" }, { "name": "ShakeObject_PositionAngleScale", "type": "ShakeObject::ShakeObject_PositionAngleScale" }, { "name": "SmoothCamera", "type": "SmoothCamera::SmoothCamera" }, { "name": "Text", "type": "TextContainerCapability::TextContainerBehavior" }, { "name": "TimedBackAndForthMirroredMovement", "type": "TimedBackAndForthMovement::TimedBackAndForthMirroredMovement" }, { "name": "Tween", "type": "Tween::TweenBehavior" } ] }, { "b": 26, "disableInputWhenNotFocused": true, "mangledName": "Level1", "name": "Level1", "r": 11, "standardSortMethod": true, "stopSoundsOnStartup": true, "title": "", "v": 24, "uiSettings": { "grid": true, "gridType": "rectangular", "gridWidth": 32, "gridHeight": 32, "gridOffsetX": 0, "gridOffsetY": 0, "gridColor": 10401023, "gridAlpha": 0.3, "snap": true, "zoomFactor": 0.2963028262480733, "windowMask": false }, "objectsGroups": [], "variables": [ { "name": "Score", "type": "number", "value": 0 } ], "instances": [ { "angle": 0, "customSize": true, "depth": 3, "height": 594, "layer": "", "name": "Ladder", "persistentUuid": "5e31f97d-bdfa-44ce-b525-f6bb1b99bdb5", "width": 198, "x": 4485, "y": 388, "zOrder": 2, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 536, "layer": "", "name": "StaticPlatform3", "persistentUuid": "dac6a253-9929-4369-b079-5ea42e96d4da", "width": 1069, "x": 14624, "y": 904, "zOrder": 3, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 55, "layer": "", "name": "BoundaryJumpThrough", "persistentUuid": "7483dc27-84ed-436f-9611-ea3d03ec6df8", "width": 203, "x": 4474, "y": 385, "zOrder": 51, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 335, "layer": "", "name": "StaticPlatform2", "persistentUuid": "897ece0a-9bc4-470b-9d60-5bdc29242124", "width": 671, "x": 4084, "y": 945, "zOrder": 3, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 314, "layer": "", "name": "HorizontalMovingPlatformRight", "persistentUuid": "43cdcc5b-382d-4dab-9fae-ef4c4bf99117", "width": 626, "x": 4928, "y": 192, "zOrder": 3, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 251, "layer": "", "name": "Checkpoint", "persistentUuid": "8139f892-065e-4b90-b332-09bf661fc701", "width": 293, "x": 4123, "y": 709, "zOrder": 31, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 198, "layer": "", "name": "FlyingDemon", "persistentUuid": "1989e88d-b9a1-4d50-bf0e-59255f899d23", "width": 198, "x": 4122, "y": 186, "zOrder": 5, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 2208, "layer": "Background", "name": "BackgroundPlants", "persistentUuid": "03b6869d-198f-4807-b659-f2b863e21073", "width": 15582, "x": 2, "y": -448, "zOrder": -1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 544, "layer": "", "name": "Portal", "persistentUuid": "7efbc01f-ebde-481a-8ed2-824eb6c891f2", "width": 408, "x": 15176, "y": 416, "zOrder": 4, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 198, "layer": "", "name": "FlyingDemon", "persistentUuid": "42c34c63-828b-40a8-8f49-304f669da314", "width": 198, "x": 6176, "y": 320, "zOrder": 5, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 335, "layer": "", "name": "StaticPlatform2", "persistentUuid": "962ff6d4-5507-46f2-b60a-2a65303e2c57", "width": 671, "x": 6024, "y": 1323, "zOrder": 3, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 153, "layer": "", "name": "StaticPlatform1", "persistentUuid": "862ce475-2f9e-4719-a10f-a0cd5aab48b5", "width": 723, "x": 4989, "y": 1130, "zOrder": 3, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 594, "layer": "", "name": "Ladder", "persistentUuid": "c70816af-3596-4793-933a-4b4629098a5f", "width": 198, "x": 2473, "y": 140, "zOrder": 2, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 314, "layer": "", "name": "HorizontalMovingPlatformRight", "persistentUuid": "7073d2f2-8aaa-4db1-a340-429d4a21124f", "width": 626, "x": 2976, "y": -26, "zOrder": 3, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 536, "layer": "", "name": "StaticPlatform3", "persistentUuid": "f9bc60f6-a8ea-44a7-b530-992970210081", "width": 1069, "x": 1939, "y": 704, "zOrder": 3, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 198, "layer": "", "name": "FlyingDemon", "persistentUuid": "347cf196-e760-4479-ba1c-5cd8004cb489", "width": 198, "x": 3258, "y": 800, "zOrder": 5, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 198, "layer": "", "name": "FlyingDemon", "persistentUuid": "35708fe6-fb1b-44d0-a223-83de0bfef088", "width": 198, "x": 5849, "y": 852, "zOrder": 5, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 360, "customSize": true, "depth": 3, "height": 335, "layer": "", "name": "StaticPlatform2", "persistentUuid": "1b612f38-7a37-4710-8619-5bead77366e3", "width": 671, "x": 6593, "y": 544, "zOrder": 3, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 335, "layer": "", "name": "StaticPlatform2", "persistentUuid": "14dc80fe-554a-458b-bc33-6b6b67b6e6d0", "width": 671, "x": 0, "y": 512, "zOrder": 3, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 314, "layer": "", "name": "HorizontalMovingPlatformRight", "persistentUuid": "fe148d9c-05d4-4ecb-b069-e4252e88c357", "width": 626, "x": 864, "y": 678, "zOrder": 3, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 198, "layer": "", "name": "FlyingDemon", "persistentUuid": "5bf8d8e0-54d9-4978-a7cc-54bb2372f57b", "width": 198, "x": 6880, "y": 1216, "zOrder": 5, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 360, "customSize": true, "depth": 3, "height": 335, "layer": "", "name": "StaticPlatform2", "persistentUuid": "762125d2-fa37-4d9c-b51f-0e00e16d14d9", "width": 671, "x": 8800, "y": 849, "zOrder": 3, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 2, "customSize": true, "depth": 3, "height": 359, "layer": "", "name": "StaticPlatform2", "persistentUuid": "8d7c9281-bf76-46e7-b758-55f165368244", "width": 719, "x": 10955, "y": 364, "zOrder": 3, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 358, "customSize": true, "depth": 3, "height": 251, "layer": "", "name": "Checkpoint", "persistentUuid": "5ce331fc-f916-4fc5-9af2-9d4825ca0e29", "width": 293, "x": 11159, "y": 133, "zOrder": 31, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 1, "customSize": true, "depth": 3, "height": 465, "layer": "", "name": "StaticPlatform3", "persistentUuid": "288ffc2b-7bc4-4bbc-8721-14a32217e079", "width": 928, "x": 11872, "y": 679, "zOrder": 3, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 198, "layer": "", "name": "FlyingDemon", "persistentUuid": "564fd499-3f13-448a-957d-7e7a684b7e57", "width": 198, "x": 13024, "y": 410, "zOrder": 5, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 1, "customSize": true, "depth": 3, "height": 335, "layer": "", "name": "StaticPlatform2", "persistentUuid": "f137a9e9-39f1-4741-9673-4337fb217fc5", "width": 671, "x": 13448, "y": 753, "zOrder": 3, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 198, "layer": "", "name": "FlyingDemon", "persistentUuid": "c640bf34-614b-4ba7-9dbf-d8a1ab2d3187", "width": 198, "x": 14330, "y": 634, "zOrder": 5, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 198, "layer": "", "name": "FlyingDemon", "persistentUuid": "963ab632-bd4f-458c-91f7-5b5cad905fc5", "width": 198, "x": 1056, "y": 544, "zOrder": 5, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "26145768-3345-4270-9923-15e4f61051ea", "width": 224, "x": 2048, "y": 544, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "681c33f7-d999-4bac-86e1-2fab9f0e3067", "width": 224, "x": 5376, "y": 928, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "eebc0ab8-4f42-4100-af78-bb54b9750f34", "width": 224, "x": 6272, "y": 1120, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "65b68895-36af-4a66-9592-53346944be37", "width": 224, "x": 11904, "y": 512, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "541962e3-ed19-4207-828e-1696cb266a36", "width": 224, "x": 14624, "y": 736, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "Player", "persistentUuid": "014db1f5-0846-4cba-821e-57e29d368c14", "width": 256, "x": 32, "y": 384, "zOrder": 65, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 198, "layer": "", "name": "FlyingDemon", "persistentUuid": "238216f9-1ebb-4d74-9aca-3d6e4ff3a1c4", "width": 198, "x": 7296, "y": 1088, "zOrder": 5, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 198, "layer": "", "name": "FlyingDemon", "persistentUuid": "24aede2c-9a45-4216-9929-fc5a2ab2ebdc", "width": 198, "x": 3706, "y": 800, "zOrder": 5, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Memory", "persistentUuid": "1ddebb88-5d27-4a3e-a937-60e83f545547", "width": 256, "x": 15232, "y": 192, "zOrder": 64, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 352, "layer": "", "name": "StaticPlatform3", "persistentUuid": "b0886630-4a51-4d14-80c1-82bfa11b86de", "width": 704, "x": 7712, "y": 896, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 2464, "layer": "", "name": "LeftBoundary", "persistentUuid": "db4a0f4f-07a7-4316-9ffe-4bd91c9bcd3c", "width": 128, "x": -128, "y": -576, "zOrder": 38, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "TopBoundary", "persistentUuid": "e31924c8-1be8-4041-9f02-f3eb42fe511b", "width": 15840, "x": -128, "y": -576, "zOrder": 59, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "BottomBoundary", "persistentUuid": "a119cfe3-12b9-4749-8a41-259d5c2ab039", "width": 15840, "x": -128, "y": 1760, "zOrder": 60, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 2464, "layer": "", "name": "RightBoundary", "persistentUuid": "bae8e1a0-02da-4045-b75d-2d1d8c27160d", "width": 128, "x": 15584, "y": -576, "zOrder": 58, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 55, "layer": "", "name": "BoundaryJumpThrough", "persistentUuid": "83e5f654-da41-4104-b0bb-4d974ca949c2", "width": 203, "x": 2485, "y": 137, "zOrder": 67, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 198, "layer": "", "name": "FlyingDemon", "persistentUuid": "fa3a7fbf-8971-4c4b-9da8-bc68e258922e", "width": 198, "x": 10122, "y": 544, "zOrder": 5, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 224, "layer": "", "name": "FireDemon", "persistentUuid": "896bf9b9-279c-4bec-afd1-e7b145acf954", "width": 224, "x": 9632, "y": 640, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 198, "layer": "", "name": "FlyingDemon", "persistentUuid": "13dad468-26c0-45c3-88d7-d87795baff50", "width": 198, "x": 10650, "y": 416, "zOrder": 5, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 198, "layer": "", "name": "FlyingDemon", "persistentUuid": "3a95463f-3a6a-438d-96a5-2ae927fa4c75", "width": 198, "x": 13914, "y": 320, "zOrder": 5, "numberProperties": [], "stringProperties": [], "initialVariables": [] } ], "objects": [ { "assetStoreId": "", "height": 1024, "name": "BackgroundPlants", "texture": "AssetDev/Backgrounds/Forest/Forest.png", "type": "TiledSpriteObject::TiledSprite", "width": 2048, "variables": [], "effects": [ { "effectType": "TiltShift", "name": "Effect", "doubleParameters": { "blur": 30, "gradientBlur": 1000 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "OldFilm", "name": "Effect2", "doubleParameters": { "animationFrequency": 60, "noise": 0.1, "noiseSize": 1, "scratch": 0.5, "scratchDensity": 0.4, "scratchWidth": 1, "sepia": 0.1, "vignetting": 0.75, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [] } ], "objectsFolderStructure": { "folderName": "__ROOT", "children": [ { "objectName": "BackgroundPlants" } ] }, "events": [ { "type": "BuiltinCommonInstructions::Link", "include": { "includeConfig": 0 }, "target": "LevelEvents" }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Change Scene", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "LayerVisible" }, "parameters": [ "", "\"EndScreen\"" ] }, { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "PanelSpriteButton::PanelSpriteButton::IsClicked" }, "parameters": [ "UI_Sinage_RetryButton", "" ] }, { "type": { "value": "KeyReleased" }, "parameters": [ "", "Space" ] } ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Player", "Lives", ">", "0" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Mindscape\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Player", "Lives", "<=", "0" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Level1\"", "" ] } ] } ] } ], "parameters": [] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "AnimatableCapability::AnimatableBehavior::SetName" }, "parameters": [ "Memory", "Animation", "=", "\"Forest\"" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Player", "LifeForce", "=", "1" ] } ] } ], "layers": [ { "ambientLightColorB": 8002120, "ambientLightColorG": 6031360, "ambientLightColorR": 7844472, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "Background", "renderingType": "2d", "visibility": true, "cameras": [], "effects": [] }, { "ambientLightColorB": 32, "ambientLightColorG": 0, "ambientLightColorR": 0, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "", "renderingType": "", "visibility": true, "cameras": [ { "defaultSize": true, "defaultViewport": true, "height": 0, "viewportBottom": 1, "viewportLeft": 0, "viewportRight": 1, "viewportTop": 0, "width": 0 } ], "effects": [ { "effectType": "Scene3D::HemisphereLight", "name": "3D Light", "doubleParameters": { "elevation": 45, "intensity": 1, "rotation": 0 }, "stringParameters": { "groundColor": "64;64;64", "skyColor": "255;255;255", "top": "Y-" }, "booleanParameters": {} }, { "effectType": "OldFilm", "name": "Effect", "doubleParameters": { "animationFrequency": 60, "noise": 0.15, "noiseSize": 1, "scratch": 0, "scratchDensity": 0.2, "scratchWidth": 1, "sepia": 0, "vignetting": 0.4, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": {} } ] }, { "ambientLightColorB": 9191608, "ambientLightColorG": 6031360, "ambientLightColorR": 8756632, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "UI", "renderingType": "2d", "visibility": true, "cameras": [], "effects": [] }, { "ambientLightColorB": -2147483616, "ambientLightColorG": 6031360, "ambientLightColorR": 11020320, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "EndScreen", "renderingType": "2d", "visibility": false, "cameras": [], "effects": [] } ], "behaviorsSharedData": [ { "name": "AdvancedProjectile", "type": "AdvancedProjectile::AdvancedProjectile" }, { "name": "Animation", "type": "AnimatableCapability::AnimatableBehavior" }, { "name": "Effect", "type": "EffectCapability::EffectBehavior" }, { "name": "EllipseMovement", "type": "EllipseMovement::EllipseMovement" }, { "name": "Flippable", "type": "FlippableCapability::FlippableBehavior" }, { "name": "InOnScreen", "type": "IsOnScreen::InOnScreen" }, { "name": "MonsterEnemy", "type": "Enemy::MonsterEnemy" }, { "name": "Opacity", "type": "OpacityCapability::OpacityBehavior" }, { "name": "Platform", "type": "PlatformBehavior::PlatformBehavior" }, { "name": "PlatformerCharacterAnimator", "type": "PlatformerCharacterAnimator::PlatformerCharacterAnimator" }, { "name": "PlatformerGamepadMapper", "type": "Gamepads::PlatformerGamepadMapper" }, { "name": "PlatformerMultitouchMapper", "type": "MultitouchJoystick::PlatformerMultitouchMapper" }, { "name": "PlatformerObject", "type": "PlatformBehavior::PlatformerObjectBehavior" }, { "name": "RectangleMovement", "type": "RectangleMovement::RectangleMovement" }, { "name": "Resizable", "type": "ResizableCapability::ResizableBehavior" }, { "name": "Scale", "type": "ScalableCapability::ScalableBehavior" }, { "name": "ShakeObject_PositionAngle", "type": "ShakeObject::ShakeObject_PositionAngle" }, { "name": "ShakeObject_PositionAngleScale", "type": "ShakeObject::ShakeObject_PositionAngleScale" }, { "name": "SmoothCamera", "type": "SmoothCamera::SmoothCamera" }, { "name": "Text", "type": "TextContainerCapability::TextContainerBehavior" }, { "name": "TimedBackAndForthMirroredMovement", "type": "TimedBackAndForthMovement::TimedBackAndForthMirroredMovement" }, { "name": "Tween", "type": "Tween::TweenBehavior" } ] }, { "b": 26, "disableInputWhenNotFocused": true, "mangledName": "Tutorial", "name": "Tutorial", "r": 11, "standardSortMethod": true, "stopSoundsOnStartup": true, "title": "", "v": 24, "uiSettings": { "grid": true, "gridType": "rectangular", "gridWidth": 32, "gridHeight": 32, "gridOffsetX": 0, "gridOffsetY": 0, "gridColor": 10401023, "gridAlpha": 0.3, "snap": true, "zoomFactor": 0.1862485874970881, "windowMask": false }, "objectsGroups": [ { "name": "EndScreenObjects", "objects": [ { "name": "UI_Sinage_Background" }, { "name": "EndScreenHeader" }, { "name": "EndScreenSubHeader" }, { "name": "EndScreenBestText" }, { "name": "EndScreenChallengeText" }, { "name": "EndScreenRetryText" }, { "name": "UI_Sinage_RetryButton" } ] } ], "variables": [ { "name": "Score", "type": "number", "value": 0 } ], "instances": [ { "angle": 0, "customSize": true, "depth": 3, "height": 181, "layer": "", "name": "Player", "persistentUuid": "531d1c3f-aae2-413f-ba87-81f0b6673f1b", "width": 302, "x": 114, "y": 376, "zOrder": 999, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 170, "layer": "", "name": "DoorParticles", "persistentUuid": "fb84a04d-cfeb-4e71-a07c-cd64c5b91f23", "width": 170, "x": 15360, "y": -140, "zOrder": 2, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 536, "layer": "", "name": "StaticPlatform3", "persistentUuid": "dac6a253-9929-4369-b079-5ea42e96d4da", "width": 1069, "x": 12160, "y": 672, "zOrder": 3, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 2240, "layer": "Background", "name": "BackgroundPlants", "persistentUuid": "03b6869d-198f-4807-b659-f2b863e21073", "width": 15584, "x": 0, "y": -736, "zOrder": -1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 544, "layer": "", "name": "Portal", "persistentUuid": "7efbc01f-ebde-481a-8ed2-824eb6c891f2", "width": 408, "x": 15176, "y": -512, "zOrder": 4, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 2496, "layer": "", "name": "RightBoundary", "persistentUuid": "9562fd9d-6e93-4465-9013-efa2b833653b", "width": 128, "x": 15584, "y": -864, "zOrder": 58, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "TopBoundary", "persistentUuid": "4381c067-2682-4f00-9a24-ff28fa12b1d8", "width": 15840, "x": -128, "y": -864, "zOrder": 59, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "BottomBoundary", "persistentUuid": "00f86cf3-18b0-4d71-9ce8-952dfc4e6b5c", "width": 15840, "x": -128, "y": 1504, "zOrder": 60, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 248, "layer": "", "name": "FireDemon", "persistentUuid": "b5fae51a-ce9c-4072-94eb-f8ac70e2e241", "width": 248, "x": 9960, "y": 411, "zOrder": 41, "numberProperties": [ { "name": "animation", "value": 0 } ], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 203, "layer": "", "name": "FlyingDemon", "persistentUuid": "4ca0d904-cb50-483c-a085-f550996efdd7", "width": 203, "x": 4597, "y": 608, "zOrder": 5, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 129, "layer": "", "name": "Sinage_Arrow", "persistentUuid": "d3039e2c-6480-44d0-b0e5-635b59659ccb", "width": 256, "x": 800, "y": 319, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "Sinage_Jump", "persistentUuid": "1a01f568-215d-438f-8846-58079b84bf97", "width": 329, "x": 2007, "y": 288, "zOrder": 63, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "a91e3bd5-bc02-4bb5-9ce7-ec7bd36cc5e1", "width": 384, "x": 0, "y": 576, "zOrder": 64, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "f70d04f9-50fa-4c71-899c-d542cc5291d1", "width": 384, "x": 384, "y": 576, "zOrder": 64, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "1f84a522-7e0d-48c6-9fb4-f7e62e841d1c", "width": 384, "x": 768, "y": 576, "zOrder": 64, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "d81909d4-3774-43fc-9e6b-5099d2f9d9a2", "width": 384, "x": 1536, "y": 576, "zOrder": 64, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "04adc2c3-f005-4287-809e-173003eda12a", "width": 384, "x": 1152, "y": 576, "zOrder": 64, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 368, "layer": "", "name": "StaticPlatform2", "persistentUuid": "cec28d59-aa03-48d8-8583-3288a457cd78", "width": 736, "x": 2368, "y": 544, "zOrder": 65, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 368, "layer": "", "name": "StaticPlatform2", "persistentUuid": "2deb866c-f5f6-4881-a38d-7c2f40433263", "width": 736, "x": 8352, "y": 752, "zOrder": 65, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 346, "customSize": true, "depth": 1, "height": 208, "layer": "", "name": "Sinage_Kill", "persistentUuid": "2f17a9a2-39d2-40d7-83c9-e22854b24105", "width": 416, "x": 4493, "y": 143, "zOrder": 67, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 288, "layer": "", "name": "Sinage_Checkpoint", "persistentUuid": "fdf6200c-b1c2-4432-9778-941bd68033cd", "width": 576, "x": 8436, "y": 156, "zOrder": 68, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 411, "layer": "", "name": "StaticPlatform3", "persistentUuid": "d5e281f6-d50c-498b-b56d-b188c79d5d4c", "width": 820, "x": 9352, "y": 608, "zOrder": 3, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 259, "layer": "", "name": "Checkpoint", "persistentUuid": "66f7c1c1-fcde-432c-9827-d35258b53d76", "width": 303, "x": 8564, "y": 505, "zOrder": 31, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Sinage_DownArrow", "persistentUuid": "83986403-d185-424e-8af1-e579fea546b2", "width": 128, "x": 8672, "y": 348, "zOrder": 69, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 176, "layer": "", "name": "Sinage_Death", "persistentUuid": "1380d496-0dc9-4352-a7ff-e0ffa2a2c3e9", "width": 352, "x": 1984, "y": 720, "zOrder": 70, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 192, "layer": "", "name": "Sinage_DownArrow", "persistentUuid": "90e31dec-4eee-4ba5-9e41-05e1045dfa4d", "width": 96, "x": 2112, "y": 864, "zOrder": 69, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 342, "customSize": true, "depth": 1, "height": 135, "layer": "", "name": "Sinage_Kill", "persistentUuid": "c732ee86-3bce-4140-9fca-e8ef049eb416", "width": 269, "x": 9733, "y": 230, "zOrder": 67, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 304, "layer": "", "name": "Sinage_Proceed", "persistentUuid": "5bca1094-cf13-40f8-96d0-fd2745d6c2cc", "width": 608, "x": 14560, "y": -656, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 308, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Sinage_DownArrow", "persistentUuid": "a85de47e-300c-4549-b701-ef7656971f33", "width": 128, "x": 14956, "y": -481, "zOrder": 69, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 96, "layer": "", "name": "Sinage_Space", "persistentUuid": "1725ed41-81e6-44cc-9f97-7a7c52cc4a44", "width": 192, "x": 544, "y": 320, "zOrder": 72, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 96, "layer": "", "name": "Sinage_W", "persistentUuid": "7c1c088d-ec9a-41f0-a2b2-ed11eaef402e", "width": 96, "x": 320, "y": 224, "zOrder": 73, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 96, "layer": "", "name": "Sinage_A", "persistentUuid": "f3858e2f-004b-4740-b4c7-739ad953482a", "width": 96, "x": 224, "y": 320, "zOrder": 74, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "Sinage_D", "persistentUuid": "4fc37a9a-1921-4c98-9195-a29dcb1d20d9", "width": 96, "x": 416, "y": 320, "zOrder": 75, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "Sinage_S", "persistentUuid": "d2c5e176-b4b0-47c8-8d41-908803612d1f", "width": 96, "x": 320, "y": 320, "zOrder": 76, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 8, "customSize": true, "depth": 1, "height": 160, "layer": "", "name": "Sinage_DownArrow", "persistentUuid": "cd308248-f7cd-4f20-9780-3f4d3e6781c7", "width": 80, "x": 4670, "y": 295, "zOrder": 69, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 326, "customSize": true, "depth": 1, "height": 146, "layer": "", "name": "Sinage_DownArrow", "persistentUuid": "86c88e63-c3bf-4de8-9009-29c21376112c", "width": 73, "x": 9923, "y": 328, "zOrder": 69, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 411, "layer": "", "name": "StaticPlatform3", "persistentUuid": "75f5f708-1018-4908-9672-a3a776aa26b5", "width": 820, "x": 3411, "y": 623, "zOrder": 3, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 203, "layer": "", "name": "FlyingDemon", "persistentUuid": "da3e77a5-a2c3-433e-b9b5-fdb03525b1d9", "width": 203, "x": 7061, "y": 661, "zOrder": 5, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Memory", "persistentUuid": "688147b1-616d-402d-87ec-0577c99e893e", "width": 256, "x": 15232, "y": -736, "zOrder": 82, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 338, "layer": "", "name": "StaticPlatform2", "persistentUuid": "e879a3c4-0e28-496f-8b87-43260eba38f8", "width": 704, "x": 4992, "y": 640, "zOrder": 1000, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 2496, "layer": "", "name": "RightBoundary", "persistentUuid": "3d3a5c22-d9a4-43b9-87a8-b64dbe205b30", "width": 128, "x": -128, "y": -864, "zOrder": 1001, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 346, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "Sinage_Jump", "persistentUuid": "11449fad-3430-48f0-a776-78dfb1520000", "width": 512, "x": 4439, "y": -58, "zOrder": 1002, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 232, "layer": "", "name": "Sinage_Heal", "persistentUuid": "daf5b812-8533-4894-ac27-927369afec9d", "width": 928, "x": 6080, "y": 312, "zOrder": 1003, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 272, "layer": "", "name": "StaticPlatform2", "persistentUuid": "4ba80cfc-f730-46fd-a443-1c7b91474772", "width": 544, "x": 7360, "y": 768, "zOrder": 65, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 180, "layer": "", "name": "Sinage_Hold", "persistentUuid": "01795a68-9a9a-4963-a010-a22227f3d661", "width": 576, "x": 11520, "y": 96, "zOrder": 1004, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "Sinage_Space", "persistentUuid": "296e4598-a05f-42ba-b99b-bcb05ecff6f2", "width": 256, "x": 11921, "y": 132, "zOrder": 1005, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 252, "layer": "", "name": "Sinage_LongerJump", "persistentUuid": "5338420d-a87c-49c6-99cd-c8c9902d149f", "width": 928, "x": 11488, "y": 212, "zOrder": 1006, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 416, "layer": "", "name": "StaticPlatform2", "persistentUuid": "7ecba84c-36e9-4572-82b2-5b6597a3bc59", "width": 832, "x": 10688, "y": 576, "zOrder": 1007, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 259, "layer": "", "name": "Checkpoint", "persistentUuid": "3e65406b-0fd7-4f4d-9006-7a3d9d267556", "width": 303, "x": 10929, "y": 349, "zOrder": 31, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 55, "layer": "", "name": "BoundaryJumpThrough", "persistentUuid": "be188643-046c-4f3d-8dc8-526863852bde", "width": 203, "x": 12930, "y": 142, "zOrder": 51, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 594, "layer": "", "name": "Ladder", "persistentUuid": "581dac5a-809b-4977-a17b-7435921099a7", "width": 198, "x": 12930, "y": 142, "zOrder": 2, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 203, "layer": "", "name": "FlyingDemon", "persistentUuid": "56d0288c-adc1-49f7-b9b4-f57ec8132bc5", "width": 203, "x": 13557, "y": 43, "zOrder": 5, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 536, "layer": "", "name": "StaticPlatform3", "persistentUuid": "12b18909-cb1e-4fee-9be3-38a0ccfbf272", "width": 1069, "x": 14739, "y": 0, "zOrder": 3, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "Sinage_W", "persistentUuid": "3f263c0d-18b4-4f24-b53e-91c1147a551a", "width": 128, "x": 12749, "y": 352, "zOrder": 73, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 338, "layer": "", "name": "StaticPlatform2", "persistentUuid": "ca17eab1-95ab-4662-b1c2-74f2aa203c0c", "width": 704, "x": 6016, "y": 640, "zOrder": 1000, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 3, "height": 203, "layer": "", "name": "FlyingDemon", "persistentUuid": "11197a93-144a-406a-b7f1-7e3447f47c19", "width": 203, "x": 14101, "y": 0, "zOrder": 5, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 180, "layer": "", "name": "Sinage_Hold", "persistentUuid": "d24a820b-f5df-43d8-b6e3-f2def9cae525", "width": 576, "x": 13408, "y": -372, "zOrder": 1004, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "Sinage_Space", "persistentUuid": "f3c80f82-db0c-412c-b8a7-601771d9909d", "width": 256, "x": 13824, "y": -340, "zOrder": 1005, "numberProperties": [], "stringProperties": [], "initialVariables": [] } ], "objects": [ { "assetStoreId": "", "height": 1024, "name": "BackgroundPlants", "texture": "AssetDev/Backgrounds/Mountains/Mountains_1.png", "type": "TiledSpriteObject::TiledSprite", "width": 2048, "variables": [], "effects": [ { "effectType": "TiltShift", "name": "Effect", "doubleParameters": { "blur": 30, "gradientBlur": 1000 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "OldFilm", "name": "Effect2", "doubleParameters": { "animationFrequency": 60, "noise": 0.1, "noiseSize": 1, "scratch": 0.5, "scratchDensity": 0.4, "scratchWidth": 1, "sepia": 0.1, "vignetting": 0.75, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [] } ], "objectsFolderStructure": { "folderName": "__ROOT", "children": [ { "objectName": "BackgroundPlants" } ] }, "events": [ { "type": "BuiltinCommonInstructions::Link", "include": { "includeConfig": 0 }, "target": "LevelEvents" }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Change Scene", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "LayerVisible" }, "parameters": [ "", "\"EndScreen\"" ] }, { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "PanelSpriteButton::PanelSpriteButton::IsClicked" }, "parameters": [ "UI_Sinage_RetryButton", "" ] }, { "type": { "value": "KeyReleased" }, "parameters": [ "", "Space" ] } ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Player", "Lives", ">", "0" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Mindscape\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Player", "Lives", "<=", "0" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Tutorial\"", "" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Player", "LifeForce", "=", "5" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Player", "Lives", "=", "4" ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "MusicController", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "PlaySound" }, "parameters": [ "", "Assets/Sounds/Levels/0/AmbientLoop.ogg", "yes", "GlobalVariable(Volume_Music) + 35", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CompareTimer" }, "parameters": [ "RandomSFXIndex", "\"RandomNoiseTimer\"", ">", "Variable(TimeBeforeNextRandomSFX)" ] } ], "actions": [ { "type": { "value": "ModVarScene" }, "parameters": [ "RandomSFXIndex", "=", "RandomInRange(1, 3)" ] }, { "type": { "value": "ResetTimer" }, "parameters": [ "", "\"RandomNoiseTimer\"" ] }, { "type": { "value": "ModVarScene" }, "parameters": [ "TimeBeforeNextRandomSFX", "=", "RandomFloatInRange(30,240)" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarScene" }, "parameters": [ "RandomSFXIndex", "=", "1" ] } ], "actions": [ { "type": { "value": "PlaySound" }, "parameters": [ "", "Assets/Sounds/RandomSounds/RandomAmbiance1.wav", "", "GlobalVariable(Volume_SFX)", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarScene" }, "parameters": [ "RandomSFXIndex", "=", "2" ] } ], "actions": [ { "type": { "value": "PlaySound" }, "parameters": [ "", "Assets/Sounds/RandomSounds/RandomAmbiance2.wav", "", "GlobalVariable(Volume_SFX)", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarScene" }, "parameters": [ "RandomSFXIndex", "=", "3" ] } ], "actions": [ { "type": { "value": "PlaySound" }, "parameters": [ "", "Assets/Sounds/RandomSounds/RandomAmbiance3.wav", "", "GlobalVariable(Volume_SFX)", "" ] } ] } ] } ], "parameters": [] } ], "layers": [ { "ambientLightColorB": 8002120, "ambientLightColorG": 6031360, "ambientLightColorR": 7844472, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "Background", "renderingType": "2d", "visibility": true, "cameras": [], "effects": [] }, { "ambientLightColorB": 32, "ambientLightColorG": 0, "ambientLightColorR": 0, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "", "renderingType": "", "visibility": true, "cameras": [ { "defaultSize": true, "defaultViewport": true, "height": 0, "viewportBottom": 1, "viewportLeft": 0, "viewportRight": 1, "viewportTop": 0, "width": 0 } ], "effects": [ { "effectType": "Scene3D::HemisphereLight", "name": "3D Light", "doubleParameters": { "elevation": 45, "intensity": 1, "rotation": 0 }, "stringParameters": { "groundColor": "64;64;64", "skyColor": "255;255;255", "top": "Y-" }, "booleanParameters": {} }, { "effectType": "OldFilm", "name": "Effect", "doubleParameters": { "animationFrequency": 60, "noise": 0.15, "noiseSize": 1, "scratch": 0, "scratchDensity": 0.2, "scratchWidth": 1, "sepia": 0, "vignetting": 0.4, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": {} } ] }, { "ambientLightColorB": 9191608, "ambientLightColorG": 6031360, "ambientLightColorR": 8756632, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "UI", "renderingType": "2d", "visibility": true, "cameras": [], "effects": [] }, { "ambientLightColorB": -2147483616, "ambientLightColorG": 6031360, "ambientLightColorR": 11020320, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "EndScreen", "renderingType": "2d", "visibility": true, "cameras": [], "effects": [] } ], "behaviorsSharedData": [ { "name": "AdvancedProjectile", "type": "AdvancedProjectile::AdvancedProjectile" }, { "name": "Animation", "type": "AnimatableCapability::AnimatableBehavior" }, { "name": "Effect", "type": "EffectCapability::EffectBehavior" }, { "name": "EllipseMovement", "type": "EllipseMovement::EllipseMovement" }, { "name": "Flippable", "type": "FlippableCapability::FlippableBehavior" }, { "name": "InOnScreen", "type": "IsOnScreen::InOnScreen" }, { "name": "MonsterEnemy", "type": "Enemy::MonsterEnemy" }, { "name": "Opacity", "type": "OpacityCapability::OpacityBehavior" }, { "name": "Platform", "type": "PlatformBehavior::PlatformBehavior" }, { "name": "PlatformerCharacterAnimator", "type": "PlatformerCharacterAnimator::PlatformerCharacterAnimator" }, { "name": "PlatformerGamepadMapper", "type": "Gamepads::PlatformerGamepadMapper" }, { "name": "PlatformerMultitouchMapper", "type": "MultitouchJoystick::PlatformerMultitouchMapper" }, { "name": "PlatformerObject", "type": "PlatformBehavior::PlatformerObjectBehavior" }, { "name": "RectangleMovement", "type": "RectangleMovement::RectangleMovement" }, { "name": "Resizable", "type": "ResizableCapability::ResizableBehavior" }, { "name": "Scale", "type": "ScalableCapability::ScalableBehavior" }, { "name": "ShakeObject_PositionAngle", "type": "ShakeObject::ShakeObject_PositionAngle" }, { "name": "ShakeObject_PositionAngleScale", "type": "ShakeObject::ShakeObject_PositionAngleScale" }, { "name": "SmoothCamera", "type": "SmoothCamera::SmoothCamera" }, { "name": "Text", "type": "TextContainerCapability::TextContainerBehavior" }, { "name": "TimedBackAndForthMirroredMovement", "type": "TimedBackAndForthMovement::TimedBackAndForthMirroredMovement" }, { "name": "Tween", "type": "Tween::TweenBehavior" } ] }, { "b": 26, "disableInputWhenNotFocused": true, "mangledName": "Mindscape", "name": "Mindscape", "r": 11, "standardSortMethod": true, "stopSoundsOnStartup": true, "title": "", "v": 24, "uiSettings": { "grid": true, "gridType": "rectangular", "gridWidth": 32, "gridHeight": 32, "gridOffsetX": 0, "gridOffsetY": 0, "gridColor": 10401023, "gridAlpha": 0.3, "snap": true, "zoomFactor": 0.18624858749708587, "windowMask": false }, "objectsGroups": [ { "name": "Platforms", "objects": [ { "name": "StaticPlatform1" }, { "name": "HorizontalMovingPlatformRight" }, { "name": "StaticPlatform2" }, { "name": "StaticPlatform3" } ] }, { "name": "MobileControls", "objects": [] }, { "name": "EndScreenObjects", "objects": [ { "name": "UI_Sinage_Background" }, { "name": "EndScreenHeader" }, { "name": "EndScreenSubHeader" }, { "name": "EndScreenBestText" }, { "name": "EndScreenChallengeText" }, { "name": "EndScreenRetryText" }, { "name": "UI_Sinage_RetryButton" } ] }, { "name": "HelperObjects", "objects": [ { "name": "LeftBoundary" }, { "name": "RightBoundary" }, { "name": "BoundaryJumpThrough" } ] } ], "variables": [ { "name": "Score", "type": "number", "value": 0 } ], "instances": [ { "angle": 0, "customSize": true, "depth": 1, "height": 2272, "layer": "", "name": "LeftBoundary", "persistentUuid": "78dd0ffa-b22f-47a8-9b36-ef6a432b1d1e", "width": 128, "x": -128, "y": -384, "zOrder": 38, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 2146, "layer": "Background", "name": "BackgroundPlants", "persistentUuid": "03b6869d-198f-4807-b659-f2b863e21073", "width": 10624, "x": 0, "y": -258, "zOrder": -1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 2272, "layer": "", "name": "RightBoundary", "persistentUuid": "9562fd9d-6e93-4465-9013-efa2b833653b", "width": 128, "x": 10624, "y": -384, "zOrder": 58, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "TopBoundary", "persistentUuid": "4381c067-2682-4f00-9a24-ff28fa12b1d8", "width": 10880, "x": -128, "y": -384, "zOrder": 59, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "BottomBoundary", "persistentUuid": "00f86cf3-18b0-4d71-9ce8-952dfc4e6b5c", "width": 10880, "x": -128, "y": 1440, "zOrder": 60, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 1216, "layer": "", "name": "ServerRack", "persistentUuid": "b163a73d-5537-42d4-ae41-f7730fe33474", "width": 608, "x": 2432, "y": 1248, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "0fb1f571-ad8c-4699-8a75-4d26abccef98", "width": 582, "x": 2432, "y": 1301, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "6aac3982-ac94-4011-9c06-7b009202de0c", "width": 582, "x": 2432, "y": 1354, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "e40798a1-92ae-4ae5-aa10-693a7366111e", "width": 582, "x": 2432, "y": 1459, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "00c03456-9cab-41c0-847a-f1b853379a44", "width": 582, "x": 2432, "y": 1407, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "78147bbe-8882-4792-bd98-0c10e6e0104b", "width": 582, "x": 2432, "y": 1512, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "4693ae8c-3321-465f-9442-fe3033ce17d2", "width": 582, "x": 2432, "y": 1565, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "efce10b0-e186-4576-a336-eea8e9ce1be4", "width": 582, "x": 2432, "y": 1671, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "0dc23a85-ed6d-4042-b715-302cad98c16c", "width": 582, "x": 2432, "y": 1618, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "05436d04-ce0b-48a2-94e8-9da14bd884ce", "width": 582, "x": 2432, "y": 1777, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "2d97a9f1-d06e-4490-a5ec-0ef031191caa", "width": 582, "x": 2432, "y": 1830, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "9dde81b7-ef3c-409d-8a82-7a58f50e5d7f", "width": 582, "x": 2432, "y": 1935, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "d12c5fd6-eef4-41a7-ad9e-c5987b6e5ec0", "width": 582, "x": 2432, "y": 1882, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "b5a86ee9-a9b7-407e-91bc-e1c5813eb67a", "width": 582, "x": 2432, "y": 1988, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "49519b49-716c-4df8-beb8-caeeb4283537", "width": 582, "x": 2432, "y": 2041, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "9275da9a-2af9-4865-8769-d22ebb263731", "width": 582, "x": 2432, "y": 2147, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "5aba0275-93ef-4f65-8e5b-194748cc2dd0", "width": 582, "x": 2432, "y": 2094, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "5d9280d6-ec80-4d26-b789-28104a9eb7c7", "width": 582, "x": 2432, "y": 2200, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "0b41652f-92cd-4e2a-8226-5a70548b0930", "width": 582, "x": 2432, "y": 2253, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "71f8441b-35ee-4dc0-895f-52e2dbfa3b24", "width": 582, "x": 2432, "y": 2305, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "d43fcce4-9f88-4fb9-bc85-a2b80e711008", "width": 582, "x": 2432, "y": 1724, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 1216, "layer": "", "name": "ServerRack", "persistentUuid": "f4a0c3bd-da28-44cf-baba-446b2c2a7874", "width": 608, "x": 3168, "y": 1248, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "2c059dd0-7510-48cf-92a9-5387a5e92e4a", "width": 582, "x": 3168, "y": 1312, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "4a8ca7f3-6618-459d-bdb3-72ef2b17c14e", "width": 582, "x": 3168, "y": 1344, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "b06a5ee4-afbe-46e7-9b62-e06743a8dd18", "width": 582, "x": 3168, "y": 1472, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "3f94f514-c79e-4e1c-9d6e-736d916d5d32", "width": 582, "x": 3168, "y": 1408, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "9342f16f-657a-4737-815e-e354105dde71", "width": 582, "x": 3168, "y": 1504, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "35a433ed-e83b-4785-b366-6ec9728a6c87", "width": 582, "x": 3168, "y": 1568, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "d8ea2af0-7032-4190-86c4-9f8d41af89fe", "width": 582, "x": 3168, "y": 1664, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "534bd277-6477-4ec4-ad3c-8c276649847c", "width": 582, "x": 3168, "y": 1632, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "5895ad0d-a024-4e98-bb44-803c2ebf67cf", "width": 582, "x": 3168, "y": 1792, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "19268bdf-287d-4298-b26e-f9d2f2eead4a", "width": 582, "x": 3168, "y": 1824, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "a3a5ca73-976b-4a62-a13b-fbf8c13e8faf", "width": 582, "x": 3168, "y": 1952, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "39f05e97-8a65-41f0-bcc8-61b6c9efbc62", "width": 582, "x": 3168, "y": 1888, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "1b639df3-2ebf-475a-b559-9c741c0986f3", "width": 582, "x": 3168, "y": 1984, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "cb115eef-665c-4f5f-a8ce-751604b862e8", "width": 582, "x": 3168, "y": 2048, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "1952633b-bdf8-4496-8d38-8d95a4ac4ab4", "width": 582, "x": 3168, "y": 2144, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "c41a80a1-6015-4f6c-94e0-b23437da850b", "width": 582, "x": 3168, "y": 2112, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "6bbcde05-4438-43ec-af59-f0dc6b2901ec", "width": 582, "x": 3168, "y": 2208, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "ad0cbefa-b9f2-4ac7-9ecf-01ce038926a8", "width": 582, "x": 3168, "y": 2272, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "a6236ce6-2ab0-4092-a0f2-36da87d219af", "width": 582, "x": 3168, "y": 2304, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "1133d5fb-79d3-4da7-9f8a-afbf6cca319f", "width": 582, "x": 3168, "y": 1728, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 1216, "layer": "", "name": "ServerRack", "persistentUuid": "db68047a-00f6-46c9-a89a-faa72e7a2519", "width": 608, "x": 3904, "y": 1248, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "38bba4c5-987c-4200-b92f-b70065ed8eec", "width": 582, "x": 3904, "y": 1312, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "d849f45a-e43a-417e-873c-63b437e5d847", "width": 582, "x": 3904, "y": 1376, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "066a30ab-e2f8-4688-831f-702324086fe7", "width": 582, "x": 3904, "y": 1472, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "1ed9e06e-6390-4d2f-9401-5124346252f3", "width": 582, "x": 3904, "y": 1408, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "2a3db769-8e43-475d-9210-34bb33f77cbb", "width": 582, "x": 3904, "y": 1536, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "c8febbc8-40e8-42ce-b496-cdf6b78d8a84", "width": 582, "x": 3904, "y": 1568, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "08b54adc-d36b-447b-8483-0e2ff4c06a2a", "width": 582, "x": 3904, "y": 1664, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "ae52bd19-7b39-4b6b-9d8e-1e9f2bc3db6a", "width": 582, "x": 3904, "y": 1632, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "0130c45f-7c96-4d2f-acee-154b75ce805c", "width": 582, "x": 3904, "y": 1792, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "e7e47c8e-3f5b-415a-a027-c214f15d49ba", "width": 582, "x": 3904, "y": 1824, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "8341bd56-b6b1-4e01-af88-e062f8d3b4f6", "width": 582, "x": 3904, "y": 1952, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "46455974-4d3e-4701-ba8c-f159cef9ce3a", "width": 582, "x": 3904, "y": 1888, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "38bd045b-d27d-48f4-952d-029340b1a440", "width": 582, "x": 3904, "y": 1984, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "0606560c-d5eb-406b-8ea5-6569da240d82", "width": 582, "x": 3904, "y": 2048, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "ea80aada-d2d3-4ca6-96e6-ae1a0253c43a", "width": 582, "x": 3904, "y": 2144, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "643ebf9c-a988-4bab-af34-017359551a21", "width": 582, "x": 3904, "y": 2112, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "460ef6fd-6ef9-4aa3-bb53-3e1c4fd9a919", "width": 582, "x": 3904, "y": 2208, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "cbd5f1ff-680d-4fa7-be9e-7ed618c594d6", "width": 582, "x": 3904, "y": 2272, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "c9e5b6b7-11a2-4490-8514-4bdc89a64f91", "width": 582, "x": 3904, "y": 2304, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "b96fa7dd-40b3-4d41-a2b9-7368f103d75e", "width": 582, "x": 3904, "y": 1728, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 1216, "layer": "", "name": "ServerRack", "persistentUuid": "4a5245d4-2814-4b5a-801d-0cd4e19d874f", "width": 608, "x": 4960, "y": 1248, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "f87b35da-e1b1-43d1-8050-c9152013ac89", "width": 582, "x": 4960, "y": 1312, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "0434c6a4-b5a8-459a-a5eb-48b088c72987", "width": 582, "x": 4960, "y": 1344, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "bf7c391f-0512-4179-8474-71db0bad7457", "width": 582, "x": 4960, "y": 1472, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "38d548ab-da00-4b3e-9ea7-c759d6c8ac9d", "width": 582, "x": 4960, "y": 1408, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "95e88906-e56f-4d1c-9753-a6191d266d03", "width": 582, "x": 4960, "y": 1504, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "7b35a4d9-94e0-4ed2-aa63-d1e1cb107b4b", "width": 582, "x": 4960, "y": 1568, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "39662dc2-8a61-4ca4-bc43-85f304e55c3e", "width": 582, "x": 4960, "y": 1664, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "97b1f05c-8a40-4b82-bd0f-c26578a66045", "width": 582, "x": 4960, "y": 1632, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "d5accad7-705f-4ee1-bf8f-a9180954e4f8", "width": 582, "x": 4960, "y": 1792, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "29d83d7d-1e24-4dda-a94f-9d8974c451a2", "width": 582, "x": 4960, "y": 1824, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "3ca7432d-6bbf-4f86-9ea3-96cb5b49ad9a", "width": 582, "x": 4960, "y": 1952, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "7c2de24c-99ce-4b6d-9b20-ea78e5d10084", "width": 582, "x": 4960, "y": 1888, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "c0527023-23f8-4d4f-9afd-22c3978a596a", "width": 582, "x": 4960, "y": 1984, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "b770711d-b7ce-4bec-8d8c-0b640abd1e4d", "width": 582, "x": 4960, "y": 2048, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "86896be5-874d-4bd2-88ef-ebc4995979af", "width": 582, "x": 4960, "y": 2144, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "4cb8d0eb-2f23-4dee-85d7-adc4fb2bb561", "width": 582, "x": 4960, "y": 2112, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "d51e5460-2545-4829-8876-751be95a9a52", "width": 582, "x": 4960, "y": 2208, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "4a2d42ec-7d9e-44cb-8926-f018704bff61", "width": 582, "x": 4960, "y": 2272, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "eb3807c1-eb2d-4aab-89d8-a12a31facb0a", "width": 582, "x": 4960, "y": 2304, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "8b537980-f686-4ac9-91a3-9334286eff00", "width": 582, "x": 4960, "y": 1728, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 1216, "layer": "", "name": "ServerRack", "persistentUuid": "37785ce7-d509-4ce4-b44a-852fd5ca7d59", "width": 608, "x": 5696, "y": 1248, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "db9cb7a1-eb8d-45db-95d8-a140360e3824", "width": 582, "x": 5696, "y": 1312, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "c3dbe1d4-61a2-4c82-bdab-92c46f4090d1", "width": 582, "x": 5696, "y": 1376, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "7344ae5b-c831-4023-8134-654eba2d7b18", "width": 582, "x": 5696, "y": 1472, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "a3caa45d-fa48-4977-81d1-ec3e5c4fd900", "width": 582, "x": 5696, "y": 1408, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "bee61718-acea-4461-a184-e36c3d282d19", "width": 582, "x": 5696, "y": 1536, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "297a56c3-facf-4be9-ab8a-0041065fa50e", "width": 582, "x": 5696, "y": 1568, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "ca68d10b-7b5b-4ff4-abc9-f669d44f5547", "width": 582, "x": 5696, "y": 1664, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "919d59dc-a93d-45f6-b54f-d485b089e400", "width": 582, "x": 5696, "y": 1632, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "18fa3c6c-bcb4-40de-ba48-31e04b842bfe", "width": 582, "x": 5696, "y": 1792, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "ceca3e30-087f-4335-b709-5fdfabb13eb5", "width": 582, "x": 5696, "y": 1824, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "d045b585-d43a-40fc-8804-b7552bb1633d", "width": 582, "x": 5696, "y": 1952, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "8f5036bb-d555-4cb3-9d72-b2bf744ec01a", "width": 582, "x": 5696, "y": 1888, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "7b7e0edc-e5cf-441a-b215-4505cc1e8848", "width": 582, "x": 5696, "y": 1984, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "bbb23b4f-8b9c-47dd-abfe-12c2af80e5da", "width": 582, "x": 5696, "y": 2048, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "c6341e90-636f-4015-8d13-89719f9c142a", "width": 582, "x": 5696, "y": 2144, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "3e218180-6a6d-4796-a4ed-f286d4696db0", "width": 582, "x": 5696, "y": 2112, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "29c47ebc-2b75-4242-9385-3c97c6210ee5", "width": 582, "x": 5696, "y": 2208, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "0fc3476f-820c-4268-aef0-df276e6b5bd4", "width": 582, "x": 5696, "y": 2272, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "70d91c1b-2cb4-46d1-9d27-8974c28b8afc", "width": 582, "x": 5696, "y": 2304, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "103c03d9-ed69-422c-b1fc-deb04be0225c", "width": 582, "x": 5696, "y": 1728, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 378, "layer": "", "name": "MemoryHolder", "persistentUuid": "7c6ae336-0a44-4b1c-8d48-45f98636d977", "width": 256, "x": 1500, "y": 852, "zOrder": 0, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "PortalToMountains", "persistentUuid": "b69802ee-04cd-4ff6-8adc-b1815857b983", "width": 256, "x": 1500, "y": 788, "zOrder": 0, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": false, "height": 0, "layer": "", "name": "MindscapeFloor", "persistentUuid": "a5555f79-84ab-4038-bbc1-b73a6a03f571", "width": 0, "x": 0, "y": 1184, "zOrder": 10002, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": false, "height": 0, "layer": "", "name": "MindscapeFloor", "persistentUuid": "112bd23e-496e-4738-b7c0-304fe829a983", "width": 0, "x": 512, "y": 1184, "zOrder": 10002, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": false, "height": 0, "layer": "", "name": "MindscapeFloor", "persistentUuid": "34b7cd40-31c9-422b-983f-9bce16789ec8", "width": 0, "x": 1536, "y": 1184, "zOrder": 10002, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": false, "height": 0, "layer": "", "name": "MindscapeFloor", "persistentUuid": "278787e8-b26b-4373-b591-c2e9edcca692", "width": 0, "x": 1024, "y": 1184, "zOrder": 10002, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": false, "height": 0, "layer": "", "name": "MindscapeFloor", "persistentUuid": "01c7dab2-ab2e-4c03-9a23-c79400a7fc3d", "width": 0, "x": 2560, "y": 1184, "zOrder": 10002, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": false, "height": 0, "layer": "", "name": "MindscapeFloor", "persistentUuid": "fdb102c5-0e72-437b-8247-ddc007335348", "width": 0, "x": 2048, "y": 1184, "zOrder": 10002, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": false, "height": 0, "layer": "", "name": "MindscapeFloor", "persistentUuid": "d5e52265-acc8-428e-bfe9-ff14773a802a", "width": 0, "x": 3584, "y": 1184, "zOrder": 10002, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": false, "height": 0, "layer": "", "name": "MindscapeFloor", "persistentUuid": "453c35c5-d1a5-4c4e-933c-a79567c600e9", "width": 0, "x": 3072, "y": 1184, "zOrder": 10002, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": false, "height": 0, "layer": "", "name": "MindscapeFloor", "persistentUuid": "86d48ce7-5152-4045-a7eb-fb2426f443b4", "width": 0, "x": 5632, "y": 1184, "zOrder": 10002, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": false, "height": 0, "layer": "", "name": "MindscapeFloor", "persistentUuid": "1fee5612-894e-4bac-8944-1cee30492b79", "width": 0, "x": 5120, "y": 1184, "zOrder": 10002, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": false, "height": 0, "layer": "", "name": "MindscapeFloor", "persistentUuid": "fd4c0ff4-addc-49c9-8c9d-b8b3300bfffa", "width": 0, "x": 4608, "y": 1184, "zOrder": 10002, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": false, "height": 0, "layer": "", "name": "MindscapeFloor", "persistentUuid": "a6e15eb5-bf79-45fa-9a06-a3b779f3957f", "width": 0, "x": 4096, "y": 1184, "zOrder": 10002, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "Player", "persistentUuid": "d55be843-0736-4a5c-9dbe-85c8e54ccb35", "width": 256, "x": 288, "y": 864, "zOrder": 10003, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": false, "height": 0, "layer": "", "name": "MindscapeFloor", "persistentUuid": "650365e4-8efa-4898-acb9-53436e86c24c", "width": 0, "x": 8192, "y": 1184, "zOrder": 10002, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": false, "height": 0, "layer": "", "name": "MindscapeFloor", "persistentUuid": "d6a74630-ca9e-4e61-a23b-761673d21ed4", "width": 0, "x": 7680, "y": 1184, "zOrder": 10002, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": false, "height": 0, "layer": "", "name": "MindscapeFloor", "persistentUuid": "c221d0ea-ed0c-40b5-b902-29d78fc6bc82", "width": 0, "x": 7168, "y": 1184, "zOrder": 10002, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": false, "height": 0, "layer": "", "name": "MindscapeFloor", "persistentUuid": "0df22ee7-8c09-441c-9d8c-feb15da0ae08", "width": 0, "x": 6656, "y": 1184, "zOrder": 10002, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": false, "height": 0, "layer": "", "name": "MindscapeFloor", "persistentUuid": "e92819ab-d7aa-4aab-bc9e-6754f212a269", "width": 0, "x": 6144, "y": 1184, "zOrder": 10002, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": false, "height": 0, "layer": "", "name": "MindscapeFloor", "persistentUuid": "5141c7cf-d00c-4e0f-bbeb-b327ae2f323c", "width": 0, "x": 8704, "y": 1184, "zOrder": 10002, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "InteractPrompt", "persistentUuid": "59affac7-1e71-471c-aed4-d656fc72688b", "width": 128, "x": 2500, "y": 640, "zOrder": 10004, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 378, "layer": "", "name": "MemoryHolder", "persistentUuid": "d8c32b91-64bb-4169-871c-02c304178e9d", "width": 256, "x": 2250, "y": 845, "zOrder": 0, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "PortalToForest", "persistentUuid": "a329426d-c6d0-4f34-9d7d-751eda3fb428", "width": 256, "x": 2250, "y": 768, "zOrder": 10005, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "PortalToBeach", "persistentUuid": "0976c538-4475-44a1-94e1-38a84fadfd9a", "width": 256, "x": 3000, "y": 768, "zOrder": 10006, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 378, "layer": "", "name": "MemoryHolder", "persistentUuid": "2a75766f-8a51-4ef0-a7b4-8bf8e9eee816", "width": 256, "x": 3000, "y": 845, "zOrder": 0, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "PortalToLivingRoom", "persistentUuid": "97f29ecf-4142-4009-9453-21f774a43c91", "width": 256, "x": 3750, "y": 768, "zOrder": 10007, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 378, "layer": "", "name": "MemoryHolder", "persistentUuid": "421e049f-88b3-4853-a58c-97c5706fc686", "width": 256, "x": 3750, "y": 842, "zOrder": 0, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "PortalToSchool", "persistentUuid": "0e8f32cd-dc79-42e0-a9ec-cb702c364ef1", "width": 256, "x": 4500, "y": 768, "zOrder": 10008, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 378, "layer": "", "name": "MemoryHolder", "persistentUuid": "af6057c3-6d81-4884-82b5-a9aaae696298", "width": 256, "x": 4500, "y": 842, "zOrder": 0, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "PortalToOcean", "persistentUuid": "4a1df76a-7e6c-467d-b96d-57dbbfa71187", "width": 256, "x": 5250, "y": 768, "zOrder": 10009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 378, "layer": "", "name": "MemoryHolder", "persistentUuid": "1c47e3a0-79ce-4284-b2eb-e5c339323c13", "width": 256, "x": 5250, "y": 842, "zOrder": 0, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 1216, "layer": "", "name": "ServerRack", "persistentUuid": "1880cfff-e3ce-42e4-93b2-731c847b75cb", "width": 608, "x": 6656, "y": 1248, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "0f48bd80-9ce3-4291-a89c-ebf5ffe4770a", "width": 582, "x": 6656, "y": 1280, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "177d03c8-1b76-47c6-9319-cbc25ef69b26", "width": 582, "x": 6656, "y": 1344, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "5bb5a551-4ade-45fa-8c8b-733b8c06fa6f", "width": 582, "x": 6656, "y": 1440, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "ea80fa66-1e5c-422f-bf1b-5a25b387610c", "width": 582, "x": 6656, "y": 1408, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "872e23f3-1df6-4168-8922-d57da387b8fb", "width": 582, "x": 6656, "y": 1504, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "f93d7077-b6bd-4b80-923c-0320eba59fe0", "width": 582, "x": 6656, "y": 1568, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "fab24e61-0ee7-4a0a-b9e5-30cdeffc897b", "width": 582, "x": 6656, "y": 1664, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "a4a4b40c-8d28-4125-970e-5e485c1bfd80", "width": 582, "x": 6656, "y": 1600, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "941bc1eb-1191-4827-a0f3-d2d00d027f5f", "width": 582, "x": 6656, "y": 1760, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "e968c5d3-00ff-4c68-a3bb-17a50e9592ab", "width": 582, "x": 6656, "y": 1824, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "deca1769-4fa8-407d-b3bf-aa1a2a8e21db", "width": 582, "x": 6656, "y": 1920, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "bf93047c-b8e4-4843-9d4a-8c5823579414", "width": 582, "x": 6656, "y": 1856, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "f6b0bce7-66e1-4b33-905d-22cc9096b931", "width": 582, "x": 6656, "y": 1984, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "a8d973f9-273b-4d72-bd3d-1e6f401770ee", "width": 582, "x": 6656, "y": 2016, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "09af6c26-bf59-4091-9b66-77878a10acb0", "width": 582, "x": 6656, "y": 2144, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "094dde6c-4157-4e3a-9f91-3ea8f1b581bc", "width": 582, "x": 6656, "y": 2080, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "e983fd82-61a0-4b71-9179-daa74f352a98", "width": 582, "x": 6656, "y": 2176, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "bad94997-fa3e-4bae-8025-12a93bf1979d", "width": 582, "x": 6656, "y": 2240, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "65f94578-92e4-44cf-b761-f04dbf5f9586", "width": 582, "x": 6656, "y": 2304, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "63040f2e-a110-4f05-b2f8-1975d8dd39dc", "width": 582, "x": 6656, "y": 1728, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 1216, "layer": "", "name": "ServerRack", "persistentUuid": "dc59f25b-5f10-4903-ba88-6a39dc997375", "width": 608, "x": 7392, "y": 1248, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "62378965-ada0-42e9-9525-309958fa1cef", "width": 582, "x": 7392, "y": 1312, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "2fcbf4ae-62d6-4e36-ad07-8ec03590d797", "width": 582, "x": 7392, "y": 1344, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "9f3ffb47-2318-4db5-9aaa-9750228bc5a4", "width": 582, "x": 7392, "y": 1472, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "03478351-729d-445e-b7ae-3de7b710d8d3", "width": 582, "x": 7392, "y": 1408, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "bfcd59d3-9f06-4478-8545-6a6dc67e932e", "width": 582, "x": 7392, "y": 1504, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "3faa9299-f59e-485f-a023-0bb9041c6307", "width": 582, "x": 7392, "y": 1568, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "8095caff-0d89-4600-b712-da2ea85ebff6", "width": 582, "x": 7392, "y": 1664, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "bd80b2d3-4e11-4263-ab78-eadfb3bde754", "width": 582, "x": 7392, "y": 1632, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "23ac62c7-b992-4e09-8844-a30bca5e6971", "width": 582, "x": 7392, "y": 1792, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "e010f744-6cfb-45e1-ac92-95118dbbcb82", "width": 582, "x": 7392, "y": 1824, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "c422c043-31ea-4cd2-96c9-07fccb6dee57", "width": 582, "x": 7392, "y": 1952, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "02496df5-7f1e-438e-9e8b-5d3b8fb3274c", "width": 582, "x": 7392, "y": 1888, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "03055c00-c3a7-4027-9051-115277b1f906", "width": 582, "x": 7392, "y": 1984, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "9cf743a3-e17b-4d40-bb5a-d48e3888b33e", "width": 582, "x": 7392, "y": 2048, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "f2bca92b-7bfa-4864-bba5-cf46a6e8631b", "width": 582, "x": 7392, "y": 2144, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "dc3ef30a-351c-4f2d-bea0-7220cb8881aa", "width": 582, "x": 7392, "y": 2112, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "6e012cea-c07f-4fe4-b44b-d03f0a4fec53", "width": 582, "x": 7392, "y": 2208, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "7d8113f8-5efc-4da0-8573-5ea33e71feb3", "width": 582, "x": 7392, "y": 2272, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "5f6dc5d8-34be-41a6-a842-67ec43731a1d", "width": 582, "x": 7392, "y": 2304, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "c051f224-7012-4221-94df-86d9b0e5c0f3", "width": 582, "x": 7392, "y": 1728, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 1216, "layer": "", "name": "ServerRack", "persistentUuid": "988df219-a5f5-480b-b375-6558f95f7134", "width": 608, "x": 8128, "y": 1248, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "5dda2cdc-e1e0-4df3-9b00-5687cc0e7015", "width": 582, "x": 8128, "y": 1312, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "8770897a-eaba-4e3c-bafb-8181f4226d55", "width": 582, "x": 8128, "y": 1376, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "6491869d-4860-4426-b9fd-f5bb152eace9", "width": 582, "x": 8128, "y": 1472, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "eb8c3c66-bf36-4f42-8a21-54aa576debd2", "width": 582, "x": 8128, "y": 1408, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "ba2b1ae6-5bb8-424a-9f4b-35761d9a98c7", "width": 582, "x": 8128, "y": 1536, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "991daf2b-ba19-4595-b224-f276ca5a0502", "width": 582, "x": 8128, "y": 1568, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "dd4c3a0e-8a8a-4bc7-8d70-ccea03494fbf", "width": 582, "x": 8128, "y": 1664, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "87ecaf99-0844-47f6-b62e-a71bd340b4cb", "width": 582, "x": 8128, "y": 1632, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "7f7fa8e3-97fa-4018-a112-c96a2e2d974c", "width": 582, "x": 8128, "y": 1792, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "eefd0bef-1a37-4a1f-88ee-046c071a943c", "width": 582, "x": 8128, "y": 1824, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "3c9c2bc4-3682-4618-860a-4ac5deb1103d", "width": 582, "x": 8128, "y": 1952, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "13c60f2d-95a4-4453-b830-017f27fde7f4", "width": 582, "x": 8128, "y": 1888, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "b35269e7-42ca-4e05-a5d5-e8da860efbe6", "width": 582, "x": 8128, "y": 1984, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "e08e9e55-902c-4806-9244-11f9d8e4b8fb", "width": 582, "x": 8128, "y": 2048, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "7691ec6a-d7fd-423f-b08c-2d466db6b86e", "width": 582, "x": 8128, "y": 2144, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "a828a78f-6e42-4bc0-9393-3dc4a7d4c02f", "width": 582, "x": 8128, "y": 2112, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "747f1517-41d8-4b9a-87a7-9474efbbc739", "width": 582, "x": 8128, "y": 2208, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "0855437d-21de-44ae-b643-2bb3d3ec7ed1", "width": 582, "x": 8128, "y": 2272, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "e62229e0-af71-4c03-8a6c-72cdba094f08", "width": 582, "x": 8128, "y": 2304, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "9042b011-c73f-43d1-9a1f-c15b6303491f", "width": 582, "x": 8128, "y": 1728, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 1216, "layer": "", "name": "ServerRack", "persistentUuid": "ef9521ac-a458-4f2c-b89f-3e3f75a02b90", "width": 608, "x": 576, "y": 1248, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "78aa27c9-d38e-42a6-a182-e1933dfd7bca", "width": 582, "x": 576, "y": 1312, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "c87a3c9a-25a7-4ad9-bdca-7e2e7ee41790", "width": 582, "x": 576, "y": 1344, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "c4258261-2d42-44cd-9b80-05a5b355e98a", "width": 582, "x": 576, "y": 1472, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "888c47bd-0347-40f3-8d83-62fb9a7535d0", "width": 582, "x": 576, "y": 1408, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "8cba2b12-35bc-46ee-aa8d-499bd20ec7ac", "width": 582, "x": 576, "y": 1504, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "4b5576dd-4ba0-4290-9e0b-d370eff6e0b0", "width": 582, "x": 576, "y": 1568, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "06a6e79b-9916-4ddb-b037-dc90559b140c", "width": 582, "x": 576, "y": 1664, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "f202d083-0386-4094-83cf-ac26e05b6d8d", "width": 582, "x": 576, "y": 1632, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "0b2f2e7e-1488-435a-bb8e-407033851fd6", "width": 582, "x": 576, "y": 1792, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "8b31dc96-8a03-4756-94ea-29776d94067e", "width": 582, "x": 576, "y": 1824, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "7d28dd22-b658-483c-992b-7999be97b4dd", "width": 582, "x": 576, "y": 1952, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "8a57919d-b17d-48af-8410-39108f7597a7", "width": 582, "x": 576, "y": 1888, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "2b56c56a-0da2-4179-a289-d86dd0caa730", "width": 582, "x": 576, "y": 1984, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "72820f46-db7b-49da-945c-8f7537d8b0a6", "width": 582, "x": 576, "y": 2048, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "c6be6c95-8838-493f-82b9-7f5176f525e1", "width": 582, "x": 576, "y": 2144, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "ba90aa67-659c-4b82-bd2d-e00e4bfe6b36", "width": 582, "x": 576, "y": 2112, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "5517bb63-89ae-40de-a795-3cece0a8b9f4", "width": 582, "x": 576, "y": 2208, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "37da8d1b-2783-44d0-88a2-469499bbf906", "width": 582, "x": 576, "y": 2272, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "705a9128-e318-40d0-ab74-d0295fdce17e", "width": 582, "x": 576, "y": 2304, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "2440bc0e-4c45-46c0-b800-1f4316beff6f", "width": 582, "x": 576, "y": 1728, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 1216, "layer": "", "name": "ServerRack", "persistentUuid": "83967d07-4808-4b7a-9784-6e5b55c7eff4", "width": 608, "x": 1312, "y": 1248, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "5a139087-8cfb-4e01-b305-f1cf75179fbe", "width": 582, "x": 1312, "y": 1312, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "da1e23b2-7bd6-4238-8355-f0ce7bd9ea95", "width": 582, "x": 1312, "y": 1376, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "6f79323f-dd8e-4f6a-829c-7755912a609d", "width": 582, "x": 1312, "y": 1472, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "8211c904-f692-4619-9082-b4599e63ac09", "width": 582, "x": 1312, "y": 1408, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "d9ebdbbb-ef07-4a15-9f73-507134ad1849", "width": 582, "x": 1312, "y": 1536, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "c07e6f2a-f2b2-4ef0-af93-2af356c22cec", "width": 582, "x": 1312, "y": 1568, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "35395445-0399-488c-b41e-49e65d53428b", "width": 582, "x": 1312, "y": 1664, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "379af850-5f47-4191-a05f-4f8ba8734e33", "width": 582, "x": 1312, "y": 1632, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "8106bc70-ee39-43c4-9f43-54ff48e7392b", "width": 582, "x": 1312, "y": 1792, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "f2e70e85-a901-40a3-9149-74df05ea9f3a", "width": 582, "x": 1312, "y": 1824, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "725b8357-927e-4d27-8d5d-d4b24ded40d8", "width": 582, "x": 1312, "y": 1952, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "006eb85f-ea2b-4d62-a5b3-0308dbbfb7a3", "width": 582, "x": 1312, "y": 1888, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "eb37a956-4542-46f5-a51b-5efaf470c0c3", "width": 582, "x": 1312, "y": 1984, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "3016a555-a35e-4055-80ee-ed88c6690a92", "width": 582, "x": 1312, "y": 2048, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "6c650a8e-9a4d-4b60-b566-f0b4f5125e86", "width": 582, "x": 1312, "y": 2144, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "6f945eaf-ef16-420a-b5ba-a05f3d110814", "width": 582, "x": 1312, "y": 2112, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "bcf21d2c-6280-43e4-a375-49f97bc16fbe", "width": 582, "x": 1312, "y": 2208, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "56891171-d678-45b5-a549-8f12902a08d7", "width": 582, "x": 1312, "y": 2272, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "057b2a90-6ffb-4a41-befb-eb9ef200c29c", "width": 582, "x": 1312, "y": 2304, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "297bdbb2-ff1c-4884-8ce2-064627cebace", "width": 582, "x": 1312, "y": 1728, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 378, "layer": "", "name": "MemoryHolder", "persistentUuid": "eaf3a661-27b2-4c19-a019-5353a58884fc", "width": 256, "x": 6000, "y": 842, "zOrder": 0, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "PortalToBlockWorld", "persistentUuid": "74ee750b-1f35-43c2-9c24-428d2bdb62c1", "width": 256, "x": 6750, "y": 768, "zOrder": 10010, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 378, "layer": "", "name": "MemoryHolder", "persistentUuid": "1f0962b4-c54a-4cb6-8d56-83f19942d6f2", "width": 256, "x": 6750, "y": 842, "zOrder": 0, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "PortalToWhimsicalTree", "persistentUuid": "dd66063e-4b35-42f8-b62f-bce74bba3165", "width": 256, "x": 6000, "y": 768, "zOrder": 10011, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 378, "layer": "", "name": "MemoryHolder", "persistentUuid": "1a5a7547-50c4-453e-966d-d6be39b5357d", "width": 256, "x": 7500, "y": 842, "zOrder": 0, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "PortalToTangentHell", "persistentUuid": "38c89f88-ceea-4136-a01e-1f3d50985f8b", "width": 256, "x": 7500, "y": 768, "zOrder": 10012, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 378, "layer": "", "name": "MemoryHolder", "persistentUuid": "e69e8801-6a41-4aca-9e24-532443b016ac", "width": 256, "x": 8250, "y": 842, "zOrder": 0, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "PortalToRecursion", "persistentUuid": "84b64eee-8db9-429b-9897-51a6f8099af8", "width": 256, "x": 8250, "y": 768, "zOrder": 10013, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "PortalToRecursion", "persistentUuid": "92a281ff-7093-4752-962a-9b2e055c1e95", "width": 128, "x": 8314, "y": 832, "zOrder": 10013, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 64, "layer": "", "name": "PortalToRecursion", "persistentUuid": "60a3c255-afb5-4384-a75a-b12320ed09ce", "width": 64, "x": 8346, "y": 864, "zOrder": 10013, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 32, "layer": "", "name": "PortalToRecursion", "persistentUuid": "787b099f-545b-496b-9c56-9c09977c6c13", "width": 32, "x": 8362, "y": 880, "zOrder": 10013, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": false, "height": 0, "layer": "", "name": "MindscapeFloor", "persistentUuid": "99b20928-4d8c-4641-98a9-5467e6d739c0", "width": 0, "x": 9216, "y": 1184, "zOrder": 10002, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": false, "height": 0, "layer": "", "name": "MindscapeFloor", "persistentUuid": "4697e7bb-f6ca-484d-8a6c-d58442b01a9d", "width": 0, "x": 10240, "y": 1184, "zOrder": 10002, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": false, "height": 0, "layer": "", "name": "MindscapeFloor", "persistentUuid": "d2b9fa1f-16cc-4bba-a5bd-f428f5b5b88e", "width": 0, "x": 9728, "y": 1184, "zOrder": 10002, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 378, "layer": "", "name": "MemoryHolder", "persistentUuid": "6a5f31fc-9ab3-4847-8496-288876b35700", "width": 256, "x": 9000, "y": 842, "zOrder": 0, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "PortalToLinux", "persistentUuid": "986c1d61-d7e2-4d1f-9f17-f138f8dea480", "width": 256, "x": 9000, "y": 768, "zOrder": 10014, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 378, "layer": "", "name": "MemoryHolder", "persistentUuid": "c577ead0-4299-4160-9c89-1c47073f6790", "width": 256, "x": 9750, "y": 842, "zOrder": 0, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 256, "layer": "", "name": "PortalToBoss", "persistentUuid": "b6cb0119-2254-4c77-b0d4-6139d78e8fb5", "width": 256, "x": 9750, "y": 768, "zOrder": 10015, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 1216, "layer": "", "name": "ServerRack", "persistentUuid": "538ebc18-1102-4547-86e5-2ef0e13f57bd", "width": 608, "x": 9120, "y": 1248, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "ac41db02-3f7e-4bd2-917d-8110ee8b2596", "width": 582, "x": 9120, "y": 1312, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "9e84f925-fb31-4baa-ae2a-02d572c5b284", "width": 582, "x": 9120, "y": 1344, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "a87c493a-a3df-4ec0-804e-e6183354e1f9", "width": 582, "x": 9120, "y": 1472, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "9c8f79f7-3156-47b9-a72d-7ade57fab1f0", "width": 582, "x": 9120, "y": 1408, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "f8535184-2cb6-450f-8304-ee410476f37b", "width": 582, "x": 9120, "y": 1504, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "478a9675-6794-48b0-8209-015384b7c8c7", "width": 582, "x": 9120, "y": 1568, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "2801511f-3daf-45c4-83c0-7dbc94f73999", "width": 582, "x": 9120, "y": 1664, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "bee9627f-308d-49a2-afac-51f09e7a9274", "width": 582, "x": 9120, "y": 1632, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "8fd505bf-7b70-4460-b3b8-1c578832138b", "width": 582, "x": 9120, "y": 1792, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "4e0f7f65-9440-453a-bf6a-9251b9b3ab1a", "width": 582, "x": 9120, "y": 1824, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "78ba35ee-fa74-4932-951b-3281434fd145", "width": 582, "x": 9120, "y": 1952, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "ad713b85-1721-4217-bd36-d766d86c6fe4", "width": 582, "x": 9120, "y": 1888, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "53b5855c-71d8-471c-be83-137b1fcf352f", "width": 582, "x": 9120, "y": 1984, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "5cfd3cb0-2ace-4734-b61a-aac36ea1e647", "width": 582, "x": 9120, "y": 2048, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "f28d59bd-c9e4-41d0-ae72-3db8cbf0fff1", "width": 582, "x": 9120, "y": 2144, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "e65e8096-3684-48a5-82df-a138d41ce229", "width": 582, "x": 9120, "y": 2112, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "9fc74c75-0e76-4c74-8460-e8a3c7dcf3c7", "width": 582, "x": 9120, "y": 2208, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "987fd255-a9c1-4df2-8c5f-9b249f31de2f", "width": 582, "x": 9120, "y": 2272, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "7db4c1bb-bb26-4173-8591-289e0084c9f3", "width": 582, "x": 9120, "y": 2304, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "e5d7f7cc-06be-41a2-aad8-6e3d63557e99", "width": 582, "x": 9120, "y": 1728, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 1216, "layer": "", "name": "ServerRack", "persistentUuid": "2993405a-17e7-4d7b-b706-08688a7734fd", "width": 608, "x": 9856, "y": 1248, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "4b476895-6b5c-4b3f-ba26-2b7cf90e999c", "width": 582, "x": 9856, "y": 1312, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "e0785c09-c1bc-497f-a2a3-734eeed45bcf", "width": 582, "x": 9856, "y": 1376, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "10b865d4-bddf-4751-8321-f8e097f02704", "width": 582, "x": 9856, "y": 1472, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "9f8378be-0e6c-4241-830a-4ded0d588531", "width": 582, "x": 9856, "y": 1408, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "1a3612c8-d8ba-48ee-bdd7-c0db9420f9ac", "width": 582, "x": 9856, "y": 1536, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "85af3d9b-044d-4702-988b-0ecb43fcba66", "width": 582, "x": 9856, "y": 1568, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "a45076c2-6a2c-47e2-a5bb-c79cbc0cf7e7", "width": 582, "x": 9856, "y": 1664, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "6b2c04f9-ec8e-4e15-a46e-34632988c0f5", "width": 582, "x": 9856, "y": 1632, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "cc2b4d99-9e9c-4413-a072-ecd64a512a38", "width": 582, "x": 9856, "y": 1792, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "0b88ff7b-6c23-4156-8bbb-c88af941e549", "width": 582, "x": 9856, "y": 1824, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "bb0d513a-e327-4665-b648-a29c179261a7", "width": 582, "x": 9856, "y": 1952, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "a7cc3068-81ec-4974-a448-06a41b82213c", "width": 582, "x": 9856, "y": 1888, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "0de39c41-4fb6-4d19-94bb-5e02d1f3b9b0", "width": 582, "x": 9856, "y": 1984, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "c8a4e34f-8d57-4fbd-acc4-a66097466d30", "width": 582, "x": 9856, "y": 2048, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "e5a00fdd-7b52-474d-854f-453c3d143276", "width": 582, "x": 9856, "y": 2144, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "af17bbf7-02b1-489f-860c-f1714a0fd1de", "width": 582, "x": 9856, "y": 2112, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "a090facb-b651-462f-b02d-07361a76dc39", "width": 582, "x": 9856, "y": 2208, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "c7d1fbbe-2e72-4a1c-8d57-43f96717a05e", "width": 582, "x": 9856, "y": 2272, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "f88b643e-16b2-4ea5-b0b7-65e8c775f4b0", "width": 582, "x": 9856, "y": 2304, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 2, "height": 145, "layer": "", "name": "Server", "persistentUuid": "aaaf58a4-59bf-43c7-8843-1397e9bfdd94", "width": 582, "x": 9856, "y": 1728, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] } ], "objects": [ { "assetStoreId": "", "height": 1024, "name": "BackgroundPlants", "texture": "AssetDev/Backgrounds/Infrastructure/Infrastructure.png", "type": "TiledSpriteObject::TiledSprite", "width": 2048, "variables": [], "effects": [ { "effectType": "OldFilm", "name": "FilmNoise", "doubleParameters": { "animationFrequency": 60, "noise": 0.1, "noiseSize": 1, "scratch": 0.5, "scratchDensity": 0.4, "scratchWidth": 1, "sepia": 0.1, "vignetting": 0.4, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Brightness", "name": "Darken", "doubleParameters": { "brightness": 0.4 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "ServerRack", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "Brightness", "name": "Darken", "doubleParameters": { "brightness": 0.4 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.4, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Decorations/ServerRack/Rack_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 6, "y": 32 }, { "x": 1009, "y": 32 }, { "x": 1009, "y": 2029 }, { "x": 6, "y": 2029 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Decorations/ServerRack/Rack_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 6, "y": 32 }, { "x": 1009, "y": 32 }, { "x": 1009, "y": 2029 }, { "x": 6, "y": 2029 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "Server", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "Brightness", "name": "Darken", "doubleParameters": { "brightness": 0.4 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.4, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Decorations/Server/Server_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 82, "y": 33 }, { "x": 915, "y": 33 }, { "x": 915, "y": 165 }, { "x": 82, "y": 165 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Decorations/Server/Server_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 82, "y": 33 }, { "x": 915, "y": 33 }, { "x": 915, "y": 165 }, { "x": 82, "y": 165 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "MemoryHolder", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "Brightness", "name": "Effect", "doubleParameters": { "brightness": 0.6 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.4, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Decorations/MemoryHolder/MemoryHolder_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 30, "y": 262 }, { "x": 478, "y": 262 }, { "x": 478, "y": 996 }, { "x": 30, "y": 996 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Decorations/MemoryHolder/MemoryHolder_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 30, "y": 262 }, { "x": 478, "y": 262 }, { "x": 478, "y": 996 }, { "x": 30, "y": 996 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "PortalToMountains", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 2, "outerStrength": 4 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} }, { "effectType": "RGBSplit", "name": "Effect2", "doubleParameters": { "blueX": 0, "blueY": 5, "greenX": 0, "greenY": 0, "redX": -5, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Mountains1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Mountains2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Mountains3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Mountains4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Mountains3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Mountains2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 13, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 13, "y": 916 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "MindscapeFloor", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "Brightness", "name": "Effect", "doubleParameters": { "brightness": 0.6 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [ { "name": "Platform", "type": "PlatformBehavior::PlatformBehavior", "canBeGrabbed": true, "platformType": "NormalPlatform", "yGrabOffset": 0 } ], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.4, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Platforms/MindscapeFloor/MindscapeFloor_1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 0, "y": 21 }, { "x": 512, "y": 21 }, { "x": 512, "y": 41 }, { "x": 0, "y": 41 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Platforms/MindscapeFloor/MindscapeFloor_2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 0, "y": 21 }, { "x": 512, "y": 21 }, { "x": 512, "y": 41 }, { "x": 0, "y": 41 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "InteractPrompt", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "CRT", "name": "Lines", "doubleParameters": { "animationFrequency": 0, "animationSpeed": 1, "curvature": 1, "lineContrast": 0.25, "lineWidth": 1, "noise": 0.3, "noiseSize": 0, "padding": 0, "vignetting": 0.3, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": { "verticalLine": false } } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Sinage/TutorialKeys/TutorialKeys_E.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 0, "y": 10 }, { "x": 1013, "y": 10 }, { "x": 1013, "y": 1010 }, { "x": 0, "y": 1010 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "PortalToForest", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 2, "outerStrength": 4 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} }, { "effectType": "RGBSplit", "name": "Effect2", "doubleParameters": { "blueX": 0, "blueY": 5, "greenX": 0, "greenY": 0, "redX": -5, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Forest1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Forest2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Forest3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Forest4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Forest3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Forest2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "PortalToBeach", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 2, "outerStrength": 4 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} }, { "effectType": "RGBSplit", "name": "Effect2", "doubleParameters": { "blueX": 0, "blueY": 5, "greenX": 0, "greenY": 0, "redX": -5, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Beach1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Beach2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Beach3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Beach4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Beach3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Beach2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "PortalToLivingRoom", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 2, "outerStrength": 4 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} }, { "effectType": "RGBSplit", "name": "Effect2", "doubleParameters": { "blueX": 0, "blueY": 5, "greenX": 0, "greenY": 0, "redX": -5, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_LivingRoom1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 11, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 11, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_LivingRoom2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 11, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 11, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_LivingRoom3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 11, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 11, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_LivingRoom4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 11, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 11, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_LivingRoom3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 11, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 11, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_LivingRoom2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 11, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 11, "y": 916 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "PortalToSchool", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 2, "outerStrength": 4 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} }, { "effectType": "RGBSplit", "name": "Effect2", "doubleParameters": { "blueX": 0, "blueY": 5, "greenX": 0, "greenY": 0, "redX": -5, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_School1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_School2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_School3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_School4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_School3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_School2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "PortalToOcean", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 2, "outerStrength": 4 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} }, { "effectType": "RGBSplit", "name": "Effect2", "doubleParameters": { "blueX": 0, "blueY": 5, "greenX": 0, "greenY": 0, "redX": -5, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Ocean1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 24, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 24, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Ocean2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 24, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 24, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Ocean3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 24, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 24, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Ocean4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 24, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 24, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Ocean3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 24, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 24, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev/Memories/Memories_Ocean2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 24, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 24, "y": 916 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "PortalToBlockWorld", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 2, "outerStrength": 4 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} }, { "effectType": "RGBSplit", "name": "Effect2", "doubleParameters": { "blueX": 0, "blueY": 5, "greenX": 0, "greenY": 0, "redX": -5, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_BlockWorld1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 986, "y": 57 }, { "x": 986, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_BlockWorld2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 986, "y": 57 }, { "x": 986, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_BlockWorld3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 986, "y": 57 }, { "x": 986, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_BlockWorld4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 986, "y": 57 }, { "x": 986, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_BlockWorld3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 986, "y": 57 }, { "x": 986, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_BlockWorld2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 986, "y": 57 }, { "x": 986, "y": 916 }, { "x": 27, "y": 916 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "PortalToWhimsicalTree", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 2, "outerStrength": 4 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} }, { "effectType": "RGBSplit", "name": "Effect2", "doubleParameters": { "blueX": 0, "blueY": 5, "greenX": 0, "greenY": 0, "redX": -5, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_WhimsicalTree1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 0, "y": 57 }, { "x": 1001, "y": 57 }, { "x": 1001, "y": 916 }, { "x": 0, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_WhimsicalTree2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 0, "y": 57 }, { "x": 1001, "y": 57 }, { "x": 1001, "y": 916 }, { "x": 0, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_WhimsicalTree3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 0, "y": 57 }, { "x": 1001, "y": 57 }, { "x": 1001, "y": 916 }, { "x": 0, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_WhimsicalTree4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 0, "y": 57 }, { "x": 1001, "y": 57 }, { "x": 1001, "y": 916 }, { "x": 0, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_WhimsicalTree3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 0, "y": 57 }, { "x": 1001, "y": 57 }, { "x": 1001, "y": 916 }, { "x": 0, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_WhimsicalTree2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 0, "y": 57 }, { "x": 1001, "y": 57 }, { "x": 1001, "y": 916 }, { "x": 0, "y": 916 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "PortalToTangentHell", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 2, "outerStrength": 4 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} }, { "effectType": "RGBSplit", "name": "Effect2", "doubleParameters": { "blueX": 0, "blueY": 5, "greenX": 0, "greenY": 0, "redX": -5, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_TangentHell1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_TangentHell2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_TangentHell3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_TangentHell4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_TangentHell3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_TangentHell2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "PortalToRecursion", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 2, "outerStrength": 4 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} }, { "effectType": "RGBSplit", "name": "Effect2", "doubleParameters": { "blueX": 0, "blueY": 5, "greenX": 0, "greenY": 0, "redX": -5, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_TangentHell1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_TangentHell2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_TangentHell3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_TangentHell4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_TangentHell3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_TangentHell2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "PortalToLinux", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 2, "outerStrength": 4 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} }, { "effectType": "RGBSplit", "name": "Effect2", "doubleParameters": { "blueX": 0, "blueY": 5, "greenX": 0, "greenY": 0, "redX": -5, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_Linux1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_Linux2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_Linux3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_Linux4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_Linux3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_Linux2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "PortalToBoss", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 2, "outerStrength": 4 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} }, { "effectType": "RGBSplit", "name": "Effect2", "doubleParameters": { "blueX": 0, "blueY": 5, "greenX": 0, "greenY": 0, "redX": -5, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": true, "timeBetweenFrames": 0.2, "sprites": [ { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_Boss1.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_Boss2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_Boss3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_Boss4.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_Boss3.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] }, { "hasCustomCollisionMask": true, "image": "AssetDev\\Memories\\Memories_Boss2.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 57 }, { "x": 976, "y": 57 }, { "x": 976, "y": 916 }, { "x": 27, "y": 916 } ] ] } ] } ] } ] } ], "objectsFolderStructure": { "folderName": "__ROOT", "children": [ { "folderName": "Portals", "children": [ { "objectName": "PortalToMountains" }, { "objectName": "PortalToForest" }, { "objectName": "PortalToBeach" }, { "objectName": "PortalToLivingRoom" }, { "objectName": "PortalToSchool" }, { "objectName": "PortalToOcean" }, { "objectName": "PortalToWhimsicalTree" }, { "objectName": "PortalToBlockWorld" }, { "objectName": "PortalToTangentHell" }, { "objectName": "PortalToRecursion" }, { "objectName": "PortalToLinux" }, { "objectName": "PortalToBoss" } ] }, { "objectName": "BackgroundPlants" }, { "objectName": "ServerRack" }, { "objectName": "Server" }, { "objectName": "MemoryHolder" }, { "objectName": "MindscapeFloor" }, { "objectName": "InteractPrompt" } ] }, "events": [ { "type": "BuiltinCommonInstructions::Link", "include": { "includeConfig": 0 }, "target": "LevelEvents" }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "folded": true, "name": "Change Scene", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "folded": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "LayerVisible" }, "parameters": [ "", "\"EndScreen\"" ] }, { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "PanelSpriteButton::PanelSpriteButton::IsClicked" }, "parameters": [ "UI_Sinage_RetryButton", "" ] }, { "type": { "value": "KeyPressed" }, "parameters": [ "", "Space" ] } ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Player", "Lives", ">", "0" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Level1\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Player", "Lives", "<=", "0" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Tutorial\"", "" ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "folded": true, "name": "Portal Interaction Handlers", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "Cache" }, "parameters": [ "InteractPrompt" ] } ] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "folded": true, "name": "Mountain Portal (Tutorial)", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Distance" }, "parameters": [ "Player", "PortalToMountains", "350", "" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "Montre" }, "parameters": [ "InteractPrompt", "" ] }, { "type": { "value": "MettreXY" }, "parameters": [ "InteractPrompt", "=", "PortalToMountains.X() + PortalToMountains.Width()/4", "=", "PortalToMountains.Y() - (PortalToMountains.Height()/3)*2" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyPressed" }, "parameters": [ "", "e" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Tutorial\"", "" ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "folded": true, "name": "Forest Portal (Level 1)", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Distance" }, "parameters": [ "Player", "PortalToForest", "350", "" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "Montre" }, "parameters": [ "InteractPrompt", "" ] }, { "type": { "value": "MettreXY" }, "parameters": [ "InteractPrompt", "=", "PortalToForest.X() + PortalToForest.Width()/4", "=", "PortalToForest.Y() - (PortalToForest.Height()/3)*2" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyPressed" }, "parameters": [ "", "e" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Level1\"", "" ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "folded": true, "name": "Beach Portal (Level 2)", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Distance" }, "parameters": [ "Player", "PortalToBeach", "350", "" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "Montre" }, "parameters": [ "InteractPrompt", "" ] }, { "type": { "value": "MettreXY" }, "parameters": [ "InteractPrompt", "=", "PortalToBeach.X() + PortalToBeach.Width()/4", "=", "PortalToBeach.Y() - (PortalToBeach.Height()/3)*2" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyPressed" }, "parameters": [ "", "e" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Level2\"", "" ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "folded": true, "name": "Living Room Portal (Level 3)", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Distance" }, "parameters": [ "Player", "PortalToLivingRoom", "350", "" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "Montre" }, "parameters": [ "InteractPrompt", "" ] }, { "type": { "value": "MettreXY" }, "parameters": [ "InteractPrompt", "=", "PortalToLivingRoom.X() + PortalToLivingRoom.Width()/4", "=", "PortalToLivingRoom.Y() - (PortalToLivingRoom.Height()/3)*2" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyPressed" }, "parameters": [ "", "e" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Level3\"", "" ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "folded": true, "name": "Ocean Portal (Level 4)", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Distance" }, "parameters": [ "Player", "PortalToOcean", "350", "" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "Montre" }, "parameters": [ "InteractPrompt", "" ] }, { "type": { "value": "MettreXY" }, "parameters": [ "InteractPrompt", "=", "PortalToOcean.X() + PortalToOcean.Width()/4", "=", "PortalToOcean.Y() - (PortalToOcean.Height()/3)*2" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyPressed" }, "parameters": [ "", "e" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Level4\"", "" ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "folded": true, "name": "School Portal (Level 5)", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Distance" }, "parameters": [ "Player", "PortalToSchool", "350", "" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "Montre" }, "parameters": [ "InteractPrompt", "" ] }, { "type": { "value": "MettreXY" }, "parameters": [ "InteractPrompt", "=", "PortalToSchool.X() + PortalToSchool.Width()/4", "=", "PortalToSchool.Y() - (PortalToSchool.Height()/3)*2" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyPressed" }, "parameters": [ "", "e" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Level5\"", "" ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "folded": true, "name": "Whimsical Tree Portal (Level 6)", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Distance" }, "parameters": [ "Player", "PortalToWhimsicalTree", "350", "" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "Montre" }, "parameters": [ "InteractPrompt", "" ] }, { "type": { "value": "MettreXY" }, "parameters": [ "InteractPrompt", "=", "PortalToWhimsicalTree.X() + PortalToWhimsicalTree.Width() / 4", "=", "PortalToWhimsicalTree.Y() - (PortalToWhimsicalTree.Height() / 3) * 2" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyPressed" }, "parameters": [ "", "e" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Level6\"", "" ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "folded": true, "name": "Block World Portal (Level 7)", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Distance" }, "parameters": [ "Player", "PortalToBlockWorld", "350", "" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "Montre" }, "parameters": [ "InteractPrompt", "" ] }, { "type": { "value": "MettreXY" }, "parameters": [ "InteractPrompt", "=", "PortalToBlockWorld.X() + PortalToBlockWorld.Width() / 4", "=", "PortalToBlockWorld.Y() - (PortalToBlockWorld.Height() / 3) * 2" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyPressed" }, "parameters": [ "", "e" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Level7\"", "" ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "folded": true, "name": "Tangent Hell Portal (Level 8)", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Distance" }, "parameters": [ "Player", "PortalToTangentHell", "350", "" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "Montre" }, "parameters": [ "InteractPrompt", "" ] }, { "type": { "value": "MettreXY" }, "parameters": [ "InteractPrompt", "=", "PortalToTangentHell.X() + PortalToTangentHell.Width() / 4", "=", "PortalToTangentHell.Y() - (PortalToTangentHell.Height() / 3) * 2" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyPressed" }, "parameters": [ "", "e" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Level8\"", "" ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "folded": true, "name": "Recursion Portal (Level 9)", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Distance" }, "parameters": [ "Player", "PortalToRecursion", "350", "" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "Montre" }, "parameters": [ "InteractPrompt", "" ] }, { "type": { "value": "MettreXY" }, "parameters": [ "InteractPrompt", "=", "PortalToRecursion.X() + PortalToRecursion.Width() / 4", "=", "PortalToRecursion.Y() - (PortalToRecursion.Height() / 3) * 2" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyPressed" }, "parameters": [ "", "e" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Level9\"", "" ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Linux Portal (Level 10)", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Distance" }, "parameters": [ "Player", "PortalToLinux", "350", "" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "Montre" }, "parameters": [ "InteractPrompt", "" ] }, { "type": { "value": "MettreXY" }, "parameters": [ "InteractPrompt", "=", "PortalToLinux.X() + PortalToLinux.Width() / 4", "=", "PortalToLinux.Y() - (PortalToLinux.Height() / 3) * 2" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyPressed" }, "parameters": [ "", "e" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Level6\"", "" ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Boss Portal (Level 11)", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Distance" }, "parameters": [ "Player", "PortalToBoss", "350", "" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "Montre" }, "parameters": [ "InteractPrompt", "" ] }, { "type": { "value": "MettreXY" }, "parameters": [ "InteractPrompt", "=", "PortalToBoss.X() + PortalToBoss.Width() / 4", "=", "PortalToBoss.Y() - (PortalToBoss.Height() / 3) * 2" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyPressed" }, "parameters": [ "", "e" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Level6\"", "" ] } ] } ] } ], "parameters": [] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "MusicController", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "PlaySound" }, "parameters": [ "", "Assets/Sounds/Levels/Mindscape/AmbientLoop_Train.ogg", "yes", "GlobalVariable(Volume_ThemeMusic) - 16", "" ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Disable UI and CameraGlitchFix In Mindscape World", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "Cache" }, "parameters": [ "CameraGlitchFix" ] }, { "type": { "value": "BuiltinExternalLayouts::CreateObjectsFromExternalLayout" }, "parameters": [ "", "\"MindscapeUI\"", "", "", "" ] }, { "type": { "value": "Cache" }, "parameters": [ "UI_Sinage_Lives" ] }, { "type": { "value": "Cache" }, "parameters": [ "UI_Sinage_Hope" ] }, { "type": { "value": "Cache" }, "parameters": [ "LivesBar" ] }, { "type": { "value": "Cache" }, "parameters": [ "HopeBar" ] } ] } ], "parameters": [] } ], "layers": [ { "ambientLightColorB": 8002120, "ambientLightColorG": 6031360, "ambientLightColorR": 7844472, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "Background", "renderingType": "2d", "visibility": true, "cameras": [], "effects": [] }, { "ambientLightColorB": 32, "ambientLightColorG": 0, "ambientLightColorR": 0, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "", "renderingType": "", "visibility": true, "cameras": [ { "defaultSize": true, "defaultViewport": true, "height": 0, "viewportBottom": 1, "viewportLeft": 0, "viewportRight": 1, "viewportTop": 0, "width": 0 } ], "effects": [ { "effectType": "Scene3D::HemisphereLight", "name": "3D Light", "doubleParameters": { "elevation": 45, "intensity": 1, "rotation": 0 }, "stringParameters": { "groundColor": "64;64;64", "skyColor": "255;255;255", "top": "Y-" }, "booleanParameters": {} }, { "effectType": "OldFilm", "name": "Effect", "doubleParameters": { "animationFrequency": 60, "noise": 0.15, "noiseSize": 1, "scratch": 0, "scratchDensity": 0.2, "scratchWidth": 1, "sepia": 0, "vignetting": 0.4, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": {} } ] }, { "ambientLightColorB": 9191608, "ambientLightColorG": 6031360, "ambientLightColorR": 8756632, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "UI", "renderingType": "2d", "visibility": true, "cameras": [], "effects": [] }, { "ambientLightColorB": -2147483616, "ambientLightColorG": 6031360, "ambientLightColorR": 11020320, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "EndScreen", "renderingType": "2d", "visibility": false, "cameras": [], "effects": [] } ], "behaviorsSharedData": [ { "name": "AdvancedProjectile", "type": "AdvancedProjectile::AdvancedProjectile" }, { "name": "Animation", "type": "AnimatableCapability::AnimatableBehavior" }, { "name": "Effect", "type": "EffectCapability::EffectBehavior" }, { "name": "EllipseMovement", "type": "EllipseMovement::EllipseMovement" }, { "name": "Flippable", "type": "FlippableCapability::FlippableBehavior" }, { "name": "InOnScreen", "type": "IsOnScreen::InOnScreen" }, { "name": "MonsterEnemy", "type": "Enemy::MonsterEnemy" }, { "name": "Opacity", "type": "OpacityCapability::OpacityBehavior" }, { "name": "Platform", "type": "PlatformBehavior::PlatformBehavior" }, { "name": "PlatformerCharacterAnimator", "type": "PlatformerCharacterAnimator::PlatformerCharacterAnimator" }, { "name": "PlatformerGamepadMapper", "type": "Gamepads::PlatformerGamepadMapper" }, { "name": "PlatformerMultitouchMapper", "type": "MultitouchJoystick::PlatformerMultitouchMapper" }, { "name": "PlatformerObject", "type": "PlatformBehavior::PlatformerObjectBehavior" }, { "name": "RectangleMovement", "type": "RectangleMovement::RectangleMovement" }, { "name": "Resizable", "type": "ResizableCapability::ResizableBehavior" }, { "name": "Scale", "type": "ScalableCapability::ScalableBehavior" }, { "name": "ShakeObject_PositionAngle", "type": "ShakeObject::ShakeObject_PositionAngle" }, { "name": "ShakeObject_PositionAngleScale", "type": "ShakeObject::ShakeObject_PositionAngleScale" }, { "name": "SmoothCamera", "type": "SmoothCamera::SmoothCamera" }, { "name": "Text", "type": "TextContainerCapability::TextContainerBehavior" }, { "name": "TimedBackAndForthMirroredMovement", "type": "TimedBackAndForthMovement::TimedBackAndForthMirroredMovement" }, { "name": "Tween", "type": "Tween::TweenBehavior" } ] }, { "b": 26, "disableInputWhenNotFocused": true, "mangledName": "MainMenu", "name": "MainMenu", "r": 11, "standardSortMethod": true, "stopSoundsOnStartup": true, "title": "", "v": 24, "uiSettings": { "grid": true, "gridType": "rectangular", "gridWidth": 32, "gridHeight": 32, "gridOffsetX": 0, "gridOffsetY": 0, "gridColor": 10401023, "gridAlpha": 0.3, "snap": true, "zoomFactor": 0.2349169701407237, "windowMask": false }, "objectsGroups": [ { "name": "Platforms", "objects": [ { "name": "StaticPlatform1" }, { "name": "HorizontalMovingPlatformRight" }, { "name": "StaticPlatform2" }, { "name": "StaticPlatform3" } ] }, { "name": "MobileControls", "objects": [] }, { "name": "EndScreenObjects", "objects": [ { "name": "UI_Sinage_Background" }, { "name": "EndScreenHeader" }, { "name": "EndScreenSubHeader" }, { "name": "EndScreenBestText" }, { "name": "EndScreenChallengeText" }, { "name": "EndScreenRetryText" }, { "name": "UI_Sinage_RetryButton" } ] }, { "name": "HelperObjects", "objects": [ { "name": "LeftBoundary" }, { "name": "RightBoundary" }, { "name": "BoundaryJumpThrough" } ] } ], "variables": [ { "name": "Score", "type": "number", "value": 0 } ], "instances": [ { "angle": 0, "customSize": true, "depth": 1, "height": 4832, "layer": "", "name": "LeftBoundary", "persistentUuid": "78dd0ffa-b22f-47a8-9b36-ef6a432b1d1e", "width": 128, "x": -128, "y": -256, "zOrder": 38, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 4672, "layer": "Background", "name": "MenuBackground", "persistentUuid": "03b6869d-198f-4807-b659-f2b863e21073", "width": 4736, "x": 0, "y": -128, "zOrder": -1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 4800, "layer": "", "name": "RightBoundary", "persistentUuid": "9562fd9d-6e93-4465-9013-efa2b833653b", "width": 128, "x": 4736, "y": -256, "zOrder": 58, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "TopBoundary", "persistentUuid": "4381c067-2682-4f00-9a24-ff28fa12b1d8", "width": 4992, "x": -128, "y": -256, "zOrder": 59, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 142, "layer": "", "name": "Player", "persistentUuid": "8502c279-0347-4a0b-9f36-70f51ba06145", "width": 283, "x": 1575, "y": 458, "zOrder": 67, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "BottomBoundary", "persistentUuid": "ee9d7b35-66bf-4d6b-acc3-0f77c064ebf1", "width": 4992, "x": -128, "y": 1344, "zOrder": 68, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 1002, "layer": "", "name": "SneakySalamander", "persistentUuid": "6bf6a773-9c92-4a4c-a1ef-6babf173387b", "width": 1781, "x": 843, "y": -268, "zOrder": 37, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 55, "height": 112, "layer": "", "name": "NewGameButton", "persistentUuid": "e92816b1-0425-4c63-b0ed-c871ec01587e", "width": 334, "x": 1550, "y": 464, "zOrder": 69, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 26, "height": 112, "layer": "", "name": "CreditsButton", "persistentUuid": "6369e6bf-dcb6-42a5-b8fe-28806e68c96f", "width": 334, "x": 1550, "y": 645, "zOrder": 70, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 26, "height": 112, "layer": "", "name": "ExitButton", "persistentUuid": "5c4c274f-c773-4e25-bf67-63d980378400", "width": 334, "x": 1550, "y": 816, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] } ], "objects": [ { "assetStoreId": "", "height": 1024, "name": "MenuBackground", "texture": "Assets\\Images\\MainMenu\\Background\\Background.png", "type": "TiledSpriteObject::TiledSprite", "width": 2048, "variables": [], "effects": [ { "effectType": "TiltShift", "name": "Effect", "doubleParameters": { "blur": 30, "gradientBlur": 1000 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "OldFilm", "name": "Effect2", "doubleParameters": { "animationFrequency": 60, "noise": 0.1, "noiseSize": 1, "scratch": 0.8, "scratchDensity": 0.4, "scratchWidth": 1, "sepia": 0.1, "vignetting": 0.65, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Brightness", "name": "Effect3", "doubleParameters": { "brightness": 0.5 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "LeftBoundary", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [], "behaviors": [ { "name": "Platform", "type": "PlatformBehavior::PlatformBehavior", "canBeGrabbed": false, "platformType": "NormalPlatform", "yGrabOffset": 0 } ], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets/Images/Common/Border/Border.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "RightBoundary", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [], "behaviors": [ { "name": "Platform", "type": "PlatformBehavior::PlatformBehavior", "canBeGrabbed": false, "platformType": "NormalPlatform", "yGrabOffset": 0 } ], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets/Images/Common/Border/Border.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "TopBoundary", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets/Images/Common/Border/Border.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "BottomBoundary", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets/Images/Common/Border/Border.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "BoundaryJumpThrough", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [], "behaviors": [ { "name": "Platform", "type": "PlatformBehavior::PlatformBehavior", "canBeGrabbed": false, "platformType": "Jumpthru", "yGrabOffset": 0 } ], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets/Images/Common/Border/Border.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "SneakySalamander", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets/Images/Credits/SneakySalamander/SneakySalamander.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 53, "y": 324 }, { "x": 1862, "y": 324 }, { "x": 1862, "y": 567 }, { "x": 53, "y": 567 } ] ] } ] } ] } ] }, { "assetStoreId": "54a9a34bb495b15fe0e00f71075908e1ce52d499723617c966ad527229c77c79", "name": "NewGameButton", "type": "PanelSpriteButton::PanelSpriteButton", "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } } ], "behaviors": [], "content": { "LeftPadding": 0, "RightPadding": 0, "PressedLabelOffsetY": 4, "BottomPadding": 0, "TopPadding": 0, "HoveredFadeOutDuration": 0 }, "childrenContent": { "Hovered": { "bottomMargin": 10, "height": 64, "leftMargin": 6, "rightMargin": 6, "texture": "Assets/Images/MainMenu/NewGameButton/NewGameButton_Hovered.png", "tiled": false, "topMargin": 10, "width": 192 }, "Idle": { "bottomMargin": 10, "height": 64, "leftMargin": 6, "rightMargin": 6, "texture": "Assets/Images/MainMenu/NewGameButton/NewGameButton_Idle.png", "tiled": false, "topMargin": 10, "width": 192 }, "Label": { "bold": false, "italic": false, "smoothed": true, "underlined": false, "string": "", "font": "", "textAlignment": "center", "characterSize": 50, "color": { "b": 255, "g": 255, "r": 255 } }, "Pressed": { "bottomMargin": 10, "height": 64, "leftMargin": 6, "rightMargin": 6, "texture": "Assets/Images/MainMenu/NewGameButton/NewGameButton_Pressed.png", "tiled": false, "topMargin": 10, "width": 192 } } }, { "assetStoreId": "54a9a34bb495b15fe0e00f71075908e1ce52d499723617c966ad527229c77c79", "name": "CreditsButton", "type": "PanelSpriteButton::PanelSpriteButton", "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } } ], "behaviors": [], "content": { "LeftPadding": 0, "RightPadding": 0, "PressedLabelOffsetY": 4, "BottomPadding": 0, "TopPadding": 0, "HoveredFadeOutDuration": 0 }, "childrenContent": { "Hovered": { "bottomMargin": 10, "height": 64, "leftMargin": 6, "rightMargin": 6, "texture": "Assets/Images/MainMenu/CreditsButton/CreditsButton_Hovered.png", "tiled": false, "topMargin": 10, "width": 192 }, "Idle": { "bottomMargin": 10, "height": 64, "leftMargin": 6, "rightMargin": 6, "texture": "Assets/Images/MainMenu/CreditsButton/CreditsButton_Idle.png", "tiled": false, "topMargin": 10, "width": 192 }, "Label": { "bold": false, "italic": false, "smoothed": true, "underlined": false, "string": "", "font": "", "textAlignment": "center", "characterSize": 50, "color": { "b": 255, "g": 255, "r": 255 } }, "Pressed": { "bottomMargin": 10, "height": 64, "leftMargin": 6, "rightMargin": 6, "texture": "Assets/Images/MainMenu/CreditsButton/CreditsButton_Pressed.png", "tiled": false, "topMargin": 10, "width": 192 } } }, { "assetStoreId": "54a9a34bb495b15fe0e00f71075908e1ce52d499723617c966ad527229c77c79", "name": "ExitButton", "type": "PanelSpriteButton::PanelSpriteButton", "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } } ], "behaviors": [], "content": { "LeftPadding": 0, "RightPadding": 0, "PressedLabelOffsetY": 4, "BottomPadding": 0, "TopPadding": 0, "HoveredFadeOutDuration": 0 }, "childrenContent": { "Hovered": { "bottomMargin": 10, "height": 64, "leftMargin": 6, "rightMargin": 6, "texture": "Assets/Images/MainMenu/ExitButton/ExitButton_Hovered.png", "tiled": false, "topMargin": 10, "width": 192 }, "Idle": { "bottomMargin": 10, "height": 64, "leftMargin": 6, "rightMargin": 6, "texture": "Assets/Images/MainMenu/ExitButton/ExitButton_Idle.png", "tiled": false, "topMargin": 10, "width": 192 }, "Label": { "bold": false, "italic": false, "smoothed": true, "underlined": false, "string": "", "font": "", "textAlignment": "center", "characterSize": 50, "color": { "b": 255, "g": 255, "r": 255 } }, "Pressed": { "bottomMargin": 10, "height": 64, "leftMargin": 6, "rightMargin": 6, "texture": "Assets/Images/MainMenu/ExitButton/ExitButton_Pressed.png", "tiled": false, "topMargin": 10, "width": 192 } } } ], "objectsFolderStructure": { "folderName": "__ROOT", "children": [ { "objectName": "MenuBackground" }, { "objectName": "LeftBoundary" }, { "objectName": "RightBoundary" }, { "objectName": "TopBoundary" }, { "objectName": "BottomBoundary" }, { "objectName": "BoundaryJumpThrough" }, { "objectName": "SneakySalamander" }, { "folderName": "Buttons", "children": [ { "objectName": "CreditsButton" }, { "objectName": "ExitButton" }, { "objectName": "NewGameButton" } ] } ] }, "events": [ { "type": "BuiltinCommonInstructions::Link", "include": { "includeConfig": 0 }, "target": "LevelEvents" }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Change Scene", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "LayerVisible" }, "parameters": [ "", "\"EndScreen\"" ] }, { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "PanelSpriteButton::PanelSpriteButton::IsClicked" }, "parameters": [ "UI_Sinage_RetryButton", "" ] }, { "type": { "value": "KeyPressed" }, "parameters": [ "", "Space" ] } ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Player", "Lives", ">", "0" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Level1\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Player", "Lives", "<=", "0" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Tutorial\"", "" ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Disable Player", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "ActivateBehavior" }, "parameters": [ "Player", "PlatformerObject", "" ] }, { "type": { "value": "Cache" }, "parameters": [ "Player" ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Disable UI and CameraGlitchFix In Credits", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "HideLayer" }, "parameters": [ "", "\"UI\"" ] }, { "type": { "value": "Cache" }, "parameters": [ "CameraGlitchFix" ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Main Menu Camera", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "ResetTimer" }, "parameters": [ "", "\"CreditCameraPosition\"" ] }, { "type": { "value": "SetCameraCenterX" }, "parameters": [ "", "=", "Player.CenterX()", "", "" ] }, { "type": { "value": "SetCameraCenterY" }, "parameters": [ "", "=", "Player.CenterY()", "", "" ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "MusicController", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "PlaySound" }, "parameters": [ "", "Assets/Sounds/Levels/MainMenu/Theme.ogg", "yes", "GlobalVariable(Volume_ThemeMusic)", "" ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Button Interactions", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteButton::PanelSpriteButton::IsClicked" }, "parameters": [ "NewGameButton", "" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Mindscape\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteButton::PanelSpriteButton::IsClicked" }, "parameters": [ "CreditsButton", "" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Credits\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteButton::PanelSpriteButton::IsClicked" }, "parameters": [ "ExitButton", "" ] } ], "actions": [ { "type": { "value": "Quit" }, "parameters": [ "" ] } ] } ], "parameters": [] } ], "layers": [ { "ambientLightColorB": 8002120, "ambientLightColorG": 6031360, "ambientLightColorR": 7844472, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "Background", "renderingType": "2d", "visibility": true, "cameras": [], "effects": [] }, { "ambientLightColorB": 32, "ambientLightColorG": 0, "ambientLightColorR": 0, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "", "renderingType": "", "visibility": true, "cameras": [ { "defaultSize": true, "defaultViewport": true, "height": 0, "viewportBottom": 1, "viewportLeft": 0, "viewportRight": 1, "viewportTop": 0, "width": 0 } ], "effects": [ { "effectType": "Scene3D::HemisphereLight", "name": "3D Light", "doubleParameters": { "elevation": 45, "intensity": 1, "rotation": 0 }, "stringParameters": { "groundColor": "64;64;64", "skyColor": "255;255;255", "top": "Y-" }, "booleanParameters": {} }, { "effectType": "OldFilm", "name": "Effect", "doubleParameters": { "animationFrequency": 60, "noise": 0.15, "noiseSize": 1, "scratch": 0, "scratchDensity": 0.2, "scratchWidth": 1, "sepia": 0, "vignetting": 0.4, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": {} } ] }, { "ambientLightColorB": 9191608, "ambientLightColorG": 6031360, "ambientLightColorR": 8756632, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "UI", "renderingType": "2d", "visibility": true, "cameras": [], "effects": [] }, { "ambientLightColorB": -2147483616, "ambientLightColorG": 6031360, "ambientLightColorR": 11020320, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "EndScreen", "renderingType": "2d", "visibility": false, "cameras": [], "effects": [] } ], "behaviorsSharedData": [ { "name": "AdvancedProjectile", "type": "AdvancedProjectile::AdvancedProjectile" }, { "name": "Animation", "type": "AnimatableCapability::AnimatableBehavior" }, { "name": "Effect", "type": "EffectCapability::EffectBehavior" }, { "name": "EllipseMovement", "type": "EllipseMovement::EllipseMovement" }, { "name": "Flippable", "type": "FlippableCapability::FlippableBehavior" }, { "name": "InOnScreen", "type": "IsOnScreen::InOnScreen" }, { "name": "MonsterEnemy", "type": "Enemy::MonsterEnemy" }, { "name": "Opacity", "type": "OpacityCapability::OpacityBehavior" }, { "name": "Platform", "type": "PlatformBehavior::PlatformBehavior" }, { "name": "PlatformerCharacterAnimator", "type": "PlatformerCharacterAnimator::PlatformerCharacterAnimator" }, { "name": "PlatformerGamepadMapper", "type": "Gamepads::PlatformerGamepadMapper" }, { "name": "PlatformerMultitouchMapper", "type": "MultitouchJoystick::PlatformerMultitouchMapper" }, { "name": "PlatformerObject", "type": "PlatformBehavior::PlatformerObjectBehavior" }, { "name": "RectangleMovement", "type": "RectangleMovement::RectangleMovement" }, { "name": "Resizable", "type": "ResizableCapability::ResizableBehavior" }, { "name": "Scale", "type": "ScalableCapability::ScalableBehavior" }, { "name": "ShakeObject_PositionAngle", "type": "ShakeObject::ShakeObject_PositionAngle" }, { "name": "ShakeObject_PositionAngleScale", "type": "ShakeObject::ShakeObject_PositionAngleScale" }, { "name": "SmoothCamera", "type": "SmoothCamera::SmoothCamera" }, { "name": "Text", "type": "TextContainerCapability::TextContainerBehavior" }, { "name": "TimedBackAndForthMirroredMovement", "type": "TimedBackAndForthMovement::TimedBackAndForthMirroredMovement" }, { "name": "Tween", "type": "Tween::TweenBehavior" } ] }, { "b": 26, "disableInputWhenNotFocused": true, "mangledName": "Credits", "name": "Credits", "r": 11, "standardSortMethod": true, "stopSoundsOnStartup": true, "title": "", "v": 24, "uiSettings": { "grid": true, "gridType": "rectangular", "gridWidth": 32, "gridHeight": 32, "gridOffsetX": 0, "gridOffsetY": 0, "gridColor": 10401023, "gridAlpha": 0.3, "snap": true, "zoomFactor": 0.09918246407096092, "windowMask": false }, "objectsGroups": [ { "name": "Platforms", "objects": [ { "name": "StaticPlatform1" }, { "name": "HorizontalMovingPlatformRight" }, { "name": "StaticPlatform2" }, { "name": "StaticPlatform3" } ] }, { "name": "MobileControls", "objects": [] }, { "name": "EndScreenObjects", "objects": [ { "name": "UI_Sinage_Background" }, { "name": "EndScreenHeader" }, { "name": "EndScreenSubHeader" }, { "name": "EndScreenBestText" }, { "name": "EndScreenChallengeText" }, { "name": "EndScreenRetryText" }, { "name": "UI_Sinage_RetryButton" } ] }, { "name": "HelperObjects", "objects": [ { "name": "LeftBoundary" }, { "name": "RightBoundary" }, { "name": "BoundaryJumpThrough" } ] } ], "variables": [ { "name": "Score", "type": "number", "value": 0 } ], "instances": [ { "angle": 0, "customSize": true, "depth": 1, "height": 13024, "layer": "Background", "name": "BackgroundPlants", "persistentUuid": "03b6869d-198f-4807-b659-f2b863e21073", "width": 4736, "x": 0, "y": -128, "zOrder": -1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 13280, "layer": "", "name": "RightBoundary", "persistentUuid": "9562fd9d-6e93-4465-9013-efa2b833653b", "width": 128, "x": 4736, "y": -256, "zOrder": 58, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "TopBoundary", "persistentUuid": "4381c067-2682-4f00-9a24-ff28fa12b1d8", "width": 4992, "x": -128, "y": -256, "zOrder": 59, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 152, "layer": "", "name": "SoundDesign", "persistentUuid": "dacca278-30ee-4919-a60d-5b8db70325bd", "width": 910, "x": 1447, "y": 3647, "zOrder": 60, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 147, "layer": "", "name": "Colon", "persistentUuid": "63e4871c-0681-4b6f-a122-458b1efec119", "width": 75, "x": 2259, "y": 3652, "zOrder": 61, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 151, "layer": "", "name": "DylanMooney", "persistentUuid": "22cb858b-0f6f-4ecf-8b05-ab39b2bf3a3f", "width": 910, "x": 2382, "y": 3652, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 147, "layer": "", "name": "Director", "persistentUuid": "498bffc5-3349-425b-9b3e-97368aa907ce", "width": 890, "x": 1824, "y": 1389, "zOrder": 63, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 180, "customSize": true, "depth": 1, "height": 147, "layer": "", "name": "Colon", "persistentUuid": "bd74dbd9-c967-4deb-b337-da5f2c56d876", "width": 75, "x": 2259, "y": 1389, "zOrder": 64, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 148, "layer": "", "name": "ThomasLiao", "persistentUuid": "b4045003-8e7a-4240-bf53-3a0c9f4f1a62", "width": 887, "x": 2343, "y": 1388, "zOrder": 65, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 176, "layer": "", "name": "Player", "persistentUuid": "8502c279-0347-4a0b-9f36-70f51ba06145", "width": 352, "x": 2222, "y": 576, "zOrder": 67, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "BottomBoundary", "persistentUuid": "ee9d7b35-66bf-4d6b-acc3-0f77c064ebf1", "width": 4992, "x": -128, "y": 12896, "zOrder": 68, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 1002, "layer": "", "name": "SneakySalamander", "persistentUuid": "6bf6a773-9c92-4a4c-a1ef-6babf173387b", "width": 1781, "x": 1529, "y": 22, "zOrder": 37, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 320, "layer": "", "name": "CreditsEnd", "persistentUuid": "bbf85d5d-6171-41f3-91b0-0d115237c686", "width": 6560, "x": -832, "y": 9760, "zOrder": 69, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 152, "layer": "", "name": "LevelDesign", "persistentUuid": "e0eb4f85-7214-49ee-bd7b-be371978663e", "width": 910, "x": 1447, "y": 2237, "zOrder": 7, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 147, "layer": "", "name": "Colon", "persistentUuid": "9472ff68-4223-4e93-bd89-4c8a2948fea8", "width": 75, "x": 2259, "y": 2237, "zOrder": 61, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 147, "layer": "", "name": "AlexHu", "persistentUuid": "be84c5b3-a7aa-470e-9dd6-15f984d7ec3f", "width": 887, "x": 2382, "y": 2237, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 148, "layer": "", "name": "ThomasLiao", "persistentUuid": "d6fcb525-ed2b-488f-8a49-f00d0a6f42b2", "width": 887, "x": 2358, "y": 2433, "zOrder": 65, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 174, "layer": "", "name": "Programming", "persistentUuid": "1450c96d-994d-4327-8326-afffcb5324fd", "width": 1033, "x": 1466, "y": 1796, "zOrder": 71, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 147, "layer": "", "name": "Colon", "persistentUuid": "412d04a7-6de1-4a26-a374-8a58a26cc157", "width": 75, "x": 2259, "y": 1796, "zOrder": 61, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 148, "layer": "", "name": "ThomasLiao", "persistentUuid": "feaadde4-8449-4c19-a032-099f901693d7", "width": 887, "x": 2358, "y": 1796, "zOrder": 65, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 147, "layer": "", "name": "AlexHu", "persistentUuid": "eea67a0f-1c3c-4e3c-b16b-01bf0a7e32f8", "width": 887, "x": 2382, "y": 1943, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 151, "layer": "", "name": "QualityAssurance", "persistentUuid": "f44da4e2-41d5-4a8f-b7f3-bbba3ffa010e", "width": 910, "x": 1373, "y": 4164, "zOrder": 72, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 147, "layer": "", "name": "Colon", "persistentUuid": "74066723-bc69-4317-b947-e46f22a54b57", "width": 75, "x": 2268, "y": 4168, "zOrder": 61, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 148, "layer": "", "name": "ThomasLiao", "persistentUuid": "25a8dced-8d64-4f1c-8beb-aea6c76f94e9", "width": 887, "x": 2382, "y": 4337, "zOrder": 65, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 147, "layer": "", "name": "AlexHu", "persistentUuid": "945f9b8a-b328-44b1-b9ec-89ca69e261ce", "width": 887, "x": 2382, "y": 4164, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 151, "layer": "", "name": "DylanMooney", "persistentUuid": "d3b41af1-89e0-4b12-ba46-20c79d3afa18", "width": 910, "x": 2406, "y": 4508, "zOrder": 62, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 13280, "layer": "", "name": "LeftBoundary", "persistentUuid": "3f305fe5-0b2e-4993-97e5-6da7bc49245c", "width": 128, "x": -128, "y": -256, "zOrder": 38, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 150, "layer": "", "name": "Art", "persistentUuid": "c99ad8b5-1b9b-4ba9-9bcd-7c19a261a34e", "width": 1204, "x": 1962, "y": 3104, "zOrder": 7, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 147, "layer": "", "name": "Colon", "persistentUuid": "65ca56ae-debf-4713-bf67-8078454679b7", "width": 75, "x": 2259, "y": 3107, "zOrder": 998, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 148, "layer": "", "name": "ThomasLiao", "persistentUuid": "2e0f8aa1-dbc4-4a3e-843a-4ff1aa171dcc", "width": 887, "x": 2358, "y": 3106, "zOrder": 65, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 147, "layer": "", "name": "AlexHu", "persistentUuid": "73cb54d3-e2cb-42b0-a69a-01ca053ed3db", "width": 887, "x": 2382, "y": 3254, "zOrder": 66, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 134, "layer": "", "name": "BaileyBorbas", "persistentUuid": "1f40c92b-90a6-44fc-8f45-8ec45bf6b5c4", "width": 1083, "x": 2400, "y": 4698, "zOrder": 999, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 174, "layer": "", "name": "JacobMorrison", "persistentUuid": "ddc0db14-7212-4db4-9d9e-c8c1a75d9ffb", "width": 1378, "x": 2400, "y": 4850, "zOrder": 1000, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 133, "layer": "", "name": "BrennerMuskatel", "persistentUuid": "af988056-e721-438a-8d30-0c33846cccb5", "width": 1120, "x": 2368, "y": 2611, "zOrder": 1001, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 238, "layer": "", "name": "JackMccarthySmith", "persistentUuid": "72266098-18dd-4958-9fb1-bfeb361be7ed", "width": 1057, "x": 2400, "y": 5010, "zOrder": 1002, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 222, "layer": "", "name": "RyanReilly", "persistentUuid": "62940849-ab41-4056-94ac-e0b6cd09b343", "width": 887, "x": 2409, "y": 5186, "zOrder": 1003, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 256, "layer": "", "name": "JoshVegher", "persistentUuid": "be317912-9534-4ff5-a126-7d0a835aa8bb", "width": 1064, "x": 2424, "y": 5376, "zOrder": 1004, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 174, "layer": "", "name": "JustinHumes", "persistentUuid": "2a049221-b095-444f-ba4d-9150614946cc", "width": 1378, "x": 2400, "y": 5842, "zOrder": 1005, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 258, "layer": "", "name": "HunterBoggs", "persistentUuid": "0dcf9506-aa7d-4c83-982c-1fa4017f564f", "width": 1060, "x": 2432, "y": 6016, "zOrder": 1006, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 229, "layer": "", "name": "JasonWong", "persistentUuid": "6881dad2-f857-4534-8ef5-e42bfaa916e5", "width": 910, "x": 2400, "y": 6208, "zOrder": 1007, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 562, "layer": "", "name": "AGPL", "persistentUuid": "d9881387-8943-404f-a95a-f59d18ab6ab6", "width": 1024, "x": 2240, "y": 7118, "zOrder": 1008, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 2112, "layer": "", "name": "LicenseText", "persistentUuid": "30899dec-5d1e-440f-a766-1bbe6f01b5c8", "width": 1056, "x": 1952, "y": 7936, "zOrder": 1009, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 212, "layer": "", "name": "ConnorLebrun", "persistentUuid": "800097dd-7cf5-4620-8d76-d4c770904a64", "width": 1696, "x": 2400, "y": 5600, "zOrder": 1010, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 416, "layer": "", "name": "DRMFree", "persistentUuid": "1cd88b30-6438-4188-9955-6c6b6589a966", "width": 416, "x": 1760, "y": 7200, "zOrder": 1011, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 113, "layer": "", "name": "Git", "persistentUuid": "b71143b4-8382-4161-9ee4-abdfcb0cd075", "width": 288, "x": 2336, "y": 9263, "zOrder": 1012, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": false, "height": 0, "layer": "", "name": "NewText", "persistentUuid": "71e439e4-50f9-4359-8da3-0f784d95b4bc", "width": 0, "x": 2351, "y": 9416, "zOrder": 1013, "numberProperties": [], "stringProperties": [], "initialVariables": [] } ], "objects": [ { "assetStoreId": "", "height": 1024, "name": "BackgroundPlants", "texture": "Assets/Images/Credits/Background/Background.png", "type": "TiledSpriteObject::TiledSprite", "width": 2048, "variables": [], "effects": [ { "effectType": "TiltShift", "name": "Effect", "doubleParameters": { "blur": 30, "gradientBlur": 1000 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "OldFilm", "name": "Effect2", "doubleParameters": { "animationFrequency": 60, "noise": 0.1, "noiseSize": 1, "scratch": 0.8, "scratchDensity": 0.8, "scratchWidth": 1, "sepia": 0.1, "vignetting": 0.65, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": {} } ], "behaviors": [] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "SoundDesign", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 1, "outerStrength": 2 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets/Images/Credits/Titles/SoundDesign/SoundDesign.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 44, "y": 68 }, { "x": 2739, "y": 68 }, { "x": 2739, "y": 509 }, { "x": 44, "y": 509 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "Colon", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets/Images/Credits/Colon/Colon.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 75, "y": 99 }, { "x": 161, "y": 99 }, { "x": 161, "y": 405 }, { "x": 75, "y": 405 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "DylanMooney", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 1, "outerStrength": 2 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets/Images/Credits/Names/DylanMooney/DylanMooney.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 12, "y": 40 }, { "x": 2842, "y": 40 }, { "x": 2842, "y": 505 }, { "x": 12, "y": 505 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "Director", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 1, "outerStrength": 2 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets/Images/Credits/Titles/Concept/Concept.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 53, "y": 101 }, { "x": 1583, "y": 101 }, { "x": 1583, "y": 488 }, { "x": 53, "y": 488 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "ThomasLiao", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 1, "outerStrength": 2 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets/Images/Credits/Names/ThomasLiao/ThomasLiao.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 5, "y": 70 }, { "x": 2073, "y": 70 }, { "x": 2073, "y": 456 }, { "x": 5, "y": 456 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "AlexHu", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 1, "outerStrength": 2 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets/Images/Credits/Names/AlexHu/AlexHu.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 22, "y": 73 }, { "x": 1733, "y": 73 }, { "x": 1733, "y": 474 }, { "x": 22, "y": 474 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "SneakySalamander", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "CRT", "name": "Lines", "doubleParameters": { "animationFrequency": 0, "animationSpeed": 1, "curvature": 1, "lineContrast": 0.25, "lineWidth": 1, "noise": 0.3, "noiseSize": 0, "padding": 0, "vignetting": 0.3, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": { "verticalLine": false } } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets/Images/Credits/SneakySalamander/SneakySalamander.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 53, "y": 324 }, { "x": 1862, "y": 324 }, { "x": 1862, "y": 567 }, { "x": 53, "y": 567 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "CreditsEnd", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets/Images/Common/Black/Black.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 0, "y": 0 }, { "x": 32, "y": 0 }, { "x": 32, "y": 32 }, { "x": 0, "y": 32 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "LevelDesign", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 1, "outerStrength": 2 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets/Images/Credits/Titles/LevelDesign/LevelDesign.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 72, "y": 84 }, { "x": 2739, "y": 84 }, { "x": 2739, "y": 481 }, { "x": 72, "y": 481 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "Programming", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 1, "outerStrength": 2 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets/Images/Credits/Titles/Programming/Programming.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 44, "y": 89 }, { "x": 2389, "y": 89 }, { "x": 2389, "y": 458 }, { "x": 44, "y": 458 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "QualityAssurance", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 1, "outerStrength": 2 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets/Images/Credits/Titles/QualityAssurance/QualityAssurance.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 53, "y": 65 }, { "x": 3056, "y": 65 }, { "x": 3056, "y": 460 }, { "x": 53, "y": 460 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "SpecialThanks", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 1, "outerStrength": 2 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets/Images/Credits/Titles/SpecialThanks/SpecialThanks.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 56, "y": 88 }, { "x": 2342, "y": 88 }, { "x": 2342, "y": 466 }, { "x": 56, "y": 466 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "BaileyBorbas", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 1, "outerStrength": 2 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Credits\\Names\\BaileyBorbas\\BaileyBorbas.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 39, "y": 54 }, { "x": 3390, "y": 54 }, { "x": 3390, "y": 507 }, { "x": 39, "y": 507 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "BrennerKrogh", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 1, "outerStrength": 2 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Credits\\Names\\BrennerKrogh\\BrennerKrogh.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 47, "y": 233 }, { "x": 3338, "y": 233 }, { "x": 3338, "y": 856 }, { "x": 47, "y": 856 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "BrennerMuskatel", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 1, "outerStrength": 2 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Credits\\Names\\BrennerMuscatell\\BrennerMuscatell.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 66, "y": 63 }, { "x": 3911, "y": 63 }, { "x": 3911, "y": 500 }, { "x": 66, "y": 500 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "HunterBoggs", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 1, "outerStrength": 2 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Credits\\Names\\HunterBoggs\\HunterBoggs.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 21, "y": 203 }, { "x": 3131, "y": 203 }, { "x": 3131, "y": 840 }, { "x": 21, "y": 840 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "JackMccarthySmith", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 1, "outerStrength": 2 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Credits\\Names\\JackMccarthySmith\\JackMccarthySmith.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 27, "y": 169 }, { "x": 4002, "y": 169 }, { "x": 4002, "y": 806 }, { "x": 27, "y": 806 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "JacobMorrison", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 1, "outerStrength": 2 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Credits\\Names\\JacobMorrison\\JacobMorrison.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 32, "y": 101 }, { "x": 2625, "y": 101 }, { "x": 2625, "y": 459 }, { "x": 32, "y": 459 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "JasonWong", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 1, "outerStrength": 2 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Credits\\Names\\JasonWong\\JasonWong.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 41, "y": 243 }, { "x": 3132, "y": 243 }, { "x": 3132, "y": 880 }, { "x": 41, "y": 880 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "JoshVegher", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 1, "outerStrength": 2 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Credits\\Names\\JoshVegher\\JoshVegher.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 26, "y": 225 }, { "x": 2930, "y": 225 }, { "x": 2930, "y": 812 }, { "x": 26, "y": 812 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "JustinHumes", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 1, "outerStrength": 2 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Credits\\Names\\JustinHumes\\JustinHumes.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 63, "y": 57 }, { "x": 2664, "y": 57 }, { "x": 2664, "y": 486 }, { "x": 63, "y": 486 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "RyanReilly", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 1, "outerStrength": 2 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Credits\\Names\\RyanReilly\\RyanReilly.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 55, "y": 229 }, { "x": 3044, "y": 229 }, { "x": 3044, "y": 860 }, { "x": 55, "y": 860 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "Art", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 1, "outerStrength": 2 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Credits\\Titles\\Art\\Art.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 43, "y": 43 }, { "x": 956, "y": 43 }, { "x": 956, "y": 498 }, { "x": 43, "y": 498 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "AGPL", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 1, "outerStrength": 2 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Credits\\Logos\\AGPL\\AGPL_Logo.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 82, "y": 68 }, { "x": 1975, "y": 68 }, { "x": 1975, "y": 1064 }, { "x": 82, "y": 1064 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "LicenseText", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 1, "outerStrength": 2 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets/Images/Credits/LicenseText/LicenseText.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 28, "y": 62 }, { "x": 2013, "y": 62 }, { "x": 2013, "y": 1278 }, { "x": 28, "y": 1278 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "ConnorLebrun", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 1, "outerStrength": 2 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Credits\\Names\\ConnorLebrun\\ConnorLebrun.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 35, "y": 81 }, { "x": 2193, "y": 81 }, { "x": 2193, "y": 497 }, { "x": 35, "y": 497 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "DRMFree", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 1, "outerStrength": 2 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Credits\\Logos\\DRMFree\\DRM_Free_Logo.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 7, "y": 7 }, { "x": 2041, "y": 7 }, { "x": 2041, "y": 2041 }, { "x": 7, "y": 2041 } ] ] } ] } ] } ] }, { "adaptCollisionMaskAutomatically": true, "assetStoreId": "", "name": "Git", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [ { "effectType": "RGBSplit", "name": "ChromaticAberration", "doubleParameters": { "blueX": 0, "blueY": 3, "greenX": 0, "greenY": 0, "redX": -3, "redY": 1 }, "stringParameters": {}, "booleanParameters": {} }, { "effectType": "Glitch", "name": "Glitchy", "doubleParameters": { "animationFrequency": 20, "blueX": 2, "blueY": -2, "direction": 0, "fillMode": 0, "greenX": 2, "greenY": -2, "minSize": 8, "offset": 2, "redX": 2, "redY": 2, "sampleSize": 512, "slices": 2 }, "stringParameters": {}, "booleanParameters": { "average": false } }, { "effectType": "Glow", "name": "Effect", "doubleParameters": { "distance": 15, "innerStrength": 1, "outerStrength": 2 }, "stringParameters": { "color": "255;255;255" }, "booleanParameters": {} } ], "behaviors": [], "animations": [ { "name": "", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [ { "hasCustomCollisionMask": true, "image": "Assets\\Images\\Credits\\Logos\\Git\\Git-Logo-White.png", "points": [], "originPoint": { "name": "origine", "x": 0, "y": 0 }, "centerPoint": { "automatic": true, "name": "centre", "x": 0, "y": 0 }, "customCollisionMask": [ [ { "x": 63, "y": 7 }, { "x": 1979, "y": 7 }, { "x": 1979, "y": 807 }, { "x": 63, "y": 807 } ] ] } ] } ] } ] }, { "assetStoreId": "", "bold": false, "italic": false, "name": "NewText", "smoothed": true, "type": "TextObject::Text", "underlined": false, "variables": [], "effects": [], "behaviors": [], "string": "put link here", "font": "", "textAlignment": "left", "characterSize": 50, "color": { "b": 255, "g": 255, "r": 255 } } ], "objectsFolderStructure": { "folderName": "__ROOT", "children": [ { "folderName": "CreditObjects", "children": [ { "folderName": "Logos", "children": [ { "objectName": "AGPL" }, { "objectName": "DRMFree" }, { "objectName": "Git" }, { "objectName": "LicenseText" }, { "objectName": "NewText" } ] }, { "folderName": "Titles", "children": [ { "objectName": "Director" }, { "objectName": "SoundDesign" }, { "objectName": "LevelDesign" }, { "objectName": "Programming" }, { "objectName": "QualityAssurance" }, { "objectName": "SpecialThanks" }, { "objectName": "Art" } ] }, { "folderName": "Names", "children": [ { "objectName": "ThomasLiao" }, { "objectName": "AlexHu" }, { "objectName": "DylanMooney" }, { "objectName": "BaileyBorbas" }, { "objectName": "BrennerKrogh" }, { "objectName": "BrennerMuskatel" }, { "objectName": "HunterBoggs" }, { "objectName": "JackMccarthySmith" }, { "objectName": "JacobMorrison" }, { "objectName": "JasonWong" }, { "objectName": "JoshVegher" }, { "objectName": "JustinHumes" }, { "objectName": "RyanReilly" }, { "objectName": "ConnorLebrun" } ] }, { "objectName": "Colon" } ] }, { "objectName": "BackgroundPlants" }, { "objectName": "SneakySalamander" }, { "objectName": "CreditsEnd" } ] }, "events": [ { "type": "BuiltinCommonInstructions::Link", "include": { "includeConfig": 0 }, "target": "LevelEvents" }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Change Scene", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "LayerVisible" }, "parameters": [ "", "\"EndScreen\"" ] }, { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "PanelSpriteButton::PanelSpriteButton::IsClicked" }, "parameters": [ "UI_Sinage_RetryButton", "" ] }, { "type": { "value": "KeyPressed" }, "parameters": [ "", "Space" ] } ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Player", "Lives", ">", "0" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Level1\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Player", "Lives", "<=", "0" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Tutorial\"", "" ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Make it so player doesn't fall", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "ActivateBehavior" }, "parameters": [ "Player", "PlatformerObject", "" ] }, { "type": { "value": "Cache" }, "parameters": [ "Player" ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Disable Life UI In Credits", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "HideLayer" }, "parameters": [ "", "\"UI\"" ] }, { "type": { "value": "OpacityCapability::OpacityBehavior::SetValue" }, "parameters": [ "CameraGlitchFix", "Opacity", "=", "0" ] }, { "type": { "value": "OpacityCapability::OpacityBehavior::SetValue" }, "parameters": [ "CreditsEnd", "Opacity", "=", "0" ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Credits Camera", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "ResetTimer" }, "parameters": [ "", "\"CreditCameraPosition\"" ] }, { "type": { "value": "SetCameraCenterX" }, "parameters": [ "", "=", "Player.CenterX()", "", "" ] }, { "type": { "value": "SetCameraCenterY" }, "parameters": [ "", "=", "Player.CenterY()", "", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetOffsetYOp" }, "parameters": [ "Player", "SmoothCamera", "=", "TimerElapsedTime(\"CreditCameraPosition\")*100", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "TiledSpriteObject::XOffset" }, "parameters": [ "BackgroundPlants", "=", "CameraBorderLeft() / 3 + 1200" ] }, { "type": { "value": "TiledSpriteObject::YOffset" }, "parameters": [ "BackgroundPlants", "=", "CameraBorderTop() / 3 + 675" ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "MusicController", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "PlaySound" }, "parameters": [ "", "Assets/Sounds/Levels/MainMenu/Theme.ogg", "yes", "GlobalVariable(Volume_ThemeMusic)", "" ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "End Of Credit Scene", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::CompareNumbers" }, "parameters": [ "Player.SmoothCamera::OffsetY()", ">", "CreditsEnd.Y()" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"MainMenu\"", "" ] } ] } ], "parameters": [] } ], "layers": [ { "ambientLightColorB": 8002120, "ambientLightColorG": 6031360, "ambientLightColorR": 7844472, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "Background", "renderingType": "2d", "visibility": true, "cameras": [], "effects": [] }, { "ambientLightColorB": 32, "ambientLightColorG": 0, "ambientLightColorR": 0, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "", "renderingType": "", "visibility": true, "cameras": [ { "defaultSize": true, "defaultViewport": true, "height": 0, "viewportBottom": 1, "viewportLeft": 0, "viewportRight": 1, "viewportTop": 0, "width": 0 } ], "effects": [ { "effectType": "Scene3D::HemisphereLight", "name": "3D Light", "doubleParameters": { "elevation": 45, "intensity": 1, "rotation": 0 }, "stringParameters": { "groundColor": "64;64;64", "skyColor": "255;255;255", "top": "Y-" }, "booleanParameters": {} }, { "effectType": "OldFilm", "name": "Effect", "doubleParameters": { "animationFrequency": 60, "noise": 0.15, "noiseSize": 1, "scratch": 0, "scratchDensity": 0.2, "scratchWidth": 1, "sepia": 0, "vignetting": 0.4, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": {} } ] }, { "ambientLightColorB": 9191608, "ambientLightColorG": 6031360, "ambientLightColorR": 8756632, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "UI", "renderingType": "2d", "visibility": true, "cameras": [], "effects": [] }, { "ambientLightColorB": -2147483616, "ambientLightColorG": 6031360, "ambientLightColorR": 11020320, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "EndScreen", "renderingType": "2d", "visibility": false, "cameras": [], "effects": [] } ], "behaviorsSharedData": [ { "name": "AdvancedProjectile", "type": "AdvancedProjectile::AdvancedProjectile" }, { "name": "Animation", "type": "AnimatableCapability::AnimatableBehavior" }, { "name": "Effect", "type": "EffectCapability::EffectBehavior" }, { "name": "EllipseMovement", "type": "EllipseMovement::EllipseMovement" }, { "name": "Flippable", "type": "FlippableCapability::FlippableBehavior" }, { "name": "InOnScreen", "type": "IsOnScreen::InOnScreen" }, { "name": "MonsterEnemy", "type": "Enemy::MonsterEnemy" }, { "name": "Opacity", "type": "OpacityCapability::OpacityBehavior" }, { "name": "Platform", "type": "PlatformBehavior::PlatformBehavior" }, { "name": "PlatformerCharacterAnimator", "type": "PlatformerCharacterAnimator::PlatformerCharacterAnimator" }, { "name": "PlatformerGamepadMapper", "type": "Gamepads::PlatformerGamepadMapper" }, { "name": "PlatformerMultitouchMapper", "type": "MultitouchJoystick::PlatformerMultitouchMapper" }, { "name": "PlatformerObject", "type": "PlatformBehavior::PlatformerObjectBehavior" }, { "name": "RectangleMovement", "type": "RectangleMovement::RectangleMovement" }, { "name": "Resizable", "type": "ResizableCapability::ResizableBehavior" }, { "name": "Scale", "type": "ScalableCapability::ScalableBehavior" }, { "name": "ShakeObject_PositionAngle", "type": "ShakeObject::ShakeObject_PositionAngle" }, { "name": "ShakeObject_PositionAngleScale", "type": "ShakeObject::ShakeObject_PositionAngleScale" }, { "name": "SmoothCamera", "type": "SmoothCamera::SmoothCamera" }, { "name": "Text", "type": "TextContainerCapability::TextContainerBehavior" }, { "name": "TimedBackAndForthMirroredMovement", "type": "TimedBackAndForthMovement::TimedBackAndForthMirroredMovement" }, { "name": "Tween", "type": "Tween::TweenBehavior" } ] }, { "b": 26, "disableInputWhenNotFocused": true, "mangledName": "TestingLevel", "name": "TestingLevel", "r": 11, "standardSortMethod": true, "stopSoundsOnStartup": true, "title": "", "v": 24, "uiSettings": { "grid": true, "gridType": "rectangular", "gridWidth": 32, "gridHeight": 32, "gridOffsetX": 0, "gridOffsetY": 0, "gridColor": 10401023, "gridAlpha": 0.3, "snap": true, "zoomFactor": 0.48728344598062034, "windowMask": false }, "objectsGroups": [ { "name": "MobileControls", "objects": [] }, { "name": "EndScreenObjects", "objects": [ { "name": "UI_Sinage_Background" }, { "name": "EndScreenHeader" }, { "name": "EndScreenSubHeader" }, { "name": "EndScreenBestText" }, { "name": "EndScreenChallengeText" }, { "name": "EndScreenRetryText" }, { "name": "UI_Sinage_RetryButton" } ] }, { "name": "HelperObjects", "objects": [ { "name": "LeftBoundary" }, { "name": "RightBoundary" }, { "name": "BoundaryJumpThrough" } ] } ], "variables": [ { "folded": true, "name": "SFXVolume", "type": "number", "value": 80 }, { "folded": true, "name": "MusicVolume", "type": "number", "value": 80 } ], "instances": [ { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "", "name": "Player", "persistentUuid": "f1286917-ed44-4574-a573-4406037f74c1", "width": 256, "x": 288, "y": 640, "zOrder": 63, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "d353842c-f749-44ae-b77f-b2018e1d735f", "width": 448, "x": 320, "y": 736, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 1536, "layer": "", "name": "LeftBoundary", "persistentUuid": "e261a0d9-afca-4643-9f4c-66e86a5e5208", "width": 128, "x": -128, "y": -96, "zOrder": 1013, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 1504, "layer": "", "name": "RightBoundary", "persistentUuid": "9881924b-4e66-4e70-b398-1392cd7daa9e", "width": 128, "x": 2400, "y": -64, "zOrder": 1014, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "TopBoundary", "persistentUuid": "953d6649-1398-416e-81e1-84a575485599", "width": 2528, "x": -96, "y": -128, "zOrder": 1015, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "", "name": "BottomBoundary", "persistentUuid": "d1bde48f-081e-43be-89d6-3d3daca3c353", "width": 2656, "x": -128, "y": 1344, "zOrder": 1016, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": false, "height": 0, "layer": "", "name": "Test", "persistentUuid": "69fcc9ac-8eb8-44bb-a815-6a0b952aab56", "width": 0, "x": 160, "y": 128, "zOrder": 1019, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": false, "height": 0, "layer": "", "name": "Test2", "persistentUuid": "816d7b22-67bf-434b-91b5-8d324d7e488b", "width": 0, "x": 160, "y": 224, "zOrder": 1020, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 96, "layer": "", "name": "StaticPlatform1", "persistentUuid": "c285b401-c939-42fd-b595-2750cf47ce76", "width": 448, "x": 1056, "y": 768, "zOrder": 78, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 224, "layer": "", "name": "Checkpoint", "persistentUuid": "041d408a-5686-4bd3-9615-482c2d92ccd8", "width": 299, "x": 544, "y": 512, "zOrder": 1021, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 384, "layer": "", "name": "LaserDemon_BasePermanent", "persistentUuid": "bb37a1cf-c7fb-4e50-895a-403aecc0bd65", "width": 384, "x": 1184, "y": 256, "zOrder": 1022, "numberProperties": [], "stringProperties": [], "initialVariables": [] } ], "objects": [], "objectsFolderStructure": { "folderName": "__ROOT" }, "events": [ { "type": "BuiltinCommonInstructions::Link", "include": { "includeConfig": 0 }, "target": "LevelEvents" }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Change Scene", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "LayerVisible" }, "parameters": [ "", "\"EndScreen\"" ] }, { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "PanelSpriteButton::PanelSpriteButton::IsClicked" }, "parameters": [ "UI_Sinage_RetryButton", "" ] }, { "type": { "value": "KeyPressed" }, "parameters": [ "", "Space" ] } ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Player", "Lives", ">", "0" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Level1\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Player", "Lives", "<=", "0" ] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Tutorial\"", "" ] } ] } ] } ], "parameters": [] } ], "layers": [ { "ambientLightColorB": 8002120, "ambientLightColorG": 6031360, "ambientLightColorR": 7844472, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "Background", "renderingType": "2d", "visibility": true, "cameras": [], "effects": [] }, { "ambientLightColorB": 32, "ambientLightColorG": 0, "ambientLightColorR": 0, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "", "renderingType": "", "visibility": true, "cameras": [ { "defaultSize": true, "defaultViewport": true, "height": 0, "viewportBottom": 1, "viewportLeft": 0, "viewportRight": 1, "viewportTop": 0, "width": 0 } ], "effects": [ { "effectType": "Scene3D::HemisphereLight", "name": "3D Light", "doubleParameters": { "elevation": 45, "intensity": 1, "rotation": 0 }, "stringParameters": { "groundColor": "64;64;64", "skyColor": "255;255;255", "top": "Y-" }, "booleanParameters": {} }, { "effectType": "OldFilm", "name": "Effect", "doubleParameters": { "animationFrequency": 60, "noise": 0.15, "noiseSize": 1, "scratch": 0, "scratchDensity": 0.2, "scratchWidth": 1, "sepia": 0, "vignetting": 0.4, "vignettingAlpha": 1, "vignettingBlur": 0.3 }, "stringParameters": {}, "booleanParameters": {} } ] }, { "ambientLightColorB": 9191608, "ambientLightColorG": 6031360, "ambientLightColorR": 8756632, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "UI", "renderingType": "2d", "visibility": true, "cameras": [], "effects": [] }, { "ambientLightColorB": -2147483616, "ambientLightColorG": 6031360, "ambientLightColorR": 11020320, "camera3DFarPlaneDistance": 10000, "camera3DFieldOfView": 45, "camera3DNearPlaneDistance": 0.1, "followBaseLayerCamera": false, "isLightingLayer": false, "isLocked": false, "name": "EndScreen", "renderingType": "2d", "visibility": false, "cameras": [], "effects": [] } ], "behaviorsSharedData": [ { "name": "AdvancedProjectile", "type": "AdvancedProjectile::AdvancedProjectile" }, { "name": "Animation", "type": "AnimatableCapability::AnimatableBehavior" }, { "name": "Effect", "type": "EffectCapability::EffectBehavior" }, { "name": "EllipseMovement", "type": "EllipseMovement::EllipseMovement" }, { "name": "Flippable", "type": "FlippableCapability::FlippableBehavior" }, { "name": "InOnScreen", "type": "IsOnScreen::InOnScreen" }, { "name": "MonsterEnemy", "type": "Enemy::MonsterEnemy" }, { "name": "Opacity", "type": "OpacityCapability::OpacityBehavior" }, { "name": "Platform", "type": "PlatformBehavior::PlatformBehavior" }, { "name": "PlatformerCharacterAnimator", "type": "PlatformerCharacterAnimator::PlatformerCharacterAnimator" }, { "name": "PlatformerGamepadMapper", "type": "Gamepads::PlatformerGamepadMapper" }, { "name": "PlatformerMultitouchMapper", "type": "MultitouchJoystick::PlatformerMultitouchMapper" }, { "name": "PlatformerObject", "type": "PlatformBehavior::PlatformerObjectBehavior" }, { "name": "RectangleMovement", "type": "RectangleMovement::RectangleMovement" }, { "name": "Resizable", "type": "ResizableCapability::ResizableBehavior" }, { "name": "Scale", "type": "ScalableCapability::ScalableBehavior" }, { "name": "ShakeObject_PositionAngle", "type": "ShakeObject::ShakeObject_PositionAngle" }, { "name": "ShakeObject_PositionAngleScale", "type": "ShakeObject::ShakeObject_PositionAngleScale" }, { "name": "SmoothCamera", "type": "SmoothCamera::SmoothCamera" }, { "name": "Text", "type": "TextContainerCapability::TextContainerBehavior" }, { "name": "TimedBackAndForthMirroredMovement", "type": "TimedBackAndForthMovement::TimedBackAndForthMirroredMovement" }, { "name": "Tween", "type": "Tween::TweenBehavior" } ] } ], "externalEvents": [ { "associatedLayout": "TestingLevel", "lastChangeTimeStamp": 0, "name": "LevelEvents", "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "SceneTemplate", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "colorB": 224, "colorG": 16, "colorR": 189, "creationTime": 0, "name": "Player", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "folded": true, "name": "Keyboard Player Controls", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "WASD Keybinds" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "KeyPressed" }, "parameters": [ "", "w" ] }, { "type": { "value": "KeyPressed" }, "parameters": [ "", "Up" ] } ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateControl" }, "parameters": [ "Player", "PlatformerObject", "\"Up\"" ] }, { "type": { "value": "PlatformBehavior::SimulateControl" }, "parameters": [ "Player", "PlatformerObject", "\"Ladder\"" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "KeyPressed" }, "parameters": [ "", "a" ] }, { "type": { "value": "KeyPressed" }, "parameters": [ "", "Left" ] } ] }, { "type": { "value": "PosX" }, "parameters": [ "Player", ">=", "0" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateControl" }, "parameters": [ "Player", "PlatformerObject", "\"Left\"" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "KeyPressed" }, "parameters": [ "", "d" ] }, { "type": { "value": "KeyPressed" }, "parameters": [ "", "Right" ] } ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateControl" }, "parameters": [ "Player", "PlatformerObject", "\"Right\"" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "KeyPressed" }, "parameters": [ "", "Space" ] }, { "type": { "value": "KeyPressed" }, "parameters": [ "", "Up" ] } ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateControl" }, "parameters": [ "Player", "PlatformerObject", "\"Jump\"" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "KeyPressed" }, "parameters": [ "", "s" ] }, { "type": { "value": "KeyPressed" }, "parameters": [ "", "Down" ] } ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateControl" }, "parameters": [ "Player", "PlatformerObject", "\"Down\"" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "KeyPressed" }, "parameters": [ "", "LShift" ] }, { "type": { "value": "KeyPressed" }, "parameters": [ "", "RShift" ] } ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "Player::HealPlayer" }, "parameters": [ "", "Player", "" ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "folded": true, "name": "Checkpoints", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Save the position of the player at the beginning of the scene as the first checkpoint" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "Checkpoints::SaveCheckpoint" }, "parameters": [ "", "Player", "Player.X()", "Player.Y()", "\"Checkpoint\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "If the player Collides With the checkpoint object and it is not active this will trigger" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CollisionNP" }, "parameters": [ "Player", "Checkpoint", "", "", "" ] }, { "type": { "inverted": true, "value": "AnimationName" }, "parameters": [ "Checkpoint", "\"Activate\"" ] } ], "actions": [ { "type": { "value": "PlaySound" }, "parameters": [ "", "Assets/Sounds/Checkpoint/Activate.wav", "", "GlobalVariable(Volume_SFX)", "" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Activate the checkpoint that the player is touching" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "Checkpoints::SaveCheckpoint" }, "parameters": [ "", "Player", "Checkpoint.X()", "Checkpoint.Y()", "\"Checkpoint\"", "" ] }, { "type": { "value": "AnimatableCapability::AnimatableBehavior::SetName" }, "parameters": [ "Checkpoint", "Animation", "=", "\"Activate\"" ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Player Death", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Detect player falling below the screen" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PosY" }, "parameters": [ "Player", ">", "CameraBorderBottom(\"\")" ] } ], "actions": [ { "type": { "value": "Player::TriggerDeath" }, "parameters": [ "", "Player", "" ] } ] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "folded": true, "name": "Handle Player Collision With PlayerKillers", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CollisionNP" }, "parameters": [ "Player", "PlayerKillers", "", "", "" ] } ], "actions": [ { "type": { "value": "Player::CollideWithEnemy" }, "parameters": [ "", "Player", "PlatformerObject", "PlayerKillers", "" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "PlayerKillers", "IsKillable", "True" ] }, { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "PlayerKillers", "IsDead", "True" ] } ], "actions": [ { "type": { "value": "Create" }, "parameters": [ "", "BloodParticles", "PlayerKillers.X() + PlayerKillers.Width()/2", "PlayerKillers.Y() + PlayerKillers.Height()/2", "\"Base Layer\"" ] }, { "type": { "value": "MettreXY" }, "parameters": [ "PlayerKillers", "=", "0", "=", "4000" ] }, { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "PlayerKillers", "HasBeenReaped", "True" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::CompareStrings" }, "parameters": [ "PlayerKillers.ObjectName()", "=", "\"TurretDemon_Base\"" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Make turret demon base death also kill its eye (don't know how to do parent/child objects right hopefully this works)" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PickNearest" }, "parameters": [ "TurretDemon_Eye", "PlayerKillers.Variable(OldPosition_X)", "PlayerKillers.Variable(OldPosition_Y)", "" ] } ], "actions": [ { "type": { "value": "MettreXY" }, "parameters": [ "TurretDemon_Eye", "=", "0", "=", "4000" ] } ] } ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Reset Enemies and Platforms On Player Death", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Constantly check if killable enemies and moving platforms need resetting (checkpoint hit) and if yes, reset positions (+ animations) + projectiles + timers if any, making sure everything is still perfectly synced as if start of level" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "Player", "NeedsEnemiesReset", "True" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [], "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "folded": true, "name": "Reset Platforms", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ResetTimer" }, "parameters": [ "", "\"PlatformFlip\"" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ResetTimer" }, "parameters": [ "", "\"PlatformFlip2\"" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AjoutObjConcern" }, "parameters": [ "", "MovingPlatforms" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::JsCode", "inlineCode": [ "for (var i = 0; i < objects.length; i++) {", " const CurrPlatform = objects[i];", " const CurrPlatformVariables = CurrPlatform.getVariables();", " const NewPlatform = runtimeScene.createObject(CurrPlatform.getName());", " const NewPlatformVariables = NewPlatform.getVariables();", "", " NewPlatform.setWidth(CurrPlatform.getWidth());", " NewPlatform.setHeight(CurrPlatform.getHeight());", " NewPlatform.setVariableNumber(NewPlatformVariables.get(\"OldPosition_X\"), CurrPlatformVariables.get(\"OldPosition_X\").getAsNumber());", " NewPlatform.setVariableNumber(NewPlatformVariables.get(\"OldPosition_Y\"), CurrPlatformVariables.get(\"OldPosition_Y\").getAsNumber());", " NewPlatform.setVariableNumber(NewPlatformVariables.get(\"OldAngle\"), CurrPlatformVariables.get(\"OldAngle\").getAsNumber());", " NewPlatform.setPosition(NewPlatformVariables.get(\"OldPosition_X\").getAsNumber(), NewPlatformVariables.get(\"OldPosition_Y\").getAsNumber());", " NewPlatform.setAngle(NewPlatformVariables.get(\"OldAngle\").getAsNumber());", "", " CurrPlatform.deleteFromScene(CurrPlatform.getInstanceContainer());", "}" ], "parameterObjects": "MovingPlatforms", "useStrict": true, "eventsSheetExpanded": false } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "folded": true, "name": "Reset Enemies", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AjoutObjConcern" }, "parameters": [ "", "Enemies" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::JsCode", "inlineCode": [ "for (var i = 0; i < objects.length; i++) {", " // this check doesn't work with native GDevelop event conditions since objects[] seems to behave weirdly if you use it with pick all", " // and doesn't only pick one enemy at a time? Hence if we use conditions to check name = \"FireDemon\" this code will run for all enemies", " // after just a singular true with an actual fire demon", " if (objects[i].getVariables().get(\"IsKillable\").getAsBoolean() || objects[i].getName() == \"FireDemon\") {", " const CurrEnemy = objects[i];", " const CurrEnemyVariables = CurrEnemy.getVariables();", " const NewEnemy = runtimeScene.createObject(CurrEnemy.getName());", " const NewEnemyVariables = NewEnemy.getVariables();", "", " NewEnemy.setWidth(CurrEnemy.getWidth());", " NewEnemy.setHeight(CurrEnemy.getHeight());", " NewEnemy.setVariableNumber(NewEnemyVariables.get(\"OldPosition_X\"), CurrEnemyVariables.get(\"OldPosition_X\").getAsNumber());", " NewEnemy.setVariableNumber(NewEnemyVariables.get(\"OldPosition_Y\"), CurrEnemyVariables.get(\"OldPosition_Y\").getAsNumber());", " NewEnemy.setVariableNumber(NewEnemyVariables.get(\"OldAngle\"), CurrEnemyVariables.get(\"OldAngle\").getAsNumber());", " NewEnemy.setVariableBoolean(NewEnemyVariables.get(\"HasBeenReaped\"), CurrEnemyVariables.get(\"HasBeenReaped\").getAsBoolean());", "", " // copy over changeable instance variables, as these changes are not \"default\" except at the beginning of scene", " // (uses object-wide default variable values when creating new object)", " if (NewEnemyVariables.has(\"FireFrequencyTime\")) { // this sure is a way to check instanceof ShootingEnemies", " NewEnemy.setVariableNumber(NewEnemyVariables.get(\"FireFrequencyTime\"), CurrEnemyVariables.get(\"FireFrequencyTime\").getAsNumber());", " NewEnemy.setVariableNumber(NewEnemyVariables.get(\"FireOffsetTime\"), CurrEnemyVariables.get(\"FireOffsetTime\").getAsNumber());", " NewEnemy.setVariableBoolean(NewEnemyVariables.get(\"CanShootOffscreen\"), CurrEnemyVariables.get(\"CanShootOffscreen\").getAsBoolean());", " // GDEVELOP SUCKS", " if (NewEnemyVariables.has(\"FixedAngle\")) {", " NewEnemy.setVariableBoolean(NewEnemyVariables.get(\"FixedAngle\"), CurrEnemyVariables.get(\"FixedAngle\").getAsBoolean());", " }", " if (NewEnemyVariables.has(\"ProjectileLifetime\")) {", " NewEnemy.setVariableNumber(NewEnemyVariables.get(\"ProjectileLifetime\"), CurrEnemyVariables.get(\"ProjectileLifetime\").getAsNumber());", " }", " if (NewEnemyVariables.has(\"ShockwavePower\")) {", " NewEnemy.setVariableNumber(NewEnemyVariables.get(\"ShockwavePower\"), CurrEnemyVariables.get(\"ShockwavePower\").getAsNumber());", " }", " if (NewEnemyVariables.has(\"MiteMaxSpeed\")) {", " NewEnemy.setVariableNumber(NewEnemyVariables.get(\"MiteMaxSpeed\"), CurrEnemyVariables.get(\"MiteMaxSpeed\").getAsNumber());", " }", " }", " ", " NewEnemy.setPosition(NewEnemyVariables.get(\"OldPosition_X\").getAsNumber(), NewEnemyVariables.get(\"OldPosition_Y\").getAsNumber());", " NewEnemy.setAngle(NewEnemyVariables.get(\"OldAngle\").getAsNumber());", "", " CurrEnemy.deleteFromScene(CurrEnemy.getInstanceContainer());", " }", "}" ], "parameterObjects": "Enemies", "useStrict": true, "eventsSheetExpanded": false } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AjoutObjConcern" }, "parameters": [ "", "ShootingEnemies" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "ShootingEnemies", "NeedsOffsetReset", "True" ] }, { "type": { "value": "ResetObjectTimer" }, "parameters": [ "ShootingEnemies", "\"FireTimer\"" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "Tween::StopTween" }, "parameters": [ "ShootingEnemies", "Tween", "\"ChargeUp\"", "" ] }, { "type": { "value": "Tween::StopTween" }, "parameters": [ "ShootingEnemies", "Tween", "\"ChargeDown\"", "" ] }, { "type": { "value": "OpacityCapability::OpacityBehavior::SetValue" }, "parameters": [ "ShootingEnemies", "Opacity", "=", "60" ] }, { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "ShootingEnemies", "CurrentlyChargingUp", "False" ] } ] } ] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Reset Laser Demon", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "LaserDemon_Base", "CurrentlyChargingOrHasChargedUp", "False" ] }, { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "LaserDemon_Base", "CurrentlyChargingOrHasChargedDown", "False" ] }, { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "LaserDemon_Base", "NeedsOffsetReset", "True" ] }, { "type": { "value": "ResetObjectTimer" }, "parameters": [ "LaserDemon_Base", "\"FireTimer\"" ] }, { "type": { "value": "Tween::StopTween" }, "parameters": [ "LaserDemon_Base", "Tween", "\"ChargeUp\"", "" ] }, { "type": { "value": "Tween::StopTween" }, "parameters": [ "LaserDemon_Base", "Tween", "\"ChargeDown\"", "" ] }, { "type": { "value": "OpacityCapability::OpacityBehavior::SetValue" }, "parameters": [ "LaserDemon_Base", "Opacity", "=", "50" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "LaserDemon_Base", "FireOffsetTime", "=", "0" ] } ], "actions": [ { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "LaserDemon_Base", "NeedsOffsetReset", "False" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "LaserDemon_Base", "FireOffsetTime", "!=", "0" ] } ], "actions": [ { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "LaserDemon_Base", "NeedsOffsetReset", "True" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AjoutObjConcern" }, "parameters": [ "", "LaserBeams" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "LaserBeams", "CurrentlyChargingOrHasChargedUp", "False" ] }, { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "LaserBeams", "CurrentlyChargingOrHasChargedDown", "False" ] }, { "type": { "value": "ResetObjectTimer" }, "parameters": [ "LaserBeams", "\"FireTimer\"" ] }, { "type": { "value": "Tween::StopTween" }, "parameters": [ "LaserBeams", "Tween", "\"ChargeUp\"", "" ] }, { "type": { "value": "Tween::StopTween" }, "parameters": [ "LaserBeams", "Tween", "\"ChargeDown\"", "" ] }, { "type": { "value": "MettreXY" }, "parameters": [ "LaserBeams", "=", "0", "=", "4000" ] } ] } ] } ], "parameters": [] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Reset Projectiles", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AjoutObjConcern" }, "parameters": [ "", "Projectiles" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "Delete" }, "parameters": [ "Projectiles", "" ] } ] } ] } ], "parameters": [] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "Player", "NeedsEnemiesReset", "" ] } ] } ] } ], "parameters": [] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Sound and Visual Effects", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "folded": true, "name": "Heart Sound Logic", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "PlaySoundCanal" }, "parameters": [ "", "AssetDev/Audio/Heartbeat_Amplified.wav", "2", "yes", "100", "1" ] }, { "type": { "value": "ModVolumeSoundCanal" }, "parameters": [ "", "2", "=", "0" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Player", "Lives", "=", "1" ] } ], "actions": [ { "type": { "value": "ModVolumeSoundCanal" }, "parameters": [ "", "2", "=", "60" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SoundCanalVolume" }, "parameters": [ "", "2", ">", "0" ] }, { "type": { "value": "VarObjet" }, "parameters": [ "Player", "Lives", ">", "1" ] } ], "actions": [ { "type": { "value": "ModVolumeSoundCanal" }, "parameters": [ "", "2", "=", "0" ] } ] } ], "parameters": [] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::IsJumping" }, "parameters": [ "Player", "PlatformerObject" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Player::IsSteppingOnFloor" }, "parameters": [ "", "Player", "PlatformerObject", "" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "PlaySoundCanal" }, "parameters": [ "", "assets/audio/grass.mp3", "1", "", "20", "RandomFloatInRange(0.7, 1.2)" ] }, { "type": { "value": "Create" }, "parameters": [ "", "DustParticle", "Player.BoundingBoxCenterX()", "Player.BoundingBoxBottom()", "" ] }, { "type": { "value": "ChangePlan" }, "parameters": [ "DustParticle", "=", "-1" ] }, { "type": { "value": "SetAngle" }, "parameters": [ "DustParticle", "=", "270" ] } ] } ], "parameters": [] } ], "parameters": [] }, { "colorB": 224, "colorG": 16, "colorR": 189, "creationTime": 0, "name": "Enemies", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Set Positions for Killable Enemies and Moving Platforms To Reset To", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Executing actions on each object in a group do need a pick all" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AjoutObjConcern" }, "parameters": [ "", "Enemies" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "Enemies", "IsKillable", "True" ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Enemies", "OldPosition_X", "=", "Enemies.X()" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Enemies", "OldPosition_Y", "=", "Enemies.Y()" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Enemies", "OldAngle", "=", "Enemies.Angle()" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AjoutObjConcern" }, "parameters": [ "", "MovingPlatforms" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "MovingPlatforms", "OldPosition_X", "=", "MovingPlatforms.X()" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "MovingPlatforms", "OldPosition_Y", "=", "MovingPlatforms.Y()" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "MovingPlatforms", "OldAngle", "=", "MovingPlatforms.Angle()" ] } ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "folded": true, "name": "Shoot Projectiles for ShootingEnemies", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "ResetObjectTimer" }, "parameters": [ "ShootingEnemies", "\"FireTimer\"" ] }, { "type": { "value": "OpacityCapability::OpacityBehavior::SetValue" }, "parameters": [ "ShootingEnemies", "Opacity", "=", "100" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Precondition: FireFrequencyTime >= 1 sec" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AjoutObjConcern" }, "parameters": [ "", "ShootingEnemies" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Reset timer if offset reached" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "ShootingEnemies", "NeedsOffsetReset", "True" ] }, { "type": { "value": "CompareObjectTimer" }, "parameters": [ "ShootingEnemies", "\"FireTimer\"", ">=", "ShootingEnemies.Variable(FireOffsetTime)" ] } ], "actions": [ { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "ShootingEnemies", "NeedsOffsetReset", "False" ] }, { "type": { "value": "ResetObjectTimer" }, "parameters": [ "ShootingEnemies", "\"FireTimer\"" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Charging up animation (glow) 1 sec before shooting" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "ShootingEnemies", "CurrentlyChargingUp", "" ] }, { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "ShootingEnemies", "NeedsOffsetReset", "" ] }, { "type": { "value": "CompareObjectTimer" }, "parameters": [ "ShootingEnemies", "\"FireTimer\"", ">=", "ShootingEnemies.Variable(FireFrequencyTime) - 1" ] } ], "actions": [ { "type": { "value": "Tween::TweenBehavior::AddObjectOpacityTween2" }, "parameters": [ "ShootingEnemies", "Tween", "\"ChargeUp\"", "255", "\"linear\"", "1", "" ] }, { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "ShootingEnemies", "CurrentlyChargingUp", "True" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Shoot and charge down glow over 0.3 seconds" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "ShootingEnemies", "NeedsOffsetReset", "" ] }, { "type": { "value": "CompareObjectTimer" }, "parameters": [ "ShootingEnemies", "\"FireTimer\"", ">=", "ShootingEnemies.Variable(FireFrequencyTime)" ] } ], "actions": [ { "type": { "value": "Tween::TweenBehavior::AddObjectOpacityTween2" }, "parameters": [ "ShootingEnemies", "Tween", "\"ChargeDown\"", "100", "\"easeOutQuad\"", "0.3", "" ] }, { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "ShootingEnemies", "CurrentlyChargingUp", "False" ] }, { "type": { "value": "ResetObjectTimer" }, "parameters": [ "ShootingEnemies", "\"FireTimer\"" ] } ], "events": [ { "folded": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "IsOnScreen::InOnScreen::IsOnScreen" }, "parameters": [ "ShootingEnemies", "InOnScreen", "0", "" ] }, { "type": { "value": "BuiltinCommonInstructions::And" }, "parameters": [], "subInstructions": [ { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "ShootingEnemies", "CanShootOffscreen", "True" ] }, { "type": { "value": "Distance" }, "parameters": [ "ShootingEnemies", "Player", "4000", "" ] } ] } ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::JsCode", "inlineCode": [ "function ShootSpikeDemon(SpikeDemonBase) {", " const NumSpikes = 6;", " const SpikeScale = 64;", " const SpikeDemonBaseAngle = SpikeDemonBase.getAngle();", "", " for (var i = 0; i < NumSpikes; i++) {", " var SpikeAngle = (360/NumSpikes)*i + SpikeDemonBaseAngle;", "", " var Spike = runtimeScene.createObject(\"SpikeDemon_Spike\");", " Spike.setWidth(SpikeScale);", " Spike.setHeight(SpikeScale);", " // doesn't work without this print statement (gives time for renderer to update() maybe?)", " console.log(Spike.getX() + \"\\n\" + Spike.getY() + \"\\n\" + Spike.getWidth() + \"\\n\" + Spike.getHeight());", " Spike.setPosition(SpikeDemonBase.x + SpikeDemonBase.getWidth() / 3.6,", " SpikeDemonBase.y + SpikeDemonBase.getHeight() / 3.2);", " Spike.setAngle(SpikeAngle);", " ", " Spike.setLayer(\"Base Layer\");", " }", "}", "", "function ShootStalactiteDemon(StalactiteDemonBase) {", " const SpikeLength = 96;", "", " var Spike = runtimeScene.createObject(\"StalactiteDemon_Spike\");", " Spike.setWidth(SpikeLength);", " Spike.setHeight(SpikeLength / 2);", " // doesn't work without this print statement (gives time for renderer to update() maybe?)", " console.log(Spike.getX() + \"\\n\" + Spike.getY() + \"\\n\" + Spike.getWidth() + \"\\n\" + Spike.getHeight());", " Spike.setPosition(StalactiteDemonBase.x + StalactiteDemonBase.getWidth() / 3,", " StalactiteDemonBase.y + StalactiteDemonBase.getHeight() - StalactiteDemonBase.getHeight() / 3);", " Spike.setAngle(90);", "", " Spike.setLayer(\"Base Layer\");", "}", "", "function ShootStalagmiteDemon(StalagmiteDemonBase) {", " const SpikeLength = 96;", " ", " var Spike = runtimeScene.createObject(\"StalagmiteDemon_Spike\");", " Spike.setWidth(SpikeLength);", " Spike.setHeight(SpikeLength / 2);", " // doesn't work without this print statement (gives time for renderer to update() maybe?)", " console.log(Spike.getX() + \"\\n\" + Spike.getY() + \"\\n\" + Spike.getWidth() + \"\\n\" + Spike.getHeight());", " Spike.setPosition(StalagmiteDemonBase.x + StalagmiteDemonBase.getWidth() / 3,", " StalagmiteDemonBase.y);", " Spike.setAngle(270);", "", " Spike.setLayer(\"Base Layer\");", "}", "", "function ShootTurretDemon(TurretDemonEye) {", " const SpikeScale = 64;", " const Player = runtimeScene.getObjects(\"Player\")[0];", "", " var Spike = runtimeScene.createObject(\"TurretDemon_Spike\");", " Spike.setWidth(SpikeScale);", " Spike.setHeight(SpikeScale);", " // doesn't work without this print statement (gives time for renderer to update() maybe?)", " console.log(Spike.getX() + \"\\n\" + Spike.getY() + \"\\n\" + Spike.getWidth() + \"\\n\" + Spike.getHeight());", " Spike.setPosition(TurretDemonEye.x + TurretDemonEye.getWidth() / 2.5, TurretDemonEye.y + TurretDemonEye.getHeight() / 2.5);", " // point initially towards player; have to do calcs since rotateTowardsPosition with immediate rotation seems to not work", " Spike.setAngle(Math.atan((Spike.getCenterX() - Player.getCenterX()) / (Spike.getCenterY - Player.getCenterY())));", " ", " Spike.getVariables().get(\"Lifetime\").setNumber(TurretDemonEye.getVariables().get(\"ProjectileLifetime\").getAsNumber());", " Spike.resetTimer(\"TimeAlive\");", "", " Spike.setLayer(\"Base Layer\");", "}", "", "function ShootShockwaveDemon(ShockwaveDemonBase) {", " const ShockwaveScale = 384;", " const Player = runtimeScene.getObjects(\"Player\")[0];", " const ShockwaveDemonBaseVariables = ShockwaveDemonBase.getVariables();", " const ShockwavePower = ShockwaveDemonBaseVariables.get(\"ShockwavePower\").getAsNumber();", "", " var Shockwave = runtimeScene.createObject(\"ShockwaveDemon_Shockwave\");", " Shockwave.setWidth(ShockwaveScale);", " Shockwave.setHeight(ShockwaveScale);", " // doesn't work without this print statement (gives time for renderer to update() maybe?)", " console.log(Shockwave.getX() + \"\\n\" + Shockwave.getY() + \"\\n\" + Shockwave.getWidth() + \"\\n\" + Shockwave.getHeight());", " Shockwave.setPosition(ShockwaveDemonBase.x - ShockwaveDemonBase.getWidth() / 2,", " ShockwaveDemonBase.y - ShockwaveDemonBase.getHeight() / 2);", "", " if (ShockwaveDemonBaseVariables.get(\"FixedAngle\").getAsBoolean()) {", " var AngleToShoot = ShockwaveDemonBase.getAngle() + 90;", " Shockwave.setAngle(180 + AngleToShoot);", " Shockwave.addForceTowardPosition(ShockwaveDemonBase.getX() + 10000 * Math.cos(AngleToShoot * Math.PI / 180),", " ShockwaveDemonBase.getY() + 10000 * Math.sin(AngleToShoot * Math.PI / 180), ShockwavePower, 1);", " } else {", " Shockwave.setAngle(180 + Shockwave.getAngleToObject(Player));", " Shockwave.addForceTowardPosition(Player.getX() + Player.getWidth() / 2, Player.getY() + Player.getHeight() / 2,", " ShockwavePower, 1);", " }", " ", " Shockwave.getVariables().get(\"Lifetime\").setNumber(ShockwaveDemonBaseVariables.get(\"ProjectileLifetime\").getAsNumber());", " Shockwave.getVariables().get(\"Power\").setNumber(ShockwaveDemonBaseVariables.get(\"ShockwavePower\").getAsNumber());", " Shockwave.resetTimer(\"TimeAlive\");", "", " Shockwave.setLayer(\"Base Layer\");", "}", "", "function ShootMiteDemon(MiteDemonBase) {", " const MiteSize = 128;", " const Player = runtimeScene.getObjects(\"Player\")[0];", " const MiteDemonBaseVariables = MiteDemonBase.getVariables();", "", " var Mite = runtimeScene.createObject(\"MiteDemon_Mite\");", " Mite.setWidth(MiteSize);", " Mite.setHeight(MiteSize);", " // doesn't work without this print statement (gives time for renderer to update() maybe?)", " console.log(Mite.getX() + \"\\n\" + Mite.getY() + \"\\n\" + Mite.getWidth() + \"\\n\" + Mite.getHeight());", " Mite.setPosition(MiteDemonBase.x + MiteDemonBase.getWidth() / 4,", " MiteDemonBase.y + MiteDemonBase.getHeight() / 3);", "", " if (Mite.getCenterX() < Player.getX()) {", " Mite.setAngle(0);", " } else {", " Mite.setAngle(180);", " }", "", " Mite.getVariables().get(\"Lifetime\").setNumber(MiteDemonBaseVariables.get(\"ProjectileLifetime\").getAsNumber());", " Mite.getVariables().get(\"MaxSpeed\").setNumber(MiteDemonBaseVariables.get(\"MiteMaxSpeed\").getAsNumber());", " Mite.resetTimer(\"TimeAlive\");", "", " Mite.setLayer(\"Base Layer\");", "}", "", "for (var x = 0; x < objects.length; x++) {", " // \"Polymorphism\"", " const ShootingEnemy = objects[x];", " const ShootingEnemyName = ShootingEnemy.getName();", " console.log(ShootingEnemyName)", "", " if (ShootingEnemyName === \"SpikeDemon_Base\") {", " ShootSpikeDemon(ShootingEnemy);", " } else if (ShootingEnemyName === \"StalactiteDemon_Base\") {", " ShootStalactiteDemon(ShootingEnemy);", " } else if (ShootingEnemyName === \"StalagmiteDemon_Base\") {", " ShootStalagmiteDemon(ShootingEnemy);", " } else if (ShootingEnemyName === \"TurretDemon_Eye\") {", " ShootTurretDemon(ShootingEnemy);", " } else if (ShootingEnemyName === \"ShockwaveDemon_Base\") {", " ShootShockwaveDemon(ShootingEnemy);", " } else if (ShootingEnemyName === \"MiteDemon_Base\") {", " ShootMiteDemon(ShootingEnemy);", " }", "}", "" ], "parameterObjects": "ShootingEnemies", "useStrict": true, "eventsSheetExpanded": true } ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Kill Projectiles on Collision With ProjectileKillers", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Collisions aren't even happy with a pick all and apparently need a for each" }, { "type": "BuiltinCommonInstructions::ForEach", "object": "ProjectilesThatDieToProjectileKillers", "conditions": [], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CollisionNP" }, "parameters": [ "ProjectilesThatDieToProjectileKillers", "ProjectileKillers", "", "", "" ] } ], "actions": [ { "type": { "value": "Create" }, "parameters": [ "", "ProjectileDeathParticles", "ProjectilesThatDieToProjectileKillers.X() + ProjectilesThatDieToProjectileKillers.Width() / 2", "ProjectilesThatDieToProjectileKillers.Y() + ProjectilesThatDieToProjectileKillers.Height() / 2", "\"Base Layer\"" ] }, { "type": { "value": "Delete" }, "parameters": [ "ProjectilesThatDieToProjectileKillers", "" ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "folded": true, "name": "Control Projectile Despawning for ProjectilesThatDespawnOnLifetime", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AjoutObjConcern" }, "parameters": [ "", "ProjectilesThatDespawnOnLifetime" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Starting the timer is still left to the base ShootingEnemy since not all of them have manually-lifetimed projectiles and I don't see a clean way to group those into another object group and do a \"belongs to group\" check in ShootingEnemies' Shoot() code (like instanceof in Java or something)" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CompareObjectTimer" }, "parameters": [ "ProjectilesThatDespawnOnLifetime", "\"TimeAlive\"", ">=", "ProjectilesThatDespawnOnLifetime.Variable(Lifetime)" ] } ], "actions": [ { "type": { "value": "Create" }, "parameters": [ "", "BloodParticles", "ProjectilesThatDespawnOnLifetime.X() + ProjectilesThatDespawnOnLifetime.Width() / 2", "ProjectilesThatDespawnOnLifetime.Y() + ProjectilesThatDespawnOnLifetime.Height() / 2", "" ] }, { "type": { "value": "Delete" }, "parameters": [ "ProjectilesThatDespawnOnLifetime", "" ] } ] } ] } ], "parameters": [] }, { "colorB": 224, "colorG": 16, "colorR": 189, "creationTime": 0, "name": "Flying Demon", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [], "parameters": [] }, { "colorB": 224, "colorG": 16, "colorR": 189, "creationTime": 0, "folded": true, "name": "Fire Demon", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AnimatableCapability::AnimatableBehavior::Name" }, "parameters": [ "FireDemon", "Animation", "=", "\"Fire\"" ] }, { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "FireDemon", "IsKillable", "True" ] } ], "actions": [ { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "FireDemon", "IsKillable", "False" ] }, { "type": { "value": "EffectCapability::EffectBehavior::EnableEffect" }, "parameters": [ "FireDemon", "Effect", "\"ChromaticAberration\"", "yes" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "AnimatableCapability::AnimatableBehavior::Name" }, "parameters": [ "FireDemon", "Animation", "=", "\"Fire\"" ] }, { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "FireDemon", "IsKillable", "False" ] } ], "actions": [ { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "FireDemon", "IsKillable", "True" ] }, { "type": { "value": "EffectCapability::EffectBehavior::EnableEffect" }, "parameters": [ "FireDemon", "Effect", "\"ChromaticAberration\"", "no" ] } ] } ], "parameters": [] }, { "colorB": 224, "colorG": 16, "colorR": 189, "creationTime": 0, "name": "Horizontal Demon", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [], "parameters": [] }, { "colorB": 224, "colorG": 16, "colorR": 189, "creationTime": 0, "name": "Spike Demon", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [], "parameters": [] }, { "colorB": 224, "colorG": 16, "colorR": 189, "creationTime": 0, "name": "Stalactite Demon", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [], "parameters": [] }, { "colorB": 224, "colorG": 16, "colorR": 189, "creationTime": 0, "name": "Stalagmite Demon", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [], "parameters": [] }, { "colorB": 224, "colorG": 16, "colorR": 189, "creationTime": 0, "folded": true, "name": "Laser Demon", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "LaserDemon_Beam", "OrgPosition_X", "=", "LaserDemon_Beam.X()" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "LaserDemon_Beam", "OrgPosition_Y", "=", "LaserDemon_Beam.Y()" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "LaserDemon_BeamSingle", "OrgPosition_X", "=", "LaserDemon_BeamSingle.X()" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "LaserDemon_BeamSingle", "OrgPosition_Y", "=", "LaserDemon_BeamSingle.Y()" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "LaserDemon_Base", "FireOffsetTime", "=", "0" ] } ], "actions": [ { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "LaserDemon_Base", "NeedsOffsetReset", "False" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Precondition: FireOffsetTimer <= OnOffTime >= 0.5 sec" }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Laser Base Timer", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "ResetObjectTimer" }, "parameters": [ "LaserDemon_Base", "\"FireTimer\"" ] }, { "type": { "value": "OpacityCapability::OpacityBehavior::SetValue" }, "parameters": [ "LaserDemon_Base", "Opacity", "=", "50" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Split into two conditions since if FireOffsetTimer < 1, we have to charge up at end of " }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "LaserDemon_Base", "FireOffsetTime", "<", "1" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Make sure if beam is supposed to come on almost immediately, we still play a short charging up animation" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "LaserDemon_Base", "CurrentlyChargingOrHasChargedUp", "" ] } ], "actions": [ { "type": { "value": "Tween::TweenBehavior::AddObjectOpacityTween2" }, "parameters": [ "LaserDemon_Base", "Tween", "\"ChargeUp\"", "255", "\"linear\"", "max(LaserDemon_Base.FireOffsetTime, 0.15)", "" ] }, { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "LaserDemon_Base", "CurrentlyChargingOrHasChargedUp", "True" ] }, { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "LaserDemon_Base", "CurrentlyChargingOrHasChargedDown", "False" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Charging down animation 0.5 sec before laser disappears" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "LaserDemon_Base", "CurrentlyChargingOrHasChargedDown", "" ] }, { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "LaserDemon_Base", "NeedsOffsetReset", "" ] }, { "type": { "value": "CompareObjectTimer" }, "parameters": [ "LaserDemon_Base", "\"FireTimer\"", ">=", "LaserDemon_Base.OnOffTime - 0.5" ] } ], "actions": [ { "type": { "value": "Tween::TweenBehavior::AddObjectOpacityTween2" }, "parameters": [ "LaserDemon_Base", "Tween", "\"ChargeDown\"", "50", "\"linear\"", "0.5", "" ] }, { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "LaserDemon_Base", "CurrentlyChargingOrHasChargedDown", "True" ] }, { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "LaserDemon_Base", "CurrentlyChargingOrHasChargedUp", "False" ] }, { "type": { "value": "TextContainerCapability::TextContainerBehavior::SetValue" }, "parameters": [ "Test", "Text", "=", "ToString(RandomFloat(1))" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Start charging up again before the end of the cycle if FireOffsetTime < 1" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "LaserDemon_Base", "CurrentlyChargingOrHasChargedDown", "True" ] }, { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "LaserDemon_Base", "CurrentlyChargingOrHasChargedUp", "False" ] }, { "type": { "value": "CompareObjectTimer" }, "parameters": [ "LaserDemon_Base", "\"FireTimer\"", ">=", "(2 * LaserDemon_Base.OnOffTime) - LaserDemon_Base.FireOffsetTime - (1 - LaserDemon_Base.FireOffsetTime)" ] } ], "actions": [ { "type": { "value": "Tween::TweenBehavior::AddObjectOpacityTween2" }, "parameters": [ "LaserDemon_Base", "Tween", "\"ChargeUp\"", "255", "\"linear\"", "1", "" ] }, { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "LaserDemon_Base", "CurrentlyChargingOrHasChargedUp", "True" ] }, { "type": { "value": "TextContainerCapability::TextContainerBehavior::SetValue" }, "parameters": [ "Test2", "Text", "=", "ToString(RandomFloat(1))" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "LaserDemon_Base", "FireOffsetTime", ">=", "1" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Charging up animation (glow) 1 sec before laser appears" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "LaserDemon_Base", "CurrentlyChargingOrHasChargedUp", "" ] }, { "type": { "value": "CompareObjectTimer" }, "parameters": [ "LaserDemon_Base", "\"FireTimer\"", ">=", "LaserDemon_Base.FireOffsetTime - 1" ] } ], "actions": [ { "type": { "value": "Tween::TweenBehavior::AddObjectOpacityTween2" }, "parameters": [ "LaserDemon_Base", "Tween", "\"ChargeUp\"", "255", "\"linear\"", "1", "" ] }, { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "LaserDemon_Base", "CurrentlyChargingOrHasChargedUp", "True" ] }, { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "LaserDemon_Base", "CurrentlyChargingOrHasChargedDown", "False" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Charging down animation 0.5 sec before laser disappears" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "LaserDemon_Base", "CurrentlyChargingOrHasChargedDown", "" ] }, { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "LaserDemon_Base", "NeedsOffsetReset", "" ] }, { "type": { "value": "CompareObjectTimer" }, "parameters": [ "LaserDemon_Base", "\"FireTimer\"", ">=", "LaserDemon_Base.OnOffTime - 0.5" ] } ], "actions": [ { "type": { "value": "Tween::TweenBehavior::AddObjectOpacityTween2" }, "parameters": [ "LaserDemon_Base", "Tween", "\"ChargeDown\"", "50", "\"linear\"", "0.5", "" ] }, { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "LaserDemon_Base", "CurrentlyChargingOrHasChargedDown", "True" ] }, { "type": { "value": "TextContainerCapability::TextContainerBehavior::SetValue" }, "parameters": [ "Test", "Text", "=", "ToString(RandomFloat(1))" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Reset timer if offset reached" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "LaserDemon_Base", "NeedsOffsetReset", "True" ] }, { "type": { "value": "CompareObjectTimer" }, "parameters": [ "LaserDemon_Base", "\"FireTimer\"", ">=", "LaserDemon_Base.FireOffsetTime" ] } ], "actions": [ { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "LaserDemon_Base", "NeedsOffsetReset", "False" ] }, { "type": { "value": "ResetObjectTimer" }, "parameters": [ "LaserDemon_Base", "\"FireTimer\"" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Reset timer when the full cycle of OnOffTime * 2 secs ends" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CompareObjectTimer" }, "parameters": [ "LaserDemon_Base", "\"FireTimer\"", ">=", "2 * LaserDemon_Base.OnOffTime - LaserDemon_Base.FireOffsetTime" ] } ], "actions": [ { "type": { "value": "ResetObjectTimer" }, "parameters": [ "LaserDemon_Base", "\"FireTimer\"" ] }, { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "LaserDemon_Base", "CurrentlyChargingOrHasChargedUp", "False" ] }, { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "LaserDemon_Base", "CurrentlyChargingOrHasChargedDown", "False" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "LaserDemon_Base", "FireOffsetTime", "!=", "0" ] } ], "actions": [ { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "LaserDemon_Base", "NeedsOffsetReset", "True" ] } ] } ] } ], "parameters": [] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Precondition: laser beam instance variables are the same as their respective bases'" }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "folded": true, "name": "Laser Beam Timer", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "ResetObjectTimer" }, "parameters": [ "LaserBeams", "\"FireTimer\"" ] }, { "type": { "value": "MettreXY" }, "parameters": [ "LaserBeams", "=", "0", "=", "4000" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AjoutObjConcern" }, "parameters": [ "", "LaserBeams" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Charging up animation for the first 0.15 secs of the laser being shown (after base has already fully charged up and \"activated\" the laser)" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "LaserBeams", "CurrentlyChargingOrHasChargedUp", "" ] }, { "type": { "value": "CompareObjectTimer" }, "parameters": [ "LaserBeams", "\"FireTimer\"", ">=", "LaserBeams.FireOffsetTime" ] } ], "actions": [ { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "LaserBeams", "CurrentlyChargingOrHasChargedUp", "True" ] }, { "type": { "value": "ResetObjectTimer" }, "parameters": [ "LaserBeams", "\"FireTimer\"" ] }, { "type": { "value": "OpacityCapability::OpacityBehavior::SetValue" }, "parameters": [ "LaserBeams", "Opacity", "=", "60" ] }, { "type": { "value": "MettreXY" }, "parameters": [ "LaserBeams", "=", "LaserBeams.OrgPosition_X", "=", "LaserBeams.OrgPosition_Y" ] }, { "type": { "value": "Tween::TweenBehavior::AddObjectOpacityTween2" }, "parameters": [ "LaserBeams", "Tween", "\"ChargeUp\"", "255", "\"linear\"", "0.15", "" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Charging down animation for the last 0.3 secs of the laser being shown (concurrently to the base changing down)" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "LaserBeams", "CurrentlyChargingOrHasChargedDown", "" ] }, { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "LaserBeams", "CurrentlyChargingOrHasChargedUp", "True" ] }, { "type": { "value": "CompareObjectTimer" }, "parameters": [ "LaserBeams", "\"FireTimer\"", ">=", "LaserBeams.OnOffTime - 0.3" ] } ], "actions": [ { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "LaserBeams", "CurrentlyChargingOrHasChargedDown", "True" ] }, { "type": { "value": "Tween::TweenBehavior::AddObjectOpacityTween2" }, "parameters": [ "LaserBeams", "Tween", "\"ChargeDown\"", "60", "\"linear\"", "0.3", "" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Move laser beam away to hide it" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "LaserBeams", "CurrentlyChargingOrHasChargedDown", "True" ] }, { "type": { "value": "PosY" }, "parameters": [ "LaserBeams", "!=", "6000" ] }, { "type": { "value": "CompareObjectTimer" }, "parameters": [ "LaserBeams", "\"FireTimer\"", ">=", "LaserBeams.OnOffTime" ] } ], "actions": [ { "type": { "value": "MettreXY" }, "parameters": [ "LaserBeams", "=", "0", "=", "4000" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Reset laser beam timer when the full cycle of OnOffTime * 2 secs ends" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "LaserBeams", "CurrentlyChargingOrHasChargedDown", "True" ] }, { "type": { "value": "CompareObjectTimer" }, "parameters": [ "LaserBeams", "\"FireTimer\"", ">=", "2 * LaserBeams.OnOffTime- LaserBeams.FireOffsetTime" ] } ], "actions": [ { "type": { "value": "ResetObjectTimer" }, "parameters": [ "LaserBeams", "\"FireTimer\"" ] }, { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "LaserBeams", "CurrentlyChargingOrHasChargedUp", "False" ] }, { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "LaserBeams", "CurrentlyChargingOrHasChargedDown", "False" ] } ] } ] } ], "parameters": [] } ], "parameters": [] }, { "colorB": 224, "colorG": 16, "colorR": 189, "creationTime": 0, "folded": true, "name": "Laser Demon Permanent", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "folded": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "ChangePlan" }, "parameters": [ "LaserRing", "=", "999" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Start of scene: reset everything, play very brief charging up animation for laser demon base, laser beam and laser ring" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "OpacityCapability::OpacityBehavior::SetValue" }, "parameters": [ "LaserDemon_BasePermanent", "Opacity", "=", "40" ] }, { "type": { "value": "Tween::TweenBehavior::AddObjectOpacityTween2" }, "parameters": [ "LaserDemon_BasePermanent", "Tween", "\"ChargeUp\"", "255", "\"easeInQuad\"", "0.15", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "EffectCapability::EffectBehavior::SetEffectDoubleParameter" }, "parameters": [ "LaserDemon_BeamPermanent", "Effect", "\"Bloom\"", "\"bloomScale\"", "0" ] }, { "type": { "value": "EffectCapability::EffectBehavior::SetEffectDoubleParameter" }, "parameters": [ "LaserDemon_BeamPermanent", "Effect", "\"Bloom\"", "\"brightness\"", "0.25" ] }, { "type": { "value": "Wait" }, "parameters": [ "0.05" ] }, { "type": { "value": "EffectCapability::EffectBehavior::SetEffectDoubleParameter" }, "parameters": [ "LaserDemon_BeamPermanent", "Effect", "\"Bloom\"", "\"brightness\"", "0.5" ] }, { "type": { "value": "Wait" }, "parameters": [ "0.05" ] }, { "type": { "value": "EffectCapability::EffectBehavior::SetEffectDoubleParameter" }, "parameters": [ "LaserDemon_BeamPermanent", "Effect", "\"Bloom\"", "\"bloomScale\"", "1" ] }, { "type": { "value": "Wait" }, "parameters": [ "0.05" ] }, { "type": { "value": "EffectCapability::EffectBehavior::SetEffectDoubleParameter" }, "parameters": [ "LaserDemon_BeamPermanent", "Effect", "\"Bloom\"", "\"bloomScale\"", "2" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "EffectCapability::EffectBehavior::SetEffectDoubleParameter" }, "parameters": [ "LaserDemon_BeamPermanentSingle", "Effect", "\"Bloom\"", "\"bloomScale\"", "0" ] }, { "type": { "value": "EffectCapability::EffectBehavior::SetEffectDoubleParameter" }, "parameters": [ "LaserDemon_BeamPermanentSingle", "Effect", "\"Bloom\"", "\"brightness\"", "0.25" ] }, { "type": { "value": "Wait" }, "parameters": [ "0.05" ] }, { "type": { "value": "EffectCapability::EffectBehavior::SetEffectDoubleParameter" }, "parameters": [ "LaserDemon_BeamPermanentSingle", "Effect", "\"Bloom\"", "\"brightness\"", "0.5" ] }, { "type": { "value": "Wait" }, "parameters": [ "0.05" ] }, { "type": { "value": "EffectCapability::EffectBehavior::SetEffectDoubleParameter" }, "parameters": [ "LaserDemon_BeamPermanentSingle", "Effect", "\"Bloom\"", "\"bloomScale\"", "1" ] }, { "type": { "value": "Wait" }, "parameters": [ "0.05" ] }, { "type": { "value": "EffectCapability::EffectBehavior::SetEffectDoubleParameter" }, "parameters": [ "LaserDemon_BeamPermanentSingle", "Effect", "\"Bloom\"", "\"bloomScale\"", "2" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "EffectCapability::EffectBehavior::SetEffectDoubleParameter" }, "parameters": [ "LaserRing", "Effect", "\"Bloom\"", "\"bloomScale\"", "0" ] }, { "type": { "value": "EffectCapability::EffectBehavior::SetEffectDoubleParameter" }, "parameters": [ "LaserRing", "Effect", "\"Bloom\"", "\"brightness\"", "0.25" ] }, { "type": { "value": "Wait" }, "parameters": [ "0.05" ] }, { "type": { "value": "EffectCapability::EffectBehavior::SetEffectDoubleParameter" }, "parameters": [ "LaserRing", "Effect", "\"Bloom\"", "\"brightness\"", "0.5" ] }, { "type": { "value": "Wait" }, "parameters": [ "0.05" ] }, { "type": { "value": "EffectCapability::EffectBehavior::SetEffectDoubleParameter" }, "parameters": [ "LaserRing", "Effect", "\"Bloom\"", "\"bloomScale\"", "1" ] }, { "type": { "value": "Wait" }, "parameters": [ "0.05" ] }, { "type": { "value": "EffectCapability::EffectBehavior::SetEffectDoubleParameter" }, "parameters": [ "LaserRing", "Effect", "\"Bloom\"", "\"bloomScale\"", "2" ] } ] } ] } ], "parameters": [] }, { "colorB": 224, "colorG": 16, "colorR": 189, "creationTime": 0, "folded": true, "name": "Turret Demon", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Spike Homing", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "AddForceVers" }, "parameters": [ "TurretDemon_Spike", "Player", "350", "0" ] }, { "type": { "value": "RotateTowardPosition" }, "parameters": [ "TurretDemon_Spike", "Player.CenterX()", "Player.CenterY()", "90", "" ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Eye Rotation Towards Player", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "RotateTowardPosition" }, "parameters": [ "TurretDemon_Eye", "Player.CenterX()", "Player.CenterY()", "0", "" ] } ] } ], "parameters": [] } ], "parameters": [] }, { "colorB": 224, "colorG": 16, "colorR": 189, "creationTime": 0, "name": "Shockwave Demon", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Player Collides With Shockwave Projectile", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CollisionNP" }, "parameters": [ "Player", "ShockwaveDemon_Shockwave", "", "", "" ] } ], "actions": [ { "type": { "value": "AddForceAL" }, "parameters": [ "Player", "180 + ShockwaveDemon_Shockwave.Angle()", "ShockwaveDemon_Shockwave.Variable(Power)", "" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::IsFalling" }, "parameters": [ "Player", "PlatformerObject" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::SetCurrentFallSpeed" }, "parameters": [ "Player", "PlatformerObject", "=", "Player.PlatformerObject::MaxFallingSpeed() / (ShockwaveDemon_Shockwave.Variable(Lifetime) * 50)" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Don't let players kill enemies while in shockwave since they are usually technically \"falling\" but just really slowly" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "Player", "IsInShockwave", "" ] } ], "actions": [ { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "Player", "IsInShockwave", "True" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Begin smooth camera catch-up speed increase if we just entered a shockwave, and make sure we aren't trying to do both at the same time by pausing the other timer (see next section below)" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "PauseObjectTimer" }, "parameters": [ "Player", "\"CameraDecreaseSpeed\"" ] }, { "type": { "value": "ResetObjectTimer" }, "parameters": [ "Player", "\"CameraIncreaseSpeed\"" ] }, { "type": { "value": "UnPauseObjectTimer" }, "parameters": [ "Player", "\"CameraIncreaseSpeed\"" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 133, "g": 76, "r": 76, "textB": 255, "textG": 255, "textR": 255 }, "comment": "Unrelated, but hijack this condition to also make it slower for players to hold D or something and leave a vertical shockwave (this doesn't need to be done gradually, fortunately)" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "PlatformBehavior::MaxSpeed" }, "parameters": [ "Player", "PlatformerObject", "=", "Player.PlatformerObject::MaxSpeed() / (ShockwaveDemon_Shockwave.Variable(Lifetime) * 3)" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "For the first 0.5 secs of entering a shockwave (coordinated by CameraIncreaseSpeed timer from above), increase smooth camera's catch-up speed to keep up with player while making sure normal gameplay is still on a slower catch-up speed that doesn't look jerky. However, we do have to gradually increase the catch-up speed because if we just jump from 0.9 to 1, the camera will jump to re-center to the player and will cause a massive jerk." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "ObjectTimerPaused" }, "parameters": [ "Player", "\"CameraIncreaseSpeed\"" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CompareObjectTimer" }, "parameters": [ "Player", "\"CameraIncreaseSpeed\"", "<=", "0.5" ] } ], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetLeftwardSpeed" }, "parameters": [ "Player", "SmoothCamera", "0.9 + Player.ObjectTimerElapsedTime(\"CameraIncreaseSpeed\") / 5", "" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetRightwardSpeed" }, "parameters": [ "Player", "SmoothCamera", "0.9 + Player.ObjectTimerElapsedTime(\"CameraIncreaseSpeed\") / 5", "" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetUpwardSpeed" }, "parameters": [ "Player", "SmoothCamera", "0.75 + Player.ObjectTimerElapsedTime(\"CameraIncreaseSpeed\") / 2", "" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetDownwardSpeed" }, "parameters": [ "Player", "SmoothCamera", "0.9 + Player.ObjectTimerElapsedTime(\"CameraIncreaseSpeed\") / 5", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CompareObjectTimer" }, "parameters": [ "Player", "\"CameraIncreaseSpeed\"", ">", "0.5" ] } ], "actions": [ { "type": { "value": "PauseObjectTimer" }, "parameters": [ "Player", "\"CameraIncreaseSpeed\"" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Shockwaves have difficulty picking up players/mites vertically from the ground so we have to simulate jump on initial hit by a vertically-moving shockwave" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "PlatformBehavior::IsFalling" }, "parameters": [ "Player", "PlatformerObject" ] }, { "type": { "value": "CollisionNP" }, "parameters": [ "Player", "Platforms", "", "", "" ] }, { "type": { "value": "BuiltinCommonInstructions::CompareNumbers" }, "parameters": [ "mod(ShockwaveDemon_Shockwave.Angle(), 360)", "=", "90" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateJumpKey" }, "parameters": [ "Player", "PlatformerObject" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "Player", "IsInShockwave", "True" ] }, { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "inverted": true, "value": "PosY" }, "parameters": [ "Player", ">", "CameraBorderTop() + 100" ] }, { "type": { "inverted": true, "value": "CollisionNP" }, "parameters": [ "Player", "ShockwaveDemon_Shockwave", "", "", "" ] } ] } ], "actions": [ { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "Player", "IsInShockwave", "False" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Similarly, begin smooth camera catch-up speed decrease if we just left a shockwave/hit scene' top boundary, and make sure we aren't trying to do both at the same time by pausing the other timer" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "PauseObjectTimer" }, "parameters": [ "Player", "\"CameraIncreaseSpeed\"" ] }, { "type": { "value": "ResetObjectTimer" }, "parameters": [ "Player", "\"CameraDecreaseSpeed\"" ] }, { "type": { "value": "UnPauseObjectTimer" }, "parameters": [ "Player", "\"CameraDecreaseSpeed\"" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 133, "g": 76, "r": 76, "textB": 255, "textG": 255, "textR": 255 }, "comment": "Again unrelated, but yes" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "PlatformBehavior::MaxSpeed" }, "parameters": [ "Player", "PlatformerObject", "=", "600" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Same gradual change with slowing the smooth-camera's catch-up speed after leaving a shockwave so normal gameplay doesn't look jerky; however we also wait for 0.5 seconds after last shockwave collision detected to start slowing down since for some reason GDevelop keeps rapidly flickering between \"colliding with shockwave\" and \"not colliding with shockwave\" and jerking the camera since it might've just started speeding up when we ask it to suddenly slow down from 1 then suddenly go back to speeding up from 0.9 etc., so catch-up speed goes like 0.91 -> 0.99 -> 0.91 constantly which is still jerky" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "ObjectTimerPaused" }, "parameters": [ "Player", "\"CameraDecreaseSpeed\"" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CompareObjectTimer" }, "parameters": [ "Player", "\"CameraDecreaseSpeed\"", ">", "0.5" ] }, { "type": { "value": "CompareObjectTimer" }, "parameters": [ "Player", "\"CameraDecreaseSpeed\"", "<=", "1" ] } ], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetLeftwardSpeed" }, "parameters": [ "Player", "SmoothCamera", "1 - (Player.ObjectTimerElapsedTime(\"CameraDecreaseSpeed\") - 0.5) / 5", "" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetRightwardSpeed" }, "parameters": [ "Player", "SmoothCamera", "1 - (Player.ObjectTimerElapsedTime(\"CameraDecreaseSpeed\") - 0.5) / 5", "" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetUpwardSpeed" }, "parameters": [ "Player", "SmoothCamera", "1 - (Player.ObjectTimerElapsedTime(\"CameraDecreaseSpeed\") - 0.5) / 2", "" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetDownwardSpeed" }, "parameters": [ "Player", "SmoothCamera", "1 - (Player.ObjectTimerElapsedTime(\"CameraDecreaseSpeed\") - 0.5) / 5", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CompareObjectTimer" }, "parameters": [ "Player", "\"CameraDecreaseSpeed\"", ">", "1" ] } ], "actions": [ { "type": { "value": "PauseObjectTimer" }, "parameters": [ "Player", "\"CameraDecreaseSpeed\"" ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Mite Collides With Shockwave Projectile", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CollisionNP" }, "parameters": [ "MiteDemon_Mite", "ShockwaveDemon_Shockwave", "", "", "" ] } ], "actions": [ { "type": { "value": "AddForceAL" }, "parameters": [ "MiteDemon_Mite", "180 + ShockwaveDemon_Shockwave.Angle()", "ShockwaveDemon_Shockwave.Variable(Power)", "" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::IsFalling" }, "parameters": [ "MiteDemon_Mite", "PlatformerObject" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::SetCurrentFallSpeed" }, "parameters": [ "MiteDemon_Mite", "PlatformerObject", "=", "MiteDemon_Mite.PlatformerObject::MaxFallingSpeed() / (ShockwaveDemon_Shockwave.Variable(LifeTimer) * 50)" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "PlatformBehavior::IsFalling" }, "parameters": [ "MiteDemon_Mite", "PlatformerObject" ] }, { "type": { "value": "CollisionNP" }, "parameters": [ "MiteDemon_Mite", "Platforms", "", "", "" ] }, { "type": { "value": "BuiltinCommonInstructions::CompareNumbers" }, "parameters": [ "mod(ShockwaveDemon_Shockwave.Angle(), 360)", "=", "90" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateJumpKey" }, "parameters": [ "MiteDemon_Mite", "PlatformerObject" ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Shockwave Expiration Timer", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CompareObjectTimer" }, "parameters": [ "ShockwaveDemon_Shockwave", "\"TimeAlive\"", ">=", "0" ] }, { "type": { "inverted": true, "value": "Tween::IsPlaying" }, "parameters": [ "ShockwaveDemon_Shockwave", "Tween", "\"Despawn\"" ] } ], "actions": [ { "type": { "value": "Tween::TweenBehavior::AddObjectOpacityTween2" }, "parameters": [ "ShockwaveDemon_Shockwave", "Tween", "\"Despawn\"", "0", "\"linear\"", "ShockwaveDemon_Shockwave.Variable(Lifetime)", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CompareObjectTimer" }, "parameters": [ "ShockwaveDemon_Shockwave", "\"TimeAlive\"", ">=", "ShockwaveDemon_Shockwave.Variable(Lifetime)" ] } ], "actions": [ { "type": { "value": "Delete" }, "parameters": [ "ShockwaveDemon_Shockwave", "" ] } ] } ], "parameters": [] } ], "parameters": [] }, { "colorB": 224, "colorG": 16, "colorR": 189, "creationTime": 0, "name": "Mite Demon", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "I don't know if there is a way to do this in the JS that controlls shooting projectiles/spawning mites so this is the rather sloppy solution" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::MaxSpeed" }, "parameters": [ "MiteDemon_Mite", "PlatformerObject", "!=", "MiteDemon_Mite.MaxSpeed" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::MaxSpeed" }, "parameters": [ "MiteDemon_Mite", "PlatformerObject", "=", "MiteDemon_Mite.MaxSpeed" ] }, { "type": { "value": "PlatformBehavior::LadderClimbingSpeed" }, "parameters": [ "MiteDemon_Mite", "PlatformerObject", "=", "MiteDemon_Mite.MaxSpeed" ] } ] }, { "type": "BuiltinCommonInstructions::ForEach", "object": "MiteDemon_Mite", "conditions": [], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CollisionNP" }, "parameters": [ "MiteDemon_Mite", "MiteKillers", "", "", "" ] } ], "actions": [ { "type": { "value": "Create" }, "parameters": [ "", "BloodParticles", "MiteDemon_Mite.X()+MiteDemon_Mite.Width()/2", "MiteDemon_Mite.Y()+MiteDemon_Mite.Height()/2", "" ] }, { "type": { "value": "Delete" }, "parameters": [ "MiteDemon_Mite", "" ] } ] } ] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Mite Movement", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "This comment is left as a reminder that I spent 3 hours debugging this only to find the hitbox for a specific platform was not right and happened to have a corner too sharp to climb." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "CollisionNP" }, "parameters": [ "MiteDemon_Mite", "Platforms", "", "", "" ] }, { "type": { "value": "CollisionNP" }, "parameters": [ "MiteDemon_Mite", "Ladder", "", "", "" ] } ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CenterX" }, "parameters": [ "MiteDemon_Mite", "<", "Player.CenterX()" ] } ], "actions": [ { "type": { "value": "SetAngle" }, "parameters": [ "MiteDemon_Mite", "=", "0" ] }, { "type": { "value": "PlatformBehavior::SimulateRightKey" }, "parameters": [ "MiteDemon_Mite", "PlatformerObject" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CenterX" }, "parameters": [ "MiteDemon_Mite", ">=", "Player.CenterX()" ] } ], "actions": [ { "type": { "value": "SetAngle" }, "parameters": [ "MiteDemon_Mite", "=", "180" ] }, { "type": { "value": "PlatformBehavior::SimulateLeftKey" }, "parameters": [ "MiteDemon_Mite", "PlatformerObject" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CollisionNP" }, "parameters": [ "MiteDemon_Mite", "Ladder", "", "", "" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CenterY" }, "parameters": [ "MiteDemon_Mite", "<=", "Player.CenterY()" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateDownKey" }, "parameters": [ "MiteDemon_Mite", "PlatformerObject" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CenterY" }, "parameters": [ "MiteDemon_Mite", ">", "Player.CenterY()" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateUpKey" }, "parameters": [ "MiteDemon_Mite", "PlatformerObject" ] }, { "type": { "value": "PlatformBehavior::SimulateLadderKey" }, "parameters": [ "MiteDemon_Mite", "PlatformerObject" ] } ] } ] } ], "parameters": [] } ], "parameters": [] } ], "parameters": [] }, { "colorB": 224, "colorG": 16, "colorR": 189, "creationTime": 0, "folded": true, "name": "Platforms", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "folded": true, "name": "Moving Platforms", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Set original position for resets & fix orientation issues if any/dynamically set orientation" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "Enemy::SetEarlyResetPosition" }, "parameters": [ "", "HorizontalMovingPlatformLeft", "" ] }, { "type": { "value": "Enemy::SetEarlyResetPosition" }, "parameters": [ "", "HorizontalMovingPlatformRight", "" ] }, { "type": { "value": "Enemy::SetEarlyResetPosition" }, "parameters": [ "", "VerticalMovingPlatformUp", "" ] }, { "type": { "value": "Enemy::SetEarlyResetPosition" }, "parameters": [ "", "VerticalMovingPlatformDown", "" ] }, { "type": { "value": "Enemy::SetEarlyResetPosition" }, "parameters": [ "", "SpinningPlatformClockwise", "" ] }, { "type": { "value": "Enemy::SetEarlyResetPosition" }, "parameters": [ "", "SpinningPlatformCounterclockwise", "" ] }, { "type": { "value": "Enemy::SetEarlyResetPosition" }, "parameters": [ "", "SpinningRotatingPlatformClockwise", "" ] }, { "type": { "value": "Enemy::SetEarlyResetPosition" }, "parameters": [ "", "SpinningRotatingPlatformCounterclockwise", "" ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "FlippingPlatform", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "ResetTimer" }, "parameters": [ "", "\"PlatformFlip\"" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CompareTimer" }, "parameters": [ "", "\"PlatformFlip\"", ">=", "0" ] }, { "type": { "value": "CompareTimer" }, "parameters": [ "FlippingPlatform", "\"PlatformFlip\"", "<", "2" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "RotateTowardAngle" }, "parameters": [ "FlippingPlatform", "0", "0", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CompareTimer" }, "parameters": [ "", "\"PlatformFlip\"", ">=", "2" ] }, { "type": { "value": "CompareTimer" }, "parameters": [ "FlippingPlatform", "\"PlatformFlip\"", "<", "3" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "ShakeObject::ShakeObject_PositionAngleScale::ShakeObject_PositionAngleScale" }, "parameters": [ "FlippingPlatform", "ShakeObject_PositionAngleScale", "1", "2", "2", "1", "0", "0.04", "", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CompareTimer" }, "parameters": [ "", "\"PlatformFlip\"", ">=", "3" ] }, { "type": { "value": "CompareTimer" }, "parameters": [ "", "\"PlatformFlip\"", "<", "5" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "RotateTowardAngle" }, "parameters": [ "FlippingPlatform", "-80", "0", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CompareTimer" }, "parameters": [ "", "\"PlatformFlip\"", ">=", "5" ] }, { "type": { "value": "CompareTimer" }, "parameters": [ "", "\"PlatformFlip\"", "<", "6" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "ShakeObject::ShakeObject_PositionAngleScale::ShakeObject_PositionAngleScale" }, "parameters": [ "FlippingPlatform", "ShakeObject_PositionAngleScale", "1", "2", "2", "1", "0", "0.04", "", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CompareTimer" }, "parameters": [ "", "\"PlatformFlip\"", ">=", "6" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "RotateTowardAngle" }, "parameters": [ "FlippingPlatform", "0", "0", "" ] }, { "type": { "value": "ResetTimer" }, "parameters": [ "", "\"PlatformFlip\"" ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "folded": true, "name": "FlippingPlatform2", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "ResetTimer" }, "parameters": [ "", "\"PlatformFlip2\"" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CompareTimer" }, "parameters": [ "", "\"PlatformFlip2\"", ">=", "0" ] }, { "type": { "value": "CompareTimer" }, "parameters": [ "", "\"PlatformFlip2\"", "<", "2" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "RotateTowardAngle" }, "parameters": [ "FlippingPlatform2", "-80", "0", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CompareTimer" }, "parameters": [ "", "\"PlatformFlip2\"", ">=", "2" ] }, { "type": { "value": "CompareTimer" }, "parameters": [ "", "\"PlatformFlip2\"", "<", "3" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "ShakeObject::ShakeObject_PositionAngleScale::ShakeObject_PositionAngleScale" }, "parameters": [ "FlippingPlatform2", "ShakeObject_PositionAngleScale", "1", "2", "2", "1", "0", "0.04", "", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CompareTimer" }, "parameters": [ "", "\"PlatformFlip2\"", ">=", "3" ] }, { "type": { "value": "CompareTimer" }, "parameters": [ "FlippingPlatform", "\"PlatformFlip2\"", "<", "5" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "RotateTowardAngle" }, "parameters": [ "FlippingPlatform2", "0", "0", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CompareTimer" }, "parameters": [ "", "\"PlatformFlip2\"", ">=", "5" ] }, { "type": { "value": "CompareTimer" }, "parameters": [ "FlippingPlatform", "\"PlatformFlip2\"", "<", "6" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "ShakeObject::ShakeObject_PositionAngleScale::ShakeObject_PositionAngleScale" }, "parameters": [ "FlippingPlatform2", "ShakeObject_PositionAngleScale", "1", "2", "2", "1", "0", "0.04", "", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CompareTimer" }, "parameters": [ "", "\"PlatformFlip2\"", ">=", "6" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "RotateTowardAngle" }, "parameters": [ "FlippingPlatform2", "0", "0", "" ] }, { "type": { "value": "ResetTimer" }, "parameters": [ "", "\"PlatformFlip2\"" ] } ] } ], "parameters": [] } ], "parameters": [] }, { "colorB": 224, "colorG": 16, "colorR": 189, "creationTime": 0, "name": "Game Environment", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "UI", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "TiledUnitsBar::TiledUnitsBar::SetValue" }, "parameters": [ "LivesBar", "=", "Player.Variable(Lives)", "" ] }, { "type": { "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::SetValue" }, "parameters": [ "HopeBar", "=", "Player.Variable(LifeForce)", "Player.LifeForce" ] }, { "type": { "value": "TextContainerCapability::TextContainerBehavior::SetValue" }, "parameters": [ "FrameRate", "Text", "=", "ToString(roundTo(1 / TimeDelta(), 2))" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "BuiltinExternalLayouts::CreateObjectsFromExternalLayout" }, "parameters": [ "", "\"LevelUI\"", "", "", "" ] }, { "type": { "value": "BuiltinExternalLayouts::CreateObjectsFromExternalLayout" }, "parameters": [ "", "\"LevelEndScreen\"", "", "", "" ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Camera", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Opacity 0 instead of hide for CameraGlitchFix to work (camera glitch: turns background into black sometimes above the highest visible object hitbox on screen or below the lowest hitbox; thus CameraGlitchFix is a visible (but opacity 0) object 2000 pixels long always on the player)" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "Create" }, "parameters": [ "", "CameraGlitchFix", "0", "-6000", "" ] }, { "type": { "value": "OpacityCapability::OpacityBehavior::SetValue" }, "parameters": [ "HelperObjects", "Opacity", "=", "0" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Make sure smooth camera speed is reset in case of final-dying on the last run in the middle of a shockwave or something" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "PauseObjectTimer" }, "parameters": [ "Player", "\"CameraIncreaseSpeed\"" ] }, { "type": { "value": "PauseObjectTimer" }, "parameters": [ "Player", "\"CameraDecreaseSpeed\"" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetLeftwardSpeed" }, "parameters": [ "Player", "SmoothCamera", "0.9", "" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetRightwardSpeed" }, "parameters": [ "Player", "SmoothCamera", "0.9", "" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetUpwardSpeed" }, "parameters": [ "Player", "SmoothCamera", "0.75", "" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetDownwardSpeed" }, "parameters": [ "Player", "SmoothCamera", "0.9", "" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Boundary objects act like invisible walls for the player and they also define where the camera can move" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ClampCamera" }, "parameters": [ "", "LeftBoundary.X()+LeftBoundary.Width()", "TopBoundary.Y()+TopBoundary.Height()", "RightBoundary.X()", "BottomBoundary.Y()", "", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "MettreXY" }, "parameters": [ "CameraGlitchFix", "=", "Player.X() - 3000", "=", "Player.Y() - 3000" ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Background", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "PlaySound" }, "parameters": [ "", "crickets.aac", "yes", "30", "1" ] } ] }, { "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "PlaySound" }, "parameters": [ "", "AssetDev/Audio/509444__erokia__ambient-wave-54-msfxp7-1_3-psess.wav", "yes", "20", "1" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "ResetTimer" }, "parameters": [ "", "\"RandomNoiseTimer\"" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Background motion (parallax) and adjust size to fit screen" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "TiledSpriteObject::Width" }, "parameters": [ "BackgroundPlants", "=", "CameraWidth()" ] }, { "type": { "value": "TiledSpriteObject::XOffset" }, "parameters": [ "BackgroundPlants", "=", "CameraBorderLeft() / 3 + 2400" ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "folded": true, "name": "Portal Sound Effect", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "PlaySoundCanal" }, "parameters": [ "", "door.aac", "0", "yes", "100", "1" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CollisionNP" }, "parameters": [ "Player", "Portal", "", "", "" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "PlaySound" }, "parameters": [ "", "Assets/Sounds/Portal/PortalInteract.wav", "", "GlobalVariable(Volume_SFX)", "" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Increase volume of portal as the player gets closer" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SceneInstancesCount" }, "parameters": [ "", "Player", ">", "0" ] } ], "actions": [ { "type": { "value": "VolumeFalloff::SetVolumeFalloff" }, "parameters": [ "", "0", "\"Sound\"", "Portal", "Player", "0", "100", "750", "" ] } ] } ], "parameters": [] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "folded": true, "name": "Game End Logic", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Start the game with the \"EndScreen\" layer hidden and make the overlay semi-transparent" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "DepartScene" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "HideLayer" }, "parameters": [ "", "\"EndScreen\"" ] }, { "type": { "value": "TiledSpriteObject::SetOpacity" }, "parameters": [ "UI_Sinage_Background", "=", "180\n" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Detect when the player reaches the portal; also stop any heartbeat sounds (only seems to work here)" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "CollisionNP" }, "parameters": [ "Player", "Portal", "", "", "" ] }, { "type": { "value": "VarObjet" }, "parameters": [ "Player", "Lives", "<=", "0" ] } ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "ShowLayer" }, "parameters": [ "", "\"EndScreen\"" ] }, { "type": { "value": "HideLayer" }, "parameters": [ "", "\"UI\"" ] }, { "type": { "value": "HideLayer" }, "parameters": [ "", "" ] }, { "type": { "value": "HideLayer" }, "parameters": [ "", "\"Background\"" ] }, { "type": { "value": "StopSoundCanal" }, "parameters": [ "", "2" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Stop controlling player movement with platformer behavior and then use tweens to animate the player falling into the portal" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ActivateBehavior" }, "parameters": [ "Player", "PlatformerObject", "no" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Player", "Lives", ">", "0" ] } ], "actions": [ { "type": { "value": "Player::AnimateFallingIntoPortal" }, "parameters": [ "", "Player", "Tween", "Portal", "Portal" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "LayerVisible" }, "parameters": [ "", "\"EndScreen\"" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Update UI depending on if it's a death or a level end, since they use the same end screen sprite" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Player", "Lives", ">", "0" ] } ], "actions": [ { "type": { "value": "Cache" }, "parameters": [ "UI_Sinage_DeathText" ] }, { "type": { "value": "Cache" }, "parameters": [ "UI_Sinage_RetryButton" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "VarObjet" }, "parameters": [ "Player", "Lives", ">", "0" ] } ], "actions": [ { "type": { "value": "Cache" }, "parameters": [ "UI_Sinage_MemoryAcquired" ] }, { "type": { "value": "Cache" }, "parameters": [ "UI_Sinage_ProceedButton" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Center objects and resize the overlay to cover entire screen" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "UserInterface::StretchToFillScreen" }, "parameters": [ "", "UI_Sinage_Background", "EndScreenBestText", "EndScreenChallengeText", "EndScreenHeader", "EndScreenRetryText", "EndScreenSubHeader", "" ] }, { "type": { "value": "SetCenterX" }, "parameters": [ "EndScreenObjects", "=", "CameraX(\"EndScreen\")" ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Dev Keybinds", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyPressed" }, "parameters": [ "", "y" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Player", "IsImmortal", "=", "1" ] }, { "type": { "value": "MettreXY" }, "parameters": [ "Player", "=", "Player.GodModeX", "=", "Player.GodModeY" ] }, { "type": { "value": "Checkpoints::SaveCheckpoint" }, "parameters": [ "", "Player", "Player.GodModeX", "Player.GodModeY", "\"Checkpoint\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyPressed" }, "parameters": [ "", "u" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Player", "IsImmortal", "=", "1" ] }, { "type": { "value": "Checkpoints::SaveCheckpoint" }, "parameters": [ "", "Player", "Player.X()", "Player.Y()", "\"Checkpoint\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyFromTextPressed" }, "parameters": [ "", "\"i\"" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Player", "IsImmortal", "=", "1 - Player.IsImmortal" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyPressed" }, "parameters": [ "", "n" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"MainMenu\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyPressed" }, "parameters": [ "", "r" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "CurrentSceneName()", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyPressed" }, "parameters": [ "", "l" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"TestingLevel\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyPressed" }, "parameters": [ "", "m" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Mindscape\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyPressed" }, "parameters": [ "", "t" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Tutorial\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyPressed" }, "parameters": [ "", "Num1" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Level1\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyPressed" }, "parameters": [ "", "Num2" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Level2\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyPressed" }, "parameters": [ "", "Num3" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Level3\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyPressed" }, "parameters": [ "", "Num4" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Level4\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyPressed" }, "parameters": [ "", "Num5" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Level5\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyPressed" }, "parameters": [ "", "Num6" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Level6\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyPressed" }, "parameters": [ "", "Num7" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Level7\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyPressed" }, "parameters": [ "", "Num8" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Level8\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyPressed" }, "parameters": [ "", "Num9" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Level9\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyPressed" }, "parameters": [ "", "Num0" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "Scene" }, "parameters": [ "", "\"Level10\"", "" ] } ] } ], "parameters": [] } ], "parameters": [] } ] } ], "eventsFunctionsExtensions": [ { "author": "Entropy", "category": "Movement", "extensionNamespace": "", "fullName": "Advanced platformer movements", "helpPath": "", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iSWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMzIgMzIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMyIDMyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQo8L3N0eWxlPg0KPGNpcmNsZSBjbGFzcz0ic3QwIiBjeD0iMjMiIGN5PSI3IiByPSIzIi8+DQo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNOCwxMGwyLjgtMi44QzEyLDYsMTQsNiwxNS4yLDcuMmw3LjksNy45YzEuMSwxLjEsMi44LDEuMiw0LjEsMC4yTDMwLDEzIi8+DQo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTcsMTBsLTQuNyw0LjdjLTEuNSwxLjUtMSw0LjIsMSw1bDMuOSwxLjVjMS4xLDAuNCwxLjksMS41LDEuOSwyLjd2NiIvPg0KPHBhdGggY2xhc3M9InN0MCIgZD0iTTE0LDIwbC0yLjYsMi42Yy0wLjgsMC44LTIuMSwwLjgtMi44LDBMNSwxOSIvPg0KPGxpbmUgY2xhc3M9InN0MCIgeDE9IjE2IiB5MT0iMTgiIHgyPSIyMSIgeTI9IjEzIi8+DQo8L3N2Zz4NCg==", "name": "AdvancedJump", "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/Line Hero Pack/Master/SVG/Sports and Fitness/Sports and Fitness_training_running_run.svg", "shortDescription": "Let platformer characters: air jump, wall jump wall sliding, coyote time and dashing.", "version": "0.1.2", "description": [ "This extension provides behaviors to:", "", "* Jump in mid-air", "* Jump and slide against walls", "* Dash horizontally", "* Dash toward the floor", "* Do coyote time, also known as \"ledge tolerance\". It lets players jumping even after their character is no longer touching the ground for a given amount of time. It aims to give players a feeling of control and reduce frustration.", "", "An example allows to check it out ([open the project online](https://editor.gdevelop.io/?project=example://platformer-moves))." ], "origin": { "identifier": "AdvancedJump", "name": "gdevelop-extension-store" }, "tags": [ "platformer", "platform", "jump", "ledge tolerance", "coyote time", "air jump", "wall jump", "wall sliding", "dash", "dive" ], "authorIds": [ "IWykYNRvhCZBN3vEgKEbBPOR3Oc2", "JD2xwvKWgodlqsGiL1GCH3tDEwq1", "q8ubdigLvIRXLxsJDDTaokO41mc2", "UMcf9dzu8pVV84ZSLaGAtUB8PyF2" ], "dependencies": [], "eventsFunctions": [], "eventsBasedBehaviors": [ { "description": "Let platformer characters jump shortly after leaving a platform and also jump in mid-air.", "fullName": "Coyote time and air jump", "name": "AdvancedJump", "objectType": "", "eventsFunctions": [ { "fullName": "", "functionType": "Action", "name": "doStepPreEvents", "sentence": "", "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Coyote time", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Avoid any side effect if the feature is not used." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AdvancedJump::AdvancedJump::PropertyCoyoteTimeFrameDuration" }, "parameters": [ "Object", "Behavior", ">", "0" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "The timeframe is starting." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "AdvancedJump::AdvancedJump::PropertyWasInTheAir" }, "parameters": [ "Object", "Behavior" ] }, { "type": { "value": "PlatformBehavior::IsFalling" }, "parameters": [ "Object", "PlatformerBehavior" ] } ], "actions": [ { "type": { "value": "ResetObjectTimer" }, "parameters": [ "Object", "\"__CoyoteTime_CoyoteJump\"" ] }, { "type": { "value": "PlatformBehavior::SetCanJump" }, "parameters": [ "Object", "PlatformerBehavior" ] }, { "type": { "value": "AdvancedJump::AdvancedJump::SetPropertyCanCoyoteJump" }, "parameters": [ "Object", "Behavior", "yes" ] } ], "events": [ { "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "DebuggerTools::ConsoleLog" }, "parameters": [ "\"Start\"", "\"info\"", "\"CoyoteTime\"" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AdvancedJump::AdvancedJump::PropertyCanCoyoteJump" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "The timeframe is missed." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CompareObjectTimer" }, "parameters": [ "Object", "\"__CoyoteTime_CoyoteJump\"", ">=", "Object.Behavior::PropertyCoyoteTimeFrameDuration()" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::SetCanNotAirJump" }, "parameters": [ "Object", "PlatformerBehavior" ] }, { "type": { "value": "AdvancedJump::AdvancedJump::SetPropertyCanCoyoteJump" }, "parameters": [ "Object", "Behavior", "no" ] } ], "events": [ { "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "DebuggerTools::ConsoleLog" }, "parameters": [ "\"End\"", "\"info\"", "\"CoyoteTime\"" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Coyote jump" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::IsJumping" }, "parameters": [ "Object", "PlatformerBehavior" ] } ], "actions": [ { "type": { "value": "AdvancedJump::AdvancedJump::SetPropertyCanCoyoteJump" }, "parameters": [ "Object", "Behavior", "no" ] } ], "events": [ { "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "DebuggerTools::ConsoleLog" }, "parameters": [ "\"Coyote jump\"", "\"info\"", "\"CoyoteTime\"" ] } ] } ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "The new value will be used next frame." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "AdvancedJump::AdvancedJump::UpdateWasInTheAir" }, "parameters": [ "Object", "Behavior", "" ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Air Jump", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "While in the coyote jump frame, the Object is treated as being on the floor. No air jump can happen." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "PlatformBehavior::IsOnFloor" }, "parameters": [ "Object", "PlatformerBehavior" ] }, { "type": { "inverted": true, "value": "AdvancedJump::AdvancedJump::CanCoyoteJump" }, "parameters": [ "Object", "Behavior", "" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AdvancedJump::AdvancedJump::PropertyAreFloorJumpCountedAsAirJump" }, "parameters": [ "Object", "Behavior" ] }, { "type": { "value": "PlatformBehavior::IsJumping" }, "parameters": [ "Object", "PlatformerBehavior" ] } ], "actions": [ { "type": { "value": "AdvancedJump::AdvancedJump::SetPropertyAirJumpCount" }, "parameters": [ "Object", "Behavior", "+", "1" ] } ], "events": [ { "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "DebuggerTools::ConsoleLog" }, "parameters": [ "\"Floor jump: \" + ToString(Object.Behavior::PropertyAirJumpCountMaximum() - Object.Behavior::PropertyAirJumpCount()) + \" + 0\"", "\"info\"", "\"AirJump\"" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "When the object fall, it doesn't jump but air jumps must be allowed" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::IsFalling" }, "parameters": [ "Object", "PlatformerBehavior" ] } ], "actions": [ { "type": { "value": "AdvancedJump::AdvancedJump::SetPropertyWasJumpKeyReleased" }, "parameters": [ "Object", "Behavior", "yes" ] } ], "events": [ { "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "DebuggerTools::ConsoleLog" }, "parameters": [ "\"Falling\"", "\"info\"", "\"AirJump\"" ] } ] } ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "The order of these events is important because the idle state is:\non the floor and jump key released but the 1st jump must not count." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "PlatformBehavior::PlatformerObjectBehavior::IsUsingControl" }, "parameters": [ "Object", "PlatformerBehavior", "\"Jump\"" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "AdvancedJump::AdvancedJump::SetPropertyWasJumpKeyReleased" }, "parameters": [ "Object", "Behavior", "yes" ] } ], "events": [ { "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "DebuggerTools::ConsoleLog" }, "parameters": [ "\"Jump released: \" + ToString(Object.Behavior::PropertyAirJumpCountMaximum() - Object.Behavior::PropertyAirJumpCount()) + \" + 0\"", "\"info\"", "\"AirJump\"" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Reset air jump counter." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "PlatformBehavior::IsFalling" }, "parameters": [ "Object", "PlatformerBehavior" ] }, { "type": { "inverted": true, "value": "PlatformBehavior::IsJumping" }, "parameters": [ "Object", "PlatformerBehavior" ] } ], "actions": [ { "type": { "value": "AdvancedJump::AdvancedJump::SetPropertyAirJumpCount" }, "parameters": [ "Object", "Behavior", "=", "0" ] }, { "type": { "value": "AdvancedJump::AdvancedJump::SetPropertyWasJumpKeyReleased" }, "parameters": [ "Object", "Behavior", "False" ] } ], "events": [ { "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "DebuggerTools::ConsoleLog" }, "parameters": [ "\"Reset air jump counter\"", "\"info\"", "\"AirJump\"" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Allow air jumps." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "PlatformBehavior::CanJump" }, "parameters": [ "Object", "PlatformerBehavior" ] }, { "type": { "value": "AdvancedJump::AdvancedJump::PropertyAirJumpCount" }, "parameters": [ "Object", "Behavior", "<", "Object.Behavior::PropertyAirJumpCountMaximum()" ] }, { "type": { "value": "AdvancedJump::AdvancedJump::PropertyWasJumpKeyReleased" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SetCanJump" }, "parameters": [ "Object", "PlatformerBehavior" ] }, { "type": { "value": "AdvancedJump::AdvancedJump::SetPropertyWasJumpKeyReleased" }, "parameters": [ "Object", "Behavior", "False" ] }, { "type": { "value": "AdvancedJump::AdvancedJump::SetPropertyAirJumpCount" }, "parameters": [ "Object", "Behavior", "+", "1" ] } ], "events": [ { "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "DebuggerTools::ConsoleLog" }, "parameters": [ "\"Jump allowed: \" + ToString(Object.Behavior::PropertyAirJumpCountMaximum() - Object.Behavior::PropertyAirJumpCount()) + \" + 1\"", "\"info\"", "\"AirJump\"" ] } ] } ] } ], "parameters": [] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::AdvancedJump", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "Action", "name": "onCreated", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "AdvancedJump::AdvancedJump::UpdateWasInTheAir" }, "parameters": [ "Object", "Behavior", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::AdvancedJump", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "Action", "name": "onDeActivate", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "RemoveObjectTimer" }, "parameters": [ "Object", "\"__CoyoteTime_CoyoteJump\"" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::AdvancedJump", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "Action", "name": "onActivate", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Coyote time was disabled, so WasInTheAir may not have been updated for a long time." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "AdvancedJump::AdvancedJump::UpdateWasInTheAir" }, "parameters": [ "Object", "Behavior", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::AdvancedJump", "type": "behavior" } ], "objectGroups": [] }, { "description": "Change the coyote time duration of an object (in seconds).", "fullName": "Coyote timeframe", "functionType": "Action", "group": "Coyote time", "name": "SetCoyoteTime", "sentence": "Change coyote time of _PARAM0_: _PARAM2_ seconds", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Coyote time was disabled, so WasInTheAir may not have been updated for a long time." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AdvancedJump::AdvancedJump::PropertyCoyoteTimeFrameDuration" }, "parameters": [ "Object", "Behavior", "<=", "0" ] } ], "actions": [ { "type": { "value": "AdvancedJump::AdvancedJump::UpdateWasInTheAir" }, "parameters": [ "Object", "Behavior", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "AdvancedJump::AdvancedJump::SetPropertyCoyoteTimeFrameDuration" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"CoyoteTime\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::AdvancedJump", "type": "behavior" }, { "description": "Duration", "longDescription": "Coyote time duration in seconds.", "name": "CoyoteTime", "type": "expression" } ], "objectGroups": [] }, { "description": "Check if a coyote jump can currently happen.", "fullName": "Can coyote jump", "functionType": "Condition", "group": "Coyote time", "name": "CanCoyoteJump", "sentence": "_PARAM0_ can coyote jump", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AdvancedJump::AdvancedJump::PropertyCanCoyoteJump" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::AdvancedJump", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "Update WasInTheAir", "functionType": "Action", "group": "Coyote time", "name": "UpdateWasInTheAir", "private": true, "sentence": "Update WasInTheAir property of _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "AdvancedJump::AdvancedJump::SetPropertyWasInTheAir" }, "parameters": [ "Object", "Behavior", "no" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "PlatformBehavior::IsOnFloor" }, "parameters": [ "Object", "PlatformerBehavior" ] }, { "type": { "inverted": true, "value": "PlatformBehavior::IsGrabbingPlatform" }, "parameters": [ "Object", "PlatformerBehavior" ] }, { "type": { "inverted": true, "value": "PlatformBehavior::IsOnLadder" }, "parameters": [ "Object", "PlatformerBehavior" ] } ], "actions": [ { "type": { "value": "AdvancedJump::AdvancedJump::SetPropertyWasInTheAir" }, "parameters": [ "Object", "Behavior", "yes" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::AdvancedJump", "type": "behavior" } ], "objectGroups": [] }, { "description": "Number of jumps in mid-air that are allowed.", "fullName": "Maximal jump number", "functionType": "Expression", "group": "Air jump", "name": "AirJumpsMax", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyAirJumpCountMaximum()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::AdvancedJump", "type": "behavior" } ], "objectGroups": [] }, { "description": "Number of jumps in mid-air that are still allowed.", "fullName": "Remaining jump", "functionType": "Expression", "group": "Air jump", "name": "RemainingAirJumps", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "PlatformBehavior::CanJump" }, "parameters": [ "Object", "PlatformerBehavior" ] } ], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "max(0, Object.Behavior::PropertyAirJumpCountMaximum() - Object.Behavior::PropertyAirJumpCount())" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "When the jump is allowed but not yet done, it must not be counted." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::CanJump" }, "parameters": [ "Object", "PlatformerBehavior" ] } ], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "clamp(1 + Object.Behavior::PropertyAirJumpCountMaximum() - Object.Behavior::PropertyAirJumpCount(), 0, Object.Behavior::PropertyAirJumpCountMaximum())" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::AdvancedJump", "type": "behavior" } ], "objectGroups": [] }, { "description": "Change the number of times the character can jump in mid-air.", "fullName": "Air jumps", "functionType": "Action", "group": "Air jump", "name": "SetAirJumpCountMaximum", "sentence": "Change the number of times _PARAM0_ can jump in mid-air: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "AdvancedJump::AdvancedJump::SetPropertyAirJumpCountMaximum" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"AirJumpCountMaximum\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::AdvancedJump", "type": "behavior" }, { "description": "Number of air jumps", "name": "AirJumpCountMaximum", "type": "expression" } ], "objectGroups": [] }, { "description": "Remove one of the remaining air jumps of a character.", "fullName": "Remove a remaining air jump", "functionType": "Action", "group": "Air jump", "name": "RemoveOneRemainingAirJump", "sentence": "Remove one of the remaining air jumps of _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "AdvancedJump::AdvancedJump::SetPropertyAirJumpCount" }, "parameters": [ "Object", "Behavior", "+", "1" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Avoid to jump again before the current jump input ends." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::IsUsingControl" }, "parameters": [ "Object", "PlatformerBehavior", "\"Jump\"" ] } ], "actions": [ { "type": { "value": "AdvancedJump::AdvancedJump::SetPropertyWasJumpKeyReleased" }, "parameters": [ "Object", "Behavior", "False" ] } ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::AdvancedJump", "type": "behavior" } ], "objectGroups": [] }, { "description": "Allow back all air jumps of a character.", "fullName": "Reset air jumps", "functionType": "Action", "group": "Air jump", "name": "ResetAirJumpCounter", "sentence": "Allow back all air jumps of _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "AdvancedJump::AdvancedJump::SetPropertyAirJumpCount" }, "parameters": [ "Object", "Behavior", "=", "0" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "This avoid to give an extra jump if the character was already allowed to jump in mid-air." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::SetCanNotAirJump" }, "parameters": [ "Object", "PlatformerBehavior" ] }, { "type": { "value": "AdvancedJump::AdvancedJump::SetPropertyWasJumpKeyReleased" }, "parameters": [ "Object", "Behavior", "yes" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Avoid to jump again before the current jump input ends." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::IsUsingControl" }, "parameters": [ "Object", "PlatformerBehavior", "\"Jump\"" ] } ], "actions": [ { "type": { "value": "AdvancedJump::AdvancedJump::SetPropertyWasJumpKeyReleased" }, "parameters": [ "Object", "Behavior", "False" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::AdvancedJump", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if floor jumps are counted as air jumps for an object.", "fullName": "Floor jumps count as air jumps", "functionType": "Condition", "group": "Air jump", "name": "AreFloorJumpCountedAsAirJump", "sentence": "Floor jumps count as air jumps for _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AdvancedJump::AdvancedJump::PropertyAreFloorJumpCountedAsAirJump" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::AdvancedJump", "type": "behavior" } ], "objectGroups": [] } ], "propertyDescriptors": [ { "value": "", "type": "Behavior", "label": "Platformer character behavior", "description": "", "group": "", "extraInformation": [ "PlatformBehavior::PlatformerObjectBehavior" ], "hidden": false, "name": "PlatformerBehavior" }, { "value": "0.25", "type": "Number", "unit": "Second", "label": "Coyote time duration", "description": "", "group": "Coyote time", "extraInformation": [], "hidden": false, "name": "CoyoteTimeFrameDuration" }, { "value": "", "type": "Boolean", "label": "Can coyote jump", "description": "", "group": "Coyote time", "extraInformation": [], "hidden": true, "name": "CanCoyoteJump" }, { "value": "", "type": "Boolean", "label": "Was in the air", "description": "", "group": "Coyote time", "extraInformation": [], "hidden": true, "name": "WasInTheAir" }, { "value": "1", "type": "Number", "label": "Number of air jumps", "description": "", "group": "Air jump", "extraInformation": [], "hidden": false, "name": "AirJumpCountMaximum" }, { "value": "", "type": "Boolean", "label": "Floor jumps count as air jumps", "description": "", "group": "Air jump", "extraInformation": [], "hidden": false, "name": "AreFloorJumpCountedAsAirJump" }, { "value": "0", "type": "Number", "label": "", "description": "", "group": "Air jump", "extraInformation": [], "hidden": true, "name": "AirJumpCount" }, { "value": "", "type": "Boolean", "label": "", "description": "", "group": "Air jump", "extraInformation": [], "hidden": true, "name": "WasJumpKeyReleased" } ], "sharedPropertyDescriptors": [] }, { "description": "Let platformer characters jump and slide against walls.", "fullName": "Wall jump", "name": "WallJump", "objectType": "", "eventsFunctions": [ { "fullName": "", "functionType": "Action", "name": "doStepPreEvents", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::IsUsingControl" }, "parameters": [ "Object", "PlatformerCharacter", "\"Jump\"" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Avoid a jump from the floor to do a wall jump because of the allowed timeframe." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AdvancedJump::WallJump::PropertyWasInTheAir" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "AdvancedJump::WallJump::RememberJumpKeyPressed" }, "parameters": [ "Object", "Behavior", "\"Jump\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Reset default character configuration when a jump that is not a wall jump happens (for instance an air jump)." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "AdvancedJump::WallJump::PropertyHasJustWallJump" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "AdvancedJump::WallJump::SetPropertyIsWallJumping" }, "parameters": [ "Object", "Behavior", "no" ] }, { "type": { "value": "AdvancedJump::WallJump::ToggleSideSpeed" }, "parameters": [ "Object", "Behavior", "", "" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "To know when jumping from the floor or not." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "AdvancedJump::WallJump::SetPropertyWasInTheAir" }, "parameters": [ "Object", "Behavior", "no" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "PlatformBehavior::IsFalling" }, "parameters": [ "Object", "PlatformerCharacter" ] }, { "type": { "value": "PlatformBehavior::IsJumping" }, "parameters": [ "Object", "PlatformerCharacter" ] } ] } ], "actions": [ { "type": { "value": "AdvancedJump::WallJump::SetPropertyWasInTheAir" }, "parameters": [ "Object", "Behavior", "yes" ] } ] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Wall jump end", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AdvancedJump::WallJump::PropertyIsWallJumping" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Reset default character configuration when the character change of direction or start to fall." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "PlatformBehavior::IsFalling" }, "parameters": [ "Object", "PlatformerCharacter" ] }, { "type": { "value": "BuiltinCommonInstructions::And" }, "parameters": [], "subInstructions": [ { "type": { "value": "AdvancedJump::WallJump::PropertyIsJumpingLeft" }, "parameters": [ "Object", "Behavior" ] }, { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::IsUsingControl" }, "parameters": [ "Object", "PlatformerCharacter", "\"Left\"" ] } ] }, { "type": { "value": "BuiltinCommonInstructions::And" }, "parameters": [], "subInstructions": [ { "type": { "inverted": true, "value": "AdvancedJump::WallJump::PropertyIsJumpingLeft" }, "parameters": [ "Object", "Behavior" ] }, { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::IsUsingControl" }, "parameters": [ "Object", "PlatformerCharacter", "\"Right\"" ] } ] } ] } ], "actions": [ { "type": { "value": "AdvancedJump::WallJump::SetPropertyIsWallJumping" }, "parameters": [ "Object", "Behavior", "no" ] }, { "type": { "value": "AdvancedJump::WallJump::ToggleSideSpeed" }, "parameters": [ "Object", "Behavior", "", "" ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Wall detection", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "When the character tries to move but can't actually move, it's against a wall." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "AdvancedJump::WallJump::SetPropertyIsAgainstWall" }, "parameters": [ "Object", "Behavior", "no" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AdvancedJump::WallJump::PropertyPreviousX" }, "parameters": [ "Object", "Behavior", "=", "Object.X()" ] }, { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "BuiltinCommonInstructions::And" }, "parameters": [], "subInstructions": [ { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::IsUsingControl" }, "parameters": [ "Object", "PlatformerCharacter", "\"Left\"" ] }, { "type": { "inverted": true, "value": "PlatformBehavior::PlatformerObjectBehavior::IsUsingControl" }, "parameters": [ "Object", "PlatformerCharacter", "\"Right\"" ] } ] }, { "type": { "value": "BuiltinCommonInstructions::And" }, "parameters": [], "subInstructions": [ { "type": { "inverted": true, "value": "PlatformBehavior::PlatformerObjectBehavior::IsUsingControl" }, "parameters": [ "Object", "PlatformerCharacter", "\"Left\"" ] }, { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::IsUsingControl" }, "parameters": [ "Object", "PlatformerCharacter", "\"Right\"" ] } ] } ] } ], "actions": [ { "type": { "value": "AdvancedJump::WallJump::SetPropertyIsAgainstWall" }, "parameters": [ "Object", "Behavior", "yes" ] }, { "type": { "value": "AdvancedJump::WallJump::RememberIsAgainstWall" }, "parameters": [ "Object", "Behavior", "" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::IsUsingControl" }, "parameters": [ "Object", "PlatformerCharacter", "\"Left\"" ] } ], "actions": [ { "type": { "value": "AdvancedJump::WallJump::SetPropertyIsJumpingLeft" }, "parameters": [ "Object", "Behavior", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::IsUsingControl" }, "parameters": [ "Object", "PlatformerCharacter", "\"Right\"" ] } ], "actions": [ { "type": { "value": "AdvancedJump::WallJump::SetPropertyIsJumpingLeft" }, "parameters": [ "Object", "Behavior", "yes" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Save the previous position for the wall detection." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "AdvancedJump::WallJump::SetPropertyPreviousX" }, "parameters": [ "Object", "Behavior", "=", "Object.X()" ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Wall jump", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "AdvancedJump::WallJump::SetPropertyHasJustWallJump" }, "parameters": [ "Object", "Behavior", "no" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "AdvancedJump::WallJump::PropertyIsAgainstWall" }, "parameters": [ "Object", "Behavior" ] }, { "type": { "value": "AdvancedJump::WallJump::WasAgainstWall" }, "parameters": [ "Object", "Behavior", "Object.Behavior::PropertyJumpTimeFrame()", "" ] } ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "To be permissive, when the jump key was pressed right before the character touch the wall,\nit is still detected as a wall jump which reset the air jump counter." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AdvancedJump::WallJump::WasJumpKeyPressed" }, "parameters": [ "Object", "Behavior", "Object.Behavior::PropertyJumpTimeFrame()", "\"Jump\"", "" ] } ], "actions": [ { "type": { "value": "AdvancedJump::WallJump::ForgetJumpKeyPressed" }, "parameters": [ "Object", "Behavior", "\"Jump\"", "" ] }, { "type": { "value": "PlatformBehavior::SetCanJump" }, "parameters": [ "Object", "PlatformerCharacter" ] }, { "type": { "value": "AdvancedJump::WallJump::SetPropertyIsWallJumping" }, "parameters": [ "Object", "Behavior", "yes" ] }, { "type": { "value": "AdvancedJump::WallJump::ToggleSideSpeed" }, "parameters": [ "Object", "Behavior", "yes", "" ] }, { "type": { "value": "AdvancedJump::WallJump::ForgetIsAgainstWall" }, "parameters": [ "Object", "Behavior", "" ] }, { "type": { "value": "AdvancedJump::WallJump::SetPropertyHasJustWallJump" }, "parameters": [ "Object", "Behavior", "yes" ] }, { "type": { "value": "ResetObjectTimer" }, "parameters": [ "Object", "\"__WallJump_TimeFromJumpStart\"" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AdvancedJump::WallJump::PropertyIsJumpingLeft" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::SetCurrentSpeed" }, "parameters": [ "Object", "PlatformerCharacter", "=", "-Object.Behavior::PropertyWallJumpSpeedX()" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "AdvancedJump::WallJump::PropertyIsJumpingLeft" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::SetCurrentSpeed" }, "parameters": [ "Object", "PlatformerCharacter", "=", "Object.Behavior::PropertyWallJumpSpeedX()" ] } ] }, { "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "DebuggerTools::ConsoleLog" }, "parameters": [ "\"Wall jump\"", "\"info\"", "\"WallJump\"" ] } ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Sustain jump speed", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AdvancedJump::WallJump::PropertyIsWallJumping" }, "parameters": [ "Object", "Behavior" ] }, { "type": { "value": "CompareObjectTimer" }, "parameters": [ "Object", "\"__WallJump_TimeFromJumpStart\"", "<=", "Object.Behavior::PropertySideSpeedSustainTime()" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AdvancedJump::WallJump::PropertyIsJumpingLeft" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::SetCurrentSpeed" }, "parameters": [ "Object", "PlatformerCharacter", "=", "-Object.Behavior::PropertyWallJumpSpeedX()" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "AdvancedJump::WallJump::PropertyIsJumpingLeft" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::SetCurrentSpeed" }, "parameters": [ "Object", "PlatformerCharacter", "=", "Object.Behavior::PropertyWallJumpSpeedX()" ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Wall sliding", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "AdvancedJump::WallJump::PropertyIsAgainstWall" }, "parameters": [ "Object", "Behavior" ] }, { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::IsUsingControl" }, "parameters": [ "Object", "PlatformerCharacter", "\"Left\"" ] }, { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::IsUsingControl" }, "parameters": [ "Object", "PlatformerCharacter", "\"Right\"" ] } ] } ], "actions": [ { "type": { "value": "AdvancedJump::WallJump::SetPropertyMovedAwayFromTheWall" }, "parameters": [ "Object", "Behavior", "yes" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AdvancedJump::WallJump::PropertyIsAgainstWall" }, "parameters": [ "Object", "Behavior" ] }, { "type": { "value": "PlatformBehavior::IsFalling" }, "parameters": [ "Object", "PlatformerCharacter" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AdvancedJump::WallJump::PropertyMovedAwayFromTheWall" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "AdvancedJump::WallJump::AbsorbFallingSpeed" }, "parameters": [ "Object", "Behavior", "Object.Behavior::PropertyWallSlidingSpeedAbsorption()", "" ] }, { "type": { "value": "AdvancedJump::WallJump::SetPropertyMovedAwayFromTheWall" }, "parameters": [ "Object", "Behavior", "no" ] } ], "events": [ { "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "DebuggerTools::ConsoleLog" }, "parameters": [ "\"Absob speed\"", "\"info\"", "\"WallJump\"" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "AdvancedJump::WallJump::SlideOnWall" }, "parameters": [ "Object", "Behavior", "yes", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AdvancedJump::WallJump::PropertyAutomaticSliding" }, "parameters": [ "Object", "Behavior" ] }, { "type": { "inverted": true, "value": "AdvancedJump::WallJump::PropertyIsWallJumping" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::IsUsingControl" }, "parameters": [ "Object", "PlatformerCharacter", "\"Left\"" ] }, { "type": { "inverted": true, "value": "PlatformBehavior::PlatformerObjectBehavior::IsUsingControl" }, "parameters": [ "Object", "PlatformerCharacter", "\"Right\"" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateLeftKey" }, "parameters": [ "Object", "PlatformerCharacter" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "PlatformBehavior::PlatformerObjectBehavior::IsUsingControl" }, "parameters": [ "Object", "PlatformerCharacter", "\"Left\"" ] }, { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::IsUsingControl" }, "parameters": [ "Object", "PlatformerCharacter", "\"Right\"" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateRightKey" }, "parameters": [ "Object", "PlatformerCharacter" ] } ] } ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "inverted": true, "value": "AdvancedJump::WallJump::PropertyIsAgainstWall" }, "parameters": [ "Object", "Behavior" ] }, { "type": { "inverted": true, "value": "PlatformBehavior::IsFalling" }, "parameters": [ "Object", "PlatformerCharacter" ] } ] } ], "actions": [ { "type": { "value": "AdvancedJump::WallJump::SlideOnWall" }, "parameters": [ "Object", "Behavior", "no", "" ] } ] } ], "parameters": [] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::WallJump", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if the object has just wall jumped.", "fullName": "Has just wall jumped", "functionType": "Condition", "name": "HasJustWallJumped", "sentence": "_PARAM0_ has just jumped from a wall", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AdvancedJump::WallJump::PropertyHasJustWallJump" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::WallJump", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if the object is wall jumping.", "fullName": "Is wall jumping", "functionType": "Condition", "name": "IsWallJumping", "sentence": "_PARAM0_ jumped from a wall", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AdvancedJump::WallJump::PropertyIsWallJumping" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::WallJump", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if the object is against a wall.", "fullName": "Against a wall", "functionType": "Condition", "name": "IsAgaintWall", "sentence": "_PARAM0_ is against a wall", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AdvancedJump::WallJump::PropertyIsAgainstWall" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::WallJump", "type": "behavior" } ], "objectGroups": [] }, { "description": "Remember that the character was against a wall.", "fullName": "Remember is against wall", "functionType": "Action", "group": "Private", "name": "RememberIsAgainstWall", "private": true, "sentence": "_PARAM0_ remembers having been against a wall", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ResetObjectTimer" }, "parameters": [ "Object", "\"__WallJump_IsAgainstWall\"" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::WallJump", "type": "behavior" } ], "objectGroups": [] }, { "description": "Forget that the character was against a wall.", "fullName": "Forget is against wall", "functionType": "Action", "group": "Private", "name": "ForgetIsAgainstWall", "private": true, "sentence": "_PARAM0_ forgets to had been against a wall", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "RemoveObjectTimer" }, "parameters": [ "Object", "\"__WallJump_IsAgainstWall\"" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::WallJump", "type": "behavior" } ], "objectGroups": [] }, { "description": "Remember that the character was against a wall within the time frame.", "fullName": "Was against wall", "functionType": "Condition", "group": "Private", "name": "WasAgainstWall", "private": true, "sentence": "_PARAM0_ remembers to had been against a wall within _PARAM2_ seconds", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CompareObjectTimer" }, "parameters": [ "Object", "\"__WallJump_IsAgainstWall\"", "<=", "GetArgumentAsNumber(\"TimeFrame\")" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::WallJump", "type": "behavior" }, { "description": "Time frame", "longDescription": "The time frame in seconds.", "name": "TimeFrame", "type": "expression" } ], "objectGroups": [] }, { "description": "Remember that the jump key was pressed.", "fullName": "Remember key pressed", "functionType": "Action", "group": "Private", "name": "RememberJumpKeyPressed", "private": true, "sentence": "_PARAM0_ remembers the _PARAM2_ key was pressed", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ResetObjectTimer" }, "parameters": [ "Object", "\"__WallJump_KeyPressed_\" + GetArgumentAsString(\"Key\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::WallJump", "type": "behavior" }, { "description": "Key", "name": "Key", "supplementaryInformation": "[\"Jump\",\"Left\",\"Right\"]", "type": "stringWithSelector" } ], "objectGroups": [] }, { "description": "Forget that the jump key was pressed.", "fullName": "Forget key pressed", "functionType": "Action", "group": "Private", "name": "ForgetJumpKeyPressed", "private": true, "sentence": "_PARAM0_ forgets the _PARAM2_ key was pressed", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "RemoveObjectTimer" }, "parameters": [ "Object", "\"__WallJump_KeyPressed_\" + GetArgumentAsString(\"Key\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::WallJump", "type": "behavior" }, { "description": "", "name": "Key", "supplementaryInformation": "[\"Jump\",\"Left\",\"Right\"]", "type": "stringWithSelector" } ], "objectGroups": [] }, { "description": "Check if the key was pressed within the time frame.", "fullName": "Remember key pressed", "functionType": "Condition", "group": "Private", "name": "WasJumpKeyPressed", "private": true, "sentence": "_PARAM0_ remembers _PARAM3_ key was pressed within _PARAM2_ seconds", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CompareObjectTimer" }, "parameters": [ "Object", "\"__WallJump_KeyPressed_\" + GetArgumentAsString(\"Key\")", "<=", "GetArgumentAsNumber(\"TimeFrame\")" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::WallJump", "type": "behavior" }, { "description": "Time frame", "longDescription": "The time frame in seconds.", "name": "TimeFrame", "type": "expression" }, { "description": "", "name": "Key", "supplementaryInformation": "[\"Jump\",\"Left\",\"Right\"]", "type": "stringWithSelector" } ], "objectGroups": [] }, { "description": "Enable side speed.", "fullName": "Toggle side speed", "functionType": "Action", "group": "Private", "name": "ToggleSideSpeed", "private": true, "sentence": "Enable side speed for _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Don't save the wrong acceleration and speed if the action is called 2 times with true." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "GetArgumentAsBoolean" }, "parameters": [ "\"EnableSideSpeed\"" ] } ], "actions": [ { "type": { "value": "AdvancedJump::PlatformerConfigurationStack::ConfigureAcceleration" }, "parameters": [ "Object", "PlatformerConfigurationStack", "Object.Behavior::PropertyWallJumpAccelerationX()", "\"WallJumpLeap\"", "" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::MaxSpeed" }, "parameters": [ "Object", "PlatformerCharacter", "<", "Object.Behavior::PropertyWallJumpSpeedX()" ] } ], "actions": [ { "type": { "value": "AdvancedJump::PlatformerConfigurationStack::ConfigureMaxSpeed" }, "parameters": [ "Object", "PlatformerConfigurationStack", "Object.Behavior::PropertyWallJumpSpeedX()", "\"WallJumpLeap\"", "" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Don't do it if speed wasn't saved by the previous event at some point." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "GetArgumentAsBoolean" }, "parameters": [ "\"EnableSideSpeed\"" ] } ], "actions": [ { "type": { "value": "AdvancedJump::PlatformerConfigurationStack::RevertConfiguration" }, "parameters": [ "Object", "PlatformerConfigurationStack", "\"WallJumpLeap\"", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::WallJump", "type": "behavior" }, { "description": "Enable side speed", "name": "EnableSideSpeed", "type": "yesorno" } ], "objectGroups": [] }, { "description": "Enable wall sliding.", "fullName": "Slide on wall", "functionType": "Action", "group": "Private", "name": "SlideOnWall", "private": true, "sentence": "Enable wall sliding for _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Don't save the wrong gravity and maximum speed if the action is called 2 times with true." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "GetArgumentAsBoolean" }, "parameters": [ "\"EnableWallSliding\"" ] } ], "actions": [ { "type": { "value": "AdvancedJump::PlatformerConfigurationStack::ConfigureGravity" }, "parameters": [ "Object", "PlatformerConfigurationStack", "Object.Behavior::PropertyWallSlidingGravity()", "\"WallJumpSliding\"", "" ] }, { "type": { "value": "AdvancedJump::PlatformerConfigurationStack::ConfigureMaxFallSpeed" }, "parameters": [ "Object", "PlatformerConfigurationStack", "Object.Behavior::PropertyWallSlidingMaxFallingSpeed()", "\"WallJumpSliding\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Don't do it if gravity wasn't saved by the previous event at some point." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "GetArgumentAsBoolean" }, "parameters": [ "\"EnableWallSliding\"" ] } ], "actions": [ { "type": { "value": "AdvancedJump::PlatformerConfigurationStack::RevertConfiguration" }, "parameters": [ "Object", "PlatformerConfigurationStack", "\"WallJumpSliding\"", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::WallJump", "type": "behavior" }, { "description": "Enable wall sliding", "name": "EnableWallSliding", "type": "yesorno" } ], "objectGroups": [] }, { "description": "Absorb falling speed of an object.", "fullName": "Absorb falling speed", "functionType": "Action", "group": "Private", "name": "AbsorbFallingSpeed", "private": true, "sentence": "Absorb falling speed of _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::AbortJump" }, "parameters": [ "Object", "PlatformerCharacter" ] }, { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::SetCurrentFallSpeed" }, "parameters": [ "Object", "PlatformerCharacter", "=", "max(Object.Behavior::PropertyWallSlidingFallingSpeedMin(), Object.PlatformerCharacter::CurrentFallSpeed() - Object.PlatformerCharacter::CurrentJumpSpeed() - GetArgumentAsNumber(\"SpeedAbsorption\")) + Object.PlatformerCharacter::CurrentJumpSpeed()" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::WallJump", "type": "behavior" }, { "description": "Speed absorption (in pixels per second)", "name": "SpeedAbsorption", "type": "expression" } ], "objectGroups": [] }, { "description": "The wall jump detection time frame of an object (in seconds).", "fullName": "Jump time frame", "functionType": "Expression", "group": "Wall jump configuration", "name": "JumpTimeFrame", "sentence": "Change the wall jump detection time frame of _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyJumpTimeFrame()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::WallJump", "type": "behavior" } ], "objectGroups": [] }, { "description": "Change the wall jump detection time frame of an object (in seconds).", "fullName": "Jump time frame", "functionType": "Action", "group": "Wall jump configuration", "name": "SetJumpTimeFrame", "sentence": "Change the wall jump detection time frame of _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "AdvancedJump::WallJump::SetPropertyJumpTimeFrame" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"JumpTimeFrame\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::WallJump", "type": "behavior" }, { "description": "Jump detection time frame (in seconds)", "name": "JumpTimeFrame", "type": "objectList" } ], "objectGroups": [] }, { "description": "The side speed of wall jumps of an object (in pixels per second).", "fullName": "Side speed", "functionType": "Expression", "group": "Wall jump configuration", "name": "WallJumpSpeedX", "sentence": "Change the side speed of wall jumps of _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyWallJumpSpeedX()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::WallJump", "type": "behavior" } ], "objectGroups": [] }, { "description": "Change the side speed of wall jumps of an object (in pixels per second).", "fullName": "Side speed", "functionType": "Action", "group": "Wall jump configuration", "name": "SetWallJumpSpeedX", "sentence": "Change the side speed of wall jumps of _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "AdvancedJump::WallJump::SetPropertyWallJumpSpeedX" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"WallJumpSpeedX\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::WallJump", "type": "behavior" }, { "description": "Side speed", "name": "WallJumpSpeedX", "type": "expression" } ], "objectGroups": [] }, { "description": "The side acceleration of wall jumps of an object (in pixels per second per second).", "fullName": "Side acceleration", "functionType": "Expression", "group": "Wall jump configuration", "name": "WallJumpAccelerationX", "sentence": "Change the side acceleration of wall jumps of _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyWallJumpAccelerationX()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::WallJump", "type": "behavior" } ], "objectGroups": [] }, { "description": "Change the side acceleration of wall jumps of an object (in pixels per second per second).", "fullName": "Side acceleration", "functionType": "Action", "group": "Wall jump configuration", "name": "SetWallJumpAccelerationX", "sentence": "Change the side acceleration of wall jumps of _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "AdvancedJump::WallJump::SetPropertyWallJumpAccelerationX" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"WallJumpAccelerationX\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::WallJump", "type": "behavior" }, { "description": "Side acceleration", "name": "WallJumpAccelerationX", "type": "expression" } ], "objectGroups": [] }, { "description": "The wall sliding gravity of an object (in pixels per second per second).", "fullName": "Gravity", "functionType": "Expression", "group": "Wall sliding configuration", "name": "WallSlidingGravity", "sentence": "Change the wall sliding gravity of _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyWallSlidingGravity()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::WallJump", "type": "behavior" } ], "objectGroups": [] }, { "description": "Change the wall sliding gravity of an object (in pixels per second per second).", "fullName": "Gravity", "functionType": "Action", "group": "Wall sliding configuration", "name": "SetWallSlidingGravity", "sentence": "Change the wall sliding gravity of _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "AdvancedJump::WallJump::SetPropertyWallSlidingGravity" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"WallSlidingGravity\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::WallJump", "type": "behavior" }, { "description": "Gravity", "name": "WallSlidingGravity", "type": "expression" } ], "objectGroups": [] }, { "description": "The wall sliding maximum falling speed of an object (in pixels per second).", "fullName": "Maximum falling speed", "functionType": "Expression", "group": "Wall sliding configuration", "name": "WallSlidingMaxFallingSpeed", "sentence": "Change the wall sliding maximum falling speed of _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyWallSlidingMaxFallingSpeed()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::WallJump", "type": "behavior" } ], "objectGroups": [] }, { "description": "Change the wall sliding maximum falling speed of an object (in pixels per second).", "fullName": "Maximum falling speed", "functionType": "Action", "group": "Wall sliding configuration", "name": "SetWallSlidingMaxFallingSpeed", "sentence": "Change the wall sliding maximum falling speed of _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "AdvancedJump::WallJump::SetPropertyWallSlidingGravity" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"WallSlidingMaxFallingSpeed\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::WallJump", "type": "behavior" }, { "description": "Maximum falling speed", "name": "WallSlidingMaxFallingSpeed", "type": "expression" } ], "objectGroups": [] }, { "description": "Change the impact speed absorption of an object.", "fullName": "Impact speed absorption", "functionType": "Expression", "group": "Wall sliding configuration", "name": "WallSlidingSpeedAbsorption", "sentence": "Change the impact speed absorption of _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyWallSlidingSpeedAbsorption()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::WallJump", "type": "behavior" } ], "objectGroups": [] }, { "description": "Change the impact speed absorption of an object.", "fullName": "Impact speed absorption", "functionType": "Action", "group": "Wall sliding configuration", "name": "SetWallSlidingSpeedAbsorption", "sentence": "Change the impact speed absorption of _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "AdvancedJump::WallJump::SetPropertyWallSlidingSpeedAbsorption" }, "parameters": [ "Object", "Behavior", "=", "Firebase::GetRemoteConfigNumber(\"WallSlidingSpeedAbsorption\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::WallJump", "type": "behavior" }, { "description": "Impact speed absorption", "name": "WallSlidingSpeedAbsorption", "type": "expression" } ], "objectGroups": [] } ], "propertyDescriptors": [ { "value": "", "type": "Behavior", "label": "Platformer character behavior", "description": "", "group": "", "extraInformation": [ "PlatformBehavior::PlatformerObjectBehavior" ], "hidden": false, "name": "PlatformerCharacter" }, { "value": "", "type": "Behavior", "label": "Platformer character configuration stack", "description": "", "group": "", "extraInformation": [ "AdvancedJump::PlatformerConfigurationStack" ], "hidden": false, "name": "PlatformerConfigurationStack" }, { "value": "0.125", "type": "Number", "unit": "Second", "label": "Jump detection time frame", "description": "", "group": "Wall jump", "extraInformation": [], "hidden": false, "name": "JumpTimeFrame" }, { "value": "250", "type": "Number", "unit": "PixelSpeed", "label": "Side speed", "description": "", "group": "Wall jump", "extraInformation": [], "hidden": false, "name": "WallJumpSpeedX" }, { "value": "1500", "type": "Number", "unit": "PixelAcceleration", "label": "Side acceleration", "description": "", "group": "Wall jump", "extraInformation": [], "hidden": false, "name": "WallJumpAccelerationX" }, { "value": "0.2", "type": "Number", "unit": "Second", "label": "Side speed sustain time", "description": "", "group": "Wall jump", "extraInformation": [], "hidden": false, "name": "SideSpeedSustainTime" }, { "value": "500", "type": "Number", "unit": "PixelAcceleration", "label": "Gravity", "description": "", "group": "Wall sliding", "extraInformation": [], "hidden": false, "name": "WallSlidingGravity" }, { "value": "350", "type": "Number", "unit": "PixelSpeed", "label": "Maximum falling speed", "description": "", "group": "Wall sliding", "extraInformation": [], "hidden": false, "name": "WallSlidingMaxFallingSpeed" }, { "value": "350", "type": "Number", "unit": "PixelSpeed", "label": "Impact speed absorption", "description": "", "group": "Wall sliding", "extraInformation": [], "hidden": false, "name": "WallSlidingSpeedAbsorption" }, { "value": "50", "type": "Number", "unit": "PixelSpeed", "label": "Minimal falling speed", "description": "", "group": "Wall sliding", "extraInformation": [], "hidden": false, "name": "WallSlidingFallingSpeedMin" }, { "value": "", "type": "Boolean", "label": "Keep sliding without holding a key", "description": "", "group": "Wall sliding", "extraInformation": [], "hidden": false, "name": "AutomaticSliding" }, { "value": "", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "PreviousX" }, { "value": "", "type": "Boolean", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "IsAgainstWall" }, { "value": "", "type": "Boolean", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "WasLeftOrRightPressed" }, { "value": "", "type": "Boolean", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "IsWallJumping" }, { "value": "", "type": "Boolean", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "IsJumpingLeft" }, { "value": "", "type": "Boolean", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "WasInTheAir" }, { "value": "", "type": "Boolean", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "HasJustWallJump" }, { "value": "true", "type": "Boolean", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "MovedAwayFromTheWall" } ], "sharedPropertyDescriptors": [] }, { "description": "Make platformer characters dash toward the floor.", "fullName": "Dive dash", "name": "DiveDash", "objectType": "", "eventsFunctions": [ { "fullName": "", "functionType": "Action", "name": "doStepPreEvents", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Revert default configuration" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::IsOnFloor" }, "parameters": [ "Object", "PlatformerCharacter" ] }, { "type": { "value": "AdvancedJump::DiveDash::PropertyIsDiving" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "AdvancedJump::PlatformerConfigurationStack::RevertConfiguration" }, "parameters": [ "Object", "PlatformerConfigurationStack", "\"DiveDash\"", "" ] }, { "type": { "value": "AdvancedJump::DiveDash::SetPropertyIsDiving" }, "parameters": [ "Object", "Behavior", "no" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::DiveDash", "type": "behavior" } ], "objectGroups": [] }, { "description": "Simulate a press of dive key to make the object dives to the floor if it can dive.", "fullName": "Simulate dive key", "functionType": "Action", "name": "SimulateDiveKey", "sentence": "Simulate pressing dive key for _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Vertical dash to smash the ground" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AdvancedJump::DiveDash::CanDive" }, "parameters": [ "Object", "Behavior", "" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::AbortJump" }, "parameters": [ "Object", "PlatformerCharacter" ] }, { "type": { "value": "AdvancedJump::PlatformerConfigurationStack::ConfigureMaxFallSpeed" }, "parameters": [ "Object", "PlatformerConfigurationStack", "Object.Behavior::PropertyDiveMaxFallingSpeed()", "\"DiveDash\"", "" ] }, { "type": { "value": "AdvancedJump::PlatformerConfigurationStack::ConfigureGravity" }, "parameters": [ "Object", "PlatformerConfigurationStack", "Object.Behavior::PropertyDiveGravity()", "\"DiveDash\"", "" ] }, { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::SetCurrentFallSpeed" }, "parameters": [ "Object", "PlatformerCharacter", "=", "Object.Behavior::PropertyDiveInitialFallingSpeed()" ] }, { "type": { "value": "AdvancedJump::DiveDash::SetPropertyIsDiving" }, "parameters": [ "Object", "Behavior", "yes" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::DiveDash", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if the object can dive.", "fullName": "Can dive", "functionType": "Condition", "name": "CanDive", "sentence": "_PARAM0_ can dive", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "PlatformBehavior::IsJumping" }, "parameters": [ "Object", "PlatformerCharacter" ] }, { "type": { "value": "PlatformBehavior::IsFalling" }, "parameters": [ "Object", "PlatformerCharacter" ] } ] }, { "type": { "inverted": true, "value": "AdvancedJump::DiveDash::PropertyIsDiving" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::DiveDash", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if the object is diving.", "fullName": "Is diving", "functionType": "Condition", "name": "IsDiving", "sentence": "_PARAM0_ is diving", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AdvancedJump::DiveDash::PropertyIsDiving" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::DiveDash", "type": "behavior" } ], "objectGroups": [] } ], "propertyDescriptors": [ { "value": "", "type": "Behavior", "label": "Platformer character behavior", "description": "", "group": "", "extraInformation": [ "PlatformBehavior::PlatformerObjectBehavior" ], "hidden": false, "name": "PlatformerCharacter" }, { "value": "", "type": "Behavior", "label": "Platformer character configuration stack", "description": "", "group": "", "extraInformation": [ "AdvancedJump::PlatformerConfigurationStack" ], "hidden": false, "name": "PlatformerConfigurationStack" }, { "value": "3000", "type": "Number", "unit": "PixelSpeed", "label": "Maximum falling speed", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "DiveMaxFallingSpeed" }, { "value": "1000", "type": "Number", "unit": "PixelSpeed", "label": "Initial falling speed", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "DiveInitialFallingSpeed" }, { "value": "8000", "type": "Number", "unit": "PixelAcceleration", "label": "Gravity", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "DiveGravity" }, { "value": "", "type": "Boolean", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "IsDiving" } ], "sharedPropertyDescriptors": [] }, { "description": "Make platformer characters dash horizontally.", "fullName": "Horizontal dash", "name": "HorizontalDash", "objectType": "", "eventsFunctions": [ { "fullName": "", "functionType": "Action", "name": "doStepPreEvents", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "PlatformBehavior::PlatformerObjectBehavior::IsUsingControl" }, "parameters": [ "Object", "PlatformerCharacter", "\"Left\"" ] }, { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::IsUsingControl" }, "parameters": [ "Object", "PlatformerCharacter", "\"Right\"" ] } ], "actions": [ { "type": { "value": "AdvancedJump::HorizontalDash::SetPropertyLastDirectionIsLeft" }, "parameters": [ "Object", "Behavior", "no" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::IsUsingControl" }, "parameters": [ "Object", "PlatformerCharacter", "\"Left\"" ] }, { "type": { "inverted": true, "value": "PlatformBehavior::PlatformerObjectBehavior::IsUsingControl" }, "parameters": [ "Object", "PlatformerCharacter", "\"Right\"" ] } ], "actions": [ { "type": { "value": "AdvancedJump::HorizontalDash::SetPropertyLastDirectionIsLeft" }, "parameters": [ "Object", "Behavior", "yes" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "AdvancedJump::HorizontalDash::IsDashing" }, "parameters": [ "Object", "Behavior", "" ] }, { "type": { "inverted": true, "value": "AdvancedJump::HorizontalDash::PropertyDashKeyIsPressed" }, "parameters": [ "Object", "Behavior" ] }, { "type": { "inverted": true, "value": "CompareObjectTimer" }, "parameters": [ "Object", "\"__PlatformerDash_CoolDown\"", "<", "Object.Behavior::PropertyCoolDownDuration()" ] } ], "actions": [ { "type": { "value": "AdvancedJump::HorizontalDash::SetPropertyCanDash" }, "parameters": [ "Object", "Behavior", "yes" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AdvancedJump::HorizontalDash::IsDashing" }, "parameters": [ "Object", "Behavior", "" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::IsJumping" }, "parameters": [ "Object", "PlatformerCharacter" ] } ], "actions": [ { "type": { "value": "AdvancedJump::PlatformerConfigurationStack::RevertConfiguration" }, "parameters": [ "Object", "PlatformerConfigurationStack", "\"HorizontalDashGravity\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Sustain" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AdvancedJump::HorizontalDash::PropertyIsSustainning" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [], "events": [ { "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "DebuggerTools::ConsoleLog" }, "parameters": [ "\"Sustain: \" + ToString(Object.PlatformerCharacter::CurrentSpeed())", "", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::CurrentSpeed" }, "parameters": [ "Object", "PlatformerCharacter", "<", "0" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateLeftKey" }, "parameters": [ "Object", "PlatformerCharacter" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::CurrentSpeed" }, "parameters": [ "Object", "PlatformerCharacter", ">", "0" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateRightKey" }, "parameters": [ "Object", "PlatformerCharacter" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "CompareObjectTimer" }, "parameters": [ "Object", "\"__PlatformerDash_SustainTime\"", ">", "Object.Behavior::PropertyDashSustainDurationMax()" ] }, { "type": { "value": "BuiltinCommonInstructions::And" }, "parameters": [], "subInstructions": [ { "type": { "inverted": true, "value": "AdvancedJump::HorizontalDash::PropertyDashKeyIsPressed" }, "parameters": [ "Object", "Behavior" ] }, { "type": { "value": "CompareObjectTimer" }, "parameters": [ "Object", "\"__PlatformerDash_SustainTime\"", "<=", "Object.Behavior::PropertyDashSustainDurationMin()" ] } ] } ] } ], "actions": [ { "type": { "value": "AdvancedJump::HorizontalDash::SetPropertyIsSustainning" }, "parameters": [ "Object", "Behavior", "" ] }, { "type": { "value": "AdvancedJump::PlatformerConfigurationStack::ConfigureDeceleration" }, "parameters": [ "Object", "PlatformerConfigurationStack", "Object.Behavior::PropertyDashDecceleration()", "\"HorizontalDash\"", "" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "PlatformBehavior::IsJumping" }, "parameters": [ "Object", "PlatformerCharacter" ] } ], "actions": [ { "type": { "value": "AdvancedJump::PlatformerConfigurationStack::ConfigureGravity" }, "parameters": [ "Object", "PlatformerConfigurationStack", "Object.Behavior::PropertyDashGravity()", "\"HorizontalDashGravity\"", "" ] } ] }, { "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "DebuggerTools::ConsoleLog" }, "parameters": [ "\"Sustain end\"", "", "" ] } ] } ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "After sustain" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "AdvancedJump::HorizontalDash::PropertyIsSustainning" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateLeftKey" }, "parameters": [ "Object", "PlatformerCharacter" ] }, { "type": { "value": "PlatformBehavior::SimulateRightKey" }, "parameters": [ "Object", "PlatformerCharacter" ] } ], "events": [ { "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "DebuggerTools::ConsoleLog" }, "parameters": [ "ToString(Object.PlatformerCharacter::CurrentSpeed())", "", "" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Dashing end" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::CurrentSpeed" }, "parameters": [ "Object", "PlatformerCharacter", "<=", "Object.PlatformerConfigurationStack::UsualMaxSpeed()" ] }, { "type": { "value": "PlatformBehavior::CurrentSpeed" }, "parameters": [ "Object", "PlatformerCharacter", ">=", "-Object.PlatformerConfigurationStack::UsualMaxSpeed()" ] } ], "actions": [ { "type": { "value": "AdvancedJump::HorizontalDash::AbortDash" }, "parameters": [ "Object", "Behavior", "" ] } ], "events": [ { "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "DebuggerTools::ConsoleLog" }, "parameters": [ "\"Dash end\"", "", "" ] } ] } ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "AdvancedJump::HorizontalDash::SetPropertyDashKeyIsPressed" }, "parameters": [ "Object", "Behavior", "no" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::HorizontalDash", "type": "behavior" } ], "objectGroups": [] }, { "description": "Simulate a press of dash key.", "fullName": "Simulate dash key", "functionType": "Action", "name": "SimulateDashKey", "sentence": "Simulate pressing dash key for _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "AdvancedJump::HorizontalDash::SetPropertyDashKeyIsPressed" }, "parameters": [ "Object", "Behavior", "yes" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AdvancedJump::HorizontalDash::PropertyCanDash" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "ResetObjectTimer" }, "parameters": [ "Object", "\"__PlatformerDash_SustainTime\"" ] }, { "type": { "value": "AdvancedJump::HorizontalDash::SetPropertyIsSustainning" }, "parameters": [ "Object", "Behavior", "yes" ] }, { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::AbortJump" }, "parameters": [ "Object", "PlatformerCharacter" ] }, { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::SetCurrentFallSpeed" }, "parameters": [ "Object", "PlatformerCharacter", "=", "0" ] }, { "type": { "value": "AdvancedJump::PlatformerConfigurationStack::ConfigureGravity" }, "parameters": [ "Object", "PlatformerConfigurationStack", "Object.Behavior::PropertyDashSustainGravity()", "\"HorizontalDashGravity\"", "" ] }, { "type": { "value": "AdvancedJump::PlatformerConfigurationStack::ConfigureMaxSpeed" }, "parameters": [ "Object", "PlatformerConfigurationStack", "Object.Behavior::PropertyDashSustainSpeedMax()", "\"HorizontalDash\"", "" ] }, { "type": { "value": "AdvancedJump::PlatformerConfigurationStack::ConfigureAcceleration" }, "parameters": [ "Object", "PlatformerConfigurationStack", "Object.Behavior::PropertyDashSustainAcceleration()", "\"HorizontalDash\"", "" ] }, { "type": { "value": "AdvancedJump::PlatformerConfigurationStack::ConfigureDeceleration" }, "parameters": [ "Object", "PlatformerConfigurationStack", "0", "\"HorizontalDash\"", "" ] }, { "type": { "value": "AdvancedJump::HorizontalDash::SetPropertyCanDash" }, "parameters": [ "Object", "Behavior", "no" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AdvancedJump::HorizontalDash::PropertyLastDirectionIsLeft" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::SetCurrentSpeed" }, "parameters": [ "Object", "PlatformerCharacter", "=", "-Object.Behavior::PropertyDashInitialSpeed()" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "AdvancedJump::HorizontalDash::PropertyLastDirectionIsLeft" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::SetCurrentSpeed" }, "parameters": [ "Object", "PlatformerCharacter", "=", "Object.Behavior::PropertyDashInitialSpeed()" ] } ] }, { "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "DebuggerTools::ConsoleLog" }, "parameters": [ "\"Dash start\"", "", "" ] } ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::HorizontalDash", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if the object is dashing.", "fullName": "Is dashing", "functionType": "Condition", "name": "IsDashing", "sentence": "_PARAM0_ is dashing", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CompareObjectTimer" }, "parameters": [ "Object", "\"__PlatformerDash_SustainTime\"", ">=", "0" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::HorizontalDash", "type": "behavior" } ], "objectGroups": [] }, { "description": "Abort the current dash and set the object to its usual horizontal speed.", "fullName": "Abort dash", "functionType": "Action", "name": "AbortDash", "sentence": "Abort the current dash of _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "AdvancedJump::PlatformerConfigurationStack::RevertConfiguration" }, "parameters": [ "Object", "PlatformerConfigurationStack", "\"HorizontalDash\"", "" ] }, { "type": { "value": "AdvancedJump::PlatformerConfigurationStack::RevertConfiguration" }, "parameters": [ "Object", "PlatformerConfigurationStack", "\"HorizontalDashGravity\"", "" ] }, { "type": { "value": "RemoveObjectTimer" }, "parameters": [ "Object", "\"__PlatformerDash_SustainTime\"" ] }, { "type": { "value": "ResetObjectTimer" }, "parameters": [ "Object", "\"__PlatformerDash_CoolDown\"" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::CurrentSpeed" }, "parameters": [ "Object", "PlatformerCharacter", "<", "0" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::SetCurrentSpeed" }, "parameters": [ "Object", "PlatformerCharacter", "=", "-Object.PlatformerConfigurationStack::UsualMaxSpeed()" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::CurrentSpeed" }, "parameters": [ "Object", "PlatformerCharacter", ">", "0" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::SetCurrentSpeed" }, "parameters": [ "Object", "PlatformerCharacter", "=", "Object.PlatformerConfigurationStack::UsualMaxSpeed()" ] } ] }, { "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "DebuggerTools::ConsoleLog" }, "parameters": [ "\"Dash end\"", "", "" ] } ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::HorizontalDash", "type": "behavior" } ], "objectGroups": [] } ], "propertyDescriptors": [ { "value": "", "type": "Behavior", "label": "Platformer character behavior", "description": "", "group": "", "extraInformation": [ "PlatformBehavior::PlatformerObjectBehavior" ], "hidden": false, "name": "PlatformerCharacter" }, { "value": "", "type": "Behavior", "label": "Platformer charcacter configuration stack", "description": "", "group": "", "extraInformation": [ "AdvancedJump::PlatformerConfigurationStack" ], "hidden": false, "name": "PlatformerConfigurationStack" }, { "value": "500", "type": "Number", "label": "Initial speed", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "DashInitialSpeed" }, { "value": "0", "type": "Number", "label": "Sustain minimum duration", "description": "", "group": "Sustain", "extraInformation": [], "hidden": false, "name": "DashSustainDurationMin" }, { "value": "0.25", "type": "Number", "label": "Sustain maxiumum duration", "description": "", "group": "Sustain", "extraInformation": [], "hidden": false, "name": "DashSustainDurationMax" }, { "value": "1500", "type": "Number", "label": "Sustain acceleration", "description": "", "group": "Sustain", "extraInformation": [], "hidden": false, "name": "DashSustainAcceleration" }, { "value": "750", "type": "Number", "label": "Sustain maxiumum speed", "description": "", "group": "Sustain", "extraInformation": [], "hidden": false, "name": "DashSustainSpeedMax" }, { "value": "0", "type": "Number", "label": "Sustain gravity", "description": "", "group": "Sustain", "extraInformation": [], "hidden": false, "name": "DashSustainGravity" }, { "value": "3000", "type": "Number", "label": "Decceleration", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "DashDecceleration" }, { "value": "1000", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "DashGravity" }, { "value": "0.25", "type": "Number", "label": "Cool down duration", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "CoolDownDuration" }, { "value": "", "type": "Boolean", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "LastDirectionIsLeft" }, { "value": "", "type": "Boolean", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "DashKeyIsPressed" }, { "value": "", "type": "Boolean", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "IsSustainning" }, { "value": "true", "type": "Boolean", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "CanDash" } ], "sharedPropertyDescriptors": [] }, { "description": "Resolve conflict between platformer character configuration changes.", "fullName": "Platformer character configuration stack", "name": "PlatformerConfigurationStack", "objectType": "", "eventsFunctions": [ { "fullName": "", "functionType": "Action", "name": "onCreated", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::JsCode", "inlineCode": [ "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", "const object = objects[0];", "const behavior = object.getBehavior(behaviorName);", "/** @type {gdjs.PlatformerObjectRuntimeBehavior} */", "const character = object.getBehavior(behavior._getPlatformerCharacter());", "", "behavior.__settingNames = behavior.__settingNames || [\"gravity\", \"maxFallSpeed\", \"jumpSpeed\", \"jumpSustainTime\", \"acceleration\", \"deceleration\", \"maxSpeed\"];", "", "/** @type {{id:string, gravity: float, maxFallSpeed: float, jumpSpeed: float, jumpSustainTime: float, acceleration: float, deceleration: float, maxSpeed: float}[]} */", "const configurationChanges = [];", "behavior.__configurationChanges = configurationChanges;", "// Add the default configuration", "configurationChanges.push(({", " id: undefined,", " gravity: character.getGravity(),", " maxFallSpeed: character.getMaxFallingSpeed(),", " jumpSpeed: character.getJumpSpeed(),", " jumpSustainTime: character.getJumpSustainTime(),", " acceleration: character.getAcceleration(),", " deceleration: character.getDeceleration(),", " maxSpeed: character.getMaxSpeed()", "}));", "" ], "parameterObjects": "Object", "useStrict": true, "eventsSheetExpanded": true } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::PlatformerConfigurationStack", "type": "behavior" } ], "objectGroups": [] }, { "description": "Revert configuration changes for one identifier and update the character configuration to use the most recent ones.", "fullName": "Revert configuration", "functionType": "Action", "name": "RevertConfiguration", "sentence": "Revert configuration changes: _PARAM2_ on _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::JsCode", "inlineCode": [ "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", "const object = objects[0];", "const behavior = object.getBehavior(behaviorName);", "/** @type {gdjs.PlatformerObjectRuntimeBehavior} */", "const character = object.getBehavior(behavior._getPlatformerCharacter());", "/** @type {string} */", "const id = eventsFunctionContext.getArgument(\"Identifier\");", "", "if (id === undefined) {", " return;", "}", "", "/** @type {{id:string, gravity: float, maxFallSpeed: float, jumpSpeed: float, jumpSustainTime: float, acceleration: float, deceleration: float, maxSpeed: float}[]} */", "const configurationChanges = behavior.__configurationChanges || [];", "", "const index = configurationChanges.findIndex(value => value.id === id);", "if (index >= 0) {", " configurationChanges.splice(index, 1);", "", " // Update the configuration with the most recent changes.", " /** @type {string[]} */", " const settingNames = behavior.__settingNames;", " for (const settingName of settingNames) {", " const configuration = configurationChanges.find(value => value[settingName] !== undefined);", " const settingValue = configuration[settingName];", " // Methods can't be stored because the character instance could change.", " switch (settingName) {", " case \"gravity\":", " character.setGravity(settingValue);", " break;", " case \"maxFallSpeed\":", " character.setMaxFallingSpeed(settingValue);", " break;", " case \"jumpSpeed\":", " character.setJumpSpeed(settingValue);", " break;", " case \"jumpSustainTime\":", " character.setJumpSustainTime(settingValue);", " break;", " case \"acceleration\":", " character.setAcceleration(settingValue);", " break;", " case \"deceleration\":", " character.setDeceleration(settingValue);", " break;", " case \"maxSpeed\":", " character.setMaxSpeed(settingValue);", " break;", " }", " }", "}", "" ], "parameterObjects": "Object", "useStrict": true, "eventsSheetExpanded": true } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::PlatformerConfigurationStack", "type": "behavior" }, { "description": "Configuration identifier", "name": "Identifier", "type": "string" } ], "objectGroups": [] }, { "description": "Return the character property value when no change applies on it.", "fullName": "Setting", "functionType": "Expression", "name": "UsualSetting", "private": true, "sentence": "Configure the _PARAM2_ of _PARAM0_: _PARAM3_ with the identifier: _PARAM4_", "events": [ { "type": "BuiltinCommonInstructions::JsCode", "inlineCode": [ "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", "const object = objects[0];", "const behavior = object.getBehavior(behaviorName);", "/** @type {gdjs.PlatformerObjectRuntimeBehavior} */", "const character = object.getBehavior(behavior._getPlatformerCharacter());", "/** @type {string} */", "const settingName = eventsFunctionContext.getArgument(\"SettingName\");", "/** @type {float} */", "const settingValue = eventsFunctionContext.getArgument(\"SettingValue\");", "/** @type {string} */", "const id = eventsFunctionContext.getArgument(\"Identifier\");", "", "/** @type {{id:string, gravity: float, maxFallSpeed: float, jumpSpeed: float, jumpSustainTime: float, acceleration: float, deceleration: float, maxSpeed: float}[]} */", "const configurationChanges = behavior.__configurationChanges || [];", "", "eventsFunctionContext.returnValue = configurationChanges[configurationChanges.length - 1][settingName];", "" ], "parameterObjects": "Object", "useStrict": true, "eventsSheetExpanded": true } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::PlatformerConfigurationStack", "type": "behavior" }, { "description": "", "name": "SettingName", "type": "string" } ], "objectGroups": [] }, { "description": "Return the usual maximum horizontal speed when no configuration change applies on it.", "fullName": "Usual maximum horizontal speed", "functionType": "Expression", "name": "UsualMaxSpeed", "sentence": "Configure the maximum horizontal speed of _PARAM0_: _PARAM2_ with the identifier: _PARAM3_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::UsualSetting(\"maxSpeed\")" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::PlatformerConfigurationStack", "type": "behavior" } ], "objectGroups": [] }, { "description": "Configure a character property for a given configuration layer and move this layer on top.", "fullName": "Configure setting", "functionType": "Action", "name": "ConfigureSetting", "private": true, "sentence": "Configure the _PARAM2_ of _PARAM0_: _PARAM3_ with the identifier: _PARAM4_", "events": [ { "type": "BuiltinCommonInstructions::JsCode", "inlineCode": [ "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", "const object = objects[0];", "const behavior = object.getBehavior(behaviorName);", "/** @type {gdjs.PlatformerObjectRuntimeBehavior} */", "const character = object.getBehavior(behavior._getPlatformerCharacter());", "/** @type {string} */", "const settingName = eventsFunctionContext.getArgument(\"SettingName\");", "/** @type {float} */", "const settingValue = eventsFunctionContext.getArgument(\"SettingValue\");", "/** @type {string} */", "const id = eventsFunctionContext.getArgument(\"Identifier\");", "", "/** @type {{id:string, gravity: float, maxFallSpeed: float, jumpSpeed: float, jumpSustainTime: float, acceleration: float, deceleration: float, maxSpeed: float}[]} */", "const configurationChanges = behavior.__configurationChanges || [];", "", "const index = configurationChanges.findIndex(value => value.id === id);", "let configurationChange;", "if (index < 0) {", " configurationChange = {id:id, gravity: undefined, maxFallSpeed: undefined, jumpSpeed: undefined, jumpSustainTime: undefined, acceleration: undefined, deceleration: undefined, maxSpeed: undefined}", " configurationChanges.splice(0, 0, configurationChange);", "}", "else {", " configurationChange = configurationChanges[index];", " // Move the configuration change on top", " if (index > 0) {", " configurationChanges.splice(index, 1);", " configurationChanges.splice(0, 0, configurationChange);", " }", "}", "configurationChange[settingName] = settingValue;", "" ], "parameterObjects": "Object", "useStrict": true, "eventsSheetExpanded": true } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::PlatformerConfigurationStack", "type": "behavior" }, { "description": "", "name": "SettingName", "type": "string" }, { "description": "Setting value", "name": "SettingValue", "type": "expression" }, { "description": "Configuration identifier", "name": "Identifier", "type": "string" } ], "objectGroups": [] }, { "description": "Configure character gravity for a given configuration layer and move this layer on top.", "fullName": "Configure gravity", "functionType": "Action", "name": "ConfigureGravity", "sentence": "Configure the gravity of _PARAM0_: _PARAM2_ with the identifier: _PARAM3_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "AdvancedJump::PlatformerConfigurationStack::ConfigureSetting" }, "parameters": [ "Object", "Behavior", "\"gravity\"", "GetArgumentAsNumber(\"SettingValue\")", "GetArgumentAsString(\"Identifier\")", "" ] }, { "type": { "value": "PlatformBehavior::Gravity" }, "parameters": [ "Object", "PlatformerCharacter", "=", "GetArgumentAsNumber(\"SettingValue\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::PlatformerConfigurationStack", "type": "behavior" }, { "description": "Gravity", "name": "SettingValue", "type": "expression" }, { "description": "Configuration identifier", "name": "Identifier", "type": "string" } ], "objectGroups": [] }, { "description": "Configure character deceleration for a given configuration layer and move this layer on top.", "fullName": "Configure horizontal deceleration", "functionType": "Action", "name": "ConfigureDeceleration", "sentence": "Configure the horizontal deceleration of _PARAM0_: _PARAM2_ with the identifier: _PARAM3_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "AdvancedJump::PlatformerConfigurationStack::ConfigureSetting" }, "parameters": [ "Object", "Behavior", "\"deceleration\"", "GetArgumentAsNumber(\"SettingValue\")", "GetArgumentAsString(\"Identifier\")", "" ] }, { "type": { "value": "PlatformBehavior::Deceleration" }, "parameters": [ "Object", "PlatformerCharacter", "=", "GetArgumentAsNumber(\"SettingValue\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::PlatformerConfigurationStack", "type": "behavior" }, { "description": "Acceleration", "name": "SettingValue", "type": "expression" }, { "description": "Configuration identifier", "name": "Identifier", "type": "string" } ], "objectGroups": [] }, { "description": "Configure character maximum speed for a given configuration layer and move this layer on top.", "fullName": "Configure maximum horizontal speed", "functionType": "Action", "name": "ConfigureMaxSpeed", "sentence": "Configure the maximum horizontal speed of _PARAM0_: _PARAM2_ with the identifier: _PARAM3_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "AdvancedJump::PlatformerConfigurationStack::ConfigureSetting" }, "parameters": [ "Object", "Behavior", "\"maxSpeed\"", "GetArgumentAsNumber(\"SettingValue\")", "GetArgumentAsString(\"Identifier\")", "" ] }, { "type": { "value": "PlatformBehavior::MaxSpeed" }, "parameters": [ "Object", "PlatformerCharacter", "=", "GetArgumentAsNumber(\"SettingValue\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::PlatformerConfigurationStack", "type": "behavior" }, { "description": "Maximum horizontal speed", "name": "SettingValue", "type": "expression" }, { "description": "Configuration identifier", "name": "Identifier", "type": "string" } ], "objectGroups": [] }, { "description": "Configure character acceleration for a given configuration layer and move this layer on top.", "fullName": "Configure horizontal acceleration", "functionType": "Action", "name": "ConfigureAcceleration", "sentence": "Configure the horizontal acceleration of _PARAM0_: _PARAM2_ with the identifier: _PARAM3_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "AdvancedJump::PlatformerConfigurationStack::ConfigureSetting" }, "parameters": [ "Object", "Behavior", "\"acceleration\"", "GetArgumentAsNumber(\"SettingValue\")", "GetArgumentAsString(\"Identifier\")", "" ] }, { "type": { "value": "PlatformBehavior::Acceleration" }, "parameters": [ "Object", "PlatformerCharacter", "=", "GetArgumentAsNumber(\"SettingValue\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::PlatformerConfigurationStack", "type": "behavior" }, { "description": "Acceleration", "name": "SettingValue", "type": "expression" }, { "description": "Configuration identifier", "name": "Identifier", "type": "string" } ], "objectGroups": [] }, { "description": "Configure character maximum falling speed for a given configuration layer and move this layer on top.", "fullName": "Configure maximum falling speed", "functionType": "Action", "name": "ConfigureMaxFallSpeed", "sentence": "Configure the maximum falling speed of _PARAM0_: _PARAM2_ with the identifier: _PARAM3_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "AdvancedJump::PlatformerConfigurationStack::ConfigureSetting" }, "parameters": [ "Object", "Behavior", "\"maxFallSpeed\"", "GetArgumentAsNumber(\"SettingValue\")", "GetArgumentAsString(\"Identifier\")", "" ] }, { "type": { "value": "PlatformBehavior::MaxFallingSpeed" }, "parameters": [ "Object", "PlatformerCharacter", "=", "GetArgumentAsNumber(\"SettingValue\")", "yes" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedJump::PlatformerConfigurationStack", "type": "behavior" }, { "description": "Maximum falling speed", "name": "SettingValue", "type": "expression" }, { "description": "Configuration identifier", "name": "Identifier", "type": "string" } ], "objectGroups": [] } ], "propertyDescriptors": [ { "value": "", "type": "Behavior", "label": "Platformer character behavior", "description": "", "group": "", "extraInformation": [ "PlatformBehavior::PlatformerObjectBehavior" ], "hidden": false, "name": "PlatformerCharacter" } ], "sharedPropertyDescriptors": [] } ], "eventsBasedObjects": [] }, { "author": "@4ian", "category": "Game mechanic", "extensionNamespace": "", "fullName": "Fire bullets", "helpPath": "/extensions/fire-bullet/details", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLWJ1bGxldCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0xNCwyMkgxMFYyMUgxNFYyMk0xMywxMFY3SDExVjEwTDEwLDExLjVWMjBIMTRWMTEuNUwxMywxME0xMiwyQzEyLDIgMTEsMyAxMSw1VjZIMTNWNUMxMyw1IDEzLDMgMTIsMloiIC8+PC9zdmc+", "name": "FireBullet", "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/bullet.svg", "shortDescription": "Fire bullets, manage ammo, reloading and overheating.", "version": "0.6.3", "description": [ "This extension allows objects to fire bullets.", "", "It handles:", "- Cooldown between shots", "- Firing multiple bullets at a time ([open the project online](https://editor.gdevelop.io/?project=example://fire-bullet))", "- Ammo management", "- Overheat", "", "It can be used for:", "- Twin-stick shooters ([open the project online](https://editor.gdevelop.io/?project=example://conviction-of-gun-dude-desktop))", "- Shoot'em up ([open the project online](https://editor.gdevelop.io/?project=example://space-shooter))", "", "A simple example shows how to make firing patterns ([open the project online](https://editor.gdevelop.io/?project=example://firing-patterns))." ], "origin": { "identifier": "FireBullet", "name": "gdevelop-extension-store" }, "tags": [ "fire", "bullet", "spawn", "firerate", "reload", "weapon", "ranged", "ammo", "overheat" ], "authorIds": [ "wWP8BSlAW0UP4NeaHa2LcmmDzmH2", "xpwUwByyImTDcHEqDUqfyg0oRBt1", "2OwwM8ToR9dx9RJ2sAKTcrLmCB92", "gqDaZjCfevOOxBYkK6zlhtZnXCg1" ], "dependencies": [], "eventsFunctions": [], "eventsBasedBehaviors": [ { "description": "Fire bullets, manage ammo, reloading, and overheating.", "fullName": "Fire bullets", "name": "FireBullet", "objectType": "", "eventsFunctions": [ { "fullName": "", "functionType": "Action", "name": "onCreated", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ResetObjectTimer" }, "parameters": [ "Object", "\"__FireBullet.FiringCooldown\"" ] }, { "type": { "value": "FireBullet::FireBullet::SetPropertyAmmoQuantity" }, "parameters": [ "Object", "Behavior", "=", "Object.Behavior::PropertyStartingAmmo()" ] }, { "type": { "value": "FireBullet::FireBullet::SetPropertyShotsBeforeNextReload" }, "parameters": [ "Object", "Behavior", "=", "Object.Behavior::PropertyShotsPerReload()" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "Action", "name": "doStepPreEvents", "sentence": "", "events": [ { "colorB": 224, "colorG": 16, "colorR": 189, "creationTime": 0, "name": "Take a shot (if triggered)", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Creators can use the \"FireBullet\" action multiple times in a frame and it will be counted as a single \"shot\"." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "FireBullet::FireBullet::PropertyHasJustFired" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [], "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Reset firing cooldown", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ResetObjectTimer" }, "parameters": [ "Object", "\"__FireBullet.FiringCooldown\"" ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Update ammo", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Subtract 1 from ammo (if not unlimited ammo)" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "FireBullet::FireBullet::PropertyUnlimitedAmmo" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyAmmoQuantity" }, "parameters": [ "Object", "Behavior", "-", "1" ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Update reloading counter", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "FireBullet::FireBullet::PropertyShotsPerReload" }, "parameters": [ "Object", "Behavior", ">", "0" ] } ], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyShotsBeforeNextReload" }, "parameters": [ "Object", "Behavior", "-", "1" ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Automatically reload gun when needed", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "FireBullet::FireBullet::PropertyAutomaticReloading" }, "parameters": [ "Object", "Behavior" ] }, { "type": { "value": "FireBullet::FireBullet::IsReloadNeeded" }, "parameters": [ "Object", "Behavior", "" ] }, { "type": { "inverted": true, "value": "FireBullet::FireBullet::IsReloadInProgress" }, "parameters": [ "Object", "Behavior", "" ] } ], "actions": [ { "type": { "value": "FireBullet::FireBullet::ReloadAmmo" }, "parameters": [ "Object", "Behavior", "" ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Update Overheat", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Increase heat (if needed)" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "FireBullet::FireBullet::PropertyHeatIncreasePerShot" }, "parameters": [ "Object", "Behavior", ">", "0" ] } ], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyHeatLevel" }, "parameters": [ "Object", "Behavior", "+", "Object.Behavior::PropertyHeatIncreasePerShot()" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Check if this caused overheat" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "FireBullet::FireBullet::PropertyOverheatDuration" }, "parameters": [ "Object", "Behavior", ">", "0" ] }, { "type": { "value": "FireBullet::FireBullet::IsOverheated" }, "parameters": [ "Object", "Behavior", "" ] } ], "actions": [ { "type": { "value": "ResetObjectTimer" }, "parameters": [ "Object", "\"__FireBullet.OverheatDuration\"" ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Update statistics", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyTotalShotsFired" }, "parameters": [ "Object", "Behavior", "+", "1" ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Reset firing detection", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyHasJustFired" }, "parameters": [ "Object", "Behavior", "=" ] } ] } ], "parameters": [] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Reload gun when needed", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Detect when reload is completed" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "FireBullet::FireBullet::IsReloadInProgress" }, "parameters": [ "Object", "Behavior", "" ] }, { "type": { "value": "CompareObjectTimer" }, "parameters": [ "Object", "\"__FireBullet.ReloadingTimer\"", ">=", "Object.Behavior::PropertyReloadDuration()" ] } ], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyTotalReloadsCompleted" }, "parameters": [ "Object", "Behavior", "+", "1" ] }, { "type": { "value": "FireBullet::FireBullet::SetPropertyReloadInProgress" }, "parameters": [ "Object", "Behavior", "no" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "FireBullet::FireBullet::IsUnlimitedAmmo" }, "parameters": [ "Object", "Behavior", "" ] } ], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyShotsBeforeNextReload" }, "parameters": [ "Object", "Behavior", "=", "Object.Behavior::PropertyShotsPerReload()" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Only reload the amount of ammo available" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "FireBullet::FireBullet::IsUnlimitedAmmo" }, "parameters": [ "Object", "Behavior", "" ] } ], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyShotsBeforeNextReload" }, "parameters": [ "Object", "Behavior", "=", "min(Object.Behavior::PropertyShotsPerReload(), Object.Behavior::PropertyAmmoQuantity())" ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Reduce heat level (based on cooling rate)", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::CompareNumbers" }, "parameters": [ "Object.Behavior::HeatLevel()", ">", "0" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "FireBullet::FireBullet::PropertyExponentialCoolingRate" }, "parameters": [ "Object", "Behavior", ">", "0" ] } ], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyHeatLevel" }, "parameters": [ "Object", "Behavior", "=", "max(0, Object.Behavior::PropertyHeatLevel() - TimeDelta() * Object.Behavior::PropertyExponentialCoolingRate() * Object.Behavior::PropertyHeatLevel())" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "FireBullet::FireBullet::PropertyLinearCoolingRate" }, "parameters": [ "Object", "Behavior", ">", "0" ] } ], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyHeatLevel" }, "parameters": [ "Object", "Behavior", "=", "max(0, Object.Behavior::PropertyHeatLevel() - TimeDelta() * Object.Behavior::PropertyLinearCoolingRate())" ] } ] } ] } ], "parameters": [] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" } ], "objectGroups": [] }, { "description": "Fire bullets toward an object.", "fullName": "Fire bullets toward an object", "functionType": "Action", "name": "FireTowardObject", "sentence": "Fire _PARAM4_ from _PARAM0_, at position _PARAM2_; _PARAM3_, toward _PARAM5_ with speed _PARAM6_ px/s", "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Calculate the trajectory angle and use the \"Fire bullets\" action", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::Fire" }, "parameters": [ "Object", "Behavior", "GetArgumentAsNumber(\"XPosition\")", "GetArgumentAsNumber(\"YPosition\")", "Bullet", "Object.AngleToObject(TargetObject)", "GetArgumentAsNumber(\"Speed\")", "" ] } ] } ], "parameters": [] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" }, { "description": "X position, where to create the bullet", "name": "XPosition", "type": "expression" }, { "description": "Y position, where to create the bullet", "name": "YPosition", "type": "expression" }, { "description": "The bullet object", "name": "Bullet", "type": "objectListOrEmptyIfJustDeclared" }, { "description": "Target object", "name": "TargetObject", "type": "objectList" }, { "description": "Speed of the bullet, in pixels per second", "name": "Speed", "type": "expression" } ], "objectGroups": [] }, { "description": "Fire bullets toward a position.", "fullName": "Fire bullets toward a position", "functionType": "Action", "name": "FireTowardPosition", "sentence": "Fire _PARAM4_ from _PARAM0_, at position _PARAM2_; _PARAM3_, toward position _PARAM5_;_PARAM6_ with speed _PARAM7_ px/s", "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Calculate the trajectory angle and use the \"Fire bullets\" action", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::Fire" }, "parameters": [ "Object", "Behavior", "GetArgumentAsNumber(\"XPosition\")", "GetArgumentAsNumber(\"YPosition\")", "Bullet", "Object.AngleToPosition(GetArgumentAsNumber(\"TargetXPosition\"), GetArgumentAsNumber(\"TargetYPosition\"))", "GetArgumentAsNumber(\"Speed\")", "" ] } ] } ], "parameters": [] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" }, { "description": "X position, where to create the bullet", "name": "XPosition", "type": "expression" }, { "description": "Y position, where to create the bullet", "name": "YPosition", "type": "expression" }, { "description": "The bullet object", "name": "Bullet", "type": "objectListOrEmptyIfJustDeclared" }, { "description": "Target X position", "name": "TargetXPosition", "type": "expression" }, { "description": "Target Y position", "name": "TargetYPosition", "type": "expression" }, { "description": "Speed of the bullet, in pixels per second", "name": "Speed", "type": "expression" } ], "objectGroups": [] }, { "description": "Fire bullets in the direction of a given angle.", "fullName": "Fire bullets toward an angle", "functionType": "Action", "name": "Fire", "sentence": "Fire _PARAM4_ from _PARAM0_, at position _PARAM2_; _PARAM3_, toward angle _PARAM5_ and speed _PARAM6_ px/s", "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Check if ready to shoot", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "FireBullet::FireBullet::IsReadyToShoot" }, "parameters": [ "Object", "Behavior", "" ] } ], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyHasJustFired" }, "parameters": [ "Object", "Behavior", "yes" ] } ], "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Single bullet", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::CompareNumbers" }, "parameters": [ "Object.Behavior::PropertyBulletQuantity()", "=", "1" ] } ], "actions": [ { "type": { "value": "FireBullet::FireBullet::FireSingleBullet" }, "parameters": [ "Object", "Behavior", "GetArgumentAsNumber(\"XPosition\")", "GetArgumentAsNumber(\"YPosition\")", "Bullet", "GetArgumentAsNumber(\"Angle\")", "GetArgumentAsNumber(\"Speed\")", "" ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Multiple bullets", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::CompareNumbers" }, "parameters": [ "Object.Behavior::PropertyBulletQuantity()", ">", "1" ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__FireBullet.CurrentBulletAngle", "=", "GetArgumentAsNumber(\"Angle\") - Object.Behavior::PropertyFiringArc()/2" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__FireBullet.BatchOrderID", "=", "0" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Repeat", "repeatExpression": "Object.Behavior::PropertyBulletQuantity()", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::FireSingleBullet" }, "parameters": [ "Object", "Behavior", "GetArgumentAsNumber(\"XPosition\")", "GetArgumentAsNumber(\"YPosition\")", "Bullet", "Object.Variable(__FireBullet.CurrentBulletAngle) + RandomInRange(-Object.Behavior::PropertyAngleVariance(),Object.Behavior::PropertyAngleVariance())", "GetArgumentAsNumber(\"Speed\")", "" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Move temp variable to the next angle a bullet will be sent" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__FireBullet.CurrentBulletAngle", "+", "Object.Behavior::PropertyFiringArc() / (Object.Behavior::PropertyBulletQuantity() - 1)" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__FireBullet.BatchOrderID", "+", "1" ] } ] } ] } ] } ], "parameters": [] } ] } ], "parameters": [] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" }, { "description": "X position, where to create the bullet", "name": "XPosition", "type": "expression" }, { "description": "Y position, where to create the bullet", "name": "YPosition", "type": "expression" }, { "description": "The bullet object", "name": "Bullet", "type": "objectListOrEmptyIfJustDeclared" }, { "description": "Angle of the bullet, in degrees", "name": "Angle", "type": "expression" }, { "description": "Speed of the bullet, in pixels per second", "name": "Speed", "type": "expression" } ], "objectGroups": [] }, { "description": "Fire a single bullet. This is only meant to be used inside the \"Fire bullet\" action.", "fullName": "Fire a single bullet", "functionType": "Action", "group": "Firing", "name": "FireSingleBullet", "private": true, "sentence": "Fire a single bullet _PARAM4_ from _PARAM0_, at position _PARAM2_; _PARAM3_, with angle _PARAM5_ and speed _PARAM6_ px/s", "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Fire a single bullet", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Create bullet" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "Create" }, "parameters": [ "", "Bullet", "GetArgumentAsNumber(\"XPosition\")", "GetArgumentAsNumber(\"YPosition\")", "Object.Behavior::PropertyBulletLayer()" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Move bullet (apply angle and bullet speed variances)" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyRandomizedAngle" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Angle\") + RandomInRange(-Object.Behavior::PropertyAngleVariance(), Object.Behavior::PropertyAngleVariance())" ] }, { "type": { "value": "AddForceAL" }, "parameters": [ "Bullet", "Object.Behavior::PropertyRandomizedAngle()", "GetArgumentAsNumber(\"Speed\") + RandomInRange(-Object.Behavior::PropertyBulletSpeedVariance(), Object.Behavior::PropertyBulletSpeedVariance())", "1" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Add identifier variables (to enable advanced picking by users)" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Bullet", "__FireBullet.BulletID", "=", "Object.Behavior::PropertyTotalBulletsCreated()" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Bullet", "__FireBullet.BatchID", "=", "Object.Behavior::PropertyTotalShotsFired()" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Bullet", "__FireBullet.BatchOrderID", "=", "0" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Rotate newly created bullet, if needed" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "FireBullet::FireBullet::PropertyRotateBullet" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "SetAngle" }, "parameters": [ "Bullet", "=", "Object.Behavior::PropertyRandomizedAngle()" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Update statistics" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyTotalBulletsCreated" }, "parameters": [ "Object", "Behavior", "+", "1" ] } ] } ], "parameters": [] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" }, { "description": "X position, where to create the bullet", "name": "XPosition", "type": "expression" }, { "description": "Y position, where to create the bullet", "name": "YPosition", "type": "expression" }, { "description": "The bullet object", "name": "Bullet", "type": "objectListOrEmptyIfJustDeclared" }, { "description": "Angle of the bullet, in degrees", "name": "Angle", "type": "expression" }, { "description": "Speed of the bullet, in pixels per second", "name": "Speed", "type": "expression" } ], "objectGroups": [] }, { "description": "Reload ammo.", "fullName": "Reload ammo", "functionType": "Action", "name": "ReloadAmmo", "sentence": "Reload ammo on _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "FireBullet::FireBullet::IsOutOfAmmo" }, "parameters": [ "Object", "Behavior", "" ] } ], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyReloadInProgress" }, "parameters": [ "Object", "Behavior", "yes" ] }, { "type": { "value": "ResetObjectTimer" }, "parameters": [ "Object", "\"__FireBullet.ReloadingTimer\"" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if the object has just fired something.", "fullName": "Has just fired", "functionType": "Condition", "group": "Firing", "name": "HasJustFired", "sentence": "_PARAM0_ has just fired", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "False" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "FireBullet::FireBullet::PropertyHasJustFired" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if bullet rotates to match trajectory.", "fullName": "Is bullet rotation enabled", "functionType": "Condition", "group": "Firing", "name": "BulletRotationEnabled", "sentence": "Bullet rotation enabled on _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "FireBullet::FireBullet::PropertyRotateBullet" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" } ], "objectGroups": [] }, { "description": "the firing arc (in degrees) where bullets are shot. Bullets are evenly spaced out inside the firing arc.", "fullName": "Firing arc", "functionType": "ExpressionAndCondition", "group": "Multi-Fire", "name": "FiringArc", "sentence": "the firing arc", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyFiringArc()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "FiringArc", "name": "SetFiringArcOp", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyFiringArc" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" }, { "description": "Firing arc (degrees) Range: 0 to 360", "name": "Value", "type": "expression" } ], "objectGroups": [] }, { "description": "Change the firing arc (in degrees) where bullets will be shot. Bullets will be evenly spaced out inside the firing arc.", "fullName": "Set firing arc (deprecated)", "functionType": "Action", "group": "Multi-Fire", "name": "SetFiringArc", "private": true, "sentence": "Set firing arc of _PARAM0_ to _PARAM2_ degrees", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetFiringArcOp" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" }, { "description": "Firing arc (degrees) Range: 0 to 360", "name": "Value", "type": "expression" } ], "objectGroups": [] }, { "description": "the angle variance (in degrees) applied to each bullet.", "fullName": "Angle variance", "functionType": "ExpressionAndCondition", "group": "Firing variance", "name": "AngleVariance", "sentence": "the angle variance", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyAngleVariance()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "AngleVariance", "name": "SetAngleVarianceOp", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyAngleVariance" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" }, { "description": "Angle variance (degrees) Range: 0 to 180", "name": "Value", "type": "expression" } ], "objectGroups": [] }, { "description": "Change the angle variance (in degrees) applied to each bullet.", "fullName": "Set angle variance (deprecated)", "functionType": "Action", "group": "Firing", "name": "SetAngleVariance", "private": true, "sentence": "Set angle variance of _PARAM0_ to _PARAM2_ degrees", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetAngleVarianceOp" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" }, { "description": "Angle variance (degrees) Range: 0 to 180", "name": "Value", "type": "expression" } ], "objectGroups": [] }, { "description": "the bullet speed variance (pixels per second) applied to each bullet.", "fullName": "Bullet speed variance", "functionType": "ExpressionAndCondition", "group": "Firing variance", "name": "BulletSpeedVariance", "sentence": "the bullet speed variance", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyBulletSpeedVariance()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "BulletSpeedVariance", "name": "SetBulletSpeedVarianceOp", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyBulletSpeedVariance" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" }, { "description": "Angle variance (degrees) Range: 0 to 180", "name": "Value", "type": "expression" } ], "objectGroups": [] }, { "description": "Change the speed variance (pixels per second) applied to each bullet.", "fullName": "Set bullet speed variance (deprecated)", "functionType": "Action", "group": "Multi-Fire", "name": "SetBulletSpeedVariance", "private": true, "sentence": "Set bullet speed variance of _PARAM0_ to _PARAM2_ pixels per second", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetBulletSpeedVarianceOp" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" }, { "description": "Angle variance (degrees) Range: 0 to 180", "name": "Value", "type": "expression" } ], "objectGroups": [] }, { "description": "the number of bullets shot every time the \"fire bullet\" action is used.", "fullName": "Bullets per shot", "functionType": "ExpressionAndCondition", "group": "Multi-Fire", "name": "BulletQuantity", "sentence": "the number of bullets per shot", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyBulletQuantity()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "BulletQuantity", "name": "SetBulletQuantityOp", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyBulletQuantity" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" }, { "description": "Bullets", "name": "Value", "type": "expression" } ], "objectGroups": [] }, { "description": "Change the number of bullets shot every time the \"fire bullet\" action is used.", "fullName": "Set number of bullets per shot (deprecated)", "functionType": "Action", "group": "Multi-Fire", "name": "SetBulletQuantity", "private": true, "sentence": "Set number of bullets per shot of _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetBulletQuantityOp" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" }, { "description": "Bullets", "name": "Value", "type": "expression" } ], "objectGroups": [] }, { "description": "Change the layer that bullets are created on.", "fullName": "Set bullet layer", "functionType": "Action", "group": "Firing", "name": "SetBulletLayer", "sentence": "Set the layer used to create bullets fired by _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyBulletLayer" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsString(\"Value\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" }, { "description": "Layer", "name": "Value", "type": "layer" } ], "objectGroups": [] }, { "description": "Enable bullet rotation.", "fullName": "Enable (or disable) bullet rotation", "functionType": "Action", "group": "Firing", "name": "SetRotateBullet", "sentence": "Enable bullet rotation on _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "GetArgumentAsBoolean" }, "parameters": [ "\"RotateBullet\"" ] } ], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyRotateBullet" }, "parameters": [ "Object", "Behavior", "no" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "GetArgumentAsBoolean" }, "parameters": [ "\"RotateBullet\"" ] } ], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyRotateBullet" }, "parameters": [ "Object", "Behavior", "yes" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" }, { "defaultValue": "yes", "description": "Rotate bullet to match trajetory", "name": "RotateBullet", "optional": true, "type": "yesorno" } ], "objectGroups": [] }, { "description": "Enable unlimited ammo.", "fullName": "Enable (or disable) unlimited ammo", "functionType": "Action", "group": "Ammo", "name": "SetUnlimitedAmmo", "sentence": "Enable unlimited ammo on _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "GetArgumentAsBoolean" }, "parameters": [ "\"UnlimitedAmmo\"" ] } ], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyUnlimitedAmmo" }, "parameters": [ "Object", "Behavior", "no" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "GetArgumentAsBoolean" }, "parameters": [ "\"UnlimitedAmmo\"" ] } ], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyUnlimitedAmmo" }, "parameters": [ "Object", "Behavior", "yes" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" }, { "defaultValue": "yes", "description": "Unlimited ammo", "name": "UnlimitedAmmo", "optional": true, "type": "yesorno" } ], "objectGroups": [] }, { "description": "the firing cooldown (in seconds) also known as rate of fire.", "fullName": "Firing cooldown", "functionType": "ExpressionAndCondition", "group": "Firing", "name": "Cooldown", "sentence": "the firing cooldown", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyFireCooldown()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "Cooldown", "name": "SetCooldownOp", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyFireCooldown" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" }, { "description": "Cooldown in seconds", "name": "NewCooldown", "type": "expression" } ], "objectGroups": [] }, { "description": "Change the firing cooldown, which changes the rate of fire.", "fullName": "Set firing cooldown (deprecated)", "functionType": "Action", "group": "Firing", "name": "SetCooldown", "private": true, "sentence": "Set the fire rate of _PARAM0_ to _PARAM2_ seconds", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetCooldownOp" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"NewCooldown\")", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" }, { "description": "Cooldown in seconds", "name": "NewCooldown", "type": "expression" } ], "objectGroups": [] }, { "description": "the reload duration (in seconds).", "fullName": "Reload duration", "functionType": "ExpressionAndCondition", "group": "Reload", "name": "ReloadDuration", "sentence": "the reload duration", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyReloadDuration()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "ReloadDuration", "name": "SetReloadDurationOp", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyReloadDuration" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" }, { "description": "Reload duration (seconds)", "name": "Value", "type": "expression" } ], "objectGroups": [] }, { "description": "Change the duration to reload ammo.", "fullName": "Set reload duration (deprecated)", "functionType": "Action", "group": "Reload", "name": "SetReloadDuration", "private": true, "sentence": "Set the reload duration of _PARAM0_ to _PARAM2_ seconds", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetReloadDurationOp" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" }, { "description": "Reload duration (seconds)", "name": "Value", "type": "expression" } ], "objectGroups": [] }, { "description": "the overheat duration (in seconds). When an object is overheated, it can't fire for this duration.", "fullName": "Overheat duration", "functionType": "ExpressionAndCondition", "group": "Overheat", "name": "OverheatDuration", "sentence": "the overheat duration", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyOverheatDuration()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "OverheatDuration", "name": "SetOverheatDurationOp", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyOverheatDuration" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" }, { "description": "Overheat duration (seconds)", "name": "Value", "type": "expression" } ], "objectGroups": [] }, { "description": "Change the duration after becoming overheated.", "fullName": "Set overheat duration (deprecated)", "functionType": "Action", "group": "Overheat", "name": "SetOverheatDuration", "private": true, "sentence": "Set the overheat duration of _PARAM0_ to _PARAM2_ seconds", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetOverheatDurationOp" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" }, { "description": "Overheat duration (seconds)", "name": "Value", "type": "expression" } ], "objectGroups": [] }, { "description": "the ammo quantity.", "fullName": "Ammo quantity", "functionType": "ExpressionAndCondition", "group": "Ammo", "name": "AmmoQuantity", "sentence": "the ammo quantity", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyAmmoQuantity()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "AmmoQuantity", "name": "SetAmmoQuantityOp", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyAmmoQuantity" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" }, { "description": "Ammo", "name": "Value", "type": "expression" } ], "objectGroups": [] }, { "description": "Change the quantity of ammo.", "fullName": "Set ammo quantity (deprecated)", "functionType": "Action", "group": "Ammo", "name": "SetAmmoQuantity", "private": true, "sentence": "Set the ammo quantity of _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetAmmoQuantityOp" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" }, { "description": "Ammo", "name": "Value", "type": "expression" } ], "objectGroups": [] }, { "description": "the heat increase per shot.", "fullName": "Heat increase per shot", "functionType": "ExpressionAndCondition", "group": "Overheat", "name": "HeatIncreasePerShot", "sentence": "the heat increase per shot", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyHeatIncreasePerShot()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "HeatIncreasePerShot", "name": "SetHeatPerShotOp", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyHeatIncreasePerShot" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" }, { "description": "Heat increase per shot (Range: 0 to 1)", "name": "Value", "type": "expression" } ], "objectGroups": [] }, { "description": "Change the heat increase per shot.", "fullName": "Set heat increase per shot (deprecated)", "functionType": "Action", "group": "Overheat", "name": "SetHeatPerShot", "private": true, "sentence": "Set the heat increase of _PARAM0_ to _PARAM2_ per shot", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetHeatPerShotOp" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" }, { "description": "Heat increase per shot (Range: 0 to 1)", "name": "Value", "type": "expression" } ], "objectGroups": [] }, { "description": "the max ammo.", "fullName": "Max ammo", "functionType": "ExpressionAndCondition", "group": "Ammo", "name": "MaxAmmo", "sentence": "the max ammo", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyMaxAmmo()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "MaxAmmo", "name": "SetMaxAmmoOp", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyMaxAmmo" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "FireBullet::FireBullet::PropertyMaxAmmo" }, "parameters": [ "Object", "Behavior", ">", "0" ] } ], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyAmmoQuantity" }, "parameters": [ "Object", "Behavior", "=", "min(Object.Behavior::MaxAmmo(),Object.Behavior::AmmoQuantity())" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" }, { "description": "Max ammo", "name": "Value", "type": "expression" } ], "objectGroups": [] }, { "description": "Change the max ammo.", "fullName": "Set max ammo (deprecated)", "functionType": "Action", "group": "Ammo", "name": "SetMaxAmmo", "private": true, "sentence": "Set the max ammo of _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetMaxAmmoOp" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" }, { "description": "Max ammo", "name": "Value", "type": "expression" } ], "objectGroups": [] }, { "description": "Reset total shots fired.", "fullName": "Reset total shots fired", "functionType": "Action", "group": "Stats", "name": "ResetTotalShotsFired", "sentence": "Reset total shots fired by _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyTotalShotsFired" }, "parameters": [ "Object", "Behavior", "=", "0" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" } ], "objectGroups": [] }, { "description": "Reset total bullets created.", "fullName": "Reset total bullets created", "functionType": "Action", "group": "Stats", "name": "ResetTotalBulletsCreated", "sentence": "Reset total bullets created by _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyTotalBulletsCreated" }, "parameters": [ "Object", "Behavior", "=", "0" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" } ], "objectGroups": [] }, { "description": "Reset total reloads completed.", "fullName": "Reset total reloads completed", "functionType": "Action", "group": "Stats", "name": "ResetTotalReloadsCompleted", "sentence": "Reset total reloads completed by _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyTotalReloadsCompleted" }, "parameters": [ "Object", "Behavior", "=", "0" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" } ], "objectGroups": [] }, { "description": "the number of shots per reload.", "fullName": "Shots per reload", "functionType": "ExpressionAndCondition", "group": "Reload", "name": "ShotsPerReload", "sentence": "the shots per reload", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyShotsPerReload()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "ShotsPerReload", "name": "SetShotsPerReloadOp", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyShotsPerReload" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "FireBullet::FireBullet::PropertyShotsBeforeNextReload" }, "parameters": [ "Object", "Behavior", ">", "Object.Behavior::PropertyShotsPerReload()" ] } ], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyShotsBeforeNextReload" }, "parameters": [ "Object", "Behavior", "=", "Object.Behavior::PropertyShotsPerReload()" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" }, { "description": "Shots per reload", "name": "Value", "type": "expression" } ], "objectGroups": [] }, { "description": "Change the number of shots per reload.", "fullName": "Set shots per reload (deprecated)", "functionType": "Action", "group": "Reload", "name": "SetShotsPerReload", "private": true, "sentence": "Set the shots per reload of _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetShotsPerReloadOp" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" }, { "description": "Shots per reload", "name": "Value", "type": "expression" } ], "objectGroups": [] }, { "description": "Enable (or disable) automatic reloading.", "fullName": "Enable (or disable) automatic reloading", "functionType": "Action", "group": "Reload", "name": "SetAutomaticReload", "sentence": "Enable automatic reloading on _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyAutomaticReloading" }, "parameters": [ "Object", "Behavior", "=" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "GetArgumentAsBoolean" }, "parameters": [ "\"Value\"" ] } ], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyAutomaticReloading" }, "parameters": [ "Object", "Behavior", "yes" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" }, { "defaultValue": "yes", "description": "Enable automatic reloading", "name": "Value", "optional": true, "type": "yesorno" } ], "objectGroups": [] }, { "description": "the linear cooling rate (per second).", "fullName": "Linear cooling rate", "functionType": "ExpressionAndCondition", "group": "Overheat", "name": "LinearCoolingRate", "sentence": "the linear cooling rate", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyLinearCoolingRate()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "LinearCoolingRate", "name": "SetLinearCoolingRateOp", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyLinearCoolingRate" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" }, { "description": "Heat cooling rate (per second)", "name": "Value", "type": "expression" } ], "objectGroups": [] }, { "description": "Change the linear rate of cooling.", "fullName": "Set linear cooling rate (deprecated)", "functionType": "Action", "group": "Overheat", "name": "SetLinearCoolingRate", "private": true, "sentence": "Set the linear cooling rate of _PARAM0_ to _PARAM2_ per second", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetLinearCoolingRateOp" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" }, { "description": "Heat cooling rate (per second)", "name": "Value", "type": "expression" } ], "objectGroups": [] }, { "description": "the exponential cooling rate, per second.", "fullName": "Exponential cooling rate", "functionType": "ExpressionAndCondition", "group": "Overheat", "name": "ExponentialCoolingRate", "sentence": "the exponential cooling rate", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyExponentialCoolingRate()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "ExponentialCoolingRate", "name": "SetExponentialCoolingRateOp", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyExponentialCoolingRate" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" }, { "description": "Exponential cooling rate", "name": "Value", "supplementaryInformation": "[\"Exponential\",\"Linear\"]", "type": "expression" } ], "objectGroups": [] }, { "description": "Change the exponential rate of cooling.", "fullName": "Set exponential cooling rate (deprecated)", "functionType": "Action", "group": "Overheat", "name": "SetExponentialCoolingRate", "private": true, "sentence": "Set the exponential cooling rate of _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetExponentialCoolingRateOp" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" }, { "description": "Exponential cooling rate", "name": "Value", "supplementaryInformation": "[\"Exponential\",\"Linear\"]", "type": "expression" } ], "objectGroups": [] }, { "description": "Increase ammo quantity.", "fullName": "Increase ammo", "functionType": "Action", "name": "IncreaseAmmo", "sentence": "Increase ammo of _PARAM0_ by _PARAM2_ shots", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyAmmoQuantity" }, "parameters": [ "Object", "Behavior", "+", "GetArgumentAsNumber(\"AmmoGained\")" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "If Max Ammo is set, do not exceed the value" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "FireBullet::FireBullet::PropertyMaxAmmo" }, "parameters": [ "Object", "Behavior", ">", "0" ] } ], "actions": [ { "type": { "value": "FireBullet::FireBullet::SetPropertyAmmoQuantity" }, "parameters": [ "Object", "Behavior", "=", "min(Object.Behavior::MaxAmmo(),Object.Behavior::AmmoQuantity())" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "FireBullet::FireBullet::IsReloadNeeded" }, "parameters": [ "Object", "Behavior", "" ] }, { "type": { "value": "FireBullet::FireBullet::PropertyAutomaticReloading" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "FireBullet::FireBullet::ReloadAmmo" }, "parameters": [ "Object", "Behavior", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" }, { "description": "Ammo gained", "name": "AmmoGained", "type": "expression" } ], "objectGroups": [] }, { "description": "Layer that bullets are created on.", "fullName": "Bullet layer", "functionType": "StringExpression", "group": "Multi-Fire", "name": "BulletLayer", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnString" }, "parameters": [ "Object.Behavior::PropertyBulletLayer()" ] } ] } ], "expressionType": { "type": "layer" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" } ], "objectGroups": [] }, { "description": "the heat level (range: 0 to 1).", "fullName": "Heat level", "functionType": "ExpressionAndCondition", "group": "Overheat", "name": "HeatLevel", "sentence": "the heat level", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "min(1,Object.Behavior::PropertyHeatLevel())" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" } ], "objectGroups": [] }, { "description": "Total shots fired (multi-bullet shots are considered one shot).", "fullName": "Shots fired", "functionType": "Expression", "group": "Stats", "name": "TotalShotsFired", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyTotalShotsFired()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" } ], "objectGroups": [] }, { "description": "Total bullets created.", "fullName": "Bullets created", "functionType": "Expression", "group": "Stats", "name": "TotalBulletsCreated", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyTotalBulletsCreated()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" } ], "objectGroups": [] }, { "description": "Reloads completed.", "fullName": "Reloads completed", "functionType": "Expression", "group": "Stats", "name": "TotalReloadsCompleted", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyTotalReloadsCompleted()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" } ], "objectGroups": [] }, { "description": "the remaining shots before the next reload is required.", "fullName": "Shots before next reload", "functionType": "ExpressionAndCondition", "group": "Reload", "name": "ShotsBeforeNextReload", "sentence": "the remaining shots (before the next reload)", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyShotsBeforeNextReload()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" } ], "objectGroups": [] }, { "description": "the remaining duration before the cooldown will permit a bullet to be fired, in seconds.", "fullName": "Duration before cooldown end", "functionType": "ExpressionAndCondition", "group": "Firing", "name": "CooldownTimeLeft", "sentence": "the remaining duration before the cooldown end", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "max(0,Object.Behavior::Cooldown() - Object.ObjectTimerElapsedTime(\"__FireBullet.FiringCooldown\"))" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" } ], "objectGroups": [] }, { "description": "the remaining duration before the overheat penalty ends, in seconds.", "fullName": "Duration before overheat end", "functionType": "ExpressionAndCondition", "group": "Overheat", "name": "OverheatTimeLeft", "sentence": "the remaining duration before the overheat end", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CompareObjectTimer" }, "parameters": [ "Object", "\"__FireBullet.OverheatDuration\"", ">", "0" ] } ], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "max(0, Object.Behavior::PropertyOverheatDuration() - Object.ObjectTimerElapsedTime(\"__FireBullet.OverheatDuration\"))" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if object is currently performing an ammo reload.", "fullName": "Is ammo reloading in progress", "functionType": "Condition", "group": "Reload", "name": "IsReloadInProgress", "sentence": "_PARAM0_ is reloading ammo", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "False" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "FireBullet::FireBullet::PropertyReloadInProgress" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if object is ready to shoot.", "fullName": "Is ready to shoot", "functionType": "Condition", "group": "Firing", "name": "IsReadyToShoot", "sentence": "_PARAM0_ is ready to shoot", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "False" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "FireBullet::FireBullet::PropertyHasJustFired" }, "parameters": [ "Object", "Behavior" ] }, { "type": { "value": "BuiltinCommonInstructions::And" }, "parameters": [], "subInstructions": [ { "type": { "value": "BehaviorActivated" }, "parameters": [ "Object", "Behavior" ] }, { "type": { "inverted": true, "value": "FireBullet::FireBullet::IsOutOfAmmo" }, "parameters": [ "Object", "Behavior", "" ] }, { "type": { "inverted": true, "value": "FireBullet::FireBullet::IsReloadNeeded" }, "parameters": [ "Object", "Behavior", "" ] }, { "type": { "inverted": true, "value": "FireBullet::FireBullet::IsReloadInProgress" }, "parameters": [ "Object", "Behavior", "" ] }, { "type": { "inverted": true, "value": "FireBullet::FireBullet::IsFiringCooldownActive" }, "parameters": [ "Object", "Behavior", "" ] }, { "type": { "inverted": true, "value": "FireBullet::FireBullet::IsOverheated" }, "parameters": [ "Object", "Behavior", "" ] } ] } ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if automatic reloading is enabled.", "fullName": "Is automatic reloading enabled", "functionType": "Condition", "group": "Reload", "name": "IsAutomaticReloadingEnabled", "sentence": "Automatic reloading is enabled on_PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "False" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "FireBullet::FireBullet::PropertyAutomaticReloading" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if ammo is unlimited.", "fullName": "Is ammo unlimited", "functionType": "Condition", "group": "Ammo", "name": "IsUnlimitedAmmo", "sentence": "_PARAM0_ has unlimited ammo", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "False" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "FireBullet::FireBullet::PropertyUnlimitedAmmo" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if object has no ammo available.", "fullName": "Is out of ammo", "functionType": "Condition", "group": "Ammo", "name": "IsOutOfAmmo", "sentence": "_PARAM0_ is out of ammo", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "False" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "FireBullet::FireBullet::IsUnlimitedAmmo" }, "parameters": [ "Object", "Behavior", "" ] }, { "type": { "value": "FireBullet::FireBullet::PropertyAmmoQuantity" }, "parameters": [ "Object", "Behavior", "=", "0" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if object needs to reload ammo.", "fullName": "Is a reload needed", "functionType": "Condition", "group": "Reload", "name": "IsReloadNeeded", "sentence": "_PARAM0_ needs to reload ammo", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "False" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Shots per reload must not be \"0\"" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "FireBullet::FireBullet::PropertyShotsPerReload" }, "parameters": [ "Object", "Behavior", ">", "0" ] }, { "type": { "value": "FireBullet::FireBullet::PropertyShotsBeforeNextReload" }, "parameters": [ "Object", "Behavior", "=", "0" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if object is overheated.", "fullName": "Is overheated", "functionType": "Condition", "group": "Overheat", "name": "IsOverheated", "sentence": "_PARAM0_ is overheated", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "False" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "FireBullet::FireBullet::PropertyHeatLevel" }, "parameters": [ "Object", "Behavior", ">=", "1" ] }, { "type": { "value": "BuiltinCommonInstructions::CompareNumbers" }, "parameters": [ "Object.Behavior::OverheatTimeLeft()", ">", "0" ] } ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if firing cooldown is active.", "fullName": "Is firing cooldown active", "functionType": "Condition", "group": "Firing", "name": "IsFiringCooldownActive", "sentence": "Firing cooldown is active on _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "False" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::CompareNumbers" }, "parameters": [ "Object.Behavior::CooldownTimeLeft()", ">", "0" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" } ], "objectGroups": [] } ], "propertyDescriptors": [ { "value": "0.1", "type": "Number", "unit": "Second", "label": "Firing cooldown", "description": "Objects cannot shoot while firing cooldown is active", "group": "", "extraInformation": [], "hidden": false, "name": "FireCooldown" }, { "value": "", "type": "Boolean", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "HasJustFired" }, { "value": "45", "type": "Number", "unit": "DegreeAngle", "label": "Firing arc", "description": "Multi-Fire bullets will be evenly spaced inside the firing arc", "group": "Multi-Fire", "extraInformation": [], "hidden": false, "name": "FiringArc" }, { "value": "1", "type": "Number", "label": "Number of bullets created at once (Multi-Fire)", "description": "Multi-Fire bullets will be evenly spaced inside the firing arc", "group": "Multi-Fire", "extraInformation": [], "hidden": false, "name": "BulletQuantity" }, { "value": "0", "type": "Number", "unit": "DegreeAngle", "label": "Angle variance", "description": "Make imperfect aim (Range: 0 to 180 degrees)", "group": "Firing variance", "extraInformation": [], "hidden": false, "name": "AngleVariance" }, { "value": "true", "type": "Boolean", "label": "Rotate bullets to match their trajectory", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "RotateBullet" }, { "value": "0", "type": "Number", "label": "Ammo quantity (current)", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "AmmoQuantity" }, { "value": "0", "type": "Number", "label": "Shots per reload ", "description": "Use 0 to disable reloading", "group": "Reload", "extraInformation": [], "hidden": false, "name": "ShotsPerReload" }, { "value": "1", "type": "Number", "unit": "Second", "label": "Reloading duration", "description": "Objects cannot shoot while reloading is in progress", "group": "Reload", "extraInformation": [], "hidden": false, "name": "ReloadDuration" }, { "value": "0", "type": "Number", "label": "Max ammo ", "description": "", "group": "Ammo", "extraInformation": [], "hidden": false, "name": "MaxAmmo" }, { "value": "0", "type": "Number", "label": "Shots before next reload", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "ShotsBeforeNextReload" }, { "value": "0", "type": "Number", "label": "Total shots fired", "description": "Regardless of how many bullets are created, only 1 shot will be counted per frame", "group": "", "extraInformation": [], "hidden": true, "name": "TotalShotsFired" }, { "value": "0", "type": "Number", "label": "Total bullets created", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "TotalBulletsCreated" }, { "value": "0", "type": "Number", "label": "Starting ammo", "description": "", "group": "Ammo", "extraInformation": [], "hidden": false, "name": "StartingAmmo" }, { "value": "0", "type": "Number", "label": "Total reloads completed", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "TotalReloadsCompleted" }, { "value": "true", "type": "Boolean", "label": "Unlimited ammo", "description": "", "group": "Ammo", "extraInformation": [], "hidden": false, "name": "UnlimitedAmmo" }, { "value": "", "type": "Boolean", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "ReloadInProgress" }, { "value": "0", "type": "Number", "label": "Heat increase per shot (Range: 0 to 1)", "description": " Object is overheated when Heat reaches 1", "group": "Overheat", "extraInformation": [], "hidden": false, "name": "HeatIncreasePerShot" }, { "value": "0", "type": "Number", "label": "Heat level (Range: 0 to 1)", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "HeatLevel" }, { "value": "true", "type": "Boolean", "label": "Reload automatically", "description": "", "group": "Reload", "extraInformation": [], "hidden": false, "name": "AutomaticReloading" }, { "value": "0", "type": "Number", "unit": "Second", "label": "Overheat duration", "description": "Object cannot shoot while overheat duration is active", "group": "Overheat", "extraInformation": [], "hidden": false, "name": "OverheatDuration" }, { "value": "0.1", "type": "Number", "label": "Linear cooling rate (per second)", "description": "", "group": "Overheat", "extraInformation": [], "hidden": false, "name": "LinearCoolingRate" }, { "value": "0.3", "type": "Number", "label": "Exponential cooling rate (per second)", "description": "Happens faster when heat is high and slower when heat is low", "group": "Overheat", "extraInformation": [ "Linear", "Exponential" ], "hidden": false, "name": "ExponentialCoolingRate" }, { "value": "", "type": "String", "label": "Layer the bullets are created on", "description": "Base layer by default", "group": "Shooting configuration", "extraInformation": [], "hidden": true, "name": "BulletLayer" }, { "value": "0", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "RandomizedAngle" }, { "value": "0", "type": "Number", "unit": "PixelSpeed", "label": "Bullet speed variance", "description": "Bullet speed will be adjusted by a random value within this range", "group": "Firing variance", "extraInformation": [], "hidden": false, "name": "BulletSpeedVariance" } ], "sharedPropertyDescriptors": [] } ], "eventsBasedObjects": [] }, { "author": "Silver-Streak, @Bouh, Tristan Rhodes", "category": "Game mechanic", "extensionNamespace": "", "fullName": "Object \"Is On Screen\" Detection", "helpPath": "", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLW1vbml0b3Itc2NyZWVuc2hvdCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik05LDZINVYxMEg3VjhIOU0xOSwxMEgxN1YxMkgxNVYxNEgxOU0yMSwxNkgzVjRIMjFNMjEsMkgzQzEuODksMiAxLDIuODkgMSw0VjE2QTIsMiAwIDAsMCAzLDE4SDEwVjIwSDhWMjJIMTZWMjBIMTRWMThIMjFBMiwyIDAgMCwwIDIzLDE2VjRDMjMsMi44OSAyMi4xLDIgMjEsMiIgLz48L3N2Zz4=", "name": "IsOnScreen", "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/monitor-screenshot.svg", "shortDescription": "This adds a condition to detect if an object is on screen based off its current layer.", "version": "1.2.1", "description": [ "This extension adds conditions to check if an object is located within the visible portion of its layer's camera. The condition also allows for specifying padding to the virtual screen border.", "", "Note that this does not take into account any object visibility, such as being hidden or 0 opacity, but can be combined with those existing conditions." ], "origin": { "identifier": "IsOnScreen", "name": "gdevelop-extension-store" }, "tags": [ "is on screen", "condition", "visible", "hide", "screen" ], "authorIds": [ "2OwwM8ToR9dx9RJ2sAKTcrLmCB92", "8Ih1aa8f5gWUp4UB2BdhQ2iXWxJ3", "gqDaZjCfevOOxBYkK6zlhtZnXCg1" ], "dependencies": [], "eventsFunctions": [], "eventsBasedBehaviors": [ { "description": "This behavior provides a condition to check if the object is located within the visible portion of its layer's camera. The condition also allows for specifying padding to the virtual screen border.\nNote that object visibility, such as being hidden or 0 opacity, is not considered (but you can use those existing conditions in addition to this behavior).", "fullName": "Is on screen", "name": "InOnScreen", "objectType": "", "eventsFunctions": [ { "description": "Checks if an object position is within the viewport of its layer.", "fullName": "Is on screen", "functionType": "Condition", "name": "IsOnScreen", "sentence": "_PARAM0_ is on screen (padded by _PARAM2_ pixels)", "events": [ { "type": "BuiltinCommonInstructions::JsCode", "inlineCode": [ "/*", "Get the object layer, convert the position from this layer to the screen coordinates.", "Get the point on each side on the object on screen, and compare with the screen area.", "", "This way even if the camera has a rotation or custom scale the object is always compared to the screen area.", "*/", "", "", "// Get the layer of the object.", "const object = objects[0];", "const layer = runtimeScene.getLayer(object.getLayer());", "", "// Get the aabb of the object on his layer.", "const aabb = object.getVisibilityAABB();", "", "// Get the layer to convert the coordinates of the AABB to the screen coordinates", "const topLeft = layer.convertInverseCoords(aabb.min[0], aabb.min[1]);", "const topRight = layer.convertInverseCoords(aabb.max[0], aabb.min[1]);", "const bottomRight = layer.convertInverseCoords(aabb.max[0], aabb.max[1]);", "const bottomLeft = layer.convertInverseCoords(aabb.min[0], aabb.max[1]);", "", "// Get the points on each side of the object on screen.", "const posLeftObjectOnScreen = Math.min(topLeft[0], topRight[0], bottomLeft[0], bottomRight[0]);", "const posRightObjectOnScreen = Math.max(topLeft[0], topRight[0], bottomLeft[0], bottomRight[0]);", "const posUpObjectOnScreen = Math.min(topLeft[1], topRight[1], bottomLeft[1], bottomRight[1]);", "const posDownObjectOnScreen = Math.max(topLeft[1], topRight[1], bottomLeft[1], bottomRight[1]);", "", "const padding = eventsFunctionContext.getArgument(\"Padding\");", "", "if (", " !(posLeftObjectOnScreen - padding > runtimeScene.getGame().getGameResolutionWidth() ||", " posUpObjectOnScreen - padding > runtimeScene.getGame().getGameResolutionHeight() ||", " posRightObjectOnScreen + padding < 0 ||", " posDownObjectOnScreen + padding < 0", " )", ") {", " eventsFunctionContext.returnValue = true;", "}", "" ], "parameterObjects": "Object", "useStrict": true, "eventsSheetExpanded": true } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "IsOnScreen::InOnScreen", "type": "behavior" }, { "description": "Padding (in pixels)", "longDescription": "Number of pixels to pad the screen border. Zero by default. A negative value goes inside the screen, a positive value go outside.", "name": "Padding", "type": "expression" } ], "objectGroups": [ { "name": "Group", "objects": [] } ] } ], "propertyDescriptors": [], "sharedPropertyDescriptors": [] } ], "eventsBasedObjects": [] }, { "author": "VegeTato, D8H", "category": "Visual effect", "extensionNamespace": "", "fullName": "3D Flip", "helpPath": "", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLWZsaXAtaG9yaXpvbnRhbCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0xNSAyMUgxN1YxOUgxNU0xOSA5SDIxVjdIMTlNMyA1VjE5QzMgMjAuMSAzLjkgMjEgNSAyMUg5VjE5SDVWNUg5VjNINUMzLjkgMyAzIDMuOSAzIDVNMTkgM1Y1SDIxQzIxIDMuOSAyMC4xIDMgMTkgM00xMSAyM0gxM1YxSDExTTE5IDE3SDIxVjE1SDE5TTE1IDVIMTdWM0gxNU0xOSAxM0gyMVYxMUgxOU0xOSAyMUMyMC4xIDIxIDIxIDIwLjEgMjEgMTlIMTlaIiAvPjwvc3ZnPg==", "name": "ThreeDFlip", "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/flip-horizontal.svg", "shortDescription": "Flip sprites with a 3D rotation effect.", "version": "1.0.1", "description": [ "Flip sprites with a 3D rotation effect.", "", "Note that the X origin point must be at the center for the best results." ], "origin": { "identifier": "ThreeDFlip", "name": "gdevelop-extension-store" }, "tags": [ "flip" ], "authorIds": [ "IRIhkkTTl2UHhfjrLTTH5GYwkYu1", "IWykYNRvhCZBN3vEgKEbBPOR3Oc2" ], "dependencies": [], "eventsFunctions": [], "eventsBasedBehaviors": [ { "description": "Flip a Sprite with a 3D effect.", "fullName": "3D Flip", "name": "ThreeDFlip", "objectType": "Sprite", "eventsFunctions": [ { "fullName": "", "functionType": "Action", "name": "doStepPreEvents", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ThreeDFlip::ThreeDFlip::PropertyIsFlipping" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ThreeDFlip::ThreeDFlip::SetPropertyElapsedTime" }, "parameters": [ "Object", "Behavior", "+", "TimeDelta() * 1000" ] }, { "type": { "value": "ChangeWidth" }, "parameters": [ "Object", "=", "Object.Behavior::PropertyWidth() * abs(cos(3.141592 * Object.Behavior::PropertyElapsedTime() / Object.Behavior::PropertyDuration()))" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Egal" }, "parameters": [ "Object.Behavior::PropertyElapsedTime()", ">=", "Object.Behavior::PropertyDuration() / 2" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ThreeDFlip::ThreeDFlip::PropertyIsFlipped" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "FlipX" }, "parameters": [ "Object", "no" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "ThreeDFlip::ThreeDFlip::PropertyIsFlipped" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "FlipX" }, "parameters": [ "Object", "yes" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Egal" }, "parameters": [ "Object.Behavior::PropertyElapsedTime()", ">=", "Object.Behavior::PropertyDuration()" ] } ], "actions": [ { "type": { "value": "ChangeWidth" }, "parameters": [ "Object", "=", "Object.Behavior::PropertyWidth()" ] }, { "type": { "value": "ThreeDFlip::ThreeDFlip::SetPropertyIsFlipping" }, "parameters": [ "Object", "Behavior", "no" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "FlippedX" }, "parameters": [ "Object" ] } ], "actions": [ { "type": { "value": "ThreeDFlip::ThreeDFlip::SetPropertyIsFlipped" }, "parameters": [ "Object", "Behavior", "yes" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "FlippedX" }, "parameters": [ "Object" ] } ], "actions": [ { "type": { "value": "ThreeDFlip::ThreeDFlip::SetPropertyIsFlipped" }, "parameters": [ "Object", "Behavior", "no" ] } ] } ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "Sprite", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "ThreeDFlip::ThreeDFlip", "type": "behavior" } ], "objectGroups": [] }, { "description": "Start a flipping animation on the object.", "fullName": "Flip the object", "functionType": "Action", "name": "Flip", "sentence": "Flip _PARAM0_ over _PARAM2_ms", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "The previous animation is not yet finished, flip the other way around starting from there." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ThreeDFlip::ThreeDFlip::IsFlipping" }, "parameters": [ "Object", "Behavior", "" ] } ], "actions": [ { "type": { "value": "ThreeDFlip::ThreeDFlip::SetPropertyElapsedTime" }, "parameters": [ "Object", "Behavior", "=", "Object.Behavior::PropertyDuration() - Object.Behavior::PropertyElapsedTime() * GetArgumentAsNumber(\"Duration\") / Object.Behavior::PropertyDuration()" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Set the flipped property as if the previous animation has finished." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ThreeDFlip::ThreeDFlip::SetPropertyToggle" }, "parameters": [ "Object", "Behavior", "no" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "ThreeDFlip::ThreeDFlip::IsFlipped" }, "parameters": [ "Object", "Behavior", "" ] }, { "type": { "inverted": true, "value": "ThreeDFlip::ThreeDFlip::PropertyToggle" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "ThreeDFlip::ThreeDFlip::SetPropertyIsFlipped" }, "parameters": [ "Object", "Behavior", "yes" ] }, { "type": { "value": "ThreeDFlip::ThreeDFlip::SetPropertyToggle" }, "parameters": [ "Object", "Behavior", "yes" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ThreeDFlip::ThreeDFlip::IsFlipped" }, "parameters": [ "Object", "Behavior", "" ] }, { "type": { "inverted": true, "value": "ThreeDFlip::ThreeDFlip::PropertyToggle" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "ThreeDFlip::ThreeDFlip::SetPropertyIsFlipped" }, "parameters": [ "Object", "Behavior", "no" ] }, { "type": { "value": "ThreeDFlip::ThreeDFlip::SetPropertyToggle" }, "parameters": [ "Object", "Behavior", "yes" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Start a new flipping animation." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "ThreeDFlip::ThreeDFlip::IsFlipping" }, "parameters": [ "Object", "Behavior", "" ] } ], "actions": [ { "type": { "value": "ThreeDFlip::ThreeDFlip::SetPropertyWidth" }, "parameters": [ "Object", "Behavior", "=", "Object.Width()" ] }, { "type": { "value": "ThreeDFlip::ThreeDFlip::SetPropertyElapsedTime" }, "parameters": [ "Object", "Behavior", "=", "0" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ThreeDFlip::ThreeDFlip::SetPropertyIsFlipping" }, "parameters": [ "Object", "Behavior", "yes" ] }, { "type": { "value": "ThreeDFlip::ThreeDFlip::SetPropertyDuration" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Duration\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "Sprite", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "ThreeDFlip::ThreeDFlip", "type": "behavior" }, { "description": "Duration (in milliseconds)", "name": "Duration", "type": "expression" } ], "objectGroups": [] }, { "description": "Stops flipping the object.", "fullName": "Stop the flip", "functionType": "Action", "name": "StopFlip", "sentence": "Stop flipping _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ThreeDFlip::ThreeDFlip::SetPropertyIsFlipping" }, "parameters": [ "Object", "Behavior", "" ] }, { "type": { "value": "ChangeWidth" }, "parameters": [ "Object", "=", "Object.Behavior::PropertyWidth()" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "FlippedX" }, "parameters": [ "Object" ] } ], "actions": [ { "type": { "value": "ThreeDFlip::ThreeDFlip::SetPropertyIsFlipped" }, "parameters": [ "Object", "Behavior", "yes" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "FlippedX" }, "parameters": [ "Object" ] } ], "actions": [ { "type": { "value": "ThreeDFlip::ThreeDFlip::SetPropertyIsFlipped" }, "parameters": [ "Object", "Behavior", "no" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "Sprite", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "ThreeDFlip::ThreeDFlip", "type": "behavior" } ], "objectGroups": [] }, { "description": "Checks if a flipping animation is currently playing.", "fullName": "Flipping is playing", "functionType": "Condition", "name": "IsFlipping", "sentence": "_PARAM0_ is flipping", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ThreeDFlip::ThreeDFlip::PropertyIsFlipping" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "Sprite", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "ThreeDFlip::ThreeDFlip", "type": "behavior" } ], "objectGroups": [] }, { "description": "Checks if the object has been flipped.", "fullName": "Is flipped", "functionType": "Condition", "name": "IsFlipped", "sentence": "_PARAM0_ is flipped", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ThreeDFlip::ThreeDFlip::PropertyIsFlipped" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "Sprite", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "ThreeDFlip::ThreeDFlip", "type": "behavior" } ], "objectGroups": [] }, { "description": "Flips the object to one specific side.", "fullName": "Flip to a side", "functionType": "Action", "name": "FlipTo", "sentence": "Flip _PARAM0_ reverse side: _PARAM2_ over _PARAM3_ms", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "When the object is flipping, the \"is flipped\" parameter is not yet set,\nso it's value is the opposite of the animation goal." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "BuiltinCommonInstructions::And" }, "parameters": [], "subInstructions": [ { "type": { "value": "ThreeDFlip::ThreeDFlip::IsFlipping" }, "parameters": [ "Object", "Behavior", "" ] }, { "type": { "value": "GetArgumentAsBoolean" }, "parameters": [ "\"Flip\"" ] }, { "type": { "value": "ThreeDFlip::ThreeDFlip::IsFlipped" }, "parameters": [ "Object", "Behavior", "" ] } ] }, { "type": { "value": "BuiltinCommonInstructions::And" }, "parameters": [], "subInstructions": [ { "type": { "value": "ThreeDFlip::ThreeDFlip::IsFlipping" }, "parameters": [ "Object", "Behavior", "" ] }, { "type": { "inverted": true, "value": "GetArgumentAsBoolean" }, "parameters": [ "\"Flip\"" ] }, { "type": { "inverted": true, "value": "ThreeDFlip::ThreeDFlip::IsFlipped" }, "parameters": [ "Object", "Behavior", "" ] } ] }, { "type": { "value": "BuiltinCommonInstructions::And" }, "parameters": [], "subInstructions": [ { "type": { "inverted": true, "value": "ThreeDFlip::ThreeDFlip::IsFlipping" }, "parameters": [ "Object", "Behavior", "" ] }, { "type": { "value": "GetArgumentAsBoolean" }, "parameters": [ "\"Flip\"" ] }, { "type": { "inverted": true, "value": "ThreeDFlip::ThreeDFlip::IsFlipped" }, "parameters": [ "Object", "Behavior", "" ] } ] }, { "type": { "value": "BuiltinCommonInstructions::And" }, "parameters": [], "subInstructions": [ { "type": { "inverted": true, "value": "ThreeDFlip::ThreeDFlip::IsFlipping" }, "parameters": [ "Object", "Behavior", "" ] }, { "type": { "inverted": true, "value": "GetArgumentAsBoolean" }, "parameters": [ "\"Flip\"" ] }, { "type": { "value": "ThreeDFlip::ThreeDFlip::IsFlipped" }, "parameters": [ "Object", "Behavior", "" ] } ] } ] } ], "actions": [ { "type": { "value": "ThreeDFlip::ThreeDFlip::Flip" }, "parameters": [ "Object", "Behavior", "GetArgumentAsNumber(\"Duration\")", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "Sprite", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "ThreeDFlip::ThreeDFlip", "type": "behavior" }, { "description": "Reverse side", "name": "Flip", "supplementaryInformation": "[\"Flipped\",\"Unflipped\"]", "type": "yesorno" }, { "description": "Duration (in milliseconds)", "name": "Duration", "type": "expression" } ], "objectGroups": [] } ], "propertyDescriptors": [ { "value": "500", "type": "Number", "label": "Rotation duration (in milliseconds)", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "Duration" }, { "value": "", "type": "Boolean", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "IsFlipped" }, { "value": "\"r\"", "type": "Boolean", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "IsFlipping" }, { "value": "", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "Width" }, { "value": "", "type": "Number", "label": "Elapse time", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "ElapsedTime" }, { "value": "", "type": "Boolean", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "Toggle" } ], "sharedPropertyDescriptors": [] } ], "eventsBasedObjects": [] }, { "author": "", "category": "Input", "extensionNamespace": "", "fullName": "Behavior Remapper", "helpPath": "", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLWFscGhhLXctYm94LW91dGxpbmUiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNOSwxN0EyLDIgMCAwLDEgNywxNVY3SDlWMTVIMTFWOEgxM1YxNUgxNVY3SDE3VjE1QTIsMiAwIDAsMSAxNSwxN0g5TTUsM0gxOUEyLDIgMCAwLDEgMjEsNVYxOUEyLDIgMCAwLDEgMTksMjFINUEyLDIgMCAwLDEgMywxOVY1QTIsMiAwIDAsMSA1LDNNNSw1VjE5SDE5VjVINVoiIC8+PC9zdmc+", "name": "BehaviorRemapper", "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/alpha-w-box-outline.svg", "shortDescription": "Quickly remap Behavior controls to different keys. ", "version": "1.0.0", "description": [ "Make sure to disable default controls unless you want two keys to do the same action.", "", "Actions have two versions. `custom` allow the movement keys to be changed to what ever you would like. `presets` provide a common key-bindings that can be selected from a list.", "", "### Available Presets:", "", "##### `WASD`", "-\tW: Up", "-\tA: Left", "-\tS: Down", "-\tD: Right", "-\tSpace: Jump", "", "##### `ZQSD`", "-\tZ: Up", "-\tQ: Left", "-\tS: Down", "-\tD: Right", "-\tSpace: Jump", "", "##### `Numpad` (Num lock must be disabled)", "-\tNumpad Up: Up", "-\tNumpad Left: Left", "-\tNumpad Down: Down", "-\tNumpad Right: Right", "-\tNumpad Return/Enter: Jump", "", "##### `IJKL`", "-\tI: Up", "-\tJ: Left", "-\tK: Down", "-\tL: Right", "-\tReturn/Enter: Jump", "" ], "origin": { "identifier": "BehaviorRemapper", "name": "gdevelop-extension-store" }, "tags": [ "remapper", "key", "bindings", "presets", "platformer", "platform", "top-down" ], "authorIds": [ "AlZ3D1xkH0QDao7T37VZZUeYNpn1" ], "dependencies": [], "eventsFunctions": [], "eventsBasedBehaviors": [ { "description": "Allows for the controls of a Top-Down behavior to be re-mapped via a single action.", "fullName": "Remap Top-down", "name": "RemapForTopdown", "objectType": "", "eventsFunctions": [ { "fullName": "", "functionType": "Action", "name": "doStepPreEvents", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyFromTextPressed" }, "parameters": [ "", "Object.Behavior::PropertyUp()" ] } ], "actions": [ { "type": { "value": "TopDownMovementBehavior::SimulateUpKey" }, "parameters": [ "Object", "Topdown" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyFromTextPressed" }, "parameters": [ "", "Object.Behavior::PropertyLeft()" ] } ], "actions": [ { "type": { "value": "TopDownMovementBehavior::SimulateLeftKey" }, "parameters": [ "Object", "Topdown" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyFromTextPressed" }, "parameters": [ "", "Object.Behavior::PropertyRight()" ] } ], "actions": [ { "type": { "value": "TopDownMovementBehavior::SimulateRightKey" }, "parameters": [ "Object", "Topdown" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyFromTextPressed" }, "parameters": [ "", "Object.Behavior::PropertyDown()" ] } ], "actions": [ { "type": { "value": "TopDownMovementBehavior::SimulateDownKey" }, "parameters": [ "Object", "Topdown" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "BehaviorRemapper::RemapForTopdown", "type": "behavior" } ], "objectGroups": [] }, { "description": "Remaps Top-Down behavior controls to a custom control scheme.", "fullName": "Remap Top-Down controls to a custom scheme", "functionType": "Action", "name": "SetCustom", "sentence": "Remap controls of _PARAM0_: Up: _PARAM2_, Left: _PARAM3_, Down: _PARAM4_, Right: _PARAM5_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "BehaviorRemapper::RemapForTopdown::SetPropertyUp" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsString(\"up\")" ] }, { "type": { "value": "BehaviorRemapper::RemapForTopdown::SetPropertyLeft" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsString(\"left\")" ] }, { "type": { "value": "BehaviorRemapper::RemapForTopdown::SetPropertyRight" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsString(\"right\")" ] }, { "type": { "value": "BehaviorRemapper::RemapForTopdown::SetPropertyDown" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsString(\"down\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "BehaviorRemapper::RemapForTopdown", "type": "behavior" }, { "description": "Up key", "name": "up", "type": "key" }, { "description": "Left key", "name": "left", "type": "key" }, { "description": "Down key", "name": "down", "type": "key" }, { "description": "Right key", "name": "right", "type": "key" } ], "objectGroups": [] }, { "description": "Remaps Top-Down behavior controls to a preset control scheme.", "fullName": "Remap Top-Down controls to a preset", "functionType": "Action", "name": "SetPreset", "sentence": "Remap controls of _PARAM0_ to preset _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "QWERTY bindings" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "StrEqual" }, "parameters": [ "GetArgumentAsString(\"options\")", "=", "\"WASD\"" ] } ], "actions": [ { "type": { "value": "BehaviorRemapper::RemapForTopdown::SetPropertyUp" }, "parameters": [ "Object", "Behavior", "=", "\"w\"" ] }, { "type": { "value": "BehaviorRemapper::RemapForTopdown::SetPropertyLeft" }, "parameters": [ "Object", "Behavior", "=", "\"a\"" ] }, { "type": { "value": "BehaviorRemapper::RemapForTopdown::SetPropertyDown" }, "parameters": [ "Object", "Behavior", "=", "\"s\"" ] }, { "type": { "value": "BehaviorRemapper::RemapForTopdown::SetPropertyRight" }, "parameters": [ "Object", "Behavior", "=", "\"d\"" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "AZERTY bindings" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "StrEqual" }, "parameters": [ "GetArgumentAsString(\"options\")", "=", "\"ZQSD\"" ] } ], "actions": [ { "type": { "value": "BehaviorRemapper::RemapForTopdown::SetPropertyUp" }, "parameters": [ "Object", "Behavior", "=", "\"z\"" ] }, { "type": { "value": "BehaviorRemapper::RemapForTopdown::SetPropertyLeft" }, "parameters": [ "Object", "Behavior", "=", "\"q\"" ] }, { "type": { "value": "BehaviorRemapper::RemapForTopdown::SetPropertyDown" }, "parameters": [ "Object", "Behavior", "=", "\"s\"" ] }, { "type": { "value": "BehaviorRemapper::RemapForTopdown::SetPropertyDown" }, "parameters": [ "Object", "Behavior", "=", "\"d\"" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Numpad bindings" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "StrEqual" }, "parameters": [ "GetArgumentAsString(\"options\")", "=", "\"Numpad\"" ] } ], "actions": [ { "type": { "value": "BehaviorRemapper::RemapForTopdown::SetPropertyUp" }, "parameters": [ "Object", "Behavior", "=", "\"NumpadUp\"" ] }, { "type": { "value": "BehaviorRemapper::RemapForTopdown::SetPropertyLeft" }, "parameters": [ "Object", "Behavior", "=", "\"NumpadLeft\"" ] }, { "type": { "value": "BehaviorRemapper::RemapForTopdown::SetPropertyDown" }, "parameters": [ "Object", "Behavior", "=", "\"NumpadDown\"" ] }, { "type": { "value": "BehaviorRemapper::RemapForTopdown::SetPropertyRight" }, "parameters": [ "Object", "Behavior", "=", "\"NumpadRight\"" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "QWERTY player 2 bindings " }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "StrEqual" }, "parameters": [ "GetArgumentAsString(\"options\")", "=", "\"IJKL\"" ] } ], "actions": [ { "type": { "value": "BehaviorRemapper::RemapForTopdown::SetPropertyUp" }, "parameters": [ "Object", "Behavior", "=", "\"i\"" ] }, { "type": { "value": "BehaviorRemapper::RemapForTopdown::SetPropertyLeft" }, "parameters": [ "Object", "Behavior", "=", "\"j\"" ] }, { "type": { "value": "BehaviorRemapper::RemapForTopdown::SetPropertyDown" }, "parameters": [ "Object", "Behavior", "=", "\"k\"" ] }, { "type": { "value": "BehaviorRemapper::RemapForTopdown::SetPropertyRight" }, "parameters": [ "Object", "Behavior", "=", "\"l\"" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "BehaviorRemapper::RemapForTopdown", "type": "behavior" }, { "description": "Preset name", "name": "options", "supplementaryInformation": "[\"WASD\",\"ZQSD\",\"Numpad\",\"IJKL\"]", "type": "stringWithSelector" } ], "objectGroups": [] } ], "propertyDescriptors": [ { "value": "w", "type": "String", "label": "Up key", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "Up" }, { "value": "a", "type": "String", "label": "Left key", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "Left" }, { "value": "d", "type": "String", "label": "Right key", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "Right" }, { "value": "s", "type": "String", "label": "Down key", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "Down" }, { "value": "", "type": "Behavior", "label": "", "description": "", "group": "", "extraInformation": [ "TopDownMovementBehavior::TopDownMovementBehavior" ], "hidden": false, "name": "Topdown" } ], "sharedPropertyDescriptors": [] }, { "description": "Allows for the controls of a platformer behavior to be re-mapped via a single action.", "fullName": "Remap Platformer controls", "name": "RemapForPlatformer", "objectType": "", "eventsFunctions": [ { "fullName": "", "functionType": "Action", "name": "doStepPreEvents", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyFromTextPressed" }, "parameters": [ "", "Object.Behavior::PropertyUp()" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateUpKey" }, "parameters": [ "Object", "Platformer" ] }, { "type": { "value": "PlatformBehavior::SimulateLadderKey" }, "parameters": [ "Object", "Platformer" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyFromTextPressed" }, "parameters": [ "", "Object.Behavior::PropertyLeft()" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateLeftKey" }, "parameters": [ "Object", "Platformer" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyFromTextPressed" }, "parameters": [ "", "Object.Behavior::PropertyRight()" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateRightKey" }, "parameters": [ "Object", "Platformer" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyFromTextPressed" }, "parameters": [ "", "Object.Behavior::PropertyDown()" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateDownKey" }, "parameters": [ "Object", "Platformer" ] }, { "type": { "value": "PlatformBehavior::SimulateReleaseLadderKey" }, "parameters": [ "Object", "Platformer" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "KeyFromTextPressed" }, "parameters": [ "", "Object.Behavior::PropertyJump()" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateJumpKey" }, "parameters": [ "Object", "Platformer" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "BehaviorRemapper::RemapForPlatformer", "type": "behavior" } ], "objectGroups": [] }, { "description": "Remaps Platformer behavior controls to a custom control scheme.", "fullName": "Remap Platformer controls to a custom scheme", "functionType": "Action", "name": "SetCustom", "sentence": "Remap controls of _PARAM0_: Up: _PARAM2_, Left: _PARAM3_, Down: _PARAM4_, Right: _PARAM5_, Jump: _PARAM6_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyUp" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsString(\"up\")" ] }, { "type": { "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyLeft" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsString(\"left\")" ] }, { "type": { "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyRight" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsString(\"right\")" ] }, { "type": { "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyDown" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsString(\"down\")" ] }, { "type": { "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyJump" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsString(\"jump\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "BehaviorRemapper::RemapForPlatformer", "type": "behavior" }, { "description": "Up key", "name": "up", "type": "key" }, { "description": "Left key", "name": "left", "type": "key" }, { "description": "Down key", "name": "down", "type": "key" }, { "description": "Right key", "name": "right", "type": "key" }, { "description": "Jump key", "name": "jump", "type": "key" } ], "objectGroups": [] }, { "description": "Remaps Platformer behavior controls to a preset control scheme.", "fullName": "Remap Platformer controls to a preset", "functionType": "Action", "name": "SetPreset", "sentence": "Remap controls of _PARAM0_ to preset _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "QWERTY bindings" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "StrEqual" }, "parameters": [ "GetArgumentAsString(\"options\")", "=", "\"WASD\"" ] } ], "actions": [ { "type": { "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyUp" }, "parameters": [ "Object", "Behavior", "=", "\"w\"" ] }, { "type": { "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyLeft" }, "parameters": [ "Object", "Behavior", "=", "\"a\"" ] }, { "type": { "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyDown" }, "parameters": [ "Object", "Behavior", "=", "\"s\"" ] }, { "type": { "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyRight" }, "parameters": [ "Object", "Behavior", "=", "\"d\"" ] }, { "type": { "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyJump" }, "parameters": [ "Object", "Behavior", "=", "\"Space\"" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "AZERTY bindings" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "StrEqual" }, "parameters": [ "GetArgumentAsString(\"options\")", "=", "\"ZQSD\"" ] } ], "actions": [ { "type": { "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyUp" }, "parameters": [ "Object", "Behavior", "=", "\"z\"" ] }, { "type": { "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyLeft" }, "parameters": [ "Object", "Behavior", "=", "\"q\"" ] }, { "type": { "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyDown" }, "parameters": [ "Object", "Behavior", "=", "\"s\"" ] }, { "type": { "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyRight" }, "parameters": [ "Object", "Behavior", "=", "\"d\"" ] }, { "type": { "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyJump" }, "parameters": [ "Object", "Behavior", "=", "\"Space\"" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Numpad bindings" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "StrEqual" }, "parameters": [ "GetArgumentAsString(\"options\")", "=", "\"Numpad\"" ] } ], "actions": [ { "type": { "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyUp" }, "parameters": [ "Object", "Behavior", "=", "\"NumpadUp\"" ] }, { "type": { "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyLeft" }, "parameters": [ "Object", "Behavior", "=", "\"NumpadLeft\"" ] }, { "type": { "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyDown" }, "parameters": [ "Object", "Behavior", "=", "\"NumpadDown\"" ] }, { "type": { "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyRight" }, "parameters": [ "Object", "Behavior", "=", "\"NumpadRight\"" ] }, { "type": { "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyJump" }, "parameters": [ "Object", "Behavior", "=", "\"NumpadReturn\"" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "QWERTY player 2 bindings " }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "StrEqual" }, "parameters": [ "GetArgumentAsString(\"options\")", "=", "\"IJKL\"" ] } ], "actions": [ { "type": { "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyUp" }, "parameters": [ "Object", "Behavior", "=", "\"i\"" ] }, { "type": { "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyLeft" }, "parameters": [ "Object", "Behavior", "=", "\"j\"" ] }, { "type": { "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyDown" }, "parameters": [ "Object", "Behavior", "=", "\"k\"" ] }, { "type": { "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyRight" }, "parameters": [ "Object", "Behavior", "=", "\"l\"" ] }, { "type": { "value": "BehaviorRemapper::RemapForPlatformer::SetPropertyJump" }, "parameters": [ "Object", "Behavior", "=", "\"Return\"" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "BehaviorRemapper::RemapForPlatformer", "type": "behavior" }, { "description": "Preset name", "name": "options", "supplementaryInformation": "[\"WASD\",\"ZQSD\",\"Numpad\",\"IJKL\"]", "type": "stringWithSelector" } ], "objectGroups": [] } ], "propertyDescriptors": [ { "value": "", "type": "String", "label": "Up key", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "Up" }, { "value": "", "type": "String", "label": "Left key", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "Left" }, { "value": "", "type": "String", "label": "Down key", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "Down" }, { "value": "", "type": "String", "label": "Right key", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "Right" }, { "value": "", "type": "String", "label": "Jump key", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "Jump" }, { "value": "", "type": "Behavior", "label": "", "description": "", "group": "", "extraInformation": [ "PlatformBehavior::PlatformerObjectBehavior" ], "hidden": false, "name": "Platformer" } ], "sharedPropertyDescriptors": [] } ], "eventsBasedObjects": [] }, { "author": "@4ian", "category": "Movement", "extensionNamespace": "", "fullName": "Animated Back and Forth Movement", "helpPath": "", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXJlcGVhdCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0xNywxN0g3VjE0TDMsMThMNywyMlYxOUgxOVYxM0gxN003LDdIMTdWMTBMMjEsNkwxNywyVjVINVYxMUg3VjdaIiAvPjwvc3ZnPg==", "name": "AnimatedBackAndForthMovement", "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/repeat.svg", "shortDescription": "Make the object go on the left, then when some distance is reached, flip and go back to the right. Make sure that your object has two animations called \"GoLeft\" and \"TurnLeft\".", "version": "0.0.2", "description": "Make the object go on the left, then when some distance is reached, flip and go back to the right. **Make sure** that your object has **two animations called \"GoLeft\" and \"TurnLeft\"**.", "origin": { "identifier": "AnimatedBackAndForthMovement", "name": "gdevelop-extension-store" }, "tags": [ "back", "forth", "movement" ], "authorIds": [ "wWP8BSlAW0UP4NeaHa2LcmmDzmH2" ], "dependencies": [], "eventsFunctions": [], "eventsBasedBehaviors": [ { "description": "Make the object go on the left, then when some distance is reached, flip and go back to the right. Make sure that your object has two animations called \"GoLeft\" and \"TurnLeft\".", "fullName": "Animated Back and Forth (mirrored) Movement", "name": "AnimatedBackAndForthMirroredMovement", "objectType": "Sprite", "eventsFunctions": [ { "fullName": "", "functionType": "Action", "name": "doStepPreEvents", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AnimatedBackAndForthMovement::AnimatedBackAndForthMirroredMovement::PropertyInitialX" }, "parameters": [ "Object", "Behavior", "=", "0" ] } ], "actions": [ { "type": { "value": "AnimatedBackAndForthMovement::AnimatedBackAndForthMirroredMovement::SetPropertyInitialX" }, "parameters": [ "Object", "Behavior", "=", "Object.X()" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Move the object to the left or right" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AnimationName" }, "parameters": [ "Object", "\"GoLeft\"" ] }, { "type": { "inverted": true, "value": "FlippedX" }, "parameters": [ "Object" ] } ], "actions": [ { "type": { "value": "AddForceXY" }, "parameters": [ "Object", "-Object.Behavior::PropertySpeedX()", "0", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AnimationName" }, "parameters": [ "Object", "\"GoLeft\"" ] }, { "type": { "value": "FlippedX" }, "parameters": [ "Object" ] } ], "actions": [ { "type": { "value": "AddForceXY" }, "parameters": [ "Object", "+Object.Behavior::PropertySpeedX()", "0", "" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "If the distance \"DistanceX\" is reached, turn the object" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PosX" }, "parameters": [ "Object", ">", "Object.Behavior::PropertyInitialX()" ] } ], "actions": [ { "type": { "value": "MettreX" }, "parameters": [ "Object", "=", "Object.Behavior::PropertyInitialX()" ] }, { "type": { "value": "SetAnimationName" }, "parameters": [ "Object", "\"TurnLeft\"" ] }, { "type": { "value": "FlipX" }, "parameters": [ "Object", "no" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PosX" }, "parameters": [ "Object", "<", "Object.Behavior::PropertyInitialX() - Object.Behavior::PropertyDistanceX()" ] } ], "actions": [ { "type": { "value": "MettreX" }, "parameters": [ "Object", "=", "Object.Behavior::PropertyInitialX() - Object.Behavior::PropertyDistanceX()" ] }, { "type": { "value": "SetAnimationName" }, "parameters": [ "Object", "\"TurnLeft\"" ] }, { "type": { "value": "FlipX" }, "parameters": [ "Object", "yes" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "At the end of the turn, go back to moving to th left (or right if flipped)" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AnimationName" }, "parameters": [ "Object", "\"TurnLeft\"" ] }, { "type": { "value": "AnimationEnded" }, "parameters": [ "Object" ] } ], "actions": [ { "type": { "value": "SetAnimationName" }, "parameters": [ "Object", "\"GoLeft\"" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "Sprite", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AnimatedBackAndForthMovement::AnimatedBackAndForthMirroredMovement", "type": "behavior" } ], "objectGroups": [] } ], "propertyDescriptors": [ { "value": "200", "type": "Number", "unit": "PixelSpeed", "label": "Speed on X axis, in pixels per second", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "SpeedX" }, { "value": "300", "type": "Number", "unit": "Pixel", "label": "Distance traveled on X axis, in pixels", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "DistanceX" }, { "value": "0", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "InitialX" } ], "sharedPropertyDescriptors": [] } ], "eventsBasedObjects": [] }, { "author": "@4ian", "category": "Movement", "extensionNamespace": "", "fullName": "Linear Movement", "helpPath": "", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXJheS1zdGFydC1hcnJvdyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0yMywxMkwxOSwxNlYxM0g2LjgzQzYuNDIsMTQuMTcgNS4zMSwxNSA0LDE1QTMsMyAwIDAsMSAxLDEyQTMsMyAwIDAsMSA0LDlDNS4zMSw5IDYuNDIsOS44MyA2LjgzLDExSDE5VjhMMjMsMTJaIiAvPjwvc3ZnPg==", "name": "LinearMovement", "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/ray-start-arrow.svg", "shortDescription": "Move the object linearly, according to the speed configured on X and Y axis. Useful for simple enemies, bullets or objects following a straight line on the screen.", "version": "0.0.2", "description": "Move the object linearly, according to the speed configured on X and Y axis. Useful for simple enemies, bullets or objects following a straight line on the screen.", "origin": { "identifier": "LinearMovement", "name": "gdevelop-extension-store" }, "tags": [ "line", "movement", "linear" ], "authorIds": [ "wWP8BSlAW0UP4NeaHa2LcmmDzmH2" ], "dependencies": [], "eventsFunctions": [], "eventsBasedBehaviors": [ { "description": "Move the object linearly, according to the speed configured on X and Y axis. Useful for simple enemies, bullets or objects following a straight line on the screen.", "fullName": "Linear movement", "name": "LinearMovement", "objectType": "", "eventsFunctions": [ { "fullName": "", "functionType": "Action", "name": "doStepPreEvents", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "AddForceXY" }, "parameters": [ "Object", "Object.Behavior::PropertySpeedX()", "Object.Behavior::PropertySpeedY()", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "LinearMovement::LinearMovement", "type": "behavior" } ], "objectGroups": [] } ], "propertyDescriptors": [ { "value": "0", "type": "Number", "unit": "PixelSpeed", "label": "Speed on X axis", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "SpeedX" }, { "value": "0", "type": "Number", "unit": "PixelSpeed", "label": "Speed on Y axis", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "SpeedY" } ], "sharedPropertyDescriptors": [] } ], "eventsBasedObjects": [] }, { "author": "@4ian, Tristan Rhodes (https://victrisgames.itch.io/)", "category": "Movement", "extensionNamespace": "", "fullName": "Ellipse movement", "helpPath": "", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXNpbmUtd2F2ZSIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0xNi41LDIxQzEzLjUsMjEgMTIuMzEsMTYuNzYgMTEuMDUsMTIuMjhDMTAuMTQsOS4wNCA5LDUgNy41LDVDNC4xMSw1IDQsMTEuOTMgNCwxMkgyQzIsMTEuNjMgMi4wNiwzIDcuNSwzQzEwLjUsMyAxMS43MSw3LjI1IDEyLjk3LDExLjc0QzEzLjgzLDE0LjggMTUsMTkgMTYuNSwxOUMxOS45NCwxOSAyMC4wMywxMi4wNyAyMC4wMywxMkgyMi4wM0MyMi4wMywxMi4zNyAyMS45NywyMSAxNi41LDIxWiIgLz48L3N2Zz4=", "name": "EllipseMovement", "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/sine-wave.svg", "shortDescription": "Move objects on ellipses or smoothly back and forth in one direction.", "version": "1.0.2", "description": [ "It allows objects to move:", "- on an ellipsis or arcs", "- smoothly vertically or horizontally (by setting one radius to 0)", "- on a sine wave (by adding a force)", "", "It can be used for:", "- Making objects float, such as powerups or coins", "- Moving platforms", "- Enemy movement patterns", "- Making a player constantly turn right or left ([open the project online](https://editor.gdevelop.io/?project=example://star-seeker))" ], "origin": { "identifier": "EllipseMovement", "name": "gdevelop-extension-store" }, "tags": [ "sine", "ellipse", "movement", "circular", "circle", "floating", "platform", "enemy" ], "authorIds": [ "wWP8BSlAW0UP4NeaHa2LcmmDzmH2", "gqDaZjCfevOOxBYkK6zlhtZnXCg1", "IWykYNRvhCZBN3vEgKEbBPOR3Oc2" ], "dependencies": [], "eventsFunctions": [], "eventsBasedBehaviors": [ { "description": "Move objects on ellipses or smoothly back and forth in one direction.", "fullName": "Ellipse movement", "name": "EllipseMovement", "objectType": "", "eventsFunctions": [ { "fullName": "", "functionType": "Action", "name": "onCreated", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "EllipseMovement::EllipseMovement::SetPropertyOldX" }, "parameters": [ "Object", "Behavior", "=", "Object.X()" ] }, { "type": { "value": "EllipseMovement::EllipseMovement::SetPropertyOldY" }, "parameters": [ "Object", "Behavior", "=", "Object.Y()" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Evaluate the center of movement from the object position and properties." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "EllipseMovement::EllipseMovement::PropertyInitialTurningLeft" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "EllipseMovement::EllipseMovement::SetPropertyLoopDuration" }, "parameters": [ "Object", "Behavior", "*", "-1" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "EllipseMovement::EllipseMovement::PropertyLoopDuration" }, "parameters": [ "Object", "Behavior", "<", "0" ] } ], "actions": [ { "type": { "value": "EllipseMovement::EllipseMovement::SetPropertyMovementAngle" }, "parameters": [ "Object", "Behavior", "=", "Object.Behavior::PropertyInitialDirectionAngle() + 90" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "EllipseMovement::EllipseMovement::PropertyLoopDuration" }, "parameters": [ "Object", "Behavior", ">=", "0" ] } ], "actions": [ { "type": { "value": "EllipseMovement::EllipseMovement::SetPropertyMovementAngle" }, "parameters": [ "Object", "Behavior", "=", "Object.Behavior::PropertyInitialDirectionAngle() - 90" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "EllipseMovement::EllipseMovement::SetPropertyCenterX" }, "parameters": [ "Object", "Behavior", "=", "Object.X() - Object.Behavior::DeltaX()" ] }, { "type": { "value": "EllipseMovement::EllipseMovement::SetPropertyCenterY" }, "parameters": [ "Object", "Behavior", "=", "Object.Y() - Object.Behavior::DeltaY()" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "EllipseMovement::EllipseMovement", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "Action", "name": "doStepPreEvents", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Update the center when the object is moved outside of the behavior." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "EllipseMovement::EllipseMovement::SetPropertyCenterX" }, "parameters": [ "Object", "Behavior", "+", "Object.X() - Object.Behavior::PropertyOldX()" ] }, { "type": { "value": "EllipseMovement::EllipseMovement::SetPropertyCenterY" }, "parameters": [ "Object", "Behavior", "+", "Object.Y() - Object.Behavior::PropertyOldY()" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Place the object according to the movement angle." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "EllipseMovement::EllipseMovement::PropertyRadiusX" }, "parameters": [ "Object", "Behavior", "!=", "0" ] } ], "actions": [ { "type": { "value": "MettreX" }, "parameters": [ "Object", "=", "Object.Behavior::PropertyCenterX() + Object.Behavior::DeltaX()" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "EllipseMovement::EllipseMovement::PropertyRadiusY" }, "parameters": [ "Object", "Behavior", "!=", "0" ] } ], "actions": [ { "type": { "value": "MettreY" }, "parameters": [ "Object", "=", "Object.Behavior::PropertyCenterY() + Object.Behavior::DeltaY()" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "EllipseMovement::EllipseMovement::PropertyShouldRotate" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "SetAngle" }, "parameters": [ "Object", "=", "Object.Behavior::DirectionAngle() + Object.Behavior::PropertyRotationOffset()" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Save the position to detect when the object is moved outside of the behavior." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "EllipseMovement::EllipseMovement::SetPropertyOldX" }, "parameters": [ "Object", "Behavior", "=", "Object.X()" ] }, { "type": { "value": "EllipseMovement::EllipseMovement::SetPropertyOldY" }, "parameters": [ "Object", "Behavior", "=", "Object.Y()" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "EllipseMovement::EllipseMovement", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "Action", "name": "doStepPostEvents", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Update the movement angle for the next frame." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "EllipseMovement::EllipseMovement::SetPropertyMovementAngle" }, "parameters": [ "Object", "Behavior", "+", "360 * TimeDelta() / Object.Behavior::PropertyLoopDuration()" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "EllipseMovement::EllipseMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Change the turning direction (left or right).", "fullName": "Turn the other way", "functionType": "Action", "name": "ToggleTurningLeft", "sentence": "_PARAM0_ turn the other way", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "EllipseMovement::EllipseMovement::SetPropertyCenterX" }, "parameters": [ "Object", "Behavior", "=", "2 * Object.X() - Object.Behavior::CenterX()" ] }, { "type": { "value": "EllipseMovement::EllipseMovement::SetPropertyCenterY" }, "parameters": [ "Object", "Behavior", "=", "2 * Object.Y() - Object.Behavior::CenterY()" ] }, { "type": { "value": "EllipseMovement::EllipseMovement::SetPropertyMovementAngle" }, "parameters": [ "Object", "Behavior", "+", "180" ] }, { "type": { "value": "EllipseMovement::EllipseMovement::SetPropertyLoopDuration" }, "parameters": [ "Object", "Behavior", "*", "-1" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "EllipseMovement::EllipseMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Change the in which side the object is turning (left or right).", "fullName": "Turn left or right", "functionType": "Action", "name": "SetTurningLeft", "sentence": "_PARAM0_ turn left: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "BuiltinCommonInstructions::And" }, "parameters": [], "subInstructions": [ { "type": { "value": "EllipseMovement::EllipseMovement::IsTurningLeft" }, "parameters": [ "Object", "Behavior", "yes", "" ] }, { "type": { "inverted": true, "value": "GetArgumentAsBoolean" }, "parameters": [ "\"TurnLeft\"" ] } ] }, { "type": { "value": "BuiltinCommonInstructions::And" }, "parameters": [], "subInstructions": [ { "type": { "inverted": true, "value": "EllipseMovement::EllipseMovement::IsTurningLeft" }, "parameters": [ "Object", "Behavior", "" ] }, { "type": { "value": "GetArgumentAsBoolean" }, "parameters": [ "\"TurnLeft\"" ] } ] } ] } ], "actions": [ { "type": { "value": "EllipseMovement::EllipseMovement::ToggleTurningLeft" }, "parameters": [ "Object", "Behavior", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "EllipseMovement::EllipseMovement", "type": "behavior" }, { "description": "Turn left", "name": "TurnLeft", "type": "yesorno" } ], "objectGroups": [] }, { "description": "Check if the object is turning left.", "fullName": "Is turning left", "functionType": "Condition", "name": "IsTurningLeft", "sentence": "_PARAM0_ is turning left", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "EllipseMovement::EllipseMovement::PropertyLoopDuration" }, "parameters": [ "Object", "Behavior", "<", "0" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "EllipseMovement::EllipseMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Return the movement angle of the object.", "fullName": "Movement angle", "functionType": "Expression", "name": "MovementAngle", "sentence": "Set initial Y of _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyMovementAngle()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "EllipseMovement::EllipseMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Return the loop duration (in seconds).", "fullName": "Loop duration", "functionType": "Expression", "group": "Configuration", "name": "LoopDuration", "sentence": "Set initial Y of _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "abs(Object.Behavior::PropertyLoopDuration())" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "EllipseMovement::EllipseMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Return the ellipse radius on X axis.", "fullName": "Radius X", "functionType": "Expression", "group": "Configuration", "name": "RadiusX", "sentence": "Set initial Y of _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyRadiusX()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "EllipseMovement::EllipseMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Return the ellipse radius on X axis.", "fullName": "Radius Y", "functionType": "Expression", "group": "Configuration", "name": "RadiusY", "sentence": "Set initial Y of _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyRadiusY()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "EllipseMovement::EllipseMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Return the movement center position on X axis.", "fullName": "Movement center X", "functionType": "Expression", "group": "Configuration", "name": "CenterX", "sentence": "Set initial Y of _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyCenterX()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "EllipseMovement::EllipseMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Return the movement center position on Y axis.", "fullName": "Movement center Y", "functionType": "Expression", "group": "Configuration", "name": "CenterY", "sentence": "Set initial Y of _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyCenterY()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "EllipseMovement::EllipseMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Change the radius on X axis of the movement.", "fullName": "Radius X", "functionType": "Action", "group": "Elliptical movement configuration", "name": "SetRadiusX", "sentence": "Change the radius on X axis of the movement of _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "EllipseMovement::EllipseMovement::SetPropertyRadiusX" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "EllipseMovement::EllipseMovement", "type": "behavior" }, { "description": "Radius X", "name": "Value", "type": "expression" } ], "objectGroups": [] }, { "description": "Change the radius on Y axis of the movement.", "fullName": "Radius Y", "functionType": "Action", "group": "Elliptical movement configuration", "name": "SetRadiusY", "sentence": "Change the radius on Y axis of the movement of _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "EllipseMovement::EllipseMovement::SetPropertyRadiusY" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "EllipseMovement::EllipseMovement", "type": "behavior" }, { "description": "Radius Y", "name": "Value", "type": "expression" } ], "objectGroups": [] }, { "description": "Change the loop duration.", "fullName": "Loop duration", "functionType": "Action", "group": "Elliptical movement configuration", "name": "SetLoopDuration", "sentence": "Change the loop duration of _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "EllipseMovement::EllipseMovement::IsTurningLeft" }, "parameters": [ "Object", "Behavior", "" ] } ], "actions": [ { "type": { "value": "EllipseMovement::EllipseMovement::SetPropertyLoopDuration" }, "parameters": [ "Object", "Behavior", "=", "-GetArgumentAsNumber(\"Value\")" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "EllipseMovement::EllipseMovement::IsTurningLeft" }, "parameters": [ "Object", "Behavior", "" ] } ], "actions": [ { "type": { "value": "EllipseMovement::EllipseMovement::SetPropertyLoopDuration" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "EllipseMovement::EllipseMovement", "type": "behavior" }, { "description": "Speed (in degrees per second)", "name": "Value", "type": "expression" } ], "objectGroups": [] }, { "description": "Change the movement angle. The object is teleported according to the angle.", "fullName": "Teleport at an angle", "functionType": "Action", "name": "SetMovementAngle", "sentence": "Teleport _PARAM0_ on the ellipse at _PARAM2_°", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "EllipseMovement::EllipseMovement::SetPropertyMovementAngle" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "EllipseMovement::EllipseMovement", "type": "behavior" }, { "description": "Movement angle", "name": "Value", "type": "expression" } ], "objectGroups": [] }, { "fullName": "Delta X", "functionType": "Expression", "name": "DeltaX", "private": true, "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "cos(ToRad(Object.Behavior::PropertyMovementAngle())) * Object.Behavior::PropertyRadiusX()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "EllipseMovement::EllipseMovement", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "Delta Y", "functionType": "Expression", "name": "DeltaY", "private": true, "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "sin(ToRad(Object.Behavior::PropertyMovementAngle())) * Object.Behavior::PropertyRadiusY()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "EllipseMovement::EllipseMovement", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "Direction angle", "functionType": "Expression", "name": "DirectionAngle", "private": true, "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "EllipseMovement::EllipseMovement::PropertyLoopDuration" }, "parameters": [ "Object", "Behavior", "<", "0" ] } ], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyMovementAngle() + 90" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "EllipseMovement::EllipseMovement::PropertyLoopDuration" }, "parameters": [ "Object", "Behavior", ">=", "0" ] } ], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyMovementAngle() - 90" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "EllipseMovement::EllipseMovement", "type": "behavior" } ], "objectGroups": [] } ], "propertyDescriptors": [ { "value": "100", "type": "Number", "unit": "Pixel", "label": "Radius of the movement on X axis", "description": "", "group": "Ellipse", "extraInformation": [], "hidden": false, "name": "RadiusX" }, { "value": "0", "type": "Number", "unit": "Pixel", "label": "Radius of the movement on Y axis", "description": "", "group": "Ellipse", "extraInformation": [], "hidden": false, "name": "RadiusY" }, { "value": "6", "type": "Number", "unit": "Second", "label": "Loop duration", "description": "", "group": "Speed", "extraInformation": [], "hidden": false, "name": "LoopDuration" }, { "value": "", "type": "Boolean", "label": "Turn left", "description": "", "group": "Speed", "extraInformation": [], "hidden": false, "name": "InitialTurningLeft" }, { "value": "0", "type": "Number", "unit": "DegreeAngle", "label": "Initial direction", "description": "", "group": "Speed", "extraInformation": [], "hidden": false, "name": "InitialDirectionAngle" }, { "value": "", "type": "Boolean", "label": "Rotate", "description": "", "group": "Rotation", "extraInformation": [], "hidden": false, "name": "ShouldRotate" }, { "value": "0", "type": "Number", "unit": "DegreeAngle", "label": "Rotation offset", "description": "", "group": "Rotation", "extraInformation": [], "hidden": false, "name": "RotationOffset" }, { "value": "0", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "CenterX" }, { "value": "0", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "CenterY" }, { "value": "0", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "MovementAngle" }, { "value": "", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "OldX" }, { "value": "", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "OldY" } ], "sharedPropertyDescriptors": [] } ], "eventsBasedObjects": [] }, { "author": "", "category": "Movement", "extensionNamespace": "", "fullName": "Advanced projectile", "helpPath": "/extensions/advanced-projectile/details", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLWFycm93LWRlY2lzaW9uLWF1dG8iIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIsNUg5TDEzLDFMMTcsNUgxNFY5LjQzQzEzLjI1LDkuODkgMTIuNTgsMTAuNDYgMTIsMTEuMTJWNU0xMC40LDE1SDguNUw3LjgsMTNINC42TDMuOSwxNUgyTDUuMiw2SDcuMkwxMC40LDE1TTcuMzUsMTEuNjVMNi4yLDhMNS4wNSwxMS42NUg3LjM1TTIzLDExTDE5LDdWMTBDMTUuMzksOS44NSAxMi4zMSwxMi41NyAxMiwxNi4xN0MxMC40NCwxNi43MiA5LjYyLDE4LjQ0IDEwLjE3LDIwQzEwLjcyLDIxLjU2IDEyLjQ0LDIyLjM4IDE0LDIxLjgzQzE1LjU2LDIxLjI3IDE2LjM4LDE5LjU2IDE1LjgzLDE4QzE1LjUzLDE3LjE0IDE0Ljg1LDE2LjQ3IDE0LDE2LjE3QzE0LjQ3LDEyLjE3IDE4LjQ3LDExLjk3IDE4Ljk1LDExLjk3VjE0Ljk3TDIzLDExWiIgLz48L3N2Zz4=", "name": "AdvancedProjectile", "previewIconUrl": "https://asset-resources.gdevelop.io/public-resources/Icons/4ab6bb9f91ea1110c0c2aabd7fe17e320c1d0ebbb44f56d01885307d7d2e723b_arrow-decision-auto.svg", "shortDescription": "Control how a projectile moves including speed, acceleration, distance, and lifetime.", "version": "1.0.0", "description": [ "Control how a projectile moves including speed, acceleration, distance, and lifetime.", "", "Tips:", "- To simulate a rocket, use a starting speed of 0 and a positive acceleration (max speed may also be used)", "- To simulate a hand grenade, use a high starting speed, a negative acceleration, and a non-zero lifetime", "- If the object is not moving, acceleration will be towards the direction it is facing", "- If the object is moving, acceleration will be in the direction the object is moving", "" ], "origin": { "identifier": "AdvancedProjectile", "name": "gdevelop-extension-store" }, "tags": [ "projectile", "movement", "acceleration", "speed", "distance" ], "authorIds": [ "gqDaZjCfevOOxBYkK6zlhtZnXCg1" ], "dependencies": [], "eventsFunctions": [], "eventsBasedBehaviors": [ { "description": "Control how a projectile object moves including lifetime, distance, speed, and acceleration.", "fullName": "Advanced projectile", "name": "AdvancedProjectile", "objectType": "", "eventsFunctions": [ { "fullName": "", "functionType": "Action", "name": "doStepPostEvents", "sentence": "", "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Initialize", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "Object", "__AdvancedProjectile.IsInitialized", "False" ] } ], "actions": [ { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "Object", "__AdvancedProjectile.IsInitialized", "True" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Record starting position so Max distance can be calculated" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "AdvancedProjectile::AdvancedProjectile::SetStartingPositionToCurrentPosition" }, "parameters": [ "Object", "Behavior", "" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Apply starting speed" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AdvancedProjectile::AdvancedProjectile::PropertyStartingSpeed" }, "parameters": [ "Object", "Behavior", "!=", "0" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Save the speed and angle the object is moving (and then stop the object)" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__AdvancedProjectile.InitialForceLength", "=", "Object.ForceLength()" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__AdvancedProjectile.InitialForceAngle", "=", "Object.ForceAngle()" ] }, { "type": { "value": "Arreter" }, "parameters": [ "Object" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "If stopped, move in direction the object is facing" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__AdvancedProjectile.InitialForceLength", "=", "0" ] } ], "actions": [ { "type": { "value": "AddForceAL" }, "parameters": [ "Object", "Object.Angle()", "Object.Behavior::PropertyStartingSpeed()", "1" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "If moving, move in direction the object is facing" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__AdvancedProjectile.InitialForceLength", ">", "0" ] } ], "actions": [ { "type": { "value": "AddForceAL" }, "parameters": [ "Object", "Object.Variable(__AdvancedProjectile.InitialForceAngle)", "Object.Behavior::PropertyStartingSpeed()", "1" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Start Lifetime timer" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ResetObjectTimer" }, "parameters": [ "Object", "\"__AdvancedProjectile.Lifetime\"" ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Delete object (if needed)", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AdvancedProjectile::AdvancedProjectile::DeleteWhenLifetimeExceeded" }, "parameters": [ "Object", "Behavior", "" ] }, { "type": { "value": "AdvancedProjectile::AdvancedProjectile::IsLifetimeExceeded" }, "parameters": [ "Object", "Behavior", "" ] } ], "actions": [ { "type": { "value": "Delete" }, "parameters": [ "Object", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AdvancedProjectile::AdvancedProjectile::DeleteWhenDistanceExceeded" }, "parameters": [ "Object", "Behavior", "" ] }, { "type": { "value": "AdvancedProjectile::AdvancedProjectile::IsMaxDistanceExceeded" }, "parameters": [ "Object", "Behavior", "" ] } ], "actions": [ { "type": { "value": "Delete" }, "parameters": [ "Object", "" ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Apply acceleration", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AdvancedProjectile::AdvancedProjectile::PropertyAcceleration" }, "parameters": [ "Object", "Behavior", "!=", "0" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Save the speed the object is moving" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__AdvancedProjectile.CurrentForce", "=", "Object.Variable(__AdvancedProjectile.CurrentForce)" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "If stopped, move in direction the object is facing" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__AdvancedProjectile.CurrentForce", "=", "0" ] } ], "actions": [ { "type": { "value": "AddForceAL" }, "parameters": [ "Object", "Object.Angle()", "TimeDelta() * Object.Behavior::PropertyAcceleration()", "1" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "If moving, move in direction the object is facin" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__AdvancedProjectile.CurrentForce", ">", "0" ] } ], "actions": [ { "type": { "value": "AddForceAL" }, "parameters": [ "Object", "Object.ForceAngle()", "TimeDelta() * Object.Behavior::PropertyAcceleration()", "1" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Stop the object if it is moving away from object angle. Required for min speed to work." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::CompareNumbers" }, "parameters": [ "abs(Object.ForceAngle() - Object.Angle())", ">", "90" ] } ], "actions": [ { "type": { "value": "Arreter" }, "parameters": [ "Object" ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Enforce Min/Max speed", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AdvancedProjectile::AdvancedProjectile::PropertyMinSpeed" }, "parameters": [ "Object", "Behavior", "!=", "0" ] }, { "type": { "value": "Vitesse" }, "parameters": [ "Object", "<", "Object.Behavior::PropertyMinSpeed()" ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__AdvancedProjectile.CurrentForceAngle", "=", "Object.ForceAngle()" ] }, { "type": { "value": "Arreter" }, "parameters": [ "Object" ] }, { "type": { "value": "AddForceAL" }, "parameters": [ "Object", "Object.Angle()", "Object.Behavior::PropertyMinSpeed()", "1" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AdvancedProjectile::AdvancedProjectile::PropertyMaxSpeed" }, "parameters": [ "Object", "Behavior", "!=", "0" ] }, { "type": { "value": "Vitesse" }, "parameters": [ "Object", ">", "Object.Behavior::PropertyMaxSpeed()" ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__AdvancedProjectile.CurrentForceAngle", "=", "Object.ForceAngle()" ] }, { "type": { "value": "Arreter" }, "parameters": [ "Object" ] }, { "type": { "value": "AddForceAL" }, "parameters": [ "Object", "Object.Variable(__AdvancedProjectile.CurrentForceAngle)", "Object.Behavior::PropertyMaxSpeed()", "1" ] } ] } ], "parameters": [] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedProjectile::AdvancedProjectile", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if max distance from starting position has been exceeded (object will be deleted next frame).", "fullName": "Max distance from starting position has been exceeded", "functionType": "Condition", "name": "IsMaxDistanceExceeded", "sentence": "Max distance from starting position of _PARAM0_ has been exceeded", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "Object", "__AdvancedProjectile.IsInitialized", "True" ] }, { "type": { "value": "AdvancedProjectile::AdvancedProjectile::PropertyMaxDistanceFromStartingPosition" }, "parameters": [ "Object", "Behavior", ">", "0" ] }, { "type": { "value": "BuiltinCommonInstructions::CompareNumbers" }, "parameters": [ "DistanceBetweenPositions(Object.Variable(__AdvancedProjectile.StartingX), Object.Variable(__AdvancedProjectile.StartingY), Object.X(), Object.Y())", ">", "Object.Behavior::PropertyMaxDistanceFromStartingPosition()" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedProjectile::AdvancedProjectile", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if lifetime has been exceeded (object will be deleted next frame).", "fullName": "Lifetime has been exceeded", "functionType": "Condition", "name": "IsLifetimeExceeded", "sentence": "Lifetime of _PARAM0_ has been exceeded", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "Object", "__AdvancedProjectile.IsInitialized", "True" ] }, { "type": { "value": "AdvancedProjectile::AdvancedProjectile::PropertyMaxLifetime" }, "parameters": [ "Object", "Behavior", ">", "0" ] }, { "type": { "value": "CompareObjectTimer" }, "parameters": [ "Object", "\"__AdvancedProjectile.Lifetime\"", ">", "Object.Behavior::PropertyMaxLifetime()" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedProjectile::AdvancedProjectile", "type": "behavior" } ], "objectGroups": [] }, { "description": "the lifetime of the object. Object is deleted after property has been exceeded. Use \"0\" to ignore this property.", "fullName": "Lifetime", "functionType": "ExpressionAndCondition", "group": "Advanced projectile configuration", "name": "MaxLifetime", "sentence": "the lifetime", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyMaxLifetime()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedProjectile::AdvancedProjectile", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "MaxLifetime", "name": "SetMaxLifetime", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "AdvancedProjectile::AdvancedProjectile::SetPropertyMaxLifetime" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedProjectile::AdvancedProjectile", "type": "behavior" } ], "objectGroups": [] }, { "description": "Restart lifetime timer of object.", "fullName": "Restart lifetime timer", "functionType": "Action", "getterName": "MaxLifetime", "name": "RestartLifetimeTimer", "sentence": "Restart lifetime timer of _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ResetObjectTimer" }, "parameters": [ "Object", "\"__AdvancedProjectile.Lifetime\"" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedProjectile::AdvancedProjectile", "type": "behavior" } ], "objectGroups": [] }, { "description": "the max distance from starting position of the object. Object is deleted after property has been exceeded. Use \"0\" to ignore this property.", "fullName": "Max distance from starting position", "functionType": "ExpressionAndCondition", "group": "Advanced projectile configuration", "name": "MaxDistanceFromStart", "sentence": "the max distance from starting position", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyMaxDistanceFromStartingPosition()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedProjectile::AdvancedProjectile", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "MaxDistanceFromStart", "name": "SetMaxDistanceFromStart", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "AdvancedProjectile::AdvancedProjectile::SetPropertyMaxDistanceFromStartingPosition" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedProjectile::AdvancedProjectile", "type": "behavior" } ], "objectGroups": [] }, { "description": "Change the starting position of object to it's current position.", "fullName": "Change starting position to the current position", "functionType": "Action", "getterName": "MaxLifetime", "name": "SetStartingPositionToCurrentPosition", "sentence": "Change the starting position of _PARAM0_ to it's current position", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__AdvancedProjectile.StartingX", "=", "Object.X()" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__AdvancedProjectile.StartingY", "=", "Object.Y()" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedProjectile::AdvancedProjectile", "type": "behavior" } ], "objectGroups": [] }, { "description": "the max speed of the object. Object forces cannot exceed this value. Use \"0\" to ignore this property.", "fullName": "Max speed", "functionType": "ExpressionAndCondition", "group": "Advanced projectile configuration", "name": "MaxSpeed", "sentence": "the max speed", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyMaxSpeed()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedProjectile::AdvancedProjectile", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "MaxSpeed", "name": "SetMaxSpeed", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "AdvancedProjectile::AdvancedProjectile::SetPropertyMaxSpeed" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedProjectile::AdvancedProjectile", "type": "behavior" } ], "objectGroups": [] }, { "description": "the minSpeed of the object. Object forces cannot go below this value. Use \"0\" to ignore this property.", "fullName": "MinSpeed", "functionType": "ExpressionAndCondition", "group": "Advanced projectile configuration", "name": "MinSpeed", "sentence": "the minSpeed", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyMinSpeed()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedProjectile::AdvancedProjectile", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "MinSpeed", "name": "SetMinSpeed", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "AdvancedProjectile::AdvancedProjectile::SetPropertyMinSpeed" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedProjectile::AdvancedProjectile", "type": "behavior" } ], "objectGroups": [] }, { "description": "the acceleration of the object. Use a negative number to slow down.", "fullName": "Acceleration", "functionType": "ExpressionAndCondition", "group": "Advanced projectile configuration", "name": "Acceleration", "sentence": "the acceleration", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyAcceleration()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedProjectile::AdvancedProjectile", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "Acceleration", "name": "SetAcceleration", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "AdvancedProjectile::AdvancedProjectile::SetPropertyAcceleration" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedProjectile::AdvancedProjectile", "type": "behavior" } ], "objectGroups": [] }, { "description": "the starting speed of the object. Object will move in the direction it is facing when it is created. Use \"0\" to ignore this property.", "fullName": "Starting speed", "functionType": "ExpressionAndCondition", "group": "Advanced projectile configuration", "name": "StartingSpeed", "sentence": "the starting speed", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyStartingSpeed()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedProjectile::AdvancedProjectile", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "StartingSpeed", "name": "SetStartingSpeed", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "AdvancedProjectile::AdvancedProjectile::SetPropertyStartingSpeed" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedProjectile::AdvancedProjectile", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if automatic deletion is enabled when lifetime is exceeded.", "fullName": "Automatic deletion is enabled when lifetime is exceeded", "functionType": "Condition", "group": "Advanced projectile configuration", "name": "DeleteWhenLifetimeExceeded", "sentence": "Automatic deletion is enabled when lifetime is exceeded on _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AdvancedProjectile::AdvancedProjectile::PropertyDeleteWhenLifetimeExceeded" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedProjectile::AdvancedProjectile", "type": "behavior" } ], "objectGroups": [] }, { "description": "Change automatic deletion of object when lifetime is exceeded.", "fullName": "Change automatic deletion when lifetime is exceeded", "functionType": "Action", "group": "Advanced projectile configuration", "name": "SetDeleteWhenLifetimeExceeded", "sentence": "Enable automatic deletion of _PARAM0_ when lifetime is exceeded: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "GetArgumentAsBoolean" }, "parameters": [ "\"Value\"" ] } ], "actions": [ { "type": { "value": "AdvancedProjectile::AdvancedProjectile::SetPropertyDeleteWhenLifetimeExceeded" }, "parameters": [ "Object", "Behavior", "no" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "GetArgumentAsBoolean" }, "parameters": [ "\"Value\"" ] } ], "actions": [ { "type": { "value": "AdvancedProjectile::AdvancedProjectile::SetPropertyDeleteWhenLifetimeExceeded" }, "parameters": [ "Object", "Behavior", "yes" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedProjectile::AdvancedProjectile", "type": "behavior" }, { "defaultValue": "yes", "description": "DeleteWhenLifetimeExceeded", "name": "Value", "optional": true, "type": "yesorno" } ], "objectGroups": [] }, { "description": "Check if automatic deletion is enabled when distance from starting position is exceeded.", "fullName": "Automatic deletion is enabled when distance from starting position is exceeded", "functionType": "Condition", "group": "Advanced projectile configuration", "name": "DeleteWhenDistanceExceeded", "sentence": "Automatic deletion is enabled when distance from starting position is exceeded on _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AdvancedProjectile::AdvancedProjectile::PropertyDeleteWhenDistanceExceeded" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedProjectile::AdvancedProjectile", "type": "behavior" } ], "objectGroups": [] }, { "description": "Change automatic deletion when distance from starting position is exceeded.", "fullName": "Change automatic deletion when distance from starting position is exceeded", "functionType": "Action", "group": "Advanced projectile configuration", "name": "SetDeleteWhenDistanceExceeded", "sentence": "Enable automatic deletion of _PARAM0_ when distance from starting position is exceeded: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "GetArgumentAsBoolean" }, "parameters": [ "\"Value\"" ] } ], "actions": [ { "type": { "value": "AdvancedProjectile::AdvancedProjectile::SetPropertyDeleteWhenDistanceExceeded" }, "parameters": [ "Object", "Behavior", "no" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "GetArgumentAsBoolean" }, "parameters": [ "\"Value\"" ] } ], "actions": [ { "type": { "value": "AdvancedProjectile::AdvancedProjectile::SetPropertyDeleteWhenDistanceExceeded" }, "parameters": [ "Object", "Behavior", "yes" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "AdvancedProjectile::AdvancedProjectile", "type": "behavior" }, { "defaultValue": "yes", "description": "DeleteWhenDistanceExceeded", "name": "Value", "optional": true, "type": "yesorno" } ], "objectGroups": [] } ], "propertyDescriptors": [ { "value": "0", "type": "Number", "unit": "Second", "label": "Lifetime", "description": "Use \"0\" to ignore this property.", "group": "", "extraInformation": [], "hidden": false, "name": "MaxLifetime" }, { "value": "0", "type": "Number", "unit": "Pixel", "label": "Max distance from starting position", "description": "Use \"0\" to ignore this property.", "group": "", "extraInformation": [], "hidden": false, "name": "MaxDistanceFromStartingPosition" }, { "value": "0", "type": "Number", "unit": "PixelSpeed", "label": "Max speed", "description": "Speed from object forces will not exceed this value. Use \"0\" to ignore this property.", "group": "", "extraInformation": [], "hidden": false, "name": "MaxSpeed" }, { "value": "0", "type": "Number", "unit": "PixelSpeed", "label": "", "description": "Speed from object forces will not go below this value. Use \"0\" to ignore this property.", "group": "", "extraInformation": [], "hidden": false, "name": "MinSpeed" }, { "value": "0", "type": "Number", "unit": "PixelAcceleration", "label": "Acceleration", "description": "Negative acceleration can be used to stop a projectile.", "group": "", "extraInformation": [], "hidden": false, "name": "Acceleration" }, { "value": "0", "type": "Number", "unit": "PixelSpeed", "label": "Starting speed", "description": "Object will move in the direction it is facing when it is created. Use \"0\" to ignore this property.", "group": "", "extraInformation": [], "hidden": false, "name": "StartingSpeed" }, { "value": "true", "type": "Boolean", "label": "Delete when lifetime is exceeded", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "DeleteWhenLifetimeExceeded" }, { "value": "true", "type": "Boolean", "label": "Delete when distance from starting position is exceeded", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "DeleteWhenDistanceExceeded" } ], "sharedPropertyDescriptors": [] } ], "eventsBasedObjects": [] }, { "author": "", "category": "Visual effect", "extensionNamespace": "", "fullName": "Sway", "helpPath": "", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXN3YXAtaG9yaXpvbnRhbC12YXJpYW50IiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTQsNkw4LDEwVjdIMTZBMiwyIDAgMCwxIDE4LDlBMiwyIDAgMCwxIDE2LDExSDhBNCw0IDAgMCwwIDQsMTVBNCw0IDAgMCwwIDgsMTlIMTZWMjJMMjAsMThMMTYsMTRWMTdIOEEyLDIgMCAwLDEgNiwxNUEyLDIgMCAwLDEgOCwxM0gxNkE0LDQgMCAwLDAgMjAsOUE0LDQgMCAwLDAgMTYsNUg4VjJMNCw2WiIgLz48L3N2Zz4=", "name": "Sway", "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/swap-horizontal-variant.svg", "shortDescription": "Sway objects like grass in the wind.", "version": "1.0.0", "description": [ "This extension makes objects sway at different times.", "", "It can be used to:", "- Simulate grass and plant movement swaying in the wind", "- Animate seaweed in an underwater environment", "- Give flames a flickering look ", "", "Set *Center* and *Origin* points to the center base of the object for best results.", "", "Check out [this demo](https://liluo.io/bubble/swayexamples) to see what this extension can do.", "" ], "origin": { "identifier": "Sway", "name": "gdevelop-extension-store" }, "tags": [ "tween", "sway", "wobble", "shake", "grass", "plant", "snake", "flame", "fire", "candle" ], "authorIds": [ "d3W2ZbWOpKRw2rXfBTscZztY7GH2" ], "dependencies": [], "eventsFunctions": [], "eventsBasedBehaviors": [ { "description": "Sway multiple instances of an object at different times - useful for random grass swaying.", "fullName": "Sway", "name": "Sway", "objectType": "Sprite", "eventsFunctions": [ { "fullName": "", "functionType": "Action", "name": "onCreated", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 102, "g": 210, "r": 233, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Start the tweens" }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Angle the object to the right" }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Increase the y scale of the object" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "Tween::AddObjectScaleYTween" }, "parameters": [ "Object", "TweenBehavior", "\"YScaleMax\"", "Object.Behavior::PropertyYScaleMax()", "\"easeInOutSine\"", "RandomInRange(Object.Behavior::PropertyYScaleMin() * 1000,Object.Behavior::PropertyYScaleTimeMax() * 1000)", "", "" ] }, { "type": { "value": "Tween::AddObjectAngleTween" }, "parameters": [ "Object", "TweenBehavior", "\"AngleRight\"", "Object.Behavior::PropertyAngleRight()", "\"easeInOutSine\"", "RandomInRange(Object.Behavior::PropertyAngleTimeMin() * 1000,Object.Behavior::PropertyAngleTimeMax() * 1000)", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "Sprite", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "Sway::Sway", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "Action", "name": "doStepPostEvents", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Angle the object to the left" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Tween::HasFinished" }, "parameters": [ "Object", "TweenBehavior", "\"AngleRight\"" ] } ], "actions": [ { "type": { "value": "Tween::RemoveTween" }, "parameters": [ "Object", "TweenBehavior", "\"AngleRight\"" ] }, { "type": { "value": "Tween::AddObjectAngleTween" }, "parameters": [ "Object", "TweenBehavior", "\"AngleLeft\"", "Object.Behavior::PropertyAngleLeft()", "\"easeInOutSine\"", "RandomInRange(Object.Behavior::PropertyAngleTimeMin() * 1000,Object.Behavior::PropertyAngleTimeMax() * 1000)", "" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Angle the object to the right" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Tween::HasFinished" }, "parameters": [ "Object", "TweenBehavior", "\"AngleLeft\"" ] } ], "actions": [ { "type": { "value": "Tween::RemoveTween" }, "parameters": [ "Object", "TweenBehavior", "\"AngleLeft\"" ] }, { "type": { "value": "Tween::AddObjectAngleTween" }, "parameters": [ "Object", "TweenBehavior", "\"AngleRight\"", "Object.Behavior::PropertyAngleRight()", "\"easeInOutSine\"", "RandomInRange(Object.Behavior::PropertyAngleTimeMin() * 1000,Object.Behavior::PropertyAngleTimeMax() * 1000)", "" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Decrease the y scale of the object" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Tween::HasFinished" }, "parameters": [ "Object", "TweenBehavior", "\"YScaleMax\"" ] } ], "actions": [ { "type": { "value": "Tween::RemoveTween" }, "parameters": [ "Object", "TweenBehavior", "\"YScaleMax\"" ] }, { "type": { "value": "Tween::AddObjectScaleYTween" }, "parameters": [ "Object", "TweenBehavior", "\"YScaleMin\"", "Object.Behavior::PropertyYScaleMin()", "\"easeInOutSine\"", "RandomInRange(Object.Behavior::PropertyYScaleTimeMin() * 1000,Object.Behavior::PropertyYScaleTimeMax() * 1000)", "", "" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Increase the y scale of the object" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Tween::HasFinished" }, "parameters": [ "Object", "TweenBehavior", "\"YScaleMin\"" ] } ], "actions": [ { "type": { "value": "Tween::RemoveTween" }, "parameters": [ "Object", "TweenBehavior", "\"YScaleMin\"" ] }, { "type": { "value": "Tween::AddObjectScaleYTween" }, "parameters": [ "Object", "TweenBehavior", "\"YScaleMax\"", "Object.Behavior::PropertyYScaleMax()", "\"easeInOutSine\"", "RandomInRange(Object.Behavior::PropertyYScaleTimeMin() * 1000,Object.Behavior::PropertyYScaleTimeMax() * 1000)", "", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "Sprite", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "Sway::Sway", "type": "behavior" } ], "objectGroups": [] }, { "description": "Set sway angle left and right.", "fullName": "Set sway angle left and right", "functionType": "Action", "group": "Sway angle", "name": "ChangeSwayAngle", "sentence": "Sway the angle of _PARAM0_ to _PARAM2_° to the left and to _PARAM3_° to the right", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "Sway::Sway::SetPropertyAngleLeft" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"AngleLeftChanged\")" ] }, { "type": { "value": "Sway::Sway::SetPropertyAngleRight" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"AngleRightChanged\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "Sprite", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "Sway::Sway", "type": "behavior" }, { "description": "Angle to the left (degrees) - Use negative number", "name": "AngleLeftChanged", "type": "expression" }, { "description": "Angle to the right (degrees) - Use positive number", "name": "AngleRightChanged", "type": "expression" } ], "objectGroups": [] }, { "description": "Set sway angle time range.", "fullName": "Set sway angle time range", "functionType": "Action", "group": "Sway angle", "name": "ChangeSwayAngleTime", "sentence": "Tween angle time range for _PARAM0_, set minimum to _PARAM2_ seconds and maximum to _PARAM3_ seconds", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "Sway::Sway::SetPropertyAngleTimeMin" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"AngleTimeMinChanged\")" ] }, { "type": { "value": "Sway::Sway::SetPropertyAngleTimeMax" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"AngleTimeMaxChanged\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "Sprite", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "Sway::Sway", "type": "behavior" }, { "description": "Angle tween time minimum (seconds)", "name": "AngleTimeMinChanged", "type": "expression" }, { "description": "Angle tween time maximum (seconds)", "name": "AngleTimeMaxChanged", "type": "expression" } ], "objectGroups": [] }, { "description": "Set sway Y scale mininum and maximum.", "fullName": "Set sway Y scale mininum and maximum", "functionType": "Action", "group": "Sway Y scale", "name": "ChangeSwayYScale", "sentence": "Sway the Y scale of _PARAM0_ from _PARAM2_ to _PARAM3_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "Sway::Sway::SetPropertyYScaleMin" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"YScaleMinChanged\")" ] }, { "type": { "value": "Sway::Sway::SetPropertyYScaleMax" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"YScaleMaxChanged\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "Sprite", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "Sway::Sway", "type": "behavior" }, { "description": "Minimum Y scale", "name": "YScaleMinChanged", "type": "expression" }, { "description": "Maximum Y scale", "name": "YScaleMaxChanged", "type": "expression" } ], "objectGroups": [] }, { "description": "Set Y scale time range.", "fullName": "Set sway Y scale time range", "functionType": "Action", "group": "Sway Y scale", "name": "ChangeSwayYScaleTime", "sentence": "Tween Y scale time range for _PARAM0_, set minimum to _PARAM2_ seconds and maximum to _PARAM3_ seconds", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "Sway::Sway::SetPropertyYScaleTimeMax" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"YScaleTimeMaxChanged\")" ] }, { "type": { "value": "Sway::Sway::SetPropertyYScaleTimeMin" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"YScaleTimeMinChanged\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "Sprite", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "Sway::Sway", "type": "behavior" }, { "description": "Y scale tween time minimum (seconds)", "name": "YScaleTimeMinChanged", "type": "expression" }, { "description": "Y scale tween time maximum (seconds)", "name": "YScaleTimeMaxChanged", "type": "expression" } ], "objectGroups": [] } ], "propertyDescriptors": [ { "value": "-5", "type": "Number", "label": "Maximum angle to the left (in degrees) - Use a negative number", "description": "", "group": "Angle", "extraInformation": [], "hidden": false, "name": "AngleLeft" }, { "value": "5", "type": "Number", "label": "Maximum angle to the right (in degrees) - Use a positive number", "description": "", "group": "Angle", "extraInformation": [], "hidden": false, "name": "AngleRight" }, { "value": "1", "type": "Number", "label": "Mininum value for random tween time range for angle (seconds)", "description": "", "group": "Angle", "extraInformation": [], "hidden": false, "name": "AngleTimeMin" }, { "value": "3", "type": "Number", "label": "Maximum value for random tween time range for angle (seconds)", "description": "", "group": "Angle", "extraInformation": [], "hidden": false, "name": "AngleTimeMax" }, { "value": "1", "type": "Number", "label": "Minimum Y scale amount", "description": "", "group": "Y scale", "extraInformation": [], "hidden": false, "name": "YScaleMin" }, { "value": "1.2", "type": "Number", "label": "Maximum Y scale amount", "description": "", "group": "Y scale", "extraInformation": [], "hidden": false, "name": "YScaleMax" }, { "value": "1", "type": "Number", "label": "Mininum value for random tween time range for Y scale (seconds)", "description": "", "group": "Y scale", "extraInformation": [], "hidden": false, "name": "YScaleTimeMin" }, { "value": "3", "type": "Number", "label": "Maximum value for random tween time range for Y scale (seconds)", "description": "", "group": "Y scale", "extraInformation": [], "hidden": false, "name": "YScaleTimeMax" }, { "value": "", "type": "Behavior", "label": "Sway uses the tween behavior", "description": "", "group": "", "extraInformation": [ "Tween::TweenBehavior" ], "hidden": false, "name": "TweenBehavior" } ], "sharedPropertyDescriptors": [] } ], "eventsBasedObjects": [] }, { "author": "Gruk", "category": "Movement", "extensionNamespace": "", "fullName": "Timed Back and Forth Movement", "helpPath": "", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXJlcGVhdCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0xNywxN0g3VjE0TDMsMThMNywyMlYxOUgxOVYxM0gxN003LDdIMTdWMTBMMjEsNkwxNywyVjVINVYxMUg3VjdaIiAvPjwvc3ZnPg==", "name": "TimedBackAndForthMovement", "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/repeat.svg", "shortDescription": "This behavior moves objects back and forth for a chosen time or distance, vertically or horizontally.", "version": "1.0.1", "description": [ "This behavior moves an object (like an enemy) for a chosen time or distance, then flips it and starts over, moving the object back and forth, vertically or horizontally.", "", "Note: animations must be facing **Right** (for horizontal) or **Down** (for vertical) direction." ], "origin": { "identifier": "TimedBackAndForthMovement", "name": "gdevelop-extension-store" }, "tags": [ "enemy", "movement", "back", "forth", "up", "down", "left", "right" ], "authorIds": [ "9hfK9vapfgUot6y3ARuuRkPBWPJ2" ], "dependencies": [], "eventsFunctions": [], "eventsBasedBehaviors": [ { "description": "Move an object (e.g. enemy) for a chosen time or distance, then flip it and start over. \nNote: animations should be facing LEFT.", "fullName": "Timed Back and Forth Movement", "name": "TimedBackAndForthMirroredMovement", "objectType": "Sprite", "eventsFunctions": [ { "fullName": "", "functionType": "Action", "name": "doStepPreEvents", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "vertical mode" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "TimedBackAndForthMovement::TimedBackAndForthMirroredMovement::PropertyVertical" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "initialize" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "TimedBackAndForthMovement::TimedBackAndForthMirroredMovement::PropertyStartPosition" }, "parameters": [ "Object", "Behavior", "=", "0" ] } ], "actions": [ { "type": { "value": "ResetObjectTimer" }, "parameters": [ "Object", "\"BacknForth_timeout\"" ] }, { "type": { "value": "TimedBackAndForthMovement::TimedBackAndForthMirroredMovement::SetPropertyStartPosition" }, "parameters": [ "Object", "Behavior", "=", "round(Object.Y())" ] } ] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Flips", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "distance has been reached, flip it" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PosY" }, "parameters": [ "Object", "<", "Object.Behavior::PropertyStartPosition() - Object.Behavior::PropertyDistance()" ] }, { "type": { "value": "FlippedY" }, "parameters": [ "Object" ] } ], "actions": [ { "type": { "value": "TimedBackAndForthMovement::TimedBackAndForthMirroredMovement::SetPropertyStartPosition" }, "parameters": [ "Object", "Behavior", "=", "round(Object.Y())" ] }, { "type": { "value": "ResetObjectTimer" }, "parameters": [ "Object", "\"BacknForth_timeout\"" ] }, { "type": { "value": "FlipY" }, "parameters": [ "Object", "no" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PosY" }, "parameters": [ "Object", ">", "Object.Behavior::PropertyStartPosition() + Object.Behavior::PropertyDistance()" ] }, { "type": { "inverted": true, "value": "FlippedY" }, "parameters": [ "Object" ] } ], "actions": [ { "type": { "value": "TimedBackAndForthMovement::TimedBackAndForthMirroredMovement::SetPropertyStartPosition" }, "parameters": [ "Object", "Behavior", "=", "round(Object.Y())" ] }, { "type": { "value": "ResetObjectTimer" }, "parameters": [ "Object", "\"BacknForth_timeout\"" ] }, { "type": { "value": "FlipY" }, "parameters": [ "Object", "yes" ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Timeout", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "max time has been reached, flip it" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "TimedBackAndForthMovement::TimedBackAndForthMirroredMovement::PropertyTimecheck" }, "parameters": [ "Object", "Behavior", "!=", "Object.ObjectTimerElapsedTime(\"BacknForth_timeout\")" ] }, { "type": { "value": "TimedBackAndForthMovement::TimedBackAndForthMirroredMovement::PropertyLastPosition" }, "parameters": [ "Object", "Behavior", "=", "round(Object.Y())" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ObjectTimer" }, "parameters": [ "Object", "\"BacknForth_timeout\"", "Object.Behavior::PropertyTimeout()" ] }, { "type": { "value": "FlippedY" }, "parameters": [ "Object" ] } ], "actions": [ { "type": { "value": "TimedBackAndForthMovement::TimedBackAndForthMirroredMovement::SetPropertyStartPosition" }, "parameters": [ "Object", "Behavior", "=", "round(Object.Y())" ] }, { "type": { "value": "ResetObjectTimer" }, "parameters": [ "Object", "\"BacknForth_timeout\"" ] }, { "type": { "value": "FlipY" }, "parameters": [ "Object", "no" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ObjectTimer" }, "parameters": [ "Object", "\"BacknForth_timeout\"", "Object.Behavior::PropertyTimeout()" ] }, { "type": { "inverted": true, "value": "FlippedY" }, "parameters": [ "Object" ] } ], "actions": [ { "type": { "value": "TimedBackAndForthMovement::TimedBackAndForthMirroredMovement::SetPropertyStartPosition" }, "parameters": [ "Object", "Behavior", "=", "round(Object.Y())" ] }, { "type": { "value": "ResetObjectTimer" }, "parameters": [ "Object", "\"BacknForth_timeout\"" ] }, { "type": { "value": "FlipY" }, "parameters": [ "Object", "yes" ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Movement", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "FlippedY" }, "parameters": [ "Object" ] } ], "actions": [ { "type": { "value": "AddForceXY" }, "parameters": [ "Object", "0", "Object.Behavior::PropertySpeed()", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "FlippedY" }, "parameters": [ "Object" ] } ], "actions": [ { "type": { "value": "AddForceXY" }, "parameters": [ "Object", "0", "- \nObject.Behavior::PropertySpeed()", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "TimedBackAndForthMovement::TimedBackAndForthMirroredMovement::SetPropertyLastPosition" }, "parameters": [ "Object", "Behavior", "=", "round(Object.Y())" ] } ] } ], "parameters": [] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "horizontal mode" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "TimedBackAndForthMovement::TimedBackAndForthMirroredMovement::PropertyVertical" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "initialize" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "TimedBackAndForthMovement::TimedBackAndForthMirroredMovement::PropertyStartPosition" }, "parameters": [ "Object", "Behavior", "=", "0" ] } ], "actions": [ { "type": { "value": "ResetObjectTimer" }, "parameters": [ "Object", "\"BacknForth_timeout\"" ] }, { "type": { "value": "TimedBackAndForthMovement::TimedBackAndForthMirroredMovement::SetPropertyStartPosition" }, "parameters": [ "Object", "Behavior", "=", "round(Object.X())" ] } ] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "folded": true, "name": "Flips", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "distance has been reached, flip it" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PosX" }, "parameters": [ "Object", ">", "Object.Behavior::PropertyStartPosition() + Object.Behavior::PropertyDistance()" ] }, { "type": { "inverted": true, "value": "FlippedX" }, "parameters": [ "Object" ] } ], "actions": [ { "type": { "value": "TimedBackAndForthMovement::TimedBackAndForthMirroredMovement::SetPropertyStartPosition" }, "parameters": [ "Object", "Behavior", "=", "round(Object.X())" ] }, { "type": { "value": "ResetObjectTimer" }, "parameters": [ "Object", "\"BacknForth_timeout\"" ] }, { "type": { "value": "FlipX" }, "parameters": [ "Object", "yes" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PosX" }, "parameters": [ "Object", "<", "Object.Behavior::PropertyStartPosition() - Object.Behavior::PropertyDistance()" ] }, { "type": { "value": "FlippedX" }, "parameters": [ "Object" ] } ], "actions": [ { "type": { "value": "TimedBackAndForthMovement::TimedBackAndForthMirroredMovement::SetPropertyStartPosition" }, "parameters": [ "Object", "Behavior", "=", "round(Object.X())" ] }, { "type": { "value": "ResetObjectTimer" }, "parameters": [ "Object", "\"BacknForth_timeout\"" ] }, { "type": { "value": "FlipX" }, "parameters": [ "Object", "no" ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "folded": true, "name": "Timeout", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "max time has been reached, flip it" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "TimedBackAndForthMovement::TimedBackAndForthMirroredMovement::PropertyTimecheck" }, "parameters": [ "Object", "Behavior", "!=", "Object.ObjectTimerElapsedTime(\"BacknForth_timeout\")" ] }, { "type": { "value": "TimedBackAndForthMovement::TimedBackAndForthMirroredMovement::PropertyLastPosition" }, "parameters": [ "Object", "Behavior", "=", "round(Object.X())" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ObjectTimer" }, "parameters": [ "Object", "\"BacknForth_timeout\"", "Object.Behavior::PropertyTimeout()" ] }, { "type": { "value": "FlippedX" }, "parameters": [ "Object" ] } ], "actions": [ { "type": { "value": "FlipX" }, "parameters": [ "Object", "no" ] }, { "type": { "value": "TimedBackAndForthMovement::TimedBackAndForthMirroredMovement::SetPropertyStartPosition" }, "parameters": [ "Object", "Behavior", "=", "round(Object.X())" ] }, { "type": { "value": "ResetObjectTimer" }, "parameters": [ "Object", "\"BacknForth_timeout\"" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ObjectTimer" }, "parameters": [ "Object", "\"BacknForth_timeout\"", "Object.Behavior::PropertyTimeout()" ] }, { "type": { "inverted": true, "value": "FlippedX" }, "parameters": [ "Object" ] } ], "actions": [ { "type": { "value": "FlipX" }, "parameters": [ "Object", "yes" ] }, { "type": { "value": "TimedBackAndForthMovement::TimedBackAndForthMirroredMovement::SetPropertyStartPosition" }, "parameters": [ "Object", "Behavior", "=", "round(Object.X())" ] }, { "type": { "value": "ResetObjectTimer" }, "parameters": [ "Object", "\"BacknForth_timeout\"" ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "folded": true, "name": "Movement", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "FlippedX" }, "parameters": [ "Object" ] } ], "actions": [ { "type": { "value": "AddForceXY" }, "parameters": [ "Object", "Object.Behavior::PropertySpeed()", "0", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "FlippedX" }, "parameters": [ "Object" ] } ], "actions": [ { "type": { "value": "AddForceXY" }, "parameters": [ "Object", "- \nObject.Behavior::PropertySpeed()", "0", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "TimedBackAndForthMovement::TimedBackAndForthMirroredMovement::SetPropertyLastPosition" }, "parameters": [ "Object", "Behavior", "=", "round(Object.X())" ] } ] } ], "parameters": [] } ] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "TimeCheck", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "store current elapsed time (to make sure time has passed)" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "TimedBackAndForthMovement::TimedBackAndForthMirroredMovement::SetPropertyTimecheck" }, "parameters": [ "Object", "Behavior", "=", "Object.ObjectTimerElapsedTime(\"BacknForth_timeout\")" ] } ] } ], "parameters": [] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "Sprite", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "TimedBackAndForthMovement::TimedBackAndForthMirroredMovement", "type": "behavior" } ], "objectGroups": [] } ], "propertyDescriptors": [ { "value": "false", "type": "Boolean", "label": "Move the object vertically (instead of horizontally)", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "Vertical" }, { "value": "100", "type": "Number", "label": "Moving speed (in pixel/s)", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "Speed" }, { "value": "200", "type": "Number", "label": "Moving distance (in pixels)", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "Distance" }, { "value": "2", "type": "Number", "label": "Moving maximum time (in seconds)", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "Timeout" }, { "value": "0", "type": "Number", "label": "Distance start point", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "StartPosition" }, { "value": "0", "type": "Number", "label": "position of the sprite at the previous frame", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "LastPosition" }, { "value": "0", "type": "Number", "label": "check that time has elapsed", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "Timecheck" } ], "sharedPropertyDescriptors": [] } ], "eventsBasedObjects": [] }, { "author": "", "category": "User interface", "extensionNamespace": "", "fullName": "Resource bar (continuous)", "helpPath": "/objects/resource-bar", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iSWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMzIgMzIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMyIDMyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8cGF0aCBkPSJNMjgsMTJIMTRINGMtMi4yLDAtNCwxLjgtNCw0czEuOCw0LDQsNGgxMGgxNGMyLjIsMCw0LTEuOCw0LTRTMzAuMiwxMiwyOCwxMnogTTQsMThjLTEuMSwwLTItMC45LTItMnMwLjktMiwyLTJoMTANCgljMS4xLDAsMiwwLjksMiwycy0wLjksMi0yLDJINHoiLz4NCjwvc3ZnPg0K", "name": "PanelSpriteContinuousBar", "previewIconUrl": "https://asset-resources.gdevelop.io/public-resources/Icons/Glyphster Pack/Master/SVG/Interface Elements/ea06363a57846caab544f536b78a952234b68d4941d41c1577852a1d61aefec3_Interface Elements_interface_ui_loading_progress_bar.svg", "shortDescription": "A bar that represents a resource in the game (health, mana, ammo, etc).", "version": "1.1.1", "description": [ "A bar that represents a resource in the game (health, mana, ammo, etc).", "", "There are ready-to-use resource bars in the asset-store [resource bars pack](https://editor.gdevelop.io/?initial-dialog=asset-store&asset-pack=resource-bars-resource-bars)." ], "origin": { "identifier": "PanelSpriteContinuousBar", "name": "gdevelop-extension-store" }, "tags": [ "resource", "bar", "health", "mana", "shield", "hearts", "lives", "ammo" ], "authorIds": [ "IWykYNRvhCZBN3vEgKEbBPOR3Oc2", "gqDaZjCfevOOxBYkK6zlhtZnXCg1", "q8ubdigLvIRXLxsJDDTaokO41mc2" ], "dependencies": [], "eventsFunctions": [], "eventsBasedBehaviors": [ { "description": "A bar that represents a resource in the game (health, mana, ammo, etc).", "fullName": "Resource bar", "name": "ResourceBar", "objectType": "", "private": true, "eventsFunctions": [ { "fullName": "", "functionType": "Action", "name": "doStepPostEvents", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "This is done after the events to allow users to read the previous value at the end of the change." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "CompareObjectTimer" }, "parameters": [ "Object", "\"__ResourceBar.LastValueChange\"", "<=", "Object.Behavior::PropertyPreviousHighValueDuration()" ] } ], "actions": [ { "type": { "value": "PanelSpriteContinuousBar::ResourceBar::UpdatePreviousHighValue" }, "parameters": [ "Object", "Behavior", "=" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "PanelSpriteContinuousBar::ResourceBar", "type": "behavior" } ], "objectGroups": [] }, { "description": "the value of the object.", "fullName": "Value", "functionType": "ExpressionAndCondition", "name": "Value", "sentence": "the value", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyValue()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "PanelSpriteContinuousBar::ResourceBar", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "Value", "name": "SetValue", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "PanelSpriteContinuousBar::ResourceBar::SetPropertyValue" }, "parameters": [ "Object", "Behavior", "=", "clamp(GetArgumentAsNumber(\"Value\"), 0, Object.Behavior::MaxValue())" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteContinuousBar::ResourceBar::PropertyValue" }, "parameters": [ "Object", "Behavior", "<", "Object.Behavior::PreviousHighValue()" ] } ], "actions": [ { "type": { "value": "ResetObjectTimer" }, "parameters": [ "Object", "\"__ResourceBar.LastValueChange\"" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteContinuousBar::ResourceBar::PropertyValue" }, "parameters": [ "Object", "Behavior", ">=", "Object.Behavior::PropertyPreviousHighValue()" ] } ], "actions": [ { "type": { "value": "PanelSpriteContinuousBar::ResourceBar::UpdatePreviousHighValue" }, "parameters": [ "Object", "Behavior", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "PanelSpriteContinuousBar::ResourceBar", "type": "behavior" } ], "objectGroups": [] }, { "description": "the maximum value of the object.", "fullName": "Maximum value", "functionType": "ExpressionAndCondition", "group": "Resource bar configuration", "name": "MaxValue", "sentence": "the maximum value", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyMaxValue()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "PanelSpriteContinuousBar::ResourceBar", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "MaxValue", "name": "SetMaxValue", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "PanelSpriteContinuousBar::ResourceBar::SetPropertyMaxValue" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "PanelSpriteContinuousBar::ResourceBar", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if the bar is empty.", "fullName": "Empty", "functionType": "Condition", "name": "IsEmpty", "sentence": "_PARAM0_ bar is empty", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteContinuousBar::ResourceBar::PropertyValue" }, "parameters": [ "Object", "Behavior", "=", "0" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "PanelSpriteContinuousBar::ResourceBar", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if the bar is full.", "fullName": "Full", "functionType": "Condition", "name": "IsFull", "sentence": "_PARAM0_ bar is full", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteContinuousBar::ResourceBar::PropertyValue" }, "parameters": [ "Object", "Behavior", "=", "Object.Behavior::PropertyMaxValue()" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "PanelSpriteContinuousBar::ResourceBar", "type": "behavior" } ], "objectGroups": [] }, { "description": "the previous high value of the resource bar before the current change.", "fullName": "Previous high value", "functionType": "ExpressionAndCondition", "name": "PreviousHighValue", "sentence": "the previous high value", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyPreviousHighValue()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "PanelSpriteContinuousBar::ResourceBar", "type": "behavior" } ], "objectGroups": [] }, { "description": "Force the previous resource value to update to the current one.", "fullName": "Update previous value", "functionType": "Action", "name": "UpdatePreviousHighValue", "sentence": "Update the previous resource value of _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "PanelSpriteContinuousBar::ResourceBar::SetPropertyPreviousHighValue" }, "parameters": [ "Object", "Behavior", "=", "Object.Behavior::PropertyValue()" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "PanelSpriteContinuousBar::ResourceBar", "type": "behavior" } ], "objectGroups": [] }, { "description": "the previous high value conservation duration (in seconds) of the object.", "fullName": "Previous high value conservation duration", "functionType": "ExpressionAndCondition", "group": "FillBar bar configuration", "name": "PreviousHighValueDuration", "sentence": "the previous high value conservation duration", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyPreviousHighValueDuration()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "PanelSpriteContinuousBar::ResourceBar", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "PreviousHighValueDuration", "name": "SetPreviousHighValueDuration", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "PanelSpriteContinuousBar::ResourceBar::SetPropertyPreviousHighValueDuration" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "PanelSpriteContinuousBar::ResourceBar", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if the resource value is changing.", "fullName": "Value is changing", "functionType": "Condition", "name": "IsChanging", "sentence": "_PARAM0_ value is changing", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteContinuousBar::ResourceBar::PreviousHighValue" }, "parameters": [ "Object", "Behavior", "!=", "Object.Behavior::PropertyValue()", "" ] }, { "type": { "value": "CompareObjectTimer" }, "parameters": [ "Object", "\"__ResourceBar.LastValueChange\"", "<=", "Object.Behavior::PropertyPreviousHighValueDuration()" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "PanelSpriteContinuousBar::ResourceBar", "type": "behavior" } ], "objectGroups": [] } ], "propertyDescriptors": [ { "value": "1", "type": "Number", "label": "Value", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "Value" }, { "value": "3", "type": "Number", "label": "Maximum value", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "MaxValue" }, { "value": "", "type": "Number", "label": "Previous high value", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "PreviousHighValue" }, { "value": "1", "type": "Number", "label": "Previous high value conservation duration (in seconds)", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "PreviousHighValueDuration" } ], "sharedPropertyDescriptors": [] } ], "eventsBasedObjects": [ { "defaultName": "ResourceBar", "description": "A bar that represents a resource in the game (health, mana, ammo, etc).", "fullName": "Resource bar (continuous)", "name": "PanelSpriteContinuousBar", "eventsFunctions": [ { "fullName": "", "functionType": "Action", "name": "onCreated", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "This allows to detect a change of \"intial value\" on hot reload." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::SetPropertyPreviousInitialValue" }, "parameters": [ "Object", "=", "Object.PropertyInitialValue()" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Create the child-object instances." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "Create" }, "parameters": [ "", "Background", "0", "0", "" ] }, { "type": { "value": "Create" }, "parameters": [ "", "FillBar", "0", "0", "" ] }, { "type": { "value": "ChangePlan" }, "parameters": [ "Background", "=", "1" ] }, { "type": { "value": "ChangePlan" }, "parameters": [ "FillBar", "=", "3" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::PropertyPreviousHighValueDuration" }, "parameters": [ "Object", ">", "0" ] } ], "actions": [ { "type": { "value": "Create" }, "parameters": [ "", "Buffer", "0", "0", "" ] }, { "type": { "value": "ChangePlan" }, "parameters": [ "Buffer", "=", "2" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Create the label over the bar." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "Create" }, "parameters": [ "", "Label", "0", "0", "" ] }, { "type": { "value": "ChangePlan" }, "parameters": [ "Label", "=", "4" ] }, { "type": { "value": "TextObject::SetTextAlignment" }, "parameters": [ "Label", "\"center\"" ] }, { "type": { "value": "TextObject::SetWrapping" }, "parameters": [ "Label", "yes" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::PropertyShowLabel" }, "parameters": [ "Object" ] } ], "actions": [ { "type": { "value": "Cache" }, "parameters": [ "Label" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Pass the configuration to the behavior." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::SetMaxValue" }, "parameters": [ "Object", "=", "Object.PropertyMaxValue()", "Object.PropertyMaxValue()" ] }, { "type": { "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::SetValue" }, "parameters": [ "Object", "=", "Object.PropertyInitialValue()", "Object.PropertyInitialValue()" ] }, { "type": { "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::SetPreviousValueDuration" }, "parameters": [ "Object", "=", "Object.PropertyPreviousHighValueDuration()", "" ] }, { "type": { "value": "Tween::RemoveTween" }, "parameters": [ "FillBar", "Tween", "\"ChangeValue\"" ] }, { "type": { "value": "PanelSpriteObject::Width" }, "parameters": [ "FillBar", "=", "Object.WidthForValue()" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "PanelSpriteContinuousBar::PanelSpriteContinuousBar", "type": "object" } ], "objectGroups": [] }, { "fullName": "", "functionType": "Action", "name": "onHotReloading", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::UpdateLayout" }, "parameters": [ "Object", "" ] }, { "type": { "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::SetMaxValue" }, "parameters": [ "Object", "=", "Object.PropertyMaxValue()", "Object.PropertyMaxValue()" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::PropertyInitialValue" }, "parameters": [ "Object", "!=", "Object.PropertyPreviousInitialValue()" ] } ], "actions": [ { "type": { "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::SetPropertyPreviousInitialValue" }, "parameters": [ "Object", "=", "Object.PropertyInitialValue()" ] }, { "type": { "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::SetValue" }, "parameters": [ "Object", "=", "Object.PropertyInitialValue()", "Object.PropertyInitialValue()" ] }, { "type": { "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::SetPreviousValueDuration" }, "parameters": [ "Object", "=", "Object.PropertyPreviousHighValueDuration()", "" ] }, { "type": { "value": "Tween::RemoveTween" }, "parameters": [ "FillBar", "Tween", "\"ChangeValue\"" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "PanelSpriteObject::Width" }, "parameters": [ "FillBar", "=", "Object.WidthForValue()" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "PanelSpriteContinuousBar::PanelSpriteContinuousBar", "type": "object" } ], "objectGroups": [] }, { "fullName": "", "functionType": "Action", "name": "doStepPostEvents", "sentence": "", "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Resize", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Children instances must be resized when the parent size change:\n- background is resized to take the full dimensions of the parent\n- the bar size is refreshed according to the value\n- the label is put back at the center of the bar\n\nThe scale is set back to 1 because it means that the parent instance has the same dimensions as the union of its children instances." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "BuiltinCommonInstructions::CompareNumbers" }, "parameters": [ "Object.Width()", "!=", "max(Background.BoundingBoxRight(), Label.BoundingBoxRight()) - min(Background.BoundingBoxLeft(), Label.BoundingBoxLeft())" ] }, { "type": { "value": "BuiltinCommonInstructions::CompareNumbers" }, "parameters": [ "Object.Height()", "!=", "max(Background.BoundingBoxBottom(), Label.BoundingBoxBottom()) - min(Background.BoundingBoxTop(), Label.BoundingBoxTop())" ] } ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Background", "Width", "=", "Object.Width()" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Background", "Height", "=", "Object.Height()" ] }, { "type": { "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::Scale" }, "parameters": [ "Object", "=", "1" ] }, { "type": { "value": "PanelSpriteObject::Width" }, "parameters": [ "Background", "=", "Background.Variable(Width)" ] }, { "type": { "value": "PanelSpriteObject::Height" }, "parameters": [ "Background", "=", "Background.Variable(Height)" ] }, { "type": { "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::UpdateLayout" }, "parameters": [ "Object", "" ] } ] } ], "parameters": [] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::IsChanging" }, "parameters": [ "Object", "" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "Tween::AddObjectWidthTween" }, "parameters": [ "Buffer", "Tween", "\"ChangeValue\"", "Object.WidthForValue()", "\"linear\"", "Object.PropertyEasingDuration() * 1000", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteObject::Width" }, "parameters": [ "FillBar", "<", "Buffer.Width()" ] } ], "actions": [ { "type": { "value": "Montre" }, "parameters": [ "Buffer", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteObject::Width" }, "parameters": [ "FillBar", ">=", "Buffer.Width()" ] } ], "actions": [ { "type": { "value": "Cache" }, "parameters": [ "Buffer" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "PanelSpriteContinuousBar::PanelSpriteContinuousBar", "type": "object" } ], "objectGroups": [] }, { "description": "Center the bar according to the button configuration. This is used in doStepPostEvents when the button is resized.", "fullName": "Update layout", "functionType": "Action", "name": "UpdateLayout", "private": true, "sentence": "Update layout of _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "MettreXY" }, "parameters": [ "FillBar", "=", "Object.PropertyBarLeftPadding()", "=", "Object.PropertyBarTopPadding()" ] }, { "type": { "value": "PanelSpriteObject::Width" }, "parameters": [ "FillBar", "=", "Object.WidthForValue()" ] }, { "type": { "value": "PanelSpriteObject::Height" }, "parameters": [ "FillBar", "=", "round(Background.Height() - Object.PropertyBarTopPadding() - Object.PropertyBarBottomPadding())" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "MettreXY" }, "parameters": [ "Buffer", "=", "FillBar.X()", "=", "FillBar.Y()" ] }, { "type": { "value": "PanelSpriteObject::Width" }, "parameters": [ "Buffer", "=", "FillBar.Width()" ] }, { "type": { "value": "PanelSpriteObject::Height" }, "parameters": [ "Buffer", "=", "FillBar.Height()" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "MettreXY" }, "parameters": [ "Label", "=", "Object.PropertyBarLeftPadding()", "=", "Object.PropertyBarTopPadding()" ] }, { "type": { "value": "TextObject::WrappingWidth" }, "parameters": [ "Label", "=", "Object.FullBarWidth()" ] }, { "type": { "value": "SetCenterY" }, "parameters": [ "Label", "=", "FillBar.CenterY()" ] }, { "type": { "value": "SetCenterX" }, "parameters": [ "Label", "=", "Background.CenterX() + (Object.PropertyBarLeftPadding() - Object.PropertyBarRightPadding()) / 2" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "PanelSpriteContinuousBar::PanelSpriteContinuousBar", "type": "object" } ], "objectGroups": [] }, { "description": "the value of the object.", "fullName": "Value", "functionType": "ExpressionAndCondition", "group": "Resource bar", "name": "Value", "sentence": "the value", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "FillBar.ResourceBar::Value()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "PanelSpriteContinuousBar::PanelSpriteContinuousBar", "type": "object" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "Value", "name": "SetValue", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "PanelSpriteContinuousBar::ResourceBar::SetValue" }, "parameters": [ "FillBar", "ResourceBar", "=", "GetArgumentAsNumber(\"Value\")", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::PropertyEasingDuration" }, "parameters": [ "Object", ">", "0" ] } ], "actions": [ { "type": { "value": "Tween::AddObjectWidthTween" }, "parameters": [ "FillBar", "Tween", "\"ChangeValue\"", "Object.WidthForValue()", "\"linear\"", "Object.PropertyEasingDuration() * 1000", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::PropertyEasingDuration" }, "parameters": [ "Object", "<=", "0" ] } ], "actions": [ { "type": { "value": "PanelSpriteObject::Width" }, "parameters": [ "FillBar", "=", "Object.WidthForValue()" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::UpdateLabel" }, "parameters": [ "Object", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteContinuousBar::ResourceBar::IsChanging" }, "parameters": [ "FillBar", "ResourceBar", "" ] } ], "actions": [ { "type": { "value": "PanelSpriteObject::Width" }, "parameters": [ "Buffer", "=", "round(Object.FullBarWidth() * FillBar.ResourceBar::PreviousHighValue() / FillBar.ResourceBar::MaxValue())" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "PanelSpriteContinuousBar::PanelSpriteContinuousBar", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "PanelSpriteContinuousBar::ResourceBar", "type": "behavior" } ], "objectGroups": [] }, { "description": "the maximum value of the object.", "fullName": "Maximum value", "functionType": "ExpressionAndCondition", "group": "Resource bar configuration", "name": "MaxValue", "sentence": "the maximum value", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "FillBar.ResourceBar::PropertyMaxValue()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "PanelSpriteContinuousBar::PanelSpriteContinuousBar", "type": "object" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "MaxValue", "name": "SetMaxValue", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "PanelSpriteContinuousBar::ResourceBar::SetMaxValue" }, "parameters": [ "FillBar", "ResourceBar", "=", "GetArgumentAsNumber(\"Value\")", "" ] }, { "type": { "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::UpdateLabel" }, "parameters": [ "Object", "" ] }, { "type": { "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::UpdateLayout" }, "parameters": [ "Object", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "PanelSpriteContinuousBar::PanelSpriteContinuousBar", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "PanelSpriteContinuousBar::ResourceBar", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if the bar is empty.", "fullName": "Empty", "functionType": "Condition", "group": "Resource bar", "name": "IsEmpty", "sentence": "_PARAM0_ is empty", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteContinuousBar::ResourceBar::IsEmpty" }, "parameters": [ "FillBar", "ResourceBar", "=" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "PanelSpriteContinuousBar::PanelSpriteContinuousBar", "type": "object" } ], "objectGroups": [] }, { "description": "Check if the bar is full.", "fullName": "Full", "functionType": "Condition", "group": "Resource bar", "name": "IsFull", "sentence": "_PARAM0_ is full", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteContinuousBar::ResourceBar::IsFull" }, "parameters": [ "FillBar", "ResourceBar", "=" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "PanelSpriteContinuousBar::PanelSpriteContinuousBar", "type": "object" } ], "objectGroups": [] }, { "description": "the previous value conservation duration (in seconds) of the object.", "fullName": "Previous value conservation duration", "functionType": "ExpressionAndCondition", "group": "Resource bar configuration", "name": "PreviousValueDuration", "sentence": "the previous value conservation duration", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "FillBar.ResourceBar::PropertyPreviousHighValueDuration()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "PanelSpriteContinuousBar::PanelSpriteContinuousBar", "type": "object" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "PreviousValueDuration", "name": "SetPreviousValueDuration", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "PanelSpriteContinuousBar::ResourceBar::SetPreviousHighValueDuration" }, "parameters": [ "FillBar", "ResourceBar", "=", "GetArgumentAsNumber(\"Value\")", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CompareArgumentAsNumber" }, "parameters": [ "\"Value\"", "!=", "0" ] } ], "actions": [ { "type": { "value": "Montre" }, "parameters": [ "Buffer", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CompareArgumentAsNumber" }, "parameters": [ "\"Value\"", "=", "0" ] } ], "actions": [ { "type": { "value": "Cache" }, "parameters": [ "Buffer" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "PanelSpriteContinuousBar::PanelSpriteContinuousBar", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "PanelSpriteContinuousBar::ResourceBar", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if the resource value is changing.", "fullName": "Value is changing", "functionType": "Condition", "group": "Resource bar", "name": "IsChanging", "private": true, "sentence": "_PARAM0_ value is changing", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteContinuousBar::ResourceBar::IsChanging" }, "parameters": [ "FillBar", "ResourceBar", "" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "PanelSpriteContinuousBar::PanelSpriteContinuousBar", "type": "object" } ], "objectGroups": [] }, { "fullName": "Value width", "functionType": "Expression", "name": "WidthForValue", "private": true, "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "round(Object.FullBarWidth() * FillBar.ResourceBar::Value() / FillBar.ResourceBar::MaxValue())" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "PanelSpriteContinuousBar::PanelSpriteContinuousBar", "type": "object" } ], "objectGroups": [] }, { "fullName": "", "functionType": "Expression", "name": "FullBarWidth", "private": true, "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Background.Width() - Object.PropertyBarLeftPadding() - Object.PropertyBarRightPadding()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "PanelSpriteContinuousBar::PanelSpriteContinuousBar", "type": "object" } ], "objectGroups": [] }, { "description": "Check if the label is shown.", "fullName": "Label is shown", "functionType": "Condition", "group": "Resource bar configuration", "name": "IsLabelShown", "sentence": "_PARAM0_ label is shown", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::PropertyShowLabel" }, "parameters": [ "Object" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "PanelSpriteContinuousBar::PanelSpriteContinuousBar", "type": "object" } ], "objectGroups": [] }, { "description": "Show (or hide) the label on the bar.", "fullName": "Show label", "functionType": "Action", "group": "Resource bar configuration", "name": "SetLabelShown", "sentence": "Show the label of _PARAM0_: _PARAM1_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "GetArgumentAsBoolean" }, "parameters": [ "\"Value\"" ] } ], "actions": [ { "type": { "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::SetPropertyShowLabel" }, "parameters": [ "Object", "no" ] }, { "type": { "value": "Cache" }, "parameters": [ "Label" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "GetArgumentAsBoolean" }, "parameters": [ "\"Value\"" ] } ], "actions": [ { "type": { "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::SetPropertyShowLabel" }, "parameters": [ "Object", "yes" ] }, { "type": { "value": "Montre" }, "parameters": [ "Label", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "PanelSpriteContinuousBar::PanelSpriteContinuousBar", "type": "object" }, { "description": "Show the label", "name": "Value", "type": "yesorno" } ], "objectGroups": [] }, { "description": "Update the text that display the current value and maximum value.", "fullName": "Update label", "functionType": "Action", "name": "UpdateLabel", "private": true, "sentence": "Update label of _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "TextObject::String" }, "parameters": [ "Label", "=", "ToString(round(Object.Value())) + \" / \" + ToString(Object.MaxValue())" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "PanelSpriteContinuousBar::PanelSpriteContinuousBar", "type": "object" } ], "objectGroups": [] } ], "propertyDescriptors": [ { "value": "0", "type": "Number", "label": "", "description": "", "group": "Bar", "extraInformation": [ "Label", "FillBar", "Buffer" ], "hidden": false, "name": "BarLeftPadding" }, { "value": "0", "type": "Number", "label": "", "description": "", "group": "Bar", "extraInformation": [ "Label", "FillBar", "Buffer" ], "hidden": false, "name": "BarTopPadding" }, { "value": "0", "type": "Number", "label": "", "description": "", "group": "Bar", "extraInformation": [ "Label", "FillBar", "Buffer" ], "hidden": false, "name": "BarRightPadding" }, { "value": "0", "type": "Number", "label": "", "description": "", "group": "Bar", "extraInformation": [ "Label", "FillBar", "Buffer" ], "hidden": false, "name": "BarBottomPadding" }, { "value": "3", "type": "Number", "label": "Maximum value", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "MaxValue" }, { "value": "3", "type": "Number", "label": "Initial value", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "InitialValue" }, { "value": "", "type": "Number", "label": "", "description": "It's used to detect a change at hot reload.", "group": "", "extraInformation": [], "hidden": true, "name": "PreviousInitialValue" }, { "value": "1", "type": "Number", "label": "Previous high value conservation duration (in seconds)", "description": "", "group": "Animation", "extraInformation": [], "hidden": false, "name": "PreviousHighValueDuration" }, { "value": "0.25", "type": "Number", "label": "Easing duration", "description": "", "group": "Animation", "extraInformation": [], "hidden": false, "name": "EasingDuration" }, { "value": "true", "type": "Boolean", "label": "Show the label", "description": "", "group": "", "extraInformation": [ "Label" ], "hidden": false, "name": "ShowLabel" }, { "value": "", "type": "Boolean", "label": "", "description": "Only used by the scene editor.", "group": "", "extraInformation": [ "Buffer" ], "hidden": true, "name": "ShowBuffer" }, { "value": "Center", "type": "String", "label": "", "description": "Only used by the scene editor.", "group": "", "extraInformation": [ "Label" ], "hidden": true, "name": "LabelVerticalAnchorOrigin" }, { "value": "Center", "type": "String", "label": "", "description": "Only used by the scene editor.", "group": "", "extraInformation": [ "FillBar" ], "hidden": true, "name": "LabelVerticalAnchorTarget" } ], "objects": [ { "assetStoreId": "", "bold": false, "italic": false, "name": "Label", "smoothed": true, "type": "TextObject::Text", "underlined": false, "variables": [], "effects": [], "behaviors": [], "string": "2 / 3", "font": "", "textAlignment": "center", "characterSize": 20, "color": { "b": 0, "g": 0, "r": 0 } }, { "assetStoreId": "", "bottomMargin": 0, "height": 32, "leftMargin": 0, "name": "FillBar", "rightMargin": 0, "texture": "", "tiled": true, "topMargin": 0, "type": "PanelSpriteObject::PanelSprite", "width": 32, "variables": [], "effects": [], "behaviors": [ { "name": "ResourceBar", "type": "PanelSpriteContinuousBar::ResourceBar", "Value": 1, "MaxValue": 3, "PreviousValue": 0 }, { "name": "Tween", "type": "Tween::TweenBehavior" } ] }, { "assetStoreId": "", "bottomMargin": 0, "height": 32, "leftMargin": 0, "name": "Buffer", "rightMargin": 0, "texture": "", "tiled": true, "topMargin": 0, "type": "PanelSpriteObject::PanelSprite", "width": 32, "variables": [], "effects": [], "behaviors": [ { "name": "Tween", "type": "Tween::TweenBehavior" } ] }, { "assetStoreId": "", "bottomMargin": 0, "height": 32, "leftMargin": 0, "name": "Background", "rightMargin": 0, "texture": "", "tiled": true, "topMargin": 0, "type": "PanelSpriteObject::PanelSprite", "width": 32, "variables": [], "effects": [], "behaviors": [] } ], "objectsFolderStructure": { "folderName": "__ROOT", "children": [ { "objectName": "Label" }, { "objectName": "FillBar" }, { "objectName": "Buffer" }, { "objectName": "Background" } ] } } ] }, { "author": "", "category": "User interface", "extensionNamespace": "", "fullName": "Resource bar (separated units)", "helpPath": "/objects/resource-bar", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLWRvdHMtaG9yaXpvbnRhbCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0xNiwxMkEyLDIgMCAwLDEgMTgsMTBBMiwyIDAgMCwxIDIwLDEyQTIsMiAwIDAsMSAxOCwxNEEyLDIgMCAwLDEgMTYsMTJNMTAsMTJBMiwyIDAgMCwxIDEyLDEwQTIsMiAwIDAsMSAxNCwxMkEyLDIgMCAwLDEgMTIsMTRBMiwyIDAgMCwxIDEwLDEyTTQsMTJBMiwyIDAgMCwxIDYsMTBBMiwyIDAgMCwxIDgsMTJBMiwyIDAgMCwxIDYsMTRBMiwyIDAgMCwxIDQsMTJaIiAvPjwvc3ZnPg==", "name": "TiledUnitsBar", "previewIconUrl": "https://asset-resources.gdevelop.io/public-resources/Icons/063e9152cf65bc0f3be2a828afd950c3ecf1b1fc72feefdc2467252fe987dc0f_dots-horizontal.svg", "shortDescription": "A bar that represents a resource in the game (health, mana, ammo, etc).", "version": "1.1.2", "description": [ "A bar that represents a resource in the game (health, mana, ammo, etc).", "", "There are ready-to-use resource bars in the asset-store [resource bars pack](https://editor.gdevelop.io/?initial-dialog=asset-store&asset-pack=resource-bars-resource-bars)." ], "origin": { "identifier": "TiledUnitsBar", "name": "gdevelop-extension-store" }, "tags": [ "resource", "bar", "health", "mana", "shield", "hearts", "lives", "ammo" ], "authorIds": [ "IWykYNRvhCZBN3vEgKEbBPOR3Oc2", "gqDaZjCfevOOxBYkK6zlhtZnXCg1", "q8ubdigLvIRXLxsJDDTaokO41mc2" ], "dependencies": [], "eventsFunctions": [], "eventsBasedBehaviors": [ { "description": "A bar that represents a resource in the game (health, mana, ammo, etc).", "fullName": "Resource bar", "name": "ResourceBar", "objectType": "", "private": true, "eventsFunctions": [ { "fullName": "", "functionType": "Action", "name": "doStepPostEvents", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "This is done after the events to allow users to read the previous value at the end of the change." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "CompareObjectTimer" }, "parameters": [ "Object", "\"__ResourceBar.LastValueChange\"", "<=", "Object.Behavior::PropertyPreviousHighValueDuration()" ] } ], "actions": [ { "type": { "value": "TiledUnitsBar::ResourceBar::UpdatePreviousHighValue" }, "parameters": [ "Object", "Behavior", "=" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "TiledUnitsBar::ResourceBar", "type": "behavior" } ], "objectGroups": [] }, { "description": "the value of the object.", "fullName": "Value", "functionType": "ExpressionAndCondition", "name": "Value", "sentence": "the value", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyValue()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "TiledUnitsBar::ResourceBar", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "Value", "name": "SetValue", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "TiledUnitsBar::ResourceBar::SetPropertyValue" }, "parameters": [ "Object", "Behavior", "=", "clamp(GetArgumentAsNumber(\"Value\"), 0, Object.Behavior::MaxValue())" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "TiledUnitsBar::ResourceBar::PropertyValue" }, "parameters": [ "Object", "Behavior", "<", "Object.Behavior::PreviousHighValue()" ] } ], "actions": [ { "type": { "value": "ResetObjectTimer" }, "parameters": [ "Object", "\"__ResourceBar.LastValueChange\"" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "TiledUnitsBar::ResourceBar::PropertyValue" }, "parameters": [ "Object", "Behavior", ">=", "Object.Behavior::PropertyPreviousHighValue()" ] } ], "actions": [ { "type": { "value": "TiledUnitsBar::ResourceBar::UpdatePreviousHighValue" }, "parameters": [ "Object", "Behavior", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "TiledUnitsBar::ResourceBar", "type": "behavior" } ], "objectGroups": [] }, { "description": "the maximum value of the object.", "fullName": "Maximum value", "functionType": "ExpressionAndCondition", "group": "Resource bar configuration", "name": "MaxValue", "sentence": "the maximum value", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyMaxValue()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "TiledUnitsBar::ResourceBar", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "MaxValue", "name": "SetMaxValue", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "TiledUnitsBar::ResourceBar::SetPropertyMaxValue" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "TiledUnitsBar::ResourceBar", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if the bar is empty.", "fullName": "Empty", "functionType": "Condition", "name": "IsEmpty", "sentence": "_PARAM0_ bar is empty", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "TiledUnitsBar::ResourceBar::PropertyValue" }, "parameters": [ "Object", "Behavior", "=", "0" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "TiledUnitsBar::ResourceBar", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if the bar is full.", "fullName": "Full", "functionType": "Condition", "name": "IsFull", "sentence": "_PARAM0_ bar is full", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "TiledUnitsBar::ResourceBar::PropertyValue" }, "parameters": [ "Object", "Behavior", "=", "Object.Behavior::PropertyMaxValue()" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "TiledUnitsBar::ResourceBar", "type": "behavior" } ], "objectGroups": [] }, { "description": "the previous high value of the resource bar before the current change.", "fullName": "Previous high value", "functionType": "ExpressionAndCondition", "name": "PreviousHighValue", "sentence": "the previous high value", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyPreviousHighValue()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "TiledUnitsBar::ResourceBar", "type": "behavior" } ], "objectGroups": [] }, { "description": "Force the previous resource value to update to the current one.", "fullName": "Update previous value", "functionType": "Action", "name": "UpdatePreviousHighValue", "sentence": "Update the previous resource value of _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "TiledUnitsBar::ResourceBar::SetPropertyPreviousHighValue" }, "parameters": [ "Object", "Behavior", "=", "Object.Behavior::PropertyValue()" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "TiledUnitsBar::ResourceBar", "type": "behavior" } ], "objectGroups": [] }, { "description": "the previous high value conservation duration (in seconds) of the object.", "fullName": "Previous high value conservation duration", "functionType": "ExpressionAndCondition", "group": "Resource bar configuration", "name": "PreviousHighValueDuration", "sentence": "the previous high value conservation duration", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyPreviousHighValueDuration()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "TiledUnitsBar::ResourceBar", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "PreviousHighValueDuration", "name": "SetPreviousHighValueDuration", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "TiledUnitsBar::ResourceBar::SetPropertyPreviousHighValueDuration" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "TiledUnitsBar::ResourceBar", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if the resource value is changing.", "fullName": "Value is changing", "functionType": "Condition", "name": "IsChanging", "sentence": "_PARAM0_ value is changing", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "TiledUnitsBar::ResourceBar::PreviousHighValue" }, "parameters": [ "Object", "Behavior", "!=", "Object.Behavior::PropertyValue()", "" ] }, { "type": { "value": "CompareObjectTimer" }, "parameters": [ "Object", "\"__ResourceBar.LastValueChange\"", "<=", "Object.Behavior::PropertyPreviousHighValueDuration()" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "TiledUnitsBar::ResourceBar", "type": "behavior" } ], "objectGroups": [] } ], "propertyDescriptors": [ { "value": "1", "type": "Number", "label": "Value", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "Value" }, { "value": "3", "type": "Number", "label": "Maximum value", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "MaxValue" }, { "value": "", "type": "Number", "label": "Previous high value", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "PreviousHighValue" }, { "value": "1", "type": "Number", "label": "Previous high value conservation duration (in seconds)", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "PreviousHighValueDuration" } ], "sharedPropertyDescriptors": [] } ], "eventsBasedObjects": [ { "defaultName": "ResourceBar", "description": "A bar that represents a resource in the game (health, mana, ammo, etc).", "fullName": "Resource bar (separated units)", "name": "TiledUnitsBar", "eventsFunctions": [ { "fullName": "", "functionType": "Action", "name": "onCreated", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "This allows to detect a change of \"intial value\" on hot reload." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "TiledUnitsBar::TiledUnitsBar::SetPropertyPreviousInitialValue" }, "parameters": [ "Object", "=", "Object.PropertyInitialValue()" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Create the child-object instances." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "Create" }, "parameters": [ "", "Background", "0", "0", "" ] }, { "type": { "value": "Create" }, "parameters": [ "", "Bar", "0", "0", "" ] }, { "type": { "value": "Create" }, "parameters": [ "", "FillBar", "0", "0", "" ] }, { "type": { "value": "ChangePlan" }, "parameters": [ "Background", "=", "1" ] }, { "type": { "value": "ChangePlan" }, "parameters": [ "Bar", "=", "2" ] }, { "type": { "value": "ChangePlan" }, "parameters": [ "FillBar", "=", "3" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "TiledUnitsBar::TiledUnitsBar::PropertyShowBackground" }, "parameters": [ "Object" ] } ], "actions": [ { "type": { "value": "Cache" }, "parameters": [ "Background" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Pass the configuration to the behavior (MaxValue must be set before Value)." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "TiledUnitsBar::TiledUnitsBar::SetMaxValue" }, "parameters": [ "Object", "=", "Object.PropertyMaxValue()", "" ] }, { "type": { "value": "TiledUnitsBar::TiledUnitsBar::SetValue" }, "parameters": [ "Object", "=", "Object.PropertyInitialValue()", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "TiledUnitsBar::TiledUnitsBar", "type": "object" } ], "objectGroups": [] }, { "fullName": "", "functionType": "Action", "name": "onHotReloading", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "TiledUnitsBar::TiledUnitsBar::CenterBar" }, "parameters": [ "Object", "" ] }, { "type": { "value": "TiledUnitsBar::TiledUnitsBar::SetMaxValue" }, "parameters": [ "Object", "=", "Object.PropertyMaxValue()", "Object.PropertyMaxValue()" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "TiledUnitsBar::TiledUnitsBar::PropertyInitialValue" }, "parameters": [ "Object", "!=", "Object.PropertyPreviousInitialValue()" ] } ], "actions": [ { "type": { "value": "TiledUnitsBar::TiledUnitsBar::SetPropertyPreviousInitialValue" }, "parameters": [ "Object", "=", "Object.PropertyInitialValue()" ] }, { "type": { "value": "TiledUnitsBar::TiledUnitsBar::SetValue" }, "parameters": [ "Object", "=", "Object.PropertyInitialValue()", "Object.PropertyInitialValue()" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "TiledUnitsBar::TiledUnitsBar", "type": "object" } ], "objectGroups": [] }, { "fullName": "", "functionType": "Action", "name": "doStepPostEvents", "sentence": "", "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Resize", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Children instances must be resized when the button size change:\n- background is resized to take the full dimensions of the button\n- the bar size is refreshed according to the value\n\nThe scale is set back to 1 because it means that the parent instance has the same dimensions as the union of its children instances." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "BuiltinCommonInstructions::CompareNumbers" }, "parameters": [ "Object.Width()", "!=", "max(Background.BoundingBoxRight(), Bar.BoundingBoxRight()) - min(Background.BoundingBoxLeft(), Bar.BoundingBoxLeft())" ] }, { "type": { "value": "BuiltinCommonInstructions::CompareNumbers" }, "parameters": [ "Object.Height()", "!=", "max(Background.BoundingBoxBottom(), Bar.BoundingBoxBottom()) - min(Background.BoundingBoxTop(), Bar.BoundingBoxTop())" ] } ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Background", "Width", "=", "Object.Width()" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Background", "Height", "=", "Object.Height()" ] }, { "type": { "value": "TiledUnitsBar::Scale" }, "parameters": [ "Object", "=", "1" ] }, { "type": { "value": "PanelSpriteObject::Width" }, "parameters": [ "Background", "=", "Background.Variable(Width)" ] }, { "type": { "value": "PanelSpriteObject::Height" }, "parameters": [ "Background", "=", "Background.Variable(Height)" ] }, { "type": { "value": "TiledUnitsBar::TiledUnitsBar::CenterBar" }, "parameters": [ "Object", "" ] } ] } ], "parameters": [] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "TiledUnitsBar::TiledUnitsBar", "type": "object" } ], "objectGroups": [] }, { "description": "Center the bar according to the button configuration. This is used in doStepPostEvents when the button is resized.", "fullName": "", "functionType": "Action", "name": "CenterBar", "private": true, "sentence": "Center the bar of _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetCenter" }, "parameters": [ "Bar", "=", "Background.CenterX()", "=", "Background.CenterY()" ] }, { "type": { "value": "MettreX" }, "parameters": [ "Bar", "+", "0" ] }, { "type": { "value": "MettreY" }, "parameters": [ "Bar", "+", "0" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "MettreXY" }, "parameters": [ "FillBar", "=", "Bar.X()", "=", "Bar.Y()" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "TiledUnitsBar::TiledUnitsBar", "type": "object" } ], "objectGroups": [] }, { "description": "the value of the object.", "fullName": "Value", "functionType": "ExpressionAndCondition", "group": "Resource bar", "name": "Value", "sentence": "the value", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "FillBar.ResourceBar::Value()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "TiledUnitsBar::TiledUnitsBar", "type": "object" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "Value", "name": "SetValue", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "TiledUnitsBar::ResourceBar::SetValue" }, "parameters": [ "FillBar", "ResourceBar", "=", "GetArgumentAsNumber(\"Value\")", "" ] }, { "type": { "value": "TiledSpriteObject::Width" }, "parameters": [ "FillBar", "=", "FillBar.ResourceBar::Value() * Object.PropertyUnitWidth()" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "TiledUnitsBar::TiledUnitsBar", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "TiledUnitsBar::ResourceBar", "type": "behavior" } ], "objectGroups": [] }, { "description": "the maximum value of the object.", "fullName": "Maximum value", "functionType": "ExpressionAndCondition", "group": "Resource bar configuration", "name": "MaxValue", "sentence": "the maximum value", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "FillBar.ResourceBar::PropertyMaxValue()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "TiledUnitsBar::TiledUnitsBar", "type": "object" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "MaxValue", "name": "SetMaxValue", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "TiledUnitsBar::ResourceBar::SetMaxValue" }, "parameters": [ "FillBar", "ResourceBar", "=", "GetArgumentAsNumber(\"Value\")", "" ] }, { "type": { "value": "TiledSpriteObject::Width" }, "parameters": [ "Bar", "=", "Object.PropertyMaxValue() * Object.PropertyUnitWidth()" ] }, { "type": { "value": "TiledUnitsBar::TiledUnitsBar::CenterBar" }, "parameters": [ "Object", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "TiledUnitsBar::TiledUnitsBar", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "TiledUnitsBar::ResourceBar", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if the bar is empty.", "fullName": "Empty", "functionType": "Condition", "group": "Resource bar", "name": "IsEmpty", "sentence": "_PARAM0_ bar is empty", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "TiledUnitsBar::ResourceBar::IsEmpty" }, "parameters": [ "FillBar", "ResourceBar", "=" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "TiledUnitsBar::TiledUnitsBar", "type": "object" } ], "objectGroups": [] }, { "description": "Check if the bar is full.", "fullName": "Full", "functionType": "Condition", "group": "Resource bar", "name": "IsFull", "sentence": "_PARAM0_ bar is full", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "TiledUnitsBar::ResourceBar::IsFull" }, "parameters": [ "FillBar", "ResourceBar", "=" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "TiledUnitsBar::TiledUnitsBar", "type": "object" } ], "objectGroups": [] } ], "propertyDescriptors": [ { "value": "3", "type": "Number", "label": "Maximum value", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "MaxValue" }, { "value": "3", "type": "Number", "label": "Initial value", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "InitialValue" }, { "value": "", "type": "Number", "label": "", "description": "It's used to detect a change at hot reload.", "group": "", "extraInformation": [], "hidden": true, "name": "PreviousInitialValue" }, { "value": "24", "type": "Number", "label": "Unit width", "description": "How much pixels to show for a value of 1.", "group": "", "extraInformation": [], "hidden": false, "name": "UnitWidth" }, { "value": "true", "type": "Boolean", "label": "Show the background", "description": "", "group": "", "extraInformation": [ "Background" ], "hidden": false, "name": "ShowBackground" }, { "value": "0", "type": "Number", "label": "Bar left margin", "description": "", "group": "", "extraInformation": [ "FillBar", "Bar" ], "hidden": false, "name": "BarLeftPadding" }, { "value": "0", "type": "Number", "label": "Bar right margin", "description": "", "group": "", "extraInformation": [ "FillBar", "Bar" ], "hidden": false, "name": "BarRightPadding" }, { "value": "Center", "type": "String", "label": "", "description": "Only used by the scene editor.", "group": "", "extraInformation": [ "FillBar", "Bar" ], "hidden": true, "name": "BarVerticalAnchorOrigin" }, { "value": "Center", "type": "String", "label": "", "description": "Only used by the scene editor.", "group": "", "extraInformation": [ "Background" ], "hidden": true, "name": "BarVerticalAnchorTarget" } ], "objects": [ { "assetStoreId": "", "height": 32, "name": "FillBar", "texture": "", "type": "TiledSpriteObject::TiledSprite", "width": 32, "variables": [], "effects": [], "behaviors": [ { "name": "ResourceBar", "type": "TiledUnitsBar::ResourceBar", "Value": 1, "MaxValue": 3, "PreviousValue": 0 } ] }, { "assetStoreId": "", "height": 32, "name": "Bar", "texture": "", "type": "TiledSpriteObject::TiledSprite", "width": 32, "variables": [], "effects": [], "behaviors": [] }, { "assetStoreId": "", "bottomMargin": 0, "height": 32, "leftMargin": 0, "name": "Background", "rightMargin": 0, "texture": "", "tiled": true, "topMargin": 0, "type": "PanelSpriteObject::PanelSprite", "width": 32, "variables": [], "effects": [], "behaviors": [] } ], "objectsFolderStructure": { "folderName": "__ROOT", "children": [ { "objectName": "FillBar" }, { "objectName": "Bar" }, { "objectName": "Background" } ] } } ] }, { "author": "", "category": "User interface", "extensionNamespace": "", "fullName": "Panel sprite button", "helpPath": "/objects/button", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iSWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMzIgMzIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMyIDMyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQo8L3N0eWxlPg0KPHBhdGggY2xhc3M9InN0MCIgZD0iTTI5LDIzSDNjLTEuMSwwLTItMC45LTItMlYxMWMwLTEuMSwwLjktMiwyLTJoMjZjMS4xLDAsMiwwLjksMiwydjEwQzMxLDIyLjEsMzAuMSwyMywyOSwyM3oiLz4NCjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xMywxOUwxMywxOWMtMS4xLDAtMi0wLjktMi0ydi0yYzAtMS4xLDAuOS0yLDItMmgwYzEuMSwwLDIsMC45LDIsMnYyQzE1LDE4LjEsMTQuMSwxOSwxMywxOXoiLz4NCjxsaW5lIGNsYXNzPSJzdDAiIHgxPSIxOCIgeTE9IjEzIiB4Mj0iMTgiIHkyPSIxOSIvPg0KPGxpbmUgY2xhc3M9InN0MCIgeDE9IjIxIiB5MT0iMTMiIHgyPSIxOCIgeTI9IjE3Ii8+DQo8bGluZSBjbGFzcz0ic3QwIiB4MT0iMjEiIHkxPSIxOSIgeDI9IjE5IiB5Mj0iMTYiLz4NCjwvc3ZnPg0K", "name": "PanelSpriteButton", "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/Line Hero Pack/Master/SVG/Interface Elements/Interface Elements_interface_ui_button_ok_cta_clock_tap.svg", "shortDescription": "A button that can be customized.", "version": "1.4.4", "description": [ "The button can be customized with a background for each state and a label. It handles user interactions and a simple condition can be used to check if it is clicked.", "", "There are ready-to-use buttons in the asset-store [menu buttons pack](https://editor.gdevelop.io/?initial-dialog=asset-store&asset-pack=menu-buttons-menu-buttons)." ], "origin": { "identifier": "PanelSpriteButton", "name": "gdevelop-extension-store" }, "tags": [ "button", "ui" ], "authorIds": [ "IWykYNRvhCZBN3vEgKEbBPOR3Oc2" ], "dependencies": [], "eventsFunctions": [], "eventsBasedBehaviors": [ { "description": "The finite state machine used internally by the button object.", "fullName": "Button finite state machine", "name": "ButtonFSM", "objectType": "", "private": true, "eventsFunctions": [ { "fullName": "", "functionType": "Action", "name": "doStepPostEvents", "sentence": "", "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Finite state machine", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "The \"Validated\" state only last one frame." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteButton::ButtonFSM::PropertyState" }, "parameters": [ "Object", "Behavior", "=", "\"Validated\"" ] } ], "actions": [ { "type": { "value": "PanelSpriteButton::ButtonFSM::SetPropertyState" }, "parameters": [ "Object", "Behavior", "=", "\"Idle\"" ] } ] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Check position", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Make sure the cursor position is only checked once per frame." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "PanelSpriteButton::ButtonFSM::SetPropertyMouseIsInside" }, "parameters": [ "Object", "Behavior", "no" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteButton::ButtonFSM::PropertyShouldCheckHovering" }, "parameters": [ "Object", "Behavior" ] }, { "type": { "value": "CollisionPoint" }, "parameters": [ "Object", "MouseOnlyCursorX(Object.Layer(), 0)", "MouseOnlyCursorY(Object.Layer(), 0)" ] } ], "actions": [ { "type": { "value": "PanelSpriteButton::ButtonFSM::SetPropertyMouseIsInside" }, "parameters": [ "Object", "Behavior", "yes" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Touches are always pressed, so ShouldCheckHovering doesn't matter." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "PanelSpriteButton::ButtonFSM::SetPropertyTouchIsInside" }, "parameters": [ "Object", "Behavior", "no" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteButton::ButtonFSM::PropertyTouchId" }, "parameters": [ "Object", "Behavior", "!=", "0" ] }, { "type": { "value": "CollisionPoint" }, "parameters": [ "Object", "TouchX(Object.Behavior::PropertyTouchId(), Object.Layer(), 0)", "TouchY(Object.Behavior::PropertyTouchId(), Object.Layer(), 0)" ] } ], "actions": [ { "type": { "value": "PanelSpriteButton::ButtonFSM::SetPropertyTouchIsInside" }, "parameters": [ "Object", "Behavior", "yes" ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Handle touch start", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "HasAnyTouchOrMouseStarted" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "PanelSpriteButton::ButtonFSM::SetPropertyIndex" }, "parameters": [ "Object", "Behavior", "=", "0" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Repeat", "repeatExpression": "StartedTouchOrMouseCount()", "conditions": [], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CollisionPoint" }, "parameters": [ "Object", "TouchX(StartedTouchOrMouseId(Object.Behavior::PropertyIndex()), Object.Layer(), 0)", "TouchY(StartedTouchOrMouseId(Object.Behavior::PropertyIndex()), Object.Layer(), 0)" ] } ], "actions": [ { "type": { "value": "PanelSpriteButton::ButtonFSM::SetPropertyTouchId" }, "parameters": [ "Object", "Behavior", "=", "StartedTouchOrMouseId(Object.Behavior::PropertyIndex())" ] }, { "type": { "value": "PanelSpriteButton::ButtonFSM::SetPropertyTouchIsInside" }, "parameters": [ "Object", "Behavior", "yes" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "PanelSpriteButton::ButtonFSM::PropertyState" }, "parameters": [ "Object", "Behavior", "=", "\"Hovered\"" ] }, { "type": { "value": "PanelSpriteButton::ButtonFSM::PropertyState" }, "parameters": [ "Object", "Behavior", "=", "\"Idle\"" ] } ] } ], "actions": [ { "type": { "value": "PanelSpriteButton::ButtonFSM::SetPropertyState" }, "parameters": [ "Object", "Behavior", "=", "\"PressedInside\"" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "PanelSpriteButton::ButtonFSM::SetPropertyIndex" }, "parameters": [ "Object", "Behavior", "+", "1" ] } ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Apply position changes", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "PanelSpriteButton::ButtonFSM::PropertyMouseIsInside" }, "parameters": [ "Object", "Behavior" ] }, { "type": { "value": "PanelSpriteButton::ButtonFSM::PropertyState" }, "parameters": [ "Object", "Behavior", "=", "\"Hovered\"" ] } ], "actions": [ { "type": { "value": "PanelSpriteButton::ButtonFSM::SetPropertyState" }, "parameters": [ "Object", "Behavior", "=", "\"Idle\"" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteButton::ButtonFSM::PropertyMouseIsInside" }, "parameters": [ "Object", "Behavior" ] }, { "type": { "value": "PanelSpriteButton::ButtonFSM::PropertyState" }, "parameters": [ "Object", "Behavior", "=", "\"Idle\"" ] } ], "actions": [ { "type": { "value": "PanelSpriteButton::ButtonFSM::SetPropertyState" }, "parameters": [ "Object", "Behavior", "=", "\"Hovered\"" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "PanelSpriteButton::ButtonFSM::PropertyTouchIsInside" }, "parameters": [ "Object", "Behavior" ] }, { "type": { "value": "PanelSpriteButton::ButtonFSM::PropertyState" }, "parameters": [ "Object", "Behavior", "=", "\"PressedInside\"" ] } ], "actions": [ { "type": { "value": "PanelSpriteButton::ButtonFSM::SetPropertyState" }, "parameters": [ "Object", "Behavior", "=", "\"PressedOutside\"" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteButton::ButtonFSM::PropertyTouchIsInside" }, "parameters": [ "Object", "Behavior" ] }, { "type": { "value": "PanelSpriteButton::ButtonFSM::PropertyState" }, "parameters": [ "Object", "Behavior", "=", "\"PressedOutside\"" ] } ], "actions": [ { "type": { "value": "PanelSpriteButton::ButtonFSM::SetPropertyState" }, "parameters": [ "Object", "Behavior", "=", "\"PressedInside\"" ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Handle touch end", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "HasTouchEnded" }, "parameters": [ "", "Object.Behavior::PropertyTouchId()" ] } ], "actions": [ { "type": { "value": "PanelSpriteButton::ButtonFSM::SetPropertyTouchId" }, "parameters": [ "Object", "Behavior", "=", "0" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteButton::ButtonFSM::PropertyState" }, "parameters": [ "Object", "Behavior", "=", "\"PressedInside\"" ] } ], "actions": [ { "type": { "value": "PanelSpriteButton::ButtonFSM::SetPropertyState" }, "parameters": [ "Object", "Behavior", "=", "\"Validated\"" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "PanelSpriteButton::ButtonFSM::PropertyState" }, "parameters": [ "Object", "Behavior", "=", "\"PressedInside\"" ] }, { "type": { "inverted": true, "value": "PanelSpriteButton::ButtonFSM::PropertyState" }, "parameters": [ "Object", "Behavior", "=", "\"Validated\"" ] } ], "actions": [ { "type": { "value": "PanelSpriteButton::ButtonFSM::SetPropertyState" }, "parameters": [ "Object", "Behavior", "=", "\"Idle\"" ] } ] } ] } ], "parameters": [] } ], "parameters": [] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "PanelSpriteButton::ButtonFSM", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "Action", "name": "onDeActivate", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "PanelSpriteButton::ButtonFSM::ResetState" }, "parameters": [ "Object", "Behavior", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "PanelSpriteButton::ButtonFSM", "type": "behavior" } ], "objectGroups": [] }, { "description": "Reset the state of the button.", "fullName": "Reset state", "functionType": "Action", "name": "ResetState", "private": true, "sentence": "Reset the button state of _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "PanelSpriteButton::ButtonFSM::SetPropertyState" }, "parameters": [ "Object", "Behavior", "=", "\"Idle\"" ] }, { "type": { "value": "PanelSpriteButton::ButtonFSM::SetPropertyTouchId" }, "parameters": [ "Object", "Behavior", "=", "0" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "PanelSpriteButton::ButtonFSM", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if the button is not used.", "fullName": "Is idle", "functionType": "Condition", "name": "IsIdle", "sentence": "_PARAM0_ is idle", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteButton::ButtonFSM::PropertyState" }, "parameters": [ "Object", "Behavior", "=", "\"Idle\"" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "PanelSpriteButton::ButtonFSM", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if the button was just clicked.", "fullName": "Is clicked", "functionType": "Condition", "name": "IsClicked", "sentence": "_PARAM0_ is clicked", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteButton::ButtonFSM::PropertyState" }, "parameters": [ "Object", "Behavior", "=", "\"Validated\"" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "PanelSpriteButton::ButtonFSM", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if the cursor is hovered over the button.", "fullName": "Is hovered", "functionType": "Condition", "name": "IsHovered", "sentence": "_PARAM0_ is hovered", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteButton::ButtonFSM::PropertyState" }, "parameters": [ "Object", "Behavior", "=", "\"Hovered\"" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "PanelSpriteButton::ButtonFSM", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if the button is either hovered or pressed but not hovered.", "fullName": "Is focused", "functionType": "Condition", "name": "IsFocused", "sentence": "_PARAM0_ is focused", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteButton::ButtonFSM::PropertyState" }, "parameters": [ "Object", "Behavior", "=", "\"Hovered\"" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteButton::ButtonFSM::PropertyState" }, "parameters": [ "Object", "Behavior", "=", "\"PressedOutside\"" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "PanelSpriteButton::ButtonFSM", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if the button is currently being pressed with mouse or touch.", "fullName": "Is pressed", "functionType": "Condition", "name": "IsPressed", "sentence": "_PARAM0_ is pressed", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteButton::ButtonFSM::PropertyState" }, "parameters": [ "Object", "Behavior", "=", "\"PressedInside\"" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "PanelSpriteButton::ButtonFSM", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if the button is currently being pressed outside with mouse or touch.", "fullName": "Is held outside", "functionType": "Condition", "name": "IsPressedOutside", "sentence": "_PARAM0_ is held outside", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteButton::ButtonFSM::PropertyState" }, "parameters": [ "Object", "Behavior", "=", "\"PressedOutside\"" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "PanelSpriteButton::ButtonFSM", "type": "behavior" } ], "objectGroups": [] }, { "description": "the touch id that is using the button or 0 if none.", "fullName": "Touch id", "functionType": "ExpressionAndCondition", "name": "TouchId", "sentence": "the touch id", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyTouchId()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "PanelSpriteButton::ButtonFSM", "type": "behavior" } ], "objectGroups": [] } ], "propertyDescriptors": [ { "value": "true", "type": "Boolean", "label": "", "description": "Should check hovering", "group": "", "extraInformation": [], "hidden": true, "name": "ShouldCheckHovering" }, { "value": "Idle", "type": "Choice", "label": "State", "description": "", "group": "", "extraInformation": [ "Idle", "Hovered", "PressedInside", "PressedOutside", "Validated" ], "hidden": true, "name": "State" }, { "value": "0", "type": "Number", "label": "Touch id", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "TouchId" }, { "value": "", "type": "Boolean", "label": "Touch is inside", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "TouchIsInside" }, { "value": "", "type": "Boolean", "label": "Mouse is inside", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "MouseIsInside" }, { "value": "", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "Index" } ], "sharedPropertyDescriptors": [] } ], "eventsBasedObjects": [ { "defaultName": "Button", "description": "A button that can be customized.", "fullName": "Button (panel sprite)", "name": "PanelSpriteButton", "eventsFunctions": [ { "fullName": "", "functionType": "Action", "name": "onCreated", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Create one background instance for of each state.\nOnly the instance for the current state is shown." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "Create" }, "parameters": [ "", "Idle", "0", "0", "" ] }, { "type": { "value": "Create" }, "parameters": [ "", "Hovered", "0", "0", "" ] }, { "type": { "value": "Create" }, "parameters": [ "", "Pressed", "0", "0", "" ] }, { "type": { "value": "Cache" }, "parameters": [ "Hovered" ] }, { "type": { "value": "Cache" }, "parameters": [ "Pressed" ] }, { "type": { "value": "ChangePlan" }, "parameters": [ "Hovered", "=", "1" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Place the label over the backgrounds." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "Create" }, "parameters": [ "", "Label", "0", "0", "" ] }, { "type": { "value": "ChangePlan" }, "parameters": [ "Label", "=", "2" ] }, { "type": { "value": "TextObject::SetWrapping" }, "parameters": [ "Label", "yes" ] }, { "type": { "value": "PanelSpriteButton::PanelSpriteButton::CenterLabel" }, "parameters": [ "Object", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "PanelSpriteButton::PanelSpriteButton", "type": "object" } ], "objectGroups": [ { "name": "Background", "objects": [ { "name": "Idle" }, { "name": "Hovered" }, { "name": "Pressed" } ] } ] }, { "fullName": "", "functionType": "Action", "name": "onHotReloading", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "PanelSpriteButton::PanelSpriteButton::CenterLabel" }, "parameters": [ "Object", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "PanelSpriteButton::PanelSpriteButton", "type": "object" } ], "objectGroups": [] }, { "fullName": "", "functionType": "Action", "name": "doStepPostEvents", "sentence": "", "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Apply states", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Show the right background accordingly to the new state." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteButton::PanelSpriteButton::IsIdle" }, "parameters": [ "Object", "ButtonFSM" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "SetCenterY" }, "parameters": [ "Label", "=", "Object.CenterWithPaddingY()" ] }, { "type": { "value": "Montre" }, "parameters": [ "Idle", "" ] }, { "type": { "value": "Cache" }, "parameters": [ "Pressed" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Visible" }, "parameters": [ "Hovered" ] }, { "type": { "value": "PanelSpriteButton::PanelSpriteButton::PropertyHoveredFadeOutDuration" }, "parameters": [ "Object", ">", "0" ] } ], "actions": [ { "type": { "value": "Tween::AddObjectOpacityTween" }, "parameters": [ "Hovered", "Tween", "\"Fadeout\"", "0", "\"linear\"", "Object.PropertyHoveredFadeOutDuration() * 1000", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteButton::PanelSpriteButton::PropertyHoveredFadeOutDuration" }, "parameters": [ "Object", "=", "0" ] } ], "actions": [ { "type": { "value": "Cache" }, "parameters": [ "Hovered" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteObject::Opacity" }, "parameters": [ "Hovered", "=", "0" ] } ], "actions": [ { "type": { "value": "Cache" }, "parameters": [ "Hovered" ] }, { "type": { "value": "PanelSpriteObject::SetOpacity" }, "parameters": [ "Hovered", "=", "255" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteButton::PanelSpriteButton::IsHovered" }, "parameters": [ "Object", "ButtonFSM" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "SetCenterY" }, "parameters": [ "Label", "=", "Object.CenterWithPaddingY()" ] }, { "type": { "value": "Cache" }, "parameters": [ "Idle" ] }, { "type": { "value": "Montre" }, "parameters": [ "Hovered", "" ] }, { "type": { "value": "Cache" }, "parameters": [ "Pressed" ] }, { "type": { "value": "Tween::RemoveTween" }, "parameters": [ "Hovered", "Tween", "\"Fadeout\"" ] }, { "type": { "value": "PanelSpriteObject::SetOpacity" }, "parameters": [ "Hovered", "=", "255" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteButton::PanelSpriteButton::IsPressed" }, "parameters": [ "Object", "ButtonFSM" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "SetCenterY" }, "parameters": [ "Label", "=", "Object.CenterWithPaddingY() + Object.PropertyPressedLabelOffsetY()" ] }, { "type": { "value": "Cache" }, "parameters": [ "Idle" ] }, { "type": { "value": "Cache" }, "parameters": [ "Hovered" ] }, { "type": { "value": "Montre" }, "parameters": [ "Pressed", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteButton::PanelSpriteButton::IsFocused" }, "parameters": [ "Object", "ButtonFSM" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "SetCenterY" }, "parameters": [ "Label", "=", "Object.CenterWithPaddingY()" ] }, { "type": { "value": "Cache" }, "parameters": [ "Idle" ] }, { "type": { "value": "Montre" }, "parameters": [ "Hovered", "" ] }, { "type": { "value": "Cache" }, "parameters": [ "Pressed" ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Resize", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Children instances must be resized when the button size change:\n- backgrounds for each state are resized to take the full dimensions of the button\n- the label is put back at the center of the button\n\nThe scale is set back to 1 because it means that the parent instance has the same dimensions as the union of its children instances." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "BuiltinCommonInstructions::CompareNumbers" }, "parameters": [ "Object.Width()", "!=", "max(Idle.BoundingBoxRight(), Label.BoundingBoxRight()) - min(Idle.BoundingBoxLeft(), Label.BoundingBoxLeft())" ] }, { "type": { "value": "BuiltinCommonInstructions::CompareNumbers" }, "parameters": [ "Object.Height()", "!=", "max(Idle.BoundingBoxBottom(), Label.BoundingBoxBottom()) - min(Idle.BoundingBoxTop(), Label.BoundingBoxTop())" ] } ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Idle", "Width", "=", "Object.Width()" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Idle", "Height", "=", "Object.Height()" ] }, { "type": { "value": "PanelSpriteButton::Scale" }, "parameters": [ "Object", "=", "1" ] }, { "type": { "value": "PanelSpriteObject::Width" }, "parameters": [ "Background", "=", "Idle.Variable(Width)" ] }, { "type": { "value": "PanelSpriteObject::Height" }, "parameters": [ "Background", "=", "Idle.Variable(Height)" ] }, { "type": { "value": "PanelSpriteButton::PanelSpriteButton::CenterLabel" }, "parameters": [ "Object", "" ] } ] } ], "parameters": [] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "PanelSpriteButton::PanelSpriteButton", "type": "object" } ], "objectGroups": [ { "name": "Background", "objects": [ { "name": "Idle" }, { "name": "Hovered" }, { "name": "Pressed" } ] } ] }, { "description": "Check if the button is not used.", "fullName": "Is idle", "functionType": "Condition", "name": "IsIdle", "sentence": "_PARAM0_ is idle", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteButton::ButtonFSM::IsIdle" }, "parameters": [ "Idle", "ButtonFSM", "" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "PanelSpriteButton::PanelSpriteButton", "type": "object" } ], "objectGroups": [] }, { "description": "Check if the button was just clicked.", "fullName": "Is clicked", "functionType": "Condition", "name": "IsClicked", "sentence": "_PARAM0_ is clicked", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteButton::ButtonFSM::IsClicked" }, "parameters": [ "Idle", "ButtonFSM", "" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "PanelSpriteButton::PanelSpriteButton", "type": "object" } ], "objectGroups": [] }, { "description": "Check if the cursor is hovered over the button.", "fullName": "Is hovered", "functionType": "Condition", "name": "IsHovered", "sentence": "_PARAM0_ is hovered", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteButton::ButtonFSM::IsHovered" }, "parameters": [ "Idle", "ButtonFSM", "" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "PanelSpriteButton::PanelSpriteButton", "type": "object" } ], "objectGroups": [] }, { "description": "Check if the button is either hovered or pressed but not hovered.", "fullName": "Is focused", "functionType": "Condition", "name": "IsFocused", "sentence": "_PARAM0_ is focused", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteButton::ButtonFSM::IsFocused" }, "parameters": [ "Idle", "ButtonFSM", "" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "PanelSpriteButton::PanelSpriteButton", "type": "object" } ], "objectGroups": [] }, { "description": "Check if the button is currently being pressed with mouse or touch.", "fullName": "Is pressed", "functionType": "Condition", "name": "IsPressed", "sentence": "_PARAM0_ is pressed", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteButton::ButtonFSM::IsPressed" }, "parameters": [ "Idle", "ButtonFSM", "" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "PanelSpriteButton::PanelSpriteButton", "type": "object" } ], "objectGroups": [] }, { "description": "Change the text of the button label.", "fullName": "Label text", "functionType": "Action", "name": "SetLabelText", "sentence": "Change the text of _PARAM0_ to _PARAM1_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "TextObject::String" }, "parameters": [ "Label", "=", "GetArgumentAsString(\"LabelText\")" ] }, { "type": { "value": "PanelSpriteButton::PanelSpriteButton::CenterLabel" }, "parameters": [ "Object", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "PanelSpriteButton::PanelSpriteButton", "type": "object" }, { "description": "Text", "name": "LabelText", "type": "string" } ], "objectGroups": [] }, { "description": "Return the label text.", "fullName": "Label text", "functionType": "StringExpression", "name": "LabelText", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnString" }, "parameters": [ "Label.String()" ] } ] } ], "expressionType": { "type": "string" }, "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "PanelSpriteButton::PanelSpriteButton", "type": "object" } ], "objectGroups": [] }, { "description": "Return the label center Y according to the button configuration. This expression is used in doStepPostEvents when the button is pressed or released.", "fullName": "", "functionType": "Expression", "name": "CenterWithPaddingY", "private": true, "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Idle.CenterY() + (Object.PropertyTopPadding() - Object.PropertyBottomPadding()) / 2" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "PanelSpriteButton::PanelSpriteButton", "type": "object" } ], "objectGroups": [] }, { "description": "Center the label according to the button configuration. This is used in doStepPostEvents when the button is resized.", "fullName": "", "functionType": "Action", "name": "CenterLabel", "private": true, "sentence": "Center the label of _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "MettreXY" }, "parameters": [ "Label", "=", "Object.PropertyLeftPadding()", "=", "Object.PropertyTopPadding()" ] }, { "type": { "value": "TextObject::WrappingWidth" }, "parameters": [ "Label", "=", "Idle.Width() - Object.PropertyLeftPadding() - Object.PropertyRightPadding()" ] }, { "type": { "value": "SetCenterY" }, "parameters": [ "Label", "=", "Object.CenterWithPaddingY()" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetCenterX" }, "parameters": [ "Label", "=", "Background.CenterX() + (Object.PropertyLeftPadding() - Object.PropertyRightPadding()) / 2" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PanelSpriteButton::PanelSpriteButton::IsPressed" }, "parameters": [ "Object", "" ] } ], "actions": [ { "type": { "value": "MettreY" }, "parameters": [ "Label", "+", "Object.PropertyPressedLabelOffsetY()" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "PanelSpriteButton::PanelSpriteButton", "type": "object" } ], "objectGroups": [ { "name": "Background", "objects": [ { "name": "Idle" }, { "name": "Hovered" }, { "name": "Pressed" } ] } ] }, { "description": "De/activate interactions with the button.", "fullName": "De/activate interactions", "functionType": "Action", "name": "Activate", "sentence": "Activate interactions with _PARAM0_: _PARAM1_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "GetArgumentAsBoolean" }, "parameters": [ "\"ShouldActivate\"" ] } ], "actions": [ { "type": { "value": "ActivateBehavior" }, "parameters": [ "Idle", "ButtonFSM", "yes" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "GetArgumentAsBoolean" }, "parameters": [ "\"ShouldActivate\"" ] } ], "actions": [ { "type": { "value": "ActivateBehavior" }, "parameters": [ "Idle", "ButtonFSM", "no" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "PanelSpriteButton::PanelSpriteButton", "type": "object" }, { "description": "Activate", "name": "ShouldActivate", "type": "yesorno" } ], "objectGroups": [] }, { "description": "Check if interactions are activated on the button.", "fullName": "Interactions activated", "functionType": "Condition", "name": "IsActivated", "sentence": "Interactions on _PARAM0_ are activated", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BehaviorActivated" }, "parameters": [ "Idle", "ButtonFSM" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "PanelSpriteButton::PanelSpriteButton", "type": "object" } ], "objectGroups": [] } ], "propertyDescriptors": [ { "value": "0", "type": "Number", "label": "Label offset on Y axis when pressed", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "PressedLabelOffsetY" }, { "value": "0", "type": "Number", "label": "Left padding", "description": "", "group": "Padding", "extraInformation": [ "Label" ], "hidden": false, "name": "LeftPadding" }, { "value": "0", "type": "Number", "label": "Right padding", "description": "", "group": "Padding", "extraInformation": [ "Label" ], "hidden": false, "name": "RightPadding" }, { "value": "0", "type": "Number", "label": "Top padding", "description": "", "group": "Padding", "extraInformation": [ "Label" ], "hidden": false, "name": "TopPadding" }, { "value": "0", "type": "Number", "label": "Bottom padding", "description": "", "group": "Padding", "extraInformation": [ "Label" ], "hidden": false, "name": "BottomPadding" }, { "value": "0.25", "type": "Number", "label": "Hovered fade out duration (in seconds)", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "HoveredFadeOutDuration" } ], "objects": [ { "assetStoreId": "", "bold": false, "italic": false, "name": "Label", "smoothed": true, "type": "TextObject::Text", "underlined": false, "variables": [], "effects": [], "behaviors": [], "string": "Text", "font": "", "textAlignment": "", "characterSize": 20, "color": { "b": 0, "g": 0, "r": 0 } }, { "assetStoreId": "", "bottomMargin": 0, "height": 32, "leftMargin": 0, "name": "Idle", "rightMargin": 0, "texture": "", "tiled": false, "topMargin": 0, "type": "PanelSpriteObject::PanelSprite", "width": 32, "variables": [ { "folded": true, "name": "State", "type": "string", "value": "Idle" } ], "effects": [], "behaviors": [ { "name": "ButtonFSM", "type": "PanelSpriteButton::ButtonFSM", "ShouldCheckHovering": true } ] }, { "assetStoreId": "", "bottomMargin": 0, "height": 32, "leftMargin": 0, "name": "Hovered", "rightMargin": 0, "texture": "", "tiled": false, "topMargin": 0, "type": "PanelSpriteObject::PanelSprite", "width": 32, "variables": [], "effects": [], "behaviors": [ { "name": "Tween", "type": "Tween::TweenBehavior" } ] }, { "assetStoreId": "", "bottomMargin": 0, "height": 32, "leftMargin": 0, "name": "Pressed", "rightMargin": 0, "texture": "", "tiled": false, "topMargin": 0, "type": "PanelSpriteObject::PanelSprite", "width": 32, "variables": [], "effects": [], "behaviors": [] } ], "objectsFolderStructure": { "folderName": "__ROOT", "children": [ { "objectName": "Label" }, { "objectName": "Idle" }, { "objectName": "Hovered" }, { "objectName": "Pressed" } ] } } ] }, { "author": "", "category": "Movement", "extensionNamespace": "", "fullName": "Platformer character animator", "helpPath": "", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iSWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMzIgMzIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMyIDMyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQo8L3N0eWxlPg0KPGc+DQoJPHBhdGggZD0iTTIzLDExYzIuMiwwLDQtMS44LDQtNHMtMS44LTQtNC00cy00LDEuOC00LDRTMjAuOCwxMSwyMywxMXoiLz4NCgk8cGF0aCBkPSJNMzAuOCwxMi40Yy0wLjMtMC40LTEtMC41LTEuNC0wLjJsLTIuOSwyLjNjLTAuOCwwLjctMiwwLjYtMi43LTAuMmwtNy45LTcuOWMtMS42LTEuNi00LjEtMS42LTUuNywwTDcuMyw5LjMNCgkJYy0wLjQsMC40LTAuNCwxLDAsMS40czEsMC40LDEuNCwwbDIuOC0yLjhjMC44LTAuOCwyLjEtMC44LDIuOSwwbDEuNiwxLjZMMTEuNiwxNGMtMSwxLTEuNCwyLjMtMS4xLDMuN2MwLjIsMS4xLDAuOSwyLDEuOCwyLjYNCgkJbC0xLjYsMS42Yy0wLjQsMC40LTEsMC40LTEuNCwwbC0zLjYtMy42Yy0wLjQtMC40LTEtMC40LTEuNCwwcy0wLjQsMSwwLDEuNGwzLjYsMy42YzAuNiwwLjYsMS4zLDAuOSwyLjEsMC45czEuNi0wLjMsMi4xLTAuOQ0KCQlsMi4xLTIuMWwyLjUsMWMwLjcsMC4zLDEuMiwxLDEuMiwxLjh2NmMwLDAuNiwwLjQsMSwxLDFzMS0wLjQsMS0xdi02YzAtMS42LTEtMy4xLTIuNS0zLjdsLTEuNy0wLjdsNS4yLTUuMmwxLjQsMS40DQoJCWMwLjgsMC44LDEuOCwxLjIsMi45LDEuMmMwLjksMCwxLjgtMC4zLDIuNS0wLjlsMi45LTIuM0MzMS4xLDEzLjQsMzEuMSwxMi44LDMwLjgsMTIuNHoiLz4NCjwvZz4NCjwvc3ZnPg0K", "name": "PlatformerCharacterAnimator", "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/Glyphster Pack/Master/SVG/Sports and Fitness/Sports and Fitness_training_running_run.svg", "shortDescription": "Change animations and horizontal flipping of a platformer character automatically.", "version": "1.1.0", "description": [ "Automatically change the animations and horizontal flipping of a platformer character based on movement and interaction with platform objects.", "", "The platformer example uses this extension ([open the project online](https://editor.gdevelop.io/?project=example://platformer))." ], "origin": { "identifier": "PlatformerCharacterAnimator", "name": "gdevelop-extension-store" }, "tags": [ "animation", "platformer", "platform", "flip" ], "authorIds": [ "gqDaZjCfevOOxBYkK6zlhtZnXCg1" ], "dependencies": [], "eventsFunctions": [], "eventsBasedBehaviors": [ { "description": "Change animations and horizontal flipping of a platformer character automatically.", "fullName": "Platformer character animator", "name": "PlatformerCharacterAnimator", "objectType": "", "eventsFunctions": [ { "fullName": "", "functionType": "Action", "name": "doStepPreEvents", "sentence": "", "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Flip character based on input from controls", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformerCharacterAnimator::PlatformerCharacterAnimator::PropertyEnableHorizontalFlipping" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::IsUsingControl" }, "parameters": [ "Object", "PlatformerBehavior", "\"Left\"" ] }, { "type": { "inverted": true, "value": "PlatformBehavior::PlatformerObjectBehavior::IsUsingControl" }, "parameters": [ "Object", "PlatformerBehavior", "\"Right\"" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "FlippableCapability::FlippableBehavior::FlipX" }, "parameters": [ "Object", "Flippable", "yes" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::IsUsingControl" }, "parameters": [ "Object", "PlatformerBehavior", "\"Right\"" ] }, { "type": { "inverted": true, "value": "PlatformBehavior::PlatformerObjectBehavior::IsUsingControl" }, "parameters": [ "Object", "PlatformerBehavior", "\"Left\"" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "FlippableCapability::FlippableBehavior::FlipX" }, "parameters": [ "Object", "Flippable", "no" ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Change animations", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformerCharacterAnimator::PlatformerCharacterAnimator::PropertyEnableAnimationChanges" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::IsJumping" }, "parameters": [ "Object", "PlatformerBehavior" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "AnimatableCapability::AnimatableBehavior::SetName" }, "parameters": [ "Object", "Animation", "=", "Object.Behavior::PropertyJumpAnimationName()" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::IsFalling" }, "parameters": [ "Object", "PlatformerBehavior" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "AnimatableCapability::AnimatableBehavior::SetName" }, "parameters": [ "Object", "Animation", "=", "Object.Behavior::PropertyFallAnimationName()" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::IsOnFloor" }, "parameters": [ "Object", "PlatformerBehavior" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::IsMovingEvenALittle" }, "parameters": [ "Object", "PlatformerBehavior" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "AnimatableCapability::AnimatableBehavior::SetName" }, "parameters": [ "Object", "Animation", "=", "Object.Behavior::PropertyRunAnimationName()" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "PlatformBehavior::PlatformerObjectBehavior::IsMovingEvenALittle" }, "parameters": [ "Object", "PlatformerBehavior" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "AnimatableCapability::AnimatableBehavior::SetName" }, "parameters": [ "Object", "Animation", "=", "Object.Behavior::PropertyIdleAnimationName()" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::IsOnLadder" }, "parameters": [ "Object", "PlatformerBehavior" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "AnimatableCapability::AnimatableBehavior::SetName" }, "parameters": [ "Object", "Animation", "=", "Object.Behavior::PropertyClimbAnimationName()" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::IsMovingEvenALittle" }, "parameters": [ "Object", "PlatformerBehavior" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "AnimatableCapability::AnimatableBehavior::PlayAnimation" }, "parameters": [ "Object", "Animation" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "PlatformBehavior::PlatformerObjectBehavior::IsMovingEvenALittle" }, "parameters": [ "Object", "PlatformerBehavior" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "AnimatableCapability::AnimatableBehavior::PauseAnimation" }, "parameters": [ "Object", "Animation" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "PlatformBehavior::IsOnLadder" }, "parameters": [ "Object", "PlatformerBehavior" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "AnimatableCapability::AnimatableBehavior::PlayAnimation" }, "parameters": [ "Object", "Animation" ] } ] } ] } ], "parameters": [] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "PlatformerCharacterAnimator::PlatformerCharacterAnimator", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "Action", "name": "onActivate", "sentence": "", "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Flip character based on input from controls", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformerCharacterAnimator::PlatformerCharacterAnimator::PropertyEnableHorizontalFlipping" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::IsUsingControl" }, "parameters": [ "Object", "PlatformerBehavior", "\"Left\"" ] }, { "type": { "inverted": true, "value": "PlatformBehavior::PlatformerObjectBehavior::IsUsingControl" }, "parameters": [ "Object", "PlatformerBehavior", "\"Right\"" ] } ], "actions": [ { "type": { "value": "FlippableCapability::FlippableBehavior::FlipX" }, "parameters": [ "Object", "Flip", "yes" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::IsUsingControl" }, "parameters": [ "Object", "PlatformerBehavior", "\"Right\"" ] }, { "type": { "inverted": true, "value": "PlatformBehavior::PlatformerObjectBehavior::IsUsingControl" }, "parameters": [ "Object", "PlatformerBehavior", "\"Left\"" ] } ], "actions": [ { "type": { "value": "FlippableCapability::FlippableBehavior::FlipX" }, "parameters": [ "Object", "Flip", "no" ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Change animations", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformerCharacterAnimator::PlatformerCharacterAnimator::PropertyEnableAnimationChanges" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::IsJumping" }, "parameters": [ "Object", "PlatformerBehavior" ] } ], "actions": [ { "type": { "value": "AnimatableCapability::AnimatableBehavior::SetName" }, "parameters": [ "Object", "Animation", "=", "Object.Behavior::PropertyJumpAnimationName()" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::IsFalling" }, "parameters": [ "Object", "PlatformerBehavior" ] } ], "actions": [ { "type": { "value": "AnimatableCapability::AnimatableBehavior::SetName" }, "parameters": [ "Object", "Animation", "=", "Object.Behavior::PropertyFallAnimationName()" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::IsOnFloor" }, "parameters": [ "Object", "PlatformerBehavior" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::IsMovingEvenALittle" }, "parameters": [ "Object", "PlatformerBehavior" ] } ], "actions": [ { "type": { "value": "AnimatableCapability::AnimatableBehavior::SetName" }, "parameters": [ "Object", "Animation", "=", "Object.Behavior::PropertyRunAnimationName()" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "PlatformBehavior::PlatformerObjectBehavior::IsMovingEvenALittle" }, "parameters": [ "Object", "PlatformerBehavior" ] } ], "actions": [ { "type": { "value": "AnimatableCapability::AnimatableBehavior::SetName" }, "parameters": [ "Object", "Animation", "=", "Object.Behavior::PropertyIdleAnimationName()" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::IsOnLadder" }, "parameters": [ "Object", "PlatformerBehavior" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "AnimatableCapability::AnimatableBehavior::SetName" }, "parameters": [ "Object", "Animation", "=", "Object.Behavior::PropertyClimbAnimationName()" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::PlatformerObjectBehavior::IsMovingEvenALittle" }, "parameters": [ "Object", "PlatformerBehavior" ] } ], "actions": [ { "type": { "value": "AnimatableCapability::AnimatableBehavior::PlayAnimation" }, "parameters": [ "Object", "Animation" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "PlatformBehavior::PlatformerObjectBehavior::IsMovingEvenALittle" }, "parameters": [ "Object", "PlatformerBehavior" ] } ], "actions": [ { "type": { "value": "AnimatableCapability::AnimatableBehavior::PauseAnimation" }, "parameters": [ "Object", "Animation" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "PlatformBehavior::IsOnLadder" }, "parameters": [ "Object", "PlatformerBehavior" ] } ], "actions": [ { "type": { "value": "AnimatableCapability::AnimatableBehavior::PlayAnimation" }, "parameters": [ "Object", "Animation" ] } ] } ] } ], "parameters": [] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "PlatformerCharacterAnimator::PlatformerCharacterAnimator", "type": "behavior" } ], "objectGroups": [] }, { "description": "Enable (or disable) automated animation changes a platformer character. Disabling animation changes is useful to play custom animations.", "fullName": "Enable (or disable) automated animation changes", "functionType": "Action", "name": "EnableChangingAnimations", "sentence": "Enable automated animation changes on _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "PlatformerCharacterAnimator::PlatformerCharacterAnimator::SetPropertyEnableAnimationChanges" }, "parameters": [ "Object", "Behavior", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "GetArgumentAsBoolean" }, "parameters": [ "\"EnableAnimationChanges\"" ] } ], "actions": [ { "type": { "value": "PlatformerCharacterAnimator::PlatformerCharacterAnimator::SetPropertyEnableAnimationChanges" }, "parameters": [ "Object", "Behavior", "yes" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "PlatformerCharacterAnimator::PlatformerCharacterAnimator", "type": "behavior" }, { "defaultValue": "yes", "description": "Change animations automatically", "name": "EnableAnimationChanges", "optional": true, "type": "yesorno" } ], "objectGroups": [] }, { "description": "Enable (or disable) automated horizontal flipping of a platform character.", "fullName": "Enable (or disable) automated horizontal flipping", "functionType": "Action", "name": "EnableHorizontalFlipping", "sentence": "Enable automated horizontal flipping on _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "PlatformerCharacterAnimator::PlatformerCharacterAnimator::SetPropertyEnableHorizontalFlipping" }, "parameters": [ "Object", "Behavior", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "GetArgumentAsBoolean" }, "parameters": [ "\"EnableHorizontalFlipping\"" ] } ], "actions": [ { "type": { "value": "PlatformerCharacterAnimator::PlatformerCharacterAnimator::SetPropertyEnableHorizontalFlipping" }, "parameters": [ "Object", "Behavior", "yes" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "PlatformerCharacterAnimator::PlatformerCharacterAnimator", "type": "behavior" }, { "defaultValue": "yes", "description": "Enable horizontal flipping", "name": "EnableHorizontalFlipping", "optional": true, "type": "yesorno" } ], "objectGroups": [] }, { "description": "Set the \"Idle\" animation name. Do not use quotation marks.", "fullName": "\"Idle\" animation name", "functionType": "Action", "group": "Configure animations", "name": "SetIdleAnimationName", "sentence": "Set \"Idle\" animation of _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "PlatformerCharacterAnimator::PlatformerCharacterAnimator::SetPropertyIdleAnimationName" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsString(\"AnimationName\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "PlatformerCharacterAnimator::PlatformerCharacterAnimator", "type": "behavior" }, { "description": "Animation name", "name": "AnimationName", "type": "string" } ], "objectGroups": [] }, { "description": "Set the \"Move\" animation name. Do not use quotation marks.", "fullName": "\"Move\" animation name", "functionType": "Action", "group": "Configure animations", "name": "SetMoveAnimationName", "sentence": "Set \"Move\" animation of _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "PlatformerCharacterAnimator::PlatformerCharacterAnimator::SetPropertyRunAnimationName" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsString(\"AnimationName\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "PlatformerCharacterAnimator::PlatformerCharacterAnimator", "type": "behavior" }, { "description": "Animation name", "name": "AnimationName", "type": "string" } ], "objectGroups": [] }, { "description": "Set the \"Jump\" animation name. Do not use quotation marks.", "fullName": "\"Jump\" animation name", "functionType": "Action", "group": "Configure animations", "name": "SetJumpAnimationName", "sentence": "Set \"Jump\" animation of _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "PlatformerCharacterAnimator::PlatformerCharacterAnimator::SetPropertyJumpAnimationName" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsString(\"AnimationName\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "PlatformerCharacterAnimator::PlatformerCharacterAnimator", "type": "behavior" }, { "description": "Animation name", "name": "AnimationName", "type": "string" } ], "objectGroups": [] }, { "description": "Set the \"Fall\" animation name. Do not use quotation marks.", "fullName": "\"Fall\" animation name", "functionType": "Action", "group": "Configure animations", "name": "SetFallAnimationName", "sentence": "Set \"Fall\" animation of _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "PlatformerCharacterAnimator::PlatformerCharacterAnimator::SetPropertyFallAnimationName" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsString(\"AnimationName\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "PlatformerCharacterAnimator::PlatformerCharacterAnimator", "type": "behavior" }, { "description": "Animation name", "name": "AnimationName", "type": "string" } ], "objectGroups": [] }, { "description": "Set the \"Climb\" animation name. Do not use quotation marks.", "fullName": "\"Climb\" animation name", "functionType": "Action", "group": "Configure animations", "name": "SetClimbAnimationName", "sentence": "Set \"Climb\" animation of _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "PlatformerCharacterAnimator::PlatformerCharacterAnimator::SetPropertyClimbAnimationName" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsString(\"AnimationName\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "PlatformerCharacterAnimator::PlatformerCharacterAnimator", "type": "behavior" }, { "description": "Animation name", "name": "AnimationName", "type": "string" } ], "objectGroups": [] } ], "propertyDescriptors": [ { "value": "true", "type": "Boolean", "label": "Enable animation changes", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "EnableAnimationChanges" }, { "value": "true", "type": "Boolean", "label": "Enable horizontal flipping", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "EnableHorizontalFlipping" }, { "value": "Idle", "type": "String", "label": "\"Idle\" animation name ", "description": "", "group": "Animation names", "extraInformation": [], "hidden": false, "name": "IdleAnimationName" }, { "value": "Run", "type": "String", "label": "\"Run\" animation name", "description": "", "group": "Animation names", "extraInformation": [], "hidden": false, "name": "RunAnimationName" }, { "value": "Jump", "type": "String", "label": "\"Jump\" animation name", "description": "", "group": "Animation names", "extraInformation": [], "hidden": false, "name": "JumpAnimationName" }, { "value": "Fall", "type": "String", "label": "\"Fall\" animation name", "description": "", "group": "Animation names", "extraInformation": [], "hidden": false, "name": "FallAnimationName" }, { "value": "Climb", "type": "String", "label": "\"Climb\" animation name", "description": "", "group": "Animation names", "extraInformation": [], "hidden": false, "name": "ClimbAnimationName" }, { "value": "", "type": "Behavior", "label": "Platformer character", "description": "", "group": "", "extraInformation": [ "PlatformBehavior::PlatformerObjectBehavior" ], "hidden": false, "name": "PlatformerBehavior" }, { "value": "", "type": "Behavior", "label": "Animatable capacity", "description": "", "group": "", "extraInformation": [ "AnimatableCapability::AnimatableBehavior" ], "hidden": false, "name": "Animation" }, { "value": "", "type": "Behavior", "label": "Flippable capacity", "description": "", "group": "", "extraInformation": [ "FlippableCapability::FlippableBehavior" ], "hidden": false, "name": "Flippable" } ], "sharedPropertyDescriptors": [] } ], "eventsBasedObjects": [] }, { "author": "@4ian, Tristan Rhodes (https://victrisgames.itch.io/)", "category": "Movement", "extensionNamespace": "", "fullName": "Rectangular movement", "helpPath": "", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXNoYXBlLXJlY3RhbmdsZS1wbHVzIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTE5LDZIMjJWOEgxOVYxMUgxN1Y4SDE0VjZIMTdWM0gxOVY2TTE3LDE3VjE0SDE5VjE5SDNWNkgxMVY4SDVWMTdIMTdaIiAvPjwvc3ZnPg==", "name": "RectangleMovement", "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/shape-rectangle-plus.svg", "shortDescription": "Move objects in a rectangular pattern.", "version": "1.2.0", "description": [ "Move objects in a rectangular pattern with easing functions from the Tween extension.", "", "It can be used for:", "", "- Moveable platforms", "- Enemy movement patterns", "- Moving along the border of another object (inside, center, outside)", "", "The platformer example uses this extension ([open the project online](https://editor.gdevelop.io/?project=example://platformer)).", "", "This game shows how to make objects move around the border of another object ([open the project online](https://editor.gdevelop.io/?project=example://moving-saw-platformer)).", "", "This example can be used to test different settings ([open the project online](https://editor.gdevelop.io/?project=example://rectangular-movement)).", "" ], "origin": { "identifier": "RectangleMovement", "name": "gdevelop-extension-store" }, "tags": [ "rectangular", "movement", "rectangle", "patrol", "platform", "enemy" ], "authorIds": [ "wWP8BSlAW0UP4NeaHa2LcmmDzmH2", "gqDaZjCfevOOxBYkK6zlhtZnXCg1", "IWykYNRvhCZBN3vEgKEbBPOR3Oc2" ], "dependencies": [], "eventsFunctions": [ { "description": "Distance from an object to the closest edge of a second object.", "fullName": "Distance from an object to the closest edge of a second object", "functionType": "Expression", "name": "DistanceToClosestEdge", "private": true, "sentence": "Distance from _PARAM1_ to the closest edge of _PARAM2_ ", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "If point is inside rectangle, just use min distance" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CenterX" }, "parameters": [ "MovingObject", ">=", "CenterObject.BoundingBoxLeft()" ] }, { "type": { "value": "CenterX" }, "parameters": [ "MovingObject", "<=", "CenterObject.BoundingBoxRight()" ] }, { "type": { "value": "CenterY" }, "parameters": [ "MovingObject", ">=", "CenterObject.BoundingBoxTop()" ] }, { "type": { "value": "CenterY" }, "parameters": [ "MovingObject", "<=", "CenterObject.BoundingBoxBottom()" ] } ], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "min(\nmin(\nMovingObject.BoundingBoxCenterY() - CenterObject.BoundingBoxTop(), \nCenterObject.BoundingBoxBottom() - MovingObject.BoundingBoxCenterY()),\nmin(\nMovingObject.BoundingBoxCenterX() - CenterObject.BoundingBoxLeft(), \nCenterObject.BoundingBoxRight() - MovingObject.BoundingBoxCenterX())\n)" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "If point is outside rectangle, find distance to clamped position on rectangle" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "CenterX" }, "parameters": [ "MovingObject", "<", "CenterObject.BoundingBoxLeft()" ] }, { "type": { "value": "CenterX" }, "parameters": [ "MovingObject", ">", "CenterObject.BoundingBoxRight()" ] }, { "type": { "value": "CenterY" }, "parameters": [ "MovingObject", "<", "CenterObject.BoundingBoxTop()" ] }, { "type": { "value": "CenterY" }, "parameters": [ "MovingObject", ">", "CenterObject.BoundingBoxBottom()" ] } ] } ], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "DistanceBetweenPositions(\nMovingObject.BoundingBoxCenterX(),\nMovingObject.BoundingBoxCenterY(),\nclamp(MovingObject.BoundingBoxCenterX(), CenterObject.BoundingBoxLeft(), CenterObject.BoundingBoxRight()),\nclamp(MovingObject.BoundingBoxCenterY(), CenterObject.BoundingBoxTop(), CenterObject.BoundingBoxBottom())\n)" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Center object", "name": "CenterObject", "type": "objectList" }, { "description": "Moving object", "name": "MovingObject", "type": "objectList" } ], "objectGroups": [] }, { "description": "Update rectangular movement to follow the border of an object. Run once, or every time the center object moves.", "fullName": "Update rectangular movement to follow the border of an object", "functionType": "Action", "name": "MoveAlongBorderOfObject", "sentence": "Update rectangular movement of _PARAM1_ to follow the border of _PARAM3_. Position on border: _PARAM4_", "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Create object link (if one has not been created)", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "MovingObject", "__RectangleMovement.Linked", "False" ] } ], "actions": [], "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Set a valid initial value by picking any Center object", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::ForEach", "object": "MovingObject", "conditions": [], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "MovingObject", "__RectangleMovement.DistanceToClosestEdge", "=", "RectangleMovement::DistanceToClosestEdge(CenterObject, MovingObject)" ] } ] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Update value if distance is lower than existing minimum", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::ForEach", "object": "CenterObject", "conditions": [], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "MovingObject", "__RectangleMovement.DistanceToClosestEdge", "=", "min(MovingObject.Variable(__RectangleMovement.DistanceToClosestEdge), RectangleMovement::DistanceToClosestEdge(CenterObject, MovingObject))" ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Link objects that have the closest distance", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::ForEach", "object": "CenterObject", "conditions": [], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Link the MovingObject that has the shortest distance (and don't create more links even if another object has the same distance)" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "MovingObject", "__RectangleMovement.Linked", "False" ] }, { "type": { "value": "BuiltinCommonInstructions::CompareNumbers" }, "parameters": [ "RectangleMovement::DistanceToClosestEdge(CenterObject, MovingObject)", "=", "MovingObject.Variable(__RectangleMovement.DistanceToClosestEdge)" ] } ], "actions": [ { "type": { "value": "LinkedObjects::LinkObjects" }, "parameters": [ "", "MovingObject", "CenterObject" ] }, { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "MovingObject", "__RectangleMovement.Linked", "True" ] } ] } ] } ], "parameters": [] } ] } ], "parameters": [] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Update rectangular movement to follow the border of object", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::ForEach", "object": "CenterObject", "conditions": [], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "LinkedObjects::PickObjectsLinkedTo" }, "parameters": [ "", "MovingObject", "CenterObject", "" ] } ], "actions": [], "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Inside (default)", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "CompareArgumentAsString" }, "parameters": [ "\"PositionOnBorder\"", "=", "\"Inside\"" ] }, { "type": { "value": "CompareArgumentAsString" }, "parameters": [ "\"PositionOnBorder\"", "=", "\"\"" ] } ] } ], "actions": [ { "type": { "value": "RectangleMovement::RectangleMovement::SetTop" }, "parameters": [ "MovingObject", "RectangleMovement", "CenterObject.BoundingBoxTop()", "" ] }, { "type": { "value": "RectangleMovement::RectangleMovement::SetBottom" }, "parameters": [ "MovingObject", "RectangleMovement", "CenterObject.BoundingBoxBottom() - MovingObject.Height()", "" ] }, { "type": { "value": "RectangleMovement::RectangleMovement::SetLeft" }, "parameters": [ "MovingObject", "RectangleMovement", "CenterObject.BoundingBoxLeft()", "" ] }, { "type": { "value": "RectangleMovement::RectangleMovement::SetRight" }, "parameters": [ "MovingObject", "RectangleMovement", "CenterObject.BoundingBoxRight() - MovingObject.Width()", "" ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Center", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CompareArgumentAsString" }, "parameters": [ "\"PositionOnBorder\"", "=", "\"Center\"" ] } ], "actions": [ { "type": { "value": "RectangleMovement::RectangleMovement::SetTop" }, "parameters": [ "MovingObject", "RectangleMovement", "CenterObject.BoundingBoxTop() - MovingObject.Height()/2", "" ] }, { "type": { "value": "RectangleMovement::RectangleMovement::SetBottom" }, "parameters": [ "MovingObject", "RectangleMovement", "CenterObject.BoundingBoxBottom() - MovingObject.Height()/2", "" ] }, { "type": { "value": "RectangleMovement::RectangleMovement::SetLeft" }, "parameters": [ "MovingObject", "RectangleMovement", "CenterObject.BoundingBoxLeft() - MovingObject.Width()/2", "" ] }, { "type": { "value": "RectangleMovement::RectangleMovement::SetRight" }, "parameters": [ "MovingObject", "RectangleMovement", "CenterObject.BoundingBoxRight() - MovingObject.Width()/2", "" ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Outside", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CompareArgumentAsString" }, "parameters": [ "\"PositionOnBorder\"", "=", "\"Outside\"" ] } ], "actions": [ { "type": { "value": "RectangleMovement::RectangleMovement::SetTop" }, "parameters": [ "MovingObject", "RectangleMovement", "CenterObject.BoundingBoxTop() - MovingObject.Height()", "" ] }, { "type": { "value": "RectangleMovement::RectangleMovement::SetBottom" }, "parameters": [ "MovingObject", "RectangleMovement", "CenterObject.BoundingBoxBottom()", "" ] }, { "type": { "value": "RectangleMovement::RectangleMovement::SetLeft" }, "parameters": [ "MovingObject", "RectangleMovement", "CenterObject.BoundingBoxLeft() - MovingObject.Width()", "" ] }, { "type": { "value": "RectangleMovement::RectangleMovement::SetRight" }, "parameters": [ "MovingObject", "RectangleMovement", "CenterObject.BoundingBoxRight()", "" ] } ] } ], "parameters": [] } ] } ] } ], "parameters": [] } ], "parameters": [ { "description": "Moving object", "name": "MovingObject", "type": "objectList" }, { "description": "Rectangle Movement (required)", "name": "RectangleMovement", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" }, { "description": "Center object", "name": "CenterObject", "type": "objectList" }, { "description": "Position on border", "name": "PositionOnBorder", "supplementaryInformation": "[\"Inside\",\"Center\",\"Outside\"]", "type": "stringWithSelector" } ], "objectGroups": [] }, { "description": "Move to the nearest corner of the center object.", "fullName": "Move to the nearest corner of the center object", "functionType": "Action", "name": "MoveToNearestCorner", "sentence": "Move _PARAM1_ to the nearest corner of _PARAM3_", "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Create a link to the closest object", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "MovingObject", "__RectangleMovement.Linked", "False" ] } ], "actions": [ { "type": { "value": "RectangleMovement::MoveAlongBorderOfObject" }, "parameters": [ "", "MovingObject", "RectangleMovement", "CenterObject", "" ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Move to nearest corner", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::ForEach", "object": "MovingObject", "conditions": [], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "LinkedObjects::PickObjectsLinkedTo" }, "parameters": [ "", "CenterObject", "MovingObject", "" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Distance to TopLeft (don't use a condition on the first check so the variable starts with a valid corner)" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "MovingObject", "__RectangleMovement.ClosestCornerDistance", "=", "DistanceBetweenPositions(MovingObject.BoundingBoxCenterX(), MovingObject.BoundingBoxCenterY(), CenterObject.BoundingBoxLeft(), CenterObject.BoundingBoxTop())" ] }, { "type": { "value": "RectangleMovement::RectangleMovement::TeleportToCorner" }, "parameters": [ "MovingObject", "RectangleMovement", "\"Top-left corner\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Distance to TopRight" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::CompareNumbers" }, "parameters": [ "DistanceBetweenPositions(MovingObject.BoundingBoxCenterX(), MovingObject.BoundingBoxCenterY(), CenterObject.BoundingBoxRight(), CenterObject.BoundingBoxTop())", "<", "MovingObject.Variable(__RectangleMovement.ClosestCornerDistance)" ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "MovingObject", "__RectangleMovement.ClosestCornerDistance", "=", "DistanceBetweenPositions(MovingObject.BoundingBoxCenterX(), MovingObject.BoundingBoxCenterY(), CenterObject.BoundingBoxRight(), CenterObject.BoundingBoxTop())" ] }, { "type": { "value": "RectangleMovement::RectangleMovement::TeleportToCorner" }, "parameters": [ "MovingObject", "RectangleMovement", "\"Top-right corner\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Distance to BottomLeft" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::CompareNumbers" }, "parameters": [ "DistanceBetweenPositions(MovingObject.BoundingBoxCenterX(), MovingObject.BoundingBoxCenterY(), CenterObject.BoundingBoxLeft(), CenterObject.BoundingBoxBottom())", "<", "MovingObject.Variable(__RectangleMovement.ClosestCornerDistance)" ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "MovingObject", "__RectangleMovement.ClosestCornerDistance", "=", "DistanceBetweenPositions(MovingObject.BoundingBoxCenterX(), MovingObject.BoundingBoxCenterY(), CenterObject.BoundingBoxLeft(), CenterObject.BoundingBoxBottom())" ] }, { "type": { "value": "RectangleMovement::RectangleMovement::TeleportToCorner" }, "parameters": [ "MovingObject", "RectangleMovement", "\"Bottom-left corner\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Distance to BottomRight" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::CompareNumbers" }, "parameters": [ "DistanceBetweenPositions(MovingObject.BoundingBoxCenterX(), MovingObject.BoundingBoxCenterY(), CenterObject.BoundingBoxRight(), CenterObject.BoundingBoxBottom())", "<", "MovingObject.Variable(__RectangleMovement.ClosestCornerDistance)" ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "MovingObject", "__RectangleMovement.ClosestCornerDistance", "=", "DistanceBetweenPositions(MovingObject.BoundingBoxCenterX(), MovingObject.BoundingBoxCenterY(), CenterObject.BoundingBoxRight(), CenterObject.BoundingBoxBottom())" ] }, { "type": { "value": "RectangleMovement::RectangleMovement::TeleportToCorner" }, "parameters": [ "MovingObject", "RectangleMovement", "\"Bottom-right corner\"", "" ] } ] } ] } ] } ], "parameters": [] } ], "parameters": [ { "description": "Moving object", "name": "MovingObject", "type": "objectList" }, { "description": "Rectangle Movement (required)", "name": "RectangleMovement", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" }, { "description": "Center object", "name": "CenterObject", "type": "objectList" } ], "objectGroups": [] } ], "eventsBasedBehaviors": [ { "description": "Move objects in a rectangular pattern.", "fullName": "Rectangular movement", "name": "RectangleMovement", "objectType": "", "eventsFunctions": [ { "fullName": "", "functionType": "Action", "name": "onCreated", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "RectangleMovement::RectangleMovement::SetPropertyOldX" }, "parameters": [ "Object", "Behavior", "=", "Object.X()" ] }, { "type": { "value": "RectangleMovement::RectangleMovement::SetPropertyOldY" }, "parameters": [ "Object", "Behavior", "=", "Object.Y()" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Set the initial state according to the configuration." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "RectangleMovement::RectangleMovement::PropertyInitialPosition" }, "parameters": [ "Object", "Behavior", "=", "\"Top-right corner\"" ] } ], "actions": [ { "type": { "value": "RectangleMovement::RectangleMovement::SetPropertyProgress" }, "parameters": [ "Object", "Behavior", "=", "Object.Behavior::TopRightDuration() / Object.Behavior::LoopDuration()" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "RectangleMovement::RectangleMovement::PropertyInitialPosition" }, "parameters": [ "Object", "Behavior", "=", "\"Bottom-right corner\"" ] } ], "actions": [ { "type": { "value": "RectangleMovement::RectangleMovement::SetPropertyProgress" }, "parameters": [ "Object", "Behavior", "=", "Object.Behavior::BottomRightDuration() / Object.Behavior::LoopDuration()" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "RectangleMovement::RectangleMovement::PropertyInitialPosition" }, "parameters": [ "Object", "Behavior", "=", "\"Bottom-left corner\"" ] } ], "actions": [ { "type": { "value": "RectangleMovement::RectangleMovement::SetPropertyProgress" }, "parameters": [ "Object", "Behavior", "=", "Object.Behavior::BottomLeftDuration() / Object.Behavior::LoopDuration()" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "RectangleMovement::RectangleMovement::SetPropertyLeft" }, "parameters": [ "Object", "Behavior", "=", "Object.X() - Object.Behavior::DeltaX()" ] }, { "type": { "value": "RectangleMovement::RectangleMovement::SetPropertyTop" }, "parameters": [ "Object", "Behavior", "=", "Object.Y() - Object.Behavior::DeltaY()" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "Action", "name": "doStepPreEvents", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Update the rectangle when the object is moved outside of the behavior." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "RectangleMovement::RectangleMovement::SetPropertyLeft" }, "parameters": [ "Object", "Behavior", "+", "Object.X() - Object.Behavior::PropertyOldX()" ] }, { "type": { "value": "RectangleMovement::RectangleMovement::SetPropertyTop" }, "parameters": [ "Object", "Behavior", "+", "Object.Y() - Object.Behavior::PropertyOldY()" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Move the object on the rectangular path." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "MettreXY" }, "parameters": [ "Object", "=", "Object.Behavior::PropertyLeft() + Object.Behavior::DeltaX()", "=", "Object.Behavior::PropertyTop() + Object.Behavior::DeltaY()" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Save the position to detect when the object is moved outside of the behavior." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "RectangleMovement::RectangleMovement::SetPropertyOldX" }, "parameters": [ "Object", "Behavior", "=", "Object.X()" ] }, { "type": { "value": "RectangleMovement::RectangleMovement::SetPropertyOldY" }, "parameters": [ "Object", "Behavior", "=", "Object.Y()" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "Action", "name": "doStepPostEvents", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Step on the path." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "RectangleMovement::RectangleMovement::PropertyClockwise" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "RectangleMovement::RectangleMovement::SetPropertyProgress" }, "parameters": [ "Object", "Behavior", "=", "mod(Object.Behavior::PropertyProgress() + TimeDelta() / Object.Behavior::LoopDuration(), 1)" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "RectangleMovement::RectangleMovement::PropertyClockwise" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "RectangleMovement::RectangleMovement::SetPropertyProgress" }, "parameters": [ "Object", "Behavior", "=", "mod(Object.Behavior::PropertyProgress() - TimeDelta() / Object.Behavior::LoopDuration(), 1)" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Teleport the object to a corner of the movement rectangle.", "fullName": "Teleport at a corner", "functionType": "Action", "name": "TeleportToCorner", "sentence": "Set the position of _PARAM0_ at the _PARAM2_ of the rectangle loop", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::CompareStrings" }, "parameters": [ "GetArgumentAsString(\"Corner\")", "=", "\"Top-left corner\"" ] } ], "actions": [ { "type": { "value": "RectangleMovement::RectangleMovement::SetPropertyProgress" }, "parameters": [ "Object", "Behavior", "=", "0" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::CompareStrings" }, "parameters": [ "GetArgumentAsString(\"Corner\")", "=", "\"Top-right corner\"" ] } ], "actions": [ { "type": { "value": "RectangleMovement::RectangleMovement::SetPropertyProgress" }, "parameters": [ "Object", "Behavior", "=", "Object.Behavior::TopRightDuration() / Object.Behavior::LoopDuration()" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::CompareStrings" }, "parameters": [ "GetArgumentAsString(\"Corner\")", "=", "\"Bottom-right corner\"" ] } ], "actions": [ { "type": { "value": "RectangleMovement::RectangleMovement::SetPropertyProgress" }, "parameters": [ "Object", "Behavior", "=", "Object.Behavior::BottomRightDuration() / Object.Behavior::LoopDuration()" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::CompareStrings" }, "parameters": [ "GetArgumentAsString(\"Corner\")", "=", "\"Bottom-left corner\"" ] } ], "actions": [ { "type": { "value": "RectangleMovement::RectangleMovement::SetPropertyProgress" }, "parameters": [ "Object", "Behavior", "=", "Object.Behavior::BottomLeftDuration() / Object.Behavior::LoopDuration()" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" }, { "description": "Corner", "name": "Corner", "supplementaryInformation": "[\"Top-left corner\",\"Top-right corner\",\"Bottom-left corner\",\"Bottom-right corner\"]", "type": "stringWithSelector" } ], "objectGroups": [] }, { "description": "Return the perimeter of the movement rectangle.", "fullName": "Perimeter", "functionType": "Expression", "group": "Rectangular movement shape", "name": "Perimeter", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "2 * (abs(Object.Behavior::PropertyWidth()) + abs(Object.Behavior::PropertyHeight()))" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Return the time the object takes to go through the whole rectangle (in seconds).", "fullName": "Loop duration", "functionType": "Expression", "name": "LoopDuration", "sentence": "Set initial Y of _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "2 * (Object.Behavior::PropertyHorizontalEdgeDuration() + Object.Behavior::PropertyVerticalEdgeDuration())" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Return the time the object takes to go through a horizontal edge (in seconds).", "fullName": "Horizontal edge duration", "functionType": "Expression", "name": "HorizontalEdgeDuration", "sentence": "Set initial Y of _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyHorizontalEdgeDuration()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Return the time the object takes to go through a vertical edge (in seconds).", "fullName": "Vertical edge duration", "functionType": "Expression", "name": "VerticalEdgeDuration", "sentence": "Set initial Y of _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyVerticalEdgeDuration()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Return the rectangle width.", "fullName": "Width", "functionType": "Expression", "group": "Rectangular movement/Shape", "name": "Width", "sentence": "Set initial Y of _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyWidth()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Return the rectangle height.", "fullName": "Height", "functionType": "Expression", "group": "Rectangular movement/Shape", "name": "Height", "sentence": "Set initial Y of _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyHeight()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Return the left bound of the movement.", "fullName": "Left bound", "functionType": "Expression", "group": "Rectangular movement/Shape", "name": "Left", "sentence": "Set initial Y of _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyLeft()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Return the top bound of the movement.", "fullName": "Top bound", "functionType": "Expression", "group": "Rectangular movement/Shape", "name": "Top", "sentence": "Set initial Y of _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyTop()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Return the right bound of the movement.", "fullName": "Right bound", "functionType": "Expression", "group": "Rectangular movement/Shape", "name": "Right", "sentence": "Set initial Y of _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyLeft() + Object.Behavior::PropertyWidth()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Return the bottom bound of the movement.", "fullName": "Bottom bound", "functionType": "Expression", "group": "Rectangular movement/Shape", "name": "Bottom", "sentence": "Set initial Y of _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyTop() + Object.Behavior::PropertyHeight()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Change the left bound of the rectangular movement.", "fullName": "Left bound", "functionType": "Action", "group": "Rectangular movement shape", "name": "SetLeft", "sentence": "Change the movement left bound of _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "RectangleMovement::RectangleMovement::SetPropertyWidth" }, "parameters": [ "Object", "Behavior", "+", "Object.Behavior::PropertyLeft() - GetArgumentAsNumber(\"Value\")" ] }, { "type": { "value": "RectangleMovement::RectangleMovement::SetPropertyLeft" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" }, { "description": "Value", "name": "Value", "type": "expression" } ], "objectGroups": [] }, { "description": "Change the top bound of the rectangular movement.", "fullName": "Top bound", "functionType": "Action", "group": "Rectangular movement shape", "name": "SetTop", "sentence": "Change the movement top bound of _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "RectangleMovement::RectangleMovement::SetPropertyHeight" }, "parameters": [ "Object", "Behavior", "+", "Object.Behavior::PropertyTop() - GetArgumentAsNumber(\"Value\")" ] }, { "type": { "value": "RectangleMovement::RectangleMovement::SetPropertyTop" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" }, { "description": "Value", "name": "Value", "type": "expression" } ], "objectGroups": [] }, { "description": "Change the right bound of the rectangular movement.", "fullName": "Right bound", "functionType": "Action", "group": "Rectangular movement shape", "name": "SetRight", "sentence": "Change the movement right bound of _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "RectangleMovement::RectangleMovement::SetPropertyWidth" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\") - Object.Behavior::PropertyLeft()" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" }, { "description": "Value", "name": "Value", "type": "expression" } ], "objectGroups": [] }, { "description": "Change the bottom bound of the rectangular movement.", "fullName": "Bottom bound", "functionType": "Action", "group": "Rectangular movement shape", "name": "SetBottom", "sentence": "Change the movement bottom bound of _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "RectangleMovement::RectangleMovement::SetPropertyHeight" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\") - Object.Behavior::PropertyTop()" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" }, { "description": "Value", "name": "Value", "type": "expression" } ], "objectGroups": [] }, { "description": "Change the time the object takes to go through a horizontal edge (in seconds).", "fullName": "Horizontal edge duration", "functionType": "Action", "group": "Rectangular movement speed", "name": "SetHorizontalEdgeDuration", "sentence": "Change the time _PARAM0_ takes to go through a horizontal edge to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "RectangleMovement::RectangleMovement::SetPropertyHorizontalEdgeDuration" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" }, { "description": "Value", "name": "Value", "type": "expression" } ], "objectGroups": [] }, { "description": "Change the time the object takes to go through a vertical edge (in seconds).", "fullName": "Vertical edge duration", "functionType": "Action", "group": "Rectangular movement speed", "name": "SetVerticalEdgeDuration", "sentence": "Change the time _PARAM0_ takes to go through a vertical edge to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "RectangleMovement::RectangleMovement::SetPropertyVerticalEdgeDuration" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" }, { "description": "Value", "name": "Value", "type": "expression" } ], "objectGroups": [] }, { "description": "Change the direction to clockwise or counter-clockwise.", "fullName": "Clockwise", "functionType": "Action", "group": "Rectangular movement speed", "name": "SetClockwise", "sentence": "Use clockwise direction for _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "GetArgumentAsBoolean" }, "parameters": [ "\"Value\"" ] } ], "actions": [ { "type": { "value": "RectangleMovement::RectangleMovement::SetPropertyClockwise" }, "parameters": [ "Object", "Behavior", "yes" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "GetArgumentAsBoolean" }, "parameters": [ "\"Value\"" ] } ], "actions": [ { "type": { "value": "RectangleMovement::RectangleMovement::SetPropertyClockwise" }, "parameters": [ "Object", "Behavior", "no" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" }, { "description": "Clockwise", "name": "Value", "type": "yesorno" } ], "objectGroups": [] }, { "description": "Change the easing function of the movement.", "fullName": "Easing", "functionType": "Action", "group": "Rectangular movement speed", "name": "SetEasing", "sentence": "Change the easing of _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "RectangleMovement::RectangleMovement::SetPropertyEasing" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsString(\"Value\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" }, { "description": "Easing", "name": "Easing", "supplementaryInformation": "[\"linear\",\"easeInQuad\",\"easeOutQuad\",\"easeInOutQuad\",\"easeInCubic\",\"easeOutCubic\",\"easeInOutCubic\",\"easeInQuart\",\"easeOutQuart\",\"easeInOutQuart\",\"easeInQuint\",\"easeOutQuint\",\"easeInOutQuint\",\"easeInOutSine\",\"easeInExpo\",\"easeOutExpo\",\"easeInOutExpo\",\"easeInCirc\",\"easeOutCirc\",\"easeInOutCirc\",\"easeOutBounce\",\"easeInBack\",\"easeOutBack\",\"easeInOutBack\",\"elastic\",\"swingFromTo\",\"swingFrom\",\"swingTo\",\"bounce\",\"bouncePast\",\"easeFromTo\",\"easeFrom\",\"easeTo\"]", "type": "stringWithSelector" } ], "objectGroups": [] }, { "description": "Toggle the direction to clockwise or counter-clockwise.", "fullName": "Toggle direction", "functionType": "Action", "name": "ToogleClockwise", "sentence": "Toogle the direction of _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "RectangleMovement::RectangleMovement::PropertyClockwise" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "RectangleMovement::RectangleMovement::SetPropertyToogleClockwise" }, "parameters": [ "Object", "Behavior", "yes" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "RectangleMovement::RectangleMovement::PropertyClockwise" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "RectangleMovement::RectangleMovement::SetPropertyToogleClockwise" }, "parameters": [ "Object", "Behavior", "=" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "RectangleMovement::RectangleMovement::PropertyToogleClockwise" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "RectangleMovement::RectangleMovement::SetPropertyClockwise" }, "parameters": [ "Object", "Behavior", "no" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "RectangleMovement::RectangleMovement::PropertyToogleClockwise" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "RectangleMovement::RectangleMovement::SetPropertyClockwise" }, "parameters": [ "Object", "Behavior", "yes" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if the object is moving clockwise.", "fullName": "Is moving clockwise", "functionType": "Condition", "name": "IsMovingClockwise", "sentence": "_PARAM0_ is moving clockwise", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "RectangleMovement::RectangleMovement::PropertyClockwise" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if the object is moving to the left.", "fullName": "Is moving left", "functionType": "Condition", "name": "IsMovingLeft", "sentence": "_PARAM0_ is moving to the left", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "RectangleMovement::RectangleMovement::PropertyClockwise" }, "parameters": [ "Object", "Behavior" ] }, { "type": { "value": "RectangleMovement::RectangleMovement::IsOnTop" }, "parameters": [ "Object", "Behavior", "" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "RectangleMovement::RectangleMovement::PropertyClockwise" }, "parameters": [ "Object", "Behavior" ] }, { "type": { "value": "RectangleMovement::RectangleMovement::IsOnBottom" }, "parameters": [ "Object", "Behavior", "" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if the object is moving up.", "fullName": "Is moving up", "functionType": "Condition", "name": "IsMovingUp", "sentence": "_PARAM0_ is moving up", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "RectangleMovement::RectangleMovement::PropertyClockwise" }, "parameters": [ "Object", "Behavior" ] }, { "type": { "value": "RectangleMovement::RectangleMovement::IsOnLeft" }, "parameters": [ "Object", "Behavior", "" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "RectangleMovement::RectangleMovement::PropertyClockwise" }, "parameters": [ "Object", "Behavior" ] }, { "type": { "value": "RectangleMovement::RectangleMovement::IsOnRight" }, "parameters": [ "Object", "Behavior", "" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Object is moving to the right.", "fullName": "Is moving right", "functionType": "Condition", "name": "IsMovingRight", "sentence": "_PARAM0_ is moving to the right", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "RectangleMovement::RectangleMovement::PropertyClockwise" }, "parameters": [ "Object", "Behavior" ] }, { "type": { "value": "RectangleMovement::RectangleMovement::IsOnTop" }, "parameters": [ "Object", "Behavior", "" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "RectangleMovement::RectangleMovement::PropertyClockwise" }, "parameters": [ "Object", "Behavior" ] }, { "type": { "value": "RectangleMovement::RectangleMovement::IsOnBottom" }, "parameters": [ "Object", "Behavior", "" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if the object is moving down.", "fullName": "Is moving down", "functionType": "Condition", "name": "IsMovingDown", "sentence": "_PARAM0_ is moving down", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "RectangleMovement::RectangleMovement::PropertyClockwise" }, "parameters": [ "Object", "Behavior" ] }, { "type": { "value": "RectangleMovement::RectangleMovement::IsOnRight" }, "parameters": [ "Object", "Behavior", "" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "RectangleMovement::RectangleMovement::PropertyClockwise" }, "parameters": [ "Object", "Behavior" ] }, { "type": { "value": "RectangleMovement::RectangleMovement::IsOnLeft" }, "parameters": [ "Object", "Behavior", "" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Object is on the left side of the rectangle.", "fullName": "Is on left", "functionType": "Condition", "name": "IsOnLeft", "sentence": "_PARAM0_ is on the left side", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::CompareNumbers" }, "parameters": [ "Object.Behavior::CurrentTime()", ">=", "Object.Behavior::BottomLeftDuration()" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Object is on the top side of the rectangle.", "fullName": "Is on top", "functionType": "Condition", "name": "IsOnTop", "sentence": "_PARAM0_ is on the top side", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::CompareNumbers" }, "parameters": [ "Object.Behavior::CurrentTime()", "<=", "Object.Behavior::TopRightDuration()" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Object is on the right side of the rectangle.", "fullName": "Is on right", "functionType": "Condition", "name": "IsOnRight", "sentence": "_PARAM0_ is on the right side", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::CompareNumbers" }, "parameters": [ "Object.Behavior::CurrentTime()", ">=", "Object.Behavior::TopRightDuration()" ] }, { "type": { "value": "BuiltinCommonInstructions::CompareNumbers" }, "parameters": [ "Object.Behavior::CurrentTime()", "<=", "Object.Behavior::BottomRightDuration()" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Object is on the bottom side of the rectangle.", "fullName": "Is on bottom", "functionType": "Condition", "name": "IsOnBottom", "sentence": "_PARAM0_ is on the bottom side", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::CompareNumbers" }, "parameters": [ "Object.Behavior::CurrentTime()", ">=", "Object.Behavior::BottomRightDuration()" ] }, { "type": { "value": "BuiltinCommonInstructions::CompareNumbers" }, "parameters": [ "Object.Behavior::CurrentTime()", "<=", "Object.Behavior::BottomLeftDuration()" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Return the duration between the top-left vertex and the top-right one.", "fullName": "Duration to top right", "functionType": "Expression", "name": "TopRightDuration", "private": true, "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyHorizontalEdgeDuration()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Return the duration between the top-left vertex and the bottom-right one.", "fullName": "Duration to bottom right", "functionType": "Expression", "name": "BottomRightDuration", "private": true, "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyHorizontalEdgeDuration() + Object.Behavior::PropertyVerticalEdgeDuration()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Return the duration between the top-left vertex and the bottom-left one.", "fullName": "Duration to bottom left", "functionType": "Expression", "name": "BottomLeftDuration", "private": true, "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "2 * Object.Behavior::PropertyHorizontalEdgeDuration() + Object.Behavior::PropertyVerticalEdgeDuration()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Return the ratio between the covered distance from the last vertex and the edge length (between 0 and 1).", "fullName": "Progress on edge", "functionType": "Expression", "name": "EdgeProgress", "private": true, "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::HalfCurrentTime() / Object.Behavior::PropertyHorizontalEdgeDuration()" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::CompareNumbers" }, "parameters": [ "Object.Behavior::HalfCurrentTime()", ">=", "abs(Object.Behavior::PropertyHorizontalEdgeDuration())" ] } ], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "(Object.Behavior::HalfCurrentTime() - Object.Behavior::PropertyHorizontalEdgeDuration()) / Object.Behavior::PropertyVerticalEdgeDuration()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Return the X position of the current edge origin.", "fullName": "Edge origin X", "functionType": "Expression", "name": "EdgeOriginX", "private": true, "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::CompareNumbers" }, "parameters": [ "Object.Behavior::CurrentTime()", ">=", "Object.Behavior::TopRightDuration()" ] }, { "type": { "value": "BuiltinCommonInstructions::CompareNumbers" }, "parameters": [ "Object.Behavior::CurrentTime()", "<", "Object.Behavior::BottomLeftDuration()" ] } ], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyWidth()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Return the Y position of the current edge origin.", "fullName": "Edge origin Y", "functionType": "Expression", "name": "EdgeOriginY", "private": true, "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::CompareNumbers" }, "parameters": [ "Object.Behavior::CurrentTime()", ">=", "Object.Behavior::BottomRightDuration()" ] }, { "type": { "value": "BuiltinCommonInstructions::CompareNumbers" }, "parameters": [ "Object.Behavior::CurrentTime()", "<", "Object.Behavior::Perimeter()" ] } ], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyHeight()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Return the X position of the current edge target.", "fullName": "Edge target X", "functionType": "Expression", "name": "EdgeTargetY", "private": true, "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::CompareNumbers" }, "parameters": [ "Object.Behavior::CurrentTime()", ">=", "Object.Behavior::TopRightDuration()" ] }, { "type": { "value": "BuiltinCommonInstructions::CompareNumbers" }, "parameters": [ "Object.Behavior::CurrentTime()", "<", "Object.Behavior::BottomLeftDuration()" ] } ], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyHeight()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Return the Y position of the current edge target.", "fullName": "Edge target Y", "functionType": "Expression", "name": "EdgeTargetX", "private": true, "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::CompareNumbers" }, "parameters": [ "Object.Behavior::CurrentTime()", "<", "Object.Behavior::BottomRightDuration()" ] } ], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyWidth()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Return the time from the top-left vertex.", "fullName": "Current time", "functionType": "Expression", "name": "CurrentTime", "private": true, "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyProgress() * Object.Behavior::LoopDuration()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Return the covered length from the top-left vertex or the bottom-right one.", "fullName": "Half Current length", "functionType": "Expression", "name": "HalfCurrentTime", "private": true, "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object. Behavior::LoopDuration() * mod(Object.Behavior::PropertyProgress(), 0.5)" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Return the displacement on the X axis from the top-left vertex.", "fullName": "Delta X", "functionType": "Expression", "name": "DeltaX", "private": true, "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Tween::Ease(Object.Behavior::PropertyEasing(), Object.Behavior::EdgeOriginX(), Object.Behavior::EdgeTargetX(), Object.Behavior::EdgeProgress())" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" } ], "objectGroups": [] }, { "description": "Return the displacement on the Y axis from the top-left vertex.", "fullName": "Delta Y", "functionType": "Expression", "name": "DeltaY", "private": true, "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Tween::Ease(Object.Behavior::PropertyEasing(), Object.Behavior::EdgeOriginY(), Object.Behavior::EdgeTargetY(), Object.Behavior::EdgeProgress())" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "RectangleMovement::RectangleMovement", "type": "behavior" } ], "objectGroups": [] } ], "propertyDescriptors": [ { "value": "100", "type": "Number", "unit": "Pixel", "label": "Width", "description": "", "group": "Dimension", "extraInformation": [], "hidden": false, "name": "Width" }, { "value": "100", "type": "Number", "unit": "Pixel", "label": "Height", "description": "", "group": "Dimension", "extraInformation": [], "hidden": false, "name": "Height" }, { "value": "true", "type": "Boolean", "label": "Clockwise", "description": "", "group": "Speed", "extraInformation": [], "hidden": false, "name": "Clockwise" }, { "value": "4", "type": "Number", "unit": "Second", "label": "Horizontal edge duration", "description": "", "group": "Speed", "extraInformation": [], "hidden": false, "name": "HorizontalEdgeDuration" }, { "value": "1", "type": "Number", "unit": "Second", "label": "Vertical edge duration", "description": "", "group": "Speed", "extraInformation": [], "hidden": false, "name": "VerticalEdgeDuration" }, { "value": "", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "Left" }, { "value": "", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "Top" }, { "value": "", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "Progress" }, { "value": "", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "OldX" }, { "value": "", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "OldY" }, { "value": "easeInOutSine", "type": "Choice", "label": "Easing", "description": "", "group": "Speed", "extraInformation": [ "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo" ], "hidden": false, "name": "Easing" }, { "value": "Top-left corner", "type": "Choice", "label": "Initial position", "description": "", "group": "", "extraInformation": [ "Top-left corner", "Top-right corner", "Bottom-right corner", "Bottom-left corner" ], "hidden": false, "name": "InitialPosition" }, { "value": "", "type": "Boolean", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "ToogleClockwise" } ], "sharedPropertyDescriptors": [] } ], "eventsBasedObjects": [] }, { "author": "", "category": "Camera", "extensionNamespace": "", "fullName": "Smooth Camera", "helpPath": "", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iSWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMzIgMzIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMyIDMyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQoJLnN0MXtmaWxsOm5vbmU7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjEwO30NCjwvc3R5bGU+DQo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMjQsMTNoLTZjLTEuMSwwLTItMC45LTItMlY1YzAtMS4xLDAuOS0yLDItMmg2YzEuMSwwLDIsMC45LDIsMnY2QzI2LDEyLjEsMjUuMSwxMywyNCwxM3oiLz4NCjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yNiw4djEwYzAsMS4xLTAuOSwyLTIsMkg4Yy0xLjEsMC0yLTAuOS0yLTJWOGMwLTEuMSwwLjktMiwyLTJoOCIvPg0KPGNpcmNsZSBjbGFzcz0ic3QwIiBjeD0iMjEiIGN5PSI4IiByPSIyIi8+DQo8Y2lyY2xlIGNsYXNzPSJzdDAiIGN4PSIxMSIgY3k9IjE2IiByPSIxIi8+DQo8cmVjdCB4PSI5IiB5PSI5IiBjbGFzcz0ic3QwIiB3aWR0aD0iNCIgaGVpZ2h0PSIzIi8+DQo8cG9seWxpbmUgY2xhc3M9InN0MCIgcG9pbnRzPSIyMSwyOSAyMSwyOSAxMSwyOSAxMSwyOSAiLz4NCjxwb2x5bGluZSBjbGFzcz0ic3QwIiBwb2ludHM9IjE4LDIwIDE4LDI5IDE0LDI5IDE0LDIwICIvPg0KPHJlY3QgeD0iNyIgeT0iMyIgY2xhc3M9InN0MCIgd2lkdGg9IjQiIGhlaWdodD0iMyIvPg0KPC9zdmc+DQo=", "name": "SmoothCamera", "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/Line Hero Pack/Master/SVG/Computers and Hardware/Computers and Hardware_camcoder_gopro_go_pro_camera.svg", "shortDescription": "Smoothly scroll to follow an object.", "version": "0.3.0", "description": [ "The camera follows an object according to:", "- a frame rate independent catch-up speed to make the scrolling from smooth to strong", "- a maximum speed to do linear following ([open the project online](https://editor.gdevelop.io/?project=example://platformer-with-tilemap)) or slow down the camera when teleporting the object", "- a follow-free zone to avoid scrolling on small movements", "- an offset to see further in one direction", "- an extra delay and catch-up speed to give an impression of speed (useful for dash)", "- position forecasting and delay to simulate a cameraman response time", "", "A platformer dedicated behavior allows to switch of settings when the character is in air or on the floor. This can be used to stabilize the camera when jumping." ], "origin": { "identifier": "SmoothCamera", "name": "gdevelop-extension-store" }, "tags": [ "camera", "scrolling", "follow", "smooth" ], "authorIds": [ "IWykYNRvhCZBN3vEgKEbBPOR3Oc2" ], "dependencies": [], "eventsFunctions": [], "eventsBasedBehaviors": [ { "description": "Smoothly scroll to follow an object.", "fullName": "Smooth Camera", "name": "SmoothCamera", "objectType": "", "eventsFunctions": [ { "fullName": "", "functionType": "Action", "name": "onCreated", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Update private properties through setters to check their values and initialize state." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetLeftwardSpeed" }, "parameters": [ "Object", "Behavior", "Object.Behavior::PropertyLeftwardSpeed()", "log(1 - )" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetRightwardSpeed" }, "parameters": [ "Object", "Behavior", "Object.Behavior::PropertyRightwardSpeed()", "log(1 - )" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetUpwardSpeed" }, "parameters": [ "Object", "Behavior", "Object.Behavior::PropertyUpwardSpeed()", "log(1 - )" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetDownwardSpeed" }, "parameters": [ "Object", "Behavior", "Object.Behavior::PropertyDownwardSpeed()", "log(1 - )" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetLeftwardSpeedMax" }, "parameters": [ "Object", "Behavior", "Object.Behavior::PropertyLeftwardSpeedMax()", "log(1 - )" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetRightwardSpeedMax" }, "parameters": [ "Object", "Behavior", "Object.Behavior::PropertyRightwardSpeedMax()", "log(1 - )" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetUpwardSpeedMax" }, "parameters": [ "Object", "Behavior", "Object.Behavior::PropertyUpwardSpeedMax()", "log(1 - )" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetDownwardSpeedMax" }, "parameters": [ "Object", "Behavior", "Object.Behavior::PropertyDownwardSpeedMax()", "log(1 - )" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetFollowFreeAreaLeft" }, "parameters": [ "Object", "Behavior", "Object.Behavior::PropertyFollowFreeAreaLeft()", "log(1 - )" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetFollowFreeAreaRight" }, "parameters": [ "Object", "Behavior", "Object.Behavior::PropertyFollowFreeAreaRight()", "log(1 - )" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetFollowFreeAreaTop" }, "parameters": [ "Object", "Behavior", "Object.Behavior::PropertyFollowFreeAreaTop()", "log(1 - )" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetFollowFreeAreaBottom" }, "parameters": [ "Object", "Behavior", "Object.Behavior::PropertyFollowFreeAreaBottom()", "log(1 - )" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyCameraDelay" }, "parameters": [ "Object", "Behavior", "=", "Object.Behavior::PropertyCameraDelay()" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "Action", "name": "doStepPreEvents", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "SmoothCamera::SmoothCamera::PropertyIsCalledManually" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::DoMoveCameraCloser" }, "parameters": [ "Object", "Behavior", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" } ], "objectGroups": [] }, { "description": "Move the camera closer to the object. This action must be called after the object has moved for the frame.", "fullName": "Move the camera closer", "functionType": "Action", "name": "MoveCameraCloser", "sentence": "Move the camera closer to _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "The camera following is called with an action, the call from doStepPreEvents must be disabled to avoid to do it twice." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyIsCalledManually" }, "parameters": [ "Object", "Behavior", "yes" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::DoMoveCameraCloser" }, "parameters": [ "Object", "Behavior", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" } ], "objectGroups": [] }, { "description": "Move the camera closer to the object.", "fullName": "Do move the camera closer", "functionType": "Action", "name": "DoMoveCameraCloser", "private": true, "sentence": "Do move the camera closer _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Delaying and forecasting can be used at the same time.\nForecasting only use the positions that are older than the one used for delaying.\nThe behavior uses a position history that is split in 2 arrays:\n- one for delaying the position (from TimeFromStart to TimeFromStart - CamearDelay)\n- one for forecasting the position (from TimeFromStart - CamearDelay to TimeFromStart - CamearDelay - ForecastHistoryDuration" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::UpdateDelayedPosition" }, "parameters": [ "Object", "Behavior", "" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::UpdateForecastedPosition" }, "parameters": [ "Object", "Behavior", "" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "At each frame, the camera must catchup the target by a given ratio (speed)\ncameraX(t) - targetX = (cameraX(t - 1) - targetX) * speed\n\nThe frame rate must not impact on the catch-up speed, we don't want a speed in ratio per frame but a speed ratio per second, like this:\ncameraX(t) - targetX = (cameraX(t - 1s) - targetX) * speed\n\nOk, but we still need to process each frame, we can use a exponent for this:\ncameraX(t) - targetX = (cameraX(t - timeDelta) - targetX) * speed^timeDelta\ncameraX(t) = targetX + (cameraX(t - timeDelta) - targetX) * exp(timeDelta * ln(speed))\n\npow is probably more efficient than precalculated log if the speed is changed continuously but this might be rare enough." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SmoothCamera::SmoothCamera::PropertyFollowOnX" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyOldX" }, "parameters": [ "Object", "Behavior", "=", "CameraX(Object.Layer(), 0)" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CameraX" }, "parameters": [ "", ">", "Object.Behavior::FreeAreaRight()", "Object.Layer()", "0" ] } ], "actions": [ { "type": { "value": "SetCameraX" }, "parameters": [ "", "=", "Object.Behavior::FreeAreaRight()\n+ (CameraX(Object.Layer(), 0) - Object.Behavior::FreeAreaRight())\n* exp(TimeDelta() * Object.Behavior::PropertyLogLeftwardSpeed())", "Object.Layer()", "0" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CameraX" }, "parameters": [ "", "<", "Object.Behavior::PropertyOldX() - Object.Behavior::PropertyLeftwardSpeedMax() * TimeDelta()", "Object.Layer()", "0" ] } ], "actions": [ { "type": { "value": "SetCameraX" }, "parameters": [ "", "=", "Object.Behavior::PropertyOldX() - Object.Behavior::PropertyLeftwardSpeedMax() * TimeDelta()", "Object.Layer()", "0" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CameraX" }, "parameters": [ "", "<", "Object.Behavior::FreeAreaLeft()", "Object.Layer()", "0" ] } ], "actions": [ { "type": { "value": "SetCameraX" }, "parameters": [ "", "=", "Object.Behavior::FreeAreaLeft()\n+ (CameraX(Object.Layer(), 0) - Object.Behavior::FreeAreaLeft())\n* exp(TimeDelta() * Object.Behavior::PropertyLogRightwardSpeed())", "Object.Layer()", "0" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CameraX" }, "parameters": [ "", ">", "Object.Behavior::PropertyOldX() + Object.Behavior::PropertyRightwardSpeedMax() * TimeDelta()", "Object.Layer()", "0" ] } ], "actions": [ { "type": { "value": "SetCameraX" }, "parameters": [ "", "=", "Object.Behavior::PropertyOldX() + Object.Behavior::PropertyRightwardSpeedMax() * TimeDelta()", "Object.Layer()", "0" ] } ] } ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SmoothCamera::SmoothCamera::PropertyFollowOnY" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyOldY" }, "parameters": [ "Object", "Behavior", "=", "CameraY(Object.Layer(), 0)" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CameraY" }, "parameters": [ "", ">", "Object.Behavior::FreeAreaBottom()", "Object.Layer()", "0" ] } ], "actions": [ { "type": { "value": "SetCameraY" }, "parameters": [ "", "=", "Object.Behavior::FreeAreaBottom()\n+ (CameraY(Object.Layer(), 0) - Object.Behavior::FreeAreaBottom())\n* exp(TimeDelta() * Object.Behavior::PropertyLogUpwardSpeed())", "Object.Layer()", "0" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CameraY" }, "parameters": [ "", "<", "Object.Behavior::PropertyOldY() - Object.Behavior::PropertyUpwardSpeedMax() * TimeDelta()", "Object.Layer()", "0" ] } ], "actions": [ { "type": { "value": "SetCameraY" }, "parameters": [ "", "=", "Object.Behavior::PropertyOldY() - Object.Behavior::PropertyUpwardSpeedMax() * TimeDelta()", "Object.Layer()", "0" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CameraY" }, "parameters": [ "", "<", "Object.Behavior::FreeAreaTop()", "Object.Layer()", "0" ] } ], "actions": [ { "type": { "value": "SetCameraY" }, "parameters": [ "", "=", "Object.Behavior::FreeAreaTop()\n+ (CameraY(Object.Layer(), 0) - Object.Behavior::FreeAreaTop())\n* exp(TimeDelta() * Object.Behavior::PropertyLogDownwardSpeed())", "Object.Layer()", "0" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CameraY" }, "parameters": [ "", ">", "Object.Behavior::PropertyOldY() + Object.Behavior::PropertyDownwardSpeedMax() * TimeDelta()", "Object.Layer()", "0" ] } ], "actions": [ { "type": { "value": "SetCameraY" }, "parameters": [ "", "=", "Object.Behavior::PropertyOldY() + Object.Behavior::PropertyDownwardSpeedMax() * TimeDelta()", "Object.Layer()", "0" ] } ] } ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" } ], "objectGroups": [] }, { "description": "Delay the camera according to a maximum speed and catch up the delay.", "fullName": "Wait and catch up", "functionType": "Action", "name": "WaitAndCatchUp", "sentence": "Delay the camera of _PARAM0_ during: _PARAM2_ seconds according to the maximum speed _PARAM3_;_PARAM4_ seconds and catch up in _PARAM5_ seconds", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Maybe the catch-up show be done in constant pixel speed instead of constant time speed." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyWaitingEnd" }, "parameters": [ "Object", "Behavior", "=", "TimeFromStart() + GetArgumentAsNumber(\"WaitingDuration\")" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyWaitingSpeedXMax" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"WaitingSpeedXMax\")" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyWaitingSpeedYMax" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"WaitingSpeedYMax\")" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyCameraDelayCatchUpDuration" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"CatchUpDuration\")" ] } ] }, { "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "DebuggerTools::ConsoleLog" }, "parameters": [ "\"Wait and catch up\"", "\"info\"", "\"SmoothCamera\"" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" }, { "description": "Waiting duration (in seconds)", "name": "WaitingDuration", "type": "expression" }, { "description": "Waiting maximum camera target speed X", "name": "WaitingSpeedXMax", "type": "expression" }, { "description": "Waiting maximum camera target speed Y", "name": "WaitingSpeedYMax", "type": "expression" }, { "description": "Catch up duration (in seconds)", "name": "CatchUpDuration", "type": "expression" } ], "objectGroups": [] }, { "description": "Draw the targeted and actual camera position.", "fullName": "Draw debug", "functionType": "Action", "name": "DrawDebug", "sentence": "Draw targeted and actual camera position for _PARAM0_ on _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "PrimitiveDrawing::FillOpacity" }, "parameters": [ "ShapePainter", "=", "0" ] } ] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Path used by the forecasting", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Egal" }, "parameters": [ "Object.VariableChildCount(__SmoothCamera.ForecastHistoryTime)", ">", "0" ] } ], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyIndex" }, "parameters": [ "Object", "Behavior", "=", "0" ] }, { "type": { "value": "PrimitiveDrawing::OutlineColor" }, "parameters": [ "ShapePainter", "\"245;166;35\"" ] }, { "type": { "value": "PrimitiveDrawing::BeginFillPath" }, "parameters": [ "ShapePainter", "Object.Variable(__SmoothCamera.ForecastHistoryX[0])", "Object.Variable(__SmoothCamera.ForecastHistoryY[0])" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Repeat", "repeatExpression": "Object.VariableChildCount(__SmoothCamera.ForecastHistoryX)", "conditions": [], "actions": [ { "type": { "value": "PrimitiveDrawing::PathLineTo" }, "parameters": [ "ShapePainter", "Object.Variable(__SmoothCamera.ForecastHistoryX[Object.Behavior::PropertyIndex()])", "Object.Variable(__SmoothCamera.ForecastHistoryY[Object.Behavior::PropertyIndex()])" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyIndex" }, "parameters": [ "Object", "Behavior", "+", "1" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "PrimitiveDrawing::EndFillPath" }, "parameters": [ "ShapePainter" ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Follow-free area.", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "SmoothCamera::SmoothCamera::PropertyFollowFreeAreaLeft" }, "parameters": [ "Object", "Behavior", "!=", "0" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::PropertyFollowFreeAreaRight" }, "parameters": [ "Object", "Behavior", "!=", "0" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::PropertyFollowFreeAreaTop" }, "parameters": [ "Object", "Behavior", "!=", "0" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::PropertyFollowFreeAreaBottom" }, "parameters": [ "Object", "Behavior", "!=", "0" ] } ] } ], "actions": [ { "type": { "value": "PrimitiveDrawing::OutlineColor" }, "parameters": [ "ShapePainter", "\"126;211;33\"" ] }, { "type": { "value": "PrimitiveDrawing::Rectangle" }, "parameters": [ "ShapePainter", "Object.Behavior::FreeAreaLeft() - 1", "Object.Behavior::FreeAreaTop() - 1", "Object.Behavior::FreeAreaRight() + 1", "Object.Behavior::FreeAreaBottom() + 1" ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Linear regression vector used by the forecasting.", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "PrimitiveDrawing::OutlineColor" }, "parameters": [ "ShapePainter", "\"208;2;27\"" ] }, { "type": { "value": "PrimitiveDrawing::LineV2" }, "parameters": [ "ShapePainter", "Object.Behavior::PropertyProjectedOldestX()", "Object.Behavior::PropertyProjectedOldestY()", "Object.Behavior::PropertyProjectedNewestX()", "Object.Behavior::PropertyProjectedNewestY()", "1" ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Targeted and actual camera position", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "PrimitiveDrawing::Circle" }, "parameters": [ "ShapePainter", "Object.Behavior::PropertyForecastedX()", "Object.Behavior::PropertyForecastedY()", "3" ] }, { "type": { "value": "PrimitiveDrawing::LineV2" }, "parameters": [ "ShapePainter", "CameraX(Object.Layer(), 0)", "CameraY(Object.Layer(), 0) - 4", "CameraX(Object.Layer(), 0)", "CameraY(Object.Layer(), 0) + 4", "1" ] }, { "type": { "value": "PrimitiveDrawing::LineV2" }, "parameters": [ "ShapePainter", "CameraX(Object.Layer(), 0) - 4", "CameraY(Object.Layer(), 0)", "CameraX(Object.Layer(), 0) + 4", "CameraY(Object.Layer(), 0)", "1" ] } ] } ], "parameters": [] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" }, { "description": "Shape painter", "name": "ShapePainter", "supplementaryInformation": "PrimitiveDrawing::Drawer", "type": "objectList" } ], "objectGroups": [] }, { "description": "Enable or disable the following on X axis.", "fullName": "Follow on X", "functionType": "Action", "group": "Camera configuration", "name": "SetFollowOnX", "sentence": "The camera follows _PARAM0_ on X axis: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyFollowOnX" }, "parameters": [ "Object", "Behavior", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "GetArgumentAsBoolean" }, "parameters": [ "\"FollowOnX\"" ] } ], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyFollowOnX" }, "parameters": [ "Object", "Behavior", "yes" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" }, { "description": "Follow on X axis", "name": "FollowOnX", "type": "yesorno" } ], "objectGroups": [] }, { "description": "Enable or disable the following on Y axis.", "fullName": "Follow on Y", "functionType": "Action", "group": "Camera configuration", "name": "SetFollowOnY", "sentence": "The camera follows _PARAM0_ on Y axis: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyFollowOnY" }, "parameters": [ "Object", "Behavior", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "GetArgumentAsBoolean" }, "parameters": [ "\"FollowOnY\"" ] } ], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyFollowOnY" }, "parameters": [ "Object", "Behavior", "yes" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" }, { "description": "Follow on Y axis", "name": "FollowOnY", "type": "yesorno" } ], "objectGroups": [] }, { "description": "Change the camera follow free area right border.", "fullName": "Follow free area right border", "functionType": "Action", "group": "Camera configuration", "name": "SetFollowFreeAreaRight", "sentence": "Change the camera follow free area right border of _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyFollowFreeAreaTop" }, "parameters": [ "Object", "Behavior", "=", "max(0, GetArgumentAsNumber(\"SetFollowFreeAreaRight\"))" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" }, { "description": "Follow free area right border", "name": "SetFollowFreeAreaRight", "type": "expression" } ], "objectGroups": [] }, { "description": "Change the camera follow free area left border.", "fullName": "Follow free area left border", "functionType": "Action", "group": "Camera configuration", "name": "SetFollowFreeAreaLeft", "sentence": "Change the camera follow free area left border of _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyFollowFreeAreaTop" }, "parameters": [ "Object", "Behavior", "=", "max(0, GetArgumentAsNumber(\"SetFollowFreeAreaLeft\"))" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" }, { "description": "Follow free area left border", "name": "SetFollowFreeAreaLeft", "type": "expression" } ], "objectGroups": [] }, { "description": "Change the camera follow free area top border.", "fullName": "Follow free area top border", "functionType": "Action", "group": "Camera configuration", "name": "SetFollowFreeAreaTop", "sentence": "Change the camera follow free area top border of _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyFollowFreeAreaTop" }, "parameters": [ "Object", "Behavior", "=", "max(0, GetArgumentAsNumber(\"FollowFreeAreaTop\"))" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" }, { "description": "Follow free area top border", "name": "FollowFreeAreaTop", "type": "expression" } ], "objectGroups": [] }, { "description": "Change the camera follow free area bottom border.", "fullName": "Follow free area bottom border", "functionType": "Action", "group": "Camera configuration", "name": "SetFollowFreeAreaBottom", "sentence": "Change the camera follow free area bottom border of _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyFollowFreeAreaBottom" }, "parameters": [ "Object", "Behavior", "=", "max(0, GetArgumentAsNumber(\"SetFollowFreeAreaBottom\"))" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" }, { "description": "Follow free area bottom border", "name": "SetFollowFreeAreaBottom", "type": "expression" } ], "objectGroups": [] }, { "description": "Change the camera leftward maximum speed (in pixels per second).", "fullName": "Leftward maximum speed", "functionType": "Action", "group": "Camera configuration", "name": "SetLeftwardSpeedMax", "sentence": "Change the camera leftward maximum speed of _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyLeftwardSpeedMax" }, "parameters": [ "Object", "Behavior", "=", "max(0, GetArgumentAsNumber(\"Speed\"))" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" }, { "description": "Leftward maximum speed (in ratio per second)", "name": "Speed", "type": "expression" } ], "objectGroups": [] }, { "description": "Change the camera rightward maximum speed (in pixels per second).", "fullName": "Rightward maximum speed", "functionType": "Action", "group": "Camera configuration", "name": "SetRightwardSpeedMax", "sentence": "Change the camera rightward maximum speed of _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyLeftwardSpeedMax" }, "parameters": [ "Object", "Behavior", "=", "max(0, GetArgumentAsNumber(\"Speed\"))" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" }, { "description": "Rightward maximum speed (in pixels per second)", "name": "Speed", "type": "expression" } ], "objectGroups": [] }, { "description": "Change the camera upward maximum speed (in pixels per second).", "fullName": "Upward maximum speed", "functionType": "Action", "group": "Camera configuration", "name": "SetUpwardSpeedMax", "sentence": "Change the camera upward maximum speed of _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyUpwardSpeedMax" }, "parameters": [ "Object", "Behavior", "=", "max(0, GetArgumentAsNumber(\"Speed\"))" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" }, { "description": "Upward maximum speed (in pixels per second)", "name": "Speed", "type": "expression" } ], "objectGroups": [] }, { "description": "Change the camera downward maximum speed (in pixels per second).", "fullName": "Downward maximum speed", "functionType": "Action", "group": "Camera configuration", "name": "SetDownwardSpeedMax", "sentence": "Change the camera downward maximum speed of _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyDownwardSpeedMax" }, "parameters": [ "Object", "Behavior", "=", "max(0, GetArgumentAsNumber(\"Speed\"))" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" }, { "description": "Downward maximum speed (in pixels per second)", "name": "Speed", "type": "expression" } ], "objectGroups": [] }, { "description": "Change the camera leftward catch-up speed (in ratio per second).", "fullName": "Leftward catch-up speed", "functionType": "Action", "group": "Camera configuration", "name": "SetLeftwardSpeed", "sentence": "Change the camera leftward catch-up speed of _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyLeftwardSpeed" }, "parameters": [ "Object", "Behavior", "=", "clamp(0, 1, GetArgumentAsNumber(\"LeftwardSpeed\"))" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyLogLeftwardSpeed" }, "parameters": [ "Object", "Behavior", "=", "log(1 - Object.Behavior::PropertyLeftwardSpeed())" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" }, { "description": "Leftward catch-up speed (in ratio per second)", "name": "LeftwardSpeed", "type": "expression" } ], "objectGroups": [] }, { "description": "Change the camera rightward catch-up speed (in ratio per second).", "fullName": "Rightward catch-up speed", "functionType": "Action", "group": "Camera configuration", "name": "SetRightwardSpeed", "sentence": "Change the camera rightward catch-up speed of _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyRightwardSpeed" }, "parameters": [ "Object", "Behavior", "=", "clamp(0, 1, GetArgumentAsNumber(\"RightwardSpeed\"))" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyLogRightwardSpeed" }, "parameters": [ "Object", "Behavior", "=", "log(1 - Object.Behavior::PropertyRightwardSpeed())" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" }, { "description": "Rightward catch-up speed (in ratio per second)", "name": "RightwardSpeed", "type": "expression" } ], "objectGroups": [] }, { "description": "Change the camera downward catch-up speed (in ratio per second).", "fullName": "Downward catch-up speed", "functionType": "Action", "group": "Camera configuration", "name": "SetDownwardSpeed", "sentence": "Change the camera downward catch-up speed of _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyDownwardSpeed" }, "parameters": [ "Object", "Behavior", "=", "clamp(0, 1, GetArgumentAsNumber(\"DownwardSpeed\"))" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyLogDownwardSpeed" }, "parameters": [ "Object", "Behavior", "=", "log(1 - Object.Behavior::PropertyDownwardSpeed())" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" }, { "description": "Downward catch-up speed (in ratio per second)", "name": "DownwardSpeed", "type": "expression" } ], "objectGroups": [] }, { "description": "Change the camera upward catch-up speed (in ratio per second).", "fullName": "Upward catch-up speed", "functionType": "Action", "group": "Camera configuration", "name": "SetUpwardSpeed", "sentence": "Change the camera upward catch-up speed of _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyUpwardSpeed" }, "parameters": [ "Object", "Behavior", "=", "clamp(0, 1, GetArgumentAsNumber(\"UpwardSpeed\"))" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyLogUpwardSpeed" }, "parameters": [ "Object", "Behavior", "=", "log(1 - Object.Behavior::PropertyUpwardSpeed())" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" }, { "description": "Upward catch-up speed (in ratio per second)", "name": "UpwardSpeed", "type": "expression" } ], "objectGroups": [] }, { "description": "the camera offset on X axis of the object. This is not the current difference between the object and the camera position.", "fullName": "Camera offset X", "functionType": "ExpressionAndCondition", "group": "Camera configuration", "name": "OffsetX", "sentence": "the camera offset on X axis", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyCameraOffsetX()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "OffsetX", "name": "SetOffsetXOp", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyCameraOffsetX" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" } ], "objectGroups": [] }, { "description": "Change the camera offset on X axis of an object.", "fullName": "Camera Offset X", "functionType": "Action", "group": "Camera configuration", "name": "SetOffsetX", "private": true, "sentence": "Change the camera offset on X axis of _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Deprecated use SetOffsetXOp instead." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetOffsetXOp" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"CameraOffsetX\")", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" }, { "description": "Camera offset X", "name": "CameraOffsetX", "type": "expression" } ], "objectGroups": [] }, { "description": "the camera offset on Y axis of the object. This is not the current difference between the object and the camera position.", "fullName": "Camera offset Y", "functionType": "ExpressionAndCondition", "group": "Camera configuration", "name": "OffsetY", "sentence": "the camera offset on Y axis", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyCameraOffsetY()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "OffsetY", "name": "SetOffsetYOp", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Deprecated use SetOffsetYOp instead." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyCameraOffsetY" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" } ], "objectGroups": [] }, { "description": "Change the camera offset on Y axis of an object.", "fullName": "Camera Offset Y", "functionType": "Action", "group": "Camera configuration", "name": "SetOffsetY", "private": true, "sentence": "Change the camera offset on Y axis of _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetOffsetYOp" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"CameraOffsetY\")", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" }, { "description": "Camera offset Y", "name": "CameraOffsetY", "type": "expression" } ], "objectGroups": [] }, { "description": "Change the camera forecast time (in seconds).", "fullName": "Forecast time", "functionType": "Action", "group": "Camera configuration", "name": "SetForecastTime", "sentence": "Change the camera forecast time of _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyForecastTime" }, "parameters": [ "Object", "Behavior", "=", "min(0, GetArgumentAsNumber(\"ForecastTime\"))" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" }, { "description": "Forecast time", "name": "ForecastTime", "type": "expression" } ], "objectGroups": [] }, { "description": "Change the camera delay (in seconds).", "fullName": "Camera delay", "functionType": "Action", "group": "Camera configuration", "name": "SetCameraDelay", "sentence": "Change the camera delay of _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyCameraDelay" }, "parameters": [ "Object", "Behavior", "=", "min(0, GetArgumentAsNumber(\"CameraDelay\"))" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" }, { "description": "Camera delay", "name": "CameraDelay", "type": "expression" } ], "objectGroups": [] }, { "description": "Return follow free area left border X.", "fullName": "Free area left", "functionType": "Expression", "group": "Private", "name": "FreeAreaLeft", "private": true, "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyForecastedX() + Object.Behavior::PropertyCameraOffsetX() - Object.Behavior::PropertyFollowFreeAreaLeft()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" } ], "objectGroups": [] }, { "description": "Return follow free area right border X.", "fullName": "Free area right", "functionType": "Expression", "group": "Private", "name": "FreeAreaRight", "private": true, "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyForecastedX() + Object.Behavior::PropertyCameraOffsetX() + Object.Behavior::PropertyFollowFreeAreaRight()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" } ], "objectGroups": [] }, { "description": "Return follow free area bottom border Y.", "fullName": "Free area bottom", "functionType": "Expression", "group": "Private", "name": "FreeAreaBottom", "private": true, "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyForecastedY() + Object.Behavior::PropertyCameraOffsetY() + Object.Behavior::PropertyFollowFreeAreaBottom()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" } ], "objectGroups": [] }, { "description": "Return follow free area top border Y.", "fullName": "Free area top", "functionType": "Expression", "group": "Private", "name": "FreeAreaTop", "private": true, "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyForecastedY() + Object.Behavior::PropertyCameraOffsetY() - Object.Behavior::PropertyFollowFreeAreaTop()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" } ], "objectGroups": [] }, { "description": "Update delayed position and delayed history. This is called in doStepPreEvents.", "fullName": "Update delayed position", "functionType": "Action", "group": "Private", "name": "UpdateDelayedPosition", "private": true, "sentence": "Update delayed position and delayed history of _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Add the previous position to have enough (2) positions to evaluate the extra delay for waiting mode." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SmoothCamera::SmoothCamera::IsWaiting" }, "parameters": [ "Object", "Behavior", "" ] }, { "type": { "value": "Egal" }, "parameters": [ "Object.VariableChildCount(__SmoothCamera.ObjectTime)", "=", "0" ] } ], "actions": [ { "type": { "value": "ObjectVariablePushNumber" }, "parameters": [ "Object", "__SmoothCamera.ObjectTime", "TimeFromStart()" ] }, { "type": { "value": "ObjectVariablePushNumber" }, "parameters": [ "Object", "__SmoothCamera.ObjectX", "Object.Behavior::PropertyDelayedCenterX()" ] }, { "type": { "value": "ObjectVariablePushNumber" }, "parameters": [ "Object", "__SmoothCamera.ObjectY", "Object.Behavior::PropertyDelayedCenterY()" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Use the object center when no delay is asked." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyDelayedCenterX" }, "parameters": [ "Object", "Behavior", "=", "Object.CenterX()" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyDelayedCenterY" }, "parameters": [ "Object", "Behavior", "=", "Object.CenterY()" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "SmoothCamera::SmoothCamera::IsDelayed" }, "parameters": [ "Object", "Behavior", "" ] } ], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::AddForecastHistoryPosition" }, "parameters": [ "Object", "Behavior", "TimeFromStart()", "Object.CenterX()", "Object.CenterY()", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "SmoothCamera::SmoothCamera::IsDelayed" }, "parameters": [ "Object", "Behavior", "" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::IsWaiting" }, "parameters": [ "Object", "Behavior", "" ] } ] } ], "actions": [ { "type": { "value": "ObjectVariablePushNumber" }, "parameters": [ "Object", "__SmoothCamera.ObjectTime", "TimeFromStart()" ] }, { "type": { "value": "ObjectVariablePushNumber" }, "parameters": [ "Object", "__SmoothCamera.ObjectX", "Object.CenterX()" ] }, { "type": { "value": "ObjectVariablePushNumber" }, "parameters": [ "Object", "__SmoothCamera.ObjectY", "Object.CenterY()" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Remove history entries that are too old to be useful for delaying and pass it to the history for forecasting." }, { "infiniteLoopWarning": true, "type": "BuiltinCommonInstructions::While", "whileConditions": [ { "type": { "value": "Egal" }, "parameters": [ "Object.VariableChildCount(__SmoothCamera.ObjectTime)", ">=", "2" ] }, { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__SmoothCamera.ObjectTime[1]", "<", "TimeFromStart() - Object.Behavior::CurrentDelay()" ] } ], "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::AddForecastHistoryPosition" }, "parameters": [ "Object", "Behavior", "Object.Variable(__SmoothCamera.ObjectTime[0])", "Object.Variable(__SmoothCamera.ObjectX[0])", "Object.Variable(__SmoothCamera.ObjectY[0])", "" ] }, { "type": { "value": "ObjectVariableRemoveAt" }, "parameters": [ "Object", "__SmoothCamera.ObjectTime", "0" ] }, { "type": { "value": "ObjectVariableRemoveAt" }, "parameters": [ "Object", "__SmoothCamera.ObjectX", "0" ] }, { "type": { "value": "ObjectVariableRemoveAt" }, "parameters": [ "Object", "__SmoothCamera.ObjectY", "0" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Don't move the camera if there is not enough history." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyDelayedCenterX" }, "parameters": [ "Object", "Behavior", "=", "Object.Variable(__SmoothCamera.ObjectX[0])" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyDelayedCenterY" }, "parameters": [ "Object", "Behavior", "=", "Object.Variable(__SmoothCamera.ObjectY[0])" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Egal" }, "parameters": [ "Object.VariableChildCount(__SmoothCamera.ObjectTime)", ">=", "2" ] }, { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__SmoothCamera.ObjectTime[0]", "<", "TimeFromStart() - Object.Behavior::CurrentDelay()" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Add the extra delay that could be needed to respect the speed limit in waiting mode.\n\nspeedRatio = min(speedMaxX / historySpeedX, speedMaxY / historySpeedY)\ndelay += min(0, timeDelta * (1 - speedRatio))" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SmoothCamera::SmoothCamera::IsWaiting" }, "parameters": [ "Object", "Behavior", "" ] } ], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyCameraExtraDelay" }, "parameters": [ "Object", "Behavior", "+", "max(0, TimeDelta() * (1 - min(Object.Behavior::PropertyWaitingSpeedXMax() * abs(Object.Variable(__SmoothCamera.ObjectX[1]) - Object.Variable(__SmoothCamera.ObjectX[0])), Object.Behavior::PropertyWaitingSpeedYMax() * abs(Object.Variable(__SmoothCamera.ObjectY[1]) - Object.Variable(__SmoothCamera.ObjectY[0]))) / (Object.Variable(__SmoothCamera.ObjectTime[1]) - Object.Variable(__SmoothCamera.ObjectTime[0]))))" ] } ], "events": [ { "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "DebuggerTools::ConsoleLog" }, "parameters": [ "\"Extra delay: \" + ToString(Object.Behavior::PropertyCameraExtraDelay())", "\"info\"", "\"SmoothCamera\"" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "The time with delay is now between the first 2 indexes" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyDelayedCenterX" }, "parameters": [ "Object", "Behavior", "=", "lerp(Object.Variable(__SmoothCamera.ObjectX[1]), Object.Variable(__SmoothCamera.ObjectX[0]), ((TimeFromStart() - Object.Behavior::CurrentDelay()) - Object.Variable(__SmoothCamera.ObjectTime[1])) / (Object.Variable(__SmoothCamera.ObjectTime[0]) - Object.Variable(__SmoothCamera.ObjectTime[1])))" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyDelayedCenterY" }, "parameters": [ "Object", "Behavior", "=", "lerp(Object.Variable(__SmoothCamera.ObjectY[1]), Object.Variable(__SmoothCamera.ObjectY[0]), ((TimeFromStart() - Object.Behavior::CurrentDelay()) - Object.Variable(__SmoothCamera.ObjectTime[1])) / (Object.Variable(__SmoothCamera.ObjectTime[0]) - Object.Variable(__SmoothCamera.ObjectTime[1])))" ] } ] } ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "SmoothCamera::SmoothCamera::IsDelayed" }, "parameters": [ "Object", "Behavior", "" ] }, { "type": { "inverted": true, "value": "SmoothCamera::SmoothCamera::IsWaiting" }, "parameters": [ "Object", "Behavior", "" ] } ], "actions": [ { "type": { "value": "ObjectVariableClearChildren" }, "parameters": [ "Object", "__SmoothCamera.ObjectTime" ] }, { "type": { "value": "ObjectVariableClearChildren" }, "parameters": [ "Object", "__SmoothCamera.ObjectX" ] }, { "type": { "value": "ObjectVariableClearChildren" }, "parameters": [ "Object", "__SmoothCamera.ObjectY" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "SmoothCamera::SmoothCamera::IsWaiting" }, "parameters": [ "Object", "Behavior", "" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyCameraDelayCatchUpSpeed" }, "parameters": [ "Object", "Behavior", "=", "Object.Behavior::PropertyCameraExtraDelay() / Object.Behavior::PropertyCameraDelayCatchUpDuration()" ] } ], "events": [ { "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "DebuggerTools::ConsoleLog" }, "parameters": [ "\"Start to catch up\"", "\"info\"", "\"SmoothCamera\"" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "SmoothCamera::SmoothCamera::IsWaiting" }, "parameters": [ "Object", "Behavior", "" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::PropertyCameraExtraDelay" }, "parameters": [ "Object", "Behavior", ">", "0" ] } ], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyCameraExtraDelay" }, "parameters": [ "Object", "Behavior", "=", "max(0, Object.Behavior::PropertyCameraExtraDelay() -Object.Behavior::PropertyCameraDelayCatchUpSpeed() * TimeDelta())" ] } ], "events": [ { "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "DebuggerTools::ConsoleLog" }, "parameters": [ "\"Catching up delay: \" + ToString(Object.Behavior::PropertyCameraExtraDelay())", "\"info\"", "\"SmoothCamera\"" ] } ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if the camera following target is delayed from the object.", "fullName": "Camera is delayed", "functionType": "Condition", "name": "IsDelayed", "private": true, "sentence": "The camera of _PARAM0_ is delayed", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Egal" }, "parameters": [ "Object.Behavior::CurrentDelay()", ">", "0" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" } ], "objectGroups": [] }, { "description": "Return the current camera delay.", "fullName": "Current delay", "functionType": "Expression", "name": "CurrentDelay", "private": true, "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyCameraDelay() + Object.Behavior::PropertyCameraExtraDelay()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if the camera following is waiting at a reduced speed.", "fullName": "Camera is waiting", "functionType": "Condition", "name": "IsWaiting", "private": true, "sentence": "The camera of _PARAM0_ is waiting", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SmoothCamera::SmoothCamera::PropertyWaitingEnd" }, "parameters": [ "Object", "Behavior", ">", "TimeFromStart()" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" } ], "objectGroups": [] }, { "description": "Add a position to the history for forecasting. This is called 2 times in UpadteDelayedPosition.", "fullName": "Add forecast history position", "functionType": "Action", "group": "Private", "name": "AddForecastHistoryPosition", "private": true, "sentence": "Add the time:_PARAM2_ and position: _PARAM3_; _PARAM4_ to the forecast history of _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "SmoothCamera::SmoothCamera::PropertyForecastHistoryDuration" }, "parameters": [ "Object", "Behavior", ">", "0" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::PropertyForecastTime" }, "parameters": [ "Object", "Behavior", ">", "0" ] } ] } ], "actions": [ { "type": { "value": "ObjectVariablePushNumber" }, "parameters": [ "Object", "__SmoothCamera.ForecastHistoryTime", "GetArgumentAsNumber(\"Time\")" ] }, { "type": { "value": "ObjectVariablePushNumber" }, "parameters": [ "Object", "__SmoothCamera.ForecastHistoryX", "GetArgumentAsNumber(\"ObjectX\")" ] }, { "type": { "value": "ObjectVariablePushNumber" }, "parameters": [ "Object", "__SmoothCamera.ForecastHistoryY", "GetArgumentAsNumber(\"ObjectY\")" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Remove history entries that are too old to be useful.\nKeep at least 2 positions because no forecast can be done with less positions." }, { "infiniteLoopWarning": true, "type": "BuiltinCommonInstructions::While", "whileConditions": [ { "type": { "value": "Egal" }, "parameters": [ "Object.VariableChildCount(__SmoothCamera.ForecastHistoryTime)", ">=", "3" ] }, { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__SmoothCamera.ForecastHistoryTime[0]", "<", "TimeFromStart() - Object.Behavior::PropertyCameraDelay() - Object.Behavior::PropertyCameraExtraDelay() - Object.Behavior::PropertyForecastHistoryDuration()" ] } ], "conditions": [], "actions": [ { "type": { "value": "ObjectVariableRemoveAt" }, "parameters": [ "Object", "__SmoothCamera.ForecastHistoryTime", "0" ] }, { "type": { "value": "ObjectVariableRemoveAt" }, "parameters": [ "Object", "__SmoothCamera.ForecastHistoryX", "0" ] }, { "type": { "value": "ObjectVariableRemoveAt" }, "parameters": [ "Object", "__SmoothCamera.ForecastHistoryY", "0" ] } ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" }, { "description": "Time", "name": "Time", "type": "expression" }, { "description": "Object X", "name": "ObjectX", "type": "expression" }, { "description": "Object Y", "name": "ObjectY", "type": "expression" } ], "objectGroups": [] }, { "description": "Update forecasted position. This is called in doStepPreEvents.", "fullName": "Update forecasted position", "functionType": "Action", "group": "Private", "name": "UpdateForecastedPosition", "private": true, "sentence": "Update forecasted position of _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyForecastedX" }, "parameters": [ "Object", "Behavior", "=", "Object.Behavior::PropertyDelayedCenterX()" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyForecastedY" }, "parameters": [ "Object", "Behavior", "=", "Object.Behavior::PropertyDelayedCenterY()" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Simple linear regression\ny = A * x + B\n\nA = Covariance / VarianceX\nB = MeanY - A * MeanX\n\nNote than we could use only one position every N positions to reduce the process time,\nbut if we really need efficient process JavaScript and circular queues are a must." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Egal" }, "parameters": [ "Object.VariableChildCount(__SmoothCamera.ForecastHistoryTime)", ">=", "2" ] }, { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "SmoothCamera::SmoothCamera::PropertyForecastHistoryDuration" }, "parameters": [ "Object", "Behavior", ">", "0" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::PropertyForecastTime" }, "parameters": [ "Object", "Behavior", ">", "0" ] } ] } ], "actions": [], "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Mean X", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyForecastHistoryMeanX" }, "parameters": [ "Object", "Behavior", "=", "0" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyIndex" }, "parameters": [ "Object", "Behavior", "=", "0" ] } ] }, { "type": "BuiltinCommonInstructions::Repeat", "repeatExpression": "Object.VariableChildCount(__SmoothCamera.ForecastHistoryX)", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyForecastHistoryMeanX" }, "parameters": [ "Object", "Behavior", "+", "Object.Variable(__SmoothCamera.ForecastHistoryX[Object.Behavior::PropertyIndex()])" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyIndex" }, "parameters": [ "Object", "Behavior", "+", "1" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyForecastHistoryMeanX" }, "parameters": [ "Object", "Behavior", "/", "Object.VariableChildCount(__SmoothCamera.ForecastHistoryX)" ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Mean Y", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyForecastHistoryMeanY" }, "parameters": [ "Object", "Behavior", "=", "0" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyIndex" }, "parameters": [ "Object", "Behavior", "=", "0" ] } ] }, { "type": "BuiltinCommonInstructions::Repeat", "repeatExpression": "Object.VariableChildCount(__SmoothCamera.ForecastHistoryY)", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyForecastHistoryMeanY" }, "parameters": [ "Object", "Behavior", "+", "Object.Variable(__SmoothCamera.ForecastHistoryY[Object.Behavior::PropertyIndex()])" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyIndex" }, "parameters": [ "Object", "Behavior", "+", "1" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyForecastHistoryMeanY" }, "parameters": [ "Object", "Behavior", "/", "Object.VariableChildCount(__SmoothCamera.ForecastHistoryY)" ] } ] }, { "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "DebuggerTools::ConsoleLog" }, "parameters": [ "\"Mean: \" + ToString(Object.Behavior::PropertyForecastHistoryMeanX()) + \" \" + ToString(Object.Behavior::PropertyForecastHistoryMeanY())", "", "" ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Variance and Covariance", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "VarianceX = sum((X[i] - MeanX)²)\nVarianceY = sum((Y[i] - MeanY)²)\nCovariance = sum((X[i] - MeanX) * (Y[i] - MeanY))" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyForecastHistoryVarianceX" }, "parameters": [ "Object", "Behavior", "=", "0" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyForecastHistoryVarianceY" }, "parameters": [ "Object", "Behavior", "=", "0" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyForecastHistoryCovariance" }, "parameters": [ "Object", "Behavior", "=", "0" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyIndex" }, "parameters": [ "Object", "Behavior", "=", "0" ] } ] }, { "type": "BuiltinCommonInstructions::Repeat", "repeatExpression": "Object.VariableChildCount(__SmoothCamera.ForecastHistoryX)", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyForecastHistoryVarianceX" }, "parameters": [ "Object", "Behavior", "+", "pow(Object.Variable(__SmoothCamera.ForecastHistoryX[Object.Behavior::PropertyIndex()]) - Object.Behavior::PropertyForecastHistoryMeanX(), 2)" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyForecastHistoryVarianceY" }, "parameters": [ "Object", "Behavior", "+", "pow(Object.Variable(__SmoothCamera.ForecastHistoryY[Object.Behavior::PropertyIndex()]) - Object.Behavior::PropertyForecastHistoryMeanY(), 2)" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyForecastHistoryCovariance" }, "parameters": [ "Object", "Behavior", "+", "(Object.Variable(__SmoothCamera.ForecastHistoryX[Object.Behavior::PropertyIndex()]) - Object.Behavior::PropertyForecastHistoryMeanX())\n*\n(Object.Variable(__SmoothCamera.ForecastHistoryY[Object.Behavior::PropertyIndex()]) - Object.Behavior::PropertyForecastHistoryMeanY())" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyIndex" }, "parameters": [ "Object", "Behavior", "+", "1" ] } ] }, { "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "DebuggerTools::ConsoleLog" }, "parameters": [ "\"Variances: \" + ToString(Object.Behavior::PropertyForecastHistoryVarianceX()) + \" \" + ToString(Object.Behavior::PropertyForecastHistoryVarianceY()) + \" \" + ToString(Object.Behavior::PropertyForecastHistoryCovariance())", "\"info\"", "\"SmoothCamera\"" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Egal" }, "parameters": [ "abs(Object.Behavior::PropertyForecastHistoryVarianceX())", "<", "1" ] }, { "type": { "value": "Egal" }, "parameters": [ "abs(Object.Behavior::PropertyForecastHistoryVarianceY())", "<", "1" ] } ], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyForecastedX" }, "parameters": [ "Object", "Behavior", "=", "Object.Behavior::PropertyDelayedCenterX()" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyForecastedY" }, "parameters": [ "Object", "Behavior", "=", "Object.Behavior::PropertyDelayedCenterY()" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "Egal" }, "parameters": [ "abs(Object.Behavior::PropertyForecastHistoryVarianceX())", ">=", "1" ] }, { "type": { "value": "Egal" }, "parameters": [ "abs(Object.Behavior::PropertyForecastHistoryVarianceY())", ">=", "1" ] } ] } ], "actions": [], "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Linear function parameters", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "y = A * x + B\n\nA = Covariance / VarianceX\nB = MeanY - A * MeanX" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Egal" }, "parameters": [ "abs(Object.Behavior::PropertyForecastHistoryVarianceX())", ">=", "abs(Object.Behavior::PropertyForecastHistoryVarianceY())" ] } ], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyForecastHistoryLinearA" }, "parameters": [ "Object", "Behavior", "=", "Object.Behavior::PropertyForecastHistoryCovariance() / Object.Behavior::PropertyForecastHistoryVarianceX()" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyForecastHistoryLinearB" }, "parameters": [ "Object", "Behavior", "=", "Object.Behavior::PropertyForecastHistoryMeanY() - Object.Behavior::PropertyForecastHistoryLinearA() * Object.Behavior::PropertyForecastHistoryMeanX()" ] } ], "events": [ { "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "DebuggerTools::ConsoleLog" }, "parameters": [ "\"Linear: \" + ToString(Object.Behavior::PropertyForecastHistoryLinearA()) + \" \" + ToString(Object.Behavior::PropertyForecastHistoryLinearB())", "\"info\"", "\"SmoothCamera\"" ] } ] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Projection", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::ProjectHistoryEnds" }, "parameters": [ "Object", "Behavior", "Object.Variable(__SmoothCamera.ForecastHistoryX[0])", "Object.Variable(__SmoothCamera.ForecastHistoryY[0])", "Object.Variable(__SmoothCamera.ForecastHistoryX[Object.VariableChildCount(__SmoothCamera.ForecastHistoryX) - 1])", "Object.Variable(__SmoothCamera.ForecastHistoryY[Object.VariableChildCount(__SmoothCamera.ForecastHistoryY) - 1])", "" ] } ] } ], "parameters": [] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Axis permutation to avoid a ratio between 2 numbers near 0." }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Egal" }, "parameters": [ "abs(Object.Behavior::PropertyForecastHistoryVarianceX())", "<", "abs(Object.Behavior::PropertyForecastHistoryVarianceY())" ] } ], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyForecastHistoryLinearA" }, "parameters": [ "Object", "Behavior", "=", "Object.Behavior::PropertyForecastHistoryCovariance() / Object.Behavior::PropertyForecastHistoryVarianceY()" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyForecastHistoryLinearB" }, "parameters": [ "Object", "Behavior", "=", "Object.Behavior::PropertyForecastHistoryMeanX() - Object.Behavior::PropertyForecastHistoryLinearA() * Object.Behavior::PropertyForecastHistoryMeanY()" ] } ], "events": [ { "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "DebuggerTools::ConsoleLog" }, "parameters": [ "\"Linear: \" + ToString(Object.Behavior::PropertyForecastHistoryLinearA()) + \" \" + ToString(Object.Behavior::PropertyForecastHistoryLinearB())", "\"info\"", "\"SmoothCamera\"" ] } ] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Projection", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::ProjectHistoryEnds" }, "parameters": [ "Object", "Behavior", "Object.Variable(__SmoothCamera.ForecastHistoryY[0])", "Object.Variable(__SmoothCamera.ForecastHistoryX[0])", "Object.Variable(__SmoothCamera.ForecastHistoryY[Object.VariableChildCount(__SmoothCamera.ForecastHistoryY) - 1])", "Object.Variable(__SmoothCamera.ForecastHistoryX[Object.VariableChildCount(__SmoothCamera.ForecastHistoryX) - 1])", "" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Permute back axis" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyIndex" }, "parameters": [ "Object", "Behavior", "=", "Object.Behavior::PropertyProjectedOldestX()" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyProjectedOldestX" }, "parameters": [ "Object", "Behavior", "=", "Object.Behavior::PropertyProjectedOldestY()" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyProjectedOldestY" }, "parameters": [ "Object", "Behavior", "=", "Object.Behavior::PropertyIndex()" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyIndex" }, "parameters": [ "Object", "Behavior", "=", "Object.Behavior::PropertyProjectedNewestX()" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyProjectedNewestX" }, "parameters": [ "Object", "Behavior", "=", "Object.Behavior::PropertyProjectedNewestY()" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyProjectedNewestY" }, "parameters": [ "Object", "Behavior", "=", "Object.Behavior::PropertyIndex()" ] } ] } ], "parameters": [] }, { "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "DebuggerTools::ConsoleLog" }, "parameters": [ "\"Oldest: \" + ToString(Object.Behavior::PropertyProjectedOldestX()) + \" \" + ToString(Object.Behavior::PropertyProjectedOldestY())", "\"info\"", "\"SmoothCamera\"" ] } ] }, { "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "DebuggerTools::ConsoleLog" }, "parameters": [ "\"Newest: \" + ToString(Object.Behavior::PropertyProjectedNewestX()) + \" \" + ToString(Object.Behavior::PropertyProjectedNewestY())", "\"info\"", "\"SmoothCamera\"" ] } ] } ] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Forecasted position", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyForecastedX" }, "parameters": [ "Object", "Behavior", "=", "Object.Behavior::PropertyProjectedNewestX() + ( Object.Behavior::PropertyProjectedNewestX() - Object.Behavior::PropertyProjectedOldestX()) * Object.Behavior::ForecastTimeRatio()" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyForecastedY" }, "parameters": [ "Object", "Behavior", "=", "Object.Behavior::PropertyProjectedNewestY() + ( Object.Behavior::PropertyProjectedNewestY() - Object.Behavior::PropertyProjectedOldestY()) * Object.Behavior::ForecastTimeRatio()" ] } ] }, { "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "DebuggerTools::ConsoleLog" }, "parameters": [ "\"Forecasted: \" + ToString(Object.Behavior::PropertyForecastedX()) + \" \" + ToString(Object.Behavior::PropertyForecastedY())", "\"info\"", "\"SmoothCamera\"" ] } ] } ], "parameters": [] } ], "parameters": [] } ] } ], "parameters": [] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" } ], "objectGroups": [] }, { "description": "Project history ends position to have the vector on the line from linear regression. This function is only called by UpdateForecastedPosition.", "fullName": "Project history ends", "functionType": "Action", "group": "Private", "name": "ProjectHistoryEnds", "private": true, "sentence": "Project history oldest: _PARAM2_;_PARAM3_ and newest position: _PARAM4_;_PARAM5_ of _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Perpendicular line:\npA = -1/a; \npB = -pA * x + y\n\nIntersection:\n/ ProjectedY = a * ProjectedX + b\n\\ ProjectedY = pA * ProjectedX + b\n\nSolution that is cleaned out from indeterminism (like 0 / 0 or infinity / infinity):\nProjectedX= (x + (y - b) * a) / (a² + 1)\nProjectedY = y + (x * a - y + b) / (a² + 1)" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyProjectedNewestX" }, "parameters": [ "Object", "Behavior", "=", "(GetArgumentAsNumber(\"NewestX\") + (GetArgumentAsNumber(\"NewestY\") - Object.Behavior::PropertyForecastHistoryLinearB()) * Object.Behavior::PropertyForecastHistoryLinearA()) / (1 + pow(Object.Behavior::PropertyForecastHistoryLinearA(), 2))" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyProjectedNewestY" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"NewestY\") + (GetArgumentAsNumber(\"NewestX\") * Object.Behavior::PropertyForecastHistoryLinearA() - GetArgumentAsNumber(\"NewestY\") \n+ Object.Behavior::PropertyForecastHistoryLinearB()) / (1 + pow(Object.Behavior::PropertyForecastHistoryLinearA(), 2))" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyProjectedOldestX" }, "parameters": [ "Object", "Behavior", "=", "(GetArgumentAsNumber(\"OldestX\") + (GetArgumentAsNumber(\"OldestY\") - Object.Behavior::PropertyForecastHistoryLinearB()) * Object.Behavior::PropertyForecastHistoryLinearA()) / (1 + pow(Object.Behavior::PropertyForecastHistoryLinearA(), 2))" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetPropertyProjectedOldestY" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"OldestY\") + (GetArgumentAsNumber(\"OldestX\") * Object.Behavior::PropertyForecastHistoryLinearA() - GetArgumentAsNumber(\"OldestY\") \n+ Object.Behavior::PropertyForecastHistoryLinearB()) / (1 + pow(Object.Behavior::PropertyForecastHistoryLinearA(), 2))" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" }, { "description": "OldestX", "name": "OldestX", "type": "expression" }, { "description": "OldestY", "name": "OldestY", "type": "expression" }, { "description": "Newest X", "name": "NewestX", "type": "expression" }, { "description": "Newest Y", "name": "NewestY", "type": "expression" } ], "objectGroups": [] }, { "description": "Return the ratio between forecast time and the duration of the history. This function is only called by UpdateForecastedPosition.", "fullName": "Forecast time ratio", "functionType": "Expression", "group": "Private", "name": "ForecastTimeRatio", "private": true, "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "- Object.Behavior::PropertyForecastTime() / (Object.Variable(__SmoothCamera.ForecastHistoryTime[0]) - Object.Variable(__SmoothCamera.ForecastHistoryTime[Object.VariableChildCount(__SmoothCamera.ForecastHistoryTime) - 1]))" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothCamera", "type": "behavior" } ], "objectGroups": [] } ], "propertyDescriptors": [ { "value": "0.9", "type": "Number", "label": "Leftward catch-up speed (in ratio per second)", "description": "", "group": "Catch-up speed", "extraInformation": [], "hidden": false, "name": "LeftwardSpeed" }, { "value": "0.9", "type": "Number", "label": "Rightward catch-up speed (in ratio per second)", "description": "", "group": "Catch-up speed", "extraInformation": [], "hidden": false, "name": "RightwardSpeed" }, { "value": "0.9", "type": "Number", "label": "Upward catch-up speed (in ratio per second)", "description": "", "group": "Catch-up speed", "extraInformation": [], "hidden": false, "name": "UpwardSpeed" }, { "value": "0.9", "type": "Number", "label": "Downward catch-up speed (in ratio per second)", "description": "", "group": "Catch-up speed", "extraInformation": [], "hidden": false, "name": "DownwardSpeed" }, { "value": "true", "type": "Boolean", "label": "Follow on X axis", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "FollowOnX" }, { "value": "true", "type": "Boolean", "label": "Follow on Y axis", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "FollowOnY" }, { "value": "0", "type": "Number", "unit": "Pixel", "label": "Follow free area left border", "description": "", "group": "Position", "extraInformation": [], "hidden": false, "name": "FollowFreeAreaLeft" }, { "value": "0", "type": "Number", "unit": "Pixel", "label": "Follow free area right border", "description": "", "group": "Position", "extraInformation": [], "hidden": false, "name": "FollowFreeAreaRight" }, { "value": "0", "type": "Number", "unit": "Pixel", "label": "Follow free area top border", "description": "", "group": "Position", "extraInformation": [], "hidden": false, "name": "FollowFreeAreaTop" }, { "value": "0", "type": "Number", "unit": "Pixel", "label": "Follow free area bottom border", "description": "", "group": "Position", "extraInformation": [], "hidden": false, "name": "FollowFreeAreaBottom" }, { "value": "0", "type": "Number", "unit": "Pixel", "label": "Camera offset X", "description": "", "group": "Position", "extraInformation": [], "hidden": false, "name": "CameraOffsetX" }, { "value": "0", "type": "Number", "unit": "Pixel", "label": "Camera offset Y", "description": "", "group": "Position", "extraInformation": [], "hidden": false, "name": "CameraOffsetY" }, { "value": "0", "type": "Number", "unit": "Second", "label": "Camera delay", "description": "", "group": "Timing", "extraInformation": [], "hidden": false, "name": "CameraDelay" }, { "value": "0", "type": "Number", "unit": "Second", "label": "Forecast time", "description": "", "group": "Timing", "extraInformation": [], "hidden": false, "name": "ForecastTime" }, { "value": "0", "type": "Number", "unit": "Second", "label": "Forecast history duration", "description": "", "group": "Timing", "extraInformation": [], "hidden": false, "name": "ForecastHistoryDuration" }, { "value": "", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "LogLeftwardSpeed" }, { "value": "", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "LogRightwardSpeed" }, { "value": "", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "LogDownwardSpeed" }, { "value": "", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "LogUpwardSpeed" }, { "value": "", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "DelayedCenterX" }, { "value": "", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "DelayedCenterY" }, { "value": "", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "ForecastHistoryMeanX" }, { "value": "", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "ForecastHistoryMeanY" }, { "value": "", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "ForecastHistoryVarianceX" }, { "value": "", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "ForecastHistoryCovariance" }, { "value": "", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "ForecastHistoryLinearA" }, { "value": "", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "ForecastHistoryLinearB" }, { "value": "", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "ForecastedX" }, { "value": "", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "ForecastedY" }, { "value": "", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "ProjectedNewestX" }, { "value": "", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "ProjectedNewestY" }, { "value": "", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "ProjectedOldestX" }, { "value": "", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "ProjectedOldestY" }, { "value": "", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "ForecastHistoryVarianceY" }, { "value": "", "type": "Number", "label": "Index (local variable)", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "Index" }, { "value": "0", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "CameraDelayCatchUpSpeed" }, { "value": "", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "CameraExtraDelay" }, { "value": "", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "WaitingSpeedXMax" }, { "value": "", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "WaitingSpeedYMax" }, { "value": "", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "WaitingEnd" }, { "value": "", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "CameraDelayCatchUpDuration" }, { "value": "9000", "type": "Number", "unit": "PixelSpeed", "label": "Leftward maximum speed", "description": "", "group": "Maximum speed", "extraInformation": [], "hidden": false, "name": "LeftwardSpeedMax" }, { "value": "9000", "type": "Number", "unit": "PixelSpeed", "label": "Rightward maximum speed", "description": "", "group": "Maximum speed", "extraInformation": [], "hidden": false, "name": "RightwardSpeedMax" }, { "value": "9000", "type": "Number", "unit": "PixelSpeed", "label": "Upward maximum speed", "description": "", "group": "Maximum speed", "extraInformation": [], "hidden": false, "name": "UpwardSpeedMax" }, { "value": "9000", "type": "Number", "unit": "PixelSpeed", "label": "Downward maximum speed", "description": "", "group": "Maximum speed", "extraInformation": [], "hidden": false, "name": "DownwardSpeedMax" }, { "value": "", "type": "Number", "label": "OldX (local variable)", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "OldX" }, { "value": "", "type": "Number", "label": "OldY (local variable)", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "OldY" }, { "value": "", "type": "Boolean", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "IsCalledManually" } ], "sharedPropertyDescriptors": [] }, { "description": "Smoothly scroll to follow a character and stabilize the camera when jumping.", "fullName": "Smooth platformer camera", "name": "SmoothPlatformerCamera", "objectType": "", "eventsFunctions": [ { "fullName": "", "functionType": "Action", "name": "doStepPreEvents", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "PlatformBehavior::IsJumping" }, "parameters": [ "Object", "PlatformerCharacter" ] }, { "type": { "inverted": true, "value": "PlatformBehavior::IsFalling" }, "parameters": [ "Object", "PlatformerCharacter" ] } ], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetFollowFreeAreaBottom" }, "parameters": [ "Object", "SmoothCamera", "Object.Behavior::PropertyFloorFollowFreeAreaTop()", "" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetFollowFreeAreaTop" }, "parameters": [ "Object", "SmoothCamera", "Object.Behavior::PropertyFloorFollowFreeAreaBottom()", "" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetUpwardSpeed" }, "parameters": [ "Object", "SmoothCamera", "Object.Behavior::PropertyFloorUpwardSpeed()", "" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetDownwardSpeed" }, "parameters": [ "Object", "SmoothCamera", "Object.Behavior::PropertyFloorDownwardSpeed()", "" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetUpwardSpeedMax" }, "parameters": [ "Object", "SmoothCamera", "Object.Behavior::PropertyFloorUpwardSpeedMax()", "" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetDownwardSpeedMax" }, "parameters": [ "Object", "SmoothCamera", "Object.Behavior::PropertyFloorDownwardSpeedMax()", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "PlatformBehavior::IsJumping" }, "parameters": [ "Object", "PlatformerCharacter" ] }, { "type": { "value": "PlatformBehavior::IsFalling" }, "parameters": [ "Object", "PlatformerCharacter" ] } ] } ], "actions": [ { "type": { "value": "SmoothCamera::SmoothCamera::SetFollowFreeAreaBottom" }, "parameters": [ "Object", "SmoothCamera", "Object.Behavior::PropertyAirFollowFreeAreaTop()", "" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetFollowFreeAreaTop" }, "parameters": [ "Object", "SmoothCamera", "Object.Behavior::PropertyAirFollowFreeAreaBottom()", "" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetUpwardSpeed" }, "parameters": [ "Object", "SmoothCamera", "Object.Behavior::PropertyAirUpwardSpeed()", "" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetDownwardSpeed" }, "parameters": [ "Object", "SmoothCamera", "Object.Behavior::PropertyAirDownwardSpeed()", "" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetUpwardSpeedMax" }, "parameters": [ "Object", "SmoothCamera", "Object.Behavior::PropertyAirUpwardSpeedMax()", "" ] }, { "type": { "value": "SmoothCamera::SmoothCamera::SetDownwardSpeedMax" }, "parameters": [ "Object", "SmoothCamera", "Object.Behavior::PropertyAirDownwardSpeedMax()", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SmoothCamera::SmoothPlatformerCamera", "type": "behavior" } ], "objectGroups": [] } ], "propertyDescriptors": [ { "value": "", "type": "Behavior", "label": "Platformer character behavior", "description": "", "group": "", "extraInformation": [ "PlatformBehavior::PlatformerObjectBehavior" ], "hidden": false, "name": "PlatformerCharacter" }, { "value": "", "type": "Behavior", "label": "Smooth camera behavior", "description": "", "group": "", "extraInformation": [ "SmoothCamera::SmoothCamera" ], "hidden": false, "name": "SmoothCamera" }, { "value": "", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "JumpOriginY" }, { "value": "0", "type": "Number", "unit": "Pixel", "label": "Follow free area top in the air", "description": "", "group": "Position", "extraInformation": [], "hidden": false, "name": "AirFollowFreeAreaTop" }, { "value": "0", "type": "Number", "unit": "Pixel", "label": "Follow free area bottom in the air", "description": "", "group": "Position", "extraInformation": [], "hidden": false, "name": "AirFollowFreeAreaBottom" }, { "value": "0", "type": "Number", "unit": "Pixel", "label": "Follow free area top on the floor", "description": "", "group": "Position", "extraInformation": [], "hidden": false, "name": "FloorFollowFreeAreaTop" }, { "value": "0", "type": "Number", "unit": "Pixel", "label": "Follow free area bottom on the floor", "description": "", "group": "Position", "extraInformation": [], "hidden": false, "name": "FloorFollowFreeAreaBottom" }, { "value": "0.95", "type": "Number", "label": "Upward speed in the air (in ratio per second)", "description": "", "group": "Catch-up speed", "extraInformation": [], "hidden": false, "name": "AirUpwardSpeed" }, { "value": "0.95", "type": "Number", "label": "Downward speed in the air (in ratio per second)", "description": "", "group": "Catch-up speed", "extraInformation": [], "hidden": false, "name": "AirDownwardSpeed" }, { "value": "0.9", "type": "Number", "label": "Upward speed on the floor (in ratio per second)", "description": "", "group": "Catch-up speed", "extraInformation": [], "hidden": false, "name": "FloorUpwardSpeed" }, { "value": "0.9", "type": "Number", "label": "Downward speed on the floor (in ratio per second)", "description": "", "group": "Catch-up speed", "extraInformation": [], "hidden": false, "name": "FloorDownwardSpeed" }, { "value": "9000", "type": "Number", "unit": "PixelSpeed", "label": "Upward maximum speed in the air", "description": "", "group": "Maximum speed", "extraInformation": [], "hidden": false, "name": "AirUpwardSpeedMax" }, { "value": "9000", "type": "Number", "unit": "PixelSpeed", "label": "Downward maximum speed in the air", "description": "", "group": "Maximum speed", "extraInformation": [], "hidden": false, "name": "AirDownwardSpeedMax" }, { "value": "9000", "type": "Number", "unit": "PixelSpeed", "label": "Upward maximum speed on the floor", "description": "", "group": "Maximum speed", "extraInformation": [], "hidden": false, "name": "FloorUpwardSpeedMax" }, { "value": "9000", "type": "Number", "unit": "PixelSpeed", "label": "Downward maximum speed on the floor", "description": "", "group": "Maximum speed", "extraInformation": [], "hidden": false, "name": "FloorDownwardSpeedMax" } ], "sharedPropertyDescriptors": [] } ], "eventsBasedObjects": [] }, { "author": "Elairyx, @Bouh", "category": "Game mechanic", "extensionNamespace": "", "fullName": "Checkpoints", "helpPath": "", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLWZsYWctdmFyaWFudCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik02LDNBMSwxIDAgMCwxIDcsNFY0Ljg4QzguMDYsNC40NCA5LjUsNCAxMSw0QzE0LDQgMTQsNiAxNiw2QzE5LDYgMjAsNCAyMCw0VjEyQzIwLDEyIDE5LDE0IDE2LDE0QzEzLDE0IDEzLDEyIDExLDEyQzgsMTIgNywxNCA3LDE0VjIxSDVWNEExLDEgMCAwLDEgNiwzWiIgLz48L3N2Zz4=", "name": "Checkpoints", "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/flag-variant.svg", "shortDescription": "Respawn objects at checkpoints.", "version": "1.0.1", "description": [ "This extension can save checkpoints and respawn objects at the last one.", "", "The platformer example uses this extension ([open the project online](https://editor.gdevelop.io/?project=example://platformer))\"." ], "origin": { "identifier": "Checkpoints", "name": "gdevelop-extension-store" }, "tags": [ "position", "checkpoint" ], "authorIds": [ "30b1QQoYi1gQQHzIjMlNY8aLyYV2", "2OwwM8ToR9dx9RJ2sAKTcrLmCB92" ], "dependencies": [], "eventsFunctions": [ { "description": "Update a checkpoint of an object.", "fullName": "Save checkpoint", "functionType": "Action", "name": "SaveCheckpoint", "sentence": "Save checkpoint _PARAM4_ of _PARAM1_ to _PARAM2_ (x-axis), _PARAM3_ (y-axis)", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "ToSaveObject", "__Checkpoints.Position[\"X\"+GetArgumentAsString(\"CheckpointName\")]", "=", "GetArgumentAsNumber(\"CoordinateX\")" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "ToSaveObject", "__Checkpoints.Position[\"Y\"+GetArgumentAsString(\"CheckpointName\")]", "=", "GetArgumentAsNumber(\"CoordinateY\")" ] } ] } ], "parameters": [ { "description": "Save checkpoint of object", "name": "ToSaveObject", "type": "objectList" }, { "description": "X position", "name": "CoordinateX", "type": "expression" }, { "description": "Y position", "name": "CoordinateY", "type": "expression" }, { "description": "Checkpoint name", "name": "CheckpointName", "supplementaryInformation": "objectCheckpoint", "type": "identifier" } ], "objectGroups": [] }, { "description": "Change the position of the object to the saved checkpoint.", "fullName": "Load checkpoint", "functionType": "Action", "name": "LoadCheckpoint", "sentence": "Move _PARAM2_ to checkpoint _PARAM3_ of _PARAM1_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "BuiltinCommonInstructions::And" }, "parameters": [], "subInstructions": [ { "type": { "value": "ObjectVariableChildExists" }, "parameters": [ "ToLoadObject", "__Checkpoints.Position", "\"X\" + GetArgumentAsString(\"CheckpointName\")" ] }, { "type": { "value": "ObjectVariableChildExists" }, "parameters": [ "ToLoadObject", "__Checkpoints.Position", "\"Y\" + GetArgumentAsString(\"CheckpointName\")" ] } ] }, { "type": { "value": "BuiltinCommonInstructions::And" }, "parameters": [], "subInstructions": [ { "type": { "value": "StrEqual" }, "parameters": [ "GetArgumentAsString(\"SetIgnoreUndefined\")", "!=", "\"true\"" ] }, { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "inverted": true, "value": "ObjectVariableChildExists" }, "parameters": [ "ToLoadObject", "__Checkpoints.Position", "\"Y\" + GetArgumentAsString(\"CheckpointName\")" ] }, { "type": { "inverted": true, "value": "ObjectVariableChildExists" }, "parameters": [ "ToLoadObject", "__Checkpoints.Position", "\"X\" + GetArgumentAsString(\"CheckpointName\")" ] } ] } ] } ] } ], "actions": [ { "type": { "value": "MettreXY" }, "parameters": [ "ToMoveObject", "=", "ToLoadObject.Variable(__Checkpoints.Position[\"X\" + GetArgumentAsString(\"CheckpointName\")])", "=", "ToLoadObject.Variable(__Checkpoints.Position[\"Y\" + GetArgumentAsString(\"CheckpointName\")])" ] } ] } ], "parameters": [ { "description": "Load checkpoint from object", "name": "ToLoadObject", "type": "objectList" }, { "description": "Change position of object", "name": "ToMoveObject", "type": "objectList" }, { "description": "Checkpoint name", "name": "CheckpointName", "supplementaryInformation": "objectCheckpoint", "type": "identifier" }, { "description": "Ignore (possibly) empty checkpoints", "longDescription": "Loading not yet saved checkpoints will (by default) set the position to the coordinate 0;0. Select \"yes\" to completely ignore non-existant checkpoints. To define an alternative checkpoint for it, create a new event and use the \"Checkpoint exists\" condition, save the wanted checkpoint as the action.", "name": "SetIgnoreUndefined", "supplementaryInformation": "[\"Set to 0\",\"Ignore\",\"Reset to initial position\"]", "type": "yesorno" } ], "objectGroups": [] }, { "description": "Check if a checkpoint has a position saved / does exist.", "fullName": "Checkpoint exists", "functionType": "Condition", "name": "CheckpointExist", "sentence": "Checkpoint _PARAM2_ of _PARAM1_ exists", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ObjectVariableChildExists" }, "parameters": [ "ToCheckObject", "__Checkpoints.Position", "\"Y\" + GetArgumentAsString(\"CheckpointName\")" ] }, { "type": { "value": "ObjectVariableChildExists" }, "parameters": [ "ToCheckObject", "__Checkpoints.Position", "\"X\" + GetArgumentAsString(\"CheckpointName\")" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "inverted": true, "value": "ObjectVariableChildExists" }, "parameters": [ "ToCheckObject", "__Checkpoints.Position", "\"X\" + GetArgumentAsString(\"CheckpointName\")" ] }, { "type": { "inverted": true, "value": "ObjectVariableChildExists" }, "parameters": [ "ToCheckObject", "__Checkpoints.Position", "\"Y\" + GetArgumentAsString(\"CheckpointName\")" ] } ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "False" ] } ] } ], "parameters": [ { "description": "Check checkpoint from object", "name": "ToCheckObject", "type": "objectList" }, { "description": "Checkpoint name", "name": "CheckpointName", "supplementaryInformation": "objectCheckpoint", "type": "identifier" } ], "objectGroups": [] } ], "eventsBasedBehaviors": [], "eventsBasedObjects": [] }, { "author": "Bouh", "category": "Input", "extensionNamespace": "", "fullName": "Gamepads (controllers)", "helpPath": "/all-features/gamepad", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLWdhbWVwYWQtdmFyaWFudC1vdXRsaW5lIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTYsOUg4VjExSDEwVjEzSDhWMTVINlYxM0g0VjExSDZWOU0xOC41LDlBMS41LDEuNSAwIDAsMSAyMCwxMC41QTEuNSwxLjUgMCAwLDEgMTguNSwxMkExLjUsMS41IDAgMCwxIDE3LDEwLjVBMS41LDEuNSAwIDAsMSAxOC41LDlNMTUuNSwxMkExLjUsMS41IDAgMCwxIDE3LDEzLjVBMS41LDEuNSAwIDAsMSAxNS41LDE1QTEuNSwxLjUgMCAwLDEgMTQsMTMuNUExLjUsMS41IDAgMCwxIDE1LjUsMTJNMTcsNUE3LDcgMCAwLDEgMjQsMTJBNyw3IDAgMCwxIDE3LDE5QzE1LjA0LDE5IDEzLjI3LDE4LjIgMTIsMTYuOUMxMC43MywxOC4yIDguOTYsMTkgNywxOUE3LDcgMCAwLDEgMCwxMkE3LDcgMCAwLDEgNyw1SDE3TTcsN0E1LDUgMCAwLDAgMiwxMkE1LDUgMCAwLDAgNywxN0M4LjY0LDE3IDEwLjA5LDE2LjIxIDExLDE1SDEzQzEzLjkxLDE2LjIxIDE1LjM2LDE3IDE3LDE3QTUsNSAwIDAsMCAyMiwxMkE1LDUgMCAwLDAgMTcsN0g3WiIgLz48L3N2Zz4=", "name": "Gamepads", "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/gamepad-variant-outline.svg", "shortDescription": "Add support for gamepads (or other controllers) to your game, giving access to information such as button presses, axis positions, trigger pressure, etc...", "version": "0.6.1", "description": [ "Add support for gamepads (or other controllers).", "", "It gives access to:", "- button presses", "- axis positions and force", "- trigger pressure", "- configurable deadzone", "- vibration", "- automatic mappers for platformer characters and top-down movement", "", "The Bomberman-like example handles 4 players with gamepads ([open the project online](https://editor.gdevelop.io/?project=example://goose-bomberman))." ], "origin": { "identifier": "Gamepads", "name": "gdevelop-extension-store" }, "tags": [ "controllers", "gamepads", "joysticks", "axis", "xbox", "ps4", "platformer", "platform", "top-down" ], "authorIds": [ "2OwwM8ToR9dx9RJ2sAKTcrLmCB92", "taRwmWxwAFYFL9yyBwB3cwBw0BO2", "mnImQKdn8nQxwzkS5D6a1JB27V23" ], "dependencies": [], "eventsFunctions": [ { "description": "Get the value of the pressure on a gamepad trigger.", "fullName": "Pressure on a gamepad trigger", "functionType": "Expression", "name": "TriggerPressure", "sentence": "Player _PARAM1_ push axis _PARAM2_ to _PARAM3_", "events": [ { "type": "BuiltinCommonInstructions::JsCode", "inlineCode": [ "/** @type {Gamepad[]} */\r", "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", "\r", "//Get function parameters\r", "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", "const trigger = eventsFunctionContext.getArgument(\"trigger\").toUpperCase();\r", "\r", "if (playerId < 0 || playerId > 4) {\r", " console.error('Parameter gamepad identifier in expression: \"Pressure on a gamepad trigger\", is not valid number, must be between 0 and 4.');\r", " return;\r", "}\r", "if (trigger != \"LT\" && trigger != \"RT\" && trigger != \"L2\" && trigger != \"R2\") {\r", " console.error('Parameter trigger is not valid in expression: \"Pressure on a gamepad trigger\"');\r", " return;\r", "}\r", "\r", "const gamepad = gamepads[playerId];\r", "\r", "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", "if (gamepad == null) return;\r", "\r", "switch (trigger) {\r", " case 'LT':\r", " case 'L2':\r", " eventsFunctionContext.returnValue = gamepad.buttons[6].value;\r", " break;\r", "\r", " case 'RT':\r", " case 'R2':\r", " eventsFunctionContext.returnValue = gamepad.buttons[7].value;\r", " break;\r", "\r", " default:\r", " eventsFunctionContext.returnValue = -1;\r", " break;\r", "}" ], "parameterObjects": "", "useStrict": true, "eventsSheetExpanded": true } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "The gamepad identifier: 1, 2, 3 or 4", "name": "player_ID", "type": "expression" }, { "description": "Trigger button", "name": "trigger", "supplementaryInformation": "[\"LT\",\"RT\",\"L2\",\"R2\"]", "type": "stringWithSelector" } ], "objectGroups": [] }, { "description": "the force of gamepad stick (from 0 to 1).", "fullName": "Stick force", "functionType": "ExpressionAndCondition", "name": "StickForce", "sentence": "the gamepad _PARAM1_ _PARAM2_ stick force", "events": [ { "type": "BuiltinCommonInstructions::JsCode", "inlineCode": [ "/** @type {Gamepad[]} */\r", "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", "\r", "//Get function parameters\r", "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", "const stick = eventsFunctionContext.getArgument(\"stick\").toUpperCase();\r", "\r", "\r", "if (playerId < 0 || playerId > 4) {\r", " console.error('Parameter gamepad identifier is not valid in expression: \"Value of a stick force\"');\r", " return;\r", "}\r", "\r", "if (stick !== \"LEFT\" && stick !== \"RIGHT\") {\r", " console.error('Parameter stick is not valid in expression: \"Value of a stick force\"');\r", " return;\r", "}\r", "\r", "const gamepad = gamepads[playerId];\r", "\r", "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", "if (gamepad == null) return;\r", "\r", "\r", "switch (stick) {\r", " case 'LEFT':\r", " eventsFunctionContext.returnValue = gdjs.evtTools.common.clamp(Math.abs(gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[0], playerId)) + Math.abs(gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[1], playerId)), 0, 1);\r", " break;\r", "\r", " case 'RIGHT':\r", " eventsFunctionContext.returnValue = gdjs.evtTools.common.clamp(Math.abs(gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[2], playerId)) + Math.abs(gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[3], playerId)), 0, 1);\r", " break;\r", "\r", " default:\r", " eventsFunctionContext.returnValue = -1;\r", " break;\r", "}" ], "parameterObjects": "", "useStrict": true, "eventsSheetExpanded": true } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "The gamepad identifier: 1, 2, 3 or 4", "name": "player_ID", "type": "expression" }, { "description": "Stick: \"Left\" or \"Right\"", "name": "stick", "supplementaryInformation": "[\"Left\",\"Right\"]", "type": "stringWithSelector" } ], "objectGroups": [] }, { "description": "Get the rotation value of a gamepad stick.\nIf the deadzone value is high, the angle value is rounded to main axes, left, left, up, down.\nAn zero deadzone value give a total freedom on the angle value.", "fullName": "Value of a stick rotation (deprecated)", "functionType": "Expression", "name": "StickRotationValue", "private": true, "sentence": "Player _PARAM1_ push axis _PARAM2_ to _PARAM3_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Gamepads::StickAngle(GetArgumentAsNumber(\"player_ID\"), GetArgumentAsString(\"stick\"))" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "The gamepad identifier: 1, 2, 3 or 4", "name": "player_ID", "type": "expression" }, { "description": "Stick: \"Left\" or \"Right\"", "name": "stick", "supplementaryInformation": "[\"Left\",\"Right\"]", "type": "stringWithSelector" } ], "objectGroups": [] }, { "description": "Return the angle of a gamepad stick.\nIf the deadzone value is high, the angle value is rounded to main axes, left, left, up, down.\nAn zero deadzone value give a total freedom on the angle value.", "fullName": "Stick angle", "functionType": "Expression", "name": "StickAngle", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::JsCode", "inlineCode": [ "/** @type {Gamepad[]} */\r", "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", "\r", "//Get function parameters\r", "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", "const stick = eventsFunctionContext.getArgument(\"stick\").toUpperCase();\r", "\r", "\r", "if (playerId < 0 || playerId > 4) {\r", " console.error('Parameter gamepad identifier is not valid in expression: \"Value of a stick rotation\"');\r", " return;\r", "}\r", "if (stick !== \"LEFT\" && stick !== \"RIGHT\") {\r", " console.error('Parameter stick is not valid in expression: \"Value of a stick rotation\"');\r", " return;\r", "}\r", "const gamepad = gamepads[playerId];\r", "\r", "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", "if (gamepad == null) return;\r", "\r", "switch (stick) {\r", " case 'LEFT':\r", " eventsFunctionContext.returnValue = gdjs._extensionController.axisToAngle(gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[0], playerId), gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[1], playerId));\r", " break;\r", "\r", " case 'RIGHT':\r", " eventsFunctionContext.returnValue = gdjs._extensionController.axisToAngle(gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[2], playerId), gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[3], playerId));\r", " break;\r", "\r", " default:\r", " eventsFunctionContext.returnValue = -1;\r", " break;\r", "}" ], "parameterObjects": "", "useStrict": true, "eventsSheetExpanded": true } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "The gamepad identifier: 1, 2, 3 or 4", "name": "player_ID", "type": "expression" }, { "description": "Stick: \"Left\" or \"Right\"", "name": "stick", "supplementaryInformation": "[\"Left\",\"Right\"]", "type": "stringWithSelector" } ], "objectGroups": [] }, { "description": "Get the value of axis of a gamepad stick.", "fullName": "Value of a gamepad axis (deprecated)", "functionType": "Expression", "name": "AxisValue", "private": true, "sentence": "Player _PARAM1_ push axis _PARAM2_ to _PARAM3_", "events": [ { "type": "BuiltinCommonInstructions::JsCode", "inlineCode": [ "/** @type {Gamepad[]} */\r", "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", "\r", "//Get function parameters\r", "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", "const stick = eventsFunctionContext.getArgument(\"stick\").toUpperCase();\r", "const direction = eventsFunctionContext.getArgument(\"direction\").toUpperCase();\r", "\r", "if (playerId < 0 || playerId > 4) {\r", " console.error('Parameter gamepad identifier is not valid in expression: \"Value of a gamepad axis\"');\r", " return;\r", "}\r", "if (stick != \"LEFT\" && stick != \"RIGHT\") {\r", " console.error('Parameter stick is not valid in expression: \"Value of a gamepad axis\"');\r", " return;\r", "}\r", "if (direction != \"UP\" && direction != \"DOWN\" && direction != \"LEFT\" && direction != \"RIGHT\" && direction != \"HORIZONTAL\" && direction != \"VERTICAL\") {\r", " console.error('Parameter direction is not valid in expression: \"Value of a gamepad axis\"');\r", " return;\r", "}\r", "const gamepad = gamepads[playerId];\r", "\r", "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", "if (gamepad == null) return;\r", "\r", "let parameterError = false;\r", "switch (stick) {\r", " case 'LEFT':\r", " switch (direction) {\r", " case 'LEFT':\r", " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[0], playerId) < 0) {\r", " eventsFunctionContext.returnValue = -gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[0], playerId);\r", " }\r", " break;\r", "\r", " case 'RIGHT':\r", " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[0], playerId) > 0) {\r", " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[0], playerId);\r", " }\r", " break;\r", "\r", " case 'UP':\r", " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[1], playerId) < 0) {\r", " eventsFunctionContext.returnValue = -gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[1], playerId);\r", " }\r", " break;\r", "\r", " case 'DOWN':\r", " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[1], playerId) > 0) {\r", " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[1], playerId);\r", " }\r", " break;\r", "\r", " case \"HORIZONTAL\":\r", " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[0], playerId);\r", " break;\r", "\r", " case \"VERTICAL\":\r", " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[1], playerId);\r", " break;\r", "\r", " default:\r", " break;\r", " }\r", " break;\r", "\r", " case 'RIGHT':\r", " switch (direction) {\r", " case 'LEFT':\r", " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[2], playerId) < 0) {\r", " eventsFunctionContext.returnValue = -gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[2], playerId);\r", " }\r", " break;\r", "\r", " case 'RIGHT':\r", " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[2], playerId) > 0) {\r", " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[2], playerId);\r", " }\r", " break;\r", "\r", " case 'UP':\r", " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[3], playerId) < 0) {\r", " eventsFunctionContext.returnValue = -gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[3], playerId);\r", " }\r", " break;\r", "\r", " case 'DOWN':\r", " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[3], playerId) > 0) {\r", " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[3], playerId);\r", " }\r", " break;\r", "\r", " case \"HORIZONTAL\":\r", " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[2], playerId);\r", " break;\r", "\r", " case \"VERTICAL\":\r", " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[3], playerId);\r", " break;\r", "\r", " default:\r", " break;\r", " }\r", " break;\r", "\r", " default:\r", " break;\r", "}\r", "" ], "parameterObjects": "", "useStrict": true, "eventsSheetExpanded": true } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "The gamepad identifier: 1, 2, 3 or 4", "name": "player_ID", "type": "expression" }, { "description": "Stick: \"Left\" or \"Right\"", "name": "stick", "supplementaryInformation": "[\"Left\",\"Right\"]", "type": "stringWithSelector" }, { "description": "Direction", "name": "direction", "supplementaryInformation": "[\"Up\",\"Down\",\"Left\",\"Right\",\"Horizontal\",\"Vertical\"]", "type": "stringWithSelector" } ], "objectGroups": [] }, { "description": "Return the gamepad stick force on X axis (from -1 at the left to 1 at the right).", "fullName": "Stick X force", "functionType": "Expression", "name": "StickForceX", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::JsCode", "inlineCode": [ "/** @type {Gamepad[]} */\r", "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", "\r", "//Get function parameters\r", "const playerId = eventsFunctionContext.getArgument(\"Gamepad\") - 1;\r", "const stick = eventsFunctionContext.getArgument(\"Stick\").toLowerCase();\r", "\r", "if (playerId < 0 || playerId > 4) {\r", " console.error('Parameter gamepad identifier is not valid in expression: \"Value of a gamepad axis\"');\r", " return;\r", "}\r", "if (stick != \"left\" && stick != \"right\") {\r", " console.error('Parameter stick is not valid in expression: \"Value of a gamepad axis\"');\r", " return;\r", "}\r", "const gamepad = gamepads[playerId];\r", "\r", "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", "if (gamepad == null) return;\r", "\r", "const axisIndex = stick === 'right' ? 2 : 0;\r", "eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[axisIndex], playerId);\r", "" ], "parameterObjects": "", "useStrict": true, "eventsSheetExpanded": true } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "The gamepad identifier: 1, 2, 3 or 4", "name": "Gamepad", "type": "expression" }, { "description": "Stick: \"Left\" or \"Right\"", "name": "Stick", "supplementaryInformation": "[\"Left\",\"Right\"]", "type": "stringWithSelector" } ], "objectGroups": [] }, { "description": "Return the gamepad stick force on Y axis (from -1 at the top to 1 at the bottom).", "fullName": "Stick Y force", "functionType": "Expression", "name": "StickForceY", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::JsCode", "inlineCode": [ "/** @type {Gamepad[]} */\r", "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", "\r", "//Get function parameters\r", "const playerId = eventsFunctionContext.getArgument(\"Gamepad\") - 1;\r", "const stick = eventsFunctionContext.getArgument(\"Stick\").toLowerCase();\r", "\r", "if (playerId < 0 || playerId > 4) {\r", " console.error('Parameter gamepad identifier is not valid in expression: \"Value of a gamepad axis\"');\r", " return;\r", "}\r", "if (stick != \"left\" && stick != \"right\") {\r", " console.error('Parameter stick is not valid in expression: \"Value of a gamepad axis\"');\r", " return;\r", "}\r", "const gamepad = gamepads[playerId];\r", "\r", "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", "if (gamepad == null) return;\r", "\r", "const axisIndex = stick === 'right' ? 3 : 1;\r", "eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[axisIndex], playerId);\r", "" ], "parameterObjects": "", "useStrict": true, "eventsSheetExpanded": true } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "The gamepad identifier: 1, 2, 3 or 4", "name": "Gamepad", "type": "expression" }, { "description": "Stick: \"Left\" or \"Right\"", "name": "Stick", "supplementaryInformation": "[\"Left\",\"Right\"]", "type": "stringWithSelector" } ], "objectGroups": [] }, { "description": "Test if a button is released on a gamepad. Buttons can be:\n* Xbox: \"A\", \"B\", \"X\", \"Y\", \"LB\", \"RB\", \"LT\", \"RT\", \"BACK\", \"START\",\n* PS4: \"CROSS\", \"SQUARE\", \"CIRCLE\", \"TRIANGLE\", \"L1\", \"L2\", \"R1\", \"R2\", \"SHARE\", \"OPTIONS\", \"PS_BUTTON\", \"CLICK_TOUCHPAD\",\n* Other: \"UP\", \"DOWN\", \"LEFT\", \"RIGHT\", \"CLICK_STICK_LEFT\", \"CLICK_STICK_RIGHT\".", "fullName": "Gamepad button released", "functionType": "Condition", "name": "C_Button_released", "sentence": "Button _PARAM2_ of gamepad _PARAM1_ is released", "events": [ { "type": "BuiltinCommonInstructions::JsCode", "inlineCode": [ "/** @type {Gamepad[]} */\r", "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", "\r", "//Get function parameters\r", "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", "const button = eventsFunctionContext.getArgument(\"button\").toUpperCase();\r", "\r", "if (playerId < 0 || playerId > 4) {\r", " console.error('Parameter gamepad identifier in condition: \"Gamepad button released\", is not valid number, must be between 0 and 4.');\r", " return;\r", "}\r", "if (button === \"\") {\r", " console.error('Parameter button is not valid in condition: \"Gamepad button released\"');\r", " return;\r", "}\r", "\r", "const gamepad = gamepads[playerId];\r", "\r", "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", "if (gamepad == null) return;\r", "\r", "let buttonId;\r", "\r", "switch (button) {\r", " case 'A':\r", " case 'CROSS':\r", " buttonId = 0;\r", " break;\r", " case 'B':\r", " case 'CIRCLE':\r", " buttonId = 1;\r", " break;\r", " case 'X':\r", " case 'SQUARE':\r", " buttonId = 2;\r", " break;\r", " case 'Y':\r", " case 'TRIANGLE':\r", " buttonId = 3;\r", " break;\r", " case 'LB':\r", " case 'L1':\r", " buttonId = 4;\r", " break;\r", " case 'RB':\r", " case 'R1':\r", " buttonId = 5;\r", " break;\r", " case 'LT':\r", " case 'L2':\r", " buttonId = 6;\r", " break;\r", " case 'RT':\r", " case 'R2':\r", " buttonId = 7;\r", " break;\r", "\r", " case 'UP':\r", " buttonId = 12;\r", " break;\r", " case 'DOWN':\r", " buttonId = 13;\r", " break;\r", " case 'LEFT':\r", " buttonId = 14;\r", " break;\r", " case 'RIGHT':\r", " buttonId = 15;\r", " break;\r", "\r", " case 'BACK':\r", " case 'SHARE':\r", " buttonId = 8;\r", " break;\r", " case 'START':\r", " case 'OPTIONS':\r", " buttonId = 9;\r", " break;\r", "\r", " case 'CLICK_STICK_LEFT':\r", " buttonId = 10;\r", " break;\r", " case 'CLICK_STICK_RIGHT':\r", " buttonId = 11;\r", " break;\r", "\r", " //PS4\r", " case 'PS_BUTTON':\r", " buttonId = 16;\r", " break;\r", " case 'CLICK_TOUCHPAD':\r", " buttonId = 17;\r", " break;\r", "\r", " default:\r", " console.error('The button: ' + button + ' in condition: \"Gamepad button released\" is not valid.');\r", " break;\r", "}\r", "\r", "if (buttonId === undefined) {\r", " console.error('There is no buttons valid in condition: \"Gamepad button released\"');\r", " eventsFunctionContext.returnValue = false;\r", " return;\r", "}\r", "\r", "if (gamepad.buttons == null || gamepad.buttons[buttonId] == null) {\r", " console.error('Buttons on the gamepad are not accessible in condition: \"Gamepad button released\"');\r", " eventsFunctionContext.returnValue = false;\r", " return;\r", "}\r", "\r", "//Define default value on pressed button or use previous value\r", "gdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId] = gdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId] || { pressed: false };\r", "\r", "//Get state of button at previous frame\r", "const previousStateButton = gdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId].pressed;\r", "\r", "//When previousStateButton is true and actual button state is not pressed\r", "//Player have release the button\r", "if (previousStateButton === true && gamepad.buttons[buttonId].pressed === false) {\r", " // Save the last button used for the player \r", " gdjs._extensionController.players[playerId].lastButtonUsed = buttonId;\r", " gdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId].pressed = true;\r", " eventsFunctionContext.returnValue = true;\r", "\r", "} else {\r", " gdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId].pressed = false;\r", " eventsFunctionContext.returnValue = false;\r", "}\r", "" ], "parameterObjects": "", "useStrict": true, "eventsSheetExpanded": true } ], "parameters": [ { "description": "The gamepad identifier: 1, 2, 3 or 4", "name": "player_ID", "type": "expression" }, { "description": "Name of the button", "name": "button", "supplementaryInformation": "[\"A\",\"Cross\",\"B\",\"Circle\",\"X\",\"Square\",\"Y\",\"Triangle\",\"LB\",\"L1\",\"RB\",\"R1\",\"LT\",\"L2\",\"RT\",\"R2\",\"Up\",\"Down\",\"Left\",\"Right\",\"Back\",\"Share\",\"Start\",\"Options\",\"Click_Stick_Left\",\"Click_Stick_Right\",\"PS_Button\",\"Click_Touchpad\"]", "type": "stringWithSelector" } ], "objectGroups": [] }, { "description": "Return the index of the last pressed button of a gamepad.", "fullName": "Last pressed button (id)", "functionType": "Expression", "name": "LastButtonID", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::JsCode", "inlineCode": [ "//Get function parameter\r", "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", "\r", "//Player id is not valid\r", "if (playerId < 0 || playerId > 4) {\r", " console.error('Parameter gamepad identifier in expression: \"Last pressed button (id)\", is not valid number, must be between 0 and 4.');\r", " return;\r", "}\r", "\r", "//Return the last button used by the player\r", "eventsFunctionContext.returnValue = gdjs._extensionController.players[playerId].lastButtonUsed;" ], "parameterObjects": "", "useStrict": true, "eventsSheetExpanded": true } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "The gamepad identifier: 1, 2, 3 or 4", "name": "player_ID", "type": "expression" } ], "objectGroups": [] }, { "description": "Check if any button is pressed on a gamepad.", "fullName": "Any gamepad button pressed", "functionType": "Condition", "name": "C_Any_Button_pressed", "sentence": "Any button of gamepad _PARAM1_ is pressed", "events": [ { "type": "BuiltinCommonInstructions::JsCode", "inlineCode": [ "/** @type {Gamepad[]} */\r", "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", "\r", "//Get function parameter\r", "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", "\r", "if (playerId < 0 || playerId > 4) {\r", " console.error('Parameter gamepad identifier in condition: \"Any gamepad button pressed\", is not valid number, must be between 0 and 4.');\r", " return;\r", "}\r", "const gamepad = gamepads[playerId];\r", "\r", "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", "if (gamepad == null) return;\r", "\r", "let buttonId;\r", "for (let i = 0; i < gamepad.buttons.length; i++) { //For each buttons\r", " if (gamepad.buttons[i].pressed) { //One of them is pressed\r", " buttonId = i; //Save the button pressed\r", " break;\r", " }\r", "}\r", "\r", "if (buttonId === undefined) {\r", " // No buttons are pressed.\r", " eventsFunctionContext.returnValue = false;\r", " return;\r", "}\r", "\r", "if (gamepad.buttons == null || gamepad.buttons[buttonId] == null) {\r", " console.error('Buttons on the gamepad are not accessible in condition: \"Any gamepad button pressed\"');\r", " eventsFunctionContext.returnValue = false;\r", " return;\r", "}\r", "\r", "//When a button is pressed, save the button in lastButtonUsed for each players\r", "if (gamepad.buttons[buttonId].pressed) gdjs._extensionController.players[playerId].lastButtonUsed = buttonId;\r", "eventsFunctionContext.returnValue = gamepad.buttons[buttonId].pressed;\r", "\r", "\r", "" ], "parameterObjects": "", "useStrict": true, "eventsSheetExpanded": true } ], "parameters": [ { "description": "The gamepad identifier: 1, 2, 3 or 4", "name": "player_ID", "type": "expression" } ], "objectGroups": [] }, { "description": "Return the last button pressed. \nButtons for Xbox and PS4 can be:\n* Xbox: \"A\", \"B\", \"X\", \"Y\", \"LB\", \"RB\", \"LT\", \"RT\", \"BACK\", \"START\",\n* PS4: \"CROSS\", \"SQUARE\", \"CIRCLE\", \"TRIANGLE\", \"L1\", \"L2\", \"R1\", \"R2\", \"SHARE\", \"OPTIONS\", \"PS_BUTTON\", \"CLICK_TOUCHPAD\",\n* Both: \"UP\", \"DOWN\", \"LEFT\", \"RIGHT\", \"CLICK_STICK_LEFT\", \"CLICK_STICK_RIGHT\".", "fullName": "Last pressed button (string)", "functionType": "StringExpression", "name": "LastButtonString", "sentence": "Button _PARAM2_ of gamepad _PARAM1_ is pressed", "events": [ { "type": "BuiltinCommonInstructions::JsCode", "inlineCode": [ "/** @type {Gamepad[]} */\r", "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", "\r", "//Get function parameters\r", "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", "const controllerType = eventsFunctionContext.getArgument(\"controller_type\").toUpperCase();\r", "\r", "if (playerId < 0 || playerId > 4) {\r", " console.error('Parameter gamepad identifier in string expression: \"Last pressed button (LastButtonString)\", is not valid number, must be between 0 and 4.');\r", " return;\r", "}\r", "if (controllerType === \"\") {\r", " console.error('Parameter controller type is not valid in string expression: \"Last pressed button (LastButtonString)\"');\r", " return;\r", "}\r", "\r", "const gamepad = gamepads[playerId];\r", "\r", "if (gamepad !== null) { //Gamepad exist\r", " //Get last btn id\r", " const lastButtonUsedID = gdjs._extensionController.players[playerId].lastButtonUsed;\r", "\r", " //Return last button as string \r", " eventsFunctionContext.returnValue = gdjs._extensionController.getInputString(controllerType, lastButtonUsedID);\r", "\r", "} else { //Gamepad dosen't exist\r", " console.error('Your controller is not supported or the gamepad wasn\\'t detected in string expression: \"Last pressed button (LastButtonString)\"');\r", " eventsFunctionContext.returnValue = \"Gamepad not connected\";\r", "}" ], "parameterObjects": "", "useStrict": true, "eventsSheetExpanded": true } ], "expressionType": { "type": "string" }, "parameters": [ { "description": "The gamepad identifier: 1, 2, 3 or 4", "name": "player_ID", "type": "expression" }, { "description": "Controller type", "name": "controller_type", "supplementaryInformation": "[\"Xbox\",\"PS4\"]", "type": "stringWithSelector" } ], "objectGroups": [] }, { "description": "Return the number of gamepads.", "fullName": "Gamepad count", "functionType": "Expression", "name": "GamepadCount", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::JsCode", "inlineCode": [ "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", "\r", "//Get the last activated controller\r", "const controllerId = gdjs._extensionController.lastActiveController;\r", "\r", "// Check if controller is active\r", "const gamepad = gamepads[controllerId];\r", "if (gamepad == null) {\r", " eventsFunctionContext.returnValue = 0;\r", "} else {\r", " // Return active controller id\r", " eventsFunctionContext.returnValue = controllerId + 1;\r", "}\r", "" ], "parameterObjects": "", "useStrict": true, "eventsSheetExpanded": true } ], "expressionType": { "type": "expression" }, "parameters": [], "objectGroups": [] }, { "description": "Check if a button is pressed on a gamepad. \nButtons can be:\n* Xbox: \"A\", \"B\", \"X\", \"Y\", \"LB\", \"RB\", \"LT\", \"RT\", \"BACK\", \"START\",\n* PS4: \"CROSS\", \"SQUARE\", \"CIRCLE\", \"TRIANGLE\", \"L1\", \"L2\", \"R1\", \"R2\", \"SHARE\", \"OPTIONS\", \"PS_BUTTON\", \"CLICK_TOUCHPAD\",\n* Other: \"UP\", \"DOWN\", \"LEFT\", \"RIGHT\", \"CLICK_STICK_LEFT\", \"CLICK_STICK_RIGHT\".", "fullName": "Gamepad button pressed", "functionType": "Condition", "name": "C_Button_pressed", "sentence": "Button _PARAM2_ of gamepad _PARAM1_ is pressed", "events": [ { "type": "BuiltinCommonInstructions::JsCode", "inlineCode": [ "/** @type {Gamepad[]} */\r", "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", "\r", "//Get function parameters\r", "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", "const button = eventsFunctionContext.getArgument(\"button\").toUpperCase();\r", "\r", "if (playerId < 0 || playerId > 4) {\r", " console.error('Parameter gamepad identifier in condition: \"Gamepad button pressed\", is not valid number, must be between 0 and 4.');\r", " return;\r", "}\r", "if (button === \"\") {\r", " console.error('Parameter button is not valid in condition: \"Gamepad button pressed\"');\r", " eventsFunctionContext.returnValue = false;\r", " return;\r", "}\r", "\r", "const gamepad = gamepads[playerId];\r", "\r", "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", "if (gamepad == null) return;\r", "\r", "let buttonId;\r", "\r", "switch (button) {\r", " case 'A':\r", " case 'CROSS':\r", " buttonId = 0;\r", " break;\r", " case 'B':\r", " case 'CIRCLE':\r", " buttonId = 1;\r", " break;\r", " case 'X':\r", " case 'SQUARE':\r", " buttonId = 2;\r", " break;\r", " case 'Y':\r", " case 'TRIANGLE':\r", " buttonId = 3;\r", " break;\r", " case 'LB':\r", " case 'L1':\r", " buttonId = 4;\r", " break;\r", " case 'RB':\r", " case 'R1':\r", " buttonId = 5;\r", " break;\r", " case 'LT':\r", " case 'L2':\r", " buttonId = 6;\r", " break;\r", " case 'RT':\r", " case 'R2':\r", " buttonId = 7;\r", " break;\r", "\r", " case 'UP':\r", " buttonId = 12;\r", " break;\r", " case 'DOWN':\r", " buttonId = 13;\r", " break;\r", " case 'LEFT':\r", " buttonId = 14;\r", " break;\r", " case 'RIGHT':\r", " buttonId = 15;\r", " break;\r", "\r", " case 'BACK':\r", " case 'SHARE':\r", " buttonId = 8;\r", " break;\r", " case 'START':\r", " case 'OPTIONS':\r", " buttonId = 9;\r", " break;\r", "\r", " case 'CLICK_STICK_LEFT':\r", " buttonId = 10;\r", " break;\r", " case 'CLICK_STICK_RIGHT':\r", " buttonId = 11;\r", " break;\r", "\r", " //PS4\r", " case 'PS_BUTTON':\r", " buttonId = 16;\r", " break;\r", " case 'CLICK_TOUCHPAD':\r", " buttonId = 17;\r", " break;\r", "\r", " default:\r", " console.error('The button: ' + button + ' in condition: \"Gamepad button pressed\" is not valid.');\r", " eventsFunctionContext.returnValue = false;\r", " break;\r", "}\r", "\r", "\r", "\r", "if (buttonId === undefined) {\r", " console.error('There is no buttons valid in condition: \"Gamepad button pressed\"');\r", " eventsFunctionContext.returnValue = false;\r", " return;\r", "}\r", "\r", "if (gamepad.buttons == null || gamepad.buttons[buttonId] == null) {\r", " console.error('Buttons on the gamepad are not accessible in condition: \"Gamepad button pressed\"');\r", " eventsFunctionContext.returnValue = false;\r", " return;\r", "}\r", "\r", "//When a button is pressed, save the button in lastButtonUsed for each players\r", "if (gamepad.buttons[buttonId].pressed) gdjs._extensionController.players[playerId].lastButtonUsed = buttonId;\r", "eventsFunctionContext.returnValue = gamepad.buttons[buttonId].pressed;\r", "\r", "\r", "\r", "" ], "parameterObjects": "", "useStrict": true, "eventsSheetExpanded": true } ], "parameters": [ { "description": "The gamepad identifier: 1, 2, 3 or 4", "name": "player_ID", "type": "expression" }, { "description": "Name of the button", "name": "button", "supplementaryInformation": "[\"A\",\"Cross\",\"B\",\"Circle\",\"X\",\"Square\",\"Y\",\"Triangle\",\"LB\",\"L1\",\"RB\",\"R1\",\"LT\",\"L2\",\"RT\",\"R2\",\"Up\",\"Down\",\"Left\",\"Right\",\"Back\",\"Share\",\"Start\",\"Options\",\"Click_Stick_Left\",\"Click_Stick_Right\",\"PS_Button\",\"Click_Touchpad\"]", "type": "stringWithSelector" } ], "objectGroups": [] }, { "description": "Return the value of the deadzone applied to a gamepad sticks, between 0 and 1.", "fullName": "Gamepad deadzone for sticks", "functionType": "Expression", "name": "Deadzone", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [] }, { "type": "BuiltinCommonInstructions::JsCode", "inlineCode": [ "//Get function parameter\r", "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", "\r", "if (playerId < 0 || playerId > 4) {\r", " console.error('Parameter gamepad identifier in expression: \"Gamepad deadzone for sticks\", is not valid number, must be between 0 and 4.');\r", " return;\r", "}\r", "///Return the deadzone value for a given player\r", "eventsFunctionContext.returnValue = gdjs._extensionController.players[playerId].deadzone;" ], "parameterObjects": "", "useStrict": true, "eventsSheetExpanded": true } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "The gamepad identifier: 1, 2, 3 or 4", "name": "player_ID", "type": "expression" } ], "objectGroups": [] }, { "description": "Set the deadzone for sticks of the gamepad. The deadzone is an area for which movement on sticks won't be taken into account (instead, the stick will be considered as not moved). Deadzone is between 0 and 1, and is by default 0.2.", "fullName": "Set gamepad deadzone for sticks", "functionType": "Action", "name": "A_Set_deadzone", "sentence": "Set deadzone for sticks on gamepad: _PARAM1_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::JsCode", "inlineCode": [ "//Get function parameter\r", "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", "const newDeadzone = eventsFunctionContext.getArgument(\"deadzone\");\r", "\r", "if (playerId < 0 || playerId > 4) {\r", " console.error('Parameter gamepad identifier in action: \"Set gamepad deadzone for sticks\", is not valid, must be between 0 and 4.');\r", " return;\r", "}\r", "\r", "// clamp the newDeadzone in range [0, 1].\r", "// https://github.com/4ian/GDevelop-extensions/pull/33#issuecomment-618224857\r", "gdjs._extensionController.players[playerId].deadzone = gdjs.evtTools.common.clamp(newDeadzone, 0, 1);\r", "" ], "parameterObjects": "", "useStrict": true, "eventsSheetExpanded": true } ], "parameters": [ { "description": "The gamepad identifier: 1, 2, 3 or 4", "name": "player_ID", "type": "expression" }, { "description": "Deadzone for sticks, 0.2 by default (0 to 1)", "name": "deadzone", "type": "expression" } ], "objectGroups": [] }, { "description": "Check if a stick of a gamepad is pushed in a given direction.", "fullName": "Gamepad stick pushed (axis)", "functionType": "Condition", "name": "C_Axis_pushed", "sentence": "_PARAM2_ stick of gamepad _PARAM1_ is pushed in direction _PARAM3_", "events": [ { "type": "BuiltinCommonInstructions::JsCode", "inlineCode": [ "/** @type {Gamepad[]} */\r", "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", "\r", "//Get function parameters\r", "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", "const stick = eventsFunctionContext.getArgument(\"stick\").toUpperCase();\r", "const direction = eventsFunctionContext.getArgument(\"direction\").toUpperCase();\r", "\r", "if (playerId < 0 || playerId > 4) {\r", " console.error('Parameter gamepad identifier in condition: \"Gamepad stick pushed (axis)\", is not valid number, must be between 0 and 4.');\r", " return;\r", "}\r", "if (stick != \"LEFT\" && stick != \"RIGHT\") {\r", " console.error('Parameter stick in condition: \"Gamepad stick pushed (axis)\", is not valid, must be LEFT or RIGHT');\r", " return;\r", "}\r", "if (direction != \"UP\" && direction != \"DOWN\" && direction != \"LEFT\" && direction != \"RIGHT\" && direction != \"ANY\") {\r", " console.error('Parameter deadzone in condition: \"Gamepad stick pushed (axis)\", is not valid, must be UP, DOWN, LEFT or RIGHT');\r", " return;\r", "}\r", "\r", "const gamepad = gamepads[playerId];\r", "\r", "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", "if (gamepad == null) {\r", " eventsFunctionContext.returnValue = false;\r", " return;\r", "}\r", "\r", "\r", "//Define in onFirstSceneLoaded function\r", "const getNormalizedAxisValue = gdjs._extensionController.getNormalizedAxisValue;\r", "\r", "switch (stick) {\r", " case 'LEFT':\r", " switch (direction) {\r", " case 'LEFT':\r", " if (getNormalizedAxisValue(gamepad.axes[0], playerId) < 0) {\r", " eventsFunctionContext.returnValue = true;\r", " return;\r", " }\r", " break;\r", "\r", " case 'RIGHT':\r", " if (getNormalizedAxisValue(gamepad.axes[0], playerId) > 0) {\r", " eventsFunctionContext.returnValue = true;\r", " return;\r", " }\r", " break;\r", "\r", " case 'UP':\r", " if (getNormalizedAxisValue(gamepad.axes[1], playerId) < 0) {\r", " eventsFunctionContext.returnValue = true;\r", " return;\r", " }\r", " break;\r", "\r", " case 'DOWN':\r", " if (getNormalizedAxisValue(gamepad.axes[1], playerId) > 0) {\r", " eventsFunctionContext.returnValue = true;\r", " return;\r", " }\r", " break;\r", "\r", " case 'ANY':\r", " if ( getNormalizedAxisValue(gamepad.axes[0], playerId) < 0\r", " || getNormalizedAxisValue(gamepad.axes[0], playerId) > 0\r", " || getNormalizedAxisValue(gamepad.axes[1], playerId) < 0 \r", " || getNormalizedAxisValue(gamepad.axes[1], playerId) > 0) {\r", " eventsFunctionContext.returnValue = true;\r", " return;\r", " }\r", " break;\r", "\r", " default:\r", " console.error('The value Direction on stick Left on the condition: \"Gamepad stick pushed (axis)\" is not valid.');\r", " eventsFunctionContext.returnValue = false;\r", " break;\r", " }\r", " break;\r", "\r", " case 'RIGHT':\r", " switch (direction) {\r", " case 'LEFT':\r", " if (getNormalizedAxisValue(gamepad.axes[2], playerId) < 0) {\r", " eventsFunctionContext.returnValue = true;\r", " return;\r", " }\r", " break;\r", "\r", " case 'RIGHT':\r", " if (getNormalizedAxisValue(gamepad.axes[2], playerId) > 0) {\r", " eventsFunctionContext.returnValue = true;\r", " return;\r", " }\r", " break;\r", "\r", " case 'UP':\r", " if (getNormalizedAxisValue(gamepad.axes[3], playerId) < 0) {\r", " eventsFunctionContext.returnValue = true;\r", " return;\r", " }\r", " break;\r", "\r", " case 'DOWN':\r", " if (getNormalizedAxisValue(gamepad.axes[3], playerId) > 0) {\r", " eventsFunctionContext.returnValue = true;\r", " return;\r", " }\r", " break;\r", "\r", " case 'ANY':\r", " if ( getNormalizedAxisValue(gamepad.axes[2], playerId) < 0\r", " || getNormalizedAxisValue(gamepad.axes[2], playerId) > 0\r", " || getNormalizedAxisValue(gamepad.axes[3], playerId) < 0 \r", " || getNormalizedAxisValue(gamepad.axes[3], playerId) > 0) {\r", " eventsFunctionContext.returnValue = true;\r", " return;\r", " }\r", " break;\r", "\r", " default:\r", " console.error('The value Direction on stick Right on the condition: \"Gamepad stick pushed (axis)\" is not valid.');\r", " eventsFunctionContext.returnValue = false;\r", " break;\r", " }\r", " break;\r", "\r", " default:\r", " console.error('The value Stick on the condition: \"Gamepad stick pushed (axis)\" is not valid.');\r", " eventsFunctionContext.returnValue = false;\r", " break;\r", "}\r", "\r", "eventsFunctionContext.returnValue = false;\r", "" ], "parameterObjects": "", "useStrict": true, "eventsSheetExpanded": true } ], "parameters": [ { "description": "The gamepad identifier: 1, 2, 3 or 4", "name": "player_ID", "type": "expression" }, { "description": "Stick: \"Left\" or \"Right\"", "name": "stick", "supplementaryInformation": "[\"Left\",\"Right\"]", "type": "stringWithSelector" }, { "description": "Direction", "name": "direction", "supplementaryInformation": "[\"Up\",\"Down\",\"Left\",\"Right\",\"Any\"]", "type": "stringWithSelector" } ], "objectGroups": [] }, { "description": "Return the number of connected gamepads.", "fullName": "Connected gamepads number", "functionType": "Expression", "name": "ConnectedGamepadsCount", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [] }, { "type": "BuiltinCommonInstructions::JsCode", "inlineCode": [ "/** @type {Gamepad[]} */\r", "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", "\r", "// Gamepads can be disconnected and become null, so we have to filter them.\r", "eventsFunctionContext.returnValue = Object.keys(gamepads).filter(key => !!gamepads[key]).length;\r", "" ], "parameterObjects": "", "useStrict": true, "eventsSheetExpanded": true } ], "expressionType": { "type": "expression" }, "parameters": [], "objectGroups": [] }, { "description": "Return a string containing informations about the specified gamepad.", "fullName": "Gamepad type", "functionType": "StringExpression", "name": "GamepadType", "sentence": "Player _PARAM1_ use _PARAM2_ controller", "events": [ { "type": "BuiltinCommonInstructions::JsCode", "inlineCode": [ "/** @type {Gamepad[]} */", "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);", "", "//Get function parameter", "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;", "", "if (playerId < 0 || playerId > 4) {", " console.error('Parameter gamepad identifier in string expression: \"Gamepad type\", is not valid number, must be between 0 and 4');", " return;", "}", "", "const gamepad = gamepads[playerId];", "", "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.", "if (gamepad == null) return;", "", "eventsFunctionContext.returnValue = (gamepad && gamepad.id) ? gamepad.id : \"No information for player \" + (playerId + 1)", "" ], "parameterObjects": "", "useStrict": true, "eventsSheetExpanded": true } ], "expressionType": { "type": "string" }, "parameters": [ { "description": "The gamepad identifier: 1, 2, 3 or 4", "name": "player_ID", "type": "expression" } ], "objectGroups": [] }, { "description": "Check if the specified gamepad has the specified information in its description. Useful to know if the gamepad is a Xbox or PS4 controller.", "fullName": "Gamepad type", "functionType": "Condition", "name": "C_Controller_type", "sentence": "Gamepad _PARAM1_ is a _PARAM2_ controller", "events": [ { "type": "BuiltinCommonInstructions::JsCode", "inlineCode": [ "/** @type {Gamepad[]} */", "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);", "", "//Get function parameters", "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;", "const controllerType = eventsFunctionContext.getArgument(\"controller_type\").toUpperCase();", "", "if (playerId < 0 || playerId > 4) {", " console.error('Parameter gamepad identifier in condition: \"Gamepad type\", is not valid number, must be between 0 and 4.');", " return;", "}", "if (controllerType === \"\") {", " console.error('Parameter type in condition: \"Gamepad type\", is not a string.');", " return;", "}", "", "const gamepad = gamepads[playerId];", "", "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.", "if (gamepad == null) return;", "", "", "if (controllerType == \"XBOX\") {", " eventsFunctionContext.returnValue = gdjs._extensionController.isXbox(gamepad);", "} else {", " eventsFunctionContext.returnValue = gamepad ? gamepad.id.toUpperCase().indexOf(controllerType) !== -1 : false;", "}" ], "parameterObjects": "", "useStrict": true, "eventsSheetExpanded": true } ], "parameters": [ { "description": "The gamepad identifier: 1, 2, 3 or 4", "name": "player_ID", "type": "expression" }, { "description": "Type: \"Xbox\", \"PS4\", \"Steam\" or \"PS3\" (among other)", "name": "controller_type", "type": "string" } ], "objectGroups": [] }, { "description": "Check if a gamepad is connected.", "fullName": "Gamepad connected", "functionType": "Condition", "name": "C_Controller_X_is_connected", "sentence": "Gamepad _PARAM1_ is plugged and connected", "events": [ { "type": "BuiltinCommonInstructions::JsCode", "inlineCode": [ "/** @type {Gamepad[]} */", "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);", "", "//Get function parameter", "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;", "", "if (playerId < 0 || playerId > 4) {", " console.error('Parameter gamepad identifier in condition: \"Gamepad connected\", is not valid number, must be between 0 and 4.');", " return;", "}", "", "// If gamepad was disconnected it will be null (so this will return false)", "// If gamepad was never connected it will be undefined (so this will return false)", "eventsFunctionContext.returnValue = !!gamepads[playerId];" ], "parameterObjects": "", "useStrict": true, "eventsSheetExpanded": true } ], "parameters": [ { "description": "The gamepad identifier: 1, 2, 3 or 4", "name": "player_ID", "type": "expression" } ], "objectGroups": [] }, { "description": "Generate a vibration on the specified controller. Might only work if the game is running in a recent web browser.", "fullName": "Gamepad vibration", "functionType": "Action", "name": "A_Vibrate_controller", "sentence": "Make gamepad _PARAM1_ vibrate for _PARAM2_ seconds", "events": [ { "type": "BuiltinCommonInstructions::JsCode", "inlineCode": [ "/** @type {Gamepad[]} */", "//Vibration work only on game in browser.", "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);", "", "//Get function parameters", "const playerId = eventsFunctionContext.getArgument(\"Player_ID\") - 1;", "const duration = eventsFunctionContext.getArgument(\"Duration\") || 1;", "", "if (playerId < 0 || playerId > 4) {", " console.error('Parameter gamepad identifier in action: \"Gamepad connected\", is not valid number, must be between 0 and 4.');", " return;", "}", "", "const gamepad = gamepads[playerId];", "", "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.", "if (gamepad == null) return;", "", "if (gamepad && gamepad.vibrationActuator) {", " gamepad.vibrationActuator.playEffect(\"dual-rumble\", {", " startDelay: 0,", " duration: duration * 1000,", " weakMagnitude: 1.0,", " strongMagnitude: 1.0", " });", "}" ], "parameterObjects": "", "useStrict": true, "eventsSheetExpanded": true } ], "parameters": [ { "description": "The gamepad identifier: 1, 2, 3 or 4", "name": "Player_ID", "type": "expression" }, { "description": "Time of the vibration, in seconds (optional, default value is 1)", "name": "Duration", "type": "expression" } ], "objectGroups": [] }, { "description": "Generate an advanced vibration on the specified controller. Incompatible with Firefox.", "fullName": "Advanced gamepad vibration", "functionType": "Action", "name": "A_Advanced_Vibration_Controller", "sentence": "Make gamepad _PARAM1_ vibrate for _PARAM2_ seconds with the vibration magnitude of _PARAM3_ and _PARAM4_", "events": [ { "type": "BuiltinCommonInstructions::JsCode", "inlineCode": [ "/** @type {Gamepad[]} */", "//Vibration work only on game in browser.", "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);", "", "//Get function parameters", "const playerId = eventsFunctionContext.getArgument(\"Player_ID\") - 1;", "const duration = eventsFunctionContext.getArgument(\"Duration\") || 1;", "const strongRumbleMagnitude = eventsFunctionContext.getArgument(\"StrongMagnitude\");", "const weakRumbleMagnitude = eventsFunctionContext.getArgument(\"WeakMagnitude\");", "", "if (playerId < 0 || playerId > 4) {", " console.error('Parameter gamepad identifier in action: \"Advanced gamepad vibration\", is not valid number, must be between 0 and 4.');", " return;", "}", "if (weakRumbleMagnitude < 0 || weakRumbleMagnitude > 1) {", " console.error('Parameter weakRumble identifier in action: \"Advanced gamepad vibration\", is not valid number, must be between 0 and 1.');", " return;", "}", "if (strongRumbleMagnitude < 0 || strongRumbleMagnitude > 1) {", " console.error('Parameter strongRumble identifier in action: \"Advanced gamepad vibration\", is not valid number, must be between 0 and 1.');", " return;", "}", "", "const gamepad = gamepads[playerId];", "", "//we need keep this condition because when use have not yet plug the controller we can't get the controller in the gamepad variable.", "if (gamepad == null) return;", "", "if (gamepad && gamepad.vibrationActuator) {", " gamepad.vibrationActuator.playEffect(\"dual-rumble\", {", " startDelay: 0,", " duration: duration * 1000,", " weakMagnitude: weakRumbleMagnitude,", " strongMagnitude: strongRumbleMagnitude", " });", "}", "", "gdjs._extensionController.players[playerId].rumble.duration = duration;", "gdjs._extensionController.players[playerId].rumble.elapsedTime = 0;", "gdjs._extensionController.players[playerId].rumble.weakMagnitude = weakRumbleMagnitude;", "gdjs._extensionController.players[playerId].rumble.strongMagnitude = strongRumbleMagnitude;" ], "parameterObjects": "", "useStrict": true, "eventsSheetExpanded": true } ], "parameters": [ { "description": "The gamepad identifier: 1, 2, 3 or 4", "name": "Player_ID", "type": "expression" }, { "description": "Time of the vibration, in seconds (optional, default value is 1)", "name": "Duration", "type": "expression" }, { "description": "Strong rumble magnitude (from 0 to 1)", "name": "StrongMagnitude", "type": "expression" }, { "description": "Weak rumble magnitude (from 0 to 1)", "name": "WeakMagnitude", "type": "expression" } ], "objectGroups": [] }, { "description": "Change a vibration on the specified controller. Incompatible with Firefox.", "fullName": "Change gamepad active vibration", "functionType": "Action", "name": "A_Change_Vibration_Magnitude", "sentence": "Change the vibration magnitude of _PARAM2_ & _PARAM3_ on gamepad _PARAM1_", "events": [ { "type": "BuiltinCommonInstructions::JsCode", "inlineCode": [ "/** @type {Gamepad[]} */", "//Vibration work only on game in browser.", "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);", "", "//Get function parameters", "const playerId = eventsFunctionContext.getArgument(\"Player_ID\") - 1;", "const elapsedTime = gdjs._extensionController.players[playerId].rumble.elapsedTime || 0;", "const originalDuration = gdjs._extensionController.players[playerId].rumble.duration || 1;", "const strongRumbleMagnitude = eventsFunctionContext.getArgument(\"StrongMagnitude\");", "const weakRumbleMagnitude = eventsFunctionContext.getArgument(\"WeakMagnitude\");", "", "", "if (playerId < 0 || playerId > 4) {", " console.error('Parameter gamepad identifier in action: \"Change gamepad active vibration\", is not valid number, must be between 0 and 4.');", " return;", "}", "if (weakRumbleMagnitude < 0 || weakRumbleMagnitude > 1) {", " console.error('Parameter weakRumble identifier in action: \"Change gamepad active vibration\", is not valid number, must be between 0 and 1.');", " return;", "}", "if (strongRumbleMagnitude < 0 || strongRumbleMagnitude > 1) {", " console.error('Parameter strongRumble identifier in action: \"Change gamepad active vibration\", is not valid number, must be between 0 and 1.');", " return;", "}", "", "const gamepad = gamepads[playerId];", "", "//we need keep this condition because when use have not yet plug the controller we can't get the controller in the gamepad variable.", "if (gamepad == null) return;", "", "if (originalDuration - elapsedTime <= 0) return;", "", "if (gamepad && gamepad.vibrationActuator) {", " gamepad.vibrationActuator.playEffect(\"dual-rumble\", {", " startDelay: 0,", " duration: 1000 * (originalDuration - elapsedTime),", " weakMagnitude: weakRumbleMagnitude,", " strongMagnitude: strongRumbleMagnitude", " });", "}", "", "gdjs._extensionController.players[playerId].rumble.weakMagnitude = weakRumbleMagnitude;", "gdjs._extensionController.players[playerId].rumble.strongMagnitude = strongRumbleMagnitude;" ], "parameterObjects": "", "useStrict": true, "eventsSheetExpanded": true } ], "parameters": [ { "description": "The gamepad identifier: 1, 2, 3 or 4", "name": "Player_ID", "type": "expression" }, { "description": "Strong rumble magnitude (from 0 to 1)", "name": "StrongMagnitude", "type": "expression" }, { "description": "Weak rumble magnitude (from 0 to 1)", "name": "WeakMagnitude", "type": "expression" } ], "objectGroups": [] }, { "fullName": "", "functionType": "Action", "name": "onFirstSceneLoaded", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [] }, { "type": "BuiltinCommonInstructions::JsCode", "inlineCode": [ "//Define an new private object javascript for the gamepad extension\r", "gdjs._extensionController = {\r", " players: {\r", " 0: { mapping: 'DEFAULT', lastButtonUsed: -1, deadzone: 0.2, previousFrameStateButtons: {}, rumble: {} },\r", " 1: { mapping: 'DEFAULT', lastButtonUsed: -1, deadzone: 0.2, previousFrameStateButtons: {}, rumble: {} },\r", " 2: { mapping: 'DEFAULT', lastButtonUsed: -1, deadzone: 0.2, previousFrameStateButtons: {}, rumble: {} },\r", " 3: { mapping: 'DEFAULT', lastButtonUsed: -1, deadzone: 0.2, previousFrameStateButtons: {}, rumble: {} },\r", " },\r", " lastActiveController: -1, // Last active controller\r", " controllerButtonNames: { //Map associating controller button ids to button names\r", " \"XBOX\": {\r", " 0: \"A\",\r", " 1: \"B\",\r", " 2: \"X\",\r", " 3: \"Y\",\r", " 4: \"LB\",\r", " 5: \"RB\",\r", " 6: \"LT\",\r", " 7: \"RT\",\r", " 8: \"BACK\",\r", " 9: \"START\",\r", " 10: \"CLICK_STICK_LEFT\",\r", " 11: \"CLICK_STICK_RIGHT\",\r", " 12: \"UP\",\r", " 13: \"DOWN\",\r", " 14: \"LEFT\",\r", " 15: \"RIGHT\",\r", " 16: \"NONE\",\r", " 17: \"NONE\"\r", " },\r", " \"PS4\": {\r", " 0: \"CROSS\",\r", " 1: \"CIRCLE\",\r", " 2: \"SQUARE\",\r", " 3: \"TRIANGLE\",\r", " 4: \"L1\",\r", " 5: \"R1\",\r", " 6: \"L2\",\r", " 7: \"R2\",\r", " 8: \"SHARE\",\r", " 9: \"OPTIONS\",\r", " 10: \"CLICK_STICK_LEFT\",\r", " 11: \"CLICK_STICK_RIGHT\",\r", " 12: \"UP\",\r", " 13: \"DOWN\",\r", " 14: \"LEFT\",\r", " 15: \"RIGHT\",\r", " 16: \"PS_BUTTON\",\r", " 17: \"CLICK_TOUCHPAD\"\r", " }\r", " }\r", "};\r", "\r", "gdjs._extensionController.getInputString = function (type, buttonId) {\r", " const controllerButtonNames = gdjs._extensionController.controllerButtonNames;\r", " if (controllerButtonNames[type] !== undefined) {\r", " return controllerButtonNames[type][buttonId];\r", " }\r", "\r", " return \"UNKNOWN_BUTTON\";\r", "}\r", "\r", "gdjs._extensionController.axisToAngle = function (deltaX, deltaY) {\r", " const rad = Math.atan2(deltaY, deltaX);\r", " const deg = rad * (180 / Math.PI);\r", " return deg;\r", "}\r", "\r", "gdjs._extensionController.isXbox = function (gamepad) {\r", " return (gamepad ? (\r", " gamepad.id.toUpperCase().indexOf(\"XBOX\") !== -1\r", " // \"XINPUT\" cannot be used to check if it is a xbox controller is just a generic\r", " // name reported in Firefox corresponding to the driver being used by the controller\r", " // https://gamefaqs.gamespot.com/boards/916373-pc/73341312?page=1\r", " ) : false);\r", "}\r", "\r", "//Returns the new value taking into account the dead zone for the player_ID given\r", "gdjs._extensionController.getNormalizedAxisValue = function (v, player_ID) {\r", " // gdjs._extensionController = gdjs._extensionController || { deadzone: 0.2 };\r", "\r", " // Anything smaller than this is assumed to be 0,0\r", " const DEADZONE = gdjs._extensionController.players[player_ID].deadzone;\r", "\r", " if (Math.abs(v) < DEADZONE) {\r", " // In the dead zone, set to 0\r", " v = 0;\r", "\r", " if (v == null) {\r", " return 0;\r", " } else {\r", " return v;\r", " }\r", "\r", " } else {\r", " // We're outside the dead zone, but we'd like to smooth\r", " // this value out so it still runs nicely between 0..1.\r", " // That is, we don't want it to jump suddenly from 0 to\r", " // DEADZONE.\r", "\r", " // Remap v from\r", " // DEADZONE..1 to 0..(1-DEADZONE)\r", " // or from\r", " // -1..-DEADZONE to -(1-DEADZONE)..0\r", "\r", " v = v - Math.sign(v) * DEADZONE;\r", "\r", " // Remap v from\r", " // 0..(1-DEADZONE) to 0..1\r", " // or from\r", " // -(1-DEADZONE)..0 to -1..0\r", "\r", " return v / (1 - DEADZONE);\r", " }\r", "};" ], "parameterObjects": "", "useStrict": true, "eventsSheetExpanded": true } ], "parameters": [], "objectGroups": [] }, { "fullName": "", "functionType": "Action", "name": "onScenePostEvents", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [] }, { "type": "BuiltinCommonInstructions::JsCode", "inlineCode": [ "//Each time a player press a button i save the last button pressed for the next frame", "/** @type {Gamepad[]} */", "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);", "", "//Get function parameter", "let countPlayers = Object.keys(gdjs._extensionController.players).length;", "", "//Repeat for each players", "for (let i = 0; i < countPlayers; i++) {", " let gamepad = gamepads[i]; // Get the gamepad of the player", "", " //We have to keep this condition because if the user hasn't plugged in his controller yet, we can't get the controller in the gamepad variable.", " if (gamepad == null) {", " continue;", " }", "", " for (let b = 0; b < Object.keys(gamepad.buttons).length; b++) { //For each buttons", " if (gamepad.buttons[b].pressed) { //One of them is pressed", " gdjs._extensionController.players[i].lastButtonUsed = b; //Save the button pressed", "", " //Save the state of the button for the next frame.", " gdjs._extensionController.players[i].previousFrameStateButtons[b] = { pressed: true };", "", " // Update Last Active Controller", " gdjs._extensionController.lastActiveController = i;", " } else {", " gdjs._extensionController.players[i].previousFrameStateButtons[b] = { pressed: false };", " }", " }", "", "", " gdjs._extensionController.players[i].rumble.elapsedTime += runtimeScene.getElapsedTime(runtimeScene) / 1000;", " if (", " gdjs._extensionController.players[i].rumble.duration - gdjs._extensionController.players[i].rumble.elapsedTime <= 0 &&", " (gdjs._extensionController.players[i].rumble.weakMagnitude || gdjs._extensionController.players[i].rumble.strongMagnitude)", " ) {", " gdjs._extensionController.players[i].rumble.weakMagnitude = 0;", " gdjs._extensionController.players[i].rumble.strongMagnitude = 0;", " }", "", "", "}", "" ], "parameterObjects": "", "useStrict": true, "eventsSheetExpanded": true } ], "parameters": [], "objectGroups": [] }, { "description": "Check if any button is released on a gamepad.", "fullName": "Any gamepad button released", "functionType": "Condition", "name": "C_any_button_released", "sentence": "Any button of gamepad _PARAM1_ is released", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [] }, { "type": "BuiltinCommonInstructions::JsCode", "inlineCode": [ "/** @type {Gamepad[]} */\r", "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", "\r", "//Get function parameters\r", "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", "\r", "if (playerId < 0 || playerId > 4) {\r", "\tconsole.error('Parameter gamepad identifier in condition: \"Any gamepad button released\", is not valid number, must be between 0 and 4.');\r", "\treturn;\r", "}\r", "\r", "const gamepad = gamepads[playerId];\r", "\r", "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", "if (gamepad == null) return;\r", "\r", "for (let buttonId = 0; buttonId < gamepad.buttons.length; buttonId++) { //For each buttons on current frame.\r", "\r", "\tif (buttonId === undefined) {\r", "\t\teventsFunctionContext.returnValue = false;\r", "\t\treturn;\r", "\t}\r", "\r", "\t//Get previous value or define value by default for the current button\r", "\tgdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId] = gdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId] || { pressed: false };\r", "\r", "\t//Get state of the button at previous frame\r", "\tconst previousStateButtonIsPressed = gdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId].pressed;\r", "\r", "\t//Get the state of the button on the current frame.\r", "\tconst currentFrameStateButtonIsPressed = gamepad.buttons[buttonId].pressed;\r", "\r", "\t//When previousStateButtonIsPressed is true and actual button state is not pressed\r", "\t//Player have release the button\r", "\tif (previousStateButtonIsPressed === true && currentFrameStateButtonIsPressed === false) {\r", "\t\tgdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId].pressed = true;\r", "\t\teventsFunctionContext.returnValue = true;\r", "\t\t//break;\r", "\t\treturn;\r", "\t} else {\r", "\t\t//The player didn't released the button yet, the previous frame state is still true\r", "\t\tgdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId].pressed = false;\r", "\t\teventsFunctionContext.returnValue = false;\r", "\t}\r", "\r", "\tif (currentFrameStateButtonIsPressed) gdjs._extensionController.players[playerId].lastButtonUsed = buttonId;\r", "}\r", "" ], "parameterObjects": "", "useStrict": true, "eventsSheetExpanded": true } ], "parameters": [ { "description": "The gamepad identifier: 1, 2, 3 or 4", "name": "player_ID", "type": "expression" } ], "objectGroups": [] }, { "description": "Return the strength of the weak vibration motor on the gamepad of a player.", "fullName": "Weak rumble magnitude", "functionType": "Expression", "name": "WeakVibrationMagnitude", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::JsCode", "inlineCode": [ "const playerId = eventsFunctionContext.getArgument(\"Player_ID\") - 1;\r", "eventsFunctionContext.returnValue = gdjs._extensionController.players[playerId].rumble.weakMagnitude;" ], "parameterObjects": "", "useStrict": true, "eventsSheetExpanded": false } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "The gamepad identifier: 1, 2, 3 or 4", "name": "Player_ID", "type": "expression" } ], "objectGroups": [] }, { "description": "Return the strength of the strong vibration motor on the gamepad of a player.", "fullName": "Strong rumble magnitude", "functionType": "Expression", "name": "StrongVibrationMagnitude", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::JsCode", "inlineCode": [ "const playerId = eventsFunctionContext.getArgument(\"Player_ID\") - 1;\r", "eventsFunctionContext.returnValue = gdjs._extensionController.players[playerId].rumble.strongMagnitude;" ], "parameterObjects": "", "useStrict": true, "eventsSheetExpanded": false } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "The gamepad identifier: 1, 2, 3 or 4", "name": "Player_ID", "type": "expression" } ], "objectGroups": [] } ], "eventsBasedBehaviors": [ { "description": "Control a platformer character with a gamepad.", "fullName": "Platformer gamepad mapper", "name": "PlatformerGamepadMapper", "objectType": "", "eventsFunctions": [ { "fullName": "", "functionType": "Action", "name": "doStepPreEvents", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::C_Controller_X_is_connected" }, "parameters": [ "", "Object.Behavior::PropertyGamepadIdentifier()", "" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::PlatformerGamepadMapper::PropertyUseArrows" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::C_Button_pressed" }, "parameters": [ "", "Object.Behavior::PropertyGamepadIdentifier()", "\"Left\"", "\"Left\"" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateLeftKey" }, "parameters": [ "Object", "PlatformerCharacter" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::C_Button_pressed" }, "parameters": [ "", "Object.Behavior::PropertyGamepadIdentifier()", "\"Right\"", "\"Left\"" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateRightKey" }, "parameters": [ "Object", "PlatformerCharacter" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::C_Button_pressed" }, "parameters": [ "", "Object.Behavior::PropertyGamepadIdentifier()", "\"Up\"", "\"Left\"" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateUpKey" }, "parameters": [ "Object", "PlatformerCharacter" ] }, { "type": { "value": "PlatformBehavior::SimulateLadderKey" }, "parameters": [ "Object", "PlatformerCharacter" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::C_Button_pressed" }, "parameters": [ "", "Object.Behavior::PropertyGamepadIdentifier()", "\"Down\"", "\"Left\"" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateDownKey" }, "parameters": [ "Object", "PlatformerCharacter" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::PlatformerGamepadMapper::PropertyUseLeftStick" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::C_Axis_pushed" }, "parameters": [ "", "Object.Behavior::PropertyGamepadIdentifier()", "\"Left\"", "\"Left\"", "" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateLeftKey" }, "parameters": [ "Object", "PlatformerCharacter" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::C_Axis_pushed" }, "parameters": [ "", "Object.Behavior::PropertyGamepadIdentifier()", "\"Left\"", "\"Right\"", "" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateRightKey" }, "parameters": [ "Object", "PlatformerCharacter" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::C_Axis_pushed" }, "parameters": [ "", "Object.Behavior::PropertyGamepadIdentifier()", "\"Left\"", "\"Up\"", "" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateUpKey" }, "parameters": [ "Object", "PlatformerCharacter" ] }, { "type": { "value": "PlatformBehavior::SimulateLadderKey" }, "parameters": [ "Object", "PlatformerCharacter" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::C_Axis_pushed" }, "parameters": [ "", "Object.Behavior::PropertyGamepadIdentifier()", "\"Left\"", "\"Down\"", "" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateDownKey" }, "parameters": [ "Object", "PlatformerCharacter" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::PlatformerGamepadMapper::PropertyUseRightStick" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::C_Axis_pushed" }, "parameters": [ "", "Object.Behavior::PropertyGamepadIdentifier()", "\"Right\"", "\"Left\"", "" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateLeftKey" }, "parameters": [ "Object", "PlatformerCharacter" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::C_Axis_pushed" }, "parameters": [ "", "Object.Behavior::PropertyGamepadIdentifier()", "\"Right\"", "\"Right\"", "" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateRightKey" }, "parameters": [ "Object", "PlatformerCharacter" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::C_Axis_pushed" }, "parameters": [ "", "Object.Behavior::PropertyGamepadIdentifier()", "\"Right\"", "\"Up\"", "" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateUpKey" }, "parameters": [ "Object", "PlatformerCharacter" ] }, { "type": { "value": "PlatformBehavior::SimulateLadderKey" }, "parameters": [ "Object", "PlatformerCharacter" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::C_Axis_pushed" }, "parameters": [ "", "Object.Behavior::PropertyGamepadIdentifier()", "\"Right\"", "\"Down\"", "" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateDownKey" }, "parameters": [ "Object", "PlatformerCharacter" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" }, "parameters": [ "Object", "Behavior", "=", "\"A or Cross\"" ] }, { "type": { "value": "Gamepads::C_Button_pressed" }, "parameters": [ "", "Object.Behavior::PropertyGamepadIdentifier()", "\"A\"", "\"Left\"" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateJumpKey" }, "parameters": [ "Object", "PlatformerCharacter" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" }, "parameters": [ "Object", "Behavior", "=", "\"B or Circle\"" ] }, { "type": { "value": "Gamepads::C_Button_pressed" }, "parameters": [ "", "Object.Behavior::PropertyGamepadIdentifier()", "\"B\"", "\"Left\"" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateJumpKey" }, "parameters": [ "Object", "PlatformerCharacter" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" }, "parameters": [ "Object", "Behavior", "=", "\"X or Square\"" ] }, { "type": { "value": "Gamepads::C_Button_pressed" }, "parameters": [ "", "Object.Behavior::PropertyGamepadIdentifier()", "\"X\"", "\"Left\"" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateJumpKey" }, "parameters": [ "Object", "PlatformerCharacter" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" }, "parameters": [ "Object", "Behavior", "=", "\"Y or Triangle\"" ] }, { "type": { "value": "Gamepads::C_Button_pressed" }, "parameters": [ "", "Object.Behavior::PropertyGamepadIdentifier()", "\"Y\"", "\"Left\"" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateJumpKey" }, "parameters": [ "Object", "PlatformerCharacter" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" }, "parameters": [ "Object", "Behavior", "=", "\"LB or L1\"" ] }, { "type": { "value": "Gamepads::C_Button_pressed" }, "parameters": [ "", "Object.Behavior::PropertyGamepadIdentifier()", "\"LB\"", "\"Left\"" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateJumpKey" }, "parameters": [ "Object", "PlatformerCharacter" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" }, "parameters": [ "Object", "Behavior", "=", "\"RB or R1\"" ] }, { "type": { "value": "Gamepads::C_Button_pressed" }, "parameters": [ "", "Object.Behavior::PropertyGamepadIdentifier()", "\"RB\"", "\"Left\"" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateJumpKey" }, "parameters": [ "Object", "PlatformerCharacter" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" }, "parameters": [ "Object", "Behavior", "=", "\"LT or L2\"" ] }, { "type": { "value": "Gamepads::C_Button_pressed" }, "parameters": [ "", "Object.Behavior::PropertyGamepadIdentifier()", "\"LT\"", "\"Left\"" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateJumpKey" }, "parameters": [ "Object", "PlatformerCharacter" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" }, "parameters": [ "Object", "Behavior", "=", "\"RT or R2\"" ] }, { "type": { "value": "Gamepads::C_Button_pressed" }, "parameters": [ "", "Object.Behavior::PropertyGamepadIdentifier()", "\"RT\"", "\"Left\"" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateJumpKey" }, "parameters": [ "Object", "PlatformerCharacter" ] } ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "Gamepads::PlatformerGamepadMapper", "type": "behavior" } ], "objectGroups": [] } ], "propertyDescriptors": [ { "value": "", "type": "Behavior", "label": "Platformer character behavior", "description": "", "group": "", "extraInformation": [ "PlatformBehavior::PlatformerObjectBehavior" ], "hidden": false, "name": "PlatformerCharacter" }, { "value": "1", "type": "Number", "label": "Gamepad identifier (1, 2, 3 or 4)", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "GamepadIdentifier" }, { "value": "true", "type": "Boolean", "label": "Use directional pad", "description": "", "group": "Controls", "extraInformation": [], "hidden": false, "name": "UseArrows" }, { "value": "true", "type": "Boolean", "label": "Use left stick", "description": "", "group": "Controls", "extraInformation": [], "hidden": false, "name": "UseLeftStick" }, { "value": "", "type": "Boolean", "label": "Use right stick", "description": "", "group": "Controls", "extraInformation": [], "hidden": false, "name": "UseRightStick" }, { "value": "A or Cross", "type": "Choice", "label": "Jump button", "description": "", "group": "Controls", "extraInformation": [ "A or Cross", "B or Circle", "X or Square", "Y or Triangle", "LB or L1", "RB or R1", "LT or L2", "RT or R2" ], "hidden": false, "name": "JumpButton" } ], "sharedPropertyDescriptors": [] }, { "description": "Control a top-down character with a gamepad.", "fullName": "Top-down gamepad mapper", "name": "TopDownGamepadMapper", "objectType": "", "eventsFunctions": [ { "fullName": "", "functionType": "Action", "name": "doStepPreEvents", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::C_Controller_X_is_connected" }, "parameters": [ "", "Object.Behavior::PropertyGamepadIdentifier()", "" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::PlatformerGamepadMapper::PropertyUseArrows" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::C_Button_pressed" }, "parameters": [ "", "Object.Behavior::PropertyGamepadIdentifier()", "\"Left\"", "\"Left\"" ] } ], "actions": [ { "type": { "value": "TopDownMovementBehavior::SimulateLeftKey" }, "parameters": [ "Object", "TopDownMovement" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::C_Button_pressed" }, "parameters": [ "", "Object.Behavior::PropertyGamepadIdentifier()", "\"Right\"", "\"Left\"" ] } ], "actions": [ { "type": { "value": "TopDownMovementBehavior::SimulateRightKey" }, "parameters": [ "Object", "TopDownMovement" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::C_Button_pressed" }, "parameters": [ "", "Object.Behavior::PropertyGamepadIdentifier()", "\"Up\"", "\"Left\"" ] } ], "actions": [ { "type": { "value": "TopDownMovementBehavior::SimulateUpKey" }, "parameters": [ "Object", "TopDownMovement" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::C_Button_pressed" }, "parameters": [ "", "Object.Behavior::PropertyGamepadIdentifier()", "\"Down\"", "\"Left\"" ] } ], "actions": [ { "type": { "value": "TopDownMovementBehavior::SimulateDownKey" }, "parameters": [ "Object", "TopDownMovement" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::PlatformerGamepadMapper::PropertyUseLeftStick" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::TopDownGamepadMapper::PropertyStickMode" }, "parameters": [ "Object", "Behavior", "=", "\"Analog\"" ] } ], "actions": [ { "type": { "value": "TopDownMovementBehavior::SimulateStick" }, "parameters": [ "Object", "TopDownMovement", "Gamepads::StickRotationValue(Object.Behavior::PropertyGamepadIdentifier(), \"Left\")", "Gamepads::StickForce(Object.Behavior::PropertyGamepadIdentifier(), \"Left\")" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::TopDownGamepadMapper::PropertyStickMode" }, "parameters": [ "Object", "Behavior", "=", "\"360°\"" ] } ], "actions": [ { "type": { "value": "TopDownMovementBehavior::SimulateStick" }, "parameters": [ "Object", "TopDownMovement", "Gamepads::StickRotationValue(Object.Behavior::PropertyGamepadIdentifier(), \"Left\")", "sign(Gamepads::StickForce(Object.Behavior::PropertyGamepadIdentifier(), \"Left\"))" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::TopDownGamepadMapper::PropertyStickMode" }, "parameters": [ "Object", "Behavior", "=", "\"8 Directions\"" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::C_Axis_pushed" }, "parameters": [ "", "Object.Behavior::PropertyGamepadIdentifier()", "\"Left\"", "\"Left\"", "" ] } ], "actions": [ { "type": { "value": "TopDownMovementBehavior::SimulateLeftKey" }, "parameters": [ "Object", "TopDownMovement" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::C_Axis_pushed" }, "parameters": [ "", "Object.Behavior::PropertyGamepadIdentifier()", "\"Left\"", "\"Right\"", "" ] } ], "actions": [ { "type": { "value": "TopDownMovementBehavior::SimulateRightKey" }, "parameters": [ "Object", "TopDownMovement" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::C_Axis_pushed" }, "parameters": [ "", "Object.Behavior::PropertyGamepadIdentifier()", "\"Left\"", "\"Up\"", "" ] } ], "actions": [ { "type": { "value": "TopDownMovementBehavior::SimulateUpKey" }, "parameters": [ "Object", "TopDownMovement" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::C_Axis_pushed" }, "parameters": [ "", "Object.Behavior::PropertyGamepadIdentifier()", "\"Left\"", "\"Down\"", "" ] } ], "actions": [ { "type": { "value": "TopDownMovementBehavior::SimulateDownKey" }, "parameters": [ "Object", "TopDownMovement" ] } ] } ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::PlatformerGamepadMapper::PropertyUseRightStick" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::TopDownGamepadMapper::PropertyStickMode" }, "parameters": [ "Object", "Behavior", "=", "\"Analog\"" ] } ], "actions": [ { "type": { "value": "TopDownMovementBehavior::SimulateStick" }, "parameters": [ "Object", "TopDownMovement", "Gamepads::StickRotationValue(Object.Behavior::PropertyGamepadIdentifier(), \"Right\")", "Gamepads::StickForce(Object.Behavior::PropertyGamepadIdentifier(), \"Right\")" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::TopDownGamepadMapper::PropertyStickMode" }, "parameters": [ "Object", "Behavior", "=", "\"360°\"" ] } ], "actions": [ { "type": { "value": "TopDownMovementBehavior::SimulateStick" }, "parameters": [ "Object", "TopDownMovement", "sign(Gamepads::StickForce(Object.Behavior::PropertyGamepadIdentifier(), \"Right\"))", "1" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::TopDownGamepadMapper::PropertyStickMode" }, "parameters": [ "Object", "Behavior", "=", "\"8 Directions\"" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::C_Axis_pushed" }, "parameters": [ "", "Object.Behavior::PropertyGamepadIdentifier()", "\"Right\"", "\"Left\"", "" ] } ], "actions": [ { "type": { "value": "TopDownMovementBehavior::SimulateLeftKey" }, "parameters": [ "Object", "TopDownMovement" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::C_Axis_pushed" }, "parameters": [ "", "Object.Behavior::PropertyGamepadIdentifier()", "\"Right\"", "\"Right\"", "" ] } ], "actions": [ { "type": { "value": "TopDownMovementBehavior::SimulateRightKey" }, "parameters": [ "Object", "TopDownMovement" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::C_Axis_pushed" }, "parameters": [ "", "Object.Behavior::PropertyGamepadIdentifier()", "\"Right\"", "\"Up\"", "" ] } ], "actions": [ { "type": { "value": "TopDownMovementBehavior::SimulateUpKey" }, "parameters": [ "Object", "TopDownMovement" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Gamepads::C_Axis_pushed" }, "parameters": [ "", "Object.Behavior::PropertyGamepadIdentifier()", "\"Right\"", "\"Down\"", "" ] } ], "actions": [ { "type": { "value": "TopDownMovementBehavior::SimulateDownKey" }, "parameters": [ "Object", "TopDownMovement" ] } ] } ] } ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "Gamepads::TopDownGamepadMapper", "type": "behavior" } ], "objectGroups": [] } ], "propertyDescriptors": [ { "value": "", "type": "Behavior", "label": "Top-down movement behavior", "description": "", "group": "", "extraInformation": [ "TopDownMovementBehavior::TopDownMovementBehavior" ], "hidden": false, "name": "TopDownMovement" }, { "value": "1", "type": "Number", "label": "Gamepad identifier (1, 2, 3 or 4)", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "GamepadIdentifier" }, { "value": "true", "type": "Boolean", "label": "Use directional pad", "description": "", "group": "Controls", "extraInformation": [], "hidden": false, "name": "UseArrows" }, { "value": "true", "type": "Boolean", "label": "Use left stick", "description": "", "group": "Controls", "extraInformation": [], "hidden": false, "name": "UseLeftStick" }, { "value": "", "type": "Boolean", "label": "Use right stick", "description": "", "group": "Controls", "extraInformation": [], "hidden": false, "name": "UseRightStick" }, { "value": "Analog", "type": "Choice", "label": "Stick mode", "description": "", "group": "Controls", "extraInformation": [ "Analog", "360°", "8 Directions" ], "hidden": false, "name": "StickMode" } ], "sharedPropertyDescriptors": [] } ], "eventsBasedObjects": [] }, { "author": "", "category": "Input", "extensionNamespace": "", "fullName": "Multitouch joystick and buttons (sprite)", "helpPath": "/objects/multitouch-joystick", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iSWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMzIgMzIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMyIDMyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQo8L3N0eWxlPg0KPGNpcmNsZSBjbGFzcz0ic3QwIiBjeD0iMTYiIGN5PSIxNiIgcj0iMTMiLz4NCjxwb2x5bGluZSBjbGFzcz0ic3QwIiBwb2ludHM9IjI4LjQsMTIgMjAsMTIgMjAsMy42ICIvPg0KPHBvbHlsaW5lIGNsYXNzPSJzdDAiIHBvaW50cz0iMjAsMjguNCAyMCwyMCAyOC40LDIwICIvPg0KPHBvbHlsaW5lIGNsYXNzPSJzdDAiIHBvaW50cz0iMy42LDIwIDEyLDIwIDEyLDI4LjQgIi8+DQo8cG9seWxpbmUgY2xhc3M9InN0MCIgcG9pbnRzPSIxMiwzLjYgMTIsMTIgMy42LDEyICIvPg0KPHBvbHlnb24gY2xhc3M9InN0MCIgcG9pbnRzPSIxNiw2IDE2LjcsNyAxNS4zLDcgIi8+DQo8cG9seWdvbiBjbGFzcz0ic3QwIiBwb2ludHM9IjE2LDI2IDE1LjMsMjUgMTYuNywyNSAiLz4NCjxwb2x5Z29uIGNsYXNzPSJzdDAiIHBvaW50cz0iNiwxNiA3LDE1LjMgNywxNi43ICIvPg0KPHBvbHlnb24gY2xhc3M9InN0MCIgcG9pbnRzPSIyNiwxNiAyNSwxNi43IDI1LDE1LjMgIi8+DQo8L3N2Zz4NCg==", "name": "SpriteMultitouchJoystick", "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/Line Hero Pack/Master/SVG/Videogames/Videogames_controller_joystick_arrows_direction.svg", "shortDescription": "Joysticks or buttons for touchscreens.", "version": "1.2.2", "description": [ "Multitouch joysticks can be used the same way as physical gamepads:", "- 4 or 8 directions", "- Analogus pads", "- Player selection", "- Controls mapping for top-down movement and platformer characters", "", "There are ready-to-use joysticks in the asset-store [multitouch joysticks pack](https://editor.gdevelop.io/?initial-dialog=asset-store&asset-pack=multitouch-joysticks-multitouch-joysticks)." ], "origin": { "identifier": "SpriteMultitouchJoystick", "name": "gdevelop-extension-store" }, "tags": [ "multitouch", "joystick", "thumbstick", "controller", "touchscreen", "twin stick", "shooter", "virtual", "platformer", "platform", "top-down" ], "authorIds": [ "gqDaZjCfevOOxBYkK6zlhtZnXCg1", "1OgYzWp5UeVPbiWGJwI6vqfgZLC3", "v0YRpdAnIucZFgiRCCecqVnGKno2", "IWykYNRvhCZBN3vEgKEbBPOR3Oc2" ], "dependencies": [], "eventsFunctions": [ { "description": "Check if a button is pressed on a gamepad.", "fullName": "Multitouch controller button pressed", "functionType": "Condition", "name": "IsButtonPressed", "sentence": "Button _PARAM2_ of multitouch controller _PARAM1_ is pressed", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarSceneTxt" }, "parameters": [ "__MultitouchJoystick.Controllers[GetArgumentAsNumber(\"ControllerIdentifier\")].Buttons[GetArgumentAsString(\"Button\")].State", "=", "\"Pressed\"" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Multitouch controller identifier (1, 2, 3, 4...)", "name": "ControllerIdentifier", "type": "expression" }, { "description": "Button name", "name": "Button", "supplementaryInformation": "[\"A\",\"CROSS\",\"B\",\"CIRCLE\",\"X\",\"SQUARE\",\"Y\",\"TRIANGLE\",\"LB\",\"L1\",\"RB\",\"R1\",\"LT\",\"L2\",\"RT\",\"R2\",\"UP\",\"DOWN\",\"LEFT\",\"RIGHT\",\"BACK\",\"SHARE\",\"START\",\"OPTIONS\",\"CLICK_STICK_LEFT\",\"CLICK_STICK_RIGHT\",\"PS_BUTTON\",\"CLICK_TOUCHPAD\"]", "type": "string" } ], "objectGroups": [] }, { "description": "Check if a button is released on a gamepad.", "fullName": "Multitouch controller button released", "functionType": "Condition", "name": "IsButtonReleased", "sentence": "Button _PARAM2_ of multitouch controller _PARAM1_ is released", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarSceneTxt" }, "parameters": [ "__MultitouchJoystick.Controllers[GetArgumentAsNumber(\"ControllerIdentifier\")].Buttons[GetArgumentAsString(\"Button\")].State", "=", "\"Released\"" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Multitouch controller identifier (1, 2, 3, 4...)", "name": "ControllerIdentifier", "type": "expression" }, { "description": "Button name", "name": "Button", "supplementaryInformation": "[\"A\",\"CROSS\",\"B\",\"CIRCLE\",\"X\",\"SQUARE\",\"Y\",\"TRIANGLE\",\"LB\",\"L1\",\"RB\",\"R1\",\"LT\",\"L2\",\"RT\",\"R2\",\"UP\",\"DOWN\",\"LEFT\",\"RIGHT\",\"BACK\",\"SHARE\",\"START\",\"OPTIONS\",\"CLICK_STICK_LEFT\",\"CLICK_STICK_RIGHT\",\"PS_BUTTON\",\"CLICK_TOUCHPAD\"]", "type": "string" } ], "objectGroups": [] }, { "description": "Change a button state for a multitouch controller.", "fullName": "Button state", "functionType": "Action", "name": "SetButtonState", "private": true, "sentence": "Mark _PARAM2_ button as _PARAM3_ for multitouch controller _PARAM1_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarSceneTxt" }, "parameters": [ "__MultitouchJoystick.Controllers[GetArgumentAsNumber(\"ControllerIdentifier\")].Buttons[GetArgumentAsString(\"Button\")].State", "=", "GetArgumentAsString(\"ButtonState\")" ] } ] } ], "parameters": [ { "description": "Multitouch controller identifier (1, 2, 3, 4...)", "name": "ControllerIdentifier", "type": "expression" }, { "description": "Button name", "name": "Button", "type": "string" }, { "description": "Button state", "name": "ButtonState", "supplementaryInformation": "[\"Idle\",\"Pressed\",\"Released\"]", "type": "stringWithSelector" } ], "objectGroups": [] }, { "description": "Change the dead zone radius of a joystick. The deadzone is an area for which movement on sticks won't be taken into account (instead, the stick will be considered as not moved).", "fullName": "Dead zone radius", "functionType": "Action", "name": "SetDeadZone", "private": true, "sentence": "Change the dead zone of multitouch joystick _PARAM2_ of multitouch controller _PARAM1_ to _PARAM3_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarScene" }, "parameters": [ "__MultitouchJoystick.Controllers[GetArgumentAsNumber(\"ControllerIdentifier\")].Joystick[GetArgumentAsString(\"JoystickIdentifier\")].DeadZone", "=", "GetArgumentAsNumber(\"DeadZoneRadius\")" ] } ] } ], "parameters": [ { "description": "Multitouch controller identifier (1, 2, 3, 4...)", "name": "ControllerIdentifier", "type": "expression" }, { "description": "Joystick name", "name": "JoystickIdentifier", "type": "string" }, { "description": "Dead zone radius", "name": "DeadZoneRadius", "supplementaryInformation": "[]", "type": "expression" } ], "objectGroups": [] }, { "description": "Return the dead zone radius of a joystick. The deadzone is an area for which movement on sticks won't be taken into account (instead, the stick will be considered as not moved).", "fullName": "Dead zone radius", "functionType": "Expression", "name": "DeadZone", "private": true, "sentence": "Change multitouch joystick _PARAM2_ of multitouch controller _PARAM1_ dead zone to _PARAM3_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Variable(__MultitouchJoystick.Controllers[GetArgumentAsNumber(\"ControllerIdentifier\")].Joystick[GetArgumentAsString(\"JoystickIdentifier\")].DeadZone)" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Multitouch controller identifier (1, 2, 3, 4...)", "name": "ControllerIdentifier", "type": "expression" }, { "description": "Joystick name", "name": "JoystickIdentifier", "type": "string" } ], "objectGroups": [] }, { "description": "the direction index (left = 1, bottom = 1, right = 2, top = 3) for an angle (in degrees).", "fullName": "Angle to 4-way index", "functionType": "ExpressionAndCondition", "name": "AngleTo4Way", "private": true, "sentence": "The angle _PARAM1_ 4-way index", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "mod(round(GetArgumentAsNumber(\"Angle\") * 4 / 360), 4)" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Angle", "name": "Angle", "type": "expression" } ], "objectGroups": [] }, { "description": "the direction index (left = 1, bottom-left = 1... top-left = 7) for an angle (in degrees).", "fullName": "Angle to 8-way index", "functionType": "ExpressionAndCondition", "name": "AngleTo8Way", "private": true, "sentence": "The angle _PARAM1_ 8-way index", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "mod(round(GetArgumentAsNumber(\"Angle\") * 8 / 360), 8)" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Angle", "name": "Angle", "type": "expression" } ], "objectGroups": [] }, { "description": "Check if angle is in a given direction.", "fullName": "Angle 4-way direction", "functionType": "Condition", "name": "IsAngleIn4WayDirection", "private": true, "sentence": "The angle _PARAM1_ is the 4-way direction _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::CompareStrings" }, "parameters": [ "GetArgumentAsString(\"Direction\")", "=", "\"Right\"" ] }, { "type": { "value": "SpriteMultitouchJoystick::AngleTo4Way" }, "parameters": [ "", "=", "0", "GetArgumentAsNumber(\"Angle\")", "" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::CompareStrings" }, "parameters": [ "GetArgumentAsString(\"Direction\")", "=", "\"Down\"" ] }, { "type": { "value": "SpriteMultitouchJoystick::AngleTo4Way" }, "parameters": [ "", "=", "1", "GetArgumentAsNumber(\"Angle\")", "" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::CompareStrings" }, "parameters": [ "GetArgumentAsString(\"Direction\")", "=", "\"Left\"" ] }, { "type": { "value": "SpriteMultitouchJoystick::AngleTo4Way" }, "parameters": [ "", "=", "2", "GetArgumentAsNumber(\"Angle\")", "" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::CompareStrings" }, "parameters": [ "GetArgumentAsString(\"Direction\")", "=", "\"Up\"" ] }, { "type": { "value": "SpriteMultitouchJoystick::AngleTo4Way" }, "parameters": [ "", "=", "3", "GetArgumentAsNumber(\"Angle\")", "" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Angle", "name": "Angle", "type": "expression" }, { "description": "Direction", "name": "Direction", "supplementaryInformation": "[\"Up\",\"Down\",\"Left\",\"Right\"]", "type": "stringWithSelector" } ], "objectGroups": [] }, { "description": "Check if angle is in a given direction.", "fullName": "Angle 8-way direction", "functionType": "Condition", "name": "IsAngleIn8WayDirection", "private": true, "sentence": "The angle _PARAM1_ is the 8-way direction _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::CompareStrings" }, "parameters": [ "GetArgumentAsString(\"Direction\")", "=", "\"Right\"" ] }, { "type": { "value": "SpriteMultitouchJoystick::AngleTo8Way" }, "parameters": [ "", "=", "0", "GetArgumentAsNumber(\"Angle\")", "" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::CompareStrings" }, "parameters": [ "GetArgumentAsString(\"Direction\")", "=", "\"DownRight\"" ] }, { "type": { "value": "SpriteMultitouchJoystick::AngleTo8Way" }, "parameters": [ "", "=", "1", "GetArgumentAsNumber(\"Angle\")", "" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::CompareStrings" }, "parameters": [ "GetArgumentAsString(\"Direction\")", "=", "\"Down\"" ] }, { "type": { "value": "SpriteMultitouchJoystick::AngleTo8Way" }, "parameters": [ "", "=", "2", "GetArgumentAsNumber(\"Angle\")", "" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::CompareStrings" }, "parameters": [ "GetArgumentAsString(\"Direction\")", "=", "\"DownLeft\"" ] }, { "type": { "value": "SpriteMultitouchJoystick::AngleTo8Way" }, "parameters": [ "", "=", "3", "GetArgumentAsNumber(\"Angle\")", "" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::CompareStrings" }, "parameters": [ "GetArgumentAsString(\"Direction\")", "=", "\"Left\"" ] }, { "type": { "value": "SpriteMultitouchJoystick::AngleTo8Way" }, "parameters": [ "", "=", "4", "GetArgumentAsNumber(\"Angle\")", "" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::CompareStrings" }, "parameters": [ "GetArgumentAsString(\"Direction\")", "=", "\"UpLeft\"" ] }, { "type": { "value": "SpriteMultitouchJoystick::AngleTo8Way" }, "parameters": [ "", "=", "5", "GetArgumentAsNumber(\"Angle\")", "" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::CompareStrings" }, "parameters": [ "GetArgumentAsString(\"Direction\")", "=", "\"Up\"" ] }, { "type": { "value": "SpriteMultitouchJoystick::AngleTo8Way" }, "parameters": [ "", "=", "6", "GetArgumentAsNumber(\"Angle\")", "" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::CompareStrings" }, "parameters": [ "GetArgumentAsString(\"Direction\")", "=", "\"UpRight\"" ] }, { "type": { "value": "SpriteMultitouchJoystick::AngleTo8Way" }, "parameters": [ "", "=", "7", "GetArgumentAsNumber(\"Angle\")", "" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Angle", "name": "Angle", "type": "expression" }, { "description": "Direction", "name": "Direction", "supplementaryInformation": "[\"Up\",\"Down\",\"Left\",\"Right\",\"UpLeft\",\"UpRight\",\"DownLeft\",\"DownRight\"]", "type": "stringWithSelector" } ], "objectGroups": [] }, { "description": "Check if joystick is pushed in a given direction.", "fullName": "Joystick pushed in a direction (4-way)", "functionType": "Condition", "name": "IsDirectionPushed4Way", "sentence": "Joystick _PARAM2_ of multitouch controller _PARAM1_ is pushed in direction _PARAM3_", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Make sure the joystick has moved from center" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SpriteMultitouchJoystick::JoystickForce" }, "parameters": [ "", ">", "SpriteMultitouchJoystick::DeadZone(GetArgumentAsNumber(\"ControllerIdentifier\"), GetArgumentAsString(\"JoystickIdentifier\"))", "GetArgumentAsNumber(\"ControllerIdentifier\")", "GetArgumentAsString(\"JoystickIdentifier\")", "" ] }, { "type": { "value": "SpriteMultitouchJoystick::IsAngleIn4WayDirection" }, "parameters": [ "", "SpriteMultitouchJoystick::JoystickAngle(GetArgumentAsNumber(\"ControllerIdentifier\"), GetArgumentAsString(\"JoystickIdentifier\"))", "GetArgumentAsString(\"Direction\")", "" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Multitouch controller identifier (1, 2, 3, 4...)", "name": "ControllerIdentifier", "type": "expression" }, { "description": "Joystick name", "name": "JoystickIdentifier", "supplementaryInformation": "[\"Primary\",\"Secondary\"]", "type": "stringWithSelector" }, { "description": "Direction", "name": "Direction", "supplementaryInformation": "[\"Up\",\"Down\",\"Left\",\"Right\"]", "type": "stringWithSelector" } ], "objectGroups": [] }, { "description": "Check if joystick is pushed in a given direction.", "fullName": "Joystick pushed in a direction (8-way)", "functionType": "Condition", "name": "IsDirectionPushed8Way", "sentence": "Joystick _PARAM2_ of multitouch controller _PARAM1_ is pushed in direction _PARAM3_", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Make sure the joystick has moved from center" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SpriteMultitouchJoystick::JoystickForce" }, "parameters": [ "", ">", "SpriteMultitouchJoystick::DeadZone(GetArgumentAsNumber(\"ControllerIdentifier\"), GetArgumentAsString(\"JoystickIdentifier\"))", "GetArgumentAsNumber(\"ControllerIdentifier\")", "GetArgumentAsString(\"JoystickIdentifier\")", "" ] }, { "type": { "value": "SpriteMultitouchJoystick::IsAngleIn8WayDirection" }, "parameters": [ "", "SpriteMultitouchJoystick::JoystickAngle(GetArgumentAsNumber(\"ControllerIdentifier\"), GetArgumentAsString(\"JoystickIdentifier\"))", "GetArgumentAsString(\"Direction\")", "" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Multitouch controller identifier (1, 2, 3, 4...)", "name": "ControllerIdentifier", "type": "expression" }, { "description": "Joystick name", "name": "JoystickIdentifier", "supplementaryInformation": "[\"Primary\",\"Secondary\"]", "type": "stringWithSelector" }, { "description": "Direction", "name": "Direction", "supplementaryInformation": "[\"Up\",\"Down\",\"Left\",\"Right\",\"UpLeft\",\"UpRight\",\"DownLeft\",\"DownRight\"]", "type": "stringWithSelector" } ], "objectGroups": [] }, { "description": "the percentage the thumb has been pulled away from the joystick center (Range: 0 to 1).", "fullName": "Joystick force (deprecated)", "functionType": "ExpressionAndCondition", "name": "JoystickForce", "private": true, "sentence": "Joystick _PARAM2_ of multitouch controller _PARAM1_ force", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "SpriteMultitouchJoystick::StickForce(GetArgumentAsNumber(\"ControllerIdentifier\"), GetArgumentAsString(\"JoystickIdentifier\"))" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Multitouch controller identifier (1, 2, 3, 4...)", "name": "ControllerIdentifier", "type": "expression" }, { "description": "Joystick name", "name": "JoystickIdentifier", "supplementaryInformation": "[\"Primary\",\"Secondary\"]", "type": "stringWithSelector" } ], "objectGroups": [] }, { "description": "the force of multitouch contoller stick (from 0 to 1).", "fullName": "Stick force", "functionType": "ExpressionAndCondition", "name": "StickForce", "sentence": "multitouch controller _PARAM1_ _PARAM2_ stick force", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Variable(__MultitouchJoystick.Controllers[GetArgumentAsNumber(\"ControllerIdentifier\")].Joystick[GetArgumentAsString(\"JoystickIdentifier\")].Force)" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Multitouch controller identifier (1, 2, 3, 4...)", "name": "ControllerIdentifier", "type": "expression" }, { "description": "Stick name", "name": "JoystickIdentifier", "supplementaryInformation": "[\"Primary\",\"Secondary\"]", "type": "stringWithSelector" } ], "objectGroups": [] }, { "description": "Change the percentage the thumb has been pulled away from the joystick center (Range: 0 to 1).", "fullName": "Joystick force", "functionType": "Action", "name": "SetJoystickForce", "private": true, "sentence": "Change the force of the joystick _PARAM2_ of multitouch controller _PARAM1_ to _PARAM3_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarScene" }, "parameters": [ "__MultitouchJoystick.Controllers[GetArgumentAsNumber(\"ControllerIdentifier\")].Joystick[GetArgumentAsString(\"JoystickIdentifier\")].Force", "=", "GetArgumentAsNumber(\"Value\")" ] } ] } ], "parameters": [ { "description": "Multitouch controller identifier (1, 2, 3, 4...)", "name": "ControllerIdentifier", "type": "expression" }, { "description": "Joystick name", "name": "JoystickIdentifier", "type": "string" }, { "description": "Value", "name": "Value", "type": "expression" } ], "objectGroups": [] }, { "description": "Return the angle the joystick is pointing towards (Range: -180 to 180).", "fullName": "Joystick angle (deprecated)", "functionType": "Expression", "name": "JoystickAngle", "private": true, "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "SpriteMultitouchJoystick::StickAngle(GetArgumentAsNumber(\"ControllerIdentifier\"), GetArgumentAsString(\"JoystickIdentifier\"))" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Multitouch controller identifier (1, 2, 3, 4...)", "name": "ControllerIdentifier", "type": "expression" }, { "description": "Joystick name", "name": "JoystickIdentifier", "supplementaryInformation": "[\"Primary\",\"Secondary\"]", "type": "stringWithSelector" } ], "objectGroups": [] }, { "description": "Return the angle the multitouch controller stick is pointing towards (Range: -180 to 180).", "fullName": "Stick angle", "functionType": "Expression", "name": "StickAngle", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Variable(__MultitouchJoystick.Controllers[GetArgumentAsNumber(\"ControllerIdentifier\")].Joystick[GetArgumentAsString(\"JoystickIdentifier\")].Angle)" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Multitouch controller identifier (1, 2, 3, 4...)", "name": "ControllerIdentifier", "type": "expression" }, { "description": "Joystick name", "name": "JoystickIdentifier", "supplementaryInformation": "[\"Primary\",\"Secondary\"]", "type": "stringWithSelector" } ], "objectGroups": [] }, { "description": "Change the angle the joystick is pointing towards (Range: -180 to 180).", "fullName": "Joystick angle", "functionType": "Action", "name": "SetJoystickAngle", "private": true, "sentence": "Change the angle of the joystick _PARAM2_ of multitouch controller _PARAM1_ to _PARAM3_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarScene" }, "parameters": [ "__MultitouchJoystick.Controllers[GetArgumentAsNumber(\"ControllerIdentifier\")].Joystick[GetArgumentAsString(\"JoystickIdentifier\")].Angle", "=", "GetArgumentAsNumber(\"Value\")" ] } ] } ], "parameters": [ { "description": "Multitouch controller identifier (1, 2, 3, 4...)", "name": "ControllerIdentifier", "type": "expression" }, { "description": "Joystick name", "name": "JoystickIdentifier", "type": "string" }, { "description": "Value", "name": "Value", "type": "expression" } ], "objectGroups": [] }, { "description": "Return the multitouch contoller stick force on X axis (from -1 at the left to 1 at the right).", "fullName": "Stick X force", "functionType": "Expression", "name": "StickForceX", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "SpriteMultitouchJoystick::JoystickForce(GetArgumentAsNumber(\"ControllerIdentifier\"), GetArgumentAsString(\"JoystickIdentifier\")) * cos(ToRad(SpriteMultitouchJoystick::JoystickAngle(GetArgumentAsNumber(\"ControllerIdentifier\"), GetArgumentAsString(\"JoystickIdentifier\"))))" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Multitouch controller identifier (1, 2, 3, 4...)", "name": "ControllerIdentifier", "type": "expression" }, { "description": "Joystick name", "name": "JoystickIdentifier", "supplementaryInformation": "[\"Primary\",\"Secondary\"]", "type": "stringWithSelector" } ], "objectGroups": [] }, { "description": "Return the multitouch contoller stick force on Y axis (from -1 at the top to 1 at the bottom).", "fullName": "Stick Y force", "functionType": "Expression", "name": "StickForceY", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "SpriteMultitouchJoystick::JoystickForce(GetArgumentAsNumber(\"ControllerIdentifier\"), GetArgumentAsString(\"JoystickIdentifier\")) * sin(ToRad(SpriteMultitouchJoystick::JoystickAngle(GetArgumentAsNumber(\"ControllerIdentifier\"), GetArgumentAsString(\"JoystickIdentifier\"))))" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Multitouch controller identifier (1, 2, 3, 4...)", "name": "ControllerIdentifier", "type": "expression" }, { "description": "Joystick name", "name": "JoystickIdentifier", "supplementaryInformation": "[\"Primary\",\"Secondary\"]", "type": "stringWithSelector" } ], "objectGroups": [] } ], "eventsBasedBehaviors": [ { "description": "Joystick that can be controlled by interacting with a touchscreen.", "fullName": "Multitouch Joystick", "name": "MultitouchJoystick", "objectType": "", "private": true, "eventsFunctions": [ { "fullName": "", "functionType": "Action", "name": "onCreated", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SpriteMultitouchJoystick::SetDeadZone" }, "parameters": [ "", "Object.Behavior::PropertyControllerIdentifier()", "Object.Behavior::PropertyJoystickIdentifier()", "Object.Behavior::PropertyDeadZoneRadius()", "" ] }, { "type": { "value": "SpriteMultitouchJoystick::MultitouchJoystick::Reset" }, "parameters": [ "Object", "Behavior", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchJoystick", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "Action", "name": "onDeActivate", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SpriteMultitouchJoystick::MultitouchJoystick::Reset" }, "parameters": [ "Object", "Behavior", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchJoystick", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "Action", "name": "doStepPreEvents", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "HasGameJustResumed" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "SpriteMultitouchJoystick::MultitouchJoystick::Reset" }, "parameters": [ "Object", "Behavior", "" ] } ] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Manage touches", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "HasAnyTouchOrMouseStarted" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "SpriteMultitouchJoystick::MultitouchJoystick::SetPropertyTouchIndex" }, "parameters": [ "Object", "Behavior", "=", "0" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Repeat", "repeatExpression": "StartedTouchOrMouseCount()", "conditions": [], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SpriteMultitouchJoystick::MultitouchJoystick::PropertyTouchId" }, "parameters": [ "Object", "Behavior", "=", "0" ] }, { "type": { "value": "CollisionPoint" }, "parameters": [ "Object", "TouchX(StartedTouchOrMouseId(Object.Behavior::PropertyTouchIndex()), Object.Layer(), 0)", "TouchY(StartedTouchOrMouseId(Object.Behavior::PropertyTouchIndex()), Object.Layer(), 0)" ] } ], "actions": [ { "type": { "value": "SpriteMultitouchJoystick::MultitouchJoystick::SetPropertyTouchId" }, "parameters": [ "Object", "Behavior", "=", "StartedTouchOrMouseId(Object.Behavior::PropertyTouchIndex())" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SpriteMultitouchJoystick::MultitouchJoystick::SetPropertyTouchIndex" }, "parameters": [ "Object", "Behavior", "+", "1" ] } ] } ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Move thumb back to center when not being pressed (acts like a spring on a real controller)" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "HasTouchEnded" }, "parameters": [ "", "Object.Behavior::PropertyTouchId()" ] } ], "actions": [ { "type": { "value": "SpriteMultitouchJoystick::MultitouchJoystick::Reset" }, "parameters": [ "Object", "Behavior", "" ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Update joystick position", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SpriteMultitouchJoystick::MultitouchJoystick::PropertyTouchId" }, "parameters": [ "Object", "Behavior", "!=", "0" ] } ], "actions": [ { "type": { "value": "SpriteMultitouchJoystick::MultitouchJoystick::SetJoystickAngle" }, "parameters": [ "Object", "Behavior", "AngleBetweenPositions(Object.CenterX(), Object.CenterY(), TouchX(Object.Behavior::PropertyTouchId(), Object.Layer(), 0), TouchY(Object.Behavior::PropertyTouchId(), Object.Layer(), 0))", "AngleBetweenPositions(Object.CenterX(), Object.CenterY(), TouchX(Object.Behavior::PropertyTouchId(), Object.Layer(), 0), TouchY(Object.Behavior::PropertyTouchId(), Object.Layer(), 0))" ] }, { "type": { "value": "SpriteMultitouchJoystick::MultitouchJoystick::SetJoystickForce" }, "parameters": [ "Object", "Behavior", "=", "clamp(2 * DistanceBetweenPositions(Object.CenterX(), Object.CenterY(), TouchX(Object.Behavior::PropertyTouchId(), Object.Layer(), 0), TouchY(Object.Behavior::PropertyTouchId(), Object.Layer(), 0)) / Object.Width(), 0, 1)", "" ] } ] } ], "parameters": [] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchJoystick", "type": "behavior" } ], "objectGroups": [] }, { "description": "the joystick force (from 0 to 1).", "fullName": "Joystick force", "functionType": "ExpressionAndCondition", "name": "JoystickForce", "sentence": "the joystick force", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyJoystickForce()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchJoystick", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "JoystickForce", "name": "SetJoystickForce", "private": true, "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SpriteMultitouchJoystick::MultitouchJoystick::SetPropertyJoystickForce" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")" ] }, { "type": { "value": "SpriteMultitouchJoystick::SetJoystickForce" }, "parameters": [ "", "Object.Behavior::PropertyControllerIdentifier()", "Object.Behavior::PropertyJoystickIdentifier()", "Object.Behavior::PropertyJoystickForce()", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchJoystick", "type": "behavior" } ], "objectGroups": [] }, { "description": "Return the angle the joystick is pointing towards (Range: -180 to 180).", "fullName": "Joystick angle", "functionType": "Expression", "name": "JoystickAngle", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyJoystickAngle()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchJoystick", "type": "behavior" } ], "objectGroups": [] }, { "description": "Change the angle the joystick is pointing towards (Range: -180 to 180).", "fullName": "Joystick angle", "functionType": "Action", "name": "SetJoystickAngle", "private": true, "sentence": "Change the joystick angle of _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SpriteMultitouchJoystick::MultitouchJoystick::SetPropertyJoystickAngle" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")" ] }, { "type": { "value": "SpriteMultitouchJoystick::SetJoystickAngle" }, "parameters": [ "", "Object.Behavior::PropertyControllerIdentifier()", "Object.Behavior::PropertyJoystickIdentifier()", "Object.Behavior::PropertyJoystickAngle()", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchJoystick", "type": "behavior" }, { "description": "Angle", "name": "Value", "type": "expression" } ], "objectGroups": [] }, { "description": "Return the stick force on X axis (from -1 at the left to 1 at the right).", "fullName": "Stick X force", "functionType": "Expression", "name": "StickForceX", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::JoystickForce() * cos(ToRad(Object.Behavior::JoystickAngle()))" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchJoystick", "type": "behavior" } ], "objectGroups": [] }, { "description": "Return the stick force on Y axis (from -1 at the top to 1 at the bottom).", "fullName": "Stick Y force", "functionType": "Expression", "name": "StickForceY", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::JoystickForce() * sin(ToRad(Object.Behavior::JoystickAngle()))" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchJoystick", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if joystick is pushed in a given direction.", "fullName": "Joystick pushed in a direction (4-way movement)", "functionType": "Condition", "name": "IsDirectionPushed4Way", "sentence": "_PARAM0_ is pushed in direction _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SpriteMultitouchJoystick::MultitouchJoystick::PropertyJoystickForce" }, "parameters": [ "Object", "Behavior", ">", "Object.Behavior::PropertyDeadZoneRadius()" ] }, { "type": { "value": "SpriteMultitouchJoystick::IsAngleIn4WayDirection" }, "parameters": [ "", "Object.Behavior::JoystickAngle()", "GetArgumentAsString(\"Direction\")", "" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchJoystick", "type": "behavior" }, { "description": "Direction", "name": "Direction", "supplementaryInformation": "[\"Up\",\"Down\",\"Left\",\"Right\"]", "type": "stringWithSelector" } ], "objectGroups": [] }, { "description": "Check if joystick is pushed in a given direction.", "fullName": "Joystick pushed in a direction (8-way movement)", "functionType": "Condition", "name": "IsDirectionPushed8Way", "sentence": "_PARAM0_ is pushed in direction _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SpriteMultitouchJoystick::MultitouchJoystick::PropertyJoystickForce" }, "parameters": [ "Object", "Behavior", ">", "Object.Behavior::PropertyDeadZoneRadius()" ] }, { "type": { "value": "SpriteMultitouchJoystick::IsAngleIn8WayDirection" }, "parameters": [ "", "Object.Behavior::JoystickAngle()", "GetArgumentAsString(\"Direction\")", "" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchJoystick", "type": "behavior" }, { "description": "Direction", "name": "Direction", "supplementaryInformation": "[\"Up\",\"Down\",\"Left\",\"Right\",\"UpLeft\",\"UpRight\",\"DownLeft\",\"DownRight\"]", "type": "stringWithSelector" } ], "objectGroups": [] }, { "description": "Check if a joystick is pressed.", "fullName": "Joystick pressed", "functionType": "Condition", "name": "IsPressed", "sentence": "Joystick _PARAM0_ is pressed", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SpriteMultitouchJoystick::MultitouchJoystick::PropertyTouchId" }, "parameters": [ "Object", "Behavior", "!=", "0" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchJoystick", "type": "behavior" } ], "objectGroups": [] }, { "description": "Reset the joystick values (except for angle, which stays the same)", "fullName": "Reset", "functionType": "Action", "name": "Reset", "private": true, "sentence": "Reset the joystick of _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SpriteMultitouchJoystick::MultitouchJoystick::SetJoystickForce" }, "parameters": [ "Object", "Behavior", "=", "0", "" ] }, { "type": { "value": "SpriteMultitouchJoystick::MultitouchJoystick::SetPropertyTouchId" }, "parameters": [ "Object", "Behavior", "=", "0" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchJoystick", "type": "behavior" } ], "objectGroups": [] }, { "description": "the multitouch controller identifier.", "fullName": "Multitouch controller identifier", "functionType": "ExpressionAndCondition", "group": "Multitouch Joystick configuration", "name": "ControllerIdentifier", "sentence": "the multitouch controller identifier", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyControllerIdentifier()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchJoystick", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "ControllerIdentifier", "name": "SetControllerIdentifier", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SpriteMultitouchJoystick::MultitouchJoystick::SetPropertyControllerIdentifier" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchJoystick", "type": "behavior" } ], "objectGroups": [] }, { "description": "the joystick name.", "fullName": "Joystick name", "functionType": "ExpressionAndCondition", "group": "Multitouch Joystick configuration", "name": "JoystickIdentifier", "sentence": "the joystick name", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnString" }, "parameters": [ "Object.Behavior::PropertyJoystickIdentifier()" ] } ] } ], "expressionType": { "type": "string" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchJoystick", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "JoystickIdentifier", "name": "SetJoystickIdentifier", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SpriteMultitouchJoystick::MultitouchJoystick::SetPropertyJoystickIdentifier" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsString(\"Value\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchJoystick", "type": "behavior" } ], "objectGroups": [] }, { "description": "the dead zone radius (range: 0 to 1) of the joystick. The deadzone is an area for which movement on sticks won't be taken into account (instead, the stick will be considered as not moved).", "fullName": "Dead zone radius", "functionType": "ExpressionAndCondition", "group": "Multitouch Joystick configuration", "name": "DeadZoneRadius", "sentence": "the dead zone radius", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Object.Behavior::PropertyDeadZoneRadius()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchJoystick", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "DeadZoneRadius", "name": "SetDeadZoneRadius", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SpriteMultitouchJoystick::MultitouchJoystick::SetPropertyDeadZoneRadius" }, "parameters": [ "Object", "Behavior", "=", "GetArgumentAsNumber(\"Value\")" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchJoystick", "type": "behavior" } ], "objectGroups": [] } ], "propertyDescriptors": [ { "value": "1", "type": "Number", "label": "Multitouch controller identifier (1, 2, 3, 4...)", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "ControllerIdentifier" }, { "value": "Primary", "type": "String", "label": "Joystick name", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "JoystickIdentifier" }, { "value": "0.4", "type": "Number", "label": "Dead zone radius (range: 0 to 1)", "description": "The deadzone is an area for which movement on sticks won't be taken into account (instead, the stick will be considered as not moved)", "group": "", "extraInformation": [], "hidden": false, "name": "DeadZoneRadius" }, { "value": "0", "type": "Number", "label": "Joystick angle (range: -180 to 180)", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "JoystickAngle" }, { "value": "0", "type": "Number", "label": "Joystick force (range: 0 to 1)", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "JoystickForce" }, { "value": "0", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "TouchId" }, { "value": "", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "TouchIndex" } ], "sharedPropertyDescriptors": [] }, { "description": "Detect button presses made on a touchscreen.", "fullName": "Multitouch button", "name": "MultitouchButton", "objectType": "", "eventsFunctions": [ { "fullName": "", "functionType": "Action", "name": "doStepPreEvents", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SpriteMultitouchJoystick::MultitouchButton::IsReleased" }, "parameters": [ "Object", "Behavior", "" ] } ], "actions": [ { "type": { "value": "SpriteMultitouchJoystick::MultitouchButton::SetPropertyIsReleased" }, "parameters": [ "Object", "Behavior", "no" ] }, { "type": { "value": "SpriteMultitouchJoystick::MultitouchButton::SetButtonState" }, "parameters": [ "Object", "Behavior", "\"Idle\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "SpriteMultitouchJoystick::MultitouchButton::IsPressed" }, "parameters": [ "Object", "Behavior", "" ] }, { "type": { "value": "HasAnyTouchOrMouseStarted" }, "parameters": [ "" ] } ], "actions": [ { "type": { "value": "SpriteMultitouchJoystick::MultitouchButton::SetPropertyTouchIndex" }, "parameters": [ "Object", "Behavior", "=", "0" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Repeat", "repeatExpression": "StartedTouchOrMouseCount()", "conditions": [], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CollisionPoint" }, "parameters": [ "Object", "TouchX(StartedTouchOrMouseId(Object.Behavior::PropertyTouchIndex()), Object.Layer(), 0)", "TouchY(StartedTouchOrMouseId(Object.Behavior::PropertyTouchIndex()), Object.Layer(), 0)" ] } ], "actions": [ { "type": { "value": "SpriteMultitouchJoystick::MultitouchButton::SetPropertyTouchId" }, "parameters": [ "Object", "Behavior", "=", "StartedTouchOrMouseId(Object.Behavior::PropertyTouchIndex())" ] }, { "type": { "value": "SpriteMultitouchJoystick::MultitouchButton::SetButtonState" }, "parameters": [ "Object", "Behavior", "\"Pressed\"", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SpriteMultitouchJoystick::MultitouchButton::SetPropertyTouchIndex" }, "parameters": [ "Object", "Behavior", "+", "1" ] } ] } ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SpriteMultitouchJoystick::MultitouchButton::IsPressed" }, "parameters": [ "Object", "Behavior", "" ] }, { "type": { "value": "HasTouchEnded" }, "parameters": [ "", "Object.Behavior::PropertyTouchId()" ] } ], "actions": [ { "type": { "value": "SpriteMultitouchJoystick::MultitouchButton::SetButtonState" }, "parameters": [ "Object", "Behavior", "\"Released\"", "" ] }, { "type": { "value": "SpriteMultitouchJoystick::MultitouchButton::SetPropertyIsReleased" }, "parameters": [ "Object", "Behavior", "yes" ] }, { "type": { "value": "SpriteMultitouchJoystick::MultitouchButton::SetPropertyTouchId" }, "parameters": [ "Object", "Behavior", "=", "0" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchButton", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if button is released.", "fullName": "Button released", "functionType": "Condition", "name": "IsReleased", "sentence": "Button _PARAM0_ is released", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SpriteMultitouchJoystick::MultitouchButton::PropertyIsReleased" }, "parameters": [ "Object", "Behavior" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchButton", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if button is pressed.", "fullName": "Button pressed", "functionType": "Condition", "name": "IsPressed", "sentence": "Button _PARAM0_ is pressed", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SpriteMultitouchJoystick::MultitouchButton::PropertyTouchId" }, "parameters": [ "Object", "Behavior", "!=", "0" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchButton", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "Button state", "functionType": "Action", "name": "SetButtonState", "private": true, "sentence": "Mark the button _PARAM0_ as _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SpriteMultitouchJoystick::SetButtonState" }, "parameters": [ "", "Object.Behavior::PropertyControllerIdentifier()", "Object.Behavior::PropertyButtonIdentifier()", "GetArgumentAsString(\"ButtonState\")", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchButton", "type": "behavior" }, { "description": "Button state", "name": "ButtonState", "supplementaryInformation": "[\"Idle\",\"Pressed\",\"Released\"]", "type": "stringWithSelector" } ], "objectGroups": [] } ], "propertyDescriptors": [ { "value": "1", "type": "Number", "label": "Multitouch controller identifier (1, 2, 3, 4...)", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "ControllerIdentifier" }, { "value": "A", "type": "String", "label": "Button identifier", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "ButtonIdentifier" }, { "value": "0", "type": "Number", "label": "TouchID", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "TouchId" }, { "value": "", "type": "Number", "label": "", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "TouchIndex" }, { "value": "", "type": "Boolean", "label": "Button released", "description": "", "group": "", "extraInformation": [], "hidden": true, "name": "IsReleased" } ], "sharedPropertyDescriptors": [] }, { "description": "Control a platformer character with a multitouch controller.", "fullName": "Platformer multitouch controller mapper", "name": "PlatformerMultitouchMapper", "objectType": "", "eventsFunctions": [ { "fullName": "", "functionType": "Action", "name": "doStepPreEvents", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SpriteMultitouchJoystick::IsDirectionPushed4Way" }, "parameters": [ "", "Object.Behavior::PropertyControllerIdentifier()", "Object.Behavior::PropertyJoystickIdentifier()", "\"Left\"", "" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateLeftKey" }, "parameters": [ "Object", "Property" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SpriteMultitouchJoystick::IsDirectionPushed4Way" }, "parameters": [ "", "Object.Behavior::PropertyControllerIdentifier()", "Object.Behavior::PropertyJoystickIdentifier()", "\"Right\"", "" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateRightKey" }, "parameters": [ "Object", "Property" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SpriteMultitouchJoystick::IsDirectionPushed4Way" }, "parameters": [ "", "Object.Behavior::PropertyControllerIdentifier()", "Object.Behavior::PropertyJoystickIdentifier()", "\"Up\"", "" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateUpKey" }, "parameters": [ "Object", "Property" ] }, { "type": { "value": "PlatformBehavior::SimulateLadderKey" }, "parameters": [ "Object", "Property" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SpriteMultitouchJoystick::IsDirectionPushed4Way" }, "parameters": [ "", "Object.Behavior::PropertyControllerIdentifier()", "Object.Behavior::PropertyJoystickIdentifier()", "\"Down\"", "" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateDownKey" }, "parameters": [ "Object", "Property" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SpriteMultitouchJoystick::IsButtonPressed" }, "parameters": [ "", "Object.Behavior::PropertyControllerIdentifier()", "Object.Behavior::PropertyJumpButton()", "\"Down\"" ] } ], "actions": [ { "type": { "value": "PlatformBehavior::SimulateJumpKey" }, "parameters": [ "Object", "Property" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SpriteMultitouchJoystick::PlatformerMultitouchMapper", "type": "behavior" } ], "objectGroups": [] } ], "propertyDescriptors": [ { "value": "", "type": "Behavior", "label": "Platform character behavior", "description": "", "group": "", "extraInformation": [ "PlatformBehavior::PlatformerObjectBehavior" ], "hidden": false, "name": "Property" }, { "value": "1", "type": "Number", "label": "Controller identifier (1, 2, 3, 4...)", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "ControllerIdentifier" }, { "value": "Primary", "type": "Choice", "label": "Joystick name", "description": "", "group": "Controls", "extraInformation": [ "Primary", "Secondary" ], "hidden": false, "name": "JoystickIdentifier" }, { "value": "A", "type": "String", "label": "Jump button name", "description": "", "group": "Controls", "extraInformation": [], "hidden": false, "name": "JumpButton" } ], "sharedPropertyDescriptors": [] }, { "description": "Control a top-down character with a multitouch controller.", "fullName": "Top-down multitouch controller mapper", "name": "TopDownMultitouchMapper", "objectType": "", "eventsFunctions": [ { "fullName": "", "functionType": "Action", "name": "doStepPreEvents", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SpriteMultitouchJoystick::TopDownMultitouchMapper::PropertyStickMode" }, "parameters": [ "Object", "Behavior", "=", "\"Analog\"" ] } ], "actions": [ { "type": { "value": "TopDownMovementBehavior::SimulateStick" }, "parameters": [ "Object", "TopDownMovement", "SpriteMultitouchJoystick::StickAngle(Object.Behavior::PropertyControllerIdentifier(), Object.Behavior::PropertyJoystickIdentifier())", "SpriteMultitouchJoystick::StickForce(Object.Behavior::PropertyControllerIdentifier(), Object.Behavior::PropertyJoystickIdentifier())" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SpriteMultitouchJoystick::TopDownMultitouchMapper::PropertyStickMode" }, "parameters": [ "Object", "Behavior", "=", "\"360°\"" ] } ], "actions": [ { "type": { "value": "TopDownMovementBehavior::SimulateStick" }, "parameters": [ "Object", "TopDownMovement", "SpriteMultitouchJoystick::StickAngle(Object.Behavior::PropertyControllerIdentifier(), Object.Behavior::PropertyJoystickIdentifier())", "sign(SpriteMultitouchJoystick::StickForce(Object.Behavior::PropertyControllerIdentifier(), Object.Behavior::PropertyJoystickIdentifier()))" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SpriteMultitouchJoystick::TopDownMultitouchMapper::PropertyStickMode" }, "parameters": [ "Object", "Behavior", "=", "\"8 Directions\"" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "TopDownMovementBehavior::DiagonalsAllowed" }, "parameters": [ "Object", "TopDownMovement" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SpriteMultitouchJoystick::IsDirectionPushed4Way" }, "parameters": [ "", "Object.Behavior::PropertyControllerIdentifier()", "Object.Behavior::PropertyJoystickIdentifier()", "\"Left\"", "" ] } ], "actions": [ { "type": { "value": "TopDownMovementBehavior::SimulateLeftKey" }, "parameters": [ "Object", "TopDownMovement" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SpriteMultitouchJoystick::IsDirectionPushed4Way" }, "parameters": [ "", "Object.Behavior::PropertyControllerIdentifier()", "Object.Behavior::PropertyJoystickIdentifier()", "\"Right\"", "" ] } ], "actions": [ { "type": { "value": "TopDownMovementBehavior::SimulateRightKey" }, "parameters": [ "Object", "TopDownMovement" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SpriteMultitouchJoystick::IsDirectionPushed4Way" }, "parameters": [ "", "Object.Behavior::PropertyControllerIdentifier()", "Object.Behavior::PropertyJoystickIdentifier()", "\"Up\"", "" ] } ], "actions": [ { "type": { "value": "TopDownMovementBehavior::SimulateUpKey" }, "parameters": [ "Object", "TopDownMovement" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SpriteMultitouchJoystick::IsDirectionPushed4Way" }, "parameters": [ "", "Object.Behavior::PropertyControllerIdentifier()", "Object.Behavior::PropertyJoystickIdentifier()", "\"Down\"", "" ] } ], "actions": [ { "type": { "value": "TopDownMovementBehavior::SimulateDownKey" }, "parameters": [ "Object", "TopDownMovement" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "TopDownMovementBehavior::DiagonalsAllowed" }, "parameters": [ "Object", "TopDownMovement" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SpriteMultitouchJoystick::IsDirectionPushed8Way" }, "parameters": [ "", "Object.Behavior::PropertyControllerIdentifier()", "Object.Behavior::PropertyJoystickIdentifier()", "\"Left\"", "" ] } ], "actions": [ { "type": { "value": "TopDownMovementBehavior::SimulateLeftKey" }, "parameters": [ "Object", "TopDownMovement" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SpriteMultitouchJoystick::IsDirectionPushed8Way" }, "parameters": [ "", "Object.Behavior::PropertyControllerIdentifier()", "Object.Behavior::PropertyJoystickIdentifier()", "\"Right\"", "" ] } ], "actions": [ { "type": { "value": "TopDownMovementBehavior::SimulateRightKey" }, "parameters": [ "Object", "TopDownMovement" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SpriteMultitouchJoystick::IsDirectionPushed8Way" }, "parameters": [ "", "Object.Behavior::PropertyControllerIdentifier()", "Object.Behavior::PropertyJoystickIdentifier()", "\"Up\"", "" ] } ], "actions": [ { "type": { "value": "TopDownMovementBehavior::SimulateUpKey" }, "parameters": [ "Object", "TopDownMovement" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SpriteMultitouchJoystick::IsDirectionPushed8Way" }, "parameters": [ "", "Object.Behavior::PropertyControllerIdentifier()", "Object.Behavior::PropertyJoystickIdentifier()", "\"Down\"", "" ] } ], "actions": [ { "type": { "value": "TopDownMovementBehavior::SimulateDownKey" }, "parameters": [ "Object", "TopDownMovement" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SpriteMultitouchJoystick::IsDirectionPushed8Way" }, "parameters": [ "", "Object.Behavior::PropertyControllerIdentifier()", "Object.Behavior::PropertyJoystickIdentifier()", "\"UpLeft\"", "" ] } ], "actions": [ { "type": { "value": "TopDownMovementBehavior::SimulateUpKey" }, "parameters": [ "Object", "TopDownMovement" ] }, { "type": { "value": "TopDownMovementBehavior::SimulateLeftKey" }, "parameters": [ "Object", "TopDownMovement" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SpriteMultitouchJoystick::IsDirectionPushed8Way" }, "parameters": [ "", "Object.Behavior::PropertyControllerIdentifier()", "Object.Behavior::PropertyJoystickIdentifier()", "\"UpRight\"", "" ] } ], "actions": [ { "type": { "value": "TopDownMovementBehavior::SimulateUpKey" }, "parameters": [ "Object", "TopDownMovement" ] }, { "type": { "value": "TopDownMovementBehavior::SimulateRightKey" }, "parameters": [ "Object", "TopDownMovement" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SpriteMultitouchJoystick::IsDirectionPushed8Way" }, "parameters": [ "", "Object.Behavior::PropertyControllerIdentifier()", "Object.Behavior::PropertyJoystickIdentifier()", "\"DownLeft\"", "" ] } ], "actions": [ { "type": { "value": "TopDownMovementBehavior::SimulateDownKey" }, "parameters": [ "Object", "TopDownMovement" ] }, { "type": { "value": "TopDownMovementBehavior::SimulateLeftKey" }, "parameters": [ "Object", "TopDownMovement" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SpriteMultitouchJoystick::IsDirectionPushed8Way" }, "parameters": [ "", "Object.Behavior::PropertyControllerIdentifier()", "Object.Behavior::PropertyJoystickIdentifier()", "\"DownRight\"", "" ] } ], "actions": [ { "type": { "value": "TopDownMovementBehavior::SimulateDownKey" }, "parameters": [ "Object", "TopDownMovement" ] }, { "type": { "value": "TopDownMovementBehavior::SimulateRightKey" }, "parameters": [ "Object", "TopDownMovement" ] } ] } ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "SpriteMultitouchJoystick::TopDownMultitouchMapper", "type": "behavior" } ], "objectGroups": [] } ], "propertyDescriptors": [ { "value": "", "type": "Behavior", "label": "Top-down movement behavior", "description": "", "group": "", "extraInformation": [ "TopDownMovementBehavior::TopDownMovementBehavior" ], "hidden": false, "name": "TopDownMovement" }, { "value": "1", "type": "Number", "label": "Controller identifier (1, 2, 3, 4...)", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "ControllerIdentifier" }, { "value": "Primary", "type": "Choice", "label": "Joystick name", "description": "", "group": "", "extraInformation": [ "Primary", "Secondary" ], "hidden": false, "name": "JoystickIdentifier" }, { "value": "Analog", "type": "Choice", "label": "Stick mode", "description": "", "group": "Controls", "extraInformation": [ "Analog", "360°", "8 Directions" ], "hidden": false, "name": "StickMode" } ], "sharedPropertyDescriptors": [] } ], "eventsBasedObjects": [ { "defaultName": "Joystick", "description": "Joystick for touchscreens.", "fullName": "Multitouch Joystick", "name": "SpriteMultitouchJoystick", "eventsFunctions": [ { "fullName": "", "functionType": "Action", "name": "onCreated", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "Create" }, "parameters": [ "", "Border", "0", "0", "" ] }, { "type": { "value": "Create" }, "parameters": [ "", "Thumb", "0", "0", "" ] }, { "type": { "value": "ChangePlan" }, "parameters": [ "Border", "=", "1" ] }, { "type": { "value": "ChangePlan" }, "parameters": [ "Thumb", "=", "2" ] }, { "type": { "value": "SetCenter" }, "parameters": [ "Border", "=", "0", "=", "0" ] }, { "type": { "value": "SetCenter" }, "parameters": [ "Thumb", "=", "0", "=", "0" ] }, { "type": { "value": "SpriteMultitouchJoystick::SpriteMultitouchJoystick::UpdateConfiguration" }, "parameters": [ "Object", "" ] }, { "type": { "value": "SetIncludedInParentCollisionMask" }, "parameters": [ "Thumb", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", "type": "object" } ], "objectGroups": [] }, { "fullName": "", "functionType": "Action", "name": "doStepPostEvents", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "MettreAutour" }, "parameters": [ "Thumb", "Border", "Border.MultitouchJoystick::JoystickForce() * Border.Width() / 2", "Border.MultitouchJoystick::JoystickAngle()" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", "type": "object" } ], "objectGroups": [] }, { "fullName": "", "functionType": "Action", "name": "onHotReloading", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SpriteMultitouchJoystick::SpriteMultitouchJoystick::UpdateConfiguration" }, "parameters": [ "Object", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", "type": "object" } ], "objectGroups": [] }, { "description": "Pass the object property values to the behavior.", "fullName": "Update configuration", "functionType": "Action", "name": "UpdateConfiguration", "private": true, "sentence": "Update the configuration of _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SpriteMultitouchJoystick::MultitouchJoystick::SetControllerIdentifier" }, "parameters": [ "Border", "MultitouchJoystick", "=", "Object.PropertyControllerIdentifier()", "" ] }, { "type": { "value": "SpriteMultitouchJoystick::MultitouchJoystick::SetJoystickIdentifier" }, "parameters": [ "Border", "MultitouchJoystick", "=", "Object.PropertyJoystickIdentifier()", "" ] }, { "type": { "value": "SpriteMultitouchJoystick::MultitouchJoystick::SetDeadZoneRadius" }, "parameters": [ "Border", "MultitouchJoystick", "=", "Object.PropertyDeadZoneRadius()", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", "type": "object" } ], "objectGroups": [] }, { "description": "De/activate control of the joystick.", "fullName": "De/activate control", "functionType": "Action", "name": "ActivateControl", "sentence": "Activate control of _PARAM0_: _PARAM1_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "GetArgumentAsBoolean" }, "parameters": [ "\"ShouldActivate\"" ] } ], "actions": [ { "type": { "value": "ActivateBehavior" }, "parameters": [ "Border", "MultitouchJoystick", "no" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "GetArgumentAsBoolean" }, "parameters": [ "\"ShouldActivate\"" ] } ], "actions": [ { "type": { "value": "ActivateBehavior" }, "parameters": [ "Border", "MultitouchJoystick", "yes" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", "type": "object" }, { "description": "Activate", "name": "ShouldActivate", "type": "yesorno" } ], "objectGroups": [] }, { "description": "Check if a stick is pressed.", "fullName": "Stick pressed", "functionType": "Condition", "name": "IsPressed", "sentence": "Stick _PARAM0_ is pressed", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SpriteMultitouchJoystick::MultitouchJoystick::IsPressed" }, "parameters": [ "Border", "MultitouchJoystick", "!=" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", "type": "object" } ], "objectGroups": [] }, { "description": "the joystick force (from 0 to 1).", "fullName": "Joystick force (deprecated)", "functionType": "ExpressionAndCondition", "name": "JoystickForce", "private": true, "sentence": "the joystick force", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Border.MultitouchJoystick::JoystickForce()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", "type": "object" } ], "objectGroups": [] }, { "description": "the strick force (from 0 to 1).", "fullName": "Stick force", "functionType": "ExpressionAndCondition", "name": "StickForce", "sentence": "the stick force", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Border.MultitouchJoystick::JoystickForce()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", "type": "object" } ], "objectGroups": [] }, { "description": "the stick force on X axis (from -1 at the left to 1 at the right).", "fullName": "Stick X force", "functionType": "ExpressionAndCondition", "name": "StickForceX", "sentence": "the stick X force", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Border.MultitouchJoystick::StickForceX()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", "type": "object" } ], "objectGroups": [] }, { "description": "the stick force on Y axis (from -1 at the top to 1 at the bottom).", "fullName": "Stick Y force", "functionType": "ExpressionAndCondition", "name": "StickForceY", "sentence": "the stick Y force", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Border.MultitouchJoystick::StickForceY()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", "type": "object" } ], "objectGroups": [] }, { "description": "Return the angle the joystick is pointing towards (from -180 to 180).", "fullName": "Joystick angle (deprecated)", "functionType": "Expression", "name": "JoystickAngle", "private": true, "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Border.MultitouchJoystick::JoystickAngle()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", "type": "object" } ], "objectGroups": [] }, { "description": "Return the angle the stick is pointing towards (from -180 to 180).", "fullName": "Stick angle", "functionType": "Expression", "name": "StickAngle", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Border.MultitouchJoystick::JoystickAngle()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", "type": "object" } ], "objectGroups": [] }, { "description": "Check if joystick is pushed in a given direction.", "fullName": "Joystick pushed in a direction (4-way movement)", "functionType": "Condition", "name": "IsDirectionPushed4Way", "sentence": "_PARAM0_ is pushed in direction _PARAM1_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SpriteMultitouchJoystick::MultitouchJoystick::IsDirectionPushed4Way" }, "parameters": [ "Border", "MultitouchJoystick", "GetArgumentAsString(\"Direction\")", "" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", "type": "object" }, { "description": "Direction", "name": "Direction", "supplementaryInformation": "[\"Up\",\"Down\",\"Left\",\"Right\"]", "type": "stringWithSelector" } ], "objectGroups": [] }, { "description": "Check if joystick is pushed in a given direction.", "fullName": "Joystick pushed in a direction (8-way movement)", "functionType": "Condition", "name": "IsDirectionPushed8Way", "sentence": "_PARAM0_ is pushed in direction _PARAM1_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "SpriteMultitouchJoystick::MultitouchJoystick::IsDirectionPushed8Way" }, "parameters": [ "Border", "MultitouchJoystick", "GetArgumentAsString(\"Direction\")", "" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", "type": "object" }, { "description": "Direction", "name": "Direction", "supplementaryInformation": "[\"Up\",\"Down\",\"Left\",\"Right\",\"UpLeft\",\"UpRight\",\"DownLeft\",\"DownRight\"]", "type": "stringWithSelector" } ], "objectGroups": [] }, { "description": "the multitouch controller identifier (1, 2, 3, 4...).", "fullName": "Multitouch controller identifier", "functionType": "ExpressionAndCondition", "group": "Multitouch Joystick configuration", "name": "ControllerIdentifier", "sentence": "the multitouch controller identifier", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Border.MultitouchJoystick::PropertyControllerIdentifier()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", "type": "object" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "ControllerIdentifier", "name": "SetControllerIdentifier", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SpriteMultitouchJoystick::MultitouchJoystick::SetControllerIdentifier" }, "parameters": [ "Border", "MultitouchJoystick", "=", "GetArgumentAsNumber(\"Value\")", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", "type": "object" } ], "objectGroups": [] }, { "description": "the joystick name of the object.", "fullName": "Joystick name", "functionType": "ExpressionAndCondition", "group": "Multitouch Joystick configuration", "name": "JoystickIdentifier", "sentence": "the joystick name", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnString" }, "parameters": [ "Border.MultitouchJoystick::PropertyJoystickIdentifier()" ] } ] } ], "expressionType": { "type": "string" }, "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", "type": "object" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "JoystickIdentifier", "name": "SetJoystickIdentifier", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SpriteMultitouchJoystick::MultitouchJoystick::SetJoystickIdentifier" }, "parameters": [ "Border", "MultitouchJoystick", "=", "GetArgumentAsString(\"Value\")", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", "type": "object" } ], "objectGroups": [] }, { "description": "the dead zone radius of the joystick (range: 0 to 1). The deadzone is an area for which movement on sticks won't be taken into account (instead, the stick will be considered as not moved).", "fullName": "Dead zone radius", "functionType": "ExpressionAndCondition", "group": "Multitouch Joystick configuration", "name": "DeadZoneRadius", "sentence": "the dead zone radius", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetReturnNumber" }, "parameters": [ "Border.MultitouchJoystick::PropertyDeadZoneRadius()" ] } ] } ], "expressionType": { "type": "expression" }, "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", "type": "object" } ], "objectGroups": [] }, { "fullName": "", "functionType": "ActionWithOperator", "getterName": "DeadZoneRadius", "name": "SetDeadZoneRadius", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SpriteMultitouchJoystick::MultitouchJoystick::SetDeadZoneRadius" }, "parameters": [ "Border", "MultitouchJoystick", "=", "GetArgumentAsNumber(\"Value\")", "" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", "type": "object" } ], "objectGroups": [] } ], "propertyDescriptors": [ { "value": "1", "type": "Number", "label": "Multitouch controller identifier (1, 2, 3, 4...)", "description": "", "group": "", "extraInformation": [], "hidden": false, "name": "ControllerIdentifier" }, { "value": "Primary", "type": "Choice", "label": "Joystick name", "description": "", "group": "", "extraInformation": [ "Primary", "Secondary" ], "hidden": false, "name": "JoystickIdentifier" }, { "value": "0.4", "type": "Number", "label": "Dead zone radius (range: 0 to 1)", "description": "The deadzone is an area for which movement on sticks won't be taken into account (instead, the stick will be considered as not moved)", "group": "", "extraInformation": [], "hidden": false, "name": "DeadZoneRadius" }, { "value": "Center-center", "type": "String", "label": "", "description": "Only used by the scene editor.", "group": "", "extraInformation": [ "Thumb" ], "hidden": true, "name": "ThumbAnchorOrigin" }, { "value": "Center-center", "type": "Number", "label": "", "description": "Only used by the scene editor.", "group": "", "extraInformation": [], "hidden": true, "name": "ThumbAnchorTarget" }, { "value": "true", "type": "Boolean", "label": "", "description": "Only used by the scene editor.", "group": "", "extraInformation": [ "Thumb" ], "hidden": true, "name": "ThumbIsScaledProportionally" }, { "value": "Center-center", "type": "String", "label": "", "description": "Only used by the scene editor.", "group": "", "extraInformation": [], "hidden": true, "name": "ParentOrigin" } ], "objects": [ { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "Thumb", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [], "behaviors": [], "animations": [ { "name": "Idle", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [] } ] } ] }, { "adaptCollisionMaskAutomatically": false, "assetStoreId": "", "name": "Border", "type": "Sprite", "updateIfNotVisible": false, "variables": [], "effects": [], "behaviors": [ { "name": "MultitouchJoystick", "type": "SpriteMultitouchJoystick::MultitouchJoystick", "ControllerIdentifier": 1, "JoystickIdentifier": "Primary", "FloatingEnabled": false, "DeadZoneRadius": 0.4, "JoystickAngle": 0, "JoystickForce": 0, "TouchId": 0, "TouchIndex": 0 } ], "animations": [ { "name": "Idle", "useMultipleDirections": false, "directions": [ { "looping": false, "timeBetweenFrames": 0.08, "sprites": [] } ] } ] } ], "objectsFolderStructure": { "folderName": "__ROOT", "children": [ { "objectName": "Thumb" }, { "objectName": "Border" } ] } } ] }, { "author": "Tristan Rhodes (https://victrisgames.itch.io/)", "category": "Visual effect", "extensionNamespace": "", "fullName": "Shake object", "helpPath": "https://victrisgames.itch.io/gdevelop-camera-shake-example", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLWFycm93LWFsbCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0xMywxMUgxOEwxNi41LDkuNUwxNy45Miw4LjA4TDIxLjg0LDEyTDE3LjkyLDE1LjkyTDE2LjUsMTQuNUwxOCwxM0gxM1YxOEwxNC41LDE2LjVMMTUuOTIsMTcuOTJMMTIsMjEuODRMOC4wOCwxNy45Mkw5LjUsMTYuNUwxMSwxOFYxM0g2TDcuNSwxNC41TDYuMDgsMTUuOTJMMi4xNiwxMkw2LjA4LDguMDhMNy41LDkuNUw2LDExSDExVjZMOS41LDcuNUw4LjA4LDYuMDhMMTIsMi4xNkwxNS45Miw2LjA4TDE0LjUsNy41TDEzLDZWMTFaIiAvPjwvc3ZnPg==", "name": "ShakeObject", "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/arrow-all.svg", "shortDescription": "Shake an object.", "version": "1.5.6", "description": [ "Shake an object (position, angle or scale).", "", "It can be used for:", "- Hit or impact", "- Object slowly rocking back and forth (like a ship)", "- Simulate engine vibration, earthquake, or pulsing", "", "The top-down RPG example uses this extension for damage animations ([open the project online](https://editor.gdevelop.io/?project=example://top-down-rpg))." ], "origin": { "identifier": "ShakeObject", "name": "gdevelop-extension-store" }, "tags": [ "shaking", "object", "effect", "shake", "scale", "position", "rotate", "angle" ], "authorIds": [ "gqDaZjCfevOOxBYkK6zlhtZnXCg1" ], "dependencies": [], "eventsFunctions": [], "eventsBasedBehaviors": [ { "description": "Shake an object, using one or more ways to shake (position, angle).\nThis behavior can be used on any type of object.", "fullName": "Shake object (position, angle)", "name": "ShakeObject_PositionAngle", "objectType": "", "eventsFunctions": [ { "description": "Shake an object, using one or more ways to shake (position, angle). Make sure to \"Stop shaking\" before starting a new shake if it uses different parameters. ", "fullName": "Shake object (position, angle)", "functionType": "Action", "name": "ShakeObject_PositionAngle", "sentence": "Shake object _PARAM0_ for _PARAM2_ seconds. Modify position amplitude _PARAM3_ on X axis and _PARAM4_ on Y axis, angle rotation amplitude _PARAM5_. Wait _PARAM6_ seconds between shakes. Keep shaking until stopped: _PARAM7_", "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Shake Object", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Start/Reset duration timer" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ResetObjectTimer" }, "parameters": [ "Object", "\"__ShakeObject_DurationTimer\"" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Pass input parameters to global variables so that onScenePostEvents can use them" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_Duration", "=", "GetArgumentAsNumber(\"Duration\")" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerX", "=", "GetArgumentAsNumber(\"PowerX\")" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerY", "=", "GetArgumentAsNumber(\"PowerY\")" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerAngle", "=", "GetArgumentAsNumber(\"PowerAngle\")" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_TimeBetweenShakes", "=", "GetArgumentAsNumber(\"TimeBetweenShakes\")" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Determine if the shake should keep going until stopped" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "Object", "__ShakeObject_ShakeForever", "False" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "GetArgumentAsBoolean" }, "parameters": [ "\"ShakeForever\"" ] } ], "actions": [ { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "Object", "__ShakeObject_ShakeForever", "True" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Add default values if none were provided" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_Duration", "=", "0" ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_Duration", "=", "0.5" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_TimeBetweenShakes", "=", "0" ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_TimeBetweenShakes", "=", "0.08" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "If duration is less than a single shake, increase duration to make 1 full shake" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_Duration", "<", "Object.Variable(__ShakeObject_TimeBetweenShakes)" ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_Duration", "=", "Object.Variable(__ShakeObject_TimeBetweenShakes)" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Detect initial shake" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_ShakeInProgress", "=", "0" ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_InitialShake", "=", "1" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Initiate the onScenePostEvents function" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_ShakeInProgress", "=", "1" ] } ] } ], "parameters": [] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "ShakeObject::ShakeObject_PositionAngle", "type": "behavior" }, { "description": "Duration of shake (in seconds) (Default: 0.5) ", "name": "Duration", "type": "expression" }, { "description": "Amplitude of postion shake in X direction (in pixels) (For example: 5)", "name": "PowerX", "type": "expression" }, { "description": "Amplitude of position shake in Y direction (in pixels) (For example: 5)", "longDescription": "Use a negative number to make the single-shake move in the opposite direction.", "name": "PowerY", "type": "expression" }, { "description": "Amplitude of angle rotation shake (in degrees) (For example: 5)", "name": "PowerAngle", "type": "expression" }, { "description": "Amount of time between shakes (in seconds) (Default: 0.08)", "longDescription": "For a single-shake effect, set it to the same value as \"Duration\".", "name": "TimeBetweenShakes", "type": "expression" }, { "description": "Keep shaking until stopped", "longDescription": "Duration value will be ignored", "name": "ShakeForever", "type": "yesorno" } ], "objectGroups": [] }, { "fullName": "", "functionType": "Action", "name": "doStepPostEvents", "sentence": "", "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Shake Object", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Start shaking", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_ShakeInProgress", "=", "1" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Keep object shaking forever (if desired)" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "Object", "__ShakeObject_ShakeForever", "True" ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_Duration", "=", "100" ] }, { "type": { "value": "ResetObjectTimer" }, "parameters": [ "Object", "\"__ShakeObject_DurationTimer\"" ] } ] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Calculate movement of the shake", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Run once before every shake movement" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_InitialShake", "=", "1" ] }, { "type": { "value": "ObjectTimer" }, "parameters": [ "Object", "\"__ShakeObject_ShakeTimer\"", "Object.Variable(__ShakeObject_TimeBetweenShakes)" ] } ] } ], "actions": [ { "type": { "value": "ResetObjectTimer" }, "parameters": [ "Object", "\"__ShakeObject_ShakeTimer\"" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_ShakeCounter", "+", "1" ] } ], "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Correct for drift and reset drift tracking variables", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Move to correct any drift from previous shake" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerX", "!=", "0" ] }, { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerY", "!=", "0" ] } ] } ], "actions": [ { "type": { "value": "MettreX" }, "parameters": [ "Object", "-", "Object.Variable(__ShakeObject_DisplacementTravelledX)" ] }, { "type": { "value": "MettreY" }, "parameters": [ "Object", "-", "Object.Variable(__ShakeObject_DisplacementTravelledY)" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerAngle", "!=", "0" ] } ], "actions": [ { "type": { "value": "SetAngle" }, "parameters": [ "Object", "-", "Object.Variable(__ShakeObject_AngleTravelled)" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Reset drift detection variables" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_DisplacementTravelledX", "=", "0" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_DisplacementTravelledY", "=", "0" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_AngleTravelled", "=", "0" ] } ] } ], "parameters": [] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Calculate Position Shake" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerX", "!=", "0" ] }, { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerY", "!=", "0" ] } ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "PositionDisplacement = (DesiredDuration - RunningTimer) / DesiredDuration * Amplitude * [-1 or 1]" }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Make initial shake NOT random so users can set a direction for a one-shake effect" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_InitialShake", "=", "1" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerX", "!=", "0" ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_DisplacementX", "=", "(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerX)" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerY", "!=", "0" ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_DisplacementY", "=", "(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerY)" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "After initial shake pick a random direction" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_InitialShake", "=", "0" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerX", "!=", "0" ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_DisplacementX", "=", "(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerX) * RandomWithStep(-1, 1, 2)" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerY", "!=", "0" ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_DisplacementY", "=", "(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerY) * RandomWithStep(-1, 1, 2)" ] } ] } ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Calculate Rotation (angle) shake " }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerAngle", "!=", "0" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Every \"even\" shake, rotate clockwise" }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "AngleDisplacement = (DesiredDuration - RunningTimer) / DesiredDuration * Amplitude" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Egal" }, "parameters": [ "mod(Object.Variable(__ShakeObject_ShakeCounter),2)", "=", "0" ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_DisplacementAngle", "=", "(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerAngle)" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Every \"odd\" shake, rotate counter-clockwise" }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "AngleDisplacement = (DesiredDuration - RunningTimer) / DesiredDuration * Amplitude" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Egal" }, "parameters": [ "mod(Object.Variable(__ShakeObject_ShakeCounter),2)", "=", "1" ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_DisplacementAngle", "=", "-1 *(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerAngle)" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Save that initial shake has been processed" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_InitialShake", "=", "0" ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Move object", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Calculate the fraction of shake that occured during this frame" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_PercentTimeElapsedThisFrame", "=", "min(1,TimeDelta()/Object.Variable(__ShakeObject_TimeBetweenShakes))" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Increase change for the first half of the shake (move away from original values)" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "ObjectTimer" }, "parameters": [ "Object", "\"__ShakeObject_ShakeTimer\"", "Object.Variable(__ShakeObject_TimeBetweenShakes)/2" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Change position" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerX", "!=", "0" ] }, { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerY", "!=", "0" ] } ] } ], "actions": [ { "type": { "value": "MettreX" }, "parameters": [ "Object", "+", "round(1024 * Object.Variable(__ShakeObject_DisplacementX) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" ] }, { "type": { "value": "MettreY" }, "parameters": [ "Object", "+", "round(1024 * Object.Variable(__ShakeObject_DisplacementY) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Save movement to calculate drift" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_DisplacementTravelledX", "+", "round(1024 * Object.Variable(__ShakeObject_DisplacementX) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_DisplacementTravelledY", "+", "round(1024 * Object.Variable(__ShakeObject_DisplacementY) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Change angle" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Egal" }, "parameters": [ "Object.Variable(__ShakeObject_PowerAngle)", "!=", "0" ] } ], "actions": [ { "type": { "value": "SetAngle" }, "parameters": [ "Object", "+", "round(1024 * Object.Variable(__ShakeObject_DisplacementAngle) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Save movement to calculate drift" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_AngleTravelled", "+", "round(1024 * Object.Variable(__ShakeObject_DisplacementAngle) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" ] } ] } ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Decrease change the second half of the shake (return to original position)" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ObjectTimer" }, "parameters": [ "Object", "\"__ShakeObject_ShakeTimer\"", "Object.Variable(__ShakeObject_TimeBetweenShakes)/2" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Change position" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerX", "!=", "0" ] }, { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerY", "!=", "0" ] } ] } ], "actions": [ { "type": { "value": "MettreX" }, "parameters": [ "Object", "-", "round(1024 * Object.Variable(__ShakeObject_DisplacementX) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" ] }, { "type": { "value": "MettreY" }, "parameters": [ "Object", "-", "round(1024 * Object.Variable(__ShakeObject_DisplacementY) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Save movement to calculate drift" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_DisplacementTravelledX", "-", "round(1024 * Object.Variable(__ShakeObject_DisplacementX) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_DisplacementTravelledY", "-", "round(1024 * Object.Variable(__ShakeObject_DisplacementY) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Change angle" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Egal" }, "parameters": [ "Object.Variable(__ShakeObject_PowerAngle)", "!=", "0" ] } ], "actions": [ { "type": { "value": "SetAngle" }, "parameters": [ "Object", "-", "round(1024 * Object.Variable(__ShakeObject_DisplacementAngle) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Save movement to calculate drift" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_AngleTravelled", "-", "round(1024 * Object.Variable(__ShakeObject_DisplacementAngle) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" ] } ] } ] } ] } ], "parameters": [] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Stop shaking", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Stop shaking when the duration has been reached (or if the stop shaking function was called)" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "ObjectTimer" }, "parameters": [ "Object", "\"__ShakeObject_DurationTimer\"", "Object.Variable(__ShakeObject_Duration)" ] }, { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_ShakeInProgress", "=", "-1" ] } ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_ShakeInProgress", "=", "0" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_ShakeCounter", "=", "0" ] } ], "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Correct for drift and reset drift tracking variables", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Move to correct any drift from previous shake" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerX", "!=", "0" ] }, { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerY", "!=", "0" ] } ] } ], "actions": [ { "type": { "value": "MettreX" }, "parameters": [ "Object", "-", "Object.Variable(__ShakeObject_DisplacementTravelledX)" ] }, { "type": { "value": "MettreY" }, "parameters": [ "Object", "-", "Object.Variable(__ShakeObject_DisplacementTravelledY)" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerAngle", "!=", "0" ] } ], "actions": [ { "type": { "value": "SetAngle" }, "parameters": [ "Object", "-", "Object.Variable(__ShakeObject_AngleTravelled)" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Reset drift detection variables" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_DisplacementTravelledX", "=", "0" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_DisplacementTravelledY", "=", "0" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_AngleTravelled", "=", "0" ] } ] } ], "parameters": [] } ] } ], "parameters": [] } ], "parameters": [] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "ShakeObject::ShakeObject_PositionAngle", "type": "behavior" } ], "objectGroups": [] }, { "description": "Stop any shaking of object that was initiated by the Shake Object extension.", "fullName": "Stop shaking the object", "functionType": "Action", "name": "StopShaking", "sentence": "Stop shaking _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ShakeObject::ShakeObject_PositionAngle::IsShaking" }, "parameters": [ "Object", "Behavior", "" ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_ShakeInProgress", "=", "-1" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "ShakeObject::ShakeObject_PositionAngle", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if an object is shaking.", "fullName": "Check if an object is shaking", "functionType": "Condition", "name": "IsShaking", "sentence": "_PARAM0_ is shaking", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_ShakeInProgress", "=", "1" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "ShakeObject::ShakeObject_PositionAngle", "type": "behavior" } ], "objectGroups": [] } ], "propertyDescriptors": [], "sharedPropertyDescriptors": [] }, { "description": "Shake an object, using one or more ways to shake (position, angle, scale)\nThis behavior can only be used on sprite objects.", "fullName": "Shake object (position, angle, scale)", "name": "ShakeObject_PositionAngleScale", "objectType": "Sprite", "eventsFunctions": [ { "description": "Shake an object, using one or more ways to shake (position, angle, scale). Make sure to \"Stop shaking\" before starting a new shake if it uses different parameters.", "fullName": "Shake object (position, angle, scale)", "functionType": "Action", "name": "ShakeObject_PositionAngleScale", "sentence": "Shake object _PARAM0_ for _PARAM2_ seconds. Modify position amplitude _PARAM3_ on X axis and _PARAM4_ on Y axis, angle rotation amplitude _PARAM5_, and scale amplitude _PARAM6_. Wait _PARAM7_ seconds between shakes. Keep shaking until stopped: _PARAM8_", "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Shake Object", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Start/Reset duration timer" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ResetObjectTimer" }, "parameters": [ "Object", "\"__ShakeObject_DurationTimer\"" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Pass input parameters to global variables so that onScenePostEvents can use them" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_Duration", "=", "GetArgumentAsNumber(\"Duration\")" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerX", "=", "GetArgumentAsNumber(\"PowerX\")" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerY", "=", "GetArgumentAsNumber(\"PowerY\")" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerAngle", "=", "GetArgumentAsNumber(\"PowerAngle\")" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerScale", "=", "GetArgumentAsNumber(\"PowerScale\")" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_TimeBetweenShakes", "=", "GetArgumentAsNumber(\"TimeBetweenShakes\")" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Determine if the shake should keep going until stopped" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "Object", "__ShakeObject_ShakeForever", "False" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "GetArgumentAsBoolean" }, "parameters": [ "\"ShakeForever\"" ] } ], "actions": [ { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "Object", "__ShakeObject_ShakeForever", "True" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Add default values if none were provided" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_Duration", "=", "0" ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_Duration", "=", "0.5" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_TimeBetweenShakes", "=", "0" ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_TimeBetweenShakes", "=", "0.08" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "If duration is less than a single shake, increase duration to make 1 full shake" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_Duration", "<", "Object.Variable(__ShakeObject_TimeBetweenShakes)" ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_Duration", "=", "Object.Variable(__ShakeObject_TimeBetweenShakes)" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Detect initial shake" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_ShakeInProgress", "=", "0" ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_InitialShake", "=", "1" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Initiate the onScenePostEvents function" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_ShakeInProgress", "=", "1" ] } ] } ], "parameters": [] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "Sprite", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "ShakeObject::ShakeObject_PositionAngleScale", "type": "behavior" }, { "description": "Duration of shake (in seconds) (Default: 0.5)", "name": "Duration", "type": "expression" }, { "description": "Amplitude of postion shake in X direction (in pixels) (For example: 5)", "name": "PowerX", "type": "expression" }, { "description": "Amplitude of position shake in Y direction (in pixels) (For example: 5)", "longDescription": "Use a negative number to make the single-shake move in the opposite direction.", "name": "PowerY", "type": "expression" }, { "description": "Amplitude of angle rotation shake (in degrees) (For example: 5)", "name": "PowerAngle", "type": "expression" }, { "description": "Amplitude of scale shake (in percent change) (For example: 5)", "name": "PowerScale", "type": "expression" }, { "description": "Amount of time between shakes (in seconds) (Default: 0.08)", "longDescription": "For a single-shake effect, set it to the same value as \"Duration\".", "name": "TimeBetweenShakes", "type": "expression" }, { "description": "Keep shaking until stopped", "longDescription": "Duration value will be ignored", "name": "ShakeForever", "type": "yesorno" } ], "objectGroups": [] }, { "fullName": "", "functionType": "Action", "name": "doStepPostEvents", "sentence": "", "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Shake Object", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Start shaking", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_ShakeInProgress", "=", "1" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Keep object shaking forever (if desired)" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "Object", "__ShakeObject_ShakeForever", "True" ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_Duration", "=", "100" ] }, { "type": { "value": "ResetObjectTimer" }, "parameters": [ "Object", "\"__ShakeObject_DurationTimer\"" ] } ] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Calculate movement of the shake", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Run once before every shake movement" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_InitialShake", "=", "1" ] }, { "type": { "value": "ObjectTimer" }, "parameters": [ "Object", "\"__ShakeObject_ShakeTimer\"", "Object.Variable(__ShakeObject_TimeBetweenShakes)" ] } ] } ], "actions": [ { "type": { "value": "ResetObjectTimer" }, "parameters": [ "Object", "\"__ShakeObject_ShakeTimer\"" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_ShakeCounter", "+", "1" ] } ], "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "folded": true, "name": "Correct for drift and reset drift tracking variables", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Move to correct any drift from previous shake" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerX", "!=", "0" ] }, { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerY", "!=", "0" ] } ] } ], "actions": [ { "type": { "value": "MettreX" }, "parameters": [ "Object", "-", "Object.Variable(__ShakeObject_DisplacementTravelledX)" ] }, { "type": { "value": "MettreY" }, "parameters": [ "Object", "-", "Object.Variable(__ShakeObject_DisplacementTravelledY)" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerAngle", "!=", "0" ] } ], "actions": [ { "type": { "value": "SetAngle" }, "parameters": [ "Object", "-", "Object.Variable(__ShakeObject_AngleTravelled)" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerScale", "!=", "0" ] } ], "actions": [ { "type": { "value": "ChangeScale" }, "parameters": [ "Object", "-", "Object.Variable(__ShakeObject_ScaleTravelled)" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Reset drift detection variables" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_DisplacementTravelledX", "=", "0" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_DisplacementTravelledY", "=", "0" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_AngleTravelled", "=", "0" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_ScaleTravelled", "=", "0" ] } ] } ], "parameters": [] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Calculate Position Shake" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerX", "!=", "0" ] }, { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerY", "!=", "0" ] } ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "PositionDisplacement = (DesiredDuration - RunningTimer) / DesiredDuration * Amplitude * [-1 or 1]" }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Make initial shake NOT random so users can set a direction for a one-shake effect" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_InitialShake", "=", "1" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerX", "!=", "0" ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_DisplacementX", "=", "(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerX)" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerY", "!=", "0" ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_DisplacementY", "=", "(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerY)" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "After initial shake pick a random direction" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_InitialShake", "=", "0" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerX", "!=", "0" ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_DisplacementX", "=", "(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerX) * RandomWithStep(-1, 1, 2)" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerY", "!=", "0" ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_DisplacementY", "=", "(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerY) * RandomWithStep(-1, 1, 2)" ] } ] } ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Calculate Rotation (angle) shake " }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerAngle", "!=", "0" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Every \"even\" shake, rotate clockwise" }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "AngleDisplacement = (DesiredDuration - RunningTimer) / DesiredDuration * Amplitude" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Egal" }, "parameters": [ "mod(Object.Variable(__ShakeObject_ShakeCounter),2)", "=", "0" ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_DisplacementAngle", "=", "-1 * (Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerAngle)" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Every \"odd\" shake, rotate counter-clockwise" }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "AngleDisplacement = (DesiredDuration - RunningTimer) / DesiredDuration * Amplitude" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Egal" }, "parameters": [ "mod(Object.Variable(__ShakeObject_ShakeCounter),2)", "=", "1" ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_DisplacementAngle", "=", "(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerAngle)" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Calculate Scale shake" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerScale", "!=", "0" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Calculate object scale displacement, with linear decay over time" }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "ScaleDisplacement = (DesiredDuration - RunningTimer) / DesiredDuration * Amplitude * 1/100" }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Every even shake, increase scale" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Egal" }, "parameters": [ "mod(Object.Variable(__ShakeObject_ShakeCounter),2)", "=", "0" ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_DisplacementScale", "=", "-1 * (Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerScale) * (1/100)" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Every \"odd\" shake, decrease scale" }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "ScaleDisplacement = -1 * (DesiredDuration - RunningTimer) / DesiredDuration * Amplitude * 1/100" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Egal" }, "parameters": [ "mod(Object.Variable(__ShakeObject_ShakeCounter),2)", "=", "1" ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_DisplacementScale", "=", "(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerScale) * (1/100)" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Save that initial shake has been processed" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_InitialShake", "=", "0" ] } ] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Move object", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Calculate the fraction of shake that occured during this frame" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_PercentTimeElapsedThisFrame", "=", "min(1,TimeDelta()/Object.Variable(__ShakeObject_TimeBetweenShakes))" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Increase change for the first half of the shake (move away from original values)" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "inverted": true, "value": "ObjectTimer" }, "parameters": [ "Object", "\"__ShakeObject_ShakeTimer\"", "Object.Variable(__ShakeObject_TimeBetweenShakes)/2" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Change position" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerX", "!=", "0" ] }, { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerY", "!=", "0" ] } ] } ], "actions": [ { "type": { "value": "MettreX" }, "parameters": [ "Object", "+", "round(1024 * Object.Variable(__ShakeObject_DisplacementX) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" ] }, { "type": { "value": "MettreY" }, "parameters": [ "Object", "+", "round(1024 * Object.Variable(__ShakeObject_DisplacementY) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Save movement to calculate drift" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_DisplacementTravelledX", "+", "round(1024 * Object.Variable(__ShakeObject_DisplacementX) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_DisplacementTravelledY", "+", "round(1024 * Object.Variable(__ShakeObject_DisplacementY) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Change angle" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Egal" }, "parameters": [ "Object.Variable(__ShakeObject_PowerAngle)", "!=", "0" ] } ], "actions": [ { "type": { "value": "SetAngle" }, "parameters": [ "Object", "+", "round(1024 * Object.Variable(__ShakeObject_DisplacementAngle) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Save movement to calculate drift" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_AngleTravelled", "+", "round(1024 * Object.Variable(__ShakeObject_DisplacementAngle) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Change scale" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Egal" }, "parameters": [ "Object.Variable(__ShakeObject_PowerScale)", "!=", "0" ] } ], "actions": [ { "type": { "value": "ChangeScale" }, "parameters": [ "Object", "+", "round(1024 * Object.Variable(__ShakeObject_DisplacementScale) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Save movement to calculate drift" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_ScaleTravelled", "+", "round(1024 * Object.Variable(__ShakeObject_DisplacementScale) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" ] } ] } ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Decrease change the second half of the shake (return to original position)" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ObjectTimer" }, "parameters": [ "Object", "\"__ShakeObject_ShakeTimer\"", "Object.Variable(__ShakeObject_TimeBetweenShakes)/2" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Change position" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerX", "!=", "0" ] }, { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerY", "!=", "0" ] } ] } ], "actions": [ { "type": { "value": "MettreX" }, "parameters": [ "Object", "-", "round(1024 * Object.Variable(__ShakeObject_DisplacementX) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" ] }, { "type": { "value": "MettreY" }, "parameters": [ "Object", "-", "round(1024 * Object.Variable(__ShakeObject_DisplacementY) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Save movement to calculate drift" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_DisplacementTravelledX", "-", "round(1024 * Object.Variable(__ShakeObject_DisplacementX) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_DisplacementTravelledY", "-", "round(1024 * Object.Variable(__ShakeObject_DisplacementY) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Change angle" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Egal" }, "parameters": [ "Object.Variable(__ShakeObject_PowerAngle)", "!=", "0" ] } ], "actions": [ { "type": { "value": "SetAngle" }, "parameters": [ "Object", "-", "round(1024 * Object.Variable(__ShakeObject_DisplacementAngle) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Save movement to calculate drift" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_AngleTravelled", "-", "round(1024 * Object.Variable(__ShakeObject_DisplacementAngle) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Change scale" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "Egal" }, "parameters": [ "Object.Variable(__ShakeObject_PowerScale)", "!=", "0" ] } ], "actions": [ { "type": { "value": "ChangeScale" }, "parameters": [ "Object", "-", "round(1024 * Object.Variable(__ShakeObject_DisplacementScale) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Save movement to calculate drift" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_ScaleTravelled", "-", "round(1024 * Object.Variable(__ShakeObject_DisplacementScale) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" ] } ] } ] } ] } ], "parameters": [] } ] } ], "parameters": [] }, { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Stop shaking", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Stop shaking when the duration has been reached (or if the stop shaking function was called)" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "ObjectTimer" }, "parameters": [ "Object", "\"__ShakeObject_DurationTimer\"", "Object.Variable(__ShakeObject_Duration)" ] }, { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_ShakeInProgress", "=", "-1" ] } ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_ShakeInProgress", "=", "0" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_ShakeCounter", "=", "0" ] } ], "events": [ { "colorB": 228, "colorG": 176, "colorR": 74, "creationTime": 0, "name": "Correct for drift and reset drift tracking variables", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Move to correct any drift from previous shake" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerX", "!=", "0" ] }, { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerY", "!=", "0" ] } ] } ], "actions": [ { "type": { "value": "MettreX" }, "parameters": [ "Object", "-", "Object.Variable(__ShakeObject_DisplacementTravelledX)" ] }, { "type": { "value": "MettreY" }, "parameters": [ "Object", "-", "Object.Variable(__ShakeObject_DisplacementTravelledY)" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerAngle", "!=", "0" ] } ], "actions": [ { "type": { "value": "SetAngle" }, "parameters": [ "Object", "-", "Object.Variable(__ShakeObject_AngleTravelled)" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_PowerScale", "!=", "0" ] } ], "actions": [ { "type": { "value": "ChangeScale" }, "parameters": [ "Object", "-", "Object.Variable(__ShakeObject_ScaleTravelled)" ] } ] }, { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Reset drift detection variables" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_DisplacementTravelledX", "=", "0" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_DisplacementTravelledY", "=", "0" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_AngleTravelled", "=", "0" ] }, { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_ScaleTravelled", "=", "0" ] } ] } ], "parameters": [] } ] } ], "parameters": [] } ], "parameters": [] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "Sprite", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "ShakeObject::ShakeObject_PositionAngleScale", "type": "behavior" } ], "objectGroups": [] }, { "description": "Stop shaking an object.", "fullName": "Stop shaking an object", "functionType": "Action", "name": "StopShaking", "sentence": "Stop shaking _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ShakeObject::ShakeObject_PositionAngleScale::IsShaking" }, "parameters": [ "Object", "Behavior", "" ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Object", "__ShakeObject_ShakeInProgress", "=", "-1" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "Sprite", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "ShakeObject::ShakeObject_PositionAngleScale", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if an object is shaking.", "fullName": "Check if an object is shaking", "functionType": "Condition", "name": "IsShaking", "sentence": "_PARAM0_ is shaking", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Object", "__ShakeObject_ShakeInProgress", "=", "1" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "supplementaryInformation": "Sprite", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "ShakeObject::ShakeObject_PositionAngleScale", "type": "behavior" } ], "objectGroups": [] } ], "propertyDescriptors": [], "sharedPropertyDescriptors": [] } ], "eventsBasedObjects": [] }, { "author": "", "category": "Audio", "extensionNamespace": "", "fullName": "Volume Falloff", "helpPath": "", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXZvbHVtZS1zb3VyY2UiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMyA5VjE1SDdMMTIgMjBWNEw3IDlIM00xNiAxNUgxNFY5SDE2VjE1TTIwIDE5SDE4VjVIMjBWMTlaIiAvPjwvc3ZnPg==", "name": "VolumeFalloff", "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/volume-source.svg", "shortDescription": "Simple volume falloff.", "version": "1.0.1", "description": "Simple volume falloff based on distance from an object to another object.", "tags": [ "volume", "sound", "audio", "falloff", "distance" ], "authorIds": [ "1vKGH4y6Y5Myz3MaqRdwpju3arq2" ], "dependencies": [], "eventsFunctions": [ { "description": "Set volume for a channel based on a falloff distance between two objects.", "fullName": "Set volume based on falloff", "functionType": "Action", "name": "SetVolumeFalloff", "sentence": "Volume falloff on channel _PARAM1_ (type _PARAM2_) from _PARAM3_ to _PARAM4_ with volume from _PARAM5_ to _PARAM6_ starting at a distance of _PARAM7_ pixels", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "StrEqual" }, "parameters": [ "GetArgumentAsString(\"AudioType\")", "=", "\"Sound\"" ] } ], "actions": [ { "type": { "value": "ModVolumeSoundCanal" }, "parameters": [ "", "GetArgumentAsNumber(\"Channel\")", "=", "lerp(GetArgumentAsNumber(\"MinVol\"), GetArgumentAsNumber(\"MaxVol\"), max((GetArgumentAsNumber(\"MaxDistance\") - DistanceBetweenPositions(Source.X(), Source.Y(), Target.X(), Target.Y()))/GetArgumentAsNumber(\"MaxDistance\"), 0))" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "StrEqual" }, "parameters": [ "GetArgumentAsString(\"AudioType\")", "=", "\"Music\"" ] } ], "actions": [ { "type": { "value": "ModVolumeMusicCanal" }, "parameters": [ "", "GetArgumentAsNumber(\"Channel\")", "=", "lerp(GetArgumentAsNumber(\"MinVol\"), GetArgumentAsNumber(\"MaxVol\"), max((GetArgumentAsNumber(\"MaxDistance\") - DistanceBetweenPositions(Source.X(), Source.Y(), Target.X(), Target.Y()))/GetArgumentAsNumber(\"MaxDistance\"), 0))" ] } ] } ], "parameters": [ { "description": "Channel identifier", "name": "Channel", "type": "expression" }, { "description": "Audio type", "name": "AudioType", "supplementaryInformation": "[\"Music\",\"Sound\"]", "type": "stringWithSelector" }, { "description": "Source object", "name": "Source", "type": "objectList" }, { "description": "Target object", "name": "Target", "type": "objectList" }, { "description": "Minimum volume", "longDescription": "From 0 to 100, 100 by default.", "name": "MinVol", "type": "expression" }, { "description": "Maximum volume", "longDescription": "From 0 to 100, 100 by default.", "name": "MaxVol", "type": "expression" }, { "description": "Max distance", "longDescription": "Maximum distance before volume has completely fallen off in pixels.", "name": "MaxDistance", "type": "expression" } ], "objectGroups": [] } ], "eventsBasedBehaviors": [], "eventsBasedObjects": [] }, { "author": "", "category": "", "extensionNamespace": "", "fullName": "", "helpPath": "", "iconUrl": "", "name": "Enemy", "previewIconUrl": "", "shortDescription": "", "version": "", "description": "", "tags": [], "authorIds": [], "dependencies": [], "eventsFunctions": [], "eventsBasedBehaviors": [ { "description": "", "fullName": "", "name": "MonsterEnemy", "objectType": "", "eventsFunctions": [ { "fullName": "", "functionType": "Action", "name": "onCreated", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Timers must be started with an action" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ResetObjectTimer" }, "parameters": [ "Object", "\"Fire\"" ] }, { "type": { "value": "AnimatableCapability::AnimatableBehavior::SetName" }, "parameters": [ "Object", "Animation", "=", "\"Fire\"" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "Enemy::MonsterEnemy", "type": "behavior" } ], "objectGroups": [] }, { "fullName": "", "functionType": "Action", "name": "doStepPreEvents", "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Turn \"Fire\" on and off" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CompareObjectTimer" }, "parameters": [ "Object", "\"Fire\"", ">=", "2" ] }, { "type": { "value": "Enemy::MonsterEnemy::IsOnFire" }, "parameters": [ "Object", "Behavior", "" ] } ], "actions": [ { "type": { "value": "ResetObjectTimer" }, "parameters": [ "Object", "\"Fire\"" ] }, { "type": { "value": "AnimatableCapability::AnimatableBehavior::SetName" }, "parameters": [ "Object", "Animation", "=", "\"NoFire\"" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "CompareObjectTimer" }, "parameters": [ "Object", "\"Fire\"", ">=", "2" ] }, { "type": { "inverted": true, "value": "Enemy::MonsterEnemy::IsOnFire" }, "parameters": [ "Object", "Behavior", "" ] } ], "actions": [ { "type": { "value": "ResetObjectTimer" }, "parameters": [ "Object", "\"Fire\"" ] }, { "type": { "value": "AnimatableCapability::AnimatableBehavior::SetName" }, "parameters": [ "Object", "Animation", "=", "\"Fire\"" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "Enemy::MonsterEnemy", "type": "behavior" } ], "objectGroups": [] }, { "description": "Check if an ennemy is on fire.", "fullName": "On fire", "functionType": "Condition", "name": "IsOnFire", "sentence": "_PARAM0_ is on fire", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "AnimatableCapability::AnimatableBehavior::Name" }, "parameters": [ "Object", "Animation", "=", "\"Fire\"" ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "Object", "name": "Object", "type": "object" }, { "description": "Behavior", "name": "Behavior", "supplementaryInformation": "Enemy::MonsterEnemy", "type": "behavior" } ], "objectGroups": [] } ], "propertyDescriptors": [ { "value": "", "type": "Behavior", "label": "Animatable capability", "description": "", "group": "", "extraInformation": [ "AnimatableCapability::AnimatableBehavior" ], "hidden": false, "name": "Animation" } ], "sharedPropertyDescriptors": [] } ], "eventsBasedObjects": [] }, { "author": "", "category": "", "extensionNamespace": "", "fullName": "", "helpPath": "", "iconUrl": "", "name": "Player", "previewIconUrl": "", "shortDescription": "", "version": "", "description": "", "tags": [], "authorIds": [], "dependencies": [], "eventsFunctions": [ { "description": "Animate the character to be absorbed into the portal.", "fullName": "Absorb into a portal", "functionType": "Action", "name": "AnimateFallingIntoPortal", "sentence": "Animate _PARAM1_ to be absorbed into _PARAM3_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "Tween::AddObjectPositionTween" }, "parameters": [ "Player", "Tween", "\"MoveIntoPortal\"", "Portal.CenterX() + Player.Width() / 2", "Portal.CenterY()", "\"linear\"", "1000", "no" ] }, { "type": { "value": "Tween::AddObjectAngleTween" }, "parameters": [ "Player", "Tween", "\"RotateIntoPortal\"", "360", "\"linear\"", "1000", "no" ] }, { "type": { "value": "Wait" }, "parameters": [ "1" ] }, { "type": { "value": "Tween::AddObjectScaleTween" }, "parameters": [ "Player", "Tween", "\"ShrinkIntoPortal\"", "0", "0", "\"linear\"", "1000", "no", "yes" ] } ] } ], "parameters": [ { "description": "", "name": "Player", "type": "objectList" }, { "description": "", "name": "Tween", "supplementaryInformation": "Tween::TweenBehavior", "type": "behavior" }, { "description": "", "name": "Portal", "supplementaryInformation": "Sprite", "type": "objectList" } ], "objectGroups": [] }, { "description": "Make the character bounce on an ennemy.", "fullName": "Bounce", "functionType": "Action", "name": "Bounce", "sentence": "_PARAM1_ bounce", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "PlatformBehavior::SetCanJump" }, "parameters": [ "Player", "PlatformerObject" ] }, { "type": { "value": "PlatformBehavior::SimulateJumpKey" }, "parameters": [ "Player", "PlatformerObject" ] } ] } ], "parameters": [ { "description": "", "name": "Player", "type": "objectList" }, { "description": "", "name": "PlatformerObject", "supplementaryInformation": "PlatformBehavior::PlatformerObjectBehavior", "type": "behavior" } ], "objectGroups": [] }, { "description": "Trigger the character death.", "fullName": "Trigger character death", "functionType": "Action", "name": "TriggerDeath", "sentence": "Trigger _PARAM1_ death", "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "If player is dead, move back to the last saved checkpoint position, and freeze then for 1/4 secs to make sure they don't run off platform or something" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Player", "Lives", ">", "0" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "Checkpoints::LoadCheckpoint" }, "parameters": [ "", "Player", "Player", "\"Checkpoint\"", "\"Checkpoint\"", "" ] }, { "type": { "value": "PlaySound" }, "parameters": [ "", "AssetDev/Audio/DeathSound.wav", "", "50", "" ] }, { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "Player", "NeedsEnemiesReset", "True" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "Player", "IsImmortal", "" ] }, { "type": { "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Player", "Lives", "-", "1" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Player", "Lives", "<=", "0" ] } ], "actions": [ { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "Player", "IsTrulyDead", "True" ] } ] } ], "parameters": [ { "description": "", "name": "Player", "type": "objectList" } ], "objectGroups": [] }, { "description": "Check if the character is stepping on the floor.", "fullName": "Character is stepping on the floor", "functionType": "Condition", "name": "IsSteppingOnFloor", "sentence": "_PARAM1_ is stepping on the floor", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::IsOnFloor" }, "parameters": [ "Player", "PlatformerObject" ] }, { "type": { "value": "AnimatableCapability::AnimatableBehavior::Name" }, "parameters": [ "Player", "Animation", "=", "\"Run\"" ] }, { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "value": "Sprite" }, "parameters": [ "Player", "=", "4" ] }, { "type": { "value": "Sprite" }, "parameters": [ "Player", "=", "14" ] } ] } ], "actions": [ { "type": { "value": "SetReturnBoolean" }, "parameters": [ "True" ] } ] } ], "parameters": [ { "description": "", "name": "Player", "supplementaryInformation": "Sprite", "type": "objectList" }, { "description": "", "name": "PlatformerObject", "supplementaryInformation": "PlatformBehavior::PlatformerObjectBehavior", "type": "behavior" } ], "objectGroups": [] }, { "description": "Updates Life Force Stats.", "fullName": "Updates Life Force Stats", "functionType": "Action", "name": "UpdateLifeForce", "sentence": "Update _PARAM1_ Life Force Total by _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Player", "LifeForce", "+", "LifeForceToAward" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Player", "LifeForce", ">", "18" ] } ], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Player", "LifeForce", "=", "18" ] } ] } ], "parameters": [ { "description": "", "name": "Player", "type": "objectList" }, { "description": "LifeForceToAward", "name": "LifeForceToAward", "type": "expression" } ], "objectGroups": [] }, { "description": "Handles all collisions for the player with any enemy containing the standard variables (isKillable, LifeForce, etc.)", "fullName": "CollideWithEnemy", "functionType": "Action", "name": "CollideWithEnemy", "sentence": "Handle Player Collision Between _PARAM1_ and _PARAM3_", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "Enemy", "IsKillable", "False" ] } ], "actions": [ { "type": { "value": "Player::TriggerDeath" }, "parameters": [ "", "Player", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "Enemy", "IsKillable", "True" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "PlatformBehavior::IsFalling" }, "parameters": [ "Player", "Parameter" ] }, { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "Player", "IsRidingShockwave", "False" ] } ], "actions": [ { "type": { "value": "SetObjectVariableAsBoolean" }, "parameters": [ "Enemy", "IsDead", "True" ] }, { "type": { "value": "Player::Bounce" }, "parameters": [ "", "Player", "", "" ] } ], "events": [ { "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, "g": 230, "r": 255, "textB": 0, "textG": 0, "textR": 0 }, "comment": "Only reap 50% life force from enemies that aren't being killed for the first time" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "Enemy", "HasBeenReaped", "False" ] } ], "actions": [ { "type": { "value": "Player::UpdateLifeForce" }, "parameters": [ "", "Player", "Enemy.Variable(LifeForce)", "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "ObjectVariableAsBoolean" }, "parameters": [ "Enemy", "HasBeenReaped", "True" ] } ], "actions": [ { "type": { "value": "Player::UpdateLifeForce" }, "parameters": [ "", "Player", "0.5 * Enemy.Variable(LifeForce)", "" ] } ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { "inverted": true, "value": "PlatformBehavior::IsFalling" }, "parameters": [ "Player", "Parameter" ] }, { "type": { "inverted": true, "value": "ObjectVariableAsBoolean" }, "parameters": [ "Player", "IsRidingShockwaveNotDown", "False" ] } ] } ], "actions": [ { "type": { "value": "Player::TriggerDeath" }, "parameters": [ "", "Player", "" ] } ] } ] } ], "parameters": [ { "description": "Player", "name": "Player", "type": "objectList" }, { "description": "", "name": "Parameter", "supplementaryInformation": "PlatformBehavior::PlatformerObjectBehavior", "type": "behavior" }, { "description": "Enemy", "name": "Enemy", "type": "objectList" } ], "objectGroups": [] }, { "description": "Heals the player if enough life force is available", "fullName": "Heal Player Using Lifeforce", "functionType": "Action", "name": "HealPlayer", "sentence": "Heal _PARAM1_ if player has enough life force.", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { "value": "VarObjet" }, "parameters": [ "Player", "LifeForce", ">=", "6" ] }, { "type": { "value": "VarObjet" }, "parameters": [ "Player", "Lives", "<", "5" ] } ], "actions": [], "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Player", "LifeForce", "-", "6" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "ModVarObjet" }, "parameters": [ "Player", "Lives", "+", "1" ] } ] } ] } ], "parameters": [ { "description": "", "name": "Player", "type": "objectList" } ], "objectGroups": [] } ], "eventsBasedBehaviors": [], "eventsBasedObjects": [] }, { "author": "", "category": "", "extensionNamespace": "", "fullName": "", "helpPath": "", "iconUrl": "", "name": "UserInterface", "previewIconUrl": "", "shortDescription": "", "version": "", "description": "", "tags": [], "authorIds": [], "dependencies": [], "eventsFunctions": [ { "description": "Stretch the object to fill the screen", "fullName": "Stretch to fill the screen", "functionType": "Action", "name": "StretchToFillScreen", "sentence": "Stretch _PARAM1_ to fill the screen", "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { "value": "TiledSpriteObject::Width" }, "parameters": [ "EndScreenBackground", "=", "CameraWidth(EndScreenBackground.Layer())" ] }, { "type": { "value": "TiledSpriteObject::Height" }, "parameters": [ "EndScreenBackground", "=", "CameraHeight(EndScreenBackground.Layer())" ] } ] } ], "parameters": [ { "description": "", "name": "EndScreenBackground", "supplementaryInformation": "TiledSpriteObject::TiledSprite", "type": "objectList" } ], "objectGroups": [ { "name": "EndScreenObjects", "objects": [ { "name": "EndScreenBackground" }, { "name": "EndScreenHeader" }, { "name": "EndScreenSubHeader" }, { "name": "EndScreenBestText" }, { "name": "EndScreenChallengeText" }, { "name": "EndScreenRetryText" } ] } ] } ], "eventsBasedBehaviors": [], "eventsBasedObjects": [] } ], "externalLayouts": [ { "associatedLayout": "TestingLevel", "name": "MindscapeUI", "instances": [ { "angle": 0, "customSize": true, "depth": 0, "height": 96, "layer": "UI", "name": "Sinage_W", "persistentUuid": "f8c9f660-d676-411b-9912-4d105a470698", "width": 96, "x": 160, "y": 64, "zOrder": 9, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 96, "layer": "UI", "name": "Sinage_A", "persistentUuid": "e3aaf7b6-6964-4e24-a947-cebf03713447", "width": 96, "x": 64, "y": 160, "zOrder": 10, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 96, "layer": "UI", "name": "Sinage_S", "persistentUuid": "aba8c9f0-8b61-49ec-bdf5-f757e49d7ba0", "width": 96, "x": 160, "y": 160, "zOrder": 11, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 96, "layer": "UI", "name": "Sinage_D", "persistentUuid": "e4c9f569-899e-424d-a18a-2dc4cc810874", "width": 96, "x": 256, "y": 160, "zOrder": 12, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 96, "layer": "UI", "name": "Sinage_Space", "persistentUuid": "582e5d98-906c-4050-9c6f-28b74dae94de", "width": 192, "x": 112, "y": 256, "zOrder": 13, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 128, "layer": "UI", "name": "Sinage_Heal", "persistentUuid": "27ffa58c-8a2b-4479-be66-068a64cb0d6f", "width": 512, "x": 384, "y": 64, "zOrder": 14, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "UI", "name": "Sinage_Pause", "persistentUuid": "8c79d254-0c26-47e0-9ad8-0902d0c63d7d", "width": 288, "x": 384, "y": 144, "zOrder": 15, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 128, "layer": "UI", "name": "Sinage_Restart", "persistentUuid": "dd7d07ed-a77a-48ff-a9af-dee6cad85d29", "width": 288, "x": 384, "y": 240, "zOrder": 16, "numberProperties": [], "stringProperties": [], "initialVariables": [] } ], "editionSettings": { "grid": true, "gridType": "rectangular", "gridWidth": 32, "gridHeight": 32, "gridOffsetX": 0, "gridOffsetY": 0, "gridColor": 10401023, "gridAlpha": 0.2, "snap": true, "zoomFactor": 1.2139988476713193, "windowMask": true } }, { "associatedLayout": "TestingLevel", "name": "LevelUI", "instances": [ { "angle": 0, "customSize": true, "depth": 34, "height": 96, "layer": "UI", "name": "LivesBar", "persistentUuid": "5df6d1c3-009a-4b78-a8c8-e87d05a74397", "width": 480, "x": 512, "y": 64, "zOrder": 2, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 69, "height": 128, "layer": "UI", "name": "HopeBar", "persistentUuid": "54623e8e-17f1-42e9-8168-04133c1cb3ef", "width": 512, "x": 416, "y": 160, "zOrder": 4, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 0, "height": 112, "layer": "UI", "name": "UI_Sinage_Lives", "persistentUuid": "93919d07-9dc5-4706-b16f-b2491a75a4ee", "width": 448, "x": 32, "y": 32, "zOrder": 5, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 1, "height": 144, "layer": "UI", "name": "UI_Sinage_Hope", "persistentUuid": "3c51f9a0-cdb9-467f-86d3-6fca0403e68d", "width": 736, "x": 32, "y": 142, "zOrder": 6, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": false, "height": 0, "layer": "UI", "name": "FrameRate", "persistentUuid": "58058813-d814-4cc0-9650-8efb270a781b", "width": 0, "x": 2400, "y": 30, "zOrder": 7, "numberProperties": [], "stringProperties": [], "initialVariables": [] } ], "editionSettings": { "grid": true, "gridType": "rectangular", "gridWidth": 32, "gridHeight": 32, "gridOffsetX": 0, "gridOffsetY": 0, "gridColor": 10401023, "gridAlpha": 0.2, "snap": true, "zoomFactor": 0.7630894833671616, "windowMask": true } }, { "associatedLayout": "Tutorial", "name": "LevelEndScreen", "instances": [ { "angle": 0, "customSize": true, "depth": 1, "height": 1344, "layer": "EndScreen", "name": "UI_Sinage_Background", "persistentUuid": "a518c1ca-703a-4045-8a0d-a3134cc6c012", "width": 2400, "x": 0, "y": 0, "zOrder": 1, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 32, "height": 128, "layer": "EndScreen", "name": "UI_Sinage_RetryButton", "persistentUuid": "8831f58f-646d-43a1-b23d-8a4e58f8013a", "width": 512, "x": 944, "y": 1088, "zOrder": 17, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": false, "height": 576, "layer": "EndScreen", "name": "UI_Sinage_DeathText", "persistentUuid": "279d04b8-7efc-44a6-9e52-2d6cbb8eb77e", "width": 1152, "x": 176, "y": 32, "zOrder": 39, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": false, "height": 0, "layer": "EndScreen", "name": "UI_Sinage_MemoryAcquired", "persistentUuid": "fb10dd37-1843-4a9d-adfd-b613beee92e2", "width": 0, "x": 176, "y": 32, "zOrder": 40, "numberProperties": [], "stringProperties": [], "initialVariables": [] }, { "angle": 0, "customSize": true, "depth": 32, "height": 133, "layer": "EndScreen", "name": "UI_Sinage_ProceedButton", "persistentUuid": "db833647-bf3d-4686-921d-2b2064f1f9da", "width": 512, "x": 950, "y": 1083, "zOrder": 41, "numberProperties": [], "stringProperties": [], "initialVariables": [] } ], "editionSettings": { "grid": true, "gridType": "rectangular", "gridWidth": 32, "gridHeight": 32, "gridOffsetX": 0, "gridOffsetY": 0, "gridColor": 10401023, "gridAlpha": 0.2, "snap": true, "zoomFactor": 0.3015017629400701, "windowMask": false } } ], "externalSourceFiles": [] }