Entire project
BIN
res/audio/chiptune1.wav
Normal file
BIN
res/audio/chiptune2.wav
Normal file
BIN
res/audio/fretnoise.wav
Normal file
BIN
res/audio/medieval.wav
Normal file
BIN
res/audio/medievalharp.wav
Normal file
BIN
res/audio/medievalsynth.wav
Normal file
BIN
res/audio/menu.wav
Normal file
1
res/audio/samples.ceol
Normal file
BIN
res/img/fruit.png
Normal file
After Width: | Height: | Size: 217 B |
BIN
res/img/letters/a.png
Normal file
After Width: | Height: | Size: 247 B |
BIN
res/img/letters/b.png
Normal file
After Width: | Height: | Size: 244 B |
BIN
res/img/letters/c.png
Normal file
After Width: | Height: | Size: 243 B |
BIN
res/img/letters/d.png
Normal file
After Width: | Height: | Size: 257 B |
BIN
res/img/letters/e.png
Normal file
After Width: | Height: | Size: 243 B |
BIN
res/img/letters/f.png
Normal file
After Width: | Height: | Size: 229 B |
BIN
res/img/letters/g.png
Normal file
After Width: | Height: | Size: 248 B |
BIN
res/img/letters/h.png
Normal file
After Width: | Height: | Size: 260 B |
BIN
res/img/letters/i.png
Normal file
After Width: | Height: | Size: 234 B |
BIN
res/img/letters/j.png
Normal file
After Width: | Height: | Size: 252 B |
BIN
res/img/letters/k.png
Normal file
After Width: | Height: | Size: 259 B |
BIN
res/img/letters/l.png
Normal file
After Width: | Height: | Size: 236 B |
BIN
res/img/letters/m.png
Normal file
After Width: | Height: | Size: 249 B |
BIN
res/img/letters/n.png
Normal file
After Width: | Height: | Size: 252 B |
BIN
res/img/letters/o.png
Normal file
After Width: | Height: | Size: 244 B |
BIN
res/img/letters/q.png
Normal file
After Width: | Height: | Size: 249 B |
BIN
res/img/letters/r.png
Normal file
After Width: | Height: | Size: 253 B |
BIN
res/img/letters/s.png
Normal file
After Width: | Height: | Size: 239 B |
BIN
res/img/letters/t.png
Normal file
After Width: | Height: | Size: 220 B |
BIN
res/img/letters/v.png
Normal file
After Width: | Height: | Size: 264 B |
BIN
res/img/letters/w.png
Normal file
After Width: | Height: | Size: 250 B |
BIN
res/img/letters/x.png
Normal file
After Width: | Height: | Size: 258 B |
BIN
res/img/letters/y.png
Normal file
After Width: | Height: | Size: 247 B |
BIN
res/img/letters/z.png
Normal file
After Width: | Height: | Size: 249 B |
BIN
res/img/toxin.png
Normal file
After Width: | Height: | Size: 525 B |
19
res/levels/all/countdown.fx
Normal file
|
@ -0,0 +1,19 @@
|
|||
3
|
||||
|
||||
1 false true 1 1
|
||||
0 1 1 1
|
||||
0 1 0.3 1
|
||||
0 1 1 0.25
|
||||
0 0 0 0.25
|
||||
|
||||
1 false true 1 1
|
||||
60 1 1 1
|
||||
0 0 0 1
|
||||
60 1 1 0.25
|
||||
0 0 0 0.25
|
||||
|
||||
1 false true 1 1
|
||||
120 1 1 1
|
||||
0 0 0 1
|
||||
120 1 1 0.25
|
||||
0 0 0 0.25
|
7
res/levels/all/defeat.fx
Normal file
|
@ -0,0 +1,7 @@
|
|||
1
|
||||
|
||||
3 true true 2 0.5
|
||||
0.7 0 0 1
|
||||
0.3 0 0 1
|
||||
0.7 0 0 1
|
||||
0.3 0 0 1
|
BIN
res/levels/all/length.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
7
res/levels/all/next/hovered.fx
Normal file
|
@ -0,0 +1,7 @@
|
|||
1
|
||||
|
||||
3 true true 2 0.5
|
||||
0 1 0 1
|
||||
0 0.5 0 1
|
||||
0 1 0 1
|
||||
0 0.5 0 1
|
BIN
res/levels/all/next/next.png
Normal file
After Width: | Height: | Size: 434 B |
7
res/levels/all/next/pressed.fx
Normal file
|
@ -0,0 +1,7 @@
|
|||
1
|
||||
|
||||
3 true true 2 0.5
|
||||
0 0.4 0 1
|
||||
0 0.2 0 1
|
||||
0 0.4 0 1
|
||||
0 0.2 0 1
|
BIN
res/levels/all/next/space.png
Normal file
After Width: | Height: | Size: 451 B |
7
res/levels/all/next/unpressed.fx
Normal file
|
@ -0,0 +1,7 @@
|
|||
1
|
||||
|
||||
3 true true 2 0.5
|
||||
0.8 0.8 0.8 1
|
||||
0.5 1 0.5 1
|
||||
0.8 0.8 0.8 1
|
||||
0.5 1 0.5 1
|
BIN
res/levels/all/one.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
7
res/levels/all/retry/hovered.fx
Normal file
|
@ -0,0 +1,7 @@
|
|||
1
|
||||
|
||||
3 true true 2 0.5
|
||||
1 0 0 1
|
||||
0.5 0 0 1
|
||||
1 0 0 1
|
||||
0.5 0 0 1
|
7
res/levels/all/retry/pressed.fx
Normal file
|
@ -0,0 +1,7 @@
|
|||
1
|
||||
|
||||
3 true true 2 0.5
|
||||
0.4 0 0 1
|
||||
0.2 0 0 1
|
||||
0.4 0 0 1
|
||||
0.2 0 0 1
|
BIN
res/levels/all/retry/retry.png
Normal file
After Width: | Height: | Size: 370 B |
BIN
res/levels/all/retry/space.png
Normal file
After Width: | Height: | Size: 440 B |
7
res/levels/all/retry/unpressed.fx
Normal file
|
@ -0,0 +1,7 @@
|
|||
1
|
||||
|
||||
3 true true 2 0.5
|
||||
0.8 0.8 0.8 1
|
||||
1 0.5 0.5 1
|
||||
0.8 0.8 0.8 1
|
||||
1 0.5 0.5 1
|
BIN
res/levels/all/speed.png
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
res/levels/all/three.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
res/levels/all/two.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
13
res/levels/all/victory.fx
Normal file
|
@ -0,0 +1,13 @@
|
|||
2
|
||||
|
||||
0.75 false false 0 1
|
||||
60 1 1 1
|
||||
60 1 1 1
|
||||
72 1 0.5 1
|
||||
36 1 0.5 1
|
||||
|
||||
0.25 false false 0 1
|
||||
72 1 0.5 1
|
||||
36 1 0.5 1
|
||||
60 1 1 1
|
||||
60 1 1 1
|
2
res/levels/level1/data.prop
Normal file
|
@ -0,0 +1,2 @@
|
|||
8
|
||||
5
|
7
res/levels/level1/effect.fx
Normal file
|
@ -0,0 +1,7 @@
|
|||
1
|
||||
|
||||
2 true true 0.5 2
|
||||
0 1 1 1
|
||||
1 0 0 1
|
||||
0 1 1 1
|
||||
1 0 0 1
|
BIN
res/levels/level1/level.png
Normal file
After Width: | Height: | Size: 978 B |
BIN
res/levels/level1/music.wav
Normal file
2
res/levels/level2/data.prop
Normal file
|
@ -0,0 +1,2 @@
|
|||
8
|
||||
20
|
7
res/levels/level2/effect.fx
Normal file
|
@ -0,0 +1,7 @@
|
|||
1
|
||||
|
||||
2 true true 0.5 2
|
||||
0.6666 0 1 1
|
||||
1 0.5 0 1
|
||||
0.6666 0 1 1
|
||||
1 0.5 0 1
|
BIN
res/levels/level2/level.png
Normal file
After Width: | Height: | Size: 726 B |
BIN
res/levels/level2/music.wav
Normal file
2
res/levels/level3/data.prop
Normal file
|
@ -0,0 +1,2 @@
|
|||
8
|
||||
10
|
7
res/levels/level3/effect.fx
Normal file
|
@ -0,0 +1,7 @@
|
|||
1
|
||||
|
||||
10 false false 0 1
|
||||
0 0.75 0.5 1
|
||||
0 0.75 0.5 1
|
||||
360 0.75 0.5 1
|
||||
360 0.75 0.5 1
|
BIN
res/levels/level3/level.png
Normal file
After Width: | Height: | Size: 1 KiB |
BIN
res/levels/level3/music.wav
Normal file
2
res/levels/level4/data.prop
Normal file
|
@ -0,0 +1,2 @@
|
|||
5
|
||||
10
|
7
res/levels/level4/effect.fx
Normal file
|
@ -0,0 +1,7 @@
|
|||
1
|
||||
|
||||
4 false false 1 1
|
||||
0 1 1 1
|
||||
360 1 1 1
|
||||
0 1 1 1
|
||||
360 1 1 1
|
BIN
res/levels/level4/level.png
Normal file
After Width: | Height: | Size: 592 B |
BIN
res/levels/level4/music.wav
Normal file
2
res/menu/data.prop
Normal file
|
@ -0,0 +1,2 @@
|
|||
6
|
||||
5
|
7
res/menu/effect.fx
Normal file
|
@ -0,0 +1,7 @@
|
|||
1
|
||||
|
||||
4 false false 1 1
|
||||
0 0.5 0.1 1
|
||||
360 0.5 0.1 1
|
||||
0 0.5 0.1 1
|
||||
360 0.5 0.1 1
|
7
res/menu/hovered.fx
Normal file
|
@ -0,0 +1,7 @@
|
|||
1
|
||||
|
||||
2 false true -1 1
|
||||
40 1 1 1
|
||||
0 1 1 1
|
||||
40 1 1 1
|
||||
0 1 1 1
|
BIN
res/menu/level.png
Normal file
After Width: | Height: | Size: 668 B |
7
res/menu/logo.fx
Normal file
|
@ -0,0 +1,7 @@
|
|||
1
|
||||
|
||||
3 false true 1 1
|
||||
130 1 0.75 1
|
||||
170 1 0.15 1
|
||||
130 1 0.75 1
|
||||
170 1 0.15 1
|
BIN
res/menu/logo.png
Normal file
After Width: | Height: | Size: 645 B |
BIN
res/menu/music.wav
Normal file
BIN
res/menu/play.png
Normal file
After Width: | Height: | Size: 349 B |
7
res/menu/pressed.fx
Normal file
|
@ -0,0 +1,7 @@
|
|||
1
|
||||
|
||||
2 false true -1 1
|
||||
40 1 0.25 1
|
||||
0 1 0.25 1
|
||||
40 1 0.25 1
|
||||
0 1 0.25 1
|
13
res/shaders/s2a/frag.gls
Normal file
|
@ -0,0 +1,13 @@
|
|||
#version 330 core
|
||||
|
||||
uniform sampler2D sampler;
|
||||
|
||||
in vec2 texCoords;
|
||||
|
||||
out vec4 color;
|
||||
|
||||
void main() {
|
||||
color = texture(sampler, texCoords);
|
||||
if(color.a == 0)
|
||||
discard;
|
||||
}
|
15
res/shaders/s2a/vert.gls
Normal file
|
@ -0,0 +1,15 @@
|
|||
#version 330 core
|
||||
|
||||
uniform mat4 mvp;
|
||||
|
||||
uniform vec2 animProps; // Loc 0 - Frame Width, Loc 1 - Offset
|
||||
|
||||
layout (location = 0) in vec3 vertices;
|
||||
layout (location = 1) in vec2 iTexCoords;
|
||||
|
||||
out vec2 texCoords;
|
||||
|
||||
void main() {
|
||||
texCoords = vec2(((iTexCoords.x * animProps.x) + animProps.y), iTexCoords.y);
|
||||
gl_Position = mvp * vec4(vertices, 1.0);
|
||||
}
|
9
res/shaders/s2c/frag.gls
Normal file
|
@ -0,0 +1,9 @@
|
|||
#version 330 core
|
||||
|
||||
uniform vec4 iColor = vec4(0, 0.6, 0.9, 1);
|
||||
|
||||
out vec4 color;
|
||||
|
||||
void main() {
|
||||
color = iColor;
|
||||
}
|
9
res/shaders/s2c/vert.gls
Normal file
|
@ -0,0 +1,9 @@
|
|||
#version 330 core
|
||||
|
||||
uniform mat4 mvp;
|
||||
|
||||
layout (location = 0) in vec3 vertices;
|
||||
|
||||
void main() {
|
||||
gl_Position = mvp * vec4(vertices, 1);
|
||||
}
|
46
res/shaders/s2le/frag.gls
Normal file
|
@ -0,0 +1,46 @@
|
|||
#version 330 core
|
||||
|
||||
uniform sampler2D sampler;
|
||||
|
||||
uniform vec4 color1 = vec4(0, 1, 1, 1);
|
||||
uniform vec4 color2 = vec4(0, 0, 1, 1);
|
||||
uniform float time = 0, freq = 1;
|
||||
uniform bool rgb = true, loop = false, textured = false;
|
||||
|
||||
in vec2 iTexCoords;
|
||||
in float percent;
|
||||
|
||||
out vec4 color;
|
||||
|
||||
vec4 hsvToRgb(vec4 hsva);
|
||||
|
||||
void main() {
|
||||
vec4 tcolor;
|
||||
if(textured)
|
||||
tcolor = texture(sampler, iTexCoords);
|
||||
if(!textured || tcolor.xyz == vec3(1, 1, 1)) {
|
||||
float finalPercent = mod((percent + time) * freq, 1);
|
||||
if(loop) {
|
||||
if(finalPercent > 0.5)
|
||||
finalPercent = 1 - finalPercent;
|
||||
finalPercent *= 2;
|
||||
}
|
||||
vec4 interpolated = color1 + (color2 - color1) * finalPercent;
|
||||
if(rgb)
|
||||
color = interpolated;
|
||||
else
|
||||
color = hsvToRgb(interpolated);
|
||||
if(textured)
|
||||
color.w = texture(sampler, iTexCoords).w;
|
||||
}
|
||||
else if(tcolor.w != 0)
|
||||
color = tcolor;
|
||||
else
|
||||
discard;
|
||||
}
|
||||
|
||||
vec4 hsvToRgb(vec4 c) {
|
||||
vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
|
||||
vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
|
||||
return vec4(c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y), c.w);
|
||||
}
|
16
res/shaders/s2le/vert.gls
Normal file
|
@ -0,0 +1,16 @@
|
|||
#version 330 core
|
||||
|
||||
uniform mat4 mvp;
|
||||
|
||||
layout (location = 0) in vec3 vertices;
|
||||
layout (location = 1) in vec2 texCoords;
|
||||
|
||||
out vec2 iTexCoords;
|
||||
out float percent;
|
||||
|
||||
void main() {
|
||||
iTexCoords = texCoords;
|
||||
vec4 position = mvp * vec4(vertices, 1);
|
||||
percent = (position.x + 1) / 4 - (position.y - 1) / 4;
|
||||
gl_Position = position;
|
||||
}
|
11
res/shaders/s2t/frag.gls
Normal file
|
@ -0,0 +1,11 @@
|
|||
#version 330 core
|
||||
|
||||
uniform sampler2D sampler;
|
||||
|
||||
in vec2 texCoords;
|
||||
|
||||
out vec4 color;
|
||||
|
||||
void main() {
|
||||
color = texture(sampler, texCoords);
|
||||
}
|
13
res/shaders/s2t/vert.gls
Normal file
|
@ -0,0 +1,13 @@
|
|||
#version 330 core
|
||||
|
||||
uniform mat4 mvp;
|
||||
|
||||
layout (location = 0) in vec3 vertices;
|
||||
layout (location = 1) in vec2 itexCoords;
|
||||
|
||||
out vec2 texCoords;
|
||||
|
||||
void main() {
|
||||
texCoords = itexCoords;
|
||||
gl_Position = mvp * vec4(vertices, 1);
|
||||
}
|
15
res/shaders/s2x/frag.gls
Normal file
|
@ -0,0 +1,15 @@
|
|||
#version 330 core
|
||||
|
||||
uniform vec4 iColor;
|
||||
|
||||
uniform sampler2D sampler;
|
||||
|
||||
in vec2 texCoords;
|
||||
|
||||
out vec4 color;
|
||||
|
||||
void main() {
|
||||
color = iColor * texture(sampler, texCoords);
|
||||
if(color.a == 0)
|
||||
discard;
|
||||
}
|
15
res/shaders/s2x/vert.gls
Normal file
|
@ -0,0 +1,15 @@
|
|||
#version 330 core
|
||||
|
||||
uniform mat4 mvp;
|
||||
|
||||
uniform vec2 character;
|
||||
|
||||
layout (location = 0) in vec3 vertices;
|
||||
layout (location = 1) in vec2 iTexCoords;
|
||||
|
||||
out vec2 texCoords;
|
||||
|
||||
void main() {
|
||||
texCoords = iTexCoords + character;
|
||||
gl_Position = mvp * vec4(vertices, 1.0);
|
||||
}
|