diff options
| author | realtradam <[email protected]> | 2022-01-29 10:23:42 -0500 |
|---|---|---|
| committer | realtradam <[email protected]> | 2022-01-29 10:23:42 -0500 |
| commit | ba4b9076fc3bf79871d63390f22b51d95c0b6c22 (patch) | |
| tree | 5e01aff4ab2d81a800a54a71b53d91c99743e947 | |
| parent | f6dca23248e09f4fe2212b3fff6404585ff6725d (diff) | |
| download | orc-arena-of-time-ba4b9076fc3bf79871d63390f22b51d95c0b6c22.tar.gz orc-arena-of-time-ba4b9076fc3bf79871d63390f22b51d95c0b6c22.zip | |
a lot
| -rw-r--r-- | LevelDesign/dungeon_ v1.0/dungeon_.png | bin | 23743 -> 23639 bytes | |||
| -rw-r--r-- | LevelDesign/tiled_files/ending.tmx | 111 | ||||
| -rw-r--r-- | LevelDesign/tiled_files/maze.tmx | 58 | ||||
| -rw-r--r-- | LevelDesign/tiled_files/split.tmx | 86 | ||||
| -rw-r--r-- | LevelDesign/tiled_files/weapons_forest_.tsx | 4 | ||||
| -rw-r--r-- | LevelDesign/weapons_dungeon.png | bin | 0 -> 1194 bytes | |||
| -rw-r--r-- | LevelDesign/weapons_forest_.png | bin | 0 -> 1131 bytes | |||
| -rw-r--r-- | assets/Ending/ending-overhang.png | bin | 0 -> 5537 bytes | |||
| -rw-r--r-- | assets/Ending/ending.png | bin | 0 -> 19650 bytes | |||
| -rw-r--r-- | assets/Maze/floormaze.png | bin | 0 -> 15312 bytes | |||
| -rw-r--r-- | assets/Maze/intheboxmaze.png | bin | 0 -> 7189 bytes | |||
| -rw-r--r-- | assets/Maze/invisiblemaze.png | bin | 0 -> 8748 bytes | |||
| -rw-r--r-- | assets/Maze/justintimemaze.png | bin | 0 -> 7027 bytes | |||
| -rw-r--r-- | assets/Maze/maze.png | bin | 0 -> 5550 bytes | |||
| -rw-r--r-- | assets/Maze/mazewalls.png | bin | 0 -> 3655 bytes | |||
| -rw-r--r-- | assets/death.ogg | bin | 0 -> 65669 bytes | |||
| -rw-r--r-- | assets/hurt.wav | bin | 0 -> 16192 bytes | |||
| -rw-r--r-- | assets/intro.ogg | bin | 0 -> 55421 bytes | |||
| -rw-r--r-- | assets/map2-avoidspikes.png | bin | 0 -> 7529 bytes | |||
| -rw-r--r-- | assets/map2-justin.png | bin | 0 -> 6439 bytes | |||
| -rw-r--r-- | assets/map2-time.png | bin | 0 -> 6350 bytes | |||
| -rw-r--r-- | assets/map2.png | bin | 19774 -> 22933 bytes | |||
| -rw-r--r-- | assets/mapinit-inside.png | bin | 6074 -> 6653 bytes | |||
| -rw-r--r-- | assets/mapinit-ladder.png | bin | 5919 -> 6486 bytes | |||
| -rw-r--r-- | assets/mapinit-wasd.png | bin | 6440 -> 6807 bytes | |||
| -rw-r--r-- | assets/mapinit.png | bin | 25220 -> 25489 bytes | |||
| -rw-r--r-- | assets/resetprompt.png | bin | 0 -> 5279 bytes | |||
| -rw-r--r-- | src/levels.rb | 230 | ||||
| -rw-r--r-- | src/logic.rb | 95 |
29 files changed, 558 insertions, 26 deletions
diff --git a/LevelDesign/dungeon_ v1.0/dungeon_.png b/LevelDesign/dungeon_ v1.0/dungeon_.png Binary files differindex 5ba14f3..60f1225 100644 --- a/LevelDesign/dungeon_ v1.0/dungeon_.png +++ b/LevelDesign/dungeon_ v1.0/dungeon_.png diff --git a/LevelDesign/tiled_files/ending.tmx b/LevelDesign/tiled_files/ending.tmx new file mode 100644 index 0000000..27ae9b0 --- /dev/null +++ b/LevelDesign/tiled_files/ending.tmx @@ -0,0 +1,111 @@ +<?xml version="1.0" encoding="UTF-8"?> +<map version="1.5" tiledversion="1.7.2" orientation="orthogonal" renderorder="right-down" width="29" height="22" tilewidth="16" tileheight="16" infinite="0" nextlayerid="5" nextobjectid="1"> + <tileset firstgid="1" source="dungeon_.tsx"/> + <tileset firstgid="281" source="dungeonDecoration_1.tsx"/> + <tileset firstgid="729" source="dungeonDecoration_0.tsx"/> + <tileset firstgid="898" source="waterLavaAcid_.tsx"/> + <layer id="1" name="Floor" width="29" height="22"> + <data encoding="csv"> +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,146,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,148,0,0,0,0, +0,0,0,0,0,160,965,963,963,963,966,161,213,213,213,213,213,161,161,965,963,963,963,966,162,0,0,0,0, +0,0,0,0,0,160,945,924,925,926,943,161,213,213,213,213,213,161,161,945,924,925,926,943,162,0,0,0,0, +0,0,0,0,0,160,945,943,944,945,943,161,213,213,213,213,213,161,161,945,943,944,945,943,162,0,0,0,0, +0,0,0,0,0,160,945,962,963,964,943,161,213,213,213,213,213,161,161,945,962,963,964,943,162,0,0,0,0, +0,0,0,0,0,160,984,925,925,925,985,161,213,213,213,213,213,161,161,984,925,925,925,985,162,0,0,0,0, +0,0,0,0,0,160,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,162,0,0,0,0, +0,0,0,0,0,160,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,162,0,0,0,0, +0,0,0,0,0,174,175,175,175,175,175,175,175,149,161,145,175,175,175,175,175,175,175,175,176,0,0,0,0, +0,0,0,0,0,188,189,189,189,189,189,189,189,163,161,159,189,189,189,189,189,189,189,189,190,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,160,161,162,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,160,161,162,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,160,161,162,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,146,147,177,161,173,147,148,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,160,161,161,161,161,161,162,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,160,161,161,161,161,161,162,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,160,161,161,161,161,161,162,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,174,175,175,175,175,175,176,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,188,189,189,189,189,189,190,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +</data> + </layer> + <layer id="4" name="Carpet" width="29" height="22"> + <data encoding="csv"> +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,827,828,829,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,840,841,842,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,853,854,855,0,0,0,0,0,0, +0,0,0,0,0,0,788,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,790,0,0,0,0,0, +0,0,0,0,0,0,801,802,802,802,802,802,802,802,802,802,802,802,802,802,802,802,802,803,0,0,0,0,0, +0,0,0,0,0,0,814,815,815,815,815,815,815,792,802,791,815,815,815,815,815,815,815,816,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,801,802,803,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,801,802,803,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,801,802,803,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,788,789,789,789,790,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,801,802,802,802,803,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,814,815,815,815,816,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +</data> + </layer> + <layer id="2" name="Wall" width="29" height="22"> + <data encoding="csv"> +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,16,59,59,17,59,59,59,59,59,17,59,59,59,59,59,59,17,59,59,19,0,0,0,0, +0,0,0,0,0,30,73,73,31,73,73,73,73,73,31,73,73,73,73,73,73,31,73,73,33,0,0,0,0, +0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,0,0,0,0, +0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,0,0,0,0, +0,0,0,0,0,44,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,0,0,0,0, +0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,0,0,0,0, +0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,0,0,0,0, +0,0,0,0,0,44,0,0,0,0,0,0,0,320,321,322,0,0,0,0,0,0,0,0,44,0,0,0,0, +0,0,0,0,0,86,59,59,59,59,59,59,59,352,353,354,59,59,59,59,59,59,59,59,89,0,0,0,0, +0,0,0,0,0,100,73,73,73,73,73,73,73,384,385,386,73,73,73,73,73,73,73,73,103,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,16,59,50,0,49,59,19,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,30,73,64,0,63,73,33,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,48,0,0,0,0,0,48,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,62,0,0,0,0,0,62,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +</data> + </layer> + <layer id="3" name="Decoration" width="29" height="22"> + <data encoding="csv"> +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,786,787,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,799,800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,485,0,0,0,0,0,0,0,0,0,0,0,0,769,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,801,802,803,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,801,802,803,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,801,802,803,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,805,802,804,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,802,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +</data> + </layer> +</map> diff --git a/LevelDesign/tiled_files/maze.tmx b/LevelDesign/tiled_files/maze.tmx new file mode 100644 index 0000000..156c102 --- /dev/null +++ b/LevelDesign/tiled_files/maze.tmx @@ -0,0 +1,58 @@ +<?xml version="1.0" encoding="UTF-8"?> +<map version="1.5" tiledversion="1.7.2" orientation="orthogonal" renderorder="right-down" width="29" height="22" tilewidth="16" tileheight="16" infinite="0" nextlayerid="3" nextobjectid="1"> + <tileset firstgid="1" source="dungeon_.tsx"/> + <tileset firstgid="281" source="dungeonDecoration_1.tsx"/> + <tileset firstgid="729" source="waterLavaAcid_.tsx"/> + <layer id="1" name="Floor" width="29" height="22"> + <data encoding="csv"> +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,146,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147, +0,0,0,0,0,160,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,796,794,794,794, +0,0,0,0,0,160,161,161,161,161,161,161,161,161,161,161,161,897,895,895,895,898,161,161,161,776,777,777,777, +0,0,0,0,0,160,161,161,161,161,161,161,161,161,161,161,161,877,878,878,878,875,161,161,161,776,813,777,814, +0,0,0,0,0,160,161,161,161,161,161,161,161,161,161,161,161,916,857,857,857,917,161,161,161,776,777,813,814, +0,0,0,0,0,160,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,776,777,777,777, +0,0,0,0,0,160,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,776,777,777,777, +0,0,0,0,0,160,161,161,161,161,161,161,161,161,145,175,175,175,175,175,149,161,161,161,161,776,777,813,777, +0,0,0,0,0,160,161,161,161,161,161,161,161,161,159,189,189,189,189,189,163,161,161,161,161,776,813,777,814, +0,0,0,0,0,160,161,161,161,161,161,161,161,161,173,147,147,147,147,147,177,161,161,161,161,776,777,777,777, +0,0,0,0,0,160,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,776,812,814,777, +0,0,0,0,0,160,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,776,777,777,812, +0,0,0,0,0,160,161,161,161,161,161,161,161,161,421,161,161,161,161,161,161,161,161,161,161,815,756,756,756, +0,0,0,0,0,174,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175, +0,0,0,0,0,188,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +</data> + </layer> + <layer id="2" name="Wall" width="29" height="22"> + <data encoding="csv"> +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,0, +0,0,0,0,0,49,59,59,59,59,59,59,59,59,19,0,0,16,59,59,59,19,0,0,0,0,62,0,0, +0,0,0,0,0,63,73,73,73,73,73,73,73,73,33,0,0,30,73,73,73,33,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,16,59,59,50,0,0,49,89,0,0,58,50,0,49,89,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,30,73,73,64,0,0,63,103,0,0,72,64,0,63,103,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,86,59,59,59,59,59,19,0,0,0,0,0, +0,0,0,0,0,0,0,58,59,59,59,59,59,59,19,0,0,100,73,73,73,73,73,33,0,0,0,0,0, +0,0,0,0,0,0,0,72,73,73,73,73,73,73,33,0,0,0,0,0,0,0,0,47,0,0,0,0,0, +0,0,0,0,0,0,0,48,0,16,59,59,19,0,62,0,0,0,0,0,49,59,59,89,0,0,0,0,0, +0,0,0,0,0,0,0,62,0,30,73,73,33,0,0,0,0,0,0,0,63,73,73,103,0,0,0,0,0, +0,0,0,0,0,0,0,49,59,89,0,0,86,59,59,59,59,59,59,59,18,59,59,50,0,0,0,0,0, +0,0,0,0,0,0,0,63,73,103,0,0,100,73,73,73,73,73,73,73,32,73,73,64,0,0,20,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,0,0,0,0,0,48,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,62,0,0,0,0,0,62,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +</data> + </layer> +</map> diff --git a/LevelDesign/tiled_files/split.tmx b/LevelDesign/tiled_files/split.tmx new file mode 100644 index 0000000..97fa2ad --- /dev/null +++ b/LevelDesign/tiled_files/split.tmx @@ -0,0 +1,86 @@ +<?xml version="1.0" encoding="UTF-8"?> +<map version="1.5" tiledversion="1.7.2" orientation="orthogonal" renderorder="right-down" width="29" height="22" tilewidth="16" tileheight="16" infinite="0" nextlayerid="4" nextobjectid="1"> + <tileset firstgid="1" source="dungeon_.tsx"/> + <tileset firstgid="281" source="traps_.tsx"/> + <tileset firstgid="411" source="dungeonDecoration_1.tsx"/> + <tileset firstgid="859" source="dungeonDecoration_0.tsx"/> + <tileset firstgid="1028" source="waterLavaAcid_.tsx"/> + <layer id="1" name="Tile Layer 1" width="29" height="22"> + <data encoding="csv"> +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,146,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,148,0, +0,160,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,162,0, +0,160,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,162,0, +0,160,161,1089,1087,1087,1087,1087,1087,1087,1087,1087,1087,1087,1087,1087,1087,1087,1087,1087,1087,1087,1090,161,161,161,213,162,0, +0,160,161,1069,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1067,394,161,161,394,162,0, +0,160,161,1069,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1067,161,161,161,161,162,0, +0,160,161,1108,1049,1049,1049,1049,1049,1049,1049,1050,1070,1070,1070,1070,1048,1049,1049,1049,1050,1070,1067,161,161,161,161,162,0, +0,160,161,161,161,161,161,161,161,161,161,1069,1070,1070,1070,1070,1067,161,161,161,1069,1070,1067,161,161,161,161,162,0, +0,174,175,175,175,175,175,175,175,149,161,1069,1070,1070,1070,1070,1067,161,551,161,1069,1070,1067,161,161,161,161,162,0, +0,188,189,189,189,189,189,189,189,163,161,1069,1070,1070,1070,1070,1067,161,161,161,1069,1070,1067,161,161,161,161,162,0, +0,0,0,0,0,146,147,147,147,177,161,1069,1070,1070,1070,1070,1086,1090,161,1089,1088,1070,1067,161,161,161,161,162,0, +0,0,0,0,0,160,161,1089,1087,1087,1087,1088,1070,1070,1070,1070,1070,1067,161,1069,1070,1070,1067,161,161,161,161,162,0, +0,0,0,0,0,160,161,1069,1070,1070,1070,1070,1070,1070,1070,1070,1070,1067,161,1069,1070,1070,1067,161,161,161,161,162,0, +0,146,147,147,147,177,161,1108,1049,1049,1049,1049,1049,1049,1049,1049,1049,1109,161,1108,1049,1049,1109,161,161,161,161,162,0, +0,160,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,162,0, +0,174,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,176,0, +0,188,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,190,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +</data> + </layer> + <layer id="3" name="Carpet" width="29" height="22"> + <data encoding="csv"> +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,918,919,919,919,920,918,919,919,919,919,920,0,0,0,879,880,880,880,880,880,880,880,880,880,880,881,0,0, +0,931,932,932,932,934,935,932,932,932,932,934,919,920,0,892,893,893,893,893,893,893,893,893,893,893,894,0,0, +0,931,932,932,932,932,932,932,921,922,932,932,932,933,0,892,893,893,893,893,893,893,893,893,893,893,894,0,0, +0,931,932,921,945,945,945,945,946,944,945,945,945,946,0,905,906,906,906,906,906,906,906,906,906,906,907,0,0, +0,931,932,933,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,931,932,933,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,931,932,934,919,919,919,919,919,919,919,920,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,931,932,932,932,932,932,932,932,932,932,933,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,944,945,945,945,945,945,945,945,922,932,933,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,931,932,933,0,0,0,0,0,957,958,959,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,931,932,933,0,0,0,0,0,970,971,972,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,944,945,946,0,0,0,0,0,970,971,972,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,970,971,972,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,970,971,972,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,983,984,985,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +</data> + </layer> + <layer id="2" name="Walls" width="29" height="22"> + <data encoding="csv"> +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,50,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,64,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,447,448,449,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,479,480,481,50,0,0,0,394,394,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,511,512,513,64,0,0,0,394,394,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,444,445,445,446,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,476,477,477,478,50,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,508,0,0,510,64,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +</data> + </layer> +</map> diff --git a/LevelDesign/tiled_files/weapons_forest_.tsx b/LevelDesign/tiled_files/weapons_forest_.tsx new file mode 100644 index 0000000..f0c99ba --- /dev/null +++ b/LevelDesign/tiled_files/weapons_forest_.tsx @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> +<tileset version="1.5" tiledversion="1.7.2" name="weapons_forest_" tilewidth="16" tileheight="16" tilecount="21" columns="3"> + <image source="../weapons_forest_.png" width="60" height="120"/> +</tileset> diff --git a/LevelDesign/weapons_dungeon.png b/LevelDesign/weapons_dungeon.png Binary files differnew file mode 100644 index 0000000..32a28e4 --- /dev/null +++ b/LevelDesign/weapons_dungeon.png diff --git a/LevelDesign/weapons_forest_.png b/LevelDesign/weapons_forest_.png Binary files differnew file mode 100644 index 0000000..c66961c --- /dev/null +++ b/LevelDesign/weapons_forest_.png diff --git a/assets/Ending/ending-overhang.png b/assets/Ending/ending-overhang.png Binary files differnew file mode 100644 index 0000000..c5ba777 --- /dev/null +++ b/assets/Ending/ending-overhang.png diff --git a/assets/Ending/ending.png b/assets/Ending/ending.png Binary files differnew file mode 100644 index 0000000..f9528f7 --- /dev/null +++ b/assets/Ending/ending.png diff --git a/assets/Maze/floormaze.png b/assets/Maze/floormaze.png Binary files differnew file mode 100644 index 0000000..7df2caf --- /dev/null +++ b/assets/Maze/floormaze.png diff --git a/assets/Maze/intheboxmaze.png b/assets/Maze/intheboxmaze.png Binary files differnew file mode 100644 index 0000000..bf69db6 --- /dev/null +++ b/assets/Maze/intheboxmaze.png diff --git a/assets/Maze/invisiblemaze.png b/assets/Maze/invisiblemaze.png Binary files differnew file mode 100644 index 0000000..5ef0665 --- /dev/null +++ b/assets/Maze/invisiblemaze.png diff --git a/assets/Maze/justintimemaze.png b/assets/Maze/justintimemaze.png Binary files differnew file mode 100644 index 0000000..188783c --- /dev/null +++ b/assets/Maze/justintimemaze.png diff --git a/assets/Maze/maze.png b/assets/Maze/maze.png Binary files differnew file mode 100644 index 0000000..960814f --- /dev/null +++ b/assets/Maze/maze.png diff --git a/assets/Maze/mazewalls.png b/assets/Maze/mazewalls.png Binary files differnew file mode 100644 index 0000000..ea5d6f4 --- /dev/null +++ b/assets/Maze/mazewalls.png diff --git a/assets/death.ogg b/assets/death.ogg Binary files differnew file mode 100644 index 0000000..66b498b --- /dev/null +++ b/assets/death.ogg diff --git a/assets/hurt.wav b/assets/hurt.wav Binary files differnew file mode 100644 index 0000000..9af9b58 --- /dev/null +++ b/assets/hurt.wav diff --git a/assets/intro.ogg b/assets/intro.ogg Binary files differnew file mode 100644 index 0000000..29016d2 --- /dev/null +++ b/assets/intro.ogg diff --git a/assets/map2-avoidspikes.png b/assets/map2-avoidspikes.png Binary files differnew file mode 100644 index 0000000..44743ea --- /dev/null +++ b/assets/map2-avoidspikes.png diff --git a/assets/map2-justin.png b/assets/map2-justin.png Binary files differnew file mode 100644 index 0000000..2bec39e --- /dev/null +++ b/assets/map2-justin.png diff --git a/assets/map2-time.png b/assets/map2-time.png Binary files differnew file mode 100644 index 0000000..461170b --- /dev/null +++ b/assets/map2-time.png diff --git a/assets/map2.png b/assets/map2.png Binary files differindex 2f0d263..c38028e 100644 --- a/assets/map2.png +++ b/assets/map2.png diff --git a/assets/mapinit-inside.png b/assets/mapinit-inside.png Binary files differindex 5010eec..a2d24bf 100644 --- a/assets/mapinit-inside.png +++ b/assets/mapinit-inside.png diff --git a/assets/mapinit-ladder.png b/assets/mapinit-ladder.png Binary files differindex 457b739..acf911d 100644 --- a/assets/mapinit-ladder.png +++ b/assets/mapinit-ladder.png diff --git a/assets/mapinit-wasd.png b/assets/mapinit-wasd.png Binary files differindex d867b3f..a34f933 100644 --- a/assets/mapinit-wasd.png +++ b/assets/mapinit-wasd.png diff --git a/assets/mapinit.png b/assets/mapinit.png Binary files differindex 2fcec9e..d7cb695 100644 --- a/assets/mapinit.png +++ b/assets/mapinit.png diff --git a/assets/resetprompt.png b/assets/resetprompt.png Binary files differnew file mode 100644 index 0000000..937aa6d --- /dev/null +++ b/assets/resetprompt.png diff --git a/src/levels.rb b/src/levels.rb index c5e00a0..7f84302 100644 --- a/src/levels.rb +++ b/src/levels.rb @@ -32,13 +32,13 @@ level0 = { lambda do |time| xstart = 494 ystart = 355 - xstartnode = 827 - ystartnode = 431 - xendnode = 816 + xstartnode = 800 + ystartnode = 440 + xendnode = 780 yendnode = 354 xend = 758 yend = 152 - easeTime = 1 - Math.cos((time * Math::PI) / 2) + easeTime = time #1 - Math.cos((time * Math::PI) / 2) [Math.bezier([xstart, xstartnode, xendnode, xend],easeTime)-(250/2), Math.bezier([ystart, ystartnode, yendnode, yend],easeTime)-(250/2)] end, @@ -61,22 +61,22 @@ level0 = { path: './assets/mapinit-wasd.png', time_start: 0, time_end: -1, - source_rec: Rl::Rectangle.new(0,0,284,204), - dest_rec: Rl::Rectangle.new(0,0,284*2,204*2), + source_rec: Rl::Rectangle.new(0,0,450,325), + dest_rec: Rl::Rectangle.new(0,0,450*2,325*2), }, { path: './assets/mapinit-inside.png', time_start: 0.7, time_end: -1, - source_rec: Rl::Rectangle.new(0,0,421,190), - dest_rec: Rl::Rectangle.new(0,0,421*2,190*2), + source_rec: Rl::Rectangle.new(0,0,450,325), + dest_rec: Rl::Rectangle.new(0,0,450*2,325*2), }, { path: './assets/mapinit-ladder.png', time_start: 1.3, time_end: -1, - source_rec: Rl::Rectangle.new(0,0,192,81), - dest_rec: Rl::Rectangle.new(0,0,192*2,81*2), + source_rec: Rl::Rectangle.new(0,0,450,325), + dest_rec: Rl::Rectangle.new(0,0,450*2,325*2), }, ], end_goal: [160*2,272*2,16*2,16*2], @@ -215,7 +215,29 @@ level1 = { end ), scissor_speed: [1.0/2.0, 1.0/3.5, 1.0/6.0, 1.0/4.5, 1.0/3.0], - timed_render: [], + timed_render: [ + { + path: './assets/map2-avoidspikes.png', + time_start: 0.55, + time_end: -1, + source_rec: Rl::Rectangle.new(42,170,132,49), + dest_rec: Rl::Rectangle.new(38*2,170*2,132*2,49*2), + }, + { + path: './assets/map2-justin.png', + time_start: 2.50, + time_end: -1, + source_rec: Rl::Rectangle.new(168,133,84,25), + dest_rec: Rl::Rectangle.new(168*2,133*2,84*2,25*2), + }, + { + path: './assets/map2-time.png', + time_start: 2.9, + time_end: -1, + source_rec: Rl::Rectangle.new(273,131,40,22), + dest_rec: Rl::Rectangle.new(273*2,131*2,40*2,22*2), + }, + ], end_goal: [352*2,240*2,16*2,16*2], walls: [ [178, 180, 60, 56], @@ -260,8 +282,192 @@ level1 = { ] } + +mazelevel= { + map_texture: { + path: './assets/Maze/floormaze.png', + source_rec: Rl::Rectangle.new(0,0,480,368), + dest_rec: Rl::Rectangle.new(0,0,480*2,368*2) + }, + overhang_texture: { + path: './assets/map2-overhang.png', + source_rec: Rl::Rectangle.new(0,0,1,1), + dest_rec: Rl::Rectangle.new(9999,9999,0,0) + }, + player_spawn: Rl::Vector2.new(460,130), + scissor_size: Path.new( + lambda do |time| + [200, + 607] + end, + ), + scissor_path: Path.new( + lambda do |time| + #xstart = 206 + #ystart = 509 + #xstartnode = 204 + #ystartnode = 390 + #xendnode = 228 + #yendnode = 336 + #xend = 153 + #yend = 268 + #easeTime = time #1 - Math.cos((time * Math::PI) / 2) + #[Math.bezier([xstart, xstartnode, xendnode, xend],easeTime)-(250/2), + # Math.bezier([ystart, ystartnode, yendnode, yend],easeTime)-(250/2)] + [(270 * -Math.sin(120 * (time))+510)-(200/2), + 367-(607/2)] + end, + ), + scissor_speed: [1.0/200.0], + timed_render: [ + { + path: './assets/Maze/mazewalls.png', + time_start: 0, + time_end: -1, + source_rec: Rl::Rectangle.new(0,0,900,650), + dest_rec: Rl::Rectangle.new(0*2,0*2,900*2,650*2), + }, + { + path: './assets/Maze/invisiblemaze.png', + time_start: 0, + time_end: -1, + source_rec: Rl::Rectangle.new(439,64,153,68), + dest_rec: Rl::Rectangle.new(438,64,153,58), + }, + ], + end_goal: [452,516,24,24], + walls: [ + [818,180,110,344], + [842,524,86,42], + [842,140,86,40], + [170,42,758,100], + [97,62,75,526], + [172,566,732,54], + [554,180,140,88], + [554,268,44,10], + [650,268,44,10], + [554,278,12,64], + [556,308,192,34], + [468,374,184,56], + [662,404,96,34], + [746,308,12,130], + #[652,404,10,26], + #[650,430,12,38], + [618,468,140,34], + [650,502,12,64], + [406,468,160,34], + #[394,404,12,162], + [298,404,96,34], + [298,438,12,64], + [234,468,64,34], + [458,340,12,66], + [246,340,212,34], + [234,244,12,194], + #[246,244,123,24], + [426,244,44,34], + [458,180,12,64], + [172,180,286,34], + [394,404,12,98], + [234,244,108,32], + [566,468,52,34] + ], + damage_areas: [ + #[10, 0,0, 100,100], + ], + damage_walls: [ + #[1, 612, 186, 24, 54], # made spikes taller downward so player cant just walk below them + #[1, 422, 186, 24, 54], + #[1, 708, 154, 24, 34], + #[1, 516, 154, 24, 34], + #[1, 324, 154, 24, 34] + ] +} + +lastlevel = { + map_texture: { + path: './assets/Ending/ending.png', + source_rec: Rl::Rectangle.new(0,0,464,352), + dest_rec: Rl::Rectangle.new(0,0,464*2,352*2) + }, + overhang_texture: { + path: './assets/Ending/ending-overhang.png', + source_rec: Rl::Rectangle.new(0,0,252,155), + dest_rec: Rl::Rectangle.new(0,0,252*2,155*2) + }, + player_spawn: Rl::Vector2.new(465,557), + scissor_size: Path.new( + lambda do |time| + [Math.interpolate(232.5,94.2,time), + Math.interpolate(207.0,80.8,time)] + end, + lambda do |time| + [Math.interpolate(94.2,682.2,time), + Math.interpolate(80.8,357.2,time)] + end, + ), + scissor_path: Path.new( + lambda do |time| + xstart = 465.8 + ystart = 558.9 + xstartnode = 465.8 + ystartnode = 558.9 + xendnode = 465.2 + yendnode = 381 + xend = 465.8 + yend = 319.7 + easeTime = time#1 - Math.cos((time * Math::PI) / 2) + [Math.bezier([xstart, xstartnode, xendnode, xend],easeTime)-(Math.interpolate(232.5,94.2,time)/2), + Math.bezier([ystart, ystartnode, yendnode, yend],easeTime)-(Math.interpolate(207.0,80.8,time)/2)] + end, + lambda do |time| + xstart = 465.8 + ystart = 319.7 + xstartnode = 473.1 + ystartnode = 263.1 + xendnode = 168.7 + yendnode = 129.4 + xend = 479.9 + yend = 198.0 + + [Math.bezier([xstart, xstartnode, xendnode, xend],time)-(Math.interpolate(94.2,682.2,time)/2), + Math.bezier([ystart, ystartnode, yendnode, yend],time)-(Math.interpolate(80.8,357.2,time)/2)] + end + ), + scissor_speed: [1.0/3.0, 1.0/3.0], + timed_render: [], + end_goal: [9999,9999,1,1], + walls: [ + [106,308,320,167], + [315,502,59,63], + [311,475,125,27], + [320,630,280,47], + [313,565,49,65], + [566,566,37,64], + [554,468,49,98], + [502,467,52,37], + [502,344,152,125], + [480,308,310,36], + [426,308,22,34], + [210,116,124,120], + [626,116,124,120], + [358,86,52,36], + [65,52,117,256], + [182,8,621,80], + [778,88,77,220], + + ], + damage_areas: [ + #[10, 0,0, 100,100], + ], + damage_walls: [ + #[10, 350,200, 050,350], + ] +} + Levels.push(level0) Levels.push(level1) +Levels.push(mazelevel) +Levels.push(lastlevel) FECS::Sys.new('ConstructLevel') do FECS::Sys::DestroyLevel.call @@ -310,7 +516,7 @@ FECS::Sys.new('ConstructLevel') do source_rec: rndr[:source_rec], dest_rec: rndr[:dest_rec], rotation: 0, - tint: RED + tint: BkgWhite ) end diff --git a/src/logic.rb b/src/logic.rb index d800d93..ffac917 100644 --- a/src/logic.rb +++ b/src/logic.rb @@ -80,7 +80,8 @@ FECS::Cmp.new('Transition', :state, :rec, :time).new( rec: Rl::Rectangle.new(0,0,0,0), time: 0) -BkgWhite = Rl::Color.new(255,255,255,255) +BkgWhite = Rl::Color.new(255,255,255,200) +PlayerBkgWhite = Rl::Color.new(255,200,200,150) #ScissorPath = Path.new( # lambda do |time| # [Math.bezier([200, 200, 1183, 200],time)-150, @@ -90,7 +91,7 @@ BkgWhite = Rl::Color.new(255,255,255,255) #FECS::Cmp::ScissorBox.new(rec: Rl::Rectangle.new(200,200,250,250)) - +ResetPrompt = Rl::Texture.new('./assets/resetprompt.png') FECS::Cmp::ScissorTime.new(time: 0) EndGoal = FECS::Cmp::EndGoal.new Input = FECS::Cmp::Input.new @@ -192,9 +193,9 @@ Player = FECS::Ent.new( rotation: 0 ), FECS::Cmp::Movement.new( - deceleration: 2500, - acceleration: 1000, - max_speed: 400, + deceleration: 1500, + acceleration: 1500, + max_speed: 300, ), FECS::Cmp::Hitbox.new( #rec: Rl::Rectangle.new(0,0,16*2,20*2), @@ -205,6 +206,9 @@ Player = FECS::Ent.new( ) Music = false # prevents a longjmp error in browsers +HurtSound = false +IntroSound = false +DeathSound = false Resetting = false ScissorPath = 10000 ScissorSize = 1 @@ -221,7 +225,7 @@ FECS::Sys.new('Music') do #puts 'load device' Rl.init_audio_device #puts 'set master' - Rl.set_master_volume(0.1) + Rl.set_master_volume(0.5) end end #puts 'check if sound exists' @@ -229,12 +233,15 @@ FECS::Sys.new('Music') do if !Music #puts 'load it' Music = Rl::Sound.new('./assets/music.ogg') + HurtSound = Rl::Sound.new('../assets/hurt.wav') + IntroSound = Rl::Sound.new('../assets/intro.ogg') + DeathSound = Rl::Sound.new('../assets/death.ogg') #puts 'set volume' - #Music.volume = 0.05 #puts 'check if its playing' elsif !Music.playing? #puts 'play it' Music.play + Music.volume = 0.09 end end #if Rl.key_pressed? 87 @@ -243,6 +250,13 @@ FECS::Sys.new('Music') do # Music.play #end end +FECS::Sys.new('IntroSound') do + button_clicked = FECS::Cmp::Button.first.clicked + if Rl.audio_device_ready? && IntroSound && !IntroSoundPlayed && button_clicked + IntroSoundPlayed = true + IntroSound.play + end +end FECS::Sys.new('Transition') do cmp = FECS::Cmp::Transition.first #cmp.state = 'into_init' if Rl.mouse_button_pressed? 0 @@ -253,7 +267,7 @@ FECS::Sys.new('Transition') do cmp.time = 0 end if cmp.state == 'into' - cmp.time += Rl.frame_time + cmp.time += (1.0/60.0)#Rl.frame_time if cmp.time >= 1 cmp.state = 'outof_init' cmp.time = 1 @@ -289,7 +303,7 @@ FECS::Sys.new('Transition') do cmp.time = -0.5 end if cmp.state == 'outof' - cmp.time += Rl.frame_time + cmp.time += (1.0/60.0)#Rl.frame_time if cmp.time >= 1 cmp.state = 'none' cmp.time = 1 @@ -333,6 +347,7 @@ FECS::Scn::Menu.add( button.clicked = false end if trans.state == 'outof_init' + IntroSound.play if Rl.platform == 'web' FECS::Sys::DestroyTitleScreen.call end end @@ -382,7 +397,7 @@ FECS::Scn::Play.add( Input.show_debug = Rl.key_down? 80 # P Input.reset = Rl.key_down? 82 # R #if Rl.key_pressed? 82 - #FECS::Sys::ConstructLevel.call + #FECS::Sys::ConstructLevel.call #end end, FECS::Sys.new('PlayerReset') do @@ -561,12 +576,18 @@ FECS::Scn::Play.add( if player_hitbox.rec.collide_with_rec?(dmg_hitbox.rec) FECS::Cmp::Player.first.state = 'set_damaged' hp_cmp.value -= dmg_hitbox.damage - hp_cmp.invincible_timer = hp_cmp.max_invincible_time #puts "oof -#{dmg_hitbox.damage} hp" #puts "hp: #{hp_cmp.value}" if hp_cmp.value <= 0 FECS::Cmp::Player.first.state = 'set_dead' #puts 'ded' + DeathSound.play if Rl.platform == 'web' + else + hp_cmp.invincible_timer = hp_cmp.max_invincible_time + if Rl.platform == 'web' + HurtSound.play + HurtSound.volume = 0.45 + end end break end @@ -574,12 +595,18 @@ FECS::Scn::Play.add( else FECS::Cmp::Player.first.state = 'set_damaged' hp_cmp.value -= 1 - hp_cmp.invincible_timer = hp_cmp.max_invincible_time #puts "oof -#{1} hp" #puts "hp: #{hp_cmp.value}" if hp_cmp.value <= 0 FECS::Cmp::Player.first.state = 'set_dead' #puts 'ded' + DeathSound.play if Rl.platform == 'web' + else + hp_cmp.invincible_timer = hp_cmp.max_invincible_time + if Rl.platform == 'web' + HurtSound.play + HurtSound.volume = 0.45 + end end end end @@ -848,7 +875,8 @@ FECS::Scn::Play.add( Rl.draw_texture_pro(texture: result.texture, origin: Rl::Vector2.new(0,0), source_rec: result.source_rec, - dest_rec: result.dest_rec) + dest_rec: result.dest_rec, + tint: BkgWhite) end end end @@ -866,7 +894,7 @@ FECS::Scn::Play.add( origin: sprite_cmp.origin, source_rec: sprite_cmp.tileset.rec, dest_rec: sprite_cmp.dest_rec, - tint: Rl::Color.new(255,255,255,100), + tint: PlayerBkgWhite, rotation: sprite_cmp.rotation) end Rl.scissor_mode( @@ -943,22 +971,60 @@ FECS::Scn::Play.add( end end ) +FECS::Sys.new('SetBackgroundColor') do + trans = FECS::Cmp::Transition.first + if trans.state == 'none' + BkgWhite.a = 150 + PlayerBkgWhite.a = 100 + elsif trans.state == 'into' + BkgWhite.a = [Math.interpolate(150,-50,[trans.time,0].max),0].max + PlayerBkgWhite.a = [Math.interpolate(100,-50,[trans.time,0].max),0].max + elsif trans.state == 'outof' + BkgWhite.a = [Math.interpolate(-50,150,[trans.time,0].max),0].max + PlayerBkgWhite.a = [Math.interpolate(-50,100,[trans.time,0].max),0].max + end +end + +FECS::Sys.new('RenderResetText') do + trans = FECS::Cmp::Transition.first + if Player.component[FECS::Cmp::Hp].value <= 0 + if trans.state == 'into' + Rl.draw_texture_pro(texture: ResetPrompt, + origin: Rl::Vector2.new(0,0), + source_rec: Rl::Rectangle.new(0,0,900,650), + dest_rec: Rl::Rectangle.new(0,0,900,650), + tint: Rl::Color.new(255,255,255,Math.interpolate(255,0,trans.time))) + elsif trans.state == 'none' + Rl.draw_texture_pro(texture: ResetPrompt, + origin: Rl::Vector2.new(0,0), + source_rec: Rl::Rectangle.new(0,0,900,650), + dest_rec: Rl::Rectangle.new(0,0,900,650), + tint: WHITE) + + end + end +end #CurrentLevel.level = 0 FECS::Sys::ConstructTitleScreen.call FECS::Scn::Menu.add( FECS::Sys::Transition, + #FECS::Sys::IntroSound, FECS::Sys::Music, ) FECS::Scn::Play.add( FECS::Sys::Transition, FECS::Sys::Music, + FECS::Sys::SetBackgroundColor, + FECS::Sys::RenderResetText, ) FECS::Stg.add( FECS::Scn::Menu, ) FelECS::Order.sort( + #FECS::Sys::IntroSound, + FECS::Sys::Music, FECS::Sys::PlayerInput, FECS::Sys::PlayerReset, FECS::Sys::Button, @@ -980,4 +1046,5 @@ FelECS::Order.sort( FECS::Sys::Render, # Renders the debug hitboxes FECS::Sys::DebugRenderHitbox, + FECS::Sys::RenderResetText, ) |
