diff --git a/.github/makecode/blocks.png b/.github/makecode/blocks.png
new file mode 100644
index 0000000..ac20ef9
Binary files /dev/null and b/.github/makecode/blocks.png differ
diff --git a/main.blocks b/main.blocks
index d7f4283..d0556c1 100644
--- a/main.blocks
+++ b/main.blocks
@@ -1,4 +1,4 @@
-PlayerProjectileFoodEnemymySpriteitemmySprite2projectilepxpycanTPvaluelisttypemySprite3typeSpritelevelsleveltext listlevelStartMessageassets.image`myImage`{"commentRefs":[],"fieldData":{"img":"myImages.image3"}}500assets.image`myImage0`{"commentRefs":[],"fieldData":{"img":"myImages.image4"}}100mySprite0img`
+PlayerProjectileFoodEnemymySpriteitemmySprite2projectilepxpycanTPvaluelisttypemySprite3typeSpritelevelsleveltext listlevelStartMessageassets.image`myImage`{"commentRefs":[],"fieldData":{"img":"myImages.image3"}}500assets.image`myImage0`{"commentRefs":[],"fieldData":{"img":"myImages.image4"}}100mySprite0img`
. . . . . . . . . . . . . . . .
. . . . . f f f f f f . . . . .
. . . f f e e e e f 2 f . . . .
@@ -15,7 +15,58 @@
. . . f f f e e f 5 5 f f . . .
. . . f f f f f f f f f f . . .
. . . . f f . . . f f f . . . .
-`{"commentRefs":[],"fieldData":{"img":".WX)h{],0Z_I)E8dv9V|"}}PlayermySpritemySprite1000Sprite.ay@setmySprite500typeSprite0assets.image`red`{"commentRefs":[],"fieldData":{"img":"myImages.image1"}}Playertype0levels0tilemap`level6`{"commentRefs":[],"fieldData":{"tilemap":"level6"}}0tilemap`level1`{"commentRefs":[],"fieldData":{"tilemap":"level1"}}0tilemap`level3`{"commentRefs":[],"fieldData":{"tilemap":"level3"}}0tilemap`level4`{"commentRefs":[],"fieldData":{"tilemap":"level4"}}0tilemap`level5`{"commentRefs":[],"fieldData":{"tilemap":"level5"}}0tilemap`level7`{"commentRefs":[],"fieldData":{"tilemap":"level7"}}levelStartMessageThis is portal.py, you need to find the edgeless yum cube to find pass this test.You now have a portal device, use b to place portalsYou are much faster at this than the otherssome portals require great timingsome portals require you to look up when you place themlevel5202"E B C5 A B G A F "220startLevelimg`
+`{"commentRefs":[],"fieldData":{"img":"l_ujQ0a=odZU{rtH!!)h"}}PlayermySpritemySprite1000Sprite.ay@setmySprite500typeSprite0assets.image`red`{"commentRefs":[],"fieldData":{"img":"myImages.image1"}}Playertype0levels0tilemap`level6`{"commentRefs":[],"fieldData":{"tilemap":"level6"}}0tilemap`level1`{"commentRefs":[],"fieldData":{"tilemap":"level1"}}0tilemap`level3`{"commentRefs":[],"fieldData":{"tilemap":"level3"}}0tilemap`level4`{"commentRefs":[],"fieldData":{"tilemap":"level4"}}0tilemap`level5`{"commentRefs":[],"fieldData":{"tilemap":"level5"}}0tilemap`level7`{"commentRefs":[],"fieldData":{"tilemap":"level7"}}levelStartMessageThis is portal.py, you need to find the edgeless yum cube to find pass this test.You now have a portal device, use b to place portalsYou are much faster at this than the otherssome portals require great timingsome portals require you to look up when you place themYou, can't portal through bricks.level5202"E B C5 A B G A F "220TRUELT0Sprite.vxmySprite0mySpriteimg`
+. . . . . . . . . . . . . . . .
+. . . . f f f f f f . . . . . .
+. . . f 2 f e e e e f f . . . .
+. . f 2 2 2 f e e e e f f . . .
+. . f e e e e f f e e e f . . .
+. f e 2 2 2 2 e e f f f f . . .
+. f 2 e f f f f 2 2 2 e f . . .
+. f f f e e e f f f f f f f . .
+. f e e 4 4 f b e 4 4 e f f . .
+. . f e d d f 1 4 d 4 e e f . .
+. . . f d d d e e e e e f . . .
+. . . f e 4 e d d 4 f . . . . .
+. . . f 2 2 e d d e f . . . . .
+. . f f 5 5 f e e f f f . . . .
+. . f f f f f f f f f f . . . .
+. . . f f f . . . f f . . . . .
+`{"commentRefs":[],"fieldData":{"img":"EQT`0weFr(s-fMYbhA:O"}}px-1TRUEGT0Sprite.vxmySprite0mySpriteimg`
+. . . . . . . . . . . . . . . .
+. . . . . f f f f f f . . . . .
+. . . f f e e e e f 2 f . . . .
+. . f f e e e e f 2 2 2 f . . .
+. . f e e e f f e e e e f . . .
+. . f f f f e e 2 2 2 2 e f . .
+. . f e 2 2 2 f f f f e 2 f . .
+. f f f f f f f e e e f f f . .
+. f f e 4 4 e b f 4 4 e e f . .
+. f e e 4 d 4 1 f d d e f . . .
+. . f e e e e e d d d f . . . .
+. . . . f 4 d d e 4 e f . . . .
+. . . . f e d d e 2 2 f . . . .
+. . . f f f e e f 5 5 f f . . .
+. . . f f f f f f f f f f . . .
+. . . . f f . . . f f f . . . .
+`{"commentRefs":[],"fieldData":{"img":"$Q;n#UY@xVz*H*cSo,Ut"}}px1typeSprite0MINUS0ADD0CameraProperty.X0DIVIDE0280ADD0MINUS0CameraProperty.Y0DIVIDE0281000canTP1tilemap`level8`{"commentRefs":[],"fieldData":{"tilemap":"level8"}}controller.menuControllerButtonEvent.PressedTRUEtypetypeSpriteassets.image`red`{"commentRefs":[],"fieldData":{"img":"myImages.image1"}}type0typeSpriteassets.image`blue`{"commentRefs":[],"fieldData":{"img":"myImages.image2"}}type1controller.upControllerButtonEvent.Releasedpy0controller.upControllerButtonEvent.Pressedpy1controller.AControllerButtonEvent.PressedTRUEEQ0Sprite.vymySprite0music.footstepSprite.vy@setmySprite-150controller.downControllerButtonEvent.Pressedpy-1controller.downControllerButtonEvent.Releasedpy0controller.BControllerButtonEvent.Pressedmusic.pewPewprojectile0img`
+. . . . . . . . . . . . . . . .
+. . . . . . . . . . . . . . . .
+. . . . . . . . . . . . . . . .
+. . . . . . . . . . . . . . . .
+. . . . . . . . . . . . . . . .
+. . . . . . . 2 2 . . . . . . .
+. . . . . . 3 1 1 3 . . . . . .
+. . . . . 2 1 1 1 1 2 . . . . .
+. . . . . 2 1 1 1 1 2 . . . . .
+. . . . . . 3 1 1 3 . . . . . .
+. . . . . . . 2 2 . . . . . . .
+. . . . . . . . . . . . . . . .
+. . . . . . . . . . . . . . . .
+. . . . . . . . . . . . . . . .
+. . . . . . . . . . . . . . . .
+. . . . . . . . . . . . . . . .
+`{"commentRefs":[],"fieldData":{"img":"@kvwz2a%)+@Fb@y(Byoz"}}mySprite50MULTIPLY0px20050MULTIPLY0py-200spritePlayersprites.dungeon.doorClosedNorthlocationTRUEcanTPmusic.knockmySpritesprites.dungeon.doorOpenNorthcanTP0spritePlayersprites.dungeon.doorOpenNorthlocationTRUEcanTPmusic.knockmySpritesprites.dungeon.doorClosedNorthcanTP0spritePlayersprites.dungeon.collectibleRedCrystallocationlevel1TRUEEQ0level0levelstruemusic.baDingspritePlayersprites.swamp.swampTile7locationfalsespritePlayersprites.swamp.swampTile9locationfalsespriteProjectilelocationTRUE00locationsprites.dungeon.floorDark0valuelistsprites.dungeon.doorClosedNorthsprites.castle.tilePath500valuetrue00valuesprites.dungeon.doorClosedNorth00locationfalse00locationstartLevelimg`
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
@@ -136,72 +187,4 @@ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-`{"commentRefs":[],"fieldData":{"img":"z+dNX#6bTD59ZK#).]79"}}tilemap`level1`{"commentRefs":[],"fieldData":{"tilemap":"level1"}}levels0levelmySprite7540DialogLayout.BottomlevelStartMessage0levelcontroller.menuControllerButtonEvent.PressedTRUEtypetypeSpriteassets.image`red`{"commentRefs":[],"fieldData":{"img":"myImages.image1"}}type0typeSpriteassets.image`blue`{"commentRefs":[],"fieldData":{"img":"myImages.image2"}}type1typeSprite0MINUS0ADD0CameraProperty.X0DIVIDE0280ADD0MINUS0CameraProperty.Y0DIVIDE028controller.upControllerButtonEvent.Releasedpy0controller.upControllerButtonEvent.Pressedpy1CameraProperty.Ycontroller.AControllerButtonEvent.PressedTRUEEQ0Sprite.vymySprite0music.footstepSprite.vy@setmySprite-150controller.downControllerButtonEvent.Pressedpy-1controller.downControllerButtonEvent.Releasedpy0controller.BControllerButtonEvent.Pressedmusic.pewPewprojectile0img`
-. . . . . . . . . . . . . . . .
-. . . . . . . . . . . . . . . .
-. . . . . . . . . . . . . . . .
-. . . . . . . . . . . . . . . .
-. . . . . . . . . . . . . . . .
-. . . . . . . 2 2 . . . . . . .
-. . . . . . 3 1 1 3 . . . . . .
-. . . . . 2 1 1 1 1 2 . . . . .
-. . . . . 2 1 1 1 1 2 . . . . .
-. . . . . . 3 1 1 3 . . . . . .
-. . . . . . . 2 2 . . . . . . .
-. . . . . . . . . . . . . . . .
-. . . . . . . . . . . . . . . .
-. . . . . . . . . . . . . . . .
-. . . . . . . . . . . . . . . .
-. . . . . . . . . . . . . . . .
-`{"commentRefs":[],"fieldData":{"img":"6+cEbMqc|jC[i~?u*iCW"}}mySprite50MULTIPLY0px20050MULTIPLY0py-200TRUELT0Sprite.vxmySprite0mySpriteimg`
-. . . . . . . . . . . . . . . .
-. . . . f f f f f f . . . . . .
-. . . f 2 f e e e e f f . . . .
-. . f 2 2 2 f e e e e f f . . .
-. . f e e e e f f e e e f . . .
-. f e 2 2 2 2 e e f f f f . . .
-. f 2 e f f f f 2 2 2 e f . . .
-. f f f e e e f f f f f f f . .
-. f e e 4 4 f b e 4 4 e f f . .
-. . f e d d f 1 4 d 4 e e f . .
-. . . f d d d e e e e e f . . .
-. . . f e 4 e d d 4 f . . . . .
-. . . f 2 2 e d d e f . . . . .
-. . f f 5 5 f e e f f f . . . .
-. . f f f f f f f f f f . . . .
-. . . f f f . . . f f . . . . .
-`{"commentRefs":[],"fieldData":{"img":"w84kZc+S04_~uwfJu`*="}}px-1TRUEGT0Sprite.vxmySprite0mySpriteimg`
-. . . . . . . . . . . . . . . .
-. . . . . f f f f f f . . . . .
-. . . f f e e e e f 2 f . . . .
-. . f f e e e e f 2 2 2 f . . .
-. . f e e e f f e e e e f . . .
-. . f f f f e e 2 2 2 2 e f . .
-. . f e 2 2 2 f f f f e 2 f . .
-. f f f f f f f e e e f f f . .
-. f f e 4 4 e b f 4 4 e e f . .
-. f e e 4 d 4 1 f d d e f . . .
-. . f e e e e e d d d f . . . .
-. . . . f 4 d d e 4 e f . . . .
-. . . . f e d d e 2 2 f . . . .
-. . . f f f e e f 5 5 f f . . .
-. . . f f f f f f f f f f . . .
-. . . . f f . . . f f f . . . .
-`{"commentRefs":[],"fieldData":{"img":"L?aVvP}QM5k^Y!EEDAY{"}}px1locationspritePlayersprites.dungeon.doorClosedNorthlocationTRUEcanTPmusic.knockmySpritesprites.dungeon.doorOpenNorthcanTP0mySprite20img`
-. . . . . . . . . . . . . . . .
-. . . . . . . . . . . . . . . .
-. . . . . . . . . . . . . . . .
-. . . . . . . . . . . . . . . .
-. . . . . . . . . . . . . . . .
-. . . . . . . . . . . . . . . .
-. . . . . . . . . . . . . . . .
-. . . . . . . . . . . . . . . .
-. . . . . . . . . . . . . . . .
-. . . . . . . . . . . . . . . .
-. . . . . . . . . . . . . . . .
-. . . . . . . . . . . . . . . .
-. . . . . . . . . . . . . . . .
-. . . . . . . . . . . . . . . .
-. . . . . . . . . . . . . . . .
-. . . . . . . . . . . . . . . .
-`{"commentRefs":[],"fieldData":{"img":"4W~a-}!2eu7LNjU4nTwc"}}PlayermySprite00Sprite.x@setmySprite01000canTP1spriteProjectilelocationvaluelistsprites.dungeon.doorClosedNorthsprites.castle.tilePath500valuetrue00valuesprites.dungeon.doorClosedNorth00locationfalse00locationspritePlayersprites.dungeon.doorOpenNorthlocationTRUEcanTPmusic.knockmySpritesprites.dungeon.doorClosedNorthcanTP0locationlocationspritePlayersprites.dungeon.collectibleRedCrystallocationlevel1TRUEEQ0level0levelstruemusic.baDingspritePlayersprites.swamp.swampTile7locationfalsespritePlayersprites.swamp.swampTile9locationfalse
\ No newline at end of file
+`{"commentRefs":[],"fieldData":{"img":"z_s[c8MqFb}-2L+}iZR*"}}tilemap`level1`{"commentRefs":[],"fieldData":{"tilemap":"level1"}}levels0levelmySprite7540DialogLayout.BottomlevelStartMessage0level
\ No newline at end of file
diff --git a/main.py b/main.py
new file mode 100644
index 0000000..4e2a2ae
--- /dev/null
+++ b/main.py
@@ -0,0 +1,373 @@
+def on_up_pressed():
+ global py
+ py = 1
+controller.up.on_event(ControllerButtonEvent.PRESSED, on_up_pressed)
+
+def on_b_pressed():
+ global projectile
+ music.pew_pew.play()
+ projectile = sprites.create_projectile_from_sprite(img("""
+ . . . . . . . . . . . . . . . .
+ . . . . . . . . . . . . . . . .
+ . . . . . . . . . . . . . . . .
+ . . . . . . . . . . . . . . . .
+ . . . . . . . . . . . . . . . .
+ . . . . . . . 2 2 . . . . . . .
+ . . . . . . 3 1 1 3 . . . . . .
+ . . . . . 2 1 1 1 1 2 . . . . .
+ . . . . . 2 1 1 1 1 2 . . . . .
+ . . . . . . 3 1 1 3 . . . . . .
+ . . . . . . . 2 2 . . . . . . .
+ . . . . . . . . . . . . . . . .
+ . . . . . . . . . . . . . . . .
+ . . . . . . . . . . . . . . . .
+ . . . . . . . . . . . . . . . .
+ . . . . . . . . . . . . . . . .
+ """),
+ mySprite,
+ px * 200,
+ py * -200)
+controller.B.on_event(ControllerButtonEvent.PRESSED, on_b_pressed)
+
+def on_a_pressed():
+ if mySprite.vy == 0:
+ music.footstep.play()
+ mySprite.vy = -150
+controller.A.on_event(ControllerButtonEvent.PRESSED, on_a_pressed)
+
+def on_down_released():
+ global py
+ py = 0
+controller.down.on_event(ControllerButtonEvent.RELEASED, on_down_released)
+
+def on_overlap_tile(sprite, location):
+ global canTP
+ if canTP:
+ music.knock.play()
+ tiles.place_on_random_tile(mySprite, sprites.dungeon.door_open_north)
+ canTP = 0
+scene.on_overlap_tile(SpriteKind.player,
+ sprites.dungeon.door_closed_north,
+ on_overlap_tile)
+
+def on_up_released():
+ global py
+ py = 0
+controller.up.on_event(ControllerButtonEvent.RELEASED, on_up_released)
+
+def on_down_pressed():
+ global py
+ py = -1
+controller.down.on_event(ControllerButtonEvent.PRESSED, on_down_pressed)
+
+def on_menu_pressed():
+ global _type
+ if _type:
+ typeSprite.set_image(assets.image("""
+ red
+ """))
+ _type = 0
+ else:
+ typeSprite.set_image(assets.image("""
+ blue
+ """))
+ _type = 1
+controller.menu.on_event(ControllerButtonEvent.PRESSED, on_menu_pressed)
+
+def on_overlap_tile2(sprite2, location2):
+ game.over(False)
+scene.on_overlap_tile(SpriteKind.player,
+ sprites.swamp.swamp_tile7,
+ on_overlap_tile2)
+
+def on_hit_wall(sprite3, location3):
+ if not (tiles.tile_at_location_equals(location3, sprites.dungeon.floor_dark0)):
+ for value in tiles.get_tiles_by_type(sprites.dungeon.door_closed_north):
+ tiles.set_tile_at(value, sprites.castle.tile_path5)
+ tiles.set_wall_at(value, True)
+ tiles.set_tile_at(location3, sprites.dungeon.door_closed_north)
+ tiles.set_wall_at(location3, False)
+scene.on_hit_wall(SpriteKind.projectile, on_hit_wall)
+
+def on_overlap_tile3(sprite4, location4):
+ game.over(False)
+scene.on_overlap_tile(SpriteKind.player,
+ sprites.swamp.swamp_tile9,
+ on_overlap_tile3)
+
+def on_overlap_tile4(sprite5, location5):
+ global level
+ level += 1
+ if level == len(levels):
+ game.over(True)
+ else:
+ music.ba_ding.play()
+ startLevel()
+scene.on_overlap_tile(SpriteKind.player,
+ sprites.dungeon.collectible_red_crystal,
+ on_overlap_tile4)
+
+def startLevel():
+ scene.set_background_image(img("""
+ 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 9999999999999999999999999999d99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 999999999999999999999999999dd999999d9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 999999999999999999999999999ddd99999d999999999999d999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 99999999999999999999999999ddddd9999dd9999999999ddd99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 9999999999999999999999999ddddddd999dd9999999999ddd99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 9999999999999999999999999d9dddd999ddd999999999ddddd9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 99999999999999999999999999ddddd999dddd99999999dddddd999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 9999999999999999999999999ddddddd999dd9999999999dddd9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 99999999999999999999999999dddd9dd99ddd9999999dddddd9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 9999999999999999999999999dddddd999ddd999999999dddddd999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 999999999999999999999999dd9ddddd99dddd9999999ddddd9dd99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 99999999999999999999999999dddddddddddd999999ddddddd9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 9999999999999999999999999ddddddddddddddddddd99dddddd999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+ 9999999999999d9999999999ddddddddddddddddddddd99dddddd9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999d999999999999999999
+ 999999999999ddd99999999999ddddddddddddddddddddddd99999999999999999999999999999999999999999999999999999999999999999999999999999999999999d9999dd999999999999999999
+ 999999999999dd9999999999dddddddddddddddddddddddddd9999999999999999999999999999999999d99999999999999999999999999999999999999999999999999dd999dd999999999999999999
+ 99999999999ddd999999999dddddddddddddddddddddddddddd999999999999999999999999999999999dd9999999999999999999999999999999999999999999999999dd99ddd999999999999999999
+ 9999999999ddddd999999ddddddddddddddddddddddddddddddd99999999999999999999999999999999dd99999999999999999999999999999999999999999999d999dddd9ddddd9999999999999999
+ 99999999999ddd99999dddddddddddddddddddddddddddddddddd999999999999999999999999999999dddd999999999999999999999999999999999999999999ddd99dddd99dd999999999999999999
+ 999999999999ddd999dddddddddddddddddddddddddddddddddddd99999999999999999999999999999dddd9999d9999999999999999999999999999999999999ddd999dd99dddddd999999999999999
+ 9999999999dddd99ddddddddddddddddddddddddddddddddddddddd999999999999999999999dd999999dd99999d999999999999999999999999999999999999dddd9ddddddddd999999999d99999999
+ 99999999999ddddddddddddddddddddddddddddddddddddddddddddd9999999999999999999ddd9999dddddd999dd9999999999999999999999999999999999999ddd9dddd999dd99999999d99999999
+ 999999999999ddddddddddddddddddddddddddddddddddddddddddddd99999999999999999dddd99999dddd9999dd999999999999999999999999999999999999ddd99ddddd99d99999999dddd999999
+ 999999999999dddddddddddddddddddddddddddddddddddddddddddddd999999999999999999ddd9999ddddd99ddd9999999999999d99999999999999999999ddddddddddddd9d999999999d99999999
+ 99999999999ddddddddddddddddddddddddddddddddddddddddddddddd9999999999999999dddddd9dddddddd9dddd99999999999dd999999999999999999999ddddddddddddddddd9999dddd9999999
+ 9999999999ddddddddddddddddddddddddddddddddddddddddddddddddd99999999999999dddddd9dddddddddd9dd999999999999ddd9999999999999d99999ddddd99ddddddddddddd999ddd9999999
+ 99999999dddddddddddddddddddddddddddddddddddddddddddddddddddd999999999999999dddddd99dddd9999ddd9999999999ddddd999999999999d9999dddddddddddddddddddddd99ddddd99999
+ 9999999dddddddddddddddddddddddddddddddddddddddddddddddddddddd9999999999999dddddd99dddddd99ddd9999999999ddddddd99999999999dd99999dddddddddddddddddddddddddd999999
+ 999999dddddddddddddddddddddddddddddddddddddddddddddddddddddddd99999999999ddddddddddddddddddddddd9999999d9dddd999999999999dd9999dddddddddddddddddddddddddd9999999
+ 99999dddddddddddddddddddddddddddddddddddddddddddddddddddddddddd9999999999999ddddddddddddddddddddddd99999ddddd99999999999ddd9999dddddddddddddddddddddddddd9999999
+ 999ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd99999999999dddddddddddddddddddddddddd99ddddddd99999999999d9999dddddddddddddddddddddddddddd999999
+ 99ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd99999999dddddddddddddddddddddddddddddd9dddd9d9999999999dddd99dddddddddddddddddddddddddddddd9999
+ 9dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd99999ddddddddddddddddddddddddddddddddddddd999999999999dd99ddddddddddddddddddddddddddddddddd99
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd999ddddddddddddddddddddddddddddddddddddddd999999999ddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd9999999999dddddddddddddddddddddddddddddddddddddddd
+ ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd9999999999ddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd9999999ddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd9999dddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
+ """))
+ tiles.set_current_tilemap(levels[level])
+ mySprite.set_position(75, 40)
+ game.show_long_text(levelStartMessage[level], DialogLayout.BOTTOM)
+
+def on_overlap_tile5(sprite6, location6):
+ global canTP
+ if canTP:
+ music.knock.play()
+ tiles.place_on_random_tile(mySprite, sprites.dungeon.door_closed_north)
+ canTP = 0
+scene.on_overlap_tile(SpriteKind.player,
+ sprites.dungeon.door_open_north,
+ on_overlap_tile5)
+
+canTP = 0
+px = 0
+projectile: Sprite = None
+py = 0
+level = 0
+levelStartMessage: List[str] = []
+levels: List[tiles.TileMapData] = []
+_type = 0
+typeSprite: Sprite = None
+mySprite: Sprite = None
+scene.set_background_image(assets.image("""
+ myImage
+"""))
+pause(500)
+scene.set_background_image(assets.image("""
+ myImage0
+"""))
+pause(100)
+mySprite = sprites.create(img("""
+ . . . . . . . . . . . . . . . .
+ . . . . . f f f f f f . . . . .
+ . . . f f e e e e f 2 f . . . .
+ . . f f e e e e f 2 2 2 f . . .
+ . . f e e e f f e e e e f . . .
+ . . f f f f e e 2 2 2 2 e f . .
+ . . f e 2 2 2 f f f f e 2 f . .
+ . f f f f f f f e e e f f f . .
+ . f f e 4 4 e b f 4 4 e e f . .
+ . f e e 4 d 4 1 f d d e f . . .
+ . . f e e e e e d d d f . . . .
+ . . . . f 4 d d e 4 e f . . . .
+ . . . . f e d d e 2 2 f . . . .
+ . . . f f f e e f 5 5 f f . . .
+ . . . f f f f f f f f f f . . .
+ . . . . f f . . . f f f . . . .
+ """),
+ SpriteKind.player)
+scene.camera_follow_sprite(mySprite)
+controller.move_sprite(mySprite, 100, 0)
+mySprite.ay = 500
+typeSprite = sprites.create(assets.image("""
+ red
+"""), SpriteKind.player)
+_type = 0
+levels = [tilemap("""
+ level6
+ """),
+ tilemap("""
+ level1
+ """),
+ tilemap("""
+ level3
+ """),
+ tilemap("""
+ level4
+ """),
+ tilemap("""
+ level5
+ """),
+ tilemap("""
+ level7
+ """)]
+levelStartMessage = ["This is portal.py, you need to find the edgeless yum cube to find pass this test.",
+ "You now have a portal device, use b to place portals",
+ "You are much faster at this than the others",
+ "some portals require great timing",
+ "some portals require you to look up when you place them",
+ "You, can't portal through bricks."]
+level = 5
+music.set_volume(20)
+for index in range(2):
+ music.play_melody("E B C5 A B G A F ", 220)
+startLevel()
+
+def on_on_update():
+ typeSprite.set_position(scene.camera_property(CameraProperty.X) + scene.screen_width() / 2 - 8,
+ scene.camera_property(CameraProperty.Y) - scene.screen_height() / 2 + 8)
+game.on_update(on_on_update)
+
+def on_update_interval():
+ global canTP
+ canTP = 1
+game.on_update_interval(1000, on_update_interval)
+
+def on_forever():
+ global px
+ if mySprite.vx < 0:
+ mySprite.set_image(img("""
+ . . . . . . . . . . . . . . . .
+ . . . . f f f f f f . . . . . .
+ . . . f 2 f e e e e f f . . . .
+ . . f 2 2 2 f e e e e f f . . .
+ . . f e e e e f f e e e f . . .
+ . f e 2 2 2 2 e e f f f f . . .
+ . f 2 e f f f f 2 2 2 e f . . .
+ . f f f e e e f f f f f f f . .
+ . f e e 4 4 f b e 4 4 e f f . .
+ . . f e d d f 1 4 d 4 e e f . .
+ . . . f d d d e e e e e f . . .
+ . . . f e 4 e d d 4 f . . . . .
+ . . . f 2 2 e d d e f . . . . .
+ . . f f 5 5 f e e f f f . . . .
+ . . f f f f f f f f f f . . . .
+ . . . f f f . . . f f . . . . .
+ """))
+ px = -1
+ if mySprite.vx > 0:
+ mySprite.set_image(img("""
+ . . . . . . . . . . . . . . . .
+ . . . . . f f f f f f . . . . .
+ . . . f f e e e e f 2 f . . . .
+ . . f f e e e e f 2 2 2 f . . .
+ . . f e e e f f e e e e f . . .
+ . . f f f f e e 2 2 2 2 e f . .
+ . . f e 2 2 2 f f f f e 2 f . .
+ . f f f f f f f e e e f f f . .
+ . f f e 4 4 e b f 4 4 e e f . .
+ . f e e 4 d 4 1 f d d e f . . .
+ . . f e e e e e d d d f . . . .
+ . . . . f 4 d d e 4 e f . . . .
+ . . . . f e d d e 2 2 f . . . .
+ . . . f f f e e f 5 5 f f . . .
+ . . . f f f f f f f f f f . . .
+ . . . . f f . . . f f f . . . .
+ """))
+ px = 1
+forever(on_forever)
diff --git a/main.ts b/main.ts
index 4517933..7c671ac 100644
--- a/main.ts
+++ b/main.ts
@@ -57,12 +57,14 @@ scene.onOverlapTile(SpriteKind.Player, sprites.swamp.swampTile7, function (sprit
game.over(false)
})
scene.onHitWall(SpriteKind.Projectile, function (sprite, location) {
- for (let value of tiles.getTilesByType(sprites.dungeon.doorClosedNorth)) {
- tiles.setTileAt(value, sprites.castle.tilePath5)
- tiles.setWallAt(value, true)
+ if (!(tiles.tileAtLocationEquals(location, sprites.dungeon.floorDark0))) {
+ for (let value of tiles.getTilesByType(sprites.dungeon.doorClosedNorth)) {
+ tiles.setTileAt(value, sprites.castle.tilePath5)
+ tiles.setWallAt(value, true)
+ }
+ tiles.setTileAt(location, sprites.dungeon.doorClosedNorth)
+ tiles.setWallAt(location, false)
}
- tiles.setTileAt(location, sprites.dungeon.doorClosedNorth)
- tiles.setWallAt(location, false)
})
scene.onOverlapTile(SpriteKind.Player, sprites.swamp.swampTile9, function (sprite, location) {
game.over(false)
@@ -261,7 +263,7 @@ levelStartMessage = [
"You are much faster at this than the others",
"some portals require great timing",
"some portals require you to look up when you place them",
-""
+"You, can't portal through bricks."
]
level = 5
music.setVolume(20)
@@ -274,9 +276,6 @@ game.onUpdate(function () {
})
game.onUpdateInterval(1000, function () {
canTP = 1
-})
-forever(function () {
-
})
forever(function () {
if (mySprite.vx < 0) {
diff --git a/pxt.json b/pxt.json
index c64c92c..f3741a3 100644
--- a/pxt.json
+++ b/pxt.json
@@ -12,7 +12,8 @@
"tilemap.g.jres",
"tilemap.g.ts",
"images.g.jres",
- "images.g.ts"
+ "images.g.ts",
+ "main.py"
],
"testFiles": [
"test.ts"
diff --git a/tilemap.g.jres b/tilemap.g.jres
index 863d2b9..72b92e5 100644
--- a/tilemap.g.jres
+++ b/tilemap.g.jres
@@ -86,18 +86,25 @@
"level7": {
"id": "level7",
"mimeType": "application/mkcd-tilemap",
- "data": "MTAxMDAwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEwMTAxMDEwMTAxMDEwMzAzMDMwMzAzMDMwMzAzMDMwMjAyMDIwMjAyMDIwMjAyMDIwMjAxMDEwMTAxMDEwMTAyMDIwMjAyMDIwMjAyMDIwMjAyMDAwMDAwMDAwMDAwMDIwMjAyMDIwMjAyMDIwMjAyMDIwMDAxMDAwMDAwMDAwMjAyMDIwMjAyMDIwMjAyMDIwMjAwMDAwMDAwMDUwMDAyMDIwMjA0MDIwMjAyMDIwMjAyMDEwMTAxMDEwMTAxMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwNDAyMDIwMjAyMDIwMjAyMDIwMjAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIyMjIyMjAyMDAwMDAwMDAwMDAwMDAwMDAwMjIyMjIyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIyMjIyMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMA==",
+ "data": "MTAxMDAwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQwMDAwMDAwMDAwMDAwMDAwMDEwMTAxMDEwMTAxMDEwMTAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEwMDAwMDIwMDAwMDAwMzAwMDAwMDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDIyMjIyMjIyMDAwMDAwMjAwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMjIyMjIyMjIyMjIyMjIyMg==",
"tileset": [
"myTiles.transparency16",
- "sprites.castle.tilePath2",
- "sprites.swamp.swampTile9",
- "sprites.swamp.swampTile7",
- "sprites.swamp.swampTile13",
+ "sprites.dungeon.floorDark0",
+ "sprites.dungeon.doorOpenNorth",
"sprites.dungeon.collectibleRedCrystal",
- "sprites.dungeon.doorOpenNorth"
+ "sprites.castle.tilePath5"
],
"displayName": "level7"
},
+ "level8": {
+ "id": "level8",
+ "mimeType": "application/mkcd-tilemap",
+ "data": "MTAxMDAwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMA==",
+ "tileset": [
+ "myTiles.transparency16"
+ ],
+ "displayName": "level8"
+ },
"*": {
"mimeType": "image/x-mkcd-f4",
"dataEncoding": "base64",
diff --git a/tilemap.g.ts b/tilemap.g.ts
index c17de80..41b9449 100644
--- a/tilemap.g.ts
+++ b/tilemap.g.ts
@@ -120,7 +120,7 @@ namespace myTiles {
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
`, [myTiles.transparency16,sprites.castle.tilePath2,sprites.castle.tilePath5,sprites.dungeon.collectibleRedCrystal], TileScale.Sixteen);
case "level7":
- case "level7":return tiles.createTilemap(hex`1000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000010101010101010303030303030303030202020202020202020201010101010102020202020202020202000000000000020202020202020202020001000000000202020202020202020200000000050002020204020202020202010101010101020202020202020202020202020202020202020202020202020202020202020202020202020402020202020202020202`, img`
+ case "level7":return tiles.createTilemap(hex`1000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000040000000000000000010101010101010100000000000000010000000000000000000000000000010000000000000000000000000000010000020000000300000001010101010101010101010101010101`, img`
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
@@ -128,16 +128,35 @@ namespace myTiles {
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
-2 2 2 2 2 2 2 . . . . . . . . .
-. . . . . . . . . . 2 2 2 2 2 2
. . . . . . . . . . . . . . . .
-. . . . . . . . . . . 2 . . . .
. . . . . . . . . . . . . . . .
-. . . . . . . . . . 2 2 2 2 2 2
+. . . . . . . . . . . . . . . 2
+. . . . . . . . . . . . . . . 2
+. . . . . . . . 2 2 2 2 2 2 2 2
+. . . . . . . 2 . . . . . . . .
+. . . . . . 2 . . . . . . . . .
+. . . . . 2 . . . . . . . . . .
+2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
+`, [myTiles.transparency16,sprites.dungeon.floorDark0,sprites.dungeon.doorOpenNorth,sprites.dungeon.collectibleRedCrystal,sprites.castle.tilePath5], TileScale.Sixteen);
+ case "level8":
+ case "level8":return tiles.createTilemap(hex`1000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000`, img`
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
-`, [myTiles.transparency16,sprites.castle.tilePath2,sprites.swamp.swampTile9,sprites.swamp.swampTile7,sprites.swamp.swampTile13,sprites.dungeon.collectibleRedCrystal,sprites.dungeon.doorOpenNorth], TileScale.Sixteen);
+. . . . . . . . . . . . . . . .
+. . . . . . . . . . . . . . . .
+. . . . . . . . . . . . . . . .
+. . . . . . . . . . . . . . . .
+. . . . . . . . . . . . . . . .
+. . . . . . . . . . . . . . . .
+. . . . . . . . . . . . . . . .
+. . . . . . . . . . . . . . . .
+. . . . . . . . . . . . . . . .
+. . . . . . . . . . . . . . . .
+. . . . . . . . . . . . . . . .
+. . . . . . . . . . . . . . . .
+. . . . . . . . . . . . . . . .
+`, [myTiles.transparency16], TileScale.Sixteen);
}
return null;
})