diff --git a/.gitignore b/.gitignore
index 5b5fbba..659f560 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
build/
.import/
+assets/export/*.import
diff --git a/TODO.md b/TODO.md
index 4d0f357..9decdf6 100644
--- a/TODO.md
+++ b/TODO.md
@@ -10,9 +10,10 @@
* make the help text indicate (flash, etc.)
3. Sound effects
* on hit
- * on piece lost
- * on piece kill
- * on opponent victory
* if possible, a small bit of background music
4. Further visual polish
5. New units
+
+Bugs
+
+ * if the player has no possible moves, there is no way to continue: add a skip turn button
diff --git a/assets/export/dust.wav b/assets/export/dust.wav
new file mode 100644
index 0000000..b602f3a
Binary files /dev/null and b/assets/export/dust.wav differ
diff --git a/assets/export/end_song.ogg b/assets/export/end_song.ogg
new file mode 100644
index 0000000..64dd102
Binary files /dev/null and b/assets/export/end_song.ogg differ
diff --git a/assets/export/hehe.wav b/assets/export/hehe.wav
new file mode 100644
index 0000000..ed49035
Binary files /dev/null and b/assets/export/hehe.wav differ
diff --git a/assets/export/huh.wav b/assets/export/huh.wav
new file mode 100644
index 0000000..497edeb
Binary files /dev/null and b/assets/export/huh.wav differ
diff --git a/assets/export/impossible.wav b/assets/export/impossible.wav
new file mode 100644
index 0000000..780fa4c
Binary files /dev/null and b/assets/export/impossible.wav differ
diff --git a/assets/export/stop_that.wav b/assets/export/stop_that.wav
new file mode 100644
index 0000000..7f343da
Binary files /dev/null and b/assets/export/stop_that.wav differ
diff --git a/assets/export/thinkyoucan.wav b/assets/export/thinkyoucan.wav
new file mode 100644
index 0000000..b5e6a25
Binary files /dev/null and b/assets/export/thinkyoucan.wav differ
diff --git a/assets/export/yammering.wav b/assets/export/yammering.wav
new file mode 100644
index 0000000..c6a3ac1
Binary files /dev/null and b/assets/export/yammering.wav differ
diff --git a/assets/source/end_song.aup b/assets/source/end_song.aup
new file mode 100644
index 0000000..3800046
--- /dev/null
+++ b/assets/source/end_song.aup
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/source/end_song_data/eff/d1f/eff1f07e.au b/assets/source/end_song_data/eff/d1f/eff1f07e.au
new file mode 100644
index 0000000..546c87f
Binary files /dev/null and b/assets/source/end_song_data/eff/d1f/eff1f07e.au differ
diff --git a/assets/source/end_song_data/eff/d1f/eff1f098.au b/assets/source/end_song_data/eff/d1f/eff1f098.au
new file mode 100644
index 0000000..eabcd2c
Binary files /dev/null and b/assets/source/end_song_data/eff/d1f/eff1f098.au differ
diff --git a/assets/source/end_song_data/eff/d1f/eff1f367.au b/assets/source/end_song_data/eff/d1f/eff1f367.au
new file mode 100644
index 0000000..853b83d
Binary files /dev/null and b/assets/source/end_song_data/eff/d1f/eff1f367.au differ
diff --git a/assets/source/end_song_data/eff/d1f/eff1f38c.au b/assets/source/end_song_data/eff/d1f/eff1f38c.au
new file mode 100644
index 0000000..427c2dc
Binary files /dev/null and b/assets/source/end_song_data/eff/d1f/eff1f38c.au differ
diff --git a/assets/source/end_song_data/eff/d1f/eff1f498.au b/assets/source/end_song_data/eff/d1f/eff1f498.au
new file mode 100644
index 0000000..006ae1c
Binary files /dev/null and b/assets/source/end_song_data/eff/d1f/eff1f498.au differ
diff --git a/assets/source/end_song_data/eff/d1f/eff1f6a7.au b/assets/source/end_song_data/eff/d1f/eff1f6a7.au
new file mode 100644
index 0000000..254dc27
Binary files /dev/null and b/assets/source/end_song_data/eff/d1f/eff1f6a7.au differ
diff --git a/assets/source/end_song_data/eff/d1f/eff1fa33.au b/assets/source/end_song_data/eff/d1f/eff1fa33.au
new file mode 100644
index 0000000..a23b173
Binary files /dev/null and b/assets/source/end_song_data/eff/d1f/eff1fa33.au differ
diff --git a/assets/source/end_song_data/eff/d1f/eff1faec.au b/assets/source/end_song_data/eff/d1f/eff1faec.au
new file mode 100644
index 0000000..9c45f97
Binary files /dev/null and b/assets/source/end_song_data/eff/d1f/eff1faec.au differ
diff --git a/assets/source/end_song_data/eff/d1f/eff1fb3b.au b/assets/source/end_song_data/eff/d1f/eff1fb3b.au
new file mode 100644
index 0000000..6788f0d
Binary files /dev/null and b/assets/source/end_song_data/eff/d1f/eff1fb3b.au differ
diff --git a/assets/source/end_song_data/eff/d1f/eff1fbf8.au b/assets/source/end_song_data/eff/d1f/eff1fbf8.au
new file mode 100644
index 0000000..01ab64d
Binary files /dev/null and b/assets/source/end_song_data/eff/d1f/eff1fbf8.au differ
diff --git a/assets/source/end_song_data/eff/d1f/eff1fe75.au b/assets/source/end_song_data/eff/d1f/eff1fe75.au
new file mode 100644
index 0000000..c98bf01
Binary files /dev/null and b/assets/source/end_song_data/eff/d1f/eff1fe75.au differ
diff --git a/assets/source/end_song_data/eff/d1f/eff1ff48.au b/assets/source/end_song_data/eff/d1f/eff1ff48.au
new file mode 100644
index 0000000..ba999be
Binary files /dev/null and b/assets/source/end_song_data/eff/d1f/eff1ff48.au differ
diff --git a/assets/source/voice_clips.aup b/assets/source/voice_clips.aup
new file mode 100644
index 0000000..f57d92a
--- /dev/null
+++ b/assets/source/voice_clips.aup
@@ -0,0 +1,147 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f013.au b/assets/source/voice_clips_data/eff/d1f/eff1f013.au
new file mode 100644
index 0000000..c2093c3
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f013.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f05b.au b/assets/source/voice_clips_data/eff/d1f/eff1f05b.au
new file mode 100644
index 0000000..55334ab
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f05b.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f05e.au b/assets/source/voice_clips_data/eff/d1f/eff1f05e.au
new file mode 100644
index 0000000..201ce97
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f05e.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f075.au b/assets/source/voice_clips_data/eff/d1f/eff1f075.au
new file mode 100644
index 0000000..d649061
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f075.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f0d5.au b/assets/source/voice_clips_data/eff/d1f/eff1f0d5.au
new file mode 100644
index 0000000..c18cb22
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f0d5.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f0da.au b/assets/source/voice_clips_data/eff/d1f/eff1f0da.au
new file mode 100644
index 0000000..748cf30
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f0da.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f13e.au b/assets/source/voice_clips_data/eff/d1f/eff1f13e.au
new file mode 100644
index 0000000..a264e48
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f13e.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f149.au b/assets/source/voice_clips_data/eff/d1f/eff1f149.au
new file mode 100644
index 0000000..5f6a50a
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f149.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f19d.au b/assets/source/voice_clips_data/eff/d1f/eff1f19d.au
new file mode 100644
index 0000000..f6b294e
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f19d.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f1b6.au b/assets/source/voice_clips_data/eff/d1f/eff1f1b6.au
new file mode 100644
index 0000000..bed4027
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f1b6.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f1cb.au b/assets/source/voice_clips_data/eff/d1f/eff1f1cb.au
new file mode 100644
index 0000000..e9d5530
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f1cb.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f1d2.au b/assets/source/voice_clips_data/eff/d1f/eff1f1d2.au
new file mode 100644
index 0000000..beaa142
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f1d2.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f1e4.au b/assets/source/voice_clips_data/eff/d1f/eff1f1e4.au
new file mode 100644
index 0000000..80964ca
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f1e4.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f1f9.au b/assets/source/voice_clips_data/eff/d1f/eff1f1f9.au
new file mode 100644
index 0000000..3192258
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f1f9.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f21b.au b/assets/source/voice_clips_data/eff/d1f/eff1f21b.au
new file mode 100644
index 0000000..1e66581
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f21b.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f277.au b/assets/source/voice_clips_data/eff/d1f/eff1f277.au
new file mode 100644
index 0000000..f754b2e
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f277.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f2a1.au b/assets/source/voice_clips_data/eff/d1f/eff1f2a1.au
new file mode 100644
index 0000000..3244e54
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f2a1.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f2b9.au b/assets/source/voice_clips_data/eff/d1f/eff1f2b9.au
new file mode 100644
index 0000000..0cd0f85
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f2b9.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f2ba.au b/assets/source/voice_clips_data/eff/d1f/eff1f2ba.au
new file mode 100644
index 0000000..c46c743
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f2ba.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f2e9.au b/assets/source/voice_clips_data/eff/d1f/eff1f2e9.au
new file mode 100644
index 0000000..2fc08d5
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f2e9.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f2f4.au b/assets/source/voice_clips_data/eff/d1f/eff1f2f4.au
new file mode 100644
index 0000000..3192258
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f2f4.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f309.au b/assets/source/voice_clips_data/eff/d1f/eff1f309.au
new file mode 100644
index 0000000..252f6bd
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f309.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f349.au b/assets/source/voice_clips_data/eff/d1f/eff1f349.au
new file mode 100644
index 0000000..0599d35
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f349.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f364.au b/assets/source/voice_clips_data/eff/d1f/eff1f364.au
new file mode 100644
index 0000000..5730520
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f364.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f386.au b/assets/source/voice_clips_data/eff/d1f/eff1f386.au
new file mode 100644
index 0000000..3c0f77d
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f386.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f398.au b/assets/source/voice_clips_data/eff/d1f/eff1f398.au
new file mode 100644
index 0000000..f43bad6
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f398.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f3a5.au b/assets/source/voice_clips_data/eff/d1f/eff1f3a5.au
new file mode 100644
index 0000000..779f898
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f3a5.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f3d0.au b/assets/source/voice_clips_data/eff/d1f/eff1f3d0.au
new file mode 100644
index 0000000..ac32870
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f3d0.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f3fc.au b/assets/source/voice_clips_data/eff/d1f/eff1f3fc.au
new file mode 100644
index 0000000..c2093c3
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f3fc.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f410.au b/assets/source/voice_clips_data/eff/d1f/eff1f410.au
new file mode 100644
index 0000000..d04db85
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f410.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f42e.au b/assets/source/voice_clips_data/eff/d1f/eff1f42e.au
new file mode 100644
index 0000000..9982348
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f42e.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f448.au b/assets/source/voice_clips_data/eff/d1f/eff1f448.au
new file mode 100644
index 0000000..beea4d3
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f448.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f454.au b/assets/source/voice_clips_data/eff/d1f/eff1f454.au
new file mode 100644
index 0000000..e8fac90
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f454.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f47e.au b/assets/source/voice_clips_data/eff/d1f/eff1f47e.au
new file mode 100644
index 0000000..978762b
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f47e.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f4ea.au b/assets/source/voice_clips_data/eff/d1f/eff1f4ea.au
new file mode 100644
index 0000000..77f27f1
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f4ea.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f502.au b/assets/source/voice_clips_data/eff/d1f/eff1f502.au
new file mode 100644
index 0000000..abccb6e
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f502.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f51d.au b/assets/source/voice_clips_data/eff/d1f/eff1f51d.au
new file mode 100644
index 0000000..c18cb22
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f51d.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f549.au b/assets/source/voice_clips_data/eff/d1f/eff1f549.au
new file mode 100644
index 0000000..9982348
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f549.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f574.au b/assets/source/voice_clips_data/eff/d1f/eff1f574.au
new file mode 100644
index 0000000..43c85fc
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f574.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f59c.au b/assets/source/voice_clips_data/eff/d1f/eff1f59c.au
new file mode 100644
index 0000000..53cd133
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f59c.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f5f8.au b/assets/source/voice_clips_data/eff/d1f/eff1f5f8.au
new file mode 100644
index 0000000..370646a
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f5f8.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f603.au b/assets/source/voice_clips_data/eff/d1f/eff1f603.au
new file mode 100644
index 0000000..9ed5c43
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f603.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f645.au b/assets/source/voice_clips_data/eff/d1f/eff1f645.au
new file mode 100644
index 0000000..9b59039
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f645.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f670.au b/assets/source/voice_clips_data/eff/d1f/eff1f670.au
new file mode 100644
index 0000000..077a5db
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f670.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f694.au b/assets/source/voice_clips_data/eff/d1f/eff1f694.au
new file mode 100644
index 0000000..6514e73
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f694.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f6ab.au b/assets/source/voice_clips_data/eff/d1f/eff1f6ab.au
new file mode 100644
index 0000000..8d596f8
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f6ab.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f6c3.au b/assets/source/voice_clips_data/eff/d1f/eff1f6c3.au
new file mode 100644
index 0000000..978e8cf
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f6c3.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f6fe.au b/assets/source/voice_clips_data/eff/d1f/eff1f6fe.au
new file mode 100644
index 0000000..45adb85
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f6fe.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f701.au b/assets/source/voice_clips_data/eff/d1f/eff1f701.au
new file mode 100644
index 0000000..0e59c74
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f701.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f704.au b/assets/source/voice_clips_data/eff/d1f/eff1f704.au
new file mode 100644
index 0000000..88719ac
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f704.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f718.au b/assets/source/voice_clips_data/eff/d1f/eff1f718.au
new file mode 100644
index 0000000..5c7d2ae
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f718.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f72e.au b/assets/source/voice_clips_data/eff/d1f/eff1f72e.au
new file mode 100644
index 0000000..252a52b
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f72e.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f741.au b/assets/source/voice_clips_data/eff/d1f/eff1f741.au
new file mode 100644
index 0000000..b6302eb
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f741.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f746.au b/assets/source/voice_clips_data/eff/d1f/eff1f746.au
new file mode 100644
index 0000000..6a9d23e
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f746.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f750.au b/assets/source/voice_clips_data/eff/d1f/eff1f750.au
new file mode 100644
index 0000000..64e3925
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f750.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f7ab.au b/assets/source/voice_clips_data/eff/d1f/eff1f7ab.au
new file mode 100644
index 0000000..c88e38b
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f7ab.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f7d2.au b/assets/source/voice_clips_data/eff/d1f/eff1f7d2.au
new file mode 100644
index 0000000..ed3300e
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f7d2.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f7e3.au b/assets/source/voice_clips_data/eff/d1f/eff1f7e3.au
new file mode 100644
index 0000000..534f024
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f7e3.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f7ea.au b/assets/source/voice_clips_data/eff/d1f/eff1f7ea.au
new file mode 100644
index 0000000..55334ab
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f7ea.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f7ec.au b/assets/source/voice_clips_data/eff/d1f/eff1f7ec.au
new file mode 100644
index 0000000..5730520
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f7ec.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f80e.au b/assets/source/voice_clips_data/eff/d1f/eff1f80e.au
new file mode 100644
index 0000000..39abe7f
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f80e.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f856.au b/assets/source/voice_clips_data/eff/d1f/eff1f856.au
new file mode 100644
index 0000000..4cbed91
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f856.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f871.au b/assets/source/voice_clips_data/eff/d1f/eff1f871.au
new file mode 100644
index 0000000..53f87da
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f871.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f934.au b/assets/source/voice_clips_data/eff/d1f/eff1f934.au
new file mode 100644
index 0000000..a378f40
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f934.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f960.au b/assets/source/voice_clips_data/eff/d1f/eff1f960.au
new file mode 100644
index 0000000..52a942d
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f960.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f990.au b/assets/source/voice_clips_data/eff/d1f/eff1f990.au
new file mode 100644
index 0000000..6132343
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f990.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f9a7.au b/assets/source/voice_clips_data/eff/d1f/eff1f9a7.au
new file mode 100644
index 0000000..ac9223c
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f9a7.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f9ad.au b/assets/source/voice_clips_data/eff/d1f/eff1f9ad.au
new file mode 100644
index 0000000..10894d9
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f9ad.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1f9c9.au b/assets/source/voice_clips_data/eff/d1f/eff1f9c9.au
new file mode 100644
index 0000000..df95ebd
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1f9c9.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1fa5a.au b/assets/source/voice_clips_data/eff/d1f/eff1fa5a.au
new file mode 100644
index 0000000..4c4e4af
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1fa5a.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1fa9b.au b/assets/source/voice_clips_data/eff/d1f/eff1fa9b.au
new file mode 100644
index 0000000..c83ce61
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1fa9b.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1fabb.au b/assets/source/voice_clips_data/eff/d1f/eff1fabb.au
new file mode 100644
index 0000000..0849483
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1fabb.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1fada.au b/assets/source/voice_clips_data/eff/d1f/eff1fada.au
new file mode 100644
index 0000000..3568415
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1fada.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1fb17.au b/assets/source/voice_clips_data/eff/d1f/eff1fb17.au
new file mode 100644
index 0000000..13486e9
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1fb17.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1fb3a.au b/assets/source/voice_clips_data/eff/d1f/eff1fb3a.au
new file mode 100644
index 0000000..5d41129
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1fb3a.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1fb46.au b/assets/source/voice_clips_data/eff/d1f/eff1fb46.au
new file mode 100644
index 0000000..d02c6b6
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1fb46.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1fb7a.au b/assets/source/voice_clips_data/eff/d1f/eff1fb7a.au
new file mode 100644
index 0000000..89b1cac
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1fb7a.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1fb9e.au b/assets/source/voice_clips_data/eff/d1f/eff1fb9e.au
new file mode 100644
index 0000000..a28e02d
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1fb9e.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1fbaa.au b/assets/source/voice_clips_data/eff/d1f/eff1fbaa.au
new file mode 100644
index 0000000..f6b294e
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1fbaa.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1fbb2.au b/assets/source/voice_clips_data/eff/d1f/eff1fbb2.au
new file mode 100644
index 0000000..8818466
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1fbb2.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1fbe4.au b/assets/source/voice_clips_data/eff/d1f/eff1fbe4.au
new file mode 100644
index 0000000..5e58685
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1fbe4.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1fc05.au b/assets/source/voice_clips_data/eff/d1f/eff1fc05.au
new file mode 100644
index 0000000..d7caae1
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1fc05.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1fc13.au b/assets/source/voice_clips_data/eff/d1f/eff1fc13.au
new file mode 100644
index 0000000..bc4c108
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1fc13.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1fc46.au b/assets/source/voice_clips_data/eff/d1f/eff1fc46.au
new file mode 100644
index 0000000..87f5090
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1fc46.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1fc54.au b/assets/source/voice_clips_data/eff/d1f/eff1fc54.au
new file mode 100644
index 0000000..d09ed6d
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1fc54.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1fc5d.au b/assets/source/voice_clips_data/eff/d1f/eff1fc5d.au
new file mode 100644
index 0000000..4211ae0
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1fc5d.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1fc6a.au b/assets/source/voice_clips_data/eff/d1f/eff1fc6a.au
new file mode 100644
index 0000000..ff57802
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1fc6a.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1fc96.au b/assets/source/voice_clips_data/eff/d1f/eff1fc96.au
new file mode 100644
index 0000000..0769dbf
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1fc96.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1fcd4.au b/assets/source/voice_clips_data/eff/d1f/eff1fcd4.au
new file mode 100644
index 0000000..09c8d80
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1fcd4.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1fd18.au b/assets/source/voice_clips_data/eff/d1f/eff1fd18.au
new file mode 100644
index 0000000..5e58685
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1fd18.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1fd44.au b/assets/source/voice_clips_data/eff/d1f/eff1fd44.au
new file mode 100644
index 0000000..3429da2
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1fd44.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1fd8b.au b/assets/source/voice_clips_data/eff/d1f/eff1fd8b.au
new file mode 100644
index 0000000..733c269
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1fd8b.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1fdac.au b/assets/source/voice_clips_data/eff/d1f/eff1fdac.au
new file mode 100644
index 0000000..c1cd0e2
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1fdac.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1fe33.au b/assets/source/voice_clips_data/eff/d1f/eff1fe33.au
new file mode 100644
index 0000000..8a6e018
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1fe33.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1fe56.au b/assets/source/voice_clips_data/eff/d1f/eff1fe56.au
new file mode 100644
index 0000000..45adb85
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1fe56.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1fe7a.au b/assets/source/voice_clips_data/eff/d1f/eff1fe7a.au
new file mode 100644
index 0000000..81461c6
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1fe7a.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1fed9.au b/assets/source/voice_clips_data/eff/d1f/eff1fed9.au
new file mode 100644
index 0000000..a80cf58
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1fed9.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1fee1.au b/assets/source/voice_clips_data/eff/d1f/eff1fee1.au
new file mode 100644
index 0000000..4e9b828
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1fee1.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1fee3.au b/assets/source/voice_clips_data/eff/d1f/eff1fee3.au
new file mode 100644
index 0000000..79326df
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1fee3.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1ff38.au b/assets/source/voice_clips_data/eff/d1f/eff1ff38.au
new file mode 100644
index 0000000..3ef7612
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1ff38.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1ffae.au b/assets/source/voice_clips_data/eff/d1f/eff1ffae.au
new file mode 100644
index 0000000..a5b9935
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1ffae.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1ffd2.au b/assets/source/voice_clips_data/eff/d1f/eff1ffd2.au
new file mode 100644
index 0000000..cf6b917
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1ffd2.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1ffde.au b/assets/source/voice_clips_data/eff/d1f/eff1ffde.au
new file mode 100644
index 0000000..2cbde75
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1ffde.au differ
diff --git a/assets/source/voice_clips_data/eff/d1f/eff1fff5.au b/assets/source/voice_clips_data/eff/d1f/eff1fff5.au
new file mode 100644
index 0000000..10894d9
Binary files /dev/null and b/assets/source/voice_clips_data/eff/d1f/eff1fff5.au differ
diff --git a/src/Game.gd b/src/Game.gd
index 574e96d..1e40f67 100644
--- a/src/Game.gd
+++ b/src/Game.gd
@@ -36,6 +36,15 @@ var reinforcements = null
var reinforcements_size = 0
var reinforcements_coords = []
+const on_ai_lose_piece = {
+ 50: "/root/Game/Huh",
+ 75: "/root/Game/StopThat",
+ 90: "/root/Game/Yammering",
+}
+const on_player_lose_piece = {
+ 75: "/root/Game/Hehe",
+ 90: "/root/Game/Dust",
+}
const piece_types = {
"pawn": "res://src/pieces/Pawn.tscn",
"rook": "res://src/pieces/Rook.tscn",
@@ -267,6 +276,7 @@ func _on_quit_game_pressed():
get_tree().quit()
func reset_game_state():
+ get_node("/root/Game/EndSong").stop()
self.is_player_turn = true
self.turn = 0
for p in get_tree().get_nodes_in_group("pieces"):
@@ -405,6 +415,7 @@ func _on_new_turn():
self.reinforcements = 2 # 2 turns away
self.reinforcements_size = 4
get_node("BottomBar/Help").set_text("Multiple opponent reinforcements detected inbound")
+ get_node("/root/Game/ThinkYouCan").play()
self.flash_help = 3
if self.reinforcements == null and not just_spawned:
var chance = lerp(0, 50, 1 - float(opponent_pieces.size())/16.0)
@@ -438,9 +449,11 @@ func _process(delta):
player_victory = true
get_node("/root/Game/TopBar/Bottom/Instruction").set_text("Game over")
if not player_victory:
+ get_node("/root/Game/EndSong").play()
get_node("/root/Game/BottomBar/Help").set_text("Unsurprisingly, the result was known before-hand.")
else:
get_node("/root/Game/BottomBar/Help").set_text("Well, I'll be damned. I didn't think this would happen!")
+ get_node("/root/Game/Impossible").play()
# Show a popup for new one, or quit
self._on_escape(true)
if self.current_state == 1:
@@ -459,6 +472,15 @@ func _process(delta):
if target_square['piece'] != null:
# @TODO If the target doesn't die, we need to bounce back
target_square['piece'].queue_free()
+ var c = self.rng.randi() % 100
+ var index_to_play = null
+ for idx in self.on_player_lose_piece.keys():
+ if c < idx:
+ break
+ index_to_play = idx
+ if index_to_play != null:
+ print("ai loss Chance to play: ", c, " got index ", index_to_play)
+ get_node(self.on_player_lose_piece[index_to_play]).play()
var square = square_of_piece(self.ai_piece)
square['piece'] = null
target_square['piece'] = self.ai_piece
@@ -532,6 +554,15 @@ func _physics_process(delta):
if dest_square['piece'] != null:
# @TODO If the target doesn't die, we need to bounce back
dest_square['piece'].queue_free()
+ var c = self.rng.randi() % 100
+ var index_to_play = null
+ for idx in self.on_ai_lose_piece.keys():
+ if c < idx:
+ break
+ index_to_play = idx;
+ if index_to_play != null:
+ print("ai loss Chance to play: ", c, " got index ", index_to_play)
+ get_node(self.on_ai_lose_piece[index_to_play]).play()
square['piece'] = null
dest_square['piece'] = piece
piece.set_position(Vector2(dest_square['x']*128, dest_square['y']*128))
@@ -545,3 +576,35 @@ func _physics_process(delta):
self.landing_piece = null
+
+
+func _on_EndSong_finished():
+ get_node("/root/Game/EndSong").stop()
+
+
+func _on_Yammering_finished():
+ get_node("/root/Game/Yammering").stop()
+
+
+func _on_Dust_finished():
+ get_node("/root/Game/Dust").stop()
+
+
+func _on_ThinkYouCan_finished():
+ get_node("/root/Game/ThinkYouCan").stop()
+
+
+func _on_Impossible_finished():
+ get_node("/root/Game/Impossible").stop()
+
+
+func _on_Hehe_finished():
+ get_node("/root/Game/Hehe").stop()
+
+
+func _on_Huh_finished():
+ get_node("/root/Game/Huh").stop()
+
+
+func _on_StopThat_finished():
+ get_node("/root/Game/StopThat").stop()
diff --git a/src/Game.tscn b/src/Game.tscn
index 67bb0ab..9635881 100644
--- a/src/Game.tscn
+++ b/src/Game.tscn
@@ -1,10 +1,18 @@
-[gd_scene load_steps=7 format=2]
+[gd_scene load_steps=15 format=2]
[ext_resource path="res://src/Game.gd" type="Script" id=1]
[ext_resource path="res://src/Playfield.tscn" type="PackedScene" id=2]
[ext_resource path="res://src/large font.tres" type="DynamicFont" id=3]
[ext_resource path="res://assets/source/Bitstream Vera Sans Mono Bold Nerd Font Complete.ttf" type="DynamicFontData" id=4]
[ext_resource path="res://src/EndMenu.tscn" type="PackedScene" id=5]
+[ext_resource path="res://assets/export/end_song.ogg" type="AudioStream" id=6]
+[ext_resource path="res://assets/export/impossible.wav" type="AudioStream" id=7]
+[ext_resource path="res://assets/export/thinkyoucan.wav" type="AudioStream" id=8]
+[ext_resource path="res://assets/export/yammering.wav" type="AudioStream" id=9]
+[ext_resource path="res://assets/export/stop_that.wav" type="AudioStream" id=10]
+[ext_resource path="res://assets/export/huh.wav" type="AudioStream" id=11]
+[ext_resource path="res://assets/export/dust.wav" type="AudioStream" id=12]
+[ext_resource path="res://assets/export/hehe.wav" type="AudioStream" id=13]
[sub_resource type="DynamicFont" id=1]
size = 24
@@ -98,3 +106,37 @@ valign = 1
[node name="EndMenu" parent="." instance=ExtResource( 5 )]
visible = true
+
+[node name="EndSong" type="AudioStreamPlayer" parent="."]
+stream = ExtResource( 6 )
+volume_db = 4.0
+autoplay = true
+
+[node name="Yammering" type="AudioStreamPlayer" parent="."]
+stream = ExtResource( 9 )
+
+[node name="Dust" type="AudioStreamPlayer" parent="."]
+stream = ExtResource( 12 )
+
+[node name="ThinkYouCan" type="AudioStreamPlayer" parent="."]
+stream = ExtResource( 8 )
+
+[node name="Impossible" type="AudioStreamPlayer" parent="."]
+stream = ExtResource( 7 )
+
+[node name="Hehe" type="AudioStreamPlayer" parent="."]
+stream = ExtResource( 13 )
+
+[node name="Huh" type="AudioStreamPlayer" parent="."]
+stream = ExtResource( 11 )
+
+[node name="StopThat" type="AudioStreamPlayer" parent="."]
+stream = ExtResource( 10 )
+[connection signal="finished" from="EndSong" to="." method="_on_EndSong_finished"]
+[connection signal="finished" from="Yammering" to="." method="_on_Yammering_finished"]
+[connection signal="finished" from="Dust" to="." method="_on_Dust_finished"]
+[connection signal="finished" from="ThinkYouCan" to="." method="_on_ThinkYouCan_finished"]
+[connection signal="finished" from="Impossible" to="." method="_on_Impossible_finished"]
+[connection signal="finished" from="Hehe" to="." method="_on_Hehe_finished"]
+[connection signal="finished" from="Huh" to="." method="_on_Huh_finished"]
+[connection signal="finished" from="StopThat" to="." method="_on_StopThat_finished"]