diff --git a/examples/resource-bar/ResourceBar.json b/examples/resource-bar/ResourceBar.json new file mode 100644 index 000000000..d66648ba1 --- /dev/null +++ b/examples/resource-bar/ResourceBar.json @@ -0,0 +1,7578 @@ +{ + "author": "Tristan Rhodes (https://victrisgames.itch.io/), D8H", + "category": "Input", + "description": "Solid resource bar\n\nUnit resource bar", + "extensionNamespace": "", + "fullName": "Resource bar", + "helpPath": "", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iSWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMzIgMzIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMyIDMyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQo8L3N0eWxlPg0KPGNpcmNsZSBjbGFzcz0ic3QwIiBjeD0iMjMiIGN5PSI3IiByPSIzIi8+DQo8bGluZSBjbGFzcz0ic3QwIiB4MT0iMyIgeTE9IjciIHgyPSIyMCIgeTI9IjciLz4NCjxsaW5lIGNsYXNzPSJzdDAiIHgxPSIyOSIgeTE9IjciIHgyPSIyNiIgeTI9IjciLz4NCjxjaXJjbGUgY2xhc3M9InN0MCIgY3g9IjEyIiBjeT0iMTYiIHI9IjMiLz4NCjxsaW5lIGNsYXNzPSJzdDAiIHgxPSIzIiB5MT0iMTYiIHgyPSI5IiB5Mj0iMTYiLz4NCjxsaW5lIGNsYXNzPSJzdDAiIHgxPSIyOSIgeTE9IjE2IiB4Mj0iMTUiIHkyPSIxNiIvPg0KPGNpcmNsZSBjbGFzcz0ic3QwIiBjeD0iMjMiIGN5PSIyNSIgcj0iMyIvPg0KPGxpbmUgY2xhc3M9InN0MCIgeDE9IjMiIHkxPSIyNSIgeDI9IjIwIiB5Mj0iMjUiLz4NCjxsaW5lIGNsYXNzPSJzdDAiIHgxPSIyOSIgeTE9IjI1IiB4Mj0iMjYiIHkyPSIyNSIvPg0KPC9zdmc+DQo=", + "name": "ResourceBar", + "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/Line Hero Pack/Master/SVG/UI Essentials/UI Essentials_sliders_options.svg", + "shortDescription": "Displays a bar that represents a resource in the game (health, shield, mana, ammo, etc)", + "version": "0.0.1", + "origin": { + "identifier": "DraggableSliderControl", + "name": "gdevelop-extension-store" + }, + "tags": [ + "resource", + "bar", + "shape painter", + "health", + "mana", + "shield", + "hearts", + "lives" + ], + "authorIds": [ + "IWykYNRvhCZBN3vEgKEbBPOR3Oc2", + "gqDaZjCfevOOxBYkK6zlhtZnXCg1" + ], + "dependencies": [], + "eventsFunctions": [], + "eventsBasedBehaviors": [ + { + "description": "Displays a solid bar that represents a resource in the game (health, shield, mana, ammo, etc)", + "fullName": "Solid resource bar", + "name": "SolidResourceBar", + "objectType": "PrimitiveDrawing::Drawer", + "eventsFunctions": [ + { + "description": "", + "fullName": "", + "functionType": "Action", + "group": "", + "name": "onCreated", + "private": false, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Make sure object doesn't get re-drawn every frame", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::ClearBetweenFrames" + }, + "parameters": [ + "Object", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Use correct min value (instead of always starting at 0)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyValueMin()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Set Bar height function (which enforces valid thumb sizes)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyBarThickness" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyBarThickness()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Start halo at same size as thumb", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyCurrentHaloRadius" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "min(Object.Behavior::PropertyThumbHeight()/2,Object.Behavior::PropertyThumbWidth()/2)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::UpdateHitbox" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::SolidResourceBar", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "", + "fullName": "", + "functionType": "Action", + "group": "", + "name": "doStepPreEvents", + "private": false, + "sentence": "", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Slider logic", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::IsEnabled" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Bar where the mouse is (in relation to object)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyMouseX" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.ToDrawingX(MouseX(Object.Layer(), 0), MouseY(Object.Layer(), 0))" + ] + }, + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyMouseY" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.ToDrawingY(MouseX(Object.Layer(), 0), MouseY(Object.Layer(), 0))" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Move slider when being dragged", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::PropertyIsBeingDragged" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyThumbOffset" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyMouseX()" + ] + }, + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "End sliding and update variables", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "MouseButtonReleased" + }, + "parameters": [ + "", + "Left" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyIsBeingDragged" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Update \"Value\" based on the location of the thumb", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetValue" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyValueMin() + (Object.Behavior::PropertyValueMax() - Object.Behavior::PropertyValueMin()) * Object.Behavior::PropertyThumbOffset() / Object.Behavior::PropertyBarLength()", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Grow halo even more when pressed", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyTargetHaloRadius" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "1.25 * Object.Behavior::PropertyHaloRadius()" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Detect hover/touch/click (but only if the layer and object is visible, and the object is not already being dragged)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "ResourceBar::SolidResourceBar::PropertyIsBeingDragged" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Detect mouse clicks near Bar, start dragging", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SourisBouton" + }, + "parameters": [ + "", + "Left" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "Object.Behavior::PropertyMouseX()", + ">=", + "-Object.Behavior::PropertyHaloRadius()" + ] + }, + { + "type": { + "value": "Egal" + }, + "parameters": [ + "Object.Behavior::PropertyMouseX()", + "<=", + "Object.Behavior::PropertyBarLength() + Object.Behavior::PropertyHaloRadius()" + ] + }, + { + "type": { + "value": "Egal" + }, + "parameters": [ + "Object.Behavior::PropertyMouseY()", + ">=", + "-Object.Behavior::PropertyHaloRadius()" + ] + }, + { + "type": { + "value": "Egal" + }, + "parameters": [ + "Object.Behavior::PropertyMouseY()", + "<=", + "Object.Behavior::PropertyHaloRadius()" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyIsBeingDragged" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + }, + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Reset hover detection ", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyIsHovered" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Grow halo when hovered", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "SourisBouton" + }, + "parameters": [ + "", + "Left" + ] + }, + { + "type": { + "value": "Egal" + }, + "parameters": [ + "Object.Behavior::PropertyMouseX()", + ">=", + "Object.Behavior::PropertyThumbOffset() - Object.Behavior::PropertyHaloRadius()" + ] + }, + { + "type": { + "value": "Egal" + }, + "parameters": [ + "Object.Behavior::PropertyMouseX()", + "<=", + "Object.Behavior::PropertyThumbOffset() + Object.Behavior::PropertyHaloRadius()" + ] + }, + { + "type": { + "value": "Egal" + }, + "parameters": [ + "Object.Behavior::PropertyMouseY()", + ">=", + "- Object.Behavior::PropertyHaloRadius()" + ] + }, + { + "type": { + "value": "Egal" + }, + "parameters": [ + "Object.Behavior::PropertyMouseY()", + "<=", + "Object.Behavior::PropertyHaloRadius()" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyIsHovered" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + }, + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyTargetHaloRadius" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyHaloRadius()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Shrink halo to zero when not hovered", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "ResourceBar::SolidResourceBar::PropertyIsHovered" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyTargetHaloRadius" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "min(Object.Behavior::PropertyThumbHeight(), Object.Behavior::PropertyThumbWidth()) / 2" + ] + } + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::PropertyCurrentHaloRadius" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "Object.Behavior::PropertyTargetHaloRadius()" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Redraw slider only when halo is not at final size", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "abs(Object.Behavior::PropertyCurrentHaloRadius() - Object.Behavior::PropertyTargetHaloRadius())", + "<", + "1" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyCurrentHaloRadius" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyTargetHaloRadius()" + ] + }, + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::PropertyCurrentHaloRadius" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "Object.Behavior::PropertyTargetHaloRadius()" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyCurrentHaloRadius" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "lerp(Object.Behavior::PropertyCurrentHaloRadius(), Object.Behavior::PropertyTargetHaloRadius(), Object.Behavior::PropertyHaloGrowSpeed())" + ] + }, + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::SolidResourceBar", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "", + "fullName": "", + "functionType": "Action", + "group": "", + "name": "doStepPostEvents", + "private": false, + "sentence": "", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Slider drawing", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::PropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior" + ] + }, + { + "type": { + "value": "Visible" + }, + "parameters": [ + "Object" + ] + }, + { + "type": { + "value": "LayerVisible" + }, + "parameters": [ + "", + "Object.Layer()" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + }, + { + "type": { + "value": "PrimitiveDrawing::Drawer::ClearShapes" + }, + "parameters": [ + "Object" + ] + } + ], + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Inactive Bar", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Set inactive Bar parameters (by default, use thumb color)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::PropertyInactiveBarColor" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::FillColor" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyThumbColor()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::PropertyInactiveBarColor" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "\"\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::FillColor" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyInactiveBarColor()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::FillOpacity" + }, + "parameters": [ + "Object", + "=", + "Object.Behavior::PropertyInactiveBarOpacity()" + ] + }, + { + "type": { + "value": "PrimitiveDrawing::OutlineOpacity" + }, + "parameters": [ + "Object", + "=", + "0" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Draw inactive Bar", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::Rectangle" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyThumbOffset()", + "-Object.Behavior::PropertyBarThickness() / 2", + "Object.Behavior::PropertyBarLength()", + "Object.Behavior::PropertyBarThickness() / 2" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Draw half circle at end of Bar (inactive side)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::PropertyRoundedBar" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::Arc" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyBarLength()", + "0", + "Object.Behavior::PropertyBarThickness() / 2", + "270", + "90", + "", + "yes" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Active Bar", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Set active Bar parameters (by default, use thumb color)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::PropertyActiveBarColor" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::FillColor" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyThumbColor()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::PropertyActiveBarColor" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "\"\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::FillColor" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyActiveBarColor()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::FillOpacity" + }, + "parameters": [ + "Object", + "=", + "Object.Behavior::PropertyActiveBarOpacity()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Draw active Bar (2 pixels bigger than property) ", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::Rectangle" + }, + "parameters": [ + "Object", + "0", + "-(Object.Behavior::PropertyBarThickness() / 2 + 1)", + "Object.Behavior::PropertyThumbOffset()", + "Object.Behavior::PropertyBarThickness() / 2 + 1" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Draw half circle at end of Bar (active side)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::PropertyRoundedBar" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::Arc" + }, + "parameters": [ + "Object", + "0", + "0", + "1 + Object.Behavior::PropertyBarThickness() / 2", + "90", + "270", + "", + "yes" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Halo", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::PropertyCurrentHaloRadius" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "min(Object.Behavior::PropertyThumbHeight(), Object.Behavior::PropertyThumbWidth()) / 2" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Prepare halo", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::FillColor" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyThumbColor()" + ] + }, + { + "type": { + "value": "PrimitiveDrawing::OutlineOpacity" + }, + "parameters": [ + "Object", + "=", + "0" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Draw halo (it will grow or shrink as needed)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "ResourceBar::SolidResourceBar::PropertyIsBeingDragged" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::FillOpacity" + }, + "parameters": [ + "Object", + "=", + "Object.Behavior::PropertyHaloOpacityHover()" + ] + }, + { + "type": { + "value": "PrimitiveDrawing::Circle" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyThumbOffset()", + "0", + "Object.Behavior::PropertyCurrentHaloRadius()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Use a more opaque halo while being dragged (it will grow or shrink as needed)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::PropertyIsBeingDragged" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::FillOpacity" + }, + "parameters": [ + "Object", + "=", + "Object.Behavior::PropertyHaloOpacityClick()" + ] + }, + { + "type": { + "value": "PrimitiveDrawing::Circle" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyThumbOffset()", + "0", + "Object.Behavior::PropertyCurrentHaloRadius()" + ] + } + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Thumb", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Prepare thumb settings", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::FillColor" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyThumbColor()" + ] + }, + { + "type": { + "value": "PrimitiveDrawing::FillOpacity" + }, + "parameters": [ + "Object", + "=", + "Object.Behavior::PropertyThumbOpacity()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Draw Circle thumb", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::PropertyThumbShape" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"circle\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::Circle" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyThumbOffset()", + "0", + "ceil(max(Object.Behavior::PropertyThumbWidth(),Object.Behavior::PropertyThumbHeight())/2)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Draw Rectangle thumb", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::PropertyThumbShape" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"rectangle\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::Rectangle" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyThumbOffset() - (Object.Behavior::PropertyThumbWidth() / 2)", + "-Object.Behavior::PropertyThumbHeight() / 2", + "Object.Behavior::PropertyThumbOffset() + (Object.Behavior::PropertyThumbWidth() / 2)", + "Object.Behavior::PropertyThumbHeight() / 2" + ] + } + ] + } + ], + "parameters": [] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::SolidResourceBar", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the slider is being dragged.", + "fullName": "Being dragged", + "functionType": "Condition", + "group": "Slider", + "name": "IsBeingDragged", + "private": false, + "sentence": "_PARAM0_ is being dragged", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::PropertyIsBeingDragged" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::SolidResourceBar", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the slider interations are enabled.", + "fullName": "Interactions enabled", + "functionType": "Condition", + "group": "Slider", + "name": "IsEnabled", + "private": false, + "sentence": "Interactions of _PARAM0_ are enabled", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::PropertyEnabled" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::SolidResourceBar", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Enable or disable the slider. Users cannot interact while it is disabled.", + "fullName": "Enable interactions", + "functionType": "Action", + "group": "Slider", + "name": "SetEnabled", + "private": false, + "sentence": "Enable interactions of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Enable\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyEnabled" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Stop dragging (so the slider won't be dragging when it gets enabled)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyIsBeingDragged" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Reset halo size (so halo won't appear when slider gets enabled)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyTargetHaloRadius" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "min(Object.Behavior::PropertyThumbHeight(), Object.Behavior::PropertyThumbWidth()) / 2" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Enable\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyEnabled" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::SolidResourceBar", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Enable", + "longDescription": "", + "name": "Enable", + "optional": false, + "supplementaryInformation": "", + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "The value of the slider (based on position of the thumb).", + "fullName": "Slider value", + "functionType": "Expression", + "group": "Slider", + "name": "Value", + "private": false, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyValue()" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::SolidResourceBar", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Change the value of a slider (this will move the thumb to the correct position).", + "fullName": "Slider value", + "functionType": "Action", + "group": "Slider", + "name": "SetValue", + "private": false, + "sentence": "Change the value of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::PropertyTickSpacing" + }, + "parameters": [ + "Object", + "Behavior", + "<=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::PropertyTickSpacing" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "round(GetArgumentAsNumber(\"Value\") / Object.Behavior::PropertyTickSpacing()) * Object.Behavior::PropertyTickSpacing()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::PropertyValue" + }, + "parameters": [ + "Object", + "Behavior", + "<", + "Object.Behavior::PropertyValueMin()" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyValueMin()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::PropertyValue" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "Object.Behavior::PropertyValueMax()" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyValueMax()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Set the proper offset (it moves the slider)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyThumbOffset" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyBarLength() * (Object.Behavior::PropertyValue() - Object.Behavior::PropertyValueMin()) / (Object.Behavior::PropertyValueMax() - Object.Behavior::PropertyValueMin())" + ] + }, + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::SolidResourceBar", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Slider value", + "longDescription": "", + "name": "Value", + "optional": false, + "supplementaryInformation": "", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "The minimum value of a slider.", + "fullName": "Slider minimum value", + "functionType": "Expression", + "group": "Slider value configuration", + "name": "ValueMin", + "private": false, + "sentence": "Change the maximum value of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyValueMin()" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::SolidResourceBar", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Change the minimum value of a slider.", + "fullName": "Slider minimum value", + "functionType": "Action", + "group": "Slider value configuration", + "name": "SetValueMin", + "private": false, + "sentence": "Change the minimum value of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyValueMin" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"ValueMin\")" + ] + }, + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetValue" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::Value()", + "" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::SolidResourceBar", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Minimum value", + "longDescription": "", + "name": "ValueMin", + "optional": false, + "supplementaryInformation": "", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "The maximum value of a slider.", + "fullName": "Slider maximum value", + "functionType": "Expression", + "group": "Slider value configuration", + "name": "ValueMax", + "private": false, + "sentence": "Change the maximum value of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyValueMax()" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::SolidResourceBar", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Thickness of Bar.", + "fullName": "Slider Bar thickness", + "functionType": "Expression", + "group": "Slider Bar configuration", + "name": "BarThickness", + "private": false, + "sentence": "Change the maximum value of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyBarThickness()" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::SolidResourceBar", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Length of Bar.", + "fullName": "Slider Bar length", + "functionType": "Expression", + "group": "Slider Bar configuration", + "name": "BarLength", + "private": false, + "sentence": "Change the maximum value of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyBarLength()" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::SolidResourceBar", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Height of thumb.", + "fullName": "Slider thumb height", + "functionType": "Expression", + "group": "Slider thumb configuration", + "name": "ThumbHeight", + "private": false, + "sentence": "Change the maximum value of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyThumbHeight()" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::SolidResourceBar", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Change the maximum value of a slider.", + "fullName": "Slider maximum value", + "functionType": "Action", + "group": "Slider value configuration", + "name": "SetValueMax", + "private": false, + "sentence": "Change the maximum value of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyValueMax" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"ValueMax\")" + ] + }, + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetValue" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::Value()", + "" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::SolidResourceBar", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Maximum value", + "longDescription": "", + "name": "ValueMax", + "optional": false, + "supplementaryInformation": "", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "The tick spacing of a slider.", + "fullName": "Tick spacing", + "functionType": "Expression", + "group": "Slider value configuration", + "name": "TickSpacing", + "private": false, + "sentence": "Change the tick spacing of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyTickSpacing()" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::SolidResourceBar", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Tick spacing", + "longDescription": "", + "name": "TickSpacing", + "optional": false, + "supplementaryInformation": "", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the tick spacing of a slider.", + "fullName": "Tick spacing", + "functionType": "Action", + "group": "Slider value configuration", + "name": "SetTickSpacing", + "private": false, + "sentence": "Change the tick spacing of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyTickSpacing" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"TickSpacing\")" + ] + }, + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetValue" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::Value()", + "" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::SolidResourceBar", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Tick spacing", + "longDescription": "", + "name": "TickSpacing", + "optional": false, + "supplementaryInformation": "", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change length of Bar.", + "fullName": "Bar length", + "functionType": "Action", + "group": "Slider Bar configuration", + "name": "SetBarLength", + "private": false, + "sentence": "Change Bar length of _PARAM0_ to _PARAM2_ px", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyBarLength" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + }, + { + "type": { + "value": "ResourceBar::SolidResourceBar::UpdateHitbox" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + }, + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Move thumb to correct place (based on new Bar size)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetValue" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyValue()", + "" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::SolidResourceBar", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Bar width", + "longDescription": "", + "name": "Value", + "optional": false, + "supplementaryInformation": "", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change thickness of Bar.", + "fullName": "Bar thickness", + "functionType": "Action", + "group": "Slider Bar configuration", + "name": "SetBarThickness", + "private": false, + "sentence": "Change Bar thickness of _PARAM0_ to _PARAM2_ px", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyBarThickness" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + }, + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Make sure thumb width is not smaller than Bar height + 2 pixels (to prevent Bar ends from showing)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::PropertyThumbWidth" + }, + "parameters": [ + "Object", + "Behavior", + "<", + "Object.Behavior::PropertyBarThickness() + 2" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetThumbWidth" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyBarThickness() + 2", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::PropertyThumbHeight" + }, + "parameters": [ + "Object", + "Behavior", + "<", + "Object.Behavior::PropertyBarThickness() + 2" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetThumbHeight" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyBarThickness() + 2", + "" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::SolidResourceBar", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Bar thickness", + "longDescription": "", + "name": "Value", + "optional": false, + "supplementaryInformation": "", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change width of thumb.", + "fullName": "Thumb width", + "functionType": "Action", + "group": "Slider thumb configuration", + "name": "SetThumbWidth", + "private": false, + "sentence": "Change thumb width of _PARAM0_ to _PARAM2_ px", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Thumb cannot be less than Bar thickness (plus 2 pixels)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyThumbWidth" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "max(GetArgumentAsNumber(\"Value\"), Object.Behavior::PropertyBarThickness() + 2)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::UpdateHitbox" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + }, + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::SolidResourceBar", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Thumb width", + "longDescription": "", + "name": "Value", + "optional": false, + "supplementaryInformation": "", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change height of thumb.", + "fullName": "Thumb height", + "functionType": "Action", + "group": "Slider thumb configuration", + "name": "SetThumbHeight", + "private": false, + "sentence": "Change thumb height of _PARAM0_ to _PARAM2_ px", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Thumb cannot be less than Bar thickness (plus 2 pixels)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyThumbHeight" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "max(GetArgumentAsNumber(\"Value\"), Object.Behavior::PropertyBarThickness() + 2)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::UpdateHitbox" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + }, + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::SolidResourceBar", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Thumb height", + "longDescription": "", + "name": "Value", + "optional": false, + "supplementaryInformation": "", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change radius of the halo around the thumb. This size is also used to detect interaction with the slider.", + "fullName": "Halo radius", + "functionType": "Action", + "group": "Slider thumb configuration", + "name": "SetHaloRadius", + "private": false, + "sentence": "Change halo radius of _PARAM0_ to _PARAM2_ px", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyHaloRadius" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + }, + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::SolidResourceBar", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Halo radius", + "longDescription": "", + "name": "Value", + "optional": false, + "supplementaryInformation": "", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the halo opacity when the thumb is hovered.", + "fullName": "Halo opacity (hover)", + "functionType": "Action", + "group": "Slider thumb configuration", + "name": "SetHaloOpacityHover", + "private": false, + "sentence": "Change the halo opacity when hovered of _PARAM0_ to _PARAM2_ px", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyHaloOpacityHover" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + }, + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::SolidResourceBar", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Halo opacity (hover)", + "longDescription": "", + "name": "Value", + "optional": false, + "supplementaryInformation": "", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change opacity of halo when pressed.", + "fullName": "Halo opacity (pressed)", + "functionType": "Action", + "group": "Slider thumb configuration", + "name": "SetHaloOpacityPressed", + "private": false, + "sentence": "Change halo opacity when pressed of _PARAM0_ to _PARAM2_ px", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyHaloOpacityClick" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + }, + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::SolidResourceBar", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Halo opacity (pressed)", + "longDescription": "", + "name": "Value", + "optional": false, + "supplementaryInformation": "", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change shape of thumb (circle or rectangle).", + "fullName": "Thumb shape", + "functionType": "Action", + "group": "Slider thumb configuration", + "name": "SetThumbShape", + "private": false, + "sentence": "Change shape of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyThumbShape" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Shape\")" + ] + }, + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Make sure thumb width is not smaller than Bar height (to prevent Bar ends from showing)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::PropertyThumbShape" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"rectangle\"" + ] + }, + { + "type": { + "value": "ResourceBar::SolidResourceBar::PropertyThumbWidth" + }, + "parameters": [ + "Object", + "Behavior", + "<", + "Object.Behavior::PropertyBarThickness()" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetThumbWidth" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyBarThickness()", + "" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::SolidResourceBar", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "New thumb shape", + "longDescription": "", + "name": "Shape", + "optional": false, + "supplementaryInformation": "[\"circle\",\"rectangle\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Make Bar use rounded ends.", + "fullName": "Rounded Bar ends", + "functionType": "Action", + "group": "Slider Bar configuration", + "name": "SetRoundedBar", + "private": false, + "sentence": "Draw _PARAM0_ with a rounded Bar: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "GetArgumentAsNumber(\"Value\")", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyRoundedBar" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "GetArgumentAsNumber(\"Value\")", + "=", + "1" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyRoundedBar" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::SolidResourceBar", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Rounded Bar", + "longDescription": "", + "name": "Value", + "optional": false, + "supplementaryInformation": "", + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "Change opacity of thumb.", + "fullName": "Thumb opacity", + "functionType": "Action", + "group": "Slider thumb configuration", + "name": "SetThumbOpacity", + "private": false, + "sentence": "Change thumb opacity of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyThumbOpacity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + }, + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::SolidResourceBar", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Thumb opacity", + "longDescription": "", + "name": "Value", + "optional": false, + "supplementaryInformation": "", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change opacity of inactive Bar.", + "fullName": "Inactive Bar opacity", + "functionType": "Action", + "group": "Slider Bar configuration", + "name": "SetInactiveBarOpacity", + "private": false, + "sentence": "Change inactive Bar opacity of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyInactiveBarOpacity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + }, + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::SolidResourceBar", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Inactive Bar opacity", + "longDescription": "", + "name": "Value", + "optional": false, + "supplementaryInformation": "", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change opacity of active Bar.", + "fullName": "Active Bar opacity", + "functionType": "Action", + "group": "Slider Bar configuration", + "name": "SetActiveBarOpacity", + "private": false, + "sentence": "Change active Bar opacity of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyActiveBarOpacity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + }, + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::SolidResourceBar", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Active Bar opacity", + "longDescription": "", + "name": "Value", + "optional": false, + "supplementaryInformation": "", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the color of the Bar that is LEFT of the thumb.", + "fullName": "Active Bar color ", + "functionType": "Action", + "group": "Slider Bar configuration", + "name": "SetActiveBarColor", + "private": false, + "sentence": "Change active Bar color of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyActiveBarColor" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Color\")" + ] + }, + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::SolidResourceBar", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Active Bar color", + "longDescription": "", + "name": "Color", + "optional": false, + "supplementaryInformation": "", + "type": "color" + } + ], + "objectGroups": [] + }, + { + "description": "Change the color of the Bar that is RIGHT of the thumb.", + "fullName": "Inactive Bar color", + "functionType": "Action", + "group": "Slider Bar configuration", + "name": "SetInactiveBarColor", + "private": false, + "sentence": "Change inactive Bar color of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyInactiveBarColor" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Color\")" + ] + }, + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::SolidResourceBar", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Inactive Bar color", + "longDescription": "", + "name": "Color", + "optional": false, + "supplementaryInformation": "", + "type": "color" + } + ], + "objectGroups": [] + }, + { + "description": "Change the thumb color to a specific value.", + "fullName": "Thumb color", + "functionType": "Action", + "group": "Slider thumb configuration", + "name": "SetThumbColor", + "private": false, + "sentence": "Change thumb color of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyThumbColor" + }, + "parameters": [ + "Object", + "Behavior", + "GetArgumentAsString(\"Color\")" + ] + }, + { + "type": { + "value": "ResourceBar::SolidResourceBar::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::SolidResourceBar", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Thumb color", + "longDescription": "", + "name": "Color", + "optional": false, + "supplementaryInformation": "", + "type": "color" + } + ], + "objectGroups": [] + }, + { + "description": "Update the hitbox.", + "fullName": "Update hitbox", + "functionType": "Action", + "group": "Private", + "name": "UpdateHitbox", + "private": true, + "sentence": "Update the hitbox of _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::SetRotationCenter" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyBarLength() / 2", + "Object.Behavior::PropertyBarThickness() / 2" + ] + }, + { + "type": { + "value": "PrimitiveDrawing::SetRectangularCollisionMask" + }, + "parameters": [ + "Object", + "-Object.Behavior::PropertyThumbWidth() / 2", + "-Object.Behavior::PropertyThumbHeight() / 2", + "Object.Behavior::PropertyBarLength() + Object.Behavior::PropertyThumbWidth() / 2", + "Object.Behavior::PropertyThumbHeight() / 2" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::SolidResourceBar", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "0", + "type": "Number", + "label": "Minimum value", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "ValueMin" + }, + { + "value": "1", + "type": "Number", + "label": "Maximum value", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "ValueMax" + }, + { + "value": "0", + "type": "Number", + "label": "Tick spacing", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "TickSpacing" + }, + { + "value": "circle", + "type": "Choice", + "label": "Thumb shape", + "description": "", + "group": "Thumb", + "extraInformation": [ + "circle", + "rectangle" + ], + "hidden": false, + "name": "ThumbShape" + }, + { + "value": "20", + "type": "Number", + "label": "Thumb width", + "description": "", + "group": "Thumb", + "extraInformation": [], + "hidden": false, + "name": "ThumbWidth" + }, + { + "value": "20", + "type": "Number", + "label": "Thumb height", + "description": "", + "group": "Thumb", + "extraInformation": [], + "hidden": false, + "name": "ThumbHeight" + }, + { + "value": " 24;119;211", + "type": "Color", + "label": "Thumb Color", + "description": "", + "group": "Thumb", + "extraInformation": [], + "hidden": false, + "name": "ThumbColor" + }, + { + "value": "255", + "type": "Number", + "label": "Thumb opacity", + "description": "", + "group": "Thumb", + "extraInformation": [], + "hidden": false, + "name": "ThumbOpacity" + }, + { + "value": "200", + "type": "Number", + "label": "Bar length", + "description": "", + "group": "Bar", + "extraInformation": [], + "hidden": false, + "name": "BarLength" + }, + { + "value": "4", + "type": "Number", + "label": "Bar thickness", + "description": "", + "group": "Bar", + "extraInformation": [], + "hidden": false, + "name": "BarThickness" + }, + { + "value": "", + "type": "String", + "label": "Inactive Bar color (thumb color by default)", + "description": "", + "group": "Bar", + "extraInformation": [], + "hidden": false, + "name": "InactiveBarColor" + }, + { + "value": "96", + "type": "Number", + "label": "Inactive Bar opacity", + "description": "", + "group": "Bar", + "extraInformation": [], + "hidden": false, + "name": "InactiveBarOpacity" + }, + { + "value": " ", + "type": "String", + "label": "Active Bar color (thumb color by default)", + "description": "", + "group": "Bar", + "extraInformation": [], + "hidden": false, + "name": "ActiveBarColor" + }, + { + "value": "255", + "type": "Number", + "label": "Active Bar opacity", + "description": "", + "group": "Bar", + "extraInformation": [], + "hidden": false, + "name": "ActiveBarOpacity" + }, + { + "value": "24", + "type": "Number", + "label": "Halo size (hover)", + "description": "", + "group": "Thumb", + "extraInformation": [], + "hidden": false, + "name": "HaloRadius" + }, + { + "value": "32", + "type": "Number", + "label": "Halo opacity (hover)", + "description": "", + "group": "Thumb", + "extraInformation": [], + "hidden": false, + "name": "HaloOpacityHover" + }, + { + "value": "64", + "type": "Number", + "label": "Halo opacity (pressed)", + "description": "", + "group": "Thumb", + "extraInformation": [], + "hidden": false, + "name": "HaloOpacityClick" + }, + { + "value": "true", + "type": "Boolean", + "label": "Rounded Bar ends", + "description": "", + "group": "Bar", + "extraInformation": [], + "hidden": false, + "name": "RoundedBar" + }, + { + "value": "true", + "type": "Boolean", + "label": "Enable interactions", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "Enabled" + }, + { + "value": "", + "type": "Boolean", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "IsBeingDragged" + }, + { + "value": "0", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "Value" + }, + { + "value": "0", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "ThumbOffset" + }, + { + "value": "true", + "type": "Boolean", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "NeedRedraw" + }, + { + "value": "", + "type": "Boolean", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "IsHovered" + }, + { + "value": "", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "MouseX" + }, + { + "value": "", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "MouseY" + }, + { + "value": "", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "CurrentHaloRadius" + }, + { + "value": "0.2", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "HaloGrowSpeed" + }, + { + "value": "", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "TargetHaloRadius" + } + ] + }, + { + "description": "Displays a line of objects that represent a resource in the game (hearts, lives, ammo, etc). \nUse the same image used for resource bar and unit objects.", + "fullName": "Unit resource bar", + "name": "UnitResourceBar", + "objectType": "", + "eventsFunctions": [ + { + "description": "Draw a unit resource bar.", + "fullName": "Draw a unit resource bar", + "functionType": "Action", + "group": "", + "name": "DrawUnitBar", + "private": false, + "sentence": "Draw unit bar _PARAM0_ with _PARAM2_ objects", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Create unit objects", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "infiniteLoopWarning": true, + "type": "BuiltinCommonInstructions::While", + "whileConditions": [ + { + "type": { + "value": "ResourceBar::UnitResourceBar::PropertyNextUnitToCreate" + }, + "parameters": [ + "Object", + "Behavior", + "<", + "Object.Behavior::PropertyCurrentQuantity()" + ] + } + ], + "conditions": [], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::UnitResourceBar::SetPropertyNextUnitToCreate" + }, + "parameters": [ + "Object", + "Behavior", + "+", + "1" + ] + }, + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "UnitObject", + "Object.X() + Object.Width() * Object.Behavior::PropertyNextUnitToCreate()", + "Object.Y()", + "Object.Layer()" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "UnitObject", + "__ResourceBar.UnitID", + "=", + "Object.Behavior::PropertyNextUnitToCreate()" + ] + }, + { + "type": { + "value": "LinkedObjects::LinkObjects" + }, + "parameters": [ + "", + "Object", + "UnitObject" + ] + } + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Remove excess units", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Delete all units higher than max unit value", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareNumbers" + }, + "parameters": [ + "Object.Behavior::PropertyMaxQuantity()", + "!=", + "0" + ] + }, + { + "type": { + "value": "LinkedObjects::PickObjectsLinkedTo" + }, + "parameters": [ + "", + "UnitObject", + "Object", + "" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::CompareNumbers" + }, + "parameters": [ + "UnitObject.Variable(__ResourceBar.UnitID)", + ">", + "Object.Behavior::PropertyCurrentQuantity()" + ] + } + ], + "actions": [ + { + "type": { + "value": "Delete" + }, + "parameters": [ + "UnitObject", + "" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Update non-empty units", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "LinkedObjects::PickObjectsLinkedTo" + }, + "parameters": [ + "", + "UnitObject", + "Object", + "" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::CompareNumbers" + }, + "parameters": [ + "UnitObject.Variable(__ResourceBar.UnitID)", + "<=", + "Object.Behavior::PropertyCurrentQuantity()" + ] + } + ], + "actions": [ + { + "type": { + "value": "Montre" + }, + "parameters": [ + "UnitObject", + "" + ] + }, + { + "type": { + "value": "ChangeColor" + }, + "parameters": [ + "UnitObject", + "\"255;255;255\"" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Update empty units", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "LinkedObjects::PickObjectsLinkedTo" + }, + "parameters": [ + "", + "UnitObject", + "Object", + "" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::CompareNumbers" + }, + "parameters": [ + "UnitObject.Variable(__ResourceBar.UnitID)", + ">", + "Object.Behavior::PropertyCurrentQuantity()" + ] + } + ], + "actions": [], + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Color tint", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Only apply color if it has change from default value", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareStrings" + }, + "parameters": [ + "Object.Behavior::PropertyEmptyColorTint()", + "!=", + "\"\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ChangeColor" + }, + "parameters": [ + "UnitObject", + "Object.Behavior::PropertyEmptyColorTint()" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Hide", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::UnitResourceBar::PropertyHideEmptyUnits" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "Cache" + }, + "parameters": [ + "UnitObject" + ] + } + ] + } + ], + "parameters": [] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Update counter", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "LinkedObjects::PickObjectsLinkedTo" + }, + "parameters": [ + "", + "UnitObject", + "Object", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::UnitResourceBar::SetPropertyNextUnitToCreate" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "PickedInstancesCount(UnitObject)+1" + ] + } + ] + } + ], + "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": "ResourceBar::UnitResourceBar", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Object used to display each unit", + "longDescription": "", + "name": "UnitObject", + "optional": false, + "supplementaryInformation": "Sprite", + "type": "objectList" + } + ], + "objectGroups": [] + }, + { + "description": "Apply color tint to empty units. Empty units exist between the current and maximum value.", + "fullName": "Color tint of empty units", + "functionType": "Action", + "group": "", + "name": "SetEmptyUnitColor", + "private": false, + "sentence": "Apply color tint _PARAM2_ to empty units of _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::UnitResourceBar::SetPropertyEmptyColorTint" + }, + "parameters": [ + "Object", + "Behavior", + "GetArgumentAsString(\"ColorTint\")" + ] + } + ] + } + ], + "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": "ResourceBar::UnitResourceBar", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Color tint", + "longDescription": "Use \"white\" to remove all color tint", + "name": "ColorTint", + "optional": false, + "supplementaryInformation": "", + "type": "color" + } + ], + "objectGroups": [] + }, + { + "description": "Hide empty units. Empty units exist between the current and maximum value.", + "fullName": "Hide (or show) empty units", + "functionType": "Action", + "group": "", + "name": "SetHideEmptyUnits", + "private": false, + "sentence": "Hide empty units of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"HideEmptyUnits\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::UnitResourceBar::SetPropertyHideEmptyUnits" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"HideEmptyUnits\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::UnitResourceBar::SetPropertyHideEmptyUnits" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "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": "ResourceBar::UnitResourceBar", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Hide empty units", + "longDescription": "", + "name": "HideEmptyUnits", + "optional": false, + "supplementaryInformation": "", + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "Change maximum units that can be displayed.", + "fullName": "Maximum units", + "functionType": "Action", + "group": "", + "name": "SetMaxUnits", + "private": false, + "sentence": "Change maximum units of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::UnitResourceBar::SetPropertyMaxQuantity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "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": "ResourceBar::UnitResourceBar", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Maximum units", + "longDescription": "", + "name": "Value", + "optional": false, + "supplementaryInformation": "Sprite", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the current quantity of units.", + "fullName": "Unit quantity", + "functionType": "Action", + "group": "", + "name": "SetCurrentUnits", + "private": false, + "sentence": "Change the unit quantity of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::UnitResourceBar::SetPropertyCurrentQuantity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "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": "ResourceBar::UnitResourceBar", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Current units", + "longDescription": "", + "name": "Value", + "optional": false, + "supplementaryInformation": "Sprite", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "", + "fullName": "", + "functionType": "Action", + "group": "", + "name": "onCreated", + "private": false, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::UnitResourceBar::SetPropertyCurrentQuantity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyStartingUnits()" + ] + } + ] + } + ], + "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": "ResourceBar::UnitResourceBar", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "0", + "type": "Number", + "label": "Starting quantity", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "StartingUnits" + }, + { + "value": "", + "type": "Number", + "label": "Quantity", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "CurrentQuantity" + }, + { + "value": "0", + "type": "Number", + "label": "Maximum quantity (Use \"0\" for unlimited)", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "MaxQuantity" + }, + { + "value": "0", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "NextUnitToCreate" + }, + { + "value": "", + "type": "Color", + "label": "Empty color tint", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "EmptyColorTint" + }, + { + "value": "true", + "type": "Boolean", + "label": "Hide empty units", + "description": "Empty units exist between the current and maximum value.", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "HideEmptyUnits" + } + ] + }, + { + "description": "Draw a resource bar that represents health, shield, or any value.", + "fullName": "Draw resource bar", + "name": "DrawResourceBar117", + "objectType": "PrimitiveDrawing::Drawer", + "eventsFunctions": [ + { + "description": "", + "fullName": "", + "functionType": "Action", + "group": "", + "name": "onCreated", + "private": false, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Make sure object doesn't get re-drawn every frame", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::ClearBetweenFrames" + }, + "parameters": [ + "Object", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Use correct min value (instead of always starting at 0)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::DrawResourceBar117::SetPropertyValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyValueMin()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::DrawResourceBar117::UpdateHitbox" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::DrawResourceBar117", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "", + "fullName": "", + "functionType": "Action", + "group": "", + "name": "doStepPostEvents", + "private": false, + "sentence": "", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Slider drawing", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::DrawResourceBar117::PropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior" + ] + }, + { + "type": { + "value": "Visible" + }, + "parameters": [ + "Object" + ] + }, + { + "type": { + "value": "LayerVisible" + }, + "parameters": [ + "", + "Object.Layer()" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::DrawResourceBar117::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + }, + { + "type": { + "value": "PrimitiveDrawing::Drawer::ClearShapes" + }, + "parameters": [ + "Object" + ] + } + ], + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Inactive bar", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Set inactive Bar parameters (by default, use the active bar color)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DrawResourceBar::DrawResourceBar::PropertyInactiveBarColor" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::FillColor" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyActiveBarColor()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DrawResourceBar::DrawResourceBar::PropertyInactiveBarColor" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "\"\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::FillColor" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyInactiveBarColor()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::FillOpacity" + }, + "parameters": [ + "Object", + "=", + "Object.Behavior::PropertyInactiveBarOpacity()" + ] + }, + { + "type": { + "value": "PrimitiveDrawing::OutlineOpacity" + }, + "parameters": [ + "Object", + "=", + "0" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Draw inactive Bar", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::Rectangle" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyThumbOffset()", + "-Object.Behavior::PropertyBarThickness() / 2", + "Object.Behavior::PropertyBarLength()", + "Object.Behavior::PropertyBarThickness() / 2" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Draw half circle at end of Bar (inactive side)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DrawResourceBar::DrawResourceBar::PropertyRoundedBar" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::Arc" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyBarLength()", + "0", + "Object.Behavior::PropertyBarThickness() / 2", + "270", + "90", + "", + "yes" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Active bar", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Set active Bar parameters", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DrawResourceBar::DrawResourceBar::PropertyActiveBarColor" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "\"\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::FillColor" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyActiveBarColor()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::FillOpacity" + }, + "parameters": [ + "Object", + "=", + "Object.Behavior::PropertyActiveBarOpacity()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Draw active bar", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::Rectangle" + }, + "parameters": [ + "Object", + "0", + "-(Object.Behavior::PropertyBarThickness() / 2)", + "Object.Behavior::PropertyThumbOffset()", + "Object.Behavior::PropertyBarThickness() / 2" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Draw half circle at end of bar (active side)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DrawResourceBar::DrawResourceBar::PropertyRoundedBar" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::Arc" + }, + "parameters": [ + "Object", + "0", + "0", + "Object.Behavior::PropertyBarThickness() / 2", + "90", + "270", + "", + "yes" + ] + } + ] + } + ], + "parameters": [] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::DrawResourceBar117", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "The value of the resource bar.", + "fullName": "Value", + "functionType": "Expression", + "group": "Bar", + "name": "Value", + "private": false, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyValue()" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::DrawResourceBar117", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Change the value of the resource bar.", + "fullName": "Value", + "functionType": "Action", + "group": "Resource Bar", + "name": "SetValue", + "private": false, + "sentence": "Change the value of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::DrawResourceBar117::PropertyTickSpacing" + }, + "parameters": [ + "Object", + "Behavior", + "<=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::DrawResourceBar117::SetPropertyValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::DrawResourceBar117::PropertyTickSpacing" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::DrawResourceBar117::SetPropertyValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "round(GetArgumentAsNumber(\"Value\") / Object.Behavior::PropertyTickSpacing()) * Object.Behavior::PropertyTickSpacing()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::DrawResourceBar117::PropertyValue" + }, + "parameters": [ + "Object", + "Behavior", + "<", + "Object.Behavior::PropertyValueMin()" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::DrawResourceBar117::SetPropertyValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyValueMin()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::DrawResourceBar117::PropertyValue" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "Object.Behavior::PropertyValueMax()" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::DrawResourceBar117::SetPropertyValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyValueMax()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Set the proper offset", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::DrawResourceBar117::SetPropertyThumbOffset" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyBarLength() * (Object.Behavior::PropertyValue() - Object.Behavior::PropertyValueMin()) / (Object.Behavior::PropertyValueMax() - Object.Behavior::PropertyValueMin())" + ] + }, + { + "type": { + "value": "ResourceBar::DrawResourceBar117::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::DrawResourceBar117", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Resource bar value", + "longDescription": "", + "name": "Value", + "optional": false, + "supplementaryInformation": "", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "The minimum value of the resource bar.", + "fullName": "Minimum value", + "functionType": "Expression", + "group": "Value configuration", + "name": "ValueMin", + "private": false, + "sentence": "Change the maximum value of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyValueMin()" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::DrawResourceBar117", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Change the minimum value of the resource bar.", + "fullName": "Minimum value", + "functionType": "Action", + "group": "Value configuration", + "name": "SetValueMin", + "private": false, + "sentence": "Change the minimum value of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::DrawResourceBar117::SetPropertyValueMin" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"ValueMin\")" + ] + }, + { + "type": { + "value": "ResourceBar::DrawResourceBar117::SetValue" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::Value()", + "" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::DrawResourceBar117", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Minimum value", + "longDescription": "", + "name": "ValueMin", + "optional": false, + "supplementaryInformation": "", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "The maximum value of the resource bar.", + "fullName": "Maximum value", + "functionType": "Expression", + "group": "Value configuration", + "name": "ValueMax", + "private": false, + "sentence": "Change the maximum value of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyValueMax()" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::DrawResourceBar117", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Thickness of the resource bar.", + "fullName": "Bar thickness", + "functionType": "Expression", + "group": "Bar configuration", + "name": "BarThickness", + "private": false, + "sentence": "Change the maximum value of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyBarThickness()" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::DrawResourceBar117", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Length of the resource bar.", + "fullName": "Bar length", + "functionType": "Expression", + "group": "Bar configuration", + "name": "BarLength", + "private": false, + "sentence": "Change the maximum value of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyBarLength()" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::DrawResourceBar117", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Change the maximum value of a resource bar.", + "fullName": "Maximum value", + "functionType": "Action", + "group": "Bar value configuration", + "name": "SetValueMax", + "private": false, + "sentence": "Change the maximum value of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::DrawResourceBar117::SetPropertyValueMax" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"ValueMax\")" + ] + }, + { + "type": { + "value": "ResourceBar::DrawResourceBar117::SetValue" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::Value()", + "" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::DrawResourceBar117", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Maximum value", + "longDescription": "", + "name": "ValueMax", + "optional": false, + "supplementaryInformation": "", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "The tick spacing of a bar.", + "fullName": "Tick spacing", + "functionType": "Expression", + "group": "Value configuration", + "name": "TickSpacing", + "private": false, + "sentence": "Change the tick spacing of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyTickSpacing()" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::DrawResourceBar117", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Tick spacing", + "longDescription": "", + "name": "TickSpacing", + "optional": false, + "supplementaryInformation": "", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the tick spacing of a resource bar.", + "fullName": "Tick spacing", + "functionType": "Action", + "group": "Value configuration", + "name": "SetTickSpacing", + "private": false, + "sentence": "Change the tick spacing of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::DrawResourceBar117::SetPropertyTickSpacing" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"TickSpacing\")" + ] + }, + { + "type": { + "value": "ResourceBar::DrawResourceBar117::SetValue" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::Value()", + "" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::DrawResourceBar117", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Tick spacing", + "longDescription": "", + "name": "TickSpacing", + "optional": false, + "supplementaryInformation": "", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change length of a resource bar.", + "fullName": "Bar length", + "functionType": "Action", + "group": "Bar configuration", + "name": "SetBarLength", + "private": false, + "sentence": "Change bar length of _PARAM0_ to _PARAM2_ px", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::DrawResourceBar117::SetPropertyBarLength" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + }, + { + "type": { + "value": "ResourceBar::DrawResourceBar117::UpdateHitbox" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + }, + { + "type": { + "value": "ResourceBar::DrawResourceBar117::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Move thumb to correct place (based on new Bar size)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::DrawResourceBar117::SetValue" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyValue()", + "" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::DrawResourceBar117", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Bar width", + "longDescription": "", + "name": "Value", + "optional": false, + "supplementaryInformation": "", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change thickness of a resource bar", + "fullName": "Bar thickness", + "functionType": "Action", + "group": "Bar configuration", + "name": "SetBarThickness", + "private": false, + "sentence": "Change the bar thickness of _PARAM0_ to _PARAM2_ px", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::DrawResourceBar117::SetPropertyBarThickness" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + }, + { + "type": { + "value": "ResourceBar::DrawResourceBar117::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Make sure thumb width is not smaller than Bar height + 2 pixels (to prevent Bar ends from showing)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::DrawResourceBar117::PropertyThumbWidth" + }, + "parameters": [ + "Object", + "Behavior", + "<", + "Object.Behavior::PropertyBarThickness() + 2" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::DrawResourceBar117::SetThumbWidth" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyBarThickness() + 2", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::DrawResourceBar117::PropertyThumbHeight" + }, + "parameters": [ + "Object", + "Behavior", + "<", + "Object.Behavior::PropertyBarThickness() + 2" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::DrawResourceBar117::SetThumbHeight" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyBarThickness() + 2", + "" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::DrawResourceBar117", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Bar thickness", + "longDescription": "", + "name": "Value", + "optional": false, + "supplementaryInformation": "", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Make bar use rounded ends.", + "fullName": "Rounded bar ends", + "functionType": "Action", + "group": "Bar configuration", + "name": "SetRoundedBar", + "private": false, + "sentence": "Draw _PARAM0_ with a rounded bar: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "GetArgumentAsNumber(\"Value\")", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::DrawResourceBar117::SetPropertyRoundedBar" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "GetArgumentAsNumber(\"Value\")", + "=", + "1" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::DrawResourceBar117::SetPropertyRoundedBar" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::DrawResourceBar117::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::DrawResourceBar117", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Rounded bar", + "longDescription": "", + "name": "Value", + "optional": false, + "supplementaryInformation": "", + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "Change opacity of inactive bar.", + "fullName": "Inactive bar opacity", + "functionType": "Action", + "group": "Bar configuration", + "name": "SetInactiveBarOpacity", + "private": false, + "sentence": "Change inactive bar opacity of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::DrawResourceBar117::SetPropertyInactiveBarOpacity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + }, + { + "type": { + "value": "ResourceBar::DrawResourceBar117::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::DrawResourceBar117", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Inactive bar opacity", + "longDescription": "", + "name": "Value", + "optional": false, + "supplementaryInformation": "", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change opacity of active bar.", + "fullName": "Active bar opacity", + "functionType": "Action", + "group": "Bar configuration", + "name": "SetActiveBarOpacity", + "private": false, + "sentence": "Change active bar opacity of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::DrawResourceBar117::SetPropertyActiveBarOpacity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + }, + { + "type": { + "value": "ResourceBar::DrawResourceBar117::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::DrawResourceBar117", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Active bar opacity", + "longDescription": "", + "name": "Value", + "optional": false, + "supplementaryInformation": "", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the color of the left side of the bar.", + "fullName": "Active bar color ", + "functionType": "Action", + "group": "Bar configuration", + "name": "SetActiveBarColor", + "private": false, + "sentence": "Change active bar color of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::DrawResourceBar117::SetPropertyActiveBarColor" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Color\")" + ] + }, + { + "type": { + "value": "ResourceBar::DrawResourceBar117::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::DrawResourceBar117", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Active bar color", + "longDescription": "", + "name": "Color", + "optional": false, + "supplementaryInformation": "", + "type": "color" + } + ], + "objectGroups": [] + }, + { + "description": "Change the color of the right side of the resource bar.", + "fullName": "Inactive bar color", + "functionType": "Action", + "group": "Bar configuration", + "name": "SetInactiveBarColor", + "private": false, + "sentence": "Change inactive bar color of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::DrawResourceBar117::SetPropertyInactiveBarColor" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Color\")" + ] + }, + { + "type": { + "value": "ResourceBar::DrawResourceBar117::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::DrawResourceBar117", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Inactive bar color", + "longDescription": "", + "name": "Color", + "optional": false, + "supplementaryInformation": "", + "type": "color" + } + ], + "objectGroups": [] + }, + { + "description": "Update the hitbox.", + "fullName": "Update hitbox", + "functionType": "Action", + "group": "Private", + "name": "UpdateHitbox", + "private": true, + "sentence": "Update the hitbox of _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::SetRotationCenter" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyBarLength() / 2", + "Object.Behavior::PropertyBarThickness() / 2" + ] + }, + { + "type": { + "value": "PrimitiveDrawing::SetRectangularCollisionMask" + }, + "parameters": [ + "Object", + "0", + "-Object.Behavior::PropertyBarThickness() / 2", + "Object.Behavior::PropertyBarLength()", + "Object.Behavior::PropertyBarThickness() / 2" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::DrawResourceBar117", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Draw health bar.", + "fullName": "Draw health bar", + "functionType": "Action", + "group": "", + "name": "DrawHealthBar", + "private": false, + "sentence": "Draw health bar with _PARAM0_ based on health of _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Set values", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::DrawResourceBar117::SetValue" + }, + "parameters": [ + "Object", + "DraggableSliderBehavior", + "Tween::Ease(\"easeOutCirc\", Object.Behavior::Value(), ObjectWithHealth.HealthBehavior::Health(), 0.05)", + "" + ] + }, + { + "type": { + "value": "ResourceBar::DrawResourceBar117::SetValueMax" + }, + "parameters": [ + "Object", + "DraggableSliderBehavior", + "ObjectWithHealth.HealthBehavior::MaxHealth()", + "" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::DrawResourceBar117", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Object with health", + "longDescription": "", + "name": "ObjectWithHealth", + "optional": false, + "supplementaryInformation": "", + "type": "objectList" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Health behavior", + "longDescription": "", + "name": "HealthBehavior", + "optional": false, + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Draw shield bar.", + "fullName": "Draw shield bar", + "functionType": "Action", + "group": "", + "name": "DrawShieldBar", + "private": false, + "sentence": "Draw shield bar with _PARAM0_ based on shield of _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Set values", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::DrawResourceBar117::SetValue" + }, + "parameters": [ + "Object", + "DraggableSliderBehavior", + "Tween::Ease(\"easeOutCirc\", Object.Behavior::Value(), ObjectWithShield.ShieldBehavior::ShieldPoints(), 0.05)", + "" + ] + }, + { + "type": { + "value": "ResourceBar::DrawResourceBar117::SetValueMax" + }, + "parameters": [ + "Object", + "DraggableSliderBehavior", + "ObjectWithShield.ShieldBehavior::MaxShield()", + "" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::DrawResourceBar117", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Object with shield", + "longDescription": "", + "name": "ObjectWithShield", + "optional": false, + "supplementaryInformation": "", + "type": "objectList" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Shield behavior", + "longDescription": "", + "name": "ShieldBehavior", + "optional": false, + "supplementaryInformation": "Health::Shield", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Draw resource bar.", + "fullName": "Draw resource bar", + "functionType": "Action", + "group": "", + "name": "DrawResourceBar", + "private": false, + "sentence": "Draw resource bar with _PARAM0_ with current value _PARAM2_ and max value _PARAM3_", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Set values", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::DrawResourceBar117::SetValue" + }, + "parameters": [ + "Object", + "DraggableSliderBehavior", + "Tween::Ease(\"easeOutCirc\", Object.Behavior::Value(), GetArgumentAsNumber(\"CurrentValue\"), 0.05)", + "" + ] + }, + { + "type": { + "value": "ResourceBar::DrawResourceBar117::SetValueMax" + }, + "parameters": [ + "Object", + "DraggableSliderBehavior", + "GetArgumentAsNumber(\"MaxValue\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "codeOnly": false, + "defaultValue": "", + "description": "Object", + "longDescription": "", + "name": "Object", + "optional": false, + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Behavior", + "longDescription": "", + "name": "Behavior", + "optional": false, + "supplementaryInformation": "ResourceBar::DrawResourceBar117", + "type": "behavior" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Current value", + "longDescription": "", + "name": "CurrentValue", + "optional": false, + "supplementaryInformation": "", + "type": "expression" + }, + { + "codeOnly": false, + "defaultValue": "", + "description": "Max value", + "longDescription": "", + "name": "MaxValue", + "optional": false, + "supplementaryInformation": "Health::Health", + "type": "expression" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "0", + "type": "Number", + "label": "Minimum value", + "description": "", + "group": "Value", + "extraInformation": [], + "hidden": false, + "name": "ValueMin" + }, + { + "value": "1", + "type": "Number", + "label": "Maximum value", + "description": "", + "group": "Value", + "extraInformation": [], + "hidden": false, + "name": "ValueMax" + }, + { + "value": "0", + "type": "Number", + "label": "Tick spacing", + "description": "", + "group": "Value", + "extraInformation": [], + "hidden": false, + "name": "TickSpacing" + }, + { + "value": "200", + "type": "Number", + "label": "Bar length", + "description": "", + "group": "Bar", + "extraInformation": [], + "hidden": false, + "name": "BarLength" + }, + { + "value": "4", + "type": "Number", + "label": "Bar thickness", + "description": "", + "group": "Bar", + "extraInformation": [], + "hidden": false, + "name": "BarThickness" + }, + { + "value": "11;255;0", + "type": "Color", + "label": "Inactive bar color", + "description": "", + "group": "Bar", + "extraInformation": [], + "hidden": false, + "name": "InactiveBarColor" + }, + { + "value": "96", + "type": "Number", + "label": "Inactive bar opacity", + "description": "", + "group": "Bar", + "extraInformation": [], + "hidden": false, + "name": "InactiveBarOpacity" + }, + { + "value": "11;255;0", + "type": "Color", + "label": "Active bar color", + "description": "", + "group": "Bar", + "extraInformation": [], + "hidden": false, + "name": "ActiveBarColor" + }, + { + "value": "255", + "type": "Number", + "label": "Active bar opacity", + "description": "", + "group": "Bar", + "extraInformation": [], + "hidden": false, + "name": "ActiveBarOpacity" + }, + { + "value": "false", + "type": "Boolean", + "label": "Rounded bar ends", + "description": "", + "group": "Bar", + "extraInformation": [], + "hidden": false, + "name": "RoundedBar" + }, + { + "value": "0", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "Value" + }, + { + "value": "0", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "ThumbOffset" + }, + { + "value": "true", + "type": "Boolean", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "NeedRedraw" + }, + { + "value": "0", + "type": "Number", + "label": "Time to complete moving the bar when the value is changed (seconds)", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "ChangeDuration" + } + ] + } + ], + "eventsBasedObjects": [] +} \ No newline at end of file diff --git a/examples/resource-bar/assets/Arrow.png b/examples/resource-bar/assets/Arrow.png new file mode 100644 index 000000000..c46f57c85 Binary files /dev/null and b/examples/resource-bar/assets/Arrow.png differ diff --git a/examples/resource-bar/assets/Arrow2.png b/examples/resource-bar/assets/Arrow2.png new file mode 100644 index 000000000..b5cb830fc Binary files /dev/null and b/examples/resource-bar/assets/Arrow2.png differ diff --git a/examples/resource-bar/assets/Bar Frame_No Shadow.png b/examples/resource-bar/assets/Bar Frame_No Shadow.png new file mode 100644 index 000000000..cae05f6e7 Binary files /dev/null and b/examples/resource-bar/assets/Bar Frame_No Shadow.png differ diff --git a/examples/resource-bar/assets/Bar Frame_Shadow.png b/examples/resource-bar/assets/Bar Frame_Shadow.png new file mode 100644 index 000000000..054a2c0d6 Binary files /dev/null and b/examples/resource-bar/assets/Bar Frame_Shadow.png differ diff --git a/examples/resource-bar/assets/Blue bar.png b/examples/resource-bar/assets/Blue bar.png new file mode 100644 index 000000000..7480bd53e Binary files /dev/null and b/examples/resource-bar/assets/Blue bar.png differ diff --git a/examples/resource-bar/assets/Bomb_No Shadow.png b/examples/resource-bar/assets/Bomb_No Shadow.png new file mode 100644 index 000000000..6f6c9234a Binary files /dev/null and b/examples/resource-bar/assets/Bomb_No Shadow.png differ diff --git a/examples/resource-bar/assets/Bomb_Shadow.png b/examples/resource-bar/assets/Bomb_Shadow.png new file mode 100644 index 000000000..8b55cf5d7 Binary files /dev/null and b/examples/resource-bar/assets/Bomb_Shadow.png differ diff --git a/examples/resource-bar/assets/Emote Heart.png b/examples/resource-bar/assets/Emote Heart.png new file mode 100644 index 000000000..6b98f3d59 Binary files /dev/null and b/examples/resource-bar/assets/Emote Heart.png differ diff --git a/examples/resource-bar/assets/Energy Bar.png b/examples/resource-bar/assets/Energy Bar.png new file mode 100644 index 000000000..cce76fe2c Binary files /dev/null and b/examples/resource-bar/assets/Energy Bar.png differ diff --git a/examples/resource-bar/assets/Fly_1.png b/examples/resource-bar/assets/Fly_1.png new file mode 100644 index 000000000..85870bc9d Binary files /dev/null and b/examples/resource-bar/assets/Fly_1.png differ diff --git a/examples/resource-bar/assets/Fly_10.png b/examples/resource-bar/assets/Fly_10.png new file mode 100644 index 000000000..29e3789bf Binary files /dev/null and b/examples/resource-bar/assets/Fly_10.png differ diff --git a/examples/resource-bar/assets/Fly_2.png b/examples/resource-bar/assets/Fly_2.png new file mode 100644 index 000000000..8c716bdc1 Binary files /dev/null and b/examples/resource-bar/assets/Fly_2.png differ diff --git a/examples/resource-bar/assets/Fly_3.png b/examples/resource-bar/assets/Fly_3.png new file mode 100644 index 000000000..17b83a9b3 Binary files /dev/null and b/examples/resource-bar/assets/Fly_3.png differ diff --git a/examples/resource-bar/assets/Fly_4.png b/examples/resource-bar/assets/Fly_4.png new file mode 100644 index 000000000..c92415043 Binary files /dev/null and b/examples/resource-bar/assets/Fly_4.png differ diff --git a/examples/resource-bar/assets/Fly_5.png b/examples/resource-bar/assets/Fly_5.png new file mode 100644 index 000000000..1fd95320d Binary files /dev/null and b/examples/resource-bar/assets/Fly_5.png differ diff --git a/examples/resource-bar/assets/Fly_6.png b/examples/resource-bar/assets/Fly_6.png new file mode 100644 index 000000000..4ca72e5bc Binary files /dev/null and b/examples/resource-bar/assets/Fly_6.png differ diff --git a/examples/resource-bar/assets/Fly_7.png b/examples/resource-bar/assets/Fly_7.png new file mode 100644 index 000000000..76d5a4ac3 Binary files /dev/null and b/examples/resource-bar/assets/Fly_7.png differ diff --git a/examples/resource-bar/assets/Fly_8.png b/examples/resource-bar/assets/Fly_8.png new file mode 100644 index 000000000..1cccd033d Binary files /dev/null and b/examples/resource-bar/assets/Fly_8.png differ diff --git a/examples/resource-bar/assets/Fly_9.png b/examples/resource-bar/assets/Fly_9.png new file mode 100644 index 000000000..366b4ad0b Binary files /dev/null and b/examples/resource-bar/assets/Fly_9.png differ diff --git a/examples/resource-bar/assets/Health Bar Box.png b/examples/resource-bar/assets/Health Bar Box.png new file mode 100644 index 000000000..34250327c Binary files /dev/null and b/examples/resource-bar/assets/Health Bar Box.png differ diff --git a/examples/resource-bar/assets/Health Bar Box2.png b/examples/resource-bar/assets/Health Bar Box2.png new file mode 100644 index 000000000..34250327c Binary files /dev/null and b/examples/resource-bar/assets/Health Bar Box2.png differ diff --git a/examples/resource-bar/assets/Health Bar.png b/examples/resource-bar/assets/Health Bar.png new file mode 100644 index 000000000..a077606fd Binary files /dev/null and b/examples/resource-bar/assets/Health Bar.png differ diff --git a/examples/resource-bar/assets/Health Bar2.png b/examples/resource-bar/assets/Health Bar2.png new file mode 100644 index 000000000..b5d379982 Binary files /dev/null and b/examples/resource-bar/assets/Health Bar2.png differ diff --git a/examples/resource-bar/assets/Health Indicator_Black Outline Empty.png b/examples/resource-bar/assets/Health Indicator_Black Outline Empty.png new file mode 100644 index 000000000..b2b9df7b9 Binary files /dev/null and b/examples/resource-bar/assets/Health Indicator_Black Outline Empty.png differ diff --git a/examples/resource-bar/assets/Health Indicator_Black Outline Heart.png b/examples/resource-bar/assets/Health Indicator_Black Outline Heart.png new file mode 100644 index 000000000..63fb0516c Binary files /dev/null and b/examples/resource-bar/assets/Health Indicator_Black Outline Heart.png differ diff --git a/examples/resource-bar/assets/Health Indicator_White Outline Empty.png b/examples/resource-bar/assets/Health Indicator_White Outline Empty.png new file mode 100644 index 000000000..106141d1b Binary files /dev/null and b/examples/resource-bar/assets/Health Indicator_White Outline Empty.png differ diff --git a/examples/resource-bar/assets/Health Indicator_White Outline Heart.png b/examples/resource-bar/assets/Health Indicator_White Outline Heart.png new file mode 100644 index 000000000..94670c895 Binary files /dev/null and b/examples/resource-bar/assets/Health Indicator_White Outline Heart.png differ diff --git a/examples/resource-bar/assets/Heart-1-0.png b/examples/resource-bar/assets/Heart-1-0.png new file mode 100644 index 000000000..328d735c3 Binary files /dev/null and b/examples/resource-bar/assets/Heart-1-0.png differ diff --git a/examples/resource-bar/assets/Heart-1-1.png b/examples/resource-bar/assets/Heart-1-1.png new file mode 100644 index 000000000..328d735c3 Binary files /dev/null and b/examples/resource-bar/assets/Heart-1-1.png differ diff --git a/examples/resource-bar/assets/Heart-1-2.png b/examples/resource-bar/assets/Heart-1-2.png new file mode 100644 index 000000000..328d735c3 Binary files /dev/null and b/examples/resource-bar/assets/Heart-1-2.png differ diff --git a/examples/resource-bar/assets/Heart-1.png b/examples/resource-bar/assets/Heart-1.png new file mode 100644 index 000000000..98cd092cb Binary files /dev/null and b/examples/resource-bar/assets/Heart-1.png differ diff --git a/examples/resource-bar/assets/Heart.png b/examples/resource-bar/assets/Heart.png new file mode 100644 index 000000000..7201cc3d3 Binary files /dev/null and b/examples/resource-bar/assets/Heart.png differ diff --git a/examples/resource-bar/assets/Key_Filled.png b/examples/resource-bar/assets/Key_Filled.png new file mode 100644 index 000000000..c242339eb Binary files /dev/null and b/examples/resource-bar/assets/Key_Filled.png differ diff --git a/examples/resource-bar/assets/Key_Outline.png b/examples/resource-bar/assets/Key_Outline.png new file mode 100644 index 000000000..228459046 Binary files /dev/null and b/examples/resource-bar/assets/Key_Outline.png differ diff --git a/examples/resource-bar/assets/Meteor Detailed_Large.png b/examples/resource-bar/assets/Meteor Detailed_Large.png new file mode 100644 index 000000000..72c1816ed Binary files /dev/null and b/examples/resource-bar/assets/Meteor Detailed_Large.png differ diff --git a/examples/resource-bar/assets/Meteor Detailed_Small.png b/examples/resource-bar/assets/Meteor Detailed_Small.png new file mode 100644 index 000000000..d89df58c4 Binary files /dev/null and b/examples/resource-bar/assets/Meteor Detailed_Small.png differ diff --git a/examples/resource-bar/assets/Minus Key.png b/examples/resource-bar/assets/Minus Key.png new file mode 100644 index 000000000..2639ac86b Binary files /dev/null and b/examples/resource-bar/assets/Minus Key.png differ diff --git a/examples/resource-bar/assets/Moon.png b/examples/resource-bar/assets/Moon.png new file mode 100644 index 000000000..3ca8239d2 Binary files /dev/null and b/examples/resource-bar/assets/Moon.png differ diff --git a/examples/resource-bar/assets/Playing Card_Back Blue 1.png b/examples/resource-bar/assets/Playing Card_Back Blue 1.png new file mode 100644 index 000000000..ec157b8da Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Back Blue 1.png differ diff --git a/examples/resource-bar/assets/Playing Card_Back Blue 2.png b/examples/resource-bar/assets/Playing Card_Back Blue 2.png new file mode 100644 index 000000000..16d6f9b31 Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Back Blue 2.png differ diff --git a/examples/resource-bar/assets/Playing Card_Back Brown 1.png b/examples/resource-bar/assets/Playing Card_Back Brown 1.png new file mode 100644 index 000000000..b56c09845 Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Back Brown 1.png differ diff --git a/examples/resource-bar/assets/Playing Card_Back Brown 2.png b/examples/resource-bar/assets/Playing Card_Back Brown 2.png new file mode 100644 index 000000000..5f0424372 Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Back Brown 2.png differ diff --git a/examples/resource-bar/assets/Playing Card_Back Red 1.png b/examples/resource-bar/assets/Playing Card_Back Red 1.png new file mode 100644 index 000000000..a1afd182c Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Back Red 1.png differ diff --git a/examples/resource-bar/assets/Playing Card_Back Red 2.png b/examples/resource-bar/assets/Playing Card_Back Red 2.png new file mode 100644 index 000000000..675085ddb Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Back Red 2.png differ diff --git a/examples/resource-bar/assets/Playing Card_Clubs 02.png b/examples/resource-bar/assets/Playing Card_Clubs 02.png new file mode 100644 index 000000000..e3ee65c38 Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Clubs 02.png differ diff --git a/examples/resource-bar/assets/Playing Card_Clubs 03.png b/examples/resource-bar/assets/Playing Card_Clubs 03.png new file mode 100644 index 000000000..f08317a6f Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Clubs 03.png differ diff --git a/examples/resource-bar/assets/Playing Card_Clubs 04.png b/examples/resource-bar/assets/Playing Card_Clubs 04.png new file mode 100644 index 000000000..178f85bb0 Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Clubs 04.png differ diff --git a/examples/resource-bar/assets/Playing Card_Clubs 05.png b/examples/resource-bar/assets/Playing Card_Clubs 05.png new file mode 100644 index 000000000..d107ad29b Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Clubs 05.png differ diff --git a/examples/resource-bar/assets/Playing Card_Clubs 06.png b/examples/resource-bar/assets/Playing Card_Clubs 06.png new file mode 100644 index 000000000..a285bc094 Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Clubs 06.png differ diff --git a/examples/resource-bar/assets/Playing Card_Clubs 07.png b/examples/resource-bar/assets/Playing Card_Clubs 07.png new file mode 100644 index 000000000..5e6b414f3 Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Clubs 07.png differ diff --git a/examples/resource-bar/assets/Playing Card_Clubs 08.png b/examples/resource-bar/assets/Playing Card_Clubs 08.png new file mode 100644 index 000000000..14b9b41f8 Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Clubs 08.png differ diff --git a/examples/resource-bar/assets/Playing Card_Clubs 09.png b/examples/resource-bar/assets/Playing Card_Clubs 09.png new file mode 100644 index 000000000..ec1ce3feb Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Clubs 09.png differ diff --git a/examples/resource-bar/assets/Playing Card_Clubs 10.png b/examples/resource-bar/assets/Playing Card_Clubs 10.png new file mode 100644 index 000000000..d2c845b54 Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Clubs 10.png differ diff --git a/examples/resource-bar/assets/Playing Card_Clubs A.png b/examples/resource-bar/assets/Playing Card_Clubs A.png new file mode 100644 index 000000000..8d38b5801 Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Clubs A.png differ diff --git a/examples/resource-bar/assets/Playing Card_Clubs J.png b/examples/resource-bar/assets/Playing Card_Clubs J.png new file mode 100644 index 000000000..3365d34ab Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Clubs J.png differ diff --git a/examples/resource-bar/assets/Playing Card_Clubs K.png b/examples/resource-bar/assets/Playing Card_Clubs K.png new file mode 100644 index 000000000..607eb0eb8 Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Clubs K.png differ diff --git a/examples/resource-bar/assets/Playing Card_Clubs Q.png b/examples/resource-bar/assets/Playing Card_Clubs Q.png new file mode 100644 index 000000000..fd5113e92 Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Clubs Q.png differ diff --git a/examples/resource-bar/assets/Playing Card_Diamond 02.png b/examples/resource-bar/assets/Playing Card_Diamond 02.png new file mode 100644 index 000000000..30bc42adc Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Diamond 02.png differ diff --git a/examples/resource-bar/assets/Playing Card_Diamond 03.png b/examples/resource-bar/assets/Playing Card_Diamond 03.png new file mode 100644 index 000000000..ada4dc120 Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Diamond 03.png differ diff --git a/examples/resource-bar/assets/Playing Card_Diamond 04.png b/examples/resource-bar/assets/Playing Card_Diamond 04.png new file mode 100644 index 000000000..bea1b5c3e Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Diamond 04.png differ diff --git a/examples/resource-bar/assets/Playing Card_Diamond 05.png b/examples/resource-bar/assets/Playing Card_Diamond 05.png new file mode 100644 index 000000000..9ab1322df Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Diamond 05.png differ diff --git a/examples/resource-bar/assets/Playing Card_Diamond 06.png b/examples/resource-bar/assets/Playing Card_Diamond 06.png new file mode 100644 index 000000000..e4e968426 Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Diamond 06.png differ diff --git a/examples/resource-bar/assets/Playing Card_Diamond 07.png b/examples/resource-bar/assets/Playing Card_Diamond 07.png new file mode 100644 index 000000000..a7a1dc171 Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Diamond 07.png differ diff --git a/examples/resource-bar/assets/Playing Card_Diamond 08.png b/examples/resource-bar/assets/Playing Card_Diamond 08.png new file mode 100644 index 000000000..6e3a6bdc6 Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Diamond 08.png differ diff --git a/examples/resource-bar/assets/Playing Card_Diamond 09.png b/examples/resource-bar/assets/Playing Card_Diamond 09.png new file mode 100644 index 000000000..9586c0b8d Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Diamond 09.png differ diff --git a/examples/resource-bar/assets/Playing Card_Diamond 10.png b/examples/resource-bar/assets/Playing Card_Diamond 10.png new file mode 100644 index 000000000..e141170d0 Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Diamond 10.png differ diff --git a/examples/resource-bar/assets/Playing Card_Diamond A.png b/examples/resource-bar/assets/Playing Card_Diamond A.png new file mode 100644 index 000000000..568577113 Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Diamond A.png differ diff --git a/examples/resource-bar/assets/Playing Card_Diamond J.png b/examples/resource-bar/assets/Playing Card_Diamond J.png new file mode 100644 index 000000000..45027abb5 Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Diamond J.png differ diff --git a/examples/resource-bar/assets/Playing Card_Diamond K.png b/examples/resource-bar/assets/Playing Card_Diamond K.png new file mode 100644 index 000000000..a741a984e Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Diamond K.png differ diff --git a/examples/resource-bar/assets/Playing Card_Diamond Q.png b/examples/resource-bar/assets/Playing Card_Diamond Q.png new file mode 100644 index 000000000..f0a00d708 Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Diamond Q.png differ diff --git a/examples/resource-bar/assets/Playing Card_Hearts 02.png b/examples/resource-bar/assets/Playing Card_Hearts 02.png new file mode 100644 index 000000000..2d368573c Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Hearts 02.png differ diff --git a/examples/resource-bar/assets/Playing Card_Hearts 03.png b/examples/resource-bar/assets/Playing Card_Hearts 03.png new file mode 100644 index 000000000..2b8b36e53 Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Hearts 03.png differ diff --git a/examples/resource-bar/assets/Playing Card_Hearts 04.png b/examples/resource-bar/assets/Playing Card_Hearts 04.png new file mode 100644 index 000000000..b1dccdece Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Hearts 04.png differ diff --git a/examples/resource-bar/assets/Playing Card_Hearts 05.png b/examples/resource-bar/assets/Playing Card_Hearts 05.png new file mode 100644 index 000000000..2e6754286 Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Hearts 05.png differ diff --git a/examples/resource-bar/assets/Playing Card_Hearts 06.png b/examples/resource-bar/assets/Playing Card_Hearts 06.png new file mode 100644 index 000000000..b4c7bf7ca Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Hearts 06.png differ diff --git a/examples/resource-bar/assets/Playing Card_Hearts 07.png b/examples/resource-bar/assets/Playing Card_Hearts 07.png new file mode 100644 index 000000000..5b1c7615c Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Hearts 07.png differ diff --git a/examples/resource-bar/assets/Playing Card_Hearts 08.png b/examples/resource-bar/assets/Playing Card_Hearts 08.png new file mode 100644 index 000000000..de7a4b235 Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Hearts 08.png differ diff --git a/examples/resource-bar/assets/Playing Card_Hearts 09.png b/examples/resource-bar/assets/Playing Card_Hearts 09.png new file mode 100644 index 000000000..b37970350 Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Hearts 09.png differ diff --git a/examples/resource-bar/assets/Playing Card_Hearts 10.png b/examples/resource-bar/assets/Playing Card_Hearts 10.png new file mode 100644 index 000000000..52344d017 Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Hearts 10.png differ diff --git a/examples/resource-bar/assets/Playing Card_Hearts A.png b/examples/resource-bar/assets/Playing Card_Hearts A.png new file mode 100644 index 000000000..8d41a3708 Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Hearts A.png differ diff --git a/examples/resource-bar/assets/Playing Card_Hearts J.png b/examples/resource-bar/assets/Playing Card_Hearts J.png new file mode 100644 index 000000000..b1bad2217 Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Hearts J.png differ diff --git a/examples/resource-bar/assets/Playing Card_Hearts K.png b/examples/resource-bar/assets/Playing Card_Hearts K.png new file mode 100644 index 000000000..d00782ac4 Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Hearts K.png differ diff --git a/examples/resource-bar/assets/Playing Card_Hearts Q.png b/examples/resource-bar/assets/Playing Card_Hearts Q.png new file mode 100644 index 000000000..2e0b19d4b Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Hearts Q.png differ diff --git a/examples/resource-bar/assets/Playing Card_Joker Black.png b/examples/resource-bar/assets/Playing Card_Joker Black.png new file mode 100644 index 000000000..94e35a337 Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Joker Black.png differ diff --git a/examples/resource-bar/assets/Playing Card_Joker Red.png b/examples/resource-bar/assets/Playing Card_Joker Red.png new file mode 100644 index 000000000..099547623 Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Joker Red.png differ diff --git a/examples/resource-bar/assets/Playing Card_Spades 02.png b/examples/resource-bar/assets/Playing Card_Spades 02.png new file mode 100644 index 000000000..74e7fc7d4 Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Spades 02.png differ diff --git a/examples/resource-bar/assets/Playing Card_Spades 03.png b/examples/resource-bar/assets/Playing Card_Spades 03.png new file mode 100644 index 000000000..60cfe290b Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Spades 03.png differ diff --git a/examples/resource-bar/assets/Playing Card_Spades 04.png b/examples/resource-bar/assets/Playing Card_Spades 04.png new file mode 100644 index 000000000..feb64ba10 Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Spades 04.png differ diff --git a/examples/resource-bar/assets/Playing Card_Spades 05.png b/examples/resource-bar/assets/Playing Card_Spades 05.png new file mode 100644 index 000000000..50b394b44 Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Spades 05.png differ diff --git a/examples/resource-bar/assets/Playing Card_Spades 06.png b/examples/resource-bar/assets/Playing Card_Spades 06.png new file mode 100644 index 000000000..51d1f4d9e Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Spades 06.png differ diff --git a/examples/resource-bar/assets/Playing Card_Spades 07.png b/examples/resource-bar/assets/Playing Card_Spades 07.png new file mode 100644 index 000000000..8d69d7666 Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Spades 07.png differ diff --git a/examples/resource-bar/assets/Playing Card_Spades 08.png b/examples/resource-bar/assets/Playing Card_Spades 08.png new file mode 100644 index 000000000..daabb221b Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Spades 08.png differ diff --git a/examples/resource-bar/assets/Playing Card_Spades 09.png b/examples/resource-bar/assets/Playing Card_Spades 09.png new file mode 100644 index 000000000..dba49cb7b Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Spades 09.png differ diff --git a/examples/resource-bar/assets/Playing Card_Spades 10.png b/examples/resource-bar/assets/Playing Card_Spades 10.png new file mode 100644 index 000000000..d2086479e Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Spades 10.png differ diff --git a/examples/resource-bar/assets/Playing Card_Spades A.png b/examples/resource-bar/assets/Playing Card_Spades A.png new file mode 100644 index 000000000..89cc0a8e4 Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Spades A.png differ diff --git a/examples/resource-bar/assets/Playing Card_Spades J.png b/examples/resource-bar/assets/Playing Card_Spades J.png new file mode 100644 index 000000000..63adab4a9 Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Spades J.png differ diff --git a/examples/resource-bar/assets/Playing Card_Spades K.png b/examples/resource-bar/assets/Playing Card_Spades K.png new file mode 100644 index 000000000..62d4a6086 Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Spades K.png differ diff --git a/examples/resource-bar/assets/Playing Card_Spades Q.png b/examples/resource-bar/assets/Playing Card_Spades Q.png new file mode 100644 index 000000000..bd8dc7be5 Binary files /dev/null and b/examples/resource-bar/assets/Playing Card_Spades Q.png differ diff --git a/examples/resource-bar/assets/Plus Key.png b/examples/resource-bar/assets/Plus Key.png new file mode 100644 index 000000000..bc9cb6ed7 Binary files /dev/null and b/examples/resource-bar/assets/Plus Key.png differ diff --git a/examples/resource-bar/assets/Silver shield.png b/examples/resource-bar/assets/Silver shield.png new file mode 100644 index 000000000..8db2cb927 Binary files /dev/null and b/examples/resource-bar/assets/Silver shield.png differ diff --git a/examples/resource-bar/assets/Star_LargeNarrow.png b/examples/resource-bar/assets/Star_LargeNarrow.png new file mode 100644 index 000000000..43a12604b Binary files /dev/null and b/examples/resource-bar/assets/Star_LargeNarrow.png differ diff --git a/examples/resource-bar/assets/Star_LargeWide.png b/examples/resource-bar/assets/Star_LargeWide.png new file mode 100644 index 000000000..cf35f1bdf Binary files /dev/null and b/examples/resource-bar/assets/Star_LargeWide.png differ diff --git a/examples/resource-bar/assets/Star_Medium.png b/examples/resource-bar/assets/Star_Medium.png new file mode 100644 index 000000000..6bce4c7a6 Binary files /dev/null and b/examples/resource-bar/assets/Star_Medium.png differ diff --git a/examples/resource-bar/assets/Star_Small.png b/examples/resource-bar/assets/Star_Small.png new file mode 100644 index 000000000..0286d9fb5 Binary files /dev/null and b/examples/resource-bar/assets/Star_Small.png differ diff --git a/examples/resource-bar/assets/Upgraded Potion Blue_No Shadow.png b/examples/resource-bar/assets/Upgraded Potion Blue_No Shadow.png new file mode 100644 index 000000000..8114b7fde Binary files /dev/null and b/examples/resource-bar/assets/Upgraded Potion Blue_No Shadow.png differ diff --git a/examples/resource-bar/assets/Upgraded Potion Blue_Shadow.png b/examples/resource-bar/assets/Upgraded Potion Blue_Shadow.png new file mode 100644 index 000000000..9fc0758f0 Binary files /dev/null and b/examples/resource-bar/assets/Upgraded Potion Blue_Shadow.png differ diff --git a/examples/resource-bar/assets/tiled_Energy Bar Fill.png b/examples/resource-bar/assets/tiled_Energy Bar Fill.png new file mode 100644 index 000000000..9ad5090ff Binary files /dev/null and b/examples/resource-bar/assets/tiled_Energy Bar Fill.png differ diff --git a/examples/resource-bar/assets/tiled_Health Bar Fill.png b/examples/resource-bar/assets/tiled_Health Bar Fill.png new file mode 100644 index 000000000..646d2ea5e Binary files /dev/null and b/examples/resource-bar/assets/tiled_Health Bar Fill.png differ diff --git a/examples/resource-bar/assets/tiled_Tiled Empty UI Heart.png b/examples/resource-bar/assets/tiled_Tiled Empty UI Heart.png new file mode 100644 index 000000000..ffcb6312e Binary files /dev/null and b/examples/resource-bar/assets/tiled_Tiled Empty UI Heart.png differ diff --git a/examples/resource-bar/assets/tiled_Tiled Filler UI Heart.png b/examples/resource-bar/assets/tiled_Tiled Filler UI Heart.png new file mode 100644 index 000000000..70ca22539 Binary files /dev/null and b/examples/resource-bar/assets/tiled_Tiled Filler UI Heart.png differ diff --git a/examples/resource-bar/game.json b/examples/resource-bar/game.json new file mode 100644 index 000000000..d116087a6 --- /dev/null +++ b/examples/resource-bar/game.json @@ -0,0 +1,33209 @@ +{ + "firstLayout": "", + "gdVersion": { + "build": 99, + "major": 4, + "minor": 0, + "revision": 0 + }, + "properties": { + "adaptGameResolutionAtRuntime": true, + "folderProject": false, + "orientation": "landscape", + "packageName": "com.example.gamename", + "pixelsRounding": false, + "projectUuid": "dcdbdf13-00be-4e01-88bc-1cb673a81d14", + "scaleMode": "linear", + "sizeOnStartupMode": "", + "templateSlug": "", + "useExternalSourceFiles": false, + "version": "1.0.0", + "name": "Extension: Resource Bar", + "description": "", + "author": "", + "windowWidth": 800, + "windowHeight": 600, + "latestCompilationDirectory": "", + "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": [], + "categories": [], + "playableDevices": [], + "extensionProperties": [], + "platforms": [ + { + "name": "GDevelop JS platform" + } + ], + "currentPlatform": "GDevelop JS platform" + }, + "resources": { + "resources": [ + { + "alwaysLoaded": false, + "file": "assets/Fly_1.png", + "kind": "image", + "metadata": "", + "name": "Fly_1.png", + "smoothed": true, + "userAdded": false, + "origin": { + "identifier": "https://resources.gdevelop-app.com/assets/GDevelop examples/Platformer/Enemy/Fly_1.png", + "name": "gdevelop-asset-store" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Fly_10.png", + "kind": "image", + "metadata": "", + "name": "Fly_10.png", + "smoothed": true, + "userAdded": false, + "origin": { + "identifier": "https://resources.gdevelop-app.com/assets/GDevelop examples/Platformer/Enemy/Fly_10.png", + "name": "gdevelop-asset-store" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Fly_2.png", + "kind": "image", + "metadata": "", + "name": "Fly_2.png", + "smoothed": true, + "userAdded": false, + "origin": { + "identifier": "https://resources.gdevelop-app.com/assets/GDevelop examples/Platformer/Enemy/Fly_2.png", + "name": "gdevelop-asset-store" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Fly_3.png", + "kind": "image", + "metadata": "", + "name": "Fly_3.png", + "smoothed": true, + "userAdded": false, + "origin": { + "identifier": "https://resources.gdevelop-app.com/assets/GDevelop examples/Platformer/Enemy/Fly_3.png", + "name": "gdevelop-asset-store" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Fly_4.png", + "kind": "image", + "metadata": "", + "name": "Fly_4.png", + "smoothed": true, + "userAdded": false, + "origin": { + "identifier": "https://resources.gdevelop-app.com/assets/GDevelop examples/Platformer/Enemy/Fly_4.png", + "name": "gdevelop-asset-store" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Fly_5.png", + "kind": "image", + "metadata": "", + "name": "Fly_5.png", + "smoothed": true, + "userAdded": false, + "origin": { + "identifier": "https://resources.gdevelop-app.com/assets/GDevelop examples/Platformer/Enemy/Fly_5.png", + "name": "gdevelop-asset-store" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Fly_6.png", + "kind": "image", + "metadata": "", + "name": "Fly_6.png", + "smoothed": true, + "userAdded": false, + "origin": { + "identifier": "https://resources.gdevelop-app.com/assets/GDevelop examples/Platformer/Enemy/Fly_6.png", + "name": "gdevelop-asset-store" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Fly_7.png", + "kind": "image", + "metadata": "", + "name": "Fly_7.png", + "smoothed": true, + "userAdded": false, + "origin": { + "identifier": "https://resources.gdevelop-app.com/assets/GDevelop examples/Platformer/Enemy/Fly_7.png", + "name": "gdevelop-asset-store" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Fly_8.png", + "kind": "image", + "metadata": "", + "name": "Fly_8.png", + "smoothed": true, + "userAdded": false, + "origin": { + "identifier": "https://resources.gdevelop-app.com/assets/GDevelop examples/Platformer/Enemy/Fly_8.png", + "name": "gdevelop-asset-store" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Fly_9.png", + "kind": "image", + "metadata": "", + "name": "Fly_9.png", + "smoothed": true, + "userAdded": false, + "origin": { + "identifier": "https://resources.gdevelop-app.com/assets/GDevelop examples/Platformer/Enemy/Fly_9.png", + "name": "gdevelop-asset-store" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Star_LargeNarrow.png", + "kind": "image", + "metadata": "", + "name": "Star_LargeNarrow.png", + "smoothed": true, + "userAdded": false, + "origin": { + "identifier": "https://resources.gdevelop-app.com/assets/Simple Space/stars/Star_LargeNarrow.png", + "name": "gdevelop-asset-store" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Star_LargeWide.png", + "kind": "image", + "metadata": "", + "name": "Star_LargeWide.png", + "smoothed": true, + "userAdded": false, + "origin": { + "identifier": "https://resources.gdevelop-app.com/assets/Simple Space/stars/Star_LargeWide.png", + "name": "gdevelop-asset-store" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Star_Medium.png", + "kind": "image", + "metadata": "", + "name": "Star_Medium.png", + "smoothed": true, + "userAdded": false, + "origin": { + "identifier": "https://resources.gdevelop-app.com/assets/Simple Space/stars/Star_Medium.png", + "name": "gdevelop-asset-store" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Star_Small.png", + "kind": "image", + "metadata": "", + "name": "Star_Small.png", + "smoothed": true, + "userAdded": false, + "origin": { + "identifier": "https://resources.gdevelop-app.com/assets/Simple Space/stars/Star_Small.png", + "name": "gdevelop-asset-store" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Silver shield.png", + "kind": "image", + "metadata": "", + "name": "Silver shield.png", + "smoothed": true, + "userAdded": false, + "origin": { + "identifier": "https://resources.gdevelop-app.com/assets/Space Shooter/PNG/Power-ups/Silver shield.png", + "name": "gdevelop-asset-store" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Meteor Detailed_Large.png", + "kind": "image", + "metadata": "", + "name": "Meteor Detailed_Large.png", + "smoothed": true, + "userAdded": false, + "origin": { + "identifier": "https://resources.gdevelop-app.com/assets/Simple Space/meteors/Meteor Detailed_Large.png", + "name": "gdevelop-asset-store" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Meteor Detailed_Small.png", + "kind": "image", + "metadata": "", + "name": "Meteor Detailed_Small.png", + "smoothed": true, + "userAdded": false, + "origin": { + "identifier": "https://resources.gdevelop-app.com/assets/Simple Space/meteors/Meteor Detailed_Small.png", + "name": "gdevelop-asset-store" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Upgraded Potion Blue_No Shadow.png", + "kind": "image", + "metadata": "", + "name": "Upgraded Potion Blue_No Shadow.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://resources.gdevelop-app.com/assets/32x32 Fantasy Icons Pack v2/Icons/Healing Items/Upgraded Potion Blue_No Shadow.png", + "name": "gdevelop-asset-store" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Upgraded Potion Blue_Shadow.png", + "kind": "image", + "metadata": "", + "name": "Upgraded Potion Blue_Shadow.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://resources.gdevelop-app.com/assets/32x32 Fantasy Icons Pack v2/Icons/Healing Items/Upgraded Potion Blue_Shadow.png", + "name": "gdevelop-asset-store" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Moon.png", + "kind": "image", + "metadata": "", + "name": "Moon.png", + "smoothed": true, + "userAdded": false, + "origin": { + "identifier": "https://resources.gdevelop-app.com/assets/GDevelop examples/Platformer/Background/Moon.png", + "name": "gdevelop-asset-store" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Emote Heart.png", + "kind": "image", + "metadata": "", + "name": "Emote Heart.png", + "smoothed": true, + "userAdded": false, + "origin": { + "identifier": "https://resources.gdevelop-app.com/assets/Emotes/Normal/Emote/Emote Heart.png", + "name": "gdevelop-asset-store" + } + }, + { + "alwaysLoaded": false, + "file": "assets/tiled_Tiled Empty UI Heart.png", + "kind": "image", + "metadata": "", + "name": "tiled_Tiled Empty UI Heart.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://resources.gdevelop-app.com/assets/16x16 Dungeon Tileset/UI/tiled_Tiled Empty UI Heart.png", + "name": "gdevelop-asset-store" + } + }, + { + "alwaysLoaded": false, + "file": "assets/tiled_Tiled Filler UI Heart.png", + "kind": "image", + "metadata": "", + "name": "tiled_Tiled Filler UI Heart.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://resources.gdevelop-app.com/assets/16x16 Dungeon Tileset/UI/tiled_Tiled Filler UI Heart.png", + "name": "gdevelop-asset-store" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Health Bar.png", + "kind": "image", + "metadata": "", + "name": "Health Bar.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://resources.gdevelop-app.com/assets/Pirate Bomb Pack/Objects/Health Bar/Health Bar.png", + "name": "gdevelop-asset-store" + } + }, + { + "alwaysLoaded": false, + "file": "assets/tiled_Health Bar Fill.png", + "kind": "image", + "metadata": "", + "name": "tiled_Health Bar Fill.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://resources.gdevelop-app.com/assets/Space Shooter by Pixel boy/Hud/tiled_Health Bar Fill.png", + "name": "gdevelop-asset-store" + } + }, + { + "alwaysLoaded": false, + "file": "assets/tiled_Energy Bar Fill.png", + "kind": "image", + "metadata": "", + "name": "tiled_Energy Bar Fill.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://resources.gdevelop-app.com/assets/Space Shooter by Pixel boy/Hud/tiled_Energy Bar Fill.png", + "name": "gdevelop-asset-store" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Health Bar Box.png", + "kind": "image", + "metadata": "", + "name": "Health Bar Box.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://resources.gdevelop-app.com/assets/Western FPS 2D/Hud/Bar/Health Bar Box.png", + "name": "gdevelop-asset-store" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Health Indicator_Black Outline Empty.png", + "kind": "image", + "metadata": "", + "name": "Health Indicator_Black Outline Empty.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://resources.gdevelop-app.com/assets/GrafxKid Pack/Mini FX, Items & UI/Mini UI/Health Indicator_Black Outline Empty.png", + "name": "gdevelop-asset-store" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Health Indicator_Black Outline Heart.png", + "kind": "image", + "metadata": "", + "name": "Health Indicator_Black Outline Heart.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://resources.gdevelop-app.com/assets/GrafxKid Pack/Mini FX, Items & UI/Mini UI/Health Indicator_Black Outline Heart.png", + "name": "gdevelop-asset-store" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Health Indicator_White Outline Empty.png", + "kind": "image", + "metadata": "", + "name": "Health Indicator_White Outline Empty.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://resources.gdevelop-app.com/assets/GrafxKid Pack/Mini FX, Items & UI/Mini UI/Health Indicator_White Outline Empty.png", + "name": "gdevelop-asset-store" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Health Indicator_White Outline Heart.png", + "kind": "image", + "metadata": "", + "name": "Health Indicator_White Outline Heart.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://resources.gdevelop-app.com/assets/GrafxKid Pack/Mini FX, Items & UI/Mini UI/Health Indicator_White Outline Heart.png", + "name": "gdevelop-asset-store" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Heart.png", + "kind": "image", + "metadata": "", + "name": "Heart.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://resources.gdevelop-app.com/assets/Pirate Bomb Pack/Objects/Health Bar/Heart.png", + "name": "gdevelop-asset-store" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Heart-1-1.png", + "kind": "image", + "metadata": "", + "name": "assets\\Heart-1-1.png", + "smoothed": true, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "assets/Bomb_No Shadow.png", + "kind": "image", + "metadata": "", + "name": "Bomb_No Shadow.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/32x32 Fantasy Icons Pack v2/Icons/General Items/1ceb65f6eab8e1594f3d784d881fc1eaf87a02d9e331b7ff811acc1bca3e1c2a_Bomb_No Shadow.png", + "name": "Bomb_No Shadow.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Bomb_Shadow.png", + "kind": "image", + "metadata": "", + "name": "Bomb_Shadow.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/32x32 Fantasy Icons Pack v2/Icons/General Items/a58e750a7f074351f00ca54fa599fb9c383dcf55c942a27441d0d799228051e1_Bomb_Shadow.png", + "name": "Bomb_Shadow.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Plus Key.png", + "kind": "image", + "metadata": "", + "name": "Plus Key.png", + "smoothed": true, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Xelu Free Controller and Key Prompts/Keyboard/Dark/fc542dd4d657e2a0bc2a7beaf49ca6135611119f11b7bcd5b5b0f97d273c6634_Plus Key.png", + "name": "Plus Key.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Minus Key.png", + "kind": "image", + "metadata": "", + "name": "Minus Key.png", + "smoothed": true, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Xelu Free Controller and Key Prompts/Keyboard/Dark/4c2d6e9b511305699472697c840548f3081e21e6a8f678342495570fda6a6edb_Minus Key.png", + "name": "Minus Key.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Arrow.png", + "kind": "image", + "metadata": "", + "name": "Arrow.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Western FPS 2D/Hud/261d2f5da18169c3f3f0cf2940b975a4eb4eef808b2a5d5a6d0533c21117b142_Arrow.png", + "name": "Arrow.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Key_Filled.png", + "kind": "image", + "metadata": "", + "name": "Key_Filled.png", + "smoothed": true, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Rolling Ball Pack/Interface/7bb3db5bbfaf32c67bd19d326370f4cd2f7a3ae8fcb99f38a7c7805cb117d8d4_Key_Filled.png", + "name": "Key_Filled.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Key_Outline.png", + "kind": "image", + "metadata": "", + "name": "Key_Outline.png", + "smoothed": true, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Rolling Ball Pack/Interface/9817de9005c1a3ab785d2d6c8265d4028bb4f7286eb33bdd65fbd43f9e55556f_Key_Outline.png", + "name": "Key_Outline.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Back Blue 1.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Back Blue 1.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/45d8c10efbc8b88551c4f3bbf86ad7c8fc4605c9a9c6d735eca88b42425e7cd0_Playing Card_Back Blue 1.png", + "name": "Playing Card_Back Blue 1.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Back Blue 2.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Back Blue 2.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/702ac50f6b09f2fd9c8bedff300f69243e9b869be8bb167ba8f312d3da23d2d3_Playing Card_Back Blue 2.png", + "name": "Playing Card_Back Blue 2.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Back Brown 1.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Back Brown 1.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/2cd9e2c953aa53dbf5c6d0e47b4578be7f93b5efc3ea68956794d0b1289f6609_Playing Card_Back Brown 1.png", + "name": "Playing Card_Back Brown 1.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Back Brown 2.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Back Brown 2.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/65cbd17e62582bacd5f00582d4bb5aeeb6ea4ee640e21818b6eba5081e587304_Playing Card_Back Brown 2.png", + "name": "Playing Card_Back Brown 2.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Back Red 1.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Back Red 1.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/4ff2180e54ad5fe99a9d640f2c60942286941b87c696e2cfadbd6443a8c19b5e_Playing Card_Back Red 1.png", + "name": "Playing Card_Back Red 1.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Back Red 2.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Back Red 2.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/fdac3c95127abee6786eef00b03a15658d0801fc7f1c11fc6d165f5ddbc7761f_Playing Card_Back Red 2.png", + "name": "Playing Card_Back Red 2.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Clubs 02.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Clubs 02.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/1d01b932a889b44d89f2b96368f7b3fa3366e7ccb6de30bb22430133ca21bb42_Playing Card_Clubs 02.png", + "name": "Playing Card_Clubs 02.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Clubs 03.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Clubs 03.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/a59c3bc065a12015b69cad078fb3a74e2c18cf825be48cf69044010795482f45_Playing Card_Clubs 03.png", + "name": "Playing Card_Clubs 03.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Clubs 04.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Clubs 04.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/6e15b233c29d5f9b92c216d2dcba39a2f83720c3fc732dfa2abddabb332ba85e_Playing Card_Clubs 04.png", + "name": "Playing Card_Clubs 04.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Clubs 05.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Clubs 05.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/37e6767258064bf343185e32a2878ab6f008acb4cdd737311267078e852b2a32_Playing Card_Clubs 05.png", + "name": "Playing Card_Clubs 05.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Clubs 06.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Clubs 06.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/cfdbccd7c1f67bfbbc04119d2df55fbe0411f82eef9c5779fdcce4e479ad3cde_Playing Card_Clubs 06.png", + "name": "Playing Card_Clubs 06.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Clubs 07.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Clubs 07.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/c76e0e677e1ddd6dd05848f51c49e0f4c87711c226b7deb94357de22282fd268_Playing Card_Clubs 07.png", + "name": "Playing Card_Clubs 07.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Clubs 08.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Clubs 08.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/245935a2431ddf72509e0f3cd12ec3b0229aa005310eed111818da8265760fbc_Playing Card_Clubs 08.png", + "name": "Playing Card_Clubs 08.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Clubs 09.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Clubs 09.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/352eb13ac79b60b8c650601b6495e0558de553604ce1124d0bdf75d6087d6049_Playing Card_Clubs 09.png", + "name": "Playing Card_Clubs 09.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Clubs 10.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Clubs 10.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/fb330a065248677911f6b14f8294e03777cb585c19e4aacabb53109c335d3575_Playing Card_Clubs 10.png", + "name": "Playing Card_Clubs 10.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Clubs A.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Clubs A.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/f97a1e91ad3f63787c6175b116d4999c14dc462a2e287494142a8b01f5c43d06_Playing Card_Clubs A.png", + "name": "Playing Card_Clubs A.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Clubs J.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Clubs J.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/6c143342e09e253c9d0446c2e59b27faadf330b15f1657d45a07850bb598a38a_Playing Card_Clubs J.png", + "name": "Playing Card_Clubs J.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Clubs K.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Clubs K.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/600a46d080fa5e086ef3c1a1f8515f8232273845f39ae25996d2db959b7f229c_Playing Card_Clubs K.png", + "name": "Playing Card_Clubs K.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Clubs Q.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Clubs Q.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/7c7d22520dd102f71744c6689c5b0a47417e4765e18c7789400da1676d538706_Playing Card_Clubs Q.png", + "name": "Playing Card_Clubs Q.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Diamond 02.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Diamond 02.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/d7d5824c27e5521de286fa6a9d294d9c3827ca003367dc9bb0c8e1c4d9ba45b7_Playing Card_Diamond 02.png", + "name": "Playing Card_Diamond 02.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Diamond 03.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Diamond 03.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/03bbe9833d1ff0faefacf07001f57db2bb2c82412b093ec0ce6c1fdc05034c7c_Playing Card_Diamond 03.png", + "name": "Playing Card_Diamond 03.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Diamond 04.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Diamond 04.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/b2a86bc52b75ab9fbaabd7041f7900e749eeeeaf46d90ebbac0abb4b9843df42_Playing Card_Diamond 04.png", + "name": "Playing Card_Diamond 04.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Diamond 05.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Diamond 05.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/673ac4ebb82a45d89b321a744a96fc9703f4cd6e69d2d0bd442372dfcece2c75_Playing Card_Diamond 05.png", + "name": "Playing Card_Diamond 05.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Diamond 06.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Diamond 06.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/0b0eb2394c93d49b4f978cfdf88a7dcfb796f16207d898acf9e3a8decd9bfc87_Playing Card_Diamond 06.png", + "name": "Playing Card_Diamond 06.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Diamond 07.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Diamond 07.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/942705e1185fb80c12ddbcd095f168495e938c44509f7832fcdbe186e66a914a_Playing Card_Diamond 07.png", + "name": "Playing Card_Diamond 07.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Diamond 08.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Diamond 08.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/71811d6f57968e799c534df2df62762203ec073b9375d4026f8f4a1c04380421_Playing Card_Diamond 08.png", + "name": "Playing Card_Diamond 08.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Diamond 09.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Diamond 09.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/82a1fca7de0ad3af5222008612f09081958a06aa5af07ef9d7000b293fd40162_Playing Card_Diamond 09.png", + "name": "Playing Card_Diamond 09.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Diamond 10.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Diamond 10.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/3ca86ef6e65fef7170ca7d3792ab14f1f52f7094cfac978210e51b42d560aaa8_Playing Card_Diamond 10.png", + "name": "Playing Card_Diamond 10.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Diamond A.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Diamond A.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/1907fdccf9cf1727959f8e554657c39fc7897cf6342a6577906096f333cc993a_Playing Card_Diamond A.png", + "name": "Playing Card_Diamond A.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Diamond J.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Diamond J.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/b2db6ddff7ce5fa38afaf11255a080ace2d9b8fa6983c7734f7ba432bb91022c_Playing Card_Diamond J.png", + "name": "Playing Card_Diamond J.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Diamond K.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Diamond K.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/8cf19bd2048868217422ac1702a810e64ac5a1241c815dd43a6d86bc20228e06_Playing Card_Diamond K.png", + "name": "Playing Card_Diamond K.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Diamond Q.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Diamond Q.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/62666ce404454229888659d2aa76ece6e40d69a0aed746b291341939580fde62_Playing Card_Diamond Q.png", + "name": "Playing Card_Diamond Q.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Hearts 02.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Hearts 02.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/6759af6b5226a83322915bfed1b6cecd8efcad620b96ba0d63bbe9689c8db42c_Playing Card_Hearts 02.png", + "name": "Playing Card_Hearts 02.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Hearts 03.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Hearts 03.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/ec5f7db10e42a1d9e6c7d246193f7db5e507bc1b1ec561dc9f0aa60ecd04616b_Playing Card_Hearts 03.png", + "name": "Playing Card_Hearts 03.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Hearts 04.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Hearts 04.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/e356db36b32f4a7e7e7969504caeda79b8f9ee552b3518151c437ba663684273_Playing Card_Hearts 04.png", + "name": "Playing Card_Hearts 04.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Hearts 05.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Hearts 05.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/a337b7ec298507602bfd253623e4678e456ab6af70a39c938e6d07e642265a78_Playing Card_Hearts 05.png", + "name": "Playing Card_Hearts 05.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Hearts 06.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Hearts 06.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/6d06b53368b61e1d3237a9e555e041886db74e4b7cfd7b713b523256dc0a8274_Playing Card_Hearts 06.png", + "name": "Playing Card_Hearts 06.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Hearts 07.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Hearts 07.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/8cde3a832de612c2680c0ffa3b4bd094ace4d6073a1be2034370a0298677f626_Playing Card_Hearts 07.png", + "name": "Playing Card_Hearts 07.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Hearts 08.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Hearts 08.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/5607ed43a0667f9d88a28dd37d879588206da0b0e17865e592fab5c856a3a642_Playing Card_Hearts 08.png", + "name": "Playing Card_Hearts 08.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Hearts 09.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Hearts 09.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/a4a2b7ad1e25c76b520368fd96cb44f33024218b5bc5d499ac997ebbfdb56cd5_Playing Card_Hearts 09.png", + "name": "Playing Card_Hearts 09.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Hearts 10.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Hearts 10.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/ffcff1a17db2fe8890a788bd3069ff71621e036ace4aad2c73f4af0d6771e4f0_Playing Card_Hearts 10.png", + "name": "Playing Card_Hearts 10.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Hearts A.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Hearts A.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/1266821f3f5a138d1b387d4eb18b61bd802e74af9fd248acdd4c8308a5b6bf74_Playing Card_Hearts A.png", + "name": "Playing Card_Hearts A.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Hearts J.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Hearts J.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/5e4cfddc34a3bdc59e72c802faf36c574258b974fd41451525e0177a4e850ffc_Playing Card_Hearts J.png", + "name": "Playing Card_Hearts J.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Hearts K.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Hearts K.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/6463be18b9a44c4224fe12d34d8afc6f99e6dc39e6fac033e04f7295b331bc08_Playing Card_Hearts K.png", + "name": "Playing Card_Hearts K.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Hearts Q.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Hearts Q.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/0de8c8afc90d4084ad528060b7b01d22ec4bf68e6fe13d44c02e859445b89836_Playing Card_Hearts Q.png", + "name": "Playing Card_Hearts Q.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Joker Black.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Joker Black.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/ed5a7db38327142a6d26f1122ee0180f671d99fb72cad242a0fce2b7ca972eaa_Playing Card_Joker Black.png", + "name": "Playing Card_Joker Black.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Joker Red.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Joker Red.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/c694c06b970aa68c106844440df67c138b851141c43a8f2e717604c1c0807682_Playing Card_Joker Red.png", + "name": "Playing Card_Joker Red.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Spades 02.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Spades 02.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/c93fce6db7fb23b3a6e2736c364ec796c708db24a204de1daf4a670a7220d0b0_Playing Card_Spades 02.png", + "name": "Playing Card_Spades 02.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Spades 03.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Spades 03.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/c1c38935c1e8cc0a9442858f317dc370dfad0aa142354ecb33b7dc2c017f91c3_Playing Card_Spades 03.png", + "name": "Playing Card_Spades 03.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Spades 04.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Spades 04.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/fa91978a59d726ac490a26f610523115f58e84e1c2ff7379698dbd454b4e108c_Playing Card_Spades 04.png", + "name": "Playing Card_Spades 04.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Spades 05.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Spades 05.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/2386553aae77dacdc3bdb5cb36d2418cb534779ea5ae5c50536c3b593f9ac173_Playing Card_Spades 05.png", + "name": "Playing Card_Spades 05.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Spades 06.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Spades 06.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/d524989c528da32a21b024f0a930d8b01a2900672d911216ce4fffbcea3187f5_Playing Card_Spades 06.png", + "name": "Playing Card_Spades 06.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Spades 07.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Spades 07.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/f070b7efd25a8d1f303904f95611daf1cc24f0205c25fca92c8b93e787b21ee1_Playing Card_Spades 07.png", + "name": "Playing Card_Spades 07.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Spades 08.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Spades 08.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/18f2fc0be76a66e7c5ed5774371850f90e62173c23f328b44fd5d912a0f466aa_Playing Card_Spades 08.png", + "name": "Playing Card_Spades 08.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Spades 09.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Spades 09.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/3634469f717dae7070b4c5abd88412879706f44fa13fd0f2ad239f129302eaa3_Playing Card_Spades 09.png", + "name": "Playing Card_Spades 09.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Spades 10.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Spades 10.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/10cdac8fed60ae31c662be905c8c32321670af7eca3ac24e59905a1b8b6fc1f4_Playing Card_Spades 10.png", + "name": "Playing Card_Spades 10.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Spades A.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Spades A.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/d6c8fa7a19720e25768ac3cdddc4790cbd56ff04e861f5cc06157491289efb52_Playing Card_Spades A.png", + "name": "Playing Card_Spades A.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Spades J.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Spades J.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/136684a4f36434065d973b1ece901950de48a869b9fc16e07df140cdd702bc92_Playing Card_Spades J.png", + "name": "Playing Card_Spades J.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Spades K.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Spades K.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/80dea9fc24669c302a3d28f41c35765295c1d16098b99d123257ead12cdddd9a_Playing Card_Spades K.png", + "name": "Playing Card_Spades K.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Playing Card_Spades Q.png", + "kind": "image", + "metadata": "", + "name": "Playing Card_Spades Q.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Sylly/Large/88c238e3e05549f19877a9a2788496d7fa198ebb3270dd5099373cbd8ed1b71c_Playing Card_Spades Q.png", + "name": "Playing Card_Spades Q.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Energy Bar.png", + "kind": "image", + "metadata": "", + "name": "Energy Bar.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Space Shooter by Pixel boy/Hud/Bar/5e8415764fad4e64bf3d6eb76c48ee5a89901545b96795315ec70b17fb0e1f7f_Energy Bar.png", + "name": "Energy Bar.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Health Bar2.png", + "kind": "image", + "metadata": "", + "name": "Health Bar.png2", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Western FPS 2D/Hud/Bar/ec41092214e9b23d9992e2885835085c8e5457268b3e054599e799cc8074fc52_Health Bar.png", + "name": "Health Bar.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Health Bar Box2.png", + "kind": "image", + "metadata": "", + "name": "Health Bar Box.png2", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Western FPS 2D/Hud/Bar/e6e666707e06c429f6dd475d85d575a5b69a1dc27369a8f1d06a747afa2f1264_Health Bar Box.png", + "name": "Health Bar Box.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Bar Frame_No Shadow.png", + "kind": "image", + "metadata": "", + "name": "Bar Frame_No Shadow.png", + "smoothed": true, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Interface/PX UI Basic/865ff85ac660aa3ab3f0a1a849b6fba686bc194b14615199485296be3f0b3538_Bar Frame_No Shadow.png", + "name": "Bar Frame_No Shadow.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Bar Frame_Shadow.png", + "kind": "image", + "metadata": "", + "name": "Bar Frame_Shadow.png", + "smoothed": true, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Interface/PX UI Basic/f5d82b20b6d272c55e875464502e683c31d7c94df786570897ac8e0b83161d82_Bar Frame_Shadow.png", + "name": "Bar Frame_Shadow.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Blue bar.png", + "kind": "image", + "metadata": "", + "name": "Blue bar.png", + "smoothed": true, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Interface/PX UI Basic/40832527439da97fe46056f6934206f3d943568e68a955f6ff29dbe882a1c083_Blue bar.png", + "name": "Blue bar.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Heart-1-0.png", + "kind": "image", + "metadata": "", + "name": "assets\\Heart-1-0.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/Heart-1-2.png", + "kind": "image", + "metadata": "", + "name": "assets\\Heart-1-2.png", + "smoothed": true, + "userAdded": true + } + ], + "resourceFolders": [] + }, + "objects": [], + "objectsGroups": [], + "variables": [], + "layouts": [ + { + "b": 0, + "disableInputWhenNotFocused": true, + "mangledName": "Sprite_32and_32Tiled_32Sprite", + "name": "Sprite and Tiled Sprite", + "r": 0, + "standardSortMethod": true, + "stopSoundsOnStartup": true, + "title": "", + "v": 0, + "uiSettings": { + "grid": true, + "gridType": "rectangular", + "gridWidth": 8, + "gridHeight": 8, + "gridOffsetX": 0, + "gridOffsetY": 0, + "gridColor": 10401023, + "gridAlpha": 0.2, + "snap": true, + "zoomFactor": 1.240000000000002, + "windowMask": false + }, + "objectsGroups": [ + { + "name": "Buttons", + "objects": [ + { + "name": "PlusKey" + }, + { + "name": "MinusKey" + } + ] + }, + { + "name": "Sprites", + "objects": [ + { + "name": "Heart" + }, + { + "name": "Heart_Pixel" + }, + { + "name": "Key" + }, + { + "name": "Arrow" + }, + { + "name": "Bomb" + }, + { + "name": "BlueBar" + }, + { + "name": "PlayingCard" + } + ] + }, + { + "name": "TiledSprites", + "objects": [ + { + "name": "HealthBarFill" + }, + { + "name": "EnergyBarFill" + }, + { + "name": "Heart_Pixel_Tiled" + }, + { + "name": "Tiled_ResourceBar" + } + ] + } + ], + "variables": [], + "instances": [ + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Title_Text", + "persistentUuid": "29ae792c-1331-430c-aadf-70fa8d9e36d6", + "width": 0, + "x": 208, + "y": 8, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Heart", + "persistentUuid": "0c4d4e97-0b53-4f05-8468-7d8b7a7fa8dd", + "width": 0, + "x": 128, + "y": 392, + "zOrder": 13, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 16, + "layer": "", + "name": "TiledEmptyUiHeart", + "persistentUuid": "a1be0010-4eb7-4e54-a651-7d77ae646149", + "width": 161, + "x": 504, + "y": 312, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 16, + "layer": "", + "name": "Tiled_ResourceBar", + "persistentUuid": "be98771a-978f-443c-80e8-197098aef457", + "width": 15, + "x": 505, + "y": 312, + "zOrder": 15, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 16, + "layer": "", + "name": "HealthBarFill", + "persistentUuid": "1e7ce7cc-5104-4c95-95a0-343f3d97e140", + "width": 8, + "x": 504, + "y": 356, + "zOrder": 17, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 62, + "layer": "", + "name": "HeartPixel_9patch", + "persistentUuid": "d0461165-f597-4574-b3e8-8e78014d1c61", + "width": 208, + "x": 503, + "y": 450, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 19, + "layer": "", + "name": "Heart_Pixel_Tiled", + "persistentUuid": "63560c9a-582e-4a76-9560-e929ab4a1fdf", + "width": 80, + "x": 543, + "y": 472, + "zOrder": 21, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Heart_Pixel", + "persistentUuid": "19dc3b0f-137e-428c-ae37-9a64934186c6", + "width": 0, + "x": 176, + "y": 462, + "zOrder": 19, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "SpriteResourceBar_Text", + "persistentUuid": "fc5e8093-d3c3-4114-9b18-685091e1055e", + "width": 0, + "x": 136, + "y": 561, + "zOrder": 22, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "TiledSpriteResourceBar_Text", + "persistentUuid": "6337ed4e-77e0-4cf5-b4cd-b4770b6396e5", + "width": 0, + "x": 488, + "y": 561, + "zOrder": 23, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 62, + "layer": "", + "name": "HeartPixel_9patch", + "persistentUuid": "4598dbb6-59cf-4253-9998-1c3b796491f3", + "width": 208, + "x": 136, + "y": 440, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Bomb", + "persistentUuid": "70dc048d-f1b7-4ed5-8d6b-f8a54eb65201", + "width": 0, + "x": 128, + "y": 360, + "zOrder": 24, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "PlusKey", + "persistentUuid": "75acefa2-30d2-45f3-8955-bdbcc059a348", + "width": 0, + "x": 422, + "y": 86, + "zOrder": 25, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "MinusKey", + "persistentUuid": "68d80c16-a4fc-4793-aa38-eb458b7c1a28", + "width": 0, + "x": 326, + "y": 90, + "zOrder": 26, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Arrow", + "persistentUuid": "7d2f81fb-834d-4237-8dbb-9fa7cceb316c", + "width": 0, + "x": 131, + "y": 152, + "zOrder": 28, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "ChangeAnimation_Text", + "persistentUuid": "9f9d682b-8f01-4be1-8309-47306157a1b4", + "width": 0, + "x": 37.05882263183594, + "y": 296, + "zOrder": 31, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "PartialOpacity_Text", + "persistentUuid": "6b1134a9-2476-4e8d-a028-928ceb707c67", + "width": 0, + "x": 48, + "y": 366, + "zOrder": 32, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "HideSprite_Text", + "persistentUuid": "9ddf0239-b395-4c47-97be-1c1c609e58d9", + "width": 0, + "x": 40, + "y": 476, + "zOrder": 33, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "TintColor_Text", + "persistentUuid": "18cc456d-0b24-48da-9237-60dce916d4ae", + "width": 0, + "x": 48, + "y": 230, + "zOrder": 34, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "NoMaximum_Text", + "persistentUuid": "8b35a177-ffc1-455f-a122-c2b3ffde519f", + "width": 0, + "x": 40, + "y": 161, + "zOrder": 35, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 40, + "layer": "", + "name": "Key", + "persistentUuid": "9fb75cfe-d5b8-4db6-94b5-c78e95ca858a", + "width": 42.94117736816406, + "x": 141.05882263183594, + "y": 296, + "zOrder": 36, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 12, + "layer": "", + "name": "EnergyBarFill", + "persistentUuid": "8cba0615-b7ce-4abe-9f1c-1d1b439f1408", + "width": 7, + "x": 505, + "y": 407, + "zOrder": 37, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 24, + "layer": "", + "name": "HealthBarBox", + "persistentUuid": "5bc7c3f2-900c-4e32-b8cb-a6f2179f9638", + "width": 176, + "x": 496, + "y": 352, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 26, + "layer": "", + "name": "EnergyBar", + "persistentUuid": "2513f81b-326c-4c90-9245-ca056617c153", + "width": 176, + "x": 496, + "y": 400, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 19, + "layer": "", + "name": "BlueBar", + "persistentUuid": "a8584a67-d8eb-4dfa-b80a-349641a14679", + "width": 8, + "x": 140, + "y": 518, + "zOrder": 39, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 35, + "layer": "", + "name": "BarFrame", + "persistentUuid": "c43eca46-b733-4930-802a-6187c1c5f0df", + "width": 200, + "x": 136, + "y": 510, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 50.873779296875, + "layer": "", + "name": "PlayingCard", + "persistentUuid": "ab3c143c-0030-4f96-8432-3831a30d26a6", + "width": 37.97100830078125, + "x": 128, + "y": 221.126220703125, + "zOrder": 40, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + } + ], + "objects": [ + { + "assetStoreId": "", + "name": "Health_Bar", + "tags": "", + "type": "PrimitiveDrawing::Drawer", + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "ResourceBar_ShapePainter", + "type": "ResourceBar::ResourceBar_ShapePainter", + "ValueMin": 0, + "ValueMax": 1, + "TickSpacing": 0, + "BarLength": 200, + "BarThickness": 16, + "InactiveBarColor": "11;255;0", + "InactiveBarOpacity": 96, + "ActiveBarColor": " 11;255;0", + "ActiveBarOpacity": 255, + "RoundedBar": true, + "Value": 0, + "ThumbOffset": 0, + "NeedRedraw": true + } + ], + "fillOpacity": 255, + "outlineSize": 1, + "outlineOpacity": 255, + "fillColor": { + "b": 255, + "g": 255, + "r": 255 + }, + "outlineColor": { + "b": 0, + "g": 0, + "r": 0 + }, + "absoluteCoordinates": false, + "clearBetweenFrames": true + }, + { + "assetStoreId": "", + "name": "MiniHealth_Bar", + "tags": "", + "type": "PrimitiveDrawing::Drawer", + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "ResourceBar_ShapePainter", + "type": "ResourceBar::ResourceBar_ShapePainter", + "ValueMin": 0, + "ValueMax": 1, + "TickSpacing": 0, + "BarLength": 50, + "BarThickness": 4, + "InactiveBarColor": "11;255;0", + "InactiveBarOpacity": 96, + "ActiveBarColor": " 11;255;0", + "ActiveBarOpacity": 255, + "Value": 0, + "ThumbOffset": 0, + "NeedRedraw": true + }, + { + "name": "Sticker", + "type": "Sticker::Sticker", + "OnlyFollowPosition": true + } + ], + "fillOpacity": 255, + "outlineSize": 1, + "outlineOpacity": 255, + "fillColor": { + "b": 255, + "g": 255, + "r": 255 + }, + "outlineColor": { + "b": 0, + "g": 0, + "r": 0 + }, + "absoluteCoordinates": false, + "clearBetweenFrames": true + }, + { + "assetStoreId": "", + "name": "Shield_Bar", + "tags": "", + "type": "PrimitiveDrawing::Drawer", + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "ResourceBar_ShapePainter", + "type": "ResourceBar::ResourceBar_ShapePainter", + "ValueMin": 0, + "ValueMax": 1, + "TickSpacing": 0, + "ThumbShape": "circle", + "ThumbWidth": 20, + "ThumbHeight": 20, + "ThumbColor": " 24;119;211", + "ThumbOpacity": 255, + "BarLength": 200, + "BarThickness": 16, + "InactiveBarColor": "144;19;254", + "InactiveBarOpacity": 96, + "ActiveBarColor": " 144;19;254", + "ActiveBarOpacity": 255, + "HaloRadius": 24, + "HaloOpacityHover": 32, + "HaloOpacityClick": 64, + "RoundedBar": true, + "Enabled": true, + "IsBeingDragged": false, + "Value": 0, + "ThumbOffset": 0, + "NeedRedraw": true, + "IsHovered": false, + "MouseX": 0, + "MouseY": 0, + "CurrentHaloRadius": 0, + "HaloGrowSpeed": 0.2, + "TargetHaloRadius": 0.19999992847442627 + } + ], + "fillOpacity": 255, + "outlineSize": 1, + "outlineOpacity": 255, + "fillColor": { + "b": 255, + "g": 255, + "r": 255 + }, + "outlineColor": { + "b": 0, + "g": 0, + "r": 0 + }, + "absoluteCoordinates": false, + "clearBetweenFrames": true + }, + { + "assetStoreId": "", + "name": "ResourceMouseX_Bar", + "tags": "", + "type": "PrimitiveDrawing::Drawer", + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "ResourceBar_ShapePainter", + "type": "ResourceBar::ResourceBar_ShapePainter", + "ValueMin": 0, + "ValueMax": 1, + "TickSpacing": 0, + "ThumbShape": "circle", + "ThumbWidth": 20, + "ThumbHeight": 20, + "ThumbColor": "248;231;28", + "ThumbOpacity": 255, + "BarLength": 200, + "BarThickness": 16, + "InactiveBarColor": "248;231;28", + "InactiveBarOpacity": 96, + "ActiveBarColor": "248;231;28", + "ActiveBarOpacity": 255, + "HaloRadius": 24, + "HaloOpacityHover": 32, + "HaloOpacityClick": 64, + "RoundedBar": false, + "Enabled": true, + "IsBeingDragged": false, + "Value": 0, + "ThumbOffset": 0, + "NeedRedraw": true, + "IsHovered": false, + "MouseX": 0, + "MouseY": 0, + "CurrentHaloRadius": 0, + "HaloGrowSpeed": 0.2, + "TargetHaloRadius": 0.19999992847442627 + } + ], + "fillOpacity": 255, + "outlineSize": 1, + "outlineOpacity": 255, + "fillColor": { + "b": 255, + "g": 255, + "r": 255 + }, + "outlineColor": { + "b": 0, + "g": 0, + "r": 0 + }, + "absoluteCoordinates": false, + "clearBetweenFrames": true + }, + { + "assetStoreId": "48a2d179a1921276abe3f99ce3cf195fa7c310bc511fa215d9647c3fb9027921", + "name": "Fly", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "Health", + "type": "Health::Health", + "Health": 100, + "DamageCooldown": 0, + "MaxHealth": 100, + "IsJustDamaged": false, + "HealthRegenRate": 0, + "HealthRegenDelay": 0, + "AllowOverHealing": false, + "HitAtLeastOnce": false + }, + { + "name": "ShakeObject_PositionAngleScale", + "type": "ShakeObject::ShakeObject_PositionAngleScale" + }, + { + "name": "Shield", + "type": "Health::Shield", + "RequireHealth": "Health", + "MaxShieldPoints": 30, + "ShieldDuration": 5, + "ShieldPoints": 0, + "ShieldRegenRate": 0, + "ShieldBlocksExcessDamage": false, + "ShieldRegenDelay": 0, + "RegenShieldWhenZeroPoints": false, + "IsShieldJustDamaged": false + } + ], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.05000000074505806, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "Fly_1.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": false, + "name": "centre", + "x": 57.500244140625, + "y": 48.2830924987793 + }, + "customCollisionMask": [ + [ + { + "x": 35, + "y": 25 + }, + { + "x": 80, + "y": 25 + }, + { + "x": 80, + "y": 70 + }, + { + "x": 35, + "y": 70 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "Fly_2.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": false, + "name": "centre", + "x": 57.500244140625, + "y": 48.2830924987793 + }, + "customCollisionMask": [ + [ + { + "x": 35, + "y": 25 + }, + { + "x": 80, + "y": 25 + }, + { + "x": 80, + "y": 70 + }, + { + "x": 35, + "y": 70 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "Fly_3.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": false, + "name": "centre", + "x": 57.500244140625, + "y": 48.2830924987793 + }, + "customCollisionMask": [ + [ + { + "x": 35, + "y": 25 + }, + { + "x": 80, + "y": 25 + }, + { + "x": 80, + "y": 70 + }, + { + "x": 35, + "y": 70 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "Fly_4.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": false, + "name": "centre", + "x": 57.500244140625, + "y": 48.2830924987793 + }, + "customCollisionMask": [ + [ + { + "x": 35, + "y": 25 + }, + { + "x": 80, + "y": 25 + }, + { + "x": 80, + "y": 70 + }, + { + "x": 35, + "y": 70 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "Fly_5.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": false, + "name": "centre", + "x": 57.500244140625, + "y": 48.2830924987793 + }, + "customCollisionMask": [ + [ + { + "x": 35, + "y": 25 + }, + { + "x": 80, + "y": 25 + }, + { + "x": 80, + "y": 70 + }, + { + "x": 35, + "y": 70 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "Fly_6.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": false, + "name": "centre", + "x": 57.500244140625, + "y": 48.2830924987793 + }, + "customCollisionMask": [ + [ + { + "x": 35, + "y": 25 + }, + { + "x": 80, + "y": 25 + }, + { + "x": 80, + "y": 70 + }, + { + "x": 35, + "y": 70 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "Fly_7.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": false, + "name": "centre", + "x": 57.500244140625, + "y": 48.2830924987793 + }, + "customCollisionMask": [ + [ + { + "x": 35, + "y": 25 + }, + { + "x": 80, + "y": 25 + }, + { + "x": 80, + "y": 70 + }, + { + "x": 35, + "y": 70 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "Fly_8.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": false, + "name": "centre", + "x": 57.500244140625, + "y": 48.2830924987793 + }, + "customCollisionMask": [ + [ + { + "x": 35, + "y": 25 + }, + { + "x": 80, + "y": 25 + }, + { + "x": 80, + "y": 70 + }, + { + "x": 35, + "y": 70 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "Fly_9.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": false, + "name": "centre", + "x": 57.500244140625, + "y": 48.2830924987793 + }, + "customCollisionMask": [ + [ + { + "x": 35, + "y": 25 + }, + { + "x": 80, + "y": 25 + }, + { + "x": 80, + "y": 70 + }, + { + "x": 35, + "y": 70 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "Fly_10.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": false, + "name": "centre", + "x": 57.500244140625, + "y": 48.2830924987793 + }, + "customCollisionMask": [ + [ + { + "x": 35, + "y": 25 + }, + { + "x": 80, + "y": 25 + }, + { + "x": 80, + "y": 70 + }, + { + "x": 35, + "y": 70 + } + ] + ] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "574655a4565bd983af8f5dd98e0fd8cda3bd67cf929c00d3db317e898322e06b", + "name": "Star", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "LargeNarrow", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Star_LargeNarrow.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "LargeWide", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Star_LargeWide.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Medium", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Star_Medium.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Small", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Star_Small.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "8d92592738465177b86ec18299ef6e6394ae24eeb7a7d6dfdcbbdb55fab902aa", + "name": "BlueLaser01", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Blue laser (01).png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "794ab341df538c9b3bdad418dfdcccc7be5d90f3d0b5929d6d528a542c6ed3ae", + "name": "SilverShield", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [ + { + "effectType": "Outline", + "name": "Effect", + "doubleParameters": { + "padding": 2, + "thickness": 2 + }, + "stringParameters": { + "color": "255;255;255" + }, + "booleanParameters": {} + } + ], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Silver shield.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 14.592423439025879, + "y": 15.103429794311523 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "d2bc2d266f5bb666ef68023abc14f51bc8fe8b5222af931efa378ac10c50f98a", + "name": "MeteorDetailed", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "Large", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "Meteor Detailed_Large.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 65.07723999023438, + "y": 63.82252502441406 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 20, + "y": 20 + }, + { + "x": 110, + "y": 20 + }, + { + "x": 110, + "y": 110 + }, + { + "x": 20, + "y": 110 + } + ] + ] + } + ] + } + ] + }, + { + "name": "Small", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "Meteor Detailed_Small.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 65.07723999023438, + "y": 63.82252502441406 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 20, + "y": 20 + }, + { + "x": 110, + "y": 20 + }, + { + "x": 110, + "y": 110 + }, + { + "x": 20, + "y": 110 + } + ] + ] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "a1e62f5a19d1fe476e2ad0b8977768d020cc1dc55423427f79a486664cebb631", + "name": "UpgradedPotionBlue", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "No Shadow", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Upgraded Potion Blue_No Shadow.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 15.793042182922363, + "y": 15.89681625366211 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Shadow", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Upgraded Potion Blue_Shadow.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 15.793042182922363, + "y": 15.89681625366211 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "c2ce913ddbcd055c4e49a1c01b63aff1a3d59e4e1c1845db4c38aedda3712d3a", + "name": "Moon", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "Sticker", + "type": "Sticker::Sticker", + "OnlyFollowPosition": false + } + ], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Moon.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "", + "bold": true, + "italic": false, + "name": "SpriteResourceBar_Text", + "smoothed": true, + "tags": "", + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "effects": [], + "behaviors": [], + "string": "Sprite Resource Bars", + "font": "", + "characterSize": 20, + "color": { + "b": 255, + "g": 255, + "r": 255 + } + }, + { + "assetStoreId": "", + "bold": true, + "italic": false, + "name": "ChangeAnimation_Text", + "smoothed": true, + "tags": "", + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "effects": [], + "behaviors": [], + "string": " Change\nAnimation", + "font": "", + "characterSize": 15, + "color": { + "b": 255, + "g": 255, + "r": 255 + } + }, + { + "assetStoreId": "", + "bold": true, + "italic": false, + "name": "HideSprite_Text", + "smoothed": true, + "tags": "", + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "effects": [], + "behaviors": [], + "string": " Zero\nOpacity", + "font": "", + "characterSize": 15, + "color": { + "b": 255, + "g": 255, + "r": 255 + } + }, + { + "assetStoreId": "", + "bold": true, + "italic": false, + "name": "PartialOpacity_Text", + "smoothed": true, + "tags": "", + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "effects": [], + "behaviors": [], + "string": " Partial\nOpacity", + "font": "", + "characterSize": 15, + "color": { + "b": 255, + "g": 255, + "r": 255 + } + }, + { + "assetStoreId": "", + "bold": true, + "italic": false, + "name": "TintColor_Text", + "smoothed": true, + "tags": "", + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "effects": [], + "behaviors": [], + "string": " Tint\nColor", + "font": "", + "characterSize": 15, + "color": { + "b": 255, + "g": 255, + "r": 255 + } + }, + { + "assetStoreId": "", + "bold": true, + "italic": false, + "name": "NoMaximum_Text", + "smoothed": true, + "tags": "", + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "effects": [], + "behaviors": [], + "string": " No\nMaximum", + "font": "", + "characterSize": 15, + "color": { + "b": 255, + "g": 255, + "r": 255 + } + }, + { + "assetStoreId": "", + "bold": true, + "italic": false, + "name": "TiledSpriteResourceBar_Text", + "smoothed": true, + "tags": "", + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "effects": [], + "behaviors": [], + "string": "Tiled Sprite Resource Bars", + "font": "", + "characterSize": 20, + "color": { + "b": 255, + "g": 255, + "r": 255 + } + }, + { + "assetStoreId": "", + "bold": true, + "italic": false, + "name": "ResourceMouseX_Text", + "smoothed": true, + "tags": "", + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "effects": [], + "behaviors": [], + "string": "Resource \n(Mouse X)", + "font": "", + "characterSize": 30, + "color": { + "b": 255, + "g": 255, + "r": 255 + } + }, + { + "assetStoreId": "", + "bold": true, + "italic": false, + "name": "Title_Text", + "smoothed": true, + "tags": "", + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "effects": [], + "behaviors": [], + "string": "Extension: Resource Bar", + "font": "", + "characterSize": 30, + "color": { + "b": 255, + "g": 255, + "r": 255 + } + }, + { + "assetStoreId": "", + "name": "ResourceBarNew", + "tags": "", + "type": "PrimitiveDrawing::Drawer", + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "ResourceBar_ShapePainter", + "type": "ResourceBar_ShapePainter::ResourceBar_ShapePainter", + "ValueMin": 0, + "ValueMax": 1, + "TickSpacing": 0, + "BarLength": 200, + "BarThickness": 4, + "InactiveBarColor": "11;255;0", + "InactiveBarOpacity": 96, + "ActiveBarColor": "11;255;0", + "ActiveBarOpacity": 255, + "RoundedBar": false, + "Value": 0, + "ThumbOffset": 0, + "NeedRedraw": true + } + ], + "fillOpacity": 255, + "outlineSize": 1, + "outlineOpacity": 255, + "fillColor": { + "b": 255, + "g": 255, + "r": 255 + }, + "outlineColor": { + "b": 0, + "g": 0, + "r": 0 + }, + "absoluteCoordinates": false, + "clearBetweenFrames": true + }, + { + "assetStoreId": "8d524a624fbc72a1fd6c3975369a7cd55b8a52035887ef664bcd93bf8e273881", + "name": "Heart", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "ResourceBar_Sprite", + "type": "ResourceBar::ResourceBar_Sprite", + "StartingUnits": 3, + "CurrentUnits": 3, + "MaxUnits": 3, + "UnitSpacing": 0, + "NextUnitToCreate": 0, + "HideEmptyUnits": false, + "EmptyUnitOpacity": 64, + "EmptyUnitAnimation": 0, + "EmptyColorTint": "255;255;255", + "ActiveUnitOpacity": 255, + "MaxQuantity": 5, + "StartingQuantity": 1, + "Quantity": 1 + } + ], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Emote Heart.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "8d524a624fbc72a1fd6c3975369a7cd55b8a52035887ef664bcd93bf8e273881", + "name": "Heart_Unit", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Emote Heart.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "752e405ef67d9f9d1bd36f9763f1b6fc05633d64700982c0f3118a25a32e39b2", + "height": 16, + "name": "TiledEmptyUiHeart", + "tags": "", + "texture": "tiled_Tiled Empty UI Heart.png", + "type": "TiledSpriteObject::TiledSprite", + "width": 16, + "variables": [], + "effects": [], + "behaviors": [] + }, + { + "assetStoreId": "abf51d082db5a117d9ee2e65299660f6787d47664e4571bad6db3075b3393c5f", + "height": 16, + "name": "Tiled_ResourceBar", + "tags": "", + "texture": "tiled_Tiled Filler UI Heart.png", + "type": "TiledSpriteObject::TiledSprite", + "width": 16, + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "ResourceBar_TiledSprite", + "type": "ResourceBar::ResourceBar_TiledSprite", + "StartingQuantity": 1, + "CurrentQuantity": 0, + "UnitWidth": 16, + "MaxQuantity": 10, + "Quantity": 1 + } + ] + }, + { + "assetStoreId": "45107bbfbc2b5cbc83e3785f802b99664a23d59e74414e332c9afafac63e1ca3", + "name": "HealthBar", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Health Bar.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "1f3dba67c868b7320572a6591d1d0418f23b7c132df0963cf77286a9149971d9", + "height": 16, + "name": "HealthBarFill", + "tags": "", + "texture": "tiled_Health Bar Fill.png", + "type": "TiledSpriteObject::TiledSprite", + "width": 128, + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "ResourceBar_TiledSprite", + "type": "ResourceBar::ResourceBar_TiledSprite", + "StartingQuantity": 10, + "CurrentQuantity": 0, + "UnitWidth": 8, + "MaxQuantity": 20, + "Quantity": 10 + } + ] + }, + { + "assetStoreId": "3bd9517a10ad3d98341eea33f0c139f08a1b04f26500e85ac49bb7f9e157a303", + "height": 12, + "name": "EnergyBarFill", + "tags": "", + "texture": "tiled_Energy Bar Fill.png", + "type": "TiledSpriteObject::TiledSprite", + "width": 128, + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "ResourceBar_TiledSprite", + "type": "ResourceBar::ResourceBar_TiledSprite", + "StartingQuantity": 10, + "CurrentQuantity": 0, + "UnitWidth": 8, + "MaxQuantity": 20, + "Quantity": 10 + } + ] + }, + { + "assetStoreId": "138ee716846635e3e0e5ab7b63752d1a36754f1ac874c70e1b5fa372d5a05474", + "bottomMargin": 6, + "height": 15, + "leftMargin": 11, + "name": "HealthBarBox", + "rightMargin": 9, + "tags": "", + "texture": "Health Bar Box.png", + "tiled": true, + "topMargin": 6, + "type": "PanelSpriteObject::PanelSprite", + "width": 96, + "variables": [], + "effects": [], + "behaviors": [] + }, + { + "assetStoreId": "0714257da345b4ec7de558ac0e42290362b85a79c97160c0e09636cd2fc31e3c", + "name": "Heart_Pixel", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "ResourceBar_Sprite", + "type": "ResourceBar::ResourceBar_Sprite", + "StartingQuantity": 0, + "CurrentQuantity": 0, + "MaxQuantity": 5, + "NextUnitToCreate": 0, + "EmptyUnitColorTint": "", + "EmptyUnitOpacity": 0, + "EmptyUnitAnimationNumber": 0, + "ActiveUnitOpacity": 255, + "ActiveUnitColorTint": "255;255;255", + "ActiveUnitAnimationNumber": 0, + "Quantity": 1 + } + ], + "animations": [ + { + "name": "Heart", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "assets\\Heart-1-0.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "0714257da345b4ec7de558ac0e42290362b85a79c97160c0e09636cd2fc31e3c", + "name": "Heart_Pixel_Unit", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "Heart", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "assets\\Heart-1-2.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "", + "bottomMargin": 0, + "height": 62, + "leftMargin": 64, + "name": "HeartPixel_9patch", + "rightMargin": 64, + "tags": "", + "texture": "Health Bar.png", + "tiled": true, + "topMargin": 0, + "type": "PanelSpriteObject::PanelSprite", + "width": 154, + "variables": [], + "effects": [], + "behaviors": [] + }, + { + "assetStoreId": "", + "height": 19, + "name": "Heart_Pixel_Tiled", + "tags": "", + "texture": "assets\\Heart-1-1.png", + "type": "TiledSpriteObject::TiledSprite", + "width": 26, + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "ResourceBar_TiledSprite", + "type": "ResourceBar::ResourceBar_TiledSprite", + "StartingQuantity": 1, + "CurrentQuantity": 0, + "UnitWidth": 26, + "MaxQuantity": 5, + "Quantity": 1 + } + ] + }, + { + "assetStoreId": "902b8968115fd8572e4f7f6e83ad67a28c447b24e162ffc028333e716c54eb2f", + "name": "Bomb", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "ResourceBar_Sprite", + "type": "ResourceBar::ResourceBar_Sprite", + "StartingQuantity": 0, + "CurrentQuantity": 0, + "MaxQuantity": 5, + "NextUnitToCreate": 0, + "EmptyUnitColorTint": "255;255;255", + "EmptyUnitOpacity": 64, + "EmptyUnitAnimationNumber": 0, + "ActiveUnitOpacity": 255, + "ActiveUnitColorTint": "255;255;255", + "ActiveUnitAnimationNumber": 0, + "Quantity": 1 + } + ], + "animations": [ + { + "name": "No Shadow", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Bomb_No Shadow.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Shadow", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Bomb_Shadow.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "902b8968115fd8572e4f7f6e83ad67a28c447b24e162ffc028333e716c54eb2f", + "name": "Bomb_Unit", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "No Shadow", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Bomb_No Shadow.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Shadow", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Bomb_Shadow.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "996e07c73069934a868dc8212a0d7d959dfdd245af964998aad12cf57d252ac3", + "name": "PlusKey", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [ + { + "effectType": "Outline", + "name": "Effect", + "doubleParameters": { + "padding": 2, + "thickness": 2 + }, + "stringParameters": { + "color": "255;255;255" + }, + "booleanParameters": {} + } + ], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Plus Key.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 50, + "y": 50 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "90731de0069b2f3684767c392c6e4c48255a2647bc849497f25b672771290626", + "name": "MinusKey", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [ + { + "effectType": "Outline", + "name": "Effect", + "doubleParameters": { + "padding": 2, + "thickness": 2 + }, + "stringParameters": { + "color": "255;255;255" + }, + "booleanParameters": {} + } + ], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Minus Key.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 50, + "y": 50 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "34375c20ea59e09d2ee67954a88f957e3e54b1b6b11709c90358582201efd2fa", + "name": "Arrow", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "ResourceBar_Sprite", + "type": "ResourceBar::ResourceBar_Sprite", + "StartingQuantity": 1, + "CurrentQuantity": 0, + "MaxQuantity": 0, + "NextUnitToCreate": 0, + "EmptyUnitColorTint": "255;255;255", + "EmptyUnitOpacity": 64, + "EmptyUnitAnimationNumber": 0, + "ActiveUnitOpacity": 255, + "ActiveUnitColorTint": "255;255;255", + "ActiveUnitAnimationNumber": 0, + "Quantity": 1 + } + ], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Arrow.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "34375c20ea59e09d2ee67954a88f957e3e54b1b6b11709c90358582201efd2fa", + "name": "Arrow_Unit", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Arrow.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "fc2056e93d67c0f9c0bbc0b5fd35264bce619b4ea8d1896ba95cc8e91da5df7e", + "name": "Key", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "ResourceBar_Sprite", + "type": "ResourceBar::ResourceBar_Sprite", + "StartingQuantity": 1, + "CurrentQuantity": 0, + "MaxQuantity": 5, + "NextUnitToCreate": 0, + "EmptyUnitColorTint": "", + "EmptyUnitOpacity": 255, + "EmptyUnitAnimationNumber": 1, + "ActiveUnitOpacity": 255, + "ActiveUnitColorTint": "255;255;255", + "ActiveUnitAnimationNumber": 0, + "Quantity": 1 + } + ], + "animations": [ + { + "name": "Filled", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Key_Filled.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Outline", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Key_Outline.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "fc2056e93d67c0f9c0bbc0b5fd35264bce619b4ea8d1896ba95cc8e91da5df7e", + "name": "Key_Unit", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "Filled", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Key_Filled.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Outline", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Key_Outline.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "aa070e1502e7340c6d3e71f79a2ae05f56f9ad9f7cbb9d6cc587118ed28504aa", + "name": "PlayingCard", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "ResourceBar_Sprite", + "type": "ResourceBar::ResourceBar_Sprite", + "StartingQuantity": 1, + "CurrentQuantity": 0, + "MaxQuantity": 5, + "NextUnitToCreate": 0, + "EmptyUnitColorTint": "255;255;255", + "EmptyUnitOpacity": 255, + "EmptyUnitAnimationNumber": 0, + "ActiveUnitOpacity": 255, + "ActiveUnitColorTint": "74;144;226", + "ActiveUnitAnimationNumber": 0, + "Quantity": 1 + } + ], + "animations": [ + { + "name": "Clubs A", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Clubs A.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Hearts A", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Hearts A.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Back Blue 1", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Back Blue 1.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Clubs 02", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Clubs 02.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Back Blue 2", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Back Blue 2.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Back Brown 1", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Back Brown 1.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Back Brown 2", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Back Brown 2.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Back Red 1", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Back Red 1.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Back Red 2", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Back Red 2.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Clubs 03", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Clubs 03.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Clubs 04", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Clubs 04.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Clubs 05", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Clubs 05.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Clubs 06", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Clubs 06.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Clubs 07", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Clubs 07.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Clubs 08", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Clubs 08.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Clubs 09", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Clubs 09.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Clubs 10", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Clubs 10.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Clubs J", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Clubs J.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Clubs K", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Clubs K.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Clubs Q", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Clubs Q.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Diamond 02", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Diamond 02.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Diamond 03", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Diamond 03.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Diamond 04", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Diamond 04.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Diamond 05", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Diamond 05.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Diamond 06", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Diamond 06.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Diamond 07", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Diamond 07.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Diamond 08", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Diamond 08.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Diamond 09", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Diamond 09.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Diamond 10", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Diamond 10.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Diamond A", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Diamond A.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Diamond J", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Diamond J.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Diamond K", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Diamond K.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Diamond Q", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Diamond Q.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Hearts 02", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Hearts 02.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Hearts 03", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Hearts 03.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Hearts 04", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Hearts 04.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Hearts 05", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Hearts 05.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Hearts 06", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Hearts 06.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Hearts 07", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Hearts 07.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Hearts 08", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Hearts 08.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Hearts 09", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Hearts 09.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Hearts 10", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Hearts 10.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Hearts J", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Hearts J.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Hearts K", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Hearts K.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Hearts Q", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Hearts Q.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Joker Black", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Joker Black.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Joker Red", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Joker Red.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Spades 02", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Spades 02.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Spades 03", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Spades 03.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Spades 04", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Spades 04.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Spades 05", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Spades 05.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Spades 06", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Spades 06.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Spades 07", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Spades 07.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Spades 08", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Spades 08.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Spades 09", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Spades 09.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Spades 10", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Spades 10.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Spades A", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Spades A.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Spades J", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Spades J.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Spades K", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Spades K.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Spades Q", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Spades Q.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "aa070e1502e7340c6d3e71f79a2ae05f56f9ad9f7cbb9d6cc587118ed28504aa", + "name": "PlayingCard_Unit", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "Clubs A", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Clubs A.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Hearts A", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Hearts A.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Back Blue 1", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Back Blue 1.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Clubs 02", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Clubs 02.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Back Blue 2", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Back Blue 2.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Back Brown 1", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Back Brown 1.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Back Brown 2", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Back Brown 2.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Back Red 1", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Back Red 1.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Back Red 2", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Back Red 2.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Clubs 03", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Clubs 03.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Clubs 04", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Clubs 04.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Clubs 05", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Clubs 05.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Clubs 06", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Clubs 06.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Clubs 07", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Clubs 07.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Clubs 08", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Clubs 08.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Clubs 09", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Clubs 09.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Clubs 10", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Clubs 10.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Clubs J", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Clubs J.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Clubs K", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Clubs K.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Clubs Q", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Clubs Q.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Diamond 02", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Diamond 02.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Diamond 03", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Diamond 03.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Diamond 04", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Diamond 04.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Diamond 05", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Diamond 05.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Diamond 06", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Diamond 06.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Diamond 07", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Diamond 07.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Diamond 08", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Diamond 08.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Diamond 09", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Diamond 09.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Diamond 10", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Diamond 10.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Diamond A", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Diamond A.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Diamond J", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Diamond J.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Diamond K", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Diamond K.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Diamond Q", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Diamond Q.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Hearts 02", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Hearts 02.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Hearts 03", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Hearts 03.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Hearts 04", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Hearts 04.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Hearts 05", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Hearts 05.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Hearts 06", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Hearts 06.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Hearts 07", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Hearts 07.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Hearts 08", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Hearts 08.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Hearts 09", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Hearts 09.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Hearts 10", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Hearts 10.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Hearts J", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Hearts J.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Hearts K", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Hearts K.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Hearts Q", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Hearts Q.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Joker Black", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Joker Black.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Joker Red", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Joker Red.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Spades 02", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Spades 02.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Spades 03", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Spades 03.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Spades 04", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Spades 04.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Spades 05", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Spades 05.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Spades 06", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Spades 06.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Spades 07", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Spades 07.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Spades 08", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Spades 08.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Spades 09", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Spades 09.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Spades 10", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Spades 10.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Spades A", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Spades A.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Spades J", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Spades J.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Spades K", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Spades K.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Spades Q", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Playing Card_Spades Q.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "603d81772c22a6401f0bb19588cb7bb6f384ae840c9e03391874c15a049ade25", + "bottomMargin": 12, + "height": 26, + "leftMargin": 10, + "name": "EnergyBar", + "rightMargin": 10, + "tags": "", + "texture": "Energy Bar.png", + "tiled": true, + "topMargin": 13, + "type": "PanelSpriteObject::PanelSprite", + "width": 78, + "variables": [], + "effects": [], + "behaviors": [] + }, + { + "assetStoreId": "0ad03c70a5c5284cc85170b3852e425db0f4deed8225b1b10722ef26902186d8", + "bottomMargin": 2, + "height": 9, + "leftMargin": 3, + "name": "HealthBar2", + "rightMargin": 3, + "tags": "", + "texture": "Health Bar.png2", + "tiled": true, + "topMargin": 4, + "type": "PanelSpriteObject::PanelSprite", + "width": 78, + "variables": [], + "effects": [], + "behaviors": [] + }, + { + "assetStoreId": "138ee716846635e3e0e5ab7b63752d1a36754f1ac874c70e1b5fa372d5a05474", + "bottomMargin": 6, + "height": 15, + "leftMargin": 11, + "name": "HealthBarBox2", + "rightMargin": 9, + "tags": "", + "texture": "Health Bar Box.png2", + "tiled": true, + "topMargin": 6, + "type": "PanelSpriteObject::PanelSprite", + "width": 96, + "variables": [], + "effects": [], + "behaviors": [] + }, + { + "assetStoreId": "f353e7a7fcbe2d520d0901f187986570a9413978641b27454f285a705a2aba34", + "name": "BarFrame", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "No Shadow", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Bar Frame_No Shadow.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Shadow", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Bar Frame_Shadow.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "7cd73b60b8f9a67bc5405a8dd03008c0fb7931dbcf2bc28312089161e77a3b74", + "name": "BlueBar", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "ResourceBar_Sprite", + "type": "ResourceBar::ResourceBar_Sprite", + "StartingQuantity": 12, + "CurrentQuantity": 0, + "MaxQuantity": 24, + "NextUnitToCreate": 0, + "EmptyUnitColorTint": "", + "EmptyUnitOpacity": 0, + "EmptyUnitAnimationNumber": 0, + "ActiveUnitOpacity": 255, + "ActiveUnitColorTint": "255;255;255", + "ActiveUnitAnimationNumber": 0, + "Quantity": 12 + } + ], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Blue bar.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "7cd73b60b8f9a67bc5405a8dd03008c0fb7931dbcf2bc28312089161e77a3b74", + "name": "BlueBar_Unit", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Blue bar.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + } + ], + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Initialize game", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DepartScene" + }, + "parameters": [ + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "MaxResource", + "=", + "CameraBorderRight()" + ] + } + ], + "events": [ + { + "disabled": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "DebuggerTools::EnableDebugDraw" + }, + "parameters": [ + "", + "", + "", + "", + "" + ] + } + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 224, + "colorG": 16, + "colorR": 189, + "creationTime": 0, + "name": "Draw Resource bars", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Tiled resource bar", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DepartScene" + }, + "parameters": [ + "" + ] + } + ], + "actions": [], + "events": [ + { + "disabled": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_TiledSprite::SetQuantity" + }, + "parameters": [ + "TiledEmptyUiHeart", + "ResourceBar_TiledSprite", + "=", + "5", + "" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_TiledSprite::SetMaxQuantity" + }, + "parameters": [ + "Tiled_ResourceBar", + "ResourceBar_TiledSprite", + "=", + "5", + "" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "KeyReleased" + }, + "parameters": [ + "", + "Left" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_TiledSprite::SetQuantity" + }, + "parameters": [ + "TiledSprites", + "ResourceBar_TiledSprite", + "-", + "1", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "KeyReleased" + }, + "parameters": [ + "", + "Right" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_TiledSprite::SetQuantity" + }, + "parameters": [ + "TiledSprites", + "ResourceBar_TiledSprite", + "+", + "1", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_TiledSprite::DrawResourceBar" + }, + "parameters": [ + "TiledSprites", + "ResourceBar_TiledSprite", + "" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Sprite resource bar", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DepartScene" + }, + "parameters": [ + "" + ] + } + ], + "actions": [], + "events": [ + { + "disabled": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetMaxQuantity" + }, + "parameters": [ + "Sprites", + "ResourceBar_Sprite", + "=", + "5", + "" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetEmptyUnitColor" + }, + "parameters": [ + "Heart", + "ResourceBar_Sprite", + "\"74;144;226\"", + "" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetEmptyUnitOpacity" + }, + "parameters": [ + "Heart", + "ResourceBar_Sprite", + "64", + "" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "KeyReleased" + }, + "parameters": [ + "", + "Left" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetQuantity" + }, + "parameters": [ + "Sprites", + "ResourceBar_Sprite", + "-", + "1", + "" + ] + } + ], + "events": [ + { + "disabled": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetQuantity" + }, + "parameters": [ + "Heart", + "ResourceBar_Sprite", + "-", + "1", + "" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetQuantity" + }, + "parameters": [ + "Key", + "ResourceBar_Sprite", + "-", + "1", + "" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetQuantity" + }, + "parameters": [ + "Arrow", + "ResourceBar_Sprite", + "-", + "1", + "" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetQuantity" + }, + "parameters": [ + "Bomb", + "ResourceBar_Sprite", + "-", + "1", + "" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetQuantity" + }, + "parameters": [ + "Heart_Pixel", + "ResourceBar_Sprite", + "-", + "1", + "" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetQuantity" + }, + "parameters": [ + "BlueBar", + "ResourceBar_Sprite", + "-", + "1", + "" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetQuantity" + }, + "parameters": [ + "PlayingCard", + "ResourceBar_Sprite", + "-", + "1", + "" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "KeyReleased" + }, + "parameters": [ + "", + "Right" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetQuantity" + }, + "parameters": [ + "Sprites", + "ResourceBar_Sprite", + "+", + "1", + "" + ] + } + ], + "events": [ + { + "disabled": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetQuantity" + }, + "parameters": [ + "Heart", + "ResourceBar_Sprite", + "+", + "1", + "" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetQuantity" + }, + "parameters": [ + "Key", + "ResourceBar_Sprite", + "+", + "1", + "" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetQuantity" + }, + "parameters": [ + "Arrow", + "ResourceBar_Sprite", + "+", + "1", + "" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetQuantity" + }, + "parameters": [ + "Bomb", + "ResourceBar_Sprite", + "+", + "1", + "" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetQuantity" + }, + "parameters": [ + "Heart_Pixel", + "ResourceBar_Sprite", + "+", + "1", + "" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetQuantity" + }, + "parameters": [ + "BlueBar", + "ResourceBar_Sprite", + "+", + "1", + "" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetQuantity" + }, + "parameters": [ + "PlayingCard", + "ResourceBar_Sprite", + "+", + "1", + "" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::DrawResourceBar" + }, + "parameters": [ + "Heart", + "ResourceBar_Sprite", + "Heart_Unit", + "5", + "" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::DrawResourceBar" + }, + "parameters": [ + "Key", + "ResourceBar_Sprite", + "Key_Unit", + "5" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::DrawResourceBar" + }, + "parameters": [ + "Arrow", + "ResourceBar_Sprite", + "Arrow_Unit", + "5" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::DrawResourceBar" + }, + "parameters": [ + "Bomb", + "ResourceBar_Sprite", + "Bomb_Unit", + "5" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::DrawResourceBar" + }, + "parameters": [ + "Heart_Pixel", + "ResourceBar_Sprite", + "Heart_Pixel_Unit", + "5" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::DrawResourceBar" + }, + "parameters": [ + "BlueBar", + "ResourceBar_Sprite", + "BlueBar_Unit", + "5" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::DrawResourceBar" + }, + "parameters": [ + "PlayingCard", + "ResourceBar_Sprite", + "PlayingCard_Unit", + "5" + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [] + }, + { + "colorB": 224, + "colorG": 16, + "colorR": 189, + "creationTime": 0, + "name": "Buttons", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Hover", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "SourisSurObjet" + }, + "parameters": [ + "Buttons", + "", + "", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "EnableEffect" + }, + "parameters": [ + "Buttons", + "\"Effect\"", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SourisSurObjet" + }, + "parameters": [ + "Buttons", + "", + "", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "EnableEffect" + }, + "parameters": [ + "Buttons", + "\"Effect\"", + "yes" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Clicked", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "MouseButtonReleased" + }, + "parameters": [ + "", + "Left" + ] + }, + { + "type": { + "value": "ScaleWidth" + }, + "parameters": [ + "Buttons", + "=", + "0.9" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SourisSurObjet" + }, + "parameters": [ + "PlusKey", + "", + "", + "" + ] + } + ], + "actions": [], + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Sprite", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetQuantity" + }, + "parameters": [ + "Heart", + "ResourceBar_Sprite", + "+", + "1", + "" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetQuantity" + }, + "parameters": [ + "Key", + "ResourceBar_Sprite", + "+", + "1", + "" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetQuantity" + }, + "parameters": [ + "Arrow", + "ResourceBar_Sprite", + "+", + "1", + "" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetQuantity" + }, + "parameters": [ + "Bomb", + "ResourceBar_Sprite", + "+", + "1", + "" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetQuantity" + }, + "parameters": [ + "Heart_Pixel", + "ResourceBar_Sprite", + "+", + "1", + "" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetQuantity" + }, + "parameters": [ + "BlueBar", + "ResourceBar_Sprite", + "+", + "1", + "" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetQuantity" + }, + "parameters": [ + "PlayingCard", + "ResourceBar_Sprite", + "+", + "1", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetQuantity" + }, + "parameters": [ + "Sprites", + "ResourceBar_Sprite", + "+", + "1", + "" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Tiled sprite", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_TiledSprite::SetQuantity" + }, + "parameters": [ + "TiledSprites", + "ResourceBar_TiledSprite", + "+", + "1", + "" + ] + } + ] + } + ], + "parameters": [] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SourisSurObjet" + }, + "parameters": [ + "MinusKey", + "", + "", + "" + ] + } + ], + "actions": [], + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Sprite", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetQuantity" + }, + "parameters": [ + "Heart", + "ResourceBar_Sprite", + "-", + "1", + "" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetQuantity" + }, + "parameters": [ + "Key", + "ResourceBar_Sprite", + "-", + "1", + "" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetQuantity" + }, + "parameters": [ + "Arrow", + "ResourceBar_Sprite", + "-", + "1", + "" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetQuantity" + }, + "parameters": [ + "Bomb", + "ResourceBar_Sprite", + "-", + "1", + "" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetQuantity" + }, + "parameters": [ + "Heart_Pixel", + "ResourceBar_Sprite", + "-", + "1", + "" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetQuantity" + }, + "parameters": [ + "BlueBar", + "ResourceBar_Sprite", + "-", + "1", + "" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetQuantity" + }, + "parameters": [ + "PlayingCard", + "ResourceBar_Sprite", + "-", + "1", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetQuantity" + }, + "parameters": [ + "Sprites", + "ResourceBar_Sprite", + "-", + "1", + "" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Tiled sprite", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_TiledSprite::SetQuantity" + }, + "parameters": [ + "TiledSprites", + "ResourceBar_TiledSprite", + "-", + "1", + "" + ] + } + ] + } + ], + "parameters": [] + } + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Press", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "MouseButtonPressed" + }, + "parameters": [ + "", + "Left" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SourisSurObjet" + }, + "parameters": [ + "Buttons", + "", + "", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ChangeColor" + }, + "parameters": [ + "Buttons", + "\"189;16;224\"" + ] + }, + { + "type": { + "value": "ChangeScale" + }, + "parameters": [ + "Buttons", + "=", + "0.9" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "MouseButtonPressed" + }, + "parameters": [ + "", + "Left" + ] + } + ], + "actions": [ + { + "type": { + "value": "ChangeColor" + }, + "parameters": [ + "Buttons", + "\"255;255;255\"" + ] + }, + { + "type": { + "value": "ChangeScale" + }, + "parameters": [ + "Buttons", + "=", + "1" + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [] + } + ], + "layers": [ + { + "ambientLightColorB": 32, + "ambientLightColorG": 0, + "ambientLightColorR": 0, + "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": "Health", + "type": "Health::Health" + }, + { + "name": "ResourceBar_ShapePainter", + "type": "ResourceBar::ResourceBar_ShapePainter" + }, + { + "name": "ResourceBar_Sprite", + "type": "ResourceBar::ResourceBar_Sprite" + }, + { + "name": "ResourceBar_TiledSprite", + "type": "ResourceBar::ResourceBar_TiledSprite" + }, + { + "name": "ShakeObject_PositionAngleScale", + "type": "ShakeObject::ShakeObject_PositionAngleScale" + }, + { + "name": "Shield", + "type": "Health::Shield" + }, + { + "name": "Sticker", + "type": "Sticker::Sticker" + } + ] + }, + { + "b": 0, + "disableInputWhenNotFocused": true, + "mangledName": "Shape_32Painter_32_40Game_41", + "name": "Shape Painter (Game)", + "r": 0, + "standardSortMethod": true, + "stopSoundsOnStartup": true, + "title": "", + "v": 0, + "uiSettings": { + "grid": true, + "gridType": "rectangular", + "gridWidth": 8, + "gridHeight": 8, + "gridOffsetX": 0, + "gridOffsetY": 0, + "gridColor": 10401023, + "gridAlpha": 0.2, + "snap": true, + "zoomFactor": 1.06, + "windowMask": false + }, + "objectsGroups": [], + "variables": [], + "instances": [ + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Shield_Bar", + "persistentUuid": "b581caf8-44ee-423e-b57e-cdd910fb7374", + "width": 0, + "x": 192, + "y": 216, + "zOrder": 2, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "ResourceMouseX_Bar", + "persistentUuid": "17a23f4a-a442-4b52-8380-9f2b6a9c2494", + "width": 0, + "x": 192, + "y": 536, + "zOrder": 3, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 80, + "layer": "", + "name": "Fly", + "persistentUuid": "e0b70af7-7a81-41c3-88ac-88305df91ed2", + "width": 128, + "x": 481.13275146484375, + "y": 293, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 128, + "layer": "", + "name": "Moon", + "persistentUuid": "8428ea9d-6d1e-41b0-9f54-1840f3378846", + "width": 129.1327362060547, + "x": 480, + "y": 272, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Health_Text", + "persistentUuid": "921b2f28-8bee-4ab2-a6cc-1ee823c5215e", + "width": 0, + "x": 48, + "y": 96, + "zOrder": 9, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Shield_Text", + "persistentUuid": "a231209b-a5d8-4280-868d-1e9beb31527b", + "width": 0, + "x": 48, + "y": 208, + "zOrder": 10, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "ResourceMouseX_Text", + "persistentUuid": "07fda015-55f8-4959-80fc-f1ee3074d028", + "width": 0, + "x": 32, + "y": 512, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Title_Text", + "persistentUuid": "29ae792c-1331-430c-aadf-70fa8d9e36d6", + "width": 0, + "x": 208, + "y": 16, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Health_Bar", + "persistentUuid": "c411b32c-f357-4b8f-9e87-f3fdde7657d5", + "width": 0, + "x": 192, + "y": 104, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + } + ], + "objects": [ + { + "assetStoreId": "", + "name": "Health_Bar", + "tags": "", + "type": "PrimitiveDrawing::Drawer", + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "ResourceBar_ShapePainter", + "type": "ResourceBar::ResourceBar_ShapePainter", + "ValueMin": 0, + "ValueMax": 1, + "TickSpacing": 0, + "BarLength": 200, + "BarThickness": 16, + "InactiveBarColor": "11;255;0", + "InactiveBarOpacity": 96, + "ActiveBarColor": " 11;255;0", + "ActiveBarOpacity": 255, + "RoundedBar": true, + "Value": 0, + "ThumbOffset": 0, + "NeedRedraw": true + } + ], + "fillOpacity": 255, + "outlineSize": 1, + "outlineOpacity": 255, + "fillColor": { + "b": 255, + "g": 255, + "r": 255 + }, + "outlineColor": { + "b": 0, + "g": 0, + "r": 0 + }, + "absoluteCoordinates": false, + "clearBetweenFrames": true + }, + { + "assetStoreId": "", + "name": "MiniHealth_Bar", + "tags": "", + "type": "PrimitiveDrawing::Drawer", + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "ResourceBar_ShapePainter", + "type": "ResourceBar::ResourceBar_ShapePainter", + "ValueMin": 0, + "ValueMax": 1, + "TickSpacing": 0, + "BarLength": 50, + "BarThickness": 4, + "InactiveBarColor": "11;255;0", + "InactiveBarOpacity": 96, + "ActiveBarColor": " 11;255;0", + "ActiveBarOpacity": 255, + "Value": 0, + "ThumbOffset": 0, + "NeedRedraw": true + }, + { + "name": "Sticker", + "type": "Sticker::Sticker", + "OnlyFollowPosition": true + } + ], + "fillOpacity": 255, + "outlineSize": 1, + "outlineOpacity": 255, + "fillColor": { + "b": 255, + "g": 255, + "r": 255 + }, + "outlineColor": { + "b": 0, + "g": 0, + "r": 0 + }, + "absoluteCoordinates": false, + "clearBetweenFrames": true + }, + { + "assetStoreId": "", + "name": "Shield_Bar", + "tags": "", + "type": "PrimitiveDrawing::Drawer", + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "ResourceBar_ShapePainter", + "type": "ResourceBar::ResourceBar_ShapePainter", + "ValueMin": 0, + "ValueMax": 1, + "TickSpacing": 0, + "ThumbShape": "circle", + "ThumbWidth": 20, + "ThumbHeight": 20, + "ThumbColor": " 24;119;211", + "ThumbOpacity": 255, + "BarLength": 200, + "BarThickness": 16, + "InactiveBarColor": "144;19;254", + "InactiveBarOpacity": 96, + "ActiveBarColor": " 144;19;254", + "ActiveBarOpacity": 255, + "HaloRadius": 24, + "HaloOpacityHover": 32, + "HaloOpacityClick": 64, + "RoundedBar": true, + "Enabled": true, + "IsBeingDragged": false, + "Value": 0, + "ThumbOffset": 0, + "NeedRedraw": true, + "IsHovered": false, + "MouseX": 0, + "MouseY": 0, + "CurrentHaloRadius": 0, + "HaloGrowSpeed": 0.2, + "TargetHaloRadius": 0.19999992847442627 + } + ], + "fillOpacity": 255, + "outlineSize": 1, + "outlineOpacity": 255, + "fillColor": { + "b": 255, + "g": 255, + "r": 255 + }, + "outlineColor": { + "b": 0, + "g": 0, + "r": 0 + }, + "absoluteCoordinates": false, + "clearBetweenFrames": true + }, + { + "assetStoreId": "", + "name": "ResourceMouseX_Bar", + "tags": "", + "type": "PrimitiveDrawing::Drawer", + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "ResourceBar_ShapePainter", + "type": "ResourceBar::ResourceBar_ShapePainter", + "ValueMin": 0, + "ValueMax": 1, + "TickSpacing": 0, + "ThumbShape": "circle", + "ThumbWidth": 20, + "ThumbHeight": 20, + "ThumbColor": "248;231;28", + "ThumbOpacity": 255, + "BarLength": 200, + "BarThickness": 16, + "InactiveBarColor": "248;231;28", + "InactiveBarOpacity": 96, + "ActiveBarColor": "248;231;28", + "ActiveBarOpacity": 255, + "HaloRadius": 24, + "HaloOpacityHover": 32, + "HaloOpacityClick": 64, + "RoundedBar": false, + "Enabled": true, + "IsBeingDragged": false, + "Value": 0, + "ThumbOffset": 0, + "NeedRedraw": true, + "IsHovered": false, + "MouseX": 0, + "MouseY": 0, + "CurrentHaloRadius": 0, + "HaloGrowSpeed": 0.2, + "TargetHaloRadius": 0.19999992847442627 + } + ], + "fillOpacity": 255, + "outlineSize": 1, + "outlineOpacity": 255, + "fillColor": { + "b": 255, + "g": 255, + "r": 255 + }, + "outlineColor": { + "b": 0, + "g": 0, + "r": 0 + }, + "absoluteCoordinates": false, + "clearBetweenFrames": true + }, + { + "assetStoreId": "48a2d179a1921276abe3f99ce3cf195fa7c310bc511fa215d9647c3fb9027921", + "name": "Fly", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "Health", + "type": "Health::Health", + "Health": 100, + "DamageCooldown": 0, + "MaxHealth": 100, + "IsJustDamaged": false, + "HealthRegenRate": 0, + "HealthRegenDelay": 0, + "AllowOverHealing": false, + "HitAtLeastOnce": false + }, + { + "name": "ShakeObject_PositionAngleScale", + "type": "ShakeObject::ShakeObject_PositionAngleScale" + }, + { + "name": "Shield", + "type": "Health::Shield", + "RequireHealth": "Health", + "MaxShieldPoints": 30, + "ShieldDuration": 5, + "ShieldPoints": 0, + "ShieldRegenRate": 0, + "ShieldBlocksExcessDamage": false, + "ShieldRegenDelay": 0, + "RegenShieldWhenZeroPoints": false, + "IsShieldJustDamaged": false + } + ], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.05000000074505806, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "Fly_1.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": false, + "name": "centre", + "x": 57.500244140625, + "y": 48.2830924987793 + }, + "customCollisionMask": [ + [ + { + "x": 35, + "y": 25 + }, + { + "x": 80, + "y": 25 + }, + { + "x": 80, + "y": 70 + }, + { + "x": 35, + "y": 70 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "Fly_2.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": false, + "name": "centre", + "x": 57.500244140625, + "y": 48.2830924987793 + }, + "customCollisionMask": [ + [ + { + "x": 35, + "y": 25 + }, + { + "x": 80, + "y": 25 + }, + { + "x": 80, + "y": 70 + }, + { + "x": 35, + "y": 70 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "Fly_3.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": false, + "name": "centre", + "x": 57.500244140625, + "y": 48.2830924987793 + }, + "customCollisionMask": [ + [ + { + "x": 35, + "y": 25 + }, + { + "x": 80, + "y": 25 + }, + { + "x": 80, + "y": 70 + }, + { + "x": 35, + "y": 70 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "Fly_4.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": false, + "name": "centre", + "x": 57.500244140625, + "y": 48.2830924987793 + }, + "customCollisionMask": [ + [ + { + "x": 35, + "y": 25 + }, + { + "x": 80, + "y": 25 + }, + { + "x": 80, + "y": 70 + }, + { + "x": 35, + "y": 70 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "Fly_5.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": false, + "name": "centre", + "x": 57.500244140625, + "y": 48.2830924987793 + }, + "customCollisionMask": [ + [ + { + "x": 35, + "y": 25 + }, + { + "x": 80, + "y": 25 + }, + { + "x": 80, + "y": 70 + }, + { + "x": 35, + "y": 70 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "Fly_6.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": false, + "name": "centre", + "x": 57.500244140625, + "y": 48.2830924987793 + }, + "customCollisionMask": [ + [ + { + "x": 35, + "y": 25 + }, + { + "x": 80, + "y": 25 + }, + { + "x": 80, + "y": 70 + }, + { + "x": 35, + "y": 70 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "Fly_7.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": false, + "name": "centre", + "x": 57.500244140625, + "y": 48.2830924987793 + }, + "customCollisionMask": [ + [ + { + "x": 35, + "y": 25 + }, + { + "x": 80, + "y": 25 + }, + { + "x": 80, + "y": 70 + }, + { + "x": 35, + "y": 70 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "Fly_8.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": false, + "name": "centre", + "x": 57.500244140625, + "y": 48.2830924987793 + }, + "customCollisionMask": [ + [ + { + "x": 35, + "y": 25 + }, + { + "x": 80, + "y": 25 + }, + { + "x": 80, + "y": 70 + }, + { + "x": 35, + "y": 70 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "Fly_9.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": false, + "name": "centre", + "x": 57.500244140625, + "y": 48.2830924987793 + }, + "customCollisionMask": [ + [ + { + "x": 35, + "y": 25 + }, + { + "x": 80, + "y": 25 + }, + { + "x": 80, + "y": 70 + }, + { + "x": 35, + "y": 70 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "Fly_10.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": false, + "name": "centre", + "x": 57.500244140625, + "y": 48.2830924987793 + }, + "customCollisionMask": [ + [ + { + "x": 35, + "y": 25 + }, + { + "x": 80, + "y": 25 + }, + { + "x": 80, + "y": 70 + }, + { + "x": 35, + "y": 70 + } + ] + ] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "574655a4565bd983af8f5dd98e0fd8cda3bd67cf929c00d3db317e898322e06b", + "name": "Star", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "LargeNarrow", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Star_LargeNarrow.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "LargeWide", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Star_LargeWide.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Medium", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Star_Medium.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Small", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Star_Small.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "794ab341df538c9b3bdad418dfdcccc7be5d90f3d0b5929d6d528a542c6ed3ae", + "name": "SilverShield", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [ + { + "effectType": "Outline", + "name": "Effect", + "doubleParameters": { + "padding": 2, + "thickness": 2 + }, + "stringParameters": { + "color": "255;255;255" + }, + "booleanParameters": {} + } + ], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Silver shield.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 14.592423439025879, + "y": 15.103429794311523 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "d2bc2d266f5bb666ef68023abc14f51bc8fe8b5222af931efa378ac10c50f98a", + "name": "MeteorDetailed", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "Large", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "Meteor Detailed_Large.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 65.07723999023438, + "y": 63.82252502441406 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 20, + "y": 20 + }, + { + "x": 110, + "y": 20 + }, + { + "x": 110, + "y": 110 + }, + { + "x": 20, + "y": 110 + } + ] + ] + } + ] + } + ] + }, + { + "name": "Small", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "Meteor Detailed_Small.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 65.07723999023438, + "y": 63.82252502441406 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 20, + "y": 20 + }, + { + "x": 110, + "y": 20 + }, + { + "x": 110, + "y": 110 + }, + { + "x": 20, + "y": 110 + } + ] + ] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "a1e62f5a19d1fe476e2ad0b8977768d020cc1dc55423427f79a486664cebb631", + "name": "UpgradedPotionBlue", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "No Shadow", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Upgraded Potion Blue_No Shadow.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 15.793042182922363, + "y": 15.89681625366211 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Shadow", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Upgraded Potion Blue_Shadow.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 15.793042182922363, + "y": 15.89681625366211 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "c2ce913ddbcd055c4e49a1c01b63aff1a3d59e4e1c1845db4c38aedda3712d3a", + "name": "Moon", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "Sticker", + "type": "Sticker::Sticker", + "OnlyFollowPosition": false + } + ], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Moon.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "", + "bold": true, + "italic": false, + "name": "Health_Text", + "smoothed": true, + "tags": "", + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "effects": [], + "behaviors": [], + "string": "Health", + "font": "", + "characterSize": 30, + "color": { + "b": 255, + "g": 255, + "r": 255 + } + }, + { + "assetStoreId": "", + "bold": true, + "italic": false, + "name": "Shield_Text", + "smoothed": true, + "tags": "", + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "effects": [], + "behaviors": [], + "string": "Shield", + "font": "", + "characterSize": 30, + "color": { + "b": 255, + "g": 255, + "r": 255 + } + }, + { + "assetStoreId": "", + "bold": true, + "italic": false, + "name": "ResourceMouseX_Text", + "smoothed": true, + "tags": "", + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "effects": [], + "behaviors": [], + "string": "Resource \n(Mouse X)", + "font": "", + "characterSize": 30, + "color": { + "b": 255, + "g": 255, + "r": 255 + } + }, + { + "assetStoreId": "", + "bold": true, + "italic": false, + "name": "Title_Text", + "smoothed": true, + "tags": "", + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "effects": [], + "behaviors": [], + "string": "Extension: Resource Bar", + "font": "", + "characterSize": 30, + "color": { + "b": 255, + "g": 255, + "r": 255 + } + }, + { + "assetStoreId": "", + "name": "ResourceBarNew", + "tags": "", + "type": "PrimitiveDrawing::Drawer", + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "ResourceBar_ShapePainter", + "type": "ResourceBar_ShapePainter::ResourceBar_ShapePainter", + "ValueMin": 0, + "ValueMax": 1, + "TickSpacing": 0, + "BarLength": 200, + "BarThickness": 4, + "InactiveBarColor": "11;255;0", + "InactiveBarOpacity": 96, + "ActiveBarColor": "11;255;0", + "ActiveBarOpacity": 255, + "RoundedBar": false, + "Value": 0, + "ThumbOffset": 0, + "NeedRedraw": true + } + ], + "fillOpacity": 255, + "outlineSize": 1, + "outlineOpacity": 255, + "fillColor": { + "b": 255, + "g": 255, + "r": 255 + }, + "outlineColor": { + "b": 0, + "g": 0, + "r": 0 + }, + "absoluteCoordinates": false, + "clearBetweenFrames": true + }, + { + "assetStoreId": "8d524a624fbc72a1fd6c3975369a7cd55b8a52035887ef664bcd93bf8e273881", + "name": "Unit_ResourceBar", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "ResourceBar_Sprite", + "type": "ResourceBar::ResourceBar_Sprite", + "StartingUnits": 3, + "CurrentUnits": 3, + "MaxUnits": 3, + "UnitSpacing": 0, + "NextUnitToCreate": 0, + "HideEmptyUnits": false, + "EmptyUnitOpacity": 64, + "EmptyUnitAnimation": 0, + "EmptyColorTint": "255;255;255", + "ActiveUnitOpacity": 255 + } + ], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Emote Heart.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "8d524a624fbc72a1fd6c3975369a7cd55b8a52035887ef664bcd93bf8e273881", + "name": "Heart_Unit", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Emote Heart.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "752e405ef67d9f9d1bd36f9763f1b6fc05633d64700982c0f3118a25a32e39b2", + "height": 16, + "name": "TiledEmptyUiHeart", + "tags": "", + "texture": "tiled_Tiled Empty UI Heart.png", + "type": "TiledSpriteObject::TiledSprite", + "width": 16, + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "ResourceBar_TiledSprite", + "type": "ResourceBar::ResourceBar_TiledSprite", + "StartingQuantity": 0, + "CurrentQuantity": 0, + "UnitWidth": 16, + "MaxQuantity": 0 + } + ] + }, + { + "assetStoreId": "abf51d082db5a117d9ee2e65299660f6787d47664e4571bad6db3075b3393c5f", + "height": 16, + "name": "Tiled_ResourceBar", + "tags": "", + "texture": "tiled_Tiled Filler UI Heart.png", + "type": "TiledSpriteObject::TiledSprite", + "width": 16, + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "ResourceBar_TiledSprite", + "type": "ResourceBar::ResourceBar_TiledSprite", + "StartingQuantity": 6, + "CurrentQuantity": 0, + "UnitWidth": 16 + } + ] + }, + { + "assetStoreId": "45107bbfbc2b5cbc83e3785f802b99664a23d59e74414e332c9afafac63e1ca3", + "name": "HealthBar", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Health Bar.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "1f3dba67c868b7320572a6591d1d0418f23b7c132df0963cf77286a9149971d9", + "height": 128, + "name": "HealthBarFill", + "tags": "", + "texture": "tiled_Health Bar Fill.png", + "type": "TiledSpriteObject::TiledSprite", + "width": 128, + "variables": [], + "effects": [], + "behaviors": [] + }, + { + "assetStoreId": "3bd9517a10ad3d98341eea33f0c139f08a1b04f26500e85ac49bb7f9e157a303", + "height": 128, + "name": "EnergyBarFill", + "tags": "", + "texture": "tiled_Energy Bar Fill.png", + "type": "TiledSpriteObject::TiledSprite", + "width": 128, + "variables": [], + "effects": [], + "behaviors": [] + }, + { + "assetStoreId": "138ee716846635e3e0e5ab7b63752d1a36754f1ac874c70e1b5fa372d5a05474", + "bottomMargin": 6, + "height": 15, + "leftMargin": 11, + "name": "HealthBarBox", + "rightMargin": 9, + "tags": "", + "texture": "Health Bar Box.png", + "tiled": true, + "topMargin": 6, + "type": "PanelSpriteObject::PanelSprite", + "width": 96, + "variables": [], + "effects": [], + "behaviors": [] + }, + { + "assetStoreId": "7c1048053bc2d851157c4e0868c4ac0338f4ca93170d28990a7f64eaed2a1723", + "name": "HealthIndicator", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "Black Outline Empty", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Health Indicator_Black Outline Empty.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "Black Outline Heart", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Health Indicator_Black Outline Heart.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "White Outline Empty", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Health Indicator_White Outline Empty.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "White Outline Heart", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Health Indicator_White Outline Heart.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "0714257da345b4ec7de558ac0e42290362b85a79c97160c0e09636cd2fc31e3c", + "name": "Heart", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.02500000037252903, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Heart.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + } + ], + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Initialize game", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DepartScene" + }, + "parameters": [ + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Opacity" + }, + "parameters": [ + "Moon", + "=", + "128" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "MaxResource", + "=", + "CameraBorderRight()" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ChangeColor" + }, + "parameters": [ + "Moon", + "\"144;19;254\"" + ] + }, + { + "type": { + "value": "SetCenter" + }, + "parameters": [ + "Moon", + "=", + "Fly.CenterX()", + "=", + "Fly.CenterY()-10" + ] + }, + { + "type": { + "value": "Sticker::Sticker::Stick" + }, + "parameters": [ + "Moon", + "Sticker", + "Fly", + "" + ] + }, + { + "type": { + "value": "Cache" + }, + "parameters": [ + "Moon" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "MiniHealth_Bar", + "Fly.X()", + "Fly.Y()", + "\"\"" + ] + }, + { + "type": { + "value": "MettreXY" + }, + "parameters": [ + "MiniHealth_Bar", + "=", + "Fly.CenterX() - MiniHealth_Bar.ResourceBar_ShapePainter::BarLength()/2", + "=", + "Fly.BoundingBoxTop()" + ] + }, + { + "type": { + "value": "Sticker::Sticker::Stick" + }, + "parameters": [ + "MiniHealth_Bar", + "Sticker", + "Fly", + "" + ] + } + ] + }, + { + "disabled": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "DebuggerTools::EnableDebugDraw" + }, + "parameters": [ + "", + "", + "", + "", + "" + ] + } + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "folded": true, + "name": "Spawn items", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "RepeatEveryXSeconds::Repeat" + }, + "parameters": [ + "", + "\"SpawnShield\"", + "5", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "SilverShield", + "Fly.CenterX()", + "CameraBorderTop()", + "" + ] + }, + { + "type": { + "value": "AddForceAL" + }, + "parameters": [ + "SilverShield", + "90", + "75", + "1" + ] + }, + { + "type": { + "value": "ChangeColor" + }, + "parameters": [ + "SilverShield", + "\"144;19;254\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "RepeatEveryXSeconds::Repeat" + }, + "parameters": [ + "", + "\"SpawnHealth\"", + "12", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "UpgradedPotionBlue", + "Fly.CenterX()", + "CameraBorderBottom()", + "" + ] + }, + { + "type": { + "value": "AddForceAL" + }, + "parameters": [ + "UpgradedPotionBlue", + "270", + "75", + "1" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "RepeatEveryXSeconds::Repeat" + }, + "parameters": [ + "", + "\"SpawnRock\"", + "1", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "MeteorDetailed", + "CameraBorderLeft()", + "Fly.CenterY()", + "" + ] + }, + { + "type": { + "value": "AddForceAL" + }, + "parameters": [ + "MeteorDetailed", + "0", + "300", + "1" + ] + }, + { + "type": { + "value": "ChangeScale" + }, + "parameters": [ + "MeteorDetailed", + "=", + "0.5" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Rotate" + }, + "parameters": [ + "MeteorDetailed", + "30", + "" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "folded": true, + "name": "Collisions", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Shield::IsShieldActive" + }, + "parameters": [ + "Fly", + "Shield", + "" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "Montre" + }, + "parameters": [ + "Moon", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "Health::Shield::IsShieldActive" + }, + "parameters": [ + "Fly", + "Shield", + "" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "Cache" + }, + "parameters": [ + "Moon" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CollisionNP" + }, + "parameters": [ + "SilverShield", + "Fly", + "", + "", + "" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "Health::Shield::ActivateShield" + }, + "parameters": [ + "Fly", + "Shield", + "" + ] + }, + { + "type": { + "value": "Delete" + }, + "parameters": [ + "SilverShield", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CollisionNP" + }, + "parameters": [ + "UpgradedPotionBlue", + "Fly", + "", + "", + "" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "Health::Health::Heal" + }, + "parameters": [ + "Fly", + "Health", + "100", + "" + ] + }, + { + "type": { + "value": "Delete" + }, + "parameters": [ + "UpgradedPotionBlue", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CollisionNP" + }, + "parameters": [ + "MeteorDetailed", + "Fly", + "", + "", + "" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "Health::Shield::ShieldHit" + }, + "parameters": [ + "Fly", + "Shield", + "10", + "" + ] + }, + { + "type": { + "value": "Delete" + }, + "parameters": [ + "MeteorDetailed", + "" + ] + }, + { + "type": { + "value": "ShakeObject::ShakeObject_PositionAngleScale::ShakeObject_PositionAngleScale" + }, + "parameters": [ + "Fly", + "ShakeObject_PositionAngleScale", + "", + "10", + "10", + "5", + "", + "", + "", + "" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 224, + "colorG": 16, + "colorR": 189, + "creationTime": 0, + "name": "Draw Resource bars", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "This resource shows the horizontal mouse position in scene, but it can be used for anything!", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "MyResource", + "=", + "MouseX()" + ] + } + ] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Shape painter resource bar", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::DrawHealthBar" + }, + "parameters": [ + "MiniHealth_Bar", + "ResourceBar_ShapePainter", + "Fly", + "Health", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::DrawShieldBar" + }, + "parameters": [ + "Shield_Bar", + "ResourceBar_ShapePainter", + "Fly", + "Shield", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::DrawResourceBar" + }, + "parameters": [ + "ResourceMouseX_Bar", + "ResourceBar_ShapePainter", + "Variable(MyResource)", + "Variable(MaxResource)", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::DrawHealthBar" + }, + "parameters": [ + "Health_Bar", + "ResourceBar_ShapePainter", + "Fly", + "Health", + "" + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [] + } + ], + "layers": [ + { + "ambientLightColorB": 32, + "ambientLightColorG": 0, + "ambientLightColorR": 0, + "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": "Health", + "type": "Health::Health" + }, + { + "name": "ResourceBar_ShapePainter", + "type": "ResourceBar::ResourceBar_ShapePainter" + }, + { + "name": "ResourceBar_Sprite", + "type": "ResourceBar::ResourceBar_Sprite" + }, + { + "name": "ResourceBar_TiledSprite", + "type": "ResourceBar::ResourceBar_TiledSprite" + }, + { + "name": "ShakeObject_PositionAngleScale", + "type": "ShakeObject::ShakeObject_PositionAngleScale" + }, + { + "name": "Shield", + "type": "Health::Shield" + }, + { + "name": "Sticker", + "type": "Sticker::Sticker" + } + ] + } + ], + "externalEvents": [], + "eventsFunctionsExtensions": [ + { + "author": "@4ian", + "category": "Game mechanic", + "extensionNamespace": "", + "fullName": "Fire bullets", + "helpPath": "https://gdevelop.io/game-example/fire-bullet", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLWJ1bGxldCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0xNCwyMkgxMFYyMUgxNFYyMk0xMywxMFY3SDExVjEwTDEwLDExLjVWMjBIMTRWMTEuNUwxMywxME0xMiwyQzEyLDIgMTEsMyAxMSw1VjZIMTNWNUMxMyw1IDEzLDMgMTIsMloiIC8+PC9zdmc+", + "name": "FireBullet", + "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/bullet.svg", + "shortDescription": "Fire bullets, manage ammo, reloading, and overheating.", + "version": "0.3.0", + "description": "Fire bullets, manage ammo, reloading, and overheating.\n\nFiring bullets:\n- Cooldown: Time between shots (seconds)\n- Bullet Quantity: Number of bullets created each time Fire Bullet action is used. \n- Angle Variance: Each bullet trajectory will be adjusted by a random value within this range (degrees)\n- Firing Arc: Range of angles (in degrees) that bullets will shoot. Bullets are evenly spread within this range.\n- Rotate bullet: Change the angle of each bullet to match the direction it is travelling (enabled by default)\n\n Ammo:\n- Starting ammo\n- Max ammo\n- Shots per reload. Use 0 to disable reloading\n- Reload duration\n- Automatic reloading is enabled by default, but it can also be done manually.\n\nOverheat:\n- Heat increase per shot. Object is Overheated when Heat reaches 1.\n- Cooling rate per second\n- When overheated, the object cannot fire any bullets\n\nStatistics:\n- Total bullets created\n- Total shots taken\n- Total reloads completed\n\nBullets:\n- Each bullet is assigned several variables that can be used for advanced object picking\n- __FireBullet.BulletID = Unique number for every bullet created\n- __FireBullet.BatchID = Unique number for all bullets created in the same frame\n- __FireBullet.BatchOrderID = Unique number for each bullet in the same batch. Can be used to identify the position in the firing arc.", + "origin": { + "identifier": "FireBullet", + "name": "gdevelop-extension-store" + }, + "tags": [ + "fire", + "bullet", + "spawn", + "firerate", + "reload", + "weapon", + "ranged", + "ammo", + "overheat" + ], + "authorIds": [ + "wWP8BSlAW0UP4NeaHa2LcmmDzmH2", + "xpwUwByyImTDcHEqDUqfyg0oRBt1", + "2OwwM8ToR9dx9RJ2sAKTcrLmCB92", + "gqDaZjCfevOOxBYkK6zlhtZnXCg1" + ], + "dependencies": [], + "eventsFunctions": [], + "eventsBasedBehaviors": [ + { + "description": "Fire bullets, manage ammo, reloading, and overheating.", + "fullName": "Fire bullets", + "name": "FireBullet", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"__FireBullet.FiringCooldown\"" + ] + }, + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyAmmoQuantity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyStartingAmmo()" + ] + }, + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyShotsBeforeNextReload" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyShotsPerReload()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "colorB": 224, + "colorG": 16, + "colorR": 189, + "creationTime": 0, + "name": "Take a shot (if triggered)", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Creators can use the \"FireBullet\" action multiple times in a frame and it will be counted as a single \"shot\".", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyHasJustFired" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [], + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Reset firing cooldown", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"__FireBullet.FiringCooldown\"" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Update ammo", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Subtract 1 from ammo (if not unlimited ammo)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "FireBullet::FireBullet::PropertyUnlimitedAmmo" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyAmmoQuantity" + }, + "parameters": [ + "Object", + "Behavior", + "-", + "1" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Update reloading counter", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyShotsPerReload" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyShotsBeforeNextReload" + }, + "parameters": [ + "Object", + "Behavior", + "-", + "1" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Automatically reload gun when needed", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyAutomaticReloading" + }, + "parameters": [ + "Object", + "Behavior" + ] + }, + { + "type": { + "value": "FireBullet::FireBullet::IsReloadNeeded" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + }, + { + "type": { + "inverted": true, + "value": "FireBullet::FireBullet::IsReloadInProgress" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::ReloadAmmo" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Update Overheat", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Increase heat (if needed)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyHeatIncreasePerShot" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyHeatLevel" + }, + "parameters": [ + "Object", + "Behavior", + "+", + "Object.Behavior::PropertyHeatIncreasePerShot()" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Check if this caused overheat", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyOverheatDuration" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + }, + { + "type": { + "value": "FireBullet::FireBullet::IsOverheated" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"__FireBullet.OverheatDuration\"" + ] + } + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Update statistics", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyTotalShotsFired" + }, + "parameters": [ + "Object", + "Behavior", + "+", + "1" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Reset firing detection", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyHasJustFired" + }, + "parameters": [ + "Object", + "Behavior", + "=" + ] + } + ] + } + ], + "parameters": [] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Reload gun when needed", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Detect when reload is completed", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::IsReloadInProgress" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + }, + { + "type": { + "value": "CompareObjectTimer" + }, + "parameters": [ + "Object", + "\"__FireBullet.ReloadingTimer\"", + ">=", + "Object.Behavior::PropertyReloadDuration()" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyTotalReloadsCompleted" + }, + "parameters": [ + "Object", + "Behavior", + "+", + "1" + ] + }, + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyReloadInProgress" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::IsUnlimitedAmmo" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyShotsBeforeNextReload" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyShotsPerReload()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Only reload the amount of ammo available", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "FireBullet::FireBullet::IsUnlimitedAmmo" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyShotsBeforeNextReload" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "min(Object.Behavior::PropertyShotsPerReload(), Object.Behavior::PropertyAmmoQuantity())" + ] + } + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Reduce heat level (based on cooling rate)", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareNumbers" + }, + "parameters": [ + "Object.Behavior::HeatLevel()", + ">", + "0" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyExponentialCoolingRate" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyHeatLevel" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "max(0, Object.Behavior::PropertyHeatLevel() - TimeDelta() * Object.Behavior::PropertyExponentialCoolingRate() * Object.Behavior::PropertyHeatLevel())" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyLinearCoolingRate" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyHeatLevel" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "max(0, Object.Behavior::PropertyHeatLevel() - TimeDelta() * Object.Behavior::PropertyLinearCoolingRate())" + ] + } + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Fire bullets toward a position.", + "fullName": "Fire bullets toward a position", + "functionType": "Action", + "name": "FireTowardPosition", + "sentence": "Fire _PARAM4_ from _PARAM0_, at position _PARAM2_; _PARAM3_, toward position _PARAM5_;_PARAM6_ with speed _PARAM7_ px/s", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Calculate the trajectory angle and use the \"Fire bullets\" action", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::Fire" + }, + "parameters": [ + "Object", + "Behavior", + "GetArgumentAsNumber(\"XPosition\")", + "GetArgumentAsNumber(\"YPosition\")", + "Bullet", + "Object.AngleToPosition(GetArgumentAsNumber(\"TargetXPosition\"),GetArgumentAsNumber(\"TargetYPosition\"))", + "GetArgumentAsNumber(\"Speed\")", + "" + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "X position, where to create the bullet", + "name": "XPosition", + "type": "expression" + }, + { + "description": "Y position, where to create the bullet", + "name": "YPosition", + "type": "expression" + }, + { + "description": "The bullet object", + "name": "Bullet", + "type": "objectList" + }, + { + "description": "Target X position", + "name": "TargetXPosition", + "type": "expression" + }, + { + "description": "Target Y position", + "name": "TargetYPosition", + "type": "expression" + }, + { + "description": "Speed of the bullet, in pixels per second", + "name": "Speed", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Fire bullets in the direction of a given angle.", + "fullName": "Fire bullets toward an angle", + "functionType": "Action", + "name": "Fire", + "sentence": "Fire _PARAM4_ from _PARAM0_, at position _PARAM2_; _PARAM3_, toward angle _PARAM5_ and speed _PARAM6_ px/s", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Check if ready to shoot", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::IsReadyToShoot" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyHasJustFired" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ], + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Single bullet", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareNumbers" + }, + "parameters": [ + "Object.Behavior::PropertyBulletQuantity()", + "=", + "1" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::FireSingleBullet" + }, + "parameters": [ + "Object", + "Behavior", + "GetArgumentAsNumber(\"XPosition\")", + "GetArgumentAsNumber(\"YPosition\")", + "Bullet", + "GetArgumentAsNumber(\"Angle\")", + "GetArgumentAsNumber(\"Speed\")", + "" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Multiple bullets", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareNumbers" + }, + "parameters": [ + "Object.Behavior::PropertyBulletQuantity()", + ">", + "1" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__FireBullet.CurrentBulletAngle", + "=", + "GetArgumentAsNumber(\"Angle\") - Object.Behavior::PropertyFiringArc()/2" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__FireBullet.BatchOrderID", + "=", + "0" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Repeat", + "repeatExpression": "Object.Behavior::PropertyBulletQuantity()", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::FireSingleBullet" + }, + "parameters": [ + "Object", + "Behavior", + "GetArgumentAsNumber(\"XPosition\")", + "GetArgumentAsNumber(\"YPosition\")", + "Bullet", + "Object.Variable(__FireBullet.CurrentBulletAngle) + RandomInRange(-Object.Behavior::PropertyAngleVariance(),Object.Behavior::PropertyAngleVariance())", + "GetArgumentAsNumber(\"Speed\")", + "" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Move temp variable to the next angle a bullet will be sent", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__FireBullet.CurrentBulletAngle", + "+", + "Object.Behavior::PropertyFiringArc() / (Object.Behavior::PropertyBulletQuantity() - 1)" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__FireBullet.BatchOrderID", + "+", + "1" + ] + } + ] + } + ] + } + ] + } + ], + "parameters": [] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "X position, where to create the bullet", + "name": "XPosition", + "type": "expression" + }, + { + "description": "Y position, where to create the bullet", + "name": "YPosition", + "type": "expression" + }, + { + "description": "The bullet object", + "name": "Bullet", + "type": "objectList" + }, + { + "description": "Angle of the bullet, in degrees", + "name": "Angle", + "type": "expression" + }, + { + "description": "Speed of the bullet, in pixels per second", + "name": "Speed", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Fire a single bullet. This is only meant to be used inside the \"Fire bullet\" action.", + "fullName": "Fire a single bullet", + "functionType": "Action", + "group": "Firing", + "name": "FireSingleBullet", + "private": true, + "sentence": "Fire a single bullet _PARAM4_ from _PARAM0_, at position _PARAM2_; _PARAM3_, with angle _PARAM5_ and speed _PARAM6_ px/s", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Fire a single bullet", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Create bullet", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "Bullet", + "GetArgumentAsNumber(\"XPosition\")", + "GetArgumentAsNumber(\"YPosition\")", + "\"\"" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Move bullet", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "AddForceAL" + }, + "parameters": [ + "Bullet", + "GetArgumentAsNumber(\"Angle\") + RandomInRange(-Object.Behavior::PropertyAngleVariance(), Object.Behavior::PropertyAngleVariance())", + "GetArgumentAsNumber(\"Speed\")", + "1" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Add identifier variables (to enable advanced picking by users)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Bullet", + "__FireBullet.BulletID", + "=", + "Object.Behavior::PropertyTotalBulletsCreated()" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Bullet", + "__FireBullet.BatchID", + "=", + "Object.Behavior::PropertyTotalShotsFired()" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Bullet", + "__FireBullet.BatchOrderID", + "=", + "0" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Rotate newly created bullet, if needed", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyRotateBullet" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetAngle" + }, + "parameters": [ + "Bullet", + "=", + "GetArgumentAsNumber(\"Angle\")" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Update statistics", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyTotalBulletsCreated" + }, + "parameters": [ + "Object", + "Behavior", + "+", + "1" + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "X position, where to create the bullet", + "name": "XPosition", + "type": "expression" + }, + { + "description": "Y position, where to create the bullet", + "name": "YPosition", + "type": "expression" + }, + { + "description": "The bullet object", + "name": "Bullet", + "type": "objectList" + }, + { + "description": "Angle of the bullet, in degrees", + "name": "Angle", + "type": "expression" + }, + { + "description": "Speed of the bullet, in pixels per second", + "name": "Speed", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Reload ammo.", + "fullName": "Reload ammo", + "functionType": "Action", + "name": "ReloadAmmo", + "sentence": "Reload ammo on _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "FireBullet::FireBullet::IsOutOfAmmo" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyReloadInProgress" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + }, + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"__FireBullet.ReloadingTimer\"" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the object has just fired something.", + "fullName": "Has just fired", + "functionType": "Condition", + "group": "Firing", + "name": "HasJustFired", + "sentence": "_PARAM0_ has just fired", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyHasJustFired" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if bullet rotates to match trajectory.", + "fullName": "Is bullet rotation enabled", + "functionType": "Condition", + "group": "Firing", + "name": "BulletRotationEnabled", + "sentence": "Bullet rotation enabled on _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyRotateBullet" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Change the firing arc (in degrees) where bullets will be shot. Bullets will be evenly spaced out inside the firing arc.", + "fullName": "Set firing arc", + "functionType": "Action", + "group": "Multi-Fire", + "name": "SetFiringArc", + "sentence": "Set firing arc of _PARAM0_ to _PARAM2_ degrees", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyFiringArc" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Firing arc (degrees) Range: 0 to 360", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the angle variance (in degrees) applied to each bullet.", + "fullName": "Set angle variance", + "functionType": "Action", + "group": "Firing", + "name": "SetAngleVariance", + "sentence": "Set angle variance of _PARAM0_ to _PARAM2_ degrees", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyAngleVariance" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Angle variance (degrees) Range: 0 to 180", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the number of bullets shot every time the \"fire bullet\" action is used.", + "fullName": "Set number of bullets per shot", + "functionType": "Action", + "group": "Multi-Fire", + "name": "SetBulletQuantity", + "sentence": "Set number of bullets per shot of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyBulletQuantity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Bullets", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Enable bullet rotation.", + "fullName": "Enable (or disable) bullet rotation", + "functionType": "Action", + "group": "Firing", + "name": "SetRotateBullet", + "sentence": "Enable bullet rotation on _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"RotateBullet\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyRotateBullet" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"RotateBullet\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyRotateBullet" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "defaultValue": "yes", + "description": "Rotate bullet to match trajetory", + "name": "RotateBullet", + "optional": true, + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "Enable unlimited ammo.", + "fullName": "Enable (or disable) unlimited ammo", + "functionType": "Action", + "group": "Ammo", + "name": "SetUnlimitedAmmo", + "sentence": "Enable unlimited ammo on _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"UnlimitedAmmo\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyUnlimitedAmmo" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"UnlimitedAmmo\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyUnlimitedAmmo" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "defaultValue": "yes", + "description": "Unlimited ammo", + "name": "UnlimitedAmmo", + "optional": true, + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "Change the firing cooldown, which changes the rate of fire.", + "fullName": "Set firing cooldown", + "functionType": "Action", + "group": "Firing", + "name": "SetCooldown", + "sentence": "Set the fire rate of _PARAM0_ to _PARAM2_ seconds", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyFireCooldown" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"NewCooldown\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Cooldown in seconds", + "name": "NewCooldown", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the duration to reload ammo.", + "fullName": "Set reload duration", + "functionType": "Action", + "group": "Reload", + "name": "SetReloadDuration", + "sentence": "Set the reload duration of _PARAM0_ to _PARAM2_ seconds", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyReloadDuration" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Reload duration (seconds)", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the duration after becoming overheated.", + "fullName": "Set overheat duration", + "functionType": "Action", + "group": "Overheat", + "name": "SetOverheatDuration", + "sentence": "Set the overheat duration of _PARAM0_ to _PARAM2_ seconds", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyOverheatDuration" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Overheat duration (seconds)", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the quantity of ammo.", + "fullName": "Set ammo quantity", + "functionType": "Action", + "group": "Ammo", + "name": "SetAmmoQuantity", + "sentence": "Set the ammo quantity of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyAmmoQuantity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Ammo", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the heat increase per shot.", + "fullName": "Set heat increase per shot", + "functionType": "Action", + "group": "Overheat", + "name": "SetHeatPerShot", + "sentence": "Set the heat increase of _PARAM0_ to _PARAM2_ per shot", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyHeatIncreasePerShot" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Heat increase per shot (Range: 0 to 1)", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the max ammo.", + "fullName": "Set max ammo", + "functionType": "Action", + "group": "Ammo", + "name": "SetMaxAmmo", + "sentence": "Set the max ammo of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyMaxAmmo" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyMaxAmmo" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyAmmoQuantity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "min(Object.Behavior::MaxAmmo(),Object.Behavior::AmmoQuantity())" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Max ammo", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Reset total shots fired.", + "fullName": "Reset total shots fired", + "functionType": "Action", + "group": "Stats", + "name": "ResetTotalShotsFired", + "sentence": "Reset total shots fired by _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyTotalShotsFired" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Reset total bullets created.", + "fullName": "Reset total bullets created", + "functionType": "Action", + "group": "Stats", + "name": "ResetTotalBulletsCreated", + "sentence": "Reset total bullets created by _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyTotalBulletsCreated" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Reset total reloads completed.", + "fullName": "Reset total reloads completed", + "functionType": "Action", + "group": "Stats", + "name": "ResetTotalReloadsCompleted", + "sentence": "Reset total reloads completed by _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyTotalReloadsCompleted" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Change the number of shots per reload.", + "fullName": "Set shots per reload", + "functionType": "Action", + "group": "Reload", + "name": "SetShotsPerReload", + "sentence": "Set the shots per reload of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyShotsPerReload" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyShotsBeforeNextReload" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "Object.Behavior::PropertyShotsPerReload()" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyShotsBeforeNextReload" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyShotsPerReload()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Shots per reload", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Enable (or disable) automatic reloading.", + "fullName": "Enable (or disable) automatic reloading", + "functionType": "Action", + "group": "Reload", + "name": "SetAutomaticReload", + "sentence": "Enable automatic reloading on _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyAutomaticReloading" + }, + "parameters": [ + "Object", + "Behavior", + "=" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Value\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyAutomaticReloading" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "defaultValue": "yes", + "description": "Enable automatic reloading", + "name": "Value", + "optional": true, + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "Change the linear rate of cooling.", + "fullName": "Set linear cooling rate", + "functionType": "Action", + "group": "Overheat", + "name": "SetLinearCoolingRate", + "sentence": "Set the linear cooling rate of _PARAM0_ to _PARAM2_ per second", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyLinearCoolingRate" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Heat cooling rate (per second)", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the exponential rate of cooling.", + "fullName": "Set exponential cooling rate", + "functionType": "Action", + "group": "Overheat", + "name": "SetExponentialCoolingRate", + "sentence": "Set the exponential cooling rate of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyExponentialCoolingRate" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Exponential cooling rate", + "name": "Value", + "supplementaryInformation": "[\"Exponential\",\"Linear\"]", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Increase ammo quantity.", + "fullName": "Increase ammo", + "functionType": "Action", + "name": "IncreaseAmmo", + "sentence": "Increase ammo of _PARAM0_ by _PARAM2_ shots", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyAmmoQuantity" + }, + "parameters": [ + "Object", + "Behavior", + "+", + "GetArgumentAsNumber(\"AmmoGained\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "If Max Ammo is set, do not exceed the value", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyMaxAmmo" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyAmmoQuantity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "min(Object.Behavior::MaxAmmo(),Object.Behavior::AmmoQuantity())" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::IsReloadNeeded" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + }, + { + "type": { + "value": "FireBullet::FireBullet::PropertyAutomaticReloading" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::ReloadAmmo" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Ammo gained", + "name": "AmmoGained", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Number of bullets to shoot at once (evenly spaced inside the Firing Arc).", + "fullName": "Bullet quantity", + "functionType": "Expression", + "group": "Multi-Fire", + "name": "BulletQuantity", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyBulletQuantity()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Angle variance, in degrees.", + "fullName": "Angle variance", + "functionType": "Expression", + "group": "Firing", + "name": "AngleVariance", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyAngleVariance()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Firing arc, in degrees.", + "fullName": "Firing arc", + "functionType": "Expression", + "group": "Multi-Fire", + "name": "FiringArc", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyFiringArc()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Heat level (Range: 0 to 1).", + "fullName": "Heat level", + "functionType": "Expression", + "group": "Overheat", + "name": "HeatLevel", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "min(1,Object.Behavior::PropertyHeatLevel())" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Firing cooldown, in seconds.", + "fullName": "Firing cooldown", + "functionType": "Expression", + "group": "Firing", + "name": "Cooldown", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyFireCooldown()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Reload duration, in seconds.", + "fullName": "Reload duration", + "functionType": "Expression", + "group": "Ammo", + "name": "ReloadDuration", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyReloadDuration()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Overheat duration, in seconds.", + "fullName": "Overheat duration", + "functionType": "Expression", + "group": "Overheat", + "name": "OverheatDuration", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyOverheatDuration()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Heat increase per shot.", + "fullName": "Heat increase per shot", + "functionType": "Expression", + "group": "Overheat", + "name": "HeatIncreasePerShot", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyHeatIncreasePerShot()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Linear cooling rate, per second.", + "fullName": "Linear cooling rate", + "functionType": "Expression", + "group": "Overheat", + "name": "LinearCoolingRate", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyLinearCoolingRate()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Exponential cooling rate, per second.", + "fullName": "Exponential cooling rate", + "functionType": "Expression", + "group": "Overheat", + "name": "ExponentialCoolingRate", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyExponentialCoolingRate()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Max ammo.", + "fullName": "Max ammo", + "functionType": "Expression", + "group": "Ammo", + "name": "MaxAmmo", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyMaxAmmo()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Total shots fired (multi-bullet shots are considered one shot).", + "fullName": "Shots fired", + "functionType": "Expression", + "group": "Stats", + "name": "TotalShotsFired", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyTotalShotsFired()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Total bullets created.", + "fullName": "Bullets created", + "functionType": "Expression", + "group": "Stats", + "name": "TotalBulletsCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyTotalBulletsCreated()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Reloads completed.", + "fullName": "Reloads completed", + "functionType": "Expression", + "group": "Stats", + "name": "TotalReloadsCompleted", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyTotalReloadsCompleted()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Ammo quantity.", + "fullName": "Ammo quantity", + "functionType": "Expression", + "group": "Ammo", + "name": "AmmoQuantity", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyAmmoQuantity()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Shots remaining before the next reload is required.", + "fullName": "Shots before next reload", + "functionType": "Expression", + "group": "Reload", + "name": "ShotsBeforeNextReload", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyShotsBeforeNextReload()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Shots per reload.", + "fullName": "Shots per reload", + "functionType": "Expression", + "group": "Reload", + "name": "ShotsPerReload", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyShotsPerReload()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Seconds remaining before the cooldown will permit a bullet to be fired.", + "fullName": "Time remaining before a bullet may be fired", + "functionType": "Expression", + "group": "Firing", + "name": "CooldownTimeLeft", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "max(0,Object.Behavior::Cooldown() - Object.ObjectTimerElapsedTime(\"__FireBullet.FiringCooldown\"))" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Seconds remaining before the overheat penalty ends.", + "fullName": "Time remaining before overheat penalty ends", + "functionType": "Expression", + "group": "Overheat", + "name": "OverheatTimeLeft", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CompareObjectTimer" + }, + "parameters": [ + "Object", + "\"__FireBullet.OverheatDuration\"", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "max(0, Object.Behavior::PropertyOverheatDuration() - Object.ObjectTimerElapsedTime(\"__FireBullet.OverheatDuration\"))" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if object is currently performing an ammo reload.", + "fullName": "Is ammo reloading in progress", + "functionType": "Condition", + "group": "Reload", + "name": "IsReloadInProgress", + "sentence": "_PARAM0_ is reloading ammo", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyReloadInProgress" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if object is ready to shoot.", + "fullName": "Is ready to shoot", + "functionType": "Condition", + "group": "Firing", + "name": "IsReadyToShoot", + "sentence": "_PARAM0_ is ready to shoot", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Check if ready to shoot", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Verify that the gun has ammo", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "FireBullet::FireBullet::IsOutOfAmmo" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Verify that the gun does not need to be reloaded and is not currently reloading", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "FireBullet::FireBullet::IsReloadNeeded" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + }, + { + "type": { + "inverted": true, + "value": "FireBullet::FireBullet::IsReloadInProgress" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Verify gun is not shooting sooner than the proper rate of fire", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "FireBullet::FireBullet::IsFiringCooldownActive" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Verify the gun is not overheated", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "FireBullet::FireBullet::IsOverheated" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ] + } + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if automatic reloading is enabled.", + "fullName": "Is automatic reloading enabled", + "functionType": "Condition", + "group": "Reload", + "name": "IsAutomaticReloadingEnabled", + "sentence": "Automatic reloading is enabled on_PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyAutomaticReloading" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if ammo is unlimited.", + "fullName": "Is ammo unlimited", + "functionType": "Condition", + "group": "Ammo", + "name": "IsUnlimitedAmmo", + "sentence": "_PARAM0_ has unlimited ammo", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyUnlimitedAmmo" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if object has no ammo available.", + "fullName": "Is out of ammo", + "functionType": "Condition", + "group": "Ammo", + "name": "IsOutOfAmmo", + "sentence": "_PARAM0_ is out of ammo", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "FireBullet::FireBullet::IsUnlimitedAmmo" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + }, + { + "type": { + "value": "FireBullet::FireBullet::PropertyAmmoQuantity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if object needs to reload ammo.", + "fullName": "Is a reload needed", + "functionType": "Condition", + "group": "Reload", + "name": "IsReloadNeeded", + "sentence": "_PARAM0_ needs to reload ammo", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Shots per reload must not be \"0\"", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyShotsPerReload" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + }, + { + "type": { + "value": "FireBullet::FireBullet::PropertyShotsBeforeNextReload" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if object is overheated.", + "fullName": "Is overheated", + "functionType": "Condition", + "group": "Overheat", + "name": "IsOverheated", + "sentence": "_PARAM0_ is overheated", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyHeatLevel" + }, + "parameters": [ + "Object", + "Behavior", + ">=", + "1" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::CompareNumbers" + }, + "parameters": [ + "Object.Behavior::OverheatTimeLeft()", + ">", + "0" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if firing cooldown is active.", + "fullName": "Is firing cooldown active", + "functionType": "Condition", + "group": "Firing", + "name": "IsFiringCooldownActive", + "sentence": "Firing cooldown is active on _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareNumbers" + }, + "parameters": [ + "Object.Behavior::CooldownTimeLeft()", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "0.1", + "type": "Number", + "label": "Firing cooldown (seconds)", + "description": "Object cannot shoot while firing cooldown is active", + "group": "Shooting configuration", + "extraInformation": [], + "hidden": false, + "name": "FireCooldown" + }, + { + "value": "", + "type": "Boolean", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "HasJustFired" + }, + { + "value": "45", + "type": "Number", + "label": "Firing arc (degrees)", + "description": "Multi-Fire bullets will be evenly spaced inside the Firing Arc", + "group": "Multi-Fire", + "extraInformation": [], + "hidden": false, + "name": "FiringArc" + }, + { + "value": "1", + "type": "Number", + "label": "Number of bullets created at once (Multi-Fire)", + "description": "Multi-Fire bullets will be evenly spaced inside the Firing Arc", + "group": "Multi-Fire", + "extraInformation": [], + "hidden": false, + "name": "BulletQuantity" + }, + { + "value": "0", + "type": "Number", + "label": "Angle variance (degrees)", + "description": "Used to simulate imperfect aim (Range: 0 to 180 degrees)", + "group": "Shooting configuration", + "extraInformation": [], + "hidden": false, + "name": "AngleVariance" + }, + { + "value": "true", + "type": "Boolean", + "label": "Rotate bullet to match trajectory", + "description": "", + "group": "Shooting configuration", + "extraInformation": [], + "hidden": false, + "name": "RotateBullet" + }, + { + "value": "0", + "type": "Number", + "label": "Ammo quantity (current)", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "AmmoQuantity" + }, + { + "value": "0", + "type": "Number", + "label": "Shots per reload ", + "description": "Use 0 to disable reloading", + "group": "Reload", + "extraInformation": [], + "hidden": false, + "name": "ShotsPerReload" + }, + { + "value": "1", + "type": "Number", + "label": "Reloading duration (seconds)", + "description": "Object cannot shoot while reloading is in progress", + "group": "Reload", + "extraInformation": [], + "hidden": false, + "name": "ReloadDuration" + }, + { + "value": "0", + "type": "Number", + "label": "Max ammo ", + "description": "Use \"0\" to disable restrictions on ammo capacity", + "group": "Ammo", + "extraInformation": [], + "hidden": false, + "name": "MaxAmmo" + }, + { + "value": "0", + "type": "Number", + "label": "Shots before next reload", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "ShotsBeforeNextReload" + }, + { + "value": "0", + "type": "Number", + "label": "Total shots fired", + "description": "Regardless of how many bullets are created, only 1 shot will be counted per frame", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "TotalShotsFired" + }, + { + "value": "0", + "type": "Number", + "label": "Total bullets created", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "TotalBulletsCreated" + }, + { + "value": "0", + "type": "Number", + "label": "Starting ammo", + "description": "", + "group": "Ammo", + "extraInformation": [], + "hidden": false, + "name": "StartingAmmo" + }, + { + "value": "0", + "type": "Number", + "label": "Total reloads completed", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "TotalReloadsCompleted" + }, + { + "value": "true", + "type": "Boolean", + "label": "Unlimited ammo", + "description": "", + "group": "Ammo", + "extraInformation": [], + "hidden": false, + "name": "UnlimitedAmmo" + }, + { + "value": "", + "type": "Boolean", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "ReloadInProgress" + }, + { + "value": "0", + "type": "Number", + "label": "Heat increase per shot (Range: 0 to 1)", + "description": " Object is overheated when Heat reaches 1", + "group": "Overheat", + "extraInformation": [], + "hidden": false, + "name": "HeatIncreasePerShot" + }, + { + "value": "0", + "type": "Number", + "label": "Heat level (Range: 0 to 1)", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "HeatLevel" + }, + { + "value": "true", + "type": "Boolean", + "label": "Reload automatically", + "description": "", + "group": "Reload", + "extraInformation": [], + "hidden": false, + "name": "AutomaticReloading" + }, + { + "value": "0", + "type": "Number", + "label": "Overheat duration (seconds) ", + "description": "Object cannot shoot while overheat duration is active", + "group": "Overheat", + "extraInformation": [], + "hidden": false, + "name": "OverheatDuration" + }, + { + "value": "0.1", + "type": "Number", + "label": "Linear cooling rate (per second)", + "description": "", + "group": "Overheat", + "extraInformation": [], + "hidden": false, + "name": "LinearCoolingRate" + }, + { + "value": "0.3", + "type": "Number", + "label": "Exponential cooling rate (per second)", + "description": "Exponential cooling happens faster when heat is high and slower when heat is low", + "group": "Overheat", + "extraInformation": [ + "Linear", + "Exponential" + ], + "hidden": false, + "name": "ExponentialCoolingRate" + } + ], + "sharedPropertyDescriptors": [] + } + ], + "eventsBasedObjects": [] + }, + { + "author": "Tristan Rhodes (https://victrisgames.itch.io/), D8H", + "category": "Input", + "extensionNamespace": "", + "fullName": "Resource bar", + "helpPath": "", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iSWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMzIgMzIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMyIDMyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQo8L3N0eWxlPg0KPGNpcmNsZSBjbGFzcz0ic3QwIiBjeD0iMjMiIGN5PSI3IiByPSIzIi8+DQo8bGluZSBjbGFzcz0ic3QwIiB4MT0iMyIgeTE9IjciIHgyPSIyMCIgeTI9IjciLz4NCjxsaW5lIGNsYXNzPSJzdDAiIHgxPSIyOSIgeTE9IjciIHgyPSIyNiIgeTI9IjciLz4NCjxjaXJjbGUgY2xhc3M9InN0MCIgY3g9IjEyIiBjeT0iMTYiIHI9IjMiLz4NCjxsaW5lIGNsYXNzPSJzdDAiIHgxPSIzIiB5MT0iMTYiIHgyPSI5IiB5Mj0iMTYiLz4NCjxsaW5lIGNsYXNzPSJzdDAiIHgxPSIyOSIgeTE9IjE2IiB4Mj0iMTUiIHkyPSIxNiIvPg0KPGNpcmNsZSBjbGFzcz0ic3QwIiBjeD0iMjMiIGN5PSIyNSIgcj0iMyIvPg0KPGxpbmUgY2xhc3M9InN0MCIgeDE9IjMiIHkxPSIyNSIgeDI9IjIwIiB5Mj0iMjUiLz4NCjxsaW5lIGNsYXNzPSJzdDAiIHgxPSIyOSIgeTE9IjI1IiB4Mj0iMjYiIHkyPSIyNSIvPg0KPC9zdmc+DQo=", + "name": "ResourceBar", + "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/Line Hero Pack/Master/SVG/UI Essentials/UI Essentials_sliders_options.svg", + "shortDescription": "Display a bar that represents a resource in the game (health, mana, ammo, etc)", + "version": "0.0.1", + "description": "The resource bar can be displayed using these objects:\n\n- Shape painter\n- Tiled sprite\n- Sprite\n", + "origin": { + "identifier": "ResourceBar", + "name": "gdevelop-extension-store" + }, + "tags": [ + "resource", + "bar", + "shape painter", + "health", + "mana", + "shield", + "hearts", + "lives", + "ammo" + ], + "authorIds": [ + "gqDaZjCfevOOxBYkK6zlhtZnXCg1", + "q8ubdigLvIRXLxsJDDTaokO41mc2" + ], + "dependencies": [], + "eventsFunctions": [], + "eventsBasedBehaviors": [ + { + "description": "Draws a solid bar that represents a resource in the game (health, shield, mana, ammo, etc)", + "fullName": "Resource bar (shape painter)", + "name": "ResourceBar_ShapePainter", + "objectType": "PrimitiveDrawing::Drawer", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Make sure object doesn't get redrawn every frame", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::ClearBetweenFrames" + }, + "parameters": [ + "Object", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Use correct min value (instead of always starting at 0)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::SetPropertyValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyValueMin()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::UpdateHitbox" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_ShapePainter", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPostEvents", + "sentence": "", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Draw resource bar (if needed)", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::PropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior" + ] + }, + { + "type": { + "value": "Visible" + }, + "parameters": [ + "Object" + ] + }, + { + "type": { + "value": "LayerVisible" + }, + "parameters": [ + "", + "Object.Layer()" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + }, + { + "type": { + "value": "PrimitiveDrawing::Drawer::ClearShapes" + }, + "parameters": [ + "Object" + ] + } + ], + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Inactive Bar", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Set inactive Bar parameters", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::FillColor" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyInactiveBarColor()" + ] + }, + { + "type": { + "value": "PrimitiveDrawing::FillOpacity" + }, + "parameters": [ + "Object", + "=", + "Object.Behavior::PropertyInactiveBarOpacity()" + ] + }, + { + "type": { + "value": "PrimitiveDrawing::OutlineOpacity" + }, + "parameters": [ + "Object", + "=", + "0" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Draw inactive Bar", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::Rectangle" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyValueOffset()", + "0", + "Object.Behavior::PropertyBarLength()", + "Object.Behavior::PropertyBarThickness()" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Active Bar", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Set active Bar parameters", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::FillColor" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyActiveBarColor()" + ] + }, + { + "type": { + "value": "PrimitiveDrawing::FillOpacity" + }, + "parameters": [ + "Object", + "=", + "Object.Behavior::PropertyActiveBarOpacity()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Draw active Bar", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::Rectangle" + }, + "parameters": [ + "Object", + "0", + "0", + "Object.Behavior::PropertyValueOffset()", + "Object.Behavior::PropertyBarThickness()" + ] + } + ] + } + ], + "parameters": [] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_ShapePainter", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Draw a resource bar that shows current and max values.", + "fullName": "Draw a resource bar (shape painter)", + "functionType": "Action", + "name": "DrawResourceBar", + "sentence": "Draw a resource bar using _PARAM0_ with current value _PARAM2_ and max value _PARAM3_", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Set values", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::SetValue" + }, + "parameters": [ + "Object", + "Behavior", + "Tween::Ease(Object.Behavior::PropertyEasing(), Object.Behavior::Value(), GetArgumentAsNumber(\"CurrentValue\"), Object.Behavior::PropertyEasingSpeed())", + "" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::SetValueMax" + }, + "parameters": [ + "Object", + "Behavior", + "GetArgumentAsNumber(\"MaxValue\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_ShapePainter", + "type": "behavior" + }, + { + "description": "Current value", + "name": "CurrentValue", + "type": "expression" + }, + { + "description": "Max value", + "name": "MaxValue", + "supplementaryInformation": "Health::Health", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Draw a resource bar based on the health points of an object.", + "fullName": "Draw a health bar", + "functionType": "Action", + "name": "DrawHealthBar", + "sentence": "Draw a resource bar using _PARAM0_ based on the health points of _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Set values", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::SetValue" + }, + "parameters": [ + "Object", + "Behavior", + "Tween::Ease(Object.Behavior::PropertyEasing(), Object.Behavior::Value(), ObjectWithHealth.HealthBehavior::Health(), Object.Behavior::PropertyEasingSpeed())", + "" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::SetValueMax" + }, + "parameters": [ + "Object", + "Behavior", + "ObjectWithHealth.HealthBehavior::MaxHealth()", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_ShapePainter", + "type": "behavior" + }, + { + "description": "Object with health", + "name": "ObjectWithHealth", + "type": "objectList" + }, + { + "description": "Health behavior", + "name": "HealthBehavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Draw a resource bar based on the shield points of an object.", + "fullName": "Draw a shield bar", + "functionType": "Action", + "name": "DrawShieldBar", + "sentence": "Draw a resource bar using _PARAM0_ based on the shield points of _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Set values", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::SetValue" + }, + "parameters": [ + "Object", + "Behavior", + "Tween::Ease(Object.Behavior::PropertyEasing(), Object.Behavior::Value(), ObjectWithShield.ShieldBehavior::ShieldPoints(), Object.Behavior::PropertyEasingSpeed())", + "" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::SetValueMax" + }, + "parameters": [ + "Object", + "Behavior", + "ObjectWithShield.ShieldBehavior::MaxShield()", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_ShapePainter", + "type": "behavior" + }, + { + "description": "Object with shield", + "name": "ObjectWithShield", + "type": "objectList" + }, + { + "description": "Shield behavior", + "name": "ShieldBehavior", + "supplementaryInformation": "Health::Shield", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Draw a resource bar based on the ammo of an object.", + "fullName": "Draw an ammo bar", + "functionType": "Action", + "name": "DrawAmmoBar", + "sentence": "Draw a resource bar using _PARAM0_ based on the ammo of _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Set values", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::SetValue" + }, + "parameters": [ + "Object", + "Behavior", + "Tween::Ease(Object.Behavior::PropertyEasing(), Object.Behavior::Value(), ObjectWithFireBullet.FireBulletBehavior::AmmoQuantity(), Object.Behavior::PropertyEasingSpeed())", + "" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::SetValueMax" + }, + "parameters": [ + "Object", + "Behavior", + "ObjectWithFireBullet.FireBulletBehavior::MaxAmmo()", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_ShapePainter", + "type": "behavior" + }, + { + "description": "Object with fire bullet", + "name": "ObjectWithFireBullet", + "type": "objectList" + }, + { + "description": "Fire bullet behavior", + "name": "FireBulletBehavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Value of the resource.", + "fullName": "Resource value", + "functionType": "Expression", + "group": "Resource value", + "name": "Value", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyValue()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_ShapePainter", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Change the value of the resource.", + "fullName": "Resource value", + "functionType": "Action", + "group": "Resource value", + "name": "SetValue", + "sentence": "Change the value of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::PropertyTickSpacing" + }, + "parameters": [ + "Object", + "Behavior", + "<=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::SetPropertyValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::PropertyTickSpacing" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::SetPropertyValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "round(GetArgumentAsNumber(\"Value\") / Object.Behavior::PropertyTickSpacing()) * Object.Behavior::PropertyTickSpacing()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::PropertyValue" + }, + "parameters": [ + "Object", + "Behavior", + "<", + "Object.Behavior::PropertyValueMin()" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::SetPropertyValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyValueMin()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::PropertyValue" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "Object.Behavior::PropertyValueMax()" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::SetPropertyValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyValueMax()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Set the proper offset", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::SetPropertyValueOffset" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyBarLength() * (Object.Behavior::PropertyValue() - Object.Behavior::PropertyValueMin()) / (Object.Behavior::PropertyValueMax() - Object.Behavior::PropertyValueMin())" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_ShapePainter", + "type": "behavior" + }, + { + "description": "Resource value", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Minimum value of the resource.", + "fullName": "Resource minimum value", + "functionType": "Expression", + "group": "Resource value", + "name": "ValueMin", + "sentence": "Change the maximum value of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyValueMin()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_ShapePainter", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Change the minimum value of the resource.", + "fullName": "Resource minimum value", + "functionType": "Action", + "group": "Resource value", + "name": "SetValueMin", + "sentence": "Change the minimum value of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::SetPropertyValueMin" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"ValueMin\")" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::SetValue" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::Value()", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_ShapePainter", + "type": "behavior" + }, + { + "description": "Minimum value", + "name": "ValueMin", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Maximum value of the resource.", + "fullName": "Resource maximum value", + "functionType": "Expression", + "group": "Resource value", + "name": "ValueMax", + "sentence": "Change the maximum value of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyValueMax()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_ShapePainter", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Thickness of the resource bar.", + "fullName": "Resource bar thickness", + "functionType": "Expression", + "group": "Resource bar configuration", + "name": "BarThickness", + "sentence": "Change the maximum value of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyBarThickness()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_ShapePainter", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Length of the resource bar.", + "fullName": "Resource bar length", + "functionType": "Expression", + "group": "Resource bar configuration", + "name": "BarLength", + "sentence": "Change the maximum value of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyBarLength()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_ShapePainter", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Change the maximum value of the resource.", + "fullName": "Resource maximum value", + "functionType": "Action", + "group": "Resource value", + "name": "SetValueMax", + "sentence": "Change the maximum value of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::SetPropertyValueMax" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"ValueMax\")" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::SetValue" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::Value()", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_ShapePainter", + "type": "behavior" + }, + { + "description": "Maximum value", + "name": "ValueMax", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Tick spacing of the resource bar.", + "fullName": "Tick spacing", + "functionType": "Expression", + "group": "Resource bar configuration", + "name": "TickSpacing", + "sentence": "Change the tick spacing of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyTickSpacing()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_ShapePainter", + "type": "behavior" + }, + { + "description": "Tick spacing", + "name": "TickSpacing", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the tick spacing of the resource bar.", + "fullName": "Tick spacing", + "functionType": "Action", + "group": "Resource bar configuration", + "name": "SetTickSpacing", + "sentence": "Change the tick spacing of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::SetPropertyTickSpacing" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"TickSpacing\")" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::SetValue" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::Value()", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_ShapePainter", + "type": "behavior" + }, + { + "description": "Tick spacing", + "name": "TickSpacing", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change length of the resource bar.", + "fullName": "Bar length", + "functionType": "Action", + "group": "Resource bar configuration", + "name": "SetBarLength", + "sentence": "Change length of _PARAM0_ to _PARAM2_ px", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::SetPropertyBarLength" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::UpdateHitbox" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::SetValue" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyValue()", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_ShapePainter", + "type": "behavior" + }, + { + "description": "Bar width", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change thickness of the resource bar.", + "fullName": "Bar thickness", + "functionType": "Action", + "group": "Resource bar configuration", + "name": "SetBarThickness", + "sentence": "Change thickness of _PARAM0_ to _PARAM2_ px", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::SetPropertyBarThickness" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_ShapePainter", + "type": "behavior" + }, + { + "description": "Bar thickness", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change opacity of the inactive portion of a resource bar.", + "fullName": "Inactive opacity", + "functionType": "Action", + "group": "Resource bar configuration", + "name": "SetInactiveBarOpacity", + "sentence": "Change opacity of inactive part of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::SetPropertyInactiveBarOpacity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_ShapePainter", + "type": "behavior" + }, + { + "description": "Inactive bar opacity", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change opacity of the active portion of a resource bar.", + "fullName": "Active bar opacity", + "functionType": "Action", + "group": "Resource bar configuration", + "name": "SetActiveBarOpacity", + "sentence": "Change opacity of active part of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::SetPropertyActiveBarOpacity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_ShapePainter", + "type": "behavior" + }, + { + "description": "Active bar opacity", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the color of the active area of bar.", + "fullName": "Active bar color ", + "functionType": "Action", + "group": "Resource bar configuration", + "name": "SetActiveBarColor", + "sentence": "Change active bar color of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::SetPropertyActiveBarColor" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Color\")" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_ShapePainter", + "type": "behavior" + }, + { + "description": "Active bar color", + "name": "Color", + "type": "color" + } + ], + "objectGroups": [] + }, + { + "description": "Change the color of the inactive area of bar.", + "fullName": "Inactive bar color", + "functionType": "Action", + "group": "Resource bar configuration", + "name": "SetInactiveBarColor", + "sentence": "Change inactive bar color of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::SetPropertyInactiveBarColor" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Color\")" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_ShapePainter::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_ShapePainter", + "type": "behavior" + }, + { + "description": "Inactive bar color", + "name": "Color", + "type": "color" + } + ], + "objectGroups": [] + }, + { + "description": "Update the hitbox.", + "fullName": "Update hitbox", + "functionType": "Action", + "group": "Private", + "name": "UpdateHitbox", + "private": true, + "sentence": "Update the hitbox of _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::SetRotationCenter" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyBarLength() / 2", + "Object.Behavior::PropertyBarThickness() / 2" + ] + }, + { + "type": { + "value": "PrimitiveDrawing::SetRectangularCollisionMask" + }, + "parameters": [ + "Object", + "0", + "0", + "Object.Behavior::PropertyBarLength()", + "Object.Behavior::PropertyBarThickness()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_ShapePainter", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "0", + "type": "Number", + "label": "Minimum value", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "ValueMin" + }, + { + "value": "1", + "type": "Number", + "label": "Maximum value", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "ValueMax" + }, + { + "value": "0", + "type": "Number", + "label": "Tick spacing", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "TickSpacing" + }, + { + "value": "200", + "type": "Number", + "label": "Bar length", + "description": "", + "group": "Bar", + "extraInformation": [], + "hidden": false, + "name": "BarLength" + }, + { + "value": "16", + "type": "Number", + "label": "Bar thickness", + "description": "", + "group": "Bar", + "extraInformation": [], + "hidden": false, + "name": "BarThickness" + }, + { + "value": "11;255;0", + "type": "Color", + "label": "Inactive Bar color", + "description": "", + "group": "Bar", + "extraInformation": [], + "hidden": false, + "name": "InactiveBarColor" + }, + { + "value": "96", + "type": "Number", + "label": "Inactive Bar opacity", + "description": "", + "group": "Bar", + "extraInformation": [], + "hidden": false, + "name": "InactiveBarOpacity" + }, + { + "value": " 11;255;0", + "type": "Color", + "label": "Active Bar color", + "description": "", + "group": "Bar", + "extraInformation": [], + "hidden": false, + "name": "ActiveBarColor" + }, + { + "value": "255", + "type": "Number", + "label": "Active Bar opacity", + "description": "", + "group": "Bar", + "extraInformation": [], + "hidden": false, + "name": "ActiveBarOpacity" + }, + { + "value": "0", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "Value" + }, + { + "value": "0", + "type": "Number", + "label": "", + "description": "Distance from the object origin to where the active and inactive bar touch", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "ValueOffset" + }, + { + "value": "true", + "type": "Boolean", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "NeedRedraw" + }, + { + "value": "easeOutCirc", + "type": "Choice", + "label": "Easing", + "description": "Easing used to change the displayed value of the resource bar. (Note: Changes to the Value property are always instant)", + "group": "", + "extraInformation": [ + "easeOutCirc" + ], + "hidden": false, + "name": "Easing" + }, + { + "value": "0.05", + "type": "Number", + "label": "Easing speed (Range: 0 to 1)", + "description": "Higher values mean faster movement. Value of \"1\" means instant change.", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "EasingSpeed" + } + ], + "sharedPropertyDescriptors": [] + }, + { + "description": "Displays a line of objects that represent a resource in the game (hearts, lives, ammo, etc). \nUse the same image for the resource bar and the unit objects.", + "fullName": "Resource bar (sprite)", + "name": "ResourceBar_Sprite", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Cache" + }, + "parameters": [ + "Object" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_Sprite", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Draw a resource bar made from sprite objects.", + "fullName": "Draw a resource bar (sprite)", + "functionType": "Action", + "name": "DrawResourceBar", + "sentence": "Draw a resource bar located at _PARAM0_ that is made from _PARAM2_", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Create unit objects", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "infiniteLoopWarning": true, + "type": "BuiltinCommonInstructions::While", + "whileConditions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::PropertyNextUnitToCreate" + }, + "parameters": [ + "Object", + "Behavior", + "<", + "max(Object.Behavior::PropertyQuantity(), Object.Behavior::PropertyMaxQuantity())" + ] + } + ], + "conditions": [], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "UnitObject", + "Object.X() + Object.Width() * (Object.Behavior::PropertyNextUnitToCreate())", + "Object.Y()", + "Object.Layer()" + ] + }, + { + "type": { + "value": "SetSize" + }, + "parameters": [ + "UnitObject", + "Object.Width()", + "Object.Height()" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "UnitObject", + "__ResourceBar.UnitID", + "=", + "Object.Behavior::PropertyNextUnitToCreate()" + ] + }, + { + "type": { + "value": "LinkedObjects::LinkObjects" + }, + "parameters": [ + "", + "Object", + "UnitObject" + ] + }, + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetPropertyNextUnitToCreate" + }, + "parameters": [ + "Object", + "Behavior", + "+", + "1" + ] + } + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Update state of units", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "LinkedObjects::PickObjectsLinkedTo" + }, + "parameters": [ + "", + "UnitObject", + "Object", + "" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::ForEach", + "object": "UnitObject", + "conditions": [], + "actions": [], + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Delete units higher than desired value", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Delete objects higher than max value", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareNumbers" + }, + "parameters": [ + "Object.Behavior::PropertyMaxQuantity()", + ">", + "0" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::CompareNumbers" + }, + "parameters": [ + "UnitObject.Variable(__ResourceBar.UnitID)", + ">=", + "Object.Behavior::PropertyMaxQuantity()" + ] + } + ], + "actions": [ + { + "type": { + "value": "Delete" + }, + "parameters": [ + "UnitObject", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "If no max value, delete objects greater than current value", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareNumbers" + }, + "parameters": [ + "Object.Behavior::PropertyMaxQuantity()", + "=", + "0" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::CompareNumbers" + }, + "parameters": [ + "UnitObject.Variable(__ResourceBar.UnitID)", + ">=", + "Object.Behavior::PropertyQuantity()" + ] + } + ], + "actions": [ + { + "type": { + "value": "Delete" + }, + "parameters": [ + "UnitObject", + "" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Update active units", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareNumbers" + }, + "parameters": [ + "UnitObject.Variable(__ResourceBar.UnitID)", + "<", + "Object.Behavior::PropertyQuantity()" + ] + } + ], + "actions": [ + { + "type": { + "value": "Opacity" + }, + "parameters": [ + "UnitObject", + "=", + "Object.Behavior::PropertyActiveUnitOpacity()" + ] + }, + { + "type": { + "value": "ChangeAnimation" + }, + "parameters": [ + "UnitObject", + "=", + "Object.Behavior::PropertyActiveUnitAnimationNumber()" + ] + } + ], + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Color tint", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Only apply color if it has changed from default value", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareStrings" + }, + "parameters": [ + "Object.Behavior::PropertyActiveUnitColorTint()", + "!=", + "\"\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ChangeColor" + }, + "parameters": [ + "UnitObject", + "Object.Behavior::PropertyActiveUnitColorTint()" + ] + } + ] + } + ], + "parameters": [] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Update empty units", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareNumbers" + }, + "parameters": [ + "UnitObject.Variable(__ResourceBar.UnitID)", + ">=", + "Object.Behavior::PropertyQuantity()" + ] + } + ], + "actions": [], + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Color tint", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Only apply color if it has changed from default value", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareStrings" + }, + "parameters": [ + "Object.Behavior::PropertyEmptyUnitColorTint()", + "!=", + "\"\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ChangeColor" + }, + "parameters": [ + "UnitObject", + "Object.Behavior::PropertyEmptyUnitColorTint()" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Opacity", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Opacity" + }, + "parameters": [ + "UnitObject", + "=", + "Object.Behavior::PropertyEmptyUnitOpacity()" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Animation", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ChangeAnimation" + }, + "parameters": [ + "UnitObject", + "=", + "Object.Behavior::PropertyEmptyUnitAnimationNumber()" + ] + } + ] + } + ], + "parameters": [] + } + ] + } + ], + "parameters": [] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Update counter", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetPropertyNextUnitToCreate" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "PickedInstancesCount(UnitObject)" + ] + } + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_Sprite", + "type": "behavior" + }, + { + "description": "Object used to display each unit", + "name": "UnitObject", + "supplementaryInformation": "Sprite", + "type": "objectList" + } + ], + "objectGroups": [] + }, + { + "description": "Apply color tint to empty units. Empty units exist between the current and maximum value.", + "fullName": "Color tint of empty units", + "functionType": "ActionWithOperator", + "getterName": "EmptyUnitColor", + "name": "SetEmptyUnitColor", + "sentence": "Apply color tint _PARAM2_ to empty units of _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetPropertyEmptyUnitColorTint" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_Sprite", + "type": "behavior" + }, + { + "description": "Color tint", + "longDescription": "Use white (\"255;255;255\") to remove all color tint", + "name": "ColorTint", + "type": "color" + } + ], + "objectGroups": [] + }, + { + "description": "Apply color tint to active units.", + "fullName": "Color tint of active units", + "functionType": "ActionWithOperator", + "getterName": "ActiveUnitColor", + "name": "SetActiveUnitColor", + "sentence": "Apply color tint _PARAM2_ to active units of _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetPropertyActiveUnitColorTint" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_Sprite", + "type": "behavior" + }, + { + "description": "Color tint", + "longDescription": "Use white (\"255;255;255\") to remove all color tint", + "name": "ColorTint", + "type": "color" + } + ], + "objectGroups": [] + }, + { + "description": "Change the opacity of empty units. Empty units exist between the current and maximum value.", + "fullName": "Opacity of empty units", + "functionType": "ActionWithOperator", + "getterName": "EmptyUnitOpacity", + "name": "SetEmptyUnitOpacity", + "sentence": "Change the opacity of empty units of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetPropertyEmptyUnitOpacity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_Sprite", + "type": "behavior" + }, + { + "description": "Opacity of empty units", + "longDescription": "Range: 0 to 255", + "name": "Opacity", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the opacity of active units. ", + "fullName": "Opacity of active units", + "functionType": "ActionWithOperator", + "getterName": "ActiveUnitOpacity", + "name": "SetActiveUnitOpacity", + "sentence": "Change the opacity of active units of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetPropertyActiveUnitOpacity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_Sprite", + "type": "behavior" + }, + { + "description": "Opacity of active units", + "longDescription": "Range: 0 to 255", + "name": "Opacity", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the animation of empty units. Empty units exist between the current and maximum value.", + "fullName": "Animation of empty units", + "functionType": "ActionWithOperator", + "getterName": "EmptyUnitAnimation", + "name": "SetEmptyUnitAnimation", + "sentence": "Change the animation of empty units of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetPropertyEmptyUnitAnimationNumber" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_Sprite", + "type": "behavior" + }, + { + "description": "Animation number", + "name": "AnimationNumber", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the animation of empty units. Empty units exist between the current and maximum value.", + "fullName": "Animation of empty units", + "functionType": "ActionWithOperator", + "getterName": "ActiveUnitAnimation", + "name": "SetActiveUnitAnimation", + "sentence": "Change the animation of empty units of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetPropertyActiveUnitAnimationNumber" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_Sprite", + "type": "behavior" + }, + { + "description": "Animation number", + "name": "AnimationNumber", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change maximum units that can be displayed.", + "fullName": "Maximum units", + "functionType": "ActionWithOperator", + "getterName": "MaxQuantity", + "name": "SetMaxQuantity", + "sentence": "Change maximum units of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetPropertyMaxQuantity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_Sprite", + "type": "behavior" + }, + { + "description": "Maximum units", + "name": "Value", + "supplementaryInformation": "Sprite", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the current quantity of units.", + "fullName": "Unit quantity", + "functionType": "ActionWithOperator", + "getterName": "Quantity", + "name": "SetQuantity", + "sentence": "Change the unit quantity of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Prevent values less than 0", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetPropertyQuantity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "max(0,GetArgumentAsNumber(\"Value\"))" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Prevent values more than max (when max is non-zero)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::MaxQuantity" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_Sprite::SetPropertyQuantity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "clamp(GetArgumentAsNumber(\"Value\"), 0, Object.Behavior::PropertyMaxQuantity())" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_Sprite", + "type": "behavior" + }, + { + "description": "Current units", + "name": "Value", + "supplementaryInformation": "Sprite", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "quantity", + "fullName": "Quantity", + "functionType": "ExpressionAndCondition", + "name": "Quantity", + "sentence": "quantity", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyQuantity()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_Sprite", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "active unit color", + "fullName": "Active unit color", + "functionType": "ExpressionAndCondition", + "name": "ActiveUnitColor", + "sentence": "active unit color", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Object.Behavior::PropertyActiveUnitColorTint()" + ] + } + ] + } + ], + "expressionType": { + "type": "color" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_Sprite", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "empty unit color", + "fullName": "Empty unit color", + "functionType": "ExpressionAndCondition", + "name": "EmptyUnitColor", + "sentence": "empty unit color", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Object.Behavior::PropertyEmptyUnitColorTint()" + ] + } + ] + } + ], + "expressionType": { + "type": "color" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_Sprite", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "empty unit opacity", + "fullName": "Empty unit opacity", + "functionType": "ExpressionAndCondition", + "name": "EmptyUnitOpacity", + "sentence": "empty unit opacity", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "ToString(Object.Behavior::PropertyEmptyUnitOpacity())" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_Sprite", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "empty unit animation", + "fullName": "Empty unit animation", + "functionType": "ExpressionAndCondition", + "name": "EmptyUnitAnimation", + "sentence": "empty unit animation", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "ToString(Object.Behavior::PropertyEmptyUnitAnimationNumber())" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_Sprite", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "active unit animation", + "fullName": "Active unit animation", + "functionType": "ExpressionAndCondition", + "name": "ActiveUnitAnimation", + "sentence": "active unit animation", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "ToString(Object.Behavior::PropertyActiveUnitAnimationNumber())" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_Sprite", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "active unit opacity", + "fullName": "Active unit opacity", + "functionType": "ExpressionAndCondition", + "name": "ActiveUnitOpacity", + "sentence": "active unit opacity", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "ToString(Object.Behavior::PropertyActiveUnitOpacity())" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_Sprite", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "max quantity", + "fullName": "Max quantity", + "functionType": "ExpressionAndCondition", + "name": "MaxQuantity", + "sentence": "max quantity", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyMaxQuantity()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_Sprite", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "", + "type": "Number", + "label": "Quantity", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "Quantity" + }, + { + "value": "10", + "type": "Number", + "label": "Maximum quantity (Use \"0\" for unlimited)", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "MaxQuantity" + }, + { + "value": "0", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "NextUnitToCreate" + }, + { + "value": "", + "type": "Color", + "label": "Empty color tint", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "EmptyUnitColorTint" + }, + { + "value": "64", + "type": "Number", + "label": "Opacity of empty units (Range: 0 to 255)", + "description": "Empty units exist between the current and maximum value.", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "EmptyUnitOpacity" + }, + { + "value": "0", + "type": "Number", + "label": "Animation number for empty units", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "EmptyUnitAnimationNumber" + }, + { + "value": "255", + "type": "Number", + "label": "Opacity of active units", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "ActiveUnitOpacity" + }, + { + "value": "", + "type": "Color", + "label": "Color tint of active units", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "ActiveUnitColorTint" + }, + { + "value": "0", + "type": "Number", + "label": "Animation number for active units", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "ActiveUnitAnimationNumber" + } + ], + "sharedPropertyDescriptors": [] + }, + { + "description": "Use a tiled sprite to display repeated objects to represent a resource in the game (hearts, lives, ammo, etc). ", + "fullName": "Resource bar (tiled sprite)", + "name": "ResourceBar_TiledSprite", + "objectType": "TiledSpriteObject::TiledSprite", + "eventsFunctions": [ + { + "description": "Draw a resource bar using a tiled sprite.", + "fullName": "Draw resource bar (tiled sprite)", + "functionType": "Action", + "name": "DrawResourceBar", + "sentence": "Draw a tiled resource bar using _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "TiledSpriteObject::Width" + }, + "parameters": [ + "Object", + "=", + "Object.Behavior::PropertyUnitWidth() * Object.Behavior::PropertyQuantity()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "TiledSpriteObject::TiledSprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_TiledSprite", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Change the quantity of a tiled resource bar.", + "fullName": "Quantity", + "functionType": "ActionWithOperator", + "getterName": "Quantity", + "name": "SetQuantity", + "sentence": "Change the quantity of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "If max quantity has NOT been set, do not enforce it.", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_TiledSprite::PropertyMaxQuantity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_TiledSprite::SetPropertyQuantity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "max(0,GetArgumentAsNumber(\"Value\"))" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "If max quantity has been set, make sure quantity does not exceed it.", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_TiledSprite::PropertyMaxQuantity" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_TiledSprite::SetPropertyQuantity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "clamp(GetArgumentAsNumber(\"Value\"), 0, Object.Behavior::PropertyMaxQuantity())" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "TiledSpriteObject::TiledSprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_TiledSprite", + "type": "behavior" + }, + { + "description": "Value", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the maximum quantity of a tiled resource bar.", + "fullName": "Maximum quantity", + "functionType": "ActionWithOperator", + "getterName": "MaxQuantity", + "name": "SetMaxQuantity", + "sentence": "Change the maximum quantity of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResourceBar::ResourceBar_TiledSprite::SetPropertyMaxQuantity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "max(0,GetArgumentAsNumber(\"Value\"))" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "TiledSpriteObject::TiledSprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_TiledSprite", + "type": "behavior" + }, + { + "description": "Value", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "the quantity", + "fullName": "Quantity", + "functionType": "ExpressionAndCondition", + "name": "Quantity", + "sentence": "the quantity", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyQuantity()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "TiledSpriteObject::TiledSprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_TiledSprite", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the max quantity", + "fullName": "Max quantity", + "functionType": "ExpressionAndCondition", + "name": "MaxQuantity", + "sentence": "the max quantity", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyMaxQuantity()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "TiledSpriteObject::TiledSprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ResourceBar::ResourceBar_TiledSprite", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "1", + "type": "Number", + "label": "Quantity", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "Quantity" + }, + { + "value": "16", + "type": "Number", + "label": "Unit width (pixels)", + "description": "Width of one individual unit", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "UnitWidth" + }, + { + "value": "0", + "type": "Number", + "label": "Maximum quantity", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "MaxQuantity" + } + ], + "sharedPropertyDescriptors": [] + } + ], + "eventsBasedObjects": [] + }, + { + "author": "@Bouh, D8H", + "category": "General", + "extensionNamespace": "", + "fullName": "Extended variables support", + "helpPath": "", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXZhcmlhYmxlLWJveCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0xOSAzSDVDMy45IDMgMyAzLjkgMyA1VjE5QzMgMjAuMSAzLjkgMjEgNSAyMUgxOUMyMC4xIDIxIDIxIDIwLjEgMjEgMTlWNUMyMSAzLjkgMjAuMSAzIDE5IDNNNy40IDE4QzUuOSAxNi41IDUgMTQuMyA1IDEyUzUuOSA3LjUgNy40IDZMOSA2LjdDNy43IDcuOSA3IDkuOSA3IDEyUzcuNyAxNi4xIDkgMTcuM0w3LjQgMThNMTIuNyAxNUwxMS45IDEzTDEwLjUgMTVIOUwxMS4zIDExLjlMMTAgOUgxMS4zTDEyLjEgMTFMMTMuNSA5SDE1TDEyLjggMTJMMTQuMSAxNUgxMi43TTE2LjYgMThMMTUgMTcuM0MxNi4zIDE2IDE3IDE0LjEgMTcgMTJTMTYuMyA3LjkgMTUgNi43TDE2LjYgNkMxOC4xIDcuNSAxOSA5LjcgMTkgMTJTMTguMSAxNi41IDE2LjYgMThaIiAvPjwvc3ZnPg==", + "name": "ExtendedVariables", + "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/variable-box.svg", + "shortDescription": "Add conditions, actions and expressions to check for the existence of a variable, copy variables, delete existing ones from memory, and create dynamic variables.", + "version": "1.0.0", + "description": "This extension provides: \n- Conditions to check if a global/scene/object variable exists.\n- Actions to copy object variables, global and scene variables.\n- Actions to delete an existing global/scene variable from memory.\n- Actions to create a global/scene variable using a text expression, rather than a variable name input.\n- Expressions to get the value or text from a global/scene variable using a text expression, rather than a variable name.\n\nText expressions allows to enter the name of the variable with an expression like `\"MyVar\"+ ToString(Variable(Health))`", + "origin": { + "identifier": "ExtendedVariables", + "name": "gdevelop-extension-store" + }, + "tags": [ + "variable", + "scene", + "global", + "object", + "remove", + "expression", + "copy", + "structure", + "array", + "boolean", + "duplication" + ], + "authorIds": [ + "2OwwM8ToR9dx9RJ2sAKTcrLmCB92", + "IWykYNRvhCZBN3vEgKEbBPOR3Oc2" + ], + "dependencies": [], + "eventsFunctions": [ + { + "description": "Check if a global variable exists.", + "fullName": "Global variable exists", + "functionType": "Condition", + "group": "Deprecated", + "name": "C_global_variable_exist", + "private": true, + "sentence": "If the global variable _PARAM1_ exist", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ExtendedVariables::GlobalVariableExist" + }, + "parameters": [ + "", + "GetArgumentAsString(\"GlobalVariableName\")", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Name of the global variable", + "name": "GlobalVariableName", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the global variable exists.", + "fullName": "Global variable exists", + "functionType": "Condition", + "group": "Global variables", + "name": "GlobalVariableExist", + "sentence": "If the global variable _PARAM1_ exist", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": "const globalVariables = runtimeScene.getGame().getVariables();\r\neventsFunctionContext.returnValue = globalVariables.has(eventsFunctionContext.getArgument(\"GlobalVariableName\"));", + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Name of the global variable", + "name": "GlobalVariableName", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Check if a scene variable exists.", + "fullName": "Scene variable exists", + "functionType": "Condition", + "group": "Deprecated", + "name": "C_scene_variable_exist", + "private": true, + "sentence": "If the scene variable _PARAM1_ exist", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ExtendedVariables::SceneVariableExist" + }, + "parameters": [ + "", + "GetArgumentAsString(\"SceneVariableName\")", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Name of the scene variable", + "name": "SceneVariableName", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the scene variable exists.", + "fullName": "Scene variable exists", + "functionType": "Condition", + "group": "Scene variables", + "name": "SceneVariableExist", + "sentence": "If the scene variable _PARAM1_ exist", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": "const sceneVariables = runtimeScene.getVariables();\r\neventsFunctionContext.returnValue = sceneVariables.has(eventsFunctionContext.getArgument(\"SceneVariableName\"));", + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Name of the scene variable", + "name": "SceneVariableName", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Check if an object variable exists.", + "fullName": "Object variable exists", + "functionType": "Condition", + "group": "Deprecated", + "name": "C_object_variable_exist", + "private": true, + "sentence": "Object _PARAM1_ has object variable _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ExtendedVariables::ObjectVariableExist" + }, + "parameters": [ + "", + "ObjectToCheck", + "GetArgumentAsString(\"ObjectVariableName\")", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "ObjectToCheck", + "type": "objectList" + }, + { + "description": "Name of object variable", + "name": "ObjectVariableName", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Check if an object variable exists.", + "fullName": "Object variable exists", + "functionType": "Condition", + "group": "Object variables", + "name": "ObjectVariableExist", + "sentence": "Object _PARAM1_ has object variable _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": "let returnValue = true;\r\nif (!objects.length) {\r\n returnValue = false;\r\n} else {\r\n const objectVariableName = eventsFunctionContext.getArgument(\"ObjectVariableName\");\r\n for (let i = 0; i < objects.length; i++) {\r\n if (!objects[i].hasVariable(objectVariableName)) {\r\n // If any object does NOT have the variable, return false.\r\n returnValue = false;\r\n break;\r\n }\r\n }\r\n}\r\n\r\neventsFunctionContext.returnValue = returnValue;", + "parameterObjects": "ObjectToCheck", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "ObjectToCheck", + "type": "objectList" + }, + { + "description": "Name of object variable", + "name": "ObjectVariableName", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Delete a global variable, removing it from memory.", + "fullName": "Delete global variable", + "functionType": "Action", + "group": "Deprecated", + "name": "A_Delete_global_variable", + "private": true, + "sentence": "Delete global variable _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ExtendedVariables::DeleteGlobalVariable" + }, + "parameters": [ + "", + "GetArgumentAsString(\"GlobalVariableName\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Name of the global variable to delete", + "name": "GlobalVariableName", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Delete the global variable, removing it from memory.", + "fullName": "Delete global variable", + "functionType": "Action", + "group": "Global variables", + "name": "DeleteGlobalVariable", + "sentence": "Delete the global variable _PARAM1_ from memory", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": "runtimeScene.getGame().getVariables().remove(eventsFunctionContext.getArgument(\"GlobalVariableName\"));", + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Name of the global variable to delete", + "name": "GlobalVariableName", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Modify the text of a scene variable.", + "fullName": "String of a scene variable", + "functionType": "Action", + "group": "Deprecated", + "name": "A_Modify_scene_variable_string", + "private": true, + "sentence": "Change the text of scene variable _PARAM1_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ExtendedVariables::ModifySceneVariableString" + }, + "parameters": [ + "", + "GetArgumentAsString(\"SceneVariableName\")", + "GetArgumentAsNumber(\"SceneVariableValue\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Name of the scene variable", + "name": "SceneVariableName", + "type": "string" + }, + { + "description": "Value", + "name": "SceneVariableValue", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Modify the text of a scene variable.", + "fullName": "String of a scene variable", + "functionType": "Action", + "group": "Scene variables", + "name": "ModifySceneVariableString", + "sentence": "Change the text of scene variable _PARAM1_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": "const variable = runtimeScene.getVariables().get(eventsFunctionContext.getArgument(\"SceneVariableName\"));\r\nvariable.setString(eventsFunctionContext.getArgument(\"SceneVariableValue\"));", + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Name of the scene variable", + "name": "SceneVariableName", + "type": "string" + }, + { + "description": "Value", + "name": "SceneVariableValue", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Modify the text of a global variable.", + "fullName": "String of a global variable", + "functionType": "Action", + "group": "Global variables", + "name": "ModifyGlobalVariableString", + "sentence": "Change the text of global variable _PARAM1_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": "const variable = runtimeScene.getGame().getVariables().get(eventsFunctionContext.getArgument(\"GlobalVariableName\"));\r\nvariable.setString(eventsFunctionContext.getArgument(\"GlobalVariableValue\"));", + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Name of the global variable", + "name": "GlobalVariableName", + "type": "string" + }, + { + "description": "Value", + "name": "GlobalVariableValue", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Modify the value of a global variable.", + "fullName": "Value of a global variable", + "functionType": "Action", + "group": "Deprecated", + "name": "A_Modify_global_variable", + "private": true, + "sentence": "Change the global variable _PARAM1_ with value: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ExtendedVariables::ModifyGlobalVariable" + }, + "parameters": [ + "", + "GetArgumentAsString(\"SceneVariableName\")", + "GetArgumentAsNumber(\"SceneVariableValue\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Name of the global variable", + "name": "SceneVariableName", + "type": "string" + }, + { + "description": "Value", + "name": "SceneVariableValue", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Modify the text of a global variable.", + "fullName": "String of a global variable", + "functionType": "Action", + "group": "Deprecated", + "name": "A_Modify_global_variable_string", + "private": true, + "sentence": "Change the text of global variable _PARAM1_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ExtendedVariables::ModifyGlobalVariableString" + }, + "parameters": [ + "", + "GetArgumentAsString(\"SceneVariableName\")", + "GetArgumentAsNumber(\"SceneVariableValue\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Name of the global variable", + "name": "SceneVariableName", + "type": "string" + }, + { + "description": "Value", + "name": "SceneVariableValue", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Modify the value of a global variable.", + "fullName": "Value of a global variable", + "functionType": "Action", + "group": "Global variables", + "name": "ModifyGlobalVariable", + "sentence": "Change the global variable _PARAM1_ with value: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": "const variable = runtimeScene.getGame().getVariables().get(eventsFunctionContext.getArgument(\"GlobalVariableName\"));\r\nvariable.setNumber(eventsFunctionContext.getArgument(\"GlobalVariableValue\"));", + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Name of the global variable", + "name": "GlobalVariableName", + "type": "string" + }, + { + "description": "Value", + "name": "GlobalVariableValue", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Modify the value of a scene variable.", + "fullName": "Value of a scene variable", + "functionType": "Action", + "group": "Deprecated", + "name": "A_Modify_scene_variable", + "private": true, + "sentence": "Change the scene variable _PARAM1_ with value: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ExtendedVariables::ModifySceneVariable" + }, + "parameters": [ + "", + "GetArgumentAsString(\"SceneVariableName\")", + "GetArgumentAsNumber(\"SceneVariableValue\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Name of the scene variable", + "name": "SceneVariableName", + "type": "string" + }, + { + "description": "Value", + "name": "SceneVariableValue", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Modify the value of a scene variable.", + "fullName": "Value of a scene variable", + "functionType": "Action", + "group": "Scene variables", + "name": "ModifySceneVariable", + "sentence": "Change the scene variable _PARAM1_ with value: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": "const variable = runtimeScene.getVariables().get(eventsFunctionContext.getArgument(\"SceneVariableName\"));\r\nvariable.setNumber(eventsFunctionContext.getArgument(\"SceneVariableValue\"));", + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Name of the scene variable", + "name": "SceneVariableName", + "type": "string" + }, + { + "description": "Value", + "name": "SceneVariableValue", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Delete scene variable, the variable will be deleted from the memory.", + "fullName": "Delete scene variable", + "functionType": "Action", + "group": "Deprecated", + "name": "A_Delete_scene_variable", + "private": true, + "sentence": "Delete the scene variable _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ExtendedVariables::DeleteSceneVariable" + }, + "parameters": [ + "", + "GetArgumentAsString(\"SceneVariableName\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Name of the scene variable to delete", + "name": "SceneVariableName", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Delete the scene variable, the variable will be deleted from the memory.", + "fullName": "Delete scene variable", + "functionType": "Action", + "group": "Scene variables", + "name": "DeleteSceneVariable", + "sentence": "Delete the scene variable _PARAM1_ from memory", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": "runtimeScene.getVariables().remove(eventsFunctionContext.getArgument(\"SceneVariableName\"));", + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Name of the scene variable to delete", + "name": "SceneVariableName", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Copy an object variable from one object to another.", + "fullName": "Copy an object variable", + "functionType": "Action", + "group": "Deprecated", + "name": "A_CopyObjectVariable", + "private": true, + "sentence": "Copy the variable _PARAM1_ of _PARAM2_ to the variable _PARAM3_ of _PARAM4_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ExtendedVariables::CopyObjectVariable" + }, + "parameters": [ + "", + "SourceObject", + "GetArgumentAsString(\"SourceVariableName\")", + "TargetObject", + "GetArgumentAsString(\"TargetVariableName\")", + "no", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Source object", + "name": "SourceObject", + "type": "objectList" + }, + { + "description": "Variable to copy", + "name": "SourceVariableName", + "type": "string" + }, + { + "description": "Destination object", + "longDescription": "To copy the variable between 2 instances of the same object, the variable has to be copied to another object first.", + "name": "TargetObject", + "type": "objectList" + }, + { + "description": "Destination variable", + "name": "TargetVariableName", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Copy the object variable from one object to another.", + "fullName": "Copy an object variable", + "functionType": "Action", + "group": "Object variables", + "name": "CopyObjectVariable", + "sentence": "Copy the variable _PARAM2_ of _PARAM1_ to the variable _PARAM4_ of _PARAM3_ (clear destination first: _PARAM5_)", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": "const sourceObject = eventsFunctionContext.getObjects(\"SourceObject\")[0];\nconst targetObject = eventsFunctionContext.getObjects(\"TargetObject\")[0];\nconst sourceVariableName = eventsFunctionContext.getArgument(\"SourceVariableName\");\nconst targetVariableName = eventsFunctionContext.getArgument(\"TargetVariableName\");\nconst isExactCopy = eventsFunctionContext.getArgument(\"isExactCopy\");\n\nconst sourceVariables = sourceObject.getVariables();\nconst targetVariables = targetObject.getVariables();\n\nif (sourceVariables.has(sourceVariableName))\n{\n gdjs.Variable.copy\n (\n sourceVariables.get(sourceVariableName),\n targetVariables.get(targetVariableName),\n isExactCopy\n );\n}", + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Source object", + "name": "SourceObject", + "type": "objectList" + }, + { + "description": "Variable to copy", + "name": "SourceVariableName", + "type": "string" + }, + { + "description": "Destination object", + "longDescription": "To copy the variable between 2 instances of the same object, the variable has to be copied to another object first.", + "name": "TargetObject", + "type": "objectList" + }, + { + "description": "Destination variable", + "name": "TargetVariableName", + "type": "string" + }, + { + "defaultValue": "yes", + "description": "Clear destination first", + "name": "isExactCopy", + "optional": true, + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "Copy all object variables from one object to another.", + "fullName": "Copy all object variables", + "functionType": "Action", + "group": "Deprecated", + "name": "A_CopyAllObjectVariables", + "private": true, + "sentence": "Copy all variables from _PARAM1_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ExtendedVariables::CopyAllObjectVariables" + }, + "parameters": [ + "", + "SourceObject", + "TargetObject", + "no", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Source object", + "name": "SourceObject", + "type": "objectList" + }, + { + "description": "Destination object", + "name": "TargetObject", + "type": "objectList" + } + ], + "objectGroups": [] + }, + { + "description": "Copy all object variables from one object to another.", + "fullName": "Copy all object variables", + "functionType": "Action", + "group": "Object variables", + "name": "CopyAllObjectVariables", + "sentence": "Copy all variables from object _PARAM1_ to object _PARAM2_ (clear destination first: _PARAM3_)", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": "// This JS event use private scope from the API, this can be borken at anytime.\n\nconst sourceObject = eventsFunctionContext.getObjects(\"SourceObject\")[0];\nconst targetObject = eventsFunctionContext.getObjects(\"TargetObject\")[0];\nconst isExactCopy = eventsFunctionContext.getArgument(\"isExactCopy\");\n\nconst targetVariables = targetObject.getVariables();\nconst sourceVariables = sourceObject.getVariables()._variables.items;\nfor (const variableName in sourceVariables)\n{\n if (sourceVariables.hasOwnProperty(variableName))\n {\n gdjs.Variable.copy(sourceVariables[variableName], targetVariables.get(variableName), isExactCopy);\n }\n}", + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Source object", + "name": "SourceObject", + "type": "objectList" + }, + { + "description": "Destination object", + "name": "TargetObject", + "type": "objectList" + }, + { + "defaultValue": "yes", + "description": "Clear destination first", + "name": "isExactCopy", + "optional": true, + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "Delete an object variable, removing it from memory.", + "fullName": "Delete object variable", + "functionType": "Action", + "group": "Object variables", + "name": "DeleteObjectVariable", + "sentence": "Delete for the object _PARAM1_ the object variable _PARAM2_ from the memory", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": "const object = eventsFunctionContext.getObjects(\"Object\")[0];\r\nconst objectVariables = object.getVariables();\r\n\r\nobjectVariables.remove(eventsFunctionContext.getArgument(\"VariableName\"));", + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "objectList" + }, + { + "description": "Name of object variable", + "name": "VariableName", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Return the text of a global variable.", + "fullName": "Text of a global variable", + "functionType": "StringExpression", + "group": "Global variables", + "name": "GlobalVariableString", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": "const globalVariables = runtimeScene.getGame().getVariables();\r\nconst variableExist = globalVariables.has(eventsFunctionContext.getArgument(\"GlobalVariableName\"));\r\n\r\nif (variableExist) {\r\n eventsFunctionContext.returnValue = globalVariables.get(eventsFunctionContext.getArgument(\"GlobalVariableName\")).getAsString();\r\n}", + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "expressionType": { + "type": "string" + }, + "parameters": [ + { + "description": "Name of the global variable", + "name": "GlobalVariableName", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Return the text of a scene variable.", + "fullName": "Text of a scene variable", + "functionType": "StringExpression", + "group": "Scene variables", + "name": "VariableString", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": "const sceneVariables = runtimeScene.getVariables();\r\nconst variableExist = sceneVariables.has(eventsFunctionContext.getArgument(\"SceneVariableName\"));\r\n\r\nif (variableExist) {\r\n eventsFunctionContext.returnValue = sceneVariables.get(eventsFunctionContext.getArgument(\"SceneVariableName\")).getAsString();\r\n}", + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "expressionType": { + "type": "string" + }, + "parameters": [ + { + "description": "Name of the scene variable", + "name": "SceneVariableName", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Return the value of a global variable.", + "fullName": "Value of a global variable", + "functionType": "Expression", + "group": "Global variables", + "name": "GlobalVariable", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": "const globalVariables = runtimeScene.getGame().getVariables();\r\nconst variableExist = globalVariables.has(eventsFunctionContext.getArgument(\"GlobalVariableName\"));\r\n\r\nif (variableExist) {\r\n eventsFunctionContext.returnValue = globalVariables.get(eventsFunctionContext.getArgument(\"GlobalVariableName\")).getAsNumber();\r\n}", + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Name of the global variable", + "name": "GlobalVariableName", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Return the value of a scene variable.", + "fullName": "Value of a scene variable", + "functionType": "Expression", + "group": "Scene variables", + "name": "Variable", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": "const sceneVariables = runtimeScene.getVariables();\r\nconst variableExist = sceneVariables.has(eventsFunctionContext.getArgument(\"SceneVariableName\"));\r\n\r\nif (variableExist) {\r\n eventsFunctionContext.returnValue = sceneVariables.get(eventsFunctionContext.getArgument(\"SceneVariableName\")).getAsNumber();\r\n}", + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Name of the scene variable", + "name": "SceneVariableName", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Copy the global variable to scene. This copy everything from the types to the values.", + "fullName": "Copy a global variable to scene", + "functionType": "Action", + "group": "Convert", + "name": "CopyGlobalVariableToScene", + "sentence": "Copy the global variable:_PARAM1_ to a scene variable:_PARAM2_ (clear destination first: _PARAM3_)", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": "const globalVariable = runtimeScene.getGame().getVariables().get(eventsFunctionContext.getArgument(\"globalVariableName\"));\nconst sceneVariable = runtimeScene.getVariables().get(eventsFunctionContext.getArgument(\"sceneVariableName\"));\nconst isExactCopy = eventsFunctionContext.getArgument(\"isExactCopy\");\n\ngdjs.Variable.copy(globalVariable, sceneVariable, isExactCopy);\n", + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Global variable to copy", + "name": "globalVariableName", + "type": "string" + }, + { + "description": "Scene variable destination", + "name": "sceneVariableName", + "type": "string" + }, + { + "defaultValue": "yes", + "description": "Clear destination first", + "name": "isExactCopy", + "optional": true, + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "Copy the scene variable to global. This copy everything from the types to the values.", + "fullName": "Copy a scene variable to global ", + "functionType": "Action", + "group": "Copy variables", + "name": "CopySceneVariableToGlobal", + "sentence": "Copy the scene variable:_PARAM1_ to a global variable:_PARAM2_ (clear destination first: _PARAM3_)", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": "const sceneVariable = runtimeScene.getVariables().get(eventsFunctionContext.getArgument(\"sceneVariableName\"));\nconst globalVariable = runtimeScene.getGame().getVariables().get(eventsFunctionContext.getArgument(\"globalVariableName\"));\nconst isExactCopy = eventsFunctionContext.getArgument(\"isExactCopy\");\n\ngdjs.Variable.copy(sceneVariable, globalVariable, isExactCopy);", + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Scene variable to copy", + "name": "sceneVariableName", + "type": "string" + }, + { + "description": "Global variable destination", + "name": "globalVariableName", + "type": "string" + }, + { + "defaultValue": "yes", + "description": "Clear destination first", + "name": "isExactCopy", + "optional": true, + "type": "yesorno" + } + ], + "objectGroups": [] + } + ], + "eventsBasedBehaviors": [], + "eventsBasedObjects": [] + }, + { + "author": "D8H", + "category": "", + "extensionNamespace": "", + "fullName": "Stick objects to others", + "helpPath": "", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXN0aWNrZXItb3V0bGluZSIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik01LjUgMkMzLjYgMiAyIDMuNiAyIDUuNVYxOC41QzIgMjAuNCAzLjYgMjIgNS41IDIySDE2TDIyIDE2VjUuNUMyMiAzLjYgMjAuNCAyIDE4LjUgMkg1LjVNNS44IDRIMTguM0MxOS4zIDQgMjAuMSA0LjggMjAuMSA1LjhWMTVIMTguNkMxNi43IDE1IDE1LjEgMTYuNiAxNS4xIDE4LjVWMjBINS44QzQuOCAyMCA0IDE5LjIgNCAxOC4yVjUuOEM0IDQuOCA0LjggNCA1LjggNCIgLz48L3N2Zz4=", + "name": "Sticker", + "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/sticker-outline.svg", + "shortDescription": "Behavior to stick objects to other objects - so that they follow the position and rotation of the object they are stuck to.", + "version": "0.3.4", + "description": "This extension can be useful for:\n* Stick an accessory to a moving object,\n* Animate a skeleton.", + "origin": { + "identifier": "Sticker", + "name": "gdevelop-extension-store" + }, + "tags": [ + "sticker", + "stick", + "follow", + "skeleton", + "joint" + ], + "authorIds": [ + "IWykYNRvhCZBN3vEgKEbBPOR3Oc2" + ], + "dependencies": [], + "eventsFunctions": [ + { + "description": "Check if the object is stuck to another object.", + "fullName": "Is stuck to another object", + "functionType": "Condition", + "name": "IsStuck", + "sentence": "_PARAM1_ is stuck to _PARAM3_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": "const stickerBehaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");\n/** @type {Hashtable} */\nconst stickerObjectsLists = eventsFunctionContext.getObjectsLists(\"Object\");\n/** @type {Hashtable} */\nconst basisObjectsLists = eventsFunctionContext.getObjectsLists(\"BasisObject\");\n\neventsFunctionContext.returnValue = gdjs.evtTools.object.twoListsTest(\n (stickerObject, basisObject, stickerBehaviorName) => {\n const behavior = stickerObject.getBehavior(stickerBehaviorName);\n return behavior.basisObject === basisObject;\n },\n stickerObjectsLists,\n basisObjectsLists,\n false,\n stickerBehaviorName\n);", + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Sticker", + "name": "Object", + "type": "objectList" + }, + { + "description": "Sticker behavior", + "name": "Behavior", + "supplementaryInformation": "Sticker::Sticker", + "type": "behavior" + }, + { + "description": "Basis", + "name": "BasisObject", + "type": "objectList" + } + ], + "objectGroups": [] + } + ], + "eventsBasedBehaviors": [ + { + "description": "Stick the object to another. Use the action to stick the object, or unstick it later.", + "fullName": "Sticker", + "name": "Sticker", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");\nconst object = objects[0];\nconst behavior = object.getBehavior(behaviorName);\n\n// Set up the scene sticker objects list - if not done already.\nif (!runtimeScene.__allStickers)\n runtimeScene.__allStickers = new Set();\n\n// Set up the behavior extra methods - if not done already.\nconst prototype = Object.getPrototypeOf(behavior);\nif (!prototype.updateRelativeCoordinates) {\n // Unstick from deleted objects.\n gdjs.registerObjectDeletedFromSceneCallback(function (runtimeScene, deletedObject) {\n if (!runtimeScene.__allStickers) return;\n\n for (const sticker of runtimeScene.__allStickers) {\n if (sticker.basisObject === deletedObject) {\n sticker.basisObject = null;\n }\n }\n });\n\n /**\n * Update the coordinates in the basisObject basis.\n * \n * It uses the basisObject coordinates from the previous frame.\n * This way, the sticker can move relatively to it and still\n * follow basisObject.\n * \n * @param {gdjs.RuntimeObject} basisObject\n */\n prototype.updateRelativeCoordinates = function (basisObject) {\n const object = this.owner;\n\n // Update relative coordinates\n this.relativeX = object.getX() - this.basisOldX;\n this.relativeY = object.getY() - this.basisOldY;\n if (!this._getOnlyFollowPosition()) {\n this.relativeAngle = object.getAngle() - this.basisOldAngle;\n this.relativeWidth = object.getWidth() / this.basisOldWidth;\n this.relativeHeight = object.getHeight() / this.basisOldHeight;\n const deltaX = object.getCenterXInScene() - this.basisOldCenterXInScene;\n const deltaY = object.getCenterYInScene() - this.basisOldCenterYInScene;\n const angle = this.basisOldAngle * Math.PI / 180;\n this.relativeRotatedX = (deltaX * Math.cos(angle) + deltaY * Math.sin(angle)) / this.basisOldWidth;\n this.relativeRotatedY = (-deltaX * Math.sin(angle) + deltaY * Math.cos(angle)) / this.basisOldHeight;\n\n // Save initial values to avoid calculus and rounding errors\n this.basisOriginalWidth = basisObject.getWidth();\n this.basisOriginalHeight = basisObject.getHeight();\n this.basisOriginalAngle = basisObject.getAngle();\n }\n }\n\n /**\n * Copy the coordinates to use it the next frame.\n * @param basisObject {gdjs.RuntimeObject}\n */\n prototype.updateOldCoordinates = function (basisObject) {\n const object = this.owner;\n\n this.ownerOldX = object.getX();\n this.ownerOldY = object.getY();\n\n this.basisOldX = basisObject.getX();\n this.basisOldY = basisObject.getY();\n\n if (!this._getOnlyFollowPosition()) {\n this.ownerOldAngle = object.getAngle();\n this.ownerOldWidth = object.getWidth();\n this.ownerOldHeight = object.getHeight();\n\n this.basisOldAngle = basisObject.getAngle();\n this.basisOldWidth = basisObject.getWidth();\n this.basisOldHeight = basisObject.getHeight();\n this.basisOldCenterXInScene = basisObject.getCenterXInScene();\n this.basisOldCenterYInScene = basisObject.getCenterYInScene();\n }\n }\n /**\n * Follow the basisObject (called in doStepPostEvents).\n * \n * This method is also called by children to ensure\n * parents are updated first.\n */\n prototype.followBasisObject = function () {\n if (this.followingDoneThisFrame) {\n return;\n }\n this.followingDoneThisFrame = true;\n /** @type {gdjs.RuntimeObject} */\n const basisObject = this.basisObject;\n if (basisObject) {\n // If the behavior on the basis object has a different name,\n // the objects will still follow their basis objects\n // but frame delays could happen.\n if (basisObject.hasBehavior(behaviorName)) {\n const basisBehavior = basisObject.getBehavior(behaviorName);\n if (basisBehavior.type === this.type) {\n // Follow parents 1st to avoid frame delays\n basisBehavior.followBasisObject();\n }\n }\n\n const object = this.owner;\n\n if (this._getOnlyFollowPosition()) {\n if (object.getX() !== this.ownerOldX\n || object.getY() !== this.ownerOldY) {\n this.updateRelativeCoordinates(basisObject);\n }\n\n if (this.basisOldX !== basisObject.getX() ||\n this.basisOldY !== basisObject.getY()) {\n object.setPosition(\n basisObject.getX() + this.relativeX,\n basisObject.getY() + this.relativeY);\n }\n } else {\n if (object.getX() !== this.ownerOldX\n || object.getY() !== this.ownerOldY\n || object.getAngle() !== this.ownerOldAngle\n || object.getWidth() !== this.ownerOldWidth\n || object.getHeight() !== this.ownerOldHeight) {\n this.updateRelativeCoordinates(basisObject);\n }\n\n // Follow basisObject\n if (basisObject.getAngle() === this.basisOriginalAngle && this.basisOriginalAngle === 0) {\n if (basisObject.getWidth() === this.basisOriginalWidth ||\n basisObject.getHeight() === this.basisOriginalHeight) {\n if (this.basisOldX !== basisObject.getX() ||\n this.basisOldY !== basisObject.getY()) {\n object.setPosition(\n basisObject.getX() + this.relativeX,\n basisObject.getY() + this.relativeY);\n }\n } else {\n object.setPosition(\n basisObject.getX() + this.relativeRotatedX * basisObject.getWidth(),\n basisObject.getY() + this.relativeRotatedY * basisObject.getHeight());\n }\n } else {\n object.setAngle(basisObject.getAngle() + this.relativeAngle);\n\n const deltaX = this.relativeRotatedX * basisObject.getWidth();\n const deltaY = this.relativeRotatedY * basisObject.getHeight();\n const angle = -basisObject.getAngle() * Math.PI / 180;\n object.setX(basisObject.getCenterXInScene() + object.getX() - object.getCenterXInScene() + deltaX * Math.cos(angle) + deltaY * Math.sin(angle));\n object.setY(basisObject.getCenterYInScene() + object.getY() - object.getCenterYInScene() - deltaX * Math.sin(angle) + deltaY * Math.cos(angle));\n }\n // Unproportional dimensions changes won't work as expected\n // if the object angle is not null but nothing more can be done\n // because there is no full affine transformation on objects.\n if (basisObject.getWidth() !== this.basisOriginalWidth) {\n object.setWidth(this.relativeWidth * basisObject.getWidth());\n }\n if (basisObject.getHeight() !== this.basisOriginalHeight) {\n object.setHeight(this.relativeHeight * basisObject.getHeight());\n }\n }\n\n this.updateOldCoordinates(basisObject);\n }\n }\n}\n\n// Register this object as a sticker.\nruntimeScene.__allStickers.add(behavior);\n", + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Sticker::Sticker", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");\nconst object = objects[0];\nconst behavior = object.getBehavior(behaviorName);\n\nbehavior.followingDoneThisFrame = false;", + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Sticker::Sticker", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPostEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");\nconst object = objects[0];\nconst behavior = object.getBehavior(behaviorName);\n\nbehavior.followBasisObject();", + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Sticker::Sticker", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Stick on another object.", + "fullName": "Stick", + "functionType": "Action", + "name": "Stick", + "sentence": "Stick _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": "const object = objects[0];\nconst behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");\nconst basisObjects = eventsFunctionContext.getObjects(\"BasisObject\");\n\nif (basisObjects.length === 0) return;\nconst basisObject = basisObjects[0];\n\nconst behavior = object.getBehavior(behaviorName);\n\nbehavior.basisObject = basisObject;\nbehavior.updateOldCoordinates(basisObject);\nbehavior.updateRelativeCoordinates(basisObject);\n", + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Sticker::Sticker", + "type": "behavior" + }, + { + "description": "Object to stick to", + "name": "BasisObject", + "type": "objectList" + } + ], + "objectGroups": [] + }, + { + "description": "Unstick from the object it was stuck to.", + "fullName": "Unstick", + "functionType": "Action", + "name": "Unstick", + "sentence": "Unstick _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": "const object = objects[0];\nconst behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");\nconst behavior = object.getBehavior(behaviorName);\n\nbehavior.basisObject = null;", + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Sticker::Sticker", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onDestroy", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");\nconst object = objects[0];\nconst behavior = object.getBehavior(behaviorName);\n\nif (runtimeScene.__allStickers)\n runtimeScene.__allStickers.delete(behavior);\n", + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Sticker::Sticker", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "", + "type": "Boolean", + "label": "Only follow the position", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "OnlyFollowPosition" + } + ], + "sharedPropertyDescriptors": [] + } + ], + "eventsBasedObjects": [] + }, + { + "author": "Tristan Rhodes (https://victrisgames.itch.io/)", + "category": "", + "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.5", + "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", + "origin": { + "identifier": "ShakeObject", + "name": "gdevelop-extension-store" + }, + "tags": [ + "shaking", + "object", + "effect", + "shake", + "scale", + "position", + "rotate", + "angle" + ], + "authorIds": [ + "gqDaZjCfevOOxBYkK6zlhtZnXCg1" + ], + "dependencies": [], + "eventsFunctions": [], + "eventsBasedBehaviors": [ + { + "description": "Shake an object, using one or more ways to shake (position, angle).\nThis behavior can be used on any type of object.", + "fullName": "Shake object (position, angle)", + "name": "ShakeObject_PositionAngle", + "objectType": "", + "eventsFunctions": [ + { + "description": "Shake an object, using one or more ways to shake (position, angle).", + "fullName": "Shake object (position, angle)", + "functionType": "Action", + "name": "ShakeObject_PositionAngle", + "sentence": "Shake object _PARAM0_ for _PARAM2_ seconds. Modify position amplitude _PARAM3_ on X axis and _PARAM4_ on Y axis, angle rotation amplitude _PARAM5_. Wait _PARAM6_ seconds between shakes. Keep shaking until stopped: _PARAM7_", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Shake Object", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Start/Reset duration timer", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"__ShakeObject_DurationTimer\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Pass input parameters to global variables so that onScenePostEvents can use them", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_Duration", + "=", + "GetArgumentAsNumber(\"Duration\")" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerX", + "=", + "GetArgumentAsNumber(\"PowerX\")" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerY", + "=", + "GetArgumentAsNumber(\"PowerY\")" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerAngle", + "=", + "GetArgumentAsNumber(\"PowerAngle\")" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_TimeBetweenShakes", + "=", + "GetArgumentAsNumber(\"TimeBetweenShakes\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Determine if the shake should keep going until stopped", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetObjectVariableAsBoolean" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeForever", + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"ShakeForever\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetObjectVariableAsBoolean" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeForever", + "True" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Add default values if none were provided", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_Duration", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_Duration", + "=", + "0.5" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_TimeBetweenShakes", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_TimeBetweenShakes", + "=", + "0.08" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "If duration is less than a single shake, increase duration to make 1 full shake", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_Duration", + "<", + "Object.Variable(__ShakeObject_TimeBetweenShakes)" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_Duration", + "=", + "Object.Variable(__ShakeObject_TimeBetweenShakes)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Detect initial shake", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeInProgress", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_InitialShake", + "=", + "1" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Initiate the onScenePostEvents function", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeInProgress", + "=", + "1" + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ShakeObject::ShakeObject_PositionAngle", + "type": "behavior" + }, + { + "description": "Duration of shake (in seconds) (Default: 0.5) ", + "name": "Duration", + "type": "expression" + }, + { + "description": "Amplitude of postion shake in X direction (in pixels) (For example: 5)", + "name": "PowerX", + "type": "expression" + }, + { + "description": "Amplitude of position shake in Y direction (in pixels) (For example: 5)", + "name": "PowerY", + "type": "expression" + }, + { + "description": "Amplitude of angle rotation shake (in degrees) (For example: 5)", + "name": "PowerAngle", + "type": "expression" + }, + { + "description": "Amount of time between shakes (in seconds) (Default: 0.08)", + "name": "TimeBetweenShakes", + "type": "expression" + }, + { + "description": "Keep shaking until stopped", + "longDescription": "Duration value will be ignored", + "name": "ShakeForever", + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPostEvents", + "sentence": "", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Shake Object", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Start shaking", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeInProgress", + "=", + "1" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Keep object shaking forever (if desired)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ObjectVariableAsBoolean" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeForever", + "True" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_Duration", + "=", + "100" + ] + }, + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"__ShakeObject_DurationTimer\"" + ] + } + ] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Calculate movement of the shake", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Run once before every shake movement", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_InitialShake", + "=", + "1" + ] + }, + { + "type": { + "value": "ObjectTimer" + }, + "parameters": [ + "Object", + "\"__ShakeObject_ShakeTimer\"", + "Object.Variable(__ShakeObject_TimeBetweenShakes)" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"__ShakeObject_ShakeTimer\"" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeCounter", + "+", + "1" + ] + } + ], + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Correct for drift and reset drift tracking variables", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Move to correct any drift from previous shake", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerX", + "!=", + "0" + ] + }, + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerY", + "!=", + "0" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "MettreX" + }, + "parameters": [ + "Object", + "-", + "Object.Variable(__ShakeObject_DisplacementTravelledX)" + ] + }, + { + "type": { + "value": "MettreY" + }, + "parameters": [ + "Object", + "-", + "Object.Variable(__ShakeObject_DisplacementTravelledY)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerAngle", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetAngle" + }, + "parameters": [ + "Object", + "-", + "Object.Variable(__ShakeObject_AngleTravelled)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Reset drift detection variables", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementTravelledX", + "=", + "0" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementTravelledY", + "=", + "0" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_AngleTravelled", + "=", + "0" + ] + } + ] + } + ], + "parameters": [] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Calculate Position Shake", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerX", + "!=", + "0" + ] + }, + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerY", + "!=", + "0" + ] + } + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "PositionDisplacement = (DesiredDuration - RunningTimer) / DesiredDuration * Amplitude * [-1 or 1]", + "comment2": "" + }, + { + "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": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_InitialShake", + "=", + "1" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerX", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementX", + "=", + "(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerX)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerY", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementY", + "=", + "(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerY)" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "After initial shake pick a random direction", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_InitialShake", + "=", + "0" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerX", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementX", + "=", + "(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerX) * RandomWithStep(-1, 1, 2)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerY", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementY", + "=", + "(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerY) * RandomWithStep(-1, 1, 2)" + ] + } + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Calculate Rotation (angle) shake ", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerAngle", + "!=", + "0" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Every \"even\" shake, rotate clockwise", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "AngleDisplacement = (DesiredDuration - RunningTimer) / DesiredDuration * Amplitude", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "mod(Object.Variable(__ShakeObject_ShakeCounter),2)", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementAngle", + "=", + "(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerAngle)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Every \"odd\" shake, rotate counter-clockwise", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "AngleDisplacement = (DesiredDuration - RunningTimer) / DesiredDuration * Amplitude", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "mod(Object.Variable(__ShakeObject_ShakeCounter),2)", + "=", + "1" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementAngle", + "=", + "-1 *(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerAngle)" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Save that initial shake has been processed", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_InitialShake", + "=", + "0" + ] + } + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Move object", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Calculate the fraction of shake that occured during this frame", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PercentTimeElapsedThisFrame", + "=", + "min(1,TimeDelta()/Object.Variable(__ShakeObject_TimeBetweenShakes))" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Increase change for the first half of the shake (move away from original values)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "ObjectTimer" + }, + "parameters": [ + "Object", + "\"__ShakeObject_ShakeTimer\"", + "Object.Variable(__ShakeObject_TimeBetweenShakes)/2" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Change position", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerX", + "!=", + "0" + ] + }, + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerY", + "!=", + "0" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "MettreX" + }, + "parameters": [ + "Object", + "+", + "round(1024 * Object.Variable(__ShakeObject_DisplacementX) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + }, + { + "type": { + "value": "MettreY" + }, + "parameters": [ + "Object", + "+", + "round(1024 * Object.Variable(__ShakeObject_DisplacementY) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Save movement to calculate drift", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementTravelledX", + "+", + "round(1024 * Object.Variable(__ShakeObject_DisplacementX) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementTravelledY", + "+", + "round(1024 * Object.Variable(__ShakeObject_DisplacementY) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Change angle", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "Object.Variable(__ShakeObject_PowerAngle)", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetAngle" + }, + "parameters": [ + "Object", + "+", + "round(1024 * Object.Variable(__ShakeObject_DisplacementAngle) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Save movement to calculate drift", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_AngleTravelled", + "+", + "round(1024 * Object.Variable(__ShakeObject_DisplacementAngle) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Decrease change the second half of the shake (return to original position)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ObjectTimer" + }, + "parameters": [ + "Object", + "\"__ShakeObject_ShakeTimer\"", + "Object.Variable(__ShakeObject_TimeBetweenShakes)/2" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Change position", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerX", + "!=", + "0" + ] + }, + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerY", + "!=", + "0" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "MettreX" + }, + "parameters": [ + "Object", + "-", + "round(1024 * Object.Variable(__ShakeObject_DisplacementX) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + }, + { + "type": { + "value": "MettreY" + }, + "parameters": [ + "Object", + "-", + "round(1024 * Object.Variable(__ShakeObject_DisplacementY) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Save movement to calculate drift", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementTravelledX", + "-", + "round(1024 * Object.Variable(__ShakeObject_DisplacementX) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementTravelledY", + "-", + "round(1024 * Object.Variable(__ShakeObject_DisplacementY) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Change angle", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "Object.Variable(__ShakeObject_PowerAngle)", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetAngle" + }, + "parameters": [ + "Object", + "-", + "round(1024 * Object.Variable(__ShakeObject_DisplacementAngle) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Save movement to calculate drift", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_AngleTravelled", + "-", + "round(1024 * Object.Variable(__ShakeObject_DisplacementAngle) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ] + } + ] + } + ] + } + ], + "parameters": [] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Stop shaking", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Stop shaking when the duration has been reached (or if the stop shaking function was called)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "ObjectTimer" + }, + "parameters": [ + "Object", + "\"__ShakeObject_DurationTimer\"", + "Object.Variable(__ShakeObject_Duration)" + ] + }, + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeInProgress", + "=", + "-1" + ] + } + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeInProgress", + "=", + "0" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeCounter", + "=", + "0" + ] + } + ], + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Correct for drift and reset drift tracking variables", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Move to correct any drift from previous shake", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerX", + "!=", + "0" + ] + }, + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerY", + "!=", + "0" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "MettreX" + }, + "parameters": [ + "Object", + "-", + "Object.Variable(__ShakeObject_DisplacementTravelledX)" + ] + }, + { + "type": { + "value": "MettreY" + }, + "parameters": [ + "Object", + "-", + "Object.Variable(__ShakeObject_DisplacementTravelledY)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerAngle", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetAngle" + }, + "parameters": [ + "Object", + "-", + "Object.Variable(__ShakeObject_AngleTravelled)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Reset drift detection variables", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementTravelledX", + "=", + "0" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementTravelledY", + "=", + "0" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_AngleTravelled", + "=", + "0" + ] + } + ] + } + ], + "parameters": [] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ShakeObject::ShakeObject_PositionAngle", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Stop any shaking of object that was initiated by the Shake Object extension.", + "fullName": "Stop shaking the object", + "functionType": "Action", + "name": "StopShaking", + "sentence": "Stop shaking _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ShakeObject::ShakeObject_PositionAngle::IsShaking" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeInProgress", + "=", + "-1" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ShakeObject::ShakeObject_PositionAngle", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if an object is shaking.", + "fullName": "Check if an object is shaking", + "functionType": "Condition", + "name": "IsShaking", + "sentence": "_PARAM0_ is shaking", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeInProgress", + "=", + "1" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ShakeObject::ShakeObject_PositionAngle", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [], + "sharedPropertyDescriptors": [] + }, + { + "description": "Shake an object, using one or more ways to shake (position, angle, scale)\nThis behavior can only be used on sprite objects.", + "fullName": "Shake object (position, angle, scale)", + "name": "ShakeObject_PositionAngleScale", + "objectType": "Sprite", + "eventsFunctions": [ + { + "description": "Shake an object, using one or more ways to shake (position, angle, scale).", + "fullName": "Shake object (position, angle, scale)", + "functionType": "Action", + "name": "ShakeObject_PositionAngleScale", + "sentence": "Shake object _PARAM0_ for _PARAM2_ seconds. Modify position amplitude _PARAM3_ on X axis and _PARAM4_ on Y axis, angle rotation amplitude _PARAM5_, and scale amplitude _PARAM6_. Wait _PARAM7_ seconds between shakes. Keep shaking until stopped: _PARAM8_", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Shake Object", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Start/Reset duration timer", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"__ShakeObject_DurationTimer\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Pass input parameters to global variables so that onScenePostEvents can use them", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_Duration", + "=", + "GetArgumentAsNumber(\"Duration\")" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerX", + "=", + "GetArgumentAsNumber(\"PowerX\")" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerY", + "=", + "GetArgumentAsNumber(\"PowerY\")" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerAngle", + "=", + "GetArgumentAsNumber(\"PowerAngle\")" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerScale", + "=", + "GetArgumentAsNumber(\"PowerScale\")" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_TimeBetweenShakes", + "=", + "GetArgumentAsNumber(\"TimeBetweenShakes\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Determine if the shake should keep going until stopped", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetObjectVariableAsBoolean" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeForever", + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"ShakeForever\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetObjectVariableAsBoolean" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeForever", + "True" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Add default values if none were provided", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_Duration", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_Duration", + "=", + "0.5" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_TimeBetweenShakes", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_TimeBetweenShakes", + "=", + "0.08" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "If duration is less than a single shake, increase duration to make 1 full shake", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_Duration", + "<", + "Object.Variable(__ShakeObject_TimeBetweenShakes)" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_Duration", + "=", + "Object.Variable(__ShakeObject_TimeBetweenShakes)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Detect initial shake", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeInProgress", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_InitialShake", + "=", + "1" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Initiate the onScenePostEvents function", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeInProgress", + "=", + "1" + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ShakeObject::ShakeObject_PositionAngleScale", + "type": "behavior" + }, + { + "description": "Duration of shake (in seconds) (Default: 0.5)", + "name": "Duration", + "type": "expression" + }, + { + "description": "Amplitude of postion shake in X direction (in pixels) (For example: 5)", + "name": "PowerX", + "type": "expression" + }, + { + "description": "Amplitude of position shake in Y direction (in pixels) (For example: 5)", + "name": "PowerY", + "type": "expression" + }, + { + "description": "Amplitude of angle rotation shake (in degrees) (For example: 5)", + "name": "PowerAngle", + "type": "expression" + }, + { + "description": "Amplitude of scale shake (in percent change) (For example: 5)", + "name": "PowerScale", + "type": "expression" + }, + { + "description": "Amount of time between shakes (in seconds) (Default: 0.08)", + "name": "TimeBetweenShakes", + "type": "expression" + }, + { + "description": "Keep shaking until stopped", + "longDescription": "Duration value will be ignored", + "name": "ShakeForever", + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPostEvents", + "sentence": "", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Shake Object", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Start shaking", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeInProgress", + "=", + "1" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Keep object shaking forever (if desired)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ObjectVariableAsBoolean" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeForever", + "True" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_Duration", + "=", + "100" + ] + }, + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"__ShakeObject_DurationTimer\"" + ] + } + ] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Calculate movement of the shake", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Run once before every shake movement", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_InitialShake", + "=", + "1" + ] + }, + { + "type": { + "value": "ObjectTimer" + }, + "parameters": [ + "Object", + "\"__ShakeObject_ShakeTimer\"", + "Object.Variable(__ShakeObject_TimeBetweenShakes)" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"__ShakeObject_ShakeTimer\"" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeCounter", + "+", + "1" + ] + } + ], + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "folded": true, + "name": "Correct for drift and reset drift tracking variables", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Move to correct any drift from previous shake", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerX", + "!=", + "0" + ] + }, + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerY", + "!=", + "0" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "MettreX" + }, + "parameters": [ + "Object", + "-", + "Object.Variable(__ShakeObject_DisplacementTravelledX)" + ] + }, + { + "type": { + "value": "MettreY" + }, + "parameters": [ + "Object", + "-", + "Object.Variable(__ShakeObject_DisplacementTravelledY)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerAngle", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetAngle" + }, + "parameters": [ + "Object", + "-", + "Object.Variable(__ShakeObject_AngleTravelled)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerScale", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ChangeScale" + }, + "parameters": [ + "Object", + "-", + "Object.Variable(__ShakeObject_ScaleTravelled)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Reset drift detection variables", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementTravelledX", + "=", + "0" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementTravelledY", + "=", + "0" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_AngleTravelled", + "=", + "0" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ScaleTravelled", + "=", + "0" + ] + } + ] + } + ], + "parameters": [] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Calculate Position Shake", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerX", + "!=", + "0" + ] + }, + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerY", + "!=", + "0" + ] + } + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "PositionDisplacement = (DesiredDuration - RunningTimer) / DesiredDuration * Amplitude * [-1 or 1]", + "comment2": "" + }, + { + "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": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_InitialShake", + "=", + "1" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerX", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementX", + "=", + "(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerX)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerY", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementY", + "=", + "(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerY)" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "After initial shake pick a random direction", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_InitialShake", + "=", + "0" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerX", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementX", + "=", + "(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerX) * RandomWithStep(-1, 1, 2)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerY", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementY", + "=", + "(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerY) * RandomWithStep(-1, 1, 2)" + ] + } + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Calculate Rotation (angle) shake ", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerAngle", + "!=", + "0" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Every \"even\" shake, rotate clockwise", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "AngleDisplacement = (DesiredDuration - RunningTimer) / DesiredDuration * Amplitude", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "mod(Object.Variable(__ShakeObject_ShakeCounter),2)", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementAngle", + "=", + "-1 * (Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerAngle)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Every \"odd\" shake, rotate counter-clockwise", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "AngleDisplacement = (DesiredDuration - RunningTimer) / DesiredDuration * Amplitude", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "mod(Object.Variable(__ShakeObject_ShakeCounter),2)", + "=", + "1" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementAngle", + "=", + "(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerAngle)" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Calculate Scale shake", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerScale", + "!=", + "0" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Calculate object scale displacement, with linear decay over time", + "comment2": "" + }, + { + "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": "" + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Every even shake, increase scale", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "mod(Object.Variable(__ShakeObject_ShakeCounter),2)", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementScale", + "=", + "-1 * (Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerScale) * (1/100)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Every \"odd\" shake, decrease scale", + "comment2": "" + }, + { + "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": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "mod(Object.Variable(__ShakeObject_ShakeCounter),2)", + "=", + "1" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementScale", + "=", + "(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerScale) * (1/100)" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Save that initial shake has been processed", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_InitialShake", + "=", + "0" + ] + } + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Move object", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Calculate the fraction of shake that occured during this frame", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PercentTimeElapsedThisFrame", + "=", + "min(1,TimeDelta()/Object.Variable(__ShakeObject_TimeBetweenShakes))" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Increase change for the first half of the shake (move away from original values)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "ObjectTimer" + }, + "parameters": [ + "Object", + "\"__ShakeObject_ShakeTimer\"", + "Object.Variable(__ShakeObject_TimeBetweenShakes)/2" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Change position", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerX", + "!=", + "0" + ] + }, + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerY", + "!=", + "0" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "MettreX" + }, + "parameters": [ + "Object", + "+", + "round(1024 * Object.Variable(__ShakeObject_DisplacementX) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + }, + { + "type": { + "value": "MettreY" + }, + "parameters": [ + "Object", + "+", + "round(1024 * Object.Variable(__ShakeObject_DisplacementY) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Save movement to calculate drift", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementTravelledX", + "+", + "round(1024 * Object.Variable(__ShakeObject_DisplacementX) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementTravelledY", + "+", + "round(1024 * Object.Variable(__ShakeObject_DisplacementY) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Change angle", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "Object.Variable(__ShakeObject_PowerAngle)", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetAngle" + }, + "parameters": [ + "Object", + "+", + "round(1024 * Object.Variable(__ShakeObject_DisplacementAngle) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Save movement to calculate drift", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_AngleTravelled", + "+", + "round(1024 * Object.Variable(__ShakeObject_DisplacementAngle) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Change scale", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "Object.Variable(__ShakeObject_PowerScale)", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ChangeScale" + }, + "parameters": [ + "Object", + "+", + "round(1024 * Object.Variable(__ShakeObject_DisplacementScale) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Save movement to calculate drift", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ScaleTravelled", + "+", + "round(1024 * Object.Variable(__ShakeObject_DisplacementScale) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Decrease change the second half of the shake (return to original position)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ObjectTimer" + }, + "parameters": [ + "Object", + "\"__ShakeObject_ShakeTimer\"", + "Object.Variable(__ShakeObject_TimeBetweenShakes)/2" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Change position", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerX", + "!=", + "0" + ] + }, + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerY", + "!=", + "0" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "MettreX" + }, + "parameters": [ + "Object", + "-", + "round(1024 * Object.Variable(__ShakeObject_DisplacementX) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + }, + { + "type": { + "value": "MettreY" + }, + "parameters": [ + "Object", + "-", + "round(1024 * Object.Variable(__ShakeObject_DisplacementY) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Save movement to calculate drift", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementTravelledX", + "-", + "round(1024 * Object.Variable(__ShakeObject_DisplacementX) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementTravelledY", + "-", + "round(1024 * Object.Variable(__ShakeObject_DisplacementY) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Change angle", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "Object.Variable(__ShakeObject_PowerAngle)", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetAngle" + }, + "parameters": [ + "Object", + "-", + "round(1024 * Object.Variable(__ShakeObject_DisplacementAngle) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Save movement to calculate drift", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_AngleTravelled", + "-", + "round(1024 * Object.Variable(__ShakeObject_DisplacementAngle) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Change scale", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "Object.Variable(__ShakeObject_PowerScale)", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ChangeScale" + }, + "parameters": [ + "Object", + "-", + "round(1024 * Object.Variable(__ShakeObject_DisplacementScale) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Save movement to calculate drift", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ScaleTravelled", + "-", + "round(1024 * Object.Variable(__ShakeObject_DisplacementScale) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ] + } + ] + } + ] + } + ], + "parameters": [] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Stop shaking", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Stop shaking when the duration has been reached (or if the stop shaking function was called)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "ObjectTimer" + }, + "parameters": [ + "Object", + "\"__ShakeObject_DurationTimer\"", + "Object.Variable(__ShakeObject_Duration)" + ] + }, + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeInProgress", + "=", + "-1" + ] + } + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeInProgress", + "=", + "0" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeCounter", + "=", + "0" + ] + } + ], + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Correct for drift and reset drift tracking variables", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Move to correct any drift from previous shake", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerX", + "!=", + "0" + ] + }, + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerY", + "!=", + "0" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "MettreX" + }, + "parameters": [ + "Object", + "-", + "Object.Variable(__ShakeObject_DisplacementTravelledX)" + ] + }, + { + "type": { + "value": "MettreY" + }, + "parameters": [ + "Object", + "-", + "Object.Variable(__ShakeObject_DisplacementTravelledY)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerAngle", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetAngle" + }, + "parameters": [ + "Object", + "-", + "Object.Variable(__ShakeObject_AngleTravelled)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerScale", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ChangeScale" + }, + "parameters": [ + "Object", + "-", + "Object.Variable(__ShakeObject_ScaleTravelled)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Reset drift detection variables", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementTravelledX", + "=", + "0" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementTravelledY", + "=", + "0" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_AngleTravelled", + "=", + "0" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ScaleTravelled", + "=", + "0" + ] + } + ] + } + ], + "parameters": [] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ShakeObject::ShakeObject_PositionAngleScale", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Stop shaking an object.", + "fullName": "Stop shaking an object", + "functionType": "Action", + "name": "StopShaking", + "sentence": "Stop shaking _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ShakeObject::ShakeObject_PositionAngleScale::IsShaking" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeInProgress", + "=", + "-1" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ShakeObject::ShakeObject_PositionAngleScale", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if an object is shaking.", + "fullName": "Check if an object is shaking", + "functionType": "Condition", + "name": "IsShaking", + "sentence": "_PARAM0_ is shaking", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeInProgress", + "=", + "1" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ShakeObject::ShakeObject_PositionAngleScale", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [], + "sharedPropertyDescriptors": [] + } + ], + "eventsBasedObjects": [] + }, + { + "author": "VegeTato, arthuro555", + "category": "", + "extensionNamespace": "", + "fullName": "Repeat every X seconds", + "helpPath": "", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXJlcGVhdCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0xNywxN0g3VjE0TDMsMThMNywyMlYxOUgxOVYxM0gxN003LDdIMTdWMTBMMjEsNkwxNywyVjVINVYxMUg3VjdaIiAvPjwvc3ZnPg==", + "name": "RepeatEveryXSeconds", + "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/repeat.svg", + "shortDescription": "This allows to trigger an event every X seconds.", + "version": "0.1.0", + "description": "Convenience conditions, actions and behaviors for timers to trigger a condition every X seconds.", + "origin": { + "identifier": "RepeatEveryXSeconds", + "name": "gdevelop-extension-store" + }, + "tags": [ + "repeat", + "timer", + "time", + "convenience" + ], + "authorIds": [ + "ZgrsWuRTAkXgeuPV9bo0zuEcA2w1", + "IRIhkkTTl2UHhfjrLTTH5GYwkYu1" + ], + "dependencies": [], + "eventsFunctions": [ + { + "description": "Triggers every X seconds.", + "fullName": "Repeat every X seconds", + "functionType": "Condition", + "name": "Repeat", + "sentence": "Repeat timer _PARAM1_ every _PARAM2_ seconds", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "ResetTimer" + }, + "parameters": [ + "player", + "GetArgumentAsString(\"timerName\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Timer" + }, + "parameters": [ + "player", + "GetArgumentAsNumber(\"time\")", + "GetArgumentAsString(\"timerName\")" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResetTimer" + }, + "parameters": [ + "player", + "GetArgumentAsString(\"timerName\")" + ] + }, + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "The name of the timer to loop", + "name": "timerName", + "type": "string" + }, + { + "description": "The time in seconds between each trigger", + "name": "time", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Triggers every X seconds X amount of times.", + "fullName": "Repeat every X seconds in X number", + "functionType": "Condition", + "name": "RepeatXTimes", + "sentence": "Repeat timer _PARAM1_ every _PARAM2_ seconds _PARAM3_ times", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "ResetTimer" + }, + "parameters": [ + "player", + "GetArgumentAsString(\"timerName\")" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__RepeatEveryXSeconds_.Counter[GetArgumentAsString(\"timerName\")]", + "=", + "0" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Timer" + }, + "parameters": [ + "player", + "GetArgumentAsNumber(\"time\")", + "GetArgumentAsString(\"timerName\")" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "GetArgumentAsNumber(\"limit\")", + "=", + "-1" + ] + }, + { + "type": { + "value": "VarScene" + }, + "parameters": [ + "__RepeatEveryXSeconds_.Counter[GetArgumentAsString(\"timerName\")]", + "<", + "GetArgumentAsNumber(\"limit\")" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "ResetTimer" + }, + "parameters": [ + "player", + "GetArgumentAsString(\"timerName\")" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__RepeatEveryXSeconds_.Counter[GetArgumentAsString(\"timerName\")]", + "+", + "1" + ] + }, + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "The name of the timer to loop", + "name": "timerName", + "type": "string" + }, + { + "description": "The time in seconds between each trigger", + "name": "time", + "type": "expression" + }, + { + "description": "The limit of loops", + "longDescription": "The condition will trigger at most this amount of times. Make it -1 for looping forever.", + "name": "limit", + "type": "expression" + } + ], + "objectGroups": [] + } + ], + "eventsBasedBehaviors": [ + { + "description": "Allows to repeat an object timer every X seconds.", + "fullName": "Repeat every X seconds", + "name": "RepeatTimer", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyTimerName()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "RepeatEveryXSeconds::RepeatTimer", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Triggers every X seconds, where X is defined in the behavior properties.", + "fullName": "Repeat every X seconds", + "functionType": "Condition", + "name": "Repeat", + "sentence": "Recurring timer _PARAM1_ of _PARAM0_ has triggered", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ObjectTimer" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyTimerName()", + "Object.Behavior::PropertyTimerLength()" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "RepeatEveryXSeconds::RepeatTimer::PropertyLimit" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "-1" + ] + }, + { + "type": { + "value": "RepeatEveryXSeconds::RepeatTimer::PropertyCounter" + }, + "parameters": [ + "Object", + "Behavior", + "<", + "Object.Behavior::PropertyLimit()" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyTimerName()" + ] + }, + { + "type": { + "value": "RepeatEveryXSeconds::RepeatTimer::SetPropertyCounter" + }, + "parameters": [ + "Object", + "Behavior", + "+", + "1" + ] + }, + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "RepeatEveryXSeconds::RepeatTimer", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Pauses a recurring timer.", + "fullName": "Pause a recurring timer", + "functionType": "Action", + "name": "Pause", + "sentence": "Pause recurring timer _PARAM1_ of _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PauseObjectTimer" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyTimerName()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "RepeatEveryXSeconds::RepeatTimer", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Resumes a paused recurring timer.", + "fullName": "Resume a recurring timer", + "functionType": "Action", + "name": "Resume", + "sentence": "Resume recurring timer _PARAM1_ of _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "UnPauseObjectTimer" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyTimerName()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "RepeatEveryXSeconds::RepeatTimer", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Allows to trigger the recurring timer X times again.", + "fullName": "Reset the limit", + "functionType": "Action", + "name": "ResetLimit", + "sentence": "Allow to trigger the recurring timer _PARAM1_ of _PARAM0_ X times again", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "RepeatEveryXSeconds::RepeatTimer::SetPropertyCounter" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "RepeatEveryXSeconds::RepeatTimer", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "MyTimer", + "type": "String", + "label": "The name of the timer to repeat", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "TimerName" + }, + { + "value": "1", + "type": "Number", + "label": "The time between each trigger (in seconds)", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "TimerLength" + }, + { + "value": "-1", + "type": "Number", + "label": "How many times should the timer trigger? -1 for forever.", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "Limit" + }, + { + "value": "0", + "type": "Number", + "label": "An internal counter", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "Counter" + } + ], + "sharedPropertyDescriptors": [] + } + ], + "eventsBasedObjects": [] + }, + { + "author": "@4ian", + "category": "General", + "extensionNamespace": "", + "fullName": "Health (life) points and shield", + "helpPath": "", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLWhlYXJ0LWhhbGYtZnVsbCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0xNi41LDVDMTUsNSAxMy41OCw1LjkxIDEzLDcuMlYxNy43NEMxNy4yNSwxMy44NyAyMCwxMS4yIDIwLDguNUMyMCw2LjUgMTguNSw1IDE2LjUsNU0xNi41LDNDMTkuNTgsMyAyMiw1LjQxIDIyLDguNUMyMiwxMi4yNyAxOC42LDE1LjM2IDEzLjQ1LDIwLjAzTDEyLDIxLjM1TDEwLjU1LDIwLjAzQzUuNCwxNS4zNiAyLDEyLjI3IDIsOC41QzIsNS40MSA0LjQyLDMgNy41LDNDOS4yNCwzIDEwLjkxLDMuODEgMTIsNS4wOEMxMy4wOSwzLjgxIDE0Ljc2LDMgMTYuNSwzWiIgLz48L3N2Zz4=", + "name": "Health", + "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/heart-half-full.svg", + "shortDescription": "Manage life points and a protective shield.", + "version": "0.1.0", + "description": "Manage health (life) and shield points of an object. Health can be assigned to players, enemies, NPCs, or even inanimate objects such as breaking doors and mining rocks.\n\nHow to use:\n\n- Set desired values in \"Health\" and \"Shield\" behavior properties\n- To apply damage use “Damage an object” or “Damage an object protected by a shield”\n- To heal health, use “Heal object” action \n- To activate the shield, use “Activate Shield” action\n- Health and shield regeneration will happen automatically based on properties\n \nTips:\n\n- While damage cooldown is active, no damage will be applied to health or shield\n- Try using the “Blink” extension while damage cooldown is active\n- Use the “Is just damaged” condition to trigger audio and visual effects\n\nHealth properties:\n\n- Health (life points) Used for starting health\n- Maximum health (0 for no maximum)\n- Damage cooldown (seconds) Use \"0\" for no cooldown\n- Rate of health regeneration (points per second) Will not exceed max health, even with overhealing enabled\n- Delay (seconds) before health regeneration starts after being hit\n- Allow heal to increase health above max health (will not exceed max health)\n\nShield properties:\n\n- Max shield points (Shield will start with this many points when activated)\n- Duration of shield (seconds) Use \"0\" to disable shield timer\n- Rate of shield regeneration (points per second)\n- Shield will block all excess damage when shield is destroyed\n- Delay (seconds) before shield regeneration starts after being hit\n- Regenerate shield when it has zero points\n", + "origin": { + "identifier": "Health", + "name": "gdevelop-extension-store" + }, + "tags": [ + "health", + "life", + "damage", + "hit", + "heal", + "shield", + "regeneration" + ], + "authorIds": [ + "wWP8BSlAW0UP4NeaHa2LcmmDzmH2", + "xpwUwByyImTDcHEqDUqfyg0oRBt1", + "gqDaZjCfevOOxBYkK6zlhtZnXCg1" + ], + "dependencies": [], + "eventsFunctions": [], + "eventsBasedBehaviors": [ + { + "description": "Manage life points by damaging and healing the object.", + "fullName": "Health", + "name": "Health", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Regeneration", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Health", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Health::PropertyHealthRegenRate" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "0" + ] + }, + { + "type": { + "value": "Health::Health::PropertyHealth" + }, + "parameters": [ + "Object", + "Behavior", + "<", + "Object.Behavior::MaxHealth()" + ] + }, + { + "type": { + "value": "CompareObjectTimer" + }, + "parameters": [ + "Object", + "\"__Health.TimeSinceLastHit\"", + ">", + "Object.Behavior::PropertyHealthRegenDelay()" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyHealth" + }, + "parameters": [ + "Object", + "Behavior", + "+", + "Object.Behavior::PropertyHealthRegenRate() * TimeDelta()" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Correct any values above maximum limits", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Health::PropertyHealth" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "Object.Behavior::MaxHealth()" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyHealth" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyMaxHealth()" + ] + } + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Reset damage trigger", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyIsJustDamaged" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Apply damage directly to the object. Damage will not be affected by shield. Triggers damage cooldown.", + "fullName": "Damage an object", + "functionType": "Action", + "group": "Health", + "name": "Hit", + "sentence": "Damage _PARAM0_, removing _PARAM2_ points from its health", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Only consider damage if damage cooldown is NOT active", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "Health::Health::IsDamageCooldownActive" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Mark object was hit at least once (used for initial state of damage cooldown)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "Health::Health::PropertyHitAtLeastOnce" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyHitAtLeastOnce" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Restart time since last hit timer", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"__Health.TimeSinceLastHit\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Apply damage", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyHealth" + }, + "parameters": [ + "Object", + "Behavior", + "-", + "GetArgumentAsNumber(\"DamageValue\")" + ] + }, + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"__Health.DamageCooldown\"" + ] + }, + { + "type": { + "value": "Health::Health::SetPropertyIsJustDamaged" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Value of the damage to do (will be removed from object health)", + "name": "DamageValue", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change health points. This is not considered damage.", + "fullName": "Change health points", + "functionType": "Action", + "group": "Health", + "name": "SetHealth", + "sentence": "Set health of _PARAM0_ to _PARAM2_ points", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyHealth" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Health::PropertyMaxHealth" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyHealth" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "min(Object.Behavior::PropertyHealth(), Object.Behavior::PropertyMaxHealth())" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "New health value", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Heal the object by increasing its life points.", + "fullName": "Heal object", + "functionType": "Action", + "group": "Health", + "name": "Heal", + "sentence": "Heal _PARAM0_ with _PARAM2_ health points", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Change health points", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyHealth" + }, + "parameters": [ + "Object", + "Behavior", + "+", + "GetArgumentAsNumber(\"HealValue\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Prevent exceeding max health (unless overhealing is enabled)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Health::PropertyMaxHealth" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + }, + { + "type": { + "inverted": true, + "value": "Health::Health::PropertyAllowOverHealing" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyHealth" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "min(Object.Behavior::PropertyHealth(), Object.Behavior::PropertyMaxHealth())" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Points to heal (will be added to object health)", + "name": "HealValue", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the object maximum health points.", + "fullName": "Change maximum health points", + "functionType": "Action", + "group": "Health", + "name": "SetMaxHealth", + "sentence": "Set maximum health of _PARAM0_ to _PARAM2_ points", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyMaxHealth" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Maximum health", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change rate of health regeneration.", + "fullName": "Change rate of health regeneration", + "functionType": "Action", + "group": "Shield", + "name": "SetHealthRegenRate", + "sentence": "Set rate of health regen of _PARAM0_ to _PARAM2_ points per second", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyHealthRegenRate" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Rate of regen", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change duration of damage cooldown.", + "fullName": "Change duration of damage cooldown", + "functionType": "Action", + "group": "Health", + "name": "SetCooldownDuration", + "sentence": "Set duration of damage cooldown on _PARAM0_ to _PARAM2_ seconds", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyDamageCooldown" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Duration of damage cooldown (seconds)", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change delay before health regeneration starts after being hit.", + "fullName": "Change delay before health regeneration starts", + "functionType": "Action", + "group": "Health", + "name": "SetHealthRegenDelay", + "sentence": "Set delay before health regeneration starts on _PARAM0_ to _PARAM2_ seconds", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyHealthRegenDelay" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Delay (seconds)", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Allow over-healing.", + "fullName": "Allow over-healing", + "functionType": "Action", + "group": "Health", + "name": "AllowOverHealing", + "sentence": "Allow over-healing on _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyAllowOverHealing" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Value\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyAllowOverHealing" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Allow over-healing", + "name": "Value", + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "Mark object as hit at least once.", + "fullName": "Mark object as hit at least once", + "functionType": "Action", + "group": "Health", + "name": "SetHitAtLeastOnce", + "sentence": "Mark _PARAM0_ as hit at least once: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyHitAtLeastOnce" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Value\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyHitAtLeastOnce" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Hit at least once", + "name": "Value", + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "Mark object as just damaged.", + "fullName": "Mark object as just damaged", + "functionType": "Action", + "group": "Health", + "name": "SetJustDamaged", + "sentence": "Mark _PARAM0_ as just damaged: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyIsJustDamaged" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Value\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyIsJustDamaged" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Just damaged", + "name": "Value", + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the object has been hit at least once.", + "fullName": "Object hit at least once", + "functionType": "Condition", + "group": "Health", + "name": "HitAtLeastOnce", + "sentence": "_PARAM0_ has just been hit at least once", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Health::PropertyHitAtLeastOnce" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the object was just damaged previously in the events.", + "fullName": "Is just damaged", + "functionType": "Condition", + "group": "Health", + "name": "IsJustDamaged", + "sentence": "_PARAM0_ has just been damaged", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Health::PropertyIsJustDamaged" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if damage cooldown is active. Object (and shield) cannot be damaged while this is active.", + "fullName": "Is damage cooldown active", + "functionType": "Condition", + "group": "Health", + "name": "IsDamageCooldownActive", + "sentence": "Damage cooldown on _PARAM0_ is active", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Health::PropertyHitAtLeastOnce" + }, + "parameters": [ + "Object", + "Behavior" + ] + }, + { + "type": { + "value": "Health::Health::PropertyDamageCooldown" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + }, + { + "type": { + "value": "CompareObjectTimer" + }, + "parameters": [ + "Object", + "\"__Health.DamageCooldown\"", + "<", + "Object.Behavior::PropertyDamageCooldown()" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the object is considered dead (no health points).", + "fullName": "Is dead", + "functionType": "Condition", + "group": "Health", + "name": "IsDead", + "sentence": "_PARAM0_ is dead", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Health::PropertyHealth" + }, + "parameters": [ + "Object", + "Behavior", + "<=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Maximum health points of the object.", + "fullName": "Maximum health points", + "functionType": "Expression", + "group": "Health", + "name": "MaxHealth", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyMaxHealth()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Duration of damage cooldown (seconds).", + "fullName": "Duration of damage cooldown", + "functionType": "Expression", + "group": "Health", + "name": "DamageCooldownDuration", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyDamageCooldown()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Health points of the object.", + "fullName": "Health points", + "functionType": "Expression", + "group": "Health", + "name": "Health", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyHealth()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Delay before health regeneration starts after last hit (seconds).", + "fullName": "Delay before health regeneration starts", + "functionType": "Expression", + "group": "Health", + "name": "HealthRegenDelay", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyHealthRegenDelay()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Rate of health regeneration (points per second).", + "fullName": "Rate of health regeneration", + "functionType": "Expression", + "group": "Health", + "name": "HealthRegenRate", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyHealthRegenRate()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Time before damage cooldown ends (seconds).", + "fullName": "Time before damage cooldown ends", + "functionType": "Expression", + "group": "Health", + "name": "DamageCooldownRemaining", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "0" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Health::IsDamageCooldownActive" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "max(0,Object.Behavior::PropertyDamageCooldown() - Object.ObjectTimerElapsedTime(\"__Health.DamageCooldown\"))" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Time since last hit (seconds).", + "fullName": "Time since last hit", + "functionType": "Expression", + "group": "Health", + "name": "TimeSinceLastHit", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.ObjectTimerElapsedTime(\"__Health.TimeSinceLastHit\")" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"__Health.DamageCooldown\"" + ] + }, + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"__Health.TimeSinceLastHit\"" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "100", + "type": "Number", + "label": "Health (life points) Used for starting health", + "description": "", + "group": "Health", + "extraInformation": [], + "hidden": false, + "name": "Health" + }, + { + "value": "0", + "type": "Number", + "label": "Damage cooldown (seconds) Use \"0\" for no cooldown", + "description": "", + "group": "Health", + "extraInformation": [], + "hidden": false, + "name": "DamageCooldown" + }, + { + "value": "100", + "type": "Number", + "label": "Maximum health (0 for no maximum)", + "description": "", + "group": "Health", + "extraInformation": [], + "hidden": false, + "name": "MaxHealth" + }, + { + "value": "", + "type": "Boolean", + "label": "", + "description": "", + "group": "Health", + "extraInformation": [], + "hidden": true, + "name": "IsJustDamaged" + }, + { + "value": "0", + "type": "Number", + "label": "Rate of health regeneration (points per second) Will not exceed max health, even with overhealing enabled", + "description": "", + "group": "Health", + "extraInformation": [], + "hidden": false, + "name": "HealthRegenRate" + }, + { + "value": "0", + "type": "Number", + "label": "Delay (seconds) before health regen starts after being hit", + "description": "", + "group": "Health", + "extraInformation": [], + "hidden": false, + "name": "HealthRegenDelay" + }, + { + "value": "", + "type": "Boolean", + "label": "Allow heal to increase health above max health (regen will never exceed max health)", + "description": "", + "group": "Health", + "extraInformation": [], + "hidden": false, + "name": "AllowOverHealing" + }, + { + "value": "", + "type": "Boolean", + "label": "", + "description": "", + "group": "Health", + "extraInformation": [], + "hidden": true, + "name": "HitAtLeastOnce" + } + ], + "sharedPropertyDescriptors": [] + }, + { + "description": "Protective shield that prevents damage to health points.", + "fullName": "Shield", + "name": "Shield", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Regeneration", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Shield", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Shield::PropertyShieldRegenRate" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "0" + ] + }, + { + "type": { + "value": "Health::Shield::PropertyShieldPoints" + }, + "parameters": [ + "Object", + "Behavior", + "<", + "Object.Behavior::PropertyMaxShieldPoints()" + ] + }, + { + "type": { + "value": "CompareObjectTimer" + }, + "parameters": [ + "Object", + "\"__Health.TimeSinceLastHit\"", + ">", + "Object.Behavior::PropertyShieldRegenDelay()" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Only regen when shield is active or when \"RegenShieldWhenZeroPoints\" is enabled", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "Health::Shield::IsShieldActive" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + }, + { + "type": { + "value": "Health::Shield::PropertyRegenShieldWhenZeroPoints" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Shield::SetPropertyShieldPoints" + }, + "parameters": [ + "Object", + "Behavior", + "+", + "Object.Behavior::PropertyShieldRegenRate() * TimeDelta()" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Correct any values above maximum limits", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Shield::PropertyShieldPoints" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "Object.Behavior::PropertyMaxShieldPoints()" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Shield::SetPropertyShieldPoints" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyMaxShieldPoints()" + ] + } + ] + } + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Remove shield points if shield expired", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "Health::Shield::IsShieldActive" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "Health::Shield::SetPropertyShieldPoints" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Reset damage trigger", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Shield::SetPropertyIsShieldJustDamaged" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Shield", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Apply damage to the shield and object. If the shield is active, it will be damaged first and any excess damage will reduce health and trigger damage cooldown.", + "fullName": "Damage an object protected by a shield", + "functionType": "Action", + "group": "Health", + "name": "ShieldHit", + "sentence": "Damage shield and health of _PARAM0_ for _PARAM2_ points of damage", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Only consider damage if damage cooldown is NOT active", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "Health::Health::IsDamageCooldownActive" + }, + "parameters": [ + "Object", + "RequireHealth", + "" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Mark object was hit at least once (used for initial state of damage cooldown)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "Health::Health::HitAtLeastOnce" + }, + "parameters": [ + "Object", + "RequireHealth", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Health::SetHitAtLeastOnce" + }, + "parameters": [ + "Object", + "RequireHealth", + "yes", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Restart time since last hit timer", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"__Health.TimeSinceLastHit\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "If shield is NOT active, perform normal damage", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "Health::Shield::IsShieldActive" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Health::SetHealth" + }, + "parameters": [ + "Object", + "RequireHealth", + "Object.RequireHealth::Health() - GetArgumentAsNumber(\"DamageValue\")", + "" + ] + }, + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"__Health.DamageCooldown\"" + ] + }, + { + "type": { + "value": "Health::Health::SetJustDamaged" + }, + "parameters": [ + "Object", + "RequireHealth", + "yes", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "If shield is active, damage shield first", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Shield::IsShieldActive" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Shield::SetPropertyShieldPoints" + }, + "parameters": [ + "Object", + "Behavior", + "-", + "GetArgumentAsNumber(\"DamageValue\")" + ] + }, + { + "type": { + "value": "Health::Shield::SetPropertyIsShieldJustDamaged" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Excess damage is based on negative shield points", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Shield::PropertyShieldPoints" + }, + "parameters": [ + "Object", + "Behavior", + "<", + "0" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Apply excess damage only if shield does NOT block excess damage", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "Health::Shield::PropertyShieldBlocksExcessDamage" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Health::SetHealth" + }, + "parameters": [ + "Object", + "RequireHealth", + "Object.RequireHealth::Health() + Object.Behavior::PropertyShieldPoints()", + "" + ] + }, + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"__Health.DamageCooldown\"" + ] + }, + { + "type": { + "value": "Health::Health::SetJustDamaged" + }, + "parameters": [ + "Object", + "RequireHealth", + "yes", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Shield::SetPropertyShieldPoints" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ] + } + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Shield", + "type": "behavior" + }, + { + "description": "Value of the damage to do (will be removed from object health)", + "name": "DamageValue", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the object maximum shield points.", + "fullName": "Change maximum shield points", + "functionType": "Action", + "group": "Shield", + "name": "SetMaxShield", + "sentence": "Set maximum shield of _PARAM0_ to _PARAM2_ points", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Shield::SetPropertyMaxShieldPoints" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Shield", + "type": "behavior" + }, + { + "description": "Maximum shield", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change shield points. This is not considered damage.", + "fullName": "Change shield points", + "functionType": "Action", + "group": "Shield", + "name": "SeShieldPoints", + "sentence": "Set shield on _PARAM0_ to _PARAM2_ points", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Shield::SetPropertyShieldPoints" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Shield", + "type": "behavior" + }, + { + "description": "Shield points", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change rate of shield regeneration.", + "fullName": "Change rate of shield regeneration", + "functionType": "Action", + "group": "Shield", + "name": "SetShieldRegenRate", + "sentence": "Set rate of shield regeneration of _PARAM0_ to _PARAM2_ points per second", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Shield::SetPropertyShieldRegenRate" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Shield", + "type": "behavior" + }, + { + "description": "Rate of regen", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change delay before shield regeneration starts after being hit.", + "fullName": "Change delay before shield regeneration starts", + "functionType": "Action", + "group": "Shield", + "name": "SetShieldRegenDelay", + "sentence": "Set delay before shield regeneration starts on _PARAM0_ to _PARAM2_ seconds", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Shield::SetPropertyShieldRegenDelay" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Shield", + "type": "behavior" + }, + { + "description": "Delay (seconds)", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change duration of shield.", + "fullName": "Change duration of shield", + "functionType": "Action", + "group": "Shield", + "name": "SetShieldDuration", + "sentence": "Set duration of shield on _PARAM0_ to _PARAM2_ seconds", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Shield::SetPropertyShieldDuration" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Shield", + "type": "behavior" + }, + { + "description": "Duration of shield (seconds)", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Activate shield. If the shield was already active, this will reset it's points and timer.", + "fullName": "Activate shield", + "functionType": "Action", + "group": "Shield", + "name": "ActivateShield", + "sentence": "Activate (or renew) shield on _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"__Health.ShieldDuration\"" + ] + }, + { + "type": { + "value": "Health::Shield::SetPropertyShieldPoints" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyMaxShieldPoints()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Shield", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Change max shield points. This value is used when the shield is activated or renewed.", + "fullName": "Change max shield points ", + "functionType": "Action", + "group": "Shield", + "name": "SetMaxShieldPoints", + "sentence": "Set max shield of _PARAM0_ to _PARAM2_ points", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Shield::SetPropertyMaxShieldPoints" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Shield", + "type": "behavior" + }, + { + "description": "Shield points", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Shield blocks excess damage when it breaks.", + "fullName": "Shield blocks excess damage when it breaks", + "functionType": "Action", + "group": "Shield", + "name": "ShieldBlockExcessDamage", + "sentence": "Shield on _PARAM0_ blocks excess damage when it breaks: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Shield::SetPropertyShieldBlocksExcessDamage" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Value\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Shield::SetPropertyShieldBlocksExcessDamage" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Shield", + "type": "behavior" + }, + { + "description": "Shield blocks excess damage", + "name": "Value", + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "Regenerate shield when it has zero points.", + "fullName": "Regenerate shield when it has zero points", + "functionType": "Action", + "group": "Shield", + "name": "RegenShieldWhenZero", + "sentence": "Regenerate shield on _PARAM0_ when it has zero points: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Shield::SetPropertyRegenShieldWhenZeroPoints" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Value\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Shield::SetPropertyRegenShieldWhenZeroPoints" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Shield", + "type": "behavior" + }, + { + "description": "Regen shield when it has zero points", + "name": "Value", + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the shield was just damaged previously in the events.", + "fullName": "Is shield just damaged", + "functionType": "Condition", + "group": "Shield", + "name": "IsShieldJustDamaged", + "sentence": "Shield on _PARAM0_ has just been damaged", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Shield::PropertyIsShieldJustDamaged" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Shield", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the shield is active (based on shield points and duration).", + "fullName": "Is shield active", + "functionType": "Condition", + "group": "Shield", + "name": "IsShieldActive", + "sentence": "Shield on _PARAM0_ is active", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "To be considered \"active\", a shield must have positive points AND not exceed duration", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Shield::PropertyShieldPoints" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Don't check the timer when duration is zero (or negative)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Shield::PropertyShieldDuration" + }, + "parameters": [ + "Object", + "Behavior", + "<=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Shield::PropertyShieldDuration" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + }, + { + "type": { + "value": "CompareObjectTimer" + }, + "parameters": [ + "Object", + "\"__Health.ShieldDuration\"", + "<", + "Object.Behavior::PropertyShieldDuration()" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Shield", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Maximum shield points of the object.", + "fullName": "Maximum shield points", + "functionType": "Expression", + "group": "Shield", + "name": "MaxShield", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyMaxShieldPoints()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Shield", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Duration of shield (seconds).", + "fullName": "Duration of shield", + "functionType": "Expression", + "group": "Shield", + "name": "ShieldDuration", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyShieldDuration()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Shield", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Delay before shield regeneration starts after last hit (seconds).", + "fullName": "Delay before shield regeneration starts", + "functionType": "Expression", + "group": "Shield", + "name": "ShieldRegenDelay", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyShieldRegenDelay()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Shield", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Rate of shield regeneration (points per second).", + "fullName": "Rate of shield regeneration", + "functionType": "Expression", + "group": "Shield", + "name": "ShieldRegenRate", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyShieldRegenRate()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Shield", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Time before shield ends (seconds).", + "fullName": "Time before shield ends", + "functionType": "Expression", + "group": "Shield", + "name": "ShieldTimeRemaining", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "0" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Shield::PropertyShieldDuration" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "max(0,Object.Behavior::PropertyShieldDuration() - Object.ObjectTimerElapsedTime(\"__Health.ShieldDuration\"))" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Shield", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Shield points of the object.", + "fullName": "Shield points", + "functionType": "Expression", + "group": "Shield", + "name": "ShieldPoints", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyShieldPoints()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Shield", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "", + "type": "Behavior", + "label": "", + "description": "", + "group": "", + "extraInformation": [ + "Health::Health" + ], + "hidden": false, + "name": "RequireHealth" + }, + { + "value": "100", + "type": "Number", + "label": "Max shield points (Shield will start with this many points when activated)", + "description": "", + "group": "Shield", + "extraInformation": [], + "hidden": false, + "name": "MaxShieldPoints" + }, + { + "value": "5", + "type": "Number", + "label": "Duration of shield (seconds) Use \"0\" to disable shield timer", + "description": "", + "group": "Shield", + "extraInformation": [], + "hidden": false, + "name": "ShieldDuration" + }, + { + "value": "", + "type": "Number", + "label": "", + "description": "", + "group": "Shield", + "extraInformation": [], + "hidden": true, + "name": "ShieldPoints" + }, + { + "value": "0", + "type": "Number", + "label": "Rate of shield regeneration (points per second)", + "description": "", + "group": "Shield", + "extraInformation": [], + "hidden": false, + "name": "ShieldRegenRate" + }, + { + "value": "", + "type": "Boolean", + "label": "Shield will block all excess damage when shield is destroyed", + "description": "", + "group": "Shield", + "extraInformation": [], + "hidden": false, + "name": "ShieldBlocksExcessDamage" + }, + { + "value": "", + "type": "Number", + "label": "Delay (seconds) before shield regeneration starts after being hit", + "description": "", + "group": "Shield", + "extraInformation": [], + "hidden": false, + "name": "ShieldRegenDelay" + }, + { + "value": "", + "type": "Boolean", + "label": "Regenerate shield when it has zero points", + "description": "", + "group": "Shield", + "extraInformation": [], + "hidden": false, + "name": "RegenShieldWhenZeroPoints" + }, + { + "value": "", + "type": "Boolean", + "label": "", + "description": "", + "group": "Shield", + "extraInformation": [], + "hidden": true, + "name": "IsShieldJustDamaged" + } + ], + "sharedPropertyDescriptors": [] + } + ], + "eventsBasedObjects": [] + }, + { + "author": "Tristan Rhodes (https://victrisgames.itch.io/), D8H", + "category": "Input", + "extensionNamespace": "", + "fullName": "Draggable slider", + "helpPath": "", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iSWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMzIgMzIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMyIDMyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQo8L3N0eWxlPg0KPGNpcmNsZSBjbGFzcz0ic3QwIiBjeD0iMjMiIGN5PSI3IiByPSIzIi8+DQo8bGluZSBjbGFzcz0ic3QwIiB4MT0iMyIgeTE9IjciIHgyPSIyMCIgeTI9IjciLz4NCjxsaW5lIGNsYXNzPSJzdDAiIHgxPSIyOSIgeTE9IjciIHgyPSIyNiIgeTI9IjciLz4NCjxjaXJjbGUgY2xhc3M9InN0MCIgY3g9IjEyIiBjeT0iMTYiIHI9IjMiLz4NCjxsaW5lIGNsYXNzPSJzdDAiIHgxPSIzIiB5MT0iMTYiIHgyPSI5IiB5Mj0iMTYiLz4NCjxsaW5lIGNsYXNzPSJzdDAiIHgxPSIyOSIgeTE9IjE2IiB4Mj0iMTUiIHkyPSIxNiIvPg0KPGNpcmNsZSBjbGFzcz0ic3QwIiBjeD0iMjMiIGN5PSIyNSIgcj0iMyIvPg0KPGxpbmUgY2xhc3M9InN0MCIgeDE9IjMiIHkxPSIyNSIgeDI9IjIwIiB5Mj0iMjUiLz4NCjxsaW5lIGNsYXNzPSJzdDAiIHgxPSIyOSIgeTE9IjI1IiB4Mj0iMjYiIHkyPSIyNSIvPg0KPC9zdmc+DQo=", + "name": "DraggableSliderControl", + "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/Line Hero Pack/Master/SVG/UI Essentials/UI Essentials_sliders_options.svg", + "shortDescription": "A draggable slider that users can move to select a numerical value.", + "version": "1.0.5", + "description": "Draws a draggable slider that users can move to select a numerical value.\nThe value range, tick spacing, and the appearance of the slider can be defined with properties.\n\nHow to use:\n- Add this behavior a **Shape Painter** object\n- Place an instance of that shape painter on the screen where you want the slider to appear\n- Use the \"Value\" expression to find the Value based on the position of the slider\n\nTips:\n- You can disable the slider to prevent a user from interacting with it\n- You can set the Value of the slider and the slider will move to the correct position\n\nFurther details can be found in [this tutorial video](https://youtu.be/iiTUwdAT_hs).\n\nBreaking changes (1.0.0)\n- Track thickness and length properties replaced track width and height. These 2 properties must be set again if they were different from the default size.\n- Hidden sliders can be dragged. The \"enable\" action must be used to disable them.\n", + "origin": { + "identifier": "DraggableSliderControl", + "name": "gdevelop-extension-store" + }, + "tags": [ + "draggable", + "slider", + "shape painter", + "ui", + "widget" + ], + "authorIds": [ + "IWykYNRvhCZBN3vEgKEbBPOR3Oc2", + "gqDaZjCfevOOxBYkK6zlhtZnXCg1" + ], + "dependencies": [], + "eventsFunctions": [], + "eventsBasedBehaviors": [ + { + "description": "Let users select a numerical value by dragging a slider.", + "fullName": "Draggable slider", + "name": "DraggableSliderControl", + "objectType": "PrimitiveDrawing::Drawer", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Make sure object doesn't get re-drawn every frame", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::ClearBetweenFrames" + }, + "parameters": [ + "Object", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Use correct min value (instead of always starting at 0)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyValueMin()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Set track height function (which enforces valid thumb sizes)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyTrackThickness" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyTrackThickness()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Start halo at same size as thumb", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyCurrentHaloRadius" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "min(Object.Behavior::PropertyThumbHeight()/2,Object.Behavior::PropertyThumbWidth()/2)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::UpdateHitbox" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "DraggableSliderControl::DraggableSliderControl", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Slider logic", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::IsEnabled" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Track where the mouse is (in relation to object)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyMouseX" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.ToDrawingX(MouseX(Object.Layer(), 0), MouseY(Object.Layer(), 0))" + ] + }, + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyMouseY" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.ToDrawingY(MouseX(Object.Layer(), 0), MouseY(Object.Layer(), 0))" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Move slider when being dragged", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::PropertyIsBeingDragged" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyThumbOffset" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyMouseX()" + ] + }, + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "End sliding and update variables", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "MouseButtonReleased" + }, + "parameters": [ + "", + "Left" + ] + } + ], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyIsBeingDragged" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Update \"Value\" based on the location of the thumb", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetValue" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyValueMin() + (Object.Behavior::PropertyValueMax() - Object.Behavior::PropertyValueMin()) * Object.Behavior::PropertyThumbOffset() / Object.Behavior::PropertyTrackLength()", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Grow halo even more when pressed", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyTargetHaloRadius" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "1.25 * Object.Behavior::PropertyHaloRadius()" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Detect hover/touch/click (but only if the layer and object is visible, and the object is not already being dragged)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "DraggableSliderControl::DraggableSliderControl::PropertyIsBeingDragged" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Detect mouse clicks near track, start dragging", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SourisBouton" + }, + "parameters": [ + "", + "Left" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "Object.Behavior::PropertyMouseX()", + ">=", + "-Object.Behavior::PropertyHaloRadius()" + ] + }, + { + "type": { + "value": "Egal" + }, + "parameters": [ + "Object.Behavior::PropertyMouseX()", + "<=", + "Object.Behavior::PropertyTrackLength() + Object.Behavior::PropertyHaloRadius()" + ] + }, + { + "type": { + "value": "Egal" + }, + "parameters": [ + "Object.Behavior::PropertyMouseY()", + ">=", + "-Object.Behavior::PropertyHaloRadius()" + ] + }, + { + "type": { + "value": "Egal" + }, + "parameters": [ + "Object.Behavior::PropertyMouseY()", + "<=", + "Object.Behavior::PropertyHaloRadius()" + ] + } + ], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyIsBeingDragged" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + }, + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Reset hover detection ", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyIsHovered" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Grow halo when hovered", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "SourisBouton" + }, + "parameters": [ + "", + "Left" + ] + }, + { + "type": { + "value": "Egal" + }, + "parameters": [ + "Object.Behavior::PropertyMouseX()", + ">=", + "Object.Behavior::PropertyThumbOffset() - Object.Behavior::PropertyHaloRadius()" + ] + }, + { + "type": { + "value": "Egal" + }, + "parameters": [ + "Object.Behavior::PropertyMouseX()", + "<=", + "Object.Behavior::PropertyThumbOffset() + Object.Behavior::PropertyHaloRadius()" + ] + }, + { + "type": { + "value": "Egal" + }, + "parameters": [ + "Object.Behavior::PropertyMouseY()", + ">=", + "- Object.Behavior::PropertyHaloRadius()" + ] + }, + { + "type": { + "value": "Egal" + }, + "parameters": [ + "Object.Behavior::PropertyMouseY()", + "<=", + "Object.Behavior::PropertyHaloRadius()" + ] + } + ], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyIsHovered" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + }, + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyTargetHaloRadius" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyHaloRadius()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Shrink halo to zero when not hovered", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "DraggableSliderControl::DraggableSliderControl::PropertyIsHovered" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyTargetHaloRadius" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "min(Object.Behavior::PropertyThumbHeight(), Object.Behavior::PropertyThumbWidth()) / 2" + ] + } + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::PropertyCurrentHaloRadius" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "Object.Behavior::PropertyTargetHaloRadius()" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Redraw slider only when halo is not at final size", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "abs(Object.Behavior::PropertyCurrentHaloRadius() - Object.Behavior::PropertyTargetHaloRadius())", + "<", + "1" + ] + } + ], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyCurrentHaloRadius" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyTargetHaloRadius()" + ] + }, + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::PropertyCurrentHaloRadius" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "Object.Behavior::PropertyTargetHaloRadius()" + ] + } + ], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyCurrentHaloRadius" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "lerp(Object.Behavior::PropertyCurrentHaloRadius(), Object.Behavior::PropertyTargetHaloRadius(), Object.Behavior::PropertyHaloGrowSpeed())" + ] + }, + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "DraggableSliderControl::DraggableSliderControl", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPostEvents", + "sentence": "", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Slider drawing", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::PropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior" + ] + }, + { + "type": { + "value": "Visible" + }, + "parameters": [ + "Object" + ] + }, + { + "type": { + "value": "LayerVisible" + }, + "parameters": [ + "", + "Object.Layer()" + ] + } + ], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + }, + { + "type": { + "value": "PrimitiveDrawing::Drawer::ClearShapes" + }, + "parameters": [ + "Object" + ] + } + ], + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Inactive track", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Set inactive track parameters (by default, use thumb color)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::PropertyInactiveTrackColor" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::FillColor" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyThumbColor()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::PropertyInactiveTrackColor" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "\"\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::FillColor" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyInactiveTrackColor()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::FillOpacity" + }, + "parameters": [ + "Object", + "=", + "Object.Behavior::PropertyInactiveTrackOpacity()" + ] + }, + { + "type": { + "value": "PrimitiveDrawing::OutlineOpacity" + }, + "parameters": [ + "Object", + "=", + "0" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Draw inactive track", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::Rectangle" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyThumbOffset()", + "-Object.Behavior::PropertyTrackThickness() / 2", + "Object.Behavior::PropertyTrackLength()", + "Object.Behavior::PropertyTrackThickness() / 2" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Draw half circle at end of track (inactive side)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::PropertyRoundedTrack" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::Arc" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyTrackLength()", + "0", + "Object.Behavior::PropertyTrackThickness() / 2", + "270", + "90", + "", + "yes" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Active track", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Set active track parameters (by default, use thumb color)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::PropertyActiveTrackColor" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::FillColor" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyThumbColor()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::PropertyActiveTrackColor" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "\"\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::FillColor" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyActiveTrackColor()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::FillOpacity" + }, + "parameters": [ + "Object", + "=", + "Object.Behavior::PropertyActiveTrackOpacity()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Draw active track (2 pixels bigger than property) ", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::Rectangle" + }, + "parameters": [ + "Object", + "0", + "-(Object.Behavior::PropertyTrackThickness() / 2 + 1)", + "Object.Behavior::PropertyThumbOffset()", + "Object.Behavior::PropertyTrackThickness() / 2 + 1" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Draw half circle at end of track (active side)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::PropertyRoundedTrack" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::Arc" + }, + "parameters": [ + "Object", + "0", + "0", + "1 + Object.Behavior::PropertyTrackThickness() / 2", + "90", + "270", + "", + "yes" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Halo", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::PropertyCurrentHaloRadius" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "min(Object.Behavior::PropertyThumbHeight(), Object.Behavior::PropertyThumbWidth()) / 2" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Prepare halo", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::FillColor" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyThumbColor()" + ] + }, + { + "type": { + "value": "PrimitiveDrawing::OutlineOpacity" + }, + "parameters": [ + "Object", + "=", + "0" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Draw halo (it will grow or shrink as needed)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "DraggableSliderControl::DraggableSliderControl::PropertyIsBeingDragged" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::FillOpacity" + }, + "parameters": [ + "Object", + "=", + "Object.Behavior::PropertyHaloOpacityHover()" + ] + }, + { + "type": { + "value": "PrimitiveDrawing::Circle" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyThumbOffset()", + "0", + "Object.Behavior::PropertyCurrentHaloRadius()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Use a more opaque halo while being dragged (it will grow or shrink as needed)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::PropertyIsBeingDragged" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::FillOpacity" + }, + "parameters": [ + "Object", + "=", + "Object.Behavior::PropertyHaloOpacityClick()" + ] + }, + { + "type": { + "value": "PrimitiveDrawing::Circle" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyThumbOffset()", + "0", + "Object.Behavior::PropertyCurrentHaloRadius()" + ] + } + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Thumb", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Prepare thumb settings", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::FillColor" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyThumbColor()" + ] + }, + { + "type": { + "value": "PrimitiveDrawing::FillOpacity" + }, + "parameters": [ + "Object", + "=", + "Object.Behavior::PropertyThumbOpacity()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Draw Circle thumb", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::PropertyThumbShape" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"circle\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::Circle" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyThumbOffset()", + "0", + "ceil(max(Object.Behavior::PropertyThumbWidth(),Object.Behavior::PropertyThumbHeight())/2)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Draw Rectangle thumb", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::PropertyThumbShape" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"rectangle\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::Rectangle" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyThumbOffset() - (Object.Behavior::PropertyThumbWidth() / 2)", + "-Object.Behavior::PropertyThumbHeight() / 2", + "Object.Behavior::PropertyThumbOffset() + (Object.Behavior::PropertyThumbWidth() / 2)", + "Object.Behavior::PropertyThumbHeight() / 2" + ] + } + ] + } + ], + "parameters": [] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "DraggableSliderControl::DraggableSliderControl", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the slider is being dragged.", + "fullName": "Being dragged", + "functionType": "Condition", + "group": "Slider", + "name": "IsBeingDragged", + "sentence": "_PARAM0_ is being dragged", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::PropertyIsBeingDragged" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "DraggableSliderControl::DraggableSliderControl", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the slider interations are enabled.", + "fullName": "Interactions enabled", + "functionType": "Condition", + "group": "Slider", + "name": "IsEnabled", + "sentence": "Interactions of _PARAM0_ are enabled", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::PropertyEnabled" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "DraggableSliderControl::DraggableSliderControl", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Enable or disable the slider. Users cannot interact while it is disabled.", + "fullName": "Enable interactions", + "functionType": "Action", + "group": "Slider", + "name": "SetEnabled", + "sentence": "Enable interactions of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Enable\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyEnabled" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Stop dragging (so the slider won't be dragging when it gets enabled)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyIsBeingDragged" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Reset halo size (so halo won't appear when slider gets enabled)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyTargetHaloRadius" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "min(Object.Behavior::PropertyThumbHeight(), Object.Behavior::PropertyThumbWidth()) / 2" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Enable\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyEnabled" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "DraggableSliderControl::DraggableSliderControl", + "type": "behavior" + }, + { + "description": "Enable", + "name": "Enable", + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "The value of the slider (based on position of the thumb).", + "fullName": "Slider value", + "functionType": "Expression", + "group": "Slider", + "name": "Value", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyValue()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "DraggableSliderControl::DraggableSliderControl", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Change the value of a slider (this will move the thumb to the correct position).", + "fullName": "Slider value", + "functionType": "Action", + "group": "Slider", + "name": "SetValue", + "sentence": "Change the value of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::PropertyTickSpacing" + }, + "parameters": [ + "Object", + "Behavior", + "<=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::PropertyTickSpacing" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "round(GetArgumentAsNumber(\"Value\") / Object.Behavior::PropertyTickSpacing()) * Object.Behavior::PropertyTickSpacing()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::PropertyValue" + }, + "parameters": [ + "Object", + "Behavior", + "<", + "Object.Behavior::PropertyValueMin()" + ] + } + ], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyValueMin()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::PropertyValue" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "Object.Behavior::PropertyValueMax()" + ] + } + ], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyValueMax()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Set the proper offset (it moves the slider)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyThumbOffset" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyTrackLength() * (Object.Behavior::PropertyValue() - Object.Behavior::PropertyValueMin()) / (Object.Behavior::PropertyValueMax() - Object.Behavior::PropertyValueMin())" + ] + }, + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "DraggableSliderControl::DraggableSliderControl", + "type": "behavior" + }, + { + "description": "Slider value", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "The minimum value of a slider.", + "fullName": "Slider minimum value", + "functionType": "Expression", + "group": "Slider value configuration", + "name": "ValueMin", + "sentence": "Change the maximum value of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyValueMin()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "DraggableSliderControl::DraggableSliderControl", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Change the minimum value of a slider.", + "fullName": "Slider minimum value", + "functionType": "Action", + "group": "Slider value configuration", + "name": "SetValueMin", + "sentence": "Change the minimum value of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyValueMin" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"ValueMin\")" + ] + }, + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetValue" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::Value()", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "DraggableSliderControl::DraggableSliderControl", + "type": "behavior" + }, + { + "description": "Minimum value", + "name": "ValueMin", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "The maximum value of a slider.", + "fullName": "Slider maximum value", + "functionType": "Expression", + "group": "Slider value configuration", + "name": "ValueMax", + "sentence": "Change the maximum value of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyValueMax()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "DraggableSliderControl::DraggableSliderControl", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Thickness of track.", + "fullName": "Slider track thickness", + "functionType": "Expression", + "group": "Slider track configuration", + "name": "TrackThickness", + "sentence": "Change the maximum value of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyTrackThickness()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "DraggableSliderControl::DraggableSliderControl", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Length of track.", + "fullName": "Slider track length", + "functionType": "Expression", + "group": "Slider track configuration", + "name": "TrackLength", + "sentence": "Change the maximum value of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyTrackLength()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "DraggableSliderControl::DraggableSliderControl", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Height of thumb.", + "fullName": "Slider thumb height", + "functionType": "Expression", + "group": "Slider thumb configuration", + "name": "ThumbHeight", + "sentence": "Change the maximum value of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyThumbHeight()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "DraggableSliderControl::DraggableSliderControl", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Change the maximum value of a slider.", + "fullName": "Slider maximum value", + "functionType": "Action", + "group": "Slider value configuration", + "name": "SetValueMax", + "sentence": "Change the maximum value of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyValueMax" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"ValueMax\")" + ] + }, + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetValue" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::Value()", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "DraggableSliderControl::DraggableSliderControl", + "type": "behavior" + }, + { + "description": "Maximum value", + "name": "ValueMax", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "The tick spacing of a slider.", + "fullName": "Tick spacing", + "functionType": "Expression", + "group": "Slider value configuration", + "name": "TickSpacing", + "sentence": "Change the tick spacing of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyTickSpacing()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "DraggableSliderControl::DraggableSliderControl", + "type": "behavior" + }, + { + "description": "Tick spacing", + "name": "TickSpacing", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the tick spacing of a slider.", + "fullName": "Tick spacing", + "functionType": "Action", + "group": "Slider value configuration", + "name": "SetTickSpacing", + "sentence": "Change the tick spacing of _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyTickSpacing" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"TickSpacing\")" + ] + }, + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetValue" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::Value()", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "DraggableSliderControl::DraggableSliderControl", + "type": "behavior" + }, + { + "description": "Tick spacing", + "name": "TickSpacing", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change length of track.", + "fullName": "Track length", + "functionType": "Action", + "group": "Slider track configuration", + "name": "SetTrackLength", + "sentence": "Change track length of _PARAM0_ to _PARAM2_ px", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyTrackLength" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + }, + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::UpdateHitbox" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + }, + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Move thumb to correct place (based on new track size)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetValue" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyValue()", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "DraggableSliderControl::DraggableSliderControl", + "type": "behavior" + }, + { + "description": "Track width", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change thickness of track.", + "fullName": "Track thickness", + "functionType": "Action", + "group": "Slider track configuration", + "name": "SetTrackThickness", + "sentence": "Change track thickness of _PARAM0_ to _PARAM2_ px", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyTrackThickness" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + }, + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Make sure thumb width is not smaller than track height + 2 pixels (to prevent track ends from showing)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::PropertyThumbWidth" + }, + "parameters": [ + "Object", + "Behavior", + "<", + "Object.Behavior::PropertyTrackThickness() + 2" + ] + } + ], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetThumbWidth" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyTrackThickness() + 2", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::PropertyThumbHeight" + }, + "parameters": [ + "Object", + "Behavior", + "<", + "Object.Behavior::PropertyTrackThickness() + 2" + ] + } + ], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetThumbHeight" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyTrackThickness() + 2", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "DraggableSliderControl::DraggableSliderControl", + "type": "behavior" + }, + { + "description": "Track thickness", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change width of thumb.", + "fullName": "Thumb width", + "functionType": "Action", + "group": "Slider thumb configuration", + "name": "SetThumbWidth", + "sentence": "Change thumb width of _PARAM0_ to _PARAM2_ px", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Thumb cannot be less than track thickness (plus 2 pixels)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyThumbWidth" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "max(GetArgumentAsNumber(\"Value\"), Object.Behavior::PropertyTrackThickness() + 2)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::UpdateHitbox" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + }, + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "DraggableSliderControl::DraggableSliderControl", + "type": "behavior" + }, + { + "description": "Thumb width", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change height of thumb.", + "fullName": "Thumb height", + "functionType": "Action", + "group": "Slider thumb configuration", + "name": "SetThumbHeight", + "sentence": "Change thumb height of _PARAM0_ to _PARAM2_ px", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Thumb cannot be less than track thickness (plus 2 pixels)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyThumbHeight" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "max(GetArgumentAsNumber(\"Value\"), Object.Behavior::PropertyTrackThickness() + 2)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::UpdateHitbox" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + }, + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "DraggableSliderControl::DraggableSliderControl", + "type": "behavior" + }, + { + "description": "Thumb height", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change radius of the halo around the thumb. This size is also used to detect interaction with the slider.", + "fullName": "Halo radius", + "functionType": "Action", + "group": "Slider thumb configuration", + "name": "SetHaloRadius", + "sentence": "Change halo radius of _PARAM0_ to _PARAM2_ px", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyHaloRadius" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + }, + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "DraggableSliderControl::DraggableSliderControl", + "type": "behavior" + }, + { + "description": "Halo radius", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change opacity of halo when hovered.", + "fullName": "Halo opacity (hover)", + "functionType": "Action", + "group": "Slider thumb configuration", + "name": "SetHaloOpacityHover", + "sentence": "Change halo opacity when hovered of _PARAM0_ to _PARAM2_ px", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyHaloOpacityHover" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + }, + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "DraggableSliderControl::DraggableSliderControl", + "type": "behavior" + }, + { + "description": "Halo opacity (hover)", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change opacity of halo when pressed.", + "fullName": "Halo opacity (pressed)", + "functionType": "Action", + "group": "Slider thumb configuration", + "name": "SetHaloOpacityPressed", + "sentence": "Change halo opacity when pressed of _PARAM0_ to _PARAM2_ px", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyHaloOpacityClick" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + }, + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "DraggableSliderControl::DraggableSliderControl", + "type": "behavior" + }, + { + "description": "Halo opacity (pressed)", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change shape of thumb (circle or rectangle).", + "fullName": "Thumb shape", + "functionType": "Action", + "group": "Slider thumb configuration", + "name": "SetThumbShape", + "sentence": "Change shape of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyThumbShape" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Shape\")" + ] + }, + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Make sure thumb width is not smaller than track height (to prevent track ends from showing)", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::PropertyThumbShape" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"rectangle\"" + ] + }, + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::PropertyThumbWidth" + }, + "parameters": [ + "Object", + "Behavior", + "<", + "Object.Behavior::PropertyTrackThickness()" + ] + } + ], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetThumbWidth" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyTrackThickness()", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "DraggableSliderControl::DraggableSliderControl", + "type": "behavior" + }, + { + "description": "New thumb shape", + "name": "Shape", + "supplementaryInformation": "[\"circle\",\"rectangle\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Make track use rounded ends.", + "fullName": "Rounded track ends", + "functionType": "Action", + "group": "Slider track configuration", + "name": "SetRoundedTrack", + "sentence": "Draw _PARAM0_ with a rounded track: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "GetArgumentAsNumber(\"Value\")", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyRoundedTrack" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "GetArgumentAsNumber(\"Value\")", + "=", + "1" + ] + } + ], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyRoundedTrack" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "DraggableSliderControl::DraggableSliderControl", + "type": "behavior" + }, + { + "description": "Rounded track", + "name": "Value", + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "Change opacity of thumb.", + "fullName": "Thumb opacity", + "functionType": "Action", + "group": "Slider thumb configuration", + "name": "SetThumbOpacity", + "sentence": "Change thumb opacity of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyThumbOpacity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + }, + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "DraggableSliderControl::DraggableSliderControl", + "type": "behavior" + }, + { + "description": "Thumb opacity", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change opacity of inactive track.", + "fullName": "Inactive track opacity", + "functionType": "Action", + "group": "Slider track configuration", + "name": "SetInactiveTrackOpacity", + "sentence": "Change inactive track opacity of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyInactiveTrackOpacity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + }, + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "DraggableSliderControl::DraggableSliderControl", + "type": "behavior" + }, + { + "description": "Inactive track opacity", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change opacity of active track.", + "fullName": "Active track opacity", + "functionType": "Action", + "group": "Slider track configuration", + "name": "SetActiveTrackOpacity", + "sentence": "Change active track opacity of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyActiveTrackOpacity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + }, + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "DraggableSliderControl::DraggableSliderControl", + "type": "behavior" + }, + { + "description": "Active track opacity", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the color of the track that is LEFT of the thumb.", + "fullName": "Active track color ", + "functionType": "Action", + "group": "Slider track configuration", + "name": "SetActiveTrackColor", + "sentence": "Change active track color of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyActiveTrackColor" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Color\")" + ] + }, + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "DraggableSliderControl::DraggableSliderControl", + "type": "behavior" + }, + { + "description": "Active track color", + "name": "Color", + "type": "color" + } + ], + "objectGroups": [] + }, + { + "description": "Change the color of the track that is RIGHT of the thumb.", + "fullName": "Inactive track color", + "functionType": "Action", + "group": "Slider track configuration", + "name": "SetInactiveTrackColor", + "sentence": "Change inactive track color of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyInactiveTrackColor" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Color\")" + ] + }, + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "DraggableSliderControl::DraggableSliderControl", + "type": "behavior" + }, + { + "description": "Inactive track color", + "name": "Color", + "type": "color" + } + ], + "objectGroups": [] + }, + { + "description": "Change the thumb color to a specific value.", + "fullName": "Thumb color", + "functionType": "Action", + "group": "Slider thumb configuration", + "name": "SetThumbColor", + "sentence": "Change thumb color of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyThumbColor" + }, + "parameters": [ + "Object", + "Behavior", + "GetArgumentAsString(\"Color\")" + ] + }, + { + "type": { + "value": "DraggableSliderControl::DraggableSliderControl::SetPropertyNeedRedraw" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "DraggableSliderControl::DraggableSliderControl", + "type": "behavior" + }, + { + "description": "Thumb color", + "name": "Color", + "type": "color" + } + ], + "objectGroups": [] + }, + { + "description": "Update the hitbox.", + "fullName": "Update hitbox", + "functionType": "Action", + "group": "Private", + "name": "UpdateHitbox", + "private": true, + "sentence": "Update the hitbox of _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::SetRotationCenter" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyTrackLength() / 2", + "Object.Behavior::PropertyTrackThickness() / 2" + ] + }, + { + "type": { + "value": "PrimitiveDrawing::SetRectangularCollisionMask" + }, + "parameters": [ + "Object", + "-Object.Behavior::PropertyThumbWidth() / 2", + "-Object.Behavior::PropertyThumbHeight() / 2", + "Object.Behavior::PropertyTrackLength() + Object.Behavior::PropertyThumbWidth() / 2", + "Object.Behavior::PropertyThumbHeight() / 2" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "DraggableSliderControl::DraggableSliderControl", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "0", + "type": "Number", + "label": "Minimum value", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "ValueMin" + }, + { + "value": "1", + "type": "Number", + "label": "Maximum value", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "ValueMax" + }, + { + "value": "0", + "type": "Number", + "label": "Tick spacing", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "TickSpacing" + }, + { + "value": "circle", + "type": "Choice", + "label": "Thumb shape", + "description": "", + "group": "Thumb", + "extraInformation": [ + "circle", + "rectangle" + ], + "hidden": false, + "name": "ThumbShape" + }, + { + "value": "20", + "type": "Number", + "label": "Thumb width", + "description": "", + "group": "Thumb", + "extraInformation": [], + "hidden": false, + "name": "ThumbWidth" + }, + { + "value": "20", + "type": "Number", + "label": "Thumb height", + "description": "", + "group": "Thumb", + "extraInformation": [], + "hidden": false, + "name": "ThumbHeight" + }, + { + "value": " 24;119;211", + "type": "Color", + "label": "Thumb Color", + "description": "", + "group": "Thumb", + "extraInformation": [], + "hidden": false, + "name": "ThumbColor" + }, + { + "value": "255", + "type": "Number", + "label": "Thumb opacity", + "description": "", + "group": "Thumb", + "extraInformation": [], + "hidden": false, + "name": "ThumbOpacity" + }, + { + "value": "200", + "type": "Number", + "label": "Track length", + "description": "", + "group": "Track", + "extraInformation": [], + "hidden": false, + "name": "TrackLength" + }, + { + "value": "4", + "type": "Number", + "label": "Track thickness", + "description": "", + "group": "Track", + "extraInformation": [], + "hidden": false, + "name": "TrackThickness" + }, + { + "value": "", + "type": "String", + "label": "Inactive track color (thumb color by default)", + "description": "", + "group": "Track", + "extraInformation": [], + "hidden": false, + "name": "InactiveTrackColor" + }, + { + "value": "96", + "type": "Number", + "label": "Inactive track opacity", + "description": "", + "group": "Track", + "extraInformation": [], + "hidden": false, + "name": "InactiveTrackOpacity" + }, + { + "value": " ", + "type": "String", + "label": "Active track color (thumb color by default)", + "description": "", + "group": "Track", + "extraInformation": [], + "hidden": false, + "name": "ActiveTrackColor" + }, + { + "value": "255", + "type": "Number", + "label": "Active track opacity", + "description": "", + "group": "Track", + "extraInformation": [], + "hidden": false, + "name": "ActiveTrackOpacity" + }, + { + "value": "24", + "type": "Number", + "label": "Halo size (hover)", + "description": "", + "group": "Thumb", + "extraInformation": [], + "hidden": false, + "name": "HaloRadius" + }, + { + "value": "32", + "type": "Number", + "label": "Halo opacity (hover)", + "description": "", + "group": "Thumb", + "extraInformation": [], + "hidden": false, + "name": "HaloOpacityHover" + }, + { + "value": "64", + "type": "Number", + "label": "Halo opacity (pressed)", + "description": "", + "group": "Thumb", + "extraInformation": [], + "hidden": false, + "name": "HaloOpacityClick" + }, + { + "value": "true", + "type": "Boolean", + "label": "Rounded track ends", + "description": "", + "group": "Track", + "extraInformation": [], + "hidden": false, + "name": "RoundedTrack" + }, + { + "value": "true", + "type": "Boolean", + "label": "Enable interactions", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "Enabled" + }, + { + "value": "", + "type": "Boolean", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "IsBeingDragged" + }, + { + "value": "0", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "Value" + }, + { + "value": "0", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "ThumbOffset" + }, + { + "value": "true", + "type": "Boolean", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "NeedRedraw" + }, + { + "value": "", + "type": "Boolean", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "IsHovered" + }, + { + "value": "", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "MouseX" + }, + { + "value": "", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "MouseY" + }, + { + "value": "", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "CurrentHaloRadius" + }, + { + "value": "0.2", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "HaloGrowSpeed" + }, + { + "value": "", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "TargetHaloRadius" + } + ], + "sharedPropertyDescriptors": [] + } + ], + "eventsBasedObjects": [] + } + ], + "externalLayouts": [], + "externalSourceFiles": [] +} \ No newline at end of file