diff --git a/audio/unit_test/unit_test_graph.cpp b/audio/unit_test/unit_test_graph.cpp index 5c6c47041..652234e24 100644 --- a/audio/unit_test/unit_test_graph.cpp +++ b/audio/unit_test/unit_test_graph.cpp @@ -24,6 +24,7 @@ #include "base/test_float.h" #include "base/test_help.h" #include "base/logging.h" +#include "base/trace.h" #include "data/json.h" #include "audio/element.h" #include "audio/elements/graph.h" @@ -807,6 +808,11 @@ int test_main(int argc, char* argv[]) { test::TestLogger logger("unit_test_audio_graph.log"); + // something is fucking with us and setting a tracing pointer + // and leaving it behind after the object is gone..but who what where!?? + base::EnableTracing(false); + base::SetThreadTrace(nullptr); + unit_test_basic(); unit_test_prepare_topologies(); unit_test_buffer_flow(); diff --git a/base/math.h b/base/math.h index 4f171dbc9..8917de50b 100644 --- a/base/math.h +++ b/base/math.h @@ -40,6 +40,8 @@ #include "base/assert.h" +#include "base/warnpush.h" + namespace math { constexpr auto Pi = 3.14159265358979323846; @@ -47,42 +49,42 @@ namespace math constexpr auto SemiCircle = Pi; namespace detail { - template inline constexpr - int signum(T x, std::false_type is_signed) noexcept { + template constexpr + int signum(T x, std::false_type /* is_signed */) noexcept { return T(0) < x; } - template inline constexpr - int signum(T x, std::true_type is_signed) noexcept { + template constexpr + int signum(T x, std::true_type /* is_signed */) noexcept { return (T(0) < x) - (x < T(0)); } } // namespace - inline float RunningAvg(float current_average, unsigned count, float next_value) noexcept + inline float RunningAvg(const float current_average, const unsigned count, const float next_value) noexcept { - return current_average + (next_value - current_average) / (float)count; + return current_average + (next_value - current_average) / static_cast(count); } - inline double RunningAvg(double current_average, unsigned count, double next_value) noexcept + inline double RunningAvg(const double current_average, const unsigned count, const double next_value) noexcept { - return current_average + (next_value - current_average) / (double)count; + return current_average + (next_value - current_average) / static_cast(count); } - template inline constexpr + template constexpr Float DegreesToRadians(Float degrees) noexcept { return degrees * (Pi / 180.0); } - template inline constexpr + template constexpr Float RadiansToDegrees(Float radians) noexcept { return radians * (180.0 / Pi); } - template inline constexpr + template constexpr int signum(T x) noexcept { return detail::signum(x, std::is_signed()); } - template inline + template T wrap(T min, T max, T val) noexcept { if (val > max) @@ -92,7 +94,7 @@ namespace math return val; } - template inline + template T clamp(T min, T max, T val) noexcept { if (val < min) @@ -102,7 +104,7 @@ namespace math return val; } - template inline + template T lerp(const T& y0, const T& y1, float t) noexcept { return (1.0f - t) * y0 + t * y1; @@ -159,10 +161,10 @@ namespace math inline float ease_in_elastic(float t) noexcept { - t = math::clamp(0.0f, 1.0f, t); + t = clamp(0.0f, 1.0f, t); if (t == 0.0f) return 0.0f; - else if (t == 1.0f) + if (t == 1.0f) return 1.0f; const auto c4 = (2.0f * Pi) / 3.0f; @@ -172,10 +174,10 @@ namespace math inline float ease_out_elastic(float t) noexcept { - t = math::clamp(0.0f, 1.0f, t); + t = clamp(0.0f, 1.0f, t); if (t == 0.0f) return 0.0f; - else if (t == 1.0f) + if (t == 1.0f) return 1.0f; const auto c4 = (2.0f * Pi) / 3.0f; @@ -184,10 +186,10 @@ namespace math } inline float ease_in_out_elastic(float t) noexcept { - t = math::clamp(0.0f, 1.0f, t); + t = clamp(0.0f, 1.0f, t); if (t == 0.0f) return 0.0f; - else if (t == 1.0f) + if (t == 1.0f) return 1.0f; const auto c5 = (2.0f * Pi) / 4.5f; @@ -203,12 +205,12 @@ namespace math const auto d1 = 2.75f; if (t < 1.0f / d1) return n1 * t * t; - else if (t < 2.0f / d1) + if (t < 2.0f / d1) { const auto x = t - 1.5f/d1; return n1 * x * x + 0.75f; } - else if (t < 2.5f / d1) + if (t < 2.5f / d1) { const auto x = t - 2.25f/d1; return n1 * x * x + 0.9375f; @@ -291,68 +293,69 @@ namespace math EaseInOutBounce }; - inline float interpolate(float t, Interpolation method) noexcept + inline float interpolate(const float t, const Interpolation method) noexcept { if (method == Interpolation::StepStart) return interp::step_start(t); - else if (method == Interpolation::Step) + if (method == Interpolation::Step) return interp::step(t); - else if (method == Interpolation::StepEnd) + if (method == Interpolation::StepEnd) return interp::step_end(t); - else if (method == Interpolation::Linear) - return math::clamp(0.0f, 1.0f, t); - else if (method == Interpolation::Cosine) + if (method == Interpolation::Linear) + return clamp(0.0f, 1.0f, t); + if (method == Interpolation::Cosine) return interp::cosine(t); - else if (method == Interpolation::SmoothStep) + if (method == Interpolation::SmoothStep) return interp::smooth_step(t); - else if (method == Interpolation::Acceleration) + if (method == Interpolation::Acceleration) return interp::acceleration(t); - else if (method == Interpolation::Deceleration) + if (method == Interpolation::Deceleration) return interp::deceleration(t); - else if (method == Interpolation::EaseInSine) + if (method == Interpolation::EaseInSine) return easing::ease_in_sine(t); - else if (method == Interpolation::EaseOutSine) + if (method == Interpolation::EaseOutSine) return easing::ease_out_sine(t); - else if (method == Interpolation::EaseInOutSine) + if (method == Interpolation::EaseInOutSine) return easing::ease_in_out_sine(t); - else if (method == Interpolation::EaseInQuadratic) + if (method == Interpolation::EaseInQuadratic) return easing::ease_in_quadratic(t); - else if (method == Interpolation::EaseOutQuadratic) + if (method == Interpolation::EaseOutQuadratic) return easing::ease_out_quadratic(t); - else if (method == Interpolation::EaseInOutQuadratic) + if (method == Interpolation::EaseInOutQuadratic) return easing::ease_in_out_quadratic(t); - else if (method == Interpolation::EaseInCubic) + if (method == Interpolation::EaseInCubic) return easing::ease_in_cubic(t); - else if (method == Interpolation::EaseOutCubic) + if (method == Interpolation::EaseOutCubic) return easing::ease_out_cubic(t); - else if (method == Interpolation::EaseInOutCubic) + if (method == Interpolation::EaseInOutCubic) return easing::ease_in_out_cubic(t); - else if (method == Interpolation::EaseInBack) + if (method == Interpolation::EaseInBack) return easing::ease_in_back(t); - else if (method == Interpolation::EaseOutBack) + if (method == Interpolation::EaseOutBack) return easing::ease_out_back(t); - else if (method == Interpolation::EaseInOutBack) + if (method == Interpolation::EaseInOutBack) return easing::ease_in_out_back(t); - else if (method == Interpolation::EaseInElastic) + if (method == Interpolation::EaseInElastic) return easing::ease_in_elastic(t); - else if (method == Interpolation::EaseOutElastic) + if (method == Interpolation::EaseOutElastic) return easing::ease_out_elastic(t); - else if (method == Interpolation::EaseInOutElastic) + if (method == Interpolation::EaseInOutElastic) return easing::ease_in_out_elastic(t); - else if (method == Interpolation::EaseInBounce) + if (method == Interpolation::EaseInBounce) return easing::ease_in_bounce(t); - else if (method == Interpolation::EaseOutBounce) + if (method == Interpolation::EaseOutBounce) return easing::ease_out_bounce(t); - else if (method == Interpolation::EaseInOutBounce) + if (method == Interpolation::EaseInOutBounce) return easing::ease_in_out_bounce(t); - else BUG("Missing interpolation method."); + + BUG("Missing interpolation method."); return t; } template - T interpolate(const T& y0, const T& y1, float t, Interpolation method) noexcept + T interpolate(const T& y0, const T& y1, const float t, const Interpolation method) noexcept { - return math::lerp(y0, y1, math::interpolate(t, method)); + return math::lerp(y0, y1, interpolate(t, method)); } // epsilon based check for float equality @@ -366,7 +369,7 @@ namespace math } #if defined(MATH_SUPPORT_GLM) - inline glm::vec2 RunningAvg(const glm::vec2& current_value, unsigned count, const glm::vec2& next_value) noexcept + inline glm::vec2 RunningAvg(const glm::vec2& current_value, const unsigned count, const glm::vec2& next_value) noexcept { glm::vec2 ret; ret.x = RunningAvg(current_value.x, count, next_value.x); @@ -374,7 +377,7 @@ namespace math return ret; } - inline glm::vec3 RunningAvg(const glm::vec3& current_value, unsigned count, const glm::vec3& next_value) noexcept + inline glm::vec3 RunningAvg(const glm::vec3& current_value, const unsigned count, const glm::vec3& next_value) noexcept { glm::vec3 ret; ret.x = RunningAvg(current_value.x, count, next_value.x); @@ -383,7 +386,7 @@ namespace math return ret; } - inline glm::vec4 RunningAvg(const glm::vec4& current_value, unsigned count, const glm::vec4& next_value) noexcept + inline glm::vec4 RunningAvg(const glm::vec4& current_value, const unsigned count, const glm::vec4& next_value) noexcept { glm::vec4 ret; ret.x = RunningAvg(current_value.x, count, next_value.x); @@ -393,19 +396,39 @@ namespace math return ret; } + inline bool DistanceIsLess(const glm::vec2& target, const glm::vec2& current, const float maximum) noexcept + { + const auto& diff = target - current; + return diff.x*diff.x + diff.y*diff.y < maximum*maximum; + } + inline bool DistanceIsLessOrEqual(const glm::vec2& target, const glm::vec2& current, const float maximum) noexcept + { + const auto& diff = target - current; + return diff.x*diff.x + diff.y*diff.y <= maximum*maximum; + } + inline bool DistanceIsMore(const glm::vec2& target, const glm::vec2& current, const float minimum) noexcept + { + const auto& diff = target - current; + return diff.x*diff.x + diff.y*diff.y > minimum*minimum; + } + inline bool DistanceIsMoreOrEqual(const glm::vec2& target, const glm::vec2& current, const float minimum) noexcept + { + const auto& diff = target - current; + return diff.x*diff.x + diff.y*diff.y >= minimum*minimum; + } - inline bool equals(const glm::vec2& lhs, const glm::vec2& rhs, float epsilon = 0.0001f) noexcept + inline bool equals(const glm::vec2& lhs, const glm::vec2& rhs, const float epsilon = 0.0001f) noexcept { return equals(lhs.x, rhs.x, epsilon) && equals(lhs.y, rhs.y, epsilon); } - inline bool equals(const glm::vec3& lhs, const glm::vec3& rhs, float epsilon = 0.0001f) noexcept + inline bool equals(const glm::vec3& lhs, const glm::vec3& rhs, const float epsilon = 0.0001f) noexcept { return equals(lhs.x, rhs.x, epsilon) && equals(lhs.y, rhs.y, epsilon) && equals(lhs.z, rhs.z, epsilon); } - inline bool equals(const glm::vec4& lhs, const glm::vec4& rhs, float epsilon = 0.0001f) noexcept + inline bool equals(const glm::vec4& lhs, const glm::vec4& rhs, const float epsilon = 0.0001f) noexcept { return equals(lhs.x, rhs.x, epsilon) && equals(lhs.y, rhs.y, epsilon) && @@ -414,7 +437,7 @@ namespace math } // Rotate a vector on the xy plane around the Z axis. - inline glm::vec2 RotateVectorAroundZ(const glm::vec2& vec, float angle) noexcept + inline glm::vec2 RotateVectorAroundZ(const glm::vec2& vec, const float angle) noexcept { return glm::eulerAngleZ(angle) * glm::vec4(vec.x, vec.y, 0.0f, 0.0f); } @@ -463,10 +486,7 @@ namespace math // returns the angle in radians. inline float FindVectorRotationAroundZ(const glm::vec2& vec) noexcept { - const auto cosine = glm::dot(glm::normalize(vec), glm::vec2(1.0f, 0.0f)); - if (vec.y > 0.0f) - return std::acos(cosine); - return -std::acos(cosine); + return std::atan2f(vec.y, vec.x); } inline float GetRotationFromMatrix(const glm::mat4& mat) noexcept @@ -533,7 +553,7 @@ namespace math // Generate pseudo random numbers based on the given seed. template - T rand(T min, T max) noexcept + T rand(const T min, const T max) noexcept { // boost uniform distribution has an assert for the condition // that min < max. We have code that calls random with (for example @@ -730,19 +750,19 @@ namespace math } // Check whether the given point is inside the given rectangle or not. - static bool CheckRectPointIntersection(float minX, float maxX, float minY, float maxY, // rectangle - float x, float y) // point + static bool CheckRectPointIntersection(const float minX, const float maxX, const float minY, const float maxY, // rectangle + const float x, const float y) // point { if (x < minX || x > maxX) return false; - else if (y < minY || y > maxY) + if (y < minY || y > maxY) return false; return true; } - static bool CheckRectCircleIntersection(float minX, float maxX, float minY, float maxY, // rectangle - float x, float y, float radius)// circle + static bool CheckRectCircleIntersection(const float minX, const float maxX, const float minY, const float maxY, // rectangle + const float x, const float y, const float radius)// circle { ASSERT(maxX >= minX); @@ -767,13 +787,14 @@ namespace math return collision; } - static bool CheckRectLineIntersection(float minX, float maxX, float minY, float maxY, // rectangle + static bool CheckRectLineIntersection(const float minX, const float maxX, const float minY, const float maxY, // rectangle float x1, float y1, float x2, float y2) // line { ASSERT(maxX >= minX); ASSERT(maxY >= minY); //ASSERT(x2 >= x1); - if (x2 < x1) { + if (x2 < x1) + { std::swap(x1, x2); std::swap(y1, y2); } @@ -790,11 +811,11 @@ namespace math if (line_maxX < minX) // left check return false; - else if (line_minX > maxX) // right check + if (line_minX > maxX) // right check return false; - else if (line_maxY < minY) // above check + if (line_maxY < minY) // above check return false; - else if (line_minY > maxY) // below check + if (line_minY > maxY) // below check return false; const auto dx = x2 - x1; @@ -862,3 +883,5 @@ namespace math } } // namespace + +#include "base/warnpop.h" \ No newline at end of file diff --git a/base/warnpush.h b/base/warnpush.h index 379984c27..6cf940d0f 100644 --- a/base/warnpush.h +++ b/base/warnpush.h @@ -45,6 +45,7 @@ # pragma clang diagnostic ignored "-Winconsistent-missing-override" # pragma clang diagnostic ignored "-Wunused-local-typedefs" # pragma clang diagnostic ignored "-Wunknown-warning-option" +# pragma clang diagnostic ignored "-Wimplicit-float-conversion" #elif defined(__MSVC__) # pragma warning(push) # pragma warning(disable: 4091) // msvs14 DbgHelp.h diff --git a/editor/app/code-tools.cpp b/editor/app/code-tools.cpp index 25ae9e2e4..0ae1a4a12 100644 --- a/editor/app/code-tools.cpp +++ b/editor/app/code-tools.cpp @@ -457,7 +457,7 @@ QString CodeAssistant::DiscoverDynamicCompletions(const QString& word) return "game.Drawable"; else if (word.contains("text")) return "game.TextItem"; - else if (word.endsWith("transformer")) + else if (word.endsWith("mover") && word.contains("linear")) return "game.LinearMover"; return app::FindLuaDocTableMatch(word); diff --git a/editor/app/lua-doc.cpp b/editor/app/lua-doc.cpp index d0bb83baf..9517e1243 100644 --- a/editor/app/lua-doc.cpp +++ b/editor/app/lua-doc.cpp @@ -1132,6 +1132,12 @@ void InitLuaDoc() DOC_METHOD_2("void", "SetLinearVelocity", "Set the linear velocity.", "float", "x", "float", "y"); DOC_METHOD_2("void", "SetLinearAcceleration", "Set the linear velocity.", "float", "x", "float", "y"); DOC_METHOD_1("void", "Enable", "Enable or disable the transformer.", "bool", "enable"); + DOC_METHOD_1("void", "SetRotateToDirection", "Enable automatic rotation to face the direction of travel.", "bool", "on_off"); + DOC_METHOD_0("bool", "GetRotateToDirection", "Check whether automatic rotation to face the direction of travel is on or off."); + DOC_METHOD_1("void", "SetDirection", "Set a new direction while keeping the current speed.", "glm.vec2", "direction"); + DOC_METHOD_2("void", "SetDirection", "Set a new direction while keeping the current speed.", "float", "x", "float", "y"); + DOC_METHOD_1("void", "SetLinearSpeed", "Set the new speed on the same direction as before. If the current velocity vector is a null vector nothing is done.", + "float", "speed"); DOC_TABLE("game.Drawable"); DOC_METHOD_1("void", "Command", "Send a command to the gfx drawable in the renderer.", "string", "cmd_name"); @@ -1446,7 +1452,7 @@ void InitLuaDoc() DOC_METHOD_0("game.TextItem", "GetTextItem", "Get the node's text item if any. Returns nil if node has no text item."); DOC_METHOD_0("game.Drawable", "GetDrawable", "Get the node's drawable item if any. Returns nil if node has no drawable item."); DOC_METHOD_0("game.SpatialNode", "GetSpatialNode", "Get the node's spatial node if any. Returns nil if node has no spatial node."); - DOC_METHOD_0("game.LinearMover", "GetTransformer", "Get the node's transformer if any. Returns nil if node has no transformer."); + DOC_METHOD_0("game.LinearMover", "GetLinearMover", "Get the node's linear mover if any. Returns nil if node has no linear mover."); DOC_METHOD_0("game.Entity", "GetEntity", "Get the entity that owns this entity node."); DOC_METHOD_1("void", "SetScale", "Set the node's scaling factor that applies to this node and its children.", "glm.vec2", "scale"); DOC_METHOD_2("void", "SetScale", "Set the node's scaling factor that applies to this node and its children.", "float", "sx", "float", "sy"); @@ -1650,6 +1656,7 @@ void InitLuaDoc() DOC_METHOD_1("void", "SetVisible", "Set entity visibility flag.", "bool", "on_off"); DOC_METHOD_0("void", "Die", "Schedule immediate entity death and have it removed from the scene."); DOC_METHOD_1("void", "DieLater", "Schedule future entity death after time in seconds elapses.", "float", "seconds"); + DOC_METHOD_0("bool", "HasScheduledDeath", "Check whether the entity has been told to die later."); DOC_METHOD_2("void", "SetTimer", "Set a named timer on the entity.
" "The timer's resolution is based on the game's update resolution configured in the project settings.
" "When the timer fires OnTimer entity callback is called and the provided value 'jitter' indicates the delta time " @@ -1868,31 +1875,37 @@ void InitLuaDoc() "game.EntityArgs", "args", "bool", "link_to_root = true"); DOC_METHOD_1("game.Entity", "SpawnEntity", "Spawn a new entity in the scene with default arguments for everything.
", "string", "klass_name"); - DOC_METHOD_2("game.Entity", "SpawnEntity", "Spawn a new entity in the scene.
" + DOC_METHOD_2("game.Entity", "SpawnEntity", "Spawn a new entity into the scene.
" "Spawning a new entity doesn't immediately place the entity in the scene but will only add it to the list of " - "entities to be spawned at the start of the next iteration of the game loop and " - "then each entity that was just spawned will have their HasBeenSpawned flag on.

" + "entities to be spawned at the start of the next iteration of the game loop. " + "After entities have been spawned they ill have their HasBeenSpawned flag on for a single iteration of the game loop.
" + "Additionally 'BeginPlay' will be called on each spawned entity.

" + "For performance reasons it's recommended to use 'async' spawning as much as possible.

" "If link is true the entity is linked to the current scene's entity hierarchy.
" "If link is false the entity is not linked to the current scene's entity hierarchy and you should manually call LinkChild later.
" - "If async is true the entity is spawned in the background and there's no guarantee when it will be placed in to the scene." - "On async spawn no entity object will be returned to the caller from this call." - "The args table is a Lua table for packing all the spawn arguments with the following keys.

" - "    id, string, Entity instance ID. MUST BE UNIQUE. On empty string a value is generated automatically. Default = ''
" - "    name, string, Entity instance name. Default = ''
" - "    sx, float, Root node scale factor for X axis. Default = 1.0
" - "    sy, float, Root node scale factor for Y axis. Default = 1.0
" - "    x, float, Root node translation on the X axis. Default = 0.0
" - "    y, float, Root node translation on the Y axis. Default = 0.0
" - "    r, float, Root node rotation in radians around the Z axis. Default = 0.0
" - "    pos, glm.vec2, Root node translation vector. (Alternative for x, y). Default = glm.vec2(0.0, 0.0)
" - "    scale, glm.vec2, Root node scaling vector (Alternative for sx, sy). Default = glm.vec2(1.0, 1.0)
" - "    logging, bool, Flag to enable/disable entity logging. Default = false
" - "    link, bool, Flag to control linking to scene root in scene graph. Default = true
" - "    async, bool, Flag to control async spawning. Default = false
" - "    render_layer, int, Scene render layer index. Default = 0
" - "    delay, float, Time delay before the entity is placed into the scene. Default = 0.0
" - "    vars, table, Key-value table of entity script variables to set. Supports int, float, bool, string and vector types.", - + "If async is true the entity is spawned in the background and there's no guarantee when it will be placed into the scene.
" + "If async is true the return value will be nil instead of the new entity object.

" + "See below for the contents of the 'args' table.

" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "
NameTypeCommentDefault val
idstringEntity instance ID. All instance IDs MUST BE UNIQUE.
" + "It's recommended to leave this one empty and a unique ID will be generated on spawn.
''
namestringEntity instance name.''
sxfloatEntity root node scale factor for X axis.1.0
syfloatEntity root node scale factor for y axis.1.0
xfloatEntity root node translation for X axis.0.0
yfloatEntity root node translation for y axis.0.0
rfloatEntity root node rotation in radians around the Z axis.0.0
posglm.vec2Entity root node translation vector (Alternative for x, y).[0.0, 0.0]
scaleglm.vec2Entity root node scaling vector (Alternative for sx, sy).[0.0, 0.0]
loggingboolFlag to enable/disable entity lifetime debug logging.false
linkboolFlag to control linking entity to scene root in scene graph. true
linkasyncFlag to control async spawning.false
layerintEntity render layer index in scene.0
delayfloatTime delay in seconds before placing entity into the scene and before it beings play.0.0
varstableLua table for entity script variable values to set. Supports int, float, bool, string and vector types.
" + "E.g. { my_var = 123 } where 'my_var' is the name of the entity variable.
nil

", "string", "klass_name", "table", "args"); DOC_METHOD_1("glm.mat4", "FindEntityTransform", "Find the transform for transforming the entity into the world/scene coordinate space.", diff --git a/editor/dist/demos/blast/content.json b/editor/dist/demos/blast/content.json index f1974ac06..6de6bbd98 100644 --- a/editor/dist/demos/blast/content.json +++ b/editor/dist/demos/blast/content.json @@ -22,6 +22,56 @@ "src_elem_id": "D79A5NORKR", "src_elem_port": "out" }, + { + "elements": [ + { + "arg_gain": 2.0, + "id": "r6EWGzmSiY", + "name": "Gain", + "type": "Gain" + }, + { + "arg_file": "ws://sounds/swoosh.wav", + "arg_file_caching": false, + "arg_io_strategy": "Default", + "arg_loops": 1, + "arg_pcm_caching": false, + "arg_type": "Float32", + "id": "uhkWYXF1fv", + "name": "swoosh", + "type": "FileSource" + }, + { + "arg_channel": "Both", + "id": "YM14LoSCxg", + "name": "StereoMaker", + "type": "StereoMaker" + } + ], + "id": "1TIDACOJjO", + "links": [ + { + "dst_elem": "YM14LoSCxg", + "dst_port": "in", + "id": "JPm7Evezob", + "src_elem": "r6EWGzmSiY", + "src_port": "out" + }, + { + "dst_elem": "r6EWGzmSiY", + "dst_port": "in", + "id": "6TJFYwe9L5", + "src_elem": "uhkWYXF1fv", + "src_port": "out" + } + ], + "name": "swoosh", + "resource_id": "1TIDACOJjO", + "resource_name": "swoosh", + "resource_ver": 1, + "src_elem_id": "YM14LoSCxg", + "src_elem_port": "out" + }, { "elements": [ { @@ -58,6 +108,8 @@ "type": "FileSource" }, { + "arg_playback_mode": "Shuffle", + "arg_repeat_mode": "PlayAll", "id": "R4vRj4xxUb", "input_ports": [ { @@ -126,6 +178,70 @@ "src_elem_id": "R4vRj4xxUb", "src_elem_port": "out" }, + { + "elements": [ + { + "arg_playback_mode": "Shuffle", + "arg_repeat_mode": "PlayAll", + "id": "Y6skKb3Oui", + "input_ports": [ + { + "name": "in0" + }, + { + "name": "in1" + } + ], + "name": "Playlist", + "type": "Playlist" + }, + { + "arg_file": "ws://sounds/electric2.mp3", + "arg_file_caching": false, + "arg_io_strategy": "Default", + "arg_loops": 1, + "arg_pcm_caching": false, + "arg_type": "Float32", + "id": "SFYlYL67BI", + "name": "FileSource", + "type": "FileSource" + }, + { + "arg_file": "ws://sounds/electric1.mp3", + "arg_file_caching": false, + "arg_io_strategy": "Default", + "arg_loops": 1, + "arg_pcm_caching": false, + "arg_type": "Float32", + "id": "pXkZ5tCelj", + "name": "electricFX", + "type": "FileSource" + } + ], + "id": "FXsZgCtdU5", + "links": [ + { + "dst_elem": "Y6skKb3Oui", + "dst_port": "in1", + "id": "1af8Sx5oWF", + "src_elem": "pXkZ5tCelj", + "src_port": "out" + }, + { + "dst_elem": "Y6skKb3Oui", + "dst_port": "in0", + "id": "vnpgtXt8Qg", + "src_elem": "SFYlYL67BI", + "src_port": "out" + } + ], + "name": "electricFX", + "resource_id": "FXsZgCtdU5", + "resource_name": "electricFX", + "resource_ver": 1, + "src_elem_id": "Y6skKb3Oui", + "src_elem_port": "out" + }, { "elements": [ { @@ -310,6 +426,43 @@ "src_elem_id": "XUF0N9uLfD", "src_elem_port": "out" }, + { + "elements": [ + { + "arg_file": "ws://sounds/stone.ogg", + "arg_file_caching": false, + "arg_io_strategy": "Default", + "arg_loops": 1, + "arg_pcm_caching": false, + "arg_type": "Float32", + "id": "G4g8ShPnSE", + "name": "stone", + "type": "FileSource" + }, + { + "arg_gain": 10.0, + "id": "JlE1SzgyCt", + "name": "Gain", + "type": "Gain" + } + ], + "id": "SSTkbIoZhd", + "links": [ + { + "dst_elem": "JlE1SzgyCt", + "dst_port": "in", + "id": "vIDfT9T76m", + "src_elem": "G4g8ShPnSE", + "src_port": "out" + } + ], + "name": "stone crack", + "resource_id": "SSTkbIoZhd", + "resource_name": "stone crack", + "resource_ver": 1, + "src_elem_id": "JlE1SzgyCt", + "src_elem_port": "out" + }, { "elements": [ { @@ -384,6 +537,43 @@ "src_elem_id": "sRv9omsQNF", "src_elem_port": "out" }, + { + "elements": [ + { + "arg_sample_rate": 44100, + "id": "MWRy05gdk9", + "name": "Resampler", + "type": "Resampler" + }, + { + "arg_file": "ws://sounds/Fire 5.mp3", + "arg_file_caching": false, + "arg_io_strategy": "Default", + "arg_loops": 1, + "arg_pcm_caching": false, + "arg_type": "Float32", + "id": "wd7idmTBSU", + "name": "Fire 5", + "type": "FileSource" + } + ], + "id": "bXC5bg1hPt", + "links": [ + { + "dst_elem": "MWRy05gdk9", + "dst_port": "in", + "id": "Ll6hBUaFYq", + "src_elem": "wd7idmTBSU", + "src_port": "out" + } + ], + "name": "Fire 5", + "resource_id": "bXC5bg1hPt", + "resource_name": "Fire 5", + "resource_ver": 1, + "src_elem_id": "MWRy05gdk9", + "src_elem_port": "out" + }, { "elements": [ { @@ -428,6 +618,28 @@ "src_elem_id": "BpdAYwxrEY", "src_elem_port": "out" }, + { + "elements": [ + { + "arg_file": "ws://sounds/warn-explode.ogg", + "arg_file_caching": false, + "arg_io_strategy": "Default", + "arg_loops": 1, + "arg_pcm_caching": false, + "arg_type": "Float32", + "id": "zMIZRoloLg", + "name": "warn-explode", + "type": "FileSource" + } + ], + "id": "mQwNIlppiT", + "name": "warn-explode", + "resource_id": "mQwNIlppiT", + "resource_name": "warn-explode", + "resource_ver": 1, + "src_elem_id": "zMIZRoloLg", + "src_elem_port": "out" + }, { "elements": [ { @@ -516,6 +728,43 @@ "resource_ver": 1, "src_elem_id": "0bDiXIAGRF", "src_elem_port": "out" + }, + { + "elements": [ + { + "arg_sample_rate": 44100, + "id": "FFEt2KgHm9", + "name": "Resampler", + "type": "Resampler" + }, + { + "arg_file": "ws://sounds/Fire 6.mp3", + "arg_file_caching": false, + "arg_io_strategy": "Default", + "arg_loops": 1, + "arg_pcm_caching": false, + "arg_type": "Float32", + "id": "M3JDLpEwfa", + "name": "Fire 6", + "type": "FileSource" + } + ], + "id": "ySm59BWQYD", + "links": [ + { + "dst_elem": "FFEt2KgHm9", + "dst_port": "in", + "id": "ClJofmez5w", + "src_elem": "M3JDLpEwfa", + "src_port": "out" + } + ], + "name": "Fire 6", + "resource_id": "ySm59BWQYD", + "resource_name": "Fire 6", + "resource_ver": 1, + "src_elem_id": "FFEt2KgHm9", + "src_elem_port": "out" } ], "entities": [ @@ -525,25 +774,46 @@ "KillAtLifetime": true, "LimitLifetime": false, "PostUpdate": true, - "TickEntity": false, - "UpdateEntity": false, + "TickEntity": true, + "UpdateEntity": true, "UpdateNodes": false, "VisibleInEditor": true, "VisibleInGame": true, "WantsKeyEvents": false, "WantsMouseEvents": false }, - "id": "5LKG2wBRGq", + "id": "2oiZe73qMj", "idle_track": "", "lifetime": 0.0, - "name": "Bullet/Enemy/Basic", + "name": "Player v2", "nodes": [ { - "class": "UIG3lUtmPm", + "class": "sChBffXu5C", + "flags": { + "VisibleInEditor": true + }, + "name": "Body", + "position": { + "x": 0.0, + "y": 0.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 100.0, + "y": 100.0 + }, + "tag": "" + }, + { + "class": "Cb3Y2oN9HI", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, - "drawable": "_circle", + "drawable": "_rect", "flags": { "DepthTest": false, "DoubleSided": false, @@ -557,7 +827,13 @@ }, "layer": 0, "linewidth": 1.0, - "material": "EuyGHU1pbR", + "material": "01D5uIlggD", + "material_params": [ + { + "name": "active_texture_map", + "value": "lLXy2jyHA6" + } + ], "offset": { "x": 0.0, "y": 0.0, @@ -569,7 +845,7 @@ "renderview": "AxisAligned", "rotator": { "x": 0.0, - "y": -0.0, + "y": 0.0, "z": 0.0 }, "timescale": 1.0 @@ -577,26 +853,10 @@ "flags": { "VisibleInEditor": true }, - "linear_mover": { - "angular_acceleration": 0.0, - "angular_velocity": 0.0, - "flags": { - "Enabled": true - }, - "integrator": "Euler", - "linear_acceleration": { - "x": 0.0, - "y": 0.0 - }, - "linear_velocity": { - "x": 0.0, - "y": 0.0 - } - }, - "name": "Bullet", + "name": "Gun/Left/Skin", "position": { - "x": 0.0, - "y": 0.0 + "x": -70.0, + "y": -40.0 }, "rotation": 0.0, "scale": { @@ -604,75 +864,13 @@ "y": 1.0 }, "size": { - "x": 63.611576080322266, - "y": 68.26495361328125 + "x": 40.0, + "y": 100.0 }, "tag": "" - } - ], - "render_tree": { - "children": [ - { - "node": { - "id": "UIG3lUtmPm" - } - } - ], - "node": null - }, - "resource_id": "5LKG2wBRGq", - "resource_name": "Bullet/Enemy/Basic", - "resource_ver": 3, - "script_file": "4KwMiHn2Zz", - "tag": "", - "vars": [ - { - "flags": { - "Array": false, - "Private": false, - "ReadOnly": false - }, - "floats": [ - 500.0 - ], - "id": "CGpy59Lkmy", - "name": "velocity" }, { - "bools": [ - 0 - ], - "flags": { - "Array": false, - "Private": false, - "ReadOnly": true - }, - "id": "LjhZ24Oglo", - "name": "player" - } - ] - }, - { - "flags": { - "KillAtBoundary": true, - "KillAtLifetime": true, - "LimitLifetime": false, - "PostUpdate": true, - "TickEntity": true, - "UpdateEntity": true, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "id": "7NAD3QgFlq", - "idle_track": "", - "lifetime": 0.0, - "name": "Background", - "nodes": [ - { - "class": "n9QIMigZH2", + "class": "oko2xvYgFb", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, @@ -690,7 +888,13 @@ }, "layer": 0, "linewidth": 1.0, - "material": "CopZZzjQd4", + "material": "01D5uIlggD", + "material_params": [ + { + "name": "active_texture_map", + "value": "lLXy2jyHA6" + } + ], "offset": { "x": 0.0, "y": 0.0, @@ -702,18 +906,18 @@ "renderview": "AxisAligned", "rotator": { "x": 0.0, - "y": -0.0, + "y": 0.0, "z": 0.0 }, - "timescale": 0.20000000298023224 + "timescale": 1.0 }, "flags": { "VisibleInEditor": true }, - "name": "Wallpaper", + "name": "Gun/Right/Skin", "position": { - "x": -0.0, - "y": -0.0 + "x": 80.0, + "y": -40.0 }, "rotation": 0.0, "scale": { @@ -721,22 +925,22 @@ "y": 1.0 }, "size": { - "x": 1400.0, - "y": 1000.0 + "x": 40.0, + "y": 100.0 }, "tag": "" }, { - "class": "QnlQ7xD1kW", + "class": "xNnMrUJ8Hr", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, - "drawable": "9o7zbhlIlp", + "drawable": "_rect", "flags": { "DepthTest": false, "DoubleSided": false, - "FlipHorizontally": false, - "FlipVertically": false, + "FlipHorizontally": true, + "FlipVertically": true, "PP_EnableBloom": true, "RestartDrawable": true, "UpdateDrawable": true, @@ -745,7 +949,13 @@ }, "layer": 1, "linewidth": 1.0, - "material": "5YQ8ZqObX7", + "material": "01D5uIlggD", + "material_params": [ + { + "name": "active_texture_map", + "value": "nC0fxrSKSd" + } + ], "offset": { "x": 0.0, "y": 0.0, @@ -757,7 +967,7 @@ "renderview": "AxisAligned", "rotator": { "x": 0.0, - "y": -0.0, + "y": 0.0, "z": 0.0 }, "timescale": 1.0 @@ -765,74 +975,33 @@ "flags": { "VisibleInEditor": true }, - "name": "Stars", + "name": "Left Wing", "position": { - "x": -1.0, - "y": 1.0 + "x": -70.0, + "y": 0.0 }, - "rotation": 1.5707963705062866, + "rotation": 0.0, "scale": { "x": 1.0, "y": 1.0 }, "size": { - "x": 1000.0, - "y": 1400.0 + "x": 120.0, + "y": 200.0 }, "tag": "" - } - ], - "render_tree": { - "children": [ - { - "node": { - "id": "n9QIMigZH2" - } - }, - { - "node": { - "id": "QnlQ7xD1kW" - } - } - ], - "node": null - }, - "resource_id": "7NAD3QgFlq", - "resource_name": "Background", - "resource_ver": 3, - "script_file": "", - "tag": "" - }, - { - "flags": { - "KillAtBoundary": true, - "KillAtLifetime": false, - "LimitLifetime": true, - "PostUpdate": true, - "TickEntity": true, - "UpdateEntity": true, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "id": "A7Z5jfJF38", - "idle_track": "shUULfTlQd", - "lifetime": 4.0, - "name": "Rocket", - "nodes": [ + }, { - "class": "bhTMTzzFAN", + "class": "o3ZPeIQXur", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, - "drawable": "_circle", + "drawable": "_rect", "flags": { "DepthTest": false, "DoubleSided": false, "FlipHorizontally": false, - "FlipVertically": false, + "FlipVertically": true, "PP_EnableBloom": true, "RestartDrawable": true, "UpdateDrawable": true, @@ -841,7 +1010,13 @@ }, "layer": 1, "linewidth": 1.0, - "material": "vg5yQskPIv", + "material": "01D5uIlggD", + "material_params": [ + { + "name": "active_texture_map", + "value": "nC0fxrSKSd" + } + ], "offset": { "x": 0.0, "y": 0.0, @@ -853,7 +1028,7 @@ "renderview": "AxisAligned", "rotator": { "x": 0.0, - "y": -0.0, + "y": 0.0, "z": 0.0 }, "timescale": 1.0 @@ -861,9 +1036,9 @@ "flags": { "VisibleInEditor": true }, - "name": "Body", + "name": "Right Wing", "position": { - "x": 0.0, + "x": 80.0, "y": 0.0 }, "rotation": 0.0, @@ -872,22 +1047,22 @@ "y": 1.0 }, "size": { - "x": 47.405948638916016, - "y": 45.21335983276367 + "x": 120.00001525878906, + "y": 200.0 }, "tag": "" }, { - "class": "zaQ8SYuKGL", + "class": "HnZ3t3iXdj", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, - "drawable": "_circle", + "drawable": "_rect", "flags": { "DepthTest": false, "DoubleSided": false, "FlipHorizontally": false, - "FlipVertically": false, + "FlipVertically": true, "PP_EnableBloom": true, "RestartDrawable": true, "UpdateDrawable": true, @@ -896,25 +1071,11 @@ }, "layer": 0, "linewidth": 1.0, - "material": "2a488SIQsU", + "material": "01D5uIlggD", "material_params": [ { - "name": "kBaseColor", - "value": { - "a": 1.0, - "b": 0.9319600462913513, - "g": 0.8868696093559265, - "r": 0.8864118456840515 - } - }, - { - "name": "kColor0", - "value": { - "a": 0.6901960968971252, - "b": 0.9422445893287659, - "g": 0.9433279633522034, - "r": 1.0 - } + "name": "active_texture_map", + "value": "fuG2pMgH7G" } ], "offset": { @@ -928,7 +1089,7 @@ "renderview": "AxisAligned", "rotator": { "x": 0.0, - "y": -0.0, + "y": 0.0, "z": 0.0 }, "timescale": 1.0 @@ -936,10 +1097,10 @@ "flags": { "VisibleInEditor": true }, - "name": "Sonic Pulse Ring", + "name": "Left Exhaust Pipe", "position": { - "x": 0.5, - "y": 0.5 + "x": -80.0, + "y": 70.0 }, "rotation": 0.0, "scale": { @@ -947,101 +1108,13 @@ "y": 1.0 }, "size": { - "x": 599.0, - "y": 499.0 + "x": 40.470001220703125, + "y": 80.33000183105469 }, "tag": "" - } - ], - "render_tree": { - "children": [ - { - "children": [ - { - "node": { - "id": "zaQ8SYuKGL" - } - } - ], - "node": { - "id": "bhTMTzzFAN" - } - } - ], - "node": null - }, - "resource_id": "A7Z5jfJF38", - "resource_name": "Rocket", - "resource_ver": 3, - "script_file": "QldASNFLIb", - "tag": "", - "tracks": [ - { - "animators": [ - { - "animator": { - "cname": "", - "duration": 1.0, - "flags": { - "StaticInstance": true - }, - "id": "IXQDBTw7Ub", - "joint_id": "", - "method": "Acceleration", - "name": "Drawable_TimeScale", - "node": "bhTMTzzFAN", - "starttime": 0.0, - "value": 10.0 - }, - "type": "PropertyAnimator" - }, - { - "animator": { - "cname": "Actuator_2", - "duration": 1.0, - "flags": { - "StaticInstance": false - }, - "id": "IBkiEWQ7n2", - "joint_id": "", - "method": "Cosine", - "name": "Drawable_TimeScale", - "node": "zaQ8SYuKGL", - "starttime": 0.0, - "value": 2.0 - }, - "type": "PropertyAnimator" - } - ], - "delay": 0.0, - "duration": 4.0, - "id": "shUULfTlQd", - "looping": false, - "name": "Countdown" - } - ] - }, - { - "flags": { - "KillAtBoundary": true, - "KillAtLifetime": true, - "LimitLifetime": false, - "PostUpdate": true, - "TickEntity": true, - "UpdateEntity": true, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "id": "HSH0115zhS", - "idle_track": "", - "lifetime": 0.0, - "name": "Enemy/Blue", - "nodes": [ + }, { - "class": "mQzLnudlBL", + "class": "u0mbwdv2NK", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, @@ -1050,7 +1123,7 @@ "DepthTest": false, "DoubleSided": false, "FlipHorizontally": false, - "FlipVertically": false, + "FlipVertically": true, "PP_EnableBloom": true, "RestartDrawable": true, "UpdateDrawable": true, @@ -1059,7 +1132,13 @@ }, "layer": 0, "linewidth": 1.0, - "material": "YJynSu6nqw", + "material": "01D5uIlggD", + "material_params": [ + { + "name": "active_texture_map", + "value": "fuG2pMgH7G" + } + ], "offset": { "x": 0.0, "y": 0.0, @@ -1071,7 +1150,7 @@ "renderview": "AxisAligned", "rotator": { "x": 0.0, - "y": -0.0, + "y": 0.0, "z": 0.0 }, "timescale": 1.0 @@ -1079,10 +1158,10 @@ "flags": { "VisibleInEditor": true }, - "name": "Node 0", + "name": "Right Exhaust Pipe", "position": { - "x": 6.5, - "y": -1.5 + "x": 90.0, + "y": 70.0 }, "rotation": 0.0, "scale": { @@ -1090,49 +1169,13 @@ "y": 1.0 }, "size": { - "x": 100.0, - "y": 100.0 + "x": 40.470001220703125, + "y": 80.33000183105469 }, "tag": "" - } - ], - "render_tree": { - "children": [ - { - "node": { - "id": "mQzLnudlBL" - } - } - ], - "node": null - }, - "resource_id": "HSH0115zhS", - "resource_name": "Enemy/Blue", - "resource_ver": 3, - "script_file": "", - "tag": "" - }, - { - "flags": { - "KillAtBoundary": true, - "KillAtLifetime": true, - "LimitLifetime": true, - "PostUpdate": true, - "TickEntity": true, - "UpdateEntity": true, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "id": "IgheUebp5E", - "idle_track": "", - "lifetime": 0.5, - "name": "Rocket Explosion", - "nodes": [ + }, { - "class": "p0MH0dy75P", + "class": "fgYIZfCb20", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, @@ -1141,16 +1184,22 @@ "DepthTest": false, "DoubleSided": false, "FlipHorizontally": false, - "FlipVertically": false, + "FlipVertically": true, "PP_EnableBloom": true, "RestartDrawable": true, "UpdateDrawable": true, "UpdateMaterial": true, "VisibleInGame": true }, - "layer": 0, + "layer": 2, "linewidth": 1.0, - "material": "HDUIR1Bb7G", + "material": "01D5uIlggD", + "material_params": [ + { + "name": "active_texture_map", + "value": "NEL1eEQmyZ" + } + ], "offset": { "x": 0.0, "y": 0.0, @@ -1162,15 +1211,15 @@ "renderview": "AxisAligned", "rotator": { "x": 0.0, - "y": -0.0, + "y": 0.0, "z": 0.0 }, - "timescale": 2.0 + "timescale": 1.0 }, "flags": { "VisibleInEditor": true }, - "name": "Node 0", + "name": "Bridge", "position": { "x": 0.0, "y": 0.0 @@ -1181,49 +1230,13 @@ "y": 1.0 }, "size": { - "x": 3600.0, - "y": 2900.0 + "x": 144.0, + "y": 136.0 }, "tag": "" - } - ], - "render_tree": { - "children": [ - { - "node": { - "id": "p0MH0dy75P" - } - } - ], - "node": null - }, - "resource_id": "IgheUebp5E", - "resource_name": "Rocket Explosion", - "resource_ver": 3, - "script_file": "", - "tag": "" - }, - { - "flags": { - "KillAtBoundary": true, - "KillAtLifetime": true, - "LimitLifetime": false, - "PostUpdate": true, - "TickEntity": true, - "UpdateEntity": true, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "id": "JC7z1URQ70", - "idle_track": "", - "lifetime": 0.0, - "name": "Menu Background", - "nodes": [ + }, { - "class": "4JdUSBRAGP", + "class": "hIzDAYPqDy", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, @@ -1232,16 +1245,22 @@ "DepthTest": false, "DoubleSided": false, "FlipHorizontally": false, - "FlipVertically": false, + "FlipVertically": true, "PP_EnableBloom": true, "RestartDrawable": true, "UpdateDrawable": true, "UpdateMaterial": true, "VisibleInGame": true }, - "layer": -2, + "layer": 3, "linewidth": 1.0, - "material": "CopZZzjQd4", + "material": "01D5uIlggD", + "material_params": [ + { + "name": "active_texture_map", + "value": "aYDW7Y9ZiZ" + } + ], "offset": { "x": 0.0, "y": 0.0, @@ -1253,7 +1272,7 @@ "renderview": "AxisAligned", "rotator": { "x": 0.0, - "y": -0.0, + "y": 0.0, "z": 0.0 }, "timescale": 1.0 @@ -1261,10 +1280,10 @@ "flags": { "VisibleInEditor": true }, - "name": "Background", + "name": "Sensors", "position": { - "x": 0.0, - "y": 50.0 + "x": 3.5, + "y": -1.5 }, "rotation": 0.0, "scale": { @@ -1272,101 +1291,20 @@ "y": 1.0 }, "size": { - "x": 1200.0, - "y": 900.0 + "x": 50.0, + "y": 83.0 }, "tag": "" - } - ], - "render_tree": { - "children": [ - { - "node": { - "id": "4JdUSBRAGP" - } - } - ], - "node": null - }, - "resource_id": "JC7z1URQ70", - "resource_name": "Menu Background", - "resource_ver": 3, - "script_file": "", - "tag": "" - }, - { - "flags": { - "KillAtBoundary": true, - "KillAtLifetime": true, - "LimitLifetime": true, - "PostUpdate": true, - "TickEntity": true, - "UpdateEntity": true, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "id": "NjY2ow9Mfy", - "idle_track": "", - "lifetime": 1.0, - "name": "Rocket Explosion OLD", - "nodes": [ + }, { - "class": "WUKFECQ7pF", - "drawable_item": { - "coordinate_space": "Scene", - "depth": 1.0, - "drawable": "8exJylNDfi", - "flags": { - "DepthTest": false, - "DoubleSided": false, - "FlipHorizontally": false, - "FlipVertically": false, - "PP_EnableBloom": true, - "RestartDrawable": true, - "UpdateDrawable": true, - "UpdateMaterial": true, - "VisibleInGame": true - }, - "layer": 0, - "linewidth": 1.0, - "material": "HyJsrevpdz", - "material_params": [ - { - "name": "kBaseColor", - "value": { - "a": 1.0, - "b": 0.04563973471522331, - "g": 0.3948424458503723, - "r": 0.9398947358131409 - } - } - ], - "offset": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "renderpass": "DrawColor", - "renderproj": "Orthographic", - "renderstyle": "Solid", - "renderview": "AxisAligned", - "rotator": { - "x": 0.0, - "y": -0.0, - "z": 0.0 - }, - "timescale": 10.0 - }, + "class": "yCZRkINytS", "flags": { "VisibleInEditor": true }, - "name": "Node 1", + "name": "Gun Rig", "position": { - "x": -500.0, - "y": 100.0 + "x": 0.5, + "y": 0.5 }, "rotation": 0.0, "scale": { @@ -1374,24 +1312,24 @@ "y": 1.0 }, "size": { - "x": 1000.0, - "y": 1000.0 + "x": 200.0, + "y": 50.0 }, "tag": "" }, { - "class": "JseANuBtsv", + "class": "ykMJAC3FE0", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, - "drawable": "4Ckmwoylp6", + "drawable": "7pLg2qp4Pp", "flags": { "DepthTest": false, "DoubleSided": false, "FlipHorizontally": false, "FlipVertically": false, "PP_EnableBloom": true, - "RestartDrawable": false, + "RestartDrawable": true, "UpdateDrawable": true, "UpdateMaterial": true, "VisibleInGame": true @@ -1413,15 +1351,15 @@ "y": -0.0, "z": 0.0 }, - "timescale": 6.0 + "timescale": 1.0 }, "flags": { "VisibleInEditor": true }, - "name": "Node 0", + "name": "Exhaust", "position": { - "x": 0.5, - "y": 50.5 + "x": -1.3635940551757813, + "y": 47.72727966308594 }, "rotation": 0.0, "scale": { @@ -1429,17 +1367,17 @@ "y": 1.0 }, "size": { - "x": 500.0, - "y": 500.0 + "x": 42.350006103515625, + "y": 75.45004272460938 }, "tag": "" }, { - "class": "FATD19svI9", + "class": "n3mMdrlRa6", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, - "drawable": "8exJylNDfi", + "drawable": "7pLg2qp4Pp", "flags": { "DepthTest": false, "DoubleSided": false, @@ -1454,17 +1392,6 @@ "layer": 0, "linewidth": 1.0, "material": "HyJsrevpdz", - "material_params": [ - { - "name": "kBaseColor", - "value": { - "a": 1.0, - "b": 0.04563973471522331, - "g": 0.3948424458503723, - "r": 0.9398947358131409 - } - } - ], "offset": { "x": 0.0, "y": 0.0, @@ -1479,15 +1406,15 @@ "y": -0.0, "z": 0.0 }, - "timescale": 10.0 + "timescale": 1.0 }, "flags": { "VisibleInEditor": true }, - "name": "Copy of Node 1", + "name": "Exhaust", "position": { - "x": 650.0, - "y": -200.0 + "x": -0.0, + "y": 50.0 }, "rotation": 0.0, "scale": { @@ -1495,54 +1422,20 @@ "y": 1.0 }, "size": { - "x": 1000.0, - "y": 1000.0 + "x": 36.310943603515625, + "y": 64.10287475585938 }, "tag": "" }, { - "class": "OhCBNddRnI", - "drawable_item": { - "coordinate_space": "Scene", - "depth": 1.0, - "drawable": "4Ckmwoylp6", - "flags": { - "DepthTest": false, - "DoubleSided": false, - "FlipHorizontally": false, - "FlipVertically": false, - "PP_EnableBloom": true, - "RestartDrawable": false, - "UpdateDrawable": true, - "UpdateMaterial": true, - "VisibleInGame": true - }, - "layer": 0, - "linewidth": 1.0, - "material": "HyJsrevpdz", - "offset": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "renderpass": "DrawColor", - "renderproj": "Orthographic", - "renderstyle": "Solid", - "renderview": "AxisAligned", - "rotator": { - "x": 0.0, - "y": -0.0, - "z": 0.0 - }, - "timescale": 6.0 - }, + "class": "wiZX8QHgFq", "flags": { "VisibleInEditor": true }, - "name": "Copy of Node 0", + "name": "Mine", "position": { - "x": 0.5, - "y": 50.5 + "x": 3.1878280639648438, + "y": 94.04327392578125 }, "rotation": 0.0, "scale": { @@ -1550,114 +1443,109 @@ "y": 1.0 }, "size": { - "x": 500.0, - "y": 500.0 + "x": 50.0, + "y": 50.0 }, "tag": "" - } - ], - "render_tree": { - "children": [ - { - "children": [ - { - "node": { - "id": "JseANuBtsv" - } - } - ], - "node": { - "id": "WUKFECQ7pF" - } + }, + { + "class": "qKew86HICU", + "flags": { + "VisibleInEditor": true }, - { - "children": [ - { - "node": { - "id": "OhCBNddRnI" - } - } - ], - "node": { - "id": "FATD19svI9" - } + "name": "Message", + "position": { + "x": 0.0, + "y": -200.0 + }, + "rotation": 0.0, + "scale": { + "x": 2.0, + "y": 2.0 + }, + "size": { + "x": 244.0, + "y": 109.0 + }, + "tag": "", + "text_item": { + "coordinate_space": "Scene", + "flags": { + "BlinkText": true, + "PP_EnableBloom": true, + "StaticContent": false, + "UnderlineText": false, + "VisibleInGame": true + }, + "font_name": "app://fonts/ethnocentric rg.otf", + "font_size": 16, + "horizontal_align": "Center", + "layer": 0, + "line_height": 1.600000023841858, + "raster_height": 0, + "raster_width": 0, + "text": "Press space to fire", + "text_color": { + "a": 1.0, + "b": 0.9532158374786377, + "g": 1.0, + "r": 0.9538567066192627 + }, + "vertical_align": "Center" } - ], - "node": null - }, - "resource_id": "NjY2ow9Mfy", - "resource_name": "Rocket Explosion OLD", - "resource_ver": 3, - "script_file": "", - "tag": "", - "tracks": [ + }, { - "animators": [ - { - "animator": { - "cname": "Actuator_0", - "duration": 1.0, - "flags": { - "StaticInstance": false - }, - "id": "oDDSuTtIoz", - "joint_id": "", - "method": "Cosine", - "name": "Drawable_TimeScale", - "node": "WUKFECQ7pF", - "starttime": 0.0, - "value": 2.0 - }, - "type": "PropertyAnimator" - } - ], - "delay": 0.0, - "duration": 1.0, - "id": "LGJpWFPyzG", - "looping": false, - "name": "My Track" - } - ] - }, - { - "flags": { - "KillAtBoundary": true, - "KillAtLifetime": true, - "LimitLifetime": false, - "PostUpdate": true, - "TickEntity": true, - "UpdateEntity": true, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "id": "NtNnX1kgNp", - "idle_track": "", - "lifetime": 0.0, - "name": "Mine Status", - "nodes": [ + "class": "R2vkaIhbjs", + "flags": { + "VisibleInEditor": true + }, + "name": "Gun/Left", + "position": { + "x": -70.25334167480469, + "y": -94.69198608398438 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 50.0, + "y": 50.0 + }, + "tag": "" + }, { - "class": "6FUm4sZ0NR", + "class": "Fbrm8OFsxE", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, - "drawable": "_circle", + "drawable": "FF0aZIpHbj", "flags": { "DepthTest": false, "DoubleSided": false, - "FlipHorizontally": false, + "FlipHorizontally": true, "FlipVertically": false, "PP_EnableBloom": true, - "RestartDrawable": true, + "RestartDrawable": false, "UpdateDrawable": true, "UpdateMaterial": true, "VisibleInGame": true }, "layer": 0, "linewidth": 1.0, - "material": "vg5yQskPIv", + "material": "HyJsrevpdz", + "material_params": [ + { + "name": "kParticleEndColor", + "value": { + "a": 1.0, + "b": 0.0, + "g": 0.0, + "r": 0.0 + } + } + ], "offset": { "x": 0.0, "y": 0.0, @@ -1669,7 +1557,7 @@ "renderview": "AxisAligned", "rotator": { "x": 0.0, - "y": -0.0, + "y": 0.0, "z": 0.0 }, "timescale": 1.0 @@ -1677,10 +1565,10 @@ "flags": { "VisibleInEditor": true }, - "name": "Icon", + "name": "Gun/Left/ParticleEmitter", "position": { - "x": -50.0, - "y": 0.0 + "x": -62.939998626708984, + "y": -98.81999969482422 }, "rotation": 0.0, "scale": { @@ -1688,20 +1576,20 @@ "y": 1.0 }, "size": { - "x": 40.875, - "y": 39.25 + "x": 140.52000427246094, + "y": 126.08000183105469 }, "tag": "" }, { - "class": "oroPtAUiYl", + "class": "v1NOnRyW0i", "flags": { "VisibleInEditor": true }, - "name": "Text", + "name": "Gun/Right", "position": { - "x": 50.0, - "y": 0.0 + "x": 77.98197174072266, + "y": -91.16255187988281 }, "rotation": 0.0, "scale": { @@ -1709,90 +1597,24 @@ "y": 1.0 }, "size": { - "x": 200.0, - "y": 26.0 - }, - "tag": "", - "text_item": { - "coordinate_space": "Scene", - "flags": { - "BlinkText": true, - "PP_EnableBloom": true, - "StaticContent": false, - "UnderlineText": false, - "VisibleInGame": true - }, - "font_name": "app://fonts/ethnocentric rg.otf", - "font_size": 16, - "horizontal_align": "Center", - "layer": 0, - "line_height": 1.0, - "raster_height": 0, - "raster_width": 0, - "text": "Press 1", - "text_color": { - "a": 1.0, - "b": 0.8692149519920349, - "g": 0.8692149519920349, - "r": 0.9046769142150879 - }, - "vertical_align": "Center" - } - } - ], - "render_tree": { - "children": [ - { - "node": { - "id": "6FUm4sZ0NR" - } + "x": 50.0, + "y": 50.0 }, - { - "node": { - "id": "oroPtAUiYl" - } - } - ], - "node": null - }, - "resource_id": "NtNnX1kgNp", - "resource_name": "Mine Status", - "resource_ver": 3, - "script_file": "", - "tag": "" - }, - { - "flags": { - "KillAtBoundary": true, - "KillAtLifetime": true, - "LimitLifetime": true, - "PostUpdate": true, - "TickEntity": true, - "UpdateEntity": true, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "id": "OelfGJjBAI", - "idle_track": "", - "lifetime": 1.0, - "name": "Enemy/Explosion/advanced", - "nodes": [ + "tag": "" + }, { - "class": "5fYgMZDf5w", + "class": "f7sXmqsWbd", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, - "drawable": "4Ckmwoylp6", + "drawable": "FF0aZIpHbj", "flags": { "DepthTest": false, "DoubleSided": false, "FlipHorizontally": false, "FlipVertically": false, "PP_EnableBloom": true, - "RestartDrawable": true, + "RestartDrawable": false, "UpdateDrawable": true, "UpdateMaterial": true, "VisibleInGame": true @@ -1811,18 +1633,18 @@ "renderview": "AxisAligned", "rotator": { "x": 0.0, - "y": -0.0, + "y": 0.0, "z": 0.0 }, - "timescale": 3.0 + "timescale": 1.0 }, "flags": { "VisibleInEditor": true }, - "name": "Node 0", + "name": "Gun/Right/ParticleEmitter", "position": { - "x": 0.0, - "y": 0.0 + "x": 78.5, + "y": -102.8499984741211 }, "rotation": 0.0, "scale": { @@ -1830,151 +1652,13 @@ "y": 1.0 }, "size": { - "x": 100.0, - "y": 100.0 + "x": 140.52000427246094, + "y": 126.08000183105469 }, "tag": "" - } - ], - "render_tree": { - "children": [ - { - "node": { - "id": "5fYgMZDf5w" - } - } - ], - "node": null - }, - "resource_id": "OelfGJjBAI", - "resource_name": "Enemy/Explosion/advanced", - "resource_ver": 3, - "script_file": "", - "tag": "" - }, - { - "flags": { - "KillAtBoundary": true, - "KillAtLifetime": true, - "LimitLifetime": true, - "PostUpdate": true, - "TickEntity": true, - "UpdateEntity": true, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "id": "OkteghMHhq", - "idle_track": "", - "lifetime": 0.5, - "name": "Player Explosion", - "nodes": [ - { - "class": "NFWxjou9hO", - "drawable_item": { - "coordinate_space": "Scene", - "depth": 1.0, - "drawable": "sBjTBK97Mf", - "flags": { - "DepthTest": false, - "DoubleSided": false, - "FlipHorizontally": false, - "FlipVertically": false, - "PP_EnableBloom": true, - "RestartDrawable": false, - "UpdateDrawable": true, - "UpdateMaterial": true, - "VisibleInGame": true - }, - "layer": 0, - "linewidth": 1.0, - "material": "5YQ8ZqObX7", - "material_params": [ - { - "name": "kBaseColor", - "value": { - "a": 1.0, - "b": 0.11712825298309326, - "g": 0.9007858633995056, - "r": 0.1423361599445343 - } - } - ], - "offset": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "renderpass": "DrawColor", - "renderproj": "Orthographic", - "renderstyle": "Solid", - "renderview": "AxisAligned", - "rotator": { - "x": 0.0, - "y": -0.0, - "z": 0.0 - }, - "timescale": 1.0 - }, - "flags": { - "VisibleInEditor": true - }, - "name": "Node 1", - "position": { - "x": 0.0, - "y": 0.0 - }, - "rotation": 0.0, - "scale": { - "x": 1.0, - "y": 1.0 - }, - "size": { - "x": 300.0, - "y": 300.0 - }, - "tag": "" - } - ], - "render_tree": { - "children": [ - { - "node": { - "id": "NFWxjou9hO" - } - } - ], - "node": null - }, - "resource_id": "OkteghMHhq", - "resource_name": "Player Explosion", - "resource_ver": 3, - "script_file": "", - "tag": "" - }, - { - "flags": { - "KillAtBoundary": true, - "KillAtLifetime": true, - "LimitLifetime": false, - "PostUpdate": true, - "TickEntity": true, - "UpdateEntity": true, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "id": "Pj5LWE60r0", - "idle_track": "", - "lifetime": 0.0, - "name": "Player Hit", - "nodes": [ + }, { - "class": "Z7SHaUtGfj", + "class": "sOMLvM0RHG", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, @@ -2012,10 +1696,10 @@ "flags": { "VisibleInEditor": true }, - "name": "Node", + "name": "Hit Flash", "position": { - "x": -0.5, - "y": -0.5 + "x": -27.400365829467773, + "y": 66.98445129394531 }, "rotation": 0.0, "scale": { @@ -2023,13 +1707,13 @@ "y": 1.0 }, "size": { - "x": 119.4800033569336, - "y": 129.52000427246094 + "x": 86.80000305175781, + "y": 140.39999389648438 }, "tag": "" }, { - "class": "j3Wb0lxQBu", + "class": "6Dnw2fSTL0", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, @@ -2053,18 +1737,18 @@ "name": "kParticleEndColor", "value": { "a": 1.0, - "b": 0.25932708382606506, - "g": 0.25932708382606506, - "r": 0.33904021978378296 + "b": 0.42346838116645813, + "g": 0.42346838116645813, + "r": 0.42346838116645813 } }, { "name": "kParticleMidColor", "value": { "a": 1.0, - "b": 0.12966354191303253, - "g": 0.12966354191303253, - "r": 0.16952010989189148 + "b": 0.21173419058322906, + "g": 0.21173419058322906, + "r": 0.2159227877855301 } }, { @@ -2073,7 +1757,7 @@ "a": 1.0, "b": 0.0, "g": 0.0, - "r": 0.0 + "r": 0.008377202786505222 } } ], @@ -2096,10 +1780,10 @@ "flags": { "VisibleInEditor": true }, - "name": "Copy of Node", + "name": "Hit Smoke", "position": { - "x": 1.0, - "y": 10.999996185302734 + "x": -3.5999999046325684, + "y": 16.399999618530273 }, "rotation": 0.0, "scale": { @@ -2107,8 +1791,8 @@ "y": 1.0 }, "size": { - "x": 300.0, - "y": 200.0 + "x": 121.44000244140625, + "y": 317.4200134277344 }, "tag": "" } @@ -2117,28 +1801,250 @@ "children": [ { "children": [ + { + "children": [ + { + "node": { + "id": "hIzDAYPqDy" + } + } + ], + "node": { + "id": "fgYIZfCb20" + } + }, { "node": { - "id": "j3Wb0lxQBu" + "id": "xNnMrUJ8Hr" + } + }, + { + "children": [ + { + "node": { + "id": "oko2xvYgFb" + } + }, + { + "node": { + "id": "Cb3Y2oN9HI" + } + }, + { + "node": { + "id": "Fbrm8OFsxE" + } + }, + { + "node": { + "id": "R2vkaIhbjs" + } + }, + { + "node": { + "id": "f7sXmqsWbd" + } + }, + { + "node": { + "id": "v1NOnRyW0i" + } + } + ], + "node": { + "id": "yCZRkINytS" + } + }, + { + "node": { + "id": "o3ZPeIQXur" + } + }, + { + "children": [ + { + "node": { + "id": "ykMJAC3FE0" + } + } + ], + "node": { + "id": "HnZ3t3iXdj" + } + }, + { + "children": [ + { + "node": { + "id": "n3mMdrlRa6" + } + } + ], + "node": { + "id": "u0mbwdv2NK" + } + }, + { + "node": { + "id": "wiZX8QHgFq" + } + }, + { + "node": { + "id": "qKew86HICU" + } + }, + { + "children": [ + { + "node": { + "id": "6Dnw2fSTL0" + } + } + ], + "node": { + "id": "sOMLvM0RHG" } } ], "node": { - "id": "Z7SHaUtGfj" + "id": "sChBffXu5C" } } ], "node": null }, - "resource_id": "Pj5LWE60r0", - "resource_name": "Player Hit", + "resource_id": "2oiZe73qMj", + "resource_name": "Player v2", "resource_ver": 3, - "script_file": "", - "tag": "" - }, - { - "flags": { - "KillAtBoundary": true, + "script_file": "rvZg0UT77h", + "tag": "", + "tracks": [ + { + "animators": [ + { + "animator": { + "duration": 0.5002247095108032, + "flags": { + "StaticInstance": true + }, + "id": "180n4i2egS", + "method": "Cosine", + "name": "Animator_0", + "node": "yCZRkINytS", + "position": { + "x": 0.5, + "y": -10.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 200.0, + "y": 50.0 + }, + "starttime": 0.0, + "timeline": "hofWA924AF", + "transformations": { + "Resize": true, + "Rotate": true, + "Scale": true, + "Translate": true + } + }, + "type": "TransformAnimator" + }, + { + "animator": { + "duration": 0.4997752904891968, + "flags": { + "StaticInstance": true + }, + "id": "OSlnZuDdg8", + "method": "Linear", + "name": "Animator_1", + "node": "yCZRkINytS", + "position": { + "x": 0.5, + "y": 0.5 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 200.0, + "y": 50.0 + }, + "starttime": 0.5002247095108032, + "timeline": "hofWA924AF", + "transformations": { + "Resize": true, + "Rotate": true, + "Scale": true, + "Translate": true + } + }, + "type": "TransformAnimator" + } + ], + "delay": 0.0, + "duration": 0.10000000149011612, + "id": "Nv6OEQCXnZ", + "looping": false, + "name": "Fire Gun" + }, + { + "animators": [ + { + "animator": { + "duration": 1.0, + "flags": { + "StaticInstance": true + }, + "id": "WkP44sJr1b", + "method": "Linear", + "name": "Animator_0", + "node": "sChBffXu5C", + "position": { + "x": 0.0, + "y": 313.0 + }, + "rotation": 0.0, + "scale": { + "x": 0.30000001192092896, + "y": 0.30000001192092896 + }, + "size": { + "x": 100.0, + "y": 100.0 + }, + "starttime": 0.0, + "timeline": "lOhRgN8TCk", + "transformations": { + "Resize": true, + "Rotate": true, + "Scale": true, + "Translate": true + } + }, + "type": "TransformAnimator" + } + ], + "delay": 0.0, + "duration": 2.0, + "id": "OigKU5ftKF", + "looping": false, + "name": "Fly In" + } + ] + }, + { + "flags": { + "KillAtBoundary": true, "KillAtLifetime": true, "LimitLifetime": false, "PostUpdate": true, @@ -2150,13 +2056,41 @@ "WantsKeyEvents": false, "WantsMouseEvents": false }, - "id": "RSOY0WfH2p", + "id": "41Od2TRXue", "idle_track": "", "lifetime": 0.0, - "name": "Title", + "name": "Enemy/Intermediate", "nodes": [ { - "class": "RfPLX5xUST", + "class": "fN8ai4maHs", + "flags": { + "VisibleInEditor": true + }, + "name": "Body", + "position": { + "x": -0.0, + "y": 0.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 91.0, + "y": 72.0 + }, + "spatial_node": { + "flags": { + "Enabled": true, + "ReportOverlap": false + }, + "shape": "AABB" + }, + "tag": "" + }, + { + "class": "aE1magu6a0", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, @@ -2165,25 +2099,20 @@ "DepthTest": false, "DoubleSided": false, "FlipHorizontally": false, - "FlipVertically": false, + "FlipVertically": true, "PP_EnableBloom": true, "RestartDrawable": true, "UpdateDrawable": true, "UpdateMaterial": true, "VisibleInGame": true }, - "layer": 1, + "layer": 0, "linewidth": 1.0, - "material": "Kb5sHrP5bL", + "material": "JHJOgzrTOZ", "material_params": [ { - "name": "kBaseColor", - "value": { - "a": 1.0, - "b": 0.9324635863304138, - "g": 0.6411840915679932, - "r": 0.6212100386619568 - } + "name": "active_texture_map", + "value": "Oj8I2KKxyA" } ], "offset": { @@ -2205,131 +2134,61 @@ "flags": { "VisibleInEditor": true }, - "name": "Copy of Node 3", + "name": "Skin", "position": { - "x": 0.0, - "y": -0.0 + "x": 0.5, + "y": 0.5 }, "rotation": 0.0, "scale": { - "x": 0.5, - "y": 0.5 + "x": 1.0, + "y": 1.0 }, "size": { - "x": 800.0, - "y": 600.0 + "x": 100.0, + "y": 100.0 }, "tag": "" - } - ], - "render_tree": { - "children": [ - { - "node": { - "id": "RfPLX5xUST" - } - } - ], - "node": null - }, - "resource_id": "RSOY0WfH2p", - "resource_name": "Title", - "resource_ver": 3, - "script_file": "", - "tag": "" - }, - { - "flags": { - "KillAtBoundary": true, - "KillAtLifetime": true, - "LimitLifetime": false, - "PostUpdate": false, - "TickEntity": false, - "UpdateEntity": true, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "id": "RSplpYxIZr", - "idle_track": "", - "lifetime": 0.0, - "name": "Enemy/Demo", - "nodes": [ + }, { - "class": "MLb3BAvtKz", + "class": "GFHCvbs2O2", "flags": { "VisibleInEditor": true }, - "name": "Node 1", + "name": "Weapon0", "position": { - "x": 0.0, - "y": 0.0 + "x": -27.05881690979004, + "y": 49.41175842285156 }, - "rotation": -1.5707963705062866, + "rotation": 0.0, "scale": { "x": 1.0, "y": 1.0 }, "size": { - "x": 150.0, - "y": 108.56999969482422 + "x": 58.13450622558594, + "y": 51.27953338623047 }, "tag": "" }, { - "class": "HYWdnKUCFx", - "drawable_item": { - "coordinate_space": "Scene", - "depth": 1.0, - "drawable": "_rect", - "flags": { - "DepthTest": false, - "DoubleSided": false, - "FlipHorizontally": false, - "FlipVertically": false, - "PP_EnableBloom": true, - "RestartDrawable": true, - "UpdateDrawable": true, - "UpdateMaterial": true, - "VisibleInGame": true - }, - "layer": 0, - "linewidth": 1.0, - "material": "Z3Pe1h4eXI", - "offset": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "renderpass": "DrawColor", - "renderproj": "Orthographic", - "renderstyle": "Solid", - "renderview": "AxisAligned", - "rotator": { - "x": 0.0, - "y": -0.0, - "z": 0.0 - }, - "timescale": 1.0 - }, + "class": "hmKzCDxwdP", "flags": { "VisibleInEditor": true }, - "name": "Node 0", + "name": "Weapon1", "position": { - "x": -0.0, - "y": -0.0 + "x": 28.823532104492188, + "y": 49.99998474121094 }, - "rotation": 3.1415927410125732, + "rotation": 0.0, "scale": { "x": 1.0, "y": 1.0 }, "size": { - "x": 100.0, - "y": 100.0 + "x": 58.13450622558594, + "y": 51.27953338623047 }, "tag": "" } @@ -2339,87 +2198,125 @@ { "children": [ { + "children": [ + { + "node": { + "id": "GFHCvbs2O2" + } + }, + { + "node": { + "id": "hmKzCDxwdP" + } + } + ], "node": { - "id": "HYWdnKUCFx" + "id": "aE1magu6a0" } } ], "node": { - "id": "MLb3BAvtKz" + "id": "fN8ai4maHs" } } ], "node": null }, - "resource_id": "RSplpYxIZr", - "resource_name": "Enemy/Demo", + "resource_id": "41Od2TRXue", + "resource_name": "Enemy/Intermediate", "resource_ver": 3, - "script_file": "IlR7Jl84BY", + "script_file": "FXdfIUPul3", "tag": "", - "vars": [ + "tracks": [ { - "flags": { - "Array": false, - "Private": true, - "ReadOnly": false - }, - "floats": [ - 0.0 - ], - "id": "AeOD8Fl6O1", - "name": "circ_angle" - }, - { - "flags": { - "Array": false, - "Private": true, - "ReadOnly": false - }, - "floats": [ - 1.0 - ], - "id": "uP6ufDqvoK", - "name": "inf_angle_dir" - }, - { - "flags": { - "Array": false, - "Private": true, - "ReadOnly": false - }, - "floats": [ - 0.0 - ], - "id": "s45rKw6s1x", - "name": "inf_angle_accum" - }, - { - "flags": { - "Array": false, - "Private": true, - "ReadOnly": false - }, - "floats": [ - 0.0 + "animators": [ + { + "animator": { + "duration": 0.4993606209754944, + "flags": { + "StaticInstance": true + }, + "id": "o0qEa22ND4", + "method": "EaseInElastic", + "name": "Animator_0", + "node": "aE1magu6a0", + "position": { + "x": 0.0, + "y": -13.529999732971191 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 100.0, + "y": 100.0 + }, + "starttime": 0.0, + "timeline": "gJwO9W4042", + "transformations": { + "Resize": true, + "Rotate": true, + "Scale": true, + "Translate": true + } + }, + "type": "TransformAnimator" + }, + { + "animator": { + "duration": 0.5006393790245056, + "flags": { + "StaticInstance": true + }, + "id": "DqE6uBiALz", + "method": "Linear", + "name": "Animator_1", + "node": "aE1magu6a0", + "position": { + "x": 0.5, + "y": 0.5 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 100.0, + "y": 100.0 + }, + "starttime": 0.4993606209754944, + "timeline": "gJwO9W4042", + "transformations": { + "Resize": true, + "Rotate": true, + "Scale": true, + "Translate": true + } + }, + "type": "TransformAnimator" + } ], - "id": "sBhsESAjIG", - "name": "inf_angle" - }, + "delay": 0.0, + "duration": 0.10000000149011612, + "id": "r6NeZXbW5D", + "looping": false, + "name": "Indicate Damage" + } + ], + "vars": [ { "flags": { "Array": false, "Private": true, - "ReadOnly": false + "ReadOnly": true }, - "id": "WfKT8KrCKR", - "name": "inf_origin", - "vec2s": [ - { - "object": { - "x": 0.0, - "y": 0.0 - } - } + "id": "bnUQflQBSG", + "name": "type", + "strings": [ + "intermediate" ] }, { @@ -2428,8 +2325,8 @@ "Private": true, "ReadOnly": false }, - "id": "029din9WXP", - "name": "circ_origin", + "id": "nyvgaAuB0r", + "name": "direction", "vec2s": [ { "object": { @@ -2440,16 +2337,16 @@ ] }, { - "bools": [ - 0 - ], "flags": { "Array": false, - "Private": true, + "Private": false, "ReadOnly": false }, - "id": "aAb40HLl9p", - "name": "is_odd" + "floats": [ + 0.0 + ], + "id": "r8m8XxBA6s", + "name": "rotation" }, { "flags": { @@ -2457,11 +2354,11 @@ "Private": true, "ReadOnly": false }, - "floats": [ - 300.0 + "id": "2s1zL535m6", + "ints": [ + 0 ], - "id": "iSTbTf2O3v", - "name": "circ_radius" + "name": "hit_count" } ] }, @@ -2471,30 +2368,30 @@ "KillAtLifetime": true, "LimitLifetime": false, "PostUpdate": true, - "TickEntity": true, - "UpdateEntity": true, + "TickEntity": false, + "UpdateEntity": false, "UpdateNodes": false, "VisibleInEditor": true, "VisibleInGame": true, "WantsKeyEvents": false, "WantsMouseEvents": false }, - "id": "XExwRNFj8H", + "id": "5LKG2wBRGq", "idle_track": "", "lifetime": 0.0, - "name": "Stars", + "name": "Bullet/Enemy/Basic", "nodes": [ { - "class": "QxJjKiAP7G", + "class": "UIG3lUtmPm", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, - "drawable": "9o7zbhlIlp", + "drawable": "_rect", "flags": { "DepthTest": false, "DoubleSided": false, "FlipHorizontally": false, - "FlipVertically": false, + "FlipVertically": true, "PP_EnableBloom": true, "RestartDrawable": true, "UpdateDrawable": true, @@ -2503,7 +2400,7 @@ }, "layer": 0, "linewidth": 1.0, - "material": "5YQ8ZqObX7", + "material": "EuyGHU1pbR", "offset": { "x": 0.0, "y": 0.0, @@ -2515,7 +2412,7 @@ "renderview": "AxisAligned", "rotator": { "x": 0.0, - "y": -0.0, + "y": 0.0, "z": 0.0 }, "timescale": 1.0 @@ -2523,19 +2420,36 @@ "flags": { "VisibleInEditor": true }, - "name": "Node 0", + "linear_mover": { + "angular_acceleration": 0.0, + "angular_velocity": 0.0, + "flags": { + "Enabled": true, + "RotateToDirection": false + }, + "integrator": "Euler", + "linear_acceleration": { + "x": 0.0, + "y": 0.0 + }, + "linear_velocity": { + "x": 0.0, + "y": 0.0 + } + }, + "name": "Bullet", "position": { "x": 0.0, - "y": -0.0 + "y": 0.0 }, - "rotation": 1.5707963705062866, + "rotation": 0.0, "scale": { "x": 1.0, "y": 1.0 }, "size": { - "x": 876.949951171875, - "y": 1352.576416015625 + "x": 15.0, + "y": 20.0 }, "tag": "" } @@ -2544,17 +2458,43 @@ "children": [ { "node": { - "id": "QxJjKiAP7G" + "id": "UIG3lUtmPm" } } ], "node": null }, - "resource_id": "XExwRNFj8H", - "resource_name": "Stars", + "resource_id": "5LKG2wBRGq", + "resource_name": "Bullet/Enemy/Basic", "resource_ver": 3, - "script_file": "", - "tag": "" + "script_file": "4KwMiHn2Zz", + "tag": "", + "vars": [ + { + "flags": { + "Array": false, + "Private": false, + "ReadOnly": false + }, + "floats": [ + 500.0 + ], + "id": "CGpy59Lkmy", + "name": "velocity" + }, + { + "bools": [ + 0 + ], + "flags": { + "Array": false, + "Private": false, + "ReadOnly": true + }, + "id": "LjhZ24Oglo", + "name": "player" + } + ] }, { "flags": { @@ -2570,34 +2510,13 @@ "WantsKeyEvents": false, "WantsMouseEvents": false }, - "id": "XSYiC5gMBy", - "idle_track": "H2yYAsNllZ", + "id": "7NAD3QgFlq", + "idle_track": "", "lifetime": 0.0, - "name": "Enemy/Advanced", + "name": "Background", "nodes": [ { - "class": "z0JEsREDqX", - "flags": { - "VisibleInEditor": true - }, - "name": "Body", - "position": { - "x": 1.0000004768371582, - "y": 0.9999995231628418 - }, - "rotation": -0.0, - "scale": { - "x": 1.0, - "y": 1.0 - }, - "size": { - "x": 102.00001525878906, - "y": 98.0 - }, - "tag": "" - }, - { - "class": "6nq03R9DmZ", + "class": "n9QIMigZH2", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, @@ -2615,7 +2534,7 @@ }, "layer": 0, "linewidth": 1.0, - "material": "HJjE3ufNfH", + "material": "CopZZzjQd4", "offset": { "x": 0.0, "y": 0.0, @@ -2630,33 +2549,33 @@ "y": -0.0, "z": 0.0 }, - "timescale": 1.0 + "timescale": 0.20000000298023224 }, "flags": { "VisibleInEditor": true }, - "name": "Skin", + "name": "Wallpaper", "position": { - "x": -1.5, - "y": -0.5 + "x": -0.0, + "y": -0.0 }, - "rotation": -3.1415927410125732, + "rotation": 0.0, "scale": { "x": 1.0, "y": 1.0 }, "size": { - "x": 203.0, - "y": 203.0 + "x": 1400.0, + "y": 1000.0 }, "tag": "" }, { - "class": "DuvPy8gU5I", + "class": "QnlQ7xD1kW", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, - "drawable": "7pLg2qp4Pp", + "drawable": "9o7zbhlIlp", "flags": { "DepthTest": false, "DoubleSided": false, @@ -2668,38 +2587,9 @@ "UpdateMaterial": true, "VisibleInGame": true }, - "layer": 0, + "layer": 1, "linewidth": 1.0, - "material": "HyJsrevpdz", - "material_params": [ - { - "name": "kParticleEndColor", - "value": { - "a": 1.0, - "b": 0.8352025747299194, - "g": 0.6951247453689575, - "r": 0.887312114238739 - } - }, - { - "name": "kParticleMidColor", - "value": { - "a": 1.0, - "b": 0.9132677316665649, - "g": 0.34756237268447876, - "r": 0.9436560869216919 - } - }, - { - "name": "kParticleStartColor", - "value": { - "a": 1.0, - "b": 0.9913328886032104, - "g": 0.0, - "r": 1.0 - } - } - ], + "material": "5YQ8ZqObX7", "offset": { "x": 0.0, "y": 0.0, @@ -2719,28 +2609,69 @@ "flags": { "VisibleInEditor": true }, - "name": "Exhaust", + "name": "Stars", "position": { - "x": -27.979999542236328, - "y": 54.91999816894531 + "x": -1.0, + "y": 1.0 }, - "rotation": 0.0, + "rotation": 1.5707963705062866, "scale": { "x": 1.0, "y": 1.0 }, "size": { - "x": 100.0, - "y": 100.0 + "x": 1000.0, + "y": 1400.0 }, "tag": "" - }, + } + ], + "render_tree": { + "children": [ + { + "node": { + "id": "n9QIMigZH2" + } + }, + { + "node": { + "id": "QnlQ7xD1kW" + } + } + ], + "node": null + }, + "resource_id": "7NAD3QgFlq", + "resource_name": "Background", + "resource_ver": 3, + "script_file": "", + "tag": "" + }, + { + "flags": { + "KillAtBoundary": true, + "KillAtLifetime": false, + "LimitLifetime": true, + "PostUpdate": true, + "TickEntity": true, + "UpdateEntity": true, + "UpdateNodes": false, + "VisibleInEditor": true, + "VisibleInGame": true, + "WantsKeyEvents": false, + "WantsMouseEvents": false + }, + "id": "A7Z5jfJF38", + "idle_track": "shUULfTlQd", + "lifetime": 3.0, + "name": "Right Rocket", + "nodes": [ { - "class": "takuX6vO1m", + "class": "bhTMTzzFAN", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, - "drawable": "7pLg2qp4Pp", + "drawable": "_rect", "flags": { "DepthTest": false, "DoubleSided": false, @@ -2752,38 +2683,9 @@ "UpdateMaterial": true, "VisibleInGame": true }, - "layer": 0, + "layer": 1, "linewidth": 1.0, - "material": "HyJsrevpdz", - "material_params": [ - { - "name": "kParticleEndColor", - "value": { - "a": 1.0, - "b": 0.8352025747299194, - "g": 0.6951247453689575, - "r": 0.887312114238739 - } - }, - { - "name": "kParticleMidColor", - "value": { - "a": 1.0, - "b": 0.9132677316665649, - "g": 0.34756237268447876, - "r": 0.9436560869216919 - } - }, - { - "name": "kParticleStartColor", - "value": { - "a": 1.0, - "b": 0.9913328886032104, - "g": 0.0, - "r": 1.0 - } - } - ], + "material": "vg5yQskPIv", "offset": { "x": 0.0, "y": 0.0, @@ -2795,7 +2697,7 @@ "renderview": "AxisAligned", "rotator": { "x": 0.0, - "y": -0.0, + "y": 0.0, "z": 0.0 }, "timescale": 1.0 @@ -2803,10 +2705,10 @@ "flags": { "VisibleInEditor": true }, - "name": "Exhaust", + "name": "Skin And Path", "position": { - "x": -44.86000061035156, - "y": 37.150001525878906 + "x": 0.0, + "y": 0.0 }, "rotation": 0.0, "scale": { @@ -2814,101 +2716,60 @@ "y": 1.0 }, "size": { - "x": 100.0, - "y": 100.0 + "x": 20.0, + "y": 60.0 }, - "tag": "" - }, - { - "class": "4o5u3l92vL", - "drawable_item": { - "coordinate_space": "Scene", - "depth": 1.0, - "drawable": "7pLg2qp4Pp", + "spline_mover": { + "acceleration": 300.0, "flags": { - "DepthTest": false, - "DoubleSided": false, - "FlipHorizontally": false, - "FlipVertically": false, - "PP_EnableBloom": true, - "RestartDrawable": true, - "UpdateDrawable": true, - "UpdateMaterial": true, - "VisibleInGame": true + "Enabled": true }, - "layer": 0, - "linewidth": 1.0, - "material": "HyJsrevpdz", - "material_params": [ + "iteration-mode": "Once", + "path-coordinate-space": "Relative", + "path-curve-type": "CatmullRom", + "rotation-mode": "IgnoreSplineRotation", + "speed": 100.0, + "spline_points": [ { - "name": "kParticleEndColor", - "value": { - "a": 1.0, - "b": 0.8352025747299194, - "g": 0.6951247453689575, - "r": 0.887312114238739 - } + "w": 0.0, + "x": 2.0000038146972656, + "y": 2.0, + "z": 0.0 }, { - "name": "kParticleMidColor", - "value": { - "a": 1.0, - "b": 0.9132677316665649, - "g": 0.34756237268447876, - "r": 0.9436560869216919 - } + "w": 0.0, + "x": 108.0, + "y": 53.000030517578125, + "z": 0.0 }, { - "name": "kParticleStartColor", - "value": { - "a": 1.0, - "b": 0.9913328886032104, - "g": 0.0, - "r": 1.0 - } + "w": 0.0, + "x": 260.0, + "y": 2.000030517578125, + "z": 0.0 + }, + { + "w": 0.0, + "x": 302.0, + "y": -396.99993896484375, + "z": 0.0 + }, + { + "w": 0.0, + "x": 295.0, + "y": -797.9998779296875, + "z": 0.0 } - ], - "offset": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "renderpass": "DrawColor", - "renderproj": "Orthographic", - "renderstyle": "Solid", - "renderview": "AxisAligned", - "rotator": { - "x": 0.0, - "y": -0.0, - "z": 0.0 - }, - "timescale": 1.0 - }, - "flags": { - "VisibleInEditor": true - }, - "name": "Exhaust", - "position": { - "x": 24.93000030517578, - "y": 56.689998626708984 - }, - "rotation": 0.0, - "scale": { - "x": 1.0, - "y": 1.0 - }, - "size": { - "x": 100.0, - "y": 100.0 + ] }, "tag": "" }, { - "class": "5SA63hC5Z2", + "class": "zaQ8SYuKGL", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, - "drawable": "7pLg2qp4Pp", + "drawable": "_circle", "flags": { "DepthTest": false, "DoubleSided": false, @@ -2922,32 +2783,23 @@ }, "layer": 0, "linewidth": 1.0, - "material": "HyJsrevpdz", + "material": "2a488SIQsU", "material_params": [ { - "name": "kParticleEndColor", - "value": { - "a": 1.0, - "b": 0.8352025747299194, - "g": 0.6951247453689575, - "r": 0.887312114238739 - } - }, - { - "name": "kParticleMidColor", + "name": "kBaseColor", "value": { "a": 1.0, - "b": 0.9132677316665649, - "g": 0.34756237268447876, - "r": 0.9436560869216919 + "b": 0.9319600462913513, + "g": 0.8868696093559265, + "r": 0.8864118456840515 } }, { - "name": "kParticleStartColor", + "name": "kColor0", "value": { - "a": 1.0, - "b": 0.9913328886032104, - "g": 0.0, + "a": 0.6901960968971252, + "b": 0.9422445893287659, + "g": 0.9433279633522034, "r": 1.0 } } @@ -2971,52 +2823,10 @@ "flags": { "VisibleInEditor": true }, - "name": "Exhaust", - "position": { - "x": 41.869998931884766, - "y": 38.619998931884766 - }, - "rotation": 0.0, - "scale": { - "x": 1.0, - "y": 1.0 - }, - "size": { - "x": 100.0, - "y": 100.0 - }, - "tag": "" - }, - { - "class": "E2lM8sty72", - "flags": { - "VisibleInEditor": true - }, - "name": "Weapon0", - "position": { - "x": 12.989999771118164, - "y": -52.5 - }, - "rotation": 3.1415927410125732, - "scale": { - "x": 1.0, - "y": 1.0 - }, - "size": { - "x": 50.0, - "y": 60.68000030517578 - }, - "tag": "" - }, - { - "class": "8PzAFGlbeM", - "flags": { - "VisibleInEditor": true - }, - "name": "Weapon1", + "name": "Sonic Pulse Ring", "position": { - "x": -14.460000038146973, - "y": -51.16999816894531 + "x": 0.0, + "y": 0.0 }, "rotation": 0.0, "scale": { @@ -3024,17 +2834,17 @@ "y": 1.0 }, "size": { - "x": 50.0, - "y": 60.68000030517578 + "x": 599.0, + "y": 499.0 }, "tag": "" }, { - "class": "pwdBMGRud0", + "class": "6k4modG4Op", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, - "drawable": "YyvAdpWoTq", + "drawable": "7pLg2qp4Pp", "flags": { "DepthTest": false, "DoubleSided": false, @@ -3042,13 +2852,13 @@ "FlipVertically": false, "PP_EnableBloom": true, "RestartDrawable": true, - "UpdateDrawable": false, - "UpdateMaterial": false, - "VisibleInGame": false + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true }, - "layer": -1, + "layer": 0, "linewidth": 1.0, - "material": "ztFYdG5FDv", + "material": "HyJsrevpdz", "offset": { "x": 0.0, "y": 0.0, @@ -3068,10 +2878,10 @@ "flags": { "VisibleInEditor": true }, - "name": "Engine Smoke", + "name": "Copy of Copy of Exhaust/Right", "position": { - "x": 11.600000381469727, - "y": 46.11000061035156 + "x": -2.5, + "y": 29.500091552734375 }, "rotation": 0.0, "scale": { @@ -3079,13 +2889,108 @@ "y": 1.0 }, "size": { - "x": 149.44000244140625, - "y": 135.55999755859375 - }, + "x": 36.310943603515625, + "y": 64.10287475585938 + }, "tag": "" - }, + } + ], + "render_tree": { + "children": [ + { + "children": [ + { + "node": { + "id": "zaQ8SYuKGL" + } + }, + { + "node": { + "id": "6k4modG4Op" + } + } + ], + "node": { + "id": "bhTMTzzFAN" + } + } + ], + "node": null + }, + "resource_id": "A7Z5jfJF38", + "resource_name": "Right Rocket", + "resource_ver": 3, + "script_file": "QldASNFLIb", + "tag": "", + "tracks": [ { - "class": "GGIdUwPv7C", + "animators": [ + { + "animator": { + "cname": "", + "duration": 1.0, + "flags": { + "StaticInstance": true + }, + "id": "IXQDBTw7Ub", + "joint_id": "", + "method": "Acceleration", + "name": "Drawable_TimeScale", + "node": "bhTMTzzFAN", + "starttime": 0.0, + "timeline": "", + "value": 10.0 + }, + "type": "PropertyAnimator" + }, + { + "animator": { + "cname": "Actuator_2", + "duration": 1.0, + "flags": { + "StaticInstance": false + }, + "id": "IBkiEWQ7n2", + "joint_id": "", + "method": "Cosine", + "name": "Drawable_TimeScale", + "node": "zaQ8SYuKGL", + "starttime": 0.0, + "timeline": "", + "value": 2.0 + }, + "type": "PropertyAnimator" + } + ], + "delay": 0.0, + "duration": 4.0, + "id": "shUULfTlQd", + "looping": false, + "name": "Countdown" + } + ] + }, + { + "flags": { + "KillAtBoundary": true, + "KillAtLifetime": false, + "LimitLifetime": true, + "PostUpdate": true, + "TickEntity": true, + "UpdateEntity": true, + "UpdateNodes": false, + "VisibleInEditor": true, + "VisibleInGame": true, + "WantsKeyEvents": false, + "WantsMouseEvents": false + }, + "id": "Gr460UnDSN", + "idle_track": "Zyi5jmzgTa", + "lifetime": 3.0, + "name": "Left Rocket", + "nodes": [ + { + "class": "Ka1W8DF1o1", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, @@ -3101,9 +3006,9 @@ "UpdateMaterial": true, "VisibleInGame": true }, - "layer": 3, + "layer": 1, "linewidth": 1.0, - "material": "_Green", + "material": "vg5yQskPIv", "offset": { "x": 0.0, "y": 0.0, @@ -3115,7 +3020,7 @@ "renderview": "AxisAligned", "rotator": { "x": 0.0, - "y": -0.0, + "y": 0.0, "z": 0.0 }, "timescale": 1.0 @@ -3123,52 +3028,10 @@ "flags": { "VisibleInEditor": true }, - "name": "Health", - "position": { - "x": 77.72000122070313, - "y": 0.2800000011920929 - }, - "rotation": 0.0, - "scale": { - "x": 1.0, - "y": 1.0 - }, - "size": { - "x": 100.0, - "y": 5.0 - }, - "tag": "" - }, - { - "class": "Ayv1nxMGYq", - "flags": { - "VisibleInEditor": true - }, - "name": "Health Root", - "position": { - "x": -39.369998931884766, - "y": -32.0099983215332 - }, - "rotation": 3.1415927410125732, - "scale": { - "x": 1.0, - "y": 1.0 - }, - "size": { - "x": 40.0, - "y": 45.0 - }, - "tag": "" - }, - { - "class": "2EZBxk2B3Q", - "flags": { - "VisibleInEditor": true - }, - "name": "Hitbox", + "name": "Skin And Path", "position": { - "x": 2.781348705291748, - "y": -8.777790069580078 + "x": 0.0, + "y": 0.0 }, "rotation": 0.0, "scale": { @@ -3176,24 +3039,60 @@ "y": 1.0 }, "size": { - "x": 175.00001525878906, - "y": 112.0 + "x": 20.0, + "y": 60.0 }, - "spatial_node": { + "spline_mover": { + "acceleration": 300.0, "flags": { - "Enabled": true, - "ReportOverlap": false + "Enabled": true }, - "shape": "AABB" + "iteration-mode": "Once", + "path-coordinate-space": "Relative", + "path-curve-type": "CatmullRom", + "rotation-mode": "IgnoreSplineRotation", + "speed": 100.0, + "spline_points": [ + { + "w": 0.0, + "x": 2.0000038146972656, + "y": 2.0, + "z": 0.0 + }, + { + "w": 0.0, + "x": -93.49998474121094, + "y": 55.00006103515625, + "z": 0.0 + }, + { + "w": 0.0, + "x": -245.49996948242188, + "y": 8.00006103515625, + "z": 0.0 + }, + { + "w": 0.0, + "x": -250.49996948242188, + "y": -450.99993896484375, + "z": 0.0 + }, + { + "w": 0.0, + "x": -239.49998474121094, + "y": -788.9999389648438, + "z": 0.0 + } + ] }, "tag": "" }, { - "class": "unyS0aUhWg", + "class": "03o2vr1wCt", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, - "drawable": "Gk8mjavP85", + "drawable": "_circle", "flags": { "DepthTest": false, "DoubleSided": false, @@ -3205,9 +3104,29 @@ "UpdateMaterial": true, "VisibleInGame": true }, - "layer": 4, + "layer": 0, "linewidth": 1.0, - "material": "HyJsrevpdz", + "material": "2a488SIQsU", + "material_params": [ + { + "name": "kBaseColor", + "value": { + "a": 1.0, + "b": 0.9319600462913513, + "g": 0.8868696093559265, + "r": 0.8864118456840515 + } + }, + { + "name": "kColor0", + "value": { + "a": 0.6901960968971252, + "b": 0.9422445893287659, + "g": 0.9433279633522034, + "r": 1.0 + } + } + ], "offset": { "x": 0.0, "y": 0.0, @@ -3222,12 +3141,12 @@ "y": -0.0, "z": 0.0 }, - "timescale": 0.5 + "timescale": 1.0 }, "flags": { "VisibleInEditor": true }, - "name": "Hit Flash", + "name": "Sonic Pulse Ring", "position": { "x": 0.0, "y": 0.0 @@ -3238,17 +3157,17 @@ "y": 1.0 }, "size": { - "x": 86.80000305175781, - "y": 140.39999389648438 + "x": 599.0, + "y": 499.0 }, "tag": "" }, { - "class": "M75Yphs7Kn", + "class": "s8eQNWqiSi", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, - "drawable": "Gk8mjavP85", + "drawable": "7pLg2qp4Pp", "flags": { "DepthTest": false, "DoubleSided": false, @@ -3260,38 +3179,9 @@ "UpdateMaterial": true, "VisibleInGame": true }, - "layer": 4, + "layer": 0, "linewidth": 1.0, "material": "HyJsrevpdz", - "material_params": [ - { - "name": "kParticleEndColor", - "value": { - "a": 1.0, - "b": 0.42346838116645813, - "g": 0.42346838116645813, - "r": 0.42346838116645813 - } - }, - { - "name": "kParticleMidColor", - "value": { - "a": 1.0, - "b": 0.21173419058322906, - "g": 0.21173419058322906, - "r": 0.2159227877855301 - } - }, - { - "name": "kParticleStartColor", - "value": { - "a": 1.0, - "b": 0.0, - "g": 0.0, - "r": 0.008377202786505222 - } - } - ], "offset": { "x": 0.0, "y": 0.0, @@ -3306,15 +3196,15 @@ "y": -0.0, "z": 0.0 }, - "timescale": 0.5 + "timescale": 1.0 }, "flags": { "VisibleInEditor": true }, - "name": "Hit Smoke", + "name": "Copy of Exhaust/Right", "position": { - "x": -3.5999999046325684, - "y": 16.399999618530273 + "x": -0.31818199157714844, + "y": 35.68182373046875 }, "rotation": 0.0, "scale": { @@ -3322,8 +3212,8 @@ "y": 1.0 }, "size": { - "x": 121.44000244140625, - "y": 317.4200134277344 + "x": 36.310943603515625, + "y": 64.10287475585938 }, "tag": "" } @@ -3333,234 +3223,73 @@ { "children": [ { - "children": [ - { - "node": { - "id": "DuvPy8gU5I" - } - }, - { - "node": { - "id": "takuX6vO1m" - } - }, - { - "node": { - "id": "4o5u3l92vL" - } - }, - { - "node": { - "id": "5SA63hC5Z2" - } - }, - { - "node": { - "id": "E2lM8sty72" - } - }, - { - "node": { - "id": "8PzAFGlbeM" - } - }, - { - "node": { - "id": "pwdBMGRud0" - } - }, - { - "children": [ - { - "node": { - "id": "GGIdUwPv7C" - } - } - ], - "node": { - "id": "Ayv1nxMGYq" - } - }, - { - "children": [ - { - "node": { - "id": "M75Yphs7Kn" - } - } - ], - "node": { - "id": "unyS0aUhWg" - } - } - ], "node": { - "id": "6nq03R9DmZ" + "id": "03o2vr1wCt" } }, { "node": { - "id": "2EZBxk2B3Q" + "id": "s8eQNWqiSi" } } ], "node": { - "id": "z0JEsREDqX" + "id": "Ka1W8DF1o1" } } ], "node": null }, - "resource_id": "XSYiC5gMBy", - "resource_name": "Enemy/Advanced", + "resource_id": "Gr460UnDSN", + "resource_name": "Left Rocket", "resource_ver": 3, - "script_file": "FXdfIUPul3", - "tag": "#enemy", + "script_file": "QldASNFLIb", + "tag": "", "tracks": [ { "animators": [ { "animator": { - "duration": 0.40061694383621216, - "flags": { - "StaticInstance": false - }, - "id": "STHQ9Dm3pH", - "method": "Cosine", - "name": "Actuator_1", - "node": "z0JEsREDqX", - "position": { - "x": -442.0, - "y": -314.0 - }, - "rotation": 0.0, - "scale": { - "x": 1.0, - "y": 1.0 - }, - "size": { - "x": 102.0, - "y": 98.0 - }, - "starttime": 0.0 - }, - "type": "TransformAnimator" - }, - { - "animator": { - "duration": 0.2010781466960907, + "cname": "", + "duration": 1.0, "flags": { - "StaticInstance": false - }, - "id": "pSlWG7nbNr", - "method": "Cosine", - "name": "Actuator_2", - "node": "z0JEsREDqX", - "position": { - "x": 506.0, - "y": -303.0 - }, - "rotation": 0.0, - "scale": { - "x": 1.0, - "y": 1.0 - }, - "size": { - "x": 102.0, - "y": 98.0 + "StaticInstance": true }, - "starttime": 0.4010021388530731 + "id": "EdT4BvmEbR", + "joint_id": "", + "method": "Acceleration", + "name": "Drawable_TimeScale", + "node": "Ka1W8DF1o1", + "starttime": 0.0, + "timeline": "", + "value": 10.0 }, - "type": "TransformAnimator" + "type": "PropertyAnimator" }, { "animator": { - "duration": 0.3971492648124695, + "cname": "Actuator_2", + "duration": 1.0, "flags": { "StaticInstance": false }, - "id": "oG56hjhI13", + "id": "9NyimtWdPg", + "joint_id": "", "method": "Cosine", - "name": "Actuator_3", - "node": "z0JEsREDqX", - "position": { - "x": 1.0000004768371582, - "y": 0.9999995231628418 - }, - "rotation": 0.0, - "scale": { - "x": 1.0, - "y": 1.0 - }, - "size": { - "x": 102.00001525878906, - "y": 98.0 - }, - "starttime": 0.6020802855491638 + "name": "Drawable_TimeScale", + "node": "03o2vr1wCt", + "starttime": 0.0, + "timeline": "", + "value": 2.0 }, - "type": "TransformAnimator" + "type": "PropertyAnimator" } ], "delay": 0.0, - "duration": 5.0, - "id": "H2yYAsNllZ", + "duration": 4.0, + "id": "Zyi5jmzgTa", "looping": false, - "name": "Motion" - } - ], - "vars": [ - { - "flags": { - "Array": false, - "Private": true, - "ReadOnly": false - }, - "floats": [ - 0.0 - ], - "id": "Xm3JR0K8bG", - "name": "rotation" - }, - { - "flags": { - "Array": false, - "Private": true, - "ReadOnly": false - }, - "id": "aBDCmHbb5B", - "name": "velocity", - "vec2s": [ - { - "object": { - "x": 0.0, - "y": 10.0 - } - } - ] - }, - { - "flags": { - "Array": false, - "Private": true, - "ReadOnly": true - }, - "id": "mqgrnd6zyO", - "name": "type", - "strings": [ - "advanced" - ] - }, - { - "flags": { - "Array": false, - "Private": true, - "ReadOnly": true - }, - "id": "8wsvZwLdbA", - "ints": [ - 500 - ], - "name": "score" + "name": "Countdown" } ] }, @@ -3568,7 +3297,7 @@ "flags": { "KillAtBoundary": true, "KillAtLifetime": true, - "LimitLifetime": false, + "LimitLifetime": true, "PostUpdate": true, "TickEntity": true, "UpdateEntity": true, @@ -3578,34 +3307,13 @@ "WantsKeyEvents": false, "WantsMouseEvents": false }, - "id": "YklMT5UMdu", - "idle_track": "749rOLUhgb", - "lifetime": 0.0, - "name": "Gain Health", + "id": "IgheUebp5E", + "idle_track": "", + "lifetime": 0.5, + "name": "Rocket Explosion", "nodes": [ { - "class": "Q0wJUtLpqF", - "flags": { - "VisibleInEditor": true - }, - "name": "Body", - "position": { - "x": 0.0, - "y": 0.0 - }, - "rotation": 0.0, - "scale": { - "x": 1.0, - "y": 1.0 - }, - "size": { - "x": 50.0, - "y": 50.0 - }, - "tag": "" - }, - { - "class": "wDmwbPOryS", + "class": "p0MH0dy75P", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, @@ -3623,7 +3331,7 @@ }, "layer": 0, "linewidth": 1.0, - "material": "gnzE0pkeXX", + "material": "HDUIR1Bb7G", "offset": { "x": 0.0, "y": 0.0, @@ -3638,15 +3346,15 @@ "y": -0.0, "z": 0.0 }, - "timescale": 1.0 + "timescale": 2.0 }, "flags": { "VisibleInEditor": true }, - "name": "Skin", + "name": "Node 0", "position": { - "x": -0.0, - "y": -800.0 + "x": 0.0, + "y": 0.0 }, "rotation": 0.0, "scale": { @@ -3654,8 +3362,8 @@ "y": 1.0 }, "size": { - "x": 20.0, - "y": 20.0 + "x": 3600.0, + "y": 2900.0 }, "tag": "" } @@ -3663,69 +3371,24 @@ "render_tree": { "children": [ { - "children": [ - { - "node": { - "id": "wDmwbPOryS" - } - } - ], "node": { - "id": "Q0wJUtLpqF" + "id": "p0MH0dy75P" } } ], "node": null }, - "resource_id": "YklMT5UMdu", - "resource_name": "Gain Health", + "resource_id": "IgheUebp5E", + "resource_name": "Rocket Explosion", "resource_ver": 3, "script_file": "", - "tag": "", - "tracks": [ - { - "animators": [ - { - "animator": { - "duration": 1.0, - "flags": { - "StaticInstance": false - }, - "id": "ApKKLq8e1P", - "method": "EaseOutBounce", - "name": "Actuator_0", - "node": "wDmwbPOryS", - "position": { - "x": 0.0, - "y": 0.0 - }, - "rotation": 0.0, - "scale": { - "x": 1.0, - "y": 1.0 - }, - "size": { - "x": 20.0, - "y": 20.0 - }, - "starttime": 0.0 - }, - "type": "TransformAnimator" - } - ], - "delay": 0.0, - "duration": 1.0, - "id": "749rOLUhgb", - "looping": false, - "name": "Gain" - } - ] + "tag": "" }, { "flags": { "KillAtBoundary": true, "KillAtLifetime": true, - "LimitLifetime": true, + "LimitLifetime": false, "PostUpdate": true, "TickEntity": true, "UpdateEntity": true, @@ -3735,20 +3398,54 @@ "WantsKeyEvents": false, "WantsMouseEvents": false }, - "id": "d92ylbHLPO", - "idle_track": "y8G1oCtFFi", - "lifetime": 1.0, - "name": "Drop Health", + "id": "JC7z1URQ70", + "idle_track": "", + "lifetime": 0.0, + "name": "Menu Background", "nodes": [ { - "class": "8h1HomCDv2", + "class": "4JdUSBRAGP", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "_rect", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": false, + "FlipVertically": false, + "PP_EnableBloom": true, + "RestartDrawable": true, + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true + }, + "layer": -2, + "linewidth": 1.0, + "material": "CopZZzjQd4", + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": -0.0, + "z": 0.0 + }, + "timescale": 1.0 + }, "flags": { "VisibleInEditor": true }, - "name": "Body", + "name": "Background", "position": { "x": 0.0, - "y": 0.0 + "y": 50.0 }, "rotation": 0.0, "scale": { @@ -3756,13 +3453,49 @@ "y": 1.0 }, "size": { - "x": 50.0, - "y": 50.0 + "x": 1200.0, + "y": 900.0 }, "tag": "" - }, + } + ], + "render_tree": { + "children": [ + { + "node": { + "id": "4JdUSBRAGP" + } + } + ], + "node": null + }, + "resource_id": "JC7z1URQ70", + "resource_name": "Menu Background", + "resource_ver": 3, + "script_file": "", + "tag": "" + }, + { + "flags": { + "KillAtBoundary": true, + "KillAtLifetime": true, + "LimitLifetime": true, + "PostUpdate": true, + "TickEntity": true, + "UpdateEntity": true, + "UpdateNodes": false, + "VisibleInEditor": true, + "VisibleInGame": true, + "WantsKeyEvents": false, + "WantsMouseEvents": false + }, + "id": "NAfKT1xUdG", + "idle_track": "PNz6jYkmHg", + "lifetime": 2.0, + "name": "Enemy/Explosion/intermediate", + "nodes": [ { - "class": "kobmYT3r2j", + "class": "ljSKOdYzEC", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, @@ -3780,7 +3513,22 @@ }, "layer": 0, "linewidth": 1.0, - "material": "gnzE0pkeXX", + "material": "JHJOgzrTOZ", + "material_params": [ + { + "name": "active_texture_map", + "value": "Oj8I2KKxyA" + }, + { + "name": "kBaseColor", + "value": { + "a": 1.0, + "b": 1.0, + "g": 1.0, + "r": 1.0 + } + } + ], "offset": { "x": 0.0, "y": 0.0, @@ -3792,7 +3540,7 @@ "renderview": "AxisAligned", "rotator": { "x": 0.0, - "y": -0.0, + "y": 0.0, "z": 0.0 }, "timescale": 1.0 @@ -3800,19 +3548,29 @@ "flags": { "VisibleInEditor": true }, + "mesh_effect": { + "mesh-effect-type": "MeshExplosion", + "mesh-explosion-args": { + "mesh-subdivision-count": 1, + "shard-linear-acceleration": 2.0, + "shard-linear-speed": 10.0, + "shard-rotational-acceleration": 0.0, + "shard-rotational-speed": 0.0 + } + }, "name": "Skin", "position": { "x": 0.0, "y": 0.0 }, - "rotation": 0.0, + "rotation": -3.1415927410125732, "scale": { "x": 1.0, "y": 1.0 }, "size": { - "x": 20.0, - "y": 20.0 + "x": 100.0, + "y": 100.0 }, "tag": "" } @@ -3820,22 +3578,15 @@ "render_tree": { "children": [ { - "children": [ - { - "node": { - "id": "kobmYT3r2j" - } - } - ], "node": { - "id": "8h1HomCDv2" + "id": "ljSKOdYzEC" } } ], "node": null }, - "resource_id": "d92ylbHLPO", - "resource_name": "Drop Health", + "resource_id": "NAfKT1xUdG", + "resource_name": "Enemy/Explosion/intermediate", "resource_ver": 3, "script_file": "", "tag": "", @@ -3844,37 +3595,82 @@ "animators": [ { "animator": { - "duration": 1.0, + "duration": 0.4993605613708496, "flags": { - "StaticInstance": false + "StaticInstance": true }, - "id": "2FyQBKeoXw", - "method": "EaseInElastic", - "name": "Actuator_0", - "node": "kobmYT3r2j", + "id": "YPOKIW33fW", + "method": "Linear", + "name": "Animator_0", + "node": "ljSKOdYzEC", "position": { "x": 0.0, - "y": 250.0 + "y": 0.0 }, - "rotation": 0.0, + "rotation": 8.726646423339844, "scale": { "x": 1.0, "y": 1.0 }, "size": { - "x": 20.0, - "y": 20.0 + "x": 100.0, + "y": 100.0 }, - "starttime": 0.0 + "starttime": 0.034541573375463486, + "timeline": "zoKKdzy1ej", + "transformations": { + "Resize": false, + "Rotate": true, + "Scale": false, + "Translate": false + } }, "type": "TransformAnimator" } ], "delay": 0.0, - "duration": 1.0, - "id": "y8G1oCtFFi", + "duration": 2.0, + "id": "PNz6jYkmHg", "looping": false, - "name": "Drop" + "name": "Explosion", + "triggers": [ + { + "trigger-flags": { + "Enabled": true + }, + "trigger-id": "3zvd2XqJa0", + "trigger-name": "Trigger_0", + "trigger-target-node-id": "ljSKOdYzEC", + "trigger-time": 0.4985077977180481, + "trigger-timeline-id": "zoKKdzy1ej", + "trigger-type": "StartMeshEffect" + }, + { + "trigger-flags": { + "Enabled": true + }, + "trigger-id": "hhWGqClNnu", + "trigger-name": "Trigger_1", + "trigger-parameters": [ + { + "trigger-param-name": "audio-graph-id", + "trigger-param-value": "mQwNIlppiT" + }, + { + "trigger-param-name": "audio-stream", + "trigger-param-value": "Effect" + }, + { + "trigger-param-name": "audio-stream-action", + "trigger-param-value": "Play" + } + ], + "trigger-target-node-id": "ljSKOdYzEC", + "trigger-time": 0.0, + "trigger-timeline-id": "zoKKdzy1ej", + "trigger-type": "PlayAudio" + } + ] } ] }, @@ -3883,57 +3679,84 @@ "KillAtBoundary": true, "KillAtLifetime": true, "LimitLifetime": false, - "PostUpdate": false, - "TickEntity": false, + "PostUpdate": true, + "TickEntity": true, "UpdateEntity": true, "UpdateNodes": false, "VisibleInEditor": true, "VisibleInGame": true, - "WantsKeyEvents": true, + "WantsKeyEvents": false, "WantsMouseEvents": false }, - "id": "diUlEeS5JH", + "id": "NtNnX1kgNp", "idle_track": "", "lifetime": 0.0, - "name": "Player", + "name": "Mine Status", "nodes": [ { - "class": "MThUBoKUmu", + "class": "6FUm4sZ0NR", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "_rect", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": false, + "FlipVertically": false, + "PP_EnableBloom": true, + "RestartDrawable": true, + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true + }, + "layer": 0, + "linewidth": 1.0, + "material": "vg5yQskPIv", + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "timescale": 1.0 + }, "flags": { "VisibleInEditor": true }, - "name": "Body", + "name": "Icon", "position": { - "x": 0.0, + "x": -50.0, "y": 0.0 }, - "rotation": 0.0, + "rotation": 1.5707963705062866, "scale": { "x": 1.0, "y": 1.0 }, "size": { - "x": 93.87498474121094, - "y": 56.08393478393555 - }, - "spatial_node": { - "flags": { - "Enabled": true, - "ReportOverlap": false - }, - "shape": "AABB" + "x": 20.0, + "y": 70.0 }, "tag": "" }, { - "class": "6IMWYKiN1b", + "class": "oroPtAUiYl", "flags": { "VisibleInEditor": true }, - "name": "Skin", + "name": "Text", "position": { - "x": 0.0, - "y": -0.0 + "x": 50.0, + "y": 0.0 }, "rotation": 0.0, "scale": { @@ -3941,105 +3764,8 @@ "y": 1.0 }, "size": { - "x": 100.0, - "y": 100.0 - }, - "tag": "" - }, - { - "class": "37wPuCDipF", - "flags": { - "VisibleInEditor": true - }, - "name": "Gun/Left", - "position": { - "x": -22.300018310546875, - "y": -24.300003051757813 - }, - "rotation": 0.0, - "scale": { - "x": 1.0, - "y": 1.0 - }, - "size": { - "x": 50.0, - "y": 50.0 - }, - "tag": "" - }, - { - "class": "zP7K5Htw9Y", - "drawable_item": { - "coordinate_space": "Scene", - "depth": 1.0, - "drawable": "_circle", - "flags": { - "DepthTest": false, - "DoubleSided": false, - "FlipHorizontally": false, - "FlipVertically": false, - "PP_EnableBloom": true, - "RestartDrawable": true, - "UpdateDrawable": true, - "UpdateMaterial": true, - "VisibleInGame": true - }, - "layer": 1, - "linewidth": 1.0, - "material": "x6FkDk0TOK", - "offset": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "renderpass": "DrawColor", - "renderproj": "Orthographic", - "renderstyle": "Solid", - "renderview": "AxisAligned", - "rotator": { - "x": 0.0, - "y": -0.0, - "z": 0.0 - }, - "timescale": 1.0 - }, - "flags": { - "VisibleInEditor": true - }, - "name": "Sprite/Body", - "position": { - "x": 0.0, - "y": 0.0 - }, - "rotation": 0.0, - "scale": { - "x": 1.0, - "y": 1.0 - }, - "size": { - "x": 100.0, - "y": 100.0 - }, - "tag": "" - }, - { - "class": "y66i7aGIlt", - "flags": { - "VisibleInEditor": true - }, - "name": "Message", - "position": { - "x": 0.0, - "y": -100.0 - }, - "rotation": 0.0, - "scale": { - "x": 1.0, - "y": 1.0 - }, - "size": { - "x": 244.0, - "y": 109.0 + "x": 200.0, + "y": 26.0 }, "tag": "", "text_item": { @@ -4055,25 +3781,66 @@ "font_size": 16, "horizontal_align": "Center", "layer": 0, - "line_height": 1.600000023841858, + "line_height": 1.0, "raster_height": 0, "raster_width": 0, - "text": "Press space to fire", + "text": "Press 1", "text_color": { "a": 1.0, - "b": 0.9532158374786377, - "g": 1.0, - "r": 0.9538567066192627 + "b": 0.8692149519920349, + "g": 0.8692149519920349, + "r": 0.9046769142150879 }, "vertical_align": "Center" } - }, + } + ], + "render_tree": { + "children": [ + { + "node": { + "id": "6FUm4sZ0NR" + } + }, + { + "node": { + "id": "oroPtAUiYl" + } + } + ], + "node": null + }, + "resource_id": "NtNnX1kgNp", + "resource_name": "Mine Status", + "resource_ver": 3, + "script_file": "", + "tag": "" + }, + { + "flags": { + "KillAtBoundary": true, + "KillAtLifetime": true, + "LimitLifetime": true, + "PostUpdate": true, + "TickEntity": true, + "UpdateEntity": true, + "UpdateNodes": false, + "VisibleInEditor": true, + "VisibleInGame": true, + "WantsKeyEvents": false, + "WantsMouseEvents": false + }, + "id": "OelfGJjBAI", + "idle_track": "", + "lifetime": 1.0, + "name": "Enemy/Explosion/advanced", + "nodes": [ { - "class": "8HaTDAeRBy", + "class": "5fYgMZDf5w", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, - "drawable": "7pLg2qp4Pp", + "drawable": "4Ckmwoylp6", "flags": { "DepthTest": false, "DoubleSided": false, @@ -4102,15 +3869,15 @@ "y": -0.0, "z": 0.0 }, - "timescale": 1.0 + "timescale": 3.0 }, "flags": { "VisibleInEditor": true }, - "name": "Exhaust/Left", + "name": "Node 0", "position": { - "x": -21.542848587036133, - "y": 29.800003051757813 + "x": 0.0, + "y": 0.0 }, "rotation": 0.0, "scale": { @@ -4118,31 +3885,73 @@ "y": 1.0 }, "size": { - "x": 42.350006103515625, - "y": 75.45004272460938 + "x": 100.0, + "y": 100.0 }, "tag": "" - }, + } + ], + "render_tree": { + "children": [ + { + "node": { + "id": "5fYgMZDf5w" + } + } + ], + "node": null + }, + "resource_id": "OelfGJjBAI", + "resource_name": "Enemy/Explosion/advanced", + "resource_ver": 3, + "script_file": "", + "tag": "" + }, + { + "flags": { + "KillAtBoundary": true, + "KillAtLifetime": true, + "LimitLifetime": true, + "PostUpdate": true, + "TickEntity": true, + "UpdateEntity": true, + "UpdateNodes": false, + "VisibleInEditor": true, + "VisibleInGame": true, + "WantsKeyEvents": false, + "WantsMouseEvents": false + }, + "id": "OkteghMHhq", + "idle_track": "37qwFR2jx6", + "lifetime": 2.0, + "name": "Player Explosion", + "nodes": [ { - "class": "7BCvPF2tI9", + "class": "NFWxjou9hO", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, - "drawable": "7pLg2qp4Pp", + "drawable": "_rect", "flags": { "DepthTest": false, "DoubleSided": false, "FlipHorizontally": false, "FlipVertically": false, "PP_EnableBloom": true, - "RestartDrawable": true, + "RestartDrawable": false, "UpdateDrawable": true, "UpdateMaterial": true, "VisibleInGame": true }, - "layer": 0, + "layer": 1, "linewidth": 1.0, - "material": "HyJsrevpdz", + "material": "x6FkDk0TOK", + "material_params": [ + { + "name": "active_texture_map", + "value": "76WowKa3mf" + } + ], "offset": { "x": 0.0, "y": 0.0, @@ -4154,7 +3963,7 @@ "renderview": "AxisAligned", "rotator": { "x": 0.0, - "y": -0.0, + "y": 0.0, "z": 0.0 }, "timescale": 1.0 @@ -4162,10 +3971,20 @@ "flags": { "VisibleInEditor": true }, - "name": "Exhaust/Right", + "mesh_effect": { + "mesh-effect-type": "MeshExplosion", + "mesh-explosion-args": { + "mesh-subdivision-count": 1, + "shard-linear-acceleration": 0.0, + "shard-linear-speed": 3.0, + "shard-rotational-acceleration": 2.0, + "shard-rotational-speed": 1.0 + } + }, + "name": "Node 1", "position": { - "x": 21.471446990966797, - "y": 31.11431121826172 + "x": 0.0, + "y": 0.0 }, "rotation": 0.0, "scale": { @@ -4173,13 +3992,13 @@ "y": 1.0 }, "size": { - "x": 36.310943603515625, - "y": 64.10287475585938 + "x": 100.0, + "y": 100.0 }, "tag": "" }, { - "class": "tvh5EFtiKg", + "class": "lHBrbuAqnw", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, @@ -4190,7 +4009,7 @@ "FlipHorizontally": false, "FlipVertically": false, "PP_EnableBloom": true, - "RestartDrawable": true, + "RestartDrawable": false, "UpdateDrawable": true, "UpdateMaterial": true, "VisibleInGame": true @@ -4198,6 +4017,12 @@ "layer": 0, "linewidth": 1.0, "material": "wEBG4Nwt8g", + "material_params": [ + { + "name": "active_texture_map", + "value": "gGIsf4Yh26" + } + ], "offset": { "x": 0.0, "y": 0.0, @@ -4209,7 +4034,7 @@ "renderview": "AxisAligned", "rotator": { "x": 0.0, - "y": -0.0, + "y": 0.0, "z": 0.0 }, "timescale": 1.0 @@ -4217,7 +4042,17 @@ "flags": { "VisibleInEditor": true }, - "name": "Sprite/Guns", + "mesh_effect": { + "mesh-effect-type": "MeshExplosion", + "mesh-explosion-args": { + "mesh-subdivision-count": 2, + "shard-linear-acceleration": 0.0, + "shard-linear-speed": 3.0, + "shard-rotational-acceleration": 2.0, + "shard-rotational-speed": 1.0 + } + }, + "name": "Node 2", "position": { "x": 0.0, "y": 0.0 @@ -4228,71 +4063,103 @@ "y": 1.0 }, "size": { - "x": 95.69999694824219, - "y": 69.11000061035156 + "x": 100.0, + "y": 100.0 }, "tag": "" - }, - { - "class": "2LJhfhUCPC", - "flags": { - "VisibleInEditor": true - }, - "name": "Gun/Right", - "position": { - "x": 21.042724609375, - "y": -23.942825317382813 + } + ], + "render_tree": { + "children": [ + { + "node": { + "id": "NFWxjou9hO" + } }, - "rotation": 0.0, - "scale": { - "x": 1.0, - "y": 1.0 - }, - "size": { - "x": 50.0, - "y": 50.0 - }, - "tag": "" - }, + { + "node": { + "id": "lHBrbuAqnw" + } + } + ], + "node": null + }, + "resource_id": "OkteghMHhq", + "resource_name": "Player Explosion", + "resource_ver": 3, + "script_file": "", + "tag": "", + "tracks": [ { - "class": "u2p17pk9ez", - "flags": { - "VisibleInEditor": true - }, - "name": "Mine", - "position": { - "x": 0.2427215576171875, - "y": 26.257179260253906 - }, - "rotation": 0.0, - "scale": { - "x": 1.0, - "y": 1.0 - }, - "size": { - "x": 50.0, - "y": 50.0 - }, - "tag": "" - }, + "delay": 0.0, + "duration": 2.0, + "id": "37qwFR2jx6", + "looping": false, + "name": "Explode", + "triggers": [ + { + "trigger-flags": { + "Enabled": true + }, + "trigger-id": "l4yR6JzaEl", + "trigger-name": "Trigger_0", + "trigger-target-node-id": "NFWxjou9hO", + "trigger-time": 0.05981419235467911, + "trigger-timeline-id": "eoxGvDQLeM", + "trigger-type": "StartMeshEffect" + }, + { + "trigger-flags": { + "Enabled": true + }, + "trigger-id": "QYBaD62HAd", + "trigger-name": "Trigger_1", + "trigger-target-node-id": "lHBrbuAqnw", + "trigger-time": 0.033501334488391876, + "trigger-timeline-id": "QhzGUBo26I", + "trigger-type": "StartMeshEffect" + } + ] + } + ] + }, + { + "flags": { + "KillAtBoundary": true, + "KillAtLifetime": true, + "LimitLifetime": false, + "PostUpdate": true, + "TickEntity": true, + "UpdateEntity": true, + "UpdateNodes": false, + "VisibleInEditor": true, + "VisibleInGame": true, + "WantsKeyEvents": false, + "WantsMouseEvents": false + }, + "id": "Pj5LWE60r0", + "idle_track": "", + "lifetime": 0.0, + "name": "Player Hit", + "nodes": [ { - "class": "iAuym7oymk", + "class": "Z7SHaUtGfj", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, - "drawable": "FF0aZIpHbj", + "drawable": "Gk8mjavP85", "flags": { "DepthTest": false, "DoubleSided": false, "FlipHorizontally": false, "FlipVertically": false, "PP_EnableBloom": true, - "RestartDrawable": false, + "RestartDrawable": true, "UpdateDrawable": true, "UpdateMaterial": true, "VisibleInGame": true }, - "layer": 2, + "layer": 4, "linewidth": 1.0, "material": "HyJsrevpdz", "offset": { @@ -4309,15 +4176,15 @@ "y": -0.0, "z": 0.0 }, - "timescale": 1.0 + "timescale": 0.5 }, "flags": { "VisibleInEditor": true }, - "name": "Gun/Right/ParticleEmitter", + "name": "Node", "position": { - "x": 0.2599940299987793, - "y": -9.959993362426758 + "x": -0.5, + "y": -0.5 }, "rotation": 0.0, "scale": { @@ -4325,34 +4192,52 @@ "y": 1.0 }, "size": { - "x": 140.52000427246094, - "y": 126.08000183105469 + "x": 119.4800033569336, + "y": 129.52000427246094 }, "tag": "" }, { - "class": "C2J67UABd1", + "class": "j3Wb0lxQBu", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, - "drawable": "FF0aZIpHbj", + "drawable": "Gk8mjavP85", "flags": { "DepthTest": false, "DoubleSided": false, - "FlipHorizontally": true, + "FlipHorizontally": false, "FlipVertically": false, "PP_EnableBloom": true, - "RestartDrawable": false, + "RestartDrawable": true, "UpdateDrawable": true, "UpdateMaterial": true, "VisibleInGame": true }, - "layer": 2, + "layer": 4, "linewidth": 1.0, "material": "HyJsrevpdz", "material_params": [ { "name": "kParticleEndColor", + "value": { + "a": 1.0, + "b": 0.25932708382606506, + "g": 0.25932708382606506, + "r": 0.33904021978378296 + } + }, + { + "name": "kParticleMidColor", + "value": { + "a": 1.0, + "b": 0.12966354191303253, + "g": 0.12966354191303253, + "r": 0.16952010989189148 + } + }, + { + "name": "kParticleStartColor", "value": { "a": 1.0, "b": 0.0, @@ -4375,15 +4260,15 @@ "y": -0.0, "z": 0.0 }, - "timescale": 1.0 + "timescale": 0.5 }, "flags": { "VisibleInEditor": true }, - "name": "Gun/Left/ParticleEmitter", + "name": "Copy of Node", "position": { - "x": -2.2599754333496094, - "y": -11.239996910095215 + "x": 1.0, + "y": 10.999996185302734 }, "rotation": 0.0, "scale": { @@ -4391,17 +4276,60 @@ "y": 1.0 }, "size": { - "x": 140.52000427246094, - "y": 126.08000183105469 + "x": 300.0, + "y": 200.0 }, "tag": "" - }, + } + ], + "render_tree": { + "children": [ + { + "children": [ + { + "node": { + "id": "j3Wb0lxQBu" + } + } + ], + "node": { + "id": "Z7SHaUtGfj" + } + } + ], + "node": null + }, + "resource_id": "Pj5LWE60r0", + "resource_name": "Player Hit", + "resource_ver": 3, + "script_file": "", + "tag": "" + }, + { + "flags": { + "KillAtBoundary": true, + "KillAtLifetime": true, + "LimitLifetime": false, + "PostUpdate": true, + "TickEntity": true, + "UpdateEntity": true, + "UpdateNodes": false, + "VisibleInEditor": true, + "VisibleInGame": true, + "WantsKeyEvents": false, + "WantsMouseEvents": false + }, + "id": "RSOY0WfH2p", + "idle_track": "YyXsLItTXW", + "lifetime": 0.0, + "name": "Title", + "nodes": [ { - "class": "CjTAaMiOQ9", + "class": "diNKRKvSnD", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, - "drawable": "Gk8mjavP85", + "drawable": "_rect", "flags": { "DepthTest": false, "DoubleSided": false, @@ -4413,9 +4341,9 @@ "UpdateMaterial": true, "VisibleInGame": true }, - "layer": 4, + "layer": 0, "linewidth": 1.0, - "material": "HyJsrevpdz", + "material": "CeOxBBO4ib", "offset": { "x": 0.0, "y": 0.0, @@ -4427,36 +4355,36 @@ "renderview": "AxisAligned", "rotator": { "x": 0.0, - "y": -0.0, + "y": 0.0, "z": 0.0 }, - "timescale": 0.5 + "timescale": 1.0 }, "flags": { "VisibleInEditor": true }, - "name": "Hit Flash", + "name": "Text Outline", "position": { - "x": -0.10000000149011612, - "y": -13.300000190734863 + "x": 1.5, + "y": 1.5 }, "rotation": 0.0, "scale": { - "x": 1.0, - "y": 1.0 + "x": 0.5, + "y": 0.5 }, "size": { - "x": 86.80000305175781, - "y": 140.39999389648438 + "x": 810.0, + "y": 308.0 }, "tag": "" }, { - "class": "fAPXzGijvk", + "class": "RfPLX5xUST", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, - "drawable": "Gk8mjavP85", + "drawable": "_rect", "flags": { "DepthTest": false, "DoubleSided": false, @@ -4468,35 +4396,17 @@ "UpdateMaterial": true, "VisibleInGame": true }, - "layer": 4, + "layer": 1, "linewidth": 1.0, - "material": "HyJsrevpdz", + "material": "Kb5sHrP5bL", "material_params": [ { - "name": "kParticleEndColor", - "value": { - "a": 1.0, - "b": 0.42346838116645813, - "g": 0.42346838116645813, - "r": 0.42346838116645813 - } - }, - { - "name": "kParticleMidColor", - "value": { - "a": 1.0, - "b": 0.21173419058322906, - "g": 0.21173419058322906, - "r": 0.2159227877855301 - } - }, - { - "name": "kParticleStartColor", + "name": "kBaseColor", "value": { "a": 1.0, - "b": 0.0, - "g": 0.0, - "r": 0.008377202786505222 + "b": 0.9324635863304138, + "g": 0.6411840915679932, + "r": 0.6212100386619568 } } ], @@ -4511,36 +4421,36 @@ "renderview": "AxisAligned", "rotator": { "x": 0.0, - "y": -0.0, + "y": 0.0, "z": 0.0 }, - "timescale": 0.5 + "timescale": 1.0 }, "flags": { "VisibleInEditor": true }, - "name": "Hit Smoke", + "name": "Text Fill", "position": { - "x": -3.5999999046325684, - "y": 16.399999618530273 + "x": 1.0, + "y": -3.0 }, "rotation": 0.0, "scale": { - "x": 1.0, - "y": 1.0 + "x": 0.5, + "y": 0.5 }, "size": { - "x": 121.44000244140625, - "y": 317.4200134277344 + "x": 803.9454345703125, + "y": 267.9921875 }, "tag": "" }, { - "class": "yGFzBNQfQS", + "class": "0IlSslsFkG", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, - "drawable": "YyvAdpWoTq", + "drawable": "Ls3ehJz9Iy", "flags": { "DepthTest": false, "DoubleSided": false, @@ -4548,13 +4458,13 @@ "FlipVertically": false, "PP_EnableBloom": true, "RestartDrawable": true, - "UpdateDrawable": false, - "UpdateMaterial": false, - "VisibleInGame": false + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true }, - "layer": -1, + "layer": 2, "linewidth": 1.0, - "material": "ztFYdG5FDv", + "material": "FwZHJhGSYv", "offset": { "x": 0.0, "y": 0.0, @@ -4566,7 +4476,7 @@ "renderview": "AxisAligned", "rotator": { "x": 0.0, - "y": -0.0, + "y": 0.0, "z": 0.0 }, "timescale": 1.0 @@ -4574,10 +4484,65 @@ "flags": { "VisibleInEditor": true }, - "name": "Engine Smoke", + "name": "spark_effect", "position": { - "x": -20.5, - "y": 23.0 + "x": -9.289999961853027, + "y": -0.7900000214576721 + }, + "rotation": 1.6489871740341187, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 800.0, + "y": 600.0 + }, + "tag": "" + }, + { + "class": "Ayzo8xI2vJ", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "nTHdhE0fNf", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": false, + "FlipVertically": false, + "PP_EnableBloom": true, + "RestartDrawable": true, + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true + }, + "layer": 0, + "linewidth": 1.0, + "material": "zkE5917lk8", + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "timescale": 1.0 + }, + "flags": { + "VisibleInEditor": true + }, + "name": "smoke_effect", + "position": { + "x": -8.789999961853027, + "y": -0.28999996185302734 }, "rotation": 0.0, "scale": { @@ -4585,8 +4550,8 @@ "y": 1.0 }, "size": { - "x": 96.0, - "y": 96.0 + "x": 123.0, + "y": 115.0 }, "tag": "" } @@ -4596,116 +4561,151 @@ { "children": [ { - "children": [ - { - "children": [ - { - "node": { - "id": "8HaTDAeRBy" - } - }, - { - "node": { - "id": "7BCvPF2tI9" - } - } - ], - "node": { - "id": "zP7K5Htw9Y" - } - }, - { - "node": { - "id": "y66i7aGIlt" - } - }, - { - "children": [ - { - "children": [ - { - "node": { - "id": "C2J67UABd1" - } - } - ], - "node": { - "id": "37wPuCDipF" - } - }, - { - "children": [ - { - "node": { - "id": "iAuym7oymk" - } - } - ], - "node": { - "id": "2LJhfhUCPC" - } - } - ], - "node": { - "id": "tvh5EFtiKg" - } - } - ], - "node": { - "id": "6IMWYKiN1b" - } - }, - { - "node": { - "id": "u2p17pk9ez" - } - }, - { - "children": [ - { - "node": { - "id": "fAPXzGijvk" - } - } - ], "node": { - "id": "CjTAaMiOQ9" + "id": "0IlSslsFkG" } }, { "node": { - "id": "yGFzBNQfQS" + "id": "Ayzo8xI2vJ" } } ], "node": { - "id": "MThUBoKUmu" + "id": "RfPLX5xUST" + } + }, + { + "node": { + "id": "diNKRKvSnD" } } ], "node": null }, - "resource_id": "diUlEeS5JH", - "resource_name": "Player", + "resource_id": "RSOY0WfH2p", + "resource_name": "Title", "resource_ver": 3, - "script_file": "rvZg0UT77h", + "script_file": "", "tag": "", "tracks": [ { "animators": [ { "animator": { - "duration": 1.0, + "duration": 0.30134138464927673, "flags": { "StaticInstance": true }, - "id": "UAGlQqyfHA", - "method": "Cosine", - "name": "", - "node": "MThUBoKUmu", + "id": "yHI6LNa77j", + "method": "Linear", + "name": "Animator_0", + "node": "0IlSslsFkG", "position": { - "x": 0.0, - "y": 313.0 + "x": -50.0, + "y": 0.0 + }, + "rotation": 1.4206980466842651, + "scale": { + "x": 0.5, + "y": 0.5 + }, + "size": { + "x": 800.0, + "y": 600.0 + }, + "starttime": 0.0, + "timeline": "HnRdNukfrC", + "transformations": { + "Resize": true, + "Rotate": true, + "Scale": true, + "Translate": true + } + }, + "type": "TransformAnimator" + }, + { + "animator": { + "duration": 0.2991677224636078, + "flags": { + "StaticInstance": true + }, + "id": "dkLzagLxi2", + "method": "Linear", + "name": "Animator_1", + "node": "0IlSslsFkG", + "position": { + "x": -9.287214279174805, + "y": -0.7938251495361328 + }, + "rotation": 1.6489108800888062, + "scale": { + "x": 0.5, + "y": 0.5 + }, + "size": { + "x": 800.0, + "y": 600.0 + }, + "starttime": 0.30134138464927673, + "timeline": "HnRdNukfrC", + "transformations": { + "Resize": true, + "Rotate": true, + "Scale": true, + "Translate": true + } + }, + "type": "TransformAnimator" + }, + { + "animator": { + "duration": 0.21187716722488403, + "flags": { + "StaticInstance": true + }, + "id": "61olClEORN", + "method": "Linear", + "name": "Animator_2", + "node": "0IlSslsFkG", + "position": { + "x": 102.70999908447266, + "y": 5.210000038146973 + }, + "rotation": 1.6489871740341187, + "scale": { + "x": 0.5, + "y": 0.5 + }, + "size": { + "x": 800.0, + "y": 600.0 + }, + "starttime": 0.6005091071128845, + "timeline": "HnRdNukfrC", + "transformations": { + "Resize": true, + "Rotate": true, + "Scale": true, + "Translate": true + } + }, + "type": "TransformAnimator" + }, + { + "animator": { + "duration": 0.3024267256259918, + "flags": { + "StaticInstance": true + }, + "id": "GfwdEFRn9X", + "method": "Linear", + "name": "Animator_3", + "node": "Ayzo8xI2vJ", + "position": { + "x": -264.7900085449219, + "y": -14.289999961853027 }, "rotation": 0.0, "scale": { @@ -4713,35 +4713,33 @@ "y": 1.0 }, "size": { - "x": 77.8499984741211, - "y": 78.4800033569336 + "x": 123.0, + "y": 115.0 }, - "starttime": 0.0 + "starttime": 0.0, + "timeline": "0mHwf5ICFQ", + "transformations": { + "Resize": true, + "Rotate": true, + "Scale": true, + "Translate": true + } }, "type": "TransformAnimator" - } - ], - "delay": 0.0, - "duration": 2.0, - "id": "W9Z7gxDYEZ", - "looping": false, - "name": "Fly In" - }, - { - "animators": [ + }, { "animator": { - "duration": 0.4969097375869751, + "duration": 0.2977181375026703, "flags": { - "StaticInstance": false + "StaticInstance": true }, - "id": "uhtowwf3t9", - "method": "Cosine", - "name": "Actuator_0", - "node": "tvh5EFtiKg", + "id": "HGvQ2ufWCl", + "method": "Linear", + "name": "Animator_4", + "node": "Ayzo8xI2vJ", "position": { - "x": 0.0, - "y": -10.0 + "x": -8.789999961853027, + "y": -0.28999996185302734 }, "rotation": 0.0, "scale": { @@ -4749,26 +4747,33 @@ "y": 1.0 }, "size": { - "x": 101.43000030517578, - "y": 63.56999969482422 + "x": 123.0, + "y": 115.0 }, - "starttime": 0.0 + "starttime": 0.3024267256259918, + "timeline": "0mHwf5ICFQ", + "transformations": { + "Resize": true, + "Rotate": true, + "Scale": true, + "Translate": true + } }, "type": "TransformAnimator" }, { "animator": { - "duration": 0.5030902624130249, + "duration": 0.21080684661865234, "flags": { - "StaticInstance": false + "StaticInstance": true }, - "id": "bF4HZj2mJ4", - "method": "Cosine", - "name": "Actuator_1", - "node": "tvh5EFtiKg", + "id": "edjQeANvMT", + "method": "Linear", + "name": "Animator_5", + "node": "Ayzo8xI2vJ", "position": { - "x": 0.0, - "y": 0.0 + "x": 239.2100067138672, + "y": 13.710000038146973 }, "rotation": 0.0, "scale": { @@ -4776,111 +4781,106 @@ "y": 1.0 }, "size": { - "x": 101.43000030517578, - "y": 63.56999969482422 + "x": 123.0, + "y": 115.0 }, - "starttime": 0.4969097375869751 + "starttime": 0.6001448631286621, + "timeline": "0mHwf5ICFQ", + "transformations": { + "Resize": true, + "Rotate": true, + "Scale": true, + "Translate": true + } }, "type": "TransformAnimator" } ], "delay": 0.0, - "duration": 0.10000000149011612, - "id": "xvgxAKoF0a", - "looping": false, - "name": "Fire Gun" - } - ] - }, - { - "flags": { - "KillAtBoundary": true, - "KillAtLifetime": true, - "LimitLifetime": false, - "PostUpdate": true, - "TickEntity": true, - "UpdateEntity": true, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "id": "flFywvWC88", - "idle_track": "", - "lifetime": 0.0, - "name": "Info", - "nodes": [ - { - "class": "3WI152B0Yu", - "flags": { - "VisibleInEditor": true - }, - "name": "Text", - "position": { - "x": 0.0, - "y": 0.0 - }, - "rotation": 0.0, - "scale": { - "x": 0.5, - "y": 0.5 - }, - "size": { - "x": 600.0, - "y": 100.0 - }, - "tag": "", - "text_item": { - "coordinate_space": "Scene", - "flags": { - "BlinkText": false, - "PP_EnableBloom": true, - "StaticContent": false, - "UnderlineText": false, - "VisibleInGame": true + "duration": 1.5, + "id": "YyXsLItTXW", + "looping": true, + "name": "Smoke And Flashes", + "triggers": [ + { + "trigger-flags": { + "Enabled": true + }, + "trigger-id": "iOQyw4DyQo", + "trigger-name": "Trigger_0", + "trigger-parameters": [ + { + "trigger-param-name": "particle-emit-count", + "trigger-param-value": 0 + } + ], + "trigger-target-node-id": "0IlSslsFkG", + "trigger-time": 0.2647591233253479, + "trigger-timeline-id": "STJp2qltJ0", + "trigger-type": "EmitParticlesTrigger" }, - "font_name": "app://fonts/ethnocentric rg.otf", - "font_size": 36, - "horizontal_align": "Center", - "layer": 0, - "line_height": 1.0, - "raster_height": 0, - "raster_width": 0, - "text": "Wave 1", - "text_color": { - "a": 1.0, - "b": 1.0, - "g": 1.0, - "r": 1.0 + { + "trigger-flags": { + "Enabled": true + }, + "trigger-id": "B1vMO4belC", + "trigger-name": "Trigger_1", + "trigger-parameters": [ + { + "trigger-param-name": "particle-emit-count", + "trigger-param-value": 0 + } + ], + "trigger-target-node-id": "0IlSslsFkG", + "trigger-time": 0.42629480361938477, + "trigger-timeline-id": "STJp2qltJ0", + "trigger-type": "EmitParticlesTrigger" }, - "vertical_align": "Center" - } - } - ], - "render_tree": { - "children": [ - { - "node": { - "id": "3WI152B0Yu" + { + "trigger-flags": { + "Enabled": true + }, + "trigger-id": "YJ9K0nlH6j", + "trigger-name": "Trigger_2", + "trigger-parameters": [ + { + "trigger-param-name": "particle-emit-count", + "trigger-param-value": 0 + } + ], + "trigger-target-node-id": "0IlSslsFkG", + "trigger-time": 0.6374501585960388, + "trigger-timeline-id": "STJp2qltJ0", + "trigger-type": "EmitParticlesTrigger" + }, + { + "trigger-flags": { + "Enabled": true + }, + "trigger-id": "YBCqIyJjD0", + "trigger-name": "Trigger_3", + "trigger-parameters": [ + { + "trigger-param-name": "particle-emit-count", + "trigger-param-value": 0 + } + ], + "trigger-target-node-id": "0IlSslsFkG", + "trigger-time": 0.28286853432655334, + "trigger-timeline-id": "STJp2qltJ0", + "trigger-type": "EmitParticlesTrigger" } - } - ], - "node": null - }, - "resource_id": "flFywvWC88", - "resource_name": "Info", - "resource_ver": 3, - "script_file": "", - "tag": "" + ] + } + ] }, { "flags": { "KillAtBoundary": true, "KillAtLifetime": true, - "LimitLifetime": true, - "PostUpdate": true, - "TickEntity": true, + "LimitLifetime": false, + "PostUpdate": false, + "TickEntity": false, "UpdateEntity": true, "UpdateNodes": false, "VisibleInEditor": true, @@ -4888,58 +4888,13 @@ "WantsKeyEvents": false, "WantsMouseEvents": false }, - "id": "gMY5RFLgyd", + "id": "RSplpYxIZr", "idle_track": "", - "lifetime": 0.5, - "name": "Enemy/Explosion/basic", + "lifetime": 0.0, + "name": "Enemy/Demo", "nodes": [ { - "class": "J6Iz1GtmLH", - "drawable_item": { - "coordinate_space": "Scene", - "depth": 1.0, - "drawable": "sBjTBK97Mf", - "flags": { - "DepthTest": false, - "DoubleSided": false, - "FlipHorizontally": false, - "FlipVertically": false, - "PP_EnableBloom": true, - "RestartDrawable": false, - "UpdateDrawable": true, - "UpdateMaterial": true, - "VisibleInGame": true - }, - "layer": 0, - "linewidth": 1.0, - "material": "5YQ8ZqObX7", - "material_params": [ - { - "name": "kBaseColor", - "value": { - "a": 1.0, - "b": 0.8730907440185547, - "g": 0.11712825298309326, - "r": 0.9007858633995056 - } - } - ], - "offset": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "renderpass": "DrawColor", - "renderproj": "Orthographic", - "renderstyle": "Solid", - "renderview": "AxisAligned", - "rotator": { - "x": 0.0, - "y": -0.0, - "z": 0.0 - }, - "timescale": 1.0 - }, + "class": "MLb3BAvtKz", "flags": { "VisibleInEditor": true }, @@ -4948,59 +4903,23 @@ "x": 0.0, "y": 0.0 }, - "rotation": 0.0, + "rotation": -1.5707963705062866, "scale": { "x": 1.0, "y": 1.0 }, "size": { - "x": 300.0, - "y": 300.0 + "x": 150.0, + "y": 108.56999969482422 }, "tag": "" - } - ], - "render_tree": { - "children": [ - { - "node": { - "id": "J6Iz1GtmLH" - } - } - ], - "node": null - }, - "resource_id": "gMY5RFLgyd", - "resource_name": "Enemy/Explosion/basic", - "resource_ver": 3, - "script_file": "", - "tag": "" - }, - { - "flags": { - "KillAtBoundary": true, - "KillAtLifetime": true, - "LimitLifetime": false, - "PostUpdate": true, - "TickEntity": false, - "UpdateEntity": false, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "id": "iH79uGdYNY", - "idle_track": "", - "lifetime": 0.0, - "name": "Bullet/Player", - "nodes": [ + }, { - "class": "pfOmm2UnnY", + "class": "HYWdnKUCFx", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, - "drawable": "_circle", + "drawable": "_rect", "flags": { "DepthTest": false, "DoubleSided": false, @@ -5014,7 +4933,7 @@ }, "layer": 0, "linewidth": 1.0, - "material": "XLy89MFMgb", + "material": "Z3Pe1h4eXI", "offset": { "x": 0.0, "y": 0.0, @@ -5034,35 +4953,19 @@ "flags": { "VisibleInEditor": true }, - "linear_mover": { - "angular_acceleration": 0.0, - "angular_velocity": 0.0, - "flags": { - "Enabled": true - }, - "integrator": "Euler", - "linear_acceleration": { - "x": 0.0, - "y": 0.0 - }, - "linear_velocity": { - "x": 0.0, - "y": 0.0 - } - }, - "name": "Bullet", + "name": "Node 0", "position": { - "x": 0.0, - "y": 0.0 + "x": -0.0, + "y": -0.0 }, - "rotation": -1.5707963705062866, + "rotation": 3.1415927410125732, "scale": { "x": 1.0, "y": 1.0 }, "size": { - "x": 95.67528533935547, - "y": 54.342041015625 + "x": 76.47077941894531, + "y": 102.5351333618164 }, "tag": "" } @@ -5070,43 +4973,132 @@ "render_tree": { "children": [ { + "children": [ + { + "node": { + "id": "HYWdnKUCFx" + } + } + ], "node": { - "id": "pfOmm2UnnY" + "id": "MLb3BAvtKz" } } ], "node": null }, - "resource_id": "iH79uGdYNY", - "resource_name": "Bullet/Player", + "resource_id": "RSplpYxIZr", + "resource_name": "Enemy/Demo", "resource_ver": 3, - "script_file": "4KwMiHn2Zz", + "script_file": "IlR7Jl84BY", "tag": "", "vars": [ { "flags": { "Array": false, - "Private": false, - "ReadOnly": true + "Private": true, + "ReadOnly": false }, "floats": [ - -500.0 + 0.0 ], - "id": "hFhxI5uRXf", - "name": "velocity" + "id": "AeOD8Fl6O1", + "name": "circ_angle" }, { - "bools": [ - 1 - ], "flags": { "Array": false, - "Private": false, - "ReadOnly": true + "Private": true, + "ReadOnly": false }, - "id": "Gb9JXeOtbb", - "name": "player" - } + "floats": [ + 1.0 + ], + "id": "uP6ufDqvoK", + "name": "inf_angle_dir" + }, + { + "flags": { + "Array": false, + "Private": true, + "ReadOnly": false + }, + "floats": [ + 0.0 + ], + "id": "s45rKw6s1x", + "name": "inf_angle_accum" + }, + { + "flags": { + "Array": false, + "Private": true, + "ReadOnly": false + }, + "floats": [ + 0.0 + ], + "id": "sBhsESAjIG", + "name": "inf_angle" + }, + { + "flags": { + "Array": false, + "Private": true, + "ReadOnly": false + }, + "id": "WfKT8KrCKR", + "name": "inf_origin", + "vec2s": [ + { + "object": { + "x": 0.0, + "y": 0.0 + } + } + ] + }, + { + "flags": { + "Array": false, + "Private": true, + "ReadOnly": false + }, + "id": "029din9WXP", + "name": "circ_origin", + "vec2s": [ + { + "object": { + "x": 0.0, + "y": 0.0 + } + } + ] + }, + { + "bools": [ + 0 + ], + "flags": { + "Array": false, + "Private": true, + "ReadOnly": false + }, + "id": "aAb40HLl9p", + "name": "is_odd" + }, + { + "flags": { + "Array": false, + "Private": true, + "ReadOnly": false + }, + "floats": [ + 300.0 + ], + "id": "iSTbTf2O3v", + "name": "circ_radius" + } ] }, { @@ -5123,17 +5115,17 @@ "WantsKeyEvents": false, "WantsMouseEvents": false }, - "id": "iydoxbMPEg", + "id": "XExwRNFj8H", "idle_track": "", "lifetime": 0.0, - "name": "Shield", + "name": "Stars", "nodes": [ { - "class": "BH2l7AUDo8", + "class": "QxJjKiAP7G", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, - "drawable": "_circle", + "drawable": "9o7zbhlIlp", "flags": { "DepthTest": false, "DoubleSided": false, @@ -5147,7 +5139,7 @@ }, "layer": 0, "linewidth": 1.0, - "material": "lLinWqCv1M", + "material": "5YQ8ZqObX7", "offset": { "x": 0.0, "y": 0.0, @@ -5169,17 +5161,17 @@ }, "name": "Node 0", "position": { - "x": -0.0, + "x": 0.0, "y": -0.0 }, - "rotation": 0.0, + "rotation": 1.5707963705062866, "scale": { "x": 1.0, "y": 1.0 }, "size": { - "x": 200.0, - "y": 200.0 + "x": 876.949951171875, + "y": 1352.576416015625 }, "tag": "" } @@ -5188,14 +5180,14 @@ "children": [ { "node": { - "id": "BH2l7AUDo8" + "id": "QxJjKiAP7G" } } ], "node": null }, - "resource_id": "iydoxbMPEg", - "resource_name": "Shield", + "resource_id": "XExwRNFj8H", + "resource_name": "Stars", "resource_ver": 3, "script_file": "", "tag": "" @@ -5206,25 +5198,88 @@ "KillAtLifetime": true, "LimitLifetime": false, "PostUpdate": true, - "TickEntity": false, - "UpdateEntity": false, + "TickEntity": true, + "UpdateEntity": true, "UpdateNodes": false, "VisibleInEditor": true, "VisibleInGame": true, "WantsKeyEvents": false, "WantsMouseEvents": false }, - "id": "nIPOk1ImdI", - "idle_track": "", + "id": "XSYiC5gMBy", + "idle_track": "H2yYAsNllZ", "lifetime": 0.0, - "name": "Bullet/Enemy/Advanced", + "name": "Enemy/Advanced", "nodes": [ { - "class": "PBKj4sTrr2", + "class": "z0JEsREDqX", + "flags": { + "VisibleInEditor": true + }, + "name": "Body", + "position": { + "x": 1.0, + "y": 1.0 + }, + "rotation": 0.0, + "scale": { + "x": 0.75, + "y": 0.75 + }, + "size": { + "x": 102.0, + "y": 98.0 + }, + "tag": "" + }, + { + "class": "E2lM8sty72", + "flags": { + "VisibleInEditor": true + }, + "name": "Weapon0", + "position": { + "x": -0.0, + "y": 60.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 50.0, + "y": 60.68000030517578 + }, + "tag": "" + }, + { + "class": "8PzAFGlbeM", + "flags": { + "VisibleInEditor": true + }, + "name": "Weapon1", + "position": { + "x": 0.5, + "y": 60.499969482421875 + }, + "rotation": 3.1415927410125732, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 50.0, + "y": 60.68000030517578 + }, + "tag": "" + }, + { + "class": "pwdBMGRud0", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, - "drawable": "_rect", + "drawable": "YyvAdpWoTq", "flags": { "DepthTest": false, "DoubleSided": false, @@ -5232,13 +5287,13 @@ "FlipVertically": false, "PP_EnableBloom": true, "RestartDrawable": true, - "UpdateDrawable": true, - "UpdateMaterial": true, - "VisibleInGame": true + "UpdateDrawable": false, + "UpdateMaterial": false, + "VisibleInGame": false }, - "layer": 0, + "layer": -1, "linewidth": 1.0, - "material": "EuyGHU1pbR", + "material": "ztFYdG5FDv", "offset": { "x": 0.0, "y": 0.0, @@ -5258,26 +5313,10 @@ "flags": { "VisibleInEditor": true }, - "linear_mover": { - "angular_acceleration": 0.0, - "angular_velocity": 0.0, - "flags": { - "Enabled": true - }, - "integrator": "Euler", - "linear_acceleration": { - "x": 0.0, - "y": 0.0 - }, - "linear_velocity": { - "x": 0.0, - "y": 0.0 - } - }, - "name": "Node 0", + "name": "Engine Smoke", "position": { - "x": 0.0, - "y": 0.0 + "x": -10.100006103515625, + "y": -53.61000061035156 }, "rotation": 3.1415927410125732, "scale": { @@ -5285,124 +5324,54 @@ "y": 1.0 }, "size": { - "x": 33.33318328857422, - "y": 102.18312072753906 + "x": 149.44000244140625, + "y": 135.55999755859375 }, "tag": "" - } - ], - "render_tree": { - "children": [ - { - "node": { - "id": "PBKj4sTrr2" - } - } - ], - "node": null - }, - "resource_id": "nIPOk1ImdI", - "resource_name": "Bullet/Enemy/Advanced", - "resource_ver": 3, - "script_file": "4KwMiHn2Zz", - "tag": "", - "vars": [ - { - "flags": { - "Array": false, - "Private": false, - "ReadOnly": false - }, - "floats": [ - 1000.0 - ], - "id": "eXTyS86PD7", - "name": "velocity" }, { - "bools": [ - 0 - ], - "flags": { - "Array": false, - "Private": false, - "ReadOnly": true - }, - "id": "ZRw4T6vq5b", - "name": "player" - } - ] - }, - { - "flags": { - "KillAtBoundary": true, - "KillAtLifetime": true, - "LimitLifetime": false, - "PostUpdate": true, - "TickEntity": true, - "UpdateEntity": true, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "id": "p5r5vfQHG6", - "idle_track": "", - "lifetime": 0.0, - "name": "Health", - "nodes": [ - { - "class": "lL0kzajQhW", - "flags": { - "VisibleInEditor": true - }, - "name": "health_1", - "position": { - "x": 10.0, - "y": 0.0 - }, - "rotation": 0.0, - "scale": { - "x": 1.0, - "y": 1.0 - }, - "size": { - "x": 20.0, - "y": 20.0 - }, - "tag": "" - }, - { - "class": "sCS8W5FlDG", - "flags": { - "VisibleInEditor": true - }, - "name": "health_2", - "position": { - "x": 30.0, - "y": 0.0 - }, - "rotation": 0.0, - "scale": { - "x": 1.0, - "y": 1.0 - }, - "size": { - "x": 20.0, - "y": 20.0 + "class": "GGIdUwPv7C", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "_rect", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": false, + "FlipVertically": false, + "PP_EnableBloom": true, + "RestartDrawable": true, + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true + }, + "layer": 3, + "linewidth": 1.0, + "material": "_Green", + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": -0.0, + "z": 0.0 + }, + "timescale": 1.0 }, - "tag": "" - }, - { - "class": "unlprExuKx", "flags": { "VisibleInEditor": true }, - "name": "health_3", + "name": "Health", "position": { - "x": 50.0, - "y": 0.0 + "x": 77.72000122070313, + "y": 0.2800000011920929 }, "rotation": 0.0, "scale": { @@ -5410,20 +5379,20 @@ "y": 1.0 }, "size": { - "x": 20.0, - "y": 20.0 + "x": 100.0, + "y": 5.0 }, "tag": "" }, { - "class": "RyFSCUI5d3", + "class": "Ayv1nxMGYq", "flags": { "VisibleInEditor": true }, - "name": "health_4", + "name": "Health Root", "position": { - "x": 70.0, - "y": 0.0 + "x": -80.0, + "y": -80.0 }, "rotation": 0.0, "scale": { @@ -5431,19 +5400,19 @@ "y": 1.0 }, "size": { - "x": 20.0, - "y": 20.0 + "x": 40.0, + "y": 45.0 }, "tag": "" }, { - "class": "0dhxImGdKA", + "class": "2EZBxk2B3Q", "flags": { "VisibleInEditor": true }, - "name": "health_5", + "name": "Hitbox", "position": { - "x": 90.0, + "x": -0.0, "y": -0.0 }, "rotation": 0.0, @@ -5452,17 +5421,24 @@ "y": 1.0 }, "size": { - "x": 20.0, - "y": 20.0 + "x": 175.00001525878906, + "y": 112.0 + }, + "spatial_node": { + "flags": { + "Enabled": true, + "ReportOverlap": false + }, + "shape": "AABB" }, "tag": "" }, { - "class": "txntI159Im", + "class": "unyS0aUhWg", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, - "drawable": "_rect", + "drawable": "Gk8mjavP85", "flags": { "DepthTest": false, "DoubleSided": false, @@ -5474,9 +5450,9 @@ "UpdateMaterial": true, "VisibleInGame": true }, - "layer": 1, + "layer": 4, "linewidth": 1.0, - "material": "x6FkDk0TOK", + "material": "HyJsrevpdz", "offset": { "x": 0.0, "y": 0.0, @@ -5491,33 +5467,33 @@ "y": -0.0, "z": 0.0 }, - "timescale": 1.0 + "timescale": 0.5 }, "flags": { "VisibleInEditor": true }, - "name": "icon", + "name": "Hit Flash", "position": { - "x": -40.0, - "y": 0.0 + "x": 20.5, + "y": 30.5 }, - "rotation": 0.0, + "rotation": 3.1415927410125732, "scale": { "x": 1.0, "y": 1.0 }, "size": { - "x": 64.0, - "y": 64.0 + "x": 86.80000305175781, + "y": 140.39999389648438 }, "tag": "" }, { - "class": "3fAUhBD7NI", + "class": "M75Yphs7Kn", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, - "drawable": "_rect", + "drawable": "Gk8mjavP85", "flags": { "DepthTest": false, "DoubleSided": false, @@ -5529,9 +5505,38 @@ "UpdateMaterial": true, "VisibleInGame": true }, - "layer": 0, + "layer": 4, "linewidth": 1.0, - "material": "wEBG4Nwt8g", + "material": "HyJsrevpdz", + "material_params": [ + { + "name": "kParticleEndColor", + "value": { + "a": 1.0, + "b": 0.42346838116645813, + "g": 0.42346838116645813, + "r": 0.42346838116645813 + } + }, + { + "name": "kParticleMidColor", + "value": { + "a": 1.0, + "b": 0.21173419058322906, + "g": 0.21173419058322906, + "r": 0.2159227877855301 + } + }, + { + "name": "kParticleStartColor", + "value": { + "a": 1.0, + "b": 0.0, + "g": 0.0, + "r": 0.008377202786505222 + } + } + ], "offset": { "x": 0.0, "y": 0.0, @@ -5546,15 +5551,15 @@ "y": -0.0, "z": 0.0 }, - "timescale": 1.0 + "timescale": 0.5 }, "flags": { "VisibleInEditor": true }, - "name": "Node 0", + "name": "Hit Smoke", "position": { - "x": 0.5, - "y": 0.5 + "x": 40.0, + "y": 20.0 }, "rotation": 0.0, "scale": { @@ -5562,17 +5567,38 @@ "y": 1.0 }, "size": { - "x": 69.3383560180664, - "y": 53.34168243408203 + "x": 121.44000244140625, + "y": 317.4200134277344 }, "tag": "" }, { - "class": "AivB35iCGR", + "class": "mjrQLCavTg", + "flags": { + "VisibleInEditor": true + }, + "name": "Gun Rig", + "position": { + "x": -0.0, + "y": 20.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 139.0, + "y": 50.0 + }, + "tag": "" + }, + { + "class": "CTphMwODQY", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, - "drawable": "7pLg2qp4Pp", + "drawable": "_rect", "flags": { "DepthTest": false, "DoubleSided": false, @@ -5586,7 +5612,13 @@ }, "layer": 0, "linewidth": 1.0, - "material": "HyJsrevpdz", + "material": "01D5uIlggD", + "material_params": [ + { + "name": "active_texture_map", + "value": "vUJaLupgQN" + } + ], "offset": { "x": 0.0, "y": 0.0, @@ -5598,7 +5630,7 @@ "renderview": "AxisAligned", "rotator": { "x": 0.0, - "y": -0.0, + "y": 0.0, "z": 0.0 }, "timescale": 1.0 @@ -5606,10 +5638,10 @@ "flags": { "VisibleInEditor": true }, - "name": "Exhaust/Left", + "name": "Left", "position": { - "x": -13.97076416015625, - "y": 17.97274398803711 + "x": -40.0, + "y": -0.0 }, "rotation": 0.0, "scale": { @@ -5617,17 +5649,17 @@ "y": 1.0 }, "size": { - "x": 42.350006103515625, - "y": 75.45004272460938 + "x": 25.0, + "y": 100.0 }, "tag": "" }, { - "class": "8jYxumsn78", + "class": "8IWgs8RFDB", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, - "drawable": "7pLg2qp4Pp", + "drawable": "_rect", "flags": { "DepthTest": false, "DoubleSided": false, @@ -5641,7 +5673,13 @@ }, "layer": 0, "linewidth": 1.0, - "material": "HyJsrevpdz", + "material": "01D5uIlggD", + "material_params": [ + { + "name": "active_texture_map", + "value": "vUJaLupgQN" + } + ], "offset": { "x": 0.0, "y": 0.0, @@ -5653,7 +5691,7 @@ "renderview": "AxisAligned", "rotator": { "x": 0.0, - "y": -0.0, + "y": 0.0, "z": 0.0 }, "timescale": 1.0 @@ -5661,10 +5699,10 @@ "flags": { "VisibleInEditor": true }, - "name": "Exhaust/Right", + "name": "Right", "position": { - "x": 12.567699432373047, - "y": 19.12660026550293 + "x": 40.0, + "y": 0.0 }, "rotation": 0.0, "scale": { @@ -5672,127 +5710,103 @@ "y": 1.0 }, "size": { - "x": 36.310943603515625, - "y": 64.10287475585938 + "x": 25.0, + "y": 100.0 }, "tag": "" - } - ], - "render_tree": { - "children": [ - { - "node": { - "id": "lL0kzajQhW" - } - }, - { - "node": { - "id": "sCS8W5FlDG" - } + }, + { + "class": "4S0fkqGwGv", + "flags": { + "VisibleInEditor": true }, - { - "node": { - "id": "unlprExuKx" - } + "name": "Body Rig", + "position": { + "x": 0.0, + "y": -0.0 }, - { - "node": { - "id": "RyFSCUI5d3" - } + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 }, - { - "node": { - "id": "0dhxImGdKA" - } + "size": { + "x": 80.00003051757813, + "y": 80.0 }, - { - "children": [ - { - "node": { - "id": "3fAUhBD7NI" - } - }, - { - "node": { - "id": "AivB35iCGR" - } - }, + "tag": "" + }, + { + "class": "0FvvESGlGx", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "_rect", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": false, + "FlipVertically": false, + "PP_EnableBloom": true, + "RestartDrawable": true, + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true + }, + "layer": 1, + "linewidth": 1.0, + "material": "01D5uIlggD", + "material_params": [ { - "node": { - "id": "8jYxumsn78" - } + "name": "active_texture_map", + "value": "typghBQEv4" } ], - "node": { - "id": "txntI159Im" - } - } - ], - "node": null - }, - "resource_id": "p5r5vfQHG6", - "resource_name": "Health", - "resource_ver": 3, - "script_file": "WyTgkP5Z7I", - "tag": "" - }, - { - "flags": { - "KillAtBoundary": false, - "KillAtLifetime": true, - "LimitLifetime": false, - "PostUpdate": true, - "TickEntity": true, - "UpdateEntity": true, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "id": "pNT0bA0bpw", - "idle_track": "uwJ2E5nXsL", - "lifetime": 0.0, - "name": "Enemy/Basic", - "nodes": [ - { - "class": "2tozdk6Tzf", + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "timescale": 1.0 + }, "flags": { "VisibleInEditor": true }, - "name": "Body", + "name": "Skirt", "position": { - "x": -0.5000000596046448, - "y": -0.4999999701976776 + "x": -30.0, + "y": 0.0 }, - "rotation": 3.1415927410125732, + "rotation": 0.0, "scale": { "x": 1.0, "y": 1.0 }, "size": { - "x": 100.0, - "y": 100.0 - }, - "spatial_node": { - "flags": { - "Enabled": true, - "ReportOverlap": false - }, - "shape": "AABB" + "x": 40.0, + "y": 80.0 }, "tag": "" }, { - "class": "WOIwH6Bxgh", + "class": "hCbs63BXsX", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, - "drawable": "_circle", + "drawable": "_rect", "flags": { "DepthTest": false, "DoubleSided": false, - "FlipHorizontally": false, + "FlipHorizontally": true, "FlipVertically": false, "PP_EnableBloom": true, "RestartDrawable": true, @@ -5800,9 +5814,15 @@ "UpdateMaterial": true, "VisibleInGame": true }, - "layer": 0, + "layer": 1, "linewidth": 1.0, - "material": "Z3Pe1h4eXI", + "material": "01D5uIlggD", + "material_params": [ + { + "name": "active_texture_map", + "value": "typghBQEv4" + } + ], "offset": { "x": 0.0, "y": 0.0, @@ -5814,7 +5834,7 @@ "renderview": "AxisAligned", "rotator": { "x": 0.0, - "y": -0.0, + "y": 0.0, "z": 0.0 }, "timescale": 1.0 @@ -5822,9 +5842,9 @@ "flags": { "VisibleInEditor": true }, - "name": "Skin", + "name": "Skirt", "position": { - "x": 0.0, + "x": 30.0, "y": 0.0 }, "rotation": 0.0, @@ -5833,370 +5853,157 @@ "y": 1.0 }, "size": { - "x": 100.0, - "y": 100.0 + "x": 40.0, + "y": 80.0 }, "tag": "" }, { - "class": "dUDZP9QwKv", + "class": "q5RPmeNvCN", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "_rect", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": false, + "FlipVertically": false, + "PP_EnableBloom": true, + "RestartDrawable": true, + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true + }, + "layer": 0, + "linewidth": 1.0, + "material": "01D5uIlggD", + "material_params": [ + { + "name": "active_texture_map", + "value": "20pSYwilN6" + } + ], + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "timescale": 1.0 + }, "flags": { "VisibleInEditor": true }, - "name": "Weapon", + "name": "Winglet", "position": { - "x": 1.25, - "y": -31.0 + "x": -70.0, + "y": -30.0 }, - "rotation": -3.1415927410125732, + "rotation": 2.4958207607269287, "scale": { "x": 1.0, "y": 1.0 }, "size": { - "x": 30.0, - "y": 30.0 + "x": 39.290000915527344, + "y": 77.12999725341797 }, "tag": "" - } - ], - "render_tree": { - "children": [ - { - "children": [ + }, + { + "class": "7iQg9nDYYh", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "_rect", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": true, + "FlipVertically": false, + "PP_EnableBloom": true, + "RestartDrawable": true, + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true + }, + "layer": 0, + "linewidth": 1.0, + "material": "01D5uIlggD", + "material_params": [ { - "children": [ - { - "node": { - "id": "dUDZP9QwKv" - } - } - ], - "node": { - "id": "WOIwH6Bxgh" - } + "name": "active_texture_map", + "value": "20pSYwilN6" } ], - "node": { - "id": "2tozdk6Tzf" - } - } - ], - "node": null - }, - "resource_id": "pNT0bA0bpw", - "resource_name": "Enemy/Basic", - "resource_ver": 3, - "script_file": "FXdfIUPul3", - "tag": "#enemy", - "tracks": [ - { - "animators": [ - { - "animator": { - "duration": 0.20245298743247986, - "flags": { - "StaticInstance": false - }, - "id": "2qYnrkgeZS", - "method": "Linear", - "name": "Actuator_0", - "node": "WOIwH6Bxgh", - "position": { - "x": 0.0, - "y": 0.0 - }, - "rotation": -0.13962633907794952, - "scale": { - "x": 1.0, - "y": 1.0 - }, - "size": { - "x": 100.0, - "y": 100.0 - }, - "starttime": 0.00038343557389453053 - }, - "type": "TransformAnimator" - }, - { - "animator": { - "duration": 0.2618864178657532, - "flags": { - "StaticInstance": false - }, - "id": "ZDHWYFTbiw", - "method": "Linear", - "name": "Actuator_1", - "node": "WOIwH6Bxgh", - "position": { - "x": 0.0, - "y": 0.0 - }, - "rotation": 0.13962633907794952, - "scale": { - "x": 1.0, - "y": 1.0 - }, - "size": { - "x": 100.0, - "y": 100.0 - }, - "starttime": 0.5019168853759766 - }, - "type": "TransformAnimator" + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 }, - { - "animator": { - "duration": 0.2990804612636566, - "flags": { - "StaticInstance": false - }, - "id": "pKlECEzzkW", - "method": "Linear", - "name": "Actuator_2", - "node": "WOIwH6Bxgh", - "position": { - "x": 0.0, - "y": 0.0 - }, - "rotation": 0.0, - "scale": { - "x": 1.0, - "y": 1.0 - }, - "size": { - "x": 100.0, - "y": 100.0 - }, - "starttime": 0.20283642411231995 - }, - "type": "TransformAnimator" + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": 0.0, + "z": 0.0 }, - { - "animator": { - "duration": 0.23619669675827026, - "flags": { - "StaticInstance": false - }, - "id": "gETAPghJto", - "method": "Linear", - "name": "Actuator_3", - "node": "WOIwH6Bxgh", - "position": { - "x": 0.0, - "y": 0.0 - }, - "rotation": 0.0, - "scale": { - "x": 1.0, - "y": 1.0 - }, - "size": { - "x": 100.0, - "y": 100.0 - }, - "starttime": 0.7638033032417297 - }, - "type": "TransformAnimator" - } - ], - "delay": 0.0, - "duration": 1.0, - "id": "uwJ2E5nXsL", - "looping": true, - "name": "My Track" - } - ], - "vars": [ - { - "flags": { - "Array": false, - "Private": false, - "ReadOnly": false - }, - "id": "wAKwhKlI98", - "name": "velocity", - "vec2s": [ - { - "object": { - "x": 200.0, - "y": 50.0 - } - } - ] - }, - { - "flags": { - "Array": false, - "Private": false, - "ReadOnly": false - }, - "id": "Xt8WfHILKd", - "ints": [ - 100 - ], - "name": "score" - }, - { - "flags": { - "Array": false, - "Private": true, - "ReadOnly": false - }, - "floats": [ - 0.0 - ], - "id": "BGKwm4wotm", - "name": "rotation" - }, - { - "flags": { - "Array": false, - "Private": true, - "ReadOnly": true - }, - "id": "o8vjk4MIzs", - "name": "type", - "strings": [ - "basic" - ] - } - ] - }, - { - "flags": { - "KillAtBoundary": true, - "KillAtLifetime": true, - "LimitLifetime": true, - "PostUpdate": true, - "TickEntity": true, - "UpdateEntity": true, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "id": "q4pUEDx2rE", - "idle_track": "AnvwndODTH", - "lifetime": 2.0, - "name": "Score", - "nodes": [ - { - "class": "FwndgajgOa", - "flags": { - "VisibleInEditor": true - }, - "name": "text", - "position": { - "x": 0.0, - "y": 0.0 - }, - "rotation": 0.0, - "scale": { - "x": 0.5, - "y": 0.5 - }, - "size": { - "x": 256.0, - "y": 128.0 + "timescale": 1.0 }, - "tag": "", - "text_item": { - "coordinate_space": "Scene", - "flags": { - "BlinkText": false, - "PP_EnableBloom": true, - "StaticContent": true, - "UnderlineText": false, - "VisibleInGame": true - }, - "font_name": "app://fonts/ethnocentric rg.otf", - "font_size": 48, - "horizontal_align": "Center", - "layer": 0, - "line_height": 1.0, - "raster_height": 128, - "raster_width": 256, - "text": "123", - "text_color": { - "a": 1.0, - "b": 1.0, - "g": 1.0, - "r": 1.0 - }, - "vertical_align": "Center" - } - }, - { - "class": "E5w4haXq1s", "flags": { "VisibleInEditor": true }, - "name": "body", + "name": "Winglet", "position": { - "x": 0.0, - "y": 0.0 + "x": 70.0, + "y": -30.0 }, - "rotation": 0.0, + "rotation": -2.4958207607269287, "scale": { "x": 1.0, "y": 1.0 }, "size": { - "x": 100.0, - "y": 50.0 + "x": 39.290000915527344, + "y": 77.12999725341797 }, "tag": "" }, { - "class": "fr2xovk88P", + "class": "dwImtNzeyg", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, - "drawable": "PEj5kFRA5A", + "drawable": "_rect", "flags": { "DepthTest": false, "DoubleSided": false, "FlipHorizontally": false, "FlipVertically": false, "PP_EnableBloom": true, - "RestartDrawable": false, + "RestartDrawable": true, "UpdateDrawable": true, "UpdateMaterial": true, "VisibleInGame": true }, "layer": 0, "linewidth": 1.0, - "material": "YL23jp6zHS", + "material": "01D5uIlggD", "material_params": [ { - "name": "kParticleEndColor", - "value": { - "a": 1.0, - "b": 0.35825130343437195, - "g": 0.35825130343437195, - "r": 0.5539025068283081 - } - }, - { - "name": "kParticleMidColor", - "value": { - "a": 1.0, - "b": 0.6091783046722412, - "g": 0.6091783046722412, - "r": 0.7359883785247803 - } - }, - { - "name": "kParticleStartColor", - "value": { - "a": 1.0, - "b": 0.8601052761077881, - "g": 0.8601052761077881, - "r": 0.9180743098258972 - } + "name": "active_texture_map", + "value": "3NWStRsUNC" } ], "offset": { @@ -6210,7 +6017,7 @@ "renderview": "AxisAligned", "rotator": { "x": 0.0, - "y": -0.0, + "y": 0.0, "z": 0.0 }, "timescale": 1.0 @@ -6218,172 +6025,32 @@ "flags": { "VisibleInEditor": true }, - "name": "Stars", + "name": "Winglet", "position": { - "x": 0.0, - "y": 0.0 + "x": -60.0, + "y": 40.0 }, - "rotation": 0.0, + "rotation": -2.6621744632720947, "scale": { "x": 1.0, "y": 1.0 }, "size": { - "x": 43.099998474121094, - "y": 20.010000228881836 + "x": 34.000030517578125, + "y": 84.0 }, "tag": "" - } - ], - "render_tree": { - "children": [ - { - "children": [ - { - "node": { - "id": "FwndgajgOa" - } - }, - { - "node": { - "id": "fr2xovk88P" - } - } - ], - "node": { - "id": "E5w4haXq1s" - } - } - ], - "node": null - }, - "resource_id": "q4pUEDx2rE", - "resource_name": "Score", - "resource_ver": 3, - "script_file": "", - "tag": "", - "tracks": [ - { - "animators": [ - { - "animator": { - "duration": 0.5013895034790039, - "flags": { - "StaticInstance": true - }, - "id": "sdAGTSoJav", - "method": "Cosine", - "name": "", - "node": "FwndgajgOa", - "position": { - "x": 0.0, - "y": 0.0 - }, - "rotation": 0.5235987901687622, - "scale": { - "x": 0.5, - "y": 0.5 - }, - "size": { - "x": 197.4600067138672, - "y": 101.58999633789063 - }, - "starttime": 0.0 - }, - "type": "TransformAnimator" - }, - { - "animator": { - "duration": 0.4986104965209961, - "flags": { - "StaticInstance": true - }, - "id": "uZqW9kL1Cn", - "method": "Cosine", - "name": "", - "node": "FwndgajgOa", - "position": { - "x": 0.0, - "y": 0.0 - }, - "rotation": 0.0, - "scale": { - "x": 0.0, - "y": 0.0 - }, - "size": { - "x": 0.0, - "y": 0.0 - }, - "starttime": 0.5013895034790039 - }, - "type": "TransformAnimator" - }, - { - "animator": { - "duration": 1.0, - "flags": { - "StaticInstance": true - }, - "id": "8l8mk3xaCl", - "method": "EaseOutBack", - "name": "", - "node": "E5w4haXq1s", - "position": { - "x": -500.0, - "y": -370.0 - }, - "rotation": 0.0, - "scale": { - "x": 1.0, - "y": 1.0 - }, - "size": { - "x": 1.1100000143051147, - "y": 0.0 - }, - "starttime": 0.0 - }, - "type": "TransformAnimator" - } - ], - "delay": 0.0, - "duration": 2.0, - "id": "AnvwndODTH", - "looping": false, - "name": "Fade" - } - ] - }, - { - "flags": { - "KillAtBoundary": true, - "KillAtLifetime": true, - "LimitLifetime": false, - "PostUpdate": true, - "TickEntity": false, - "UpdateEntity": false, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "id": "qOIpuPbyL1", - "idle_track": "", - "lifetime": 0.0, - "name": "Asteroid", - "nodes": [ + }, { - "class": "z5Hf9L3Qvp", + "class": "S5QqslPbvM", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, - "drawable": "_circle", + "drawable": "_rect", "flags": { "DepthTest": false, "DoubleSided": false, - "FlipHorizontally": false, + "FlipHorizontally": true, "FlipVertically": false, "PP_EnableBloom": true, "RestartDrawable": true, @@ -6393,7 +6060,13 @@ }, "layer": 0, "linewidth": 1.0, - "material": "lOfMr3YBtI", + "material": "01D5uIlggD", + "material_params": [ + { + "name": "active_texture_map", + "value": "3NWStRsUNC" + } + ], "offset": { "x": 0.0, "y": 0.0, @@ -6405,7 +6078,7 @@ "renderview": "AxisAligned", "rotator": { "x": 0.0, - "y": -0.0, + "y": 0.0, "z": 0.0 }, "timescale": 1.0 @@ -6413,47 +6086,71 @@ "flags": { "VisibleInEditor": true }, - "linear_mover": { - "angular_acceleration": 0.0, - "angular_velocity": 0.0, - "flags": { - "Enabled": true - }, - "integrator": "Euler", - "linear_acceleration": { - "x": 0.0, - "y": 0.0 - }, - "linear_velocity": { - "x": 0.0, - "y": 0.0 - } - }, - "name": "Body", + "name": "Winglet", "position": { - "x": 0.0, - "y": 0.0 + "x": 60.0, + "y": 40.0 }, - "rotation": 0.0, + "rotation": 2.686495542526245, "scale": { "x": 1.0, "y": 1.0 }, "size": { - "x": 88.0, - "y": 88.0 + "x": 34.0, + "y": 84.0 }, "tag": "" }, { - "class": "kp7A9ShK5w", + "class": "v8kP5MiFGF", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "_rect", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": false, + "FlipVertically": true, + "PP_EnableBloom": true, + "RestartDrawable": true, + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true + }, + "layer": 0, + "linewidth": 1.0, + "material": "01D5uIlggD", + "material_params": [ + { + "name": "active_texture_map", + "value": "MdtIZ4Sgtg" + } + ], + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "timescale": 1.0 + }, "flags": { "VisibleInEditor": true }, - "name": "Hitbox", + "name": "Bridge", "position": { - "x": 0.5, - "y": 0.5 + "x": 0.0, + "y": 10.0 }, "rotation": 0.0, "scale": { @@ -6461,89 +6158,13 @@ "y": 1.0 }, "size": { - "x": 55.0, - "y": 55.0 - }, - "spatial_node": { - "flags": { - "Enabled": true, - "ReportOverlap": false - }, - "shape": "AABB" + "x": 50.0, + "y": 70.0 }, "tag": "" - } - ], - "render_tree": { - "children": [ - { - "children": [ - { - "node": { - "id": "kp7A9ShK5w" - } - } - ], - "node": { - "id": "z5Hf9L3Qvp" - } - } - ], - "node": null - }, - "resource_id": "qOIpuPbyL1", - "resource_name": "Asteroid", - "resource_ver": 3, - "script_file": "bjZ0TrwuxI", - "tag": "", - "vars": [ - { - "flags": { - "Array": false, - "Private": false, - "ReadOnly": false - }, - "floats": [ - 30.0 - ], - "id": "NvQJb17Mlj", - "name": "radius" }, { - "flags": { - "Array": false, - "Private": false, - "ReadOnly": false - }, - "floats": [ - 300.0 - ], - "id": "IsTI39SbHr", - "name": "speed" - } - ] - }, - { - "flags": { - "KillAtBoundary": true, - "KillAtLifetime": true, - "LimitLifetime": false, - "PostUpdate": true, - "TickEntity": true, - "UpdateEntity": true, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "id": "rTHIeIzO8G", - "idle_track": "", - "lifetime": 0.0, - "name": "Stats Bar", - "nodes": [ - { - "class": "GUWXr35OAs", + "class": "YWhEsLKr6n", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, @@ -6552,25 +6173,20 @@ "DepthTest": false, "DoubleSided": false, "FlipHorizontally": false, - "FlipVertically": false, + "FlipVertically": true, "PP_EnableBloom": true, "RestartDrawable": true, "UpdateDrawable": true, "UpdateMaterial": true, "VisibleInGame": true }, - "layer": 1, + "layer": 0, "linewidth": 1.0, - "material": "Kb5sHrP5bL", + "material": "01D5uIlggD", "material_params": [ { - "name": "kBaseColor", - "value": { - "a": 1.0, - "b": 0.7397421002388, - "g": 0.35803768038749695, - "r": 0.18655680119991302 - } + "name": "active_texture_map", + "value": "KTi7yZatyO" } ], "offset": { @@ -6583,110 +6199,19 @@ "renderstyle": "Solid", "renderview": "AxisAligned", "rotator": { - "x": 0.0, - "y": -0.0, - "z": 0.0 - }, - "timescale": 1.0 - }, - "flags": { - "VisibleInEditor": true - }, - "name": "Node 1", - "position": { - "x": 0.0, - "y": 0.0 - }, - "rotation": 0.0, - "scale": { - "x": 1.0, - "y": 1.0 - }, - "size": { - "x": 155.3300018310547, - "y": 71.77999877929688 - }, - "tag": "" - } - ], - "render_tree": { - "children": [ - { - "node": { - "id": "GUWXr35OAs" - } - } - ], - "node": null - }, - "resource_id": "rTHIeIzO8G", - "resource_name": "Stats Bar", - "resource_ver": 3, - "script_file": "", - "tag": "" - }, - { - "flags": { - "KillAtBoundary": true, - "KillAtLifetime": true, - "LimitLifetime": true, - "PostUpdate": true, - "TickEntity": true, - "UpdateEntity": true, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "id": "sLM71HOgD1", - "idle_track": "skTp7rbtU1", - "lifetime": 0.800000011920929, - "name": "Combo", - "nodes": [ - { - "class": "rQ6aesNfz7", - "drawable_item": { - "coordinate_space": "Scene", - "depth": 1.0, - "drawable": "_rect", - "flags": { - "DepthTest": false, - "DoubleSided": false, - "FlipHorizontally": false, - "FlipVertically": false, - "PP_EnableBloom": true, - "RestartDrawable": true, - "UpdateDrawable": true, - "UpdateMaterial": true, - "VisibleInGame": true - }, - "layer": 1, - "linewidth": 1.0, - "material": "wyzMKbLQ8x", - "offset": { "x": 0.0, "y": 0.0, "z": 0.0 }, - "renderpass": "DrawColor", - "renderproj": "Orthographic", - "renderstyle": "Solid", - "renderview": "AxisAligned", - "rotator": { - "x": 0.0, - "y": -0.0, - "z": 0.0 - }, "timescale": 1.0 }, "flags": { "VisibleInEditor": true }, - "name": "Blurred Text", + "name": "Sensors", "position": { "x": 0.0, - "y": 0.0 + "y": -0.0 }, "rotation": 0.0, "scale": { @@ -6694,17 +6219,17 @@ "y": 1.0 }, "size": { - "x": 900.0, - "y": 300.0 + "x": 21.263427734375, + "y": 45.368927001953125 }, "tag": "" }, { - "class": "Sdu5ubuZ9p", + "class": "2ryA5xPsXQ", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, - "drawable": "kvOgLarfY3", + "drawable": "_rect", "flags": { "DepthTest": false, "DoubleSided": false, @@ -6718,7 +6243,13 @@ }, "layer": 0, "linewidth": 1.0, - "material": "YL23jp6zHS", + "material": "01D5uIlggD", + "material_params": [ + { + "name": "active_texture_map", + "value": "4bZtf1iqG4" + } + ], "offset": { "x": 0.0, "y": 0.0, @@ -6730,7 +6261,7 @@ "renderview": "AxisAligned", "rotator": { "x": 0.0, - "y": -0.0, + "y": 0.0, "z": 0.0 }, "timescale": 1.0 @@ -6738,10 +6269,10 @@ "flags": { "VisibleInEditor": true }, - "name": "Particles", + "name": "Exhaust Pipe", "position": { - "x": -0.0, - "y": 0.0 + "x": -20.0, + "y": -20.0 }, "rotation": 0.0, "scale": { @@ -6749,13 +6280,13 @@ "y": 1.0 }, "size": { - "x": 859.0783081054688, - "y": 152.00274658203125 + "x": 20.0, + "y": 67.0 }, "tag": "" }, { - "class": "tdyTsMj7k4", + "class": "dI2WOwQwYP", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, @@ -6771,18 +6302,13 @@ "UpdateMaterial": true, "VisibleInGame": true }, - "layer": 2, + "layer": 0, "linewidth": 1.0, - "material": "pa1NoWe1Op", + "material": "01D5uIlggD", "material_params": [ { - "name": "kBaseColor", - "value": { - "a": 1.0, - "b": 0.0, - "g": 0.0, - "r": 0.0 - } + "name": "active_texture_map", + "value": "4bZtf1iqG4" } ], "offset": { @@ -6796,7 +6322,7 @@ "renderview": "AxisAligned", "rotator": { "x": 0.0, - "y": -0.0, + "y": 0.0, "z": 0.0 }, "timescale": 1.0 @@ -6804,10 +6330,10 @@ "flags": { "VisibleInEditor": true }, - "name": "Sharp Text", + "name": "Exhaust Pipe", "position": { - "x": 0.0, - "y": 0.0 + "x": 20.0, + "y": -20.0 }, "rotation": 0.0, "scale": { @@ -6815,29 +6341,8 @@ "y": 1.0 }, "size": { - "x": 886.0, - "y": 260.6600036621094 - }, - "tag": "" - }, - { - "class": "FGAsWAXE0Q", - "flags": { - "VisibleInEditor": true - }, - "name": "Body", - "position": { - "x": 0.0, - "y": 0.0 - }, - "rotation": 0.0, - "scale": { - "x": 3.0, - "y": 3.0 - }, - "size": { - "x": 76.0, - "y": 54.0 + "x": 20.0, + "y": 67.0 }, "tag": "" } @@ -6848,93 +6353,457 @@ "children": [ { "node": { - "id": "tdyTsMj7k4" + "id": "2EZBxk2B3Q" } }, { + "children": [ + { + "children": [ + { + "node": { + "id": "E2lM8sty72" + } + } + ], + "node": { + "id": "CTphMwODQY" + } + }, + { + "children": [ + { + "node": { + "id": "8PzAFGlbeM" + } + } + ], + "node": { + "id": "8IWgs8RFDB" + } + } + ], "node": { - "id": "rQ6aesNfz7" + "id": "mjrQLCavTg" } }, { - "node": { - "id": "Sdu5ubuZ9p" - } - } - ], - "node": { - "id": "FGAsWAXE0Q" - } - } - ], - "node": null + "children": [ + { + "node": { + "id": "0FvvESGlGx" + } + }, + { + "node": { + "id": "hCbs63BXsX" + } + }, + { + "node": { + "id": "q5RPmeNvCN" + } + }, + { + "node": { + "id": "7iQg9nDYYh" + } + }, + { + "node": { + "id": "dwImtNzeyg" + } + }, + { + "node": { + "id": "S5QqslPbvM" + } + }, + { + "children": [ + { + "node": { + "id": "YWhEsLKr6n" + } + } + ], + "node": { + "id": "v8kP5MiFGF" + } + }, + { + "node": { + "id": "2ryA5xPsXQ" + } + }, + { + "node": { + "id": "dI2WOwQwYP" + } + }, + { + "children": [ + { + "node": { + "id": "M75Yphs7Kn" + } + } + ], + "node": { + "id": "unyS0aUhWg" + } + }, + { + "node": { + "id": "pwdBMGRud0" + } + }, + { + "children": [ + { + "node": { + "id": "GGIdUwPv7C" + } + } + ], + "node": { + "id": "Ayv1nxMGYq" + } + } + ], + "node": { + "id": "4S0fkqGwGv" + } + } + ], + "node": { + "id": "z0JEsREDqX" + } + } + ], + "node": null }, - "resource_id": "sLM71HOgD1", - "resource_name": "Combo", + "resource_id": "XSYiC5gMBy", + "resource_name": "Enemy/Advanced", "resource_ver": 3, - "script_file": "", - "tag": "", + "script_file": "FXdfIUPul3", + "tag": "#enemy", "tracks": [ { "animators": [ { "animator": { - "duration": 1.0, + "duration": 0.40061694383621216, "flags": { "StaticInstance": false }, - "id": "Cib9W3RWCd", - "method": "EaseOutElastic", - "name": "Actuator_0", - "node": "FGAsWAXE0Q", + "id": "STHQ9Dm3pH", + "method": "Cosine", + "name": "Actuator_1", + "node": "z0JEsREDqX", + "position": { + "x": -442.0, + "y": -314.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 102.0, + "y": 98.0 + }, + "starttime": 0.0, + "timeline": "kv4U4GjrhC", + "transformations": { + "Resize": false, + "Rotate": false, + "Scale": false, + "Translate": true + } + }, + "type": "TransformAnimator" + }, + { + "animator": { + "duration": 0.2010781466960907, + "flags": { + "StaticInstance": false + }, + "id": "pSlWG7nbNr", + "method": "Cosine", + "name": "Actuator_2", + "node": "z0JEsREDqX", + "position": { + "x": 506.0, + "y": -303.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 102.0, + "y": 98.0 + }, + "starttime": 0.4010021388530731, + "timeline": "kv4U4GjrhC", + "transformations": { + "Resize": false, + "Rotate": false, + "Scale": false, + "Translate": true + } + }, + "type": "TransformAnimator" + }, + { + "animator": { + "duration": 0.3971492648124695, + "flags": { + "StaticInstance": false + }, + "id": "oG56hjhI13", + "method": "Cosine", + "name": "Actuator_3", + "node": "z0JEsREDqX", + "position": { + "x": 1.0, + "y": 1.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 102.0, + "y": 98.0 + }, + "starttime": 0.6020802855491638, + "timeline": "kv4U4GjrhC", + "transformations": { + "Resize": false, + "Rotate": false, + "Scale": false, + "Translate": true + } + }, + "type": "TransformAnimator" + } + ], + "delay": 0.0, + "duration": 5.0, + "id": "H2yYAsNllZ", + "looping": false, + "name": "Motion" + }, + { + "animators": [ + { + "animator": { + "duration": 0.5006182193756104, + "flags": { + "StaticInstance": true + }, + "id": "RQuoJUIY8z", + "method": "Linear", + "name": "Animator_0", + "node": "mjrQLCavTg", "position": { "x": 0.0, - "y": 5.71999979019165 + "y": 30.0 }, "rotation": 0.0, "scale": { - "x": 0.5, - "y": 0.5 + "x": 1.0, + "y": 1.0 }, "size": { - "x": 76.0, - "y": 54.0 + "x": 139.0, + "y": 50.0 + }, + "starttime": 0.0, + "timeline": "zJqjfhz4ik", + "transformations": { + "Resize": false, + "Rotate": false, + "Scale": false, + "Translate": true + } + }, + "type": "TransformAnimator" + }, + { + "animator": { + "duration": 0.49938178062438965, + "flags": { + "StaticInstance": true + }, + "id": "ybEjEuLDmq", + "method": "Linear", + "name": "Animator_1", + "node": "mjrQLCavTg", + "position": { + "x": -0.0, + "y": 20.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 139.0, + "y": 50.0 }, - "starttime": 0.0 + "starttime": 0.5006182193756104, + "timeline": "zJqjfhz4ik", + "transformations": { + "Resize": false, + "Rotate": false, + "Scale": false, + "Translate": true + } }, "type": "TransformAnimator" } ], "delay": 0.0, - "duration": 1.0, - "id": "skTp7rbtU1", + "duration": 0.10000000149011612, + "id": "9meB2GC9em", "looping": false, - "name": "My Track" + "name": "Fire Weapons", + "triggers": [ + { + "trigger-flags": { + "Enabled": true + }, + "trigger-id": "TQR9Qbkf95", + "trigger-name": "Trigger_0", + "trigger-parameters": [ + { + "trigger-param-name": "audio-graph-id", + "trigger-param-value": "bXC5bg1hPt" + }, + { + "trigger-param-name": "audio-stream", + "trigger-param-value": "Effect" + }, + { + "trigger-param-name": "audio-stream-action", + "trigger-param-value": "Play" + } + ], + "trigger-target-node-id": "mjrQLCavTg", + "trigger-time": 0.06098061800003052, + "trigger-timeline-id": "zJqjfhz4ik", + "trigger-type": "PlayAudio" + } + ] } - ] - }, - { - "flags": { - "KillAtBoundary": true, - "KillAtLifetime": true, - "LimitLifetime": false, - "PostUpdate": true, - "TickEntity": true, - "UpdateEntity": true, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "id": "uEUkHdeqOW", - "idle_track": "", - "lifetime": 0.0, - "name": "HP", - "nodes": [ + ], + "vars": [ { - "class": "k4NoihTPrq", - "drawable_item": { + "flags": { + "Array": false, + "Private": true, + "ReadOnly": false + }, + "floats": [ + 0.0 + ], + "id": "Xm3JR0K8bG", + "name": "rotation" + }, + { + "flags": { + "Array": false, + "Private": true, + "ReadOnly": false + }, + "id": "aBDCmHbb5B", + "name": "velocity", + "vec2s": [ + { + "object": { + "x": 0.0, + "y": 10.0 + } + } + ] + }, + { + "flags": { + "Array": false, + "Private": true, + "ReadOnly": true + }, + "id": "mqgrnd6zyO", + "name": "type", + "strings": [ + "advanced" + ] + }, + { + "flags": { + "Array": false, + "Private": true, + "ReadOnly": true + }, + "id": "8wsvZwLdbA", + "ints": [ + 500 + ], + "name": "score" + } + ] + }, + { + "flags": { + "KillAtBoundary": true, + "KillAtLifetime": true, + "LimitLifetime": false, + "PostUpdate": true, + "TickEntity": true, + "UpdateEntity": true, + "UpdateNodes": false, + "VisibleInEditor": true, + "VisibleInGame": true, + "WantsKeyEvents": false, + "WantsMouseEvents": false + }, + "id": "YklMT5UMdu", + "idle_track": "749rOLUhgb", + "lifetime": 0.0, + "name": "Gain Health", + "nodes": [ + { + "class": "Q0wJUtLpqF", + "flags": { + "VisibleInEditor": true + }, + "name": "Body", + "position": { + "x": 0.0, + "y": 0.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 50.0, + "y": 50.0 + }, + "tag": "" + }, + { + "class": "wDmwbPOryS", + "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, "drawable": "_rect", @@ -6951,7 +6820,7 @@ }, "layer": 0, "linewidth": 1.0, - "material": "hCinu6wgaC", + "material": "gnzE0pkeXX", "offset": { "x": 0.0, "y": 0.0, @@ -6971,10 +6840,10 @@ "flags": { "VisibleInEditor": true }, - "name": "Node 0", + "name": "Skin", "position": { - "x": 0.0, - "y": -0.0 + "x": -0.0, + "y": -800.0 }, "rotation": 0.0, "scale": { @@ -6982,8 +6851,8 @@ "y": 1.0 }, "size": { - "x": 100.0, - "y": 100.0 + "x": 20.0, + "y": 20.0 }, "tag": "" } @@ -6991,24 +6860,76 @@ "render_tree": { "children": [ { + "children": [ + { + "node": { + "id": "wDmwbPOryS" + } + } + ], "node": { - "id": "k4NoihTPrq" + "id": "Q0wJUtLpqF" } } ], "node": null }, - "resource_id": "uEUkHdeqOW", - "resource_name": "HP", + "resource_id": "YklMT5UMdu", + "resource_name": "Gain Health", "resource_ver": 3, "script_file": "", - "tag": "" + "tag": "", + "tracks": [ + { + "animators": [ + { + "animator": { + "duration": 1.0, + "flags": { + "StaticInstance": false + }, + "id": "ApKKLq8e1P", + "method": "EaseOutBounce", + "name": "Actuator_0", + "node": "wDmwbPOryS", + "position": { + "x": 0.0, + "y": 0.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 20.0, + "y": 20.0 + }, + "starttime": 0.0, + "timeline": "", + "transformations": { + "Resize": true, + "Rotate": true, + "Scale": true, + "Translate": true + } + }, + "type": "TransformAnimator" + } + ], + "delay": 0.0, + "duration": 1.0, + "id": "749rOLUhgb", + "looping": false, + "name": "Gain" + } + ] }, { "flags": { "KillAtBoundary": true, "KillAtLifetime": true, - "LimitLifetime": false, + "LimitLifetime": true, "PostUpdate": true, "TickEntity": true, "UpdateEntity": true, @@ -7018,13 +6939,34 @@ "WantsKeyEvents": false, "WantsMouseEvents": false }, - "id": "wXtbrxNRpX", - "idle_track": "", - "lifetime": 0.0, - "name": "GameScore", + "id": "d92ylbHLPO", + "idle_track": "y8G1oCtFFi", + "lifetime": 1.0, + "name": "Drop Health", "nodes": [ { - "class": "TdZawTgkXO", + "class": "8h1HomCDv2", + "flags": { + "VisibleInEditor": true + }, + "name": "Body", + "position": { + "x": 0.0, + "y": 0.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 50.0, + "y": 50.0 + }, + "tag": "" + }, + { + "class": "kobmYT3r2j", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, @@ -7042,18 +6984,7 @@ }, "layer": 0, "linewidth": 1.0, - "material": "_Black", - "material_params": [ - { - "name": "kBaseColor", - "value": { - "a": 0.3960784375667572, - "b": 0.0, - "g": 0.0, - "r": 0.0 - } - } - ], + "material": "gnzE0pkeXX", "offset": { "x": 0.0, "y": 0.0, @@ -7073,99 +7004,19 @@ "flags": { "VisibleInEditor": true }, - "name": "text", + "name": "Skin", "position": { "x": 0.0, "y": 0.0 }, "rotation": 0.0, "scale": { - "x": 0.800000011920929, - "y": 0.800000011920929 + "x": 1.0, + "y": 1.0 }, "size": { - "x": 275.6600036621094, - "y": 47.5 - }, - "tag": "", - "text_item": { - "coordinate_space": "Scene", - "flags": { - "BlinkText": false, - "PP_EnableBloom": true, - "StaticContent": false, - "UnderlineText": false, - "VisibleInGame": true - }, - "font_name": "app://fonts/ethnocentric rg.otf", - "font_size": 26, - "horizontal_align": "Left", - "layer": 1, - "line_height": 1.0, - "raster_height": 0, - "raster_width": 0, - "text": "0", - "text_color": { - "a": 1.0, - "b": 0.9966735243797302, - "g": 0.9966735243797302, - "r": 0.9966735243797302 - }, - "vertical_align": "Center" - } - }, - { - "class": "Y6j7hfxptg", - "drawable_item": { - "coordinate_space": "Scene", - "depth": 1.0, - "drawable": "PPXCoUzFFy", - "flags": { - "DepthTest": false, - "DoubleSided": false, - "FlipHorizontally": false, - "FlipVertically": false, - "PP_EnableBloom": true, - "RestartDrawable": true, - "UpdateDrawable": true, - "UpdateMaterial": true, - "VisibleInGame": true - }, - "layer": -1, - "linewidth": 1.0, - "material": "HyJsrevpdz", - "offset": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "renderpass": "DrawColor", - "renderproj": "Orthographic", - "renderstyle": "Solid", - "renderview": "AxisAligned", - "rotator": { - "x": 0.0, - "y": -0.0, - "z": 0.0 - }, - "timescale": 1.0 - }, - "flags": { - "VisibleInEditor": true - }, - "name": "Node 0", - "position": { - "x": -93.0434799194336, - "y": -0.43480050563812256 - }, - "rotation": -3.1415927410125732, - "scale": { - "x": 1.0, - "y": 1.0 - }, - "size": { - "x": 24.079999923706055, - "y": 10.989999771118164 + "x": 20.0, + "y": 20.0 }, "tag": "" } @@ -7173,51 +7024,98 @@ "render_tree": { "children": [ { + "children": [ + { + "node": { + "id": "kobmYT3r2j" + } + } + ], "node": { - "id": "TdZawTgkXO" - } - }, - { - "node": { - "id": "Y6j7hfxptg" + "id": "8h1HomCDv2" } } ], "node": null }, - "resource_id": "wXtbrxNRpX", - "resource_name": "GameScore", + "resource_id": "d92ylbHLPO", + "resource_name": "Drop Health", "resource_ver": 3, "script_file": "", - "tag": "" + "tag": "", + "tracks": [ + { + "animators": [ + { + "animator": { + "duration": 1.0, + "flags": { + "StaticInstance": false + }, + "id": "2FyQBKeoXw", + "method": "EaseInElastic", + "name": "Actuator_0", + "node": "kobmYT3r2j", + "position": { + "x": 0.0, + "y": 250.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 20.0, + "y": 20.0 + }, + "starttime": 0.0, + "timeline": "", + "transformations": { + "Resize": true, + "Rotate": true, + "Scale": true, + "Translate": true + } + }, + "type": "TransformAnimator" + } + ], + "delay": 0.0, + "duration": 1.0, + "id": "y8G1oCtFFi", + "looping": false, + "name": "Drop" + } + ] }, { "flags": { "KillAtBoundary": true, "KillAtLifetime": true, "LimitLifetime": false, - "PostUpdate": true, - "TickEntity": true, + "PostUpdate": false, + "TickEntity": false, "UpdateEntity": true, "UpdateNodes": false, "VisibleInEditor": true, "VisibleInGame": true, - "WantsKeyEvents": false, + "WantsKeyEvents": true, "WantsMouseEvents": false }, - "id": "zUdWnjvPal", + "id": "diUlEeS5JH", "idle_track": "", "lifetime": 0.0, - "name": "Health Pack", + "name": "Player", "nodes": [ { - "class": "A81vilJl0v", + "class": "MThUBoKUmu", "flags": { "VisibleInEditor": true }, "name": "Body", "position": { - "x": -0.0, + "x": 0.0, "y": 0.0 }, "rotation": 0.0, @@ -7225,6 +7123,55 @@ "x": 1.0, "y": 1.0 }, + "size": { + "x": 93.87498474121094, + "y": 56.08393478393555 + }, + "spatial_node": { + "flags": { + "Enabled": true, + "ReportOverlap": false + }, + "shape": "AABB" + }, + "tag": "" + }, + { + "class": "6IMWYKiN1b", + "flags": { + "VisibleInEditor": true + }, + "name": "Skin", + "position": { + "x": 0.0, + "y": -0.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 100.0, + "y": 100.0 + }, + "tag": "" + }, + { + "class": "37wPuCDipF", + "flags": { + "VisibleInEditor": true + }, + "name": "Gun/Left", + "position": { + "x": 0.0, + "y": -25.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, "size": { "x": 50.0, "y": 50.0 @@ -7232,11 +7179,11 @@ "tag": "" }, { - "class": "3FFDF2AeTx", + "class": "zP7K5Htw9Y", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, - "drawable": "_rect", + "drawable": "_circle", "flags": { "DepthTest": false, "DoubleSided": false, @@ -7250,7 +7197,7 @@ }, "layer": 1, "linewidth": 1.0, - "material": "hCinu6wgaC", + "material": "x6FkDk0TOK", "offset": { "x": 0.0, "y": 0.0, @@ -7262,7 +7209,7 @@ "renderview": "AxisAligned", "rotator": { "x": 0.0, - "y": -0.0, + "y": 0.0, "z": 0.0 }, "timescale": 1.0 @@ -7270,7 +7217,7 @@ "flags": { "VisibleInEditor": true }, - "name": "Skin", + "name": "Sprite/Body", "position": { "x": 0.0, "y": 0.0 @@ -7281,17 +7228,63 @@ "y": 1.0 }, "size": { - "x": 100.0, - "y": 100.0 + "x": 80.0, + "y": 80.0 }, "tag": "" }, { - "class": "HD1PD8eh87", + "class": "y66i7aGIlt", + "flags": { + "VisibleInEditor": false + }, + "name": "Message", + "position": { + "x": 0.0, + "y": -100.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 244.0, + "y": 109.0 + }, + "tag": "", + "text_item": { + "coordinate_space": "Scene", + "flags": { + "BlinkText": true, + "PP_EnableBloom": true, + "StaticContent": false, + "UnderlineText": false, + "VisibleInGame": true + }, + "font_name": "app://fonts/ethnocentric rg.otf", + "font_size": 16, + "horizontal_align": "Center", + "layer": 0, + "line_height": 1.600000023841858, + "raster_height": 0, + "raster_width": 0, + "text": "Press space to fire", + "text_color": { + "a": 1.0, + "b": 0.9532158374786377, + "g": 1.0, + "r": 0.9538567066192627 + }, + "vertical_align": "Center" + } + }, + { + "class": "8HaTDAeRBy", "drawable_item": { "coordinate_space": "Scene", "depth": 1.0, - "drawable": "_circle", + "drawable": "7pLg2qp4Pp", "flags": { "DepthTest": false, "DoubleSided": false, @@ -7305,27 +7298,7 @@ }, "layer": 0, "linewidth": 1.0, - "material": "2a488SIQsU", - "material_params": [ - { - "name": "kBaseColor", - "value": { - "a": 1.0, - "b": 0.8402990698814392, - "g": 0.8402990698814392, - "r": 0.9127641916275024 - } - }, - { - "name": "kColor0", - "value": { - "a": 1.0, - "b": 0.808651864528656, - "g": 0.808651864528656, - "r": 0.9318532347679138 - } - } - ], + "material": "HyJsrevpdz", "offset": { "x": 0.0, "y": 0.0, @@ -7340,15 +7313,15 @@ "y": -0.0, "z": 0.0 }, - "timescale": 0.5 + "timescale": 1.0 }, "flags": { "VisibleInEditor": true }, - "name": "Sonic Pulse Ring", + "name": "Exhaust/Left", "position": { - "x": -0.0, - "y": -0.0 + "x": -30.431732177734375, + "y": 32.855560302734375 }, "rotation": 0.0, "scale": { @@ -7356,3440 +7329,3992 @@ "y": 1.0 }, "size": { - "x": 129.00262451171875, - "y": 119.26033020019531 - }, + "x": 42.350006103515625, + "y": 75.45004272460938 + }, "tag": "" - } - ], - "render_tree": { - "children": [ - { - "children": [ - { - "node": { - "id": "3FFDF2AeTx" - } - }, - { - "node": { - "id": "HD1PD8eh87" - } - } - ], - "node": { - "id": "A81vilJl0v" - } - } - ], - "node": null - }, - "resource_id": "zUdWnjvPal", - "resource_name": "Health Pack", - "resource_ver": 3, - "script_file": "n1HW3heypW", - "tag": "" - } - ], - "materials": [ - { - "active_texture_map": "SwIrDueLiR", - "flags": { - "BlendFrames": true, - "EnableBloom": true, - "PremultipliedAlpha": false, - "Static": false - }, - "id": "2a488SIQsU", - "name": "Shockwave", - "resource_id": "2a488SIQsU", - "resource_name": "Shockwave", - "resource_ver": 6, - "shader_src": "", - "shader_uri": "ws://shaders/es2/disc.glsl", - "surface": "Transparent", - "texture_mag_filter": "Default", - "texture_maps": [ + }, { - "fps": 0.0, - "id": "SwIrDueLiR", - "looping": true, - "name": "kTexture0", - "rect_name0": "kTextureRect", - "rect_name1": "", - "sampler_name0": "kTexture0", - "sampler_name1": "", - "textures": [ - { - "effects": { - "Blur": false, - "Edges": false - }, - "function": "Noise", - "generator": { - "height": 30, - "layers": [ - { - "amplitude": 42.0, - "frequency": 26.0, - "prime0": 2659, - "prime1": 743, - "prime2": 7873 - } - ], - "width": 30 - }, - "id": "LDWnZ2fuen", - "name": "Noise", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "BitmapGenerator" - } - ], - "type": "Texture2D" - } - ], - "texture_min_filter": "Default", - "texture_wrap_x": "Clamp", - "texture_wrap_y": "Clamp", - "type": "Custom", - "uniforms": [ + "class": "7BCvPF2tI9", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "7pLg2qp4Pp", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": false, + "FlipVertically": false, + "PP_EnableBloom": true, + "RestartDrawable": true, + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true + }, + "layer": 0, + "linewidth": 1.0, + "material": "HyJsrevpdz", + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": -0.0, + "z": 0.0 + }, + "timescale": 1.0 + }, + "flags": { + "VisibleInEditor": true + }, + "name": "Exhaust/Right", + "position": { + "x": 29.52700424194336, + "y": 31.114307403564453 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 36.310943603515625, + "y": 64.10287475585938 + }, + "tag": "" + }, { - "name": "kBaseColor", - "value": { - "a": 1.0, - "b": 0.0, - "g": 1.0, - "r": 0.22633707523345947 - } + "class": "tvh5EFtiKg", + "flags": { + "VisibleInEditor": true + }, + "name": "Gun Rack", + "position": { + "x": -0.0, + "y": -0.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 95.69999694824219, + "y": 69.11000061035156 + }, + "tag": "" }, { - "name": "kColor0", - "value": { - "a": 1.0, - "b": 0.0, - "g": 1.0, - "r": 0.01933318004012108 - } + "class": "2LJhfhUCPC", + "flags": { + "VisibleInEditor": true + }, + "name": "Gun/Right", + "position": { + "x": 0.0, + "y": -25.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 50.0, + "y": 50.0 + }, + "tag": "" }, { - "name": "kTextureRotation", - "value": 0.0 - } - ] - }, - { - "active_texture_map": "wAsLzMR2Zx", - "flags": { - "BlendFrames": true, - "EnableBloom": true, - "PremultipliedAlpha": false, - "Static": false - }, - "id": "5YQ8ZqObX7", - "name": "Smooth Round Particle", - "resource_id": "5YQ8ZqObX7", - "resource_name": "Smooth Round Particle", - "resource_ver": 6, - "shader_src": "", - "shader_uri": "", - "surface": "Transparent", - "texture_mag_filter": "Default", - "texture_maps": [ + "class": "u2p17pk9ez", + "flags": { + "VisibleInEditor": true + }, + "name": "Mine", + "position": { + "x": 0.2427215576171875, + "y": 26.257179260253906 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 50.0, + "y": 50.0 + }, + "tag": "" + }, { - "fps": 0.0, - "id": "wAsLzMR2Zx", - "looping": true, - "name": "Default", - "rect_name0": "", - "rect_name1": "", - "sampler_name0": "", - "sampler_name1": "", - "textures": [ - { - "colorspace": "sRGB", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/RoundParticle.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "Y6tN5Yy5IM", - "name": "RoundParticle", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" - } - ], - "type": "Texture2D" - } - ], - "texture_min_filter": "Default", - "texture_wrap_x": "Clamp", - "texture_wrap_y": "Clamp", - "type": "Texture", - "uniforms": [ - { - "name": "kTextureRotation", - "value": 0.0 - } - ] - }, - { - "active_texture_map": "57frP7CeCj", - "flags": { - "BlendFrames": true, - "EnableBloom": true, - "PremultipliedAlpha": false, - "Static": false - }, - "id": "CeOxBBO4ib", - "name": "Blast Title Outline", - "resource_id": "CeOxBBO4ib", - "resource_name": "Blast Title Outline", - "resource_ver": 6, - "shader_src": "", - "shader_uri": "", - "surface": "Transparent", - "texture_mag_filter": "Default", - "texture_maps": [ + "class": "iAuym7oymk", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "FF0aZIpHbj", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": false, + "FlipVertically": false, + "PP_EnableBloom": true, + "RestartDrawable": false, + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true + }, + "layer": 2, + "linewidth": 1.0, + "material": "HyJsrevpdz", + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "timescale": 1.0 + }, + "flags": { + "VisibleInEditor": true + }, + "name": "Gun/Right/ParticleEmitter", + "position": { + "x": 0.0, + "y": -10.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 140.52000427246094, + "y": 126.08000183105469 + }, + "tag": "" + }, { - "fps": 0.0, - "id": "57frP7CeCj", - "looping": true, - "name": "Texture", - "rect_name0": "", - "rect_name1": "", - "sampler_name0": "", - "sampler_name1": "", - "textures": [ - { - "buffer": { - "height": 200, - "horizontal_alignment": "AlignCenter", - "texts": [ - { - "font_file": "app://fonts/ethnocentric rg.otf", - "font_size": 72, - "line_height": 0.800000011920929, - "string": "SPACE\nBLAST", - "underline": false - } - ], - "vertical_alignment": "AlignCenter", - "width": 350 - }, - "effects": { - "Blur": false, - "Edges": false - }, - "id": "G6Te2C5yd6", - "name": "TextBuffer", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "TextBuffer" - } - ], - "type": "Texture2D" - } - ], - "texture_min_filter": "Default", - "texture_wrap_x": "Clamp", - "texture_wrap_y": "Clamp", - "type": "Texture" - }, - { - "active_texture_map": "7v3lwjL0PK", - "flags": { - "BlendFrames": true, - "EnableBloom": true, - "PremultipliedAlpha": false, - "Static": true - }, - "id": "CopZZzjQd4", - "name": "Background", - "resource_id": "CopZZzjQd4", - "resource_name": "Background", - "resource_ver": 6, - "shader_src": "", - "shader_uri": "", - "surface": "Transparent", - "texture_mag_filter": "Default", - "texture_maps": [ + "class": "C2J67UABd1", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "FF0aZIpHbj", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": true, + "FlipVertically": false, + "PP_EnableBloom": true, + "RestartDrawable": false, + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true + }, + "layer": 2, + "linewidth": 1.0, + "material": "HyJsrevpdz", + "material_params": [ + { + "name": "kParticleEndColor", + "value": { + "a": 1.0, + "b": 0.0, + "g": 0.0, + "r": 0.0 + } + } + ], + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "timescale": 1.0 + }, + "flags": { + "VisibleInEditor": true + }, + "name": "Gun/Left/ParticleEmitter", + "position": { + "x": 0.0, + "y": -11.239999771118164 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 140.52000427246094, + "y": 126.08000183105469 + }, + "tag": "" + }, { - "fps": 0.0, - "id": "7v3lwjL0PK", - "looping": true, - "name": "Default", - "rect_name0": "", - "rect_name1": "", - "sampler_name0": "", - "sampler_name1": "", - "textures": [ - { - "colorspace": "sRGB", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/shmup-pack-3/background.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "JgPJpKrv3t", - "name": "background", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" - } - ], - "type": "Texture2D" - } - ], - "texture_min_filter": "Default", - "texture_wrap_x": "Clamp", - "texture_wrap_y": "Clamp", - "type": "Texture", - "uniforms": [ - { - "name": "kTextureRotation", - "value": 0.0 - } - ] - }, - { - "active_texture_map": "Or54nsWZ4C", - "flags": { - "BlendFrames": true, - "EnableBloom": true, - "PremultipliedAlpha": false, - "Static": false - }, - "id": "EuyGHU1pbR", - "name": "Bullet/Pink", - "resource_id": "EuyGHU1pbR", - "resource_name": "Bullet/Pink", - "resource_ver": 6, - "shader_src": "", - "shader_uri": "", - "surface": "Transparent", - "texture_mag_filter": "Default", - "texture_maps": [ - { - "fps": 0.0, - "id": "Or54nsWZ4C", - "looping": true, - "name": "Texture", - "rect_name0": "", - "rect_name1": "", - "sampler_name0": "", - "sampler_name1": "", - "textures": [ - { - "colorspace": "sRGB", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/shmup-pack-3/bullets/12.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "DIdJxReQwA", - "name": "12", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" - } - ], - "type": "Texture2D" - } - ], - "texture_min_filter": "Default", - "texture_wrap_x": "Clamp", - "texture_wrap_y": "Clamp", - "type": "Texture", - "uniforms": [ - { - "name": "kTextureRotation", - "value": 0.0 - } - ] - }, - { - "active_texture_map": "ivMsAaY3zt", - "flags": { - "BlendFrames": true, - "EnableBloom": true, - "PremultipliedAlpha": false, - "Static": false - }, - "id": "HDUIR1Bb7G", - "name": "Explosion", - "resource_id": "HDUIR1Bb7G", - "resource_name": "Explosion", - "resource_ver": 6, - "shader_src": "", - "shader_uri": "", - "surface": "Transparent", - "texture_mag_filter": "Default", - "texture_maps": [ + "class": "CjTAaMiOQ9", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "Gk8mjavP85", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": false, + "FlipVertically": false, + "PP_EnableBloom": true, + "RestartDrawable": true, + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true + }, + "layer": 4, + "linewidth": 1.0, + "material": "HyJsrevpdz", + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": -0.0, + "z": 0.0 + }, + "timescale": 0.5 + }, + "flags": { + "VisibleInEditor": true + }, + "name": "Hit Flash", + "position": { + "x": -0.10000000149011612, + "y": -13.300000190734863 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 86.80000305175781, + "y": 140.39999389648438 + }, + "tag": "" + }, { - "fps": 50.0, - "id": "ivMsAaY3zt", - "looping": true, - "name": "Sprite", - "rect_name0": "", - "rect_name1": "", - "sampler_name0": "", - "sampler_name1": "", - "textures": [ - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_001.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "ZnU3BYNxuR", - "name": "explosion1_001", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "class": "fAPXzGijvk", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "Gk8mjavP85", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": false, + "FlipVertically": false, + "PP_EnableBloom": true, + "RestartDrawable": true, + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_002.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false + "layer": 4, + "linewidth": 1.0, + "material": "HyJsrevpdz", + "material_params": [ + { + "name": "kParticleEndColor", + "value": { + "a": 1.0, + "b": 0.42346838116645813, + "g": 0.42346838116645813, + "r": 0.42346838116645813 + } }, - "id": "LtWJm2W6De", - "name": "explosion1_002", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 + { + "name": "kParticleMidColor", + "value": { + "a": 1.0, + "b": 0.21173419058322906, + "g": 0.21173419058322906, + "r": 0.2159227877855301 + } }, - "type": "Filesystem" + { + "name": "kParticleStartColor", + "value": { + "a": 1.0, + "b": 0.0, + "g": 0.0, + "r": 0.008377202786505222 + } + } + ], + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_003.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "BMNBgpKDC8", - "name": "explosion1_003", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" - }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_004.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "antLkpCGPR", - "name": "explosion1_004", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": -0.0, + "z": 0.0 }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_005.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "WovGlQORq3", - "name": "explosion1_005", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "timescale": 0.5 + }, + "flags": { + "VisibleInEditor": true + }, + "name": "Hit Smoke", + "position": { + "x": -3.5999999046325684, + "y": 16.399999618530273 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 121.44000244140625, + "y": 317.4200134277344 + }, + "tag": "" + }, + { + "class": "yGFzBNQfQS", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "YyvAdpWoTq", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": false, + "FlipVertically": false, + "PP_EnableBloom": true, + "RestartDrawable": true, + "UpdateDrawable": false, + "UpdateMaterial": false, + "VisibleInGame": false }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_006.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "ZCGObTCjXC", - "name": "explosion1_006", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "layer": -1, + "linewidth": 1.0, + "material": "ztFYdG5FDv", + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_007.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "s4f0GvytvQ", - "name": "explosion1_007", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": -0.0, + "z": 0.0 }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_008.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "5hsnwDojdb", - "name": "explosion1_008", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "timescale": 1.0 + }, + "flags": { + "VisibleInEditor": true + }, + "name": "Engine Smoke", + "position": { + "x": -20.5, + "y": 23.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 96.0, + "y": 96.0 + }, + "tag": "" + }, + { + "class": "MhAEpRwQxw", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "_rect", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": false, + "FlipVertically": false, + "PP_EnableBloom": true, + "RestartDrawable": true, + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_009.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "rbN1a0f2FQ", - "name": "explosion1_009", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "layer": 0, + "linewidth": 1.0, + "material": "01D5uIlggD", + "material_params": [ + { + "name": "active_texture_map", + "value": "vUJaLupgQN" + } + ], + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0010.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "WCg9isZC2n", - "name": "explosion1_0010", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": 0.0, + "z": 0.0 }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0011.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "pZ1FdiaM0u", - "name": "explosion1_0011", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "timescale": 1.0 + }, + "flags": { + "VisibleInEditor": true + }, + "name": "Skin/Left", + "position": { + "x": -20.0, + "y": 0.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 15.0, + "y": 40.0 + }, + "tag": "" + }, + { + "class": "1FdrWNoWYW", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "_rect", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": false, + "FlipVertically": false, + "PP_EnableBloom": true, + "RestartDrawable": true, + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0012.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "WAk1tjx3AJ", - "name": "explosion1_0012", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "layer": 0, + "linewidth": 1.0, + "material": "01D5uIlggD", + "material_params": [ + { + "name": "active_texture_map", + "value": "vUJaLupgQN" + } + ], + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0013.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "t0Oy3TDEHE", - "name": "explosion1_0013", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": 0.0, + "z": 0.0 }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0014.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "fI2Q2khSI6", - "name": "explosion1_0014", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "timescale": 1.0 + }, + "flags": { + "VisibleInEditor": true + }, + "name": "Skin/Right", + "position": { + "x": 20.0, + "y": 0.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 15.0, + "y": 40.0 + }, + "tag": "" + }, + { + "class": "a5CFZu9GT1", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "_rect", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": false, + "FlipVertically": false, + "PP_EnableBloom": true, + "RestartDrawable": true, + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0015.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "vL886sWfl7", - "name": "explosion1_0015", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "layer": 0, + "linewidth": 1.0, + "material": "wEBG4Nwt8g", + "material_params": [ + { + "name": "active_texture_map", + "value": "gGIsf4Yh26" + } + ], + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0016.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "hBKH4ZEvqH", - "name": "explosion1_0016", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": 0.0, + "z": 0.0 }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0017.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "6Bk8n8PF4g", - "name": "explosion1_0017", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" - }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false + "timescale": 1.0 + }, + "flags": { + "VisibleInEditor": true + }, + "name": "Engines", + "position": { + "x": 0.0, + "y": 10.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 120.0, + "y": 80.0 + }, + "tag": "" + } + ], + "render_tree": { + "children": [ + { + "children": [ + { + "children": [ + { + "children": [ + { + "children": [ + { + "node": { + "id": "8HaTDAeRBy" + } + }, + { + "node": { + "id": "7BCvPF2tI9" + } + } + ], + "node": { + "id": "a5CFZu9GT1" + } + } + ], + "node": { + "id": "zP7K5Htw9Y" + } + }, + { + "node": { + "id": "y66i7aGIlt" + } + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "node": { + "id": "C2J67UABd1" + } + } + ], + "node": { + "id": "37wPuCDipF" + } + } + ], + "node": { + "id": "MhAEpRwQxw" + } + }, + { + "children": [ + { + "children": [ + { + "node": { + "id": "iAuym7oymk" + } + } + ], + "node": { + "id": "2LJhfhUCPC" + } + } + ], + "node": { + "id": "1FdrWNoWYW" + } + } + ], + "node": { + "id": "tvh5EFtiKg" + } + } + ], + "node": { + "id": "6IMWYKiN1b" + } }, - "file": "ws://textures/Explosion/explosion1_0018.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false + { + "node": { + "id": "u2p17pk9ez" + } }, - "id": "MBxt9kMZDu", - "name": "explosion1_0018", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 + { + "children": [ + { + "node": { + "id": "fAPXzGijvk" + } + } + ], + "node": { + "id": "CjTAaMiOQ9" + } }, - "type": "Filesystem" - }, + { + "node": { + "id": "yGFzBNQfQS" + } + } + ], + "node": { + "id": "MThUBoKUmu" + } + } + ], + "node": null + }, + "resource_id": "diUlEeS5JH", + "resource_name": "Player", + "resource_ver": 3, + "script_file": "rvZg0UT77h", + "tag": "", + "tracks": [ + { + "animators": [ { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0019.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "1Ul6Er0vsR", - "name": "explosion1_0019", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 + "animator": { + "duration": 1.0, + "flags": { + "StaticInstance": true + }, + "id": "UAGlQqyfHA", + "method": "Cosine", + "name": "", + "node": "MThUBoKUmu", + "position": { + "x": 0.0, + "y": 313.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 77.8499984741211, + "y": 78.4800033569336 + }, + "starttime": 0.0, + "timeline": "", + "transformations": { + "Resize": true, + "Rotate": true, + "Scale": true, + "Translate": true + } }, - "type": "Filesystem" - }, + "type": "TransformAnimator" + } + ], + "delay": 0.0, + "duration": 2.0, + "id": "W9Z7gxDYEZ", + "looping": false, + "name": "Fly In" + }, + { + "animators": [ { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0020.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "flxzDv8GGR", - "name": "explosion1_0020", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 + "animator": { + "duration": 0.4969097375869751, + "flags": { + "StaticInstance": false + }, + "id": "uhtowwf3t9", + "method": "Cosine", + "name": "Actuator_0", + "node": "tvh5EFtiKg", + "position": { + "x": 0.0, + "y": -10.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 101.43000030517578, + "y": 63.56999969482422 + }, + "starttime": 0.0, + "timeline": "", + "transformations": { + "Resize": true, + "Rotate": true, + "Scale": true, + "Translate": true + } }, - "type": "Filesystem" + "type": "TransformAnimator" }, { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0021.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "dlsRHHXBWI", - "name": "explosion1_0021", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 + "animator": { + "duration": 0.5030902624130249, + "flags": { + "StaticInstance": false + }, + "id": "bF4HZj2mJ4", + "method": "Cosine", + "name": "Actuator_1", + "node": "tvh5EFtiKg", + "position": { + "x": 0.0, + "y": 0.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 101.43000030517578, + "y": 63.56999969482422 + }, + "starttime": 0.4969097375869751, + "timeline": "", + "transformations": { + "Resize": true, + "Rotate": true, + "Scale": true, + "Translate": true + } }, - "type": "Filesystem" + "type": "TransformAnimator" + } + ], + "delay": 0.0, + "duration": 0.10000000149011612, + "id": "xvgxAKoF0a", + "looping": false, + "name": "Fire Gun" + } + ] + }, + { + "flags": { + "KillAtBoundary": true, + "KillAtLifetime": true, + "LimitLifetime": false, + "PostUpdate": true, + "TickEntity": true, + "UpdateEntity": true, + "UpdateNodes": false, + "VisibleInEditor": true, + "VisibleInGame": true, + "WantsKeyEvents": false, + "WantsMouseEvents": false + }, + "id": "flFywvWC88", + "idle_track": "", + "lifetime": 0.0, + "name": "Info", + "nodes": [ + { + "class": "3WI152B0Yu", + "flags": { + "VisibleInEditor": true + }, + "name": "Text", + "position": { + "x": 0.0, + "y": 0.0 + }, + "rotation": 0.0, + "scale": { + "x": 0.5, + "y": 0.5 + }, + "size": { + "x": 600.0, + "y": 100.0 + }, + "tag": "", + "text_item": { + "coordinate_space": "Scene", + "flags": { + "BlinkText": false, + "PP_EnableBloom": true, + "StaticContent": false, + "UnderlineText": false, + "VisibleInGame": true }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0022.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "rhFDQZdUMP", - "name": "explosion1_0022", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "font_name": "app://fonts/ethnocentric rg.otf", + "font_size": 36, + "horizontal_align": "Center", + "layer": 0, + "line_height": 1.0, + "raster_height": 0, + "raster_width": 0, + "text": "Wave 1", + "text_color": { + "a": 1.0, + "b": 1.0, + "g": 1.0, + "r": 1.0 }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0023.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "Ze1oqbB09T", - "name": "explosion1_0023", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "vertical_align": "Center" + } + } + ], + "render_tree": { + "children": [ + { + "node": { + "id": "3WI152B0Yu" + } + } + ], + "node": null + }, + "resource_id": "flFywvWC88", + "resource_name": "Info", + "resource_ver": 3, + "script_file": "", + "tag": "" + }, + { + "flags": { + "KillAtBoundary": true, + "KillAtLifetime": true, + "LimitLifetime": true, + "PostUpdate": true, + "TickEntity": true, + "UpdateEntity": true, + "UpdateNodes": false, + "VisibleInEditor": true, + "VisibleInGame": true, + "WantsKeyEvents": false, + "WantsMouseEvents": false + }, + "id": "gMY5RFLgyd", + "idle_track": "8s72RPYMZI", + "lifetime": 0.5, + "name": "Enemy/Explosion/basic", + "nodes": [ + { + "class": "efpmnC1ICZ", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "_rect", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": false, + "FlipVertically": false, + "PP_EnableBloom": true, + "RestartDrawable": true, + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0024.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "yCtQ14F92Z", - "name": "explosion1_0024", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "layer": 0, + "linewidth": 1.0, + "material": "Z3Pe1h4eXI", + "material_params": [ + { + "name": "kBaseColor", + "value": { + "a": 1.0, + "b": 1.0, + "g": 1.0, + "r": 1.0 + } + } + ], + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0025.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "Y2P33iUWMf", - "name": "explosion1_0025", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": 0.0, + "z": 0.0 }, + "timescale": 1.0 + }, + "flags": { + "VisibleInEditor": true + }, + "mesh_effect": { + "mesh-effect-type": "MeshExplosion", + "mesh-explosion-args": { + "mesh-subdivision-count": 1, + "shard-linear-acceleration": 2.0, + "shard-linear-speed": 5.0, + "shard-rotational-acceleration": 2.0, + "shard-rotational-speed": 1.0 + } + }, + "name": "Skin", + "position": { + "x": 0.0, + "y": 0.0 + }, + "rotation": -3.1415927410125732, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 75.61000061035156, + "y": 69.36000061035156 + }, + "tag": "" + } + ], + "render_tree": { + "children": [ + { + "node": { + "id": "efpmnC1ICZ" + } + } + ], + "node": null + }, + "resource_id": "gMY5RFLgyd", + "resource_name": "Enemy/Explosion/basic", + "resource_ver": 3, + "script_file": "", + "tag": "", + "tracks": [ + { + "animators": [ { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0026.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "BxkLXE1pCh", - "name": "explosion1_0026", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 + "animator": { + "cname": "Animator_0", + "duration": 0.37788015604019165, + "flags": { + "StaticInstance": true + }, + "id": "xUHgdbuODZ", + "method": "Linear", + "node": "efpmnC1ICZ", + "params": [ + { + "name": "kBaseColor", + "value": { + "a": 0.0, + "b": 1.0, + "g": 1.0, + "r": 1.0 + } + } + ], + "start": 0.015668202191591263, + "timeline": "tMD2FN6pyz" }, - "type": "Filesystem" - }, + "type": "MaterialAnimator" + } + ], + "delay": 0.0, + "duration": 1.0, + "id": "8s72RPYMZI", + "looping": false, + "name": "Explosion", + "triggers": [ { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0027.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "qwumKYxu4H", - "name": "explosion1_0027", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "trigger-flags": { + "Enabled": true + }, + "trigger-id": "L4tELW82ab", + "trigger-name": "Trigger_0", + "trigger-target-node-id": "efpmnC1ICZ", + "trigger-time": 0.0, + "trigger-timeline-id": "tMD2FN6pyz", + "trigger-type": "StartMeshEffect" + } + ] + } + ] + }, + { + "flags": { + "KillAtBoundary": true, + "KillAtLifetime": true, + "LimitLifetime": false, + "PostUpdate": true, + "TickEntity": false, + "UpdateEntity": false, + "UpdateNodes": false, + "VisibleInEditor": true, + "VisibleInGame": true, + "WantsKeyEvents": false, + "WantsMouseEvents": false + }, + "id": "iH79uGdYNY", + "idle_track": "", + "lifetime": 0.0, + "name": "Bullet/Player", + "nodes": [ + { + "class": "pfOmm2UnnY", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "_circle", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": false, + "FlipVertically": false, + "PP_EnableBloom": true, + "RestartDrawable": true, + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0028.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "UOudQ2zTQT", - "name": "explosion1_0028", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "layer": 0, + "linewidth": 1.0, + "material": "XLy89MFMgb", + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0029.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "L2hi7JIrC7", - "name": "explosion1_0029", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": -0.0, + "z": 0.0 }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0030.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "KknCwxUEyK", - "name": "explosion1_0030", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "timescale": 1.0 + }, + "flags": { + "VisibleInEditor": true + }, + "linear_mover": { + "angular_acceleration": 0.0, + "angular_velocity": 0.0, + "flags": { + "Enabled": true, + "RotateToDirection": false }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0031.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "vmUQfDv9GK", - "name": "explosion1_0031", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" - }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0032.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "Lp03CHd1gP", - "name": "explosion1_0032", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" - }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0033.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "fDw6PnWDnE", - "name": "explosion1_0033", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" - }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0034.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "UBWFntPq4a", - "name": "explosion1_0034", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "integrator": "Euler", + "linear_acceleration": { + "x": 0.0, + "y": 0.0 }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0035.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "FTKgxb9qH8", - "name": "explosion1_0035", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "linear_velocity": { + "x": 0.0, + "y": 0.0 + } + }, + "name": "Bullet", + "position": { + "x": 0.0, + "y": 0.0 + }, + "rotation": -1.5707963705062866, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 95.67528533935547, + "y": 54.342041015625 + }, + "tag": "" + } + ], + "render_tree": { + "children": [ + { + "node": { + "id": "pfOmm2UnnY" + } + } + ], + "node": null + }, + "resource_id": "iH79uGdYNY", + "resource_name": "Bullet/Player", + "resource_ver": 3, + "script_file": "4KwMiHn2Zz", + "tag": "", + "vars": [ + { + "flags": { + "Array": false, + "Private": false, + "ReadOnly": true + }, + "floats": [ + -500.0 + ], + "id": "hFhxI5uRXf", + "name": "velocity" + }, + { + "bools": [ + 1 + ], + "flags": { + "Array": false, + "Private": false, + "ReadOnly": true + }, + "id": "Gb9JXeOtbb", + "name": "player" + } + ] + }, + { + "flags": { + "KillAtBoundary": true, + "KillAtLifetime": true, + "LimitLifetime": false, + "PostUpdate": true, + "TickEntity": true, + "UpdateEntity": true, + "UpdateNodes": false, + "VisibleInEditor": true, + "VisibleInGame": true, + "WantsKeyEvents": false, + "WantsMouseEvents": false + }, + "id": "iydoxbMPEg", + "idle_track": "", + "lifetime": 0.0, + "name": "Shield", + "nodes": [ + { + "class": "BH2l7AUDo8", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "_circle", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": false, + "FlipVertically": false, + "PP_EnableBloom": true, + "RestartDrawable": true, + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0036.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "tkdglyXgNT", - "name": "explosion1_0036", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "layer": 0, + "linewidth": 1.0, + "material": "lLinWqCv1M", + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0037.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "um7FGN5Wav", - "name": "explosion1_0037", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": -0.0, + "z": 0.0 }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0038.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "DgTTuvOZXU", - "name": "explosion1_0038", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" - }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0039.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "9KyxOWGILY", - "name": "explosion1_0039", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" - }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0040.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "QTowABRxSp", - "name": "explosion1_0040", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "timescale": 1.0 + }, + "flags": { + "VisibleInEditor": true + }, + "name": "Node 0", + "position": { + "x": -0.0, + "y": -0.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 200.0, + "y": 200.0 + }, + "tag": "" + } + ], + "render_tree": { + "children": [ + { + "node": { + "id": "BH2l7AUDo8" + } + } + ], + "node": null + }, + "resource_id": "iydoxbMPEg", + "resource_name": "Shield", + "resource_ver": 3, + "script_file": "", + "tag": "" + }, + { + "flags": { + "KillAtBoundary": true, + "KillAtLifetime": true, + "LimitLifetime": false, + "PostUpdate": true, + "TickEntity": false, + "UpdateEntity": false, + "UpdateNodes": false, + "VisibleInEditor": true, + "VisibleInGame": true, + "WantsKeyEvents": false, + "WantsMouseEvents": false + }, + "id": "nIPOk1ImdI", + "idle_track": "", + "lifetime": 0.0, + "name": "Bullet/Enemy/Advanced", + "nodes": [ + { + "class": "PBKj4sTrr2", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "_rect", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": false, + "FlipVertically": false, + "PP_EnableBloom": true, + "RestartDrawable": true, + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0041.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "3u5yRF7xKo", - "name": "explosion1_0041", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "layer": 0, + "linewidth": 1.0, + "material": "EuyGHU1pbR", + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0042.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "H9YGsG97pY", - "name": "explosion1_0042", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": 0.0, + "z": 0.0 }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0043.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "SWqNvMJJB4", - "name": "explosion1_0043", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "timescale": 1.0 + }, + "flags": { + "VisibleInEditor": true + }, + "linear_mover": { + "angular_acceleration": 0.0, + "angular_velocity": 0.0, + "flags": { + "Enabled": true, + "RotateToDirection": false }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0044.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "sBCmlPBhUY", - "name": "explosion1_0044", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "integrator": "Euler", + "linear_acceleration": { + "x": 0.0, + "y": 0.0 }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0045.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "vNWEOEGXU1", - "name": "explosion1_0045", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "linear_velocity": { + "x": 0.0, + "y": 0.0 + } + }, + "name": "Node 0", + "position": { + "x": 0.0, + "y": 0.0 + }, + "rotation": 3.1415927410125732, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 15.0, + "y": 20.0 + }, + "tag": "" + } + ], + "render_tree": { + "children": [ + { + "node": { + "id": "PBKj4sTrr2" + } + } + ], + "node": null + }, + "resource_id": "nIPOk1ImdI", + "resource_name": "Bullet/Enemy/Advanced", + "resource_ver": 3, + "script_file": "4KwMiHn2Zz", + "tag": "", + "vars": [ + { + "flags": { + "Array": false, + "Private": false, + "ReadOnly": false + }, + "floats": [ + 1000.0 + ], + "id": "eXTyS86PD7", + "name": "velocity" + }, + { + "bools": [ + 0 + ], + "flags": { + "Array": false, + "Private": false, + "ReadOnly": true + }, + "id": "ZRw4T6vq5b", + "name": "player" + } + ] + }, + { + "flags": { + "KillAtBoundary": true, + "KillAtLifetime": true, + "LimitLifetime": false, + "PostUpdate": true, + "TickEntity": true, + "UpdateEntity": true, + "UpdateNodes": false, + "VisibleInEditor": true, + "VisibleInGame": true, + "WantsKeyEvents": false, + "WantsMouseEvents": false + }, + "id": "p5r5vfQHG6", + "idle_track": "", + "lifetime": 0.0, + "name": "Health", + "nodes": [ + { + "class": "lL0kzajQhW", + "flags": { + "VisibleInEditor": true + }, + "name": "health_1", + "position": { + "x": 10.0, + "y": 0.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 20.0, + "y": 20.0 + }, + "tag": "" + }, + { + "class": "sCS8W5FlDG", + "flags": { + "VisibleInEditor": true + }, + "name": "health_2", + "position": { + "x": 30.0, + "y": 0.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 20.0, + "y": 20.0 + }, + "tag": "" + }, + { + "class": "unlprExuKx", + "flags": { + "VisibleInEditor": true + }, + "name": "health_3", + "position": { + "x": 50.0, + "y": 0.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 20.0, + "y": 20.0 + }, + "tag": "" + }, + { + "class": "RyFSCUI5d3", + "flags": { + "VisibleInEditor": true + }, + "name": "health_4", + "position": { + "x": 70.0, + "y": 0.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 20.0, + "y": 20.0 + }, + "tag": "" + }, + { + "class": "0dhxImGdKA", + "flags": { + "VisibleInEditor": true + }, + "name": "health_5", + "position": { + "x": 90.0, + "y": -0.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 20.0, + "y": 20.0 + }, + "tag": "" + }, + { + "class": "txntI159Im", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "_rect", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": false, + "FlipVertically": false, + "PP_EnableBloom": true, + "RestartDrawable": true, + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0046.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "yw0lAlGF7i", - "name": "explosion1_0046", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "layer": 1, + "linewidth": 1.0, + "material": "x6FkDk0TOK", + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0047.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "FuqPpARB8b", - "name": "explosion1_0047", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": -0.0, + "z": 0.0 }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0048.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "40iZIQbLQS", - "name": "explosion1_0048", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "timescale": 1.0 + }, + "flags": { + "VisibleInEditor": true + }, + "name": "icon", + "position": { + "x": -40.0, + "y": 0.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 64.0, + "y": 64.0 + }, + "tag": "" + }, + { + "class": "3fAUhBD7NI", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "_rect", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": false, + "FlipVertically": false, + "PP_EnableBloom": true, + "RestartDrawable": true, + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0049.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "nzYmihehtu", - "name": "explosion1_0049", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "layer": 0, + "linewidth": 1.0, + "material": "wEBG4Nwt8g", + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0050.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "0XzkhX8ZT2", - "name": "explosion1_0050", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": -0.0, + "z": 0.0 }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0051.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "1F3Q8rfFdx", - "name": "explosion1_0051", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "timescale": 1.0 + }, + "flags": { + "VisibleInEditor": true + }, + "name": "Node 0", + "position": { + "x": 0.5, + "y": 0.5 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 69.3383560180664, + "y": 53.34168243408203 + }, + "tag": "" + }, + { + "class": "AivB35iCGR", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "7pLg2qp4Pp", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": false, + "FlipVertically": false, + "PP_EnableBloom": true, + "RestartDrawable": true, + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0052.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "GFsYJOL4pf", - "name": "explosion1_0052", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "layer": 0, + "linewidth": 1.0, + "material": "HyJsrevpdz", + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0053.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "9mdHh9jsIL", - "name": "explosion1_0053", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": -0.0, + "z": 0.0 }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0054.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "TmtAFUrzwP", - "name": "explosion1_0054", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "timescale": 1.0 + }, + "flags": { + "VisibleInEditor": true + }, + "name": "Exhaust/Left", + "position": { + "x": -13.97076416015625, + "y": 17.97274398803711 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 42.350006103515625, + "y": 75.45004272460938 + }, + "tag": "" + }, + { + "class": "8jYxumsn78", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "7pLg2qp4Pp", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": false, + "FlipVertically": false, + "PP_EnableBloom": true, + "RestartDrawable": true, + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0055.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "RQrGhotNoS", - "name": "explosion1_0055", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "layer": 0, + "linewidth": 1.0, + "material": "HyJsrevpdz", + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0056.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "eiJZe6mklY", - "name": "explosion1_0056", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": -0.0, + "z": 0.0 }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0057.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false + "timescale": 1.0 + }, + "flags": { + "VisibleInEditor": true + }, + "name": "Exhaust/Right", + "position": { + "x": 12.567699432373047, + "y": 19.12660026550293 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 36.310943603515625, + "y": 64.10287475585938 + }, + "tag": "" + } + ], + "render_tree": { + "children": [ + { + "node": { + "id": "lL0kzajQhW" + } + }, + { + "node": { + "id": "sCS8W5FlDG" + } + }, + { + "node": { + "id": "unlprExuKx" + } + }, + { + "node": { + "id": "RyFSCUI5d3" + } + }, + { + "node": { + "id": "0dhxImGdKA" + } + }, + { + "children": [ + { + "node": { + "id": "3fAUhBD7NI" + } }, - "id": "lwjMsMy4JL", - "name": "explosion1_0057", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 + { + "node": { + "id": "AivB35iCGR" + } }, - "type": "Filesystem" + { + "node": { + "id": "8jYxumsn78" + } + } + ], + "node": { + "id": "txntI159Im" + } + } + ], + "node": null + }, + "resource_id": "p5r5vfQHG6", + "resource_name": "Health", + "resource_ver": 3, + "script_file": "WyTgkP5Z7I", + "tag": "" + }, + { + "flags": { + "KillAtBoundary": false, + "KillAtLifetime": true, + "LimitLifetime": false, + "PostUpdate": true, + "TickEntity": true, + "UpdateEntity": true, + "UpdateNodes": false, + "VisibleInEditor": true, + "VisibleInGame": true, + "WantsKeyEvents": false, + "WantsMouseEvents": false + }, + "id": "pNT0bA0bpw", + "idle_track": "uwJ2E5nXsL", + "lifetime": 0.0, + "name": "Enemy/Basic", + "nodes": [ + { + "class": "2tozdk6Tzf", + "flags": { + "VisibleInEditor": true + }, + "name": "Body", + "position": { + "x": -0.5000000596046448, + "y": -0.4999999701976776 + }, + "rotation": 3.1415927410125732, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 100.0, + "y": 100.0 + }, + "spatial_node": { + "flags": { + "Enabled": true, + "ReportOverlap": false }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0058.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "aKMFRSBw3s", - "name": "explosion1_0058", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "shape": "AABB" + }, + "tag": "" + }, + { + "class": "WOIwH6Bxgh", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "_rect", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": false, + "FlipVertically": false, + "PP_EnableBloom": true, + "RestartDrawable": true, + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true + }, + "layer": 0, + "linewidth": 1.0, + "material": "Z3Pe1h4eXI", + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": 0.0, + "z": 0.0 }, + "timescale": 1.0 + }, + "flags": { + "VisibleInEditor": true + }, + "name": "Skin", + "position": { + "x": 0.0, + "y": 0.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 75.61000061035156, + "y": 69.36000061035156 + }, + "tag": "" + }, + { + "class": "dUDZP9QwKv", + "flags": { + "VisibleInEditor": true + }, + "name": "Weapon", + "position": { + "x": 0.25, + "y": -51.0 + }, + "rotation": -3.1415927410125732, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 30.0, + "y": 30.0 + }, + "tag": "" + } + ], + "render_tree": { + "children": [ + { + "children": [ + { + "children": [ + { + "node": { + "id": "dUDZP9QwKv" + } + } + ], + "node": { + "id": "WOIwH6Bxgh" + } + } + ], + "node": { + "id": "2tozdk6Tzf" + } + } + ], + "node": null + }, + "resource_id": "pNT0bA0bpw", + "resource_name": "Enemy/Basic", + "resource_ver": 3, + "script_file": "FXdfIUPul3", + "tag": "#enemy", + "tracks": [ + { + "animators": [ { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0059.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "C5Qj9jHX5u", - "name": "explosion1_0059", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 + "animator": { + "duration": 0.20245298743247986, + "flags": { + "StaticInstance": false + }, + "id": "2qYnrkgeZS", + "method": "Linear", + "name": "Actuator_0", + "node": "WOIwH6Bxgh", + "position": { + "x": 0.0, + "y": 0.0 + }, + "rotation": -0.13962633907794952, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 100.0, + "y": 100.0 + }, + "starttime": 0.0003834366798400879, + "timeline": "pX6dfx63bU", + "transformations": { + "Resize": false, + "Rotate": true, + "Scale": false, + "Translate": false + } }, - "type": "Filesystem" + "type": "TransformAnimator" }, { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0060.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "CHzEULRpjT", - "name": "explosion1_0060", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 + "animator": { + "duration": 0.2618864178657532, + "flags": { + "StaticInstance": false + }, + "id": "ZDHWYFTbiw", + "method": "Linear", + "name": "Actuator_1", + "node": "WOIwH6Bxgh", + "position": { + "x": 0.0, + "y": 0.0 + }, + "rotation": 0.13962633907794952, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 100.0, + "y": 100.0 + }, + "starttime": 0.5019168853759766, + "timeline": "pX6dfx63bU", + "transformations": { + "Resize": false, + "Rotate": true, + "Scale": false, + "Translate": false + } }, - "type": "Filesystem" + "type": "TransformAnimator" }, { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0061.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "4fESO7Z4yE", - "name": "explosion1_0061", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 + "animator": { + "duration": 0.2990804612636566, + "flags": { + "StaticInstance": false + }, + "id": "pKlECEzzkW", + "method": "Linear", + "name": "Actuator_2", + "node": "WOIwH6Bxgh", + "position": { + "x": 0.0, + "y": 0.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 100.0, + "y": 100.0 + }, + "starttime": 0.20283642411231995, + "timeline": "pX6dfx63bU", + "transformations": { + "Resize": false, + "Rotate": true, + "Scale": false, + "Translate": false + } }, - "type": "Filesystem" + "type": "TransformAnimator" }, { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0062.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "MnqHsvIWvD", - "name": "explosion1_0062", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" - }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0063.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "tfxYv1Sub6", - "name": "explosion1_0063", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" - }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0064.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "f3xmnobwaL", - "name": "explosion1_0064", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 + "animator": { + "duration": 0.23619669675827026, + "flags": { + "StaticInstance": false + }, + "id": "gETAPghJto", + "method": "Linear", + "name": "Actuator_3", + "node": "WOIwH6Bxgh", + "position": { + "x": 0.0, + "y": 0.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 100.0, + "y": 100.0 + }, + "starttime": 0.7638033032417297, + "timeline": "pX6dfx63bU", + "transformations": { + "Resize": false, + "Rotate": true, + "Scale": false, + "Translate": false + } }, - "type": "Filesystem" - }, + "type": "TransformAnimator" + } + ], + "delay": 0.0, + "duration": 1.0, + "id": "uwJ2E5nXsL", + "looping": true, + "name": "Motion" + } + ], + "vars": [ + { + "flags": { + "Array": false, + "Private": false, + "ReadOnly": false + }, + "id": "wAKwhKlI98", + "name": "velocity", + "vec2s": [ { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0065.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "dap7Egtb9H", - "name": "explosion1_0065", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "object": { + "x": 200.0, + "y": 50.0 + } + } + ] + }, + { + "flags": { + "Array": false, + "Private": false, + "ReadOnly": false + }, + "id": "Xt8WfHILKd", + "ints": [ + 100 + ], + "name": "score" + }, + { + "flags": { + "Array": false, + "Private": true, + "ReadOnly": false + }, + "floats": [ + 0.0 + ], + "id": "BGKwm4wotm", + "name": "rotation" + }, + { + "flags": { + "Array": false, + "Private": true, + "ReadOnly": true + }, + "id": "o8vjk4MIzs", + "name": "type", + "strings": [ + "basic" + ] + } + ] + }, + { + "flags": { + "KillAtBoundary": true, + "KillAtLifetime": true, + "LimitLifetime": false, + "PostUpdate": true, + "TickEntity": true, + "UpdateEntity": true, + "UpdateNodes": false, + "VisibleInEditor": true, + "VisibleInGame": true, + "WantsKeyEvents": false, + "WantsMouseEvents": false + }, + "id": "pRNaJXshXi", + "idle_track": "", + "lifetime": 0.0, + "name": "Space fog", + "nodes": [ + { + "class": "hzppyC4noz", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "KLF0DsCfId", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": false, + "FlipVertically": false, + "PP_EnableBloom": true, + "RestartDrawable": true, + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0066.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "mkx6EkZm0F", - "name": "explosion1_0066", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "layer": 0, + "linewidth": 1.0, + "material": "saWl4UNIAU", + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0067.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "YZZMzy8IkD", - "name": "explosion1_0067", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": 0.0, + "z": 0.0 }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0068.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "Xp0m0okF6L", - "name": "explosion1_0068", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "timescale": 1.0 + }, + "flags": { + "VisibleInEditor": true + }, + "name": "Lighting", + "position": { + "x": 0.0, + "y": 0.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 500.0, + "y": 500.0 + }, + "tag": "" + } + ], + "render_tree": { + "children": [ + { + "node": { + "id": "hzppyC4noz" + } + } + ], + "node": null + }, + "resource_id": "pRNaJXshXi", + "resource_name": "Space fog", + "resource_ver": 3, + "script_file": "", + "tag": "" + }, + { + "flags": { + "KillAtBoundary": true, + "KillAtLifetime": true, + "LimitLifetime": true, + "PostUpdate": true, + "TickEntity": true, + "UpdateEntity": true, + "UpdateNodes": false, + "VisibleInEditor": true, + "VisibleInGame": true, + "WantsKeyEvents": false, + "WantsMouseEvents": false + }, + "id": "q4pUEDx2rE", + "idle_track": "AnvwndODTH", + "lifetime": 2.0, + "name": "Score", + "nodes": [ + { + "class": "FwndgajgOa", + "flags": { + "VisibleInEditor": true + }, + "name": "text", + "position": { + "x": 0.0, + "y": 0.0 + }, + "rotation": 0.0, + "scale": { + "x": 0.5, + "y": 0.5 + }, + "size": { + "x": 256.0, + "y": 128.0 + }, + "tag": "", + "text_item": { + "coordinate_space": "Scene", + "flags": { + "BlinkText": false, + "PP_EnableBloom": true, + "StaticContent": true, + "UnderlineText": false, + "VisibleInGame": true }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0069.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "LTCDwLutWD", - "name": "explosion1_0069", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "font_name": "app://fonts/ethnocentric rg.otf", + "font_size": 48, + "horizontal_align": "Center", + "layer": 0, + "line_height": 1.0, + "raster_height": 128, + "raster_width": 256, + "text": "123", + "text_color": { + "a": 1.0, + "b": 1.0, + "g": 1.0, + "r": 1.0 }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0070.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "n88HZSwL6g", - "name": "explosion1_0070", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "vertical_align": "Center" + } + }, + { + "class": "E5w4haXq1s", + "flags": { + "VisibleInEditor": true + }, + "name": "body", + "position": { + "x": 0.0, + "y": 0.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 100.0, + "y": 50.0 + }, + "tag": "" + }, + { + "class": "fr2xovk88P", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "PEj5kFRA5A", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": false, + "FlipVertically": false, + "PP_EnableBloom": true, + "RestartDrawable": false, + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0071.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false + "layer": 0, + "linewidth": 1.0, + "material": "YL23jp6zHS", + "material_params": [ + { + "name": "kParticleEndColor", + "value": { + "a": 1.0, + "b": 0.35825130343437195, + "g": 0.35825130343437195, + "r": 0.5539025068283081 + } }, - "id": "f3nLmktyfh", - "name": "explosion1_0071", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 + { + "name": "kParticleMidColor", + "value": { + "a": 1.0, + "b": 0.6091783046722412, + "g": 0.6091783046722412, + "r": 0.7359883785247803 + } }, - "type": "Filesystem" + { + "name": "kParticleStartColor", + "value": { + "a": 1.0, + "b": 0.8601052761077881, + "g": 0.8601052761077881, + "r": 0.9180743098258972 + } + } + ], + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0072.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "sDyzD3iivR", - "name": "explosion1_0072", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" - }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0073.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "mu6vOiNGRR", - "name": "explosion1_0073", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" - }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0074.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "QHeGCkv2k9", - "name": "explosion1_0074", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": -0.0, + "z": 0.0 }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0075.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "hKLzPg9syk", - "name": "explosion1_0075", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 + "timescale": 1.0 + }, + "flags": { + "VisibleInEditor": true + }, + "name": "Stars", + "position": { + "x": 0.0, + "y": 0.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 43.099998474121094, + "y": 20.010000228881836 + }, + "tag": "" + } + ], + "render_tree": { + "children": [ + { + "children": [ + { + "node": { + "id": "FwndgajgOa" + } }, - "type": "Filesystem" - }, + { + "node": { + "id": "fr2xovk88P" + } + } + ], + "node": { + "id": "E5w4haXq1s" + } + } + ], + "node": null + }, + "resource_id": "q4pUEDx2rE", + "resource_name": "Score", + "resource_ver": 3, + "script_file": "", + "tag": "", + "tracks": [ + { + "animators": [ { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0076.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "odSmEA3mYW", - "name": "explosion1_0076", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 + "animator": { + "duration": 0.5013895034790039, + "flags": { + "StaticInstance": true + }, + "id": "sdAGTSoJav", + "method": "Cosine", + "name": "", + "node": "FwndgajgOa", + "position": { + "x": 0.0, + "y": 0.0 + }, + "rotation": 0.5235987901687622, + "scale": { + "x": 0.5, + "y": 0.5 + }, + "size": { + "x": 197.4600067138672, + "y": 101.58999633789063 + }, + "starttime": 0.0, + "timeline": "", + "transformations": { + "Resize": true, + "Rotate": true, + "Scale": true, + "Translate": true + } }, - "type": "Filesystem" + "type": "TransformAnimator" }, { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0077.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "1OmaWEpbL7", - "name": "explosion1_0077", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 + "animator": { + "duration": 0.4986104965209961, + "flags": { + "StaticInstance": true + }, + "id": "uZqW9kL1Cn", + "method": "Cosine", + "name": "", + "node": "FwndgajgOa", + "position": { + "x": 0.0, + "y": 0.0 + }, + "rotation": 0.0, + "scale": { + "x": 0.0, + "y": 0.0 + }, + "size": { + "x": 0.0, + "y": 0.0 + }, + "starttime": 0.5013895034790039, + "timeline": "", + "transformations": { + "Resize": true, + "Rotate": true, + "Scale": true, + "Translate": true + } }, - "type": "Filesystem" + "type": "TransformAnimator" }, { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0078.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false + "animator": { + "duration": 1.0, + "flags": { + "StaticInstance": true + }, + "id": "8l8mk3xaCl", + "method": "EaseOutBack", + "name": "", + "node": "E5w4haXq1s", + "position": { + "x": -500.0, + "y": -370.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 1.1100000143051147, + "y": 0.0 + }, + "starttime": 0.0, + "timeline": "", + "transformations": { + "Resize": true, + "Rotate": true, + "Scale": true, + "Translate": true + } }, - "id": "3F2ySafjXz", - "name": "explosion1_0078", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "type": "TransformAnimator" + } + ], + "delay": 0.0, + "duration": 2.0, + "id": "AnvwndODTH", + "looping": false, + "name": "Fade" + } + ] + }, + { + "flags": { + "KillAtBoundary": true, + "KillAtLifetime": true, + "LimitLifetime": false, + "PostUpdate": true, + "TickEntity": false, + "UpdateEntity": false, + "UpdateNodes": false, + "VisibleInEditor": true, + "VisibleInGame": true, + "WantsKeyEvents": false, + "WantsMouseEvents": false + }, + "id": "qOIpuPbyL1", + "idle_track": "", + "lifetime": 0.0, + "name": "Asteroid", + "nodes": [ + { + "class": "z5Hf9L3Qvp", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "_rect", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": false, + "FlipVertically": false, + "PP_EnableBloom": true, + "RestartDrawable": true, + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0079.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "TAXGl1i50s", - "name": "explosion1_0079", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "layer": 0, + "linewidth": 1.0, + "material": "lOfMr3YBtI", + "material_params": [ + { + "name": "active_texture_map", + "value": "MiywGgjvmB" + } + ], + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "timescale": 1.0 + }, + "flags": { + "VisibleInEditor": true + }, + "linear_mover": { + "angular_acceleration": 0.0, + "angular_velocity": 0.0, + "flags": { + "Enabled": true, + "RotateToDirection": false + }, + "integrator": "Euler", + "linear_acceleration": { + "x": 0.0, + "y": 0.0 + }, + "linear_velocity": { + "x": 0.0, + "y": 0.0 + } + }, + "mesh_effect": { + "mesh-effect-type": "MeshExplosion", + "mesh-explosion-args": { + "mesh-subdivision-count": 1, + "shard-linear-acceleration": 0.0, + "shard-linear-speed": 3.0, + "shard-rotational-acceleration": 0.0, + "shard-rotational-speed": 1.0 + } + }, + "name": "Body", + "position": { + "x": 0.0, + "y": 0.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 88.0, + "y": 88.0 + }, + "tag": "" + }, + { + "class": "kp7A9ShK5w", + "flags": { + "VisibleInEditor": true + }, + "name": "Hitbox", + "position": { + "x": 0.5, + "y": 0.5 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 55.0, + "y": 55.0 + }, + "spatial_node": { + "flags": { + "Enabled": true, + "ReportOverlap": false }, + "shape": "AABB" + }, + "tag": "" + } + ], + "render_tree": { + "children": [ + { + "children": [ + { + "node": { + "id": "kp7A9ShK5w" + } + } + ], + "node": { + "id": "z5Hf9L3Qvp" + } + } + ], + "node": null + }, + "resource_id": "qOIpuPbyL1", + "resource_name": "Asteroid", + "resource_ver": 3, + "script_file": "bjZ0TrwuxI", + "tag": "", + "tracks": [ + { + "animators": [ { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0080.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "UuRPFms1oK", - "name": "explosion1_0080", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 + "animator": { + "action": "Off", + "duration": 0.08053343743085861, + "flag": "Drawable_UpdateMaterial", + "flags": { + "StaticInstance": true + }, + "id": "dhbHF53vjk", + "joint_id": "", + "name": "Animator_0", + "node": "z5Hf9L3Qvp", + "starttime": 0.0, + "time": 0.0, + "timeline": "N4sDg1bGIM" }, - "type": "Filesystem" + "type": "BooleanPropertyAnimator" }, { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0081.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false + "animator": { + "action": "Off", + "duration": 0.07822690159082413, + "flag": "SpatialNode_Enabled", + "flags": { + "StaticInstance": true + }, + "id": "AgdvwiwE29", + "joint_id": "", + "name": "Animator_1", + "node": "kp7A9ShK5w", + "starttime": 0.0, + "time": 0.0, + "timeline": "EsupQ7adCR" }, - "id": "tWM4Ap9TnD", - "name": "explosion1_0081", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 + "type": "BooleanPropertyAnimator" + } + ], + "delay": 0.0, + "duration": 2.0, + "id": "Y0gL4gH6eC", + "looping": false, + "name": "Explode", + "triggers": [ + { + "trigger-flags": { + "Enabled": true }, - "type": "Filesystem" + "trigger-id": "9LTzqtTjtk", + "trigger-name": "Trigger_1", + "trigger-target-node-id": "z5Hf9L3Qvp", + "trigger-time": 0.0, + "trigger-timeline-id": "N4sDg1bGIM", + "trigger-type": "StartMeshEffect" }, { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0082.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false + "trigger-flags": { + "Enabled": true }, - "id": "QsCSlQyJ5W", - "name": "explosion1_0082", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" - }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0083.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "QhdywC36Je", - "name": "explosion1_0083", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" - }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0084.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "piSvQ9Y035", - "name": "explosion1_0084", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" - }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0085.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "Xxv3UBgWDt", - "name": "explosion1_0085", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" - }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0086.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "98L5W6EKjv", - "name": "explosion1_0086", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" - }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0087.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "EuWFhngprD", - "name": "explosion1_0087", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" - }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0088.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "YWGoR0y7i8", - "name": "explosion1_0088", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" - }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0089.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "8IWnTeRZ75", - "name": "explosion1_0089", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" - }, - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Explosion/explosion1_0090.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "zP7LO0Ug4t", - "name": "explosion1_0090", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "trigger-id": "iqn8dMRDqs", + "trigger-name": "Trigger_1", + "trigger-parameters": [ + { + "trigger-param-name": "audio-graph-id", + "trigger-param-value": "SSTkbIoZhd" + }, + { + "trigger-param-name": "audio-stream", + "trigger-param-value": "Effect" + }, + { + "trigger-param-name": "audio-stream-action", + "trigger-param-value": "Play" + } + ], + "trigger-target-node-id": "z5Hf9L3Qvp", + "trigger-time": 0.02210475690662861, + "trigger-timeline-id": "N4sDg1bGIM", + "trigger-type": "PlayAudio" } - ], - "type": "Sprite" + ] } ], - "texture_min_filter": "Default", - "texture_wrap_x": "Clamp", - "texture_wrap_y": "Clamp", - "type": "Sprite", - "uniforms": [ + "vars": [ { - "name": "kBaseColor", - "value": { - "a": 0.5215686559677124, - "b": 1.0, - "g": 1.0, - "r": 1.0 - } + "flags": { + "Array": false, + "Private": false, + "ReadOnly": false + }, + "floats": [ + 80.0 + ], + "id": "NvQJb17Mlj", + "name": "radius" + }, + { + "flags": { + "Array": false, + "Private": false, + "ReadOnly": false + }, + "floats": [ + 300.0 + ], + "id": "IsTI39SbHr", + "name": "speed" + }, + { + "flags": { + "Array": false, + "Private": true, + "ReadOnly": false + }, + "floats": [ + 0.0 + ], + "id": "3JmpNnb47n", + "name": "damage" } ] }, { - "active_texture_map": "sZTa5Cumfw", "flags": { - "BlendFrames": true, - "EnableBloom": true, - "PremultipliedAlpha": false, - "Static": false + "KillAtBoundary": true, + "KillAtLifetime": true, + "LimitLifetime": false, + "PostUpdate": true, + "TickEntity": true, + "UpdateEntity": true, + "UpdateNodes": false, + "VisibleInEditor": true, + "VisibleInGame": true, + "WantsKeyEvents": false, + "WantsMouseEvents": false }, - "id": "HJjE3ufNfH", - "name": "Enemy/Pink 2", - "resource_id": "HJjE3ufNfH", - "resource_name": "Enemy/Pink 2", - "resource_ver": 6, - "shader_src": "", - "shader_uri": "", - "surface": "Transparent", - "texture_mag_filter": "Default", - "texture_maps": [ - { - "fps": 0.0, - "id": "sZTa5Cumfw", - "looping": true, - "name": "Texture", - "rect_name0": "", - "rect_name1": "", - "sampler_name0": "", - "sampler_name1": "", - "textures": [ - { - "colorspace": "sRGB", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/shmup-pack-3/items/18.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "NTMxExoywr", - "name": "18", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" - } - ], - "type": "Texture2D" - } - ], - "texture_min_filter": "Default", - "texture_wrap_x": "Clamp", - "texture_wrap_y": "Clamp", - "type": "Texture" - }, - { - "active_texture_map": "MHm1AOaSd2", - "flags": { - "BlendFrames": true, - "EnableBloom": true, - "PremultipliedAlpha": false, - "Static": false - }, - "id": "HyJsrevpdz", - "name": "Smoke Particle", - "resource_id": "HyJsrevpdz", - "resource_name": "Smoke Particle", - "resource_ver": 6, - "shader_src": "", - "shader_uri": "", - "surface": "Emissive", - "texture_mag_filter": "Default", - "texture_maps": [ + "id": "rTHIeIzO8G", + "idle_track": "", + "lifetime": 0.0, + "name": "Stats Bar", + "nodes": [ { - "fps": 0.0, - "id": "MHm1AOaSd2", - "looping": true, - "name": "Particle Alpha Mask", - "rect_name0": "kMaskRect", - "rect_name1": "", - "sampler_name0": "kMask", - "sampler_name1": "", - "textures": [ - { - "colorspace": "sRGB", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/circle_05.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "YtQTS4o2Oo", - "name": "circle_05", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" - } - ], - "type": "Texture2D" + "class": "GUWXr35OAs", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "_rect", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": false, + "FlipVertically": false, + "PP_EnableBloom": true, + "RestartDrawable": true, + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true + }, + "layer": 1, + "linewidth": 1.0, + "material": "Kb5sHrP5bL", + "material_params": [ + { + "name": "kBaseColor", + "value": { + "a": 1.0, + "b": 0.2225986123085022, + "g": 0.2225986123085022, + "r": 0.2225986123085022 + } + } + ], + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": -0.0, + "z": 0.0 + }, + "timescale": 1.0 + }, + "flags": { + "VisibleInEditor": true + }, + "name": "Node 1", + "position": { + "x": 0.0, + "y": 0.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 155.3300018310547, + "y": 71.77999877929688 + }, + "tag": "" } ], - "texture_min_filter": "Default", - "texture_wrap_x": "Clamp", - "texture_wrap_y": "Clamp", - "type": "Particle2D", - "uniforms": [ - { - "name": "kBaseRotation", - "value": 0.0 - }, - { - "name": "kParticleBaseRotation", - "value": 0.0 - }, - { - "name": "kParticleEndColor", - "value": { - "a": 1.0, - "b": 0.09945830702781677, - "g": 0.12199588119983673, - "r": 0.9192034602165222 - } - }, - { - "name": "kParticleMidColor", - "value": { - "a": 1.0, - "b": 0.05271229147911072, - "g": 0.23879605531692505, - "r": 0.9582741856575012 - } - }, - { - "name": "kParticleStartColor", - "value": { - "a": 1.0, - "b": 0.005966277793049812, - "g": 0.35559624433517456, - "r": 0.9973449110984802 + "render_tree": { + "children": [ + { + "node": { + "id": "GUWXr35OAs" + } } - }, - { - "name": "kRotation", - "value": 0.0 - }, - { - "name": "kTextureRotation", - "value": 0.0 - } - ] + ], + "node": null + }, + "resource_id": "rTHIeIzO8G", + "resource_name": "Stats Bar", + "resource_ver": 3, + "script_file": "", + "tag": "" }, { - "active_texture_map": "Kb0grLjv96", "flags": { - "BlendFrames": true, - "EnableBloom": true, - "PremultipliedAlpha": true, - "Static": false + "KillAtBoundary": true, + "KillAtLifetime": true, + "LimitLifetime": true, + "PostUpdate": true, + "TickEntity": true, + "UpdateEntity": true, + "UpdateNodes": false, + "VisibleInEditor": true, + "VisibleInGame": true, + "WantsKeyEvents": false, + "WantsMouseEvents": false }, - "id": "Kb5sHrP5bL", - "name": "Blast Title", - "resource_id": "Kb5sHrP5bL", - "resource_name": "Blast Title", - "resource_ver": 6, - "shader_src": "", - "shader_uri": "ws://shaders/es2/text.glsl", - "surface": "Emissive", - "texture_mag_filter": "Default", - "texture_maps": [ + "id": "sLM71HOgD1", + "idle_track": "skTp7rbtU1", + "lifetime": 0.800000011920929, + "name": "Combo", + "nodes": [ { - "fps": 0.0, - "id": "Kb0grLjv96", - "looping": true, - "name": "kTexture0", - "rect_name0": "kTexture0Rect", - "rect_name1": "", - "sampler_name0": "kTexture0", - "sampler_name1": "", - "textures": [ - { - "buffer": { - "height": 200, - "horizontal_alignment": "AlignCenter", - "texts": [ - { - "font_file": "app://fonts/ethnocentric rg.otf", - "font_size": 72, - "line_height": 0.800000011920929, - "string": "SPACE\nBLAST", - "underline": false - } - ], - "vertical_alignment": "AlignCenter", - "width": 350 - }, - "effects": { - "Blur": false, - "Edges": false - }, - "id": "JQw78NDo0F", - "name": "TextBuffer", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "TextBuffer" - } - ], - "type": "Texture2D" - } - ], - "texture_min_filter": "Default", - "texture_wrap_x": "Clamp", - "texture_wrap_y": "Clamp", - "type": "Custom", - "uniforms": [ - { - "name": "kBaseColor", - "value": { - "a": 1.0, - "b": 0.9037155508995056, - "g": 0.8630197644233704, - "r": 0.8376744985580444 - } - } - ] - }, - { - "active_texture_map": "EtpQMNo1zx", - "flags": { - "BlendFrames": true, - "EnableBloom": true, - "PremultipliedAlpha": false, - "Static": false - }, - "id": "MHJxCtplnp", - "name": "Screenshot", - "resource_id": "MHJxCtplnp", - "resource_name": "Screenshot", - "resource_ver": 6, - "shader_src": "", - "shader_uri": "", - "surface": "Opaque", - "texture_mag_filter": "Default", - "texture_maps": [ + "class": "rQ6aesNfz7", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "_rect", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": false, + "FlipVertically": false, + "PP_EnableBloom": true, + "RestartDrawable": true, + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true + }, + "layer": 1, + "linewidth": 1.0, + "material": "wyzMKbLQ8x", + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "timescale": 1.0 + }, + "flags": { + "VisibleInEditor": true + }, + "name": "Text Outline", + "position": { + "x": 0.0, + "y": 0.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 810.0, + "y": 308.0 + }, + "tag": "" + }, { - "fps": 0.0, - "id": "EtpQMNo1zx", - "looping": true, - "name": "Texture", - "rect_name0": "", - "rect_name1": "", - "sampler_name0": "", - "sampler_name1": "", - "textures": [ - { - "colorspace": "sRGB", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/menu.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "sXGxyL2vYX", - "name": "menu", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" - } - ], - "type": "Texture2D" - } - ], - "texture_min_filter": "Default", - "texture_wrap_x": "Clamp", - "texture_wrap_y": "Clamp", - "type": "Texture", - "uniforms": [ + "class": "tdyTsMj7k4", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "_rect", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": false, + "FlipVertically": false, + "PP_EnableBloom": true, + "RestartDrawable": true, + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true + }, + "layer": 2, + "linewidth": 1.0, + "material": "5aOlnaj3v3", + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "timescale": 1.0 + }, + "flags": { + "VisibleInEditor": true + }, + "name": "Text Fill", + "position": { + "x": 0.0, + "y": 0.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 810.0, + "y": 308.0 + }, + "tag": "" + }, { - "name": "kTextureRotation", - "value": 0.0 - } - ] - }, - { - "active_texture_map": "O1A6srtZue", - "flags": { - "BlendFrames": true, - "EnableBloom": true, - "PremultipliedAlpha": false, - "Static": false - }, - "id": "PIhms7PpQT", - "name": "Enemy/Green", - "resource_id": "PIhms7PpQT", - "resource_name": "Enemy/Green", - "resource_ver": 6, - "shader_src": "", - "shader_uri": "", - "surface": "Transparent", - "texture_mag_filter": "Default", - "texture_maps": [ + "class": "FGAsWAXE0Q", + "flags": { + "VisibleInEditor": true + }, + "name": "Body", + "position": { + "x": 0.0, + "y": 0.0 + }, + "rotation": 0.0, + "scale": { + "x": 3.0, + "y": 3.0 + }, + "size": { + "x": 76.0, + "y": 54.0 + }, + "tag": "" + }, { - "fps": 0.0, - "id": "O1A6srtZue", - "looping": true, - "name": "Texture", - "rect_name0": "", - "rect_name1": "", - "sampler_name0": "", - "sampler_name1": "", - "textures": [ - { - "colorspace": "sRGB", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/shmup-pack-3/items/8.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": true - }, - "id": "8YpFd1FZ21", - "name": "8", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" - } - ], - "type": "Texture2D" - } - ], - "texture_min_filter": "Default", - "texture_wrap_x": "Clamp", - "texture_wrap_y": "Clamp", - "type": "Texture", - "uniforms": [ + "class": "7XD9UbCh33", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "Ls3ehJz9Iy", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": false, + "FlipVertically": false, + "PP_EnableBloom": true, + "RestartDrawable": true, + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true + }, + "layer": 2, + "linewidth": 1.0, + "material": "FwZHJhGSYv", + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "timescale": 1.0 + }, + "flags": { + "VisibleInEditor": true + }, + "name": "spark_effect", + "position": { + "x": -237.4074249267578, + "y": 30.370361328125 + }, + "rotation": 1.547845721244812, + "scale": { + "x": 0.5, + "y": 0.5 + }, + "size": { + "x": 790.1430053710938, + "y": 572.8963012695313 + }, + "tag": "" + }, { - "name": "kTextureRotation", - "value": 0.0 + "class": "TDhC13DeWL", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "Ls3ehJz9Iy", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": false, + "FlipVertically": false, + "PP_EnableBloom": true, + "RestartDrawable": true, + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true + }, + "layer": 2, + "linewidth": 1.0, + "material": "FwZHJhGSYv", + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "timescale": 1.0 + }, + "flags": { + "VisibleInEditor": true + }, + "name": "spark_effect2", + "position": { + "x": 276.1600036621094, + "y": -10.34000015258789 + }, + "rotation": 1.5707963705062866, + "scale": { + "x": 0.5, + "y": 0.5 + }, + "size": { + "x": 800.0, + "y": 600.0 + }, + "tag": "" } - ] - }, - { - "active_texture_map": "SkDR40as46", - "flags": { - "BlendFrames": true, - "EnableBloom": true, - "PremultipliedAlpha": false, - "Static": false - }, - "id": "XLy89MFMgb", - "name": "Laser/Green", - "resource_id": "XLy89MFMgb", - "resource_name": "Laser/Green", - "resource_ver": 6, - "shader_src": "", - "shader_uri": "", - "surface": "Transparent", - "texture_mag_filter": "Default", - "texture_maps": [ - { - "fps": 0.0, - "id": "SkDR40as46", - "looping": true, - "name": "Texture", - "rect_name0": "", - "rect_name1": "", - "sampler_name0": "", - "sampler_name1": "", - "textures": [ - { - "colorspace": "Linear", - "effects": { - "Blur": false, - "Edges": false + ], + "render_tree": { + "children": [ + { + "children": [ + { + "node": { + "id": "tdyTsMj7k4" + } }, - "file": "ws://textures/Lasers/09.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false + { + "node": { + "id": "rQ6aesNfz7" + } }, - "id": "djvspto6f0", - "name": "09", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 + { + "node": { + "id": "7XD9UbCh33" + } }, - "type": "Filesystem" + { + "node": { + "id": "TDhC13DeWL" + } + } + ], + "node": { + "id": "FGAsWAXE0Q" } - ], - "type": "Texture2D" - } - ], - "texture_min_filter": "Default", - "texture_wrap_x": "Clamp", - "texture_wrap_y": "Clamp", - "type": "Texture", - "uniforms": [ - { - "name": "kTextureRotation", - "value": 0.0 - } - ] - }, - { - "active_texture_map": "kpmDBygkRX", - "flags": { - "BlendFrames": true, - "EnableBloom": true, - "PremultipliedAlpha": false, - "Static": false + } + ], + "node": null }, - "id": "YJynSu6nqw", - "name": "Enemy/Blue", - "resource_id": "YJynSu6nqw", - "resource_name": "Enemy/Blue", - "resource_ver": 6, - "shader_src": "", - "shader_uri": "", - "surface": "Transparent", - "texture_mag_filter": "Default", - "texture_maps": [ + "resource_id": "sLM71HOgD1", + "resource_name": "Combo", + "resource_ver": 3, + "script_file": "", + "tag": "", + "tracks": [ { - "fps": 0.0, - "id": "kpmDBygkRX", - "looping": true, - "name": "Texture", - "rect_name0": "", - "rect_name1": "", - "sampler_name0": "", - "sampler_name1": "", - "textures": [ + "animators": [ { - "colorspace": "sRGB", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/shmup-pack-3/items/14.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": true - }, - "id": "HOfa3rFBH4", - "name": "14", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 + "animator": { + "duration": 1.0, + "flags": { + "StaticInstance": false + }, + "id": "Cib9W3RWCd", + "method": "EaseOutElastic", + "name": "Actuator_0", + "node": "FGAsWAXE0Q", + "position": { + "x": 0.0, + "y": 5.71999979019165 + }, + "rotation": 0.0, + "scale": { + "x": 0.5, + "y": 0.30000001192092896 + }, + "size": { + "x": 76.0, + "y": 54.0 + }, + "starttime": 0.0, + "timeline": "qMRWruw7iP", + "transformations": { + "Resize": true, + "Rotate": true, + "Scale": true, + "Translate": true + } }, - "type": "Filesystem" + "type": "TransformAnimator" } ], - "type": "Texture2D" - } - ], - "texture_min_filter": "Default", - "texture_wrap_x": "Clamp", - "texture_wrap_y": "Clamp", - "type": "Texture", - "uniforms": [ - { - "name": "kTextureRotation", - "value": 0.0 - } - ] - }, - { - "active_texture_map": "Yn37LoHDx1", - "flags": { - "BlendFrames": true, - "EnableBloom": true, - "PremultipliedAlpha": false, - "Static": false - }, - "id": "YL23jp6zHS", - "name": "Star Particle", - "resource_id": "YL23jp6zHS", - "resource_name": "Star Particle", - "resource_ver": 6, - "shader_src": "", - "shader_uri": "", - "surface": "Emissive", - "texture_mag_filter": "Default", - "texture_maps": [ - { - "fps": 0.0, - "id": "Yn37LoHDx1", - "looping": true, - "name": "Particle Alpha Mask", - "rect_name0": "kMaskRect", - "rect_name1": "", - "sampler_name0": "kMask", - "sampler_name1": "", - "textures": [ + "delay": 0.0, + "duration": 1.0, + "id": "skTp7rbtU1", + "looping": false, + "name": "My Track", + "triggers": [ { - "colorspace": "sRGB", - "effects": { - "Blur": false, - "Edges": false + "trigger-flags": { + "Enabled": true }, - "file": "ws://textures/star_01.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false + "trigger-id": "QO3ndo1PyD", + "trigger-name": "Trigger_0", + "trigger-parameters": [ + { + "trigger-param-name": "particle-emit-count", + "trigger-param-value": 0 + } + ], + "trigger-target-node-id": "7XD9UbCh33", + "trigger-time": 0.36617183685302734, + "trigger-timeline-id": "QIlnfpPqyr", + "trigger-type": "EmitParticlesTrigger" + }, + { + "trigger-flags": { + "Enabled": true }, - "id": "GrMR8RaY6p", - "name": "star_01", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 + "trigger-id": "9rYA3dCCO2", + "trigger-name": "Trigger_1", + "trigger-parameters": [ + { + "trigger-param-name": "particle-emit-count", + "trigger-param-value": 0 + } + ], + "trigger-target-node-id": "TDhC13DeWL", + "trigger-time": 0.5668236017227173, + "trigger-timeline-id": "muiaFH5u5d", + "trigger-type": "EmitParticlesTrigger" + }, + { + "trigger-flags": { + "Enabled": true }, - "type": "Filesystem" - } - ], - "type": "Texture2D" - } - ], - "texture_min_filter": "Default", - "texture_wrap_x": "Clamp", - "texture_wrap_y": "Clamp", - "type": "Particle2D", - "uniforms": [ - { - "name": "kBaseRotation", - "value": 0.0 - }, - { - "name": "kParticleBaseRotation", - "value": 0.0 - }, - { - "name": "kParticleEndColor", - "value": { - "a": 1.0, - "b": 0.09945830702781677, - "g": 0.12199588119983673, - "r": 0.9192034602165222 - } - }, - { - "name": "kParticleMidColor", - "value": { - "a": 1.0, - "b": 0.05271229147911072, - "g": 0.23879605531692505, - "r": 0.9582741856575012 - } - }, - { - "name": "kParticleStartColor", - "value": { - "a": 1.0, - "b": 0.005966277793049812, - "g": 0.35559624433517456, - "r": 0.9973449110984802 - } - }, - { - "name": "kRotation", - "value": 0.0 - }, - { - "name": "kTextureRotation", - "value": 0.0 - } - ] - }, - { - "active_texture_map": "OIyKORo0Fu", - "flags": { - "BlendFrames": true, - "EnableBloom": true, - "PremultipliedAlpha": true, - "Static": false - }, - "id": "Z3Pe1h4eXI", - "name": "Enemy/Pink", - "resource_id": "Z3Pe1h4eXI", - "resource_name": "Enemy/Pink", - "resource_ver": 6, - "shader_src": "", - "shader_uri": "", - "surface": "Transparent", - "texture_mag_filter": "Default", - "texture_maps": [ - { - "fps": 0.0, - "id": "OIyKORo0Fu", - "looping": true, - "name": "Texture", - "rect_name0": "", - "rect_name1": "", - "sampler_name0": "", - "sampler_name1": "", - "textures": [ + "trigger-id": "F0ZrkBKLJZ", + "trigger-name": "Trigger_2", + "trigger-parameters": [ + { + "trigger-param-name": "particle-emit-count", + "trigger-param-value": 0 + } + ], + "trigger-target-node-id": "7XD9UbCh33", + "trigger-time": 0.3850054442882538, + "trigger-timeline-id": "QIlnfpPqyr", + "trigger-type": "EmitParticlesTrigger" + }, { - "colorspace": "sRGB", - "effects": { - "Blur": false, - "Edges": false + "trigger-flags": { + "Enabled": true }, - "file": "ws://textures/shmup-pack-3/items/7.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": true + "trigger-id": "rbJqw04igT", + "trigger-name": "Trigger_3", + "trigger-parameters": [ + { + "trigger-param-name": "particle-emit-count", + "trigger-param-value": 0 + } + ], + "trigger-target-node-id": "7XD9UbCh33", + "trigger-time": 0.4433176517486572, + "trigger-timeline-id": "QIlnfpPqyr", + "trigger-type": "EmitParticlesTrigger" + }, + { + "trigger-flags": { + "Enabled": true }, - "id": "kX5CIZYZ6O", - "name": "7", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 + "trigger-id": "rhdBGgI8Nw", + "trigger-name": "Trigger_4", + "trigger-parameters": [ + { + "trigger-param-name": "particle-emit-count", + "trigger-param-value": 0 + } + ], + "trigger-target-node-id": "TDhC13DeWL", + "trigger-time": 0.5896414518356323, + "trigger-timeline-id": "muiaFH5u5d", + "trigger-type": "EmitParticlesTrigger" + }, + { + "trigger-flags": { + "Enabled": true }, - "type": "Filesystem" + "trigger-id": "Cl4FBa3vq9", + "trigger-name": "Trigger_5", + "trigger-parameters": [ + { + "trigger-param-name": "audio-graph-id", + "trigger-param-value": "1TIDACOJjO" + }, + { + "trigger-param-name": "audio-stream", + "trigger-param-value": "Effect" + }, + { + "trigger-param-name": "audio-stream-action", + "trigger-param-value": "Play" + } + ], + "trigger-target-node-id": "rQ6aesNfz7", + "trigger-time": 0.0, + "trigger-timeline-id": "UdDnhIUw8D", + "trigger-type": "PlayAudio" + }, + { + "trigger-flags": { + "Enabled": true + }, + "trigger-id": "CYXBMeNxJf", + "trigger-name": "Trigger_6", + "trigger-parameters": [ + { + "trigger-param-name": "audio-graph-id", + "trigger-param-value": "fFp7mqTh4P" + }, + { + "trigger-param-name": "audio-stream", + "trigger-param-value": "Effect" + }, + { + "trigger-param-name": "audio-stream-action", + "trigger-param-value": "Play" + } + ], + "trigger-target-node-id": "rQ6aesNfz7", + "trigger-time": 0.6367733478546143, + "trigger-timeline-id": "UdDnhIUw8D", + "trigger-type": "PlayAudio" } - ], - "type": "Texture2D" - } - ], - "texture_min_filter": "Default", - "texture_wrap_x": "Clamp", - "texture_wrap_y": "Clamp", - "type": "Texture", - "uniforms": [ - { - "name": "kTextureRotation", - "value": 0.0 + ] } ] }, { - "active_texture_map": "1RR6n5j5uF", "flags": { - "BlendFrames": true, - "EnableBloom": true, - "PremultipliedAlpha": false, - "Static": false + "KillAtBoundary": true, + "KillAtLifetime": true, + "LimitLifetime": false, + "PostUpdate": true, + "TickEntity": true, + "UpdateEntity": true, + "UpdateNodes": false, + "VisibleInEditor": true, + "VisibleInGame": true, + "WantsKeyEvents": false, + "WantsMouseEvents": false }, - "id": "gnzE0pkeXX", - "name": "Health_Dot", - "resource_id": "gnzE0pkeXX", - "resource_name": "Health_Dot", - "resource_ver": 6, - "shader_src": "", - "shader_uri": "", - "surface": "Transparent", - "texture_mag_filter": "Default", - "texture_maps": [ + "id": "uEUkHdeqOW", + "idle_track": "", + "lifetime": 0.0, + "name": "HP", + "nodes": [ { - "fps": 0.0, - "id": "1RR6n5j5uF", - "looping": true, - "name": "Texture", - "rect_name0": "", - "rect_name1": "", - "sampler_name0": "", - "sampler_name1": "", - "textures": [ - { - "colorspace": "sRGB", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Space UI/Health_Dot.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "1ByRH6D9IK", - "name": "Health_Dot", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" - } - ], - "type": "Texture2D" + "class": "k4NoihTPrq", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "_rect", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": false, + "FlipVertically": false, + "PP_EnableBloom": true, + "RestartDrawable": true, + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true + }, + "layer": 0, + "linewidth": 1.0, + "material": "hCinu6wgaC", + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": -0.0, + "z": 0.0 + }, + "timescale": 1.0 + }, + "flags": { + "VisibleInEditor": true + }, + "name": "Node 0", + "position": { + "x": 0.0, + "y": -0.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 100.0, + "y": 100.0 + }, + "tag": "" } ], - "texture_min_filter": "Default", - "texture_wrap_x": "Clamp", - "texture_wrap_y": "Clamp", - "type": "Texture", - "uniforms": [ - { - "name": "kTextureRotation", - "value": 0.0 - } - ] - }, - { - "active_texture_map": "sLwRzKaXzM", - "flags": { - "BlendFrames": true, - "EnableBloom": true, - "PremultipliedAlpha": false, - "Static": false - }, - "id": "hCinu6wgaC", - "name": "Health Pack", - "resource_id": "hCinu6wgaC", - "resource_name": "Health Pack", - "resource_ver": 6, - "shader_src": "", - "shader_uri": "", - "surface": "Transparent", - "texture_mag_filter": "Default", - "texture_maps": [ - { - "fps": 0.0, - "id": "sLwRzKaXzM", - "looping": true, - "name": "Texture", - "rect_name0": "", - "rect_name1": "", - "sampler_name0": "", - "sampler_name1": "", - "textures": [ - { - "colorspace": "sRGB", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/shmup-pack-3/items/31.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": true - }, - "id": "gnQ5bSfTwz", - "name": "31", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" + "render_tree": { + "children": [ + { + "node": { + "id": "k4NoihTPrq" } - ], - "type": "Texture2D" - } - ], - "texture_min_filter": "Default", - "texture_wrap_x": "Clamp", - "texture_wrap_y": "Clamp", - "type": "Texture" - }, - { - "active_texture_map": "38nRsxHUy1", - "flags": { - "BlendFrames": true, - "EnableBloom": true, - "PremultipliedAlpha": false, - "Static": false + } + ], + "node": null }, - "id": "lLinWqCv1M", - "name": "Shield", - "resource_id": "lLinWqCv1M", - "resource_name": "Shield", - "resource_ver": 6, - "shader_src": "", - "shader_uri": "", - "surface": "Transparent", - "texture_mag_filter": "Default", - "texture_maps": [ - { - "fps": 0.0, - "id": "38nRsxHUy1", - "looping": true, - "name": "Texture", - "rect_name0": "", - "rect_name1": "", - "sampler_name0": "", - "sampler_name1": "", - "textures": [ - { - "colorspace": "sRGB", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/shmup-pack-3/items/32.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "7hggzWBOgG", - "name": "32", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" - } - ], - "type": "Texture2D" - } - ], - "texture_min_filter": "Default", - "texture_wrap_x": "Clamp", - "texture_wrap_y": "Clamp", - "type": "Texture", - "uniforms": [ - { - "name": "kTextureRotation", - "value": 0.0 - } - ] + "resource_id": "uEUkHdeqOW", + "resource_name": "HP", + "resource_ver": 3, + "script_file": "", + "tag": "" }, { - "active_texture_map": "MiywGgjvmB", "flags": { - "BlendFrames": true, - "EnableBloom": true, - "PremultipliedAlpha": false, - "Static": true + "KillAtBoundary": true, + "KillAtLifetime": true, + "LimitLifetime": false, + "PostUpdate": true, + "TickEntity": true, + "UpdateEntity": true, + "UpdateNodes": false, + "VisibleInEditor": true, + "VisibleInGame": true, + "WantsKeyEvents": false, + "WantsMouseEvents": false }, - "id": "lOfMr3YBtI", - "name": "Asteroid", - "resource_id": "lOfMr3YBtI", - "resource_name": "Asteroid", - "resource_ver": 6, - "shader_src": "", - "shader_uri": "", - "surface": "Transparent", - "texture_mag_filter": "Default", - "texture_maps": [ + "id": "wXtbrxNRpX", + "idle_track": "", + "lifetime": 0.0, + "name": "GameScore", + "nodes": [ { - "fps": 0.0, - "id": "MiywGgjvmB", - "looping": true, - "name": "Default", - "rect_name0": "", - "rect_name1": "", - "sampler_name0": "", - "sampler_name1": "", - "textures": [ - { - "colorspace": "sRGB", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/Asteroids/asteroid_dark.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": true - }, - "id": "7ozeiqjW51", - "name": "asteroid_dark", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 - }, - "type": "Filesystem" - } - ], - "type": "Texture2D" - } - ], - "texture_min_filter": "Default", - "texture_wrap_x": "Clamp", - "texture_wrap_y": "Clamp", - "type": "Texture", - "uniforms": [ - { - "name": "kColor0", - "value": { - "a": 1.0, - "b": 0.5623559951782227, - "g": 0.5623559951782227, - "r": 0.5623559951782227 + "class": "TdZawTgkXO", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "_rect", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": false, + "FlipVertically": false, + "PP_EnableBloom": true, + "RestartDrawable": true, + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true + }, + "layer": 0, + "linewidth": 1.0, + "material": "_Black", + "material_params": [ + { + "name": "kBaseColor", + "value": { + "a": 0.3960784375667572, + "b": 0.0, + "g": 0.0, + "r": 0.0 + } + } + ], + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": -0.0, + "z": 0.0 + }, + "timescale": 1.0 + }, + "flags": { + "VisibleInEditor": true + }, + "name": "text", + "position": { + "x": 0.0, + "y": 0.0 + }, + "rotation": 0.0, + "scale": { + "x": 0.800000011920929, + "y": 0.800000011920929 + }, + "size": { + "x": 275.6600036621094, + "y": 47.5 + }, + "tag": "", + "text_item": { + "coordinate_space": "Scene", + "flags": { + "BlinkText": false, + "PP_EnableBloom": true, + "StaticContent": false, + "UnderlineText": false, + "VisibleInGame": true + }, + "font_name": "app://fonts/ethnocentric rg.otf", + "font_size": 26, + "horizontal_align": "Left", + "layer": 1, + "line_height": 1.0, + "raster_height": 0, + "raster_width": 0, + "text": "0", + "text_color": { + "a": 1.0, + "b": 0.9966735243797302, + "g": 0.9966735243797302, + "r": 0.9966735243797302 + }, + "vertical_align": "Center" } }, { - "name": "kTextureRotation", - "value": 0.0 - }, - { - "name": "kTextureVelocity", - "value": { - "x": 0.0, - "y": 0.0, - "z": 4.0 - } + "class": "Y6j7hfxptg", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "PPXCoUzFFy", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": false, + "FlipVertically": false, + "PP_EnableBloom": true, + "RestartDrawable": true, + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true + }, + "layer": -1, + "linewidth": 1.0, + "material": "HyJsrevpdz", + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": -0.0, + "z": 0.0 + }, + "timescale": 1.0 + }, + "flags": { + "VisibleInEditor": true + }, + "name": "Node 0", + "position": { + "x": -93.0434799194336, + "y": -0.43480050563812256 + }, + "rotation": -3.1415927410125732, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 24.079999923706055, + "y": 10.989999771118164 + }, + "tag": "" } - ] + ], + "render_tree": { + "children": [ + { + "node": { + "id": "TdZawTgkXO" + } + }, + { + "node": { + "id": "Y6j7hfxptg" + } + } + ], + "node": null + }, + "resource_id": "wXtbrxNRpX", + "resource_name": "GameScore", + "resource_ver": 3, + "script_file": "", + "tag": "" }, { - "active_texture_map": "w1IvvZ5XjW", "flags": { - "BlendFrames": true, - "EnableBloom": true, - "PremultipliedAlpha": false, - "Static": false + "KillAtBoundary": true, + "KillAtLifetime": true, + "LimitLifetime": false, + "PostUpdate": true, + "TickEntity": true, + "UpdateEntity": true, + "UpdateNodes": false, + "VisibleInEditor": true, + "VisibleInGame": true, + "WantsKeyEvents": false, + "WantsMouseEvents": false }, - "id": "miMdq5hPLK", - "name": "Player/Weapon 2", - "resource_id": "miMdq5hPLK", - "resource_name": "Player/Weapon 2", - "resource_ver": 6, - "shader_src": "", - "shader_uri": "", - "surface": "Transparent", - "texture_mag_filter": "Default", - "texture_maps": [ + "id": "zUdWnjvPal", + "idle_track": "", + "lifetime": 0.0, + "name": "Health Pack", + "nodes": [ { - "fps": 0.0, - "id": "w1IvvZ5XjW", - "looping": true, - "name": "Texture", - "rect_name0": "", - "rect_name1": "", - "sampler_name0": "", - "sampler_name1": "", - "textures": [ - { - "colorspace": "sRGB", - "effects": { - "Blur": false, - "Edges": false - }, - "file": "ws://textures/shmup-pack-3/items/23.png", - "flags": { - "AllowPacking": true, - "AllowResizing": true, - "PremulAlpha": false - }, - "id": "dEpLqnD0Ip", - "name": "23", - "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 + "class": "A81vilJl0v", + "flags": { + "VisibleInEditor": true + }, + "name": "Body", + "position": { + "x": -0.0, + "y": 0.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 50.0, + "y": 50.0 + }, + "tag": "" + }, + { + "class": "3FFDF2AeTx", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "_rect", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": false, + "FlipVertically": false, + "PP_EnableBloom": true, + "RestartDrawable": true, + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true + }, + "layer": 1, + "linewidth": 1.0, + "material": "hCinu6wgaC", + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": -0.0, + "z": 0.0 + }, + "timescale": 1.0 + }, + "flags": { + "VisibleInEditor": true + }, + "name": "Skin", + "position": { + "x": 0.0, + "y": 0.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 100.0, + "y": 100.0 + }, + "tag": "" + }, + { + "class": "HD1PD8eh87", + "drawable_item": { + "coordinate_space": "Scene", + "depth": 1.0, + "drawable": "_circle", + "flags": { + "DepthTest": false, + "DoubleSided": false, + "FlipHorizontally": false, + "FlipVertically": false, + "PP_EnableBloom": true, + "RestartDrawable": true, + "UpdateDrawable": true, + "UpdateMaterial": true, + "VisibleInGame": true + }, + "layer": 0, + "linewidth": 1.0, + "material": "2a488SIQsU", + "material_params": [ + { + "name": "kBaseColor", + "value": { + "a": 1.0, + "b": 0.8402990698814392, + "g": 0.8402990698814392, + "r": 0.9127641916275024 + } }, - "type": "Filesystem" - } - ], - "type": "Texture2D" + { + "name": "kColor0", + "value": { + "a": 1.0, + "b": 0.808651864528656, + "g": 0.808651864528656, + "r": 0.9318532347679138 + } + } + ], + "offset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "renderpass": "DrawColor", + "renderproj": "Orthographic", + "renderstyle": "Solid", + "renderview": "AxisAligned", + "rotator": { + "x": 0.0, + "y": -0.0, + "z": 0.0 + }, + "timescale": 0.5 + }, + "flags": { + "VisibleInEditor": true + }, + "name": "Sonic Pulse Ring", + "position": { + "x": -0.0, + "y": -0.0 + }, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "size": { + "x": 129.00262451171875, + "y": 119.26033020019531 + }, + "tag": "" } ], - "texture_min_filter": "Default", - "texture_wrap_x": "Clamp", - "texture_wrap_y": "Clamp", - "type": "Texture", - "uniforms": [ - { - "name": "kTextureRotation", - "value": 0.0 - } - ] - }, + "render_tree": { + "children": [ + { + "children": [ + { + "node": { + "id": "3FFDF2AeTx" + } + }, + { + "node": { + "id": "HD1PD8eh87" + } + } + ], + "node": { + "id": "A81vilJl0v" + } + } + ], + "node": null + }, + "resource_id": "zUdWnjvPal", + "resource_name": "Health Pack", + "resource_ver": 3, + "script_file": "n1HW3heypW", + "tag": "" + } + ], + "materials": [ { - "active_texture_map": "o9R6Heje5f", + "active_texture_map": "tyqPlY1aC7", "flags": { "BlendFrames": true, "EnableBloom": true, "PremultipliedAlpha": false, "Static": false }, - "id": "pGHzP0FH33", - "name": "Cursor", - "resource_id": "pGHzP0FH33", - "resource_name": "Cursor", + "id": "01D5uIlggD", + "name": "Ship Parts", + "resource_id": "01D5uIlggD", + "resource_name": "Ship Parts", "resource_ver": 6, "shader_src": "", "shader_uri": "", @@ -10798,9 +11323,9 @@ "texture_maps": [ { "fps": 0.0, - "id": "o9R6Heje5f", + "id": "tyqPlY1aC7", "looping": true, - "name": "Default", + "name": "spaceParts_001", "rect_name0": "", "rect_name1": "", "sampler_name0": "", @@ -10812,136 +11337,65 @@ "Blur": false, "Edges": false }, - "file": "ws://textures/cursor/crosshair158.png", + "file": "ws://textures/Parts/partss-sheet.png", "flags": { "AllowPacking": true, "AllowResizing": true, "PremulAlpha": false }, - "id": "rtMnrhrbtN", - "name": "crosshair158", + "id": "qLAj9hD9G1", + "name": "spaceParts_001", "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 + "h": 0.1298828125, + "w": 0.095703125, + "x": 0.603515625, + "y": 0.1376953125 }, "type": "Filesystem" } ], "type": "Texture2D" - } - ], - "texture_min_filter": "Default", - "texture_wrap_x": "Clamp", - "texture_wrap_y": "Clamp", - "type": "Texture", - "uniforms": [ - { - "name": "kColor0", - "value": { - "a": 1.0, - "b": 0.9916075468063354, - "g": 0.9687647819519043, - "r": 0.9670100212097168 - } }, - { - "name": "kTextureRotation", - "value": 0.0 - } - ] - }, - { - "active_texture_map": "zIi2To0PGG", - "flags": { - "BlendFrames": true, - "EnableBloom": true, - "PremultipliedAlpha": false, - "Static": false - }, - "id": "pa1NoWe1Op", - "name": "Combo", - "resource_id": "pa1NoWe1Op", - "resource_name": "Combo", - "resource_ver": 6, - "shader_src": "", - "shader_uri": "", - "surface": "Transparent", - "texture_mag_filter": "Default", - "texture_maps": [ { "fps": 0.0, - "id": "zIi2To0PGG", + "id": "yChOm5yvY0", "looping": true, - "name": "Texture", + "name": "spaceParts_002", "rect_name0": "", "rect_name1": "", "sampler_name0": "", "sampler_name1": "", "textures": [ { - "buffer": { - "height": 100, - "horizontal_alignment": "AlignCenter", - "texts": [ - { - "font_file": "app://fonts/ethnocentric rg.otf", - "font_size": 72, - "line_height": 1.0, - "string": "COMBO!\n", - "underline": false - } - ], - "vertical_alignment": "AlignCenter", - "width": 400 - }, + "colorspace": "sRGB", "effects": { "Blur": false, "Edges": false }, - "id": "FTUFv9HG5l", - "name": "TextBuffer", + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "Ad2CEaxP4y", + "name": "spaceParts_002", "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 + "h": 0.1298828125, + "w": 0.095703125, + "x": 0.603515625, + "y": 0.4052734375 }, - "type": "TextBuffer" + "type": "Filesystem" } ], "type": "Texture2D" - } - ], - "texture_min_filter": "Default", - "texture_wrap_x": "Clamp", - "texture_wrap_y": "Clamp", - "type": "Texture" - }, - { - "active_texture_map": "lxn5bL9pah", - "flags": { - "BlendFrames": true, - "EnableBloom": true, - "PremultipliedAlpha": true, - "Static": false - }, - "id": "sg20xzpylY", - "name": "Bullet/Pink 2", - "resource_id": "sg20xzpylY", - "resource_name": "Bullet/Pink 2", - "resource_ver": 6, - "shader_src": "", - "shader_uri": "", - "surface": "Transparent", - "texture_mag_filter": "Default", - "texture_maps": [ + }, { "fps": 0.0, - "id": "lxn5bL9pah", + "id": "JA6Osk4vtg", "looping": true, - "name": "Texture", + "name": "spaceParts_003", "rect_name0": "", "rect_name1": "", "sampler_name0": "", @@ -10953,54 +11407,30 @@ "Blur": false, "Edges": false }, - "file": "ws://textures/shmup-pack-3/bullets/2.png", + "file": "ws://textures/Parts/partss-sheet.png", "flags": { "AllowPacking": true, "AllowResizing": true, - "PremulAlpha": true + "PremulAlpha": false }, - "id": "i1PGNAfaFL", - "name": "2", + "id": "r3L1YClCRu", + "name": "spaceParts_003", "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 + "h": 0.1376953125, + "w": 0.076171875, + "x": 0.4404296875, + "y": 0.1435546875 }, "type": "Filesystem" } ], "type": "Texture2D" - } - ], - "texture_min_filter": "Default", - "texture_wrap_x": "Clamp", - "texture_wrap_y": "Clamp", - "type": "Texture" - }, - { - "active_texture_map": "vg5yQskPIv", - "flags": { - "BlendFrames": true, - "EnableBloom": true, - "PremultipliedAlpha": true, - "Static": true - }, - "id": "vg5yQskPIv", - "name": "Rocket", - "resource_id": "vg5yQskPIv", - "resource_name": "Rocket", - "resource_ver": 6, - "shader_src": "", - "shader_uri": "", - "surface": "Transparent", - "texture_mag_filter": "Default", - "texture_maps": [ + }, { - "fps": 1.0, - "id": "vg5yQskPIv", + "fps": 0.0, + "id": "iOkSJ2W2bY", "looping": true, - "name": "RedMine", + "name": "spaceParts_004", "rect_name0": "", "rect_name1": "", "sampler_name0": "", @@ -11012,68 +11442,30 @@ "Blur": false, "Edges": false }, - "file": "ws://textures/shmup-pack-3/bullets/6.png", + "file": "ws://textures/Parts/partss-sheet.png", "flags": { "AllowPacking": true, "AllowResizing": true, "PremulAlpha": false }, - "id": "jiHasRo1rL", - "name": "6", + "id": "QQQzSwev2I", + "name": "spaceParts_004", "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 + "h": 0.1376953125, + "w": 0.076171875, + "x": 0.4404296875, + "y": 0.001953125 }, "type": "Filesystem" } ], - "type": "Sprite" - } - ], - "texture_min_filter": "Default", - "texture_wrap_x": "Clamp", - "texture_wrap_y": "Clamp", - "type": "Sprite", - "uniforms": [ - { - "name": "kTextureRotation", - "value": 0.0 + "type": "Texture2D" }, - { - "name": "kTextureVelocity", - "value": { - "x": 0.0, - "y": 0.0, - "z": 2.0 - } - } - ] - }, - { - "active_texture_map": "gGIsf4Yh26", - "flags": { - "BlendFrames": true, - "EnableBloom": true, - "PremultipliedAlpha": false, - "Static": false - }, - "id": "wEBG4Nwt8g", - "name": "Player/Weapon 1", - "resource_id": "wEBG4Nwt8g", - "resource_name": "Player/Weapon 1", - "resource_ver": 6, - "shader_src": "", - "shader_uri": "", - "surface": "Transparent", - "texture_mag_filter": "Default", - "texture_maps": [ { "fps": 0.0, - "id": "gGIsf4Yh26", + "id": "Esn4FYoZqN", "looping": true, - "name": "Texture", + "name": "spaceParts_005", "rect_name0": "", "rect_name1": "", "sampler_name0": "", @@ -11085,127 +11477,65 @@ "Blur": false, "Edges": false }, - "file": "ws://textures/shmup-pack-3/items/21.png", + "file": "ws://textures/Parts/partss-sheet.png", "flags": { "AllowPacking": true, "AllowResizing": true, "PremulAlpha": false }, - "id": "03TZnBEdGi", - "name": "21", + "id": "kBWsgSB9vi", + "name": "spaceParts_005", "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 + "h": 0.13671875, + "w": 0.0791015625, + "x": 0.0849609375, + "y": 0.6591796875 }, "type": "Filesystem" } ], "type": "Texture2D" - } - ], - "texture_min_filter": "Default", - "texture_wrap_x": "Clamp", - "texture_wrap_y": "Clamp", - "type": "Texture", - "uniforms": [ - { - "name": "kTextureRotation", - "value": 0.0 - } - ] - }, - { - "active_texture_map": "d5pJBqjLM1", - "flags": { - "BlendFrames": true, - "EnableBloom": true, - "PremultipliedAlpha": false, - "Static": false - }, - "id": "wyzMKbLQ8x", - "name": "Combo Blur", - "resource_id": "wyzMKbLQ8x", - "resource_name": "Combo Blur", - "resource_ver": 6, - "shader_src": "", - "shader_uri": "", - "surface": "Transparent", - "texture_mag_filter": "Default", - "texture_maps": [ + }, { "fps": 0.0, - "id": "d5pJBqjLM1", + "id": "SxGaW3t639", "looping": true, - "name": "Texture", + "name": "spaceParts_006", "rect_name0": "", "rect_name1": "", "sampler_name0": "", "sampler_name1": "", "textures": [ { - "buffer": { - "height": 100, - "horizontal_alignment": "AlignCenter", - "texts": [ - { - "font_file": "app://fonts/ethnocentric rg.otf", - "font_size": 72, - "line_height": 1.0, - "string": "COMBO!\n", - "underline": false - } - ], - "vertical_alignment": "AlignCenter", - "width": 400 - }, + "colorspace": "sRGB", "effects": { - "Blur": true, + "Blur": false, "Edges": false }, - "id": "4rwJEQuwKF", - "name": "TextBuffer", + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "4QtTY4gqvU", + "name": "spaceParts_006", "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 + "h": 0.13671875, + "w": 0.0791015625, + "x": 0.001953125, + "y": 0.6591796875 }, - "type": "TextBuffer" + "type": "Filesystem" } ], "type": "Texture2D" - } - ], - "texture_min_filter": "Default", - "texture_wrap_x": "Clamp", - "texture_wrap_y": "Clamp", - "type": "Texture" - }, - { - "active_texture_map": "76WowKa3mf", - "flags": { - "BlendFrames": true, - "EnableBloom": true, - "PremultipliedAlpha": false, - "Static": false - }, - "id": "x6FkDk0TOK", - "name": "Player/Base", - "resource_id": "x6FkDk0TOK", - "resource_name": "Player/Base", - "resource_ver": 6, - "shader_src": "", - "shader_uri": "", - "surface": "Transparent", - "texture_mag_filter": "Default", - "texture_maps": [ + }, { "fps": 0.0, - "id": "76WowKa3mf", + "id": "C94JYhFb3u", "looping": true, - "name": "Texture", + "name": "spaceParts_007", "rect_name0": "", "rect_name1": "", "sampler_name0": "", @@ -11217,1298 +11547,7851 @@ "Blur": false, "Edges": false }, - "file": "ws://textures/shmup-pack-3/items/3.png", + "file": "ws://textures/Parts/partss-sheet.png", "flags": { "AllowPacking": true, "AllowResizing": true, "PremulAlpha": false }, - "id": "uWDpMB8Amm", - "name": "3", + "id": "WdnQohX7pz", + "name": "spaceParts_007", "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 + "h": 0.140625, + "w": 0.0712890625, + "x": 0.150390625, + "y": 0.5068359375 }, "type": "Filesystem" } ], "type": "Texture2D" - } - ], - "texture_min_filter": "Default", - "texture_wrap_x": "Clamp", - "texture_wrap_y": "Clamp", - "type": "Texture", - "uniforms": [ - { - "name": "kTextureRotation", - "value": 0.0 - } - ] - }, - { - "active_texture_map": "T7htKqeGxX", - "flags": { - "BlendFrames": true, - "EnableBloom": true, - "PremultipliedAlpha": false, - "Static": false - }, - "id": "ztFYdG5FDv", - "name": "Black Smoke", - "resource_id": "ztFYdG5FDv", - "resource_name": "Black Smoke", - "resource_ver": 6, - "shader_src": "", - "shader_uri": "", - "surface": "Transparent", - "texture_mag_filter": "Default", - "texture_maps": [ + }, { "fps": 0.0, - "id": "T7htKqeGxX", + "id": "ZLMXFIKE7E", "looping": true, - "name": "Texture", + "name": "spaceParts_008", "rect_name0": "", "rect_name1": "", "sampler_name0": "", "sampler_name1": "", "textures": [ { - "colorspace": "Linear", + "colorspace": "sRGB", "effects": { "Blur": false, "Edges": false }, - "file": "ws://textures/Effects/Black smoke/blackSmoke00.png", + "file": "ws://textures/Parts/partss-sheet.png", "flags": { "AllowPacking": true, "AllowResizing": true, "PremulAlpha": false }, - "id": "MpKm3nFRoO", - "name": "blackSmoke00", + "id": "69mErLk652", + "name": "spaceParts_008", "rect": { - "h": 1.0, - "w": 1.0, - "x": 0.0, - "y": 0.0 + "h": 0.140625, + "w": 0.0712890625, + "x": 0.2255859375, + "y": 0.5068359375 }, "type": "Filesystem" } ], "type": "Texture2D" - } - ], - "texture_min_filter": "Default", - "texture_wrap_x": "Clamp", - "texture_wrap_y": "Clamp", - "type": "Texture" - } - ], - "particles": [ - { - "alpha_over_dist": 0.0, - "alpha_over_time": -1.0, - "boundary": "Clamp", - "coordinate_space": "Global", - "delay": 0.0, - "direction": "Outwards", - "direction_sector_size": 6.2831854820251465, - "direction_sector_start_angle": 0.0, - "flags": { - "ParticlesCanExpire": true - }, - "gravity": { - "x": 0.0, - "y": 0.30000001192092896 - }, - "growth_over_dist": 0.0, - "growth_over_time": -4.0, - "id": "4Ckmwoylp6", - "init_rect_height": 1.0, - "init_rect_width": 1.0, - "init_rect_xpos": 0.0, - "init_rect_ypos": 0.0, - "max_alpha": 1.0, - "max_lifetime": 1.75, - "max_point_size": 362.0, - "max_time": 3.4028234663852886e+38, - "max_velocity": 1000.0, - "max_xpos": 1.0, - "max_ypos": 1.0, - "min_alpha": 1.0, - "min_lifetime": 0.0, - "min_point_size": 152.0, - "min_time": 0.0, - "min_velocity": 1000.0, - "mode": "Once", - "motion": "Linear", - "name": "Rocket Explosion", - "num_particles": 100.0, - "placement": "Center", - "primitive": "Point", - "resource_id": "4Ckmwoylp6", - "resource_name": "Rocket Explosion", - "resource_ver": 2, - "shape": "Rectangle" - }, - { - "alpha_over_dist": 0.0, - "alpha_over_time": 0.0, - "boundary": "Clamp", - "coordinate_space": "Global", - "delay": 0.0, - "direction": "Sector", - "direction_sector_size": 0.0, - "direction_sector_start_angle": 1.5707963705062866, - "flags": { - "ParticlesCanExpire": true - }, - "gravity": { - "x": 0.0, - "y": 0.30000001192092896 - }, - "growth_over_dist": 0.0, - "growth_over_time": -99.0, - "id": "7pLg2qp4Pp", - "init_rect_height": 1.0, - "init_rect_width": 1.0, - "init_rect_xpos": 0.0, - "init_rect_ypos": 0.0, - "max_alpha": 1.0, - "max_lifetime": 0.550000011920929, - "max_point_size": 31.0, - "max_time": 3.4028234663852886e+38, - "max_velocity": 422.57000732421875, - "max_xpos": 1.0, - "max_ypos": 1.0, - "min_alpha": 1.0, - "min_lifetime": 0.27000001072883606, - "min_point_size": 7.0, - "min_time": 0.0, - "min_velocity": 259.70001220703125, - "mode": "Continuous", - "motion": "Linear", - "name": "Exhaust Particles", - "num_particles": 100.0, - "placement": "Center", - "primitive": "Point", - "resource_id": "7pLg2qp4Pp", - "resource_name": "Exhaust Particles", - "resource_ver": 2, - "shape": "Circle" - }, - { - "alpha_over_dist": 0.009999999776482582, - "alpha_over_time": 0.029999999329447746, - "boundary": "Kill", - "coordinate_space": "Global", - "delay": 0.0, - "direction": "Sector", - "direction_sector_size": 6.2831854820251465, - "direction_sector_start_angle": 0.0, - "flags": { - "ParticlesCanExpire": true - }, - "gravity": { - "x": 0.0, - "y": 3.0 - }, - "growth_over_dist": -99.0, - "growth_over_time": -99.0, - "id": "8exJylNDfi", - "init_rect_height": 1.0, - "init_rect_width": 1.0, - "init_rect_xpos": 0.0, - "init_rect_ypos": 0.0, - "max_alpha": 1.0, - "max_lifetime": 0.3199999928474426, - "max_point_size": 2046.0, - "max_time": 1.0, - "max_velocity": 670.780029296875, - "max_xpos": 1.0, - "max_ypos": 1.0, - "min_alpha": 1.0, - "min_lifetime": 0.019999999552965164, - "min_point_size": 1630.0, - "min_time": 1.0, - "min_velocity": 277.3299865722656, - "mode": "Once", - "motion": "Linear", - "name": "Mine Explosion", - "num_particles": 100.0, - "placement": "Center", - "primitive": "Point", - "resource_id": "8exJylNDfi", - "resource_name": "Mine Explosion", - "resource_ver": 2, - "shape": "Rectangle" - }, - { - "alpha_over_dist": 0.0, - "alpha_over_time": 0.0, - "boundary": "Wrap", - "coordinate_space": "Local", - "delay": 0.0, - "direction": "Sector", - "direction_sector_size": 0.0, - "direction_sector_start_angle": 0.0, - "flags": { - "ParticlesCanExpire": false - }, - "gravity": { - "x": 0.0, - "y": 0.30000001192092896 - }, - "growth_over_dist": 0.0, - "growth_over_time": 0.0, - "id": "9o7zbhlIlp", - "init_rect_height": 1.0, - "init_rect_width": 1.0, - "init_rect_xpos": 0.0, - "init_rect_ypos": 0.0, - "max_alpha": 1.0, - "max_lifetime": 3.4028234663852886e+38, - "max_point_size": 7.0, - "max_time": 3.4028234663852886e+38, - "max_velocity": 0.1599999964237213, - "max_xpos": 1.0, - "max_ypos": 1.0, - "min_alpha": 1.0, - "min_lifetime": 3.4028234663852886e+38, - "min_point_size": 2.0, - "min_time": 0.0, - "min_velocity": 0.03999999910593033, - "mode": "Once", - "motion": "Linear", - "name": "Stars", - "num_particles": 150.0, - "placement": "Inside", - "primitive": "Point", - "resource_id": "9o7zbhlIlp", - "resource_name": "Stars", - "resource_ver": 2, - "shape": "Rectangle" - }, - { - "alpha_over_dist": 0.0, - "alpha_over_time": -1.0, - "boundary": "Kill", - "coordinate_space": "Local", - "delay": 0.0, - "direction": "Sector", - "direction_sector_size": 0.40142571926116943, - "direction_sector_start_angle": -1.7453292608261108, - "flags": { - "ParticlesCanExpire": true - }, - "gravity": { - "x": 0.0, - "y": 500.0 - }, - "growth_over_dist": 0.0, - "growth_over_time": -99.0, - "id": "FF0aZIpHbj", - "init_rect_height": 1.0, - "init_rect_width": 1.0, - "init_rect_xpos": 0.0, - "init_rect_ypos": 0.0, - "max_alpha": 1.0, - "max_lifetime": 0.5, - "max_point_size": 148.0, - "max_time": 3.4028234663852886e+38, - "max_velocity": 209.85000610351563, - "max_xpos": 1.0, - "max_ypos": 1.0, - "min_alpha": 1.0, - "min_lifetime": 0.4000000059604645, - "min_point_size": 69.0, - "min_time": 0.0, - "min_velocity": 128.61000061035156, - "mode": "Command", - "motion": "Linear", - "name": "Gun Particles", - "num_particles": 100.0, - "placement": "Center", - "primitive": "Point", - "resource_id": "FF0aZIpHbj", - "resource_name": "Gun Particles", - "resource_ver": 2, - "shape": "Rectangle" - }, - { - "alpha_over_dist": -1.0, - "alpha_over_time": -1.0, - "boundary": "Kill", - "coordinate_space": "Local", - "delay": 0.0, - "direction": "Sector", - "direction_sector_size": 0.5235987901687622, - "direction_sector_start_angle": 1.2566370964050293, - "flags": { - "ParticlesCanExpire": true - }, - "gravity": { - "x": 0.0, - "y": 0.30000001192092896 - }, - "growth_over_dist": 0.0, - "growth_over_time": -99.0, - "id": "Gk8mjavP85", - "init_rect_height": 1.0, - "init_rect_width": 1.0, - "init_rect_xpos": 0.0, - "init_rect_ypos": 0.0, - "max_alpha": 1.0, - "max_lifetime": 0.30000001192092896, - "max_point_size": 217.0, - "max_time": 3.4028234663852886e+38, - "max_velocity": 46.619998931884766, - "max_xpos": 1.0, - "max_ypos": 1.0, - "min_alpha": 1.0, - "min_lifetime": 0.10000000149011612, - "min_point_size": 103.0, - "min_time": 0.0, - "min_velocity": 0.009999999776482582, - "mode": "Command", - "motion": "Linear", - "name": "Player Explosion", - "num_particles": 100.0, - "placement": "Center", - "primitive": "Point", - "resource_id": "Gk8mjavP85", - "resource_name": "Player Explosion", - "resource_ver": 2, - "shape": "Rectangle" + }, + { + "fps": 0.0, + "id": "xfyGGvCnJK", + "looping": true, + "name": "spaceParts_009", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "MQhib6MFCq", + "name": "spaceParts_009", + "rect": { + "h": 0.1630859375, + "w": 0.0498046875, + "x": 0.068359375, + "y": 0.1728515625 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "wmYSkslNgA", + "looping": true, + "name": "spaceParts_010", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "wpGWtYZ0Eb", + "name": "spaceParts_010", + "rect": { + "h": 0.1630859375, + "w": 0.0498046875, + "x": 0.134765625, + "y": 0.001953125 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "typghBQEv4", + "looping": true, + "name": "spaceParts_011", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "RE2x0CeAvm", + "name": "spaceParts_011", + "rect": { + "h": 0.15234375, + "w": 0.0693359375, + "x": 0.08984375, + "y": 0.34375 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "HAwLF42Meu", + "looping": true, + "name": "spaceParts_012", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "rJFRqkJMqQ", + "name": "spaceParts_012", + "rect": { + "h": 0.15234375, + "w": 0.0693359375, + "x": 0.1630859375, + "y": 0.34375 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "20pSYwilN6", + "looping": true, + "name": "spaceParts_013", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "AUiCCUsv7r", + "name": "spaceParts_013", + "rect": { + "h": 0.1591796875, + "w": 0.083984375, + "x": 0.001953125, + "y": 0.34375 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "2dffoqCgMT", + "looping": true, + "name": "spaceParts_014", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "4H3tEmekYD", + "name": "spaceParts_014", + "rect": { + "h": 0.1591796875, + "w": 0.083984375, + "x": 0.1884765625, + "y": 0.001953125 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "3NWStRsUNC", + "looping": true, + "name": "spaceParts_015", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "x1UahrBtdP", + "name": "spaceParts_015", + "rect": { + "h": 0.1669921875, + "w": 0.0625, + "x": 0.068359375, + "y": 0.001953125 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "p2OG31obS7", + "looping": true, + "name": "spaceParts_016", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "3ttidvH7v5", + "name": "spaceParts_016", + "rect": { + "h": 0.1669921875, + "w": 0.0625, + "x": 0.001953125, + "y": 0.1728515625 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "nC0fxrSKSd", + "looping": true, + "name": "spaceParts_017", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "6HMZDkjbrA", + "name": "spaceParts_017", + "rect": { + "h": 0.1494140625, + "w": 0.0869140625, + "x": 0.349609375, + "y": 0.001953125 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "UK1EtKhUdU", + "looping": true, + "name": "spaceParts_018", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "gaZ5SteEbu", + "name": "spaceParts_018", + "rect": { + "h": 0.1494140625, + "w": 0.0869140625, + "x": 0.349609375, + "y": 0.1552734375 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "aYku2mOm8G", + "looping": true, + "name": "spaceParts_019", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "Gx667ws91P", + "name": "spaceParts_019", + "rect": { + "h": 0.1484375, + "w": 0.0693359375, + "x": 0.2763671875, + "y": 0.158203125 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "Ex0STGj9u7", + "looping": true, + "name": "spaceParts_020", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "5mWZekGSQU", + "name": "spaceParts_020", + "rect": { + "h": 0.1484375, + "w": 0.0693359375, + "x": 0.2763671875, + "y": 0.310546875 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "q2lfDM04oR", + "looping": true, + "name": "spaceParts_021", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "fh6sgr0otj", + "name": "spaceParts_021", + "rect": { + "h": 0.13671875, + "w": 0.0732421875, + "x": 0.5205078125, + "y": 0.142578125 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "kn8Uw88zn4", + "looping": true, + "name": "spaceParts_022", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "08Gq0A5REu", + "name": "spaceParts_022", + "rect": { + "h": 0.1357421875, + "w": 0.09375, + "x": 0.16796875, + "y": 0.6591796875 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "YOxeGdoePi", + "looping": true, + "name": "spaceParts_023", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "PpIgT8Sdzn", + "name": "spaceParts_023", + "rect": { + "h": 0.1298828125, + "w": 0.095703125, + "x": 0.603515625, + "y": 0.271484375 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "hUeqPArZ3X", + "looping": true, + "name": "spaceParts_024", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "wtAWDexCzf", + "name": "spaceParts_024", + "rect": { + "h": 0.1376953125, + "w": 0.076171875, + "x": 0.30078125, + "y": 0.5068359375 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "QliX9MdAW1", + "looping": true, + "name": "spaceParts_025", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "hC5jKFm6q9", + "name": "spaceParts_025", + "rect": { + "h": 0.13671875, + "w": 0.0791015625, + "x": 0.5205078125, + "y": 0.001953125 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "M7g8eJXfrb", + "looping": true, + "name": "spaceParts_026", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "kwvtmXbWPQ", + "name": "spaceParts_026", + "rect": { + "h": 0.140625, + "w": 0.0712890625, + "x": 0.0751953125, + "y": 0.5068359375 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "M4QvEdyNBN", + "looping": true, + "name": "spaceParts_027", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "6INhsvui2Z", + "name": "spaceParts_027", + "rect": { + "h": 0.1630859375, + "w": 0.0498046875, + "x": 0.134765625, + "y": 0.1689453125 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "mTR743vnwu", + "looping": true, + "name": "spaceParts_028", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "j2xm4XUa2G", + "name": "spaceParts_028", + "rect": { + "h": 0.15234375, + "w": 0.0693359375, + "x": 0.2763671875, + "y": 0.001953125 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "S2ufPJDmTh", + "looping": true, + "name": "spaceParts_029", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "CJN4dXvOEq", + "name": "spaceParts_029", + "rect": { + "h": 0.1591796875, + "w": 0.083984375, + "x": 0.1884765625, + "y": 0.1650390625 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "Kbyle3f7Uy", + "looping": true, + "name": "spaceParts_030", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "Foy37XwYzK", + "name": "spaceParts_030", + "rect": { + "h": 0.1669921875, + "w": 0.0625, + "x": 0.001953125, + "y": 0.001953125 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "otSTh6v7bK", + "looping": true, + "name": "spaceParts_031", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "EofyP4lW62", + "name": "spaceParts_031", + "rect": { + "h": 0.1494140625, + "w": 0.0869140625, + "x": 0.349609375, + "y": 0.30859375 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "h1vZBI4253", + "looping": true, + "name": "spaceParts_032", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "QEqxil3Wyp", + "name": "spaceParts_032", + "rect": { + "h": 0.1484375, + "w": 0.0693359375, + "x": 0.001953125, + "y": 0.5068359375 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "IPbA3TRAXI", + "looping": true, + "name": "spaceParts_033", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "aeEdCTsK8o", + "name": "spaceParts_033", + "rect": { + "h": 0.1083984375, + "w": 0.072265625, + "x": 0.7900390625, + "y": 0.23046875 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "iWlqqLkPuP", + "looping": true, + "name": "spaceParts_034", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "qZT7iYiGSx", + "name": "spaceParts_034", + "rect": { + "h": 0.1220703125, + "w": 0.0625, + "x": 0.7080078125, + "y": 0.2607421875 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "KEQ2L5L8B9", + "looping": true, + "name": "spaceParts_035", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "eCqGaZanML", + "name": "spaceParts_035", + "rect": { + "h": 0.1201171875, + "w": 0.0927734375, + "x": 0.5185546875, + "y": 0.7998046875 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "lgsy6A6424", + "looping": true, + "name": "spaceParts_036", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "bH1F3oZUFi", + "name": "spaceParts_036", + "rect": { + "h": 0.13671875, + "w": 0.0673828125, + "x": 0.5205078125, + "y": 0.283203125 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "NEL1eEQmyZ", + "looping": true, + "name": "spaceParts_037", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "GCGZJJ8m7K", + "name": "spaceParts_037", + "rect": { + "h": 0.1103515625, + "w": 0.0791015625, + "x": 0.7900390625, + "y": 0.1162109375 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "TEYdJTfuFx", + "looping": true, + "name": "spaceParts_038", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "v2ry5dNtiC", + "name": "spaceParts_038", + "rect": { + "h": 0.12109375, + "w": 0.0732421875, + "x": 0.7080078125, + "y": 0.38671875 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "XMOEqXBqPF", + "looping": true, + "name": "spaceParts_039", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "knlHjvMiyo", + "name": "spaceParts_039", + "rect": { + "h": 0.1279296875, + "w": 0.0859375, + "x": 0.33203125, + "y": 0.7998046875 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "dP63E5MvC5", + "looping": true, + "name": "spaceParts_040", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "PP90vYtL5t", + "name": "spaceParts_040", + "rect": { + "h": 0.1279296875, + "w": 0.1162109375, + "x": 0.001953125, + "y": 0.7998046875 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "Ju7t4d4Sb7", + "looping": true, + "name": "spaceParts_041", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "K7Lzo5kUd9", + "name": "spaceParts_041", + "rect": { + "h": 0.1318359375, + "w": 0.1005859375, + "x": 0.4609375, + "y": 0.6591796875 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "vUJaLupgQN", + "looping": true, + "name": "spaceParts_042", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "yD0LMLqMkC", + "name": "spaceParts_042", + "rect": { + "h": 0.12890625, + "w": 0.06640625, + "x": 0.603515625, + "y": 0.5390625 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "qDzZ3itz35", + "looping": true, + "name": "spaceParts_043", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "y7behWtzEF", + "name": "spaceParts_043", + "rect": { + "h": 0.091796875, + "w": 0.056640625, + "x": 0.7900390625, + "y": 0.455078125 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "RxYConA9xk", + "looping": true, + "name": "spaceParts_044", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "bMRis7pDOn", + "name": "spaceParts_044", + "rect": { + "h": 0.12109375, + "w": 0.083984375, + "x": 0.603515625, + "y": 0.671875 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "tCF8ZDUK8M", + "looping": true, + "name": "spaceParts_045", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "S5k9pIt5C8", + "name": "spaceParts_045", + "rect": { + "h": 0.12890625, + "w": 0.078125, + "x": 0.7080078125, + "y": 0.001953125 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "MdtIZ4Sgtg", + "looping": true, + "name": "spaceParts_046", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "QOwFgXlO1K", + "name": "spaceParts_046", + "rect": { + "h": 0.1083984375, + "w": 0.072265625, + "x": 0.7900390625, + "y": 0.3427734375 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "xz8JeUwdDp", + "looping": true, + "name": "spaceParts_047", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "HIKzRRDxrl", + "name": "spaceParts_047", + "rect": { + "h": 0.1220703125, + "w": 0.0625, + "x": 0.7080078125, + "y": 0.134765625 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "6dIFXul6Fv", + "looping": true, + "name": "spaceParts_048", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "kXQwrTMd9G", + "name": "spaceParts_048", + "rect": { + "h": 0.1201171875, + "w": 0.0927734375, + "x": 0.421875, + "y": 0.7998046875 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "2K0PmTLoH7", + "looping": true, + "name": "spaceParts_049", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "7tGH00NKNx", + "name": "spaceParts_049", + "rect": { + "h": 0.13671875, + "w": 0.0673828125, + "x": 0.5205078125, + "y": 0.423828125 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "KKW5djA7f0", + "looping": true, + "name": "spaceParts_050", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "gXJxQR3rnw", + "name": "spaceParts_050", + "rect": { + "h": 0.1103515625, + "w": 0.0791015625, + "x": 0.7900390625, + "y": 0.001953125 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "6QHlvnFvG1", + "looping": true, + "name": "spaceParts_051", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "8gvBDwpn5j", + "name": "spaceParts_051", + "rect": { + "h": 0.12109375, + "w": 0.0732421875, + "x": 0.7080078125, + "y": 0.51171875 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "DrmWQ43fPg", + "looping": true, + "name": "spaceParts_052", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "vWH50xvpCB", + "name": "spaceParts_052", + "rect": { + "h": 0.1279296875, + "w": 0.0859375, + "x": 0.2421875, + "y": 0.7998046875 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "aYDW7Y9ZiZ", + "looping": true, + "name": "spaceParts_053", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "4dD8sDz5ZD", + "name": "spaceParts_053", + "rect": { + "h": 0.1279296875, + "w": 0.1162109375, + "x": 0.1220703125, + "y": 0.7998046875 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "MdTZ6rTNIv", + "looping": true, + "name": "spaceParts_054", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "TuiBlkr6re", + "name": "spaceParts_054", + "rect": { + "h": 0.1318359375, + "w": 0.1005859375, + "x": 0.603515625, + "y": 0.001953125 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "tGQWqpT26O", + "looping": true, + "name": "spaceParts_055", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "jUWvBB3d3k", + "name": "spaceParts_055", + "rect": { + "h": 0.056640625, + "w": 0.0263671875, + "x": 0.673828125, + "y": 0.6015625 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "bXh3izPgOg", + "looping": true, + "name": "spaceParts_056", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "CKGPjtnPk7", + "name": "spaceParts_056", + "rect": { + "h": 0.05859375, + "w": 0.0244140625, + "x": 0.673828125, + "y": 0.5390625 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "2M28jwi0GP", + "looping": true, + "name": "spaceParts_057", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "JQf9Sk47kf", + "name": "spaceParts_057", + "rect": { + "h": 0.0498046875, + "w": 0.0322265625, + "x": 0.873046875, + "y": 0.2333984375 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "5dPmiz8Uj0", + "looping": true, + "name": "spaceParts_058", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "3mRGEsNCtg", + "name": "spaceParts_058", + "rect": { + "h": 0.0546875, + "w": 0.02734375, + "x": 0.873046875, + "y": 0.12109375 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "LOoQRbfEdj", + "looping": true, + "name": "spaceParts_059", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "xy6agw6mnG", + "name": "spaceParts_059", + "rect": { + "h": 0.056640625, + "w": 0.046875, + "x": 0.873046875, + "y": 0.001953125 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "jGaitS0xPZ", + "looping": true, + "name": "spaceParts_060", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "yxILahLDEX", + "name": "spaceParts_060", + "rect": { + "h": 0.05859375, + "w": 0.0390625, + "x": 0.380859375, + "y": 0.5068359375 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "4Rm72ENQsK", + "looping": true, + "name": "spaceParts_061", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "NtMHrIMEZa", + "name": "spaceParts_061", + "rect": { + "h": 0.0625, + "w": 0.0322265625, + "x": 0.8115234375, + "y": 0.8203125 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "jhL3yPMnkg", + "looping": true, + "name": "spaceParts_062", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "ZuqfpUATlD", + "name": "spaceParts_062", + "rect": { + "h": 0.064453125, + "w": 0.017578125, + "x": 0.8330078125, + "y": 0.68359375 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "3pii0rI8Kv", + "looping": true, + "name": "spaceParts_063", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "bTJ3U0fedu", + "name": "spaceParts_063", + "rect": { + "h": 0.064453125, + "w": 0.017578125, + "x": 0.7900390625, + "y": 0.68359375 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "lhgWHeyreX", + "looping": true, + "name": "spaceParts_064", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "syjnLTwP5z", + "name": "spaceParts_064", + "rect": { + "h": 0.064453125, + "w": 0.017578125, + "x": 0.8115234375, + "y": 0.68359375 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "Ke7xivQYrj", + "looping": true, + "name": "spaceParts_065", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "EkxLlxpf1z", + "name": "spaceParts_065", + "rect": { + "h": 0.064453125, + "w": 0.0185546875, + "x": 0.7900390625, + "y": 0.751953125 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "TfJyleZW4B", + "looping": true, + "name": "spaceParts_066", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "ZGDJryiZiW", + "name": "spaceParts_066", + "rect": { + "h": 0.05078125, + "w": 0.05078125, + "x": 0.732421875, + "y": 0.7998046875 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "nLh8Gb36U0", + "looping": true, + "name": "spaceParts_067", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "WmxS2G1ODj", + "name": "spaceParts_067", + "rect": { + "h": 0.03125, + "w": 0.03125, + "x": 0.873046875, + "y": 0.458984375 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "EeHQqoCpWD", + "looping": true, + "name": "spaceParts_068", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "aIxNuuqi0o", + "name": "spaceParts_068", + "rect": { + "h": 0.048828125, + "w": 0.033203125, + "x": 0.873046875, + "y": 0.287109375 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "Q4RMjMMTvI", + "looping": true, + "name": "spaceParts_069", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "ImqMOyAsXF", + "name": "spaceParts_069", + "rect": { + "h": 0.041015625, + "w": 0.044921875, + "x": 0.873046875, + "y": 0.33984375 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "whCWdf6iT3", + "looping": true, + "name": "spaceParts_070", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "ABk6Z4FqWP", + "name": "spaceParts_070", + "rect": { + "h": 0.03515625, + "w": 0.041015625, + "x": 0.873046875, + "y": 0.384765625 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "lLXy2jyHA6", + "looping": true, + "name": "spaceParts_071", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "JW0rSTfePo", + "name": "spaceParts_071", + "rect": { + "h": 0.060546875, + "w": 0.037109375, + "x": 0.7080078125, + "y": 0.703125 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "xpRQA6CDPp", + "looping": true, + "name": "spaceParts_072", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "N0ngYMTvMh", + "name": "spaceParts_072", + "rect": { + "h": 0.060546875, + "w": 0.0546875, + "x": 0.5205078125, + "y": 0.564453125 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "J8OtNjXT8L", + "looping": true, + "name": "spaceParts_073", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "GvbaRCPsOz", + "name": "spaceParts_073", + "rect": { + "h": 0.056640625, + "w": 0.0263671875, + "x": 0.4833984375, + "y": 0.56640625 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "wZmjSFPMSY", + "looping": true, + "name": "spaceParts_074", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "y2OkapEt3H", + "name": "spaceParts_074", + "rect": { + "h": 0.05859375, + "w": 0.0244140625, + "x": 0.7490234375, + "y": 0.703125 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "8lN5buH4SY", + "looping": true, + "name": "spaceParts_075", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "KMpMb87nmy", + "name": "spaceParts_075", + "rect": { + "h": 0.0498046875, + "w": 0.0322265625, + "x": 0.873046875, + "y": 0.1796875 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "ob8kS9lCbG", + "looping": true, + "name": "spaceParts_076", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "ut86QY6HaE", + "name": "spaceParts_076", + "rect": { + "h": 0.0546875, + "w": 0.02734375, + "x": 0.873046875, + "y": 0.0625 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "y3FdODZFL1", + "looping": true, + "name": "spaceParts_077", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "HOFQHoAF5M", + "name": "spaceParts_077", + "rect": { + "h": 0.056640625, + "w": 0.046875, + "x": 0.380859375, + "y": 0.5693359375 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "DKaE5oK0Fk", + "looping": true, + "name": "spaceParts_078", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "Lgdn3gXYLu", + "name": "spaceParts_078", + "rect": { + "h": 0.05859375, + "w": 0.0390625, + "x": 0.4404296875, + "y": 0.56640625 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "KTi7yZatyO", + "looping": true, + "name": "spaceParts_079", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "kOCZMXXLKJ", + "name": "spaceParts_079", + "rect": { + "h": 0.0625, + "w": 0.0322265625, + "x": 0.7080078125, + "y": 0.63671875 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "y2fmFJORaA", + "looping": true, + "name": "spaceParts_080", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "wuzprQGTl1", + "name": "spaceParts_080", + "rect": { + "h": 0.064453125, + "w": 0.017578125, + "x": 0.8505859375, + "y": 0.455078125 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "TDhPFm4zyi", + "looping": true, + "name": "spaceParts_081", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "MUJwdFH97q", + "name": "spaceParts_081", + "rect": { + "h": 0.064453125, + "w": 0.017578125, + "x": 0.7900390625, + "y": 0.8203125 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "lsiNRCjkaA", + "looping": true, + "name": "spaceParts_082", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "otgDiuJ3Gw", + "name": "spaceParts_082", + "rect": { + "h": 0.064453125, + "w": 0.017578125, + "x": 0.8125, + "y": 0.751953125 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "87YISCjSvh", + "looping": true, + "name": "spaceParts_083", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "X6uv7knPh9", + "name": "spaceParts_083", + "rect": { + "h": 0.064453125, + "w": 0.0185546875, + "x": 0.833984375, + "y": 0.751953125 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "CCAOdhCGrI", + "looping": true, + "name": "spaceParts_084", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "jpXbgvKiq6", + "name": "spaceParts_084", + "rect": { + "h": 0.05078125, + "w": 0.05078125, + "x": 0.0986328125, + "y": 0.931640625 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "ExmPxURiF5", + "looping": true, + "name": "spaceParts_085", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "ZyK6PPktdL", + "name": "spaceParts_085", + "rect": { + "h": 0.03125, + "w": 0.03125, + "x": 0.873046875, + "y": 0.423828125 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "aGLYIf2wy3", + "looping": true, + "name": "spaceParts_086", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "wAybdnaJEW", + "name": "spaceParts_086", + "rect": { + "h": 0.04296875, + "w": 0.0703125, + "x": 0.7900390625, + "y": 0.63671875 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "YDhvUUJdpH", + "looping": true, + "name": "spaceParts_087", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "Auhd1famlO", + "name": "spaceParts_087", + "rect": { + "h": 0.0546875, + "w": 0.11328125, + "x": 0.615234375, + "y": 0.7998046875 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "LalB3W9F3X", + "looping": true, + "name": "spaceParts_088", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "19uUKNGS10", + "name": "spaceParts_088", + "rect": { + "h": 0.0234375, + "w": 0.10546875, + "x": 0.615234375, + "y": 0.8583984375 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "yxNZnttSav", + "looping": true, + "name": "spaceParts_089", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "dHy164aZpE", + "name": "spaceParts_089", + "rect": { + "h": 0.05078125, + "w": 0.0927734375, + "x": 0.001953125, + "y": 0.931640625 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "TI7O4XNESa", + "looping": true, + "name": "spaceParts_090", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "k5spgWvHsn", + "name": "spaceParts_090", + "rect": { + "h": 0.02734375, + "w": 0.099609375, + "x": 0.615234375, + "y": 0.8857421875 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "fuG2pMgH7G", + "looping": true, + "name": "spaceParts_091", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "467EPh78HF", + "name": "spaceParts_091", + "rect": { + "h": 0.0595703125, + "w": 0.021484375, + "x": 0.84765625, + "y": 0.8203125 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "DTY4voH0nz", + "looping": true, + "name": "spaceParts_092", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "NXt2wGCYq7", + "name": "spaceParts_092", + "rect": { + "h": 0.07421875, + "w": 0.03125, + "x": 0.8251953125, + "y": 0.55078125 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "PAfdywGDIq", + "looping": true, + "name": "spaceParts_093", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "TI9OW3wiN7", + "name": "spaceParts_093", + "rect": { + "h": 0.0625, + "w": 0.02734375, + "x": 0.744140625, + "y": 0.63671875 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "4bZtf1iqG4", + "looping": true, + "name": "spaceParts_094", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "J63WNPHBrT", + "name": "spaceParts_094", + "rect": { + "h": 0.08203125, + "w": 0.03125, + "x": 0.7900390625, + "y": 0.55078125 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "tYt2UhnzaP", + "looping": true, + "name": "spaceParts_095", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "vsN8PXl6Xg", + "name": "spaceParts_095", + "rect": { + "h": 0.13671875, + "w": 0.0732421875, + "x": 0.4404296875, + "y": 0.42578125 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "jT6uimUEB9", + "looping": true, + "name": "spaceParts_096", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "oii17dN9pH", + "name": "spaceParts_096", + "rect": { + "h": 0.13671875, + "w": 0.0732421875, + "x": 0.4404296875, + "y": 0.28515625 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "UL195gAIkX", + "looping": true, + "name": "spaceParts_097", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "BZvdUt1y8b", + "name": "spaceParts_097", + "rect": { + "h": 0.1357421875, + "w": 0.09375, + "x": 0.265625, + "y": 0.6591796875 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + }, + { + "fps": 0.0, + "id": "KAQIkfxTFQ", + "looping": true, + "name": "spaceParts_098", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Parts/partss-sheet.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "LiqnGCxfna", + "name": "spaceParts_098", + "rect": { + "h": 0.1357421875, + "w": 0.09375, + "x": 0.36328125, + "y": 0.6591796875 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + } + ], + "texture_min_filter": "Default", + "texture_wrap_x": "Clamp", + "texture_wrap_y": "Clamp", + "type": "Texture" + }, + { + "active_texture_map": "SwIrDueLiR", + "flags": { + "BlendFrames": true, + "EnableBloom": true, + "PremultipliedAlpha": false, + "Static": false + }, + "id": "2a488SIQsU", + "name": "Shockwave", + "resource_id": "2a488SIQsU", + "resource_name": "Shockwave", + "resource_ver": 6, + "shader_src": "", + "shader_uri": "ws://shaders/es2/disc.glsl", + "surface": "Transparent", + "texture_mag_filter": "Default", + "texture_maps": [ + { + "fps": 0.0, + "id": "SwIrDueLiR", + "looping": true, + "name": "kTexture0", + "rect_name0": "kTextureRect", + "rect_name1": "", + "sampler_name0": "kTexture0", + "sampler_name1": "", + "textures": [ + { + "effects": { + "Blur": false, + "Edges": false + }, + "function": "Noise", + "generator": { + "height": 30, + "layers": [ + { + "amplitude": 42.0, + "frequency": 26.0, + "prime0": 2659, + "prime1": 743, + "prime2": 7873 + } + ], + "width": 30 + }, + "id": "LDWnZ2fuen", + "name": "Noise", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "BitmapGenerator" + } + ], + "type": "Texture2D" + } + ], + "texture_min_filter": "Default", + "texture_wrap_x": "Clamp", + "texture_wrap_y": "Clamp", + "type": "Custom", + "uniforms": [ + { + "name": "kBaseColor", + "value": { + "a": 1.0, + "b": 0.0, + "g": 1.0, + "r": 0.22633707523345947 + } + }, + { + "name": "kColor0", + "value": { + "a": 1.0, + "b": 0.0, + "g": 1.0, + "r": 0.01933318004012108 + } + }, + { + "name": "kTextureRotation", + "value": 0.0 + } + ] + }, + { + "active_texture_map": "wAsLzMR2Zx", + "flags": { + "BlendFrames": true, + "EnableBloom": true, + "PremultipliedAlpha": false, + "Static": false + }, + "id": "5YQ8ZqObX7", + "name": "Smooth Round Particle", + "resource_id": "5YQ8ZqObX7", + "resource_name": "Smooth Round Particle", + "resource_ver": 6, + "shader_src": "", + "shader_uri": "", + "surface": "Transparent", + "texture_mag_filter": "Default", + "texture_maps": [ + { + "fps": 0.0, + "id": "wAsLzMR2Zx", + "looping": true, + "name": "Default", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/RoundParticle.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "Y6tN5Yy5IM", + "name": "RoundParticle", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + } + ], + "texture_min_filter": "Default", + "texture_wrap_x": "Clamp", + "texture_wrap_y": "Clamp", + "type": "Texture", + "uniforms": [ + { + "name": "kTextureRotation", + "value": 0.0 + } + ] + }, + { + "active_texture_map": "aCNHF9kxFK", + "flags": { + "BlendFrames": true, + "EnableBloom": true, + "PremultipliedAlpha": false, + "Static": false + }, + "id": "5aOlnaj3v3", + "name": "Combo Fill", + "resource_id": "5aOlnaj3v3", + "resource_name": "Combo Fill", + "resource_ver": 6, + "shader_src": "", + "shader_uri": "ws://shaders/es2/text.glsl", + "surface": "Emissive", + "texture_mag_filter": "Default", + "texture_maps": [ + { + "fps": 0.0, + "id": "aCNHF9kxFK", + "looping": true, + "name": "kTexture0", + "rect_name0": "kTexture0Rect", + "rect_name1": "", + "sampler_name0": "kTexture0", + "sampler_name1": "", + "textures": [ + { + "buffer": { + "height": 100, + "horizontal_alignment": "AlignCenter", + "texts": [ + { + "font_file": "app://fonts/ethnocentric rg.otf", + "font_size": 72, + "line_height": 1.0, + "string": "combo!", + "underline": false + } + ], + "vertical_alignment": "AlignCenter", + "width": 400 + }, + "effects": { + "Blur": false, + "Edges": false + }, + "id": "M7o3AbPMwF", + "name": "TextBuffer", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "TextBuffer" + } + ], + "type": "Texture2D" + } + ], + "texture_min_filter": "Default", + "texture_wrap_x": "Clamp", + "texture_wrap_y": "Clamp", + "type": "Custom", + "uniforms": [ + { + "name": "kBaseColor", + "value": { + "a": 1.0, + "b": 0.9333333373069763, + "g": 0.6431372761726379, + "r": 0.6196078658103943 + } + } + ] + }, + { + "active_texture_map": "57frP7CeCj", + "flags": { + "BlendFrames": true, + "EnableBloom": true, + "PremultipliedAlpha": false, + "Static": false + }, + "id": "CeOxBBO4ib", + "name": "Title Outline", + "resource_id": "CeOxBBO4ib", + "resource_name": "Title Outline", + "resource_ver": 6, + "shader_src": "", + "shader_uri": "", + "surface": "Transparent", + "texture_mag_filter": "Default", + "texture_maps": [ + { + "fps": 0.0, + "id": "57frP7CeCj", + "looping": true, + "name": "Texture", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "buffer": { + "height": 200, + "horizontal_alignment": "AlignCenter", + "texts": [ + { + "font_file": "app://fonts/ethnocentric rg.otf", + "font_size": 72, + "line_height": 0.800000011920929, + "string": "Blast", + "underline": false + } + ], + "vertical_alignment": "AlignCenter", + "width": 350 + }, + "effects": { + "Blur": true, + "Edges": true + }, + "id": "G6Te2C5yd6", + "name": "TextBuffer", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "TextBuffer" + } + ], + "type": "Texture2D" + } + ], + "texture_min_filter": "Default", + "texture_wrap_x": "Clamp", + "texture_wrap_y": "Clamp", + "type": "Texture" + }, + { + "active_texture_map": "7v3lwjL0PK", + "flags": { + "BlendFrames": true, + "EnableBloom": true, + "PremultipliedAlpha": false, + "Static": true + }, + "id": "CopZZzjQd4", + "name": "Background", + "resource_id": "CopZZzjQd4", + "resource_name": "Background", + "resource_ver": 6, + "shader_src": "", + "shader_uri": "", + "surface": "Transparent", + "texture_mag_filter": "Default", + "texture_maps": [ + { + "fps": 0.0, + "id": "7v3lwjL0PK", + "looping": true, + "name": "Default", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/shmup-pack-3/background.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "JgPJpKrv3t", + "name": "background", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + } + ], + "texture_min_filter": "Default", + "texture_wrap_x": "Clamp", + "texture_wrap_y": "Clamp", + "type": "Texture", + "uniforms": [ + { + "name": "kTextureRotation", + "value": 0.0 + } + ] + }, + { + "active_texture_map": "Or54nsWZ4C", + "flags": { + "BlendFrames": true, + "EnableBloom": true, + "PremultipliedAlpha": false, + "Static": false + }, + "id": "EuyGHU1pbR", + "name": "Missile/ 01", + "resource_id": "EuyGHU1pbR", + "resource_name": "Missile/ 01", + "resource_ver": 6, + "shader_src": "", + "shader_uri": "", + "surface": "Transparent", + "texture_mag_filter": "Default", + "texture_maps": [ + { + "fps": 0.0, + "id": "Or54nsWZ4C", + "looping": true, + "name": "Texture", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Ammunition/spaceMissiles_015.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "lWlQjKaqtK", + "name": "spaceMissiles_015", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + } + ], + "texture_min_filter": "Default", + "texture_wrap_x": "Clamp", + "texture_wrap_y": "Clamp", + "type": "Texture", + "uniforms": [ + { + "name": "kTextureRotation", + "value": 0.0 + } + ] + }, + { + "active_texture_map": "hGSQIep9Hf", + "flags": { + "BlendFrames": true, + "EnableBloom": true, + "PremultipliedAlpha": false, + "Static": false + }, + "id": "FwZHJhGSYv", + "name": "Mega Spark Particle", + "resource_id": "FwZHJhGSYv", + "resource_name": "Mega Spark Particle", + "resource_ver": 6, + "shader_src": "", + "shader_uri": "", + "surface": "Emissive", + "texture_mag_filter": "Default", + "texture_maps": [ + { + "fps": 0.0, + "id": "hGSQIep9Hf", + "looping": true, + "name": "kMask", + "rect_name0": "kMaskRect", + "rect_name1": "", + "sampler_name0": "kMask", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "app://textures/particles/spark_05.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "9Wshh0DbOu", + "name": "Texture", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + } + ], + "texture_min_filter": "Default", + "texture_wrap_x": "Clamp", + "texture_wrap_y": "Clamp", + "type": "Particle2D", + "uniforms": [ + { + "name": "kParticleBaseRotation", + "value": 0.0 + }, + { + "name": "kParticleEndColor", + "value": { + "a": 0.0, + "b": 0.9561455845832825, + "g": 0.8402838110923767, + "r": 0.6150148510932922 + } + }, + { + "name": "kParticleMidColor", + "value": { + "a": 0.5, + "b": 0.9780727624893188, + "g": 0.762058436870575, + "r": 0.3075074255466461 + } + }, + { + "name": "kParticleRotation", + "value": 4 + }, + { + "name": "kParticleStartColor", + "value": { + "a": 1.0, + "b": 1.0, + "g": 0.6838330626487732, + "r": 0.0 + } + } + ] + }, + { + "active_texture_map": "ivMsAaY3zt", + "flags": { + "BlendFrames": true, + "EnableBloom": true, + "PremultipliedAlpha": false, + "Static": false + }, + "id": "HDUIR1Bb7G", + "name": "Explosion", + "resource_id": "HDUIR1Bb7G", + "resource_name": "Explosion", + "resource_ver": 6, + "shader_src": "", + "shader_uri": "", + "surface": "Transparent", + "texture_mag_filter": "Default", + "texture_maps": [ + { + "fps": 50.0, + "id": "ivMsAaY3zt", + "looping": true, + "name": "Sprite", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_001.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "ZnU3BYNxuR", + "name": "explosion1_001", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_002.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "LtWJm2W6De", + "name": "explosion1_002", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_003.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "BMNBgpKDC8", + "name": "explosion1_003", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_004.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "antLkpCGPR", + "name": "explosion1_004", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_005.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "WovGlQORq3", + "name": "explosion1_005", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_006.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "ZCGObTCjXC", + "name": "explosion1_006", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_007.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "s4f0GvytvQ", + "name": "explosion1_007", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_008.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "5hsnwDojdb", + "name": "explosion1_008", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_009.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "rbN1a0f2FQ", + "name": "explosion1_009", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0010.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "WCg9isZC2n", + "name": "explosion1_0010", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0011.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "pZ1FdiaM0u", + "name": "explosion1_0011", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0012.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "WAk1tjx3AJ", + "name": "explosion1_0012", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0013.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "t0Oy3TDEHE", + "name": "explosion1_0013", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0014.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "fI2Q2khSI6", + "name": "explosion1_0014", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0015.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "vL886sWfl7", + "name": "explosion1_0015", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0016.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "hBKH4ZEvqH", + "name": "explosion1_0016", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0017.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "6Bk8n8PF4g", + "name": "explosion1_0017", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0018.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "MBxt9kMZDu", + "name": "explosion1_0018", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0019.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "1Ul6Er0vsR", + "name": "explosion1_0019", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0020.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "flxzDv8GGR", + "name": "explosion1_0020", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0021.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "dlsRHHXBWI", + "name": "explosion1_0021", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0022.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "rhFDQZdUMP", + "name": "explosion1_0022", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0023.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "Ze1oqbB09T", + "name": "explosion1_0023", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0024.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "yCtQ14F92Z", + "name": "explosion1_0024", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0025.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "Y2P33iUWMf", + "name": "explosion1_0025", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0026.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "BxkLXE1pCh", + "name": "explosion1_0026", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0027.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "qwumKYxu4H", + "name": "explosion1_0027", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0028.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "UOudQ2zTQT", + "name": "explosion1_0028", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0029.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "L2hi7JIrC7", + "name": "explosion1_0029", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0030.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "KknCwxUEyK", + "name": "explosion1_0030", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0031.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "vmUQfDv9GK", + "name": "explosion1_0031", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0032.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "Lp03CHd1gP", + "name": "explosion1_0032", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0033.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "fDw6PnWDnE", + "name": "explosion1_0033", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0034.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "UBWFntPq4a", + "name": "explosion1_0034", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0035.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "FTKgxb9qH8", + "name": "explosion1_0035", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0036.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "tkdglyXgNT", + "name": "explosion1_0036", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0037.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "um7FGN5Wav", + "name": "explosion1_0037", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0038.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "DgTTuvOZXU", + "name": "explosion1_0038", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0039.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "9KyxOWGILY", + "name": "explosion1_0039", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0040.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "QTowABRxSp", + "name": "explosion1_0040", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0041.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "3u5yRF7xKo", + "name": "explosion1_0041", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0042.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "H9YGsG97pY", + "name": "explosion1_0042", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0043.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "SWqNvMJJB4", + "name": "explosion1_0043", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0044.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "sBCmlPBhUY", + "name": "explosion1_0044", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0045.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "vNWEOEGXU1", + "name": "explosion1_0045", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0046.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "yw0lAlGF7i", + "name": "explosion1_0046", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0047.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "FuqPpARB8b", + "name": "explosion1_0047", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0048.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "40iZIQbLQS", + "name": "explosion1_0048", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0049.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "nzYmihehtu", + "name": "explosion1_0049", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0050.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "0XzkhX8ZT2", + "name": "explosion1_0050", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0051.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "1F3Q8rfFdx", + "name": "explosion1_0051", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0052.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "GFsYJOL4pf", + "name": "explosion1_0052", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0053.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "9mdHh9jsIL", + "name": "explosion1_0053", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0054.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "TmtAFUrzwP", + "name": "explosion1_0054", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0055.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "RQrGhotNoS", + "name": "explosion1_0055", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0056.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "eiJZe6mklY", + "name": "explosion1_0056", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0057.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "lwjMsMy4JL", + "name": "explosion1_0057", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0058.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "aKMFRSBw3s", + "name": "explosion1_0058", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0059.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "C5Qj9jHX5u", + "name": "explosion1_0059", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0060.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "CHzEULRpjT", + "name": "explosion1_0060", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0061.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "4fESO7Z4yE", + "name": "explosion1_0061", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0062.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "MnqHsvIWvD", + "name": "explosion1_0062", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0063.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "tfxYv1Sub6", + "name": "explosion1_0063", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0064.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "f3xmnobwaL", + "name": "explosion1_0064", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0065.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "dap7Egtb9H", + "name": "explosion1_0065", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0066.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "mkx6EkZm0F", + "name": "explosion1_0066", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0067.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "YZZMzy8IkD", + "name": "explosion1_0067", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0068.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "Xp0m0okF6L", + "name": "explosion1_0068", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0069.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "LTCDwLutWD", + "name": "explosion1_0069", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0070.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "n88HZSwL6g", + "name": "explosion1_0070", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0071.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "f3nLmktyfh", + "name": "explosion1_0071", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0072.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "sDyzD3iivR", + "name": "explosion1_0072", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0073.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "mu6vOiNGRR", + "name": "explosion1_0073", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0074.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "QHeGCkv2k9", + "name": "explosion1_0074", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0075.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "hKLzPg9syk", + "name": "explosion1_0075", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0076.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "odSmEA3mYW", + "name": "explosion1_0076", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0077.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "1OmaWEpbL7", + "name": "explosion1_0077", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0078.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "3F2ySafjXz", + "name": "explosion1_0078", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0079.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "TAXGl1i50s", + "name": "explosion1_0079", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0080.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "UuRPFms1oK", + "name": "explosion1_0080", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0081.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "tWM4Ap9TnD", + "name": "explosion1_0081", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0082.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "QsCSlQyJ5W", + "name": "explosion1_0082", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0083.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "QhdywC36Je", + "name": "explosion1_0083", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0084.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "piSvQ9Y035", + "name": "explosion1_0084", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0085.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "Xxv3UBgWDt", + "name": "explosion1_0085", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0086.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "98L5W6EKjv", + "name": "explosion1_0086", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0087.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "EuWFhngprD", + "name": "explosion1_0087", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0088.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "YWGoR0y7i8", + "name": "explosion1_0088", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0089.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "8IWnTeRZ75", + "name": "explosion1_0089", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + }, + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Explosion/explosion1_0090.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "zP7LO0Ug4t", + "name": "explosion1_0090", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + } + ], + "type": "Sprite" + } + ], + "texture_min_filter": "Default", + "texture_wrap_x": "Clamp", + "texture_wrap_y": "Clamp", + "type": "Sprite", + "uniforms": [ + { + "name": "kBaseColor", + "value": { + "a": 0.5215686559677124, + "b": 1.0, + "g": 1.0, + "r": 1.0 + } + } + ] + }, + { + "active_texture_map": "MHm1AOaSd2", + "flags": { + "BlendFrames": true, + "EnableBloom": true, + "PremultipliedAlpha": false, + "Static": false + }, + "id": "HyJsrevpdz", + "name": "Smoke Particle", + "resource_id": "HyJsrevpdz", + "resource_name": "Smoke Particle", + "resource_ver": 6, + "shader_src": "", + "shader_uri": "", + "surface": "Emissive", + "texture_mag_filter": "Default", + "texture_maps": [ + { + "fps": 0.0, + "id": "MHm1AOaSd2", + "looping": true, + "name": "Particle Alpha Mask", + "rect_name0": "kMaskRect", + "rect_name1": "", + "sampler_name0": "kMask", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/circle_05.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "YtQTS4o2Oo", + "name": "circle_05", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + } + ], + "texture_min_filter": "Default", + "texture_wrap_x": "Clamp", + "texture_wrap_y": "Clamp", + "type": "Particle2D", + "uniforms": [ + { + "name": "kBaseRotation", + "value": 0.0 + }, + { + "name": "kParticleBaseRotation", + "value": 0.0 + }, + { + "name": "kParticleEndColor", + "value": { + "a": 1.0, + "b": 0.09945830702781677, + "g": 0.12199588119983673, + "r": 0.9192034602165222 + } + }, + { + "name": "kParticleMidColor", + "value": { + "a": 1.0, + "b": 0.05271229147911072, + "g": 0.23879605531692505, + "r": 0.9582741856575012 + } + }, + { + "name": "kParticleStartColor", + "value": { + "a": 1.0, + "b": 0.005966277793049812, + "g": 0.35559624433517456, + "r": 0.9973449110984802 + } + }, + { + "name": "kRotation", + "value": 0.0 + }, + { + "name": "kTextureRotation", + "value": 0.0 + } + ] }, { - "alpha_over_dist": 0.0, - "alpha_over_time": -1.0, - "boundary": "Kill", - "coordinate_space": "Local", - "delay": 0.0, - "direction": "Outwards", - "direction_sector_size": 6.2831854820251465, - "direction_sector_start_angle": 0.0, + "active_texture_map": "Oj8I2KKxyA", "flags": { - "ParticlesCanExpire": true + "BlendFrames": true, + "EnableBloom": true, + "PremultipliedAlpha": false, + "Static": false }, - "gravity": { - "x": 0.0, - "y": 0.30000001192092896 + "id": "JHJOgzrTOZ", + "name": "Ship 002", + "resource_id": "JHJOgzrTOZ", + "resource_name": "Ship 002", + "resource_ver": 6, + "shader_src": "", + "shader_uri": "", + "surface": "Transparent", + "texture_mag_filter": "Default", + "texture_maps": [ + { + "fps": 0.0, + "id": "Oj8I2KKxyA", + "looping": true, + "name": "Texture", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Ships/spaceShips_002.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "Q8KQ48dutL", + "name": "spaceShips_002", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + } + ], + "texture_min_filter": "Default", + "texture_wrap_x": "Clamp", + "texture_wrap_y": "Clamp", + "type": "Texture" + }, + { + "active_texture_map": "lB6R4Xu92J", + "flags": { + "BlendFrames": true, + "EnableBloom": true, + "PremultipliedAlpha": false, + "Static": false }, - "growth_over_dist": 1.0, - "growth_over_time": -99.0, - "id": "LZ34N4wOGn", - "init_rect_height": 1.0, - "init_rect_width": 1.0, - "init_rect_xpos": 0.0, - "init_rect_ypos": 0.0, - "max_alpha": 1.0, - "max_lifetime": 1.0, - "max_point_size": 98.0, - "max_time": 3.4028234663852886e+38, - "max_velocity": 0.8299999833106995, - "max_xpos": 1.0, - "max_ypos": 1.0, - "min_alpha": 1.0, - "min_lifetime": 0.10000000149011612, - "min_point_size": 41.0, - "min_time": 0.0, - "min_velocity": 0.10999999940395355, - "mode": "Once", - "motion": "Linear", - "name": "Little Stars", - "num_particles": 100.0, - "placement": "Center", - "primitive": "Point", - "resource_id": "LZ34N4wOGn", - "resource_name": "Little Stars", - "resource_ver": 2, - "shape": "Rectangle" + "id": "Kb5sHrP5bL", + "name": "Title Fill", + "resource_id": "Kb5sHrP5bL", + "resource_name": "Title Fill", + "resource_ver": 6, + "shader_src": "", + "shader_uri": "ws://shaders/es2/text.glsl", + "surface": "Emissive", + "texture_mag_filter": "Default", + "texture_maps": [ + { + "fps": 0.0, + "id": "lB6R4Xu92J", + "looping": true, + "name": "kTexture0", + "rect_name0": "kTexture0Rect", + "rect_name1": "", + "sampler_name0": "kTexture0", + "sampler_name1": "", + "textures": [ + { + "buffer": { + "height": 200, + "horizontal_alignment": "AlignCenter", + "texts": [ + { + "font_file": "app://fonts/ethnocentric rg.otf", + "font_size": 72, + "line_height": 1.0, + "string": "blast", + "underline": false + } + ], + "vertical_alignment": "AlignCenter", + "width": 350 + }, + "effects": { + "Blur": false, + "Edges": false + }, + "id": "BKDe4jhbTq", + "name": "TextBuffer", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "TextBuffer" + } + ], + "type": "Texture2D" + } + ], + "texture_min_filter": "Default", + "texture_wrap_x": "Clamp", + "texture_wrap_y": "Clamp", + "type": "Custom", + "uniforms": [ + { + "name": "kBaseColor", + "value": { + "a": 1.0, + "b": 0.4000000059604645, + "g": 0.1568780094385147, + "r": 0.003921568859368563 + } + } + ] + }, + { + "active_texture_map": "SkDR40as46", + "flags": { + "BlendFrames": true, + "EnableBloom": true, + "PremultipliedAlpha": false, + "Static": false + }, + "id": "XLy89MFMgb", + "name": "Laser/Green", + "resource_id": "XLy89MFMgb", + "resource_name": "Laser/Green", + "resource_ver": 6, + "shader_src": "", + "shader_uri": "", + "surface": "Transparent", + "texture_mag_filter": "Default", + "texture_maps": [ + { + "fps": 0.0, + "id": "SkDR40as46", + "looping": true, + "name": "Texture", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Lasers/09.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "djvspto6f0", + "name": "09", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + } + ], + "texture_min_filter": "Default", + "texture_wrap_x": "Clamp", + "texture_wrap_y": "Clamp", + "type": "Texture", + "uniforms": [ + { + "name": "kTextureRotation", + "value": 0.0 + } + ] + }, + { + "active_texture_map": "Yn37LoHDx1", + "flags": { + "BlendFrames": true, + "EnableBloom": true, + "PremultipliedAlpha": false, + "Static": false + }, + "id": "YL23jp6zHS", + "name": "Star Particle", + "resource_id": "YL23jp6zHS", + "resource_name": "Star Particle", + "resource_ver": 6, + "shader_src": "", + "shader_uri": "", + "surface": "Emissive", + "texture_mag_filter": "Default", + "texture_maps": [ + { + "fps": 0.0, + "id": "Yn37LoHDx1", + "looping": true, + "name": "Particle Alpha Mask", + "rect_name0": "kMaskRect", + "rect_name1": "", + "sampler_name0": "kMask", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/star_01.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "GrMR8RaY6p", + "name": "star_01", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + } + ], + "texture_min_filter": "Default", + "texture_wrap_x": "Clamp", + "texture_wrap_y": "Clamp", + "type": "Particle2D", + "uniforms": [ + { + "name": "kBaseRotation", + "value": 0.0 + }, + { + "name": "kParticleBaseRotation", + "value": 0.0 + }, + { + "name": "kParticleEndColor", + "value": { + "a": 1.0, + "b": 0.09945830702781677, + "g": 0.12199588119983673, + "r": 0.9192034602165222 + } + }, + { + "name": "kParticleMidColor", + "value": { + "a": 1.0, + "b": 0.05271229147911072, + "g": 0.23879605531692505, + "r": 0.9582741856575012 + } + }, + { + "name": "kParticleStartColor", + "value": { + "a": 1.0, + "b": 0.005966277793049812, + "g": 0.35559624433517456, + "r": 0.9973449110984802 + } + }, + { + "name": "kRotation", + "value": 0.0 + }, + { + "name": "kTextureRotation", + "value": 0.0 + } + ] }, { - "alpha_over_dist": 0.0, - "alpha_over_time": -1.0, - "boundary": "Clamp", - "coordinate_space": "Global", - "delay": 0.0, - "direction": "Outwards", - "direction_sector_size": 6.2831854820251465, - "direction_sector_start_angle": 0.0, + "active_texture_map": "OIyKORo0Fu", "flags": { - "ParticlesCanExpire": true - }, - "gravity": { - "x": 0.0, - "y": 0.30000001192092896 + "BlendFrames": true, + "EnableBloom": true, + "PremultipliedAlpha": false, + "Static": false }, - "growth_over_dist": 0.0, - "growth_over_time": -99.0, - "id": "PEj5kFRA5A", - "init_rect_height": 1.0, - "init_rect_width": 1.0, - "init_rect_xpos": 0.0, - "init_rect_ypos": 0.0, - "max_alpha": 1.0, - "max_lifetime": 0.699999988079071, - "max_point_size": 37.0, - "max_time": 1.0, - "max_velocity": 0.009999999776482582, - "max_xpos": 1.0, - "max_ypos": 1.0, - "min_alpha": 1.0, - "min_lifetime": 0.5, - "min_point_size": 16.0, - "min_time": 0.0, - "min_velocity": 0.0, - "mode": "Continuous", - "motion": "Linear", - "name": "Score Particles", - "num_particles": 100.0, - "placement": "Edge", - "primitive": "Point", - "resource_id": "PEj5kFRA5A", - "resource_name": "Score Particles", - "resource_ver": 2, - "shape": "Rectangle" + "id": "Z3Pe1h4eXI", + "name": "Ship 004", + "resource_id": "Z3Pe1h4eXI", + "resource_name": "Ship 004", + "resource_ver": 6, + "shader_src": "", + "shader_uri": "", + "surface": "Transparent", + "texture_mag_filter": "Default", + "texture_maps": [ + { + "fps": 0.0, + "id": "OIyKORo0Fu", + "looping": true, + "name": "Texture", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Ships/spaceShips_004.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "aytEYYLYsw", + "name": "spaceShips_004", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + } + ], + "texture_min_filter": "Default", + "texture_wrap_x": "Clamp", + "texture_wrap_y": "Clamp", + "type": "Texture" }, { - "alpha_over_dist": 0.0, - "alpha_over_time": -1.0, - "boundary": "Clamp", - "coordinate_space": "Global", - "delay": 0.0, - "direction": "Sector", - "direction_sector_size": 0.0, - "direction_sector_start_angle": 3.1415927410125732, + "active_texture_map": "1RR6n5j5uF", "flags": { - "ParticlesCanExpire": true - }, - "gravity": { - "x": 0.0, - "y": 0.30000001192092896 + "BlendFrames": true, + "EnableBloom": true, + "PremultipliedAlpha": false, + "Static": false }, - "growth_over_dist": 0.0, - "growth_over_time": -99.0, - "id": "PPXCoUzFFy", - "init_rect_height": 1.0, - "init_rect_width": 1.0, - "init_rect_xpos": 0.0, - "init_rect_ypos": 0.0, - "max_alpha": 1.0, - "max_lifetime": 13.069999694824219, - "max_point_size": 45.0, - "max_time": 3.4028234663852886e+38, - "max_velocity": 172.52000427246094, - "max_xpos": 1.0, - "max_ypos": 1.0, - "min_alpha": 1.0, - "min_lifetime": 3.0799999237060547, - "min_point_size": 8.0, - "min_time": 0.0, - "min_velocity": 83.80999755859375, - "mode": "Continuous", - "motion": "Linear", - "name": "Score Particles", - "num_particles": 500.0, - "placement": "Edge", - "primitive": "Point", - "resource_id": "PPXCoUzFFy", - "resource_name": "Score Particles", - "resource_ver": 2, - "shape": "Rectangle" + "id": "gnzE0pkeXX", + "name": "Health_Dot", + "resource_id": "gnzE0pkeXX", + "resource_name": "Health_Dot", + "resource_ver": 6, + "shader_src": "", + "shader_uri": "", + "surface": "Transparent", + "texture_mag_filter": "Default", + "texture_maps": [ + { + "fps": 0.0, + "id": "1RR6n5j5uF", + "looping": true, + "name": "Texture", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Space UI/Health_Dot.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "1ByRH6D9IK", + "name": "Health_Dot", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + } + ], + "texture_min_filter": "Default", + "texture_wrap_x": "Clamp", + "texture_wrap_y": "Clamp", + "type": "Texture", + "uniforms": [ + { + "name": "kTextureRotation", + "value": 0.0 + } + ] }, { - "alpha_over_dist": 0.0, - "alpha_over_time": -0.699999988079071, - "boundary": "Clamp", - "coordinate_space": "Global", - "delay": 0.0, - "direction": "Sector", - "direction_sector_size": 0.5235987901687622, - "direction_sector_start_angle": 1.5707963705062866, + "active_texture_map": "sLwRzKaXzM", "flags": { - "ParticlesCanExpire": true - }, - "gravity": { - "x": 0.0, - "y": 0.30000001192092896 + "BlendFrames": true, + "EnableBloom": true, + "PremultipliedAlpha": false, + "Static": false }, - "growth_over_dist": 0.0, - "growth_over_time": 67.0, - "id": "YyvAdpWoTq", - "init_rect_height": 1.0, - "init_rect_width": 1.0, - "init_rect_xpos": 0.0, - "init_rect_ypos": 0.0, - "max_alpha": 1.0, - "max_lifetime": 1.5, - "max_point_size": 28.0, - "max_time": 3.4028234663852886e+38, - "max_velocity": 52.290000915527344, - "max_xpos": 1.0, - "max_ypos": 1.0, - "min_alpha": 1.0, - "min_lifetime": 1.0, - "min_point_size": 28.0, - "min_time": 0.0, - "min_velocity": 16.280000686645508, - "mode": "Continuous", - "motion": "Linear", - "name": "Engine Smoke", - "num_particles": 10.0, - "placement": "Center", - "primitive": "Point", - "resource_id": "YyvAdpWoTq", - "resource_name": "Engine Smoke", - "resource_ver": 2, - "shape": "Rectangle" + "id": "hCinu6wgaC", + "name": "Health Pack", + "resource_id": "hCinu6wgaC", + "resource_name": "Health Pack", + "resource_ver": 6, + "shader_src": "", + "shader_uri": "", + "surface": "Transparent", + "texture_mag_filter": "Default", + "texture_maps": [ + { + "fps": 0.0, + "id": "sLwRzKaXzM", + "looping": true, + "name": "Texture", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/shmup-pack-3/items/31.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": true + }, + "id": "gnQ5bSfTwz", + "name": "31", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + } + ], + "texture_min_filter": "Default", + "texture_wrap_x": "Clamp", + "texture_wrap_y": "Clamp", + "type": "Texture" }, { - "alpha_over_dist": 0.0, - "alpha_over_time": -1.0, - "boundary": "Clamp", - "coordinate_space": "Global", - "delay": 0.0, - "direction": "Outwards", - "direction_sector_size": 0.0, - "direction_sector_start_angle": 1.5707963705062866, + "active_texture_map": "38nRsxHUy1", "flags": { - "ParticlesCanExpire": true + "BlendFrames": true, + "EnableBloom": true, + "PremultipliedAlpha": false, + "Static": false }, - "gravity": { - "x": 0.0, - "y": 0.30000001192092896 + "id": "lLinWqCv1M", + "name": "Shield", + "resource_id": "lLinWqCv1M", + "resource_name": "Shield", + "resource_ver": 6, + "shader_src": "", + "shader_uri": "", + "surface": "Transparent", + "texture_mag_filter": "Default", + "texture_maps": [ + { + "fps": 0.0, + "id": "38nRsxHUy1", + "looping": true, + "name": "Texture", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/shmup-pack-3/items/32.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "7hggzWBOgG", + "name": "32", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + } + ], + "texture_min_filter": "Default", + "texture_wrap_x": "Clamp", + "texture_wrap_y": "Clamp", + "type": "Texture", + "uniforms": [ + { + "name": "kTextureRotation", + "value": 0.0 + } + ] + }, + { + "active_texture_map": "MiywGgjvmB", + "flags": { + "BlendFrames": true, + "EnableBloom": true, + "PremultipliedAlpha": false, + "Static": false }, - "growth_over_dist": 0.0, - "growth_over_time": -99.0, - "id": "kvOgLarfY3", - "init_rect_height": 1.0, - "init_rect_width": 1.0, - "init_rect_xpos": 0.0, - "init_rect_ypos": 0.0, - "max_alpha": 1.0, - "max_lifetime": 4.039999961853027, - "max_point_size": 129.0, - "max_time": 3.4028234663852886e+38, - "max_velocity": 43.650001525878906, - "max_xpos": 1.0, - "max_ypos": 1.0, - "min_alpha": 1.0, - "min_lifetime": 2.0199999809265137, - "min_point_size": 53.0, - "min_time": 0.0, - "min_velocity": 10.260000228881836, - "mode": "Continuous", - "motion": "Linear", - "name": "Menu Particles", - "num_particles": 50.0, - "placement": "Edge", - "primitive": "Point", - "resource_id": "kvOgLarfY3", - "resource_name": "Menu Particles", - "resource_ver": 2, - "shape": "Rectangle" + "id": "lOfMr3YBtI", + "name": "Asteroid", + "resource_id": "lOfMr3YBtI", + "resource_name": "Asteroid", + "resource_ver": 6, + "shader_src": "", + "shader_uri": "", + "surface": "Transparent", + "texture_mag_filter": "Default", + "texture_maps": [ + { + "fps": 0.0, + "id": "MiywGgjvmB", + "looping": true, + "name": "Default", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Asteroids/meteorGrey_big4.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "WXWYZQCIMw", + "name": "meteorGrey_big4", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + } + ], + "texture_min_filter": "Default", + "texture_wrap_x": "Clamp", + "texture_wrap_y": "Clamp", + "type": "Texture", + "uniforms": [ + { + "name": "kColor0", + "value": { + "a": 1.0, + "b": 0.5623559951782227, + "g": 0.5623559951782227, + "r": 0.5623559951782227 + } + }, + { + "name": "kTextureVelocity", + "value": { + "x": 0.0, + "y": 0.0, + "z": 3.4906585216522217 + } + } + ] }, { - "alpha_over_dist": -0.30000001192092896, - "alpha_over_time": 0.0, - "boundary": "Kill", - "coordinate_space": "Local", - "delay": 0.0, - "direction": "Sector", - "direction_sector_size": 0.3490658402442932, - "direction_sector_start_angle": 1.3962633609771729, + "active_texture_map": "o9R6Heje5f", "flags": { - "ParticlesCanExpire": true - }, - "gravity": { - "x": 0.0, - "y": 0.30000001192092896 + "BlendFrames": true, + "EnableBloom": true, + "PremultipliedAlpha": false, + "Static": false }, - "growth_over_dist": 0.0, - "growth_over_time": 0.0, - "id": "qklhbbEm10", - "init_rect_height": 0.0, - "init_rect_width": 0.0, - "init_rect_xpos": 0.5, - "init_rect_ypos": 0.5, - "max_alpha": 1.0, - "max_lifetime": 10.0, - "max_point_size": 10.0, - "max_time": 3.4028234663852886e+38, - "max_velocity": 1.0, - "max_xpos": 1.0, - "max_ypos": 1.0, - "min_alpha": 1.0, - "min_lifetime": 1.0, - "min_point_size": 1.0, - "min_time": 0.0, - "min_velocity": 0.0, - "mode": "Once", - "motion": "Linear", - "name": "BulletTrail", - "num_particles": 100.0, - "placement": "Inside", - "primitive": "Point", - "resource_id": "qklhbbEm10", - "resource_name": "BulletTrail", - "resource_ver": 2, - "shape": "Rectangle" + "id": "pGHzP0FH33", + "name": "Cursor", + "resource_id": "pGHzP0FH33", + "resource_name": "Cursor", + "resource_ver": 6, + "shader_src": "", + "shader_uri": "", + "surface": "Transparent", + "texture_mag_filter": "Default", + "texture_maps": [ + { + "fps": 0.0, + "id": "o9R6Heje5f", + "looping": true, + "name": "Default", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/cursor/crosshair158.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "rtMnrhrbtN", + "name": "crosshair158", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + } + ], + "texture_min_filter": "Default", + "texture_wrap_x": "Clamp", + "texture_wrap_y": "Clamp", + "type": "Texture", + "uniforms": [ + { + "name": "kColor0", + "value": { + "a": 1.0, + "b": 0.9916075468063354, + "g": 0.9687647819519043, + "r": 0.9670100212097168 + } + }, + { + "name": "kTextureRotation", + "value": 0.0 + } + ] }, { - "alpha_over_dist": 0.0, - "alpha_over_time": -1.0, - "boundary": "Kill", - "coordinate_space": "Local", - "delay": 0.0, - "direction": "Outwards", - "direction_sector_size": 6.2831854820251465, - "direction_sector_start_angle": 0.0, + "active_texture_map": "lea2jzBD5L", "flags": { - "ParticlesCanExpire": true - }, - "gravity": { - "x": 0.0, - "y": 0.30000001192092896 + "BlendFrames": true, + "EnableBloom": true, + "PremultipliedAlpha": false, + "Static": false }, - "growth_over_dist": 0.0, - "growth_over_time": -99.0, - "id": "sBjTBK97Mf", - "init_rect_height": 1.0, - "init_rect_width": 1.0, - "init_rect_xpos": 0.0, - "init_rect_ypos": 0.0, - "max_alpha": 1.0, - "max_lifetime": 0.30000001192092896, - "max_point_size": 20.0, - "max_time": 3.4028234663852886e+38, - "max_velocity": 1.9299999475479126, - "max_xpos": 1.0, - "max_ypos": 1.0, - "min_alpha": 1.0, - "min_lifetime": 0.10000000149011612, - "min_point_size": 15.0, - "min_time": 0.0, - "min_velocity": 1.2999999523162842, - "mode": "Once", - "motion": "Linear", - "name": "Enemy/Explosion/Basic", - "num_particles": 100.0, - "placement": "Center", - "primitive": "Point", - "resource_id": "sBjTBK97Mf", - "resource_name": "Enemy/Explosion/Basic", - "resource_ver": 2, - "shape": "Rectangle" - } - ], - "scenes": [ - { - "bottom_boundary": 500.0, - "dynamic_spatial_index": "QuadTree", - "id": "UWF4u1fYHa", - "name": "Game", - "nodes": [ + "id": "saWl4UNIAU", + "name": "Space fog Particle", + "resource_id": "saWl4UNIAU", + "resource_name": "Space fog Particle", + "resource_ver": 6, + "shader_src": "", + "shader_uri": "", + "surface": "Transparent", + "texture_mag_filter": "Default", + "texture_maps": [ { - "entity": "diUlEeS5JH", - "flag_set_bits": { - "KillAtBoundary": false, - "KillAtLifetime": false, - "LimitLifetime": false, - "PostUpdate": false, - "TickEntity": false, - "UpdateEntity": false, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "flag_val_bits": { - "KillAtBoundary": false, - "KillAtLifetime": false, - "LimitLifetime": false, - "PostUpdate": false, - "TickEntity": false, - "UpdateEntity": false, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "id": "v6jMFkJ4BJ", - "idle_animation_id": "", - "name": "Player", - "parent_render_tree_node": "", - "position": { - "x": -700.0, - "y": 250.0 - }, - "render_layer": 1, - "rotation": 0.0, - "scale": { - "x": 1.0, - "y": 1.0 - } + "fps": 0.0, + "id": "lea2jzBD5L", + "looping": true, + "name": "Particle Alpha Mask", + "rect_name0": "kMaskRect", + "rect_name1": "", + "sampler_name0": "kMask", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "app://textures/particles/spark_03.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "28R4goudSl", + "name": "Texture", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + } + ], + "texture_min_filter": "Default", + "texture_wrap_x": "Clamp", + "texture_wrap_y": "Clamp", + "type": "Particle2D", + "uniforms": [ + { + "name": "kParticleBaseRotation", + "value": 0.0 }, { - "entity": "7NAD3QgFlq", - "flag_set_bits": { - "KillAtBoundary": false, - "KillAtLifetime": false, - "LimitLifetime": false, - "PostUpdate": false, - "TickEntity": false, - "UpdateEntity": false, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "flag_val_bits": { - "KillAtBoundary": false, - "KillAtLifetime": false, - "LimitLifetime": false, - "PostUpdate": false, - "TickEntity": false, - "UpdateEntity": false, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "id": "6bXKmTw71O", - "idle_animation_id": "", - "name": "Background", - "parent_render_tree_node": "", - "position": { - "x": 0.0, - "y": 0.0 - }, - "render_layer": -2, - "rotation": 0.0, - "scale": { - "x": 1.0, - "y": 1.0 + "name": "kParticleEndColor", + "value": { + "a": 0.0, + "b": 0.95686274766922, + "g": 0.8392156958580017, + "r": 0.615686297416687 } }, { - "entity": "wXtbrxNRpX", - "flag_set_bits": { - "KillAtBoundary": false, - "KillAtLifetime": false, - "LimitLifetime": false, - "PostUpdate": false, - "TickEntity": false, - "UpdateEntity": false, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "flag_val_bits": { - "KillAtBoundary": false, - "KillAtLifetime": false, - "LimitLifetime": false, - "PostUpdate": false, - "TickEntity": false, - "UpdateEntity": false, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "id": "khKJrggLXs", - "idle_animation_id": "", - "name": "GameScore", - "parent_render_tree_node": "", - "position": { - "x": -470.0, - "y": -373.0 - }, - "render_layer": 0, - "rotation": 0.0, - "scale": { - "x": 1.0, - "y": 1.0 + "name": "kParticleMidColor", + "value": { + "a": 0.501960813999176, + "b": 0.9764705896377563, + "g": 0.7607690691947937, + "r": 0.30588236451148987 } }, { - "entity": "NtNnX1kgNp", - "flag_set_bits": { - "KillAtBoundary": false, - "KillAtLifetime": false, - "LimitLifetime": false, - "PostUpdate": false, - "TickEntity": false, - "UpdateEntity": false, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "flag_val_bits": { - "KillAtBoundary": false, - "KillAtLifetime": false, - "LimitLifetime": false, - "PostUpdate": false, - "TickEntity": false, - "UpdateEntity": false, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "id": "NwiDBuIzNw", - "idle_animation_id": "", - "name": "Mine Status", - "parent_render_tree_node": "", - "position": { - "x": 425.9999694824219, - "y": -373.0 - }, - "render_layer": 0, - "rotation": 0.0, - "scale": { - "x": 1.0, - "y": 1.0 - } - }, + "name": "kParticleRotation", + "value": 4 + }, + { + "name": "kParticleStartColor", + "value": { + "a": 0.0, + "b": 1.0, + "g": 0.6823377013206482, + "r": 0.0 + } + } + ] + }, + { + "active_texture_map": "uAx4orUEKI", + "flags": { + "BlendFrames": true, + "EnableBloom": true, + "PremultipliedAlpha": false, + "Static": false + }, + "id": "vg5yQskPIv", + "name": "Missile 3", + "resource_id": "vg5yQskPIv", + "resource_name": "Missile 3", + "resource_ver": 6, + "shader_src": "", + "shader_uri": "", + "surface": "Transparent", + "texture_mag_filter": "Default", + "texture_maps": [ + { + "fps": 0.0, + "id": "uAx4orUEKI", + "looping": true, + "name": "Texture", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Ammunition/spaceMissiles_040.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "US33GG3jFo", + "name": "spaceMissiles_040", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + } + ], + "texture_min_filter": "Default", + "texture_wrap_x": "Clamp", + "texture_wrap_y": "Clamp", + "type": "Texture" + }, + { + "active_texture_map": "gGIsf4Yh26", + "flags": { + "BlendFrames": true, + "EnableBloom": true, + "PremultipliedAlpha": false, + "Static": false + }, + "id": "wEBG4Nwt8g", + "name": "Player/Ship/Engines", + "resource_id": "wEBG4Nwt8g", + "resource_name": "Player/Ship/Engines", + "resource_ver": 6, + "shader_src": "", + "shader_uri": "", + "surface": "Transparent", + "texture_mag_filter": "Default", + "texture_maps": [ + { + "fps": 0.0, + "id": "gGIsf4Yh26", + "looping": true, + "name": "Texture", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/shmup-pack-3/items/21.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "03TZnBEdGi", + "name": "21", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + } + ], + "texture_min_filter": "Default", + "texture_wrap_x": "Clamp", + "texture_wrap_y": "Clamp", + "type": "Texture", + "uniforms": [ + { + "name": "kTextureRotation", + "value": 0.0 + } + ] + }, + { + "active_texture_map": "d5pJBqjLM1", + "flags": { + "BlendFrames": true, + "EnableBloom": true, + "PremultipliedAlpha": false, + "Static": false + }, + "id": "wyzMKbLQ8x", + "name": "Combo Outline", + "resource_id": "wyzMKbLQ8x", + "resource_name": "Combo Outline", + "resource_ver": 6, + "shader_src": "", + "shader_uri": "", + "surface": "Transparent", + "texture_mag_filter": "Default", + "texture_maps": [ + { + "fps": 0.0, + "id": "d5pJBqjLM1", + "looping": true, + "name": "Texture", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "buffer": { + "height": 100, + "horizontal_alignment": "AlignCenter", + "texts": [ + { + "font_file": "app://fonts/ethnocentric rg.otf", + "font_size": 72, + "line_height": 1.0, + "string": "COMBO!\n", + "underline": false + } + ], + "vertical_alignment": "AlignCenter", + "width": 400 + }, + "effects": { + "Blur": true, + "Edges": true + }, + "id": "4rwJEQuwKF", + "name": "TextBuffer", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "TextBuffer" + } + ], + "type": "Texture2D" + } + ], + "texture_min_filter": "Default", + "texture_wrap_x": "Clamp", + "texture_wrap_y": "Clamp", + "type": "Texture" + }, + { + "active_texture_map": "76WowKa3mf", + "flags": { + "BlendFrames": true, + "EnableBloom": true, + "PremultipliedAlpha": false, + "Static": false + }, + "id": "x6FkDk0TOK", + "name": "Player/Ship/Command Module", + "resource_id": "x6FkDk0TOK", + "resource_name": "Player/Ship/Command Module", + "resource_ver": 6, + "shader_src": "", + "shader_uri": "", + "surface": "Transparent", + "texture_mag_filter": "Default", + "texture_maps": [ + { + "fps": 0.0, + "id": "76WowKa3mf", + "looping": true, + "name": "Texture", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/shmup-pack-3/items/3.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "uWDpMB8Amm", + "name": "3", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + } + ], + "texture_min_filter": "Default", + "texture_wrap_x": "Clamp", + "texture_wrap_y": "Clamp", + "type": "Texture", + "uniforms": [ { - "entity": "XExwRNFj8H", - "flag_set_bits": { - "KillAtBoundary": false, - "KillAtLifetime": false, - "LimitLifetime": false, - "PostUpdate": false, - "TickEntity": false, - "UpdateEntity": false, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "flag_val_bits": { - "KillAtBoundary": false, - "KillAtLifetime": false, - "LimitLifetime": false, - "PostUpdate": false, - "TickEntity": false, - "UpdateEntity": false, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": false, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "id": "RHO6B0Pdke", - "idle_animation_id": "", - "name": "Stars_0", - "parent_render_tree_node": "", - "position": { - "x": 0.0, - "y": 0.0 - }, - "render_layer": -1, - "rotation": 0.0, - "scale": { - "x": 1.0, - "y": 1.0 - } - }, + "name": "kTextureRotation", + "value": 0.0 + } + ] + }, + { + "active_texture_map": "I1k2fdwbZ6", + "flags": { + "BlendFrames": true, + "EnableBloom": true, + "PremultipliedAlpha": false, + "Static": false + }, + "id": "zkE5917lk8", + "name": "Mega Smoke Particle", + "resource_id": "zkE5917lk8", + "resource_name": "Mega Smoke Particle", + "resource_ver": 6, + "shader_src": "", + "shader_uri": "", + "surface": "Transparent", + "texture_mag_filter": "Default", + "texture_maps": [ { - "entity": "rTHIeIzO8G", - "flag_set_bits": { - "KillAtBoundary": false, - "KillAtLifetime": false, - "LimitLifetime": false, - "PostUpdate": false, - "TickEntity": false, - "UpdateEntity": false, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "flag_val_bits": { - "KillAtBoundary": false, - "KillAtLifetime": false, - "LimitLifetime": false, - "PostUpdate": false, - "TickEntity": false, - "UpdateEntity": false, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "id": "LC84P5tUsg", - "idle_animation_id": "", - "name": "Stats Bar_0", - "parent_render_tree_node": "", - "position": { - "x": 515.0, - "y": 353.0 - }, - "render_layer": -1, - "rotation": 0.0, - "scale": { - "x": 1.0, - "y": 1.0 + "fps": 0.0, + "id": "I1k2fdwbZ6", + "looping": true, + "name": "kMask", + "rect_name0": "kMaskRect", + "rect_name1": "", + "sampler_name0": "kMask", + "sampler_name1": "", + "textures": [ + { + "colorspace": "sRGB", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "app://textures/particles/smoke_04.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "MmJL1E6xQS", + "name": "Texture", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" + } + ], + "type": "Texture2D" + } + ], + "texture_min_filter": "Default", + "texture_wrap_x": "Clamp", + "texture_wrap_y": "Clamp", + "type": "Particle2D", + "uniforms": [ + { + "name": "kParticleBaseRotation", + "value": 0.0 + }, + { + "name": "kParticleEndColor", + "value": { + "a": 0.0, + "b": 0.0784313753247261, + "g": 0.0784313753247261, + "r": 0.1411764770746231 } }, { - "entity": "p5r5vfQHG6", - "flag_set_bits": { - "KillAtBoundary": false, - "KillAtLifetime": false, - "LimitLifetime": false, - "PostUpdate": false, - "TickEntity": false, - "UpdateEntity": false, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "flag_val_bits": { - "KillAtBoundary": false, - "KillAtLifetime": false, - "LimitLifetime": false, - "PostUpdate": false, - "TickEntity": false, - "UpdateEntity": false, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "id": "8seSbXJfqJ", - "idle_animation_id": "", - "name": "health", - "parent_render_tree_node": "", - "position": { - "x": -514.0, - "y": 360.99993896484375 - }, - "render_layer": 0, - "rotation": 0.0, - "scale": { - "x": 1.0, - "y": 1.0 + "name": "kParticleMidColor", + "value": { + "a": 0.5, + "b": 0.38285648822784424, + "g": 0.38285648822784424, + "r": 0.44111543893814087 } }, { - "entity": "flFywvWC88", - "flag_set_bits": { - "KillAtBoundary": false, - "KillAtLifetime": false, - "LimitLifetime": false, - "PostUpdate": false, - "TickEntity": false, - "UpdateEntity": false, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "flag_val_bits": { - "KillAtBoundary": false, - "KillAtLifetime": false, - "LimitLifetime": false, - "PostUpdate": false, - "TickEntity": false, - "UpdateEntity": false, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "id": "GpWhASv5nG", - "idle_animation_id": "", - "name": "Info", - "parent_render_tree_node": "", - "position": { - "x": 7.0, - "y": -373.0 - }, - "render_layer": 0, - "rotation": 0.0, - "scale": { - "x": 1.0, - "y": 1.0 + "name": "kParticleRotation", + "value": 2 + }, + { + "name": "kParticleStartColor", + "value": { + "a": 1.0, + "b": 0.687281608581543, + "g": 0.687281608581543, + "r": 0.7410544157028198 } } - ], - "quadtree_max_items": 4, - "quadtree_max_levels": 1, - "render_tree": { - "children": [ - { - "node": { - "id": "v6jMFkJ4BJ" - } - }, - { - "node": { - "id": "6bXKmTw71O" - } - }, - { - "node": { - "id": "khKJrggLXs" - } - }, - { - "node": { - "id": "NwiDBuIzNw" - } - }, - { - "node": { - "id": "RHO6B0Pdke" - } - }, - { - "node": { - "id": "LC84P5tUsg" - } - }, - { - "node": { - "id": "8seSbXJfqJ" - } - }, - { - "node": { - "id": "GpWhASv5nG" + ] + }, + { + "active_texture_map": "T7htKqeGxX", + "flags": { + "BlendFrames": true, + "EnableBloom": true, + "PremultipliedAlpha": false, + "Static": false + }, + "id": "ztFYdG5FDv", + "name": "Black Smoke", + "resource_id": "ztFYdG5FDv", + "resource_name": "Black Smoke", + "resource_ver": 6, + "shader_src": "", + "shader_uri": "", + "surface": "Transparent", + "texture_mag_filter": "Default", + "texture_maps": [ + { + "fps": 0.0, + "id": "T7htKqeGxX", + "looping": true, + "name": "Texture", + "rect_name0": "", + "rect_name1": "", + "sampler_name0": "", + "sampler_name1": "", + "textures": [ + { + "colorspace": "Linear", + "effects": { + "Blur": false, + "Edges": false + }, + "file": "ws://textures/Effects/Black smoke/blackSmoke00.png", + "flags": { + "AllowPacking": true, + "AllowResizing": true, + "PremulAlpha": false + }, + "id": "MpKm3nFRoO", + "name": "blackSmoke00", + "rect": { + "h": 1.0, + "w": 1.0, + "x": 0.0, + "y": 0.0 + }, + "type": "Filesystem" } - } - ], - "node": null + ], + "type": "Texture2D" + } + ], + "texture_min_filter": "Default", + "texture_wrap_x": "Clamp", + "texture_wrap_y": "Clamp", + "type": "Texture" + } + ], + "particles": [ + { + "alpha_over_dist": 0.0, + "alpha_over_time": -1.0, + "boundary": "Clamp", + "coordinate_space": "Global", + "delay": 0.0, + "direction": "Outwards", + "direction_sector_size": 6.2831854820251465, + "direction_sector_start_angle": 0.0, + "flags": { + "ParticlesCanExpire": true + }, + "gravity": { + "x": 0.0, + "y": 0.30000001192092896 + }, + "growth_over_dist": 0.0, + "growth_over_time": -4.0, + "id": "4Ckmwoylp6", + "init_rect_height": 1.0, + "init_rect_width": 1.0, + "init_rect_xpos": 0.0, + "init_rect_ypos": 0.0, + "max_alpha": 1.0, + "max_lifetime": 1.75, + "max_point_size": 362.0, + "max_time": 3.4028234663852886e+38, + "max_velocity": 1000.0, + "max_xpos": 1.0, + "max_ypos": 1.0, + "min_alpha": 1.0, + "min_lifetime": 0.0, + "min_point_size": 152.0, + "min_time": 0.0, + "min_velocity": 1000.0, + "mode": "Once", + "motion": "Linear", + "name": "Rocket Explosion", + "num_particles": 100.0, + "placement": "Center", + "primitive": "Point", + "resource_id": "4Ckmwoylp6", + "resource_name": "Rocket Explosion", + "resource_ver": 2, + "shape": "Rectangle", + "warmup_time": 0.0 + }, + { + "alpha_over_dist": 0.0, + "alpha_over_time": 0.0, + "boundary": "Clamp", + "coordinate_space": "Global", + "delay": 0.0, + "direction": "Sector", + "direction_sector_size": 0.0, + "direction_sector_start_angle": 1.5707963705062866, + "flags": { + "ParticlesCanExpire": true + }, + "gravity": { + "x": 0.0, + "y": 0.30000001192092896 + }, + "growth_over_dist": 0.0, + "growth_over_time": -99.0, + "id": "7pLg2qp4Pp", + "init_rect_height": 1.0, + "init_rect_width": 1.0, + "init_rect_xpos": 0.0, + "init_rect_ypos": 0.0, + "max_alpha": 1.0, + "max_lifetime": 0.550000011920929, + "max_point_size": 31.0, + "max_time": 3.4028234663852886e+38, + "max_velocity": 422.57000732421875, + "max_xpos": 1.0, + "max_ypos": 1.0, + "min_alpha": 1.0, + "min_lifetime": 0.27000001072883606, + "min_point_size": 7.0, + "min_time": 0.0, + "min_velocity": 259.70001220703125, + "mode": "Continuous", + "motion": "Linear", + "name": "Exhaust Particles", + "num_particles": 100.0, + "placement": "Center", + "primitive": "Point", + "resource_id": "7pLg2qp4Pp", + "resource_name": "Exhaust Particles", + "resource_ver": 2, + "shape": "Circle", + "warmup_time": 0.0 + }, + { + "alpha_over_dist": 0.009999999776482582, + "alpha_over_time": 0.029999999329447746, + "boundary": "Kill", + "coordinate_space": "Global", + "delay": 0.0, + "direction": "Sector", + "direction_sector_size": 6.2831854820251465, + "direction_sector_start_angle": 0.0, + "flags": { + "ParticlesCanExpire": true + }, + "gravity": { + "x": 0.0, + "y": 3.0 + }, + "growth_over_dist": -99.0, + "growth_over_time": -99.0, + "id": "8exJylNDfi", + "init_rect_height": 1.0, + "init_rect_width": 1.0, + "init_rect_xpos": 0.0, + "init_rect_ypos": 0.0, + "max_alpha": 1.0, + "max_lifetime": 0.3199999928474426, + "max_point_size": 2046.0, + "max_time": 1.0, + "max_velocity": 670.780029296875, + "max_xpos": 1.0, + "max_ypos": 1.0, + "min_alpha": 1.0, + "min_lifetime": 0.019999999552965164, + "min_point_size": 1630.0, + "min_time": 1.0, + "min_velocity": 277.3299865722656, + "mode": "Once", + "motion": "Linear", + "name": "Mine Explosion", + "num_particles": 100.0, + "placement": "Center", + "primitive": "Point", + "resource_id": "8exJylNDfi", + "resource_name": "Mine Explosion", + "resource_ver": 2, + "shape": "Rectangle", + "warmup_time": 0.0 + }, + { + "alpha_over_dist": 0.0, + "alpha_over_time": 0.0, + "boundary": "Wrap", + "coordinate_space": "Local", + "delay": 0.0, + "direction": "Sector", + "direction_sector_size": 0.0, + "direction_sector_start_angle": 0.0, + "flags": { + "ParticlesCanExpire": false + }, + "gravity": { + "x": 0.0, + "y": 0.30000001192092896 + }, + "growth_over_dist": 0.0, + "growth_over_time": 0.0, + "id": "9o7zbhlIlp", + "init_rect_height": 1.0, + "init_rect_width": 1.0, + "init_rect_xpos": 0.0, + "init_rect_ypos": 0.0, + "max_alpha": 1.0, + "max_lifetime": 3.4028234663852886e+38, + "max_point_size": 7.0, + "max_time": 3.4028234663852886e+38, + "max_velocity": 0.1599999964237213, + "max_xpos": 1.0, + "max_ypos": 1.0, + "min_alpha": 1.0, + "min_lifetime": 3.4028234663852886e+38, + "min_point_size": 2.0, + "min_time": 0.0, + "min_velocity": 0.03999999910593033, + "mode": "Once", + "motion": "Linear", + "name": "Stars", + "num_particles": 150.0, + "placement": "Inside", + "primitive": "Point", + "resource_id": "9o7zbhlIlp", + "resource_name": "Stars", + "resource_ver": 2, + "shape": "Rectangle", + "warmup_time": 0.0 + }, + { + "alpha_over_dist": 0.0, + "alpha_over_time": -1.0, + "boundary": "Kill", + "coordinate_space": "Local", + "delay": 0.0, + "direction": "Sector", + "direction_sector_size": 0.40142571926116943, + "direction_sector_start_angle": -1.7453292608261108, + "flags": { + "ParticlesCanExpire": true + }, + "gravity": { + "x": 0.0, + "y": 500.0 + }, + "growth_over_dist": 0.0, + "growth_over_time": -99.0, + "id": "FF0aZIpHbj", + "init_rect_height": 1.0, + "init_rect_width": 1.0, + "init_rect_xpos": 0.0, + "init_rect_ypos": 0.0, + "max_alpha": 1.0, + "max_lifetime": 0.5, + "max_point_size": 148.0, + "max_time": 3.4028234663852886e+38, + "max_velocity": 209.85000610351563, + "max_xpos": 1.0, + "max_ypos": 1.0, + "min_alpha": 1.0, + "min_lifetime": 0.4000000059604645, + "min_point_size": 69.0, + "min_time": 0.0, + "min_velocity": 128.61000061035156, + "mode": "Command", + "motion": "Linear", + "name": "Gun Particles", + "num_particles": 100.0, + "placement": "Center", + "primitive": "Point", + "resource_id": "FF0aZIpHbj", + "resource_name": "Gun Particles", + "resource_ver": 2, + "shape": "Rectangle", + "warmup_time": 0.0 + }, + { + "alpha_over_dist": -1.0, + "alpha_over_time": -1.0, + "boundary": "Kill", + "coordinate_space": "Local", + "delay": 0.0, + "direction": "Sector", + "direction_sector_size": 0.5235987901687622, + "direction_sector_start_angle": 1.2566370964050293, + "flags": { + "ParticlesCanExpire": true + }, + "gravity": { + "x": 0.0, + "y": 0.30000001192092896 + }, + "growth_over_dist": 0.0, + "growth_over_time": -99.0, + "id": "Gk8mjavP85", + "init_rect_height": 1.0, + "init_rect_width": 1.0, + "init_rect_xpos": 0.0, + "init_rect_ypos": 0.0, + "max_alpha": 1.0, + "max_lifetime": 0.30000001192092896, + "max_point_size": 217.0, + "max_time": 3.4028234663852886e+38, + "max_velocity": 46.619998931884766, + "max_xpos": 1.0, + "max_ypos": 1.0, + "min_alpha": 1.0, + "min_lifetime": 0.10000000149011612, + "min_point_size": 103.0, + "min_time": 0.0, + "min_velocity": 0.009999999776482582, + "mode": "Command", + "motion": "Linear", + "name": "Player Explosion", + "num_particles": 100.0, + "placement": "Center", + "primitive": "Point", + "resource_id": "Gk8mjavP85", + "resource_name": "Player Explosion", + "resource_ver": 2, + "shape": "Rectangle", + "warmup_time": 0.0 + }, + { + "alpha_over_dist": 0.0, + "alpha_over_time": 0.0, + "boundary": "Clamp", + "coordinate_space": "Global", + "delay": 0.0, + "direction": "Outwards", + "direction_sector_size": 0.0, + "direction_sector_start_angle": -3.1415927410125732, + "flags": { + "ParticlesCanExpire": true + }, + "gravity": { + "x": 0.0, + "y": 0.30000001192092896 + }, + "growth_over_dist": 19.0, + "growth_over_time": 68.0, + "id": "KLF0DsCfId", + "init_rect_height": 1.0, + "init_rect_width": 1.0, + "init_rect_xpos": 0.0, + "init_rect_ypos": 0.0, + "max_alpha": 1.0, + "max_lifetime": 10.0, + "max_point_size": 1418.0, + "max_time": 3.4028234663852886e+38, + "max_velocity": 4.0, + "max_xpos": 1.0, + "max_ypos": 1.0, + "min_alpha": 1.0, + "min_lifetime": 8.0, + "min_point_size": 950.0, + "min_time": 5.0, + "min_velocity": 0.09000000357627869, + "mode": "Continuous", + "motion": "Linear", + "name": "Space fog", + "num_particles": 1.0, + "placement": "Inside", + "primitive": "Point", + "resource_id": "KLF0DsCfId", + "resource_name": "Space fog", + "resource_ver": 2, + "shape": "Rectangle", + "warmup_time": 10.0 + }, + { + "alpha_over_dist": 0.0, + "alpha_over_time": -1.0, + "boundary": "Kill", + "coordinate_space": "Local", + "delay": 0.0, + "direction": "Outwards", + "direction_sector_size": 6.2831854820251465, + "direction_sector_start_angle": 0.0, + "flags": { + "ParticlesCanExpire": true + }, + "gravity": { + "x": 0.0, + "y": 0.30000001192092896 + }, + "growth_over_dist": 1.0, + "growth_over_time": -99.0, + "id": "LZ34N4wOGn", + "init_rect_height": 1.0, + "init_rect_width": 1.0, + "init_rect_xpos": 0.0, + "init_rect_ypos": 0.0, + "max_alpha": 1.0, + "max_lifetime": 1.0, + "max_point_size": 98.0, + "max_time": 3.4028234663852886e+38, + "max_velocity": 0.8299999833106995, + "max_xpos": 1.0, + "max_ypos": 1.0, + "min_alpha": 1.0, + "min_lifetime": 0.10000000149011612, + "min_point_size": 41.0, + "min_time": 0.0, + "min_velocity": 0.10999999940395355, + "mode": "Once", + "motion": "Linear", + "name": "Little Stars", + "num_particles": 100.0, + "placement": "Center", + "primitive": "Point", + "resource_id": "LZ34N4wOGn", + "resource_name": "Little Stars", + "resource_ver": 2, + "shape": "Rectangle", + "warmup_time": 0.0 + }, + { + "alpha_over_dist": 0.0, + "alpha_over_time": -1.0, + "boundary": "Clamp", + "coordinate_space": "Global", + "delay": 0.0, + "direction": "Sector", + "direction_sector_size": 0.0, + "direction_sector_start_angle": 0.0, + "flags": { + "ParticlesCanExpire": true + }, + "gravity": { + "x": 0.0, + "y": 0.30000001192092896 + }, + "growth_over_dist": 0.0, + "growth_over_time": 0.0, + "id": "Ls3ehJz9Iy", + "init_rect_height": 1.0, + "init_rect_width": 1.0, + "init_rect_xpos": 0.0, + "init_rect_ypos": 0.0, + "max_alpha": 1.0, + "max_lifetime": 0.20000000298023224, + "max_point_size": 300.0, + "max_time": 3.4028234663852886e+38, + "max_velocity": 5.800000190734863, + "max_xpos": 1.0, + "max_ypos": 1.0, + "min_alpha": 1.0, + "min_lifetime": 0.0, + "min_point_size": 300.0, + "min_time": 0.0, + "min_velocity": 1.0800000429153442, + "mode": "Command", + "motion": "Linear", + "name": "Mega Spark", + "num_particles": 2.0, + "placement": "Center", + "primitive": "Point", + "resource_id": "Ls3ehJz9Iy", + "resource_name": "Mega Spark", + "resource_ver": 2, + "shape": "Rectangle", + "warmup_time": 0.0 + }, + { + "alpha_over_dist": 0.0, + "alpha_over_time": -1.0, + "boundary": "Clamp", + "coordinate_space": "Global", + "delay": 0.0, + "direction": "Outwards", + "direction_sector_size": 6.2831854820251465, + "direction_sector_start_angle": 0.0, + "flags": { + "ParticlesCanExpire": true + }, + "gravity": { + "x": 0.0, + "y": 0.30000001192092896 + }, + "growth_over_dist": 0.0, + "growth_over_time": -99.0, + "id": "PEj5kFRA5A", + "init_rect_height": 1.0, + "init_rect_width": 1.0, + "init_rect_xpos": 0.0, + "init_rect_ypos": 0.0, + "max_alpha": 1.0, + "max_lifetime": 0.699999988079071, + "max_point_size": 37.0, + "max_time": 1.0, + "max_velocity": 0.009999999776482582, + "max_xpos": 1.0, + "max_ypos": 1.0, + "min_alpha": 1.0, + "min_lifetime": 0.5, + "min_point_size": 16.0, + "min_time": 0.0, + "min_velocity": 0.0, + "mode": "Continuous", + "motion": "Linear", + "name": "Score Particles", + "num_particles": 100.0, + "placement": "Edge", + "primitive": "Point", + "resource_id": "PEj5kFRA5A", + "resource_name": "Score Particles", + "resource_ver": 2, + "shape": "Rectangle", + "warmup_time": 0.0 + }, + { + "alpha_over_dist": 0.0, + "alpha_over_time": -1.0, + "boundary": "Clamp", + "coordinate_space": "Global", + "delay": 0.0, + "direction": "Sector", + "direction_sector_size": 0.0, + "direction_sector_start_angle": 3.1415927410125732, + "flags": { + "ParticlesCanExpire": true + }, + "gravity": { + "x": 0.0, + "y": 0.30000001192092896 + }, + "growth_over_dist": 0.0, + "growth_over_time": -99.0, + "id": "PPXCoUzFFy", + "init_rect_height": 1.0, + "init_rect_width": 1.0, + "init_rect_xpos": 0.0, + "init_rect_ypos": 0.0, + "max_alpha": 1.0, + "max_lifetime": 13.069999694824219, + "max_point_size": 45.0, + "max_time": 3.4028234663852886e+38, + "max_velocity": 172.52000427246094, + "max_xpos": 1.0, + "max_ypos": 1.0, + "min_alpha": 1.0, + "min_lifetime": 3.0799999237060547, + "min_point_size": 8.0, + "min_time": 0.0, + "min_velocity": 83.80999755859375, + "mode": "Continuous", + "motion": "Linear", + "name": "Score Particles", + "num_particles": 500.0, + "placement": "Edge", + "primitive": "Point", + "resource_id": "PPXCoUzFFy", + "resource_name": "Score Particles", + "resource_ver": 2, + "shape": "Rectangle", + "warmup_time": 0.0 + }, + { + "alpha_over_dist": 0.0, + "alpha_over_time": -0.699999988079071, + "boundary": "Clamp", + "coordinate_space": "Global", + "delay": 0.0, + "direction": "Sector", + "direction_sector_size": 0.5235987901687622, + "direction_sector_start_angle": 1.5707963705062866, + "flags": { + "ParticlesCanExpire": true + }, + "gravity": { + "x": 0.0, + "y": 0.30000001192092896 + }, + "growth_over_dist": 0.0, + "growth_over_time": 67.0, + "id": "YyvAdpWoTq", + "init_rect_height": 1.0, + "init_rect_width": 1.0, + "init_rect_xpos": 0.0, + "init_rect_ypos": 0.0, + "max_alpha": 1.0, + "max_lifetime": 1.5, + "max_point_size": 28.0, + "max_time": 3.4028234663852886e+38, + "max_velocity": 52.290000915527344, + "max_xpos": 1.0, + "max_ypos": 1.0, + "min_alpha": 1.0, + "min_lifetime": 1.0, + "min_point_size": 28.0, + "min_time": 0.0, + "min_velocity": 16.280000686645508, + "mode": "Continuous", + "motion": "Linear", + "name": "Engine Smoke", + "num_particles": 10.0, + "placement": "Center", + "primitive": "Point", + "resource_id": "YyvAdpWoTq", + "resource_name": "Engine Smoke", + "resource_ver": 2, + "shape": "Rectangle", + "warmup_time": 0.0 + }, + { + "alpha_over_dist": 0.0, + "alpha_over_time": -1.0, + "boundary": "Clamp", + "coordinate_space": "Global", + "delay": 0.0, + "direction": "Outwards", + "direction_sector_size": 0.0, + "direction_sector_start_angle": 1.5707963705062866, + "flags": { + "ParticlesCanExpire": true + }, + "gravity": { + "x": 0.0, + "y": 0.30000001192092896 + }, + "growth_over_dist": 0.0, + "growth_over_time": -99.0, + "id": "kvOgLarfY3", + "init_rect_height": 1.0, + "init_rect_width": 1.0, + "init_rect_xpos": 0.0, + "init_rect_ypos": 0.0, + "max_alpha": 1.0, + "max_lifetime": 4.039999961853027, + "max_point_size": 129.0, + "max_time": 3.4028234663852886e+38, + "max_velocity": 43.650001525878906, + "max_xpos": 1.0, + "max_ypos": 1.0, + "min_alpha": 1.0, + "min_lifetime": 2.0199999809265137, + "min_point_size": 53.0, + "min_time": 0.0, + "min_velocity": 10.260000228881836, + "mode": "Continuous", + "motion": "Linear", + "name": "Menu Particles", + "num_particles": 50.0, + "placement": "Edge", + "primitive": "Point", + "resource_id": "kvOgLarfY3", + "resource_name": "Menu Particles", + "resource_ver": 2, + "shape": "Rectangle", + "warmup_time": 0.0 + }, + { + "alpha_over_dist": 0.0, + "alpha_over_time": 0.0, + "boundary": "Clamp", + "coordinate_space": "Global", + "delay": 0.0, + "direction": "Sector", + "direction_sector_size": 0.36651915311813354, + "direction_sector_start_angle": -1.7453292608261108, + "flags": { + "ParticlesCanExpire": true }, - "resource_id": "UWF4u1fYHa", - "resource_name": "Game", - "resource_ver": 1, - "script_file": "OiyvAkqpIL", - "shading": "Flat", - "tilemap": "", - "top_boundary": -500.0, - "vars": [ - { - "flags": { - "Array": false, - "Private": false, - "ReadOnly": false - }, - "id": "7OIIPrIlIQ", - "ints": [ - 0 - ], - "name": "score" - } - ] + "gravity": { + "x": 0.0, + "y": 0.30000001192092896 + }, + "growth_over_dist": 0.0, + "growth_over_time": 56.0, + "id": "nTHdhE0fNf", + "init_rect_height": 1.0, + "init_rect_width": 1.0, + "init_rect_xpos": 0.0, + "init_rect_ypos": 0.0, + "max_alpha": 1.0, + "max_lifetime": 3.0, + "max_point_size": 83.0, + "max_time": 3.4028234663852886e+38, + "max_velocity": 71.80999755859375, + "max_xpos": 1.0, + "max_ypos": 1.0, + "min_alpha": 1.0, + "min_lifetime": 1.0, + "min_point_size": 33.0, + "min_time": 0.0, + "min_velocity": 18.93000030517578, + "mode": "Command", + "motion": "Linear", + "name": "Mega Smoke", + "num_particles": 4.0, + "placement": "Center", + "primitive": "Point", + "resource_id": "nTHdhE0fNf", + "resource_name": "Mega Smoke", + "resource_ver": 2, + "shape": "Rectangle", + "warmup_time": 0.0 }, { - "bottom_boundary": 500.0, - "dynamic_spatial_index": "Disabled", - "id": "Z2zrRug3HP", - "name": "Screenshot", - "nodes": [ - { - "entity": "diUlEeS5JH", - "flag_set_bits": { - "KillAtBoundary": false, - "KillAtLifetime": false, - "LimitLifetime": false, - "PostUpdate": false, - "TickEntity": false, - "UpdateEntity": false, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "flag_val_bits": { - "KillAtBoundary": false, - "KillAtLifetime": false, - "LimitLifetime": false, - "PostUpdate": false, - "TickEntity": false, - "UpdateEntity": false, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "id": "jPMk4TfRAu", - "idle_animation_id": "", - "name": "Player_0", - "parent_render_tree_node": "", - "position": { - "x": 205.00001525878906, - "y": 258.0 - }, - "render_layer": 0, - "rotation": 0.23633193969726563, - "scale": { - "x": 1.5, - "y": 1.5 - } - }, - { - "entity": "pNT0bA0bpw", - "flag_set_bits": { - "KillAtBoundary": false, - "KillAtLifetime": false, - "LimitLifetime": false, - "PostUpdate": false, - "TickEntity": false, - "UpdateEntity": false, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "flag_val_bits": { - "KillAtBoundary": false, - "KillAtLifetime": false, - "LimitLifetime": false, - "PostUpdate": false, - "TickEntity": false, - "UpdateEntity": false, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "id": "k13L6XKdCM", - "idle_animation_id": "", - "name": "Enemy_0", - "parent_render_tree_node": "", - "position": { - "x": 284.0, - "y": -291.0 - }, - "render_layer": 0, - "rotation": 0.6233150959014893, - "scale": { - "x": 2.0, - "y": 2.004279613494873 - } - }, - { - "entity": "pNT0bA0bpw", - "flag_set_bits": { - "KillAtBoundary": false, - "KillAtLifetime": false, - "LimitLifetime": false, - "PostUpdate": false, - "TickEntity": false, - "UpdateEntity": false, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "flag_val_bits": { - "KillAtBoundary": false, - "KillAtLifetime": false, - "LimitLifetime": false, - "PostUpdate": false, - "TickEntity": false, - "UpdateEntity": false, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "id": "xRe5w6CsqW", - "idle_animation_id": "", - "name": "Enemy_1", - "parent_render_tree_node": "", - "position": { - "x": 205.0, - "y": -157.99998474121094 - }, - "render_layer": 0, - "rotation": 0.4619719982147217, - "scale": { - "x": 2.0, - "y": 2.0 - } - }, - { - "entity": "pNT0bA0bpw", - "flag_set_bits": { - "KillAtBoundary": false, - "KillAtLifetime": false, - "LimitLifetime": false, - "PostUpdate": false, - "TickEntity": false, - "UpdateEntity": false, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "flag_val_bits": { - "KillAtBoundary": false, - "KillAtLifetime": false, - "LimitLifetime": false, - "PostUpdate": false, - "TickEntity": false, - "UpdateEntity": false, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "id": "JBCJuxB3Fh", - "idle_animation_id": "", - "name": "Enemy_2", - "parent_render_tree_node": "", - "position": { - "x": 370.0, - "y": -402.9999694824219 - }, - "render_layer": 0, - "rotation": 0.8025367259979248, - "scale": { - "x": 2.0, - "y": 2.0 - } - }, + "alpha_over_dist": -0.30000001192092896, + "alpha_over_time": 0.0, + "boundary": "Kill", + "coordinate_space": "Local", + "delay": 0.0, + "direction": "Sector", + "direction_sector_size": 0.3490658402442932, + "direction_sector_start_angle": 1.3962633609771729, + "flags": { + "ParticlesCanExpire": true + }, + "gravity": { + "x": 0.0, + "y": 0.30000001192092896 + }, + "growth_over_dist": 0.0, + "growth_over_time": 0.0, + "id": "qklhbbEm10", + "init_rect_height": 0.0, + "init_rect_width": 0.0, + "init_rect_xpos": 0.5, + "init_rect_ypos": 0.5, + "max_alpha": 1.0, + "max_lifetime": 10.0, + "max_point_size": 10.0, + "max_time": 3.4028234663852886e+38, + "max_velocity": 1.0, + "max_xpos": 1.0, + "max_ypos": 1.0, + "min_alpha": 1.0, + "min_lifetime": 1.0, + "min_point_size": 1.0, + "min_time": 0.0, + "min_velocity": 0.0, + "mode": "Once", + "motion": "Linear", + "name": "BulletTrail", + "num_particles": 100.0, + "placement": "Inside", + "primitive": "Point", + "resource_id": "qklhbbEm10", + "resource_name": "BulletTrail", + "resource_ver": 2, + "shape": "Rectangle", + "warmup_time": 0.0 + }, + { + "alpha_over_dist": 0.0, + "alpha_over_time": -1.0, + "boundary": "Kill", + "coordinate_space": "Local", + "delay": 0.0, + "direction": "Outwards", + "direction_sector_size": 6.2831854820251465, + "direction_sector_start_angle": 0.0, + "flags": { + "ParticlesCanExpire": true + }, + "gravity": { + "x": 0.0, + "y": 0.30000001192092896 + }, + "growth_over_dist": 0.0, + "growth_over_time": -99.0, + "id": "sBjTBK97Mf", + "init_rect_height": 1.0, + "init_rect_width": 1.0, + "init_rect_xpos": 0.0, + "init_rect_ypos": 0.0, + "max_alpha": 1.0, + "max_lifetime": 0.30000001192092896, + "max_point_size": 20.0, + "max_time": 3.4028234663852886e+38, + "max_velocity": 1.9299999475479126, + "max_xpos": 1.0, + "max_ypos": 1.0, + "min_alpha": 1.0, + "min_lifetime": 0.10000000149011612, + "min_point_size": 15.0, + "min_time": 0.0, + "min_velocity": 1.2999999523162842, + "mode": "Once", + "motion": "Linear", + "name": "Enemy/Explosion/Basic", + "num_particles": 100.0, + "placement": "Center", + "primitive": "Point", + "resource_id": "sBjTBK97Mf", + "resource_name": "Enemy/Explosion/Basic", + "resource_ver": 2, + "shape": "Rectangle", + "warmup_time": 0.0 + } + ], + "scenes": [ + { + "bottom_boundary": 500.0, + "dynamic_spatial_index": "QuadTree", + "id": "UWF4u1fYHa", + "name": "Game", + "nodes": [ { - "entity": "pNT0bA0bpw", + "entity": "diUlEeS5JH", "flag_set_bits": { "KillAtBoundary": false, "KillAtLifetime": false, @@ -12535,19 +19418,19 @@ "WantsKeyEvents": false, "WantsMouseEvents": false }, - "id": "yj7bw8b6gK", + "id": "v6jMFkJ4BJ", "idle_animation_id": "", - "name": "Enemy_3", + "name": "Player", "parent_render_tree_node": "", "position": { - "x": 490.0, - "y": -484.00006103515625 + "x": -700.0, + "y": 250.0 }, - "render_layer": 0, - "rotation": 0.798316240310669, + "render_layer": 1, + "rotation": 0.0, "scale": { - "x": 2.0, - "y": 2.0 + "x": 1.0, + "y": 1.0 } }, { @@ -12578,15 +19461,15 @@ "WantsKeyEvents": false, "WantsMouseEvents": false }, - "id": "6iCNBm35k7", + "id": "6bXKmTw71O", "idle_animation_id": "", "name": "Background", "parent_render_tree_node": "", "position": { - "x": -0.0, - "y": -0.0 + "x": 0.0, + "y": 0.0 }, - "render_layer": -1, + "render_layer": -2, "rotation": 0.0, "scale": { "x": 1.0, @@ -12594,7 +19477,7 @@ } }, { - "entity": "iydoxbMPEg", + "entity": "wXtbrxNRpX", "flag_set_bits": { "KillAtBoundary": false, "KillAtLifetime": false, @@ -12621,13 +19504,13 @@ "WantsKeyEvents": false, "WantsMouseEvents": false }, - "id": "W13eNdJAdi", + "id": "khKJrggLXs", "idle_animation_id": "", - "name": "Shield_0", + "name": "GameScore", "parent_render_tree_node": "", "position": { - "x": 200.0, - "y": 260.0 + "x": -470.0, + "y": -373.0 }, "render_layer": 0, "rotation": 0.0, @@ -12637,7 +19520,7 @@ } }, { - "entity": "uEUkHdeqOW", + "entity": "NtNnX1kgNp", "flag_set_bits": { "KillAtBoundary": false, "KillAtLifetime": false, @@ -12664,66 +19547,23 @@ "WantsKeyEvents": false, "WantsMouseEvents": false }, - "id": "2KiJQfxeeB", + "id": "NwiDBuIzNw", "idle_animation_id": "", - "name": "HP_0", + "name": "Mine Status", "parent_render_tree_node": "", "position": { - "x": 520.0, - "y": 140.0 + "x": 425.9999694824219, + "y": -373.0 }, "render_layer": 0, "rotation": 0.0, "scale": { - "x": 1.8799999952316284, - "y": 1.9000005722045898 - } - }, - { - "entity": "pNT0bA0bpw", - "flag_set_bits": { - "KillAtBoundary": false, - "KillAtLifetime": false, - "LimitLifetime": false, - "PostUpdate": false, - "TickEntity": false, - "UpdateEntity": false, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "flag_val_bits": { - "KillAtBoundary": false, - "KillAtLifetime": false, - "LimitLifetime": false, - "PostUpdate": false, - "TickEntity": false, - "UpdateEntity": false, - "UpdateNodes": false, - "VisibleInEditor": true, - "VisibleInGame": true, - "WantsKeyEvents": false, - "WantsMouseEvents": false - }, - "id": "owjSWFUoLE", - "idle_animation_id": "", - "name": "Copy of Enemy_1", - "parent_render_tree_node": "", - "position": { - "x": 480.0, - "y": -240.0 - }, - "render_layer": 0, - "rotation": 0.5166580677032471, - "scale": { - "x": 2.0, - "y": 2.0 + "x": 1.0, + "y": 1.0 } }, { - "entity": "pNT0bA0bpw", + "entity": "XExwRNFj8H", "flag_set_bits": { "KillAtBoundary": false, "KillAtLifetime": false, @@ -12746,27 +19586,27 @@ "UpdateEntity": false, "UpdateNodes": false, "VisibleInEditor": true, - "VisibleInGame": true, + "VisibleInGame": false, "WantsKeyEvents": false, "WantsMouseEvents": false }, - "id": "eQkMeMG9wH", + "id": "RHO6B0Pdke", "idle_animation_id": "", - "name": "Copy of Enemy_1", + "name": "Stars_0", "parent_render_tree_node": "", "position": { - "x": 602.9999389648438, - "y": -356.0000305175781 + "x": 0.0, + "y": 0.0 }, - "render_layer": 0, - "rotation": 0.7443497180938721, + "render_layer": -1, + "rotation": 0.0, "scale": { - "x": 2.0, - "y": 2.0 + "x": 1.0, + "y": 1.0 } }, { - "entity": "HSH0115zhS", + "entity": "rTHIeIzO8G", "flag_set_bits": { "KillAtBoundary": false, "KillAtLifetime": false, @@ -12793,23 +19633,23 @@ "WantsKeyEvents": false, "WantsMouseEvents": false }, - "id": "PJknvBKTNq", + "id": "LC84P5tUsg", "idle_animation_id": "", - "name": "Enemy/Blue_0", + "name": "Stats Bar_0", "parent_render_tree_node": "", "position": { - "x": 300.0, - "y": 40.0 + "x": 515.0, + "y": 353.0 }, - "render_layer": 0, - "rotation": -2.7021994590759277, + "render_layer": -1, + "rotation": 0.0, "scale": { "x": 1.0, "y": 1.0 } }, { - "entity": "HSH0115zhS", + "entity": "p5r5vfQHG6", "flag_set_bits": { "KillAtBoundary": false, "KillAtLifetime": false, @@ -12836,23 +19676,23 @@ "WantsKeyEvents": false, "WantsMouseEvents": false }, - "id": "wWbajd65Jx", + "id": "8seSbXJfqJ", "idle_animation_id": "", - "name": "Enemy/Blue_1", + "name": "health", "parent_render_tree_node": "", "position": { - "x": 344.0, - "y": 116.0 + "x": -514.0, + "y": 360.99993896484375 }, "render_layer": 0, - "rotation": -2.63185453414917, + "rotation": 0.0, "scale": { "x": 1.0, "y": 1.0 } }, { - "entity": "HSH0115zhS", + "entity": "flFywvWC88", "flag_set_bits": { "KillAtBoundary": false, "KillAtLifetime": false, @@ -12879,23 +19719,23 @@ "WantsKeyEvents": false, "WantsMouseEvents": false }, - "id": "94O5uyNupW", + "id": "GpWhASv5nG", "idle_animation_id": "", - "name": "Enemy/Blue_2", + "name": "Info", "parent_render_tree_node": "", "position": { - "x": 410.0000305175781, - "y": 28.0 + "x": 7.0, + "y": -373.0 }, "render_layer": 0, - "rotation": -2.5568716526031494, + "rotation": 0.0, "scale": { "x": 1.0, "y": 1.0 } }, { - "entity": "HSH0115zhS", + "entity": "pRNaJXshXi", "flag_set_bits": { "KillAtBoundary": false, "KillAtLifetime": false, @@ -12922,103 +19762,95 @@ "WantsKeyEvents": false, "WantsMouseEvents": false }, - "id": "DFdyUx01lN", + "id": "w2Jjve3UZy", "idle_animation_id": "", - "name": "Enemy/Blue_3", + "name": "Effect", "parent_render_tree_node": "", "position": { - "x": 509.0, - "y": 26.0 + "x": -0.0, + "y": 0.0 }, - "render_layer": 0, - "rotation": -2.5461177825927734, + "render_layer": -1, + "rotation": 0.0, "scale": { - "x": 1.0, - "y": 1.0 + "x": 2.691999912261963, + "y": 1.7879998683929443 } } ], + "quadtree_max_items": 4, + "quadtree_max_levels": 1, "render_tree": { "children": [ { "node": { - "id": "jPMk4TfRAu" - } - }, - { - "node": { - "id": "k13L6XKdCM" - } - }, - { - "node": { - "id": "xRe5w6CsqW" - } - }, - { - "node": { - "id": "JBCJuxB3Fh" - } - }, - { - "node": { - "id": "yj7bw8b6gK" - } - }, - { - "node": { - "id": "6iCNBm35k7" + "id": "v6jMFkJ4BJ" } }, { "node": { - "id": "W13eNdJAdi" + "id": "6bXKmTw71O" } }, { "node": { - "id": "2KiJQfxeeB" + "id": "khKJrggLXs" } }, { "node": { - "id": "owjSWFUoLE" + "id": "NwiDBuIzNw" } }, { "node": { - "id": "eQkMeMG9wH" + "id": "RHO6B0Pdke" } }, { "node": { - "id": "PJknvBKTNq" + "id": "LC84P5tUsg" } }, { "node": { - "id": "wWbajd65Jx" + "id": "8seSbXJfqJ" } }, { "node": { - "id": "94O5uyNupW" + "id": "GpWhASv5nG" } }, { "node": { - "id": "DFdyUx01lN" + "id": "w2Jjve3UZy" } } ], "node": null }, - "resource_id": "Z2zrRug3HP", - "resource_name": "Screenshot", + "resource_id": "UWF4u1fYHa", + "resource_name": "Game", "resource_ver": 1, - "script_file": "IEMBmyYrGj", + "script_file": "OiyvAkqpIL", "shading": "Flat", - "tilemap": "" + "tilemap": "", + "top_boundary": -500.0, + "vars": [ + { + "flags": { + "Array": false, + "Private": false, + "ReadOnly": false + }, + "id": "7OIIPrIlIQ", + "ints": [ + 0 + ], + "name": "score" + } + ] }, { "dynamic_spatial_index": "Disabled", @@ -13061,7 +19893,7 @@ "x": 0.0, "y": -50.0 }, - "render_layer": -1, + "render_layer": -2, "rotation": 0.0, "scale": { "x": 1.0, @@ -13141,7 +19973,7 @@ }, "id": "NMhTGn41FR", "idle_animation_id": "", - "name": "Title_0", + "name": "game_title", "parent_render_tree_node": "", "position": { "x": 0.0, @@ -13529,6 +20361,49 @@ "id": "aAb40HLl9p" } ] + }, + { + "entity": "pRNaJXshXi", + "flag_set_bits": { + "KillAtBoundary": false, + "KillAtLifetime": false, + "LimitLifetime": false, + "PostUpdate": false, + "TickEntity": false, + "UpdateEntity": false, + "UpdateNodes": false, + "VisibleInEditor": true, + "VisibleInGame": true, + "WantsKeyEvents": false, + "WantsMouseEvents": false + }, + "flag_val_bits": { + "KillAtBoundary": false, + "KillAtLifetime": false, + "LimitLifetime": false, + "PostUpdate": false, + "TickEntity": false, + "UpdateEntity": false, + "UpdateNodes": false, + "VisibleInEditor": true, + "VisibleInGame": true, + "WantsKeyEvents": false, + "WantsMouseEvents": false + }, + "id": "5FgqQ5aNGA", + "idle_animation_id": "", + "name": "Lightning Effect", + "parent_render_tree_node": "", + "position": { + "x": -0.0, + "y": -0.0 + }, + "render_layer": -1, + "rotation": 0.0, + "scale": { + "x": 1.0, + "y": 1.0 + } } ], "render_tree": { @@ -13587,6 +20462,11 @@ "node": { "id": "4xZOsRi1lw" } + }, + { + "node": { + "id": "5FgqQ5aNGA" + } } ], "node": null @@ -14511,7 +21391,7 @@ }, "style": "{\"properties\":[{\"key\":\"edit-text-font\",\"value\":\"ws://fonts/MAXI_L_S.TTF\"},{\"key\":\"text-font\",\"value\":\"app://fonts/ethnocentric rg.otf\"},{\"key\":\"edit-text-size\",\"value\":22},{\"key\":\"text-size\",\"value\":22},{\"key\":\"font-size\",\"value\":24}]}", "tab_index": 0, - "text": "Press space to shoot.\n\nPress 1 to launch a mine.", + "text": "Press space to shoot.\n\nPress 1 to launch rockets!", "type": "Label" }, { diff --git a/editor/dist/demos/blast/cpp/blast.cpp b/editor/dist/demos/blast/cpp/blast.cpp index cb8f999c0..dab827402 100644 --- a/editor/dist/demos/blast/cpp/blast.cpp +++ b/editor/dist/demos/blast/cpp/blast.cpp @@ -40,6 +40,13 @@ void GetEntityScripts(std::vector* out) reg.script = std::make_unique(); out->push_back(std::move(reg)); } + + { + EntityScriptRegistration reg; + reg.classId = "41Od2TRXue"; + reg.script = std::make_unique(); + out->push_back(std::move(reg)); + } } } // namespace \ No newline at end of file diff --git a/editor/dist/demos/blast/cpp/enemy.cpp b/editor/dist/demos/blast/cpp/enemy.cpp index 5a0776b42..4a2f90efc 100644 --- a/editor/dist/demos/blast/cpp/enemy.cpp +++ b/editor/dist/demos/blast/cpp/enemy.cpp @@ -17,6 +17,8 @@ #include "config.h" #include "base/logging.h" +#include "base/math.h" +#include "game/scene.h" #include "game/entity.h" #include "game/entity_node.h" #include "game/entity_node_text_item.h" @@ -60,28 +62,13 @@ void BroadcastDeath(int score) engine::PostEvent(ev); } -void EnemyShip::Update(game::Entity& entity, double game_time, double delta) +void BasicEnemyMovement(game::Entity& entity, double game_time, double delta) { const float dt = delta; - auto& ship_body = entity.GetNode(0); auto ship_pos = ship_body.GetTranslation(); auto ship_rot = ship_body.GetRotation(); - if (entity.IsDying()) - { - if (ship_pos.y > 500.0f) - return; - - const auto type = entity.GetVar("type"); - const auto score = entity.GetVar("score"); - - SpawnExplosion(ship_pos, "Enemy/Explosion/" + type); - SpawnScore(ship_pos, score); - BroadcastDeath(score); - return; - } - // update x,y position auto velocity = entity.GetVar("velocity"); auto rotation = entity.GetVar("rotation"); @@ -113,4 +100,97 @@ void EnemyShip::Update(game::Entity& entity, double game_time, double delta) } } +void IntermediateEnemyMovement(game::Entity& entity, double game_time, double delta) +{ + const auto dt = static_cast(delta); + + auto* scene = entity.GetScene(); + + glm::vec2 target_pos = {0.0f, 600.0f}; + + const auto& entities = scene->ListEntitiesByClassName("Player"); + if (!entities.empty()) + { + auto* player = entities[0]; + const auto& player_node = player->GetNode(0); + const auto& player_pos = player_node.GetTranslation(); + // move laterally to face the player + target_pos = player_pos; + } + + auto& entity_node = entity.GetNode(0); + auto entity_pos = entity_node.GetTranslation(); + + // see if there's a bullet we need to dodge + const auto& bullets = scene->ListEntitiesByClassName("Bullet/Player"); + for (const auto& bullet : bullets) + { + const auto& bullet_node = bullet->GetNode(0); + const auto& bullet_pos = bullet_node.GetTranslation(); + // if it's behind us, ignore it + if (bullet_pos.y <= (entity_pos.y + 50.0f)) + continue; + + // if the bullet is going past us ignore it + const auto safety_margin = std::abs(bullet_pos.x - entity_pos.x); + if (safety_margin > 100.0f) + continue; + + // take evasive action. + const auto x = bullet_pos.x - entity_pos.x; + if (x < 0.0f) + target_pos += glm::vec2 { 100.0f, 0.0f }; + else target_pos += glm::vec2 { -100.0f, 0.0f }; + + break; + } + + // this clever trick here is called + // "frame rate independent exponential smoothing" + constexpr auto tracking_speed = 5.0f; // larger = snappier + const float t = 1.0f - std::exp(-tracking_speed * dt); + entity_pos.x = math::lerp(entity_pos.x, target_pos.x, t); + + constexpr float base_speed = 50.0f; // downward speed (units/sec) + constexpr float amplitude = 200.0f; // height of sine wave + constexpr float frequency = 2.0f; // oscillations per second + + entity_pos.y += base_speed * dt; + entity_pos.y += std::sin(game_time * frequency) * amplitude * dt; + entity_node.SetTranslation(entity_pos); + + if (entity_pos.y > 500.0) + { + entity.Die(); + } +} + +void EnemyShip::Update(game::Entity& entity, double game_time, double delta) +{ + + auto& ship_body = entity.GetNode(0); + auto ship_pos = ship_body.GetTranslation(); + auto ship_rot = ship_body.GetRotation(); + + if (entity.IsDying()) + { + if (ship_pos.y > 500.0f) + return; + + const auto type = entity.GetVar("type"); + const auto score = entity.GetVar("score"); + + SpawnExplosion(ship_pos, "Enemy/Explosion/" + type); + SpawnScore(ship_pos, score); + BroadcastDeath(score); + return; + } + + const auto& name = entity.GetClassName(); + if (name == "Enemy/Basic") + BasicEnemyMovement(entity, game_time, delta); + else if (name == "Enemy/Intermediate") + IntermediateEnemyMovement(entity, game_time, delta); +} + } // namespace diff --git a/editor/dist/demos/blast/lua/FXdfIUPul3.lua b/editor/dist/demos/blast/lua/FXdfIUPul3.lua index 7eb11ac79..5fdcaacc6 100644 --- a/editor/dist/demos/blast/lua/FXdfIUPul3.lua +++ b/editor/dist/demos/blast/lua/FXdfIUPul3.lua @@ -6,15 +6,6 @@ require('common') local tick_counter = 0 -function BroadcastDeath(ship) - local event = game.GameEvent:new() - event.from = 'enemy' - event.message = 'dead' - event.to = 'game' - event.value = ship.score - Game:PostEvent(event) -end - function RocketBlast(ship, mine) local ship_node = ship:GetNode(0) local ship_pos = ship_node:GetTranslation() @@ -59,10 +50,25 @@ function BulletHit(ship, bullet) bullet:Die() + -- ship death is handled in the native c++ code in the + -- update function. this function will also move to native + -- code once the c++ game runtime features become more + -- developed. + if ship.type == 'basic' then ship:Die() end + if ship.type == 'intermediate' then + local hit_count = ship.hit_count + hit_count = hit_count + 1 + if hit_count == 20 then + ship:Die() + end + ship.hit_count = hit_count + ship:PlayAnimation('Indicate Damage') + end + if ship.type == 'advanced' then local node = ship:FindNodeByClassName('Health') local size = node:GetSize() @@ -87,15 +93,19 @@ function BulletHit(ship, bullet) end -function FireAdvancedWeapon(ship, weapon, bullet) - local weapon = ship:FindNodeByClassName(weapon) +function FireWeapon(ship, weapon, bullet, bullet_speed) + local weapon = ship:FindNode(weapon) local matrix = Scene:FindEntityNodeTransform(ship, weapon) - local args = game.EntityArgs:new() - args.class = ClassLib:FindEntityClassByName(bullet) - args.position = util.GetTranslationFromMatrix(matrix) - args.name = 'bullet' - args.async = true - Scene:SpawnEntity(args, true) + local position = util.GetTranslationFromMatrix(matrix) + + Scene:SpawnEntity(bullet, { + async = true, + pos = position, + vars = { + velocity = bullet_speed + } + }) + end function BasicWeaponry(ship) @@ -103,24 +113,28 @@ function BasicWeaponry(ship) return end - local weapon = ship:FindNodeByClassName('Weapon') - local matrix = Scene:FindEntityNodeTransform(ship, weapon) - Scene:SpawnEntity('Bullet/Enemy/Basic', { - pos = util.GetTranslationFromMatrix(matrix), - name = 'blue bullet', - async = true, - vars = { - velocity = ship.velocity.y + 100.0 - } - }) + local bullet_velocity = ship.velocity.y + 100.0 + FireWeapon(ship, 'Weapon', 'Bullet/Enemy/Basic', bullet_velocity) +end + +function IntermediateWeaponry(ship) + if ship.type ~= 'intermediate' then + return + end + + FireWeapon(ship, 'Weapon0', 'Bullet/Enemy/Advanced', 500.0) + FireWeapon(ship, 'Weapon1', 'Bullet/Enemy/Advanced', 500.0) + Audio:PlaySoundEffect('Fire 6') + end function AdvancedWeaponry(ship) if ship.type ~= 'advanced' then return end - FireAdvancedWeapon(ship, 'Weapon0', 'Bullet/Enemy/Advanced') - FireAdvancedWeapon(ship, 'Weapon1', 'Bullet/Enemy/Advanced') + FireWeapon(ship, 'Weapon0', 'Bullet/Enemy/Advanced', 1000.0) + FireWeapon(ship, 'Weapon1', 'Bullet/Enemy/Advanced', 1000.0) + ship:PlayAnimation('Fire Weapons') end -- Called when the game play begins for a scene. @@ -139,6 +153,7 @@ function Tick(ship, game_time, dt) if math.fmod(tick_counter, 3) ~= 0 then BasicWeaponry(ship) + IntermediateWeaponry(ship) end if math.fmod(tick_counter, 6) ~= 0 then diff --git a/editor/dist/demos/blast/lua/OiyvAkqpIL.lua b/editor/dist/demos/blast/lua/OiyvAkqpIL.lua index b2ec351e9..656c9ad17 100644 --- a/editor/dist/demos/blast/lua/OiyvAkqpIL.lua +++ b/editor/dist/demos/blast/lua/OiyvAkqpIL.lua @@ -15,17 +15,17 @@ require('app://scripts/utility/utility.lua') local the_player = nil -- current wave of enemies that is coming. -local wave_count = 0 +local wave_count = 0 -- tick count is used to throttle the spawning of enemies -local game_tick_count = 0 +local game_tick_count = 0 -- enemy ship velocity increment. as the game goes on the enemies get -- faster and faster, thus making the game harder and harder local ship_velo_increment = 1.0 -- previous formation. used to avoid spawning same formation again back to back -local prev_formation = -1 +local prev_formation = -1 local game_over = false @@ -48,8 +48,6 @@ function ComboKill() Scene:SpawnEntity('Combo', {}) - Audio:PlaySoundEffect('Combo Kill') - local combo_kill_score = 1000 game_score = game_score + combo_kill_score @@ -59,23 +57,48 @@ function ComboKill() UpdateScore() end -function SpawnEnemy(x, y, velocity) - local ship = ClassLib:FindEntityClassByName('Enemy/Basic') - local args = game.EntityArgs:new() - args.class = ship - args.name = "enemy" - args.position = glm.vec2:new(x, y) - args.layer = 1 - local ship = Scene:SpawnEntity(args, true) - ship.velocity = velocity * ship_velo_increment - ship.score = math.floor(ship.score * ship_velo_increment) +function SpawnBasicEnemy(x, y, velocity) + local velocity = velocity * ship_velo_increment + local score = math.floor(100.0 * ship_velo_increment) + + Scene:SpawnEntity('Enemy/Basic', { + async = true, + x = x, + y = y, + layer = 1, + vars = { + velocity = velocity, + score = score + } + }) + end -function SpawnBigBastard() +function SpawnAdvancedEnemy() + + -- use the entity list to determine whether we already have + -- one of these guys in the play. multiple don't work well + -- since their motion patterns will have them overlap + local list = Scene:ListEntitiesByClassName('Enemy/Advanced') + if not list:IsEmpty() then + return + end + Scene:SpawnEntity('Enemy/Advanced', { - pos = glm.vec2:new(0.0, -500.0) + x = 0.0, + y = -500.0, + async = true, + layer = 1 }) +end +function SpawnIntermediateEnemy(x, y) + Scene:SpawnEntity('Enemy/Intermediate', { + x = x, + y = y, + async = true, + layer = 1 + }) end function SpawnWaveLeft() @@ -83,7 +106,7 @@ function SpawnWaveLeft() local y = -500 local velocity = glm.vec2:new(-200.0, 150.0) for i = 1, 10, 1 do - SpawnEnemy(x, y, velocity) + SpawnBasicEnemy(x, y, velocity) x = x + 100 y = y - 40 end @@ -94,7 +117,7 @@ function SpawnWaveRight() local y = -500 local velocity = glm.vec2:new(200.0, 150.0) for i = 1, 10, 1 do - SpawnEnemy(x, y, velocity) + SpawnBasicEnemy(x, y, velocity) x = x - 100 y = y - 40 end @@ -102,15 +125,15 @@ end function SpawnChevron() local velocity = glm.vec2:new(0.0, 150.0) - SpawnEnemy(-400.0, -660.0, velocity) - SpawnEnemy(-300.0, -620.0, velocity) - SpawnEnemy(-200.0, -580.0, velocity) - SpawnEnemy(-100.0, -540.0, velocity) - SpawnEnemy(0.0, -500.0, velocity) - SpawnEnemy(100.0, -540.0, velocity) - SpawnEnemy(200.0, -580.0, velocity) - SpawnEnemy(300.0, -620.0, velocity) - SpawnEnemy(400.0, -660.0, velocity) + SpawnBasicEnemy(-400.0, -660.0, velocity) + SpawnBasicEnemy(-300.0, -620.0, velocity) + SpawnBasicEnemy(-200.0, -580.0, velocity) + SpawnBasicEnemy(-100.0, -540.0, velocity) + SpawnBasicEnemy(0.0, -500.0, velocity) + SpawnBasicEnemy(100.0, -540.0, velocity) + SpawnBasicEnemy(200.0, -580.0, velocity) + SpawnBasicEnemy(300.0, -620.0, velocity) + SpawnBasicEnemy(400.0, -660.0, velocity) end function SpawnRow() @@ -118,11 +141,18 @@ function SpawnRow() local y = -500 local velocity = glm.vec2:new(0.0, 150.0) for i = 1, 10, 1 do - SpawnEnemy(x, y, velocity) + SpawnBasicEnemy(x, y, velocity) y = y - 100 end end +function SpawnGrid() + SpawnIntermediateEnemy(-500.0, -500.0) + SpawnIntermediateEnemy(-250.0, -300.0) + SpawnIntermediateEnemy(250.0, -300.0) + SpawnIntermediateEnemy(500.0, -500.0) +end + function BeginPlay(game, map) trace.event('begin play') @@ -164,9 +194,9 @@ function Tick(game, game_time, dt) if math.fmod(game_tick_count, 5) == 0 then -- randomly select a new formation - local next_formation = util.Random(0, 3) + local next_formation = util.Random(0, 4) while next_formation == prev_formation do - next_formation = util.Random(0, 3) + next_formation = util.Random(0, 4) end prev_formation = next_formation @@ -178,6 +208,8 @@ function Tick(game, game_time, dt) SpawnWaveRight() elseif next_formation == 3 then SpawnChevron() + elseif next_formation == 4 then + SpawnIntermediateEnemy(0.0, -500.0) end -- increase the velocity of the enemies after each wave @@ -200,7 +232,7 @@ function Tick(game, game_time, dt) end if math.fmod(game_tick_count, 18) == 0 then - SpawnBigBastard() + SpawnAdvancedEnemy() end game_tick_count = game_tick_count + 1 diff --git a/editor/dist/demos/blast/lua/QldASNFLIb.lua b/editor/dist/demos/blast/lua/QldASNFLIb.lua index 4563db4e2..b0dde7826 100644 --- a/editor/dist/demos/blast/lua/QldASNFLIb.lua +++ b/editor/dist/demos/blast/lua/QldASNFLIb.lua @@ -57,15 +57,16 @@ function Tick(redmine, game_time, dt) end -- Called on every iteration of game loop. -function Update(redmine, game_time, dt) - if redmine:IsDying() then +function Update(rocket, game_time, dt) + if rocket:IsDying() then return end - local mine_body = redmine:GetNode(0) - local mine_pos = mine_body:GetTranslation() - if redmine:HasExpired() then - Explode(redmine, mine_pos) + local rocket_body = rocket:GetNode(0) + local rocket_pos = rocket_body:GetTranslation() + if rocket:HasExpired() then + -- Explode(rocket, rocket_pos) + rocket:Die() return end @@ -75,17 +76,17 @@ function Update(redmine, game_time, dt) if enemy:GetTag() == '#enemy' then local ship_body = enemy:GetNode(0) local ship_pos = ship_body:GetTranslation() - if (util.DistanceIsLessOrEqual(ship_pos, mine_pos, 50.0)) then - Explode(redmine, mine_pos) + if (util.DistanceIsLessOrEqual(ship_pos, rocket_pos, 50.0)) then + Explode(rocket, rocket_pos) return end end end - mine_pos.y = mine_pos.y + dt * velocity; - mine_body:SetTranslation(mine_pos) - if mine_pos.y < -500 then - Scene:KillEntity(redmine) + -- rocket_pos.y = rocket_pos.y + dt * velocity; + -- rocket_body:SetTranslation(rocket_pos) + if rocket_pos.y < -500 then + Scene:KillEntity(rocket) return end end diff --git a/editor/dist/demos/blast/lua/bjZ0TrwuxI.lua b/editor/dist/demos/blast/lua/bjZ0TrwuxI.lua index 597e8cda9..45ca6ded1 100644 --- a/editor/dist/demos/blast/lua/bjZ0TrwuxI.lua +++ b/editor/dist/demos/blast/lua/bjZ0TrwuxI.lua @@ -4,6 +4,23 @@ -- You're free to delete functions you don't need. function BulletHit(asteroid, bullet) bullet:Die() + + if bullet.player == false then + return + end + + if asteroid:HasScheduledDeath() then + return + end + + local damage = asteroid.damage + damage = damage + 20.0 + if damage >= 100.0 then + asteroid:DieLater(2.0) + asteroid:PlayAnimation('Explode') + return + end + asteroid.damage = damage end -- Called when the game play begins for a scene. @@ -23,11 +40,16 @@ function Update(asteroid, game_time, dt) end function PostUpdate(asteroid, game_time, dt) - local node = asteroid:GetNode(0) - local asteroid_pos = node:GetTranslation() + + if asteroid:HasScheduledDeath() then + return + end + + local asteroid_node = asteroid:GetNode(0) + local asteroid_pos = asteroid_node:GetTranslation() -- player's ship can get hurt if hit by an asteroid! - local player = Scene:FindEntityByInstanceName('Player') + local player = Scene:FindEntity('Player') if player == nil then return end diff --git a/editor/dist/demos/blast/lua/common.lua b/editor/dist/demos/blast/lua/common.lua index 1554895e8..8a7801749 100644 --- a/editor/dist/demos/blast/lua/common.lua +++ b/editor/dist/demos/blast/lua/common.lua @@ -40,29 +40,28 @@ end function SpawnSpaceRock() local maybe = util.Random(0, 2) local scale = glm.vec2:new(1.0, 1.0) - local radius = 30 - local time_scale = 2.0 + local radius = 80.0 local speed = 300.0 + local position = glm.vec2:new(util.Random(-550, 550), -500) + local rotation = util.Random(0.0, 1.34) + if maybe == 1 then local size = util.Random(0, 2) if size == 1 then scale = glm.vec2:new(2.0, 2.0) - radius = 60 - time_scale = 0.3 + radius = 160.0 speed = 150.0 end - local asteroid = ClassLib:FindEntityClassByName('Asteroid') - local args = game.EntityArgs:new() - args.class = asteroid - args.name = 'asteroid' - args.position = glm.vec2:new(util.Random(-550, 550), -500) - args.scale = scale - local entity = Scene:SpawnEntity(args, true) - local body = entity:GetNode(0) - local item = body:GetDrawable() - item:SetTimeScale(time_scale) - entity.radius = radius - entity.speed = speed + Scene:SpawnEntity('Asteroid', { + asyn = true, + pos = position, + scale = scale, + r = rotation, + vars = { + radius = radius, + speed = speed + } + }) end end diff --git a/editor/dist/demos/blast/lua/game.lua b/editor/dist/demos/blast/lua/game.lua index e323de20f..046072d2d 100644 --- a/editor/dist/demos/blast/lua/game.lua +++ b/editor/dist/demos/blast/lua/game.lua @@ -7,6 +7,7 @@ -- flag to indicate whether we're showing the developer UI or not. local developer_ui = false +local tick_counter = 10 -- LuaFormatter on @@ -49,6 +50,7 @@ function StartGame() Game:SetViewport(base.FRect:new(-600.0, -400.0, 1200, 800.0)) Game:Play('Menu') Game:OpenUI('MainMenu') + end function SaveGame() @@ -69,6 +71,34 @@ end function Tick(game_time, dt) collectgarbage('step') + + if Scene == nil then + return + end + + if Scene:GetClassName() ~= 'Menu' then + return + end + + local game_title = Scene:FindEntity('game_title') + local spark_effect_node = game_title:FindNode('spark_effect') + local spark_effect_draw = spark_effect_node:GetDrawable() + + local smoke_effect_node = game_title:FindNode('smoke_effect') + local smoke_effect_draw = smoke_effect_node:GetDrawable() + + if tick_counter == 10 then + spark_effect_draw:Command('EmitParticles', { + count = 5 + }) + smoke_effect_draw:Command('EmitParticles', { + count = 5 + }) + tick_counter = 0 + Audio:PlaySoundEffect('electricFX') + end + + tick_counter = tick_counter + 1 end function Update(game_time, dt) diff --git a/editor/dist/demos/blast/lua/rvZg0UT77h.lua b/editor/dist/demos/blast/lua/rvZg0UT77h.lua index 67d5cca52..26b111481 100644 --- a/editor/dist/demos/blast/lua/rvZg0UT77h.lua +++ b/editor/dist/demos/blast/lua/rvZg0UT77h.lua @@ -160,13 +160,13 @@ function AsteroidHit(player, asteroid) Game:DebugPrint('You were hit by an asteroid!') end -function FireRocket(player) +function FireRocket(player, type) local weapon = player:FindNodeByClassName('Mine') local matrix = Scene:FindEntityNodeTransform(player, weapon) -- setup the args for spawning a new bullet. local args = game.EntityArgs:new() - args.class = ClassLib:FindEntityClassByName('Rocket') + args.class = ClassLib:FindEntityClassByName(type) args.position = util.GetTranslationFromMatrix(matrix) args.name = 'rocket' args.logging = false @@ -346,7 +346,8 @@ function OnKeyDown(player, symbol, modifier_bits) if symbol == wdk.Keys.Key1 then if mine_ready then - FireRocket(player, 'Rocket') + FireRocket(player, 'Left Rocket') + FireRocket(player, 'Right Rocket') mine_ready = false mine_load_time = 5.0 else @@ -382,10 +383,22 @@ function OnKeyUp(player, symbol, modifier_bits) _keydown_bits = _keydown_bits & ~_Keys.Fire end - if PreviewMode then - if symbol == wdk.Keys.F1 then - IndicateDamage(player) - end + -- for development + if PreviewMode == false then + return + end + + -- react to some special key presses in preview/development + -- mode in order to test battles and such + + local scene = player:GetScene() + + if symbol == wdk.Keys.F1 then + IndicateDamage(player) + elseif symbol == wdk.Keys.F2 then + scene:SpawnEntity('Enemy/Intermediate', { + y = -500 + }) end end diff --git a/editor/dist/demos/blast/music/junkala/INFO.txt b/editor/dist/demos/blast/music/junkala/INFO.txt deleted file mode 100644 index e97274be8..000000000 --- a/editor/dist/demos/blast/music/junkala/INFO.txt +++ /dev/null @@ -1,8 +0,0 @@ - -Hi, I'm Juhani Junkala, the author of this music collection. I'm a classically trained composer, producer and a sound designer with over 20 years of experience. - -These music tracks have been released under CC0 creative commons license. You can do anything you want with these tunes. - -Check out my game music portfolio: https://www.youtube.com/watch?v=dbACpSy9FWY - -If you need music or sound effects for your game, contact me: juhani.junkala@musician.org \ No newline at end of file diff --git a/editor/dist/demos/blast/screenshot.png b/editor/dist/demos/blast/screenshot.png index 6ba54df25..15ca8cf6f 100644 Binary files a/editor/dist/demos/blast/screenshot.png and b/editor/dist/demos/blast/screenshot.png differ diff --git a/editor/dist/demos/blast/shaders/es2/text.glsl b/editor/dist/demos/blast/shaders/es2/text.glsl index 22669d0a6..f4a9ef5fb 100644 --- a/editor/dist/demos/blast/shaders/es2/text.glsl +++ b/editor/dist/demos/blast/shaders/es2/text.glsl @@ -11,7 +11,7 @@ float SlidingGlint() vec2 uv = vTexCoord; float time = 1.4; float cycle = mod(kTime / time, time) / time; - float glint_width = 0.6; + float glint_width = 0.2; float left = -0.5 + cycle * 2.0 + uv.y * -0.1; float right = left + glint_width; if (!(uv.x > left && uv.x < right)) diff --git a/editor/dist/demos/blast/sounds/Fire 5.mp3 b/editor/dist/demos/blast/sounds/Fire 5.mp3 new file mode 100644 index 000000000..a9d45136d Binary files /dev/null and b/editor/dist/demos/blast/sounds/Fire 5.mp3 differ diff --git a/editor/dist/demos/blast/sounds/Fire 6.mp3 b/editor/dist/demos/blast/sounds/Fire 6.mp3 new file mode 100644 index 000000000..9d1b2237c Binary files /dev/null and b/editor/dist/demos/blast/sounds/Fire 6.mp3 differ diff --git a/editor/dist/demos/blast/sounds/electric1.mp3 b/editor/dist/demos/blast/sounds/electric1.mp3 new file mode 100644 index 000000000..3acb88a4a Binary files /dev/null and b/editor/dist/demos/blast/sounds/electric1.mp3 differ diff --git a/editor/dist/demos/blast/sounds/electric2.mp3 b/editor/dist/demos/blast/sounds/electric2.mp3 new file mode 100644 index 000000000..59372db89 Binary files /dev/null and b/editor/dist/demos/blast/sounds/electric2.mp3 differ diff --git a/editor/dist/demos/blast/sounds/readme.txt b/editor/dist/demos/blast/sounds/readme.txt index ea9ada1e5..690f366eb 100644 --- a/editor/dist/demos/blast/sounds/readme.txt +++ b/editor/dist/demos/blast/sounds/readme.txt @@ -1,3 +1,6 @@ victory.mp3 https://opengameart.org/content/victory + +Misc lasers +https://opengameart.org/content/retro-shooter-sound-effects diff --git a/editor/dist/demos/blast/sounds/stone.ogg b/editor/dist/demos/blast/sounds/stone.ogg new file mode 100644 index 000000000..b1c3c95e6 Binary files /dev/null and b/editor/dist/demos/blast/sounds/stone.ogg differ diff --git a/editor/dist/demos/blast/sounds/swoosh.wav b/editor/dist/demos/blast/sounds/swoosh.wav new file mode 100644 index 000000000..ab77cc6eb Binary files /dev/null and b/editor/dist/demos/blast/sounds/swoosh.wav differ diff --git a/editor/dist/demos/blast/sounds/warn-explode.ogg b/editor/dist/demos/blast/sounds/warn-explode.ogg new file mode 100644 index 000000000..4f2510adb Binary files /dev/null and b/editor/dist/demos/blast/sounds/warn-explode.ogg differ diff --git a/editor/dist/demos/blast/textures/Ammunition/spaceMissiles_015.png b/editor/dist/demos/blast/textures/Ammunition/spaceMissiles_015.png new file mode 100644 index 000000000..b776e7d52 Binary files /dev/null and b/editor/dist/demos/blast/textures/Ammunition/spaceMissiles_015.png differ diff --git a/editor/dist/demos/blast/textures/Ammunition/spaceMissiles_040.png b/editor/dist/demos/blast/textures/Ammunition/spaceMissiles_040.png new file mode 100644 index 000000000..aa963dc72 Binary files /dev/null and b/editor/dist/demos/blast/textures/Ammunition/spaceMissiles_040.png differ diff --git a/editor/dist/demos/blast/textures/Asteroids/asteroid_dark.png b/editor/dist/demos/blast/textures/Asteroids/asteroid_dark.png deleted file mode 100644 index 5b480efae..000000000 Binary files a/editor/dist/demos/blast/textures/Asteroids/asteroid_dark.png and /dev/null differ diff --git a/editor/dist/demos/blast/textures/Asteroids/meteorGrey_big4.png b/editor/dist/demos/blast/textures/Asteroids/meteorGrey_big4.png new file mode 100644 index 000000000..b611ec0f6 Binary files /dev/null and b/editor/dist/demos/blast/textures/Asteroids/meteorGrey_big4.png differ diff --git a/editor/dist/demos/blast/textures/Parts/partss-sheet.png b/editor/dist/demos/blast/textures/Parts/partss-sheet.png new file mode 100644 index 000000000..0a5cfc054 Binary files /dev/null and b/editor/dist/demos/blast/textures/Parts/partss-sheet.png differ diff --git a/editor/dist/demos/blast/textures/Parts/partss-sheet.png.json b/editor/dist/demos/blast/textures/Parts/partss-sheet.png.json new file mode 100644 index 000000000..a8e2d2df5 --- /dev/null +++ b/editor/dist/demos/blast/textures/Parts/partss-sheet.png.json @@ -0,0 +1,797 @@ +{ + "image_file": "partss-sheet.png", + "image_height": 1024, + "image_width": 1024, + "images": [ + { + "height": 171, + "index": 29, + "name": "spaceParts_030", + "width": 64, + "xpos": 2, + "ypos": 2 + }, + { + "height": 171, + "index": 14, + "name": "spaceParts_015", + "width": 64, + "xpos": 70, + "ypos": 2 + }, + { + "height": 171, + "index": 15, + "name": "spaceParts_016", + "width": 64, + "xpos": 2, + "ypos": 177 + }, + { + "height": 167, + "index": 8, + "name": "spaceParts_009", + "width": 51, + "xpos": 70, + "ypos": 177 + }, + { + "height": 167, + "index": 9, + "name": "spaceParts_010", + "width": 51, + "xpos": 138, + "ypos": 2 + }, + { + "height": 167, + "index": 26, + "name": "spaceParts_027", + "width": 51, + "xpos": 138, + "ypos": 173 + }, + { + "height": 163, + "index": 13, + "name": "spaceParts_014", + "width": 86, + "xpos": 193, + "ypos": 2 + }, + { + "height": 163, + "index": 28, + "name": "spaceParts_029", + "width": 86, + "xpos": 193, + "ypos": 169 + }, + { + "height": 163, + "index": 12, + "name": "spaceParts_013", + "width": 86, + "xpos": 2, + "ypos": 352 + }, + { + "height": 156, + "index": 10, + "name": "spaceParts_011", + "width": 71, + "xpos": 92, + "ypos": 352 + }, + { + "height": 156, + "index": 11, + "name": "spaceParts_012", + "width": 71, + "xpos": 167, + "ypos": 352 + }, + { + "height": 156, + "index": 27, + "name": "spaceParts_028", + "width": 71, + "xpos": 283, + "ypos": 2 + }, + { + "height": 153, + "index": 16, + "name": "spaceParts_017", + "width": 89, + "xpos": 358, + "ypos": 2 + }, + { + "height": 153, + "index": 17, + "name": "spaceParts_018", + "width": 89, + "xpos": 358, + "ypos": 159 + }, + { + "height": 153, + "index": 30, + "name": "spaceParts_031", + "width": 89, + "xpos": 358, + "ypos": 316 + }, + { + "height": 152, + "index": 18, + "name": "spaceParts_019", + "width": 71, + "xpos": 283, + "ypos": 162 + }, + { + "height": 152, + "index": 19, + "name": "spaceParts_020", + "width": 71, + "xpos": 283, + "ypos": 318 + }, + { + "height": 152, + "index": 31, + "name": "spaceParts_032", + "width": 71, + "xpos": 2, + "ypos": 519 + }, + { + "height": 144, + "index": 25, + "name": "spaceParts_026", + "width": 73, + "xpos": 77, + "ypos": 519 + }, + { + "height": 144, + "index": 6, + "name": "spaceParts_007", + "width": 73, + "xpos": 154, + "ypos": 519 + }, + { + "height": 144, + "index": 7, + "name": "spaceParts_008", + "width": 73, + "xpos": 231, + "ypos": 519 + }, + { + "height": 141, + "index": 23, + "name": "spaceParts_024", + "width": 78, + "xpos": 308, + "ypos": 519 + }, + { + "height": 141, + "index": 3, + "name": "spaceParts_004", + "width": 78, + "xpos": 451, + "ypos": 2 + }, + { + "height": 141, + "index": 2, + "name": "spaceParts_003", + "width": 78, + "xpos": 451, + "ypos": 147 + }, + { + "height": 140, + "index": 95, + "name": "spaceParts_096", + "width": 75, + "xpos": 451, + "ypos": 292 + }, + { + "height": 140, + "index": 94, + "name": "spaceParts_095", + "width": 75, + "xpos": 451, + "ypos": 436 + }, + { + "height": 140, + "index": 24, + "name": "spaceParts_025", + "width": 81, + "xpos": 533, + "ypos": 2 + }, + { + "height": 140, + "index": 20, + "name": "spaceParts_021", + "width": 75, + "xpos": 533, + "ypos": 146 + }, + { + "height": 140, + "index": 35, + "name": "spaceParts_036", + "width": 69, + "xpos": 533, + "ypos": 290 + }, + { + "height": 140, + "index": 48, + "name": "spaceParts_049", + "width": 69, + "xpos": 533, + "ypos": 434 + }, + { + "height": 140, + "index": 5, + "name": "spaceParts_006", + "width": 81, + "xpos": 2, + "ypos": 675 + }, + { + "height": 140, + "index": 4, + "name": "spaceParts_005", + "width": 81, + "xpos": 87, + "ypos": 675 + }, + { + "height": 139, + "index": 21, + "name": "spaceParts_022", + "width": 96, + "xpos": 172, + "ypos": 675 + }, + { + "height": 139, + "index": 96, + "name": "spaceParts_097", + "width": 96, + "xpos": 272, + "ypos": 675 + }, + { + "height": 139, + "index": 97, + "name": "spaceParts_098", + "width": 96, + "xpos": 372, + "ypos": 675 + }, + { + "height": 135, + "index": 40, + "name": "spaceParts_041", + "width": 103, + "xpos": 472, + "ypos": 675 + }, + { + "height": 135, + "index": 53, + "name": "spaceParts_054", + "width": 103, + "xpos": 618, + "ypos": 2 + }, + { + "height": 133, + "index": 0, + "name": "spaceParts_001", + "width": 98, + "xpos": 618, + "ypos": 141 + }, + { + "height": 133, + "index": 22, + "name": "spaceParts_023", + "width": 98, + "xpos": 618, + "ypos": 278 + }, + { + "height": 133, + "index": 1, + "name": "spaceParts_002", + "width": 98, + "xpos": 618, + "ypos": 415 + }, + { + "height": 132, + "index": 41, + "name": "spaceParts_042", + "width": 68, + "xpos": 618, + "ypos": 552 + }, + { + "height": 132, + "index": 44, + "name": "spaceParts_045", + "width": 80, + "xpos": 725, + "ypos": 2 + }, + { + "height": 131, + "index": 39, + "name": "spaceParts_040", + "width": 119, + "xpos": 2, + "ypos": 819 + }, + { + "height": 131, + "index": 52, + "name": "spaceParts_053", + "width": 119, + "xpos": 125, + "ypos": 819 + }, + { + "height": 131, + "index": 51, + "name": "spaceParts_052", + "width": 88, + "xpos": 248, + "ypos": 819 + }, + { + "height": 131, + "index": 38, + "name": "spaceParts_039", + "width": 88, + "xpos": 340, + "ypos": 819 + }, + { + "height": 125, + "index": 46, + "name": "spaceParts_047", + "width": 64, + "xpos": 725, + "ypos": 138 + }, + { + "height": 125, + "index": 33, + "name": "spaceParts_034", + "width": 64, + "xpos": 725, + "ypos": 267 + }, + { + "height": 124, + "index": 37, + "name": "spaceParts_038", + "width": 75, + "xpos": 725, + "ypos": 396 + }, + { + "height": 124, + "index": 43, + "name": "spaceParts_044", + "width": 86, + "xpos": 618, + "ypos": 688 + }, + { + "height": 124, + "index": 50, + "name": "spaceParts_051", + "width": 75, + "xpos": 725, + "ypos": 524 + }, + { + "height": 123, + "index": 47, + "name": "spaceParts_048", + "width": 95, + "xpos": 432, + "ypos": 819 + }, + { + "height": 123, + "index": 34, + "name": "spaceParts_035", + "width": 95, + "xpos": 531, + "ypos": 819 + }, + { + "height": 56, + "index": 86, + "name": "spaceParts_087", + "width": 116, + "xpos": 630, + "ypos": 819 + }, + { + "height": 113, + "index": 49, + "name": "spaceParts_050", + "width": 81, + "xpos": 809, + "ypos": 2 + }, + { + "height": 113, + "index": 36, + "name": "spaceParts_037", + "width": 81, + "xpos": 809, + "ypos": 119 + }, + { + "height": 111, + "index": 32, + "name": "spaceParts_033", + "width": 74, + "xpos": 809, + "ypos": 236 + }, + { + "height": 111, + "index": 45, + "name": "spaceParts_046", + "width": 74, + "xpos": 809, + "ypos": 351 + }, + { + "height": 24, + "index": 87, + "name": "spaceParts_088", + "width": 108, + "xpos": 630, + "ypos": 879 + }, + { + "height": 28, + "index": 89, + "name": "spaceParts_090", + "width": 102, + "xpos": 630, + "ypos": 907 + }, + { + "height": 52, + "index": 88, + "name": "spaceParts_089", + "width": 95, + "xpos": 2, + "ypos": 954 + }, + { + "height": 94, + "index": 42, + "name": "spaceParts_043", + "width": 58, + "xpos": 809, + "ypos": 466 + }, + { + "height": 84, + "index": 93, + "name": "spaceParts_094", + "width": 32, + "xpos": 809, + "ypos": 564 + }, + { + "height": 76, + "index": 91, + "name": "spaceParts_092", + "width": 32, + "xpos": 845, + "ypos": 564 + }, + { + "height": 44, + "index": 85, + "name": "spaceParts_086", + "width": 72, + "xpos": 809, + "ypos": 652 + }, + { + "height": 66, + "index": 79, + "name": "spaceParts_080", + "width": 18, + "xpos": 871, + "ypos": 466 + }, + { + "height": 66, + "index": 62, + "name": "spaceParts_063", + "width": 18, + "xpos": 809, + "ypos": 700 + }, + { + "height": 66, + "index": 63, + "name": "spaceParts_064", + "width": 18, + "xpos": 831, + "ypos": 700 + }, + { + "height": 66, + "index": 61, + "name": "spaceParts_062", + "width": 18, + "xpos": 853, + "ypos": 700 + }, + { + "height": 66, + "index": 64, + "name": "spaceParts_065", + "width": 19, + "xpos": 809, + "ypos": 770 + }, + { + "height": 66, + "index": 81, + "name": "spaceParts_082", + "width": 18, + "xpos": 832, + "ypos": 770 + }, + { + "height": 66, + "index": 82, + "name": "spaceParts_083", + "width": 19, + "xpos": 854, + "ypos": 770 + }, + { + "height": 66, + "index": 80, + "name": "spaceParts_081", + "width": 18, + "xpos": 809, + "ypos": 840 + }, + { + "height": 64, + "index": 60, + "name": "spaceParts_061", + "width": 33, + "xpos": 831, + "ypos": 840 + }, + { + "height": 64, + "index": 78, + "name": "spaceParts_079", + "width": 33, + "xpos": 725, + "ypos": 652 + }, + { + "height": 64, + "index": 92, + "name": "spaceParts_093", + "width": 28, + "xpos": 762, + "ypos": 652 + }, + { + "height": 62, + "index": 70, + "name": "spaceParts_071", + "width": 38, + "xpos": 725, + "ypos": 720 + }, + { + "height": 62, + "index": 71, + "name": "spaceParts_072", + "width": 56, + "xpos": 533, + "ypos": 578 + }, + { + "height": 61, + "index": 90, + "name": "spaceParts_091", + "width": 22, + "xpos": 868, + "ypos": 840 + }, + { + "height": 60, + "index": 77, + "name": "spaceParts_078", + "width": 40, + "xpos": 451, + "ypos": 580 + }, + { + "height": 60, + "index": 59, + "name": "spaceParts_060", + "width": 40, + "xpos": 390, + "ypos": 519 + }, + { + "height": 60, + "index": 73, + "name": "spaceParts_074", + "width": 25, + "xpos": 767, + "ypos": 720 + }, + { + "height": 60, + "index": 55, + "name": "spaceParts_056", + "width": 25, + "xpos": 690, + "ypos": 552 + }, + { + "height": 58, + "index": 76, + "name": "spaceParts_077", + "width": 48, + "xpos": 390, + "ypos": 583 + }, + { + "height": 58, + "index": 54, + "name": "spaceParts_055", + "width": 27, + "xpos": 690, + "ypos": 616 + }, + { + "height": 58, + "index": 72, + "name": "spaceParts_073", + "width": 27, + "xpos": 495, + "ypos": 580 + }, + { + "height": 58, + "index": 58, + "name": "spaceParts_059", + "width": 48, + "xpos": 894, + "ypos": 2 + }, + { + "height": 56, + "index": 75, + "name": "spaceParts_076", + "width": 28, + "xpos": 894, + "ypos": 64 + }, + { + "height": 56, + "index": 57, + "name": "spaceParts_058", + "width": 28, + "xpos": 894, + "ypos": 124 + }, + { + "height": 52, + "index": 65, + "name": "spaceParts_066", + "width": 52, + "xpos": 750, + "ypos": 819 + }, + { + "height": 52, + "index": 83, + "name": "spaceParts_084", + "width": 52, + "xpos": 101, + "ypos": 954 + }, + { + "height": 51, + "index": 74, + "name": "spaceParts_075", + "width": 33, + "xpos": 894, + "ypos": 184 + }, + { + "height": 51, + "index": 56, + "name": "spaceParts_057", + "width": 33, + "xpos": 894, + "ypos": 239 + }, + { + "height": 50, + "index": 67, + "name": "spaceParts_068", + "width": 34, + "xpos": 894, + "ypos": 294 + }, + { + "height": 42, + "index": 68, + "name": "spaceParts_069", + "width": 46, + "xpos": 894, + "ypos": 348 + }, + { + "height": 36, + "index": 69, + "name": "spaceParts_070", + "width": 42, + "xpos": 894, + "ypos": 394 + }, + { + "height": 32, + "index": 84, + "name": "spaceParts_085", + "width": 32, + "xpos": 894, + "ypos": 434 + }, + { + "height": 32, + "index": 66, + "name": "spaceParts_067", + "width": 32, + "xpos": 894, + "ypos": 470 + } + ], + "json_version": 1, + "made_with_app": "DETONATOR 2D", + "made_with_ver": "rel-???", + "padding": 2, + "power_of_two": true, + "premultiply_alpha": false +} \ No newline at end of file diff --git a/editor/dist/demos/blast/textures/Ships/spaceShips_002.png b/editor/dist/demos/blast/textures/Ships/spaceShips_002.png new file mode 100644 index 000000000..b2789b3fd Binary files /dev/null and b/editor/dist/demos/blast/textures/Ships/spaceShips_002.png differ diff --git a/editor/dist/demos/blast/textures/Ships/spaceShips_004.png b/editor/dist/demos/blast/textures/Ships/spaceShips_004.png new file mode 100644 index 000000000..c7c083216 Binary files /dev/null and b/editor/dist/demos/blast/textures/Ships/spaceShips_004.png differ diff --git a/editor/dist/demos/blast/textures/menu.png b/editor/dist/demos/blast/textures/menu.png deleted file mode 100644 index 2dcbf019f..000000000 Binary files a/editor/dist/demos/blast/textures/menu.png and /dev/null differ diff --git a/editor/dist/demos/blast/textures/shmup-pack-3/bullets/12.png b/editor/dist/demos/blast/textures/shmup-pack-3/bullets/12.png deleted file mode 100644 index b0c489a88..000000000 Binary files a/editor/dist/demos/blast/textures/shmup-pack-3/bullets/12.png and /dev/null differ diff --git a/editor/dist/demos/blast/textures/shmup-pack-3/bullets/2.png b/editor/dist/demos/blast/textures/shmup-pack-3/bullets/2.png deleted file mode 100644 index 44a8372ad..000000000 Binary files a/editor/dist/demos/blast/textures/shmup-pack-3/bullets/2.png and /dev/null differ diff --git a/editor/dist/demos/blast/textures/shmup-pack-3/bullets/6.png b/editor/dist/demos/blast/textures/shmup-pack-3/bullets/6.png deleted file mode 100644 index c0805640a..000000000 Binary files a/editor/dist/demos/blast/textures/shmup-pack-3/bullets/6.png and /dev/null differ diff --git a/editor/dist/demos/blast/textures/shmup-pack-3/items/14.png b/editor/dist/demos/blast/textures/shmup-pack-3/items/14.png deleted file mode 100644 index 140fc4c20..000000000 Binary files a/editor/dist/demos/blast/textures/shmup-pack-3/items/14.png and /dev/null differ diff --git a/editor/dist/demos/blast/textures/shmup-pack-3/items/18.png b/editor/dist/demos/blast/textures/shmup-pack-3/items/18.png deleted file mode 100644 index 9994c75c8..000000000 Binary files a/editor/dist/demos/blast/textures/shmup-pack-3/items/18.png and /dev/null differ diff --git a/editor/dist/demos/blast/textures/shmup-pack-3/items/23.png b/editor/dist/demos/blast/textures/shmup-pack-3/items/23.png deleted file mode 100644 index f6966a0f7..000000000 Binary files a/editor/dist/demos/blast/textures/shmup-pack-3/items/23.png and /dev/null differ diff --git a/editor/dist/demos/blast/textures/shmup-pack-3/items/7.png b/editor/dist/demos/blast/textures/shmup-pack-3/items/7.png deleted file mode 100644 index 6efdbd8dd..000000000 Binary files a/editor/dist/demos/blast/textures/shmup-pack-3/items/7.png and /dev/null differ diff --git a/editor/dist/demos/blast/textures/shmup-pack-3/items/8.png b/editor/dist/demos/blast/textures/shmup-pack-3/items/8.png deleted file mode 100644 index 702414ede..000000000 Binary files a/editor/dist/demos/blast/textures/shmup-pack-3/items/8.png and /dev/null differ diff --git a/editor/dist/demos/blast/workspace.json b/editor/dist/demos/blast/workspace.json index 049443404..7835a4783 100644 --- a/editor/dist/demos/blast/workspace.json +++ b/editor/dist/demos/blast/workspace.json @@ -1,4 +1,10 @@ { + "01D5uIlggD": { + "__tag_list": [ + ], + "__version": 6, + "is-valid": true + }, "0tJOf84hBU": { "__tag_list": [ ], @@ -9,11 +15,39 @@ "is-valid": true, "mapping_count": 0 }, + "1TIDACOJjO": { + "__tag_list": [ + ], + "__version": 1, + "elem_YM14LoSCxg_pos_x": 418, + "elem_YM14LoSCxg_pos_y": -118, + "elem_r6EWGzmSiY_pos_x": 138, + "elem_r6EWGzmSiY_pos_y": -86, + "elem_uhkWYXF1fv_pos_x": -145, + "elem_uhkWYXF1fv_pos_y": -32, + "is-valid": true, + "link_6TJFYwe9L5_dst_x": 137, + "link_6TJFYwe9L5_dst_y": -36, + "link_6TJFYwe9L5_src_x": 55, + "link_6TJFYwe9L5_src_y": 17, + "link_JPm7Evezob_dst_x": 418, + "link_JPm7Evezob_dst_y": -68, + "link_JPm7Evezob_src_x": 338, + "link_JPm7Evezob_src_y": -36, + "mapping_0_link": "JPm7Evezob", + "mapping_0_port": "YM14LoSCxg:in", + "mapping_1_link": "JPm7Evezob", + "mapping_1_port": "r6EWGzmSiY:out", + "mapping_2_link": "6TJFYwe9L5", + "mapping_2_port": "r6EWGzmSiY:in", + "mapping_3_link": "6TJFYwe9L5", + "mapping_3_port": "uhkWYXF1fv:out", + "mapping_count": 4 + }, "2Tg09vx9Yf": { "__tag_list": [ ], "__version": 1, - "checked_for_packing": true, "elem_EEfBsJfH7U_pos_x": -558, "elem_EEfBsJfH7U_pos_y": 356, "elem_KUf8FAknrd_pos_x": -559, @@ -68,6 +102,147 @@ "checked_for_packing": true, "is-valid": true }, + "2oiZe73qMj": { + "__tag_list": [ + ], + "__version": 3, + "comment_6Dnw2fSTL0": "", + "comment_Cb3Y2oN9HI": "", + "comment_Fbrm8OFsxE": "", + "comment_HnZ3t3iXdj": "", + "comment_R2vkaIhbjs": "", + "comment_f7sXmqsWbd": "", + "comment_fgYIZfCb20": "", + "comment_hIzDAYPqDy": "", + "comment_n3mMdrlRa6": "", + "comment_o3ZPeIQXur": "", + "comment_oko2xvYgFb": "", + "comment_qKew86HICU": "", + "comment_sChBffXu5C": "", + "comment_sOMLvM0RHG": "", + "comment_u0mbwdv2NK": "", + "comment_v1NOnRyW0i": "", + "comment_wiZX8QHgFq": "", + "comment_xNnMrUJ8Hr": "", + "comment_yCZRkINytS": "", + "comment_ykMJAC3FE0": "", + "is-valid": true, + "track_Nv6OEQCXnZ": { + "center_splitter": "AAAA/wAAAAEAAAADAAAA6QAAAfYAAAEsAf////8BAAAAAQA=", + "main_splitter": "AAAA/wAAAAEAAAACAAADSgAAAegB/////wEAAAACAA==", + "num_timelines": 18, + "timeline_0_node_id": "Cb3Y2oN9HI", + "timeline_0_self_id": "CqHM1AbggG", + "timeline_10_node_id": "ykMJAC3FE0", + "timeline_10_self_id": "qkXg0ueo4x", + "timeline_11_node_id": "n3mMdrlRa6", + "timeline_11_self_id": "yIxQTDHo6t", + "timeline_12_node_id": "wiZX8QHgFq", + "timeline_12_self_id": "U9IvtX2Soh", + "timeline_13_node_id": "qKew86HICU", + "timeline_13_self_id": "XDS9r5kWTL", + "timeline_14_node_id": "R2vkaIhbjs", + "timeline_14_self_id": "bsIgygtFgT", + "timeline_15_node_id": "Fbrm8OFsxE", + "timeline_15_self_id": "z4TMH99D7o", + "timeline_16_node_id": "v1NOnRyW0i", + "timeline_16_self_id": "7rsIYWLLgu", + "timeline_17_node_id": "f7sXmqsWbd", + "timeline_17_self_id": "u2Bp3e9Ri2", + "timeline_1_node_id": "oko2xvYgFb", + "timeline_1_self_id": "wR2b9lmRay", + "timeline_2_node_id": "xNnMrUJ8Hr", + "timeline_2_self_id": "kSuwjJPa0J", + "timeline_3_node_id": "o3ZPeIQXur", + "timeline_3_self_id": "2EDIuJO0BE", + "timeline_4_node_id": "HnZ3t3iXdj", + "timeline_4_self_id": "oAes5SYeSs", + "timeline_5_node_id": "u0mbwdv2NK", + "timeline_5_self_id": "BBi4u7s7bG", + "timeline_6_node_id": "fgYIZfCb20", + "timeline_6_self_id": "mq78GkM2f3", + "timeline_7_node_id": "hIzDAYPqDy", + "timeline_7_self_id": "UlAgO9Uw1A", + "timeline_8_node_id": "sChBffXu5C", + "timeline_8_self_id": "Ay4zLRkp1a", + "timeline_9_node_id": "yCZRkINytS", + "timeline_9_self_id": "hofWA924AF", + "timeline_splitter": "AAAA/wAAAAEAAAACAAAA4QAAANoB/////wEAAAACAA==", + "use_physics": false + }, + "track_OigKU5ftKF": { + "center_splitter": "AAAA/wAAAAEAAAADAAAA6QAAAfYAAAEsAf////8BAAAAAQA=", + "main_splitter": "AAAA/wAAAAEAAAACAAABWAAAAb8B/////wEAAAACAA==", + "num_timelines": 20, + "timeline_0_node_id": "sChBffXu5C", + "timeline_0_self_id": "lOhRgN8TCk", + "timeline_10_node_id": "ykMJAC3FE0", + "timeline_10_self_id": "uEiLWbpS5p", + "timeline_11_node_id": "n3mMdrlRa6", + "timeline_11_self_id": "2s06wKUhkf", + "timeline_12_node_id": "wiZX8QHgFq", + "timeline_12_self_id": "8yhosPZo7g", + "timeline_13_node_id": "qKew86HICU", + "timeline_13_self_id": "yt5kMLglhf", + "timeline_14_node_id": "R2vkaIhbjs", + "timeline_14_self_id": "1B4dfuOens", + "timeline_15_node_id": "Fbrm8OFsxE", + "timeline_15_self_id": "SDLfCzUobH", + "timeline_16_node_id": "v1NOnRyW0i", + "timeline_16_self_id": "whbjD3PGwP", + "timeline_17_node_id": "f7sXmqsWbd", + "timeline_17_self_id": "2ejO21e5BX", + "timeline_18_node_id": "sOMLvM0RHG", + "timeline_18_self_id": "de4dabrJfS", + "timeline_19_node_id": "6Dnw2fSTL0", + "timeline_19_self_id": "7IC3Us8TAI", + "timeline_1_node_id": "Cb3Y2oN9HI", + "timeline_1_self_id": "RkdBHJTk1J", + "timeline_2_node_id": "oko2xvYgFb", + "timeline_2_self_id": "S95RD53SgD", + "timeline_3_node_id": "xNnMrUJ8Hr", + "timeline_3_self_id": "oygHQZu20Y", + "timeline_4_node_id": "o3ZPeIQXur", + "timeline_4_self_id": "gu32nTkECe", + "timeline_5_node_id": "HnZ3t3iXdj", + "timeline_5_self_id": "EpbqjG0k9C", + "timeline_6_node_id": "u0mbwdv2NK", + "timeline_6_self_id": "T3bg1D9DzZ", + "timeline_7_node_id": "fgYIZfCb20", + "timeline_7_self_id": "CQGk8f5Nq1", + "timeline_8_node_id": "hIzDAYPqDy", + "timeline_8_self_id": "5pQBle7qzX", + "timeline_9_node_id": "yCZRkINytS", + "timeline_9_self_id": "15gkyC3hHz", + "timeline_splitter": "AAAA/wAAAAEAAAACAAAA4QAAANoB/////wEAAAACAA==", + "use_physics": false + } + }, + "41Od2TRXue": { + "__tag_list": [ + ], + "__version": 3, + "comment_GFHCvbs2O2": "", + "comment_aE1magu6a0": "", + "comment_fN8ai4maHs": "", + "comment_hmKzCDxwdP": "", + "is-valid": true, + "track_r6NeZXbW5D": { + "center_splitter": "AAAA/wAAAAEAAAADAAAA6QAAAWgAAADaAf////8BAAAAAQA=", + "main_splitter": "AAAA/wAAAAEAAAACAAABWAAAAbsB/////wEAAAACAA==", + "num_timelines": 4, + "timeline_0_node_id": "fN8ai4maHs", + "timeline_0_self_id": "KNLkW7KCHb", + "timeline_1_node_id": "aE1magu6a0", + "timeline_1_self_id": "gJwO9W4042", + "timeline_2_node_id": "GFHCvbs2O2", + "timeline_2_self_id": "MPgvuCpofD", + "timeline_3_node_id": "hmKzCDxwdP", + "timeline_3_self_id": "LsvpH1dCrp", + "timeline_splitter": "AAAA/wAAAAEAAAACAAAA4QAAANoB/////wEAAAACAA==", + "use_physics": false + } + }, "4Ckmwoylp6": { "__tag_list": [ ], @@ -104,8 +279,7 @@ "__tag_list": [ ], "__version": 3, - "checked_for_packing": true, - "comment_UIG3lUtmPm": "", + "comment_UIG3lUtmPm": "Linear mover is started in code", "is-valid": true }, "5YQ8ZqObX7": { @@ -115,6 +289,12 @@ "checked_for_packing": true, "is-valid": true }, + "5aOlnaj3v3": { + "__tag_list": [ + ], + "__version": 6, + "is-valid": true + }, "6Smomrh9yG": { "__tag_list": [ ], @@ -189,7 +369,7 @@ "__tag_list": [ ], "__version": 3, - "checked_for_packing": true, + "comment_6k4modG4Op": "", "comment_bhTMTzzFAN": "", "comment_zaQ8SYuKGL": "", "is-valid": true, @@ -216,7 +396,6 @@ "__tag_list": [ ], "__version": 6, - "checked_for_packing": true, "is-valid": true }, "CopZZzjQd4": { @@ -230,7 +409,6 @@ "__tag_list": [ ], "__version": 6, - "checked_for_packing": true, "is-valid": true }, "FF0aZIpHbj": { @@ -258,6 +436,42 @@ "checked_for_packing": true, "is-valid": true }, + "FXsZgCtdU5": { + "__tag_list": [ + ], + "__version": 1, + "elem_SFYlYL67BI_pos_x": -363, + "elem_SFYlYL67BI_pos_y": -457, + "elem_Y6skKb3Oui_pos_x": -102, + "elem_Y6skKb3Oui_pos_y": -387, + "elem_pXkZ5tCelj_pos_x": -355, + "elem_pXkZ5tCelj_pos_y": -324, + "is-valid": true, + "link_1af8Sx5oWF_dst_x": -102, + "link_1af8Sx5oWF_dst_y": -322, + "link_1af8Sx5oWF_src_x": -156, + "link_1af8Sx5oWF_src_y": -274, + "link_vnpgtXt8Qg_dst_x": -102, + "link_vnpgtXt8Qg_dst_y": -352, + "link_vnpgtXt8Qg_src_x": -163, + "link_vnpgtXt8Qg_src_y": -407, + "mapping_0_link": "1af8Sx5oWF", + "mapping_0_port": "Y6skKb3Oui:in1", + "mapping_1_link": "1af8Sx5oWF", + "mapping_1_port": "pXkZ5tCelj:out", + "mapping_2_link": "vnpgtXt8Qg", + "mapping_2_port": "Y6skKb3Oui:in0", + "mapping_3_link": "vnpgtXt8Qg", + "mapping_3_port": "SFYlYL67BI:out", + "mapping_count": 4 + }, + "FwZHJhGSYv": { + "__tag_list": [ + ], + "__version": 6, + "is-valid": true, + "particle-engine-class-id": "Ls3ehJz9Iy" + }, "Gk8mjavP85": { "__tag_list": [ ], @@ -276,27 +490,30 @@ "transform_ypos": 0, "use_lifetime": 1 }, - "HDUIR1Bb7G": { + "Gr460UnDSN": { "__tag_list": [ ], - "__version": 6, - "checked_for_packing": true, - "is-valid": true + "__version": 3, + "comment_03o2vr1wCt": "", + "comment_Ka1W8DF1o1": "", + "comment_s8eQNWqiSi": "", + "is-valid": true, + "track_Zyi5jmzgTa": { + "9NyimtWdPg": "Ok9W1IE216", + "EdT4BvmEbR": "vJwCjAZL3s", + "timeline_0_node_id": "Ka1W8DF1o1", + "timeline_0_self_id": "vJwCjAZL3s", + "timeline_1_node_id": "03o2vr1wCt", + "timeline_1_self_id": "Ok9W1IE216" + } }, - "HJjE3ufNfH": { + "HDUIR1Bb7G": { "__tag_list": [ ], "__version": 6, "checked_for_packing": true, "is-valid": true }, - "HSH0115zhS": { - "__tag_list": [ - ], - "__version": 3, - "checked_for_packing": true, - "is-valid": true - }, "HyJsrevpdz": { "__tag_list": [ ], @@ -355,6 +572,12 @@ "comment_4JdUSBRAGP": "", "is-valid": true }, + "JHJOgzrTOZ": { + "__tag_list": [ + ], + "__version": 6, + "is-valid": true + }, "JnQz1XnpaF": { "__tag_list": [ ], @@ -365,6 +588,22 @@ "is-valid": true, "mapping_count": 0 }, + "KLF0DsCfId": { + "__tag_list": [ + ], + "__version": 2, + "is-valid": true, + "local_emitter_h": 1, + "local_emitter_w": 1, + "local_emitter_x": 0, + "local_emitter_y": 0, + "material": "saWl4UNIAU", + "transform_height": 500, + "transform_rotation": 0, + "transform_width": 500, + "transform_xpos": 1, + "transform_ypos": 1 + }, "KZDxt2h7lI": { "__tag_list": [ ], @@ -379,7 +618,6 @@ "__tag_list": [ ], "__version": 6, - "checked_for_packing": true, "is-valid": true }, "LZ34N4wOGn": { @@ -400,12 +638,21 @@ "transform_ypos": 0, "use_lifetime": 1 }, - "MHJxCtplnp": { + "Ls3ehJz9Iy": { "__tag_list": [ ], - "__version": 6, - "checked_for_packing": true, - "is-valid": true + "__version": 2, + "is-valid": true, + "local_emitter_h": 1, + "local_emitter_w": 1, + "local_emitter_x": 0, + "local_emitter_y": 0, + "material": "FwZHJhGSYv", + "transform_height": 500, + "transform_rotation": 0, + "transform_width": 500, + "transform_xpos": 0, + "transform_ypos": 0 }, "N3a4mW4y8f": { "__tag_list": [ @@ -417,21 +664,19 @@ "is-valid": true, "mapping_count": 0 }, - "NjY2ow9Mfy": { + "NAfKT1xUdG": { "__tag_list": [ ], "__version": 3, - "checked_for_packing": true, - "comment_FATD19svI9": "", - "comment_JseANuBtsv": "", - "comment_OhCBNddRnI": "", - "comment_WUKFECQ7pF": "", + "comment_ljSKOdYzEC": "", "is-valid": true, - "track_LGJpWFPyzG": { + "track_PNz6jYkmHg": { + "center_splitter": "AAAA/wAAAAEAAAADAAAA6QAAAfYAAAEsAf////8BAAAAAQA=", + "main_splitter": "AAAA/wAAAAEAAAACAAABWAAAAb8B/////wEAAAACAA==", "num_timelines": 1, - "oDDSuTtIoz": "WHhjGXHSi5", - "timeline_0_node_id": "WUKFECQ7pF", - "timeline_0_self_id": "WHhjGXHSi5", + "timeline_0_node_id": "ljSKOdYzEC", + "timeline_0_self_id": "zoKKdzy1ej", + "timeline_splitter": "AAAA/wAAAAEAAAACAAAA4QAAANoB/////wEAAAACAA==", "use_physics": false } }, @@ -439,7 +684,6 @@ "__tag_list": [ ], "__version": 3, - "checked_for_packing": true, "comment_6FUm4sZ0NR": "", "comment_oroPtAUiYl": "", "is-valid": true @@ -473,9 +717,19 @@ "__tag_list": [ ], "__version": 3, - "checked_for_packing": true, "comment_NFWxjou9hO": "", - "is-valid": true + "is-valid": true, + "track_37qwFR2jx6": { + "center_splitter": "AAAA/wAAAAEAAAADAAAA6QAAAWgAAADaAf////8BAAAAAQA=", + "main_splitter": "AAAA/wAAAAEAAAACAAABWAAAAbsB/////wEAAAACAA==", + "num_timelines": 2, + "timeline_0_node_id": "NFWxjou9hO", + "timeline_0_self_id": "eoxGvDQLeM", + "timeline_1_node_id": "lHBrbuAqnw", + "timeline_1_self_id": "QhzGUBo26I", + "timeline_splitter": "AAAA/wAAAAEAAAACAAAA4QAAANoB/////wEAAAACAA==", + "use_physics": false + } }, "OtyRiUrsTd": { "__tag_list": [ @@ -522,13 +776,6 @@ "transform_ypos": -31, "use_lifetime": 1 }, - "PIhms7PpQT": { - "__tag_list": [ - ], - "__version": 6, - "checked_for_packing": true, - "is-valid": true - }, "PPXCoUzFFy": { "__tag_list": [ ], @@ -572,15 +819,33 @@ "__tag_list": [ ], "__version": 3, - "checked_for_packing": true, + "comment_0IlSslsFkG": "", + "comment_Ayzo8xI2vJ": "", "comment_RfPLX5xUST": "", - "is-valid": true + "comment_diNKRKvSnD": "", + "is-valid": true, + "track_YyXsLItTXW": { + "center_splitter": "AAAA/wAAAAEAAAADAAABLQAAAmYAAAEsAf////8BAAAAAQA=", + "main_splitter": "AAAA/wAAAAEAAAACAAABrwAAAfIB/////wEAAAACAA==", + "num_timelines": 5, + "timeline_0_node_id": "diNKRKvSnD", + "timeline_0_self_id": "nBtKWzLoYg", + "timeline_1_node_id": "RfPLX5xUST", + "timeline_1_self_id": "akJL5YP6v9", + "timeline_2_node_id": "0IlSslsFkG", + "timeline_2_self_id": "HnRdNukfrC", + "timeline_3_node_id": "0IlSslsFkG", + "timeline_3_self_id": "STJp2qltJ0", + "timeline_4_node_id": "Ayzo8xI2vJ", + "timeline_4_self_id": "0mHwf5ICFQ", + "timeline_splitter": "AAAA/wAAAAEAAAACAAAA5QAAAQgB/////wEAAAACAA==", + "use_physics": false + } }, "RSplpYxIZr": { "__tag_list": [ ], "__version": 3, - "checked_for_packing": true, "comment_HYWdnKUCFx": "", "comment_MLb3BAvtKz": "", "is-valid": true @@ -602,11 +867,29 @@ "is-valid": true, "mapping_count": 0 }, + "SSTkbIoZhd": { + "__tag_list": [ + ], + "__version": 1, + "elem_G4g8ShPnSE_pos_x": -350, + "elem_G4g8ShPnSE_pos_y": -123, + "elem_JlE1SzgyCt_pos_x": -69, + "elem_JlE1SzgyCt_pos_y": -189, + "is-valid": true, + "link_vIDfT9T76m_dst_x": -70, + "link_vIDfT9T76m_dst_y": -139, + "link_vIDfT9T76m_src_x": -150, + "link_vIDfT9T76m_src_y": -73, + "mapping_0_link": "vIDfT9T76m", + "mapping_0_port": "G4g8ShPnSE:out", + "mapping_1_link": "vIDfT9T76m", + "mapping_1_port": "JlE1SzgyCt:in", + "mapping_count": 2 + }, "UWF4u1fYHa": { "__tag_list": [ ], "__version": 1, - "checked_for_packing": true, "is-valid": true }, "WyTgkP5Z7I": { @@ -627,48 +910,147 @@ "__tag_list": [ ], "__version": 6, - "checked_for_packing": true, "is-valid": true }, "XSYiC5gMBy": { "__tag_list": [ ], "__version": 3, - "checked_for_packing": true, + "comment_0FvvESGlGx": "", "comment_2EZBxk2B3Q": "", - "comment_4o5u3l92vL": "", - "comment_5SA63hC5Z2": "", - "comment_6nq03R9DmZ": "", + "comment_2ryA5xPsXQ": "", + "comment_4S0fkqGwGv": "", + "comment_7iQg9nDYYh": "", + "comment_8IWgs8RFDB": "", "comment_8PzAFGlbeM": "", "comment_Ayv1nxMGYq": "", - "comment_DuvPy8gU5I": "", + "comment_CTphMwODQY": "", "comment_E2lM8sty72": "", "comment_GGIdUwPv7C": "", "comment_M75Yphs7Kn": "", + "comment_S5QqslPbvM": "", + "comment_YWhEsLKr6n": "", + "comment_dI2WOwQwYP": "", + "comment_dwImtNzeyg": "", + "comment_hCbs63BXsX": "", + "comment_mjrQLCavTg": "", "comment_pwdBMGRud0": "", - "comment_takuX6vO1m": "", + "comment_q5RPmeNvCN": "", "comment_unyS0aUhWg": "", + "comment_v8kP5MiFGF": "", "comment_z0JEsREDqX": "", "is-valid": true, + "track_9meB2GC9em": { + "center_splitter": "AAAA/wAAAAEAAAADAAAA6QAAAfYAAAEsAf////8BAAAAAQA=", + "main_splitter": "AAAA/wAAAAEAAAACAAABWAAAAb8B/////wEAAAACAA==", + "num_timelines": 25, + "timeline_0_node_id": "z0JEsREDqX", + "timeline_0_self_id": "IPKTKIqxzo", + "timeline_10_node_id": "M75Yphs7Kn", + "timeline_10_self_id": "x470az04wD", + "timeline_11_node_id": "mjrQLCavTg", + "timeline_11_self_id": "zJqjfhz4ik", + "timeline_12_node_id": "CTphMwODQY", + "timeline_12_self_id": "HWv65YYPm6", + "timeline_13_node_id": "8IWgs8RFDB", + "timeline_13_self_id": "p6uSpb9FrC", + "timeline_14_node_id": "4S0fkqGwGv", + "timeline_14_self_id": "LYHOndri86", + "timeline_15_node_id": "0FvvESGlGx", + "timeline_15_self_id": "lnJ9QeaNRN", + "timeline_16_node_id": "hCbs63BXsX", + "timeline_16_self_id": "QimQkqK88O", + "timeline_17_node_id": "q5RPmeNvCN", + "timeline_17_self_id": "8FP6LuoqBd", + "timeline_18_node_id": "7iQg9nDYYh", + "timeline_18_self_id": "mww1M2CTL9", + "timeline_19_node_id": "dwImtNzeyg", + "timeline_19_self_id": "6FHsiwCgRR", + "timeline_1_node_id": "DuvPy8gU5I", + "timeline_1_self_id": "CAYMYvEfoJ", + "timeline_20_node_id": "S5QqslPbvM", + "timeline_20_self_id": "2JCGDsR9es", + "timeline_21_node_id": "v8kP5MiFGF", + "timeline_21_self_id": "xdTfAYC1yj", + "timeline_22_node_id": "YWhEsLKr6n", + "timeline_22_self_id": "fPRxZ0nf8X", + "timeline_23_node_id": "2ryA5xPsXQ", + "timeline_23_self_id": "QMl48Rtiw1", + "timeline_24_node_id": "dI2WOwQwYP", + "timeline_24_self_id": "zBTe9Qdsps", + "timeline_2_node_id": "takuX6vO1m", + "timeline_2_self_id": "54AQGZazpe", + "timeline_3_node_id": "E2lM8sty72", + "timeline_3_self_id": "eCvE8Ue4ed", + "timeline_4_node_id": "8PzAFGlbeM", + "timeline_4_self_id": "CAB02FZTCa", + "timeline_5_node_id": "pwdBMGRud0", + "timeline_5_self_id": "QKsygrLs3t", + "timeline_6_node_id": "GGIdUwPv7C", + "timeline_6_self_id": "9L0Awd10n5", + "timeline_7_node_id": "Ayv1nxMGYq", + "timeline_7_self_id": "JYqtR25QxG", + "timeline_8_node_id": "2EZBxk2B3Q", + "timeline_8_self_id": "eNECHYJZPv", + "timeline_9_node_id": "unyS0aUhWg", + "timeline_9_self_id": "6ShAaCAz0Q", + "timeline_splitter": "AAAA/wAAAAEAAAACAAAA4QAAANoB/////wEAAAACAA==", + "use_physics": false + }, "track_H2yYAsNllZ": { - "STHQ9Dm3pH": "kv4U4GjrhC", - "num_timelines": 2, - "oG56hjhI13": "kv4U4GjrhC", - "pSlWG7nbNr": "kv4U4GjrhC", - "timeline_0_node_id": "6nq03R9DmZ", - "timeline_0_self_id": "XP1fRdR7L5", - "timeline_1_node_id": "z0JEsREDqX", - "timeline_1_self_id": "kv4U4GjrhC", + "center_splitter": "AAAA/wAAAAEAAAADAAAA6QAAAWgAAADaAf////8BAAAAAQA=", + "main_splitter": "AAAA/wAAAAEAAAACAAABWAAAAbsB/////wEAAAACAA==", + "num_timelines": 23, + "timeline_0_node_id": "z0JEsREDqX", + "timeline_0_self_id": "kv4U4GjrhC", + "timeline_10_node_id": "CTphMwODQY", + "timeline_10_self_id": "rM61pWRFdp", + "timeline_11_node_id": "8IWgs8RFDB", + "timeline_11_self_id": "UNT8Q4f0ih", + "timeline_12_node_id": "4S0fkqGwGv", + "timeline_12_self_id": "6PObkjwe7i", + "timeline_13_node_id": "0FvvESGlGx", + "timeline_13_self_id": "2Hk5f0Wm9i", + "timeline_14_node_id": "hCbs63BXsX", + "timeline_14_self_id": "QN2hP90tso", + "timeline_15_node_id": "q5RPmeNvCN", + "timeline_15_self_id": "t5efkNd533", + "timeline_16_node_id": "7iQg9nDYYh", + "timeline_16_self_id": "ydfLm9x5We", + "timeline_17_node_id": "dwImtNzeyg", + "timeline_17_self_id": "xJdkI6YWRU", + "timeline_18_node_id": "S5QqslPbvM", + "timeline_18_self_id": "rJn8nx9OPv", + "timeline_19_node_id": "v8kP5MiFGF", + "timeline_19_self_id": "O5XMYM6DXv", + "timeline_1_node_id": "E2lM8sty72", + "timeline_1_self_id": "J5UFsdBxfL", + "timeline_20_node_id": "YWhEsLKr6n", + "timeline_20_self_id": "CSHonqq6Wh", + "timeline_21_node_id": "2ryA5xPsXQ", + "timeline_21_self_id": "UfLqof6pqy", + "timeline_22_node_id": "dI2WOwQwYP", + "timeline_22_self_id": "gpS0CvYjNk", + "timeline_2_node_id": "8PzAFGlbeM", + "timeline_2_self_id": "7IRXeTQQ72", + "timeline_3_node_id": "pwdBMGRud0", + "timeline_3_self_id": "Em47H8Ebw8", + "timeline_4_node_id": "GGIdUwPv7C", + "timeline_4_self_id": "0DA6KjkyHz", + "timeline_5_node_id": "Ayv1nxMGYq", + "timeline_5_self_id": "UyWUChLFQH", + "timeline_6_node_id": "2EZBxk2B3Q", + "timeline_6_self_id": "N4RqD6qNXS", + "timeline_7_node_id": "unyS0aUhWg", + "timeline_7_self_id": "5qTz676mj6", + "timeline_8_node_id": "M75Yphs7Kn", + "timeline_8_self_id": "2Y09zMdPL3", + "timeline_9_node_id": "mjrQLCavTg", + "timeline_9_self_id": "I8Zzns4Tis", + "timeline_splitter": "AAAA/wAAAAEAAAACAAAA4QAAANoB/////wEAAAACAA==", "use_physics": false } }, - "YJynSu6nqw": { - "__tag_list": [ - ], - "__version": 6, - "checked_for_packing": true, - "is-valid": true - }, "YL23jp6zHS": { "__tag_list": [ ], @@ -712,18 +1094,10 @@ "transform_ypos": -33, "use_lifetime": 1 }, - "Z2zrRug3HP": { - "__tag_list": [ - ], - "__version": 1, - "checked_for_packing": true, - "is-valid": true - }, "Z3Pe1h4eXI": { "__tag_list": [ ], "__version": 6, - "checked_for_packing": true, "is-valid": true }, "ZThqHZKgHj": { @@ -773,6 +1147,25 @@ "mapping_1_port": "pmax6QpW2W:out", "mapping_count": 2 }, + "bXC5bg1hPt": { + "__tag_list": [ + ], + "__version": 1, + "elem_MWRy05gdk9_pos_x": 224, + "elem_MWRy05gdk9_pos_y": -4, + "elem_wd7idmTBSU_pos_x": -117, + "elem_wd7idmTBSU_pos_y": -33, + "is-valid": true, + "link_Ll6hBUaFYq_dst_x": 224, + "link_Ll6hBUaFYq_dst_y": 46, + "link_Ll6hBUaFYq_src_x": 83, + "link_Ll6hBUaFYq_src_y": 17, + "mapping_0_link": "Ll6hBUaFYq", + "mapping_0_port": "wd7idmTBSU:out", + "mapping_1_link": "Ll6hBUaFYq", + "mapping_1_port": "MWRy05gdk9:in", + "mapping_count": 2 + }, "bjZ0TrwuxI": { "__tag_list": [ ], @@ -802,6 +1195,7 @@ "__tag_list": [ ], "__version": 3, + "comment_1FdrWNoWYW": "", "comment_2LJhfhUCPC": "", "comment_37wPuCDipF": "", "comment_6IMWYKiN1b": "", @@ -810,6 +1204,8 @@ "comment_C2J67UABd1": "", "comment_CjTAaMiOQ9": "", "comment_MThUBoKUmu": "", + "comment_MhAEpRwQxw": "", + "comment_a5CFZu9GT1": "", "comment_fAPXzGijvk": "", "comment_iAuym7oymk": "", "comment_tvh5EFtiKg": "", @@ -871,7 +1267,6 @@ "__tag_list": [ ], "__version": 1, - "checked_for_packing": true, "is-valid": true }, "fFp7mqTh4P": { @@ -900,9 +1295,17 @@ "__tag_list": [ ], "__version": 3, - "checked_for_packing": true, - "comment_J6Iz1GtmLH": "", - "is-valid": true + "comment_efpmnC1ICZ": "", + "is-valid": true, + "track_8s72RPYMZI": { + "center_splitter": "AAAA/wAAAAEAAAADAAAA6QAAAfYAAAEsAf////8BAAAAAQA=", + "main_splitter": "AAAA/wAAAAEAAAACAAABWAAAAb8B/////wEAAAACAA==", + "num_timelines": 1, + "timeline_0_node_id": "efpmnC1ICZ", + "timeline_0_self_id": "tMD2FN6pyz", + "timeline_splitter": "AAAA/wAAAAEAAAACAAAA4QAAANoB/////wEAAAACAA==", + "use_physics": false + } }, "gnzE0pkeXX": { "__tag_list": [ @@ -962,14 +1365,12 @@ "__tag_list": [ ], "__version": 6, - "checked_for_packing": true, "is-valid": true }, - "miMdq5hPLK": { + "mQwNIlppiT": { "__tag_list": [ ], - "__version": 6, - "checked_for_packing": true, + "__version": 1, "is-valid": true }, "n1HW3heypW": { @@ -983,10 +1384,25 @@ "__tag_list": [ ], "__version": 3, - "checked_for_packing": true, "comment_PBKj4sTrr2": "", "is-valid": true }, + "nTHdhE0fNf": { + "__tag_list": [ + ], + "__version": 2, + "is-valid": true, + "local_emitter_h": 1, + "local_emitter_w": 1, + "local_emitter_x": 0, + "local_emitter_y": 0, + "material": "zkE5917lk8", + "transform_height": 500, + "transform_rotation": 0, + "transform_width": 500, + "transform_xpos": 0, + "transform_ypos": 0 + }, "p5r5vfQHG6": { "__tag_list": [ ], @@ -1014,31 +1430,29 @@ "__tag_list": [ ], "__version": 3, - "checked_for_packing": true, "comment_2tozdk6Tzf": "", "comment_WOIwH6Bxgh": "", "comment_dUDZP9QwKv": "", "is-valid": true, "track_uwJ2E5nXsL": { - "2qYnrkgeZS": "pX6dfx63bU", - "ZDHWYFTbiw": "pX6dfx63bU", - "gETAPghJto": "pX6dfx63bU", + "center_splitter": "AAAA/wAAAAEAAAADAAAA6QAAAfYAAAEsAf////8BAAAAAQA=", + "main_splitter": "AAAA/wAAAAEAAAACAAABWAAAAb8B/////wEAAAACAA==", "num_timelines": 3, - "pKlECEzzkW": "pX6dfx63bU", "timeline_0_node_id": "2tozdk6Tzf", "timeline_0_self_id": "qaLj7J7Tqf", "timeline_1_node_id": "WOIwH6Bxgh", "timeline_1_self_id": "pX6dfx63bU", "timeline_2_node_id": "dUDZP9QwKv", "timeline_2_self_id": "UngmUJbEyA", + "timeline_splitter": "AAAA/wAAAAEAAAACAAAA4QAAANoB/////wEAAAACAA==", "use_physics": false } }, - "pa1NoWe1Op": { + "pRNaJXshXi": { "__tag_list": [ ], - "__version": 6, - "checked_for_packing": true, + "__version": 3, + "comment_hzppyC4noz": "", "is-valid": true }, "project": { @@ -1046,7 +1460,7 @@ "application_library_lin": "ws://cpp/bin/libBlastEngine.so", "application_library_wasm": "ws://cpp/bin/BlastEngine.wasm", "application_library_win": "ws://cpp/bin/BlastEngine.dll", - "application_name": "Blast!", + "application_name": "blast", "application_version": "", "audio_buffer_size": 40, "audio_channels": "Stereo", @@ -1115,7 +1529,7 @@ "window_has_border": true, "window_height": 800, "window_mode": "Windowed", - "window_vsync": false, + "window_vsync": true, "window_width": 1200, "working_folder": "${workspace}" }, @@ -1123,7 +1537,6 @@ "__tag_list": [ ], "__version": 3, - "checked_for_packing": true, "comment_E5w4haXq1s": "", "comment_FwndgajgOa": "", "comment_fr2xovk88P": "", @@ -1198,7 +1611,18 @@ "__version": 3, "comment_kp7A9ShK5w": "", "comment_z5Hf9L3Qvp": "", - "is-valid": true + "is-valid": true, + "track_Y0gL4gH6eC": { + "center_splitter": "AAAA/wAAAAEAAAADAAAA6QAAAfYAAAEsAf////8BAAAAAQA=", + "main_splitter": "AAAA/wAAAAEAAAACAAABWAAAAb8B/////wEAAAACAA==", + "num_timelines": 2, + "timeline_0_node_id": "z5Hf9L3Qvp", + "timeline_0_self_id": "N4sDg1bGIM", + "timeline_1_node_id": "kp7A9ShK5w", + "timeline_1_self_id": "EsupQ7adCR", + "timeline_splitter": "AAAA/wAAAAEAAAACAAAA4QAAANoB/////wEAAAACAA==", + "use_physics": false + } }, "qklhbbEm10": { "__tag_list": [ @@ -1222,7 +1646,6 @@ "__tag_list": [ ], "__version": 3, - "checked_for_packing": true, "comment_GUWXr35OAs": "", "is-valid": true }, @@ -1255,40 +1678,41 @@ "__tag_list": [ ], "__version": 3, - "checked_for_packing": true, + "comment_7XD9UbCh33": "", "comment_FGAsWAXE0Q": "", - "comment_Sdu5ubuZ9p": "", + "comment_TDhC13DeWL": "", "comment_rQ6aesNfz7": "", "comment_tdyTsMj7k4": "", "is-valid": true, "track_skTp7rbtU1": { - "Cib9W3RWCd": "qMRWruw7iP", + "center_splitter": "AAAA/wAAAAEAAAADAAABLQAAAmYAAAEsAf////8BAAAAAQA=", + "main_splitter": "AAAA/wAAAAEAAAACAAABrwAAAfIB/////wEAAAACAA==", "num_timelines": 5, "timeline_0_node_id": "rQ6aesNfz7", "timeline_0_self_id": "UdDnhIUw8D", - "timeline_1_node_id": "Sdu5ubuZ9p", - "timeline_1_self_id": "3TlgMCruHg", - "timeline_2_node_id": "tdyTsMj7k4", - "timeline_2_self_id": "8sAENU2iSe", - "timeline_3_node_id": "FGAsWAXE0Q", - "timeline_3_self_id": "qMRWruw7iP", - "timeline_4_node_id": "FGAsWAXE0Q", - "timeline_4_self_id": "sP28rixtCQ", + "timeline_1_node_id": "tdyTsMj7k4", + "timeline_1_self_id": "8sAENU2iSe", + "timeline_2_node_id": "FGAsWAXE0Q", + "timeline_2_self_id": "qMRWruw7iP", + "timeline_3_node_id": "7XD9UbCh33", + "timeline_3_self_id": "QIlnfpPqyr", + "timeline_4_node_id": "TDhC13DeWL", + "timeline_4_self_id": "muiaFH5u5d", + "timeline_splitter": "AAAA/wAAAAEAAAACAAAA5QAAAQgB/////wEAAAACAA==", "use_physics": false } }, - "sg20xzpylY": { + "saWl4UNIAU": { "__tag_list": [ ], "__version": 6, - "checked_for_packing": true, - "is-valid": true + "is-valid": true, + "particle-engine-class-id": "KLF0DsCfId" }, "u7zlrYWxAM": { "__tag_list": [ ], "__version": 1, - "checked_for_packing": true, "is-valid": true }, "uEUkHdeqOW": { @@ -1315,7 +1739,6 @@ "__tag_list": [ ], "__version": 6, - "checked_for_packing": true, "is-valid": true }, "wXtbrxNRpX": { @@ -1349,16 +1772,33 @@ "__tag_list": [ ], "__version": 6, - "checked_for_packing": true, "is-valid": true }, "x6FkDk0TOK": { "__tag_list": [ ], "__version": 6, - "checked_for_packing": true, "is-valid": true }, + "ySm59BWQYD": { + "__tag_list": [ + ], + "__version": 1, + "elem_FFEt2KgHm9_pos_x": 311, + "elem_FFEt2KgHm9_pos_y": -7, + "elem_M3JDLpEwfa_pos_x": 0, + "elem_M3JDLpEwfa_pos_y": 0, + "is-valid": true, + "link_ClJofmez5w_dst_x": 311, + "link_ClJofmez5w_dst_y": 42, + "link_ClJofmez5w_src_x": 200, + "link_ClJofmez5w_src_y": 50, + "mapping_0_link": "ClJofmez5w", + "mapping_0_port": "M3JDLpEwfa:out", + "mapping_1_link": "ClJofmez5w", + "mapping_1_port": "FFEt2KgHm9:in", + "mapping_count": 2 + }, "yk8YmvFHRn": { "__tag_list": [ ], @@ -1376,6 +1816,13 @@ "comment_HD1PD8eh87": "", "is-valid": true }, + "zkE5917lk8": { + "__tag_list": [ + ], + "__version": 6, + "is-valid": true, + "particle-engine-class-id": "nTHdhE0fNf" + }, "ztFYdG5FDv": { "__tag_list": [ ], diff --git a/editor/gui/animationtrackwidget.cpp b/editor/gui/animationtrackwidget.cpp index ae007c751..969e58648 100644 --- a/editor/gui/animationtrackwidget.cpp +++ b/editor/gui/animationtrackwidget.cpp @@ -171,6 +171,8 @@ class AnimationTrackWidget::TimelineModel : public TimelineWidget::TimelineModel item.icon = QPixmap("icons64:animation-trigger-spawn.png"); else if (trigger_type == game::AnimationTriggerClass::Type::StartMeshEffect) item.icon = QPixmap("icons64:animation-trigger-mesh-effect.png"); + else if (trigger_type == game::AnimationTriggerClass::Type::CommitSuicide) + item.icon = QPixmap("icons64:animation-trigger-suicide.png"); (*list)[timeline_index].AddItem(item); } } @@ -585,21 +587,25 @@ void AnimationTrackWidget::Update(double secs) const auto* animation_event = std::get_if(&event); if (!animation_event) continue;; - const auto* animation_trigger_event = std::get_if(&animation_event->value); - if (!animation_trigger_event) - continue;; - if (const auto* ptr = std::get_if(animation_trigger_event)) + + if (const auto* ptr = std::get_if(&animation_event->event)) { EventMessage msg; msg.message = "Audio trigger"; mEventMessages.push_back(std::move(msg)); } - else if (const auto* ptr = std::get_if(animation_trigger_event)) + else if (const auto* ptr = std::get_if(&animation_event->event)) { EventMessage msg; msg.message = "Spawn trigger"; mEventMessages.push_back(std::move(msg)); } + else if (const auto* ptr = std::get_if(&animation_event->event)) + { + EventMessage msg; + msg.message = "Commit Suicide"; + mEventMessages.push_back(std::move(msg)); + } } if (mPhysics.HaveWorld()) @@ -1196,7 +1202,8 @@ void AnimationTrackWidget::on_timeline_customContextMenuRequested(QPoint) trigger_type_list.push_back( { game::AnimationTriggerClass::Type::PlayAudio, "Play Sound Effect" }); trigger_type_list.push_back( { game::AnimationTriggerClass::Type::PlayAudio, "Play Music" }); trigger_type_list.push_back( { game::AnimationTriggerClass::Type::SpawnEntity, "Spawn Entity" } ); - trigger_type_list.push_back( { game::AnimationTriggerClass::Type::StartMeshEffect, "Mesh Effect" }); + trigger_type_list.push_back( { game::AnimationTriggerClass::Type::StartMeshEffect, "Do Mesh Effect" }); + trigger_type_list.push_back( { game::AnimationTriggerClass::Type::CommitSuicide, "Commit Suicide" }); for (const auto& trigger_type : trigger_type_list) { @@ -1522,6 +1529,10 @@ void AnimationTrackWidget::SetSelectedTriggerProperties() else if (trigger->GetType() == game::AnimationTriggerClass::Type::StartMeshEffect) { + } + else if (trigger->GetType() == game::AnimationTriggerClass::Type::CommitSuicide) + { + } else BUG("Unhandled animation trigger type."); @@ -2188,6 +2199,10 @@ void AnimationTrackWidget::TimelineTriggerChanged(const TimelineWidget::Timeline else if (selected_trigger->GetType() == game::AnimationTriggerClass::Type::StartMeshEffect) { + } + else if (selected_trigger->GetType() == game::AnimationTriggerClass::Type::CommitSuicide) + { + } else BUG("Unhandled audio trigger type."); } @@ -2387,6 +2402,9 @@ void AnimationTrackWidget::AddTriggerAction() else if (type == game::AnimationTriggerClass::Type::StartMeshEffect) { } + else if (type == game::AnimationTriggerClass::Type::CommitSuicide) + { + } else BUG("Unhandled animation trigger type."); mState.track->AddTrigger(trigger); diff --git a/editor/gui/dlgcomplete.cpp b/editor/gui/dlgcomplete.cpp index 489bb2c57..39237a779 100644 --- a/editor/gui/dlgcomplete.cpp +++ b/editor/gui/dlgcomplete.cpp @@ -33,6 +33,7 @@ #include "editor/app/eventlog.h" #include "editor/gui/dlgcomplete.h" #include "editor/gui/utility.h" +#include "editor/gui/types.h" namespace gui { @@ -74,8 +75,6 @@ DlgComplete::DlgComplete(QWidget* parent, mSettings.web_server_api.isEmpty() || mSettings.web_server_key.isEmpty()) SetEnabled(mUI.btnDeploy, false); - - SetVisible(mUI.progressBar, false); } DlgComplete::~DlgComplete() @@ -169,27 +168,6 @@ void DlgComplete::on_btnClose_clicked() void DlgComplete::on_btnDeploy_clicked() { - AutoEnabler fofo(mUI.btnDeploy); - - QNetworkAccessManager manager; - - const auto& apiKey = mSettings.web_server_key; - const auto& webUrl = mSettings.web_server_api; - const auto& subDir = mWorkspace.GetProjectSettings().game_name; // todo: - bool errors = false; - - struct UploadInfo { - QString fileName; - quint64 file_size = 0; - quint64 sent_bytes = 0; - bool errors =false; - bool complete = false; - }; - std::unordered_map waiting; - - quint64 total_file_sizes = 0; - quint64 total_upload = 0; - for (const auto& artifact : mArtifacts) { const QFileInfo info(artifact.filename); @@ -197,84 +175,9 @@ void DlgComplete::on_btnDeploy_clicked() if (fileName == "http-server.py") continue; - total_file_sizes += info.size(); - - DEBUG("Uploading artifact file. [file='%1', uri='%2]", artifact.filename, webUrl); - - QFile file(artifact.filename); - if (!file.open(QIODevice::ReadOnly)) - { - ERROR("Failed to open artifact file for uploading. [file='%1']", artifact.filename); - errors = true; - continue; - } - QByteArray fileData = file.readAll(); - file.close(); - - QUrl url(webUrl); - QUrlQuery query; - query.addQueryItem("subdir", subDir); - query.addQueryItem("filename", fileName); - url.setQuery(query); - - // --- REQUEST --- - QNetworkRequest request(url); - request.setRawHeader("X-Api-Key", apiKey.toUtf8()); - request.setHeader(QNetworkRequest::ContentTypeHeader, "application/octet-stream"); - QNetworkReply *reply = manager.put(request, fileData); - - UploadInfo up; - up.fileName = fileName; - waiting.insert({reply, up}); - - connect(reply, &QNetworkReply::finished, [&waiting, reply]() { - if (reply->error() == QNetworkReply::NoError) - { - INFO("File upload completed successfully. [file='%1]", waiting[reply].fileName); - DEBUG("%1", reply->readAll().toStdString()); - } - else - { - ERROR("File upload failed. [file='%1', error='%2]]", waiting[reply].fileName,reply->errorString()); - ERROR("%1", reply->readAll().toStdString()); - waiting[reply].errors = true; - } - waiting[reply].complete = true; - }); - connect(reply, &QNetworkReply::uploadProgress, [&waiting, reply](qint64 bytesSent, qint64 bytesTotal) { - waiting[reply].sent_bytes = bytesSent; - }); - } - - AutoHider hoho(mUI.progressBar); - - mUI.progressBar->setMinimum(0); - mUI.progressBar->setMaximum(waiting.size()); - - while (!waiting.empty()) - { - qApp->processEvents(); - - double total_bytes = 0; - double total_sent = 0; - - auto it = waiting.begin(); - while (it != waiting.end()) - { - auto* reply = it->first; - total_bytes += it->second.file_size; - total_sent += it->second.sent_bytes; - const int progress = (total_sent / total_bytes) * 100; - //mUI.progressBar->setValue(progress); - - if (reply->isFinished()) - { - reply->deleteLater(); - it = waiting.erase(it); - SetValue(mUI.progressBar, mUI.progressBar->value() + 1); - } - else ++it; - } + ActionEvent::DeployGameFile a; + a.file = artifact.filename; + ActionEvent::Post(a); } } diff --git a/editor/gui/dlgcomplete.ui b/editor/gui/dlgcomplete.ui index a0f01aced..2b0d9a8b5 100644 --- a/editor/gui/dlgcomplete.ui +++ b/editor/gui/dlgcomplete.ui @@ -201,13 +201,6 @@ - - - - 24 - - - @@ -224,7 +217,7 @@ - Deploy + Deploy to Web diff --git a/editor/gui/dlgmaterial.cpp b/editor/gui/dlgmaterial.cpp index 46856d088..745a417db 100644 --- a/editor/gui/dlgmaterial.cpp +++ b/editor/gui/dlgmaterial.cpp @@ -77,6 +77,8 @@ DlgMaterial::DlgMaterial(QWidget* parent, const app::Workspace* workspace, bool ListMaterials(""); } +DlgMaterial::~DlgMaterial() = default; + void DlgMaterial::SetSelectedMaterialId(const app::AnyString& id) { mSelectedMaterialId = id; @@ -203,13 +205,17 @@ void DlgMaterial::PaintScene(gfx::Painter& painter, double dt) if (!base::Contains(mFailedMaterials, klass->GetId())) { - gfx::MaterialInstance material(klass); - material.SetRuntime(mUI.widget->GetTime()); - material.SetUniform("kTileIndex", (float) GetValue(mUI.tileIndex)); - material.SetUniform("active_texture_map", mMaterials[index].texture_map_id); + if (!mMaterials[index].material_instance) + { + mMaterials[index].material_instance = std::make_unique(klass); + } + auto& material_instance = mMaterials[index].material_instance; + material_instance->SetRuntime(mUI.widget->GetTime()); + material_instance->SetUniform("kTileIndex", (float) GetValue(mUI.tileIndex)); + material_instance->SetUniform("active_texture_map", mMaterials[index].texture_map_id); - gfx::FillRect(painter, rect, material); - if (material.HasError()) + gfx::FillRect(painter, rect, *material_instance); + if (material_instance->HasError()) { mFailedMaterials.insert(klass->GetId()); } @@ -407,18 +413,22 @@ void DlgMaterial::ListMaterials(const QString &filter_string) m.material = klass; m.texture_map_id = map->GetId(); m.material_id = klass->GetId(); - if (map->GetNumTextures() == 1 && mPreviewScale.IsZero()) + // Isometric tilemap can manipulate the preview scale in order to adjust the rendering + // to better display isometric tiles that have a specific height/width ratio. + // if we have a preview scale then skip using the texture rect as the scaling + // box for the previews. + if (map->GetNumTextures() == 1 && mPreviewScale.IsEqual(1.0f)) m.texture_rect = map->GetTextureRect(0); - mMaterials.push_back(m); + + mMaterials.push_back(std::move(m)); } - DEBUG("homo"); } else { Material m; m.material = klass; m.material_id = klass->GetId(); - mMaterials.push_back(m); + mMaterials.push_back(std::move(m)); } } } diff --git a/editor/gui/dlgmaterial.h b/editor/gui/dlgmaterial.h index 706404ca4..96f996a7e 100644 --- a/editor/gui/dlgmaterial.h +++ b/editor/gui/dlgmaterial.h @@ -44,6 +44,7 @@ namespace gui public: DlgMaterial(QWidget* parent, const app::Workspace* workspace, bool expand_maps); + ~DlgMaterial() override; app::AnyString GetSelectedMaterialId() const { return mSelectedMaterialId; } @@ -87,6 +88,7 @@ namespace gui app::AnyString material_id; app::AnyString texture_map_id; std::shared_ptr material; + std::unique_ptr material_instance; gfx::FRect texture_rect; }; std::vector mMaterials; diff --git a/editor/gui/entitywidget.cpp b/editor/gui/entitywidget.cpp index 9fe30af6e..1511433c0 100644 --- a/editor/gui/entitywidget.cpp +++ b/editor/gui/entitywidget.cpp @@ -312,8 +312,78 @@ class EntityWidget::JointModel : public QAbstractTableModel class EntityWidget::ScriptVarModel : public QAbstractTableModel { public: - ScriptVarModel(EntityWidget::State& state) : mState(state) + explicit ScriptVarModel(EntityWidget::State& state) : mState(state) {} + Qt::ItemFlags flags(const QModelIndex& index) const override + { + if (index.column() == 0) + return Qt::ItemIsSelectable | Qt::ItemIsEditable | Qt::ItemIsEnabled; + + const auto& var = mState.entity->GetScriptVar(index.row()); + if (var.IsArray()) + return Qt::ItemIsEnabled; + + const auto type = var.GetType(); + if (type == game::ScriptVar::Type::Integer || + type == game::ScriptVar::Type::String || + type == game::ScriptVar::Type::Float || + type == game::ScriptVar::Type::Boolean) + return Qt::ItemIsSelectable | Qt::ItemIsEditable | Qt::ItemIsEnabled; + + return Qt::ItemIsEnabled; + } + bool setData(const QModelIndex& index, const QVariant& variant, int role) override + { + const auto row = index.row(); + const auto col = index.column(); + + auto& var = mState.entity->GetScriptVar(index.row()); + + bool success = false; + if (col == 0) + { + const auto& name = variant.toString(); + if (name.isEmpty() || name.isNull()) + return false; + var.SetName(app::ToUtf8(name)); + } + else if (col == 1) + { + if (var.IsArray()) + return false; + const auto type = var.GetType(); + if (type == game::ScriptVar::Type::Integer) + { + const auto val = variant.toInt(&success); + if (!success) + return false; + var.SetValue(val); + } + else if (type == game::ScriptVar::Type::Float) + { + const auto val = variant.toFloat(&success); + if (!success) + return false; + var.SetValue(val); + } + else if (type == game::ScriptVar::Type::Boolean) + { + const auto val = variant.toBool(); + var.SetValue(val); + } + else if (type == game::ScriptVar::Type::String) + { + const auto val = variant.toString(); + if (val.isNull()) + return false; + var.SetValue(app::ToUtf8(val)); + } + else return false; + } + emit dataChanged(this->index(row, 0), this->index(row, 0)); + return true; + } + QVariant data(const QModelIndex& index, int role) const override { const auto& var = mState.entity->GetScriptVar(index.row()); @@ -3596,6 +3666,10 @@ void EntityWidget::on_tfEnabled_stateChanged(int) { UpdateCurrentNodeProperties(); } +void EntityWidget::on_tfRotate_stateChanged(int) +{ + UpdateCurrentNodeProperties(); +} void EntityWidget::on_ltType_currentIndexChanged(int) { @@ -5106,6 +5180,7 @@ void EntityWidget::DisplayCurrentNodeProperties() SetValue(mUI.tfAccelY, 0.0f); SetValue(mUI.tfAccelA, 0.0f); SetValue(mUI.tfEnabled, false); + SetValue(mUI.tfRotate, false); SetEnabled(mUI.nodeScrollAreaWidgetContents, false); SetEnabled(mUI.actionAddDrawable, true); @@ -5306,6 +5381,7 @@ void EntityWidget::DisplayCurrentNodeProperties() SetValue(mUI.tfAccelY, accel.y); SetValue(mUI.tfAccelA, mover->GetAngularAcceleration()); SetValue(mUI.tfEnabled, mover->IsEnabled()); + SetValue(mUI.tfRotate, mover->RotateToDirection()); } if (auto* mover = node->GetSplineMover()) { @@ -5553,6 +5629,7 @@ void EntityWidget::UpdateCurrentNodeProperties() mover->SetAngularVelocity(GetValue(mUI.tfVelocityA)); mover->SetAngularAcceleration(GetValue(mUI.tfAccelA)); mover->SetFlag(game::LinearMoverClass::Flags::Enabled, GetValue(mUI.tfEnabled)); + mover->SetFlag(game::LinearMoverClass::Flags::RotateToDirection, GetValue(mUI.tfRotate)); } if (auto* mover = node->GetSplineMover()) diff --git a/editor/gui/entitywidget.h b/editor/gui/entitywidget.h index ad55958ca..b47ad274f 100644 --- a/editor/gui/entitywidget.h +++ b/editor/gui/entitywidget.h @@ -275,6 +275,7 @@ namespace gui void on_tfAccelY_valueChanged(double); void on_tfAccelA_valueChanged(double); void on_tfEnabled_stateChanged(int); + void on_tfRotate_stateChanged(int); void on_ltType_currentIndexChanged(int); void on_ltAmbient_colorChanged(const QColor&); void on_ltDiffuse_colorChanged(const QColor&); diff --git a/editor/gui/entitywidget.ui b/editor/gui/entitywidget.ui index ce3447c5a..e45d703a8 100644 --- a/editor/gui/entitywidget.ui +++ b/editor/gui/entitywidget.ui @@ -1187,7 +1187,7 @@ - Transform + Viewport transform false @@ -1199,18 +1199,6 @@ false - - 4 - - - 0 - - - 4 - - - 4 - @@ -1219,8 +1207,11 @@ 0 + + color: rgb(100, 200, 100) + - x = + -10000.000000000000000 @@ -1241,8 +1232,11 @@ 0 + + color: rgb(200,100, 100) + - y = + -10000.000000000000000 @@ -1263,8 +1257,11 @@ 0 + + color: rgb(100, 200, 100) + - x = + @@ -1288,8 +1285,11 @@ + + color: rgb(200,100, 100) + - y = + @@ -1313,6 +1313,9 @@ + + color: rgb(100, 100, 250); + true @@ -1800,6 +1803,9 @@ Set the node's width in game units + + color: rgb(100, 200, 100) + 0.000000000000000 @@ -1828,6 +1834,9 @@ Set the node's X position relative to its parent + + color: rgb(100, 200, 100) + -10000.000000000000000 @@ -1856,6 +1865,9 @@ Set the node's height in game units + + color: rgb(200,100, 100) + 0.000000000000000 @@ -1875,9 +1887,6 @@ 0 - - color: rgb(0, 200, 0) - X Scale @@ -1900,6 +1909,9 @@ Apply a scaling factor on the node and its ascendants + + color: rgb(100, 200, 100) + 0.000000000000000 @@ -1925,9 +1937,6 @@ 0 - - color: rgb(200,0, 0) - Y Scale @@ -1941,9 +1950,6 @@ 0 - - color: rgb(200,0, 0) - Y Size @@ -1957,9 +1963,6 @@ 0 - - color: rgb(0, 200, 0) - X Size @@ -1973,9 +1976,6 @@ 0 - - color: rgb(0, 200, 0) - X Pos @@ -1989,9 +1989,6 @@ 0 - - color: rgb(200,0, 0) - Y Pos @@ -2014,6 +2011,9 @@ Apply a scaling factor on the node and its ascendants + + color: rgb(200,100, 100) + 0.000000000000000 @@ -2048,6 +2048,9 @@ Set the node's Y position relative to its parent + + color: rgb(200,100, 100) + -10000.000000000000000 @@ -2088,6 +2091,9 @@ 0 + + color: rgb(100, 100, 250); + true @@ -2235,7 +2241,7 @@ Set the node's width in game units - color: rgb(0, 200, 0); + color: rgb(100, 200, 100) -1000.000000000000000 @@ -2260,7 +2266,7 @@ Set the node's width in game units - color: rgb(200, 0, 0); + color: rgb(200,100, 100) -1000.000000000000000 @@ -2285,7 +2291,7 @@ Set the node's width in game units - color: rgb(0, 100, 250); + color: rgb(100, 100, 250); -1000.000000000000000 @@ -2449,7 +2455,7 @@ - color: rgb(0, 200, 0); + color: rgb(100, 200, 100) true @@ -2480,7 +2486,7 @@ - color: rgb(200, 0, 0); + color: rgb(200,100, 100) true @@ -2511,7 +2517,7 @@ - color: rgb(0, 100, 250); + color: rgb(100, 100, 250); true @@ -4461,48 +4467,16 @@ 0 - - + + 0 0 - - rad/s - - - -1000.000000000000000 - - - 1000.000000000000000 - - - QAbstractSpinBox::AdaptiveDecimalStepType - - - - - - - - 0 - 0 - - - - Angular acceleration - - - - - - - - 0 - 0 - + + color: rgb(200,100, 100) @@ -4529,6 +4503,9 @@ 0 + + color: rgb(100, 200, 100) + @@ -4546,19 +4523,32 @@ - - + + + + + 0 + 0 + + + + Angular velocity + + + + + 0 0 - - + + color: rgb(100, 100, 250); - u/s² + rad/s² -1000.000000000000000 @@ -4571,8 +4561,8 @@ - - + + 0 @@ -4580,39 +4570,35 @@ - Integrator + Angular acceleration - - + + - + 0 0 - - Angular velocity + + color: rgb(100, 100, 250); - - - - - - - 0 - 0 - + + rad/s - - Linear acceleration) + + -1000.000000000000000 + + + 1000.000000000000000 + + + QAbstractSpinBox::AdaptiveDecimalStepType - - - @@ -4626,16 +4612,22 @@ - - + + 0 0 + + color: rgb(100, 200, 100) + + + + - rad/s² + u/s² -1000.000000000000000 @@ -4648,6 +4640,13 @@ + + + + Enabled + + + @@ -4656,6 +4655,9 @@ 0 + + color: rgb(200,100, 100) + @@ -4673,10 +4675,42 @@ - - + + + + + 0 + 0 + + - Enabled + Integrator + + + + + + + + + + + 0 + 0 + + + + Linear acceleration) + + + + + + + Rotate the node so that it faces the direction of movement + + + Face movement @@ -6039,6 +6073,7 @@ tfVelocityA tfAccelA tfEnabled + tfRotate btnDelLinearMover splineMover splinePointView diff --git a/editor/gui/mainwindow.cpp b/editor/gui/mainwindow.cpp index fb4d164f1..00bbc3cc9 100644 --- a/editor/gui/mainwindow.cpp +++ b/editor/gui/mainwindow.cpp @@ -247,6 +247,10 @@ MainWindow::MainWindow(QApplication& app, base::ThreadPool* threadpool) // hack but we need to set the mainwindow object // as the receiver of these events ActionEvent::GetReceiver() = this; + + SetVisible(mUI.uploads, false); + + mSystemTrayIcon = new QSystemTrayIcon(this); } MainWindow::~MainWindow() @@ -833,9 +837,22 @@ void MainWindow::CloseWorkspace() ASSERT(mUI.mainTab->count() == 0); ASSERT(!mPlayWindow.get()); ASSERT(!mThreadPool->HasPendingTasks()); + ASSERT(mFileUploads.empty()); return; } + if (!mFileUploads.empty()) + { + QMessageBox msg(this); + msg.setIcon(QMessageBox::Icon::Question); + msg.setText("Cancel Pending Uploads?"); + msg.setText("You have current pending file uploads that haven't been completed yet.\n" + "Are you sure you want to close the workspace and cancel the uploads now?"); + msg.setStandardButtons(QMessageBox::Yes | QMessageBox::No); + if (msg.exec() == QMessageBox::No) + return; + } + // move the resource cache to this local variable. make sure that // nothing will queue more work (accidentally) when calling Qt // processEvents into the resource cache while we're closing. @@ -2733,6 +2750,59 @@ void MainWindow::RefreshUI() } } } + + if (mFileUploads.empty()) + { + SetVisible(mUI.uploads, false); + return; + } + + SetVisible(mUI.uploads, true); + + auto it = mFileUploads.begin(); + while (it != mFileUploads.end()) + { + auto* reply = it->first; + if (reply->isFinished()) + { + reply->deleteLater(); + it = mFileUploads.erase(it); + } + else + { + ++it; + } + } + // ok, so the byte measuring doesn't work... + // const auto p = (double)mBytesSent / (double)mBytesQueued; + QSignalBlocker s(mUI.uploads); + mUI.uploads->setMinimum(0); + mUI.uploads->setMaximum(mFilesQueued); + mUI.uploads->setValue(mFilesCompleted); + + if (!mFileUploads.empty()) + return; + + NOTE("Uploads completed!"); + if (mUploadErrors) + { + mSystemTrayIcon->showMessage("Failed to deploy game", + "All the pending file uploads to deploy your game have been completed\n" + "but unfortunately there were some errors.\n" + "Please see the log for more details."); + ERROR("Game failed to deploy, some files could not be uploaded."); + ERROR("Please see the log for more details."); + } + else + { + mSystemTrayIcon->showMessage("Your game is ready to play!", + "All game files have been uploaded to your server successfully\n" + "and your game is ready to play. Have fun!"); + INFO("Your game is ready to play and all files have been deployed."); + } + mUploadErrors = false; + mBytesSent = 0; + mBytesQueued = 0; } void MainWindow::ShowNote(const app::Event& event) @@ -3271,6 +3341,10 @@ bool MainWindow::event(QEvent* event) else if (const auto* ptr = std::get_if(&action_data)) { SaveWorkspace(); } + else if (const auto* ptr = std::get_if(&action_data)) + { + DeployGameFile(ptr->file); + } } return QMainWindow::event(event); } @@ -3382,6 +3456,72 @@ bool MainWindow::eventFilter(QObject* destination, QEvent* event) return false; } +void MainWindow::DeployGameFile(const QString& filepath) +{ + const auto& apiKey = mSettings.web_server_key; + const auto& webUrl = mSettings.web_server_api; + const auto& subDir = mWorkspace->GetProjectSettings().game_name; // todo: + + + + QFile file(filepath); + if (!file.open(QIODevice::ReadOnly)) + { + ERROR("Failed to open game deployment file for uploading. [file='%1']", filepath); + return; + } + const QFileInfo info(filepath); + const auto fileName = info.fileName(); + + QByteArray fileData = file.readAll(); + file.close(); + + QUrl url(webUrl); + QUrlQuery query; + query.addQueryItem("subdir", subDir); + query.addQueryItem("filename", fileName); + url.setQuery(query); + DEBUG("Uploading game deployment file. [file='%1', url='%2]", filepath, url.toString()); + + // --- REQUEST --- + QNetworkRequest request(url); + request.setRawHeader("X-Api-Key", apiKey.toUtf8()); + request.setHeader(QNetworkRequest::ContentTypeHeader, "application/octet-stream"); + QNetworkReply *reply = mNetworkBugManager.put(request, fileData); + + FileDeployment upload; + upload.fileName = fileName; + upload.file_size = info.size(); + upload.sent_bytes = 0; + upload.errors = false; + upload.complete = false; + mFileUploads.insert({reply, upload}); + mBytesQueued += info.size(); + mFilesQueued++; + + connect(reply, &QNetworkReply::finished, [this, reply]() { + if (reply->error() == QNetworkReply::NoError) + { + INFO("File upload completed successfully. [file='%1]", mFileUploads[reply].fileName); + DEBUG("%1", reply->readAll().toStdString()); + } + else + { + ERROR("File upload failed. [file='%1', error='%2]]", mFileUploads[reply].fileName, reply->errorString()); + ERROR("%1", reply->readAll().toStdString()); + mFileUploads[reply].errors = true; + mUploadErrors = true; + } + mFileUploads[reply].complete = true; + mFilesCompleted++; + }); + connect(reply, &QNetworkReply::uploadProgress, [this, reply](qint64 bytesSent, qint64 bytesTotal) { + mFileUploads[reply].sent_bytes = bytesSent; + mBytesSent += bytesSent; + }); + +} + void MainWindow::CloseTab(int index) { auto* widget = qobject_cast(mUI.mainTab->widget(index)); diff --git a/editor/gui/mainwindow.h b/editor/gui/mainwindow.h index 4b7776c14..e3fd46844 100644 --- a/editor/gui/mainwindow.h +++ b/editor/gui/mainwindow.h @@ -24,12 +24,17 @@ # include # include # include +# include +# include +# include +# include # include "ui_mainwindow.h" #include "warnpop.h" #include #include #include +#include #include "base/threadpool.h" #include "engine/frametimer.h" @@ -68,7 +73,7 @@ namespace gui public: MainWindow(QApplication& app, base::ThreadPool* threadpool); - ~MainWindow(); + ~MainWindow() override; // Load the main editor settings. void LoadSettings(); @@ -221,6 +226,7 @@ namespace gui void ViewerJsonMessageReceived(const QJsonObject& json); private: + void DeployGameFile(const QString& file); void CloseTab(int index); void FloatTab(int index); void LaunchGame(bool clean); @@ -246,11 +252,11 @@ namespace gui void DrawResourcePreview(gfx::Painter& painter, double secs); private: - virtual bool event(QEvent* event) override; - virtual void closeEvent(QCloseEvent* event) override; - virtual void dragEnterEvent(QDragEnterEvent* drag) override; - virtual void dropEvent(QDropEvent* event) override; - virtual bool eventFilter(QObject* destination, QEvent* event) override; + bool event(QEvent* event) override; + void closeEvent(QCloseEvent* event) override; + void dragEnterEvent(QDragEnterEvent* drag) override; + void dropEvent(QDropEvent* event) override; + bool eventFilter(QObject* destination, QEvent* event) override; private: Ui::MainWindow mUI; @@ -332,8 +338,23 @@ namespace gui Preview mPreview; FramelessWindow* mFramelessWindow = nullptr; - QByteArray mDockState; + + struct FileDeployment { + QString fileName; + quint64 file_size = 0; + quint64 sent_bytes = 0; + bool errors =false; + bool complete = false; + }; + bool mUploadErrors = false; + QSystemTrayIcon* mSystemTrayIcon = nullptr; + QNetworkAccessManager mNetworkBugManager; + std::unordered_map mFileUploads; + quint64 mBytesQueued = 0; + quint64 mBytesSent = 0; + int mFilesQueued = 0; + int mFilesCompleted = 0; }; } // namespace diff --git a/editor/gui/mainwindow.ui b/editor/gui/mainwindow.ui index 27fcdfb51..664588e3c 100644 --- a/editor/gui/mainwindow.ui +++ b/editor/gui/mainwindow.ui @@ -49,6 +49,22 @@ + + + + + 0 + 0 + + + + 24 + + + Deploying game.. %p% + + + diff --git a/editor/gui/translation.cpp b/editor/gui/translation.cpp index b12b88c35..a7619d021 100644 --- a/editor/gui/translation.cpp +++ b/editor/gui/translation.cpp @@ -216,7 +216,7 @@ std::string TranslateEnum(BooleanPropertyAnimatorClass::PropertyName name) else if (name == P::Drawable_DepthTest) return "Enable Depth Test for Drawable"; else if (name == P::Drawable_PPEnableBloom) - return "Enable Bloom for Drawable"; + return "Enable Drawable Bloom"; else if (name == P::RigidBody_Bullet) return "Enable Rigid Body as Bullet"; else if (name == P::RigidBody_Sensor) @@ -234,11 +234,13 @@ std::string TranslateEnum(BooleanPropertyAnimatorClass::PropertyName name) else if (name == P::TextItem_Underline) return "Enable Text Underlining"; else if (name == P::TextItem_PPEnableBloom) - return "Enable Bloom for Text"; + return "Enable Text Bloom"; else if (name == P::SpatialNode_Enabled) return "Enable Spatial Node"; else if (name == P::LinearMover_Enabled) return "Enable Linear Mover"; + else if (name == P::LinearMover_RotateToDirection) + return "Set Linear Mover Rotate to Direction"; else if (name == P::RigidBodyJoint_EnableLimits) return "Enable Joint Limits"; else if (name == P::RigidBodyJoint_EnableMotor) diff --git a/editor/gui/types.h b/editor/gui/types.h index 23479896e..27a530389 100644 --- a/editor/gui/types.h +++ b/editor/gui/types.h @@ -30,6 +30,7 @@ #include #include +#include "base/math.h" #include "base/types.h" namespace gui @@ -74,7 +75,11 @@ namespace gui QString id; }; struct SaveWorkspace {}; - using Action = std::variant; + struct DeployGameFile { + QString file; + }; + + using Action = std::variant; explicit ActionEvent(Action action) : QEvent(GetIdentity()) @@ -206,6 +211,10 @@ namespace gui { return !IsNonZero(); } + bool IsEqual(float value) const noexcept + { + return math::equals(mW, value) && math::equals(mH, value); + } private: float mW = 0.0f; float mH = 0.0f; diff --git a/editor/resource/64x64_ico_png/animation-trigger-suicide.png b/editor/resource/64x64_ico_png/animation-trigger-suicide.png new file mode 100644 index 000000000..d7c3ba7bc Binary files /dev/null and b/editor/resource/64x64_ico_png/animation-trigger-suicide.png differ diff --git a/editor/resource/resource.qrc b/editor/resource/resource.qrc index b6c5f4d7a..b722554e6 100644 --- a/editor/resource/resource.qrc +++ b/editor/resource/resource.qrc @@ -182,6 +182,7 @@ 64x64_ico_png/animation-trigger-music.png 64x64_ico_png/animation-trigger-spawn.png 64x64_ico_png/animation-trigger-mesh-effect.png + 64x64_ico_png/animation-trigger-suicide.png logo/html5.png logo/linux.png diff --git a/engine/engine.cpp b/engine/engine.cpp index cecaba3dc..7269089ee 100644 --- a/engine/engine.cpp +++ b/engine/engine.cpp @@ -1656,11 +1656,7 @@ class DetonatorEngine final : public engine::Engine, if (!ea_ptr) return false; - const auto* at_ptr = std::get_if(&ea_ptr->event.value); - if (!at_ptr) - return false; - - const auto* ptr = std::get_if(at_ptr); + const auto* ptr = std::get_if(&ea_ptr->event.event); if (!ptr) return false; @@ -1689,11 +1685,7 @@ class DetonatorEngine final : public engine::Engine, if (!ea_ptr) return false; - const auto* at_ptr = std::get_if(&ea_ptr->event.value); - if (!at_ptr) - return false; - - const auto* ptr = std::get_if(at_ptr); + const auto* ptr = std::get_if(&ea_ptr->event.event); if (!ptr) return false; diff --git a/engine/lua_game.cpp b/engine/lua_game.cpp index 08cea49a0..3d00db133 100644 --- a/engine/lua_game.cpp +++ b/engine/lua_game.cpp @@ -878,6 +878,20 @@ void BindGameLib(sol::state& L) [](LinearMover& transformer, float x, float y) { transformer.SetLinearAcceleration(glm::vec2{x, y}); }); + linear_mover["SetDirection"] = sol::overload( + [](LinearMover& mover, glm::vec2 direction) { + mover.SetDirection(direction); + }, + [](LinearMover& mover, float x, float y) { + mover.SetDirection({x, y}); + }); + linear_mover["SetRotateToDirection"] = [](LinearMover& mover, bool on_off) { + mover.RotateToDirection(on_off); + }; + linear_mover["GetRotateToDirection"] = [](LinearMover& mover) { + return mover.RotateToDirection(); + }; + linear_mover["SetLinearSpeed"] = &LinearMover::SetLinearSpeed; auto entity_node = table.new_usertype("EntityNode"); entity_node["GetId"] = &EntityNode::GetId; @@ -1164,6 +1178,7 @@ void BindGameLib(sol::state& L) entity["QueueAnimationByName"] = &Entity::QueueAnimationByName; entity["Die"] = &Entity::Die; entity["DieLater"] = &Entity::DieIn; + entity["HasScheduledDeath"] = &Entity::HasScheduledDeath; entity["SetTag"] = &Entity::SetTag; entity["TestFlag"] = &TestFlag; entity["SetFlag"] = &SetFlag; diff --git a/engine/lua_util.cpp b/engine/lua_util.cpp index 42be4f470..7928f13e5 100644 --- a/engine/lua_util.cpp +++ b/engine/lua_util.cpp @@ -27,6 +27,7 @@ #include "base/utility.h" #include "base/format.h" +#include "base/math.h" #include "game/util.h" #include "game/entity.h" #include "engine/lua.h" @@ -52,11 +53,17 @@ class RandomEngine { { return NextInt(INT_MIN, INT_MAX); } int NextInt(int min, int max) { + if (min >= max) + return min; + boost::random::uniform_int_distribution dist(min, max); return dist(mTwister); } float NextFloat(float min, float max) { + if (min >= max) + return min; + boost::random::uniform_real_distribution dist(min, max); return dist(mTwister); } @@ -167,22 +174,10 @@ namespace engine [](int min, int max) { return math::rand(min, max); }); - util["DistanceIsLess"] = [](const glm::vec2& a, const glm::vec2& b, float maximum) { - const auto& diff = a - b; - return diff.x*diff.x + diff.y*diff.y < maximum*maximum; - }; - util["DistanceIsLessOrEqual"] = [](const glm::vec2& a, const glm::vec2& b, float maximum) { - const auto& diff = a - b; - return diff.x*diff.x + diff.y*diff.y <= maximum*maximum; - }; - util["DistanceIsMore"] = [](const glm::vec2& a, const glm::vec2& b, float minimum) { - const auto& diff = a - b; - return diff.x*diff.x + diff.y*diff.y > minimum*minimum; - }; - util["DistanceIsMoreOrEqual"] = [](const glm::vec2& a, const glm::vec2& b, float minimum) { - const auto& diff = a - b; - return diff.x*diff.x + diff.y*diff.y >= minimum*minimum; - }; + util["DistanceIsLess"] = &math::DistanceIsLess; + util["DistanceIsLessOrEqual"] = &math::DistanceIsLessOrEqual; + util["DistanceIsMore"] = &math::DistanceIsMore; + util["DistanceIsMoreOrEqual"] = &math::DistanceIsMoreOrEqual; util["FindImpulse"] = [](const glm::vec2& current_velocity, const glm::vec2& target_velocity, float mass) { diff --git a/game/entity.cpp b/game/entity.cpp index 682365e15..251b08078 100644 --- a/game/entity.cpp +++ b/game/entity.cpp @@ -380,6 +380,10 @@ void Entity::DieIn(float seconds) { mScheduledDeath = seconds; } +bool Entity::HasScheduledDeath() const +{ + return mScheduledDeath.has_value(); +} void Entity::Update(float dt, std::vector* events) { @@ -472,6 +476,10 @@ void Entity::Update(float dt, std::vector* events) { for (auto& event : animation_events) { + if (const auto* suicide = std::get_if(&event.event)) + { + Die(); + } events->emplace_back(std::move(event)); } } diff --git a/game/entity.h b/game/entity.h index ef98c11c9..aae2e3d1e 100644 --- a/game/entity.h +++ b/game/entity.h @@ -210,6 +210,8 @@ namespace game void Die(); void DieIn(float seconds); + bool HasScheduledDeath() const; + // Update the entity state, integrate over time. Bubbles up the // various events to the caller as long as events is non-null. // Note that IF class runtime services are available entity nodes diff --git a/game/entity_node_linear_mover.h b/game/entity_node_linear_mover.h index 9a6898a37..ca89a58af 100644 --- a/game/entity_node_linear_mover.h +++ b/game/entity_node_linear_mover.h @@ -22,9 +22,11 @@ # include # include # include +# include #include "warnpop.h" #include +#include #include "base/bitflag.h" #include "data/fwd.h" @@ -38,40 +40,43 @@ namespace game Euler }; enum class Flags { - Enabled + Enabled, RotateToDirection }; LinearMoverClass() { mFlags.set(Flags::Enabled, true); } - inline void SetIntegrator(Integrator integrator) noexcept + void SetIntegrator(Integrator integrator) noexcept { mIntegrator = integrator; } - inline Integrator GetIntegrator() const noexcept + Integrator GetIntegrator() const noexcept { return mIntegrator; } - inline void SetLinearVelocity(glm::vec2 velocity) noexcept + void SetLinearVelocity(glm::vec2 velocity) noexcept { mLinearVelocity = velocity; } - inline void SetLinearAcceleration(glm::vec2 acceleration) noexcept + void SetLinearAcceleration(glm::vec2 acceleration) noexcept { mLinearAcceleration = acceleration; } - inline glm::vec2 GetLinearVelocity() const noexcept + glm::vec2 GetLinearVelocity() const noexcept { return mLinearVelocity; } - inline glm::vec2 GetLinearAcceleration() const noexcept + glm::vec2 GetLinearAcceleration() const noexcept { return mLinearAcceleration; } - inline float GetAngularVelocity() const noexcept + float GetAngularVelocity() const noexcept { return mAngularVelocity; } - inline float GetAngularAcceleration() const noexcept + float GetAngularAcceleration() const noexcept { return mAngularAcceleration; } - inline void SetAngularVelocity(float velocity) noexcept + void SetAngularVelocity(float velocity) noexcept { mAngularVelocity = velocity; } - inline void SetAngularAcceleration(float acceleration) noexcept + void SetAngularAcceleration(float acceleration) noexcept { mAngularAcceleration = acceleration; } - inline bool TestFlag(Flags flag) const noexcept + bool TestFlag(Flags flag) const noexcept { return mFlags.test(flag); } - inline void SetFlag(Flags flag, bool on_off) noexcept + void SetFlag(Flags flag, bool on_off) noexcept { mFlags.set(flag, on_off); } - inline bool IsEnabled() const noexcept + bool IsEnabled() const noexcept { return TestFlag(Flags::Enabled); } - inline base::bitflag GetFlags() const noexcept + bool RotateToDirection() const noexcept + { return TestFlag(Flags::RotateToDirection); } + + base::bitflag GetFlags() const noexcept { return mFlags; } size_t GetHash() const noexcept; @@ -102,51 +107,79 @@ namespace game , mAngularVelocity(mClass->GetAngularVelocity()) , mAngularAcceleration(mClass->GetAngularAcceleration()) {} - inline void SetLinearVelocity(glm::vec2 velocity) noexcept + void SetLinearVelocity(glm::vec2 velocity) noexcept { mLinearVelocity = velocity; } - inline void SetLinearAcceleration(glm::vec2 acceleration) noexcept + void SetLinearAcceleration(glm::vec2 acceleration) noexcept { mLinearAcceleration = acceleration; } - inline glm::vec2 GetLinearVelocity() const noexcept + glm::vec2 GetLinearVelocity() const noexcept { return mLinearVelocity; } - inline glm::vec2 GetLinearAcceleration() const noexcept + glm::vec2 GetLinearAcceleration() const noexcept { return mLinearAcceleration; } - inline float GetAngularVelocity() const noexcept + float GetAngularVelocity() const noexcept { return mAngularVelocity; } - inline float GetAngularAcceleration() const noexcept + float GetAngularAcceleration() const noexcept { return mAngularAcceleration; } - inline void SetAngularVelocity(float velocity) noexcept + void SetAngularVelocity(float velocity) noexcept { mAngularVelocity = velocity; } - inline void SetAngularAcceleration(float acceleration) noexcept + void SetAngularAcceleration(float acceleration) noexcept { mAngularAcceleration = acceleration; } - inline bool IsEnabled() const noexcept + bool IsEnabled() const noexcept { return mFlags.test(Flags::Enabled); } - inline Integrator GetIntegrator() const noexcept + Integrator GetIntegrator() const noexcept { return mClass->GetIntegrator(); } - inline void SetFlag(Flags flag , bool on_off) noexcept + void SetFlag(Flags flag , bool on_off) noexcept { mFlags.set(flag, on_off); } - inline bool TestFlag(Flags flag) const noexcept + bool TestFlag(Flags flag) const noexcept { return mFlags.test(flag); } - inline void Enable(bool on_off) noexcept + void Enable(bool on_off) noexcept { SetFlag(Flags::Enabled, on_off); } + bool RotateToDirection() const noexcept + { return TestFlag(Flags::RotateToDirection); } + void RotateToDirection(bool on_off) noexcept + { SetFlag(Flags::RotateToDirection, on_off); } + + void SetDirection(glm::vec2 direction) + { + if (glm::isNull(direction, 0.0001f)) + return; + direction = glm::normalize(direction); + const auto speed = glm::length(mLinearVelocity); + mLinearVelocity = direction * speed; + } + void SetLinearSpeed(float speed) + { + if (glm::isNull(mLinearVelocity, 0.0001f)) + return; + const auto direction = glm::normalize(mLinearVelocity); + mLinearVelocity = direction * speed; + } template - inline void TransformObject(float dt, Target& target) noexcept + void TransformObject(float dt, Target& target) noexcept { if (!IsEnabled()) return; if (GetIntegrator() == Integrator::Euler) { - mAngularVelocity += (mAngularAcceleration * dt); - target.Rotate(mAngularVelocity * dt); - mLinearVelocity += (mLinearAcceleration * dt); target.Translate(mLinearVelocity * dt); + + if (RotateToDirection()) + { + const auto angle = std::atan2(mLinearVelocity.y, mLinearVelocity.x); + target.SetRotation(angle); + } + else + { + mAngularVelocity += (mAngularAcceleration * dt); + target.Rotate(mAngularVelocity * dt); + } } } - inline const LinearMoverClass& GetClass() const noexcept + const LinearMoverClass& GetClass() const noexcept { return *mClass; } - inline const LinearMoverClass* operator->() const noexcept + const LinearMoverClass* operator->() const noexcept { return mClass.get(); } private: std::shared_ptr mClass; @@ -157,4 +190,4 @@ namespace game float mAngularAcceleration = 0.0f; }; -} // namespace \ No newline at end of file +} // namespace diff --git a/game/entity_node_spline_mover.cpp b/game/entity_node_spline_mover.cpp index 7d2f6b95d..e14ff9b74 100644 --- a/game/entity_node_spline_mover.cpp +++ b/game/entity_node_spline_mover.cpp @@ -17,9 +17,12 @@ #include "config.h" #include +#include +#include #include "base/logging.h" #include "base/hash.h" +#include "base/math.h" #include "data/writer.h" #include "data/reader.h" #include "game/entity_node_spline_mover.h" @@ -28,10 +31,15 @@ namespace { struct CatmullRomCache { std::shared_ptr spline; double spline_path_length = 0.0; + + struct DisplacementMapping { + double d = 0.0f; // displacement along the spline path + double t = 0.0f; // spline sampling t value at that point. + }; + std::vector displacement_mappings; }; - std::unordered_map catmull_rom_cache; + std::unordered_map catmull_rom_cache; } // namespace namespace game @@ -71,6 +79,47 @@ double SplineMoverClass::GetPathLength() const return Spline::CalcArcLength(*spline, 0.0f, 1.0f); } +double SplineMoverClass::Reparametrize(double displacement) const +{ + auto it = catmull_rom_cache.find(this); + if (it == catmull_rom_cache.end()) + { + if (!InitClassRuntime()) + return 0.0; + it = catmull_rom_cache.find(this); + ASSERT(it != catmull_rom_cache.end()); + } + + // our mapping table maps distances along the path to t values. + // do a lookup and find which t values are the closest to the + // current given displacement + + const auto& table = it->second.displacement_mappings; + + const auto span_count = table.size() - 1; + for (size_t i=0; i= table[start_index].d && displacement < table[end_index].d) + { + const auto span_distance = table[end_index].d - table[start_index].d; + const auto t0 = table[start_index].t; + const auto t1 = table[end_index].t; + const auto span_t = (displacement - table[start_index].d) / span_distance; + return math::lerp(t0, t1, span_t); + } + } + if (displacement < 0.0f) + return 0.0; + if (displacement >= table.back().d) + return 1.0; + + return 0.0; +} + size_t SplineMoverClass::GetHash() const noexcept { size_t hash = mSpline.GetHash(); @@ -127,9 +176,44 @@ bool SplineMoverClass::InitClassRuntime() const ok = false; } + const auto max_parameter = catmull_rom->max_parameter(); + // todo: maybe use a more elaborate mechanism to refine the sampling based on the + // "size" of the spliene. + constexpr auto max_samples = 50; + + std::vector samples; + for (size_t i=0; i(i) / + static_cast(max_samples-1); + samples.push_back(catmull_rom->evaluate(t * max_parameter)); + } + + std::vector mappings; + mappings.push_back({ 0.0, 0.0f }); + double displacement = 0.0; + + for (unsigned i=1; i(i) / + static_cast(max_samples - 1); + + CatmullRomCache::DisplacementMapping m; + m.d = displacement; + m.t = t; + mappings.push_back(m); + } + CatmullRomCache cached_spline; cached_spline.spline = catmull_rom; cached_spline.spline_path_length = Spline::CalcArcLength(*catmull_rom, 0.0f, 1.0f); + cached_spline.displacement_mappings = std::move(mappings); + VERBOSE("Computed and cached spline length value. [length='%1']", cached_spline.spline_path_length); catmull_rom_cache[this] = cached_spline; return true; @@ -151,4 +235,4 @@ SplineMover::SplineMover(std::shared_ptr klass) mPathLength = (float)mClass->GetPathLength(); } -}// namespace \ No newline at end of file +}// namespace diff --git a/game/entity_node_spline_mover.h b/game/entity_node_spline_mover.h index ddfa12ee8..cb901115b 100644 --- a/game/entity_node_spline_mover.h +++ b/game/entity_node_spline_mover.h @@ -119,6 +119,9 @@ namespace game inline void SetSpeed(float speed) noexcept { mSpeed = speed; } + void SetPoints(std::vector points) noexcept + { mSpline.SetPoints(std::move(points)); } + // Redefine a spline control point at the given index. // The index must be valid. inline void SetPoint(const SplinePoint& point, size_t index) @@ -166,6 +169,11 @@ namespace game double GetPathLength() const; + // take the curve displacement (travel along the curve) + // and map that to a smoothed interpolated t value for sampling + // the spline. + double Reparametrize(double displacement) const; + SplinePoint Evaluate(const CatmullRomFunction& catmull_rom, float t) const { auto sample = Spline::Evaluate(catmull_rom, t); @@ -245,7 +253,8 @@ namespace game } else BUG("Bug on iteration mode"); // normalize displacement. - const float t = mDisplacement / mPathLength; + //const float t = mDisplacement / mPathLength; + const auto t = (float)mClass->Reparametrize(mDisplacement); const auto coordinate_space = mClass->GetPathCoordinateSpace(); const auto rotation_mode = mClass->GetRotationMode(); diff --git a/game/spline.h b/game/spline.h index ba3e3b661..648888370 100644 --- a/game/spline.h +++ b/game/spline.h @@ -90,6 +90,9 @@ namespace game public: using CatmullRomFunction = boost::math::catmull_rom; + void SetPoints(std::vector points) noexcept + { mPoints = std::move(points); } + // Get the current number of spline control points. inline auto GetPointCount() const noexcept { return mPoints.size(); } diff --git a/game/timeline_animation.cpp b/game/timeline_animation.cpp index 9aa8b0d55..cc40acd7a 100644 --- a/game/timeline_animation.cpp +++ b/game/timeline_animation.cpp @@ -386,8 +386,10 @@ void Animation::Apply(EntityNode& node, std::vector* events) con for (auto& trigger_event : trigger_events) { AnimationEvent animation_event; - animation_event.value = std::move(trigger_event); animation_event.animation_name = mClass->GetName(); + std::visit([&animation_event](auto e) { + animation_event.event = e; + }, trigger_event); events->emplace_back(std::move(animation_event)); } } diff --git a/game/timeline_animation_trigger.cpp b/game/timeline_animation_trigger.cpp index bc5f3f3fe..015d76a8b 100644 --- a/game/timeline_animation_trigger.cpp +++ b/game/timeline_animation_trigger.cpp @@ -211,7 +211,17 @@ void AnimationTrigger::Trigger(game::EntityNode& node, std::vector* event return; const auto type = mClass->GetType(); - if (type == Type::StartMeshEffect) + if (type == Type::CommitSuicide) + { + if (events) + { + AnimationCommitEntitySuicideEvent e; + e.trigger_name = mClass->GetName(); + e.lifetime = 0.0f; + events->push_back(e); + } + } + else if (type == Type::StartMeshEffect) { auto* drawable = node.GetDrawable(); if (!drawable) @@ -227,8 +237,6 @@ void AnimationTrigger::Trigger(game::EntityNode& node, std::vector* event cmd.name = "EnableMeshEffect"; cmd.args["state"] = "on"; drawable->EnqueueCommand(std::move(cmd)); - - DEBUG("homo kakki!"); } else if (type == Type::EmitParticlesTrigger) { diff --git a/game/timeline_animation_trigger.h b/game/timeline_animation_trigger.h index 7fe0ec38c..5000f8b47 100644 --- a/game/timeline_animation_trigger.h +++ b/game/timeline_animation_trigger.h @@ -44,7 +44,8 @@ namespace game RunSpriteCycle, PlayAudio, SpawnEntity, - StartMeshEffect + StartMeshEffect, + CommitSuicide, }; enum class Flags { Enabled @@ -178,16 +179,16 @@ namespace game : mClass(std::make_shared(klass)) {} - inline auto GetNodeId() const + auto GetNodeId() const { return mClass->GetNodeId(); } - inline auto GetTime() const noexcept + auto GetTime() const noexcept { return mClass->GetTime(); } - inline auto GetType() const noexcept + auto GetType() const noexcept { return mClass->GetType(); } - inline std::unique_ptr Copy() const + std::unique_ptr Copy() const { return std::make_unique(*this); } bool Validate(const EntityNode& node) const; diff --git a/game/timeline_property_animator.cpp b/game/timeline_property_animator.cpp index 452ecc901..af83532c1 100644 --- a/game/timeline_property_animator.cpp +++ b/game/timeline_property_animator.cpp @@ -139,6 +139,8 @@ void BooleanPropertyAnimator::Start(EntityNode& node) mStartState = spatial->TestFlag(SpatialNode::Flags::Enabled); else if (flag == FlagName::LinearMover_Enabled) mStartState = linear_mover->TestFlag(LinearMover::Flags::Enabled); + else if (flag == FlagName::LinearMover_RotateToDirection) + mStartState = linear_mover->TestFlag(LinearMover::Flags::RotateToDirection); else if (flag == FlagName::RigidBodyJoint_EnableLimits) { const auto* joint = node.GetEntity()->FindJointByClassId(mClass->GetJointId()); @@ -247,6 +249,8 @@ void BooleanPropertyAnimator::SetFlag(EntityNode& node) const spatial->SetFlag(SpatialNode::Flags::Enabled, next_value); else if (flag == FlagName::LinearMover_Enabled) linear_mover->SetFlag(LinearMover::Flags::Enabled, next_value); + else if (flag == FlagName::LinearMover_RotateToDirection) + linear_mover->SetFlag(LinearMover::Flags::RotateToDirection, next_value); else if (flag == FlagName::RigidBodyJoint_EnableMotor) { auto* joint = node.GetEntity()->FindJointByClassId(mClass->GetJointId()); @@ -331,7 +335,7 @@ bool BooleanPropertyAnimator::CanApply(EntityNode& node, bool verbose) const } return spatial != nullptr; } - else if (flag == FlagName::LinearMover_Enabled) + else if (flag == FlagName::LinearMover_Enabled || flag == FlagName::LinearMover_RotateToDirection) { if (!linear_mover && verbose) { diff --git a/game/timeline_property_animator.h b/game/timeline_property_animator.h index b1335c0ff..f7d6451e4 100644 --- a/game/timeline_property_animator.h +++ b/game/timeline_property_animator.h @@ -157,6 +157,7 @@ namespace game TextItem_PPEnableBloom, SpatialNode_Enabled, LinearMover_Enabled, + LinearMover_RotateToDirection, RigidBodyJoint_EnableMotor, RigidBodyJoint_EnableLimits, BasicLight_Enabled, diff --git a/game/types.h b/game/types.h index ea696e3c9..514499828 100644 --- a/game/types.h +++ b/game/types.h @@ -82,12 +82,19 @@ namespace game // for debug std::string trigger_name; }; + struct AnimationCommitEntitySuicideEvent { + float lifetime = 0.0f; + std::string trigger_name; + }; using AnimationTriggerEvent = std::variant; + AnimationSpawnEntityTriggerEvent, + AnimationCommitEntitySuicideEvent>; struct AnimationEvent { - std::variant value; + std::variant event; // for debug. std::string animation_name; }; diff --git a/game/unit_test/unit_test_entity.cpp b/game/unit_test/unit_test_entity.cpp index 19bdc858c..be17de392 100644 --- a/game/unit_test/unit_test_entity.cpp +++ b/game/unit_test/unit_test_entity.cpp @@ -1365,29 +1365,47 @@ void unit_test_entity_node_spline_mover() { TEST_CASE(test::Type::Feature) - game::SplineMoverClass spline; + // initialize some spline points. + std::vector points; + glm::vec2 point = {0.0f, 0.0f}; + for(unsigned i=0; i<=4; ++i) { - glm::vec2 point = {0.0f, 0.0f}; - for(unsigned i=0; i<=4; ++i) - { - game::SplinePoint p; - p.SetPosition(point); + game::SplinePoint p; + p.SetPosition(point); - spline.AppendPoint(p); - point += glm::vec2{100.0f, 0.0f}; - } + points.push_back(p); + point += glm::vec2{100.0f, 0.0f}; } - game::EntityNodeClass node_class; - node_class.SetSplineMover(spline); + // test that the velocity is approx constant. + { + game::SplineMoverClass spline; + spline.SetPoints(points); + spline.SetSpeed(100.0f); // 100 u/s - game::EntityNode node(node_class); - TEST_REQUIRE(node.HasSplineMover()); + game::EntityNodeClass node_class; + node_class.SetSplineMover(spline); + + game::EntityNode node(node_class); + TEST_REQUIRE(node.HasSplineMover()); + + auto* mover = node.GetSplineMover(); + mover->TransformObject(0.0f, node); + TEST_REQUIRE(node.GetTranslation().x == 0.0f); + TEST_REQUIRE(node.GetTranslation().y == 0.0f); - auto* mover = node.GetSplineMover(); - mover->TransformObject(0.0f, node); - mover->TransformObject(0.5f, node); - mover->TransformObject(1.0f, node); + mover->TransformObject(0.5f, node); + TEST_REQUIRE(math::equals(node.GetTranslation().x, 50.0f, 1.0f)); + TEST_REQUIRE(node.GetTranslation().y == 0.0f); + + mover->TransformObject(0.5f, node); + TEST_REQUIRE(math::equals(node.GetTranslation().x, 100.0f, 1.0f)); + TEST_REQUIRE(node.GetTranslation().y == 0.0f); + + mover->TransformObject(1.0f, node); + TEST_REQUIRE(math::equals(node.GetTranslation().x, 200.0f, 1.0f)); + TEST_REQUIRE(node.GetTranslation().y == 0.0f); + } } struct PerfTestDrawableTag{}; diff --git a/graphics/fwd.h b/graphics/fwd.h index cdc7423bd..2f8a5fb6c 100644 --- a/graphics/fwd.h +++ b/graphics/fwd.h @@ -23,6 +23,7 @@ namespace gfx class Painter; class Material; class MaterialClass; + class MaterialInstance; class Drawable; class DrawableClass; class Device; diff --git a/graphics/material_instance.cpp b/graphics/material_instance.cpp index c3bc0cad6..8b3e130b0 100644 --- a/graphics/material_instance.cpp +++ b/graphics/material_instance.cpp @@ -76,6 +76,14 @@ bool MaterialInstance::ApplyDynamicState(const Environment& env, Device& device, WARN("Incorrect material parameter type set on 'active_texture_map'. String ID expected."); } } + if (!mStaticUniformWarning) + { + if (mClass->IsStatic() && !mUniforms.empty()) + { + WARN("Trying to set material uniforms on a static material. [name='%1']", mClass->GetName()); + mStaticUniformWarning = true; + } + } mFirstRender = false; @@ -268,6 +276,7 @@ std::unique_ptr MaterialInstance::Clone() const auto dolly = std::make_unique(*this); dolly->mFirstRender = false; dolly->mError = false; + dolly->mStaticUniformWarning = false; return dolly; } diff --git a/graphics/material_instance.h b/graphics/material_instance.h index 42c0627d5..73acc8802 100644 --- a/graphics/material_instance.h +++ b/graphics/material_instance.h @@ -103,6 +103,7 @@ namespace gfx // of spamming the log continuously. mutable bool mFirstRender = true; mutable bool mError = false; + mutable bool mStaticUniformWarning = false; }; // These functions are intended to be used when you just need to draw