create object deleter create object destroyingcrate create object space create object background Game start update -370 90 set my angle to set my x ▾ to set sprite to the w key is pressed ▾ -10 move right the d key is pressed ▾ 10 move forward the s key is pressed ▾ 10 move right the a key is pressed ▾ -10 move forward the e key was pressed ▾ my x ▾ my y ▾ create object laser1 at the q key was pressed ▾ my x ▾ my y ▾ create object crate1 at collision_check laser2 collision_check laser2 myself destroy destroy collision_check laser3 collision_check laser3 myself destroy destroy collision_check crate2 collision_check crate2 myself destroy destroy collision_check crate3 collision_check crate3 myself destroy destroy if do if do if do if do if do if do if do if do if do if do object space start update 200 180 set my angle to set my y ▾ to set sprite to the f key is pressed ▾ 10 move right the t key is pressed ▾ -10 move forward the h key is pressed ▾ -10 move right the g key is pressed ▾ 10 move forward the y key was pressed ▾ my x ▾ my y ▾ create object laser2 at the r key was pressed ▾ my x ▾ my y ▾ create object crate2 at collision_check laser3 collision_check laser3 myself destroy destroy collision_check laser1 collision_check laser1 myself destroy destroy collision_check crate1 collision_check crate1 myself destroy destroy collision_check crate3 collision_check crate3 myself destroy destroy if do if do if do if do if do if do if do if do if do if do object deleter start update 370 270 set my angle to set my x ▾ to set sprite to the k key is pressed ▾ -10 move right the j key is pressed ▾ 10 move forward the i key is pressed ▾ 10 move right the l key is pressed ▾ -10 move forward the o key was pressed ▾ my x ▾ my y ▾ create object laser3 at the u key was pressed ▾ my x ▾ my y ▾ create object crate3 at collision_check laser2 collision_check laser2 myself destroy destroy collision_check laser1 collision_check laser1 myself destroy destroy collision_check crate1 collision_check crate1 myself destroy destroy collision_check crate2 collision_check crate2 myself destroy destroy if do if do if do if do if do if do if do if do if do if do object destroyingcrate start update set sprite to object background start update 270 set my angle to set sprite to 30 collision_check deleter collision_check deleter myself destroy destroy collision_check space collision_check space myself destroy destroy collision_check crate1 collision_check crate1 myself destroy destroy collision_check crate2 collision_check crate2 myself destroy destroy if do if do if do if do move forward object laser3 start update 180 set my angle to set sprite to 30 collision_check destroyingcrate collision_check destroyingcrate myself destroy destroy collision_check space collision_check space myself destroy destroy collision_check crate3 collision_check crate3 myself destroy destroy collision_check crate1 collision_check crate1 myself destroy destroy if do if do if do if do move forward object laser2 start update 90 set my angle to set sprite to 30 collision_check destroyingcrate collision_check destroyingcrate myself destroy destroy collision_check deleter collision_check deleter myself destroy destroy collision_check crate2 collision_check crate2 myself destroy destroy collision_check crate3 collision_check crate3 myself destroy destroy if do if do if do if do move forward object laser1 start update set sprite to collision_check deleter collision_check deleter myself destroy destroy collision_check destroyingcrate collision_check destroyingcrate myself destroy destroy if do if do object crate1 start update set sprite to collision_check deleter collision_check deleter myself destroy destroy collision_check space collision_check space myself destroy destroy if do if do object crate3 start update set sprite to collision_check destroyingcrate collision_check destroyingcrate myself destroy destroy collision_check space collision_check space myself destroy destroy if do if do object crate2 start update
class Main(MonoBehaviour):
def start(self):
instantiate(background)
instantiate(space)
instantiate(destroyingcrate)
instantiate(deleter)
def update(self):
pass
class space(MonoBehaviour):
def start(self):
self.set_sprite("Dungeon/spider_run.png")
self.x = (-370)
self.rot = 90
def update(self):
if key_is_pressed('w'):
self.move_right((-10))
if key_is_pressed('d'):
self.move_forward(10)
if key_is_pressed('s'):
self.move_right(10)
if key_is_pressed('a'):
self.move_forward((-10))
if key_was_pressed('e'):
instantiate(laser1, (self.x), (self.y))
if key_was_pressed('q'):
instantiate(crate1, (self.x), (self.y))
if self.collisionCheck("laser2"):
destroy((self.collisionCheck("laser2")))
destroy((self))
if self.collisionCheck("laser3"):
destroy((self.collisionCheck("laser3")))
destroy((self))
if self.collisionCheck("crate2"):
destroy((self.collisionCheck("crate2")))
destroy((self))
if self.collisionCheck("crate3"):
destroy((self.collisionCheck("crate3")))
destroy((self))
class deleter(MonoBehaviour):
def start(self):
self.set_sprite("Dungeon/spider_run.png")
self.y = 200
self.rot = 180
def update(self):
if key_is_pressed('f'):
self.move_right(10)
if key_is_pressed('t'):
self.move_forward((-10))
if key_is_pressed('h'):
self.move_right((-10))
if key_is_pressed('g'):
self.move_forward(10)
if key_was_pressed('y'):
instantiate(laser2, (self.x), (self.y))
if key_was_pressed('r'):
instantiate(crate2, (self.x), (self.y))
if self.collisionCheck("laser3"):
destroy((self.collisionCheck("laser3")))
destroy((self))
if self.collisionCheck("laser1"):
destroy((self.collisionCheck("laser1")))
destroy((self))
if self.collisionCheck("crate1"):
destroy((self.collisionCheck("crate1")))
destroy((self))
if self.collisionCheck("crate3"):
destroy((self.collisionCheck("crate3")))
destroy((self))
class destroyingcrate(MonoBehaviour):
def start(self):
self.set_sprite("Dungeon/spider_run.png")
self.x = 370
self.rot = 270
def update(self):
if key_is_pressed('k'):
self.move_right((-10))
if key_is_pressed('j'):
self.move_forward(10)
if key_is_pressed('i'):
self.move_right(10)
if key_is_pressed('l'):
self.move_forward((-10))
if key_was_pressed('o'):
instantiate(laser3, (self.x), (self.y))
if key_was_pressed('u'):
instantiate(crate3, (self.x), (self.y))
if self.collisionCheck("laser2"):
destroy((self.collisionCheck("laser2")))
destroy((self))
if self.collisionCheck("laser1"):
destroy((self.collisionCheck("laser1")))
destroy((self))
if self.collisionCheck("crate1"):
destroy((self.collisionCheck("crate1")))
destroy((self))
if self.collisionCheck("crate2"):
destroy((self.collisionCheck("crate2")))
destroy((self))
class background(MonoBehaviour):
def start(self):
self.set_sprite("Space/Nebula.jpg")
def update(self):
pass
class laser3(MonoBehaviour):
def start(self):
self.set_sprite("Space/Bullet.png")
self.rot = 270
def update(self):
self.move_forward(30)
if self.collisionCheck("deleter"):
destroy((self.collisionCheck("deleter")))
destroy((self))
if self.collisionCheck("space"):
destroy((self.collisionCheck("space")))
destroy((self))
if self.collisionCheck("crate1"):
destroy((self.collisionCheck("crate1")))
destroy((self))
if self.collisionCheck("crate2"):
destroy((self.collisionCheck("crate2")))
destroy((self))
class laser2(MonoBehaviour):
def start(self):
self.set_sprite("Space/Bullet.png")
self.rot = 180
def update(self):
self.move_forward(30)
if self.collisionCheck("destroyingcrate"):
destroy((self.collisionCheck("destroyingcrate")))
destroy((self))
if self.collisionCheck("space"):
destroy((self.collisionCheck("space")))
destroy((self))
if self.collisionCheck("crate3"):
destroy((self.collisionCheck("crate3")))
destroy((self))
if self.collisionCheck("crate1"):
destroy((self.collisionCheck("crate1")))
destroy((self))
class laser1(MonoBehaviour):
def start(self):
self.set_sprite("Space/Bullet.png")
self.rot = 90
def update(self):
self.move_forward(30)
if self.collisionCheck("destroyingcrate"):
destroy((self.collisionCheck("destroyingcrate")))
destroy((self))
if self.collisionCheck("deleter"):
destroy((self.collisionCheck("deleter")))
destroy((self))
if self.collisionCheck("crate2"):
destroy((self.collisionCheck("crate2")))
destroy((self))
if self.collisionCheck("crate3"):
destroy((self.collisionCheck("crate3")))
destroy((self))
class crate1(MonoBehaviour):
def start(self):
self.set_sprite("Dungeon/spiderweb.png")
def update(self):
if self.collisionCheck("deleter"):
destroy((self.collisionCheck("deleter")))
destroy((self))
if self.collisionCheck("destroyingcrate"):
destroy((self.collisionCheck("destroyingcrate")))
destroy((self))
class crate3(MonoBehaviour):
def start(self):
self.set_sprite("Dungeon/spiderweb.png")
def update(self):
if self.collisionCheck("deleter"):
destroy((self.collisionCheck("deleter")))
destroy((self))
if self.collisionCheck("space"):
destroy((self.collisionCheck("space")))
destroy((self))
class crate2(MonoBehaviour):
def start(self):
self.set_sprite("Dungeon/spiderweb.png")
def update(self):
if self.collisionCheck("destroyingcrate"):
destroy((self.collisionCheck("destroyingcrate")))
destroy((self))
if self.collisionCheck("space"):
destroy((self.collisionCheck("space")))
destroy((self))
EQ
AND
TRUE
10
WHILE
i
1
10
1
j
BREAK
0
ADD
1
1
ROOT
9
SIN
45
PI
EVEN
0
ROUND
3.1
SUM
64
10
50
1
100
1
100
item
abc
FIRST
text
abc
FROM_START
text
FROM_START
FROM_START
text
UPPERCASE
abc
BOTH
abc
abc
TEXT
abc
0
0
1
1
0
1
90
1
0.5
1
"Hello world"
0
0
5
FIRST
GET
FROM_START
SET
FROM_START
FROM_START
FROM_START
SPLIT
,
#Main Script
from processing import *
import random
import math
import time
### START ENGINE CODE
class Data:
url = "https://s3-us-west-1.amazonaws.com/media.pixelpad.io/Blockly_Assets/"
#Ivo-Engine stuff
objs = []
#object are only destroyed at the end of the frame
toBeDestroyed = []
inputkeys = {} #dict
gameWidth = 800
gameHeight = 500
refWidth = 800
refHeight = 500
scaleRatio = 1
reloadEndOfFrame = False
main = None
images = {}
#Base-class of every object to enable start & update
class MonoBehaviour:
#REGION variables
x = 0
y = 0
#used for sorting
z = 0
rot = 0
#used for z-sorting internally
prevZ = -1000
#should be changed through setScale only!
scale = 1
currAnim = None
inGameScreen = True
min_x = 0
min_y = 0
max_x = 0
max_y = 0
markForUpdateSize = False
#ENDREGION
def setAnim(self, anim):
self.currAnim = anim
def setScale(self, val):
self.scale = val
#REGION Sprites
sprite = None
def set_sprite(self, url, width = None, height = None):
if (url not in Data.images):
Data.images[url] = loadImage(Data.url + url)
self.sprite = Data.images[url]
if (width != None):
self.set_width(width)
if (height != None):
self.set_height(height)
#self.updateMinMax() should be called after...
def set_width(self, width):
self.sprite.width = width
def set_height(self, height):
self.sprite.height = height
def move_forward(self, value):
self.x += math.cos(radians(self.rot-90))*value
self.y -= math.sin(radians(self.rot-90))*value
def move_right(self, value):
self.x += math.cos(radians(self.rot))*value
self.y -= math.sin(radians(self.rot))*value
#ENDREGION
#REGION Collision
def get_real_width(self):
return self.sprite.width * self.scale
def get_real_height(self):
return self.sprite.height * self.scale
def get_min_x(self):
return self.x - self.get_real_width() * 0.5
def get_max_x(self):
return self.x + self.get_real_width() * 0.5
b
def get_min_y(self):
return self.y - self.get_real_height() * 0.5
def get_max_y(self):
return self.y + self.get_real_height() * 0.5
#TODO only objects inside the gamescreen collide?
def collisionCheck(self, objType):
if (not self.inGameScreen):
return False;
for obj in Data.objs:
if (obj.inGameScreen):
if (obj is not self and type(obj).__name__ == objType):
if (self.intersects(obj)):
return obj
return False
def intersects(self, obj2):
return not (self.get_max_x() < obj2.get_min_x() or self.get_min_x() > obj2.get_max_x() or self.get_min_y() > obj2.get_max_y() or self.get_max_y() < obj2.get_min_y())
def check_in_gamescreen(self):
return not (self.get_max_x() < -Data.refWidth * 0.5 or self.get_min_x() > Data.refWidth * 0.5 or self.get_min_y() > Data.refHeight * 0.5 or self.get_max_y() < -Data.refHeight*0.5)
#ENDREGION
#REGION base functions
def start_INTERNAL(self):
#commented since empty objects can just display nothing
self.set_sprite("Empty.png")
self.start()
def update_INTERNAL(self):
self.update()
#we use translate instead of setting the objects position, to fix rotation issues
posX = (int)((self.x+Data.refWidth*0.5)*Data.scaleRatio)
posY = (int)((-self.y+Data.refHeight*0.5)*Data.scaleRatio)
translate(posX, posY)
rotate(radians(self.rot))
#if (self.currAnim != None):
# self.newSprite = self.currAnim.play()
self.inGameScreen = self.check_in_gamescreen()
if (self.inGameScreen):
image(self.sprite, 0, 0, self.get_real_width()*Data.scaleRatio, self.get_real_height()*Data.scaleRatio)
rotate(-radians(self.rot))
translate(-posX, -posY)
#Base functions to be overridden by any class inheriting from MonoBehaviour
def start(self):
pass
def update(self):
pass
def isMouseOver(self):
return (Data.mouse.x > self.get_min_x() and Data.mouse.x < self.get_max_x() and Data.mouse.y > self.get_min_y() and Data.mouse.y < self.get_max_y())
#ENDREGION
class Anim:
images = None
frames = 0
framesPerImage = 5
imageIndex = 0
timer = 0
#FRAMES OER IMAGE IS NOT THE FRAMERATE... Confusing, sorry
def __init__(self, url, frames, framesPerImage = 3):
self.images = []
self.framesPerImage = framesPerImage
self.frames = frames
for i in range(frames):
fullUrl = Data.url + url + str(i+1) + ".png"
img = requestImage(fullUrl)
self.images.append(img)
#should be called from a MonoBehaviour every frame while playing.
#looks like this: self.newSprite = currAnim.play()
def play(self):
self.timer += 1
if (self.timer >= self.framesPerImage):
self.timer = 0
self.imageIndex += 1
if (self.imageIndex >= self.frames):
self.imageIndex = 0
return self.images[self.imageIndex]
def instantiate(objtype, posX = 0, posY = 0):
n = objtype()
n.x = posX
n.y = posY
n.start_INTERNAL()
Data.objs.append(n)
return n
def destroy(obj):
#Check if objects wasn't already marked as destroyed.
if obj not in Data.toBeDestroyed:
Data.toBeDestroyed.append(obj)
def key_is_pressed(k):
if (k not in Data.inputkeys):
return False
return Data.inputkeys[k] == 1 or Data.inputkeys[k] == 2
def key_was_pressed(k):
if (k not in Data.inputkeys):
return False
return Data.inputkeys[k] == 1
def key_was_released(k):
if (k not in Data.inputkeys):
return False
return Data.inputkeys[k] == 3
def reload_game():
Data.reloadEndOfFrame = True
#SHOULD BE CALLED AT END OF DRAW
def reload_game_immediate():
Data.reloadEndOfFrame = False
Data.objs = []
Data.inputkeys = {}
Data.main = Main()
Data.main.start()
class Main(MonoBehaviour):
def start(self):
print("No Blockly Main class")
class Global:
pass
### END ENGINE CODE
################################################################
#BLOCKLY_REPLACE
################################################################
### START HELPER CODE
#z-sorting
#bubblesort with extra check for each element if it changed
def bubbleSort(alist):
pop = 0
for passnum in range(len(alist)-1,0,-1):
if (alist[passnum].z != alist[passnum].prevZ):
for i in range(passnum):
pop += 1
if alist[i].z > alist[i+1].z:
temp = alist[i]
alist[i] = alist[i+1]
alist[i+1] = temp
alist[passnum].prevZ = alist[passnum].z
#print("Sorted " + str(pop) + " elements")
### END HELPER CODE
### START PROCESSING CODE
def setup():
#SIZE_REPLACE
size(Data.gameWidth, Data.gameHeight)
Data.scaleRatio = float(Data.gameWidth) / Data.refWidth
Data.invScaleRatio = float(1)/Data.scaleRatio
imageMode(CENTER)
frameRate(30)
textSize(32*Data.scaleRatio)
reload_game_immediate()
#run first frame right away
draw()
def draw():
background(0)
Data.mouse = PVector((mouse.x* Data.invScaleRatio-Data.refWidth*0.5), -(mouse.y * Data.invScaleRatio-Data.refHeight*0.5))
#bubbleSort(Data.objs)
Data.main.update()
for obj in Data.objs:
obj.update_INTERNAL()
#printObjs()
#if was pressed, go to is pressed now
for key in Data.inputkeys:
if (Data.inputkeys[key] == 1):
Data.inputkeys[key] = 2
#if was released, go to off now
if (Data.inputkeys[key] == 3):
Data.inputkeys[key] = 0
for obj in Data.toBeDestroyed:
Data.objs.remove(obj)
Data.toBeDestroyed = []
if (Data.reloadEndOfFrame):
reload_game_immediate()
#DevTools.showFPS()
#DevTools.printObjs()
class DevTools:
lastFrame = 0
avg = 0
nFramesToUpdate = 5
nFrame = 0
def showFPS():
DevTools.nFrame += 1
if (DevTools.nFrame >= DevTools.nFramesToUpdate):
m = millis()
deltaTime = m-DevTools.lastFrame
DevTools.lastFrame = m
DevTools.nFrame = 0
DevTools.avg = DevTools.nFramesToUpdate*1000/deltaTime
ui_text("FPS: " + str(DevTools.avg), 650, 50)
def printObjs():
#objs = ""
i = 0
j = 0
for obj in Data.objs:
#objs += str(obj.z) + ", "
i+=1
if (obj.inGameScreen):
j+=1
ui_text("Objs: " + str(i) + ", in screen: " + str(j), 450, 100)
def processKeyOrMousePress(val):
if (val not in Data.inputkeys or Data.inputkeys[val] == 0):
Data.inputkeys[val] = 1
def processKeyOrMouseRelease(val):
Data.inputkeys[val] = 3
def ui_text(txt, posX, posY):
pX = (int)((posX+Data.refWidth*0.5)*Data.scaleRatio)
pY = (int)((-posY+Data.refHeight*0.5)*Data.scaleRatio)
text(txt, pX, pY )
#Processing funcs
def keyPressed():
processKeyOrMousePress(str(keyboard.key))
def keyReleased():
processKeyOrMouseRelease(str(keyboard.key))
def mousePressed():
if (mouse.button == 37):
processKeyOrMousePress("m_left")
if (mouse.button == 39):
processKeyOrMousePress("m_right")
def mouseReleased():
if (mouse.button == 37):
processKeyOrMouseRelease("m_left")
if (mouse.button == 39):
processKeyOrMouseRelease("m_right")
run()
### END PROCESSING CODE
{"main":"<xml xmlns=\"http://www.w3.org/1999/xhtml\"><block type=\"main_class_object\" id=\"M|TUBcRXfP-zXMfslc+k\" x=\"163\" y=\"113\"><statement name=\"start\"><block type=\"instantiate\" id=\"w^:/Y0M2[nb@kd@^j_Ft\"><field name=\"NAME\">background</field><next><block type=\"instantiate\" id=\"^*$CxKg@]SP.LO3*#-I$\"><field name=\"NAME\">space</field><next><block type=\"instantiate\" id=\"I=;cD8C)=DCH/!_~7#(H\"><field name=\"NAME\">destroyingcrate</field><next><block type=\"instantiate\" id=\"FigOZFTn5Mi5ma9I$~rr\"><field name=\"NAME\">deleter</field></block></next></block></next></block></next></block></statement></block><block type=\"class_object\" id=\"b[bK//ZbYZ#fSrQ?ezx`\" x=\"-45\" y=\"255\"><field name=\"NAME\">space</field><statement name=\"start\"><block type=\"set_sprite\" id=\".K8hXa`Tv[1%X;=nGk-J\"><value name=\"SPRITE\"><block type=\"sprite\" id=\"=uXjJ9q[ApZ.Y.Rx[FCi\"><field name=\"SPRITE\">https://s3-us-west-1.amazonaws.com/media.pixelpad.io/Blockly_Assets/Dungeon/spider_run.png</field></block></value><next><block type=\"set_pos\" id=\".@M-G.~r;I{]=qvmnuBL\"><field name=\"position\">x</field><value name=\"NAME\"><shadow type=\"math_number\" id=\"aFwR5Sr6`x[m:.g7yvod\"><field name=\"NUM\">-370</field></shadow></value><next><block type=\"set_rot\" id=\"OTDcVv[=S=}QRaA5FI9A\"><value name=\"NAME\"><shadow type=\"math_number\" id=\"^BGvefm%pBfu#g]iDlEE\"><field name=\"NUM\">90</field></shadow></value></block></next></block></next></block></statement><statement name=\"update\"><block type=\"controls_if\" id=\"Cv7~{YcU#;?T)O%55S}N\"><value name=\"IF0\"><block type=\"key_input\" id=\"uoC+%hShgQ!$,YvGW1T9\"><field name=\"NAME\">w</field><field name=\"PRESSED\">key_is_pressed</field></block></value><statement name=\"DO0\"><block type=\"move_right\" id=\"DOQD$1^0GSeI(AneBY.Z\"><value name=\"NAME\"><shadow type=\"math_number\" id=\"[.dt%!1Gdbo,$_Q}Xk$X\"><field name=\"NUM\">-10</field></shadow></value></block></statement><next><block type=\"controls_if\" id=\"J4?7VN!K[7WStE]PM|q+\"><value name=\"IF0\"><block type=\"key_input\" id=\"W#-7KvmRGW(6D6o(3Ydk\"><field name=\"NAME\">d</field><field name=\"PRESSED\">key_is_pressed</field></block></value><statement name=\"DO0\"><block type=\"move_forward\" id=\"=%n2RW!M7?EZ;9hP3M?{\"><value name=\"NAME\"><shadow type=\"math_number\" id=\"MTUkdwe%IWzOSf@e=Fap\"><field name=\"NUM\">10</field></shadow></value></block></statement><next><block type=\"controls_if\" id=\"1s40vPuE*eCvH]p%vFnP\"><value name=\"IF0\"><block type=\"key_input\" id=\"!ahE$MgY{SW)`DC;(AcW\"><field name=\"NAME\">s</field><field name=\"PRESSED\">key_is_pressed</field></block></value><statement name=\"DO0\"><block type=\"move_right\" id=\"3,$=%sg2a{b(bm|}e.6Z\"><value name=\"NAME\"><shadow type=\"math_number\" id=\"z,{*ArWs2sQ}F8{gx%Av\"><field name=\"NUM\">10</field></shadow></value></block></statement><next><block type=\"controls_if\" id=\"={/_LOAMc9avnsp_/QOP\"><value name=\"IF0\"><block type=\"key_input\" id=\"~3k+^Ths]2M%M[Qu#:!c\"><field name=\"NAME\">a</field><field name=\"PRESSED\">key_is_pressed</field></block></value><statement name=\"DO0\"><block type=\"move_forward\" id=\"ke0oZk(5a.kbd`]1Cq,1\"><value name=\"NAME\"><shadow type=\"math_number\" id=\"|6@:%H}X#rIkkpr23H03\"><field name=\"NUM\">-10</field></shadow></value></block></statement><next><block type=\"controls_if\" id=\"4b9WA1^Qxdp9B]2%|Y75\"><value name=\"IF0\"><block type=\"key_input\" id=\"#2hFY/bA($f+oh7/7JjE\"><field name=\"NAME\">e</field><field name=\"PRESSED\">key_was_pressed</field></block></value><statement name=\"DO0\"><block type=\"instantiate_at_pos\" id=\"Ic6dL6{v9FwC+{ZbCxq:\"><field name=\"type\">laser1</field><value name=\"x\"><shadow type=\"math_number\" id=\"^C{a`+C*$$)]RHJpBk=C\"><field name=\"NUM\">0</field></shadow><block type=\"get_pos\" id=\"ZG5jKBZZ4g$dQY6Z*(t*\"><field name=\"pos\">x</field></block></value><value name=\"y\"><shadow type=\"math_number\" id=\"n!0Dp++Yyl6@nXG?Z6`3\"><field name=\"NUM\">0</field></shadow><block type=\"get_pos\" id=\"bIR?Uy`wtZ_Y@j_0P5/g\"><field name=\"pos\">y</field></block></value></block></statement><next><block type=\"controls_if\" id=\"DV{BXe`CFwvh5818:[XL\"><value name=\"IF0\"><block type=\"key_input\" id=\"}q+9U|hY6##x@oV/Apty\"><field name=\"NAME\">q</field><field name=\"PRESSED\">key_was_pressed</field></block></value><statement name=\"DO0\"><block type=\"instantiate_at_pos\" id=\"5S8t)HR{A2~Bt[x_Q%3+\"><field name=\"type\">crate1</field><value name=\"x\"><shadow type=\"math_number\" id=\"{i.Eo7P.B%Y`X=EXh^3`\"><field name=\"NUM\">0</field></shadow><block type=\"get_pos\" id=\"m7q=C[Du~#`sP*!zejuF\"><field name=\"pos\">x</field></block></value><value name=\"y\"><shadow type=\"math_number\" id=\"X19N(64+I-6Ua!6D^m+w\"><field name=\"NUM\">0</field></shadow><block type=\"get_pos\" id=\"ROjKGyi@{ayw(KoLN`H*\"><field name=\"pos\">y</field></block></value></block></statement><next><block type=\"controls_if\" id=\"*%$X[3%UF}G)9*rjShgu\"><value name=\"IF0\"><block type=\"collision_check\" id=\"IKw.10k4|q3$p%kyM63C\"><field name=\"NAME\">laser2</field></block></value><statement name=\"DO0\"><block type=\"destroy\" id=\"_/AVDk6ICG;GSw^e3Q}o\"><value name=\"NAME\"><block type=\"collision_check\" id=\"TJ^y_+|;I%3_w$WMAK!,\"><field name=\"NAME\">laser2</field></block></value><next><block type=\"destroy\" id=\"4lo!N|HlY^u3r-0uv}#b\"><value name=\"NAME\"><block type=\"self\" id=\"RA0tbBu|^vn`L#jaN4K,\"></block></value></block></next></block></statement><next><block type=\"controls_if\" id=\":pOMILi73$dnW5!P1J!I\"><value name=\"IF0\"><block type=\"collision_check\" id=\"+qDdhP+mVn,*7`7FW:wT\"><field name=\"NAME\">laser3</field></block></value><statement name=\"DO0\"><block type=\"destroy\" id=\"MOvV@(Of|]+d!z8Cqn?f\"><value name=\"NAME\"><block type=\"collision_check\" id=\"Kf1c[O*epO9fZX,9$tCg\"><field name=\"NAME\">laser3</field></block></value><next><block type=\"destroy\" id=\"GOxVT::l(^G,d.T{e8g9\"><value name=\"NAME\"><block type=\"self\" id=\"FP;;k@a#)sn/t3]Rd[^j\"></block></value></block></next></block></statement><next><block type=\"controls_if\" id=\"!AZK+[?hkq94BYemo5Lc\"><value name=\"IF0\"><block type=\"collision_check\" id=\"rh^Hp,Y6)b]wG5P}3S#}\"><field name=\"NAME\">crate2</field></block></value><statement name=\"DO0\"><block type=\"destroy\" id=\"D(|{xU{#:vcgpJ3kjpu@\"><value name=\"NAME\"><block type=\"collision_check\" id=\"T_YKE.7^xq.4Wre8tN=*\"><field name=\"NAME\">crate2</field></block></value><next><block type=\"destroy\" id=\"7.b?nnzcY+OnOk-bgMJb\"><value name=\"NAME\"><block type=\"self\" id=\"j8M,=1OqicGT@ixB^4*v\"></block></value></block></next></block></statement><next><block type=\"controls_if\" id=\"^#g8V]rBQlLHQ`NmNteU\"><value name=\"IF0\"><block type=\"collision_check\" id=\"]5b@xXT~@p):h[X?_R)o\"><field name=\"NAME\">crate3</field></block></value><statement name=\"DO0\"><block type=\"destroy\" id=\"pykRR@P?aJTH#5/}R~aP\"><value name=\"NAME\"><block type=\"collision_check\" id=\"z:`r2JgeNq6[)druM$u2\"><field name=\"NAME\">crate3</field></block></value><next><block type=\"destroy\" id=\"RR8Xwf[GLv`4OLK0habM\"><value name=\"NAME\"><block type=\"self\" id=\"V9Nl9*:|TfMn9ukkpqgB\"></block></value></block></next></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block><block type=\"class_object\" id=\"U+h(,/5NhlB6c?X[g[27\" x=\"345\" y=\"315\"><field name=\"NAME\">deleter</field><statement name=\"start\"><block type=\"set_sprite\" id=\"Qrb[-8b8{9=gAPp0Svhg\"><value name=\"SPRITE\"><block type=\"sprite\" id=\"!j-G2k{V_qo!rw!qdVG5\"><field name=\"SPRITE\">https://s3-us-west-1.amazonaws.com/media.pixelpad.io/Blockly_Assets/Dungeon/spider_run.png</field></block></value><next><block type=\"set_pos\" id=\"cL[#t4g7e}YIjnVn1J7k\"><field name=\"position\">y</field><value name=\"NAME\"><shadow type=\"math_number\" id=\"i}=gKOy!%`oUxSB[ulrA\"><field name=\"NUM\">200</field></shadow></value><next><block type=\"set_rot\" id=\"*itOnc7|eH6X0-ONJh:3\"><value name=\"NAME\"><shadow type=\"math_number\" id=\"f44Qi[(Yc:O@:i40TJpS\"><field name=\"NUM\">180</field></shadow></value></block></next></block></next></block></statement><statement name=\"update\"><block type=\"controls_if\" id=\";Mz(YKf1_zG][qo-peQ_\"><value name=\"IF0\"><block type=\"key_input\" id=\"AOg!VAMRH`]^MZN=uIxU\"><field name=\"NAME\">f</field><field name=\"PRESSED\">key_is_pressed</field></block></value><statement name=\"DO0\"><block type=\"move_right\" id=\"f%9)y#a#G.04~torpm[Y\"><value name=\"NAME\"><shadow type=\"math_number\" id=\"*iUo`,U5,5B,W+|MMBL7\"><field name=\"NUM\">10</field></shadow></value></block></statement><next><block type=\"controls_if\" id=\"pJP)JwOSc+feCCat@,Hp\"><value name=\"IF0\"><block type=\"key_input\" id=\"|V_iO({W*$}o[vFRS4uj\"><field name=\"NAME\">t</field><field name=\"PRESSED\">key_is_pressed</field></block></value><statement name=\"DO0\"><block type=\"move_forward\" id=\"KA}3Nau#$p!_w-oDr+Kk\"><value name=\"NAME\"><shadow type=\"math_number\" id=\"ETbTl*%lBg{(9nZZNs~C\"><field name=\"NUM\">-10</field></shadow></value></block></statement><next><block type=\"controls_if\" id=\"-h5{:P?pq#|35Yr7et@K\"><value name=\"IF0\"><block type=\"key_input\" id=\"e|KOFM4nW]7E}PJ=Ivb,\"><field name=\"NAME\">h</field><field name=\"PRESSED\">key_is_pressed</field></block></value><statement name=\"DO0\"><block type=\"move_right\" id=\"h[/uvF[(CH`2oCRqb~As\"><value name=\"NAME\"><shadow type=\"math_number\" id=\";aaTj+}c+ZDwD$r;b$bt\"><field name=\"NUM\">-10</field></shadow></value></block></statement><next><block type=\"controls_if\" id=\"=iFAE~eW$E4uqgR|s-G3\"><value name=\"IF0\"><block type=\"key_input\" id=\"Rd;ZmU+|YGEZGU[`D0VK\"><field name=\"NAME\">g</field><field name=\"PRESSED\">key_is_pressed</field></block></value><statement name=\"DO0\"><block type=\"move_forward\" id=\"5Xz!;K=FB$Eftm*QPxQ@\"><value name=\"NAME\"><shadow type=\"math_number\" id=\",pZ)!Yxw`T-x(Ye(P,y2\"><field name=\"NUM\">10</field></shadow></value></block></statement><next><block type=\"controls_if\" id=\"dz]S8[k=iD=tG6`;6KC3\"><value name=\"IF0\"><block type=\"key_input\" id=\"Dk)r=)7(BQ#@n0[Xx,YQ\"><field name=\"NAME\">y</field><field name=\"PRESSED\">key_was_pressed</field></block></value><statement name=\"DO0\"><block type=\"instantiate_at_pos\" id=\"[YJj{~Bmb-A-Wx|3QVTs\"><field name=\"type\">laser2</field><value name=\"x\"><shadow type=\"math_number\" id=\"^C{a`+C*$$)]RHJpBk=C\"><field name=\"NUM\">0</field></shadow><block type=\"get_pos\" id=\"GPnbOh[hJ$?4bCv1m%N8\"><field name=\"pos\">x</field></block></value><value name=\"y\"><shadow type=\"math_number\" id=\"n!0Dp++Yyl6@nXG?Z6`3\"><field name=\"NUM\">0</field></shadow><block type=\"get_pos\" id=\"/!f4UT1-QDl:PQ0!??$?\"><field name=\"pos\">y</field></block></value></block></statement><next><block type=\"controls_if\" id=\"bB?5OSEWcwV@P@qJ,=u!\"><value name=\"IF0\"><block type=\"key_input\" id=\"[rg6-Z2+}0z@7E3n1o7-\"><field name=\"NAME\">r</field><field name=\"PRESSED\">key_was_pressed</field></block></value><statement name=\"DO0\"><block type=\"instantiate_at_pos\" id=\"K-|U;jeZUr`SNyxa7Z7x\"><field name=\"type\">crate2</field><value name=\"x\"><shadow type=\"math_number\" id=\"{i.Eo7P.B%Y`X=EXh^3`\"><field name=\"NUM\">0</field></shadow><block type=\"get_pos\" id=\".?QC+*yx[8kYx|elA#Q$\"><field name=\"pos\">x</field></block></value><value name=\"y\"><shadow type=\"math_number\" id=\"X19N(64+I-6Ua!6D^m+w\"><field name=\"NUM\">0</field></shadow><block type=\"get_pos\" id=\"Rf//NeF}emXk+wxmLx$r\"><field name=\"pos\">y</field></block></value></block></statement><next><block type=\"controls_if\" id=\"!gnfl/TD/ejekB4R-GAj\"><value name=\"IF0\"><block type=\"collision_check\" id=\"zxIN)i0bfrLrZ0t;HzaW\"><field name=\"NAME\">laser3</field></block></value><statement name=\"DO0\"><block type=\"destroy\" id=\"{O52I=jkF^CM`1jZWh6C\"><value name=\"NAME\"><block type=\"collision_check\" id=\"PWY0*LhD[YfxZ1sF(rH}\"><field name=\"NAME\">laser3</field></block></value><next><block type=\"destroy\" id=\"Ca9y,wWxT-tPk%`~v;Hn\"><value name=\"NAME\"><block type=\"self\" id=\"V+:-RKf]u^Y^FP~ojFK2\"></block></value></block></next></block></statement><next><block type=\"controls_if\" id=\"g]pgxGg~8t.hK{/MK02|\"><value name=\"IF0\"><block type=\"collision_check\" id=\"n3{qEj{X@crTeO6n@wr1\"><field name=\"NAME\">laser1</field></block></value><statement name=\"DO0\"><block type=\"destroy\" id=\"`Sy?@g?iXHU9}h[sKLW9\"><value name=\"NAME\"><block type=\"collision_check\" id=\"}F!fl`j$Ncdjb/{7jd|t\"><field name=\"NAME\">laser1</field></block></value><next><block type=\"destroy\" id=\".@tbwh;w}A4$%/W)L7)j\"><value name=\"NAME\"><block type=\"self\" id=\"mx{VL6Na6*X3LMJ$rK4w\"></block></value></block></next></block></statement><next><block type=\"controls_if\" id=\"s0L.cPh-9ym9v4xQ:ns_\"><value name=\"IF0\"><block type=\"collision_check\" id=\"@[,#t/t|{f*6:g-=@3iA\"><field name=\"NAME\">crate1</field></block></value><statement name=\"DO0\"><block type=\"destroy\" id=\"|YKkkE)z{on!OqFSYiGt\"><value name=\"NAME\"><block type=\"collision_check\" id=\"VV4GeIO:[m%{v]?mwTqC\"><field name=\"NAME\">crate1</field></block></value><next><block type=\"destroy\" id=\"L`B;,(4Apv5G2F%|=Vte\"><value name=\"NAME\"><block type=\"self\" id=\"*vsC`(.zu1_qps*vNZt8\"></block></value></block></next></block></statement><next><block type=\"controls_if\" id=\"#gF`=KBWga()a[[Qj)0?\"><value name=\"IF0\"><block type=\"collision_check\" id=\"c_MSR!rb{h1uzzJOOA]Z\"><field name=\"NAME\">crate3</field></block></value><statement name=\"DO0\"><block type=\"destroy\" id=\"rmvvq/FeJbwt:E|nO]j/\"><value name=\"NAME\"><block type=\"collision_check\" id=\"|#n4sQiize{t.V7p+rjM\"><field name=\"NAME\">crate3</field></block></value><next><block type=\"destroy\" id=\"W~Twa~7+Lf`OTs$vy=aY\"><value name=\"NAME\"><block type=\"self\" id=\"V0!({wVn!%ZN@n6e}/6t\"></block></value></block></next></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block><block type=\"class_object\" id=\"*,}K,,;(S!;72Z}F9?eN\" x=\"675\" y=\"345\"><field name=\"NAME\">destroyingcrate</field><statement name=\"start\"><block type=\"set_sprite\" id=\"h`]OBSmLY]M+wdv}AM1$\"><value name=\"SPRITE\"><block type=\"sprite\" id=\"Rh_T+Frj19?Z.!lL,JPB\"><field name=\"SPRITE\">https://s3-us-west-1.amazonaws.com/media.pixelpad.io/Blockly_Assets/Dungeon/spider_run.png</field></block></value><next><block type=\"set_pos\" id=\"(TMAKMg9bO7~7!))/fD1\"><field name=\"position\">x</field><value name=\"NAME\"><shadow type=\"math_number\" id=\"@H530h](i)%Y5)61Y}hS\"><field name=\"NUM\">370</field></shadow></value><next><block type=\"set_rot\" id=\"%WU/Xa/BIxgv,@.}IXBq\"><value name=\"NAME\"><shadow type=\"math_number\" id=\"2L%+l1}MEveBzg8Jclk4\"><field name=\"NUM\">270</field></shadow></value></block></next></block></next></block></statement><statement name=\"update\"><block type=\"controls_if\" id=\"rWy67PAR9E0_t0eG`=$a\"><value name=\"IF0\"><block type=\"key_input\" id=\")o7po6S!s_GF7uc4r2.+\"><field name=\"NAME\">k</field><field name=\"PRESSED\">key_is_pressed</field></block></value><statement name=\"DO0\"><block type=\"move_right\" id=\"fBob*#U5u0`q(y(c8^99\"><value name=\"NAME\"><shadow type=\"math_number\" id=\"W-6:(lf%z9(j^kC$SE)d\"><field name=\"NUM\">-10</field></shadow></value></block></statement><next><block type=\"controls_if\" id=\"GNsR!#7!zV+yplq|ZqqF\"><value name=\"IF0\"><block type=\"key_input\" id=\"_WW`Pjf|?6+Bm0-PtE2(\"><field name=\"NAME\">j</field><field name=\"PRESSED\">key_is_pressed</field></block></value><statement name=\"DO0\"><block type=\"move_forward\" id=\":k?dgarzr8Tsk#uNgsn[\"><value name=\"NAME\"><shadow type=\"math_number\" id=\"3{X{F4R$Pq2-iw)+?siD\"><field name=\"NUM\">10</field></shadow></value></block></statement><next><block type=\"controls_if\" id=\",-8V-6*H1g/4}B{T7_Hj\"><value name=\"IF0\"><block type=\"key_input\" id=\"+z/F3zZW$)FU2N0=3$w1\"><field name=\"NAME\">i</field><field name=\"PRESSED\">key_is_pressed</field></block></value><statement name=\"DO0\"><block type=\"move_right\" id=\"v{8p;a55(aQ4rZu]2VN6\"><value name=\"NAME\"><shadow type=\"math_number\" id=\"f=4[@s^v9BL6g{xQef$l\"><field name=\"NUM\">10</field></shadow></value></block></statement><next><block type=\"controls_if\" id=\"5-.xsd[6l/.w5/,Q(coy\"><value name=\"IF0\"><block type=\"key_input\" id=\"6i6`#tehX#b=2/rDPd-a\"><field name=\"NAME\">l</field><field name=\"PRESSED\">key_is_pressed</field></block></value><statement name=\"DO0\"><block type=\"move_forward\" id=\"LyUq|b:/7*2@Kw{fhH9#\"><value name=\"NAME\"><shadow type=\"math_number\" id=\"p3KFkJV143yBKoHssoyM\"><field name=\"NUM\">-10</field></shadow></value></block></statement><next><block type=\"controls_if\" id=\"}!mn`%g?fLCKhe^nL3sZ\"><value name=\"IF0\"><block type=\"key_input\" id=\"ee|VJ2U6Drqkr]9n/pJ+\"><field name=\"NAME\">o</field><field name=\"PRESSED\">key_was_pressed</field></block></value><statement name=\"DO0\"><block type=\"instantiate_at_pos\" id=\"@^AT5o~)O9gum[Uah^@G\"><field name=\"type\">laser3</field><value name=\"x\"><shadow type=\"math_number\" id=\"^C{a`+C*$$)]RHJpBk=C\"><field name=\"NUM\">0</field></shadow><block type=\"get_pos\" id=\"FP}yB:?psNnINFs.[7p*\"><field name=\"pos\">x</field></block></value><value name=\"y\"><shadow type=\"math_number\" id=\"n!0Dp++Yyl6@nXG?Z6`3\"><field name=\"NUM\">0</field></shadow><block type=\"get_pos\" id=\"LmyM.q^.be`7?@CiSR+u\"><field name=\"pos\">y</field></block></value></block></statement><next><block type=\"controls_if\" id=\"6ARA.~mkj$R@{}#xQ,x@\"><value name=\"IF0\"><block type=\"key_input\" id=\"i[BsoTT}Mc1I?*wa!;|6\"><field name=\"NAME\">u</field><field name=\"PRESSED\">key_was_pressed</field></block></value><statement name=\"DO0\"><block type=\"instantiate_at_pos\" id=\"3YvrY+c+!DAV,o-gQtdS\"><field name=\"type\">crate3</field><value name=\"x\"><shadow type=\"math_number\" id=\"{i.Eo7P.B%Y`X=EXh^3`\"><field name=\"NUM\">0</field></shadow><block type=\"get_pos\" id=\"PaM~7IVg0==`=iL+?6fu\"><field name=\"pos\">x</field></block></value><value name=\"y\"><shadow type=\"math_number\" id=\"X19N(64+I-6Ua!6D^m+w\"><field name=\"NUM\">0</field></shadow><block type=\"get_pos\" id=\")dc{WF72TAmidiyPxZFH\"><field name=\"pos\">y</field></block></value></block></statement><next><block type=\"controls_if\" id=\"B$jh[uVsvZU^mU#0;s83\"><value name=\"IF0\"><block type=\"collision_check\" id=\"IY=ULta,lYyvw9dwq]Qc\"><field name=\"NAME\">laser2</field></block></value><statement name=\"DO0\"><block type=\"destroy\" id=\".f:x)e=}T9m$,]K/Fi?.\"><value name=\"NAME\"><block type=\"collision_check\" id=\"/O/|ZJ*rKYU](9O%%x~v\"><field name=\"NAME\">laser2</field></block></value><next><block type=\"destroy\" id=\"V#Pz:2#[nPh6-otef;oS\"><value name=\"NAME\"><block type=\"self\" id=\"jalIP,_N^EX,][b]FKKO\"></block></value></block></next></block></statement><next><block type=\"controls_if\" id=\"JE4SV}~a2B5w$w1MY7Cl\"><value name=\"IF0\"><block type=\"collision_check\" id=\"wye$eCf.fa~8IGqGECnr\"><field name=\"NAME\">laser1</field></block></value><statement name=\"DO0\"><block type=\"destroy\" id=\"[).%(t{`sLcoL2l}$a`@\"><value name=\"NAME\"><block type=\"collision_check\" id=\"3}mM_%d=^NAbbE/@1wNL\"><field name=\"NAME\">laser1</field></block></value><next><block type=\"destroy\" id=\"@nj9pAY.,f+*1,,QLxPY\"><value name=\"NAME\"><block type=\"self\" id=\".X7g1?~z#,}E)vh[KqH.\"></block></value></block></next></block></statement><next><block type=\"controls_if\" id=\"X/puyPku;m1Ski$eN=vb\"><value name=\"IF0\"><block type=\"collision_check\" id=\"vL/r!_Ejy^ZY[=R7/sav\"><field name=\"NAME\">crate1</field></block></value><statement name=\"DO0\"><block type=\"destroy\" id=\"LF77J.XrbksFR~*U3tn9\"><value name=\"NAME\"><block type=\"collision_check\" id=\"i|1pB^T:=!6r0]HOrWeg\"><field name=\"NAME\">crate1</field></block></value><next><block type=\"destroy\" id=\"3k;#w%o}hn[}r-5A%[.*\"><value name=\"NAME\"><block type=\"self\" id=\"f}*U)W|XJ/_N4:]w-oEg\"></block></value></block></next></block></statement><next><block type=\"controls_if\" id=\"ED:OoYI)3tOk:2Q5j-Kz\"><value name=\"IF0\"><block type=\"collision_check\" id=\"^G:p@!|7Y;%OIKPlYbJ!\"><field name=\"NAME\">crate2</field></block></value><statement name=\"DO0\"><block type=\"destroy\" id=\"*]P/;cDLLl@Ngr#m%ruB\"><value name=\"NAME\"><block type=\"collision_check\" id=\"KYmBx}P%Om/N91taNq@q\"><field name=\"NAME\">crate2</field></block></value><next><block type=\"destroy\" id=\"b7q8S=51LCTab:oa[g{^\"><value name=\"NAME\"><block type=\"self\" id=\"5;CN*xJ4pUyjLu]5,vYx\"></block></value></block></next></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block><block type=\"class_object\" id=\"w00-H$q8A{JX3!k1)Q2I\" x=\"555\" y=\"1035\"><field name=\"NAME\">background</field><statement name=\"start\"><block type=\"set_sprite\" id=\"vz`W%/Sm[R}1#D(u?E4e\"><value name=\"SPRITE\"><block type=\"sprite\" id=\"Va#AICgyNd[m6OEY13=2\"><field name=\"SPRITE\">https://s3-us-west-1.amazonaws.com/media.pixelpad.io/Blockly_Assets/Space/Nebula.jpg</field></block></value></block></statement></block><block type=\"class_object\" id=\"D6j*L9u1.r!VB[Z@$4z1\" x=\"735\" y=\"1185\"><field name=\"NAME\">laser3</field><statement name=\"start\"><block type=\"set_sprite\" id=\"R:UI|/V+rU-PFt@l]@-K\"><value name=\"SPRITE\"><block type=\"sprite\" id=\"}SxKU@aad}L!ynPN94|]\"><field name=\"SPRITE\">https://s3-us-west-1.amazonaws.com/media.pixelpad.io/Blockly_Assets/Space/Bullet.png</field></block></value><next><block type=\"set_rot\" id=\"As+L1;Y3V2J^vcS1rx_p\"><value name=\"NAME\"><shadow type=\"math_number\" id=\"o!EOi}DK%k[11e-vhpAO\"><field name=\"NUM\">270</field></shadow></value></block></next></block></statement><statement name=\"update\"><block type=\"move_forward\" id=\"x*X$7)9Vb!w#wrj`A1)k\"><value name=\"NAME\"><shadow type=\"math_number\" id=\"N1d_%IJM|5.(=g[I@mYo\"><field name=\"NUM\">30</field></shadow></value><next><block type=\"controls_if\" id=\"n,9Dnz1)IeaVm*S}BRA]\"><value name=\"IF0\"><block type=\"collision_check\" id=\"/jDcdh)h*3]^.#adEo%$\"><field name=\"NAME\">deleter</field></block></value><statement name=\"DO0\"><block type=\"destroy\" id=\"A*qW[WMtHutyN8w+uS#G\"><value name=\"NAME\"><block type=\"collision_check\" id=\"FjkBS/GO;lsccn#VOst@\"><field name=\"NAME\">deleter</field></block></value><next><block type=\"destroy\" id=\"{}c(pS/Dnob5o/|GlRb+\"><value name=\"NAME\"><block type=\"self\" id=\"qt[hv0[A`{_hQ57xx9mm\"></block></value></block></next></block></statement><next><block type=\"controls_if\" id=\"XFr+%.m^av68d/GWvM-Y\"><value name=\"IF0\"><block type=\"collision_check\" id=\"qOq1uQju_Edr/9oKAZ5u\"><field name=\"NAME\">space</field></block></value><statement name=\"DO0\"><block type=\"destroy\" id=\"vmCpwW5iL9v|HcMmu;Tc\"><value name=\"NAME\"><block type=\"collision_check\" id=\"n.|uK/d8|W.=H]cCcvxJ\"><field name=\"NAME\">space</field></block></value><next><block type=\"destroy\" id=\"Q#]_7ODDsH8ubd}a(oDf\"><value name=\"NAME\"><block type=\"self\" id=\"p{f-f^vZ1,);(d*kcMMF\"></block></value></block></next></block></statement><next><block type=\"controls_if\" id=\"BISKhRuicNoGv)~J55[Y\"><value name=\"IF0\"><block type=\"collision_check\" id=\"$!A@5TB8@3?Z;grIIT}f\"><field name=\"NAME\">crate1</field></block></value><statement name=\"DO0\"><block type=\"destroy\" id=\"_Dvy8T/K8.eSX4MnaEY*\"><value name=\"NAME\"><block type=\"collision_check\" id=\".KX{zb#I]=jf]Nu`oFLg\"><field name=\"NAME\">crate1</field></block></value><next><block type=\"destroy\" id=\"Z[-0piw]Du!|9c.~,]]e\"><value name=\"NAME\"><block type=\"self\" id=\"+0~LDXLFq}{cKnMoP/[)\"></block></value></block></next></block></statement><next><block type=\"controls_if\" id=\"UF;T)*g2p!`j?d=hknm_\"><value name=\"IF0\"><block type=\"collision_check\" id=\"G8]Vz6G(=dvMMsPzd{Co\"><field name=\"NAME\">crate2</field></block></value><statement name=\"DO0\"><block type=\"destroy\" id=\"wKHlqGm0?G(nm8u/8YIm\"><value name=\"NAME\"><block type=\"collision_check\" id=\"-%n]g{VJ=Fz5NF.llPG{\"><field name=\"NAME\">crate2</field></block></value><next><block type=\"destroy\" id=\"49JkZA%9@M_%FuD8JN[-\"><value name=\"NAME\"><block type=\"self\" id=\"*B^AyL3TqvEM#rDAu*#2\"></block></value></block></next></block></statement></block></next></block></next></block></next></block></next></block></statement></block><block type=\"class_object\" id=\"vT^W/1yI,k[nW^QFI)XI\" x=\"419\" y=\"1249\"><field name=\"NAME\">laser2</field><statement name=\"start\"><block type=\"set_sprite\" id=\"g:@@h.p~l`wM:T/TKqh#\"><value name=\"SPRITE\"><block type=\"sprite\" id=\"u]oAqS,I=MdjI7B5,Gjx\"><field name=\"SPRITE\">https://s3-us-west-1.amazonaws.com/media.pixelpad.io/Blockly_Assets/Space/Bullet.png</field></block></value><next><block type=\"set_rot\" id=\"F%#3{y}[7h^SIjS:jKXP\"><value name=\"NAME\"><shadow type=\"math_number\" id=\"M2Eal]Lci8rg$l7^S-Ov\"><field name=\"NUM\">180</field></shadow></value></block></next></block></statement><statement name=\"update\"><block type=\"move_forward\" id=\"Q0o:3=yLk;u@B0IMn%eQ\"><value name=\"NAME\"><shadow type=\"math_number\" id=\"OI0dViEsv92ctO1Lg9ca\"><field name=\"NUM\">30</field></shadow></value><next><block type=\"controls_if\" id=\"eTNHvu,9Hwf1m%^:LGDs\"><value name=\"IF0\"><block type=\"collision_check\" id=\"[VJf;4d`XVjTFS-$EP2@\"><field name=\"NAME\">destroyingcrate</field></block></value><statement name=\"DO0\"><block type=\"destroy\" id=\"c[#8vcLnLZEPu:}G.zRt\"><value name=\"NAME\"><block type=\"collision_check\" id=\"pW_Ou6jhWDA9~?YO(Vc0\"><field name=\"NAME\">destroyingcrate</field></block></value><next><block type=\"destroy\" id=\"b?)0W,JJ!^TzljuuS`MJ\"><value name=\"NAME\"><block type=\"self\" id=\"8A8.(cP3G@([s{S$=.:;\"></block></value></block></next></block></statement><next><block type=\"controls_if\" id=\"A51I/RK9l4![}p6ltUUy\"><value name=\"IF0\"><block type=\"collision_check\" id=\"Rw|:X$!%LzC1Kk+P4)6E\"><field name=\"NAME\">space</field></block></value><statement name=\"DO0\"><block type=\"destroy\" id=\"-{:F==c91dVP3pWnfj_5\"><value name=\"NAME\"><block type=\"collision_check\" id=\"81IFMXv|r0vqr3ql}ln#\"><field name=\"NAME\">space</field></block></value><next><block type=\"destroy\" id=\"rGRK@pE|q%MJ$Q]y_(1r\"><value name=\"NAME\"><block type=\"self\" id=\"bV3[;}5)u`$F-o7}W2e(\"></block></value></block></next></block></statement><next><block type=\"controls_if\" id=\"oweQhy7yDsP]-h7XL./6\"><value name=\"IF0\"><block type=\"collision_check\" id=\"JcnL]r13r:CK;W*?l`b}\"><field name=\"NAME\">crate3</field></block></value><statement name=\"DO0\"><block type=\"destroy\" id=\"q6[wQ.-N!L5]j99[M1Si\"><value name=\"NAME\"><block type=\"collision_check\" id=\"[l`Zh%ya$0/obn2eI2kL\"><field name=\"NAME\">crate3</field></block></value><next><block type=\"destroy\" id=\"bP/S/5iC`12,_nU?=]6P\"><value name=\"NAME\"><block type=\"self\" id=\"zUIJ,bU$Dr+CgGzxacG^\"></block></value></block></next></block></statement><next><block type=\"controls_if\" id=\"Hyu~?RL_y|6[TK]H`}DT\"><value name=\"IF0\"><block type=\"collision_check\" id=\"AC:}3)w~grATY_aS6HxP\"><field name=\"NAME\">crate1</field></block></value><statement name=\"DO0\"><block type=\"destroy\" id=\"d[C8.^GeB+t4Z2bO8gd{\"><value name=\"NAME\"><block type=\"collision_check\" id=\"Z]Tm)}@p*W)(%C^2*L_D\"><field name=\"NAME\">crate1</field></block></value><next><block type=\"destroy\" id=\"pT|;vAf*!rH;ess,?.F_\"><value name=\"NAME\"><block type=\"self\" id=\"^z:5CmFH{w`Ku8rl_mp,\"></block></value></block></next></block></statement></block></next></block></next></block></next></block></next></block></statement></block><block type=\"class_object\" id=\"QT6`;Bwo[8|t*;F(5?At\" x=\"-75\" y=\"1275\"><field name=\"NAME\">laser1</field><statement name=\"start\"><block type=\"set_sprite\" id=\"T}Q*wA}LkSJ-6r?1{gUw\"><value name=\"SPRITE\"><block type=\"sprite\" id=\"ocdCT]|%|_3ScUVW?EQS\"><field name=\"SPRITE\">https://s3-us-west-1.amazonaws.com/media.pixelpad.io/Blockly_Assets/Space/Bullet.png</field></block></value><next><block type=\"set_rot\" id=\"0l74b-tI{djik%yp8LPh\"><value name=\"NAME\"><shadow type=\"math_number\" id=\"Gr{@V2*$dn}}K}7[wH.g\"><field name=\"NUM\">90</field></shadow></value></block></next></block></statement><statement name=\"update\"><block type=\"move_forward\" id=\"jOYZH{sgPMXTX.!h4%3o\"><value name=\"NAME\"><shadow type=\"math_number\" id=\"}IIPrJjN|?nc]yxon}Ay\"><field name=\"NUM\">30</field></shadow></value><next><block type=\"controls_if\" id=\"I?+3_[DGWzeY#yy.`O]1\"><value name=\"IF0\"><block type=\"collision_check\" id=\"@Gvf;JL=Y,qqs@AbOwp@\"><field name=\"NAME\">destroyingcrate</field></block></value><statement name=\"DO0\"><block type=\"destroy\" id=\"@jOl2h9hr,`f|UBzfw]k\"><value name=\"NAME\"><block type=\"collision_check\" id=\"[j2E8%=`vn_bvNnNi26a\"><field name=\"NAME\">destroyingcrate</field></block></value><next><block type=\"destroy\" id=\"m2bH44Y[dJ%8SnOg][7m\"><value name=\"NAME\"><block type=\"self\" id=\"IJiJ{NuakH,L4W.SZ]70\"></block></value></block></next></block></statement><next><block type=\"controls_if\" id=\"Ok9-7H6YiHOVu)h.p+5i\"><value name=\"IF0\"><block type=\"collision_check\" id=\"08F@riDWPbG}|k1,k0Nz\"><field name=\"NAME\">deleter</field></block></value><statement name=\"DO0\"><block type=\"destroy\" id=\"+Q?prQ:@S7djj?+nWvEJ\"><value name=\"NAME\"><block type=\"collision_check\" id=\"$]5zQKcVnm{-XFj2{W1,\"><field name=\"NAME\">deleter</field></block></value><next><block type=\"destroy\" id=\"0:tl%JuC4xj#iSBTVUzo\"><value name=\"NAME\"><block type=\"self\" id=\"kuh]gPmqv/pG)_SGJ]4M\"></block></value></block></next></block></statement><next><block type=\"controls_if\" id=\"iC.D9~A!s#?i;R{O(U5^\"><value name=\"IF0\"><block type=\"collision_check\" id=\"aj09TylwYv,Z8}j#,XMZ\"><field name=\"NAME\">crate2</field></block></value><statement name=\"DO0\"><block type=\"destroy\" id=\".WOJOzs{.Id,t4@)NAG$\"><value name=\"NAME\"><block type=\"collision_check\" id=\"}Jufm3/g1.p6-L3[}@]U\"><field name=\"NAME\">crate2</field></block></value><next><block type=\"destroy\" id=\"Q#)fh_-n]Iz#@rz,5N[q\"><value name=\"NAME\"><block type=\"self\" id=\"TwD%$qg?8t_^~VPP|wv1\"></block></value></block></next></block></statement><next><block type=\"controls_if\" id=\"9uN]YbnkGMh62;33`5X}\"><value name=\"IF0\"><block type=\"collision_check\" id=\"!I2(b5r!R5Sov6|1KcIv\"><field name=\"NAME\">crate3</field></block></value><statement name=\"DO0\"><block type=\"destroy\" id=\"Z?2Atyal`Ry.~8*~|rVI\"><value name=\"NAME\"><block type=\"collision_check\" id=\"dPd/XcC({;5NcLO8b}I1\"><field name=\"NAME\">crate3</field></block></value><next><block type=\"destroy\" id=\"`1~rr8Hp1!wBtt5!Q^Ij\"><value name=\"NAME\"><block type=\"self\" id=\"`8nzFsYW}WLsWsGH8Hy3\"></block></value></block></next></block></statement></block></next></block></next></block></next></block></next></block></statement></block><block type=\"class_object\" id=\"N-gjs(KIYdCZ}:cR`hr=\" x=\"135\" y=\"1755\"><field name=\"NAME\">crate1</field><statement name=\"start\"><block type=\"set_sprite\" id=\"dG:F;~kmm+AGWU!yY4qa\"><value name=\"SPRITE\"><block type=\"sprite\" id=\"{vRcb$Rw;/zKSUP]ARyH\"><field name=\"SPRITE\">https://s3-us-west-1.amazonaws.com/media.pixelpad.io/Blockly_Assets/Dungeon/spiderweb.png</field></block></value></block></statement><statement name=\"update\"><block type=\"controls_if\" id=\"w9Qi*r`^U,#*%2utyUH6\"><value name=\"IF0\"><block type=\"collision_check\" id=\";~T{]Bk#01_`0EanTq1a\"><field name=\"NAME\">deleter</field></block></value><statement name=\"DO0\"><block type=\"destroy\" id=\"mSJwcaNK;8aY;b[?s8V/\"><value name=\"NAME\"><block type=\"collision_check\" id=\"P;ng))LXFpcDK/]67_6j\"><field name=\"NAME\">deleter</field></block></value><next><block type=\"destroy\" id=\"b?iwTcv=OiA_ak%8CHW.\"><value name=\"NAME\"><block type=\"self\" id=\"QjfdoZ%)Xb/Fyr2)G}gN\"></block></value></block></next></block></statement><next><block type=\"controls_if\" id=\"MSf73mWEgTaVju({[XNo\"><value name=\"IF0\"><block type=\"collision_check\" id=\"YysYA3yR|jgS_6]+1hVp\"><field name=\"NAME\">destroyingcrate</field></block></value><statement name=\"DO0\"><block type=\"destroy\" id=\"vehroMUFf;c@-:(fS9/+\"><value name=\"NAME\"><block type=\"collision_check\" id=\"*Gsl!TB8?DW1Y(1)0C8P\"><field name=\"NAME\">destroyingcrate</field></block></value><next><block type=\"destroy\" id=\"$Z_E$[Qb=~vHX+1O.B?:\"><value name=\"NAME\"><block type=\"self\" id=\"ZH.2OWcl)j?*}dGO?:^}\"></block></value></block></next></block></statement></block></next></block></statement></block><block type=\"class_object\" id=\"pym6XPZ29;oPD+EP=(JG\" x=\"825\" y=\"1815\"><field name=\"NAME\">crate3</field><statement name=\"start\"><block type=\"set_sprite\" id=\"Ah/S(5*a(VeQ3}v5:sEJ\"><value name=\"SPRITE\"><block type=\"sprite\" id=\"5PX0KQYIF5weWpPcyn*q\"><field name=\"SPRITE\">https://s3-us-west-1.amazonaws.com/media.pixelpad.io/Blockly_Assets/Dungeon/spiderweb.png</field></block></value></block></statement><statement name=\"update\"><block type=\"controls_if\" id=\"{(lZ=vth4[iV,_)CyXGr\"><value name=\"IF0\"><block type=\"collision_check\" id=\"wBsy#i07@${]M~5]ZeGY\"><field name=\"NAME\">deleter</field></block></value><statement name=\"DO0\"><block type=\"destroy\" id=\"o4M8ReyRR/F^r#nAg5+_\"><value name=\"NAME\"><block type=\"collision_check\" id=\"7La/]MeyDCWpcAn}i8^U\"><field name=\"NAME\">deleter</field></block></value><next><block type=\"destroy\" id=\"iAw]v8olZr7]Ju$[48K*\"><value name=\"NAME\"><block type=\"self\" id=\"dS-{~eR{,OEG;FB+65gG\"></block></value></block></next></block></statement><next><block type=\"controls_if\" id=\"h0Dz4b=OlBnp*Onpq)qC\"><value name=\"IF0\"><block type=\"collision_check\" id=\"pti2^uokeI#yZ/4v@#{=\"><field name=\"NAME\">space</field></block></value><statement name=\"DO0\"><block type=\"destroy\" id=\"EvJJT.Wt$v,i)(k,dDh5\"><value name=\"NAME\"><block type=\"collision_check\" id=\"?C`0~XpK!?.c(|*]G(]:\"><field name=\"NAME\">space</field></block></value><next><block type=\"destroy\" id=\"1mF2OrjBXInl]oOx)zXg\"><value name=\"NAME\"><block type=\"self\" id=\"D8gYwNRM9eqFm{-W+P-I\"></block></value></block></next></block></statement></block></next></block></statement></block><block type=\"class_object\" id=\"G~t/D?pytiOM*MQ*(Gr4\" x=\"495\" y=\"1845\"><field name=\"NAME\">crate2</field><statement name=\"start\"><block type=\"set_sprite\" id=\"WQ0`)2t~2/lT8X/*XiKy\"><value name=\"SPRITE\"><block type=\"sprite\" id=\"J}B2eGB5$LQQl(d7yZVz\"><field name=\"SPRITE\">https://s3-us-west-1.amazonaws.com/media.pixelpad.io/Blockly_Assets/Dungeon/spiderweb.png</field></block></value></block></statement><statement name=\"update\"><block type=\"controls_if\" id=\"d$|7ORS3mWsW/g9dUD6o\"><value name=\"IF0\"><block type=\"collision_check\" id=\"u{jDS]Vx=f~--5`sT+VW\"><field name=\"NAME\">destroyingcrate</field></block></value><statement name=\"DO0\"><block type=\"destroy\" id=\"]W1UWgy~/E`YSO$a}7C@\"><value name=\"NAME\"><block type=\"collision_check\" id=\"XatvMx][`MAR?gaN#7!^\"><field name=\"NAME\">destroyingcrate</field></block></value><next><block type=\"destroy\" id=\"oIt+/7RzHj5P1~qV[qK2\"><value name=\"NAME\"><block type=\"self\" id=\"hVy9;/L2xkkk+T;k/;kU\"></block></value></block></next></block></statement><next><block type=\"controls_if\" id=\"=j5uCSCdkVK^9@/RTB*#\"><value name=\"IF0\"><block type=\"collision_check\" id=\"HB^6[f2B:UU|gbSYTuww\"><field name=\"NAME\">space</field></block></value><statement name=\"DO0\"><block type=\"destroy\" id=\"dx(eV8l}ev,.Kkf|0Y_]\"><value name=\"NAME\"><block type=\"collision_check\" id=\"6#D#m]Par!CwzR%$R=`I\"><field name=\"NAME\">space</field></block></value><next><block type=\"destroy\" id=\"^V(FGt6kr=KODTOTQH1}\"><value name=\"NAME\"><block type=\"self\" id=\"xPw2YMS7Fv.u+=pmum7A\"></block></value></block></next></block></statement></block></next></block></statement></block></xml>"}