diff --git a/desktop/resources/ego/warden.png b/desktop/resources/ego/warden.png
new file mode 100644
index 00000000..e2487d20
Binary files /dev/null and b/desktop/resources/ego/warden.png differ
diff --git a/desktop/resources/ending-castle/duke.png b/desktop/resources/ending-castle/duke.png
new file mode 100644
index 00000000..89221fcf
Binary files /dev/null and b/desktop/resources/ending-castle/duke.png differ
diff --git a/desktop/resources/ending-castle/duke.pxa/0.pxi b/desktop/resources/ending-castle/duke.pxa/0.pxi
new file mode 100644
index 00000000..ce174cf0
Binary files /dev/null and b/desktop/resources/ending-castle/duke.pxa/0.pxi differ
diff --git a/desktop/resources/ending-castle/duke.pxa/1.pxi b/desktop/resources/ending-castle/duke.pxa/1.pxi
new file mode 100644
index 00000000..2223dd8d
Binary files /dev/null and b/desktop/resources/ending-castle/duke.pxa/1.pxi differ
diff --git a/desktop/resources/ending-castle/duke.pxa/10.pxi b/desktop/resources/ending-castle/duke.pxa/10.pxi
new file mode 100644
index 00000000..0408f562
Binary files /dev/null and b/desktop/resources/ending-castle/duke.pxa/10.pxi differ
diff --git a/desktop/resources/ending-castle/duke.pxa/2.pxi b/desktop/resources/ending-castle/duke.pxa/2.pxi
new file mode 100644
index 00000000..22dd429a
Binary files /dev/null and b/desktop/resources/ending-castle/duke.pxa/2.pxi differ
diff --git a/desktop/resources/ending-castle/duke.pxa/3.pxi b/desktop/resources/ending-castle/duke.pxa/3.pxi
new file mode 100644
index 00000000..ce174cf0
Binary files /dev/null and b/desktop/resources/ending-castle/duke.pxa/3.pxi differ
diff --git a/desktop/resources/ending-castle/duke.pxa/4.pxi b/desktop/resources/ending-castle/duke.pxa/4.pxi
new file mode 100644
index 00000000..4cd11fe0
Binary files /dev/null and b/desktop/resources/ending-castle/duke.pxa/4.pxi differ
diff --git a/desktop/resources/ending-castle/duke.pxa/5.pxi b/desktop/resources/ending-castle/duke.pxa/5.pxi
new file mode 100644
index 00000000..29602c3e
Binary files /dev/null and b/desktop/resources/ending-castle/duke.pxa/5.pxi differ
diff --git a/desktop/resources/ending-castle/duke.pxa/6.pxi b/desktop/resources/ending-castle/duke.pxa/6.pxi
new file mode 100644
index 00000000..9628fd54
Binary files /dev/null and b/desktop/resources/ending-castle/duke.pxa/6.pxi differ
diff --git a/desktop/resources/ending-castle/duke.pxa/7.pxi b/desktop/resources/ending-castle/duke.pxa/7.pxi
new file mode 100644
index 00000000..39d67af6
Binary files /dev/null and b/desktop/resources/ending-castle/duke.pxa/7.pxi differ
diff --git a/desktop/resources/ending-castle/duke.pxa/8.pxi b/desktop/resources/ending-castle/duke.pxa/8.pxi
new file mode 100644
index 00000000..dccbec97
Binary files /dev/null and b/desktop/resources/ending-castle/duke.pxa/8.pxi differ
diff --git a/desktop/resources/ending-castle/duke.pxa/9.pxi b/desktop/resources/ending-castle/duke.pxa/9.pxi
new file mode 100644
index 00000000..4037858b
Binary files /dev/null and b/desktop/resources/ending-castle/duke.pxa/9.pxi differ
diff --git a/desktop/resources/ending-castle/duke.pxa/CelData.plist b/desktop/resources/ending-castle/duke.pxa/CelData.plist
new file mode 100644
index 00000000..53e79e6e
--- /dev/null
+++ b/desktop/resources/ending-castle/duke.pxa/CelData.plist
@@ -0,0 +1,50 @@
+
+
+
+
+
+ duration
+ 1
+
+
+ duration
+ 1
+
+
+ duration
+ 1
+
+
+ duration
+ 1
+
+
+ duration
+ 1
+
+
+ duration
+ 1
+
+
+ duration
+ 1
+
+
+ duration
+ 1
+
+
+ duration
+ 1
+
+
+ duration
+ 1
+
+
+ duration
+ 1
+
+
+
diff --git a/desktop/resources/ending-castle/duke.pxi b/desktop/resources/ending-castle/duke.pxi
new file mode 100644
index 00000000..cc69903d
Binary files /dev/null and b/desktop/resources/ending-castle/duke.pxi differ
diff --git a/desktop/resources/ending-castle/warden-2.png b/desktop/resources/ending-castle/warden-2.png
new file mode 100644
index 00000000..246c7f81
Binary files /dev/null and b/desktop/resources/ending-castle/warden-2.png differ
diff --git a/desktop/resources/ending-castle/warden.pxa/0.pxi b/desktop/resources/ending-castle/warden.pxa/0.pxi
new file mode 100644
index 00000000..87cb03de
Binary files /dev/null and b/desktop/resources/ending-castle/warden.pxa/0.pxi differ
diff --git a/desktop/resources/ending-castle/warden.pxa/1.pxi b/desktop/resources/ending-castle/warden.pxa/1.pxi
new file mode 100644
index 00000000..31adcce8
Binary files /dev/null and b/desktop/resources/ending-castle/warden.pxa/1.pxi differ
diff --git a/desktop/resources/ending-castle/warden.pxa/CelData.plist b/desktop/resources/ending-castle/warden.pxa/CelData.plist
new file mode 100644
index 00000000..29c78f8b
--- /dev/null
+++ b/desktop/resources/ending-castle/warden.pxa/CelData.plist
@@ -0,0 +1,14 @@
+
+
+
+
+
+ duration
+ 1
+
+
+ duration
+ 1
+
+
+
diff --git a/desktop/resources/ending-castle/warden2.pxa/0.pxi b/desktop/resources/ending-castle/warden2.pxa/0.pxi
new file mode 100644
index 00000000..866e7f19
Binary files /dev/null and b/desktop/resources/ending-castle/warden2.pxa/0.pxi differ
diff --git a/desktop/resources/ending-castle/warden2.pxa/1.pxi b/desktop/resources/ending-castle/warden2.pxa/1.pxi
new file mode 100644
index 00000000..8ce55449
Binary files /dev/null and b/desktop/resources/ending-castle/warden2.pxa/1.pxi differ
diff --git a/desktop/resources/ending-castle/warden2.pxa/CelData.plist b/desktop/resources/ending-castle/warden2.pxa/CelData.plist
new file mode 100644
index 00000000..29c78f8b
--- /dev/null
+++ b/desktop/resources/ending-castle/warden2.pxa/CelData.plist
@@ -0,0 +1,14 @@
+
+
+
+
+
+ duration
+ 1
+
+
+ duration
+ 1
+
+
+
diff --git a/desktop/resources/wizard/cloud.png b/desktop/resources/wizard/cloud.png
new file mode 100644
index 00000000..2736b3c5
Binary files /dev/null and b/desktop/resources/wizard/cloud.png differ
diff --git a/desktop/resources/wizard/cloud.pxi b/desktop/resources/wizard/cloud.pxi
new file mode 100644
index 00000000..95c81da8
Binary files /dev/null and b/desktop/resources/wizard/cloud.pxi differ
diff --git a/desktop/resources/wizard/dot.png b/desktop/resources/wizard/dot.png
new file mode 100644
index 00000000..8802f8e0
Binary files /dev/null and b/desktop/resources/wizard/dot.png differ
diff --git a/desktop/resources/wizard/flame.png b/desktop/resources/wizard/flame.png
new file mode 100644
index 00000000..988e3dea
Binary files /dev/null and b/desktop/resources/wizard/flame.png differ
diff --git a/desktop/resources/wizard/gandarf-cloud b/desktop/resources/wizard/gandarf-cloud
new file mode 100644
index 00000000..36be8315
--- /dev/null
+++ b/desktop/resources/wizard/gandarf-cloud
@@ -0,0 +1,503 @@
+wave
+- Delay -
+active: true
+lowMin: 0.0
+lowMax: 0.0
+- Duration -
+lowMin: 1000.0
+lowMax: 1000.0
+- Count -
+min: 0
+max: 500
+- Emission -
+lowMin: 0.0
+lowMax: 0.0
+highMin: 10.0
+highMax: 10.0
+relative: false
+scalingCount: 1
+scaling0: 1.0
+timelineCount: 1
+timeline0: 0.0
+- Life -
+lowMin: 0.0
+lowMax: 0.0
+highMin: 5000.0
+highMax: 5000.0
+relative: false
+scalingCount: 1
+scaling0: 1.0
+timelineCount: 1
+timeline0: 0.0
+- Life Offset -
+active: false
+- X Offset -
+active: true
+lowMin: -5.0
+lowMax: 5.0
+highMin: 0.0
+highMax: 0.0
+relative: false
+scalingCount: 1
+scaling0: 1.0
+timelineCount: 1
+timeline0: 0.0
+- Y Offset -
+active: true
+lowMin: -10.0
+lowMax: -10.0
+highMin: 0.0
+highMax: 0.0
+relative: false
+scalingCount: 1
+scaling0: 1.0
+timelineCount: 1
+timeline0: 0.0
+- Spawn Shape -
+shape: point
+- Spawn Width -
+lowMin: 0.0
+lowMax: 0.0
+highMin: 0.0
+highMax: 0.0
+relative: false
+scalingCount: 1
+scaling0: 1.0
+timelineCount: 1
+timeline0: 0.0
+- Spawn Height -
+lowMin: 0.0
+lowMax: 0.0
+highMin: 0.0
+highMax: 0.0
+relative: false
+scalingCount: 1
+scaling0: 1.0
+timelineCount: 1
+timeline0: 0.0
+- Scale -
+lowMin: 1.0
+lowMax: 1.0
+highMin: 1.0
+highMax: 1.0
+relative: false
+scalingCount: 2
+scaling0: 0.0
+scaling1: 1.0
+timelineCount: 2
+timeline0: 0.0
+timeline1: 1.0
+- Velocity -
+active: true
+lowMin: 0.0
+lowMax: 0.0
+highMin: 10.0
+highMax: 10.0
+relative: false
+scalingCount: 1
+scaling0: 1.0
+timelineCount: 1
+timeline0: 0.0
+- Angle -
+active: true
+lowMin: 0.0
+lowMax: 0.0
+highMin: -100.0
+highMax: -80.0
+relative: false
+scalingCount: 1
+scaling0: 1.0
+timelineCount: 1
+timeline0: 0.0
+- Rotation -
+active: false
+- Wind -
+active: true
+lowMin: -20.0
+lowMax: -30.0
+highMin: 20.0
+highMax: 30.0
+relative: false
+scalingCount: 8
+scaling0: 0.0
+scaling1: 1.0
+scaling2: 0.0
+scaling3: 1.0
+scaling4: 0.0
+scaling5: 1.0
+scaling6: 0.0
+scaling7: 1.0
+timelineCount: 8
+timeline0: 0.0
+timeline1: 0.09589041
+timeline2: 0.25342464
+timeline3: 0.39726028
+timeline4: 0.51369864
+timeline5: 0.65068495
+timeline6: 0.82191783
+timeline7: 0.9589041
+- Gravity -
+active: false
+- Tint -
+colorsCount: 6
+colors0: 0.6039216
+colors1: 0.047058824
+colors2: 1.0
+colors3: 1.0
+colors4: 0.047058824
+colors5: 0.047058824
+timelineCount: 2
+timeline0: 0.0
+timeline1: 1.0
+- Transparency -
+lowMin: 0.0
+lowMax: 0.0
+highMin: 1.0
+highMax: 1.0
+relative: false
+scalingCount: 4
+scaling0: 0.0
+scaling1: 1.0
+scaling2: 0.2631579
+scaling3: 0.0
+timelineCount: 4
+timeline0: 0.0
+timeline1: 0.1780822
+timeline2: 0.65753424
+timeline3: 1.0
+- Options -
+attached: false
+continuous: true
+aligned: false
+additive: true
+behind: false
+premultipliedAlpha: false
+- Image Path -
+dot.png
+
+
+Untitled
+- Delay -
+active: false
+- Duration -
+lowMin: 5000.0
+lowMax: 5000.0
+- Count -
+min: 5
+max: 10
+- Emission -
+lowMin: 0.0
+lowMax: 0.0
+highMin: 5.0
+highMax: 5.0
+relative: false
+scalingCount: 1
+scaling0: 1.0
+timelineCount: 1
+timeline0: 0.0
+- Life -
+lowMin: 0.0
+lowMax: 0.0
+highMin: 1000.0
+highMax: 1000.0
+relative: false
+scalingCount: 1
+scaling0: 1.0
+timelineCount: 1
+timeline0: 0.0
+- Life Offset -
+active: false
+- X Offset -
+active: true
+lowMin: -10.0
+lowMax: 10.0
+highMin: 0.0
+highMax: 0.0
+relative: false
+scalingCount: 1
+scaling0: 1.0
+timelineCount: 1
+timeline0: 0.0
+- Y Offset -
+active: false
+- Spawn Shape -
+shape: point
+- Spawn Width -
+lowMin: 0.0
+lowMax: 0.0
+highMin: 0.0
+highMax: 0.0
+relative: false
+scalingCount: 1
+scaling0: 1.0
+timelineCount: 1
+timeline0: 0.0
+- Spawn Height -
+lowMin: 0.0
+lowMax: 0.0
+highMin: 0.0
+highMax: 0.0
+relative: false
+scalingCount: 1
+scaling0: 1.0
+timelineCount: 1
+timeline0: 0.0
+- Scale -
+lowMin: 0.0
+lowMax: 0.0
+highMin: 30.0
+highMax: 30.0
+relative: false
+scalingCount: 1
+scaling0: 1.0
+timelineCount: 1
+timeline0: 0.0
+- Velocity -
+active: true
+lowMin: 0.0
+lowMax: 5.0
+highMin: 5.0
+highMax: 5.0
+relative: false
+scalingCount: 2
+scaling0: 1.0
+scaling1: 0.0
+timelineCount: 2
+timeline0: 0.0
+timeline1: 1.0
+- Angle -
+active: true
+lowMin: 0.0
+lowMax: 0.0
+highMin: 180.0
+highMax: 360.0
+relative: false
+scalingCount: 1
+scaling0: 1.0
+timelineCount: 1
+timeline0: 0.0
+- Rotation -
+active: true
+lowMin: 0.0
+lowMax: 0.0
+highMin: -15.0
+highMax: 15.0
+relative: false
+scalingCount: 1
+scaling0: 1.0
+timelineCount: 1
+timeline0: 0.0
+- Wind -
+active: false
+- Gravity -
+active: false
+- Tint -
+colorsCount: 3
+colors0: 0.827451
+colors1: 0.94509804
+colors2: 1.0
+timelineCount: 1
+timeline0: 0.0
+- Transparency -
+lowMin: 0.0
+lowMax: 0.0
+highMin: 1.0
+highMax: 1.0
+relative: false
+scalingCount: 4
+scaling0: 0.0
+scaling1: 0.5263158
+scaling2: 0.50877196
+scaling3: 0.0
+timelineCount: 4
+timeline0: 0.0
+timeline1: 0.34931508
+timeline2: 0.8835617
+timeline3: 0.9931507
+- Options -
+attached: false
+continuous: true
+aligned: false
+additive: true
+behind: false
+premultipliedAlpha: false
+- Image Path -
+cloud.png
+
+
+wave
+- Delay -
+active: true
+lowMin: 0.0
+lowMax: 0.0
+- Duration -
+lowMin: 1000.0
+lowMax: 1000.0
+- Count -
+min: 0
+max: 500
+- Emission -
+lowMin: 0.0
+lowMax: 0.0
+highMin: 10.0
+highMax: 10.0
+relative: false
+scalingCount: 1
+scaling0: 1.0
+timelineCount: 1
+timeline0: 0.0
+- Life -
+lowMin: 0.0
+lowMax: 0.0
+highMin: 5000.0
+highMax: 5000.0
+relative: false
+scalingCount: 1
+scaling0: 1.0
+timelineCount: 1
+timeline0: 0.0
+- Life Offset -
+active: false
+- X Offset -
+active: true
+lowMin: -5.0
+lowMax: 5.0
+highMin: 0.0
+highMax: 0.0
+relative: false
+scalingCount: 1
+scaling0: 1.0
+timelineCount: 1
+timeline0: 0.0
+- Y Offset -
+active: true
+lowMin: -10.0
+lowMax: -10.0
+highMin: 0.0
+highMax: 0.0
+relative: false
+scalingCount: 1
+scaling0: 1.0
+timelineCount: 1
+timeline0: 0.0
+- Spawn Shape -
+shape: point
+- Spawn Width -
+lowMin: 0.0
+lowMax: 0.0
+highMin: 0.0
+highMax: 0.0
+relative: false
+scalingCount: 1
+scaling0: 1.0
+timelineCount: 1
+timeline0: 0.0
+- Spawn Height -
+lowMin: 0.0
+lowMax: 0.0
+highMin: 0.0
+highMax: 0.0
+relative: false
+scalingCount: 1
+scaling0: 1.0
+timelineCount: 1
+timeline0: 0.0
+- Scale -
+lowMin: 1.0
+lowMax: 1.0
+highMin: 1.0
+highMax: 1.0
+relative: false
+scalingCount: 2
+scaling0: 0.0
+scaling1: 1.0
+timelineCount: 2
+timeline0: 0.0
+timeline1: 1.0
+- Velocity -
+active: true
+lowMin: 0.0
+lowMax: 0.0
+highMin: 10.0
+highMax: 10.0
+relative: false
+scalingCount: 1
+scaling0: 1.0
+timelineCount: 1
+timeline0: 0.0
+- Angle -
+active: true
+lowMin: 0.0
+lowMax: 0.0
+highMin: -100.0
+highMax: -80.0
+relative: false
+scalingCount: 1
+scaling0: 1.0
+timelineCount: 1
+timeline0: 0.0
+- Rotation -
+active: false
+- Wind -
+active: true
+lowMin: -30.0
+lowMax: -30.0
+highMin: 30.0
+highMax: 30.0
+relative: false
+scalingCount: 8
+scaling0: 0.0
+scaling1: 1.0
+scaling2: 0.0
+scaling3: 1.0
+scaling4: 0.0
+scaling5: 1.0
+scaling6: 0.0
+scaling7: 1.0
+timelineCount: 8
+timeline0: 0.0
+timeline1: 0.09589041
+timeline2: 0.25342464
+timeline3: 0.39726028
+timeline4: 0.51369864
+timeline5: 0.65068495
+timeline6: 0.82191783
+timeline7: 0.9589041
+- Gravity -
+active: false
+- Tint -
+colorsCount: 6
+colors0: 0.047058824
+colors1: 0.9764706
+colors2: 1.0
+colors3: 0.047058824
+colors4: 1.0
+colors5: 0.6627451
+timelineCount: 2
+timeline0: 0.0
+timeline1: 1.0
+- Transparency -
+lowMin: 0.0
+lowMax: 0.0
+highMin: 1.0
+highMax: 1.0
+relative: false
+scalingCount: 4
+scaling0: 0.0
+scaling1: 1.0
+scaling2: 0.31578946
+scaling3: 0.0
+timelineCount: 4
+timeline0: 0.0
+timeline1: 0.20547946
+timeline2: 0.739726
+timeline3: 1.0
+- Options -
+attached: false
+continuous: true
+aligned: false
+additive: true
+behind: false
+premultipliedAlpha: false
+- Image Path -
+dot.png
diff --git a/desktop/test.out b/desktop/test.out
new file mode 100644
index 00000000..075376bc
--- /dev/null
+++ b/desktop/test.out
@@ -0,0 +1,4 @@
+Started nREPL server on port 2000
+1440
+900
+1440 900