From 34e795afafd2ce65df44f6cd277b448690e575c3 Mon Sep 17 00:00:00 2001 From: cha0s Date: Sat, 20 Jun 2020 01:36:41 -0500 Subject: [PATCH] chore: fixtures --- fixtures/mama-kitty.entity.json | 614 +++++++++++++++++++++++++++ fixtures/rock-projectile.entity.json | 551 ++++++++++++++++++++++++ fixtures/watering-can.entity.json | 134 ++++++ fixtures/yarn-ball.entity.json | 1 + 4 files changed, 1300 insertions(+) create mode 100644 fixtures/mama-kitty.entity.json create mode 100644 fixtures/rock-projectile.entity.json create mode 100644 fixtures/watering-can.entity.json create mode 100644 fixtures/yarn-ball.entity.json diff --git a/fixtures/mama-kitty.entity.json b/fixtures/mama-kitty.entity.json new file mode 100644 index 0000000..58d6630 --- /dev/null +++ b/fixtures/mama-kitty.entity.json @@ -0,0 +1,614 @@ +{ + "traits": { + "alive": { + "params": { + "deathActions": { + "type": "actions", + "traversals": [ + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "entity" + }, + { + "type": "key", + "key": "playSound" + }, + { + "type": "invoke", + "args": [ + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "entity" + }, + { + "type": "key", + "key": "deathSound" + } + ] + } + ] + } + ] + }, + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "entity" + }, + { + "type": "key", + "key": "killAllChildren" + }, + { + "type": "invoke", + "args": [] + } + ] + }, + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "entity" + }, + { + "type": "key", + "key": "transition" + }, + { + "type": "invoke", + "args": [ + { + "type": "literal", + "value": { + "opacity": 0, + "visibleScaleX": 0.3, + "visibleScaleY": 3 + } + }, + { + "type": "literal", + "value": 0.2 + } + ] + } + ] + } + ] + } + }, + "state": { + "life": 500, + "maxLife": 500 + } + }, + "animated": { + "params": { + "animations": { + "idle": { + "offset": [ + 0, + -8 + ], + "uri": "/kitty.animation.json" + } + } + } + }, + "audible": { + "params": { + "sounds": { + "deathSound": { + "uri": "/ded.sound.json" + } + } + } + }, + "behaved": { + "params": { + "routines": { + "type": "routines", + "routines": { + "initial": { + "type": "routine", + "routine": { + "type": "actions", + "traversals": [ + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "entity" + }, + { + "type": "key", + "key": "direction" + } + ], + "value": { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "Math" + }, + { + "type": "key", + "key": "floor" + }, + { + "type": "invoke", + "args": [ + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "Math" + }, + { + "type": "key", + "key": "randomNumber" + }, + { + "type": "invoke", + "args": [ + { + "type": "literal", + "value": 0 + }, + { + "type": "literal", + "value": 4 + } + ] + } + ] + } + ] + } + ] + } + }, + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "entity" + }, + { + "type": "key", + "key": "moveFor" + }, + { + "type": "invoke", + "args": [ + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "Math" + }, + { + "type": "key", + "key": "Vector" + }, + { + "type": "key", + "key": "fromDirection" + }, + { + "type": "invoke", + "args": [ + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "entity" + }, + { + "type": "key", + "key": "direction" + } + ] + } + ] + } + ] + }, + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "Math" + }, + { + "type": "key", + "key": "randomNumber" + }, + { + "type": "invoke", + "args": [ + { + "type": "literal", + "value": 0.25 + }, + { + "type": "literal", + "value": 2.5 + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "entity" + }, + { + "type": "key", + "key": "isAnimating" + } + ], + "value": { + "type": "literal", + "value": false + } + }, + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "Timing" + }, + { + "type": "key", + "key": "wait" + }, + { + "type": "invoke", + "args": [ + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "Math" + }, + { + "type": "key", + "key": "randomNumber" + }, + { + "type": "invoke", + "args": [ + { + "type": "literal", + "value": 1 + }, + { + "type": "literal", + "value": 4 + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "entity" + }, + { + "type": "key", + "key": "direction" + } + ], + "value": { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "Math" + }, + { + "type": "key", + "key": "floor" + }, + { + "type": "invoke", + "args": [ + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "Math" + }, + { + "type": "key", + "key": "randomNumber" + }, + { + "type": "invoke", + "args": [ + { + "type": "literal", + "value": 0 + }, + { + "type": "literal", + "value": 4 + } + ] + } + ] + } + ] + } + ] + } + }, + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "Timing" + }, + { + "type": "key", + "key": "wait" + }, + { + "type": "invoke", + "args": [ + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "Math" + }, + { + "type": "key", + "key": "randomNumber" + }, + { + "type": "invoke", + "args": [ + { + "type": "literal", + "value": 0.5 + }, + { + "type": "literal", + "value": 3 + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "entity" + }, + { + "type": "key", + "key": "isAnimating" + } + ], + "value": { + "type": "literal", + "value": true + } + }, + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "entity" + }, + { + "type": "key", + "key": "spawnAt" + }, + { + "type": "invoke", + "args": [ + { + "type": "literal", + "value": "kitteh" + }, + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "Utility" + }, + { + "type": "key", + "key": "makeArray" + }, + { + "type": "invoke", + "args": [ + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "entity" + }, + { + "type": "key", + "key": "x" + } + ] + }, + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "entity" + }, + { + "type": "key", + "key": "y" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + } + } + } + } + }, + "collider": { + "params": { + "collidesWithGroups": [ + "default", + "environmental", + "projectile" + ] + } + }, + "directional": { + "params": { + "directionCount": 4 + }, + "state": { + "direction": 2 + } + }, + "emitter": {}, + "existent": { + "state": { + "name": "Mama Kitty" + } + }, + "layered": {}, + "listed": {}, + "lootable": { + "params": { + "table": [ + { + "perc": 70, + "json": { + "uri": "/yarn-ball.entity.json" + } + }, + { + "perc": 80, + "json": { + "uri": "/yarn-ball.entity.json" + } + }, + { + "perc": 90, + "json": { + "uri": "/yarn-ball.entity.json" + } + } + ] + } + }, + "mobile": { + "state": { + "speed": 40 + } + }, + "physical": {}, + "positioned": {}, + "roomed": {}, + "shaped": { + "params": { + "shape": { + "type": "rectangle", + "position": [ + 0, + 0 + ], + "size": [ + 16, + 8 + ] + } + } + }, + "visible": { + "state": { + "visibleScale": [ + 2, + 2 + ] + } + }, + "vulnerable": { + "params": { + "types": [ + "bio" + ] + } + }, + "spawner": { + "params": { + "spawns": { + "kitteh": { + "uri": "/kitty.entity.json" + } + } + }, + "state": { + "maxSpawns": 10 + } + } + } +} \ No newline at end of file diff --git a/fixtures/rock-projectile.entity.json b/fixtures/rock-projectile.entity.json new file mode 100644 index 0000000..fe97cc0 --- /dev/null +++ b/fixtures/rock-projectile.entity.json @@ -0,0 +1,551 @@ +{ + "traits": { + "behaved": { + "params": { + "contextTypeHints": { + "wielder": "entity" + }, + "routines": { + "type": "routines", + "routines": { + "initial": { + "type": "routine", + "routine": { + "type": "actions", + "traversals": [ + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "entity" + }, + { + "type": "key", + "key": "setDoesNotCollideWith" + }, + { + "type": "invoke", + "args": [ + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "wielder" + } + ] + } + ] + } + ] + }, + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "entity" + }, + { + "type": "key", + "key": "setPosition" + }, + { + "type": "invoke", + "args": [ + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "wielder" + }, + { + "type": "key", + "key": "position" + } + ] + } + ] + } + ] + }, + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "entity" + }, + { + "type": "key", + "key": "isVisible" + } + ], + "value": { + "type": "literal", + "value": true + } + }, + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "entity" + }, + { + "type": "key", + "key": "direction" + } + ], + "value": { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "wielder" + }, + { + "type": "key", + "key": "direction" + } + ] + } + }, + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "entity" + }, + { + "type": "key", + "key": "moveFor" + }, + { + "type": "invoke", + "args": [ + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "Math" + }, + { + "type": "key", + "key": "Vector" + }, + { + "type": "key", + "key": "fromDirection" + }, + { + "type": "invoke", + "args": [ + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "entity" + }, + { + "type": "key", + "key": "direction" + } + ] + } + ] + } + ] + }, + { + "type": "literal", + "value": 0.5 + } + ] + } + ] + }, + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "entity" + }, + { + "type": "key", + "key": "destroy" + }, + { + "type": "invoke", + "args": [] + } + ] + } + ] + } + }, + "reflect": { + "type": "routine", + "routine": { + "type": "actions", + "traversals": [ + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "entity" + }, + { + "type": "key", + "key": "isColliding" + } + ], + "value": { + "type": "literal", + "value": false + } + }, + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "entity" + }, + { + "type": "key", + "key": "isHarmful" + } + ], + "value": { + "type": "literal", + "value": false + } + }, + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "Flow" + }, + { + "type": "key", + "key": "parallel" + }, + { + "type": "invoke", + "args": [ + { + "type": "actions", + "traversals": [ + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "entity" + }, + { + "type": "key", + "key": "transition" + }, + { + "type": "invoke", + "args": [ + { + "type": "literal", + "value": { + "opacity": 0, + "speed": 0 + } + }, + { + "type": "literal", + "value": 0.2 + } + ] + } + ] + }, + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "entity" + }, + { + "type": "key", + "key": "moveFor" + }, + { + "type": "invoke", + "args": [ + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "Math" + }, + { + "type": "key", + "key": "Vector" + }, + { + "type": "key", + "key": "sub" + }, + { + "type": "invoke", + "args": [ + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "entity" + }, + { + "type": "key", + "key": "position" + } + ] + }, + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "other" + }, + { + "type": "key", + "key": "position" + } + ] + } + ] + } + ] + }, + { + "type": "literal", + "value": 0.2 + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "entity" + }, + { + "type": "key", + "key": "destroy" + }, + { + "type": "invoke", + "args": [] + } + ] + } + ] + } + } + } + } + }, + "state": { + "isBehaving": false + } + }, + "collider": { + "params": { + "collisionGroup": "projectile", + "collisionStartActions": { + "type": "actions", + "traversals": [ + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "entity" + }, + { + "type": "key", + "key": "context" + }, + { + "type": "key", + "key": "add" + }, + { + "type": "invoke", + "args": [ + { + "type": "literal", + "value": "other" + }, + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "other" + } + ] + } + ] + } + ] + }, + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "entity" + }, + { + "type": "key", + "key": "currentRoutine" + } + ], + "value": { + "type": "literal", + "value": "reflect" + } + } + ] + }, + "isSensor": true + } + }, + "directional": { + "params": { + "directionCount": 4 + } + }, + "emitter": { + "params": { + "particles": { + "harmful": { + "rate": 0.0125, + "count": 5, + "traits": { + "primitive": { + "params": { + "primitives": [ + { + "type": "circle", + "radius": 0.5, + "line": { + "rgba": [ + 128, + 128, + 128 + ] + }, + "fill": { + "rgba": [ + 128, + 128, + 128 + ] + } + } + ] + } + } + } + } + } + } + }, + "existent": { + "state": { + "name": "Rock (projectile)" + } + }, + "harmful": { + "params": { + "harmKnockback": 100, + "harmSpecs": [ + { + "type": "blunt", + "power": 50, + "variance": 0.1 + } + ] + } + }, + "layered": {}, + "listed": {}, + "mobile": { + "state": { + "speed": 200 + } + }, + "physical": {}, + "pictured": { + "params": { + "images": { + "initial": { + "offset": [ + 0, + 0 + ], + "size": [ + 12, + 12 + ], + "uri": "/rock.png" + } + } + } + }, + "positioned": {}, + "roomed": {}, + "shaped": { + "params": { + "shape": { + "type": "rectangle", + "position": [ + 0, + 0 + ], + "size": [ + 12, + 12 + ] + } + } + }, + "visible": { + "state": { + "isVisible": false + } + } + } +} \ No newline at end of file diff --git a/fixtures/watering-can.entity.json b/fixtures/watering-can.entity.json new file mode 100644 index 0000000..4903f7a --- /dev/null +++ b/fixtures/watering-can.entity.json @@ -0,0 +1,134 @@ +{ + "traits": { + "behaved": { + "params": { + "contextTypeHints": { + "item": "entity", + "target": "vector", + "wielder": "entity" + } + } + }, + "existent": {}, + "item": { + "params": { + "itemActions": { + "type": "actions", + "traversals": [ + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "item" + }, + { + "type": "key", + "key": "useTool" + }, + { + "type": "invoke", + "args": [] + } + ] + } + ] + }, + "slotImageUris": { + "default": "/watering-can.png" + } + } + }, + "tool": { + "params": { + "condition": { + "type": "condition", + "operator": "is", + "operands": [ + { + "type": "literal", + "value": 6 + }, + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "wielder" + }, + { + "type": "key", + "key": "layer" + }, + { + "type": "key", + "key": "tileAt" + }, + { + "type": "invoke", + "args": [ + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "target" + } + ] + } + ] + } + ] + } + ] + }, + "actions": { + "type": "actions", + "traversals": [ + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "wielder" + }, + { + "type": "key", + "key": "layer" + }, + { + "type": "key", + "key": "setTileAt" + }, + { + "type": "invoke", + "args": [ + { + "type": "traversal", + "steps": [ + { + "type": "key", + "key": "target" + } + ] + }, + { + "type": "literal", + "value": 7 + } + ] + } + ] + } + ] + }, + "target": { + "type": "projection", + "distance": 1, + "length": 1, + "width": 1 + } + } + } + } +} \ No newline at end of file diff --git a/fixtures/yarn-ball.entity.json b/fixtures/yarn-ball.entity.json new file mode 100644 index 0000000..5f95d35 --- /dev/null +++ b/fixtures/yarn-ball.entity.json @@ -0,0 +1 @@ +{"traits":{"collider":{"params":{"isSensor":true}},"existent":{"state":{"name":"Yarn Ball"}},"item":{"params":{"slotImageUris":{"default":"/yarn-ball.png"}}},"layered":{},"listed":{},"magnetic":{},"mobile":{},"pictured":{"params":{"images":{"initial":{"offset":[0,0],"size":[8,8],"uri":"/yarn-ball.png"}}}},"positioned":{},"roomed":{},"shaped":{"params":{"shape":{"type":"rectangle","position":[0,0],"size":[16,16]}}},"visible":{}}} \ No newline at end of file