Initial files for MakeCode project

This commit is contained in:
Waylon Walker 2022-03-19 11:48:06 -05:00
parent 7778211460
commit 726a7fc973
26 changed files with 59021 additions and 0 deletions

5
.gitattributes vendored Normal file
View file

@ -0,0 +1,5 @@
index.html linguist-generated=true
assets/index.html linguist-generated=true
assets/js/loader.js linguist-generated=true
assets/js/binary.js linguist-generated=true
assets/version.txt linguist-generated=true

37
.github/workflows/cfg-check.yml vendored Normal file
View file

@ -0,0 +1,37 @@
name: Check pxt.json
on:
push:
branches:
- 'master'
- 'main'
jobs:
check-cfg:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14.x]
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: npm install
run: |
npm install -g pxt
pxt target arcade
- name: Checkout current state
run: |
git checkout -- .
git clean -fd
- name: Fix files listed in config if necessary
run: pxt checkpkgcfg
- name: Create Pull Request
uses: peter-evans/create-pull-request@v3
continue-on-error: true
with:
title: 'Removing missing files from pxt.json'
commit-message: 'Removing missing files from pxt.json'
delete-branch: true

63
.github/workflows/makecode-release.yml vendored Normal file
View file

@ -0,0 +1,63 @@
name: MakeCode Arcade Release
on:
release:
types:
- created
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [8.x]
steps:
- uses: actions/checkout@v1
- name: install node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: install makecode
run: |
npm install -g pxt
pxt target arcade
- name: build js
run: |
pxt clean
pxt install
pxt build --cloud
- name: build D51
continue-on-error: true
run: |
pxt clean
pxt install --hw samd51
pxt build --hw samd51 --cloud
cp ./built/binary.uf2 binary-d51.uf2
- name: build F4
continue-on-error: true
run: |
pxt clean
pxt install --hw stm32f401
pxt build --hw stm32f401 --cloud
cp ./built/binary.uf2 binary-f4.uf2
- name: build P0
continue-on-error: true
run: |
pxt clean
pxt install --hw rpi
pxt build --hw rpi --cloud
cp ./built/binary.uf2 binary-p0.uf2
- name: bundle all
run: |
cat binary-*.uf2 > built/arcade.uf2
- name: upload bundled
uses: actions/upload-release-asset@v1.0.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: ./built/arcade.uf2
asset_name: arcade.uf2
asset_content_type: application/octet-stream

29
.github/workflows/makecode.yml vendored Normal file
View file

@ -0,0 +1,29 @@
name: MakeCode
on: [push]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14.x]
steps:
- uses: actions/checkout@v1
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: npm install
run: |
npm install -g pxt
pxt target arcade
- name: build
run: |
pxt install
pxt build --cloud
env:
CI: true

23
.vscode/settings.json vendored Normal file
View file

@ -0,0 +1,23 @@
{
"editor.formatOnType": true,
"files.autoSave": "afterDelay",
"files.watcherExclude": {
"**/.git/objects/**": true,
"**/built/**": true,
"**/node_modules/**": true,
"**/yotta_modules/**": true,
"**/yotta_targets": true,
"**/pxt_modules/**": true
},
"files.associations": {
"*.blocks": "html",
"*.jres": "json"
},
"search.exclude": {
"**/built": true,
"**/node_modules": true,
"**/yotta_modules": true,
"**/yotta_targets": true,
"**/pxt_modules": true
}
}

30
.vscode/tasks.json vendored Normal file
View file

@ -0,0 +1,30 @@
// A task runner that calls the MakeCode (PXT) compiler
{
"version": "2.0.0",
"tasks": [{
"label": "pxt deploy",
"type": "shell",
"command": "pxt deploy --local",
"group": "build",
"problemMatcher": [ "$tsc" ]
}, {
"label": "pxt build",
"type": "shell",
"command": "pxt build --local",
"group": "build",
"problemMatcher": [ "$tsc" ]
}, {
"label": "pxt install",
"type": "shell",
"command": "pxt install",
"group": "build",
"problemMatcher": [ "$tsc" ]
}, {
"label": "pxt clean",
"type": "shell",
"command": "pxt clean",
"group": "test",
"problemMatcher": [ "$tsc" ]
}]
}

2
Gemfile Normal file
View file

@ -0,0 +1,2 @@
source 'https://rubygems.org'
gem 'github-pages', group: :jekyll_plugins

10
Makefile Normal file
View file

@ -0,0 +1,10 @@
all: deploy
build:
pxt build
deploy:
pxt deploy
test:
pxt test

33
README.md Normal file
View file

@ -0,0 +1,33 @@
> Open this page at [https://waylonwalker.github.io/portalpy/](https://waylonwalker.github.io/portalpy/)
## Use as Extension
This repository can be added as an **extension** in MakeCode.
* open [https://arcade.makecode.com/](https://arcade.makecode.com/)
* click on **New Project**
* click on **Extensions** under the gearwheel menu
* search for **https://github.com/waylonwalker/portalpy** and import
## Edit this project ![Build status badge](https://github.com/waylonwalker/portalpy/workflows/MakeCode/badge.svg)
To edit this repository in MakeCode.
* open [https://arcade.makecode.com/](https://arcade.makecode.com/)
* click on **Import** then click on **Import URL**
* paste **https://github.com/waylonwalker/portalpy** and click import
## Blocks preview
This image shows the blocks code from the last commit in master.
This image may take a few minutes to refresh.
![A rendered view of the blocks](https://github.com/waylonwalker/portalpy/raw/master/.github/makecode/blocks.png)
#### Metadata (used for search, rendering)
* for PXT/arcade
<script src="https://makecode.com/gh-pages-embed.js"></script><script>makeCodeRender("{{ site.makecode.home_url }}", "{{ site.github.owner_name }}/{{ site.github.repository_name }}");</script>

8
_config.yml Normal file
View file

@ -0,0 +1,8 @@
makecode:
target: arcade
platform: arcade
home_url: https://arcade.makecode.com/
theme: jekyll-theme-slate
include:
- assets
- README.md

0
assets.json Normal file
View file

106
assets/index.html generated Normal file
View file

@ -0,0 +1,106 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script type="text/javascript" src="./js/loader.js"></script>
<script type="text/javascript" src="./js/custom.js"></script>
<style>
body {
background: black;
color: white;
font-family: monospace;
overflow: hidden;
font-size: 14pt;
}
iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border: none;
}
#fullscreen {
position: absolute;
right: 0.25rem;
bottom: 0;
cursor: pointer;
}
.lds-ripple {
width: 80px;
height: 80px;
margin: auto;
position: absolute;
margin: auto;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: -1;
}
.lds-ripple div {
position: absolute;
border: 4px solid #fff;
opacity: 1;
border-radius: 50%;
animation: lds-ripple 1s cubic-bezier(0, 0.2, 0.8, 1) infinite;
}
.lds-ripple div:nth-child(2) {
animation-delay: -0.5s;
}
@keyframes lds-ripple {
0% {
top: 36px;
left: 36px;
width: 0;
height: 0;
opacity: 1;
}
100% {
top: 0px;
left: 0px;
width: 72px;
height: 72px;
opacity: 0;
}
}
</style>
</head>
<body id="root">
<div id="loader" class="lds-ripple">
<div></div>
<div></div>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" x="0" y="0" viewBox="0 0 32 32" xml:space="preserve"
id="svg2">
<style type="text/css" id="style4"></style>
<g id="g4212" transform="matrix(.79626 0 0 .79626 -68.322 9.868)">
<path
d="M105.989-5.487v.01a1.91 1.91 0 00-1.613 1.83c0 .779.417 1.119.417 1.15.413.435.238.913-.589.874 0 0-3.009.015-3.066 0a.724.724 0 00-.53.696v9.894c-.001.39.314.705.705.705h9.848c.39 0 .705-.314.705-.705V5.475c-.126-.423-.489-.463-.827-.141-.032 0-.369.417-1.147.417-.93-.03-1.69-.72-1.83-1.616h-.013a6.771 6.771 0 010-.494h.012c.142-.897.9-1.587 1.83-1.616.78 0 1.116.417 1.148.417.329.313.695.238.827-.138V-.927a.72.72 0 00-.527-.696c-.057.015-3.07 0-3.07 0-.74.06-.998-.44-.585-.874 0-.031.417-.371.417-1.15-.029-.93-.72-1.69-1.616-1.83v-.01a6.241 6.241 0 00-.496 0z"
id="path167" fill="#fff" fill-opacity="1" stroke-width="1.57" />
<path
d="M98.633-7.18c-.917 0-1.624.252-2.158.774-.534.521-.802 1.208-.822 2.094a552.379 552.379 0 01-.062 2.732c-.02.776-.081 1.354-.187 1.766-.118.46-.331.853-.637 1.168-.272.28-.684.587-1.254.938-.255.156-.368.387-.368.748 0 .351.077.481.11.521.12.145.32.3.592.463.376.226.702.494.972.795.3.334.518.786.662 1.38.052.213.112.882.172 4.228.006.566.138 1.07.39 1.502.25.431.584.753 1.02.984.443.235.971.356 1.57.356.974 0 1.055-.377 1.055-.764 0-.266-.054-.465-.157-.591a.501.501 0 00-.334-.2c-.374-.042-.66-.103-.87-.187a1.29 1.29 0 01-.678-.622c-.127-.244-.206-.588-.242-1.049a22.82 22.82 0 01-.046-1.68c0-.707-.034-1.327-.099-1.846a4.868 4.868 0 00-.31-1.26 2.848 2.848 0 00-.52-.843 4.267 4.267 0 00-.874-.702l-.773-.485.773-.487c.502-.318.88-.657 1.128-1.012.244-.35.413-.783.503-1.282.099-.55.153-1.333.169-2.333 0-.713.014-1.247.042-1.625.032-.437.105-.774.221-1.027.147-.317.382-.548.68-.672.214-.086.506-.152.896-.205a.429.429 0 00.224-.089.622.622 0 00.178-.251 1.11 1.11 0 00.089-.451c0-.268-.07-.45-.215-.57-.175-.144-.456-.215-.84-.215z"
id="path165" fill="#fff" fill-opacity="1" stroke-width="1.57" />
<path
d="M113.887-7.182c-.974 0-1.055.377-1.055.763 0 .267.05.467.153.592.1.12.205.182.338.2.374.042.658.103.867.186.294.116.524.326.678.623.127.245.206.588.242 1.048.032.397.046.945.046 1.68 0 .708.034 1.328.098 1.846.06.49.166.917.31 1.264.138.332.313.616.521.843.22.239.511.473.871.699l.773.487-.77.488c-.502.317-.882.656-1.128 1.009-.244.35-.414.78-.503 1.278-.099.551-.154 1.338-.169 2.337 0 .712-.015 1.246-.043 1.625-.03.437-.1.77-.217 1.024a1.294 1.294 0 01-.68.674c-.214.087-.506.154-.896.206a.44.44 0 00-.227.089.64.64 0 00-.178.251c-.06.135-.086.282-.086.45 0 .268.066.45.212.571.174.144.458.218.843.218.917 0 1.62-.254 2.155-.776.534-.522.802-1.205.822-2.091.023-1.095.046-2.007.064-2.735.02-.777.079-1.355.184-1.766.12-.46.333-.854.638-1.168.273-.28.684-.587 1.254-.938.254-.157.368-.385.368-.746 0-.35-.077-.483-.11-.524-.119-.143-.316-.298-.589-.463a4.268 4.268 0 01-.975-.794c-.3-.334-.515-.784-.66-1.377-.051-.213-.114-.885-.174-4.23-.007-.568-.138-1.072-.39-1.503a2.524 2.524 0 00-1.02-.984c-.443-.235-.968-.356-1.567-.356z"
id="path163" fill="#fff" fill-opacity="1" stroke-width="1.57" />
</g>
<path
d="M28.621 31.422c.224-.102.208 1.099.208-15.49 0-16.588.016-15.388-.208-15.49-.144-.065-24.6-.065-24.744 0-.223.102-.207-1.1-.206 15.498.001 12.58.01 15.259.052 15.334.112.203-.702.19 12.515.192 9.446.001 12.307-.01 12.383-.044zm-9.415-1.705c-.283-.11-.57-.4-.678-.687a1.216 1.216 0 011.131-1.655c.669 0 1.213.544 1.213 1.213 0 .853-.862 1.437-1.666 1.129zm-8.337-1.054v-.757H9.353v-1.668h1.516V24.723H12.536V26.238h1.516v1.668h-1.516V29.42H10.869zm10.99-1.22c-.284-.109-.57-.399-.678-.686a1.204 1.204 0 01.276-1.298c.762-.762 2.067-.222 2.067.855 0 .854-.862 1.438-1.666 1.13zM4.765 23.475l-.111-.11V1.377l.11-.111.111-.11h22.746l.11.11.112.11V23.366l-.111.11-.11.111H4.875z"
id="path4210" fill="#fff" fill-opacity="1" />
</svg>
</div>
<iframe id="simframe" allowfullscreen="allowfullscreen"
sandbox="allow-popups allow-forms allow-scripts allow-same-origin">
</iframe>
<div id="fullscreen"></div>
<script type="text/javascript">
makeCodeRun({ js: "./js/binary.js"})
</script>
</body>
</html>

57136
assets/js/binary.js generated Normal file

File diff suppressed because one or more lines are too long

11
assets/js/custom.js Normal file
View file

@ -0,0 +1,11 @@
/**
* This will be loaded before starting the simulator.
* If you wish to add custom javascript,
* ** make sure to add this line to pxt.json**
*
* "disableTargetTemplateFiles": true
*
* otherwise MakeCode will override your changes.
*
* To register a constrol simmessages, use addSimMessageHandler
*/

169
assets/js/loader.js generated Normal file
View file

@ -0,0 +1,169 @@
var channelHandlers = {}
function addSimMessageHandler(channel, handler) {
channelHandlers[channel] = handler;
}
function makeCodeRun(options) {
var code = "";
var isReady = false;
var simState = {}
var simStateChanged = false
var started = false;
var meta = undefined;
// hide scrollbar
window.scrollTo(0, 1);
// init runtime
initSimState();
fetchCode();
// helpers
function fetchCode() {
sendReq(options.js, function (c, status) {
if (status != 200)
return;
code = c;
// find metadata
code.replace(/^\/\/\s+meta=([^\n]+)\n/m, function (m, metasrc) {
meta = JSON.parse(metasrc);
})
var vel = document.getElementById("version");
if (meta.version && meta.repo && vel) {
var ap = document.createElement("a");
ap.download = "arcade.uf2";
ap.href = "https://github.com/" + meta.repo + "/releases/download/v" + meta.version + "/arcade.uf2";
ap.innerText = "v" + meta.version;
vel.appendChild(ap);
}
// load simulator with correct version
document.getElementById("simframe")
.setAttribute("src", meta.simUrl);
initFullScreen();
})
}
function startSim() {
if (!code || !isReady || started)
return
setState("run");
started = true;
const runMsg = {
type: "run",
parts: [],
code: code,
partDefinitions: {},
cdnUrl: meta.cdnUrl,
version: meta.target,
storedState: simState,
frameCounter: 1,
options: {
"theme": "green",
"player": ""
},
id: "green-" + Math.random()
}
postMessage(runMsg);
}
function stopSim() {
setState("stopped");
postMessage({
type: "stop"
});
started = false;
}
window.addEventListener('message', function (ev) {
var d = ev.data
if (d.type == "ready") {
var loader = document.getElementById("loader");
if (loader)
loader.remove();
isReady = true;
startSim();
} else if (d.type == "simulator") {
switch (d.command) {
case "restart":
stopSim();
startSim();
break;
case "setstate":
if (d.stateValue === null)
delete simState[d.stateKey];
else
simState[d.stateKey] = d.stateValue;
simStateChanged = true;
break;
}
} else if (d.type === "messagepacket" && d.channel) {
const handler = channelHandlers[d.channel]
if (handler) {
try {
const buf = d.data;
const str = uint8ArrayToString(buf);
const data = JSON.parse(str)
handler(data);
} catch (e) {
console.log(`invalid simmessage`)
console.log(e)
}
}
}
}, false);
// helpers
function uint8ArrayToString(input) {
let len = input.length;
let res = ""
for (let i = 0; i < len; ++i)
res += String.fromCharCode(input[i]);
return res;
}
function setState(st) {
var r = document.getElementById("root");
if (r)
r.setAttribute("data-state", st);
}
function postMessage(msg) {
const frame = document.getElementById("simframe");
if (frame)
frame.contentWindow.postMessage(msg, meta.simUrl);
}
function sendReq(url, cb) {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function () {
if (xhttp.readyState == 4) {
cb(xhttp.responseText, xhttp.status)
}
};
xhttp.open("GET", url, true);
xhttp.send();
}
function initSimState() {
try {
simState = JSON.parse(localStorage["simstate"])
} catch (e) {
simState = {}
}
setInterval(function () {
if (simStateChanged)
localStorage["simstate"] = JSON.stringify(simState)
simStateChanged = false
}, 200)
}
function initFullScreen() {
var sim = document.getElementById("simframe");
var fs = document.getElementById("fullscreen");
if (fs && sim.requestFullscreen) {
fs.onclick = function() { sim.requestFullscreen(); }
} else if (fs) {
fs.remove();
}
}
}

1
assets/version.txt generated Normal file
View file

@ -0,0 +1 @@
0.0.0

27
images.g.jres Normal file

File diff suppressed because one or more lines are too long

312
images.g.ts Normal file
View file

@ -0,0 +1,312 @@
// Auto-generated code. Do not edit.
namespace myImages {
helpers._registerFactory("image", function(name: string) {
switch(helpers.stringTrim(name)) {
case "image1":
case "red":return img`
. . . . d 2 2 2 2 2 2 . . . . .
. . d 2 2 2 2 2 2 2 2 2 2 . . .
. d 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 . .
d 2 2 2 2 2 2 2 2 2 2 2 2 2 2 .
d 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 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 2 2 2 2 d .
. 2 2 2 2 2 2 2 2 2 2 2 2 2 d .
. . 2 2 2 2 2 2 2 2 2 2 2 d d .
. . . . 2 2 2 2 2 2 2 d . . . .
. . . . . . . d d d . . . . . .
`;
case "image2":
case "blue":return img`
. . . . d 8 8 8 8 8 8 . . . . .
. . d 8 8 8 8 8 8 8 8 8 8 . . .
. d 8 8 8 8 8 8 8 8 8 8 8 8 . .
. 8 8 8 8 8 8 8 8 8 8 8 8 8 . .
d 8 8 8 8 8 8 8 8 8 8 8 8 8 8 .
d 8 8 8 8 8 8 8 8 8 8 8 8 8 8 .
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 .
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 .
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 .
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 .
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 .
. 8 8 8 8 8 8 8 8 8 8 8 8 8 d .
. 8 8 8 8 8 8 8 8 8 8 8 8 8 d .
. . 8 8 8 8 8 8 8 8 8 8 8 d d .
. . . . 8 8 8 8 8 8 8 d . . . .
. . . . . . . d d d . . . . . .
`;
case "image3":
case "myImage":return img`
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeececccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeebeeeeeeeeeeeeeeeeeeeeecccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeecccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccccccccccccccccccccccccfffffcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccccccbbbccccccccccccccdddbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeecccccccccccbcccccbbbbbbbbbcdddbbcbbbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccccccccccbddbbdddddbbbbbbbdddcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeecccccffffcddddddbbbbddbbbbbcccbdddddcfcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccfcddddddbdddbccccbbddbbbcccbbddbdddbffccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeecccccbddddddbbbbbbcccccbbbbbbccbccbbdbdddddccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeecccbbbdddddddbbccccccccccbbbbbbccccbbdbdddddbbbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeecccbdddddddddbbccccccccccccbbbbbbccccbbbddddddddcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeebbecbddbddddddbbbccccccccccccccbbbbbcccccbbdbbddddddddbfcccccccccccccccccccccccaccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefbddddbbbbbbbbbcccccccccccccccccccccccccbbbbdddddddddddffcccccccccccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefbdddddddbbbbbbccccccccccccccccccccccccccbbbbddddddddbbddbccccccccccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeebbeeeeeeeccbbddddddbbbbbcccccccccccccccccccccccccccbbbbddbbdddbbbddbbcccccccccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeebbeeebeeccbbbddddddbbbbbcccccccccccccccccccccccccccbccbbdbbbdddbbbbbbcccccccccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeebbeeeccdddddddbbbbbbbcccccccccccccccccccccccccccccccbbbbcbdddbbcbbddcccccccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeebbeeeeccbddddddbbbbbbcccccccccccccccccccccccccccccccccbbbbbccbbdbbcccbdbffcccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeebbeeecbddddddddbbbccccccccccccccccccccccccccccccccccccccbbbcccbbbbbcccbbcfcccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeeeecbddddddddbbbcccccccccccccccccccccccccccccccccccccccbbccccbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeebeeeeebeebeeeecbddddddbbbbcccccccccccccccccccccccccccccccccccccccccbcccccbbccbccccbfccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeeefbdddddddbbbcccccccccccccccccccccccccccccccccccccccccccccccccbccccccccfccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeebebeeebefbdddddddbccccccccccccccccccccccccccccccccccccccccccccccccccccbbcccccccfcccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebbeeebbbeebefddddddddbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccfcccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeebbeeeeeebeeeeebecbdddddddbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccbbccccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeebeeebeeeeeebbbbeeeeeeebbebbefbddddddbccccccbbbbcccccccccccccccccccccccccccccccccbbbbcccccccccbbbbcbcccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeeeeeebbcbddddddbccccbcccccccccccbbbbbcccccccccccccccccccccccccccccccccccccccbbcccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefddddddbbccccccfffffffffffcccccbbbcccccccccccccccfffffffffffcccccccccbbcbcfccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeeefdddddbbccccccebbbbbbbbbbbeffffcccccccccffffffffebbbbbbbbbbbffcccccccbbcbcfccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeebeeeeeeeeebbebecbdddddbccccccebdddddddddddbbbbbccccccccceeeeeeebbbddddddddddbbeccccccbbcbbbccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeeeebbebccddddbbccccccebdddddddddddddddddeeeeeeeeebbbbbbbdddddddddddddddbecccccbbcbbdfcccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeebeeeeeeeeeeeebbebecddddbccccccfebdddddddddddddddddddddbbbbbbbbbbddddddddddddddddddbfccccbbbbbbfcccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeebeeeeeeeeeeeebebeebccddbbbcccccfebdddddddddddddddddddddddddbbdddddddddddddddddddddddbbfccccbbbbbdcccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeeebddbbbccccccfbddddddddddddddddddddddddddddddddddddddddddddddddddddbfcccccbbbbbdbcccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeebeeeeeeeeebcbddbbccccccceddddddddddddddddddddddddddddddddddddddddddddddddddddddeccccccbbbbdbcccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeebeeeebcbdbbcccccccebddddddddddddddddddddddddddddddddddddddddddddddddddddddbeccccccbbbdbcccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeebbeeebbbeeeeeeeecbdbbccccccceddddddddddddddddddddddddddddddddddddddddddddddddddddddddecccccccbbdbcccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeebbeebbbbeeeeeeecbdbbcccccccebdddddddddddddddddddddddddddddddddddddddddddddddddddddddddbfccccccbbdbccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeebbbebbeeebeeebbcbdbcccccccebddddddddddddddddddddddddddddddddddddddddddddddddddddddddddbfccccccbbdbfcccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeebbbbbbeeebbeeeefbbcccccccfbbddddddddddddddddddddddddddddddddddddddddddddddddddddddddddbeccccccbbdbfcccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeebeeebeeeeeeebeccbcccccccfbddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddbfcccccbddbfcccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeebbeeeeebbbeeeeccbccccccccbddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddbfccccbbbdbfcccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeebeebbeeeeebbbeeeefcbccccccfbdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddbfcccccbbbbfcccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeebeebbeeeeeebbbbeefcbccccccfddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddbfcccccbbbcfcccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeebeeebeeeeeeeeebbeeeebccbccccccfddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddbecccccbbbbfcccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeebeebbbeeeeeebbeeeeeebcccccccccfddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddbbfccccbbdbfcccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeebeebbeeeeeeebbeeebeeecccccccccfddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddbbfccccbbbcfcccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeebeeebbbbebeeeeeebcccccccccfddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddbbfccccbbbcfcccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeebbeeeeeeeebbbbbbebbeebbccccccccebdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddbbbfccccbbbcfcccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeebeeebeeeeeeeeebbbbbbbbeeebccccccccedddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddbbbbfccccccbcfcccccccccccccccccccccccccccccccccccccc
beeeeeeeeeebbbeebeeeeeeeeeeebbebbbeeebccccccccedddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddbbbbfccccccbcfcccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeebeebbeeeeeebeeeeeebeebeeebcccccccceddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddbbbfccccccbcfcccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeebbebbeeeeeebbbbbbeebbbbeebeefccccceddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddbbbfccccccbcfcccccccccccccccccccccccccccccccccccccc
eee4eeeeeeeeeeebeeeeeebbbbbbbbbebbbbbbeefccccceddddddddddddddddddddddbbbddddddddddddddddddddddddddddddddddddbbbbeccccccbcfcccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeebeeeeebbbbbbbbbbbebbbbbbefcccccedddddddddddddddddddbbbbbbbbddddddddbbbbbbbbbbbbddddddddddddddbbbbbecccccbcfcccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeebbbbbbbbbbbeeeebbeeefccccceddddddddddbbbbbbbbbbbbbbbbbbdddddddbbbbbbbbbbbbbbbbbdddddddddbbbbbecccccbcfccccccbccccccccccccccccccccccccccccccc
eeeeeeeebebeeeeeeeebbbbbbbbbbbbebebbbeeefccccceddddddddddeeeeeeeeeeebbbbbbbbddbbbbbbbbbeeeeeeeeeeeebdddddddddbbbdecccccbcfcccccccccccccccccccccccccccccccccccccc
eeeeeeeeebebeeeeeeebbbbbbbbbbbbbbeebbbeefcccccedddddddbeeeeeeeeeeeeeeeeebbbbdddbbbbbeeeeeeeeeeeeeeeeeeddddddbbbbdecccccbcfcccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeebbbbbbbbbbbbbeeebeeeefcccccedddddbbeeeeeeeeeeeeeeeeeeebbbbdddbbbbeeeeeeeeeeeeeeeeeebbbddbbbbddecccccccfcccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeebeeeeebbbbbbbbbbbbbeebebefccccebdddddeeeeeeeeeeeeeeeeeeeeeebbbdddbbbeeeeeeeeeeeeeeeeeeeeebbbbbbbddecccccccfcccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeebeeeeeeeeebbbbbbbbbbeeebefccccedddddbeeeeeeeeeeeeeeeeeeeeeeebbdddbbbeeeeeeeeeeeeeeeeeeeeeeebbbbbddecccccccfcccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeebeeeeebbbbbbbbbbbbbbbebefcccceddddbbeeeeeeeeeeeeeeeeeeeeeeebddddbbbeeeeeeeeeeeeebbbbbbbeebbbbbbbddbfcccbcfcccccccccccccccccccccccccccccccccccccc
eeee4e4eeeeeeeeeeeeeeebbbbbbbbbbbbbbbebeefcccedddbbbeeeeeeeeeeeeeeeeeeeeeeebddddbbeeeeeeeeeeeeeeeeeeeeeeeebbbbbdddbfcccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeebeeebbbbbbbbbbbbbbbeeefcccedddbeeeeeeeeeeecccccceeeeeeeebdddddeeeeeeeeeecccccceeeeeeeebbbbbbdddbfcccfcccccccccccccccccccccccccccccccccccccccc
4ee4eeeeeeeeeeeeeeebeeebbbbbbbbbbbbbbbbbefccceddbbeeeeeeeecccffffffceeeeeeebdddddeeeeeeeeecfffffceccceeeeebbbbbdddbfcccfcccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeee4eeeeeeeeeeeeebbbbbbbbbbbbbbbefccceddbbeeeeeeeeccccffffffeeeeeeebdddddeeeeeeeeeecfffceecfceeeeebbbbbdddbfcccfcccbbccccccccccccccccccccccccccccccccccc
4ee4eeeeeeeeeeeeeeeeeeeeeebbbbbbbbbeebbbefccceddbbeeeeeeeeeeeefffffffceeeeebdddddeeeeeeefceefffceeeeeeeeeebbbbbbddbfccccffccbbbccccccccccccccccccccccccccccccccc
4e4e4e4eeeeeeeeeeeeeeeeeeeebbbbbbbbeeeebefcfbddbbbeeeeeeeeeeeeeeeeeeeeeeeedddddddeeeeeeeeeeeeeeeebbeeeeeeebbbbddbdbfcccceefccccccccccccccccccccccccccccccccccccc
4444eeeeeeeeeeeeeeebeeeeeeeebeebbbbeeeebefcfbdddbbbeeeeeeeeeeeeeeeeeeeeeeedddddddeeeeeeeeeeeeeeebbbbeeeeebbdddddbbbbccceeefccccccccccccccccccccccccccccccccccccc
444444eeeeeeeeeeeeebbeeeeeeeeeeeebbebebbefcbbbbdbbbbeeeeeeeeeeeeeeeeeeeeeedddddddeeeeeeeeeeeeeebbbbbbbbbbbbdddddbbbbfcfeeefcccccccccccccccccccccccccccccccccccce
44444ee4e4eeeeeeeeeeeeeeeeeeeeeeeebeeebbefebbbbdddddbbbeeeeeeeeeeeeeeeeeeedddddddeeeeeeebbeeeeebbbbbbbbdddddddddbbbbeceeeefcccccccccccccccccccccccccccccccccccee
44444e4eeeeeeeeeeeeeeeeeeeeeeeeeeeebebbbefebbbbbddddddbbbbbbbbebeeeebeeeeedddddddeebbbbbbbbbbbbbddddddddddddddddbbbbbfeeeefcbbccccccccccccccccccceeccccccceeeeee
444eee4e4eeeeeeeee4eeeebeeeeeeeeeeebebbeefebbbbbdddddddddddbbbbbbbbbbbeebeddddddddebbbbbbbbbbbbdddddddddddddddddbbbbbeeeeefcccccccccccccccccccceceececeecceeeeee
44444444eeeeeeeeeeeeeeebeeeeeeeeeeeebeeeefebbbbbddddddddddddbbbbbbbbbbeebeddddddddebbbbbbbddddddddddddddddddddddbbbbbeeeeefcccccccccccccccccccccceeeeeeeeceeeeee
4444444444eeeeeeeeeeeeeeeeeeeeeeeeeebbeeefeebbbbdddddddddddddbbbbbbbbbbebeddddddddebbbbbbbddddddddddddddddddddddbbbbbeeeeefcccccccccccccccccccccccceeeeeeeeeeeee
44444444e4eeeeeeee4eeeeeeeeeeeeeeeeeeeeeefeebbbbbdddddddddddddbdddddbbbbbeddddddddebbbbbbdddddddddddddddddddddddbbbbbeeeeefcccccccccccccccccccccccccceeeeeeeeeee
444444444e4eeeeeee4eeeeeeeeeeeeeeeeeeeeeefeebbbbbbddddddddddddddddddbbbbeedddddddeebbbbbddddddddddddddddddddddddbbbbbeeeeefccccccccccccccccccceccccccceeeeeeeeee
444444444ee4e4eeeeeeeeeebbeeeeeeeeeeeeebefeebbbbbbddddddddddddddddddbbbbedddddddddeebbbbddddddddddddddddddddddddbbbbbeeeeefccccccccccccccccccceeeccccccceeeeeeee
444444444444eee4eeeeeebbbbeeeeeeeeeeeeeeeecebbbbbbbdddddbddddddddddddbbbedddddddddeebbbdddddddddddddddddddddddddbbbbbeeeecccccccccccccccccccceeeeeecccccccceeeee
444444444444e4eeeeeeeeeeebeeeeeeeebeeeeeeefebbbbbbbbbbdbbddddddddddddbbbedddddddddeebbbdddddddddddddddddddddddddbbbbbeeeefccccccbcccccccccccceeeeeeeeeeeccccceee
4444444444444eee44e4eee4eeeeeeeeeeeebbbeeefebbbbbbbbbbbdbddddddddddddbeeedddddddddeebbbddddddddddddddddddddddddbbbbbbeeeefccccccbcccccccccecceeeeeeeeeeeeeecccce
4444444444444e4e44ee4eeeeeeebeeeeeeeeebbeefebbbbbbbbbbbdddddddddddddbeeeeddddddddeeeeebbddddddddddddddddddddddbbbbbbbeeeefccccbccccccccceeeeeeeeeeeeeeeeeeeeeccc
4444444444444444eeee4eeeeeeeebeeeeeeeebbeefebbbbbbbbbdddddddddddddddbeeeeddddddddeeeeeebbbddddddddddddddddddddbbbbbbeeeeefccccccccccccccceeeeeeeeeceeeeeeeeeeeee
444444444444444ee44eeeeeeeeeeeeeeeeeeeebeefeeeebbbbbbdddddddddddddddbebdddddddddddeeeeeebbddddddddddddddddddddbbbbbbeeeeefcccccccccccccceccceeeeeeeeeeeeeeeeeeee
444444444444444e44eee4eeeeeee4eeeeeeeeebbefeeeebbbbbbddddddddddddddbbbddddddddddddbeeeeebbddddddddddddddddddddbbbbbbeeeeecccccccccccccceeeecceeeeeeeeeeeeeeeeeee
4444444444444eee444eeee4444eeeeeeeeeeeebbbfeeeebbbbbdddddddddddddddbbddddddddddddddbeeeebbbdddddddddddddddddddbbbbbbeeeecbcccccccccccceeeeeeeceeeeeeeeeeeeeeeeee
44444444444444ee4444e444e4eeeeeeeeeeeeeeeefeeeebbbbbbddddddddddddddbeddddddddddddddbeeeebbbdddddddddddddddddddbbbbbbeeeececcccccccccceeeeeeeeeeeeeeeeeeeeeeeeeee
44444444444444444e444e44eeeeeeeeeeeeeebeeefbbeebbbbbdddddddddddddddbeeeeeddddddddddbeeeebbbbdddddddddddddddddbbbbbbbeeeeceeeceeeccccceeeeeeeeeeeeeeeeeeeeeeeeeee
44444444444444444e44eee4eeeeeeeeeeeeeeeeeefbbbebbbbbddddddddddddddddbeeeebbbbbdddbbeeeebbbbbdddddddddddddddddbbbbbbbeeeeceeeeeeeeecceeeeeeeeeeeeeeeeeeeeeeeeeeee
4444444444444444444444444e44eeeeeeeeeeeeeefbbbebbbbbddddddddddddddddbbeeeeeeeebbbeeeeeebbddbddddddddddddddddbbbbbbbbeeeeceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
444444444444444444444eeeeee4eeeeeeeebeeeeefbbbebbbbbdddddddddddddddddbbeeeeeeeeeeeeeeeebddddddddddddddddddddbbbbbbbbeeeeceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
44444444444444444e444444eeeeeeeeeeeeeeeeeefbbbebbbbbdddddddddddddddddbeeeeeeeeeeeeeeebbbddddddddddddddddddddbbbbbbbbeecceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
444444444444444444444444eeeeeeeeeeeeeeeeebbcebbebbbddddddddddddddddddbeeeeeeeeeeeeeeebbbddddddddddddddddddddbbbbbbbeeecceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
444444444444444444444444eeeeeeeeeeeeeeeeeebcebbebbbbdddddddddddddddddbeeeeeeeeeeeeeeeebbdddbddddddddddddddddbbbbbbecccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
4444444444444444444444444ee4eeeeeeeeeeeeeeeeeeeebbbbdddddddddddddddddbeeeeeeeeeeeeeeeeebbbbbbbdddddddddddddbbbbbbecccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
444444444444444444444444eee4ee44eeeeeeeeeeeeeeeeebbbdddddddddddddddddbeeeeeeeeeeeeeeeeebbbbbbbbdddddddddddbbbbbbbcceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
444444444444444444444444eee4e4eeeeeeeeeeeeeeeeefeebbbddddddddddddbbddbbbeeeeeeeeeeeeeebbbbbbbbbbddddddddbbbbbbbbbcceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
444444444444444444444444ee44444eeeeeeeeeeeeeeeefeebbbddddddddddbbbbbbbbbeeeebbeeeeebbbbbbbbbbbbbbdddddddbbbbbbbbbcceeeeeeeeeeeceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
44444444444444444444444444e4e44e4eeeeeeeeeeeeeefeeebbbdddddddddbbbbbbbeeeeeeeeeeeeeeeeeeeeeeebbbbdddddbbbbbbbbbbbceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
4444444444444444444444444444e4eeeeeeeeeeeeeeeeefeeebbbbdddddddbbbeeeeeeeeeeeeeeeeeeeeeeeeeeeeebbbbdddbbbbbbbbbbeeceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
4444444444444444444444444444e444ee4eeeeeeeeeeeeeeeeebbbdddddddbbbeeeeeeeeeeeeeeeeeeeeeeeeeeeeeebbbbdbbbbbbbbbbeefeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
44444444444444444444444444444e4eeee4eeeeeeeeeeeefceebbbbbdddbbbbbeeeeeeeeeeeeeeeeebbbeeeeeeeeeebbbbbbbbbbbbbbbeefeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
444444444444444444444444444444e4e4eeeeeeeeeeeeeefceeeebbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbdbbbbeebbbbbbbbeebbbbecfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
44444444444444444444444444444444eeeeeeeeeeeeeeeeeeceeeebbbbbbbbbbbbddddddbbbbbbbbbbbddddddbbbebbbbbbbbeeeebbeecfeeeeeeeeeeebbeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
444444444444444444444444444444444ee4eeeeeeeeeeeeeefeeeeebbbbbbbbbbbddddddddbbbbbbdddddddddbbbbbbbbbeeeeeeeeeecceeeeeeeeeeeeebeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
44444444444444444444444444444444444ee4eeeeeeeeeeeeeeeeeeebbbbbbbbbdddddddddbbbbbbddddddddddbbbeeebbeeeeeeeeeefceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
4444444444444444444444444444444444e4eeeeeeeeeeeeeeefeeeeebbbbbbbbbddddddddbbbbbbbbbdddddddddbeeeeeeeeeeeeeeeffceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
44444444444444444444444444444444444444eeeeee4eeeeeefeeeeebbbbbeebbddddddddbbbbbbbbbdddddddddbbeeeeeeeeeeeeefefceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
444444444444444444444444444444444444444eeeeeeeeeeeeefeeeeebbbbeebbbddddddbbbbbbbbbbbdddddddbbeeeeeeeeeeeeeefefceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
444444444444444444444444444444444444e4444eeeeeeeeeeefeeeeeeeeeeeebbbdddddbbbbbbbbbbbddddddbbbeeeeeeeeeeeeeeeecceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
444444444444444444444444444444444444444e4e4eeeeeeeeeeeeeeeeeeeeeebbbddddddbbbbbbbbbddddddbbbeeeeeeeeeeeeeeeebeceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
444444444444444444444444444444444444444eee4eee4eeeeeefeeeeeeeeeeebbbdddddddddddddddddddddbbbeeeeeeeeeeeeeeeebeceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
4444444444444444444444444444444444444444eeeeee4eeeeefffeeeeeeeeeeebbdddddddddddddddddddddbbbeeeeeeeeeeeeeeeebeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
44444444444444444444444444444444444444444ee444eeeeeefcceeeeeeeeeeebbddddddddddddddddddddbbeeeeeeeeeeeeefeeeebecceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
44444444444444444444444444444444444444444eeeeeeeeeffcceeeeeeeeeeeeebbddddddddddddddddbbbbbeeeeeeeeeeeeeeeeeebeeceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
444444444444444444444444444444444444444444eeeefffccccceeefeeeeeeeeebbbddddddddddddddbbbbbbeeeeeeeeeeeeeeeeeebbbcffffceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
444444444444444444444444444444444444444444efffcfffcccceeeefeeeeeeebbbbbdbdddddddddddbbbbbeeeeeeeeeeeefeeeeeebbbbcfcccffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
4444444444444444444444444444444444444444effccfffffcccebeeeeeeeeeeeeeebbbbddddddddddbbbbbeeeeeeeeeeeeeeeeeeeebbbbbcfccfcceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
44444444444444444444444444444444444444eeeffffffffcccebbeeeeeefeeeeeeeeebbbbbdddddbbbbeeeeeeeeeeeeeeeeeeeeeeeebbbbccccffcceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
44444444444444444444444444444444444eeefffffffffffccebbbeeeeeeeeeeeeeeeeebbbbddbbbbeeeeeeeeeeeeeeeefeeeeeeeeeebbbbccfcffcccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
44444444444444444444444444444444eeeefffffffffffffccbbbbeeeeeeefeeeeeeeeebbbbddbbbeeeeeeeeeeeeeeeeeeeeeeeeeeeebbbbecffffccccfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
4444444444444444444444444444444effffcffffffffffffccbbbbeeeeeeeffeeeeeeeebbbbbbbbeeeeeeeeeeeeeeeeefeeeeeeeeeeeebbbbefffffcccffffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
4444444444444444444444444444efffcccffffffffffffffebbbbbeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffeeeeeeeeeeeeebbbecfffffffcccccfffceeeeeeeeeeeeeeeeeeeeeeeeeeeee
4444444444444444444444444eeecccffffffffffffffffffebbbbbeeeeeeeeeeefeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeebbbefffffffffcccffccccceeeeeeeeeeeeeeeeeeeeeeeeeee
`;
case "image4":
case "myImage0":return img`
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeececccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeebeeeeeeeeeeeeeeeeeeeeecccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeecccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccccccccccccccccccccccccfffffcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccccccbbbccccccccccccccdddbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeecccccccccccbcccccbbbbbbbbbcdddbbcbbbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccccccccccbddbbdddddbbbbbbbdddcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeecccccffffcddddddbbbbddbbbbbcccbdddddcfcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccfcddddddbdddbccccbbddbbbcccbbddbdddbffccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeecccccbddddddbbbbbbcccccbbbbbbccbccbbdbdddddccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeecccbbbdddddddbbccccccccccbbbbbbccccbbdbdddddbbbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeecccbdddddddddbbccccccccccccbbbbbbccccbbbddddddddcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeebbecbddbddddddbbbccccccccccccccbbbbbcccccbbdbbddddddddbfcccccccccccccccccccccccaccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefbddddbbbbbbbbbcccccccccccccccccccccccccbbbbdddddddddddffcccccccccccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefbdddddddbbbbbbccccccccccccccccccccccccccbbbbddddddddbbddbccccccccccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeebbeeeeeeeccbbddddddbbbbbcccccccccccccccccccccccccccbbbbddbbdddbbbddbbcccccccccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeebbeeebeeccbbbddddddbbbbbcccccccccccccccccccccccccccbccbbdbbbdddbbbbbbcccccccccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeebbeeeccdddddddbbbbbbbcccccccccccccccccccccccccccccccbbbbcbdddbbcbbddcccccccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeebbeeeeccbddddddbbbbbbcccccccccccccccccccccccccccccccccbbbbbccbbdbbcccbdbffcccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeebbeeecbddddddddbbbccccccccccccccccccccccccccccccccccccccbbbcccbbbbbcccbbcfcccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeeeecbddddddddbbbcccccccccccccccccccccccccccccccccccccccbbccccbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeebeeeeebeebeeeecbddddddbbbbcccccccccccccccccccccccccccccccccccccccccbcccccbbccbccccbfccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeeefbdddddddbbbcccccccccccccccccccccccccccccccccccccccccccccccccbccccccccfccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeebebeeebefbdddddddbccccccccccccccccccccccccccccccccccccccccccccccccccccbbcccccccfcccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebbeeebbbeebefddddddddbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccfcccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeebbeeeeeebeeeeebecbdddddddbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccbbccccccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeebeeebeeeeeebbbbeeeeeeebbebbefbddddddbccccccbbbbcccccccccccccccccccccccccccccccccbbbbcccccccccbbbbcbcccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeeeeeebbcbddddddbccccbcccccccccccbbbbbcccccccccccccccccccccccccccccccccccccccbbcccccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefddddddbbccccccfffffffffffcccccbbbcccccccccccccccfffffffffffcccccccccbbcbcfccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeeefdddddbbccccccebbbbbbbbbbbeffffcccccccccffffffffebbbbbbbbbbbffcccccccbbcbcfccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeebeeeeeeeeebbebecbdddddbccccccebdddddddddddbbbbbccccccccceeeeeeebbbddddddddddbbeccccccbbcbbbccccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeeeebbebccddddbbccccccebdddddddddddddddddeeeeeeeeebbbbbbbdddddddddddddddbecccccbbcbbdfcccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeebeeeeeeeeeeeebbebecddddbccccccfebdddddddddddddddddddddbbbbbbbbbbddddddddddddddddddbfccccbbbbbbfcccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeebeeeeeeeeeeeebebeebccddbbbcccccfebdddddddddddddddddddddddddbbdddddddddddddddddddddddbbfccccbbbbbdcccccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeeebddbbbccccccfbddddddddddddddddddddddddddddddddddddddddddddddddddddbfcccccbbbbbdbcccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeebeeeeeeeeebcbddbbccccccceddddddddddddddddddddddddddddddddddddddddddddddddddddddeccccccbbbbdbcccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeebeeeebcbdbbcccccccebddddddddddddddddddddddddddddddddddddddddddddddddddddddbeccccccbbbdbcccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeebbeeebbbeeeeeeeecbdbbccccccceddddddddddddddddddddddddddddddddddddddddddddddddddddddddecccccccbbdbcccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeebbeebbbbeeeeeeecbdbbcccccccebdddddddddddddddddddddddddddddddddddddddddddddddddddddddddbfccccccbbdbccccccccccccccccccccccccccccccccccccccc
e999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
e9eeeeeeeeeeeeeeeeeeeeebbbbbbeeebbeeeefbbcccccccfbbddddddddddddddddddddddddddddddddddddddddddddddddddddddddddbeccccccbbdbfccccccccccccccccccccccccccccccccccccc9
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
999999aaaaaaaaaaaaaaaaaaaaaaaaa9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999aaaa9999999999999999999999
999999a99999999999999999999999a9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999a99a9999999999999999999999
999999a99999999999999999999999a9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999a99a9999999999999999999999
999999a99999999999999999999999a9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999a99a9999999999999999999999
999999a99999999999999999999999a9999aaaaaaaaaaaaaaaaaa999999999999999999999999999999999999999999999999999999999999999999999999999999999a99a9999999999999999999999
999999a99999999999999999999999a9999a9999999999999999a99999999999999999999999999999999999999aaaa999999999999999999999999999999999999999a99a9999999999999999999999
999999a99999999999999999999999a9999a9999999999999999a99999999999999999999999999999999999999a99a999999999999999999999999999999999999999a99a9999999999999999999999
999999a99999999999999999999999a9999a9999999999999999a999999aaaa9999999999999999999999999999a99a999999999999999999999999999999999999999a99a9999999999999999999999
999999a99999999999999999999999a9999a9999999999999999a999999a99a9999999999999999999999999999a99a999999999999999999999999999999999999999a99a9999999999999999999999
999999a99999999999999999999999a9999a9999999999999999a999999a99aaaaaaaaaaaaaaaaaaaaa99999999a99a999999999aaaaaaaaaaaaaaaaaaaaaaaa999999a99a9999999999999999999999
999999a99999999999999999999999a9999a9999999999999999a999999a9999999999999999999999a99999999a99a999999999a9999999999999999999999a999999a99a9999999999999999999999
999999a99999999999999999999999a9999a9999999999999999a999999a9999999999999999999999a99999999a99a999999999a9999999999999999999999a999999a99a9999999999999999999999
999999a99999999999999999999999a9999a9999999999999999a999999a9999999999999999999999a99999999a99a999999999a9999999999999999999999a999999a99a9999999999999999999999
999999a99999999999999999999999a9999a9999999999999999a999999a99aaaaaaaaaaaaaaaaaaaaa99999999a99a999999999a9999999999999999999999a999999a99a9999999999999999999999
999999a99999999999999999999999a9999a9999999999999999a999999a99a9999999999999999999999999999a99a999999999a9999999999999999999999a999999a99a9999999999999999999999
999999a99999999999999999999999a9999a9999999999999999a999999a99a9999999999999999999999999999a99a999999999a9999999999999999999999a999999a99a9999999999999999999999
999999a99999999999999999999999a9999a9999999999999999a999999a99a9999999999999999999999999999a99a999999999a9999999999999999999999a999999a99a9999999999999999999999
999999a99999aaaaaaaaaaaaaaaaaaa9999a9999999999999999a999999a99a9999999999999999999999999999a99a999999999a9999999999999999999999a999999a99a9999999999999999999999
999999a99999a9999999999999999999999a9999999999999999a999999a99a9999999999999999999999999aaaa99aaaa999999a9999999999999999999999a999999a99a9999999999999999999999
999999a99999a9999999999999999999999a9999999999999999a999999a99a9999999999999999999999999a99999999a999999a9999999999999999999999a999999a99a9999999999999999999999
999999a99999a9999999999999999999999a9999999999999999a999999a99a9999999999999999999999999aaaa99aaaa999999a9999999999999999999999a999999a99a9999999999999999999999
999999a99999a9999999999999999999999a9999999999999999a999999a99a9999999999999999999999999999a99a999999999a9999999999999999999999a999999a99a9999999999999999999999
999999a99999a9999999999999999999999a9999999999999999a999999a99a9999999999999999999999999999a99a999999999a9999999999999999999999a999999a99a9999999999999999999999
999999a99999a9999999999999999999999a9999999999999999a999999a99a9999999999999999999999999999a99a999999999a9999999999999999999999a999999a99a9999999999999999999999
999999a99999a9999999999999999999999a9999999999999999a999999a99a9999999999999999999999999999a99a999999999a9999999999999999999999a999999a99a9999999999999999999999
999999a99999a9999999999999999999999a9999999999999999a999999a99a9999999999999999999999999999a99a999999999a9999999999999999999999a999999a99a9999999999999999999999
999999a99999a9999999999999999999999a9999999999999999a999999a99a9999999999999999999999999999a99a999999999a9999999999999999999999a999999a99a9999999999999999999999
999999a99999a9999999999999999999999a9999999999999999a999999a99a9999999999999999999999999999a99a999999999a999999aaaaaaaaaaaa9999a999999a99a9999999999999999999999
999999a99999a9999999999999999999999a9999999999999999a999999a99a9999999999999999999999999999a99a999999999a999999a9999999999a9999a999999a99a9999999999999999999999
999999a99999a9999999999999999999999a9999999999999999a999999a99a9999999999999999999999999999a99a999999999a999999a9999999999a9999a999999a99a9999999999999999999999
999999a99999a9999999999999999999999a9999999999999999a999999a99a9999999999999999999999999999a99a999999999a999999a9999999999a9999a999999a99a9999999999999999999999
999999a99999a9999999999999999999999a9999999999999999a999999a99a9999999999999999999999999999a99a999999999a999999a9999999999a9999a999999a99a9999999999999999999999
999999a99999a9999999999999999999999a9999999999999999a999999a99a9999999999999999999999999999a99a999999999a999999a9999999999a9999a999999a99a9999999999999999999999
999999a99999a9999999999999999999999a9999999999999999a999999a99a9999999999999999999999999999a99a999999999a999999a9999999999a9999a999999a99a9999999999999999999999
999999a99999a9999999999999999999999a9999999999999999a999999a99a9999999999999999999999999999a99a999999999a999999a9999999999a9999a999999a99a9999999999999999999999
999999a99999a9999999999999999999999a9999999999999999a999999a99a9999999999999999999999999999a99a999999999a999999a9999999999a9999a999999a99a9999339999999999999999
999999a99999a9999999999999999999999a9999999999999999a999999a99a9999999999999999999999999999a99a999999999a999999a9999999999a9999a999999a99a9999333999999999999999
999999a99999a9999999999999999999999a9999999999999999a999999a99a9999999999999999999999999999a99a999999999a999999a9999999999a9999a999999a99a9999399399999999999999
999999a99999a9999999999999999999999a9999999999999999a999999a99a9999999999999999999999999999a99a999999999a999999a9999999999a9999a999999a99a9999393399999999999999
999999a99999a9999999999999999999999a9999999999999999a999999a99a9999999999999999999999999999a99a999999999a999999a9999999999a9999a999999a99a9999333993999999999999
999999a99999a9999999999999999999999a9999999999999999a999999a99a9999999999999999999999999999a99a999999999a999999a9999999999a9999a999999a99a9999339993399399999999
999999a99999a9999999999999999999999a9999999999999999a999999a99a9999999999999999999999999999a99a999999999a999999a9999999999a9999a999999a99a9999399999399399999999
999999a99999a9999999999999999999999a9999999999999999a999999a99a9999999999999999999999999999a99a999999999a999999a9999999999a9999a999999a99a9999399999339399999999
999999a99999a9999999999999999999999a9999999999999999a999999a99a9999999999999999999999999999a99a999999999a999999a9999999999a9999a999999a99aaaaa33aaaaa3a3aaaaaa99
999999a99999a9999999999999999999999a9999999999999999a999999a99a9999999999999999999999999999a99a999999999a999999a9999999999a9999a999999a9999999939999999399999a99
999999a99999a9999999999999999999999aaaaaaaaaaaaaaaaaa999999a99a9999999999999999999999999999a99a999999999a999999a9999999999a9999a999999a9999999999999993999999a99
999999a99999a9999999999999999999999999999999999999999999999aaaa9999999999999999999999999999a99a999999999aaaaaaaa9999999999aaaaaa999999a9999999999999993999999a99
999999a99999a999999999999999999999999999999999999999999999999999999999999999999999999999999aaaa999999999999999999999999999999999999999aaaaaaaaaaaaaaaa3aaaaaaa99
999999aaaaaaa999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999933999999999
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999939999999999
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999399999999999
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
444444444444444444444444444444e4e4eeeeeeeeeeeeeefceeeebbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbdbbbbeebbbbbbbbeebbbbecfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
44444444444444444444444444444444eeeeeeeeeeeeeeeeeeceeeebbbbbbbbbbbbddddddbbbbbbbbbbbddddddbbbebbbbbbbbeeeebbeecfeeeeeeeeeeebbeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
444444444444444444444444444444444ee4eeeeeeeeeeeeeefeeeeebbbbbbbbbbbddddddddbbbbbbdddddddddbbbbbbbbbeeeeeeeeeecceeeeeeeeeeeeebeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
44444444444444444444444444444444444ee4eeeeeeeeeeeeeeeeeeebbbbbbbbbdddddddddbbbbbbddddddddddbbbeeebbeeeeeeeeeefceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
4444444444444444444444444444444444e4eeeeeeeeeeeeeeefeeeeebbbbbbbbbddddddddbbbbbbbbbdddddddddbeeeeeeeeeeeeeeeffceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
44444444444444444444444444444444444444eeeeee4eeeeeefeeeeebbbbbeebbddddddddbbbbbbbbbdddddddddbbeeeeeeeeeeeeefefceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
444444444444444444444444444444444444444eeeeeeeeeeeeefeeeeebbbbeebbbddddddbbbbbbbbbbbdddddddbbeeeeeeeeeeeeeefefceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
444444444444444444444444444444444444e4444eeeeeeeeeeefeeeeeeeeeeeebbbdddddbbbbbbbbbbbddddddbbbeeeeeeeeeeeeeeeecceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
444444444444444444444444444444444444444e4e4eeeeeeeeeeeeeeeeeeeeeebbbddddddbbbbbbbbbddddddbbbeeeeeeeeeeeeeeeebeceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
444444444444444444444444444444444444444eee4eee4eeeeeefeeeeeeeeeeebbbdddddddddddddddddddddbbbeeeeeeeeeeeeeeeebeceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
4444444444444444444444444444444444444444eeeeee4eeeeefffeeeeeeeeeeebbdddddddddddddddddddddbbbeeeeeeeeeeeeeeeebeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
44444444444444444444444444444444444444444ee444eeeeeefcceeeeeeeeeeebbddddddddddddddddddddbbeeeeeeeeeeeeefeeeebecceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
44444444444444444444444444444444444444444eeeeeeeeeffcceeeeeeeeeeeeebbddddddddddddddddbbbbbeeeeeeeeeeeeeeeeeebeeceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
444444444444444444444444444444444444444444eeeefffccccceeefeeeeeeeeebbbddddddddddddddbbbbbbeeeeeeeeeeeeeeeeeebbbcffffceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
444444444444444444444444444444444444444444efffcfffcccceeeefeeeeeeebbbbbdbdddddddddddbbbbbeeeeeeeeeeeefeeeeeebbbbcfcccffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
4444444444444444444444444444444444444444effccfffffcccebeeeeeeeeeeeeeebbbbddddddddddbbbbbeeeeeeeeeeeeeeeeeeeebbbbbcfccfcceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
44444444444444444444444444444444444444eeeffffffffcccebbeeeeeefeeeeeeeeebbbbbdddddbbbbeeeeeeeeeeeeeeeeeeeeeeeebbbbccccffcceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
44444444444444444444444444444444444eeefffffffffffccebbbeeeeeeeeeeeeeeeeebbbbddbbbbeeeeeeeeeeeeeeeefeeeeeeeeeebbbbccfcffcccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
44444444444444444444444444444444eeeefffffffffffffccbbbbeeeeeeefeeeeeeeeebbbbddbbbeeeeeeeeeeeeeeeeeeeeeeeeeeeebbbbecffffccccfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
4444444444444444444444444444444effffcffffffffffffccbbbbeeeeeeeffeeeeeeeebbbbbbbbeeeeeeeeeeeeeeeeefeeeeeeeeeeeebbbbefffffcccffffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
4444444444444444444444444444efffcccffffffffffffffebbbbbeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffeeeeeeeeeeeeebbbecfffffffcccccfffceeeeeeeeeeeeeeeeeeeeeeeeeeeee
4444444444444444444444444eeecccffffffffffffffffffebbbbbeeeeeeeeeeefeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeebbbefffffffffcccffccccceeeeeeeeeeeeeeeeeeeeeeeeeee
`;
}
return null;
})
helpers._registerFactory("animation", function(name: string) {
switch(helpers.stringTrim(name)) {
}
return null;
})
}
// Auto-generated code. Do not edit.

187
index.html generated Normal file
View file

@ -0,0 +1,187 @@
---
# this is an empty front matter
---
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>{{ site.github.project_title }}</title>
<meta name="description" content="{{ site.github.project_tagline }}" />
<meta name="author" content="{{ site.github.owner_name }}">
<meta name="twitter:card" content="summary" />
<meta name="twitter:site" content="/" />
<meta name="twitter:title" content="{{ site.github.project_tagline }}" />
<meta name="twitter:description" content="{{ site.github.project_tagline }}" />
<meta name="twitter:image" content="./icon.png" />
<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-title" content="{{ site.github.project_title }}">
<meta name="apple-mobile-web-app-status-bar-style" content="translucent-black">
<meta name="format-detection" content="telephone=no">
<meta name="application-name" content="{{ site.github.project_title }}">
<meta name="theme-color" content="#000">
<meta property="og:title" content="{{ site.github.project_title }}" />
<meta property="og:site_name" content="{{ site.github.project_title }}" />
<meta property="og:description" content="{{ site.github.project_tagline }}" />
<meta property="og:image" content="./icon.png" />
<link rel="apple-touch-icon" href="./icon.png">
<link rel="icon" type="image/png" href="./icon.png">
<link rel="shortcut icon" href="./icon.png">
<script type="text/javascript" src="./assets/js/loader.js?v={{ site.github.build_revision }}"></script>
<script type="text/javascript" src="./assets/js/custom.js?v={{ site.github.build_revision }}"></script>
<style>
body {
background: black;
color: white;
font-family: monospace;
overflow: hidden;
font-size: 14pt;
}
.embed {
background: transparent;
}
iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: calc(100% - 1.5em);
border: none;
}
.nofooter iframe {
height: 100%;
}
footer {
color: grey;
position: absolute;
bottom: 0;
width: 100%;
left: 0;
z-index: 100;
text-align: center;
font-size: 1em;
margin-bottom: 0.25em;
}
footer a {
color: grey;
}
.embed footer,
.embed footer a {
color: black;
}
#fullscreen {
position: absolute;
right: 0.25rem;
bottom: 0;
cursor: pointer;
}
.lds-ripple {
width: 80px;
height: 80px;
margin: auto;
position: absolute;
margin: auto;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: -1;
}
.lds-ripple div {
position: absolute;
border: 4px solid #fff;
opacity: 1;
border-radius: 50%;
animation: lds-ripple 1s cubic-bezier(0, 0.2, 0.8, 1) infinite;
}
.lds-ripple div:nth-child(2) {
animation-delay: -0.5s;
}
@keyframes lds-ripple {
0% {
top: 36px;
left: 36px;
width: 0;
height: 0;
opacity: 1;
}
100% {
top: 0px;
left: 0px;
width: 72px;
height: 72px;
opacity: 0;
}
}
</style>
</head>
<body id="root">
<div id="loader" class="lds-ripple">
<div></div>
<div></div>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" x="0" y="0" viewBox="0 0 32 32" xml:space="preserve"
id="svg2">
<style type="text/css" id="style4"></style>
<g id="g4212" transform="matrix(.79626 0 0 .79626 -68.322 9.868)">
<path
d="M105.989-5.487v.01a1.91 1.91 0 00-1.613 1.83c0 .779.417 1.119.417 1.15.413.435.238.913-.589.874 0 0-3.009.015-3.066 0a.724.724 0 00-.53.696v9.894c-.001.39.314.705.705.705h9.848c.39 0 .705-.314.705-.705V5.475c-.126-.423-.489-.463-.827-.141-.032 0-.369.417-1.147.417-.93-.03-1.69-.72-1.83-1.616h-.013a6.771 6.771 0 010-.494h.012c.142-.897.9-1.587 1.83-1.616.78 0 1.116.417 1.148.417.329.313.695.238.827-.138V-.927a.72.72 0 00-.527-.696c-.057.015-3.07 0-3.07 0-.74.06-.998-.44-.585-.874 0-.031.417-.371.417-1.15-.029-.93-.72-1.69-1.616-1.83v-.01a6.241 6.241 0 00-.496 0z"
id="path167" fill="#fff" fill-opacity="1" stroke-width="1.57" />
<path
d="M98.633-7.18c-.917 0-1.624.252-2.158.774-.534.521-.802 1.208-.822 2.094a552.379 552.379 0 01-.062 2.732c-.02.776-.081 1.354-.187 1.766-.118.46-.331.853-.637 1.168-.272.28-.684.587-1.254.938-.255.156-.368.387-.368.748 0 .351.077.481.11.521.12.145.32.3.592.463.376.226.702.494.972.795.3.334.518.786.662 1.38.052.213.112.882.172 4.228.006.566.138 1.07.39 1.502.25.431.584.753 1.02.984.443.235.971.356 1.57.356.974 0 1.055-.377 1.055-.764 0-.266-.054-.465-.157-.591a.501.501 0 00-.334-.2c-.374-.042-.66-.103-.87-.187a1.29 1.29 0 01-.678-.622c-.127-.244-.206-.588-.242-1.049a22.82 22.82 0 01-.046-1.68c0-.707-.034-1.327-.099-1.846a4.868 4.868 0 00-.31-1.26 2.848 2.848 0 00-.52-.843 4.267 4.267 0 00-.874-.702l-.773-.485.773-.487c.502-.318.88-.657 1.128-1.012.244-.35.413-.783.503-1.282.099-.55.153-1.333.169-2.333 0-.713.014-1.247.042-1.625.032-.437.105-.774.221-1.027.147-.317.382-.548.68-.672.214-.086.506-.152.896-.205a.429.429 0 00.224-.089.622.622 0 00.178-.251 1.11 1.11 0 00.089-.451c0-.268-.07-.45-.215-.57-.175-.144-.456-.215-.84-.215z"
id="path165" fill="#fff" fill-opacity="1" stroke-width="1.57" />
<path
d="M113.887-7.182c-.974 0-1.055.377-1.055.763 0 .267.05.467.153.592.1.12.205.182.338.2.374.042.658.103.867.186.294.116.524.326.678.623.127.245.206.588.242 1.048.032.397.046.945.046 1.68 0 .708.034 1.328.098 1.846.06.49.166.917.31 1.264.138.332.313.616.521.843.22.239.511.473.871.699l.773.487-.77.488c-.502.317-.882.656-1.128 1.009-.244.35-.414.78-.503 1.278-.099.551-.154 1.338-.169 2.337 0 .712-.015 1.246-.043 1.625-.03.437-.1.77-.217 1.024a1.294 1.294 0 01-.68.674c-.214.087-.506.154-.896.206a.44.44 0 00-.227.089.64.64 0 00-.178.251c-.06.135-.086.282-.086.45 0 .268.066.45.212.571.174.144.458.218.843.218.917 0 1.62-.254 2.155-.776.534-.522.802-1.205.822-2.091.023-1.095.046-2.007.064-2.735.02-.777.079-1.355.184-1.766.12-.46.333-.854.638-1.168.273-.28.684-.587 1.254-.938.254-.157.368-.385.368-.746 0-.35-.077-.483-.11-.524-.119-.143-.316-.298-.589-.463a4.268 4.268 0 01-.975-.794c-.3-.334-.515-.784-.66-1.377-.051-.213-.114-.885-.174-4.23-.007-.568-.138-1.072-.39-1.503a2.524 2.524 0 00-1.02-.984c-.443-.235-.968-.356-1.567-.356z"
id="path163" fill="#fff" fill-opacity="1" stroke-width="1.57" />
</g>
<path
d="M28.621 31.422c.224-.102.208 1.099.208-15.49 0-16.588.016-15.388-.208-15.49-.144-.065-24.6-.065-24.744 0-.223.102-.207-1.1-.206 15.498.001 12.58.01 15.259.052 15.334.112.203-.702.19 12.515.192 9.446.001 12.307-.01 12.383-.044zm-9.415-1.705c-.283-.11-.57-.4-.678-.687a1.216 1.216 0 011.131-1.655c.669 0 1.213.544 1.213 1.213 0 .853-.862 1.437-1.666 1.129zm-8.337-1.054v-.757H9.353v-1.668h1.516V24.723H12.536V26.238h1.516v1.668h-1.516V29.42H10.869zm10.99-1.22c-.284-.109-.57-.399-.678-.686a1.204 1.204 0 01.276-1.298c.762-.762 2.067-.222 2.067.855 0 .854-.862 1.438-1.666 1.13zM4.765 23.475l-.111-.11V1.377l.11-.111.111-.11h22.746l.11.11.112.11V23.366l-.111.11-.11.111H4.875z"
id="path4210" fill="#fff" fill-opacity="1" />
</svg>
</div>
<iframe id="simframe" allowfullscreen="allowfullscreen"
sandbox="allow-popups allow-forms allow-scripts allow-same-origin">
</iframe>
<footer id="footer">
<a target="blank" rel="nofollow noopener" href="https://{{ site.github.owner_name }}.github.io/{{ site.github.repository_name }}/README">Manual</a>
<a target="blank" rel="nofollow noopener" href="https://arcade.makecode.com/#pub:github:{{ site.github.owner_name }}/{{ site.github.repository_name }}">Edit</a>
<a target="blank" rel="nofollow noopener" href="https://github.com/{{ site.github.owner_name }}/{{ site.github.repository_name }}">GitHub</a>
<span id="version"></span>
<div id="fullscreen"></div>
</footer>
<script type="text/javascript">
makeCodeRun({ js: "./assets/js/binary.js?v={{ site.github.build_revision }}" });
if (window.location && window.location.search) {
var noFooter = /nofooter=1/i.test(window.location.search);
var embed = /embed=1/i.test(window.location.search);
var root = document.querySelector("#root");
if (noFooter) {
var footer = document.querySelector("#footer");
if (root)
root.className += " nofooter";
if (footer)
footer.remove();
}
if (embed && root) {
root.className += " embed";
}
}
</script>
</body>
</html>

207
main.blocks Normal file

File diff suppressed because one or more lines are too long

324
main.ts Normal file
View file

@ -0,0 +1,324 @@
controller.up.onEvent(ControllerButtonEvent.Pressed, function () {
py = 1
})
controller.B.onEvent(ControllerButtonEvent.Pressed, function () {
music.pewPew.play()
projectile = sprites.createProjectileFromSprite(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.A.onEvent(ControllerButtonEvent.Pressed, function () {
if (mySprite.vy == 0) {
music.footstep.play()
mySprite.vy = -150
}
})
controller.down.onEvent(ControllerButtonEvent.Released, function () {
py = 0
})
scene.onOverlapTile(SpriteKind.Player, sprites.dungeon.doorClosedNorth, function (sprite, location) {
if (canTP) {
music.knock.play()
tiles.placeOnRandomTile(mySprite, sprites.dungeon.doorOpenNorth)
canTP = 0
}
})
controller.up.onEvent(ControllerButtonEvent.Released, function () {
py = 0
})
controller.down.onEvent(ControllerButtonEvent.Pressed, function () {
py = -1
})
controller.menu.onEvent(ControllerButtonEvent.Pressed, function () {
if (_type) {
typeSprite.setImage(assets.image`red`)
_type = 0
} else {
typeSprite.setImage(assets.image`blue`)
_type = 1
}
})
scene.onOverlapTile(SpriteKind.Player, sprites.swamp.swampTile7, function (sprite, location) {
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)
}
tiles.setTileAt(location, sprites.dungeon.doorClosedNorth)
tiles.setWallAt(location, false)
})
scene.onOverlapTile(SpriteKind.Player, sprites.swamp.swampTile9, function (sprite, location) {
game.over(false)
})
scene.onOverlapTile(SpriteKind.Player, sprites.dungeon.collectibleRedCrystal, function (sprite, location) {
level += 1
if (level == levels.length) {
game.over(true)
} else {
music.baDing.play()
startLevel()
}
})
function startLevel () {
scene.setBackgroundImage(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.setCurrentTilemap(levels[level])
mySprite.setPosition(75, 40)
game.showLongText(levelStartMessage[level], DialogLayout.Bottom)
}
scene.onOverlapTile(SpriteKind.Player, sprites.dungeon.doorOpenNorth, function (sprite, location) {
if (canTP) {
music.knock.play()
tiles.placeOnRandomTile(mySprite, sprites.dungeon.doorClosedNorth)
canTP = 0
}
})
let canTP = 0
let px = 0
let projectile: Sprite = null
let py = 0
let level = 0
let levelStartMessage: string[] = []
let levels: tiles.TileMapData[] = []
let _type = 0
let typeSprite: Sprite = null
let mySprite: Sprite = null
scene.setBackgroundImage(assets.image`myImage`)
pause(500)
scene.setBackgroundImage(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.cameraFollowSprite(mySprite)
controller.moveSprite(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",
""
]
level = 5
music.setVolume(20)
for (let index = 0; index < 2; index++) {
music.playMelody("E B C5 A B G A F ", 220)
}
startLevel()
game.onUpdate(function () {
typeSprite.setPosition(scene.cameraProperty(CameraProperty.X) + scene.screenWidth() / 2 - 8, scene.cameraProperty(CameraProperty.Y) - scene.screenHeight() / 2 + 8)
})
game.onUpdateInterval(1000, function () {
canTP = 1
})
forever(function () {
})
forever(function () {
if (mySprite.vx < 0) {
mySprite.setImage(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.setImage(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
}
})

32
pxt.json Normal file
View file

@ -0,0 +1,32 @@
{
"name": "portalpy",
"description": "",
"dependencies": {
"device": "*"
},
"files": [
"main.blocks",
"main.ts",
"README.md",
"assets.json",
"tilemap.g.jres",
"tilemap.g.ts",
"images.g.jres",
"images.g.ts"
],
"testFiles": [
"test.ts"
],
"targetVersions": {
"branch": "v1.8.22",
"tag": "v1.8.22",
"commits": "https://github.com/microsoft/pxt-arcade/commits/6017af228c87817006b555668c65933bf3cbff4c",
"target": "1.8.22",
"pxt": "7.4.26",
"targetId": "arcade"
},
"supportedTargets": [
"arcade"
],
"preferredEditor": "blocksprj"
}

1
test.ts Normal file
View file

@ -0,0 +1 @@
// tests go here; this will not be compiled when this package is used as an extension.

106
tilemap.g.jres Normal file
View file

@ -0,0 +1,106 @@
{
"transparency16": {
"data": "hwQQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
"mimeType": "image/x-mkcd-f4",
"tilemapTile": true
},
"level2": {
"id": "level2",
"mimeType": "application/mkcd-tilemap",
"data": "MTAxMDAwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMA==",
"tileset": [
"myTiles.transparency16"
],
"displayName": "level2"
},
"level1": {
"id": "level1",
"mimeType": "application/mkcd-tilemap",
"data": "MTAxMDAwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MDQwNDA0MDQwNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwODAwMDUwMDAwMDYwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MDQwNDA0MDQwMzA0MDAwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MDAwMDAwMDAwMjA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDAzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjIyMjIyMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMjIyMjIyMDIwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMDIwMDIwMjIyMjIyMjIyMjIyMjIyMg==",
"tileset": [
"myTiles.transparency16",
"sprites.castle.tilePath1",
"sprites.castle.tilePath4",
"sprites.castle.tilePath5",
"sprites.castle.tilePath2",
"sprites.dungeon.doorOpenNorth",
"sprites.castle.tilePath6",
"sprites.castle.tilePath3",
"sprites.dungeon.collectibleRedCrystal"
],
"displayName": "level1"
},
"level3": {
"id": "level3",
"mimeType": "application/mkcd-tilemap",
"data": "MTAxMDAwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjAwMDMwMDAwMDQwMDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMjIyMjIyMjIyMjIyMjIyMg==",
"tileset": [
"myTiles.transparency16",
"sprites.castle.tilePath2",
"sprites.castle.tilePath4",
"sprites.dungeon.doorOpenNorth",
"sprites.dungeon.collectibleRedCrystal"
],
"displayName": "level3"
},
"level4": {
"id": "level4",
"mimeType": "application/mkcd-tilemap",
"data": "MTAxMDAwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMwMDAwMDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTAwMDAwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDUwMTAyMDAwMDAyMDAwMDAwMDAwMDAwMDAwMDA1MDEwMjAyMDIwMDAwMDIwMDAwMDAwMDAwMDAwNTAxMDIwMjAyMDIwMjAwMDAwMjAwMDAwMDAwMDUwMTAyMDIwMjAyMDIwMjAyMDEwMTAyMDEwMTAxMDEwMjAyMDIwMjAyMDIwMjAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjIwMDAwMDAwMDAwMDIyMDIyMDAwMDAwMDAwMjIyMjAyMjAwMDAwMDAyMjIyMjIwMjIwMDAwMDIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMg==",
"tileset": [
"myTiles.transparency16",
"sprites.castle.tilePath2",
"sprites.castle.tilePath5",
"sprites.dungeon.collectibleRedCrystal",
"sprites.dungeon.doorOpenNorth",
"sprites.castle.tilePath1"
],
"displayName": "level4"
},
"level5": {
"id": "level5",
"mimeType": "application/mkcd-tilemap",
"data": "MTAxMDAwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEwMTAxMDEwMTAxMDEwMTAxMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQwMDA1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTAxMDEwMTAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIyMjIyMjIyMjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMjIyMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMA==",
"tileset": [
"myTiles.transparency16",
"sprites.castle.tilePath2",
"sprites.swamp.swampTile7",
"sprites.swamp.swampTile9",
"sprites.dungeon.collectibleRedCrystal",
"sprites.dungeon.doorOpenNorth"
],
"displayName": "level5"
},
"level6": {
"id": "level6",
"mimeType": "application/mkcd-tilemap",
"data": "MTAxMDAwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzAwMDAwMDAwMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMg==",
"tileset": [
"myTiles.transparency16",
"sprites.castle.tilePath2",
"sprites.castle.tilePath5",
"sprites.dungeon.collectibleRedCrystal"
],
"displayName": "level6"
},
"level7": {
"id": "level7",
"mimeType": "application/mkcd-tilemap",
"data": "MTAxMDAwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEwMTAxMDEwMTAxMDEwMzAzMDMwMzAzMDMwMzAzMDMwMjAyMDIwMjAyMDIwMjAyMDIwMjAxMDEwMTAxMDEwMTAyMDIwMjAyMDIwMjAyMDIwMjAyMDAwMDAwMDAwMDAwMDIwMjAyMDIwMjAyMDIwMjAyMDIwMDAxMDAwMDAwMDAwMjAyMDIwMjAyMDIwMjAyMDIwMjAwMDAwMDAwMDUwMDAyMDIwMjA0MDIwMjAyMDIwMjAyMDEwMTAxMDEwMTAxMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwNDAyMDIwMjAyMDIwMjAyMDIwMjAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIyMjIyMjAyMDAwMDAwMDAwMDAwMDAwMDAwMjIyMjIyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIyMjIyMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMA==",
"tileset": [
"myTiles.transparency16",
"sprites.castle.tilePath2",
"sprites.swamp.swampTile9",
"sprites.swamp.swampTile7",
"sprites.swamp.swampTile13",
"sprites.dungeon.collectibleRedCrystal",
"sprites.dungeon.doorOpenNorth"
],
"displayName": "level7"
},
"*": {
"mimeType": "image/x-mkcd-f4",
"dataEncoding": "base64",
"namespace": "myTiles"
}
}

153
tilemap.g.ts Normal file
View file

@ -0,0 +1,153 @@
// Auto-generated code. Do not edit.
namespace myTiles {
//% fixedInstance jres blockIdentity=images._tile
export const transparency16 = image.ofBuffer(hex``);
helpers._registerFactory("tilemap", function(name: string) {
switch(helpers.stringTrim(name)) {
case "level2":
case "level2":return tiles.createTilemap(hex`1000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000`, img`
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
`, [myTiles.transparency16], TileScale.Sixteen);
case "level1":
case "level1":return tiles.createTilemap(hex`1000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004040404040700000000000000000000000000000006000000000000000000000800050000060000000000000000000004040404040304000000000000000001000000000000000000000000000000020000000000000000000004000000000204040404040404040404040404040403`, img`
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
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.castle.tilePath1,sprites.castle.tilePath4,sprites.castle.tilePath5,sprites.castle.tilePath2,sprites.dungeon.doorOpenNorth,sprites.castle.tilePath6,sprites.castle.tilePath3,sprites.dungeon.collectibleRedCrystal], TileScale.Sixteen);
case "level3":
case "level3":return tiles.createTilemap(hex`1000100000000000000000000002000000000000000000000000000000020000000000000000000000000000000200000000000000000000000000000002000000000000000000000000000000020000000000000000000000000000000200000000000000000000000000000002000000000000000000000000000000020000000000000000000000000000000200000000000000000000000000000002000000000000000000000000000000020000000000000000000000000000000200000000000000000000000000000002000000000000000000000000000000020000000000000000000000000000000200030000040001010101010101010101010101010101`, img`
. . . . . . . . . 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.castle.tilePath2,sprites.castle.tilePath4,sprites.dungeon.doorOpenNorth,sprites.dungeon.collectibleRedCrystal], TileScale.Sixteen);
case "level4":
case "level4":return tiles.createTilemap(hex`1000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000040000000000000000000000000100000100000000000000000000050102000002000000000000000005010202020000020000000000000501020202020200000200000000050102020202020202010102010101010202020202020202`, img`
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
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.castle.tilePath2,sprites.castle.tilePath5,sprites.dungeon.collectibleRedCrystal,sprites.dungeon.doorOpenNorth,sprites.castle.tilePath1], TileScale.Sixteen);
case "level5":
case "level5":return tiles.createTilemap(hex`1000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000010101010101010101010000000000000000000000000000000000000000000000000000000000000000000000000000040005000000000000000000000000000101010101000000000000000000000000000000000000000000000000000000020202020202020202020202020202020303030303030303030303030303030303030303030303030303030303030303`, img`
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . 2 . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
2 2 2 2 2 2 2 2 2 2 . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
2 2 2 2 2 . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
`, [myTiles.transparency16,sprites.castle.tilePath2,sprites.swamp.swampTile7,sprites.swamp.swampTile9,sprites.dungeon.collectibleRedCrystal,sprites.dungeon.doorOpenNorth], TileScale.Sixteen);
case "level6":
case "level6":return tiles.createTilemap(hex`1000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000010101010101010101010101010101010202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202`, img`
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
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 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 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.castle.tilePath2,sprites.castle.tilePath5,sprites.dungeon.collectibleRedCrystal], TileScale.Sixteen);
case "level7":
case "level7":return tiles.createTilemap(hex`1000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000010101010101010303030303030303030202020202020202020201010101010102020202020202020202000000000000020202020202020202020001000000000202020202020202020200000000050002020204020202020202010101010101020202020202020202020202020202020202020202020202020202020202020202020202020402020202020202020202`, img`
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
2 2 2 2 2 2 2 . . . . . . . . .
. . . . . . . . . . 2 2 2 2 2 2
. . . . . . . . . . . . . . . .
. . . . . . . . . . . 2 . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . 2 2 2 2 2 2
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
`, [myTiles.transparency16,sprites.castle.tilePath2,sprites.swamp.swampTile9,sprites.swamp.swampTile7,sprites.swamp.swampTile13,sprites.dungeon.collectibleRedCrystal,sprites.dungeon.doorOpenNorth], TileScale.Sixteen);
}
return null;
})
helpers._registerFactory("tile", function(name: string) {
switch(helpers.stringTrim(name)) {
case "transparency16":return transparency16;
}
return null;
})
}
// Auto-generated code. Do not edit.

9
tsconfig.json Normal file
View file

@ -0,0 +1,9 @@
{
"compilerOptions": {
"target": "ES5",
"noImplicitAny": true,
"outDir": "built",
"rootDir": "."
},
"exclude": ["pxt_modules/**/*test.ts"]
}