diff --git a/dist/shattered_sword_assets/jsons/forest_template.json b/dist/shattered_sword_assets/jsons/forest_template.json index df0bffc..cdbf870 100644 --- a/dist/shattered_sword_assets/jsons/forest_template.json +++ b/dist/shattered_sword_assets/jsons/forest_template.json @@ -28,12 +28,18 @@ "type": "player", "x": 5, "y": 19 - }, + }, { "type": "test_dummy", "x": 7, "y": 19, "possibility": 1 + }, + { + "type": "snake", + "x": 1, + "y": 10, + "possibility": 1 } ] }, @@ -71,6 +77,44 @@ "width": 3, "alt_tile": [477, 479] } + ], + "sprites": [ + { + "type": "test_dummy", + "x": 1, + "y": 10, + "possibility": 1 + }, + { + "type": "snake", + "x": 12, + "y": 12, + "possibility": 1 + }, + { + "type": "snake", + "x": 18, + "y": 15, + "possibility": 1 + }, + { + "type": "snake", + "x": 14, + "y": 16, + "possibility": 1 + }, + { + "type": "snake", + "x": 24, + "y": 17, + "possibility": 1 + }, + { + "type": "snake", + "x": 6, + "y": 17, + "possibility": 1 + } ] }, { @@ -92,6 +136,56 @@ "width": 3, "alt_tile": [477, 479] } + ], + "sprites": [ + { + "type": "test_dummy", + "x": 1, + "y": 10, + "possibility": 1 + }, + { + "type": "snake", + "x": 5, + "y": 15, + "possibility": 1 + }, + { + "type": "snake", + "x": 14, + "y": 10, + "possibility": 1 + }, + { + "type": "snake", + "x": 11, + "y": 13, + "possibility": 1 + }, + { + "type": "snake", + "x": 18, + "y": 12, + "possibility": 1 + }, + { + "type": "snake", + "x": 23, + "y": 15, + "possibility": 1 + }, + { + "type": "snake", + "x": 16, + "y": 17, + "possibility": 1 + }, + { + "type": "snake", + "x": 27, + "y": 18, + "possibility": 1 + } ] }, { @@ -114,8 +208,44 @@ "alt_tile": [477, 479] } ], - "sprites":[ - + "sprites": [ + { + "type": "test_dummy", + "x": 1, + "y": 10, + "possibility": 1 + }, + { + "type": "snake", + "x": 5, + "y": 14, + "possibility": 1 + }, + { + "type": "snake", + "x": 11, + "y": 12, + "possibility": 1 + }, + { + "type": "snake", + "x": 12, + "y": 9, + "possibility": 1 + }, + { + "type": "snake", + "x": 15, + "y": 15, + "possibility": 1 + }, + { + "type": "snake", + "x": 25, + "y": 14, + "possibility": 1 + } + ] }, { @@ -137,6 +267,44 @@ "width": 3, "alt_tile": [477, 479] } + ], + "sprites": [ + { + "type": "test_dummy", + "x": 1, + "y": 10, + "possibility": 1 + }, + { + "type": "snake", + "x": 9, + "y": 10, + "possibility": 1 + }, + { + "type": "test_dummy", + "x": 9, + "y": 5, + "possibility": 1 + }, + { + "type": "test_dummy", + "x": 15, + "y": 18, + "possibility": 1 + }, + { + "type": "test_dummy", + "x": 23, + "y": 16, + "possibility": 1 + }, + { + "type": "test_dummy", + "x": 27, + "y": 14, + "possibility": 1 + } ] }, { @@ -158,6 +326,44 @@ "width": 3, "alt_tile": [477, 479] } + ], + "sprites": [ + { + "type": "test_dummy", + "x": 1, + "y": 10, + "possibility": 1 + }, + { + "type": "snake", + "x": 7, + "y": 13, + "possibility": 1 + }, + { + "type": "snake", + "x": 13, + "y": 12, + "possibility": 1 + }, + { + "type": "snake", + "x": 18, + "y": 14, + "possibility": 1 + }, + { + "type": "snake", + "x": 13, + "y": 16, + "possibility": 1 + }, + { + "type": "snake", + "x": 23, + "y": 13, + "possibility": 1 + } ] } ], diff --git a/dist/shattered_sword_assets/spritesheets/Snake.json b/dist/shattered_sword_assets/spritesheets/Snake.json index 267a5d6..d43e9d6 100644 --- a/dist/shattered_sword_assets/spritesheets/Snake.json +++ b/dist/shattered_sword_assets/spritesheets/Snake.json @@ -1,8 +1,8 @@ { "name" : "Snake", "spriteSheetImage": "Snake.png", - "spriteWidth": 160, - "spriteHeight": 128, + "spriteWidth": 32, + "spriteHeight": 32, "columns": 5, "rows": 4, "durationType": "time", @@ -53,6 +53,32 @@ } ] }, + { + "name": "walk", + "repeat": true, + "frames": [ + { + "index": 0, + "duration": 150 + }, + { + "index": 1, + "duration": 150 + }, + { + "index": 2, + "duration": 150 + }, + { + "index": 3, + "duration": 100 + }, + { + "index": 4, + "duration": 100 + } + ] + }, { "name": "ATTACK", "repeat": true, @@ -130,6 +156,44 @@ } ] }, + { + "name": "HURT", + "repeat": false, + "frames": [ + { + "index": 0, + "duration": 150 + }, + { + "index": 12, + "duration": 100 + }, + { + "index": 13, + "duration": 100 + }, + { + "index": 14, + "duration": 100 + }, + { + "index": 15, + "duration": 150 + }, + { + "index": 16, + "duration": 150 + }, + { + "index": 17, + "duration": 150 + }, + { + "index": 18, + "duration": 150 + } + ] + }, { "name": "DEAD", "repeat": true, diff --git a/dist/shattered_sword_assets/spritesheets/Tiger.json b/dist/shattered_sword_assets/spritesheets/Tiger.json index dc6d3fc..b40a6a1 100644 --- a/dist/shattered_sword_assets/spritesheets/Tiger.json +++ b/dist/shattered_sword_assets/spritesheets/Tiger.json @@ -1,8 +1,8 @@ { "name" : "Tiger", "spriteSheetImage": "Tiger.png", - "spriteWidth": 192, - "spriteHeight": 192, + "spriteWidth": 64, + "spriteHeight": 64, "columns": 3, "rows": 3, "durationType": "time", @@ -18,6 +18,28 @@ ] }, + { + "name": "WALK", + "repeat": true, + "frames": [ + { + "index": 1, + "duration": 150 + }, + { + "index": 2, + "duration": 150 + }, + { + "index": 3, + "duration": 150 + }, + { + "index": 4, + "duration": 150 + } + ] + }, { "name": "WALK_RIGHT", "repeat": true, diff --git a/dist/shattered_sword_assets/spritesheets/black_pudding.json b/dist/shattered_sword_assets/spritesheets/black_pudding.json new file mode 100644 index 0000000..8eb5846 --- /dev/null +++ b/dist/shattered_sword_assets/spritesheets/black_pudding.json @@ -0,0 +1,654 @@ +{ + "name": "Black Pudding", + "spriteSheetImage": "black_pudding.png", + "spriteWidth": 128, + "spriteHeight": 128, + "columns": 30, + "rows": 10, + "leftBuffer": 0, + "rightBuffer": 0, + "topBuffer": 0, + "bottomBuffer": 0, + "animations": [ + { + "name": "Idle", + "repeat": true, + "frames": [ + { + "index": 0, + "duration": 4 + }, + { + "index": 1, + "duration": 4 + }, + { + "index": 2, + "duration": 4 + }, + { + "index": 3, + "duration": 4 + }, + { + "index": 4, + "duration": 4 + }, + { + "index": 5, + "duration": 4 + }, + { + "index": 6, + "duration": 4 + }, + { + "index": 7, + "duration": 4 + }, + { + "index": 8, + "duration": 4 + }, + { + "index": 9, + "duration": 4 + }, + { + "index": 10, + "duration": 4 + }, + { + "index": 11, + "duration": 4 + } + ] + }, + { + "name": "Moving Left", + "repeat": true, + "frames": [ + { + "index": 30, + "duration": 4 + }, + { + "index": 31, + "duration": 4 + }, + { + "index": 32, + "duration": 4 + }, + { + "index": 33, + "duration": 4 + }, + { + "index": 34, + "duration": 4 + }, + { + "index": 35, + "duration": 4 + }, + { + "index": 36, + "duration": 4 + }, + { + "index": 37, + "duration": 4 + }, + { + "index": 38, + "duration": 4 + }, + { + "index": 39, + "duration": 4 + } + ] + }, + { + "name": "Moving Right", + "repeat": true, + "frames": [ + { + "index": 60, + "duration": 4 + }, + { + "index": 61, + "duration": 4 + }, + { + "index": 62, + "duration": 4 + }, + { + "index": 63, + "duration": 4 + }, + { + "index": 64, + "duration": 4 + }, + { + "index": 65, + "duration": 4 + }, + { + "index": 66, + "duration": 4 + }, + { + "index": 67, + "duration": 4 + }, + { + "index": 68, + "duration": 4 + }, + { + "index": 69, + "duration": 4 + } + ] + }, + { + "name": "Attack Left", + "repeat": true, + "frames": [ + { + "index": 90, + "duration": 4 + }, + { + "index": 91, + "duration": 4 + }, + { + "index": 92, + "duration": 4 + }, + { + "index": 93, + "duration": 4 + }, + { + "index": 94, + "duration": 4 + }, + { + "index": 95, + "duration": 4 + }, + { + "index": 96, + "duration": 4 + }, + { + "index": 97, + "duration": 4 + }, + { + "index": 98, + "duration": 4 + }, + { + "index": 99, + "duration": 4 + }, + { + "index": 100, + "duration": 4 + }, + { + "index": 101, + "duration": 4 + }, + { + "index": 102, + "duration": 4 + }, + { + "index": 103, + "duration": 4 + }, + { + "index": 104, + "duration": 4 + }, + { + "index": 105, + "duration": 4 + }, + { + "index": 106, + "duration": 4 + }, + { + "index": 107, + "duration": 4 + }, + { + "index": 108, + "duration": 4 + }, + { + "index": 109, + "duration": 4 + }, + { + "index": 110, + "duration": 4 + }, + { + "index": 111, + "duration": 4 + }, + { + "index": 112, + "duration": 4 + }, + { + "index": 113, + "duration": 4 + }, + { + "index": 114, + "duration": 4 + }, + { + "index": 115, + "duration": 4 + }, + { + "index": 116, + "duration": 4 + }, + { + "index": 117, + "duration": 4 + }, + { + "index": 118, + "duration": 4 + }, + { + "index": 119, + "duration": 4 + } + ] + }, + { + "name": "Attack Right", + "repeat": true, + "frames": [ + { + "index": 120, + "duration": 4 + }, + { + "index": 121, + "duration": 4 + }, + { + "index": 122, + "duration": 4 + }, + { + "index": 123, + "duration": 4 + }, + { + "index": 124, + "duration": 4 + }, + { + "index": 125, + "duration": 4 + }, + { + "index": 126, + "duration": 4 + }, + { + "index": 127, + "duration": 4 + }, + { + "index": 128, + "duration": 4 + }, + { + "index": 129, + "duration": 4 + }, + { + "index": 130, + "duration": 4 + }, + { + "index": 131, + "duration": 4 + }, + { + "index": 132, + "duration": 4 + }, + { + "index": 133, + "duration": 4 + }, + { + "index": 134, + "duration": 4 + }, + { + "index": 135, + "duration": 4 + }, + { + "index": 136, + "duration": 4 + }, + { + "index": 137, + "duration": 4 + }, + { + "index": 138, + "duration": 4 + }, + { + "index": 139, + "duration": 4 + }, + { + "index": 140, + "duration": 4 + }, + { + "index": 141, + "duration": 4 + }, + { + "index": 142, + "duration": 4 + }, + { + "index": 143, + "duration": 4 + }, + { + "index": 144, + "duration": 4 + }, + { + "index": 145, + "duration": 4 + }, + { + "index": 146, + "duration": 4 + }, + { + "index": 147, + "duration": 4 + }, + { + "index": 148, + "duration": 4 + }, + { + "index": 149, + "duration": 4 + } + ] + }, + { + "name": "Damaged Left", + "repeat": true, + "frames": [ + { + "index": 150, + "duration": 4 + }, + { + "index": 151, + "duration": 4 + }, + { + "index": 152, + "duration": 4 + }, + { + "index": 153, + "duration": 4 + }, + { + "index": 154, + "duration": 4 + }, + { + "index": 155, + "duration": 4 + }, + { + "index": 156, + "duration": 4 + }, + { + "index": 157, + "duration": 4 + }, + { + "index": 158, + "duration": 4 + }, + { + "index": 159, + "duration": 4 + }, + { + "index": 160, + "duration": 4 + }, + { + "index": 161, + "duration": 4 + }, + { + "index": 162, + "duration": 4 + }, + { + "index": 163, + "duration": 4 + }, + { + "index": 164, + "duration": 4 + } + ] + }, + { + "name": "Damaged Right", + "repeat": true, + "frames": [ + { + "index": 180, + "duration": 4 + }, + { + "index": 181, + "duration": 4 + }, + { + "index": 182, + "duration": 4 + }, + { + "index": 183, + "duration": 4 + }, + { + "index": 184, + "duration": 4 + }, + { + "index": 185, + "duration": 4 + }, + { + "index": 186, + "duration": 4 + }, + { + "index": 187, + "duration": 4 + }, + { + "index": 188, + "duration": 4 + }, + { + "index": 189, + "duration": 4 + }, + { + "index": 190, + "duration": 4 + }, + { + "index": 191, + "duration": 4 + }, + { + "index": 192, + "duration": 4 + }, + { + "index": 193, + "duration": 4 + }, + { + "index": 194, + "duration": 4 + } + ] + }, + { + "name": "Dying", + "repeat": false, + "frames": [ + { + "index": 210, + "duration": 4 + }, + { + "index": 211, + "duration": 4 + }, + { + "index": 212, + "duration": 4 + }, + { + "index": 213, + "duration": 4 + }, + { + "index": 214, + "duration": 4 + }, + { + "index": 215, + "duration": 4 + }, + { + "index": 216, + "duration": 4 + }, + { + "index": 217, + "duration": 4 + }, + { + "index": 218, + "duration": 4 + }, + { + "index": 219, + "duration": 4 + } + ] + }, + { + "name": "Dead", + "repeat": false, + "frames": [ + { + "index": 240, + "duration": 100 + } + ] + }, + { + "name": "Dancing", + "repeat": true, + "frames": [ + { + "index": 270, + "duration": 4 + }, + { + "index": 271, + "duration": 4 + }, + { + "index": 272, + "duration": 4 + }, + { + "index": 273, + "duration": 4 + }, + { + "index": 272, + "duration": 4 + }, + { + "index": 271, + "duration": 4 + }, + { + "index": 270, + "duration": 4 + }, + { + "index": 274, + "duration": 4 + }, + { + "index": 275, + "duration": 4 + }, + { + "index": 276, + "duration": 4 + }, + { + "index": 275, + "duration": 4 + }, + { + "index": 274, + "duration": 4 + } + ] + } + ] +} \ No newline at end of file diff --git a/dist/shattered_sword_assets/spritesheets/black_pudding.png b/dist/shattered_sword_assets/spritesheets/black_pudding.png new file mode 100644 index 0000000..2475c29 Binary files /dev/null and b/dist/shattered_sword_assets/spritesheets/black_pudding.png differ diff --git a/dist/shattered_sword_assets/spritesheets/carrion_crawler.json b/dist/shattered_sword_assets/spritesheets/carrion_crawler.json new file mode 100644 index 0000000..970b069 --- /dev/null +++ b/dist/shattered_sword_assets/spritesheets/carrion_crawler.json @@ -0,0 +1,482 @@ +{ + "name": "Carrion Crawler", + "spriteSheetImage": "carrion_crawler.png", + "spriteWidth": 128, + "spriteHeight": 32, + "columns": 20, + "rows": 10, + "leftBuffer": 0, + "rightBuffer": 0, + "topBuffer": 0, + "bottomBuffer": 0, + "animations": [ + { + "name": "WALK LEFT", + "repeat": true, + "frames": [ + { + "index": 0, + "duration": 5 + }, + { + "index": 1, + "duration": 5 + }, + { + "index": 2, + "duration": 5 + }, + { + "index": 3, + "duration": 5 + }, + { + "index": 4, + "duration": 5 + }, + { + "index": 5, + "duration": 5 + }, + { + "index": 6, + "duration": 5 + }, + { + "index": 7, + "duration": 5 + }, + { + "index": 8, + "duration": 5 + }, + { + "index": 9, + "duration": 5 + }, + { + "index": 10, + "duration": 5 + }, + { + "index": 11, + "duration": 5 + }, + { + "index": 12, + "duration": 5 + }, + { + "index": 13, + "duration": 5 + } + ] + }, + { + "name": "WALK RIGHT", + "repeat": true, + "frames": [ + { + "index": 33, + "duration": 5 + }, + { + "index": 32, + "duration": 5 + }, + { + "index": 31, + "duration": 5 + }, + { + "index": 30, + "duration": 5 + }, + { + "index": 29, + "duration": 5 + }, + { + "index": 28, + "duration": 5 + }, + { + "index": 27, + "duration": 5 + }, + { + "index": 26, + "duration": 5 + }, + { + "index": 25, + "duration": 5 + }, + { + "index": 24, + "duration": 5 + }, + { + "index": 23, + "duration": 5 + }, + { + "index": 22, + "duration": 5 + }, + { + "index": 21, + "duration": 5 + }, + { + "index": 20, + "duration": 5 + } + ] + }, + { + "name": "ATTACK LEFT", + "repeat": true, + "frames": [ + { + "index": 40, + "duration": 5 + }, + { + "index": 41, + "duration": 5 + }, + { + "index": 42, + "duration": 5 + }, + { + "index": 43, + "duration": 5 + }, + { + "index": 44, + "duration": 5 + }, + { + "index": 45, + "duration": 5 + }, + { + "index": 46, + "duration": 5 + }, + { + "index": 47, + "duration": 5 + }, + { + "index": 48, + "duration": 5 + }, + { + "index": 49, + "duration": 5 + }, + { + "index": 50, + "duration": 5 + }, + { + "index": 51, + "duration": 5 + } + ] + }, + { + "name": "ATTACK RIGHT", + "repeat": true, + "frames": [ + { + "index": 71, + "duration": 5 + }, + { + "index": 70, + "duration": 5 + }, + { + "index": 69, + "duration": 5 + }, + { + "index": 68, + "duration": 5 + }, + { + "index": 67, + "duration": 5 + }, + { + "index": 66, + "duration": 5 + }, + { + "index": 65, + "duration": 5 + }, + { + "index": 64, + "duration": 5 + }, + { + "index": 63, + "duration": 5 + }, + { + "index": 62, + "duration": 5 + }, + { + "index": 61, + "duration": 5 + }, + { + "index": 60, + "duration": 5 + } + ] + }, + { + "name": "DAMAGED LEFT", + "repeat": false, + "frames": [ + { + "index": 80, + "duration": 5 + }, + { + "index": 81, + "duration": 5 + }, + { + "index": 82, + "duration": 5 + }, + { + "index": 83, + "duration": 5 + }, + { + "index": 82, + "duration": 5 + }, + { + "index": 81, + "duration": 5 + }, + { + "index": 80, + "duration": 5 + } + ] + }, + { + "name": "DAMAGED RIGHT", + "repeat": false, + "frames": [ + { + "index": 103, + "duration": 5 + }, + { + "index": 102, + "duration": 5 + }, + { + "index": 101, + "duration": 5 + }, + { + "index": 100, + "duration": 5 + }, + { + "index": 101, + "duration": 5 + }, + { + "index": 102, + "duration": 5 + }, + { + "index": 103, + "duration": 5 + } + ] + }, + { + "name": "IDLE", + "repeat": true, + "frames": [ + { + "index": 120, + "duration": 5 + }, + { + "index": 121, + "duration": 5 + }, + { + "index": 122, + "duration": 5 + }, + { + "index": 123, + "duration": 10 + }, + { + "index": 124, + "duration": 5 + }, + { + "index": 125, + "duration": 10 + }, + { + "index": 122, + "duration": 5 + }, + { + "index": 121, + "duration": 5 + }, + { + "index": 120, + "duration": 25 + } + ] + }, + { + "name": "DANCE", + "repeat": true, + "frames": [ + { + "index": 140, + "duration": 5 + }, + { + "index": 141, + "duration": 5 + }, + { + "index": 142, + "duration": 5 + }, + { + "index": 143, + "duration": 5 + }, + { + "index": 144, + "duration": 5 + }, + { + "index": 145, + "duration": 5 + } + ] + }, + { + "name": "DIE", + "repeat": false, + "frames": [ + { + "index": 160, + "duration": 5 + }, + { + "index": 161, + "duration": 5 + }, + { + "index": 162, + "duration": 5 + }, + { + "index": 163, + "duration": 5 + }, + { + "index": 164, + "duration": 5 + }, + { + "index": 165, + "duration": 5 + }, + { + "index": 166, + "duration": 5 + }, + { + "index": 167, + "duration": 5 + }, + { + "index": 168, + "duration": 5 + }, + { + "index": 169, + "duration": 5 + }, + { + "index": 170, + "duration": 5 + }, + { + "index": 171, + "duration": 5 + }, + { + "index": 172, + "duration": 5 + }, + { + "index": 173, + "duration": 5 + }, + { + "index": 174, + "duration": 5 + }, + { + "index": 175, + "duration": 5 + }, + { + "index": 176, + "duration": 5 + }, + { + "index": 177, + "duration": 5 + }, + { + "index": 178, + "duration": 5 + }, + { + "index": 179, + "duration": 5 + } + ] + }, + { + "name": "DEAD", + "repeat": true, + "frames": [ + { + "index": 180, + "duration": 5 + } + ] + } + ] +} \ No newline at end of file diff --git a/dist/shattered_sword_assets/spritesheets/carrion_crawler.png b/dist/shattered_sword_assets/spritesheets/carrion_crawler.png new file mode 100644 index 0000000..82b7f0b Binary files /dev/null and b/dist/shattered_sword_assets/spritesheets/carrion_crawler.png differ diff --git a/dist/shattered_sword_assets/spritesheets/flying_sword.json b/dist/shattered_sword_assets/spritesheets/flying_sword.json new file mode 100644 index 0000000..ef2e7c9 --- /dev/null +++ b/dist/shattered_sword_assets/spritesheets/flying_sword.json @@ -0,0 +1,353 @@ +{ + "name": "Flying Sword", + "spriteSheetImage": "flying_sword.png", + "spriteWidth": 128, + "spriteHeight": 128, + "leftBuffer": 0, + "rightBuffer": 0, + "topBuffer": 0, + "bottomBuffer": 0, + "columns": 9, + "rows": 11, + "animations": [ + { + "name": "IDLE", + "repeat": true, + "frames": [ + { + "index": 9, + "duration": 8 + }, + { + "index": 10, + "duration": 8 + }, + { + "index": 11, + "duration": 8 + }, + { + "index": 12, + "duration": 8 + }, + { + "index": 13, + "duration": 8 + }, + { + "index": 14, + "duration": 8 + } + ] + }, + { + "name": "SPAWN", + "repeat": false, + "frames": [ + { + "index": 0, + "duration": 12 + }, + { + "index": 1, + "duration": 6 + }, + { + "index": 2, + "duration": 6 + }, + { + "index": 3, + "duration": 6 + }, + { + "index": 4, + "duration": 6 + } + ] + }, + { + "name": "MOVE_RIGHT", + "repeat": true, + "frames": [ + { + "index": 18, + "duration": 8 + }, + { + "index": 19, + "duration": 8 + }, + { + "index": 20, + "duration": 8 + }, + { + "index": 21, + "duration": 8 + }, + { + "index": 22, + "duration": 8 + }, + { + "index": 23, + "duration": 8 + } + ] + }, + { + "name": "MOVE_LEFT", + "repeat": true, + "frames": [ + { + "index": 27, + "duration": 8 + }, + { + "index": 28, + "duration": 8 + }, + { + "index": 29, + "duration": 8 + }, + { + "index": 30, + "duration": 8 + }, + { + "index": 31, + "duration": 8 + }, + { + "index": 32, + "duration": 8 + } + ] + }, + { + "name": "ATTACK_RIGHT", + "repeat": false, + "frames": [ + { + "index": 36, + "duration": 6 + }, + { + "index": 38, + "duration": 6 + }, + { + "index": 39, + "duration": 6 + }, + { + "index": 40, + "duration": 6 + }, + { + "index": 41, + "duration": 6 + }, + { + "index": 42, + "duration": 6 + } + ] + }, + { + "name": "ATTACK_LEFT", + "repeat": false, + "frames": [ + { + "index": 45, + "duration": 6 + }, + { + "index": 47, + "duration": 6 + }, + { + "index": 48, + "duration": 6 + }, + { + "index": 49, + "duration": 6 + }, + { + "index": 50, + "duration": 6 + }, + { + "index": 51, + "duration": 6 + } + ] + }, + { + "name": "DANCE", + "repeat": true, + "frames": [ + { + "index": 54, + "duration": 8 + }, + { + "index": 55, + "duration": 8 + }, + { + "index": 56, + "duration": 8 + }, + { + "index": 57, + "duration": 8 + }, + { + "index": 58, + "duration": 8 + }, + { + "index": 59, + "duration": 8 + } + ] + }, + { + "name": "ATTACKED_RIGHT", + "repeat": false, + "frames": [ + { + "index": 63, + "duration": 6 + }, + { + "index": 64, + "duration": 4 + }, + { + "index": 65, + "duration": 4 + }, + { + "index": 66, + "duration": 8 + }, + { + "index": 67, + "duration": 8 + }, + { + "index": 68, + "duration": 8 + } + ] + }, + { + "name": "ATTACKED_LEFT", + "repeat": false, + "frames": [ + { + "index": 72, + "duration": 6 + }, + { + "index": 73, + "duration": 4 + }, + { + "index": 74, + "duration": 4 + }, + { + "index": 75, + "duration": 8 + }, + { + "index": 76, + "duration": 8 + }, + { + "index": 77, + "duration": 8 + } + ] + }, + { + "name": "DYING", + "repeat": true, + "frames": [ + { + "index": 81, + "duration": 4 + }, + { + "index": 82, + "duration": 8 + }, + { + "index": 83, + "duration": 8 + }, + { + "index": 84, + "duration": 8 + }, + { + "index": 85, + "duration": 8 + }, + { + "index": 86, + "duration": 8 + }, + { + "index": 87, + "duration": 8 + }, + { + "index": 88, + "duration": 8 + }, + { + "index": 89, + "duration": 4 + } + ] + }, + { + "name": "DEAD", + "frames": "90-95", + "repeat": false, + "frames": [ + { + "index": 90, + "duration": 8 + }, + { + "index": 91, + "duration": 8 + }, + { + "index": 92, + "duration": 8 + }, + { + "index": 93, + "duration": 8 + }, + { + "index": 94, + "duration": 8 + }, + { + "index": 95, + "duration": 12 + } + ] + } + ] +} \ No newline at end of file diff --git a/dist/shattered_sword_assets/spritesheets/flying_sword.png b/dist/shattered_sword_assets/spritesheets/flying_sword.png new file mode 100644 index 0000000..09d18e4 Binary files /dev/null and b/dist/shattered_sword_assets/spritesheets/flying_sword.png differ diff --git a/dist/shattered_sword_assets/spritesheets/greater_seawolf.json b/dist/shattered_sword_assets/spritesheets/greater_seawolf.json new file mode 100644 index 0000000..d3e0196 --- /dev/null +++ b/dist/shattered_sword_assets/spritesheets/greater_seawolf.json @@ -0,0 +1,348 @@ +{ + "name": "Greater Seawolf", + "spriteSheetImage": "greater_seawolf.png", + "spriteWidth": 128, + "spriteHeight": 128, + "leftBuffer": 0, + "rightBuffer": 0, + "topBuffer": 0, + "bottomBuffer": 0, + "columns": 5, + "rows": 13, + "animations": [ + { + "name": "IDLE_RIGHT", + "repeat": true, + "frames": [ + { + "index": 0, + "duration": 10 + }, + { + "index": 1, + "duration": 11 + }, + { + "index": 2, + "duration": 12 + }, + { + "index": 3, + "duration": 13 + }, + { + "index": 4, + "duration": 8 + } + ] + }, + { + "name": "IDLE_LEFT", + "repeat": true, + "frames": [ + { + "index": 5, + "duration": 10 + }, + { + "index": 6, + "duration": 11 + }, + { + "index": 7, + "duration": 12 + }, + { + "index": 8, + "duration": 13 + }, + { + "index": 9, + "duration": 8 + } + ] + }, + { + "name": "DANCING_RIGHT", + "repeat": true, + "frames": [ + { + "index": 10, + "duration": 6 + }, + { + "index": 11, + "duration": 6 + }, + { + "index": 12, + "duration": 6 + }, + { + "index": 13, + "duration": 3 + }, + { + "index": 14, + "duration": 6 + } + ] + }, + { + "name": "DANCING_LEFT", + "repeat": true, + "frames": [ + { + "index": 15, + "duration": 6 + }, + { + "index": 16, + "duration": 6 + }, + { + "index": 17, + "duration": 6 + }, + { + "index": 18, + "duration": 3 + }, + { + "index": 19, + "duration": 6 + } + ] + }, + { + "name": "WALKING_RIGHT", + "repeat": true, + "frames": [ + { + "index": 20, + "duration": 4 + }, + { + "index": 21, + "duration": 6 + }, + { + "index": 22, + "duration": 6 + }, + { + "index": 23, + "duration": 6 + }, + { + "index": 24, + "duration": 4 + } + ] + }, + { + "name": "WALKING_LEFT", + "repeat": true, + "frames": [ + { + "index": 25, + "duration": 4 + }, + { + "index": 26, + "duration": 6 + }, + { + "index": 27, + "duration": 6 + }, + { + "index": 28, + "duration": 6 + }, + { + "index": 29, + "duration": 4 + } + ] + }, + { + "name": "DAMAGE_RIGHT", + "repeat": true, + "frames": [ + { + "index": 30, + "duration": 8 + }, + { + "index": 31, + "duration": 8 + }, + { + "index": 32, + "duration": 8 + }, + { + "index": 33, + "duration": 8 + }, + { + "index": 34, + "duration": 8 + } + ] + }, + { + "name": "DAMAGE_LEFT", + "repeat": true, + "frames": [ + { + "index": 35, + "duration": 8 + }, + { + "index": 36, + "duration": 8 + }, + { + "index": 37, + "duration": 8 + }, + { + "index": 38, + "duration": 8 + }, + { + "index": 39, + "duration": 8 + } + ] + }, + { + "name": "DYING_RIGHT", + "repeat": false, + "next": "DEAD_RIGHT", + "frames": [ + { + "index": 40, + "duration": 8 + }, + { + "index": 41, + "duration": 8 + }, + { + "index": 42, + "duration": 8 + }, + { + "index": 43, + "duration": 8 + }, + { + "index": 44, + "duration": 8 + } + ] + }, + { + "name": "DYING_LEFT", + "repeat": false, + "next": "DEAD_LEFT", + "frames": [ + { + "index": 45, + "duration": 8 + }, + { + "index": 46, + "duration": 8 + }, + { + "index": 47, + "duration": 8 + }, + { + "index": 48, + "duration": 8 + }, + { + "index": 49, + "duration": 8 + } + ] + }, + { + "name": "ATTACK_RIGHT", + "repeat": true, + "frames": [ + { + "index": 50, + "duration": 6 + }, + { + "index": 51, + "duration": 6 + }, + { + "index": 52, + "duration": 6 + }, + { + "index": 53, + "duration": 6 + }, + { + "index": 54, + "duration": 6 + } + ] + }, + { + "name": "ATTACK_LEFT", + "repeat": true, + "frames": [ + { + "index": 55, + "duration": 6 + }, + { + "index": 56, + "duration": 6 + }, + { + "index": 57, + "duration": 6 + }, + { + "index": 58, + "duration": 6 + }, + { + "index": 59, + "duration": 6 + } + ] + }, + { + "name": "DEAD_RIGHT", + "repeat": true, + "frames": [ + { + "index": 60, + "duration": 20 + } + ] + }, + { + "name": "DEAD_LEFT", + "repeat": true, + "frames": [ + { + "index": 61, + "duration": 20 + } + ] + } + ] +} \ No newline at end of file diff --git a/dist/shattered_sword_assets/spritesheets/greater_seawolf.png b/dist/shattered_sword_assets/spritesheets/greater_seawolf.png new file mode 100644 index 0000000..3278ed6 Binary files /dev/null and b/dist/shattered_sword_assets/spritesheets/greater_seawolf.png differ diff --git a/dist/shattered_sword_assets/spritesheets/ogremoch.json b/dist/shattered_sword_assets/spritesheets/ogremoch.json new file mode 100644 index 0000000..10436b5 --- /dev/null +++ b/dist/shattered_sword_assets/spritesheets/ogremoch.json @@ -0,0 +1,271 @@ +{ + "name": "Ogremoch", + "spriteSheetImage": "ogremoch.png", + "spriteWidth": 128, + "spriteHeight": 128, + "leftBuffer": 0, + "rightBuffer": 0, + "topBuffer": 0, + "bottomBuffer": 0, + "columns": 7, + "rows": 10, + "animations": [ + { + "name": "IDLE", + "repeat": true, + "frames": [ + { + "index": 0, + "duration": 8 + }, + { + "index": 1, + "duration": 9 + }, + { + "index": 2, + "duration": 10 + }, + { + "index": 3, + "duration": 11 + }, + { + "index": 4, + "duration": 11 + }, + { + "index": 5, + "duration": 10 + }, + { + "index": 6, + "duration": 9 + } + ] + }, + { + "name": "Dancing", + "repeat": true, + "frames": [ + { + "index": 7, + "duration": 6 + }, + { + "index": 8, + "duration": 6 + }, + { + "index": 9, + "duration": 6 + }, + { + "index": 10, + "duration": 6 + }, + { + "index": 11, + "duration": 6 + } + ] + }, + { + "name": "DYING", + "repeat": false, + "next": "DEAD", + "frames": [ + { + "index": 14, + "duration": 6 + }, + { + "index": 15, + "duration": 6 + }, + { + "index": 16, + "duration": 6 + }, + { + "index": 17, + "duration": 6 + }, + { + "index": 18, + "duration": 6 + }, + { + "index": 19, + "duration": 6 + } + ] + }, + { + "name": "DEAD", + "repeat": true, + "frames": [ + { + "index": 21, + "duration": 6 + } + ] + }, + { + "name": "WALK_LEFT", + "repeat": true, + "frames": [ + { + "index": 28, + "duration": 6 + }, + { + "index": 29, + "duration": 6 + }, + { + "index": 30, + "duration": 6 + }, + { + "index": 31, + "duration": 6 + }, + { + "index": 32, + "duration": 6 + } + ] + }, + { + "name": "WALK_RIGHT", + "repeat": true, + "frames": [ + { + "index": 35, + "duration": 6 + }, + { + "index": 36, + "duration": 6 + }, + { + "index": 37, + "duration": 6 + }, + { + "index": 38, + "duration": 6 + }, + { + "index": 39, + "duration": 6 + } + ] + }, + { + "name": "DMG_LEFT", + "repeat": true, + "frames": [ + { + "index": 42, + "duration": 6 + }, + { + "index": 43, + "duration": 6 + }, + { + "index": 44, + "duration": 6 + }, + { + "index": 45, + "duration": 6 + }, + { + "index": 46, + "duration": 6 + } + ] + }, + { + "name": "DMG_RIGHT", + "repeat": true, + "frames": [ + { + "index": 49, + "duration": 6 + }, + { + "index": 50, + "duration": 6 + }, + { + "index": 51, + "duration": 6 + }, + { + "index": 52, + "duration": 6 + }, + { + "index": 53, + "duration": 6 + } + ] + }, + { + "name": "ATK_LEFT", + "repeat": true, + "frames": [ + { + "index": 56, + "duration": 6 + }, + { + "index": 57, + "duration": 6 + }, + { + "index": 58, + "duration": 6 + }, + { + "index": 59, + "duration": 6 + }, + { + "index": 60, + "duration": 6 + } + ] + }, + { + "name": "ATK_RIGHT", + "repeat": true, + "frames": [ + { + "index": 63, + "duration": 6 + }, + { + "index": 64, + "duration": 6 + }, + { + "index": 65, + "duration": 6 + }, + { + "index": 66, + "duration": 3 + }, + { + "index": 67, + "duration": 6 + } + ] + } + ] +} \ No newline at end of file diff --git a/dist/shattered_sword_assets/spritesheets/ogremoch.png b/dist/shattered_sword_assets/spritesheets/ogremoch.png new file mode 100644 index 0000000..d609f3a Binary files /dev/null and b/dist/shattered_sword_assets/spritesheets/ogremoch.png differ diff --git a/dist/shattered_sword_assets/spritesheets/remus_werewolf.json b/dist/shattered_sword_assets/spritesheets/remus_werewolf.json new file mode 100644 index 0000000..807635b --- /dev/null +++ b/dist/shattered_sword_assets/spritesheets/remus_werewolf.json @@ -0,0 +1 @@ +{"name":"remus_werewolf","spriteSheetImage":"remus_werewolf.png","spriteWidth":204,"spriteHeight":183,"leftBuffer":0,"rightBuffer":0,"topBuffer":0,"bottomBuffer":0,"columns":8,"rows":5,"animations":[{"name":"WALK_RIGHT","repeat":true,"frames":[{"index":8,"duration":1},{"index":9,"duration":2},{"index":10,"duration":3},{"index":9,"duration":4},{"index":8,"duration":5}]},{"name":"WALK_LEFT","repeat":true,"frames":[{"index":13,"duration":1},{"index":12,"duration":2},{"index":11,"duration":3},{"index":12,"duration":4},{"index":13,"duration":5}]},{"name":"IDLE_RIGHT","repeat":true,"frames":[{"index":0,"duration":1},{"index":1,"duration":2}]},{"name":"IDLE_LEFT","repeat":true,"frames":[{"index":2,"duration":1},{"index":3,"duration":2}]},{"name":"DANCE","repeat":true,"frames":[{"index":24,"duration":1},{"index":25,"duration":2},{"index":27,"duration":2},{"index":26,"duration":2}]},{"name":"ATTACK_RIGHT","repeat":false,"next":"IDLE_RIGHT","frames":[{"index":16,"duration":2},{"index":17,"duration":2},{"index":18,"duration":2}]},{"name":"ATTACK_LEFT","repeat":false,"next":"IDLE_LEFT","frames":[{"index":21,"duration":2},{"index":20,"duration":2},{"index":19,"duration":2}]},{"name":"DYING","repeat":false,"next":"DEAD","frames":[{"index":32,"duration":2},{"index":33,"duration":2},{"index":34,"duration":2}]},{"name":"DEAD","repeat":true,"frames":[{"index":34,"duration":2}]}]} \ No newline at end of file diff --git a/dist/shattered_sword_assets/spritesheets/remus_werewolf.png b/dist/shattered_sword_assets/spritesheets/remus_werewolf.png new file mode 100644 index 0000000..cc9ca34 Binary files /dev/null and b/dist/shattered_sword_assets/spritesheets/remus_werewolf.png differ diff --git a/dist/shattered_sword_assets/spritesheets/xvart.json b/dist/shattered_sword_assets/spritesheets/xvart.json new file mode 100644 index 0000000..1359be5 --- /dev/null +++ b/dist/shattered_sword_assets/spritesheets/xvart.json @@ -0,0 +1,326 @@ +{ + "name": "Xvart", + "spriteSheetImage": "xvart.png", + "spriteWidth": 128, + "spriteHeight": 128, + "leftBuffer": 0, + "rightBuffer": 0, + "topBuffer": 0, + "bottomBuffer": 0, + "columns": 8, + "rows": 10, + "animations": [ + { + "name": "IDLE", + "repeat": true, + "frames": [ + { + "index": 0, + "duration": 10 + }, + { + "index": 1, + "duration": 10 + }, + { + "index": 2, + "duration": 10 + }, + { + "index": 3, + "duration": 10 + }, + { + "index": 4, + "duration": 10 + }, + { + "index": 5, + "duration": 10 + } + ] + }, + { + "name": "WALK RIGHT", + "repeat": true, + "frames": [ + { + "index": 8, + "duration": 6 + }, + { + "index": 9, + "duration": 6 + }, + { + "index": 10, + "duration": 6 + }, + { + "index": 11, + "duration": 6 + }, + { + "index": 12, + "duration": 6 + }, + { + "index": 13, + "duration": 6 + }, + { + "index": 14, + "duration": 6 + }, + { + "index": 15, + "duration": 6 + } + ] + }, + { + "name": "WALK LEFT", + "repeat": true, + "frames": [ + { + "index": 16, + "duration": 6 + }, + { + "index": 17, + "duration": 6 + }, + { + "index": 18, + "duration": 6 + }, + { + "index": 19, + "duration": 6 + }, + { + "index": 20, + "duration": 6 + }, + { + "index": 21, + "duration": 6 + }, + { + "index": 22, + "duration": 6 + }, + { + "index": 23, + "duration": 6 + } + ] + }, + { + "name": "ATTACK RIGHT", + "repeat": true, + "frames": [ + { + "index": 24, + "duration": 4 + }, + { + "index": 25, + "duration": 4 + }, + { + "index": 26, + "duration": 4 + }, + { + "index": 27, + "duration": 4 + }, + { + "index": 28, + "duration": 4 + }, + { + "index": 29, + "duration": 4 + } + ] + }, + { + "name": "ATTACK LEFT", + "repeat": true, + "frames": [ + { + "index": 32, + "duration": 4 + }, + { + "index": 33, + "duration": 4 + }, + { + "index": 34, + "duration": 4 + }, + { + "index": 35, + "duration": 4 + }, + { + "index": 36, + "duration": 4 + }, + { + "index": 37, + "duration": 4 + } + ] + }, + { + "name": "TAKING DAMAGE RIGHT", + "repeat": true, + "frames": [ + { + "index": 40, + "duration": 5 + }, + { + "index": 41, + "duration": 5 + }, + { + "index": 42, + "duration": 5 + }, + { + "index": 43, + "duration": 5 + }, + { + "index": 44, + "duration": 5 + }, + { + "index": 45, + "duration": 5 + } + ] + }, + { + "name": "TAKING DAMAGE LEFT", + "repeat": true, + "frames": [ + { + "index": 48, + "duration": 5 + }, + { + "index": 49, + "duration": 5 + }, + { + "index": 50, + "duration": 5 + }, + { + "index": 51, + "duration": 5 + }, + { + "index": 52, + "duration": 5 + }, + { + "index": 53, + "duration": 5 + } + ] + }, + { + "name": "DYING", + "repeat": true, + "frames": [ + { + "index": 56, + "duration": 5 + }, + { + "index": 57, + "duration": 5 + }, + { + "index": 58, + "duration": 5 + }, + { + "index": 59, + "duration": 5 + }, + { + "index": 60, + "duration": 5 + }, + { + "index": 61, + "duration": 5 + }, + { + "index": 62, + "duration": 5 + }, + { + "index": 63, + "duration": 5 + } + ] + }, + { + "name": "DEAD", + "repeat": true, + "frames": [ + { + "index": 64, + "duration": 20 + } + ] + }, + { + "name": "DANCING", + "repeat": true, + "frames": [ + { + "index": 72, + "duration": 5 + }, + { + "index": 73, + "duration": 5 + }, + { + "index": 74, + "duration": 5 + }, + { + "index": 75, + "duration": 5 + }, + { + "index": 76, + "duration": 5 + }, + { + "index": 77, + "duration": 5 + }, + { + "index": 78, + "duration": 5 + }, + { + "index": 79, + "duration": 5 + } + ] + } + ] +} \ No newline at end of file diff --git a/dist/shattered_sword_assets/spritesheets/xvart.png b/dist/shattered_sword_assets/spritesheets/xvart.png new file mode 100644 index 0000000..381dc35 Binary files /dev/null and b/dist/shattered_sword_assets/spritesheets/xvart.png differ diff --git a/src/shattered_sword/AI/EnemyStates/Patrol.ts b/src/shattered_sword/AI/EnemyStates/Patrol.ts index be3899b..da0d173 100644 --- a/src/shattered_sword/AI/EnemyStates/Patrol.ts +++ b/src/shattered_sword/AI/EnemyStates/Patrol.ts @@ -36,28 +36,29 @@ export default class Patrol extends EnemyState { let colrow = this.parent.tilemap.getColRowAt(this.owner.position.clone()); //check if next tile on walking path is collidable - if(this.parent.tilemap.isTileCollidable(colrow.x+this.parent.direction,colrow.y)){ + if(this.parent.tilemap.isTileCollidable(colrow.x+this.parent.direction,colrow.y) || this.parent.tilemap.isTileCollidable(colrow.x+this.parent.direction,colrow.y-1)){ //turn around //console.log(this.parent.tilemap.getTileAtRowCol(colrow)); this.parent.direction *= -1; - (this.owner).invertX = MathUtils.sign(1) < 0; + console.log((this.owner).invertX); + //(this.owner).invertX != (this.owner).invertX ; //console.log("turn around cus wall in front"); } //check if next ground tile is collidable - else if(this.parent.tilemap.isTileCollidable(colrow.x+this.parent.direction,colrow.y+1)){ + else if(!this.parent.tilemap.isTileCollidable(colrow.x+this.parent.direction,colrow.y+1)){ + //turn around + this.parent.direction *=-1; + console.log((this.owner).invertX); + //console.log("turn around cus no floor in front"); + } + else{ //keep moving //this.velocity.x = this.speed; //console.log("there is floor ahead"); } - else{ - //turn around - this.parent.direction *=-1; - (this.owner).invertX = MathUtils.sign(1) < 0; - //console.log("turn around cus no floor in front"); - - } //move this.parent.velocity.x = this.parent.direction * this.parent.speed; + (this.owner).invertX = this.parent.direction ==1? true: false ; //move this elsewhere later this.owner.move(this.parent.velocity.scaled(deltaT)); diff --git a/src/shattered_sword/Scenes/GameLevel.ts b/src/shattered_sword/Scenes/GameLevel.ts index 8db71bc..17b6014 100644 --- a/src/shattered_sword/Scenes/GameLevel.ts +++ b/src/shattered_sword/Scenes/GameLevel.ts @@ -29,7 +29,7 @@ import Layer from "../../Wolfie2D/Scene/Layer"; import Button from "../../Wolfie2D/Nodes/UIElements/Button"; import { Buff } from "../Player/PlayerController"; import CanvasNode from "../../Wolfie2D/Nodes/CanvasNode"; - +import { Enemy } from "../Tools/RandomMapGenerator"; @@ -507,6 +507,44 @@ export default class GameLevel extends Scene { } + protected initializeEnemies( enemies: Enemy[]){ + for (let enemy of enemies) { + switch (enemy.type) { + case "test_dummy": + this.addEnemy("test_dummy", enemy.position.scale(32), { + player: this.player, + health: 100, + tilemap: "Main", + //actions:actions, + goal: Statuses.REACHED_GOAL, + }) + break; + case "snake": + this.addEnemy("snake", enemy.position.scale(32), { + player: this.player, + health: 100, + tilemap: "Main", + //actions:actions, + goal: Statuses.REACHED_GOAL, + }) + break; + case "tiger": + this.addEnemy("tiger", enemy.position.scale(32), { + player: this.player, + health: 100, + tilemap: "Main", + //actions:actions, + goal: Statuses.REACHED_GOAL, + }) + break; + + default: + break; + } + } + + } + protected handlePlayerEnemyCollision(player: AnimatedSprite, enemy: AnimatedSprite) { //collisions are handled by the battleManager - no need for this in gamelevel for now diff --git a/src/shattered_sword/Scenes/Tutorial.ts b/src/shattered_sword/Scenes/Tutorial.ts index 74fca3f..ffe2ebc 100644 --- a/src/shattered_sword/Scenes/Tutorial.ts +++ b/src/shattered_sword/Scenes/Tutorial.ts @@ -32,6 +32,10 @@ export default class Tutorial extends GameLevel { // TODO - change when done testing this.load.spritesheet("slice", "shattered_sword_assets/spritesheets/slice.json"); + //load enemies + this.load.spritesheet("snake","shattered_sword_assets/spritesheets/snake.json"); + this.load.spritesheet("tiger","shattered_sword_assets/spritesheets/tiger.json"); + //load music here @@ -54,6 +58,7 @@ export default class Tutorial extends GameLevel { super.startScene(); let enemies = this.rmg.getEnemies(); + /* for (let enemy of enemies) { switch (enemy.type) { case "test_dummy": @@ -70,6 +75,10 @@ export default class Tutorial extends GameLevel { break; } } + */ + + //may have to move this to start scene in gameLevel + this.initializeEnemies(enemies); } updateScene(deltaT: number): void {