diff --git a/game/assets/tileSets/tilesetsDungeon/troohy_1.png b/game/assets/level/2D Pixel Dungeon Asset Pack/items and trap_animation/trophy/trophy.png similarity index 100% rename from game/assets/tileSets/tilesetsDungeon/troohy_1.png rename to game/assets/level/2D Pixel Dungeon Asset Pack/items and trap_animation/trophy/trophy.png diff --git a/game/assets/level/2D Pixel Dungeon Asset Pack/items and trap_animation/trophy/trophy_open_1.png b/game/assets/level/2D Pixel Dungeon Asset Pack/items and trap_animation/trophy/trophy_open_1.png new file mode 100644 index 00000000..372a84da Binary files /dev/null and b/game/assets/level/2D Pixel Dungeon Asset Pack/items and trap_animation/trophy/trophy_open_1.png differ diff --git a/game/assets/tileSets/tilesetsDungeon/troohy_2.png b/game/assets/level/2D Pixel Dungeon Asset Pack/items and trap_animation/trophy/trophy_open_2.png similarity index 100% rename from game/assets/tileSets/tilesetsDungeon/troohy_2.png rename to game/assets/level/2D Pixel Dungeon Asset Pack/items and trap_animation/trophy/trophy_open_2.png diff --git a/game/assets/tileSets/tilesetsDungeon/troohy_3.png b/game/assets/level/2D Pixel Dungeon Asset Pack/items and trap_animation/trophy/trophy_open_3.png similarity index 100% rename from game/assets/tileSets/tilesetsDungeon/troohy_3.png rename to game/assets/level/2D Pixel Dungeon Asset Pack/items and trap_animation/trophy/trophy_open_3.png diff --git a/game/assets/level/2D Pixel Dungeon Asset Pack/items and trap_animation/trophy/trophy_open_4.png b/game/assets/level/2D Pixel Dungeon Asset Pack/items and trap_animation/trophy/trophy_open_4.png new file mode 100644 index 00000000..37ce4924 Binary files /dev/null and b/game/assets/level/2D Pixel Dungeon Asset Pack/items and trap_animation/trophy/trophy_open_4.png differ diff --git a/game/assets/level/Underwatch.tiled-session b/game/assets/level/Underwatch.tiled-session index fa96db55..2d6e3a77 100644 --- a/game/assets/level/Underwatch.tiled-session +++ b/game/assets/level/Underwatch.tiled-session @@ -3,7 +3,7 @@ "height": 4300, "width": 2 }, - "activeFile": "pathfinding.tmx", + "activeFile": "startMap.tmx", "expandedProjectPaths": [ ], "file.lastUsedOpenFilter": "All Files (*)", @@ -43,6 +43,15 @@ "scaleInDock": 1, "scaleInEditor": 1 }, + "/Users/martin/repos/Underwatch/game/assets/tileSets/tilesetsAussenwelt/fences.tsx": { + "scaleInDock": 1 + }, + "/Users/martin/repos/Underwatch/game/assets/tileSets/tilesetsAussenwelt/plains.tsx": { + "scaleInDock": 1 + }, + "/Users/martin/repos/Underwatch/game/assets/tileSets/tilesetsDungeon/Dungeon_Tileset.tsx": { + "scaleInDock": 1 + }, "2.0Map.tmx": { "scale": 0.9133, "selectedLayer": 6, @@ -156,8 +165,8 @@ "scale": 1.4398437499999999, "selectedLayer": 0, "viewCenter": { - "x": 411.8502441671189, - "y": 343.44004340748785 + "x": 160.43407487791646, + "y": 160.08681497558334 } }, "plains.tsx": { @@ -167,7 +176,7 @@ }, "startMap.tmx": { "scale": 0.8452, - "selectedLayer": 10, + "selectedLayer": 1, "viewCenter": { "x": 451.96403218173214, "y": 399.3137718883105 @@ -184,34 +193,25 @@ "map.tileWidth": 16, "map.width": 50, "openFiles": [ - "Dungeon_Tileset.tsx", - "2.0Map.tmx", "startMap.tmx", - "dungeon1(amogus).tmx", - "TeleportTestFixed.tmx", - "50x50MapMitHitbox.tmx", "babo.tsx", - "Dungeon_Monsters1.tsx", - "dungeon assets.tsx", - "plains.tsx", - "fences.tsx", "pathfinding.tmx" ], "project": "Underwatch.tiled-project", "property.type": "bool", "recentFiles": [ + "pathfinding.tmx", + "babo.tsx", + "startMap.tmx", "Dungeon3.tmx", "Demo.tmx", "Dungeon1.tmx", - "pathfinding.tmx", "fences.tsx", "plains.tsx", "dungeon assets.tsx", "Dungeon_Monsters1.tsx", - "babo.tsx", "50x50MapMitHitbox.tmx", - "TeleportTestFixed.tmx", - "dungeon1(amogus).tmx" + "TeleportTestFixed.tmx" ], "tileset.lastUsedFormat": "tsx", "tileset.tileSize": { diff --git a/game/assets/level/startMap.tmx b/game/assets/level/startMap.tmx index 3db09aff..69f22273 100644 --- a/game/assets/level/startMap.tmx +++ b/game/assets/level/startMap.tmx @@ -1,5 +1,5 @@ - + @@ -15,6 +15,11 @@ eJztmL0OgCAMhFk0Ifr+zyujg9byZ6/lhm8hIVyPa0PIKaVMCFGzFXbFWs1+C47CKax96Xzaj4gXnbWg5KhXF+r9oOoi7dlH65m3jKHPXq2P1jpn6kPL0ggPItZE5hA5K9Ib31Pd0hufPfIfnjIjUZOZ6DVHr280Fn7NONNibqLPavbCml73aEHyGkkLscOyt0aebZln5F5Cmp1RPSZ1oGfS81/vXTuiPi2etbfel2c83he9J6tzAf7RV6U= + + + eJztzkERAAAIA6D172Q3U+x8CAlIgG/mOgAAAAAAAAAAAAULEU4Avg== + + diff --git a/game/assets/textureAtlas/Underwatch.atlas b/game/assets/textureAtlas/Underwatch.atlas index 80492e3e..148deea8 100644 --- a/game/assets/textureAtlas/Underwatch.atlas +++ b/game/assets/textureAtlas/Underwatch.atlas @@ -3,1266 +3,1294 @@ size:512,512 repeat:none Babo_idle_left index:1 -bounds:2,350,24,32 +bounds:2,335,24,32 O1_idle_left index:1 -bounds:2,350,24,32 +bounds:2,335,24,32 O2_idle_left index:1 -bounds:2,350,24,32 +bounds:2,335,24,32 O3_idle_left index:1 -bounds:2,350,24,32 +bounds:2,335,24,32 O4_idle_left index:1 -bounds:2,350,24,32 +bounds:2,335,24,32 O5_idle_left index:1 -bounds:2,350,24,32 +bounds:2,335,24,32 SH_idle_left index:1 -bounds:2,350,24,32 +bounds:2,335,24,32 SS_idle_left index:1 -bounds:2,350,24,32 +bounds:2,335,24,32 Babo_idle_left index:3 -bounds:54,410,24,32 +bounds:80,233,24,32 O1_idle_left index:3 -bounds:54,410,24,32 +bounds:80,233,24,32 O2_idle_left index:3 -bounds:54,410,24,32 +bounds:80,233,24,32 O3_idle_left index:3 -bounds:54,410,24,32 +bounds:80,233,24,32 O4_idle_left index:3 -bounds:54,410,24,32 +bounds:80,233,24,32 O5_idle_left index:3 -bounds:54,410,24,32 +bounds:80,233,24,32 SH_idle_left index:3 -bounds:54,410,24,32 +bounds:80,233,24,32 SS_idle_left index:3 -bounds:54,410,24,32 +bounds:80,233,24,32 Babo_walk_back index:1 -bounds:304,444,24,32 +bounds:382,478,24,32 Babo_walk_back index:3 -bounds:80,70,24,32 +bounds:212,430,24,32 Babo_walk_back index:2 -bounds:228,426,24,32 +bounds:106,123,24,32 Babo_walk_front index:2 -bounds:28,384,24,32 +bounds:28,335,24,32 Babo_walk_front index:1 -bounds:80,36,24,32 +bounds:256,426,24,32 Babo_walk_front index:3 -bounds:132,70,24,32 +bounds:140,361,24,32 Babo_walk_left index:2 -bounds:28,282,24,32 +bounds:28,233,24,32 Babo_walk_left index:1 -bounds:106,342,24,32 +bounds:378,410,24,32 Babo_walk_left index:3 -bounds:132,2,24,32 +bounds:106,327,24,32 Babo_walk_right index:3 -bounds:279,478,24,32 +bounds:54,335,24,32 Babo_walk_right index:2 -bounds:106,172,24,32 +bounds:98,395,24,32 Babo_walk_right index:1 -bounds:228,290,24,32 +bounds:158,123,24,32 Just_arrow -bounds:380,318,16,16 +bounds:236,230,16,16 O1_idle_back index:3 -bounds:28,78,24,32 +bounds:28,29,24,32 Babo_idle_back index:3 -bounds:28,78,24,32 +bounds:28,29,24,32 O2_idle_back index:3 -bounds:28,78,24,32 +bounds:28,29,24,32 O3_idle_back index:3 -bounds:28,78,24,32 +bounds:28,29,24,32 O4_idle_back index:3 -bounds:28,78,24,32 +bounds:28,29,24,32 O5_idle_back index:3 -bounds:28,78,24,32 +bounds:28,29,24,32 SH_idle_back index:3 -bounds:28,78,24,32 +bounds:28,29,24,32 SS_idle_back index:3 -bounds:28,78,24,32 +bounds:28,29,24,32 O1_walk_back index:3 -bounds:28,316,24,32 +bounds:28,267,24,32 O1_walk_back index:2 -bounds:106,376,24,32 +bounds:352,410,24,32 O1_walk_back index:1 -bounds:228,392,24,32 +bounds:158,191,24,32 O1_walk_front index:2 -bounds:383,478,24,32 +bounds:54,199,24,32 O1_walk_front index:1 -bounds:106,104,24,32 +bounds:150,395,24,32 O1_walk_front index:3 -bounds:158,225,24,32 +bounds:132,259,24,32 O1_walk_left index:1 -bounds:28,180,24,32 +bounds:28,131,24,32 O1_walk_left index:3 -bounds:54,104,24,32 +bounds:186,464,24,32 O1_walk_left index:2 -bounds:158,395,24,32 +bounds:132,327,24,32 O1_walk_right index:1 -bounds:2,418,24,32 +bounds:2,403,24,32 O1_walk_right index:3 -bounds:486,444,24,32 +bounds:80,267,24,32 O1_walk_right index:2 -bounds:132,308,24,32 +bounds:350,376,24,32 O2_idle_left index:2 -bounds:2,10,24,32 +bounds:28,403,24,32 Babo_idle_left index:2 -bounds:2,10,24,32 +bounds:28,403,24,32 O1_idle_left index:2 -bounds:2,10,24,32 +bounds:28,403,24,32 O3_idle_left index:2 -bounds:2,10,24,32 +bounds:28,403,24,32 O4_idle_left index:2 -bounds:2,10,24,32 +bounds:28,403,24,32 O5_idle_left index:2 -bounds:2,10,24,32 +bounds:28,403,24,32 SH_idle_left index:2 -bounds:2,10,24,32 +bounds:28,403,24,32 SS_idle_left index:2 -bounds:2,10,24,32 +bounds:28,403,24,32 O2_walk_back index:1 -bounds:28,112,24,32 +bounds:28,63,24,32 O2_walk_back index:3 -bounds:54,70,24,32 +bounds:212,464,24,32 O2_walk_back index:2 -bounds:158,361,24,32 +bounds:106,259,24,32 O2_walk_front index:3 -bounds:408,444,24,32 +bounds:486,478,24,32 O2_walk_front index:2 -bounds:132,342,24,32 +bounds:324,376,24,32 O2_walk_front index:1 -bounds:184,154,24,32 +bounds:158,21,24,32 O2_walk_left index:2 -bounds:2,316,24,32 +bounds:2,301,24,32 O2_walk_left index:1 -bounds:54,2,24,32 +bounds:282,460,24,32 O2_walk_left index:3 -bounds:132,240,24,32 +bounds:402,376,24,32 O2_walk_right index:2 -bounds:28,350,24,32 +bounds:28,301,24,32 O2_walk_right index:1 -bounds:106,410,24,32 +bounds:326,410,24,32 O2_walk_right index:3 -bounds:132,36,24,32 +bounds:166,361,24,32 O3_idle_right index:1 -bounds:28,248,24,32 +bounds:28,199,24,32 Babo_idle_right index:1 -bounds:28,248,24,32 +bounds:28,199,24,32 O1_idle_right index:1 -bounds:28,248,24,32 +bounds:28,199,24,32 O2_idle_right index:1 -bounds:28,248,24,32 +bounds:28,199,24,32 O4_idle_right index:1 -bounds:28,248,24,32 +bounds:28,199,24,32 O5_idle_right index:1 -bounds:28,248,24,32 +bounds:28,199,24,32 SH_idle_right index:1 -bounds:28,248,24,32 +bounds:28,199,24,32 SS_idle_right index:1 -bounds:28,248,24,32 +bounds:28,199,24,32 O3_walk_back index:2 -bounds:2,214,24,32 +bounds:2,199,24,32 O3_walk_back index:1 -bounds:80,308,24,32 +bounds:404,444,24,32 O3_walk_back index:3 -bounds:132,206,24,32 +bounds:428,376,24,32 O3_walk_front index:2 -bounds:2,44,24,32 +bounds:2,29,24,32 O3_walk_front index:1 -bounds:80,138,24,32 +bounds:160,429,24,32 O3_walk_front index:3 -bounds:132,138,24,32 +bounds:480,376,24,32 O3_walk_left index:2 -bounds:54,308,24,32 +bounds:80,131,24,32 O3_walk_left index:1 -bounds:132,172,24,32 +bounds:454,376,24,32 O3_walk_left index:3 -bounds:228,324,24,32 +bounds:106,55,24,32 O3_walk_right index:3 -bounds:28,10,24,32 +bounds:54,369,24,32 O3_walk_right index:2 -bounds:106,206,24,32 +bounds:482,410,24,32 O3_walk_right index:1 -bounds:202,324,24,32 +bounds:158,157,24,32 O4_idle_back index:1 -bounds:330,444,24,32 +bounds:408,478,24,32 Babo_idle_back index:1 -bounds:330,444,24,32 +bounds:408,478,24,32 O1_idle_back index:1 -bounds:330,444,24,32 +bounds:408,478,24,32 O2_idle_back index:1 -bounds:330,444,24,32 +bounds:408,478,24,32 O3_idle_back index:1 -bounds:330,444,24,32 +bounds:408,478,24,32 O5_idle_back index:1 -bounds:330,444,24,32 +bounds:408,478,24,32 SH_idle_back index:1 -bounds:330,444,24,32 +bounds:408,478,24,32 SS_idle_back index:1 -bounds:330,444,24,32 +bounds:408,478,24,32 O4_idle_right index:2 -bounds:435,478,24,32 +bounds:54,131,24,32 Babo_idle_right index:2 -bounds:435,478,24,32 +bounds:54,131,24,32 O1_idle_right index:2 -bounds:435,478,24,32 +bounds:54,131,24,32 O2_idle_right index:2 -bounds:435,478,24,32 +bounds:54,131,24,32 O3_idle_right index:2 -bounds:435,478,24,32 +bounds:54,131,24,32 O5_idle_right index:2 -bounds:435,478,24,32 +bounds:54,131,24,32 SH_idle_right index:2 -bounds:435,478,24,32 +bounds:54,131,24,32 SS_idle_right index:2 -bounds:435,478,24,32 +bounds:54,131,24,32 O4_walk_back index:2 -bounds:54,274,24,32 +bounds:80,97,24,32 O4_walk_back index:1 -bounds:132,104,24,32 +bounds:114,361,24,32 O4_walk_back index:3 -bounds:202,290,24,32 +bounds:132,89,24,32 O4_walk_front index:3 -bounds:28,214,24,32 +bounds:28,165,24,32 O4_walk_front index:2 -bounds:106,308,24,32 +bounds:404,410,24,32 O4_walk_front index:1 -bounds:202,358,24,32 +bounds:106,89,24,32 O4_walk_left index:3 -bounds:164,463,24,32 +bounds:54,63,24,32 O4_walk_left index:2 -bounds:106,36,24,32 +bounds:202,396,24,32 O4_walk_left index:1 -bounds:184,222,24,32 +bounds:132,55,24,32 O4_walk_right index:1 -bounds:54,172,24,32 +bounds:134,463,24,32 O4_walk_right index:3 -bounds:132,376,24,32 +bounds:280,392,24,32 O4_walk_right index:2 -bounds:184,188,24,32 +bounds:132,21,24,32 O5_walk_back index:3 -bounds:208,460,24,32 +bounds:54,29,24,32 O5_walk_back index:2 -bounds:106,2,24,32 +bounds:228,396,24,32 O5_walk_back index:1 -bounds:210,256,24,32 +bounds:158,89,24,32 O5_walk_front index:3 -bounds:28,418,24,32 +bounds:28,369,24,32 O5_walk_front index:2 -bounds:80,104,24,32 +bounds:186,430,24,32 O5_walk_front index:1 -bounds:202,426,24,32 +bounds:158,225,24,32 O5_walk_left index:1 -bounds:356,444,24,32 +bounds:434,478,24,32 O5_walk_left index:3 -bounds:80,2,24,32 +bounds:282,426,24,32 O5_walk_left index:2 -bounds:202,392,24,32 +bounds:132,157,24,32 O5_walk_right index:3 -bounds:2,146,24,32 +bounds:2,131,24,32 O5_walk_right index:2 -bounds:80,274,24,32 +bounds:430,444,24,32 O5_walk_right index:1 -bounds:158,157,24,32 +bounds:106,191,24,32 SH_idle_front index:1 -bounds:2,248,24,32 +bounds:2,233,24,32 Babo_idle_front index:1 -bounds:2,248,24,32 +bounds:2,233,24,32 O1_idle_front index:1 -bounds:2,248,24,32 +bounds:2,233,24,32 O2_idle_front index:1 -bounds:2,248,24,32 +bounds:2,233,24,32 O3_idle_front index:1 -bounds:2,248,24,32 +bounds:2,233,24,32 O4_idle_front index:1 -bounds:2,248,24,32 +bounds:2,233,24,32 O5_idle_front index:1 -bounds:2,248,24,32 +bounds:2,233,24,32 SS_idle_front index:1 -bounds:2,248,24,32 +bounds:2,233,24,32 SH_idle_front index:3 -bounds:54,376,24,32 +bounds:80,199,24,32 Babo_idle_front index:3 -bounds:54,376,24,32 +bounds:80,199,24,32 O1_idle_front index:3 -bounds:54,376,24,32 +bounds:80,199,24,32 O2_idle_front index:3 -bounds:54,376,24,32 +bounds:80,199,24,32 O3_idle_front index:3 -bounds:54,376,24,32 +bounds:80,199,24,32 O4_idle_front index:3 -bounds:54,376,24,32 +bounds:80,199,24,32 O5_idle_front index:3 -bounds:54,376,24,32 +bounds:80,199,24,32 SS_idle_front index:3 -bounds:54,376,24,32 +bounds:80,199,24,32 SH_idle_right index:3 -bounds:382,444,24,32 +bounds:460,478,24,32 Babo_idle_right index:3 -bounds:382,444,24,32 +bounds:460,478,24,32 O1_idle_right index:3 -bounds:382,444,24,32 +bounds:460,478,24,32 O2_idle_right index:3 -bounds:382,444,24,32 +bounds:460,478,24,32 O3_idle_right index:3 -bounds:382,444,24,32 +bounds:460,478,24,32 O4_idle_right index:3 -bounds:382,444,24,32 +bounds:460,478,24,32 O5_idle_right index:3 -bounds:382,444,24,32 +bounds:460,478,24,32 SS_idle_right index:3 -bounds:382,444,24,32 +bounds:460,478,24,32 SH_walk_back index:3 -bounds:28,44,24,32 +bounds:54,403,24,32 SH_walk_back index:2 -bounds:106,240,24,32 +bounds:456,410,24,32 SH_walk_back index:1 -bounds:228,358,24,32 +bounds:132,123,24,32 SH_walk_front index:1 -bounds:54,240,24,32 +bounds:80,63,24,32 SH_walk_front index:3 -bounds:106,70,24,32 +bounds:176,395,24,32 SH_walk_front index:2 -bounds:184,256,24,32 +bounds:106,21,24,32 SH_walk_left index:1 -bounds:461,478,24,32 +bounds:54,97,24,32 SH_walk_left index:3 -bounds:80,240,24,32 +bounds:456,444,24,32 SH_walk_left index:2 -bounds:158,123,24,32 +bounds:132,225,24,32 SH_walk_right index:3 -bounds:2,282,24,32 +bounds:2,267,24,32 SH_walk_right index:2 -bounds:80,376,24,32 +bounds:352,444,24,32 SH_walk_right index:1 -bounds:158,89,24,32 +bounds:158,259,24,32 SS_idle_back index:2 -bounds:2,78,24,32 +bounds:2,63,24,32 Babo_idle_back index:2 -bounds:2,78,24,32 +bounds:2,63,24,32 O1_idle_back index:2 -bounds:2,78,24,32 +bounds:2,63,24,32 O2_idle_back index:2 -bounds:2,78,24,32 +bounds:2,63,24,32 O3_idle_back index:2 -bounds:2,78,24,32 +bounds:2,63,24,32 O4_idle_back index:2 -bounds:2,78,24,32 +bounds:2,63,24,32 O5_idle_back index:2 -bounds:2,78,24,32 +bounds:2,63,24,32 SH_idle_back index:2 -bounds:2,78,24,32 +bounds:2,63,24,32 SS_idle_front index:2 -bounds:2,180,24,32 +bounds:2,165,24,32 Babo_idle_front index:2 -bounds:2,180,24,32 +bounds:2,165,24,32 O1_idle_front index:2 -bounds:2,180,24,32 +bounds:2,165,24,32 O2_idle_front index:2 -bounds:2,180,24,32 +bounds:2,165,24,32 O3_idle_front index:2 -bounds:2,180,24,32 +bounds:2,165,24,32 O4_idle_front index:2 -bounds:2,180,24,32 +bounds:2,165,24,32 O5_idle_front index:2 -bounds:2,180,24,32 +bounds:2,165,24,32 SH_idle_front index:2 -bounds:2,180,24,32 +bounds:2,165,24,32 SS_walk_back index:2 -bounds:2,384,24,32 +bounds:2,369,24,32 SS_walk_back index:1 -bounds:54,36,24,32 +bounds:256,460,24,32 SS_walk_back index:3 -bounds:132,274,24,32 +bounds:376,376,24,32 SS_walk_front index:1 -bounds:278,444,24,32 +bounds:356,478,24,32 SS_walk_front index:3 -bounds:80,172,24,32 +bounds:134,429,24,32 SS_walk_front index:2 -bounds:158,21,24,32 +bounds:132,191,24,32 SS_walk_left index:1 -bounds:357,478,24,32 +bounds:54,233,24,32 SS_walk_left index:3 -bounds:80,410,24,32 +bounds:326,444,24,32 SS_walk_left index:2 -bounds:158,259,24,32 +bounds:106,225,24,32 SS_walk_right index:1 -bounds:409,478,24,32 +bounds:54,165,24,32 SS_walk_right index:3 -bounds:80,342,24,32 +bounds:378,444,24,32 SS_walk_right index:2 -bounds:158,191,24,32 +bounds:158,293,24,32 ak index:4 -bounds:2,497,45,13 +bounds:69,481,45,13 ak index:1 -bounds:2,482,45,13 +bounds:134,497,45,13 ak index:2 -bounds:2,467,44,13 +bounds:55,466,44,13 ak index:3 -bounds:2,452,44,13 +bounds:2,437,44,13 arrow index:3 -bounds:487,478,16,32 +bounds:80,403,16,32 arrow index:2 -bounds:184,429,16,32 +bounds:308,460,16,32 arrow index:4 -bounds:184,361,16,32 +bounds:308,426,16,32 arrow index:1 -bounds:184,327,16,32 +bounds:306,392,16,32 bow index:2 -bounds:360,426,16,16 +bounds:452,358,16,16 bow index:1 -bounds:362,354,16,16 +bounds:236,302,16,16 bow index:3 -bounds:470,300,16,16 +bounds:290,212,16,16 box_1 index:4 -bounds:270,390,16,16 +bounds:254,356,16,16 box_1 index:1 -bounds:432,408,16,16 +bounds:202,75,16,16 box_1 index:3 -bounds:308,318,16,16 +bounds:218,216,16,16 box_1 index:2 -bounds:452,282,16,16 +bounds:308,158,16,16 box_2 index:4 -bounds:254,309,16,16 +bounds:218,378,16,16 box_2 index:1 -bounds:396,426,16,16 +bounds:200,237,16,16 box_2 index:3 -bounds:272,318,16,16 +bounds:480,340,16,16 box_2 index:2 -bounds:272,282,16,16 +bounds:290,194,16,16 bullet7x13 -bounds:192,9,7,13 +bounds:82,437,7,13 c1_idle_back index:4 -bounds:28,146,24,32 +bounds:28,97,24,32 c1_idle_back index:2 -bounds:28,146,24,32 +bounds:28,97,24,32 c1_idle_back index:1 -bounds:54,342,24,32 +bounds:80,165,24,32 c1_idle_back index:3 -bounds:106,274,24,32 +bounds:430,410,24,32 c1_idle_front index:2 -bounds:305,478,24,32 +bounds:54,301,24,32 c1_idle_front index:4 -bounds:305,478,24,32 +bounds:54,301,24,32 c1_idle_front index:3 -bounds:158,327,24,32 +bounds:132,293,24,32 c1_idle_left index:2 -bounds:331,478,24,32 +bounds:54,267,24,32 c1_idle_left index:4 -bounds:331,478,24,32 +bounds:54,267,24,32 c1_walk_left index:4 -bounds:331,478,24,32 +bounds:54,267,24,32 c1_walk_left index:2 -bounds:331,478,24,32 +bounds:54,267,24,32 c1_idle_left index:1 -bounds:106,138,24,32 +bounds:124,395,24,32 c1_idle_left index:3 -bounds:158,293,24,32 +bounds:158,327,24,32 c1_idle_right index:3 -bounds:434,444,24,32 +bounds:80,335,24,32 c1_idle_right index:1 -bounds:210,188,24,32 +bounds:192,361,24,32 c1_walk_back index:2 -bounds:54,138,24,32 +bounds:160,463,24,32 c1_walk_back index:4 -bounds:54,138,24,32 +bounds:160,463,24,32 c1_walk_back index:1 -bounds:158,429,24,32 +bounds:106,293,24,32 c1_walk_back index:3 -bounds:210,222,24,32 +bounds:158,55,24,32 c1_walk_front index:4 -bounds:234,460,24,32 +bounds:330,478,24,32 c1_idle_front index:1 -bounds:234,460,24,32 +bounds:330,478,24,32 c1_walk_front index:2 -bounds:234,460,24,32 +bounds:330,478,24,32 c1_walk_front index:1 -bounds:54,206,24,32 +bounds:80,29,24,32 c1_walk_front index:3 -bounds:132,410,24,32 +bounds:254,392,24,32 c1_walk_left index:3 -bounds:460,444,24,32 +bounds:80,301,24,32 c1_walk_left index:1 -bounds:184,120,24,32 +bounds:184,327,24,32 c1_walk_right index:3 -bounds:2,112,24,32 +bounds:2,97,24,32 c1_walk_right index:2 -bounds:80,206,24,32 -c1_idle_right -index:2 -bounds:80,206,24,32 +bounds:482,444,24,32 c1_idle_right index:4 -bounds:80,206,24,32 +bounds:482,444,24,32 +c1_idle_right +index:2 +bounds:482,444,24,32 c1_walk_right index:4 -bounds:80,206,24,32 +bounds:482,444,24,32 c1_walk_right index:1 -bounds:158,55,24,32 +bounds:106,157,24,32 candlestick_1 index:3 -bounds:288,390,16,16 +bounds:308,356,16,16 candlestick_1 index:2 -bounds:362,372,16,16 +bounds:218,162,16,16 candlestick_1 index:4 -bounds:452,336,16,16 +bounds:254,194,16,16 candlestick_1 index:1 -bounds:254,273,16,16 +bounds:254,122,16,16 candlestick_2 index:3 -bounds:226,170,16,16 +bounds:218,360,16,16 candlestick_2 index:2 -bounds:326,372,16,16 +bounds:209,3,16,16 candlestick_2 index:4 -bounds:398,318,16,16 +bounds:236,212,16,16 candlestick_2 index:1 -bounds:326,282,16,16 +bounds:272,158,16,16 chest index:3 -bounds:378,426,16,16 +bounds:200,309,16,16 chest index:2 -bounds:344,318,16,16 +bounds:254,302,16,16 chest index:4 -bounds:488,318,16,16 +bounds:254,158,16,16 chest index:1 -bounds:362,264,16,16 +bounds:326,194,16,16 chest_open index:3 -bounds:226,152,16,16 +bounds:236,360,16,16 chest_open index:2 -bounds:272,300,16,16 +bounds:218,324,16,16 chest_open index:4 -bounds:434,372,16,16 +bounds:290,284,16,16 chest_open index:1 -bounds:344,282,16,16 +bounds:290,176,16,16 coin index:2 -bounds:450,426,16,16 +bounds:202,57,16,16 coin index:4 -bounds:450,426,16,16 +bounds:202,57,16,16 coin index:1 -bounds:398,336,16,16 +bounds:254,248,16,16 coin index:3 -bounds:252,255,16,16 +bounds:272,122,16,16 flag index:2 -bounds:254,327,16,16 +bounds:116,442,16,16 flag index:4 -bounds:414,390,16,16 +bounds:202,93,16,16 flag index:1 -bounds:308,372,16,16 +bounds:462,340,16,16 flag index:3 -bounds:362,300,16,16 +bounds:308,320,16,16 flamethrower_1 index:4 -bounds:190,463,16,32 +bounds:80,369,16,32 flamethrower_1 index:1 -bounds:260,460,16,32 +bounds:238,464,16,32 flamethrower_1 index:3 -bounds:184,395,16,32 +bounds:238,430,16,32 flamethrower_1 index:2 -bounds:184,293,16,32 +bounds:98,429,16,32 flamethrower_2 index:4 -bounds:96,480,32,16 +bounds:2,11,32,16 flamethrower_2 index:1 -bounds:130,480,32,16 +bounds:36,11,32,16 flamethrower_2 index:3 -bounds:211,494,32,16 +bounds:262,494,32,16 flamethrower_2 index:2 -bounds:245,494,32,16 +bounds:296,494,32,16 flasks_big_open index:2 -bounds:360,390,16,16 +bounds:200,273,16,16 flasks_big_open index:4 -bounds:360,390,16,16 +bounds:200,273,16,16 flasks_big_open index:1 -bounds:362,336,16,16 +bounds:236,266,16,16 flasks_big -bounds:362,336,16,16 +bounds:236,266,16,16 flasks_big_open index:3 -bounds:488,300,16,16 +bounds:272,176,16,16 flasks_small -bounds:324,390,16,16 +bounds:416,358,16,16 flasks_small_open index:1 -bounds:324,390,16,16 +bounds:416,358,16,16 flasks_small_open index:4 -bounds:414,426,16,16 +bounds:200,183,16,16 flasks_small_open index:2 -bounds:414,426,16,16 +bounds:200,183,16,16 flasks_small_open index:3 -bounds:344,300,16,16 +bounds:290,320,16,16 handgun -bounds:483,272,12,8 +bounds:498,348,12,8 idleak -bounds:177,497,32,13 +bounds:48,437,32,13 idlebow -bounds:362,318,16,16 +bounds:236,248,16,16 idlem4 -bounds:143,498,32,12 +bounds:228,498,32,12 +idleshotgun +bounds:2,466,51,13 keys_1 index:2 -bounds:468,408,16,16 +bounds:264,338,16,16 keys_1 index:4 -bounds:344,336,16,16 +bounds:236,320,16,16 keys_1 index:1 -bounds:416,336,16,16 +bounds:254,230,16,16 keys_1 index:3 -bounds:290,264,16,16 +bounds:326,266,16,16 keys_2 index:2 -bounds:414,408,16,16 +bounds:200,129,16,16 keys_2 index:4 -bounds:326,354,16,16 +bounds:218,270,16,16 keys_2 index:1 -bounds:398,354,16,16 +bounds:272,284,16,16 keys_2 index:3 -bounds:398,282,16,16 +bounds:290,158,16,16 m4 index:1 -bounds:49,498,46,12 +bounds:2,452,46,12 m4 index:2 -bounds:49,484,45,12 +bounds:181,498,45,12 m4 index:4 -bounds:49,484,45,12 +bounds:181,498,45,12 m4 index:3 -bounds:97,498,44,12 +bounds:50,452,44,12 mini_box_1 index:3 -bounds:324,426,16,16 +bounds:344,358,16,16 mini_box_1 index:2 -bounds:308,300,16,16 +bounds:218,144,16,16 mini_box_1 index:4 -bounds:470,354,16,16 +bounds:272,212,16,16 mini_box_1 index:1 -bounds:253,237,16,16 +bounds:290,122,16,16 mini_box_2 index:3 -bounds:200,84,16,16 +bounds:290,374,16,16 mini_box_2 index:2 -bounds:290,318,16,16 +bounds:218,306,16,16 mini_box_2 index:4 -bounds:452,372,16,16 +bounds:290,266,16,16 mini_box_2 index:1 -bounds:362,282,16,16 +bounds:308,194,16,16 mini_chest index:2 -bounds:396,408,16,16 +bounds:200,201,16,16 mini_chest_open index:1 -bounds:396,408,16,16 +bounds:200,201,16,16 mini_chest index:4 -bounds:308,354,16,16 +bounds:191,3,16,16 mini_chest index:1 -bounds:398,372,16,16 +bounds:272,302,16,16 mini_chest index:3 -bounds:308,282,16,16 +bounds:254,140,16,16 mini_chest_open index:2 -bounds:324,408,16,16 +bounds:380,358,16,16 mini_chest_open index:4 -bounds:290,372,16,16 +bounds:408,340,16,16 mini_chest_open index:3 -bounds:470,336,16,16 +bounds:236,158,16,16 peaks index:1 -bounds:226,134,16,16 +bounds:254,374,16,16 peaks index:3 -bounds:468,426,16,16 +bounds:228,342,16,16 peaks index:2 -bounds:380,300,16,16 +bounds:308,302,16,16 peaks index:4 -bounds:253,201,16,16 +bounds:326,302,16,16 priest1_dash index:2 -bounds:254,291,16,16 +bounds:236,378,16,16 priest1_dash index:4 -bounds:432,390,16,16 +bounds:202,39,16,16 priest1_dash index:1 -bounds:290,336,16,16 +bounds:202,21,16,16 priest1_dash index:3 -bounds:416,354,16,16 +bounds:272,266,16,16 priest1_v1 index:4 -bounds:254,345,16,16 +bounds:116,460,16,16 priest1_v1 index:1 -bounds:342,426,16,16 +bounds:398,358,16,16 priest1_v1 index:3 -bounds:272,336,16,16 +bounds:426,340,16,16 priest1_v1 index:2 -bounds:452,300,16,16 +bounds:254,176,16,16 priest1_v2 index:1 -bounds:270,426,16,16 +bounds:184,72,16,16 priest1_v2 index:3 -bounds:486,408,16,16 +bounds:318,338,16,16 priest1_v2 index:2 -bounds:416,318,16,16 +bounds:236,194,16,16 priest1_v2 index:4 -bounds:398,264,16,16 +bounds:326,158,16,16 priest2_v1 index:2 -bounds:342,408,16,16 +bounds:434,358,16,16 priest2_v1 index:4 -bounds:290,354,16,16 +bounds:444,340,16,16 priest2_v1 index:1 -bounds:326,318,16,16 +bounds:218,126,16,16 priest2_v1 index:3 -bounds:470,318,16,16 +bounds:272,194,16,16 priest2_v2 index:2 -bounds:270,408,16,16 +bounds:184,54,16,16 priest2_v2 index:4 -bounds:486,390,16,16 +bounds:336,340,16,16 priest2_v2 index:1 -bounds:308,336,16,16 +bounds:218,288,16,16 priest2_v2 index:3 -bounds:434,336,16,16 +bounds:254,212,16,16 priest3_v1 index:3 -bounds:360,408,16,16 +bounds:488,358,16,16 priest3_v1 index:2 -bounds:326,300,16,16 +bounds:236,284,16,16 priest3_v1 index:4 -bounds:488,336,16,16 +bounds:236,140,16,16 priest3_v1 index:1 -bounds:344,264,16,16 +bounds:326,212,16,16 priest3_v2 index:3 -bounds:288,426,16,16 +bounds:184,36,16,16 priest3_v2 index:2 -bounds:344,372,16,16 +bounds:218,252,16,16 priest3_v2 index:4 -bounds:452,354,16,16 +bounds:272,230,16,16 priest3_v2 index:1 -bounds:416,282,16,16 +bounds:308,176,16,16 shaman_idle_back index:2 -bounds:254,400,14,17 +bounds:184,165,14,17 shaman_idle_back index:1 -bounds:254,400,14,17 +bounds:184,165,14,17 shaman_idle_front index:1 -bounds:158,2,15,17 +bounds:106,2,15,17 shaman_idle_front index:2 -bounds:236,211,15,17 +bounds:157,2,15,17 shaman_idle_left index:2 -bounds:236,230,15,17 +bounds:140,2,15,17 shaman_idle_left index:1 -bounds:184,60,14,17 -shaman_idle_right -index:1 -bounds:488,372,15,16 +bounds:184,127,14,17 shaman_idle_right index:2 -bounds:468,264,13,16 +bounds:101,463,13,16 +shaman_idle_right +index:1 +bounds:326,320,15,16 shaman_walk_back index:3 -bounds:254,439,14,19 +bounds:98,374,14,19 shaman_walk_back index:2 -bounds:236,269,14,19 +bounds:184,306,14,19 shaman_walk_back index:4 -bounds:210,167,14,19 +bounds:184,285,14,19 shaman_walk_back index:1 -bounds:184,99,14,19 +bounds:184,264,14,19 shaman_walk_front index:3 -bounds:254,419,14,18 +bounds:184,244,14,18 shaman_walk_front index:2 -bounds:236,249,14,18 +bounds:184,224,14,18 shaman_walk_front index:4 -bounds:210,147,14,18 +bounds:184,204,14,18 shaman_walk_front index:1 -bounds:184,79,14,18 +bounds:184,184,14,18 shaman_walk_left index:1 -bounds:175,2,15,17 +bounds:123,2,15,17 shaman_walk_left index:2 -bounds:236,192,15,17 +bounds:174,2,15,17 shaman_walk_left index:3 -bounds:210,128,14,17 +bounds:184,146,14,17 shaman_walk_left index:4 -bounds:254,381,14,17 -shaman_walk_right -index:1 -bounds:450,408,16,16 +bounds:184,108,14,17 shaman_walk_right index:4 -bounds:202,48,14,16 +bounds:308,374,14,16 +shaman_walk_right +index:1 +bounds:210,342,16,16 shaman_walk_right index:2 -bounds:253,219,16,16 +bounds:308,122,16,16 shaman_walk_right index:3 -bounds:452,264,14,16 +bounds:343,322,14,16 +shotgun +index:1 +bounds:2,496,65,14 +shotgun +index:3 +bounds:2,496,65,14 +shotgun +index:4 +bounds:2,481,65,13 +shotgun +index:2 +bounds:69,496,63,14 side_torch index:3 -bounds:288,408,16,16 +bounds:272,356,16,16 side_torch index:2 -bounds:326,336,16,16 +bounds:218,198,16,16 side_torch index:4 -bounds:416,300,16,16 +bounds:308,266,16,16 side_torch index:1 -bounds:470,282,16,16 +bounds:308,140,16,16 skeleton2_v1 index:4 -bounds:254,363,16,16 +bounds:116,478,16,16 skeleton2_v1 index:1 -bounds:306,390,16,16 +bounds:362,358,16,16 skeleton2_v1 index:3 -bounds:272,354,16,16 +bounds:390,340,16,16 skeleton2_v1 index:2 -bounds:452,318,16,16 +bounds:308,248,16,16 skeleton2_v2 index:1 -bounds:200,66,16,16 +bounds:184,90,16,16 skeleton2_v2 index:3 -bounds:468,390,16,16 +bounds:300,338,16,16 skeleton2_v2 index:2 -bounds:398,300,16,16 +bounds:308,284,16,16 skeleton2_v2 index:4 -bounds:380,264,16,16 +bounds:326,176,16,16 skeleton_v1 index:3 -bounds:378,390,16,16 +bounds:200,219,16,16 skeleton_v1 index:2 -bounds:380,354,16,16 +bounds:254,284,16,16 skeleton_v1 index:4 -bounds:290,282,16,16 +bounds:308,212,16,16 skeleton_v1 index:1 -bounds:416,264,16,16 +bounds:326,140,16,16 skeleton_v2 index:3 -bounds:306,426,16,16 +bounds:290,356,16,16 skeleton_v2 index:2 -bounds:344,354,16,16 +bounds:218,180,16,16 skeleton_v2 index:4 -bounds:434,318,16,16 +bounds:236,176,16,16 skeleton_v2 index:1 -bounds:488,282,16,16 +bounds:236,122,16,16 skull_v1 index:4 -bounds:184,42,16,16 +bounds:70,11,16,16 skull_v1 index:1 -bounds:306,408,16,16 +bounds:326,358,16,16 skull_v1 index:3 -bounds:272,372,16,16 +bounds:372,340,16,16 skull_v1 index:2 -bounds:434,300,16,16 +bounds:290,230,16,16 skull_v2 index:1 -bounds:200,102,16,16 +bounds:272,374,16,16 skull_v2 index:3 -bounds:486,426,16,16 +bounds:282,338,16,16 skull_v2 index:2 -bounds:434,354,16,16 +bounds:272,248,16,16 skull_v2 index:4 -bounds:308,264,16,16 +bounds:326,248,16,16 speed_big_open index:2 -bounds:202,30,16,16 +bounds:354,340,16,16 speed_big_open index:4 -bounds:202,30,16,16 +bounds:354,340,16,16 speed_big_open index:1 -bounds:470,372,16,16 +bounds:290,248,16,16 speed_big -bounds:470,372,16,16 +bounds:290,248,16,16 speed_big_open index:3 -bounds:434,264,16,16 +bounds:326,122,16,16 speed_small -bounds:378,408,16,16 +bounds:200,255,16,16 speed_small_open index:1 -bounds:378,408,16,16 +bounds:200,255,16,16 speed_small_open index:2 -bounds:450,390,16,16 +bounds:246,338,16,16 speed_small_open index:4 -bounds:450,390,16,16 +bounds:246,338,16,16 speed_small_open index:3 -bounds:272,264,16,16 +bounds:326,284,16,16 torch index:2 -bounds:432,426,16,16 +bounds:200,111,16,16 torch index:4 -bounds:290,300,16,16 +bounds:218,234,16,16 torch index:1 -bounds:416,372,16,16 +bounds:290,302,16,16 torch index:3 -bounds:434,282,16,16 +bounds:290,140,16,16 +trophy +bounds:200,147,16,16 +trophy_open +index:1 +bounds:200,147,16,16 +trophy_open +index:3 +bounds:200,291,16,16 +trophy_open +index:2 +bounds:272,320,16,16 +trophy_open +index:4 +bounds:272,320,16,16 vampire_v1 index:1 -bounds:184,24,16,16 +bounds:88,11,16,16 vampire_v1 index:3 -bounds:396,390,16,16 +bounds:200,165,16,16 vampire_v1 index:2 -bounds:380,336,16,16 +bounds:254,266,16,16 vampire_v1 index:4 -bounds:380,282,16,16 +bounds:272,140,16,16 vampire_v2 index:3 -bounds:342,390,16,16 +bounds:470,358,16,16 vampire_v2 index:2 -bounds:380,372,16,16 +bounds:254,320,16,16 vampire_v2 index:4 -bounds:488,354,16,16 +bounds:308,230,16,16 vampire_v2 index:1 -bounds:326,264,16,16 +bounds:326,230,16,16 diff --git a/game/assets/textureAtlas/Underwatch.png b/game/assets/textureAtlas/Underwatch.png index e9358892..dbe6af82 100644 Binary files a/game/assets/textureAtlas/Underwatch.png and b/game/assets/textureAtlas/Underwatch.png differ diff --git a/game/assets/textureAtlas/UnderwatchAtlas.tpproj b/game/assets/textureAtlas/UnderwatchAtlas.tpproj index 7d5f7f62..a29aba03 100644 --- a/game/assets/textureAtlas/UnderwatchAtlas.tpproj +++ b/game/assets/textureAtlas/UnderwatchAtlas.tpproj @@ -34,7 +34,7 @@ prettyPrint=false legacyOutput=false scaleFactors=[{suffix:"",factor:1,resampling:bicubic}] -inputFiles=[{path:../level/2D Pixel Dungeon Asset Pack/Character_animation/monsters_idle/skeleton1/v1,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/Character_animation/monsters_idle/skeleton2/v1,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/Character_animation/monsters_idle/skeleton1/v2,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/Character_animation/monsters_idle/skeleton2/v2,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/Character_animation/monsters_idle/skull/v1,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/Character_animation/monsters_idle/skull/v2,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/Character_animation/monsters_idle/vampire/v2,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/Character_animation/monsters_idle/vampire/v1,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/Character_animation/priests_idle/priest1/v1,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/Character_animation/priests_idle/priest1/v2,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/Character_animation/priests_idle/priest2/v1,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/Character_animation/priests_idle/priest2/v2,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/Character_animation/priests_idle/priest3/v1,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/Character_animation/priests_idle/priest3/v2,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/items and trap_animation/arrow,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/items and trap_animation/box_1,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/items and trap_animation/box_2,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/items and trap_animation/chest,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/items and trap_animation/coin,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/items and trap_animation/flag,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/items and trap_animation/flamethrower,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/items and trap_animation/flasks,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/items and trap_animation/keys,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/items and trap_animation/mini_box_1,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/items and trap_animation/mini_box_2,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/items and trap_animation/mini_chest,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/items and trap_animation/peaks,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/items and trap_animation/torch,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../weapon/handgun.png,type:Input,regionName:null},{path:../level/2D Pixel Dungeon Asset Pack/Character_animation/priest_dash,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../weapon/bullet7x13.png,type:Input,regionName:null},{path:../enemy/Shaman/idle,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../enemy/Shaman/walk,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../character,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../weapon/bow,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../weapon/ak,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../weapon/m4,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false}] +inputFiles=[{path:../level/2D Pixel Dungeon Asset Pack/Character_animation/monsters_idle/skeleton1/v1,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/Character_animation/monsters_idle/skeleton2/v1,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/Character_animation/monsters_idle/skeleton1/v2,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/Character_animation/monsters_idle/skeleton2/v2,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/Character_animation/monsters_idle/skull/v1,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/Character_animation/monsters_idle/skull/v2,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/Character_animation/monsters_idle/vampire/v2,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/Character_animation/monsters_idle/vampire/v1,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/Character_animation/priests_idle/priest1/v1,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/Character_animation/priests_idle/priest1/v2,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/Character_animation/priests_idle/priest2/v1,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/Character_animation/priests_idle/priest2/v2,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/Character_animation/priests_idle/priest3/v1,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/Character_animation/priests_idle/priest3/v2,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/items and trap_animation/arrow,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/items and trap_animation/box_1,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/items and trap_animation/box_2,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/items and trap_animation/chest,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/items and trap_animation/coin,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/items and trap_animation/flag,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/items and trap_animation/flamethrower,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/items and trap_animation/flasks,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/items and trap_animation/keys,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/items and trap_animation/mini_box_1,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/items and trap_animation/mini_box_2,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/items and trap_animation/mini_chest,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/items and trap_animation/peaks,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/items and trap_animation/torch,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../weapon/handgun.png,type:Input,regionName:null},{path:../level/2D Pixel Dungeon Asset Pack/Character_animation/priest_dash,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../weapon/bullet7x13.png,type:Input,regionName:null},{path:../enemy/Shaman/idle,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../enemy/Shaman/walk,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../character,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../weapon/bow,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../weapon/ak,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../weapon/m4,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../enemy/monster,type:Input,dirFilePrefix:null,recursive:true,flattenPaths:true},{path:../weapon/shotgun,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false},{path:../level/2D Pixel Dungeon Asset Pack/items and trap_animation/trophy,type:Input,dirFilePrefix:null,recursive:false,flattenPaths:false}] keepInputFileExtensions=false diff --git a/game/assets/weapon/shotgun/shotgunidle.png b/game/assets/weapon/shotgun/idleshotgun.png similarity index 100% rename from game/assets/weapon/shotgun/shotgunidle.png rename to game/assets/weapon/shotgun/idleshotgun.png diff --git a/game/core/src/main/de/dhbw/tinf22b6/gameobject/interaction/HolyGrail.java b/game/core/src/main/de/dhbw/tinf22b6/gameobject/interaction/HolyGrail.java index 2ff8054f..416ff4e2 100644 --- a/game/core/src/main/de/dhbw/tinf22b6/gameobject/interaction/HolyGrail.java +++ b/game/core/src/main/de/dhbw/tinf22b6/gameobject/interaction/HolyGrail.java @@ -1,21 +1,26 @@ package de.dhbw.tinf22b6.gameobject.interaction; +import com.badlogic.gdx.Gdx; import com.badlogic.gdx.math.Rectangle; import com.badlogic.gdx.math.Vector2; import de.dhbw.tinf22b6.gameobject.Player; +import de.dhbw.tinf22b6.util.MusicPlayer; import de.dhbw.tinf22b6.util.PlayerStatistics; public class HolyGrail extends InteractionObject { public HolyGrail(Vector2 position, Rectangle rectangle) { - // TODO: proper Texture region (Tracked in #231) - super("chest", position, rectangle); + super("trophy", position, rectangle); + this.activeAnimation.setFrameDuration(0.5f); } @Override public void activate() { super.activate(); - // TODO: activate sound of Holy Grail (Tracked in #231) + MusicPlayer.instance.stop(); + Gdx.audio + .newSound(Gdx.files.internal("sfx/holymoly.mp3")) + .play(Gdx.app.getPreferences("Controls").getFloat("sfx")); } @Override diff --git a/game/core/src/main/de/dhbw/tinf22b6/gameobject/interaction/InteractionObject.java b/game/core/src/main/de/dhbw/tinf22b6/gameobject/interaction/InteractionObject.java index 7587b85c..d8b415be 100644 --- a/game/core/src/main/de/dhbw/tinf22b6/gameobject/interaction/InteractionObject.java +++ b/game/core/src/main/de/dhbw/tinf22b6/gameobject/interaction/InteractionObject.java @@ -17,8 +17,8 @@ import de.dhbw.tinf22b6.world.Box2dWorld; public abstract class InteractionObject extends GameObject { - private final Animation inactiveAnimation; - private final Animation activeAnimation; + protected final Animation inactiveAnimation; + protected final Animation activeAnimation; public InteractionObject(String region, Vector2 position, Rectangle rectangle) { super(region, position, Constants.INTERACTION_BIT); diff --git a/game/core/src/main/de/dhbw/tinf22b6/screen/GameScreen.java b/game/core/src/main/de/dhbw/tinf22b6/screen/GameScreen.java index 6e688bf8..f74ad665 100644 --- a/game/core/src/main/de/dhbw/tinf22b6/screen/GameScreen.java +++ b/game/core/src/main/de/dhbw/tinf22b6/screen/GameScreen.java @@ -11,6 +11,7 @@ import com.badlogic.gdx.maps.tiled.TiledMap; import de.dhbw.tinf22b6.ui.ingame.InGameStageHandler; import de.dhbw.tinf22b6.util.EntitySystem; +import de.dhbw.tinf22b6.util.MusicPlayer; import de.dhbw.tinf22b6.util.PlayerStatistics; import de.dhbw.tinf22b6.world.*; import de.dhbw.tinf22b6.world.WorldController; @@ -21,7 +22,6 @@ public class GameScreen extends AbstractGameScreen { private TiledMap map; - Music m = Gdx.audio.newMusic(Gdx.files.internal("music/downfall.mp3")); private WorldController worldController; private WorldRenderer worldRenderer; private boolean paused; @@ -63,11 +63,7 @@ public void resize(int width, int height) { @Override public void show() { - m.setVolume( - Gdx.app.getPreferences("Controls").getBoolean("muteMusic") - ? 0 - : Gdx.app.getPreferences("Controls").getFloat("music")); - m.play(); + MusicPlayer.instance.setMusic(Gdx.audio.newMusic(Gdx.files.internal("music/downfall.mp3"))); Box2dWorld.instance.init(); WorldParser.parseStaticObjects(map); Box2dWorld.instance.getWorld().setContactListener(new WorldListener(this)); @@ -80,7 +76,6 @@ public void show() { @Override public void hide() { - m.stop(); } @Override diff --git a/game/core/src/main/de/dhbw/tinf22b6/ui/ingame/InGameStageHandler.java b/game/core/src/main/de/dhbw/tinf22b6/ui/ingame/InGameStageHandler.java index a4d9a2d6..515b735d 100644 --- a/game/core/src/main/de/dhbw/tinf22b6/ui/ingame/InGameStageHandler.java +++ b/game/core/src/main/de/dhbw/tinf22b6/ui/ingame/InGameStageHandler.java @@ -54,7 +54,7 @@ private void changeStage(String stageName) { case "Pause" -> currentStage = stages.get("Pause"); case "GameWon" -> { currentStage = stages.get("GameWon"); - ((GameOverStage) currentStage).update(); + ((GameWonStage) currentStage).update(); } case "GameOver" -> { currentStage = stages.get("GameOver"); diff --git a/game/core/src/main/de/dhbw/tinf22b6/util/MusicPlayer.java b/game/core/src/main/de/dhbw/tinf22b6/util/MusicPlayer.java index 4a2f8777..9abbb287 100644 --- a/game/core/src/main/de/dhbw/tinf22b6/util/MusicPlayer.java +++ b/game/core/src/main/de/dhbw/tinf22b6/util/MusicPlayer.java @@ -1,11 +1,34 @@ package de.dhbw.tinf22b6.util; -public class MusicPlayer { - public enum MusicTrack { - MENU, - LEVEL1, - LEVEL2, - LEVEL3, - END; +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.audio.Music; +import com.badlogic.gdx.utils.Disposable; + +public class MusicPlayer implements Disposable { + public static final MusicPlayer instance = new MusicPlayer(); + private Music music; + + private MusicPlayer() { + } + + public void setMusic(Music music) { + if (this.music != null) { + this.music.stop(); + music.dispose(); } + this.music = music; + this.music.setLooping(true); + this.music.setVolume(Gdx.app.getPreferences("Controls").getFloat("music")); + this.music.play(); + } + + public void stop() { + this.music.stop(); + } + + @Override + public void dispose() { + if (music != null) + music.dispose(); + } } diff --git a/game/core/src/main/de/dhbw/tinf22b6/util/PlayerStatistics.java b/game/core/src/main/de/dhbw/tinf22b6/util/PlayerStatistics.java index 4e605a28..86a654be 100644 --- a/game/core/src/main/de/dhbw/tinf22b6/util/PlayerStatistics.java +++ b/game/core/src/main/de/dhbw/tinf22b6/util/PlayerStatistics.java @@ -2,8 +2,8 @@ import com.badlogic.gdx.Gdx; import com.badlogic.gdx.math.Vector2; -import de.dhbw.tinf22b6.weapon.Ak; import de.dhbw.tinf22b6.weapon.M4; +import de.dhbw.tinf22b6.weapon.Shotgun; import de.dhbw.tinf22b6.weapon.Weapon; import java.util.ArrayList; import java.util.List; @@ -27,10 +27,13 @@ private PlayerStatistics() {} public void init() { this.weapons = new ArrayList<>(); - weapons.add(new Ak()); + weapons.add(new Shotgun()); this.canSwitchWeapon = true; this.hp = 200; this.initialHP = hp; + this.won = false; + this.currentWeaponIndex = 0; + this.gameTime = 0; this.coins = 0; this.enemies_kills = 0; Gdx.app.debug(TAG, "PlayerStatistics initialized " + instance.toString()); diff --git a/game/core/src/main/de/dhbw/tinf22b6/weapon/Shotgun.java b/game/core/src/main/de/dhbw/tinf22b6/weapon/Shotgun.java new file mode 100644 index 00000000..f687bab1 --- /dev/null +++ b/game/core/src/main/de/dhbw/tinf22b6/weapon/Shotgun.java @@ -0,0 +1,32 @@ +package de.dhbw.tinf22b6.weapon; + +import com.badlogic.gdx.graphics.g2d.Animation; +import com.badlogic.gdx.math.Vector2; +import de.dhbw.tinf22b6.gameobject.bullet.Bullet; +import de.dhbw.tinf22b6.util.Assets; +import de.dhbw.tinf22b6.util.Constants; +import de.dhbw.tinf22b6.util.EntitySystem; + +public class Shotgun extends Weapon { + public Shotgun() { + super("shotgun", 25, 0.2f, 50); + this.shootingAnimation = new Animation<>(0.06f, Assets.instance.getAnimationAtlasRegion("shotgun")); + } + + @Override + public boolean shoot() { + if (super.shoot()) { + new Thread(() -> { + for (int i = -5; i <= 5; i += 2) { + float angle = EntitySystem.instance.getPlayer().getAngle(); + angle += i; + Vector2 pos = EntitySystem.instance.getPlayer().getPos(); + EntitySystem.instance.add(new Bullet( + new Vector2(pos.x + 15 / 2f, pos.y + 5), angle, this.damage, Constants.WEAPON_BIT)); + } + }) + .start(); + } + return true; + } +} diff --git a/game/core/src/main/de/dhbw/tinf22b6/world/WorldController.java b/game/core/src/main/de/dhbw/tinf22b6/world/WorldController.java index 292d3e96..1b4c4688 100644 --- a/game/core/src/main/de/dhbw/tinf22b6/world/WorldController.java +++ b/game/core/src/main/de/dhbw/tinf22b6/world/WorldController.java @@ -10,7 +10,6 @@ import de.dhbw.tinf22b6.util.CameraHelper; import de.dhbw.tinf22b6.util.EntitySystem; import de.dhbw.tinf22b6.util.PlayerStatistics; - import java.util.HashSet; import java.util.Iterator; @@ -68,8 +67,7 @@ public void update(float deltaTime) { GameObject gameObject = i.next(); if (gameObject.isRemove()) { EntitySystem.instance.remove(gameObject); - if (!world.isLocked()) - world.destroyBody(gameObject.getBody()); + if (!world.isLocked()) world.destroyBody(gameObject.getBody()); } } // Update motion vector based on the state of pressed keys @@ -101,30 +99,20 @@ private void handleInput(float deltaTime) { // Camera Controls (move) float camMoveSpeed = 32 * deltaTime; float camMoveSpeedAccelerationFactor = 5; - if (Gdx.input.isKeyPressed(Input.Keys.SHIFT_LEFT)) - camMoveSpeed *= camMoveSpeedAccelerationFactor; - if (Gdx.input.isKeyPressed(Input.Keys.LEFT)) - moveCamera(-camMoveSpeed, 0); - if (Gdx.input.isKeyPressed(Input.Keys.RIGHT)) - moveCamera(camMoveSpeed, 0); - if (Gdx.input.isKeyPressed(Input.Keys.UP)) - moveCamera(0, camMoveSpeed); - if (Gdx.input.isKeyPressed(Input.Keys.DOWN)) - moveCamera(0, -camMoveSpeed); - if (Gdx.input.isKeyPressed(Input.Keys.BACKSPACE)) - cameraHelper.setPosition(0, 0); + if (Gdx.input.isKeyPressed(Input.Keys.SHIFT_LEFT)) camMoveSpeed *= camMoveSpeedAccelerationFactor; + if (Gdx.input.isKeyPressed(Input.Keys.LEFT)) moveCamera(-camMoveSpeed, 0); + if (Gdx.input.isKeyPressed(Input.Keys.RIGHT)) moveCamera(camMoveSpeed, 0); + if (Gdx.input.isKeyPressed(Input.Keys.UP)) moveCamera(0, camMoveSpeed); + if (Gdx.input.isKeyPressed(Input.Keys.DOWN)) moveCamera(0, -camMoveSpeed); + if (Gdx.input.isKeyPressed(Input.Keys.BACKSPACE)) cameraHelper.setPosition(0, 0); // Camera Controls (zoom) float camZoomSpeed = 1 * deltaTime; float camZoomSpeedAccelerationFactor = 5; - if (Gdx.input.isKeyPressed(Input.Keys.SHIFT_LEFT)) - camZoomSpeed *= camZoomSpeedAccelerationFactor; - if (Gdx.input.isKeyPressed(Input.Keys.COMMA)) - cameraHelper.addZoom(camZoomSpeed); - if (Gdx.input.isKeyPressed(Input.Keys.PERIOD)) - cameraHelper.addZoom(-camZoomSpeed); - if (Gdx.input.isKeyPressed(Input.Keys.SLASH)) - cameraHelper.setZoom(1); + if (Gdx.input.isKeyPressed(Input.Keys.SHIFT_LEFT)) camZoomSpeed *= camZoomSpeedAccelerationFactor; + if (Gdx.input.isKeyPressed(Input.Keys.COMMA)) cameraHelper.addZoom(camZoomSpeed); + if (Gdx.input.isKeyPressed(Input.Keys.PERIOD)) cameraHelper.addZoom(-camZoomSpeed); + if (Gdx.input.isKeyPressed(Input.Keys.SLASH)) cameraHelper.setZoom(1); } @Override @@ -137,14 +125,10 @@ public boolean touchDown(int screenX, int screenY, int pointer, int button) { public boolean keyDown(int keycode) { // Set Motion Vector pressedKeys.add(keycode); - if (keycode == interact) - player.interact(player); - if (keycode == dodge) - player.dodge(); - if (keycode == Input.Keys.ESCAPE) - gameScreen.setPaused(); - if (keycode == Input.Keys.C) - debugBox2D = !debugBox2D; + if (keycode == interact) player.interact(player); + if (keycode == dodge) player.dodge(); + if (keycode == Input.Keys.ESCAPE) gameScreen.setPaused(); + if (keycode == Input.Keys.C) debugBox2D = !debugBox2D; return super.keyDown(keycode); } diff --git a/game/core/src/main/de/dhbw/tinf22b6/world/WorldParser.java b/game/core/src/main/de/dhbw/tinf22b6/world/WorldParser.java index 98304f60..1e2db38e 100644 --- a/game/core/src/main/de/dhbw/tinf22b6/world/WorldParser.java +++ b/game/core/src/main/de/dhbw/tinf22b6/world/WorldParser.java @@ -24,6 +24,7 @@ import de.dhbw.tinf22b6.gameobject.Teleporter; import de.dhbw.tinf22b6.gameobject.enemy.*; import de.dhbw.tinf22b6.gameobject.interaction.HealthBox; +import de.dhbw.tinf22b6.gameobject.interaction.HolyGrail; import de.dhbw.tinf22b6.gameobject.interaction.SpeedBoost; import de.dhbw.tinf22b6.gameobject.interaction.WeaponBox; import de.dhbw.tinf22b6.util.Constants; @@ -100,7 +101,7 @@ public static void parseStaticObjects(TiledMap map) { public static ArrayList parseGameObjects(TiledMap map) { ArrayList list = new ArrayList<>(); // TODO refactor animated game objects using an enum - String[] objects = new String[] {"coins", "torch", "chests", "enemy", "teleporter", "start", "hp", "speed"}; + String[] objects = new String[] {"coins", "torch", "chests", "enemy", "teleporter", "start", "hp", "speed", "trophy"}; for (String s : objects) { TiledMapTileLayer layer = (TiledMapTileLayer) map.getLayers().get(s); if (layer == null) continue; @@ -156,6 +157,9 @@ public static ArrayList parseGameObjects(TiledMap map) { list.add(new SpeedBoost( new Vector2(x, y), rectangleObject.getRectangle(), r.nextBoolean())); break; + case "trophy": + list.add(new HolyGrail(new Vector2(x, y), rectangleObject.getRectangle())); + break; } } }