diff --git a/examples/fire-bullet/fire-bullet.json b/examples/fire-bullet/fire-bullet.json index 6cd247d54..43ee85de9 100644 --- a/examples/fire-bullet/fire-bullet.json +++ b/examples/fire-bullet/fire-bullet.json @@ -5443,13 +5443,13 @@ "AngleVariance": 0, "MultishotQuantity": 1, "MaxAmmo": 100, - "ReloadDuration": 1, + "ReloadDuration": 0, "AmmoQuantity": 100, - "BulletQuantity": 1, + "BulletQuantity": 5, "BulletsCreated_Stats": 0, "ShotsPerReload": 4, "StartingAmmo": 100, - "UnlimitedAmmo": false, + "UnlimitedAmmo": true, "HeatIncreasePerShot": 0.1, "HeatCoolingRate": 0.1, "OverheatingPenaltyDuration": 3, @@ -8916,6 +8916,7 @@ "emitterForceMax": 0, "emitterForceMin": 0, "flow": 50, + "jumpForwardInTimeOnCreation": 0, "maxParticleNb": 300, "name": "Particle_RecoilDust", "particleAlpha1": 150, @@ -8961,6 +8962,7 @@ "emitterForceMax": 0, "emitterForceMin": 0, "flow": 50, + "jumpForwardInTimeOnCreation": 0, "maxParticleNb": 300, "name": "Particle_Dash", "particleAlpha1": 150, @@ -9006,6 +9008,7 @@ "emitterForceMax": 0, "emitterForceMin": 0, "flow": 45, + "jumpForwardInTimeOnCreation": 0, "maxParticleNb": 300, "name": "Particle_Death", "particleAlpha1": 255, @@ -9802,7 +9805,8 @@ "r": 0 }, "absoluteCoordinates": false, - "clearBetweenFrames": true + "clearBetweenFrames": true, + "antialiasing": "none" }, { "assetStoreId": "", @@ -9860,7 +9864,8 @@ "r": 0 }, "absoluteCoordinates": false, - "clearBetweenFrames": true + "clearBetweenFrames": true, + "antialiasing": "none" }, { "assetStoreId": "", @@ -9918,7 +9923,8 @@ "r": 0 }, "absoluteCoordinates": false, - "clearBetweenFrames": true + "clearBetweenFrames": true, + "antialiasing": "none" }, { "assetStoreId": "", @@ -9976,7 +9982,8 @@ "r": 0 }, "absoluteCoordinates": false, - "clearBetweenFrames": true + "clearBetweenFrames": true, + "antialiasing": "none" }, { "assetStoreId": "", @@ -10034,7 +10041,8 @@ "r": 0 }, "absoluteCoordinates": false, - "clearBetweenFrames": true + "clearBetweenFrames": true, + "antialiasing": "none" }, { "assetStoreId": "", @@ -10092,7 +10100,8 @@ "r": 0 }, "absoluteCoordinates": false, - "clearBetweenFrames": true + "clearBetweenFrames": true, + "antialiasing": "none" }, { "assetStoreId": "", @@ -10150,7 +10159,8 @@ "r": 0 }, "absoluteCoordinates": false, - "clearBetweenFrames": true + "clearBetweenFrames": true, + "antialiasing": "none" }, { "assetStoreId": "", @@ -10208,7 +10218,8 @@ "r": 0 }, "absoluteCoordinates": false, - "clearBetweenFrames": true + "clearBetweenFrames": true, + "antialiasing": "none" }, { "assetStoreId": "", @@ -10266,7 +10277,8 @@ "r": 0 }, "absoluteCoordinates": false, - "clearBetweenFrames": true + "clearBetweenFrames": true, + "antialiasing": "none" }, { "assetStoreId": "", @@ -10324,7 +10336,8 @@ "r": 0 }, "absoluteCoordinates": false, - "clearBetweenFrames": true + "clearBetweenFrames": true, + "antialiasing": "none" }, { "assetStoreId": "", @@ -10382,7 +10395,8 @@ "r": 0 }, "absoluteCoordinates": false, - "clearBetweenFrames": true + "clearBetweenFrames": true, + "antialiasing": "none" }, { "assetStoreId": "", @@ -10440,7 +10454,8 @@ "r": 0 }, "absoluteCoordinates": false, - "clearBetweenFrames": true + "clearBetweenFrames": true, + "antialiasing": "none" }, { "assetStoreId": "", @@ -10498,7 +10513,8 @@ "r": 0 }, "absoluteCoordinates": false, - "clearBetweenFrames": true + "clearBetweenFrames": true, + "antialiasing": "none" }, { "assetStoreId": "", @@ -10556,7 +10572,8 @@ "r": 248 }, "absoluteCoordinates": false, - "clearBetweenFrames": true + "clearBetweenFrames": true, + "antialiasing": "none" }, { "assetStoreId": "", @@ -10614,7 +10631,8 @@ "r": 248 }, "absoluteCoordinates": false, - "clearBetweenFrames": true + "clearBetweenFrames": true, + "antialiasing": "none" }, { "assetStoreId": "", @@ -10672,7 +10690,8 @@ "r": 0 }, "absoluteCoordinates": false, - "clearBetweenFrames": true + "clearBetweenFrames": true, + "antialiasing": "none" }, { "assetStoreId": "", @@ -10696,7 +10715,8 @@ "r": 189 }, "absoluteCoordinates": true, - "clearBetweenFrames": true + "clearBetweenFrames": true, + "antialiasing": "none" }, { "assetStoreId": "", @@ -10743,7 +10763,8 @@ "r": 0 }, "absoluteCoordinates": false, - "clearBetweenFrames": true + "clearBetweenFrames": true, + "antialiasing": "none" }, { "assetStoreId": "", @@ -10790,7 +10811,8 @@ "r": 0 }, "absoluteCoordinates": false, - "clearBetweenFrames": true + "clearBetweenFrames": true, + "antialiasing": "none" }, { "assetStoreId": "", @@ -10837,7 +10859,8 @@ "r": 0 }, "absoluteCoordinates": false, - "clearBetweenFrames": true + "clearBetweenFrames": true, + "antialiasing": "none" }, { "assetStoreId": "df3d5e6bbf65733b6aa4daae9ae041ffc6de3eb61d89f15830d49ad1e1e9b781", @@ -10990,6 +11013,15 @@ "240", "" ] + }, + { + "type": { + "value": "ChangeColor" + }, + "parameters": [ + "Bullet", + "\"255;\" + ToString(191 + 64 * cos(8 * TimeFromStart())) + \";255\"" + ] } ] } @@ -11199,12 +11231,12 @@ "actions": [ { "type": { - "value": "Checkbox::Checkbox::SetChecked" + "value": "DraggableSliderControl::DraggableSliderControl::SetValue" }, "parameters": [ - "UnlimitedAmmo_Checkbox", - "Checkbox", - "no", + "ShotsPerReload_Slider", + "DraggableSliderControl", + "Wesley.FireBullet::ShotsPerReload()", "" ] }, @@ -11213,9 +11245,9 @@ "value": "DraggableSliderControl::DraggableSliderControl::SetValue" }, "parameters": [ - "ShotsPerReload_Slider", + "MaxAmmo_Slider", "DraggableSliderControl", - "5", + "Wesley.FireBullet::MaxAmmo()", "" ] }, @@ -11224,23 +11256,53 @@ "value": "DraggableSliderControl::DraggableSliderControl::SetValue" }, "parameters": [ - "MaxAmmo_Slider", + "ReloadDuration_Slider", "DraggableSliderControl", - "100", + "Wesley.FireBullet::ReloadDuration()", "" ] }, { "type": { - "value": "DraggableSliderControl::DraggableSliderControl::SetValue" + "value": "Checkbox::Checkbox::SetChecked" }, "parameters": [ - "ReloadDuration_Slider", - "DraggableSliderControl", - "1", + "UnlimitedAmmo_Checkbox", + "Checkbox", + "no", "" ] } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::IsUnlimitedAmmo" + }, + "parameters": [ + "Wesley", + "FireBullet", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Checkbox::Checkbox::SetChecked" + }, + "parameters": [ + "UnlimitedAmmo_Checkbox", + "Checkbox", + "yes", + "" + ] + } + ] + } ] }, { @@ -14934,7 +14996,12 @@ "ambientLightColorR": 9369496, "followBaseLayerCamera": false, "isLightingLayer": false, + "isLocked": false, "name": "BottomLayer", + "renderingType": "", + "threeDFarPlaneDistance": 10000, + "threeDFieldOfView": 45, + "threeDNearPlaneDistance": 0.1, "visibility": true, "cameras": [], "effects": [] @@ -14945,7 +15012,12 @@ "ambientLightColorR": 0, "followBaseLayerCamera": false, "isLightingLayer": false, + "isLocked": false, "name": "", + "renderingType": "", + "threeDFarPlaneDistance": 10000, + "threeDFieldOfView": 45, + "threeDNearPlaneDistance": 0.1, "visibility": true, "cameras": [ { @@ -14967,7 +15039,12 @@ "ambientLightColorR": 7581144, "followBaseLayerCamera": false, "isLightingLayer": false, + "isLocked": false, "name": "UI", + "renderingType": "", + "threeDFarPlaneDistance": 10000, + "threeDFieldOfView": 45, + "threeDNearPlaneDistance": 0.1, "visibility": true, "cameras": [], "effects": [] @@ -22196,39 +22273,26 @@ "category": "Game mechanic", "extensionNamespace": "", "fullName": "Fire bullets", - "helpPath": "https://gdevelop.io/game-example/fire-bullet", + "helpPath": "/extensions/fire-bullet/details", "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLWJ1bGxldCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0xNCwyMkgxMFYyMUgxNFYyMk0xMywxMFY3SDExVjEwTDEwLDExLjVWMjBIMTRWMTEuNUwxMywxME0xMiwyQzEyLDIgMTEsMyAxMSw1VjZIMTNWNUMxMyw1IDEzLDMgMTIsMloiIC8+PC9zdmc+", "name": "FireBullet", "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/bullet.svg", - "shortDescription": "Fire bullets, manage ammo, reloading, and overheating.", - "version": "0.4.2", + "shortDescription": "Fire bullets, manage ammo, reloading and overheating.", + "version": "0.6.1", "description": [ - "Fire bullets, manage ammo, reloading, and overheating.", - "", - "Firing bullets:", - "- Cooldown: Time between shots (seconds)", - "- Bullet Quantity: Number of bullets created each time Fire Bullet action is used. ", - "- Firing Arc: Range of angles (in degrees) that bullets will shoot. Bullets are evenly spread within this range.", - "- Rotate bullet: Change the angle of each bullet to match the direction it is travelling (enabled by default)", - "- Angle Variance: Each bullet trajectory will be adjusted by a random value within this range (degrees)", - "- Bullet speed variance: Each bullet speed will be adjusted by a random value within this range (pixels/second)", + "This extension allows objects to fire bullets.", "", - " Ammo:", - "- Starting ammo", - "- Max ammo", - "- Shots per reload. Use 0 to disable reloading", - "- Reload duration", - "- Automatic reloading is enabled by default, but it can also be done manually.", + "It handles:", + "- Cooldown between shots", + "- Firing multiple bullets at a time ([open the project online](https://editor.gdevelop.io/?project=example://fire-bullet))", + "- Ammo management", + "- Overheat", "", - "Overheat:", - "- Heat increase per shot. Object is Overheated when Heat reaches 1.", - "- Cooling rate per second", - "- When overheated, the object cannot fire any bullets", + "It can be used for:", + "- Twin-stick shooters ([open the project online](https://editor.gdevelop.io/?project=example://conviction-of-gun-dude-desktop))", + "- Shoot'em up ([open the project online](https://editor.gdevelop.io/?project=example://space-shooter))", "", - "Statistics:", - "- Total bullets created", - "- Total shots taken", - "- Total reloads completed" + "A simple example shows how to make firing patterns ([open the project online](https://editor.gdevelop.io/?project=example://firing-patterns))." ], "origin": { "identifier": "FireBullet", @@ -23026,7 +23090,7 @@ { "description": "The bullet object", "name": "Bullet", - "type": "objectList" + "type": "objectListOrEmptyIfJustDeclared" }, { "description": "Target X position", @@ -23282,7 +23346,7 @@ { "description": "The bullet object", "name": "Bullet", - "type": "objectList" + "type": "objectListOrEmptyIfJustDeclared" }, { "description": "Angle of the bullet, in degrees", @@ -23539,7 +23603,7 @@ { "description": "The bullet object", "name": "Bullet", - "type": "objectList" + "type": "objectListOrEmptyIfJustDeclared" }, { "description": "Angle of the bullet, in degrees", @@ -23725,12 +23789,52 @@ "objectGroups": [] }, { - "description": "Change the firing arc (in degrees) where bullets will be shot. Bullets will be evenly spaced out inside the firing arc.", - "fullName": "Set firing arc", - "functionType": "Action", + "description": "the firing arc (in degrees) where bullets are shot. Bullets are evenly spaced out inside the firing arc.", + "fullName": "Firing arc", + "functionType": "ExpressionAndCondition", "group": "Multi-Fire", - "name": "SetFiringArc", - "sentence": "Set firing arc of _PARAM0_ to _PARAM2_ degrees", + "name": "FiringArc", + "sentence": "the firing arc", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyFiringArc()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "FiringArc", + "name": "SetFiringArcOp", + "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -23771,12 +23875,13 @@ "objectGroups": [] }, { - "description": "Change the angle variance (in degrees) applied to each bullet.", - "fullName": "Set angle variance", + "description": "Change the firing arc (in degrees) where bullets will be shot. Bullets will be evenly spaced out inside the firing arc.", + "fullName": "Set firing arc (deprecated)", "functionType": "Action", - "group": "Firing", - "name": "SetAngleVariance", - "sentence": "Set angle variance of _PARAM0_ to _PARAM2_ degrees", + "group": "Multi-Fire", + "name": "SetFiringArc", + "private": true, + "sentence": "Set firing arc of _PARAM0_ to _PARAM2_ degrees", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -23784,13 +23889,14 @@ "actions": [ { "type": { - "value": "FireBullet::FireBullet::SetPropertyAngleVariance" + "value": "FireBullet::FireBullet::SetFiringArcOp" }, "parameters": [ "Object", "Behavior", "=", - "GetArgumentAsNumber(\"Value\")" + "GetArgumentAsNumber(\"Value\")", + "" ] } ] @@ -23809,7 +23915,7 @@ "type": "behavior" }, { - "description": "Angle variance (degrees) Range: 0 to 180", + "description": "Firing arc (degrees) Range: 0 to 360", "name": "Value", "type": "expression" } @@ -23817,12 +23923,12 @@ "objectGroups": [] }, { - "description": "Change the speed variance (pixels per second) applied to each bullet.", - "fullName": "Set bullet speed variance", - "functionType": "Action", - "group": "Multi-Fire", - "name": "SetBulletSpeedVariance", - "sentence": "Set bullet speed variance of _PARAM0_ to _PARAM2_ pixels per second", + "description": "the angle variance (in degrees) applied to each bullet.", + "fullName": "Angle variance", + "functionType": "ExpressionAndCondition", + "group": "Firing variance", + "name": "AngleVariance", + "sentence": "the angle variance", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -23830,18 +23936,18 @@ "actions": [ { "type": { - "value": "FireBullet::FireBullet::SetPropertyBulletSpeedVariance" + "value": "SetReturnNumber" }, "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsNumber(\"Value\")" + "Object.Behavior::PropertyAngleVariance()" ] } ] } ], + "expressionType": { + "type": "expression" + }, "parameters": [ { "description": "Object", @@ -23853,22 +23959,16 @@ "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" - }, - { - "description": "Angle variance (degrees) Range: 0 to 180", - "name": "Value", - "type": "expression" } ], "objectGroups": [] }, { - "description": "Change the number of bullets shot every time the \"fire bullet\" action is used.", - "fullName": "Set number of bullets per shot", - "functionType": "Action", - "group": "Multi-Fire", - "name": "SetBulletQuantity", - "sentence": "Set number of bullets per shot of _PARAM0_ to _PARAM2_", + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "AngleVariance", + "name": "SetAngleVarianceOp", + "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -23876,7 +23976,7 @@ "actions": [ { "type": { - "value": "FireBullet::FireBullet::SetPropertyBulletQuantity" + "value": "FireBullet::FireBullet::SetPropertyAngleVariance" }, "parameters": [ "Object", @@ -23901,7 +24001,7 @@ "type": "behavior" }, { - "description": "Bullets", + "description": "Angle variance (degrees) Range: 0 to 180", "name": "Value", "type": "expression" } @@ -23909,12 +24009,13 @@ "objectGroups": [] }, { - "description": "Change the layer that bullets are created on.", - "fullName": "Set bullet layer", + "description": "Change the angle variance (in degrees) applied to each bullet.", + "fullName": "Set angle variance (deprecated)", "functionType": "Action", "group": "Firing", - "name": "SetBulletLayer", - "sentence": "Set the layer used to create bullets fired by _PARAM0_ to _PARAM2_", + "name": "SetAngleVariance", + "private": true, + "sentence": "Set angle variance of _PARAM0_ to _PARAM2_ degrees", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -23922,13 +24023,14 @@ "actions": [ { "type": { - "value": "FireBullet::FireBullet::SetPropertyBulletLayer" + "value": "FireBullet::FireBullet::SetAngleVarianceOp" }, "parameters": [ "Object", "Behavior", "=", - "GetArgumentAsString(\"Value\")" + "GetArgumentAsNumber(\"Value\")", + "" ] } ] @@ -23947,68 +24049,74 @@ "type": "behavior" }, { - "description": "Layer", + "description": "Angle variance (degrees) Range: 0 to 180", "name": "Value", - "type": "layer" + "type": "expression" } ], "objectGroups": [] }, { - "description": "Enable bullet rotation.", - "fullName": "Enable (or disable) bullet rotation", - "functionType": "Action", - "group": "Firing", - "name": "SetRotateBullet", - "sentence": "Enable bullet rotation on _PARAM0_: _PARAM2_", + "description": "the bullet speed variance (pixels per second) applied to each bullet.", + "fullName": "Bullet speed variance", + "functionType": "ExpressionAndCondition", + "group": "Firing variance", + "name": "BulletSpeedVariance", + "sentence": "the bullet speed variance", "events": [ { "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "inverted": true, - "value": "GetArgumentAsBoolean" - }, - "parameters": [ - "\"RotateBullet\"" - ] - } - ], + "conditions": [], "actions": [ { "type": { - "value": "FireBullet::FireBullet::SetPropertyRotateBullet" + "value": "SetReturnNumber" }, "parameters": [ - "Object", - "Behavior", - "no" + "Object.Behavior::PropertyBulletSpeedVariance()" ] } ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "BulletSpeedVariance", + "name": "SetBulletSpeedVarianceOp", + "sentence": "", + "events": [ { "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "GetArgumentAsBoolean" - }, - "parameters": [ - "\"RotateBullet\"" - ] - } - ], + "conditions": [], "actions": [ { "type": { - "value": "FireBullet::FireBullet::SetPropertyRotateBullet" + "value": "FireBullet::FireBullet::SetPropertyBulletSpeedVariance" }, "parameters": [ "Object", "Behavior", - "yes" + "=", + "GetArgumentAsNumber(\"Value\")" ] } ] @@ -24027,70 +24135,36 @@ "type": "behavior" }, { - "defaultValue": "yes", - "description": "Rotate bullet to match trajetory", - "name": "RotateBullet", - "optional": true, - "type": "yesorno" + "description": "Angle variance (degrees) Range: 0 to 180", + "name": "Value", + "type": "expression" } ], "objectGroups": [] }, { - "description": "Enable unlimited ammo.", - "fullName": "Enable (or disable) unlimited ammo", + "description": "Change the speed variance (pixels per second) applied to each bullet.", + "fullName": "Set bullet speed variance (deprecated)", "functionType": "Action", - "group": "Ammo", - "name": "SetUnlimitedAmmo", - "sentence": "Enable unlimited ammo on _PARAM0_: _PARAM2_", + "group": "Multi-Fire", + "name": "SetBulletSpeedVariance", + "private": true, + "sentence": "Set bullet speed variance of _PARAM0_ to _PARAM2_ pixels per second", "events": [ { "type": "BuiltinCommonInstructions::Standard", - "conditions": [ + "conditions": [], + "actions": [ { "type": { - "inverted": true, - "value": "GetArgumentAsBoolean" + "value": "FireBullet::FireBullet::SetBulletSpeedVarianceOp" }, "parameters": [ - "\"UnlimitedAmmo\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "FireBullet::FireBullet::SetPropertyUnlimitedAmmo" - }, - "parameters": [ - "Object", - "Behavior", - "no" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "GetArgumentAsBoolean" - }, - "parameters": [ - "\"UnlimitedAmmo\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "FireBullet::FireBullet::SetPropertyUnlimitedAmmo" - }, - "parameters": [ - "Object", - "Behavior", - "yes" + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")", + "" ] } ] @@ -24109,22 +24183,20 @@ "type": "behavior" }, { - "defaultValue": "yes", - "description": "Unlimited ammo", - "name": "UnlimitedAmmo", - "optional": true, - "type": "yesorno" + "description": "Angle variance (degrees) Range: 0 to 180", + "name": "Value", + "type": "expression" } ], "objectGroups": [] }, { - "description": "Change the firing cooldown, which changes the rate of fire.", - "fullName": "Set firing cooldown", - "functionType": "Action", - "group": "Firing", - "name": "SetCooldown", - "sentence": "Set the fire rate of _PARAM0_ to _PARAM2_ seconds", + "description": "the number of bullets shot every time the \"fire bullet\" action is used.", + "fullName": "Bullets per shot", + "functionType": "ExpressionAndCondition", + "group": "Multi-Fire", + "name": "BulletQuantity", + "sentence": "the number of bullets per shot", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -24132,18 +24204,18 @@ "actions": [ { "type": { - "value": "FireBullet::FireBullet::SetPropertyFireCooldown" + "value": "SetReturnNumber" }, "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsNumber(\"NewCooldown\")" + "Object.Behavior::PropertyBulletQuantity()" ] } ] } ], + "expressionType": { + "type": "expression" + }, "parameters": [ { "description": "Object", @@ -24155,22 +24227,16 @@ "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" - }, - { - "description": "Cooldown in seconds", - "name": "NewCooldown", - "type": "expression" } ], "objectGroups": [] }, { - "description": "Change the duration to reload ammo.", - "fullName": "Set reload duration", - "functionType": "Action", - "group": "Reload", - "name": "SetReloadDuration", - "sentence": "Set the reload duration of _PARAM0_ to _PARAM2_ seconds", + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "BulletQuantity", + "name": "SetBulletQuantityOp", + "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -24178,7 +24244,7 @@ "actions": [ { "type": { - "value": "FireBullet::FireBullet::SetPropertyReloadDuration" + "value": "FireBullet::FireBullet::SetPropertyBulletQuantity" }, "parameters": [ "Object", @@ -24203,7 +24269,7 @@ "type": "behavior" }, { - "description": "Reload duration (seconds)", + "description": "Bullets", "name": "Value", "type": "expression" } @@ -24211,12 +24277,13 @@ "objectGroups": [] }, { - "description": "Change the duration after becoming overheated.", - "fullName": "Set overheat duration", + "description": "Change the number of bullets shot every time the \"fire bullet\" action is used.", + "fullName": "Set number of bullets per shot (deprecated)", "functionType": "Action", - "group": "Overheat", - "name": "SetOverheatDuration", - "sentence": "Set the overheat duration of _PARAM0_ to _PARAM2_ seconds", + "group": "Multi-Fire", + "name": "SetBulletQuantity", + "private": true, + "sentence": "Set number of bullets per shot of _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -24224,13 +24291,14 @@ "actions": [ { "type": { - "value": "FireBullet::FireBullet::SetPropertyOverheatDuration" + "value": "FireBullet::FireBullet::SetBulletQuantityOp" }, "parameters": [ "Object", "Behavior", "=", - "GetArgumentAsNumber(\"Value\")" + "GetArgumentAsNumber(\"Value\")", + "" ] } ] @@ -24249,7 +24317,7 @@ "type": "behavior" }, { - "description": "Overheat duration (seconds)", + "description": "Bullets", "name": "Value", "type": "expression" } @@ -24257,12 +24325,12 @@ "objectGroups": [] }, { - "description": "Change the quantity of ammo.", - "fullName": "Set ammo quantity", + "description": "Change the layer that bullets are created on.", + "fullName": "Set bullet layer", "functionType": "Action", - "group": "Ammo", - "name": "SetAmmoQuantity", - "sentence": "Set the ammo quantity of _PARAM0_ to _PARAM2_", + "group": "Firing", + "name": "SetBulletLayer", + "sentence": "Set the layer used to create bullets fired by _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -24270,13 +24338,13 @@ "actions": [ { "type": { - "value": "FireBullet::FireBullet::SetPropertyAmmoQuantity" + "value": "FireBullet::FireBullet::SetPropertyBulletLayer" }, "parameters": [ "Object", "Behavior", "=", - "GetArgumentAsNumber(\"Value\")" + "GetArgumentAsString(\"Value\")" ] } ] @@ -24295,34 +24363,68 @@ "type": "behavior" }, { - "description": "Ammo", + "description": "Layer", "name": "Value", - "type": "expression" + "type": "layer" } ], "objectGroups": [] }, { - "description": "Change the heat increase per shot.", - "fullName": "Set heat increase per shot", + "description": "Enable bullet rotation.", + "fullName": "Enable (or disable) bullet rotation", "functionType": "Action", - "group": "Overheat", - "name": "SetHeatPerShot", - "sentence": "Set the heat increase of _PARAM0_ to _PARAM2_ per shot", + "group": "Firing", + "name": "SetRotateBullet", + "sentence": "Enable bullet rotation on _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", - "conditions": [], + "conditions": [ + { + "type": { + "inverted": true, + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"RotateBullet\"" + ] + } + ], "actions": [ { "type": { - "value": "FireBullet::FireBullet::SetPropertyHeatIncreasePerShot" + "value": "FireBullet::FireBullet::SetPropertyRotateBullet" }, "parameters": [ "Object", "Behavior", - "=", - "GetArgumentAsNumber(\"Value\")" + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"RotateBullet\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyRotateBullet" + }, + "parameters": [ + "Object", + "Behavior", + "yes" ] } ] @@ -24341,34 +24443,45 @@ "type": "behavior" }, { - "description": "Heat increase per shot (Range: 0 to 1)", - "name": "Value", - "type": "expression" + "defaultValue": "yes", + "description": "Rotate bullet to match trajetory", + "name": "RotateBullet", + "optional": true, + "type": "yesorno" } ], "objectGroups": [] }, { - "description": "Change the max ammo.", - "fullName": "Set max ammo", + "description": "Enable unlimited ammo.", + "fullName": "Enable (or disable) unlimited ammo", "functionType": "Action", "group": "Ammo", - "name": "SetMaxAmmo", - "sentence": "Set the max ammo of _PARAM0_ to _PARAM2_", + "name": "SetUnlimitedAmmo", + "sentence": "Enable unlimited ammo on _PARAM0_: _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", - "conditions": [], + "conditions": [ + { + "type": { + "inverted": true, + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"UnlimitedAmmo\"" + ] + } + ], "actions": [ { "type": { - "value": "FireBullet::FireBullet::SetPropertyMaxAmmo" + "value": "FireBullet::FireBullet::SetPropertyUnlimitedAmmo" }, "parameters": [ "Object", "Behavior", - "=", - "GetArgumentAsNumber(\"Value\")" + "no" ] } ] @@ -24378,26 +24491,22 @@ "conditions": [ { "type": { - "value": "FireBullet::FireBullet::PropertyMaxAmmo" + "value": "GetArgumentAsBoolean" }, "parameters": [ - "Object", - "Behavior", - ">", - "0" + "\"UnlimitedAmmo\"" ] } ], "actions": [ { "type": { - "value": "FireBullet::FireBullet::SetPropertyAmmoQuantity" + "value": "FireBullet::FireBullet::SetPropertyUnlimitedAmmo" }, "parameters": [ "Object", "Behavior", - "=", - "min(Object.Behavior::MaxAmmo(),Object.Behavior::AmmoQuantity())" + "yes" ] } ] @@ -24416,20 +24525,22 @@ "type": "behavior" }, { - "description": "Max ammo", - "name": "Value", - "type": "expression" + "defaultValue": "yes", + "description": "Unlimited ammo", + "name": "UnlimitedAmmo", + "optional": true, + "type": "yesorno" } ], "objectGroups": [] }, { - "description": "Reset total shots fired.", - "fullName": "Reset total shots fired", - "functionType": "Action", - "group": "Stats", - "name": "ResetTotalShotsFired", - "sentence": "Reset total shots fired by _PARAM0_", + "description": "the firing cooldown (in seconds) also known as rate of fire.", + "fullName": "Firing cooldown", + "functionType": "ExpressionAndCondition", + "group": "Firing", + "name": "Cooldown", + "sentence": "the firing cooldown", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -24437,18 +24548,18 @@ "actions": [ { "type": { - "value": "FireBullet::FireBullet::SetPropertyTotalShotsFired" + "value": "SetReturnNumber" }, "parameters": [ - "Object", - "Behavior", - "=", - "0" + "Object.Behavior::PropertyFireCooldown()" ] } ] } ], + "expressionType": { + "type": "expression" + }, "parameters": [ { "description": "Object", @@ -24465,12 +24576,11 @@ "objectGroups": [] }, { - "description": "Reset total bullets created.", - "fullName": "Reset total bullets created", - "functionType": "Action", - "group": "Stats", - "name": "ResetTotalBulletsCreated", - "sentence": "Reset total bullets created by _PARAM0_", + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "Cooldown", + "name": "SetCooldownOp", + "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -24478,13 +24588,13 @@ "actions": [ { "type": { - "value": "FireBullet::FireBullet::SetPropertyTotalBulletsCreated" + "value": "FireBullet::FireBullet::SetPropertyFireCooldown" }, "parameters": [ "Object", "Behavior", "=", - "0" + "GetArgumentAsNumber(\"Value\")" ] } ] @@ -24501,31 +24611,38 @@ "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" + }, + { + "description": "Cooldown in seconds", + "name": "NewCooldown", + "type": "expression" } ], "objectGroups": [] }, { - "description": "Reset total reloads completed.", - "fullName": "Reset total reloads completed", + "description": "Change the firing cooldown, which changes the rate of fire.", + "fullName": "Set firing cooldown (deprecated)", "functionType": "Action", - "group": "Stats", - "name": "ResetTotalReloadsCompleted", - "sentence": "Reset total reloads completed by _PARAM0_", - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", + "group": "Firing", + "name": "SetCooldown", + "private": true, + "sentence": "Set the fire rate of _PARAM0_ to _PARAM2_ seconds", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ { "type": { - "value": "FireBullet::FireBullet::SetPropertyTotalReloadsCompleted" + "value": "FireBullet::FireBullet::SetCooldownOp" }, "parameters": [ "Object", "Behavior", "=", - "0" + "GetArgumentAsNumber(\"NewCooldown\")", + "" ] } ] @@ -24542,17 +24659,22 @@ "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" + }, + { + "description": "Cooldown in seconds", + "name": "NewCooldown", + "type": "expression" } ], "objectGroups": [] }, { - "description": "Change the number of shots per reload.", - "fullName": "Set shots per reload", - "functionType": "Action", + "description": "the reload duration (in seconds).", + "fullName": "Reload duration", + "functionType": "ExpressionAndCondition", "group": "Reload", - "name": "SetShotsPerReload", - "sentence": "Set the shots per reload of _PARAM0_ to _PARAM2_", + "name": "ReloadDuration", + "sentence": "the reload duration", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -24560,42 +24682,53 @@ "actions": [ { "type": { - "value": "FireBullet::FireBullet::SetPropertyShotsPerReload" + "value": "SetReturnNumber" }, "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsNumber(\"Value\")" + "Object.Behavior::PropertyReloadDuration()" ] } ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "ReloadDuration", + "name": "SetReloadDurationOp", + "sentence": "", + "events": [ { "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "FireBullet::FireBullet::PropertyShotsBeforeNextReload" - }, - "parameters": [ - "Object", - "Behavior", - ">", - "Object.Behavior::PropertyShotsPerReload()" - ] - } - ], + "conditions": [], "actions": [ { "type": { - "value": "FireBullet::FireBullet::SetPropertyShotsBeforeNextReload" + "value": "FireBullet::FireBullet::SetPropertyReloadDuration" }, "parameters": [ "Object", "Behavior", "=", - "Object.Behavior::PropertyShotsPerReload()" + "GetArgumentAsNumber(\"Value\")" ] } ] @@ -24614,7 +24747,7 @@ "type": "behavior" }, { - "description": "Shots per reload", + "description": "Reload duration (seconds)", "name": "Value", "type": "expression" } @@ -24622,12 +24755,13 @@ "objectGroups": [] }, { - "description": "Enable (or disable) automatic reloading.", - "fullName": "Enable (or disable) automatic reloading", + "description": "Change the duration to reload ammo.", + "fullName": "Set reload duration (deprecated)", "functionType": "Action", "group": "Reload", - "name": "SetAutomaticReload", - "sentence": "Enable automatic reloading on _PARAM0_: _PARAM2_", + "name": "SetReloadDuration", + "private": true, + "sentence": "Set the reload duration of _PARAM0_ to _PARAM2_ seconds", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -24635,37 +24769,14 @@ "actions": [ { "type": { - "value": "FireBullet::FireBullet::SetPropertyAutomaticReloading" - }, - "parameters": [ - "Object", - "Behavior", - "=" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "GetArgumentAsBoolean" - }, - "parameters": [ - "\"Value\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "FireBullet::FireBullet::SetPropertyAutomaticReloading" + "value": "FireBullet::FireBullet::SetReloadDurationOp" }, "parameters": [ "Object", "Behavior", - "yes" + "=", + "GetArgumentAsNumber(\"Value\")", + "" ] } ] @@ -24684,22 +24795,20 @@ "type": "behavior" }, { - "defaultValue": "yes", - "description": "Enable automatic reloading", + "description": "Reload duration (seconds)", "name": "Value", - "optional": true, - "type": "yesorno" + "type": "expression" } ], "objectGroups": [] }, { - "description": "Change the linear rate of cooling.", - "fullName": "Set linear cooling rate", - "functionType": "Action", + "description": "the overheat duration (in seconds). When an object is overheated, it can't fire for this duration.", + "fullName": "Overheat duration", + "functionType": "ExpressionAndCondition", "group": "Overheat", - "name": "SetLinearCoolingRate", - "sentence": "Set the linear cooling rate of _PARAM0_ to _PARAM2_ per second", + "name": "OverheatDuration", + "sentence": "the overheat duration", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -24707,18 +24816,18 @@ "actions": [ { "type": { - "value": "FireBullet::FireBullet::SetPropertyLinearCoolingRate" + "value": "SetReturnNumber" }, "parameters": [ - "Object", - "Behavior", - "=", - "GetArgumentAsNumber(\"Value\")" + "Object.Behavior::PropertyOverheatDuration()" ] } ] } ], + "expressionType": { + "type": "expression" + }, "parameters": [ { "description": "Object", @@ -24730,22 +24839,16 @@ "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" - }, - { - "description": "Heat cooling rate (per second)", - "name": "Value", - "type": "expression" } ], "objectGroups": [] }, { - "description": "Change the exponential rate of cooling.", - "fullName": "Set exponential cooling rate", - "functionType": "Action", - "group": "Overheat", - "name": "SetExponentialCoolingRate", - "sentence": "Set the exponential cooling rate of _PARAM0_ to _PARAM2_", + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "OverheatDuration", + "name": "SetOverheatDurationOp", + "sentence": "", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -24753,7 +24856,7 @@ "actions": [ { "type": { - "value": "FireBullet::FireBullet::SetPropertyExponentialCoolingRate" + "value": "FireBullet::FireBullet::SetPropertyOverheatDuration" }, "parameters": [ "Object", @@ -24778,20 +24881,21 @@ "type": "behavior" }, { - "description": "Exponential cooling rate", + "description": "Overheat duration (seconds)", "name": "Value", - "supplementaryInformation": "[\"Exponential\",\"Linear\"]", "type": "expression" } ], "objectGroups": [] }, { - "description": "Increase ammo quantity.", - "fullName": "Increase ammo", + "description": "Change the duration after becoming overheated.", + "fullName": "Set overheat duration (deprecated)", "functionType": "Action", - "name": "IncreaseAmmo", - "sentence": "Increase ammo of _PARAM0_ by _PARAM2_ shots", + "group": "Overheat", + "name": "SetOverheatDuration", + "private": true, + "sentence": "Set the overheat duration of _PARAM0_ to _PARAM2_ seconds", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -24799,90 +24903,13 @@ "actions": [ { "type": { - "value": "FireBullet::FireBullet::SetPropertyAmmoQuantity" - }, - "parameters": [ - "Object", - "Behavior", - "+", - "GetArgumentAsNumber(\"AmmoGained\")" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "If Max Ammo is set, do not exceed the value", - "comment2": "" - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "FireBullet::FireBullet::PropertyMaxAmmo" - }, - "parameters": [ - "Object", - "Behavior", - ">", - "0" - ] - } - ], - "actions": [ - { - "type": { - "value": "FireBullet::FireBullet::SetPropertyAmmoQuantity" + "value": "FireBullet::FireBullet::SetOverheatDurationOp" }, "parameters": [ "Object", "Behavior", "=", - "min(Object.Behavior::MaxAmmo(),Object.Behavior::AmmoQuantity())" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "FireBullet::FireBullet::IsReloadNeeded" - }, - "parameters": [ - "Object", - "Behavior", - "" - ] - }, - { - "type": { - "value": "FireBullet::FireBullet::PropertyAutomaticReloading" - }, - "parameters": [ - "Object", - "Behavior" - ] - } - ], - "actions": [ - { - "type": { - "value": "FireBullet::FireBullet::ReloadAmmo" - }, - "parameters": [ - "Object", - "Behavior", + "GetArgumentAsNumber(\"Value\")", "" ] } @@ -24902,20 +24929,20 @@ "type": "behavior" }, { - "description": "Ammo gained", - "name": "AmmoGained", + "description": "Overheat duration (seconds)", + "name": "Value", "type": "expression" } ], "objectGroups": [] }, { - "description": "Number of bullets to shoot at once (evenly spaced inside the Firing Arc).", - "fullName": "Bullet quantity", - "functionType": "Expression", - "group": "Multi-Fire", - "name": "BulletQuantity", - "sentence": "", + "description": "the ammo quantity.", + "fullName": "Ammo quantity", + "functionType": "ExpressionAndCondition", + "group": "Ammo", + "name": "AmmoQuantity", + "sentence": "the ammo quantity", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -24926,7 +24953,7 @@ "value": "SetReturnNumber" }, "parameters": [ - "Object.Behavior::PropertyBulletQuantity()" + "Object.Behavior::PropertyAmmoQuantity()" ] } ] @@ -24951,11 +24978,10 @@ "objectGroups": [] }, { - "description": "Layer that bullets are created on.", - "fullName": "Bullet layer", - "functionType": "StringExpression", - "group": "Multi-Fire", - "name": "BulletLayer", + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "AmmoQuantity", + "name": "SetAmmoQuantityOp", "sentence": "", "events": [ { @@ -24964,18 +24990,18 @@ "actions": [ { "type": { - "value": "SetReturnString" + "value": "FireBullet::FireBullet::SetPropertyAmmoQuantity" }, "parameters": [ - "Object.Behavior::PropertyBulletLayer()" + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" ] } ] } ], - "expressionType": { - "type": "layer" - }, "parameters": [ { "description": "Object", @@ -24987,17 +25013,23 @@ "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" + }, + { + "description": "Ammo", + "name": "Value", + "type": "expression" } ], "objectGroups": [] }, { - "description": "Angle variance, in degrees.", - "fullName": "Angle variance", - "functionType": "Expression", - "group": "Firing", - "name": "AngleVariance", - "sentence": "", + "description": "Change the quantity of ammo.", + "fullName": "Set ammo quantity (deprecated)", + "functionType": "Action", + "group": "Ammo", + "name": "SetAmmoQuantity", + "private": true, + "sentence": "Set the ammo quantity of _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -25005,18 +25037,19 @@ "actions": [ { "type": { - "value": "SetReturnNumber" + "value": "FireBullet::FireBullet::SetAmmoQuantityOp" }, "parameters": [ - "Object.Behavior::PropertyAngleVariance()" + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")", + "" ] } ] } ], - "expressionType": { - "type": "expression" - }, "parameters": [ { "description": "Object", @@ -25028,17 +25061,22 @@ "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" + }, + { + "description": "Ammo", + "name": "Value", + "type": "expression" } ], "objectGroups": [] }, { - "description": "Bullet speed variance, in pixels per second.", - "fullName": "Bullet speed variance", - "functionType": "Expression", - "group": "Multi-Fire", - "name": "BulletSpeedVariance", - "sentence": "", + "description": "the heat increase per shot.", + "fullName": "Heat increase per shot", + "functionType": "ExpressionAndCondition", + "group": "Overheat", + "name": "HeatIncreasePerShot", + "sentence": "the heat increase per shot", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -25049,7 +25087,7 @@ "value": "SetReturnNumber" }, "parameters": [ - "Object.Behavior::PropertyBulletSpeedVariance()" + "Object.Behavior::PropertyHeatIncreasePerShot()" ] } ] @@ -25074,11 +25112,10 @@ "objectGroups": [] }, { - "description": "Firing arc, in degrees.", - "fullName": "Firing arc", - "functionType": "Expression", - "group": "Multi-Fire", - "name": "FiringArc", + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "HeatIncreasePerShot", + "name": "SetHeatPerShotOp", "sentence": "", "events": [ { @@ -25087,18 +25124,18 @@ "actions": [ { "type": { - "value": "SetReturnNumber" + "value": "FireBullet::FireBullet::SetPropertyHeatIncreasePerShot" }, "parameters": [ - "Object.Behavior::PropertyFiringArc()" + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" ] } ] } ], - "expressionType": { - "type": "expression" - }, "parameters": [ { "description": "Object", @@ -25110,17 +25147,23 @@ "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" + }, + { + "description": "Heat increase per shot (Range: 0 to 1)", + "name": "Value", + "type": "expression" } ], "objectGroups": [] }, { - "description": "Heat level (Range: 0 to 1).", - "fullName": "Heat level", - "functionType": "Expression", + "description": "Change the heat increase per shot.", + "fullName": "Set heat increase per shot (deprecated)", + "functionType": "Action", "group": "Overheat", - "name": "HeatLevel", - "sentence": "", + "name": "SetHeatPerShot", + "private": true, + "sentence": "Set the heat increase of _PARAM0_ to _PARAM2_ per shot", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -25128,18 +25171,19 @@ "actions": [ { "type": { - "value": "SetReturnNumber" + "value": "FireBullet::FireBullet::SetHeatPerShotOp" }, "parameters": [ - "min(1,Object.Behavior::PropertyHeatLevel())" + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")", + "" ] } ] } ], - "expressionType": { - "type": "expression" - }, "parameters": [ { "description": "Object", @@ -25151,17 +25195,22 @@ "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" + }, + { + "description": "Heat increase per shot (Range: 0 to 1)", + "name": "Value", + "type": "expression" } ], "objectGroups": [] }, { - "description": "Firing cooldown, in seconds.", - "fullName": "Firing cooldown", - "functionType": "Expression", - "group": "Firing", - "name": "Cooldown", - "sentence": "", + "description": "the max ammo.", + "fullName": "Max ammo", + "functionType": "ExpressionAndCondition", + "group": "Ammo", + "name": "MaxAmmo", + "sentence": "the max ammo", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -25172,7 +25221,7 @@ "value": "SetReturnNumber" }, "parameters": [ - "Object.Behavior::PropertyFireCooldown()" + "Object.Behavior::PropertyMaxAmmo()" ] } ] @@ -25197,11 +25246,10 @@ "objectGroups": [] }, { - "description": "Reload duration, in seconds.", - "fullName": "Reload duration", - "functionType": "Expression", - "group": "Ammo", - "name": "ReloadDuration", + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "MaxAmmo", + "name": "SetMaxAmmoOp", "sentence": "", "events": [ { @@ -25210,18 +25258,47 @@ "actions": [ { "type": { - "value": "SetReturnNumber" + "value": "FireBullet::FireBullet::SetPropertyMaxAmmo" }, "parameters": [ - "Object.Behavior::PropertyReloadDuration()" + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyMaxAmmo" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyAmmoQuantity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "min(Object.Behavior::MaxAmmo(),Object.Behavior::AmmoQuantity())" ] } ] } ], - "expressionType": { - "type": "expression" - }, "parameters": [ { "description": "Object", @@ -25233,17 +25310,23 @@ "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" + }, + { + "description": "Max ammo", + "name": "Value", + "type": "expression" } ], "objectGroups": [] }, { - "description": "Overheat duration, in seconds.", - "fullName": "Overheat duration", - "functionType": "Expression", - "group": "Overheat", - "name": "OverheatDuration", - "sentence": "", + "description": "Change the max ammo.", + "fullName": "Set max ammo (deprecated)", + "functionType": "Action", + "group": "Ammo", + "name": "SetMaxAmmo", + "private": true, + "sentence": "Set the max ammo of _PARAM0_ to _PARAM2_", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -25251,18 +25334,19 @@ "actions": [ { "type": { - "value": "SetReturnNumber" + "value": "FireBullet::FireBullet::SetMaxAmmoOp" }, "parameters": [ - "Object.Behavior::PropertyOverheatDuration()" + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")", + "" ] } ] } ], - "expressionType": { - "type": "expression" - }, "parameters": [ { "description": "Object", @@ -25274,17 +25358,22 @@ "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" + }, + { + "description": "Max ammo", + "name": "Value", + "type": "expression" } ], "objectGroups": [] }, { - "description": "Heat increase per shot.", - "fullName": "Heat increase per shot", - "functionType": "Expression", - "group": "Overheat", - "name": "HeatIncreasePerShot", - "sentence": "", + "description": "Reset total shots fired.", + "fullName": "Reset total shots fired", + "functionType": "Action", + "group": "Stats", + "name": "ResetTotalShotsFired", + "sentence": "Reset total shots fired by _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -25292,18 +25381,18 @@ "actions": [ { "type": { - "value": "SetReturnNumber" + "value": "FireBullet::FireBullet::SetPropertyTotalShotsFired" }, "parameters": [ - "Object.Behavior::PropertyHeatIncreasePerShot()" + "Object", + "Behavior", + "=", + "0" ] } ] } ], - "expressionType": { - "type": "expression" - }, "parameters": [ { "description": "Object", @@ -25320,12 +25409,12 @@ "objectGroups": [] }, { - "description": "Linear cooling rate, per second.", - "fullName": "Linear cooling rate", - "functionType": "Expression", - "group": "Overheat", - "name": "LinearCoolingRate", - "sentence": "", + "description": "Reset total bullets created.", + "fullName": "Reset total bullets created", + "functionType": "Action", + "group": "Stats", + "name": "ResetTotalBulletsCreated", + "sentence": "Reset total bullets created by _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -25333,18 +25422,18 @@ "actions": [ { "type": { - "value": "SetReturnNumber" + "value": "FireBullet::FireBullet::SetPropertyTotalBulletsCreated" }, "parameters": [ - "Object.Behavior::PropertyLinearCoolingRate()" + "Object", + "Behavior", + "=", + "0" ] } ] } ], - "expressionType": { - "type": "expression" - }, "parameters": [ { "description": "Object", @@ -25361,12 +25450,12 @@ "objectGroups": [] }, { - "description": "Exponential cooling rate, per second.", - "fullName": "Exponential cooling rate", - "functionType": "Expression", - "group": "Overheat", - "name": "ExponentialCoolingRate", - "sentence": "", + "description": "Reset total reloads completed.", + "fullName": "Reset total reloads completed", + "functionType": "Action", + "group": "Stats", + "name": "ResetTotalReloadsCompleted", + "sentence": "Reset total reloads completed by _PARAM0_", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -25374,18 +25463,18 @@ "actions": [ { "type": { - "value": "SetReturnNumber" + "value": "FireBullet::FireBullet::SetPropertyTotalReloadsCompleted" }, "parameters": [ - "Object.Behavior::PropertyExponentialCoolingRate()" + "Object", + "Behavior", + "=", + "0" ] } ] } ], - "expressionType": { - "type": "expression" - }, "parameters": [ { "description": "Object", @@ -25402,12 +25491,12 @@ "objectGroups": [] }, { - "description": "Max ammo.", - "fullName": "Max ammo", - "functionType": "Expression", - "group": "Ammo", - "name": "MaxAmmo", - "sentence": "", + "description": "the number of shots per reload.", + "fullName": "Shots per reload", + "functionType": "ExpressionAndCondition", + "group": "Reload", + "name": "ShotsPerReload", + "sentence": "the shots per reload", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -25415,18 +25504,600 @@ "actions": [ { "type": { - "value": "SetReturnNumber" + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyShotsPerReload()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "ShotsPerReload", + "name": "SetShotsPerReloadOp", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyShotsPerReload" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyShotsBeforeNextReload" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "Object.Behavior::PropertyShotsPerReload()" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyShotsBeforeNextReload" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyShotsPerReload()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Shots per reload", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the number of shots per reload.", + "fullName": "Set shots per reload (deprecated)", + "functionType": "Action", + "group": "Reload", + "name": "SetShotsPerReload", + "private": true, + "sentence": "Set the shots per reload of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetShotsPerReloadOp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Shots per reload", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Enable (or disable) automatic reloading.", + "fullName": "Enable (or disable) automatic reloading", + "functionType": "Action", + "group": "Reload", + "name": "SetAutomaticReload", + "sentence": "Enable automatic reloading on _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyAutomaticReloading" + }, + "parameters": [ + "Object", + "Behavior", + "=" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Value\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyAutomaticReloading" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "defaultValue": "yes", + "description": "Enable automatic reloading", + "name": "Value", + "optional": true, + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "the linear cooling rate (per second).", + "fullName": "Linear cooling rate", + "functionType": "ExpressionAndCondition", + "group": "Overheat", + "name": "LinearCoolingRate", + "sentence": "the linear cooling rate", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyLinearCoolingRate()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "LinearCoolingRate", + "name": "SetLinearCoolingRateOp", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyLinearCoolingRate" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Heat cooling rate (per second)", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the linear rate of cooling.", + "fullName": "Set linear cooling rate (deprecated)", + "functionType": "Action", + "group": "Overheat", + "name": "SetLinearCoolingRate", + "private": true, + "sentence": "Set the linear cooling rate of _PARAM0_ to _PARAM2_ per second", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetLinearCoolingRateOp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Heat cooling rate (per second)", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "the exponential cooling rate, per second.", + "fullName": "Exponential cooling rate", + "functionType": "ExpressionAndCondition", + "group": "Overheat", + "name": "ExponentialCoolingRate", + "sentence": "the exponential cooling rate", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyExponentialCoolingRate()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "ExponentialCoolingRate", + "name": "SetExponentialCoolingRateOp", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyExponentialCoolingRate" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Exponential cooling rate", + "name": "Value", + "supplementaryInformation": "[\"Exponential\",\"Linear\"]", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the exponential rate of cooling.", + "fullName": "Set exponential cooling rate (deprecated)", + "functionType": "Action", + "group": "Overheat", + "name": "SetExponentialCoolingRate", + "private": true, + "sentence": "Set the exponential cooling rate of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetExponentialCoolingRateOp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Exponential cooling rate", + "name": "Value", + "supplementaryInformation": "[\"Exponential\",\"Linear\"]", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Increase ammo quantity.", + "fullName": "Increase ammo", + "functionType": "Action", + "name": "IncreaseAmmo", + "sentence": "Increase ammo of _PARAM0_ by _PARAM2_ shots", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyAmmoQuantity" + }, + "parameters": [ + "Object", + "Behavior", + "+", + "GetArgumentAsNumber(\"AmmoGained\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "If Max Ammo is set, do not exceed the value", + "comment2": "" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyMaxAmmo" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyAmmoQuantity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "min(Object.Behavior::MaxAmmo(),Object.Behavior::AmmoQuantity())" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::IsReloadNeeded" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + }, + { + "type": { + "value": "FireBullet::FireBullet::PropertyAutomaticReloading" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::ReloadAmmo" }, "parameters": [ - "Object.Behavior::PropertyMaxAmmo()" + "Object", + "Behavior", + "" ] } ] } ], - "expressionType": { - "type": "expression" - }, "parameters": [ { "description": "Object", @@ -25438,16 +26109,21 @@ "name": "Behavior", "supplementaryInformation": "FireBullet::FireBullet", "type": "behavior" + }, + { + "description": "Ammo gained", + "name": "AmmoGained", + "type": "expression" } ], "objectGroups": [] }, { - "description": "Total shots fired (multi-bullet shots are considered one shot).", - "fullName": "Shots fired", - "functionType": "Expression", - "group": "Stats", - "name": "TotalShotsFired", + "description": "Layer that bullets are created on.", + "fullName": "Bullet layer", + "functionType": "StringExpression", + "group": "Multi-Fire", + "name": "BulletLayer", "sentence": "", "events": [ { @@ -25456,17 +26132,17 @@ "actions": [ { "type": { - "value": "SetReturnNumber" + "value": "SetReturnString" }, "parameters": [ - "Object.Behavior::PropertyTotalShotsFired()" + "Object.Behavior::PropertyBulletLayer()" ] } ] } ], "expressionType": { - "type": "expression" + "type": "layer" }, "parameters": [ { @@ -25484,12 +26160,12 @@ "objectGroups": [] }, { - "description": "Total bullets created.", - "fullName": "Bullets created", - "functionType": "Expression", - "group": "Stats", - "name": "TotalBulletsCreated", - "sentence": "", + "description": "the heat level (range: 0 to 1).", + "fullName": "Heat level", + "functionType": "ExpressionAndCondition", + "group": "Overheat", + "name": "HeatLevel", + "sentence": "the heat level", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -25500,7 +26176,7 @@ "value": "SetReturnNumber" }, "parameters": [ - "Object.Behavior::PropertyTotalBulletsCreated()" + "min(1,Object.Behavior::PropertyHeatLevel())" ] } ] @@ -25525,11 +26201,11 @@ "objectGroups": [] }, { - "description": "Reloads completed.", - "fullName": "Reloads completed", + "description": "Total shots fired (multi-bullet shots are considered one shot).", + "fullName": "Shots fired", "functionType": "Expression", "group": "Stats", - "name": "TotalReloadsCompleted", + "name": "TotalShotsFired", "sentence": "", "events": [ { @@ -25541,7 +26217,7 @@ "value": "SetReturnNumber" }, "parameters": [ - "Object.Behavior::PropertyTotalReloadsCompleted()" + "Object.Behavior::PropertyTotalShotsFired()" ] } ] @@ -25566,11 +26242,11 @@ "objectGroups": [] }, { - "description": "Ammo quantity.", - "fullName": "Ammo quantity", + "description": "Total bullets created.", + "fullName": "Bullets created", "functionType": "Expression", - "group": "Ammo", - "name": "AmmoQuantity", + "group": "Stats", + "name": "TotalBulletsCreated", "sentence": "", "events": [ { @@ -25582,7 +26258,7 @@ "value": "SetReturnNumber" }, "parameters": [ - "Object.Behavior::PropertyAmmoQuantity()" + "Object.Behavior::PropertyTotalBulletsCreated()" ] } ] @@ -25607,11 +26283,11 @@ "objectGroups": [] }, { - "description": "Shots remaining before the next reload is required.", - "fullName": "Shots before next reload", + "description": "Reloads completed.", + "fullName": "Reloads completed", "functionType": "Expression", - "group": "Reload", - "name": "ShotsBeforeNextReload", + "group": "Stats", + "name": "TotalReloadsCompleted", "sentence": "", "events": [ { @@ -25623,7 +26299,7 @@ "value": "SetReturnNumber" }, "parameters": [ - "Object.Behavior::PropertyShotsBeforeNextReload()" + "Object.Behavior::PropertyTotalReloadsCompleted()" ] } ] @@ -25648,12 +26324,12 @@ "objectGroups": [] }, { - "description": "Shots per reload.", - "fullName": "Shots per reload", - "functionType": "Expression", + "description": "the remaining shots before the next reload is required.", + "fullName": "Shots before next reload", + "functionType": "ExpressionAndCondition", "group": "Reload", - "name": "ShotsPerReload", - "sentence": "", + "name": "ShotsBeforeNextReload", + "sentence": "the remaining shots (before the next reload)", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -25664,7 +26340,7 @@ "value": "SetReturnNumber" }, "parameters": [ - "Object.Behavior::PropertyShotsPerReload()" + "Object.Behavior::PropertyShotsBeforeNextReload()" ] } ] @@ -25689,12 +26365,12 @@ "objectGroups": [] }, { - "description": "Seconds remaining before the cooldown will permit a bullet to be fired.", - "fullName": "Time remaining before a bullet may be fired", - "functionType": "Expression", + "description": "the remaining duration before the cooldown will permit a bullet to be fired, in seconds.", + "fullName": "Duration before cooldown end", + "functionType": "ExpressionAndCondition", "group": "Firing", "name": "CooldownTimeLeft", - "sentence": "", + "sentence": "the remaining duration before the cooldown end", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -25730,12 +26406,12 @@ "objectGroups": [] }, { - "description": "Seconds remaining before the overheat penalty ends.", - "fullName": "Time remaining before overheat penalty ends", - "functionType": "Expression", + "description": "the remaining duration before the overheat penalty ends, in seconds.", + "fullName": "Duration before overheat end", + "functionType": "ExpressionAndCondition", "group": "Overheat", "name": "OverheatTimeLeft", - "sentence": "", + "sentence": "the remaining duration before the overheat end", "events": [ { "type": "BuiltinCommonInstructions::Standard", @@ -25867,60 +26543,49 @@ ] }, { - "colorB": 228, - "colorG": 176, - "colorR": 74, - "creationTime": 0, - "name": "Check if ready to shoot", - "source": "", - "type": "BuiltinCommonInstructions::Group", - "events": [ + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 + "type": { + "value": "BuiltinCommonInstructions::Or" }, - "comment": "Verify that the gun has ammo", - "comment2": "" - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ + "parameters": [], + "subInstructions": [ { "type": { - "inverted": true, - "value": "FireBullet::FireBullet::IsOutOfAmmo" + "value": "FireBullet::FireBullet::PropertyHasJustFired" }, "parameters": [ "Object", - "Behavior", - "" + "Behavior" ] - } - ], - "actions": [], - "events": [ - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Verify that the gun does not need to be reloaded and is not currently reloading", - "comment2": "" }, { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ + "type": { + "value": "BuiltinCommonInstructions::And" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "BehaviorActivated" + }, + "parameters": [ + "Object", + "Behavior" + ] + }, + { + "type": { + "inverted": true, + "value": "FireBullet::FireBullet::IsOutOfAmmo" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + }, { "type": { "inverted": true, @@ -25942,79 +26607,27 @@ "Behavior", "" ] - } - ], - "actions": [], - "events": [ + }, { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 + "type": { + "inverted": true, + "value": "FireBullet::FireBullet::IsFiringCooldownActive" }, - "comment": "Verify gun is not shooting sooner than the proper rate of fire", - "comment2": "" + "parameters": [ + "Object", + "Behavior", + "" + ] }, { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "inverted": true, - "value": "FireBullet::FireBullet::IsFiringCooldownActive" - }, - "parameters": [ - "Object", - "Behavior", - "" - ] - } - ], - "actions": [], - "events": [ - { - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Verify the gun is not overheated", - "comment2": "" - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "inverted": true, - "value": "FireBullet::FireBullet::IsOverheated" - }, - "parameters": [ - "Object", - "Behavior", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "SetReturnBoolean" - }, - "parameters": [ - "True" - ] - } - ] - } + "type": { + "inverted": true, + "value": "FireBullet::FireBullet::IsOverheated" + }, + "parameters": [ + "Object", + "Behavior", + "" ] } ] @@ -26022,7 +26635,16 @@ ] } ], - "parameters": [] + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] } ], "parameters": [ @@ -26477,9 +27099,10 @@ { "value": "0.1", "type": "Number", - "label": "Firing cooldown (seconds)", - "description": "Object cannot shoot while firing cooldown is active", - "group": "Shooting configuration", + "unit": "Second", + "label": "Firing cooldown", + "description": "Objects cannot shoot while firing cooldown is active", + "group": "", "extraInformation": [], "hidden": false, "name": "FireCooldown" @@ -26497,8 +27120,9 @@ { "value": "45", "type": "Number", - "label": "Firing arc (degrees)", - "description": "Multi-Fire bullets will be evenly spaced inside the Firing Arc", + "unit": "DegreeAngle", + "label": "Firing arc", + "description": "Multi-Fire bullets will be evenly spaced inside the firing arc", "group": "Multi-Fire", "extraInformation": [], "hidden": false, @@ -26508,7 +27132,7 @@ "value": "1", "type": "Number", "label": "Number of bullets created at once (Multi-Fire)", - "description": "Multi-Fire bullets will be evenly spaced inside the Firing Arc", + "description": "Multi-Fire bullets will be evenly spaced inside the firing arc", "group": "Multi-Fire", "extraInformation": [], "hidden": false, @@ -26517,9 +27141,10 @@ { "value": "0", "type": "Number", - "label": "Angle variance (degrees)", - "description": "Used to simulate imperfect aim (Range: 0 to 180 degrees)", - "group": "Shooting configuration", + "unit": "DegreeAngle", + "label": "Angle variance", + "description": "Make imperfect aim (Range: 0 to 180 degrees)", + "group": "Firing variance", "extraInformation": [], "hidden": false, "name": "AngleVariance" @@ -26527,9 +27152,9 @@ { "value": "true", "type": "Boolean", - "label": "Rotate bullet to match trajectory", + "label": "Rotate bullets to match their trajectory", "description": "", - "group": "Shooting configuration", + "group": "", "extraInformation": [], "hidden": false, "name": "RotateBullet" @@ -26557,8 +27182,9 @@ { "value": "1", "type": "Number", - "label": "Reloading duration (seconds)", - "description": "Object cannot shoot while reloading is in progress", + "unit": "Second", + "label": "Reloading duration", + "description": "Objects cannot shoot while reloading is in progress", "group": "Reload", "extraInformation": [], "hidden": false, @@ -26568,7 +27194,7 @@ "value": "0", "type": "Number", "label": "Max ammo ", - "description": "Use \"0\" to disable restrictions on ammo capacity", + "description": "", "group": "Ammo", "extraInformation": [], "hidden": false, @@ -26677,7 +27303,8 @@ { "value": "0", "type": "Number", - "label": "Overheat duration (seconds) ", + "unit": "Second", + "label": "Overheat duration", "description": "Object cannot shoot while overheat duration is active", "group": "Overheat", "extraInformation": [], @@ -26698,7 +27325,7 @@ "value": "0.3", "type": "Number", "label": "Exponential cooling rate (per second)", - "description": "Exponential cooling happens faster when heat is high and slower when heat is low", + "description": "Happens faster when heat is high and slower when heat is low", "group": "Overheat", "extraInformation": [ "Linear", @@ -26711,7 +27338,7 @@ "value": "", "type": "String", "label": "Layer the bullets are created on", - "description": "By default, bullets will be created on the base layer.", + "description": "Base layer by default", "group": "Shooting configuration", "extraInformation": [], "hidden": true, @@ -26730,9 +27357,10 @@ { "value": "0", "type": "Number", - "label": "Bullet speed variance (pixels/second)", - "description": "Bullet speed will be adjusted by a random value within this range (pixels/second)", - "group": "Multi-Fire", + "unit": "PixelSpeed", + "label": "Bullet speed variance", + "description": "Bullet speed will be adjusted by a random value within this range", + "group": "Firing variance", "extraInformation": [], "hidden": false, "name": "BulletSpeedVariance"