summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorrealtradam <[email protected]>2022-01-29 10:23:42 -0500
committerrealtradam <[email protected]>2022-01-29 10:23:42 -0500
commitba4b9076fc3bf79871d63390f22b51d95c0b6c22 (patch)
tree5e01aff4ab2d81a800a54a71b53d91c99743e947
parentf6dca23248e09f4fe2212b3fff6404585ff6725d (diff)
downloadorc-arena-of-time-ba4b9076fc3bf79871d63390f22b51d95c0b6c22.tar.gz
orc-arena-of-time-ba4b9076fc3bf79871d63390f22b51d95c0b6c22.zip
a lot
-rw-r--r--LevelDesign/dungeon_ v1.0/dungeon_.pngbin23743 -> 23639 bytes
-rw-r--r--LevelDesign/tiled_files/ending.tmx111
-rw-r--r--LevelDesign/tiled_files/maze.tmx58
-rw-r--r--LevelDesign/tiled_files/split.tmx86
-rw-r--r--LevelDesign/tiled_files/weapons_forest_.tsx4
-rw-r--r--LevelDesign/weapons_dungeon.pngbin0 -> 1194 bytes
-rw-r--r--LevelDesign/weapons_forest_.pngbin0 -> 1131 bytes
-rw-r--r--assets/Ending/ending-overhang.pngbin0 -> 5537 bytes
-rw-r--r--assets/Ending/ending.pngbin0 -> 19650 bytes
-rw-r--r--assets/Maze/floormaze.pngbin0 -> 15312 bytes
-rw-r--r--assets/Maze/intheboxmaze.pngbin0 -> 7189 bytes
-rw-r--r--assets/Maze/invisiblemaze.pngbin0 -> 8748 bytes
-rw-r--r--assets/Maze/justintimemaze.pngbin0 -> 7027 bytes
-rw-r--r--assets/Maze/maze.pngbin0 -> 5550 bytes
-rw-r--r--assets/Maze/mazewalls.pngbin0 -> 3655 bytes
-rw-r--r--assets/death.oggbin0 -> 65669 bytes
-rw-r--r--assets/hurt.wavbin0 -> 16192 bytes
-rw-r--r--assets/intro.oggbin0 -> 55421 bytes
-rw-r--r--assets/map2-avoidspikes.pngbin0 -> 7529 bytes
-rw-r--r--assets/map2-justin.pngbin0 -> 6439 bytes
-rw-r--r--assets/map2-time.pngbin0 -> 6350 bytes
-rw-r--r--assets/map2.pngbin19774 -> 22933 bytes
-rw-r--r--assets/mapinit-inside.pngbin6074 -> 6653 bytes
-rw-r--r--assets/mapinit-ladder.pngbin5919 -> 6486 bytes
-rw-r--r--assets/mapinit-wasd.pngbin6440 -> 6807 bytes
-rw-r--r--assets/mapinit.pngbin25220 -> 25489 bytes
-rw-r--r--assets/resetprompt.pngbin0 -> 5279 bytes
-rw-r--r--src/levels.rb230
-rw-r--r--src/logic.rb95
29 files changed, 558 insertions, 26 deletions
diff --git a/LevelDesign/dungeon_ v1.0/dungeon_.png b/LevelDesign/dungeon_ v1.0/dungeon_.png
index 5ba14f3..60f1225 100644
--- a/LevelDesign/dungeon_ v1.0/dungeon_.png
+++ b/LevelDesign/dungeon_ v1.0/dungeon_.png
Binary files differ
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
new file mode 100644
index 0000000..32a28e4
--- /dev/null
+++ b/LevelDesign/weapons_dungeon.png
Binary files differ
diff --git a/LevelDesign/weapons_forest_.png b/LevelDesign/weapons_forest_.png
new file mode 100644
index 0000000..c66961c
--- /dev/null
+++ b/LevelDesign/weapons_forest_.png
Binary files differ
diff --git a/assets/Ending/ending-overhang.png b/assets/Ending/ending-overhang.png
new file mode 100644
index 0000000..c5ba777
--- /dev/null
+++ b/assets/Ending/ending-overhang.png
Binary files differ
diff --git a/assets/Ending/ending.png b/assets/Ending/ending.png
new file mode 100644
index 0000000..f9528f7
--- /dev/null
+++ b/assets/Ending/ending.png
Binary files differ
diff --git a/assets/Maze/floormaze.png b/assets/Maze/floormaze.png
new file mode 100644
index 0000000..7df2caf
--- /dev/null
+++ b/assets/Maze/floormaze.png
Binary files differ
diff --git a/assets/Maze/intheboxmaze.png b/assets/Maze/intheboxmaze.png
new file mode 100644
index 0000000..bf69db6
--- /dev/null
+++ b/assets/Maze/intheboxmaze.png
Binary files differ
diff --git a/assets/Maze/invisiblemaze.png b/assets/Maze/invisiblemaze.png
new file mode 100644
index 0000000..5ef0665
--- /dev/null
+++ b/assets/Maze/invisiblemaze.png
Binary files differ
diff --git a/assets/Maze/justintimemaze.png b/assets/Maze/justintimemaze.png
new file mode 100644
index 0000000..188783c
--- /dev/null
+++ b/assets/Maze/justintimemaze.png
Binary files differ
diff --git a/assets/Maze/maze.png b/assets/Maze/maze.png
new file mode 100644
index 0000000..960814f
--- /dev/null
+++ b/assets/Maze/maze.png
Binary files differ
diff --git a/assets/Maze/mazewalls.png b/assets/Maze/mazewalls.png
new file mode 100644
index 0000000..ea5d6f4
--- /dev/null
+++ b/assets/Maze/mazewalls.png
Binary files differ
diff --git a/assets/death.ogg b/assets/death.ogg
new file mode 100644
index 0000000..66b498b
--- /dev/null
+++ b/assets/death.ogg
Binary files differ
diff --git a/assets/hurt.wav b/assets/hurt.wav
new file mode 100644
index 0000000..9af9b58
--- /dev/null
+++ b/assets/hurt.wav
Binary files differ
diff --git a/assets/intro.ogg b/assets/intro.ogg
new file mode 100644
index 0000000..29016d2
--- /dev/null
+++ b/assets/intro.ogg
Binary files differ
diff --git a/assets/map2-avoidspikes.png b/assets/map2-avoidspikes.png
new file mode 100644
index 0000000..44743ea
--- /dev/null
+++ b/assets/map2-avoidspikes.png
Binary files differ
diff --git a/assets/map2-justin.png b/assets/map2-justin.png
new file mode 100644
index 0000000..2bec39e
--- /dev/null
+++ b/assets/map2-justin.png
Binary files differ
diff --git a/assets/map2-time.png b/assets/map2-time.png
new file mode 100644
index 0000000..461170b
--- /dev/null
+++ b/assets/map2-time.png
Binary files differ
diff --git a/assets/map2.png b/assets/map2.png
index 2f0d263..c38028e 100644
--- a/assets/map2.png
+++ b/assets/map2.png
Binary files differ
diff --git a/assets/mapinit-inside.png b/assets/mapinit-inside.png
index 5010eec..a2d24bf 100644
--- a/assets/mapinit-inside.png
+++ b/assets/mapinit-inside.png
Binary files differ
diff --git a/assets/mapinit-ladder.png b/assets/mapinit-ladder.png
index 457b739..acf911d 100644
--- a/assets/mapinit-ladder.png
+++ b/assets/mapinit-ladder.png
Binary files differ
diff --git a/assets/mapinit-wasd.png b/assets/mapinit-wasd.png
index d867b3f..a34f933 100644
--- a/assets/mapinit-wasd.png
+++ b/assets/mapinit-wasd.png
Binary files differ
diff --git a/assets/mapinit.png b/assets/mapinit.png
index 2fcec9e..d7cb695 100644
--- a/assets/mapinit.png
+++ b/assets/mapinit.png
Binary files differ
diff --git a/assets/resetprompt.png b/assets/resetprompt.png
new file mode 100644
index 0000000..937aa6d
--- /dev/null
+++ b/assets/resetprompt.png
Binary files differ
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,
)