Files
GDevelop/GDJS/tests/games/sprites/game.json
2023-04-28 11:58:51 +02:00

10512 lines
435 KiB
JSON

{
"firstLayout": "",
"gdVersion": {
"build": 99,
"major": 4,
"minor": 0,
"revision": 0
},
"properties": {
"adaptGameResolutionAtRuntime": false,
"folderProject": false,
"orientation": "landscape",
"packageName": "com.example.spritestest",
"projectUuid": "76f4fbde-f341-4c2c-8d3a-150c1b02b4ea",
"scaleMode": "nearest",
"sizeOnStartupMode": "",
"useExternalSourceFiles": false,
"version": "1.0.0",
"name": "Sprites stress test",
"author": "",
"windowWidth": 800,
"windowHeight": 600,
"latestCompilationDirectory": "/Users/florian/Desktop/test export 2",
"maxFPS": 60,
"minFPS": 20,
"verticalSync": false,
"platformSpecificAssets": {},
"loadingScreen": {
"backgroundColor": 0,
"backgroundFadeInDuration": 0.2,
"backgroundImageResourceName": "",
"gdevelopLogoStyle": "light",
"logoAndProgressFadeInDuration": 0.2,
"logoAndProgressLogoFadeInDelay": 0.2,
"minDuration": 1.5,
"progressBarColor": 16777215,
"progressBarHeight": 20,
"progressBarMaxWidth": 200,
"progressBarMinWidth": 40,
"progressBarWidthPercent": 30,
"showGDevelopSplash": true,
"showProgressBar": true
},
"authorIds": [],
"authorUsernames": [],
"extensionProperties": [],
"platforms": [
{
"name": "GDevelop JS platform"
}
],
"currentPlatform": "GDevelop JS platform"
},
"resources": {
"resources": [
{
"alwaysLoaded": false,
"file": "assets/red.png",
"kind": "image",
"metadata": "",
"name": "assets\\red.png",
"smoothed": false,
"userAdded": true
},
{
"alwaysLoaded": false,
"file": "assets/green.png",
"kind": "image",
"metadata": "",
"name": "assets\\green.png",
"smoothed": false,
"userAdded": false
}
],
"resourceFolders": []
},
"objects": [],
"objectsGroups": [],
"variables": [],
"layouts": [
{
"b": 87,
"disableInputWhenNotFocused": true,
"mangledName": "New_32scene",
"name": "New scene",
"oglFOV": 90,
"oglZFar": 500,
"oglZNear": 1,
"r": 92,
"standardSortMethod": true,
"stopSoundsOnStartup": true,
"title": "",
"v": 87,
"uiSettings": {
"grid": false,
"gridB": 255,
"gridG": 180,
"gridHeight": 32,
"gridOffsetX": 0,
"gridOffsetY": 0,
"gridR": 158,
"gridType": "rectangular",
"gridWidth": 32,
"snap": true,
"windowMask": false,
"zoomFactor": 0.5600000000000002
},
"objectsGroups": [],
"variables": [
{
"name": "heightChanged",
"type": "string",
"value": "0"
},
{
"name": "widthChanged",
"type": "string",
"value": "0"
}
],
"instances": [
{
"angle": 0,
"customSize": true,
"height": 84,
"layer": "",
"locked": false,
"name": "TiledSprite",
"persistentUuid": "22a419cd-07fc-4fb6-9b98-afec4a391cb8",
"width": 60,
"x": 8,
"y": 66,
"zOrder": 1,
"numberProperties": [],
"stringProperties": [],
"initialVariables": []
},
{
"angle": 0,
"customSize": true,
"height": 121,
"layer": "",
"locked": false,
"name": "Sprite",
"persistentUuid": "82c498ad-6fe2-49c7-8bfd-ae993ea641e0",
"width": 74,
"x": 470,
"y": 56,
"zOrder": 2,
"numberProperties": [],
"stringProperties": [],
"initialVariables": []
},
{
"angle": 0,
"customSize": true,
"height": 81,
"layer": "",
"locked": false,
"name": "PanelSprite",
"persistentUuid": "da51a764-e67b-4a99-b698-81061e83cc94",
"width": 40,
"x": 168,
"y": 74,
"zOrder": 3,
"numberProperties": [],
"stringProperties": [],
"initialVariables": []
},
{
"angle": 0,
"customSize": true,
"height": 72,
"layer": "",
"locked": false,
"name": "PanelSprite2",
"persistentUuid": "17d36156-e1d8-4d7c-902d-000c4e2d3f23",
"width": 66,
"x": 286,
"y": 79,
"zOrder": 4,
"numberProperties": [],
"stringProperties": [],
"initialVariables": []
},
{
"angle": 0,
"customSize": true,
"height": 62,
"layer": "",
"locked": false,
"name": "Title",
"persistentUuid": "384daa74-068a-4775-8ed0-befcf1d97b44",
"width": 411,
"x": 53,
"y": 502,
"zOrder": 5,
"numberProperties": [],
"stringProperties": [],
"initialVariables": []
},
{
"angle": 0,
"customSize": false,
"height": 0,
"layer": "",
"locked": false,
"name": "TiledSpriteTitle",
"persistentUuid": "3ce15368-9f57-485f-96eb-bb4698a45746",
"width": 0,
"x": -2,
"y": 231,
"zOrder": 6,
"numberProperties": [],
"stringProperties": [],
"initialVariables": []
},
{
"angle": 0,
"customSize": false,
"height": 0,
"layer": "",
"locked": false,
"name": "SpriteTitle",
"persistentUuid": "75f4e408-fbab-4b96-be8b-5544fff245e9",
"width": 0,
"x": 482,
"y": 224,
"zOrder": 7,
"numberProperties": [],
"stringProperties": [],
"initialVariables": []
},
{
"angle": 0,
"customSize": false,
"height": 0,
"layer": "",
"locked": false,
"name": "PanelSpriteTitle",
"persistentUuid": "fc8a68d4-838d-411f-aba3-b3bd05bceea0",
"width": 0,
"x": 276,
"y": 226,
"zOrder": 8,
"numberProperties": [],
"stringProperties": [],
"initialVariables": []
},
{
"angle": 0,
"customSize": false,
"height": 0,
"layer": "",
"locked": false,
"name": "PanelSpriteTitle",
"persistentUuid": "16c490a7-319a-4ba5-a403-422126dd0cb9",
"width": 0,
"x": 142,
"y": 228,
"zOrder": 9,
"numberProperties": [],
"stringProperties": [],
"initialVariables": []
}
],
"objects": [
{
"height": 32,
"name": "TiledSprite",
"tags": "",
"texture": "assets\\green.png",
"type": "TiledSpriteObject::TiledSprite",
"width": 32,
"variables": [],
"effects": [],
"behaviors": []
},
{
"name": "Sprite",
"tags": "",
"type": "Sprite",
"updateIfNotVisible": false,
"variables": [],
"effects": [],
"behaviors": [],
"animations": [
{
"name": "",
"useMultipleDirections": false,
"directions": [
{
"looping": false,
"timeBetweenFrames": 0.08,
"sprites": [
{
"hasCustomCollisionMask": false,
"image": "assets\\green.png",
"points": [],
"originPoint": {
"name": "origine",
"x": 0,
"y": 0
},
"centerPoint": {
"automatic": true,
"name": "centre",
"x": 0,
"y": 0
},
"customCollisionMask": []
}
]
}
]
}
]
},
{
"bottomMargin": 0,
"height": 32,
"leftMargin": 0,
"name": "PanelSprite2",
"rightMargin": 0,
"tags": "",
"texture": "assets\\red.png",
"tiled": false,
"topMargin": 0,
"type": "PanelSpriteObject::PanelSprite",
"width": 32,
"variables": [],
"effects": [],
"behaviors": [
{
"name": "ShakeObject_PositionAngle",
"type": "ShakeObject::ShakeObject_PositionAngle"
}
]
},
{
"bottomMargin": 0,
"height": 32,
"leftMargin": 0,
"name": "PanelSprite",
"rightMargin": 0,
"tags": "",
"texture": "assets\\red.png",
"tiled": false,
"topMargin": 0,
"type": "PanelSpriteObject::PanelSprite",
"width": 32,
"variables": [],
"effects": [],
"behaviors": []
},
{
"bold": false,
"italic": false,
"name": "SpriteTitle",
"smoothed": true,
"tags": "",
"type": "TextObject::Text",
"underlined": false,
"variables": [],
"effects": [],
"behaviors": [],
"string": "Sprite",
"font": "",
"characterSize": 15,
"color": {
"b": 255,
"g": 255,
"r": 255
}
},
{
"bold": false,
"italic": false,
"name": "TiledSpriteTitle",
"smoothed": true,
"tags": "",
"type": "TextObject::Text",
"underlined": false,
"variables": [],
"effects": [],
"behaviors": [],
"string": "TiledSprite",
"font": "",
"characterSize": 15,
"color": {
"b": 255,
"g": 255,
"r": 255
}
},
{
"bold": false,
"italic": false,
"name": "Title",
"smoothed": true,
"tags": "",
"type": "TextObject::Text",
"underlined": false,
"variables": [],
"effects": [],
"behaviors": [],
"string": "Press any key to reload",
"font": "",
"characterSize": 35,
"color": {
"b": 255,
"g": 255,
"r": 255
}
},
{
"bold": false,
"italic": false,
"name": "PanelSpriteTitle",
"smoothed": true,
"tags": "",
"type": "TextObject::Text",
"underlined": false,
"variables": [],
"effects": [],
"behaviors": [],
"string": "PanelSprite",
"font": "",
"characterSize": 15,
"color": {
"b": 250,
"g": 250,
"r": 250
}
}
],
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "DepartScene"
},
"parameters": [
""
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ResetTimer"
},
"parameters": [
"NewObject",
"\"t1\""
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "Opacity"
},
"parameters": [
"Sprite",
"=",
"0"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "TiledSpriteObject::SetOpacity"
},
"parameters": [
"TiledSprite",
"=",
"0\n"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "PanelSpriteObject::SetOpacity"
},
"parameters": [
"PanelSprite",
"=",
"0\n"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ShakeObject::ShakeObject_PositionAngle::ShakeObject_PositionAngle"
},
"parameters": [
"PanelSprite2",
"ShakeObject_PositionAngle",
"3",
"10",
"10",
"30",
"0.5",
"",
""
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "Timer"
},
"parameters": [
"NewObject",
"0.1",
"\"t1\""
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "TiledSpriteObject::SetOpacity"
},
"parameters": [
"TiledSprite",
"+",
"120*TimeDelta()"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "Opacity"
},
"parameters": [
"Sprite",
"+",
"120*TimeDelta()"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "PanelSpriteObject::SetOpacity"
},
"parameters": [
"PanelSprite",
"+",
"120*TimeDelta()"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "AnyKeyPressed"
},
"parameters": [
""
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "Scene"
},
"parameters": [
"",
"\"New scene\"",
""
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "Timer"
},
"parameters": [
"",
"3",
"\"t1\""
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "PanelSpriteObject::SetOpacity"
},
"parameters": [
"PanelSprite2",
"+",
"120*TimeDelta()"
],
"subInstructions": []
}
],
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarScene"
},
"parameters": [
"heightChanged",
"=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ShakeObject::ShakeObject_PositionAngle::ShakeObject_PositionAngle"
},
"parameters": [
"PanelSprite2",
"ShakeObject_PositionAngle",
"3",
"10",
"10",
"30",
"0.5",
"",
""
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarScene"
},
"parameters": [
"heightChanged",
"=",
"1"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "PanelSpriteObject::SetOpacity"
},
"parameters": [
"PanelSprite2",
"=",
"0\n"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "PanelSpriteObject::Height"
},
"parameters": [
"PanelSprite2",
"+",
"50"
],
"subInstructions": []
}
],
"events": []
}
]
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "Timer"
},
"parameters": [
"",
"6",
"\"t1\""
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "Rotate"
},
"parameters": [
"PanelSprite2",
"30",
""
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "Timer"
},
"parameters": [
"",
"9",
"\"t1\""
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "AddForceAL"
},
"parameters": [
"PanelSprite2",
"90",
"20",
""
],
"subInstructions": []
}
],
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarScene"
},
"parameters": [
"widthChanged",
"=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "PanelSpriteObject::Width"
},
"parameters": [
"PanelSprite2",
"+",
"50"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "PanelSpriteObject::Height"
},
"parameters": [
"PanelSprite2",
"-",
"100"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarScene"
},
"parameters": [
"widthChanged",
"=",
"1"
],
"subInstructions": []
}
],
"events": []
}
]
}
],
"layers": [
{
"ambientLightColorB": 7140712,
"ambientLightColorG": 150995054,
"ambientLightColorR": 1869182049,
"followBaseLayerCamera": false,
"isLightingLayer": false,
"name": "",
"visibility": true,
"cameras": [
{
"defaultSize": true,
"defaultViewport": true,
"height": 0,
"viewportBottom": 1,
"viewportLeft": 0,
"viewportRight": 1,
"viewportTop": 0,
"width": 0
}
],
"effects": []
}
],
"behaviorsSharedData": [
{
"name": "ShakeObject_PositionAngle",
"type": "ShakeObject::ShakeObject_PositionAngle"
}
]
}
],
"externalEvents": [],
"eventsFunctionsExtensions": [
{
"author": "Tristan Rhodes (https://victrisgames.itch.io/)",
"description": "Select one or more methods of shaking:\n- Position: Shake the X and/or Y position of the object \n- Angle: Shake the angle (rotation) of the object \n- Scale: Shake the scale of the object (must be a sprite)\n\nControl how the object shakes:\n- Amplitude: How far the object moves during each shake\n- Duration: Amount of time to shake the object\n- Time between shakes: Amount of time between each movement of the object\n- Keep shaking until stopped (boolean)\n\nTips:\n- For a single-shake effect, set the \"Time between shakes\" to be equal to \"Duration\" (great for a hit or impact)\n- To make the single-shake move in the opposite direction, use negative numbers \n- To repeat a single-shake effect in a loop, add a condition \"Object is not shaking\" \n- Use a long \"Time between shakes\" to simulate a slow moving object (like a ship rocking back and forth)\n- Make sure to \"Stop shaking\" before starting a new shake if it uses different parameters. \n- Use \"Shake until stopped\" to simulate engine vibration, earthquake, or pulsing",
"extensionNamespace": "",
"fullName": "Shake Object (position, angle, scale)",
"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, using one or more ways to shake (position, angle, scale)",
"version": "1.5.4",
"tags": [
"shaking",
"object",
"effect",
"shake",
"scale",
"position",
"rotate",
"angle"
],
"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)",
"fullName": "Shake object (position, angle)",
"functionType": "Action",
"name": "ShakeObject_PositionAngle",
"private": false,
"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,
"disabled": true,
"folded": true,
"name": "Shake Object",
"source": "",
"type": "BuiltinCommonInstructions::Group",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Pass input parameters to object variables so that doStepPostEvents can use them",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_Duration",
"=",
"GetArgumentAsNumber(\"Duration\")"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerX",
"=",
"GetArgumentAsNumber(\"PowerX\")"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerY",
"=",
"GetArgumentAsNumber(\"PowerY\")"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerAngle",
"=",
"GetArgumentAsNumber(\"PowerAngle\")"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_TimeBetweenShakes",
"=",
"GetArgumentAsNumber(\"TimeBetweenShakes\")"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "SetObjectVariableAsBoolean"
},
"parameters": [
"Object",
"ShakeObject_ShakeForever",
"False"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "GetArgumentAsBoolean"
},
"parameters": [
"\"ShakeForever\""
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "SetObjectVariableAsBoolean"
},
"parameters": [
"Object",
"ShakeObject_ShakeForever",
"True"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Start/Reset duration timer",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "ResetObjectTimer"
},
"parameters": [
"Object",
"\"__ShakeObject_DurationTimer\""
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ResetObjectTimer"
},
"parameters": [
"Object",
"\"__ShakeObject_ShakeTimer\""
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Add default values if none were provided",
"comment2": ""
},
{
"disabled": true,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerX",
"=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerX",
"=",
"5"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": true,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerY",
"=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerY",
"=",
"5"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": true,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerAngle",
"=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerAngle",
"=",
"20"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_Duration",
"=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_Duration",
"=",
"0.5"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_TimeBetweenShakes",
"=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_TimeBetweenShakes",
"=",
"0.08"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "If a shake is not in progress, save initial values.",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_ShakeInProgress",
"=",
"0"
],
"subInstructions": []
}
],
"actions": [],
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Save initial object rotation",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "Egal"
},
"parameters": [
"Object.Variable(__ShakeObject_PowerAngle)",
">",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_InitialAngle",
"=",
"Object.Angle()"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Reset temp variables",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_DisplacementX",
"=",
"0"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_DisplacementY",
"=",
"0"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_DisplacementTravelledX",
"=",
"0"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_DisplacementTravelledY",
"=",
"0"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Initiate the onScenePostEvents function",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_ShakeInProgress",
"=",
"1"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_InitialShake",
"=",
"1"
],
"subInstructions": []
}
],
"events": []
}
]
}
],
"parameters": []
},
{
"colorB": 228,
"colorG": 176,
"colorR": 74,
"creationTime": 0,
"disabled": false,
"folded": false,
"name": "Shake Object",
"source": "",
"type": "BuiltinCommonInstructions::Group",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Start/Reset duration timer",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "ResetObjectTimer"
},
"parameters": [
"Object",
"\"__ShakeObject_DurationTimer\""
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"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",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_Duration",
"=",
"GetArgumentAsNumber(\"Duration\")"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerX",
"=",
"GetArgumentAsNumber(\"PowerX\")"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerY",
"=",
"GetArgumentAsNumber(\"PowerY\")"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerAngle",
"=",
"GetArgumentAsNumber(\"PowerAngle\")"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_TimeBetweenShakes",
"=",
"GetArgumentAsNumber(\"TimeBetweenShakes\")"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"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",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "SetObjectVariableAsBoolean"
},
"parameters": [
"Object",
"ShakeObject_ShakeForever",
"False"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "GetArgumentAsBoolean"
},
"parameters": [
"\"ShakeForever\""
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "SetObjectVariableAsBoolean"
},
"parameters": [
"Object",
"ShakeObject_ShakeForever",
"True"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Add default values if none were provided",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_Duration",
"=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_Duration",
"=",
"0.5"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_TimeBetweenShakes",
"=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_TimeBetweenShakes",
"=",
"0.08"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"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",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_Duration",
"<",
"Object.Variable(__ShakeObject_TimeBetweenShakes)"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_Duration",
"=",
"Object.Variable(__ShakeObject_TimeBetweenShakes)"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Detect initial shake",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_ShakeInProgress",
"=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_InitialShake",
"=",
"1"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Initiate the onScenePostEvents function",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_ShakeInProgress",
"=",
"1"
],
"subInstructions": []
}
],
"events": []
}
],
"parameters": []
}
],
"parameters": [
{
"codeOnly": false,
"defaultValue": "",
"description": "Object",
"longDescription": "",
"name": "Object",
"optional": false,
"supplementaryInformation": "",
"type": "object"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Behavior",
"longDescription": "",
"name": "Behavior",
"optional": false,
"supplementaryInformation": "ShakeObject::ShakeObject_PositionAngle",
"type": "behavior"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Duration of shake (in seconds) (Default: 0.5) ",
"longDescription": "",
"name": "Duration",
"optional": false,
"supplementaryInformation": "",
"type": "expression"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Amplitude of postion shake in X direction (in pixels) (For example: 5)",
"longDescription": "",
"name": "PowerX",
"optional": false,
"supplementaryInformation": "",
"type": "expression"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Amplitude of position shake in Y direction (in pixels) (For example: 5)",
"longDescription": "",
"name": "PowerY",
"optional": false,
"supplementaryInformation": "",
"type": "expression"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Amplitude of angle rotation shake (in degrees) (For example: 5)",
"longDescription": "",
"name": "PowerAngle",
"optional": false,
"supplementaryInformation": "",
"type": "expression"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Amount of time between shakes (in seconds) (Default: 0.08)",
"longDescription": "",
"name": "TimeBetweenShakes",
"optional": false,
"supplementaryInformation": "",
"type": "expression"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Keep shaking until stopped",
"longDescription": "Duration value will be ignored",
"name": "ShakeForever",
"optional": false,
"supplementaryInformation": "",
"type": "yesorno"
}
],
"objectGroups": []
},
{
"description": "",
"fullName": "",
"functionType": "Action",
"name": "doStepPostEvents",
"private": false,
"sentence": "",
"events": [
{
"colorB": 228,
"colorG": 176,
"colorR": 74,
"creationTime": 0,
"disabled": false,
"folded": false,
"name": "Shake Object",
"source": "",
"type": "BuiltinCommonInstructions::Group",
"events": [
{
"colorB": 228,
"colorG": 176,
"colorR": 74,
"creationTime": 0,
"disabled": false,
"folded": false,
"name": "Start shaking",
"source": "",
"type": "BuiltinCommonInstructions::Group",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_ShakeInProgress",
"=",
"1"
],
"subInstructions": []
}
],
"actions": [],
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Keep object shaking forever (if desired)",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "ObjectVariableAsBoolean"
},
"parameters": [
"Object",
"ShakeObject_ShakeForever",
"True"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_Duration",
"=",
"100"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ResetObjectTimer"
},
"parameters": [
"Object",
"\"__ShakeObject_DurationTimer\""
],
"subInstructions": []
}
],
"events": []
},
{
"colorB": 228,
"colorG": 176,
"colorR": 74,
"creationTime": 0,
"disabled": false,
"folded": false,
"name": "Calculate movement of the shake",
"source": "",
"type": "BuiltinCommonInstructions::Group",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Run once before every shake movement",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "BuiltinCommonInstructions::Or"
},
"parameters": [],
"subInstructions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_InitialShake",
"=",
"1"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ObjectTimer"
},
"parameters": [
"Object",
"\"__ShakeObject_ShakeTimer\"",
"Object.Variable(__ShakeObject_TimeBetweenShakes)"
],
"subInstructions": []
}
]
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ResetObjectTimer"
},
"parameters": [
"Object",
"\"__ShakeObject_ShakeTimer\""
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_ShakeCounter",
"+",
"1"
],
"subInstructions": []
}
],
"events": [
{
"colorB": 228,
"colorG": 176,
"colorR": 74,
"creationTime": 0,
"disabled": false,
"folded": false,
"name": "Correct for drift and reset drift tracking variables",
"source": "",
"type": "BuiltinCommonInstructions::Group",
"events": [
{
"disabled": false,
"folded": false,
"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",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "BuiltinCommonInstructions::Or"
},
"parameters": [],
"subInstructions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerX",
"!=",
"0"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerY",
"!=",
"0"
],
"subInstructions": []
}
]
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "MettreX"
},
"parameters": [
"Object",
"-",
"Object.Variable(__ShakeObject_DisplacementTravelledX)"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "MettreY"
},
"parameters": [
"Object",
"-",
"Object.Variable(__ShakeObject_DisplacementTravelledY)"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerAngle",
"!=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "SetAngle"
},
"parameters": [
"Object",
"-",
"Object.Variable(__ShakeObject_AngleTravelled)"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Reset drift detection variables",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_DisplacementTravelledX",
"=",
"0"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_DisplacementTravelledY",
"=",
"0"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_AngleTravelled",
"=",
"0"
],
"subInstructions": []
}
],
"events": []
}
],
"parameters": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Calculate Position Shake",
"comment2": ""
},
{
"disabled": false,
"folded": true,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "BuiltinCommonInstructions::Or"
},
"parameters": [],
"subInstructions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerX",
"!=",
"0"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerY",
"!=",
"0"
],
"subInstructions": []
}
]
}
],
"actions": [],
"events": [
{
"disabled": false,
"folded": false,
"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]",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"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",
"comment2": ""
},
{
"disabled": false,
"folded": true,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_InitialShake",
"=",
"1"
],
"subInstructions": []
}
],
"actions": [],
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerX",
"!=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_DisplacementX",
"=",
"(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerX)"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerY",
"!=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_DisplacementY",
"=",
"(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerY)"
],
"subInstructions": []
}
],
"events": []
}
]
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "After initial shake pick a random direction",
"comment2": ""
},
{
"disabled": false,
"folded": true,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_InitialShake",
"=",
"0"
],
"subInstructions": []
}
],
"actions": [],
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerX",
"!=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"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)"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerY",
"!=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"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)"
],
"subInstructions": []
}
],
"events": []
}
]
}
]
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Calculate Rotation (angle) shake ",
"comment2": ""
},
{
"disabled": false,
"folded": true,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerAngle",
"!=",
"0"
],
"subInstructions": []
}
],
"actions": [],
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Every \"even\" shake, rotate clockwise",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "AngleDisplacement = (DesiredDuration - RunningTimer) / DesiredDuration * Amplitude",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "Egal"
},
"parameters": [
"mod(Object.Variable(__ShakeObject_ShakeCounter),2)",
"=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_DisplacementAngle",
"=",
"(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerAngle)"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Every \"odd\" shake, rotate counter-clockwise",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "AngleDisplacement = (DesiredDuration - RunningTimer) / DesiredDuration * Amplitude",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "Egal"
},
"parameters": [
"mod(Object.Variable(__ShakeObject_ShakeCounter),2)",
"=",
"1"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_DisplacementAngle",
"=",
"-1 *(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerAngle)"
],
"subInstructions": []
}
],
"events": []
}
]
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Save that initial shake has been processed",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_InitialShake",
"=",
"0"
],
"subInstructions": []
}
],
"events": []
}
]
}
],
"parameters": []
},
{
"colorB": 228,
"colorG": 176,
"colorR": 74,
"creationTime": 0,
"disabled": false,
"folded": false,
"name": "Move object",
"source": "",
"type": "BuiltinCommonInstructions::Group",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Calculate the fraction of shake that occurred during this frame",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PercentTimeElapsedThisFrame",
"=",
"TimeDelta()/Object.Variable(__ShakeObject_TimeBetweenShakes)"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"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)",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": true,
"value": "ObjectTimer"
},
"parameters": [
"Object",
"\"__ShakeObject_ShakeTimer\"",
"Object.Variable(__ShakeObject_TimeBetweenShakes)/2"
],
"subInstructions": []
}
],
"actions": [],
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Change position",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "BuiltinCommonInstructions::Or"
},
"parameters": [],
"subInstructions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerX",
"!=",
"0"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerY",
"!=",
"0"
],
"subInstructions": []
}
]
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "MettreX"
},
"parameters": [
"Object",
"+",
"Object.Variable(__ShakeObject_DisplacementX) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "MettreY"
},
"parameters": [
"Object",
"+",
"Object.Variable(__ShakeObject_DisplacementY) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)"
],
"subInstructions": []
}
],
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Save movement to calculate drift",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_DisplacementTravelledX",
"+",
"Object.Variable(__ShakeObject_DisplacementX) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_DisplacementTravelledY",
"+",
"Object.Variable(__ShakeObject_DisplacementY) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)"
],
"subInstructions": []
}
],
"events": []
}
]
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Change angle",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "Egal"
},
"parameters": [
"Object.Variable(__ShakeObject_PowerAngle)",
"!=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "SetAngle"
},
"parameters": [
"Object",
"+",
"Object.Variable(__ShakeObject_DisplacementAngle) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)"
],
"subInstructions": []
}
],
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Save movement to calculate drift",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_AngleTravelled",
"+",
"Object.Variable(__ShakeObject_DisplacementAngle) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)"
],
"subInstructions": []
}
],
"events": []
}
]
}
]
},
{
"disabled": false,
"folded": false,
"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)",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "ObjectTimer"
},
"parameters": [
"Object",
"\"__ShakeObject_ShakeTimer\"",
"Object.Variable(__ShakeObject_TimeBetweenShakes)/2"
],
"subInstructions": []
}
],
"actions": [],
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Change position",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "BuiltinCommonInstructions::Or"
},
"parameters": [],
"subInstructions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerX",
"!=",
"0"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerY",
"!=",
"0"
],
"subInstructions": []
}
]
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "MettreX"
},
"parameters": [
"Object",
"-",
"Object.Variable(__ShakeObject_DisplacementX) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "MettreY"
},
"parameters": [
"Object",
"-",
"Object.Variable(__ShakeObject_DisplacementY) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)"
],
"subInstructions": []
}
],
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Save movement to calculate drift",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_DisplacementTravelledX",
"-",
"Object.Variable(__ShakeObject_DisplacementX) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_DisplacementTravelledY",
"-",
"Object.Variable(__ShakeObject_DisplacementY) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)"
],
"subInstructions": []
}
],
"events": []
}
]
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Change angle",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "Egal"
},
"parameters": [
"Object.Variable(__ShakeObject_PowerAngle)",
"!=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "SetAngle"
},
"parameters": [
"Object",
"-",
"Object.Variable(__ShakeObject_DisplacementAngle) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)"
],
"subInstructions": []
}
],
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Save movement to calculate drift",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_AngleTravelled",
"-",
"Object.Variable(__ShakeObject_DisplacementAngle) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)"
],
"subInstructions": []
}
],
"events": []
}
]
}
]
}
],
"parameters": []
}
]
}
],
"parameters": []
},
{
"colorB": 228,
"colorG": 176,
"colorR": 74,
"creationTime": 0,
"disabled": false,
"folded": false,
"name": "Stop shaking",
"source": "",
"type": "BuiltinCommonInstructions::Group",
"events": [
{
"disabled": false,
"folded": false,
"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)",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "BuiltinCommonInstructions::Or"
},
"parameters": [],
"subInstructions": [
{
"type": {
"inverted": false,
"value": "ObjectTimer"
},
"parameters": [
"Object",
"\"__ShakeObject_DurationTimer\"",
"Object.Variable(__ShakeObject_Duration)"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_ShakeInProgress",
"=",
"-1"
],
"subInstructions": []
}
]
},
{
"type": {
"inverted": false,
"value": "BuiltinCommonInstructions::Once"
},
"parameters": [],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_ShakeInProgress",
"=",
"0"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_ShakeCounter",
"=",
"0"
],
"subInstructions": []
}
],
"events": [
{
"colorB": 228,
"colorG": 176,
"colorR": 74,
"creationTime": 0,
"disabled": false,
"folded": false,
"name": "Correct for drift and reset drift tracking variables",
"source": "",
"type": "BuiltinCommonInstructions::Group",
"events": [
{
"disabled": false,
"folded": false,
"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",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "BuiltinCommonInstructions::Or"
},
"parameters": [],
"subInstructions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerX",
"!=",
"0"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerY",
"!=",
"0"
],
"subInstructions": []
}
]
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "MettreX"
},
"parameters": [
"Object",
"-",
"Object.Variable(__ShakeObject_DisplacementTravelledX)"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "MettreY"
},
"parameters": [
"Object",
"-",
"Object.Variable(__ShakeObject_DisplacementTravelledY)"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerAngle",
"!=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "SetAngle"
},
"parameters": [
"Object",
"-",
"Object.Variable(__ShakeObject_AngleTravelled)"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Reset drift detection variables",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_DisplacementTravelledX",
"=",
"0"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_DisplacementTravelledY",
"=",
"0"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_AngleTravelled",
"=",
"0"
],
"subInstructions": []
}
],
"events": []
}
],
"parameters": []
}
]
}
],
"parameters": []
}
],
"parameters": []
}
],
"parameters": [
{
"codeOnly": false,
"defaultValue": "",
"description": "Object",
"longDescription": "",
"name": "Object",
"optional": false,
"supplementaryInformation": "",
"type": "object"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Behavior",
"longDescription": "",
"name": "Behavior",
"optional": false,
"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",
"private": false,
"sentence": "Stop shaking _PARAM0_",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "ShakeObject::ShakeObject_PositionAngle::IsShaking"
},
"parameters": [
"Object",
"Behavior",
""
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_ShakeInProgress",
"=",
"-1"
],
"subInstructions": []
}
],
"events": []
}
],
"parameters": [
{
"codeOnly": false,
"defaultValue": "",
"description": "Object",
"longDescription": "",
"name": "Object",
"optional": false,
"supplementaryInformation": "",
"type": "object"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Behavior",
"longDescription": "",
"name": "Behavior",
"optional": false,
"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",
"private": false,
"sentence": "_PARAM0_ is shaking",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_ShakeInProgress",
"=",
"1"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "SetReturnBoolean"
},
"parameters": [
"True"
],
"subInstructions": []
}
],
"events": []
}
],
"parameters": [
{
"codeOnly": false,
"defaultValue": "",
"description": "Object",
"longDescription": "",
"name": "Object",
"optional": false,
"supplementaryInformation": "",
"type": "object"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Behavior",
"longDescription": "",
"name": "Behavior",
"optional": false,
"supplementaryInformation": "ShakeObject::ShakeObject_PositionAngle",
"type": "behavior"
}
],
"objectGroups": []
}
],
"propertyDescriptors": []
},
{
"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)",
"fullName": "Shake object (position, angle, scale)",
"functionType": "Action",
"name": "ShakeObject_PositionAngleScale",
"private": false,
"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,
"disabled": false,
"folded": false,
"name": "Shake Object",
"source": "",
"type": "BuiltinCommonInstructions::Group",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Start/Reset duration timer",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "ResetObjectTimer"
},
"parameters": [
"Object",
"\"__ShakeObject_DurationTimer\""
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"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",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_Duration",
"=",
"GetArgumentAsNumber(\"Duration\")"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerX",
"=",
"GetArgumentAsNumber(\"PowerX\")"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerY",
"=",
"GetArgumentAsNumber(\"PowerY\")"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerAngle",
"=",
"GetArgumentAsNumber(\"PowerAngle\")"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerScale",
"=",
"GetArgumentAsNumber(\"PowerScale\")"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_TimeBetweenShakes",
"=",
"GetArgumentAsNumber(\"TimeBetweenShakes\")"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"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",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "SetObjectVariableAsBoolean"
},
"parameters": [
"Object",
"ShakeObject_ShakeForever",
"False"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "GetArgumentAsBoolean"
},
"parameters": [
"\"ShakeForever\""
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "SetObjectVariableAsBoolean"
},
"parameters": [
"Object",
"ShakeObject_ShakeForever",
"True"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Add default values if none were provided",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_Duration",
"=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_Duration",
"=",
"0.5"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_TimeBetweenShakes",
"=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_TimeBetweenShakes",
"=",
"0.08"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"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",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_Duration",
"<",
"Object.Variable(__ShakeObject_TimeBetweenShakes)"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_Duration",
"=",
"Object.Variable(__ShakeObject_TimeBetweenShakes)"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Detect initial shake",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_ShakeInProgress",
"=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_InitialShake",
"=",
"1"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Initiate the onScenePostEvents function",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_ShakeInProgress",
"=",
"1"
],
"subInstructions": []
}
],
"events": []
}
],
"parameters": []
}
],
"parameters": [
{
"codeOnly": false,
"defaultValue": "",
"description": "Object",
"longDescription": "",
"name": "Object",
"optional": false,
"supplementaryInformation": "Sprite",
"type": "object"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Behavior",
"longDescription": "",
"name": "Behavior",
"optional": false,
"supplementaryInformation": "ShakeObject::ShakeObject_PositionAngleScale",
"type": "behavior"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Duration of shake (in seconds) (Default: 0.5)",
"longDescription": "",
"name": "Duration",
"optional": false,
"supplementaryInformation": "",
"type": "expression"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Amplitude of postion shake in X direction (in pixels) (For example: 5)",
"longDescription": "",
"name": "PowerX",
"optional": false,
"supplementaryInformation": "",
"type": "expression"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Amplitude of position shake in Y direction (in pixels) (For example: 5)",
"longDescription": "",
"name": "PowerY",
"optional": false,
"supplementaryInformation": "",
"type": "expression"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Amplitude of angle rotation shake (in degrees) (For example: 5)",
"longDescription": "",
"name": "PowerAngle",
"optional": false,
"supplementaryInformation": "",
"type": "expression"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Amplitude of scale shake (in percent change) (For example: 5)",
"longDescription": "",
"name": "PowerScale",
"optional": false,
"supplementaryInformation": "",
"type": "expression"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Amount of time between shakes (in seconds) (Default: 0.08)",
"longDescription": "",
"name": "TimeBetweenShakes",
"optional": false,
"supplementaryInformation": "",
"type": "expression"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Keep shaking until stopped",
"longDescription": "Duration value will be ignored",
"name": "ShakeForever",
"optional": false,
"supplementaryInformation": "",
"type": "yesorno"
}
],
"objectGroups": []
},
{
"description": "",
"fullName": "",
"functionType": "Action",
"name": "doStepPostEvents",
"private": false,
"sentence": "",
"events": [
{
"colorB": 228,
"colorG": 176,
"colorR": 74,
"creationTime": 0,
"disabled": false,
"folded": false,
"name": "Shake Object",
"source": "",
"type": "BuiltinCommonInstructions::Group",
"events": [
{
"colorB": 228,
"colorG": 176,
"colorR": 74,
"creationTime": 0,
"disabled": false,
"folded": false,
"name": "Start shaking",
"source": "",
"type": "BuiltinCommonInstructions::Group",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_ShakeInProgress",
"=",
"1"
],
"subInstructions": []
}
],
"actions": [],
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Keep object shaking forever (if desired)",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "ObjectVariableAsBoolean"
},
"parameters": [
"Object",
"ShakeObject_ShakeForever",
"True"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_Duration",
"=",
"100"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ResetObjectTimer"
},
"parameters": [
"Object",
"\"__ShakeObject_DurationTimer\""
],
"subInstructions": []
}
],
"events": []
},
{
"colorB": 228,
"colorG": 176,
"colorR": 74,
"creationTime": 0,
"disabled": false,
"folded": false,
"name": "Calculate movement of the shake",
"source": "",
"type": "BuiltinCommonInstructions::Group",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Run once before every shake movement",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "BuiltinCommonInstructions::Or"
},
"parameters": [],
"subInstructions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_InitialShake",
"=",
"1"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ObjectTimer"
},
"parameters": [
"Object",
"\"__ShakeObject_ShakeTimer\"",
"Object.Variable(__ShakeObject_TimeBetweenShakes)"
],
"subInstructions": []
}
]
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ResetObjectTimer"
},
"parameters": [
"Object",
"\"__ShakeObject_ShakeTimer\""
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_ShakeCounter",
"+",
"1"
],
"subInstructions": []
}
],
"events": [
{
"colorB": 228,
"colorG": 176,
"colorR": 74,
"creationTime": 0,
"disabled": false,
"folded": true,
"name": "Correct for drift and reset drift tracking variables",
"source": "",
"type": "BuiltinCommonInstructions::Group",
"events": [
{
"disabled": false,
"folded": false,
"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",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "BuiltinCommonInstructions::Or"
},
"parameters": [],
"subInstructions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerX",
"!=",
"0"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerY",
"!=",
"0"
],
"subInstructions": []
}
]
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "MettreX"
},
"parameters": [
"Object",
"-",
"Object.Variable(__ShakeObject_DisplacementTravelledX)"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "MettreY"
},
"parameters": [
"Object",
"-",
"Object.Variable(__ShakeObject_DisplacementTravelledY)"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerAngle",
"!=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "SetAngle"
},
"parameters": [
"Object",
"-",
"Object.Variable(__ShakeObject_AngleTravelled)"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerScale",
"!=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ChangeScale"
},
"parameters": [
"Object",
"-",
"Object.Variable(__ShakeObject_ScaleTravelled)"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Reset drift detection variables",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_DisplacementTravelledX",
"=",
"0"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_DisplacementTravelledY",
"=",
"0"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_AngleTravelled",
"=",
"0"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_ScaleTravelled",
"=",
"0"
],
"subInstructions": []
}
],
"events": []
}
],
"parameters": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Calculate Position Shake",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "BuiltinCommonInstructions::Or"
},
"parameters": [],
"subInstructions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerX",
"!=",
"0"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerY",
"!=",
"0"
],
"subInstructions": []
}
]
}
],
"actions": [],
"events": [
{
"disabled": false,
"folded": false,
"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]",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"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",
"comment2": ""
},
{
"disabled": false,
"folded": true,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_InitialShake",
"=",
"1"
],
"subInstructions": []
}
],
"actions": [],
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerX",
"!=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_DisplacementX",
"=",
"(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerX)"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerY",
"!=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_DisplacementY",
"=",
"(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerY)"
],
"subInstructions": []
}
],
"events": []
}
]
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "After initial shake pick a random direction",
"comment2": ""
},
{
"disabled": false,
"folded": true,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_InitialShake",
"=",
"0"
],
"subInstructions": []
}
],
"actions": [],
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerX",
"!=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"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)"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerY",
"!=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"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)"
],
"subInstructions": []
}
],
"events": []
}
]
}
]
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Calculate Rotation (angle) shake ",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerAngle",
"!=",
"0"
],
"subInstructions": []
}
],
"actions": [],
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Every \"even\" shake, rotate clockwise",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "AngleDisplacement = (DesiredDuration - RunningTimer) / DesiredDuration * Amplitude",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "Egal"
},
"parameters": [
"mod(Object.Variable(__ShakeObject_ShakeCounter),2)",
"=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_DisplacementAngle",
"=",
"-1 * (Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerAngle)"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Every \"odd\" shake, rotate counter-clockwise",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "AngleDisplacement = (DesiredDuration - RunningTimer) / DesiredDuration * Amplitude",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "Egal"
},
"parameters": [
"mod(Object.Variable(__ShakeObject_ShakeCounter),2)",
"=",
"1"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_DisplacementAngle",
"=",
"(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerAngle)"
],
"subInstructions": []
}
],
"events": []
}
]
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Calculate Scale shake",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerScale",
"!=",
"0"
],
"subInstructions": []
}
],
"actions": [],
"events": [
{
"disabled": false,
"folded": false,
"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",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "ScaleDisplacement = (DesiredDuration - RunningTimer) / DesiredDuration * Amplitude * 1/100",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Every even shake, increase scale",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "Egal"
},
"parameters": [
"mod(Object.Variable(__ShakeObject_ShakeCounter),2)",
"=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"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)"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Every \"odd\" shake, decrease scale",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"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",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "Egal"
},
"parameters": [
"mod(Object.Variable(__ShakeObject_ShakeCounter),2)",
"=",
"1"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_DisplacementScale",
"=",
"(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerScale) * (1/100)"
],
"subInstructions": []
}
],
"events": []
}
]
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Save that initial shake has been processed",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_InitialShake",
"=",
"0"
],
"subInstructions": []
}
],
"events": []
}
]
}
],
"parameters": []
},
{
"colorB": 228,
"colorG": 176,
"colorR": 74,
"creationTime": 0,
"disabled": false,
"folded": false,
"name": "Move object",
"source": "",
"type": "BuiltinCommonInstructions::Group",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Calculate the fraction of shake that occurred during this frame",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PercentTimeElapsedThisFrame",
"=",
"TimeDelta()/Object.Variable(__ShakeObject_TimeBetweenShakes)"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"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)",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": true,
"value": "ObjectTimer"
},
"parameters": [
"Object",
"\"__ShakeObject_ShakeTimer\"",
"Object.Variable(__ShakeObject_TimeBetweenShakes)/2"
],
"subInstructions": []
}
],
"actions": [],
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Change position",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "BuiltinCommonInstructions::Or"
},
"parameters": [],
"subInstructions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerX",
"!=",
"0"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerY",
"!=",
"0"
],
"subInstructions": []
}
]
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "MettreX"
},
"parameters": [
"Object",
"+",
"Object.Variable(__ShakeObject_DisplacementX) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "MettreY"
},
"parameters": [
"Object",
"+",
"Object.Variable(__ShakeObject_DisplacementY) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)"
],
"subInstructions": []
}
],
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Save movement to calculate drift",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_DisplacementTravelledX",
"+",
"Object.Variable(__ShakeObject_DisplacementX) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_DisplacementTravelledY",
"+",
"Object.Variable(__ShakeObject_DisplacementY) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)"
],
"subInstructions": []
}
],
"events": []
}
]
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Change angle",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "Egal"
},
"parameters": [
"Object.Variable(__ShakeObject_PowerAngle)",
"!=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "SetAngle"
},
"parameters": [
"Object",
"+",
"Object.Variable(__ShakeObject_DisplacementAngle) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)"
],
"subInstructions": []
}
],
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Save movement to calculate drift",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_AngleTravelled",
"+",
"Object.Variable(__ShakeObject_DisplacementAngle) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)"
],
"subInstructions": []
}
],
"events": []
}
]
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Change scale",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "Egal"
},
"parameters": [
"Object.Variable(__ShakeObject_PowerScale)",
"!=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ChangeScale"
},
"parameters": [
"Object",
"+",
"Object.Variable(__ShakeObject_DisplacementScale) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)"
],
"subInstructions": []
}
],
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Save movement to calculate drift",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_ScaleTravelled",
"+",
"Object.Variable(__ShakeObject_DisplacementScale) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)"
],
"subInstructions": []
}
],
"events": []
}
]
}
]
},
{
"disabled": false,
"folded": false,
"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)",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "ObjectTimer"
},
"parameters": [
"Object",
"\"__ShakeObject_ShakeTimer\"",
"Object.Variable(__ShakeObject_TimeBetweenShakes)/2"
],
"subInstructions": []
}
],
"actions": [],
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Change position",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "BuiltinCommonInstructions::Or"
},
"parameters": [],
"subInstructions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerX",
"!=",
"0"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerY",
"!=",
"0"
],
"subInstructions": []
}
]
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "MettreX"
},
"parameters": [
"Object",
"-",
"Object.Variable(__ShakeObject_DisplacementX) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "MettreY"
},
"parameters": [
"Object",
"-",
"Object.Variable(__ShakeObject_DisplacementY) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)"
],
"subInstructions": []
}
],
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Save movement to calculate drift",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_DisplacementTravelledX",
"-",
"Object.Variable(__ShakeObject_DisplacementX) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_DisplacementTravelledY",
"-",
"Object.Variable(__ShakeObject_DisplacementY) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)"
],
"subInstructions": []
}
],
"events": []
}
]
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Change angle",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "Egal"
},
"parameters": [
"Object.Variable(__ShakeObject_PowerAngle)",
"!=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "SetAngle"
},
"parameters": [
"Object",
"-",
"Object.Variable(__ShakeObject_DisplacementAngle) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)"
],
"subInstructions": []
}
],
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Save movement to calculate drift",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_AngleTravelled",
"-",
"Object.Variable(__ShakeObject_DisplacementAngle) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)"
],
"subInstructions": []
}
],
"events": []
}
]
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Change scale",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "Egal"
},
"parameters": [
"Object.Variable(__ShakeObject_PowerScale)",
"!=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ChangeScale"
},
"parameters": [
"Object",
"-",
"Object.Variable(__ShakeObject_DisplacementScale) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)"
],
"subInstructions": []
}
],
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Save movement to calculate drift",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_ScaleTravelled",
"-",
"Object.Variable(__ShakeObject_DisplacementScale) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)"
],
"subInstructions": []
}
],
"events": []
}
]
}
]
}
],
"parameters": []
}
]
}
],
"parameters": []
},
{
"colorB": 228,
"colorG": 176,
"colorR": 74,
"creationTime": 0,
"disabled": false,
"folded": false,
"name": "Stop shaking",
"source": "",
"type": "BuiltinCommonInstructions::Group",
"events": [
{
"disabled": false,
"folded": false,
"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)",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "BuiltinCommonInstructions::Or"
},
"parameters": [],
"subInstructions": [
{
"type": {
"inverted": false,
"value": "ObjectTimer"
},
"parameters": [
"Object",
"\"__ShakeObject_DurationTimer\"",
"Object.Variable(__ShakeObject_Duration)"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_ShakeInProgress",
"=",
"-1"
],
"subInstructions": []
}
]
},
{
"type": {
"inverted": false,
"value": "BuiltinCommonInstructions::Once"
},
"parameters": [],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_ShakeInProgress",
"=",
"0"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_ShakeCounter",
"=",
"0"
],
"subInstructions": []
}
],
"events": [
{
"colorB": 228,
"colorG": 176,
"colorR": 74,
"creationTime": 0,
"disabled": false,
"folded": true,
"name": "Correct for drift and reset drift tracking variables",
"source": "",
"type": "BuiltinCommonInstructions::Group",
"events": [
{
"disabled": false,
"folded": false,
"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",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "BuiltinCommonInstructions::Or"
},
"parameters": [],
"subInstructions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerX",
"!=",
"0"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerY",
"!=",
"0"
],
"subInstructions": []
}
]
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "MettreX"
},
"parameters": [
"Object",
"-",
"Object.Variable(__ShakeObject_DisplacementTravelledX)"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "MettreY"
},
"parameters": [
"Object",
"-",
"Object.Variable(__ShakeObject_DisplacementTravelledY)"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerAngle",
"!=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "SetAngle"
},
"parameters": [
"Object",
"-",
"Object.Variable(__ShakeObject_AngleTravelled)"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_PowerScale",
"!=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ChangeScale"
},
"parameters": [
"Object",
"-",
"Object.Variable(__ShakeObject_ScaleTravelled)"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Reset drift detection variables",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_DisplacementTravelledX",
"=",
"0"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_DisplacementTravelledY",
"=",
"0"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_AngleTravelled",
"=",
"0"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_ScaleTravelled",
"=",
"0"
],
"subInstructions": []
}
],
"events": []
}
],
"parameters": []
}
]
}
],
"parameters": []
}
],
"parameters": []
}
],
"parameters": [
{
"codeOnly": false,
"defaultValue": "",
"description": "Object",
"longDescription": "",
"name": "Object",
"optional": false,
"supplementaryInformation": "Sprite",
"type": "object"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Behavior",
"longDescription": "",
"name": "Behavior",
"optional": false,
"supplementaryInformation": "ShakeObject::ShakeObject_PositionAngleScale",
"type": "behavior"
}
],
"objectGroups": []
},
{
"description": "Stop shaking an object",
"fullName": "Stop shaking an object",
"functionType": "Action",
"name": "StopShaking",
"private": false,
"sentence": "Stop shaking _PARAM0_",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "ShakeObject::ShakeObject_PositionAngleScale::IsShaking"
},
"parameters": [
"Object",
"Behavior",
""
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Object",
"__ShakeObject_ShakeInProgress",
"=",
"-1"
],
"subInstructions": []
}
],
"events": []
}
],
"parameters": [
{
"codeOnly": false,
"defaultValue": "",
"description": "Object",
"longDescription": "",
"name": "Object",
"optional": false,
"supplementaryInformation": "Sprite",
"type": "object"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Behavior",
"longDescription": "",
"name": "Behavior",
"optional": false,
"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",
"private": false,
"sentence": "_PARAM0_ is shaking",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Object",
"__ShakeObject_ShakeInProgress",
"=",
"1"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "SetReturnBoolean"
},
"parameters": [
"True"
],
"subInstructions": []
}
],
"events": []
}
],
"parameters": [
{
"codeOnly": false,
"defaultValue": "",
"description": "Object",
"longDescription": "",
"name": "Object",
"optional": false,
"supplementaryInformation": "Sprite",
"type": "object"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Behavior",
"longDescription": "",
"name": "Behavior",
"optional": false,
"supplementaryInformation": "ShakeObject::ShakeObject_PositionAngleScale",
"type": "behavior"
}
],
"objectGroups": []
}
],
"propertyDescriptors": []
}
]
},
{
"author": "@4ian",
"description": "Make the object flash (blink) for a period of time, so that it is alternately visible and invisible.\nAfter adding this to an object, you have to **trigger the effect** by using the **Flash action**.",
"extensionNamespace": "",
"fullName": "Flash (blink)",
"helpPath": "",
"iconUrl": "",
"name": "Flash",
"previewIconUrl": "",
"shortDescription": "Make the object flash (blink) for a period of time, so that it is alternately visible and invisible.\nTrigger the effect by using the Flash action.",
"version": "1.0.0",
"tags": [
"flash",
"blink",
"visible",
"invisible",
"hit",
"damage"
],
"dependencies": [],
"eventsFunctions": [],
"eventsBasedBehaviors": [
{
"description": "Make the object flash (blink) for a period of time, so that it is alternately visible and invisible.\nTrigger the effect by using the Flash action.",
"fullName": "Flash (blink)",
"name": "Flash",
"objectType": "",
"eventsFunctions": [
{
"description": "",
"fullName": "",
"functionType": "Action",
"name": "doStepPreEvents",
"private": false,
"sentence": "",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "Flash::Flash::PropertyIsFlashing"
},
"parameters": [
"Object",
"Behavior"
],
"subInstructions": []
}
],
"actions": [],
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "ObjectTimer"
},
"parameters": [
"Object",
"\"FlashTimer\"",
"Object.Behavior::PropertyHalfPeriodTime()"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "Visible"
},
"parameters": [
"Object"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "Cache"
},
"parameters": [
"Object"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ResetObjectTimer"
},
"parameters": [
"Object",
"\"FlashTimer\""
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "ObjectTimer"
},
"parameters": [
"Object",
"\"FlashTimer\"",
"Object.Behavior::PropertyHalfPeriodTime()"
],
"subInstructions": []
},
{
"type": {
"inverted": true,
"value": "Visible"
},
"parameters": [
"Object"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "Montre"
},
"parameters": [
"Object",
""
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ResetObjectTimer"
},
"parameters": [
"Object",
"\"FlashTimer\""
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "ObjectTimer"
},
"parameters": [
"Object",
"\"FlashDurationTimer\"",
"Object.Behavior::PropertyFlashDuration()"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "Flash::Flash::Stop"
},
"parameters": [
"Object",
"Behavior",
""
],
"subInstructions": []
}
],
"events": []
}
]
}
],
"parameters": [
{
"codeOnly": false,
"defaultValue": "",
"description": "Object",
"longDescription": "",
"name": "Object",
"optional": false,
"supplementaryInformation": "",
"type": "object"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Behavior",
"longDescription": "",
"name": "Behavior",
"optional": false,
"supplementaryInformation": "Flash::Flash",
"type": "behavior"
}
],
"objectGroups": []
},
{
"description": "Make the specified object(s) blink for the given duration.",
"fullName": "Flash (blink)",
"functionType": "Action",
"name": "Flash",
"private": false,
"sentence": "Make _PARAM0_ blink for _PARAM2_ seconds",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "Egal"
},
"parameters": [
"GetArgumentAsNumber(\"FlashDuration\")",
">",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ResetObjectTimer"
},
"parameters": [
"Object",
"\"FlashDurationTimer\""
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "Flash::Flash::SetPropertyFlashDuration"
},
"parameters": [
"Object",
"Behavior",
"=",
"GetArgumentAsNumber(\"FlashDuration\")"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "Flash::Flash::SetPropertyIsFlashing"
},
"parameters": [
"Object",
"Behavior",
"yes"
],
"subInstructions": []
}
],
"events": []
}
],
"parameters": [
{
"codeOnly": false,
"defaultValue": "",
"description": "Object",
"longDescription": "",
"name": "Object",
"optional": false,
"supplementaryInformation": "",
"type": "object"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Behavior",
"longDescription": "",
"name": "Behavior",
"optional": false,
"supplementaryInformation": "Flash::Flash",
"type": "behavior"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Duration of the blinking, in seconds",
"longDescription": "",
"name": "FlashDuration",
"optional": false,
"supplementaryInformation": "",
"type": "expression"
}
],
"objectGroups": []
},
{
"description": "Check if the specified objects are flashing.",
"fullName": "Is object flashing",
"functionType": "Condition",
"name": "IsFlashing",
"private": false,
"sentence": "_PARAM0_ is flashing",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "SetReturnBoolean"
},
"parameters": [
"False"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "Flash::Flash::PropertyIsFlashing"
},
"parameters": [
"Object",
"Behavior"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "SetReturnBoolean"
},
"parameters": [
"True"
],
"subInstructions": []
}
],
"events": []
}
],
"parameters": [
{
"codeOnly": false,
"defaultValue": "",
"description": "Object",
"longDescription": "",
"name": "Object",
"optional": false,
"supplementaryInformation": "",
"type": "object"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Behavior",
"longDescription": "",
"name": "Behavior",
"optional": false,
"supplementaryInformation": "Flash::Flash",
"type": "behavior"
}
],
"objectGroups": []
},
{
"description": "",
"fullName": "",
"functionType": "Action",
"name": "onOwnerRemovedFromScene",
"private": false,
"sentence": "",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "Flash::Flash::Stop"
},
"parameters": [
"Object",
"Behavior",
""
],
"subInstructions": []
}
],
"events": []
}
],
"parameters": [
{
"codeOnly": false,
"defaultValue": "",
"description": "Object",
"longDescription": "",
"name": "Object",
"optional": false,
"supplementaryInformation": "",
"type": "object"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Behavior",
"longDescription": "",
"name": "Behavior",
"optional": false,
"supplementaryInformation": "Flash::Flash",
"type": "behavior"
}
],
"objectGroups": []
},
{
"description": "",
"fullName": "",
"functionType": "Action",
"name": "onDeActivate",
"private": false,
"sentence": "",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "Flash::Flash::Stop"
},
"parameters": [
"Object",
"Behavior",
""
],
"subInstructions": []
}
],
"events": []
}
],
"parameters": [
{
"codeOnly": false,
"defaultValue": "",
"description": "Object",
"longDescription": "",
"name": "Object",
"optional": false,
"supplementaryInformation": "",
"type": "object"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Behavior",
"longDescription": "",
"name": "Behavior",
"optional": false,
"supplementaryInformation": "Flash::Flash",
"type": "behavior"
}
],
"objectGroups": []
},
{
"description": "Stop the flashing of the specified object",
"fullName": "Stop flashing",
"functionType": "Action",
"name": "Stop",
"private": false,
"sentence": "Stop flashing _PARAM0_",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "Flash::Flash::PropertyIsFlashing"
},
"parameters": [
"Object",
"Behavior"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "Montre"
},
"parameters": [
"Object",
""
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "Flash::Flash::SetPropertyIsFlashing"
},
"parameters": [
"Object",
"Behavior",
"no"
],
"subInstructions": []
}
],
"events": []
}
],
"parameters": [
{
"codeOnly": false,
"defaultValue": "",
"description": "Object",
"longDescription": "",
"name": "Object",
"optional": false,
"supplementaryInformation": "",
"type": "object"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Behavior",
"longDescription": "",
"name": "Behavior",
"optional": false,
"supplementaryInformation": "Flash::Flash",
"type": "behavior"
}
],
"objectGroups": []
}
],
"propertyDescriptors": [
{
"value": "0.1",
"type": "Number",
"label": "Half period (time during which object is invisible), in seconds",
"description": "",
"extraInformation": [],
"hidden": false,
"name": "HalfPeriodTime"
},
{
"value": "",
"type": "Boolean",
"label": "",
"description": "",
"extraInformation": [],
"hidden": true,
"name": "IsFlashing"
},
{
"value": "0",
"type": "Number",
"label": "",
"description": "",
"extraInformation": [],
"hidden": true,
"name": "FlashDuration"
}
]
}
]
},
{
"author": "",
"description": "",
"extensionNamespace": "",
"fullName": "",
"helpPath": "",
"iconUrl": "",
"name": "FireBullet",
"previewIconUrl": "",
"shortDescription": "",
"version": "",
"tags": [
""
],
"dependencies": [],
"eventsFunctions": [],
"eventsBasedBehaviors": [
{
"description": "Allow the object to fire bullets, with customizable speed, angle and fire rate.",
"fullName": "Fire Bullet",
"name": "FireBullet",
"objectType": "",
"eventsFunctions": [
{
"description": "Fire a bullet",
"fullName": "Fire a bullet",
"functionType": "Action",
"name": "Fire",
"private": false,
"sentence": "Fire _PARAM4_ from _PARAM0_, at position _PARAM2_;_PARAM3_, with angle _PARAM5_ and speed _PARAM6_ px/s",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "ObjectTimer"
},
"parameters": [
"Object",
"\"FireCooldown\"",
"Object.Behavior::PropertyFireCooldown()"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "Create"
},
"parameters": [
"",
"Bullet",
"GetArgumentAsNumber(\"XPosition\")",
"GetArgumentAsNumber(\"YPosition\")",
"\"\""
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "AddForceAL"
},
"parameters": [
"Bullet",
"GetArgumentAsNumber(\"Angle\")",
"GetArgumentAsNumber(\"Speed\")",
"1"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ResetObjectTimer"
},
"parameters": [
"Object",
"\"FireCooldown\""
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "FireBullet::FireBullet::SetPropertyHasJustFired"
},
"parameters": [
"Object",
"Behavior",
"yes"
],
"subInstructions": []
}
],
"events": []
}
],
"parameters": [
{
"codeOnly": false,
"defaultValue": "",
"description": "Object",
"longDescription": "",
"name": "Object",
"optional": false,
"supplementaryInformation": "",
"type": "object"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Behavior",
"longDescription": "",
"name": "Behavior",
"optional": false,
"supplementaryInformation": "FireBullet::FireBullet",
"type": "behavior"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "X position, where to create the bullet",
"longDescription": "",
"name": "XPosition",
"optional": false,
"supplementaryInformation": "",
"type": "expression"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Y position, where to create the bullet",
"longDescription": "",
"name": "YPosition",
"optional": false,
"supplementaryInformation": "",
"type": "expression"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "The bullet object",
"longDescription": "",
"name": "Bullet",
"optional": false,
"supplementaryInformation": "",
"type": "objectList"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Angle of the bullet, in degrees",
"longDescription": "",
"name": "Angle",
"optional": false,
"supplementaryInformation": "",
"type": "expression"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Speed of the bullet, in pixels per second",
"longDescription": "",
"name": "Speed",
"optional": false,
"supplementaryInformation": "",
"type": "expression"
}
],
"objectGroups": []
},
{
"description": "Check if the object has just fired something.",
"fullName": "Has just fired",
"functionType": "Condition",
"name": "HasJustFired",
"private": false,
"sentence": "_PARAM0_ has just fired",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "SetReturnBoolean"
},
"parameters": [
"False"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "FireBullet::FireBullet::PropertyHasJustFired"
},
"parameters": [
"Object",
"Behavior"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "SetReturnBoolean"
},
"parameters": [
"True"
],
"subInstructions": []
}
],
"events": []
}
],
"parameters": [
{
"codeOnly": false,
"defaultValue": "",
"description": "Object",
"longDescription": "",
"name": "Object",
"optional": false,
"supplementaryInformation": "",
"type": "object"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Behavior",
"longDescription": "",
"name": "Behavior",
"optional": false,
"supplementaryInformation": "FireBullet::FireBullet",
"type": "behavior"
}
],
"objectGroups": []
},
{
"description": "",
"fullName": "",
"functionType": "Action",
"name": "doStepPreEvents",
"private": false,
"sentence": "",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "FireBullet::FireBullet::SetPropertyHasJustFired"
},
"parameters": [
"Object",
"Behavior",
"="
],
"subInstructions": []
}
],
"events": []
}
],
"parameters": [
{
"codeOnly": false,
"defaultValue": "",
"description": "Object",
"longDescription": "",
"name": "Object",
"optional": false,
"supplementaryInformation": "",
"type": "object"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Behavior",
"longDescription": "",
"name": "Behavior",
"optional": false,
"supplementaryInformation": "FireBullet::FireBullet",
"type": "behavior"
}
],
"objectGroups": []
}
],
"propertyDescriptors": [
{
"value": "0.1",
"type": "Number",
"label": "Cooldown, in seconds, before firing again",
"description": "",
"extraInformation": [],
"hidden": false,
"name": "FireCooldown"
},
{
"value": "",
"type": "Boolean",
"label": "",
"description": "",
"extraInformation": [],
"hidden": true,
"name": "HasJustFired"
}
]
}
]
},
{
"author": "",
"description": "",
"extensionNamespace": "",
"fullName": "",
"helpPath": "",
"iconUrl": "",
"name": "Health",
"previewIconUrl": "",
"shortDescription": "",
"version": "",
"tags": [
""
],
"dependencies": [],
"eventsFunctions": [],
"eventsBasedBehaviors": [
{
"description": "Add actions and conditions to manage the life of the object. Object can get damages, lose some health and you can check with a condition if it's dead.",
"fullName": "Health",
"name": "Health",
"objectType": "",
"eventsFunctions": [
{
"description": "Add some damage to the object, decreasing its life.",
"fullName": "Damage the object",
"functionType": "Action",
"name": "Hit",
"private": false,
"sentence": "Damage _PARAM0_, removing _PARAM2_ from its health",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "BuiltinCommonInstructions::Or"
},
"parameters": [],
"subInstructions": [
{
"type": {
"inverted": false,
"value": "ObjectTimer"
},
"parameters": [
"Object",
"\"DamageCooldown\"",
"Object.Behavior::PropertyDamageCooldown()"
],
"subInstructions": []
},
{
"type": {
"inverted": true,
"value": "Health::Health::PropertyCooldownActive"
},
"parameters": [
"Object",
"Behavior"
],
"subInstructions": []
}
]
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "Health::Health::SetPropertyHealth"
},
"parameters": [
"Object",
"Behavior",
"-",
"GetArgumentAsNumber(\"DamageValue\")"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ResetObjectTimer"
},
"parameters": [
"Object",
"\"DamageCooldown\""
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "Health::Health::SetPropertyCooldownActive"
},
"parameters": [
"Object",
"Behavior",
"yes"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "Health::Health::SetPropertyIsJustDamaged"
},
"parameters": [
"Object",
"Behavior",
"yes"
],
"subInstructions": []
}
],
"events": []
}
],
"parameters": [
{
"codeOnly": false,
"defaultValue": "",
"description": "Object",
"longDescription": "",
"name": "Object",
"optional": false,
"supplementaryInformation": "",
"type": "object"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Behavior",
"longDescription": "",
"name": "Behavior",
"optional": false,
"supplementaryInformation": "Health::Health",
"type": "behavior"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Value of the damage to do (will be removed from object health)",
"longDescription": "",
"name": "DamageValue",
"optional": false,
"supplementaryInformation": "",
"type": "expression"
}
],
"objectGroups": []
},
{
"description": "Check if the object is considered dead (no more health)",
"fullName": "Is dead",
"functionType": "Condition",
"name": "IsDead",
"private": false,
"sentence": "_PARAM0_ is dead",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "SetReturnBoolean"
},
"parameters": [
"False"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "Health::Health::PropertyHealth"
},
"parameters": [
"Object",
"Behavior",
"<=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "SetReturnBoolean"
},
"parameters": [
"True"
],
"subInstructions": []
}
],
"events": []
}
],
"parameters": [
{
"codeOnly": false,
"defaultValue": "",
"description": "Object",
"longDescription": "",
"name": "Object",
"optional": false,
"supplementaryInformation": "",
"type": "object"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Behavior",
"longDescription": "",
"name": "Behavior",
"optional": false,
"supplementaryInformation": "Health::Health",
"type": "behavior"
}
],
"objectGroups": []
},
{
"description": "",
"fullName": "",
"functionType": "Action",
"name": "doStepPreEvents",
"private": false,
"sentence": "",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "Health::Health::SetPropertyIsJustDamaged"
},
"parameters": [
"Object",
"Behavior",
"no"
],
"subInstructions": []
}
],
"events": []
}
],
"parameters": [
{
"codeOnly": false,
"defaultValue": "",
"description": "Object",
"longDescription": "",
"name": "Object",
"optional": false,
"supplementaryInformation": "",
"type": "object"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Behavior",
"longDescription": "",
"name": "Behavior",
"optional": false,
"supplementaryInformation": "Health::Health",
"type": "behavior"
}
],
"objectGroups": []
},
{
"description": "Check if the object was just damaged previously in the events.",
"fullName": "Is just damaged",
"functionType": "Condition",
"name": "IsJustDamaged",
"private": false,
"sentence": "_PARAM0_ has just been damaged",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "SetReturnBoolean"
},
"parameters": [
"False"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "Health::Health::PropertyIsJustDamaged"
},
"parameters": [
"Object",
"Behavior"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "SetReturnBoolean"
},
"parameters": [
"True"
],
"subInstructions": []
}
],
"events": []
}
],
"parameters": [
{
"codeOnly": false,
"defaultValue": "",
"description": "Object",
"longDescription": "",
"name": "Object",
"optional": false,
"supplementaryInformation": "",
"type": "object"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Behavior",
"longDescription": "",
"name": "Behavior",
"optional": false,
"supplementaryInformation": "Health::Health",
"type": "behavior"
}
],
"objectGroups": []
},
{
"description": "Heal the object, incrasing its life.",
"fullName": "Heal the object",
"functionType": "Action",
"name": "Heal",
"private": false,
"sentence": "Heal _PARAM0_, adding _PARAM2_ to its health",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "Health::Health::SetPropertyHealth"
},
"parameters": [
"Object",
"Behavior",
"+",
"GetArgumentAsNumber(\"HealValue\")"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "Health::Health::PropertyMaxHealth"
},
"parameters": [
"Object",
"Behavior",
">",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "Health::Health::SetPropertyHealth"
},
"parameters": [
"Object",
"Behavior",
"=",
"min(Object.Behavior::PropertyHealth(), Object.Behavior::PropertyMaxHealth())"
],
"subInstructions": []
}
],
"events": []
}
],
"parameters": [
{
"codeOnly": false,
"defaultValue": "",
"description": "Object",
"longDescription": "",
"name": "Object",
"optional": false,
"supplementaryInformation": "",
"type": "object"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Behavior",
"longDescription": "",
"name": "Behavior",
"optional": false,
"supplementaryInformation": "Health::Health",
"type": "behavior"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "How much to heal (will be added to object health)",
"longDescription": "",
"name": "HealValue",
"optional": false,
"supplementaryInformation": "",
"type": "expression"
}
],
"objectGroups": []
},
{
"description": "Change the object health to set it to a specific value (check if the actions to damage or heal the object are not better suited to your use case before using this one).",
"fullName": "Change object health",
"functionType": "Action",
"name": "SetHealth",
"private": false,
"sentence": "Set health of _PARAM0_ to _PARAM2_",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "Health::Health::SetPropertyHealth"
},
"parameters": [
"Object",
"Behavior",
"=",
"GetArgumentAsNumber(\"Value\")"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "Health::Health::PropertyMaxHealth"
},
"parameters": [
"Object",
"Behavior",
">",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "Health::Health::SetPropertyHealth"
},
"parameters": [
"Object",
"Behavior",
"=",
"min(Object.Behavior::PropertyHealth(), Object.Behavior::PropertyMaxHealth())"
],
"subInstructions": []
}
],
"events": []
}
],
"parameters": [
{
"codeOnly": false,
"defaultValue": "",
"description": "Object",
"longDescription": "",
"name": "Object",
"optional": false,
"supplementaryInformation": "",
"type": "object"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Behavior",
"longDescription": "",
"name": "Behavior",
"optional": false,
"supplementaryInformation": "Health::Health",
"type": "behavior"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "New health value",
"longDescription": "",
"name": "Value",
"optional": false,
"supplementaryInformation": "",
"type": "expression"
}
],
"objectGroups": []
},
{
"description": "The health of the object",
"fullName": "Health",
"functionType": "Expression",
"name": "Health",
"private": false,
"sentence": "",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "SetReturnNumber"
},
"parameters": [
"Object.Behavior::PropertyHealth()"
],
"subInstructions": []
}
],
"events": []
}
],
"parameters": [
{
"codeOnly": false,
"defaultValue": "",
"description": "Object",
"longDescription": "",
"name": "Object",
"optional": false,
"supplementaryInformation": "",
"type": "object"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Behavior",
"longDescription": "",
"name": "Behavior",
"optional": false,
"supplementaryInformation": "Health::Health",
"type": "behavior"
}
],
"objectGroups": []
}
],
"propertyDescriptors": [
{
"value": "100",
"type": "Number",
"label": "Health",
"description": "",
"extraInformation": [],
"hidden": false,
"name": "Health"
},
{
"value": "0",
"type": "Number",
"label": "Damage cooldown (in seconds) (0 for no cooldown)",
"description": "",
"extraInformation": [],
"hidden": false,
"name": "DamageCooldown"
},
{
"value": "100",
"type": "Number",
"label": "Maximum health (0 for no maximum)",
"description": "",
"extraInformation": [],
"hidden": false,
"name": "MaxHealth"
},
{
"value": "",
"type": "Boolean",
"label": "",
"description": "",
"extraInformation": [],
"hidden": true,
"name": "IsJustDamaged"
},
{
"value": "",
"type": "Boolean",
"label": "",
"description": "",
"extraInformation": [],
"hidden": true,
"name": "CooldownActive"
}
]
}
]
},
{
"author": "",
"description": "",
"extensionNamespace": "",
"fullName": "",
"helpPath": "",
"iconUrl": "",
"name": "StayOnScreen",
"previewIconUrl": "",
"shortDescription": "",
"version": "",
"tags": [
""
],
"dependencies": [],
"eventsFunctions": [],
"eventsBasedBehaviors": [
{
"description": "Force the object to stay visible on the screen by setting back its position inside the viewport of the camera.",
"fullName": "Stay on Screen",
"name": "StayOnScreen",
"objectType": "",
"eventsFunctions": [
{
"description": "",
"fullName": "",
"functionType": "Action",
"name": "doStepPostEvents",
"private": false,
"sentence": "",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "MettreX"
},
"parameters": [
"Object",
"=",
"min(max(Object.X(), CameraX(Object.Layer(), 0) - CameraWidth(Object.Layer(), 0)/2 + Object.Behavior::PropertyMarginLeft()), CameraX(Object.Layer(), 0) + CameraWidth(Object.Layer(), 0)/2 - Object.Behavior::PropertyMarginRight())"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "MettreY"
},
"parameters": [
"Object",
"=",
"min(max(Object.Y(), CameraY(Object.Layer(), 0) - CameraHeight(Object.Layer(), 0)/2+ Object.Behavior::PropertyMarginTop()), CameraY(Object.Layer(), 0) + CameraHeight(Object.Layer(), 0)/2- Object.Behavior::PropertyMarginBottom())"
],
"subInstructions": []
}
],
"events": []
}
],
"parameters": [
{
"codeOnly": false,
"defaultValue": "",
"description": "Object",
"longDescription": "",
"name": "Object",
"optional": false,
"supplementaryInformation": "",
"type": "object"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Behavior",
"longDescription": "",
"name": "Behavior",
"optional": false,
"supplementaryInformation": "StayOnScreen::StayOnScreen",
"type": "behavior"
}
],
"objectGroups": []
}
],
"propertyDescriptors": [
{
"value": "0",
"type": "Number",
"label": "Top margin, in pixels",
"description": "",
"extraInformation": [],
"hidden": false,
"name": "MarginTop"
},
{
"value": "0",
"type": "Number",
"label": "Bottom margin, in pixels",
"description": "",
"extraInformation": [],
"hidden": false,
"name": "MarginBottom"
},
{
"value": "0",
"type": "Number",
"label": "Left margin, in pixels",
"description": "",
"extraInformation": [],
"hidden": false,
"name": "MarginLeft"
},
{
"value": "0",
"type": "Number",
"label": "Right margin, in pixels",
"description": "",
"extraInformation": [],
"hidden": false,
"name": "MarginRight"
}
]
}
]
},
{
"author": "",
"description": "",
"extensionNamespace": "",
"fullName": "",
"helpPath": "",
"iconUrl": "",
"name": "LinearMovement",
"previewIconUrl": "",
"shortDescription": "",
"version": "",
"tags": [
""
],
"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": [
{
"description": "",
"fullName": "",
"functionType": "Action",
"name": "doStepPreEvents",
"private": false,
"sentence": "",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "AddForceXY"
},
"parameters": [
"Object",
"Object.Behavior::PropertySpeedX()",
"Object.Behavior::PropertySpeedY()",
""
],
"subInstructions": []
}
],
"events": []
}
],
"parameters": [
{
"codeOnly": false,
"defaultValue": "",
"description": "Object",
"longDescription": "",
"name": "Object",
"optional": false,
"supplementaryInformation": "",
"type": "object"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Behavior",
"longDescription": "",
"name": "Behavior",
"optional": false,
"supplementaryInformation": "LinearMovement::LinearMovement",
"type": "behavior"
}
],
"objectGroups": []
}
],
"propertyDescriptors": [
{
"value": "0",
"type": "Number",
"label": "Speed on X axis",
"description": "",
"extraInformation": [],
"hidden": false,
"name": "SpeedX"
},
{
"value": "0",
"type": "Number",
"label": "Speed on Y axis",
"description": "",
"extraInformation": [],
"hidden": false,
"name": "SpeedY"
}
]
}
]
},
{
"author": "",
"description": "",
"extensionNamespace": "",
"fullName": "",
"helpPath": "",
"iconUrl": "",
"name": "BackAndForthMovement",
"previewIconUrl": "",
"shortDescription": "",
"version": "",
"tags": [
""
],
"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 \"Left\" and \"TurnLeft\".",
"fullName": "Back and Forth (mirrored) Movement",
"name": "BackAndForthMirroredMovement",
"objectType": "Sprite",
"eventsFunctions": [
{
"description": "",
"fullName": "",
"functionType": "Action",
"name": "doStepPreEvents",
"private": false,
"sentence": "",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "BackAndForthMovement::BackAndForthMirroredMovement::PropertyInitialX"
},
"parameters": [
"Object",
"Behavior",
"=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "BackAndForthMovement::BackAndForthMirroredMovement::SetPropertyInitialX"
},
"parameters": [
"Object",
"Behavior",
"=",
"Object.X()"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"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",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "AnimationName"
},
"parameters": [
"Object",
"\"GoLeft\""
],
"subInstructions": []
},
{
"type": {
"inverted": true,
"value": "FlippedX"
},
"parameters": [
"Object"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "AddForceXY"
},
"parameters": [
"Object",
"-Object.Behavior::PropertySpeedX()",
"0",
""
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "AnimationName"
},
"parameters": [
"Object",
"\"GoLeft\""
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "FlippedX"
},
"parameters": [
"Object"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "AddForceXY"
},
"parameters": [
"Object",
"+Object.Behavior::PropertySpeedX()",
"0",
""
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"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",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "PosX"
},
"parameters": [
"Object",
">",
"Object.Behavior::PropertyInitialX()"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "MettreX"
},
"parameters": [
"Object",
"=",
"Object.Behavior::PropertyInitialX()"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "SetAnimationName"
},
"parameters": [
"Object",
"\"TurnLeft\""
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "FlipX"
},
"parameters": [
"Object",
"no"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "PosX"
},
"parameters": [
"Object",
"<",
"Object.Behavior::PropertyInitialX() - Object.Behavior::PropertyDistanceX()"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "MettreX"
},
"parameters": [
"Object",
"=",
"Object.Behavior::PropertyInitialX() - Object.Behavior::PropertyDistanceX()"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "SetAnimationName"
},
"parameters": [
"Object",
"\"TurnLeft\""
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "FlipX"
},
"parameters": [
"Object",
"yes"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"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)",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "AnimationName"
},
"parameters": [
"Object",
"\"TurnLeft\""
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "AnimationEnded"
},
"parameters": [
"Object"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "SetAnimationName"
},
"parameters": [
"Object",
"\"GoLeft\""
],
"subInstructions": []
}
],
"events": []
}
],
"parameters": [
{
"codeOnly": false,
"defaultValue": "",
"description": "Object",
"longDescription": "",
"name": "Object",
"optional": false,
"supplementaryInformation": "Sprite",
"type": "object"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Behavior",
"longDescription": "",
"name": "Behavior",
"optional": false,
"supplementaryInformation": "BackAndForthMovement::BackAndForthMirroredMovement",
"type": "behavior"
}
],
"objectGroups": []
}
],
"propertyDescriptors": [
{
"value": "200",
"type": "Number",
"label": "Speed on X axis, in pixels per second",
"description": "",
"extraInformation": [],
"hidden": false,
"name": "SpeedX"
},
{
"value": "300",
"type": "Number",
"label": "Distance traveled on X axis, in pixels",
"description": "",
"extraInformation": [],
"hidden": false,
"name": "DistanceX"
},
{
"value": "0",
"type": "Number",
"label": "",
"description": "",
"extraInformation": [],
"hidden": true,
"name": "InitialX"
}
]
}
]
},
{
"author": "",
"description": "",
"extensionNamespace": "",
"fullName": "",
"helpPath": "",
"iconUrl": "",
"name": "SineMovement",
"previewIconUrl": "",
"shortDescription": "",
"version": "",
"tags": [
""
],
"dependencies": [],
"eventsFunctions": [],
"eventsBasedBehaviors": [
{
"description": "Allow an object to move smoothly on the X and/or Y axis following a sine wave.",
"fullName": "Sine Movement",
"name": "SineMovement",
"objectType": "",
"eventsFunctions": [
{
"description": "",
"fullName": "",
"functionType": "Action",
"name": "doStepPreEvents",
"private": false,
"sentence": "",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "SineMovement::SineMovement::PropertyInitialX"
},
"parameters": [
"Object",
"Behavior",
"=",
"0"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "SineMovement::SineMovement::PropertyInitialY"
},
"parameters": [
"Object",
"Behavior",
"=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "SineMovement::SineMovement::SetPropertyInitialX"
},
"parameters": [
"Object",
"Behavior",
"=",
"Object.X()"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "SineMovement::SineMovement::SetPropertyInitialY"
},
"parameters": [
"Object",
"Behavior",
"=",
"Object.Y()"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "SineMovement::SineMovement::PropertyAmplitudeX"
},
"parameters": [
"Object",
"Behavior",
">",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "MettreX"
},
"parameters": [
"Object",
"=",
"Object.Behavior::PropertyInitialX() + cos(ToRad(Object.Behavior::PropertySineProgress())) * Object.Behavior::PropertyAmplitudeX()"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "SineMovement::SineMovement::PropertyAmplitudeY"
},
"parameters": [
"Object",
"Behavior",
">",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "MettreY"
},
"parameters": [
"Object",
"=",
"Object.Behavior::PropertyInitialY() + sin(ToRad(Object.Behavior::PropertySineProgress())) * Object.Behavior::PropertyAmplitudeY()"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "SineMovement::SineMovement::SetPropertySineProgress"
},
"parameters": [
"Object",
"Behavior",
"+",
"Object.Behavior::PropertySineSpeed() * TimeDelta()"
],
"subInstructions": []
}
],
"events": []
}
],
"parameters": [
{
"codeOnly": false,
"defaultValue": "",
"description": "Object",
"longDescription": "",
"name": "Object",
"optional": false,
"supplementaryInformation": "",
"type": "object"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Behavior",
"longDescription": "",
"name": "Behavior",
"optional": false,
"supplementaryInformation": "SineMovement::SineMovement",
"type": "behavior"
}
],
"objectGroups": []
}
],
"propertyDescriptors": [
{
"value": "60",
"type": "Number",
"label": "Speed, in degrees per second",
"description": "",
"extraInformation": [],
"hidden": false,
"name": "SineSpeed"
},
{
"value": "100",
"type": "Number",
"label": "Amplitude of the movement on X axis (0 to deactivate)",
"description": "",
"extraInformation": [],
"hidden": false,
"name": "AmplitudeX"
},
{
"value": "0",
"type": "Number",
"label": "Amplitude of the movement on Y axis (0 to deactivate)",
"description": "",
"extraInformation": [],
"hidden": false,
"name": "AmplitudeY"
},
{
"value": "0",
"type": "Number",
"label": "",
"description": "",
"extraInformation": [],
"hidden": true,
"name": "InitialX"
},
{
"value": "0",
"type": "Number",
"label": "",
"description": "",
"extraInformation": [],
"hidden": true,
"name": "InitialY"
},
{
"value": "0",
"type": "Number",
"label": "",
"description": "",
"extraInformation": [],
"hidden": true,
"name": "SineProgress"
}
]
}
]
},
{
"author": "",
"description": "",
"extensionNamespace": "",
"fullName": "",
"helpPath": "",
"iconUrl": "",
"name": "VibratingCamera",
"previewIconUrl": "",
"shortDescription": "",
"version": "",
"tags": [
""
],
"dependencies": [],
"eventsFunctions": [
{
"description": "Vibrate the camera randomly around a position",
"fullName": "Vibrate the camera around a position",
"functionType": "Action",
"name": "VibrateCameraAroundPosition",
"private": false,
"sentence": "Vibrate the camera around _PARAM1_;_PARAM2_ with amplitude _PARAM3_ on X axis and _PARAM4_ on Y axis at frequency _PARAM5_hz (layer: _PARAM6_)",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "BuiltinCommonInstructions::Once"
},
"parameters": [],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "ResetTimer"
},
"parameters": [
"",
"\"CameraVibrationTimer\""
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "Egal"
},
"parameters": [
"GetArgumentAsNumber(\"Frequency\")",
">",
"0"
],
"subInstructions": []
}
],
"actions": [],
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "Timer"
},
"parameters": [
"",
"1/GetArgumentAsNumber(\"Frequency\")",
"\"CameraVibrationTimer\""
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "CameraY"
},
"parameters": [
"",
"=",
"GetArgumentAsNumber(\"YPosition\") + RandomInRange(-GetArgumentAsNumber(\"YAmplitude\"), GetArgumentAsNumber(\"YAmplitude\"))",
"GetArgumentAsString(\"Layer\")",
"0"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "CameraX"
},
"parameters": [
"",
"=",
"GetArgumentAsNumber(\"XPosition\") + RandomInRange(-GetArgumentAsNumber(\"XAmplitude\"), GetArgumentAsNumber(\"XAmplitude\"))",
"GetArgumentAsString(\"Layer\")",
"0"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ResetTimer"
},
"parameters": [
"",
"\"CameraVibrationTimer\""
],
"subInstructions": []
}
],
"events": []
}
]
}
],
"parameters": [
{
"codeOnly": false,
"defaultValue": "",
"description": "X position where to set the camera",
"longDescription": "",
"name": "XPosition",
"optional": false,
"supplementaryInformation": "",
"type": "expression"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Y position where to set the camera",
"longDescription": "",
"name": "YPosition",
"optional": false,
"supplementaryInformation": "",
"type": "expression"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Amplitude of the shaking on X axis, in pixels",
"longDescription": "",
"name": "XAmplitude",
"optional": false,
"supplementaryInformation": "",
"type": "expression"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Amplitude of the shaking on Y axis, in pixels",
"longDescription": "",
"name": "YAmplitude",
"optional": false,
"supplementaryInformation": "",
"type": "expression"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Frequency, in hz (e.g: 30)",
"longDescription": "",
"name": "Frequency",
"optional": false,
"supplementaryInformation": "",
"type": "expression"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Layer to be shaken",
"longDescription": "",
"name": "Layer",
"optional": false,
"supplementaryInformation": "",
"type": "string"
}
],
"objectGroups": []
}
],
"eventsBasedBehaviors": []
},
{
"author": "",
"description": "",
"extensionNamespace": "",
"fullName": "",
"helpPath": "",
"iconUrl": "",
"name": "SpaceShooterControls",
"previewIconUrl": "",
"shortDescription": "",
"version": "",
"tags": [
""
],
"dependencies": [],
"eventsFunctions": [
{
"description": "Handle the player object movements, by checking the touch position or the keys pressed",
"fullName": "Handle player movement",
"functionType": "Action",
"name": "HandlePlayerMovement",
"private": false,
"sentence": "Handle the movements of _PARAM1_ (using touch, if not touching _PARAM3_, or keyboard keys)",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [],
"actions": [
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Player",
"GoingUp",
"=",
"0"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Player",
"GoingDown",
"=",
"0"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Moving with touch/mouse",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "SourisBouton"
},
"parameters": [
"",
"Left"
],
"subInstructions": []
},
{
"type": {
"inverted": true,
"value": "SourisSurObjet"
},
"parameters": [
"ChangeButton",
"",
"",
""
],
"subInstructions": []
}
],
"actions": [],
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "PosX"
},
"parameters": [
"Player",
">",
"MouseX(\"\", 0)+10"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "TopDownMovementBehavior::SimulateLeftKey"
},
"parameters": [
"Player",
"TopDownMovement"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "PosX"
},
"parameters": [
"Player",
"<",
"MouseX(\"\", 0)-10"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "TopDownMovementBehavior::SimulateRightKey"
},
"parameters": [
"Player",
"TopDownMovement"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "PosY"
},
"parameters": [
"Player",
"<",
"MouseY(\"\", 0)-10"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "TopDownMovementBehavior::SimulateDownKey"
},
"parameters": [
"Player",
"TopDownMovement"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Player",
"GoingDown",
"=",
"1"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "PosY"
},
"parameters": [
"Player",
">",
"MouseY(\"\", 0)+10"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "TopDownMovementBehavior::SimulateUpKey"
},
"parameters": [
"Player",
"TopDownMovement"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Player",
"GoingUp",
"=",
"1"
],
"subInstructions": []
}
],
"events": []
}
]
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Comment",
"color": {
"b": 109,
"g": 230,
"r": 255,
"textB": 0,
"textG": 0,
"textR": 0
},
"comment": "Moving with keyboard (you can customize controls here)",
"comment2": ""
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "KeyPressed"
},
"parameters": [
"",
"Left"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "TopDownMovementBehavior::SimulateLeftKey"
},
"parameters": [
"Player",
"TopDownMovement"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "KeyPressed"
},
"parameters": [
"",
"Right"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "TopDownMovementBehavior::SimulateRightKey"
},
"parameters": [
"Player",
"TopDownMovement"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "KeyPressed"
},
"parameters": [
"",
"Down"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "TopDownMovementBehavior::SimulateDownKey"
},
"parameters": [
"Player",
"TopDownMovement"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Player",
"GoingDown",
"=",
"1"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "KeyPressed"
},
"parameters": [
"",
"Up"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "TopDownMovementBehavior::SimulateUpKey"
},
"parameters": [
"Player",
"TopDownMovement"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "ModVarObjet"
},
"parameters": [
"Player",
"GoingUp",
"=",
"1"
],
"subInstructions": []
}
],
"events": []
}
],
"parameters": [
{
"codeOnly": false,
"defaultValue": "",
"description": "Player object, to be moved",
"longDescription": "",
"name": "Player",
"optional": false,
"supplementaryInformation": "",
"type": "objectList"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Top-down movement behavior of this object",
"longDescription": "",
"name": "TopDownMovement",
"optional": false,
"supplementaryInformation": "TopDownMovementBehavior::TopDownMovementBehavior",
"type": "behavior"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Object that are buttons, that should not result in having the player moved",
"longDescription": "",
"name": "ChangeButton",
"optional": false,
"supplementaryInformation": "",
"type": "objectList"
}
],
"objectGroups": []
},
{
"description": "Check if the player is pressing the fire button",
"fullName": "Player is pressing fire button",
"functionType": "Condition",
"name": "ShouldFire",
"private": false,
"sentence": "Player is pressing fire button (using touch or keyboard)",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "SourisBouton"
},
"parameters": [
"",
"Left"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "SetReturnBoolean"
},
"parameters": [
"True"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "KeyPressed"
},
"parameters": [
"",
"Space"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "SetReturnBoolean"
},
"parameters": [
"True"
],
"subInstructions": []
}
],
"events": []
}
],
"parameters": [],
"objectGroups": []
},
{
"description": "Check if the player is pressing the transform key, or touching the \"Change\" button on screen.",
"fullName": "Player wants to transform",
"functionType": "Condition",
"name": "ShouldTransform",
"private": false,
"sentence": "The player is pressing the transform key (or touching _PARAM1_)",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "SourisSurObjet"
},
"parameters": [
"ChangeButton",
"",
"no",
""
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "SourisBouton"
},
"parameters": [
"",
"Left"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "SetReturnBoolean"
},
"parameters": [
"True"
],
"subInstructions": []
}
],
"events": []
},
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "KeyPressed"
},
"parameters": [
"ChangeButton",
"Return"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "SetReturnBoolean"
},
"parameters": [
"True"
],
"subInstructions": []
}
],
"events": []
}
],
"parameters": [
{
"codeOnly": false,
"defaultValue": "",
"description": "The object to touch to trigger transformation",
"longDescription": "",
"name": "ChangeButton",
"optional": false,
"supplementaryInformation": "",
"type": "objectList"
}
],
"objectGroups": []
},
{
"description": "Check if the player is moving up",
"fullName": "Player is moving up",
"functionType": "Condition",
"name": "GoingUp",
"private": false,
"sentence": "_PARAM1_ is moving up",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Player",
"GoingUp",
"=",
"1"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Player",
"GoingDown",
"=",
"0"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "SetReturnBoolean"
},
"parameters": [
"True"
],
"subInstructions": []
}
],
"events": []
}
],
"parameters": [
{
"codeOnly": false,
"defaultValue": "",
"description": "Player object",
"longDescription": "",
"name": "Player",
"optional": false,
"supplementaryInformation": "",
"type": "objectList"
}
],
"objectGroups": []
},
{
"description": "Check if the player is moving down",
"fullName": "Player is moving down",
"functionType": "Condition",
"name": "GoingDown",
"private": false,
"sentence": "_PARAM1_ is moving down",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::Standard",
"conditions": [
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Player",
"GoingUp",
"=",
"0"
],
"subInstructions": []
},
{
"type": {
"inverted": false,
"value": "VarObjet"
},
"parameters": [
"Player",
"GoingDown",
"=",
"1"
],
"subInstructions": []
}
],
"actions": [
{
"type": {
"inverted": false,
"value": "SetReturnBoolean"
},
"parameters": [
"True"
],
"subInstructions": []
}
],
"events": []
}
],
"parameters": [
{
"codeOnly": false,
"defaultValue": "",
"description": "",
"longDescription": "",
"name": "Player",
"optional": false,
"supplementaryInformation": "",
"type": "objectList"
}
],
"objectGroups": []
}
],
"eventsBasedBehaviors": []
}
],
"externalLayouts": [],
"externalSourceFiles": []
}