diff --git a/data/config/balloon_formations.txt b/data/config/balloon_formations.txt index f870303..f64a6b5 100644 --- a/data/config/balloon_formations.txt +++ b/data/config/balloon_formations.txt @@ -3,275 +3,275 @@ # Variables disponibles: # X1_0, X1_50, X1_100, X2_0, X2_100, X3_0, X3_100, X4_0, X4_100 # QUARTER1_X4, QUARTER3_X4, DEFAULT_POS_Y -# BALLOON_SIZE_0, BALLOON_SIZE_1, BALLOON_SIZE_2, BALLOON_SIZE_3 +# SIZE_0, SIZE_1, SIZE_2, SIZE_3 # RIGHT, LEFT formation: 0 -# Dos enemigos BALLOON4 uno a cada extremo -X4_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE4, 0 -X4_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE4, 0 +# Dos enemigos BALLOON3 uno a cada extremo +X4_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_3, 0 +X4_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_3, 0 formation: 1 -# Dos enemigos BALLOON4 uno a cada cuarto. Ambos van hacia el centro -QUARTER1_X4, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE4, 0 -QUARTER3_X4, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE4, 0 +# Dos enemigos BALLOON3 uno a cada cuarto. Ambos van hacia el centro +QUARTER1_X4, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_3, 0 +QUARTER3_X4, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_3, 0 formation: 2 -# Cuatro enemigos BALLOON2 uno detrás del otro. A la izquierda y hacia el centro -X2_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE2, 30 -X2_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE2, 20 -X2_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE2, 10 -X2_0, 3, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE2, 0 +# Cuatro enemigos BALLOON1 uno detrás del otro. A la izquierda y hacia el centro +X2_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_1, 30 +X2_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_1, 20 +X2_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_1, 10 +X2_0, 3, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_1, 0 formation: 3 -# Cuatro enemigos BALLOON2 uno detrás del otro. A la derecha y hacia el centro -X2_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE2, 30 -X2_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, SIZE2, 20 -X2_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, SIZE2, 10 -X2_100, -3, DEFAULT_POS_Y, LEFT, BALLOON, SIZE2, 0 +# Cuatro enemigos BALLOON1 uno detrás del otro. A la derecha y hacia el centro +X2_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_1, 30 +X2_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_1, 20 +X2_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_1, 10 +X2_100, -3, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_1, 0 formation: 4 -# Tres enemigos BALLOON3. 0, 25, 50. Hacia la derecha -X3_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE3, 20 -X3_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE3, 10 -X3_0, 4, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE3, 0 +# Tres enemigos BALLOON2. 0, 25, 50. Hacia la derecha +X3_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_2, 20 +X3_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_2, 10 +X3_0, 4, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_2, 0 formation: 5 -# Tres enemigos BALLOON3. 50, 75, 100. Hacia la izquierda -X3_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE3, 20 -X3_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, SIZE3, 10 -X3_100, -4, DEFAULT_POS_Y, LEFT, BALLOON, SIZE3, 0 +# Tres enemigos BALLOON2. 50, 75, 100. Hacia la izquierda +X3_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_2, 20 +X3_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_2, 10 +X3_100, -4, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_2, 0 formation: 6 -# Tres enemigos BALLOON3. 0, 0, 0. Hacia la derecha -X3_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE3, 20 -X3_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE3, 10 -X3_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE3, 0 +# Tres enemigos BALLOON2. 0, 0, 0. Hacia la derecha +X3_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_2, 20 +X3_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_2, 10 +X3_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_2, 0 formation: 7 -# Tres enemigos BALLOON3. 100, 100, 100. Hacia la izquierda -X3_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE3, 20 -X3_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, SIZE3, 10 -X3_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, SIZE3, 0 +# Tres enemigos BALLOON2. 100, 100, 100. Hacia la izquierda +X3_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_2, 20 +X3_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_2, 10 +X3_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_2, 0 formation: 8 -# Seis enemigos BALLOON1. 0, 0, 0, 0, 0, 0. Hacia la derecha -X1_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 50 -X1_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 40 -X1_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 30 -X1_0, 3, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 20 -X1_0, 4, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 10 -X1_0, 5, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 0 +# Seis enemigos BALLOON0. 0, 0, 0, 0, 0, 0. Hacia la derecha +X1_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 50 +X1_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 40 +X1_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 30 +X1_0, 3, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 20 +X1_0, 4, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 10 +X1_0, 5, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 0 formation: 9 -# Seis enemigos BALLOON1. 100, 100, 100, 100, 100, 100. Hacia la izquierda -X1_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 50 -X1_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 40 -X1_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 30 -X1_100, -3, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 20 -X1_100, -4, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 10 -X1_100, -5, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 0 +# Seis enemigos BALLOON0. 100, 100, 100, 100, 100, 100. Hacia la izquierda +X1_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 50 +X1_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 40 +X1_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 30 +X1_100, -3, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 20 +X1_100, -4, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 10 +X1_100, -5, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 0 formation: 10 -# Tres enemigos BALLOON4 seguidos desde la izquierda. Hacia la derecha -X4_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE4, 30 -X4_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE4, 15 -X4_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE4, 0 +# Tres enemigos BALLOON3 seguidos desde la izquierda. Hacia la derecha +X4_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_3, 30 +X4_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_3, 15 +X4_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_3, 0 formation: 11 -# Tres enemigos BALLOON4 seguidos desde la derecha. Hacia la izquierda -X4_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE4, 30 -X4_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, SIZE4, 15 -X4_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, SIZE4, 0 +# Tres enemigos BALLOON3 seguidos desde la derecha. Hacia la izquierda +X4_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_3, 30 +X4_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_3, 15 +X4_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_3, 0 formation: 12 -# Seis enemigos BALLOON2 uno detrás del otro. A la izquierda y hacia el centro -X2_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE2, 50 -X2_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE2, 40 -X2_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE2, 30 -X2_0, 3, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE2, 20 -X2_0, 4, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE2, 10 -X2_0, 5, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE2, 0 +# Seis enemigos BALLOON1 uno detrás del otro. A la izquierda y hacia el centro +X2_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_1, 50 +X2_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_1, 40 +X2_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_1, 30 +X2_0, 3, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_1, 20 +X2_0, 4, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_1, 10 +X2_0, 5, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_1, 0 formation: 13 -# Seis enemigos BALLOON2 uno detrás del otro. A la derecha y hacia el centro -X2_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE2, 50 -X2_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, SIZE2, 40 -X2_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, SIZE2, 30 -X2_100, -3, DEFAULT_POS_Y, LEFT, BALLOON, SIZE2, 20 -X2_100, -4, DEFAULT_POS_Y, LEFT, BALLOON, SIZE2, 10 -X2_100, -5, DEFAULT_POS_Y, LEFT, BALLOON, SIZE2, 0 +# Seis enemigos BALLOON1 uno detrás del otro. A la derecha y hacia el centro +X2_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_1, 50 +X2_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_1, 40 +X2_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_1, 30 +X2_100, -3, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_1, 20 +X2_100, -4, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_1, 10 +X2_100, -5, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_1, 0 formation: 14 -# Cinco enemigos BALLOON3. Hacia la derecha. Separados -X3_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE3, 40 -X3_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE3, 30 -X3_0, 4, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE3, 20 -X3_0, 6, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE3, 10 -X3_0, 8, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE3, 0 +# Cinco enemigos BALLOON2. Hacia la derecha. Separados +X3_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_2, 40 +X3_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_2, 30 +X3_0, 4, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_2, 20 +X3_0, 6, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_2, 10 +X3_0, 8, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_2, 0 formation: 15 -# Cinco enemigos BALLOON3. Hacia la izquierda. Separados -X3_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE3, 40 -X3_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, SIZE3, 30 -X3_100, -4, DEFAULT_POS_Y, LEFT, BALLOON, SIZE3, 20 -X3_100, -6, DEFAULT_POS_Y, LEFT, BALLOON, SIZE3, 10 -X3_100, -8, DEFAULT_POS_Y, LEFT, BALLOON, SIZE3, 0 +# Cinco enemigos BALLOON2. Hacia la izquierda. Separados +X3_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_2, 40 +X3_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_2, 30 +X3_100, -4, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_2, 20 +X3_100, -6, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_2, 10 +X3_100, -8, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_2, 0 formation: 16 -# Cinco enemigos BALLOON3. Hacia la derecha. Juntos -X3_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE3, 40 -X3_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE3, 30 -X3_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE3, 20 -X3_0, 3, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE3, 10 -X3_0, 4, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE3, 0 +# Cinco enemigos BALLOON2. Hacia la derecha. Juntos +X3_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_2, 40 +X3_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_2, 30 +X3_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_2, 20 +X3_0, 3, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_2, 10 +X3_0, 4, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_2, 0 formation: 17 -# Cinco enemigos BALLOON3. Hacia la izquierda. Juntos -X3_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE3, 40 -X3_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, SIZE3, 30 -X3_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, SIZE3, 20 -X3_100, -3, DEFAULT_POS_Y, LEFT, BALLOON, SIZE3, 10 -X3_100, -4, DEFAULT_POS_Y, LEFT, BALLOON, SIZE3, 0 +# Cinco enemigos BALLOON2. Hacia la izquierda. Juntos +X3_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_2, 40 +X3_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_2, 30 +X3_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_2, 20 +X3_100, -3, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_2, 10 +X3_100, -4, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_2, 0 formation: 18 -# Doce enemigos BALLOON1. Hacia la derecha. Juntos -X1_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 110 -X1_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 100 -X1_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 90 -X1_0, 3, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 80 -X1_0, 4, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 70 -X1_0, 5, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 60 -X1_0, 6, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 50 -X1_0, 7, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 40 -X1_0, 8, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 30 -X1_0, 9, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 20 -X1_0, 10, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 10 -X1_0, 11, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 0 +# Doce enemigos BALLOON0. Hacia la derecha. Juntos +X1_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 110 +X1_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 100 +X1_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 90 +X1_0, 3, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 80 +X1_0, 4, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 70 +X1_0, 5, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 60 +X1_0, 6, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 50 +X1_0, 7, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 40 +X1_0, 8, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 30 +X1_0, 9, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 20 +X1_0, 10, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 10 +X1_0, 11, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 0 formation: 19 -# Doce enemigos BALLOON1. Hacia la izquierda. Juntos -X1_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 110 -X1_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 100 -X1_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 90 -X1_100, -3, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 80 -X1_100, -4, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 70 -X1_100, -5, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 60 -X1_100, -6, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 50 -X1_100, -7, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 40 -X1_100, -8, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 30 -X1_100, -9, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 20 -X1_100, -10, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 10 -X1_100, -11, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 0 +# Doce enemigos BALLOON0. Hacia la izquierda. Juntos +X1_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 110 +X1_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 100 +X1_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 90 +X1_100, -3, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 80 +X1_100, -4, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 70 +X1_100, -5, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 60 +X1_100, -6, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 50 +X1_100, -7, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 40 +X1_100, -8, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 30 +X1_100, -9, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 20 +X1_100, -10, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 10 +X1_100, -11, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 0 formation: 20 -# Cuatro enemigos BALLOON4 seguidos desde la izquierda/derecha. Simétricos -X4_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE4, 0 -X4_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE4, 0 -X4_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE4, 0 -X4_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, SIZE4, 0 +# Cuatro enemigos BALLOON3 seguidos desde la izquierda/derecha. Simétricos +X4_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_3, 0 +X4_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_3, 0 +X4_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_3, 0 +X4_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_3, 0 formation: 21 -# Diez enemigos BALLOON2 uno detrás del otro. Izquierda/derecha. Simétricos -X2_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE2, 12 -X2_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE2, 9 -X2_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE2, 6 -X2_0, 3, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE2, 3 -X2_0, 4, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE2, 0 -X2_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE2, 12 -X2_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, SIZE2, 9 -X2_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, SIZE2, 6 -X2_100, -3, DEFAULT_POS_Y, LEFT, BALLOON, SIZE2, 3 -X2_100, -4, DEFAULT_POS_Y, LEFT, BALLOON, SIZE2, 0 +# Diez enemigos BALLOON1 uno detrás del otro. Izquierda/derecha. Simétricos +X2_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_1, 12 +X2_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_1, 9 +X2_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_1, 6 +X2_0, 3, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_1, 3 +X2_0, 4, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_1, 0 +X2_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_1, 12 +X2_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_1, 9 +X2_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_1, 6 +X2_100, -3, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_1, 3 +X2_100, -4, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_1, 0 formation: 22 -# Diez enemigos BALLOON3. Hacia la derecha/izquierda. Separados. Simétricos -X3_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE3, 40 -X3_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE3, 30 -X3_0, 4, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE3, 20 -X3_0, 6, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE3, 10 -X3_0, 8, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE3, 0 -X3_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE3, 40 -X3_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, SIZE3, 30 -X3_100, -4, DEFAULT_POS_Y, LEFT, BALLOON, SIZE3, 20 -X3_100, -6, DEFAULT_POS_Y, LEFT, BALLOON, SIZE3, 10 -X3_100, -8, DEFAULT_POS_Y, LEFT, BALLOON, SIZE3, 0 +# Diez enemigos BALLOON2. Hacia la derecha/izquierda. Separados. Simétricos +X3_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_2, 40 +X3_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_2, 30 +X3_0, 4, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_2, 20 +X3_0, 6, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_2, 10 +X3_0, 8, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_2, 0 +X3_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_2, 40 +X3_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_2, 30 +X3_100, -4, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_2, 20 +X3_100, -6, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_2, 10 +X3_100, -8, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_2, 0 formation: 23 -# Diez enemigos BALLOON3. Hacia la derecha. Juntos. Simétricos -X3_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE3, 40 -X3_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE3, 30 -X3_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE3, 20 -X3_0, 3, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE3, 10 -X3_0, 4, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE3, 0 -X3_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE3, 40 -X3_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, SIZE3, 30 -X3_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, SIZE3, 20 -X3_100, -3, DEFAULT_POS_Y, LEFT, BALLOON, SIZE3, 10 -X3_100, -4, DEFAULT_POS_Y, LEFT, BALLOON, SIZE3, 0 +# Diez enemigos BALLOON2. Hacia la derecha. Juntos. Simétricos +X3_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_2, 40 +X3_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_2, 30 +X3_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_2, 20 +X3_0, 3, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_2, 10 +X3_0, 4, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_2, 0 +X3_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_2, 40 +X3_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_2, 30 +X3_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_2, 20 +X3_100, -3, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_2, 10 +X3_100, -4, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_2, 0 formation: 24 -# Treinta enemigos BALLOON1. Del centro hacia los extremos. Juntos. Simétricos -X1_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 0 -X1_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 5 -X1_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 10 -X1_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 15 -X1_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 20 -X1_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 25 -X1_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 30 -X1_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 35 -X1_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 40 -X1_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 45 -X1_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 50 -X1_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 55 -X1_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 60 -X1_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 65 -X1_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 70 -X1_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 0 -X1_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 5 -X1_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 10 -X1_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 15 -X1_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 20 -X1_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 25 -X1_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 30 -X1_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 35 -X1_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 40 -X1_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 45 -X1_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 50 -X1_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 55 -X1_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 60 -X1_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 65 -X1_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 70 +# Treinta enemigos BALLOON0. Del centro hacia los extremos. Juntos. Simétricos +X1_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 0 +X1_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 5 +X1_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 10 +X1_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 15 +X1_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 20 +X1_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 25 +X1_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 30 +X1_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 35 +X1_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 40 +X1_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 45 +X1_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 50 +X1_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 55 +X1_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 60 +X1_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 65 +X1_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 70 +X1_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 0 +X1_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 5 +X1_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 10 +X1_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 15 +X1_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 20 +X1_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 25 +X1_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 30 +X1_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 35 +X1_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 40 +X1_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 45 +X1_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 50 +X1_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 55 +X1_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 60 +X1_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 65 +X1_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 70 formation: 25 -# Treinta enemigos BALLOON1. Del centro hacia adentro. Juntos. Simétricos -X1_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 70 -X1_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 65 -X1_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 60 -X1_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 55 -X1_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 50 -X1_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 45 -X1_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 40 -X1_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 35 -X1_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 30 -X1_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 25 -X1_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 20 -X1_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 15 -X1_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 10 -X1_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 5 -X1_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE1, 0 -X1_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 70 -X1_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 65 -X1_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 60 -X1_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 55 -X1_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 50 -X1_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 45 -X1_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 40 -X1_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 35 -X1_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 30 -X1_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 25 -X1_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 20 -X1_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 15 -X1_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 10 -X1_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 5 -X1_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE1, 0 +# Treinta enemigos BALLOON0. Del centro hacia adentro. Juntos. Simétricos +X1_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 70 +X1_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 65 +X1_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 60 +X1_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 55 +X1_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 50 +X1_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 45 +X1_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 40 +X1_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 35 +X1_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 30 +X1_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 25 +X1_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 20 +X1_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 15 +X1_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 10 +X1_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 5 +X1_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SIZE_0, 0 +X1_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 70 +X1_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 65 +X1_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 60 +X1_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 55 +X1_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 50 +X1_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 45 +X1_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 40 +X1_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 35 +X1_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 30 +X1_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 25 +X1_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 20 +X1_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 15 +X1_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 10 +X1_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 5 +X1_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SIZE_0, 0 diff --git a/data/gfx/balloon/balloon4.ani b/data/gfx/balloon/balloon0.ani similarity index 91% rename from data/gfx/balloon/balloon4.ani rename to data/gfx/balloon/balloon0.ani index 32220b3..aa701fe 100644 --- a/data/gfx/balloon/balloon4.ani +++ b/data/gfx/balloon/balloon0.ani @@ -1,5 +1,5 @@ -frame_width=48 -frame_height=48 +frame_width=10 +frame_height=10 [animation] name=orange diff --git a/data/gfx/balloon/balloon0.png b/data/gfx/balloon/balloon0.png new file mode 100644 index 0000000..d17d16a Binary files /dev/null and b/data/gfx/balloon/balloon0.png differ diff --git a/data/gfx/balloon/balloon1.png b/data/gfx/balloon/balloon1.png index d17d16a..7dfff30 100644 Binary files a/data/gfx/balloon/balloon1.png and b/data/gfx/balloon/balloon1.png differ diff --git a/data/gfx/balloon/balloon2.png b/data/gfx/balloon/balloon2.png index 7dfff30..2eedfb4 100644 Binary files a/data/gfx/balloon/balloon2.png and b/data/gfx/balloon/balloon2.png differ diff --git a/data/gfx/balloon/balloon3.png b/data/gfx/balloon/balloon3.png index 2eedfb4..4e0fadf 100644 Binary files a/data/gfx/balloon/balloon3.png and b/data/gfx/balloon/balloon3.png differ diff --git a/data/gfx/balloon/balloon4.png b/data/gfx/balloon/balloon4.png deleted file mode 100644 index 4e0fadf..0000000 Binary files a/data/gfx/balloon/balloon4.png and /dev/null differ diff --git a/data/gfx/balloon/explosion4.ani b/data/gfx/balloon/explosion0.ani similarity index 72% rename from data/gfx/balloon/explosion4.ani rename to data/gfx/balloon/explosion0.ani index 872dfc4..7206e11 100644 --- a/data/gfx/balloon/explosion4.ani +++ b/data/gfx/balloon/explosion0.ani @@ -1,5 +1,5 @@ -frame_width=48 -frame_height=48 +frame_width=10 +frame_height=10 [animation] name=default diff --git a/data/gfx/balloon/explosion0.png b/data/gfx/balloon/explosion0.png new file mode 100644 index 0000000..30871f0 Binary files /dev/null and b/data/gfx/balloon/explosion0.png differ diff --git a/data/gfx/balloon/explosion1.png b/data/gfx/balloon/explosion1.png index 30871f0..87083d7 100644 Binary files a/data/gfx/balloon/explosion1.png and b/data/gfx/balloon/explosion1.png differ diff --git a/data/gfx/balloon/explosion2.png b/data/gfx/balloon/explosion2.png index 87083d7..552a668 100644 Binary files a/data/gfx/balloon/explosion2.png and b/data/gfx/balloon/explosion2.png differ diff --git a/data/gfx/balloon/explosion3.ani b/data/gfx/balloon/explosion3.ani index feb66e3..872dfc4 100644 --- a/data/gfx/balloon/explosion3.ani +++ b/data/gfx/balloon/explosion3.ani @@ -1,5 +1,5 @@ -frame_width=26 -frame_height=26 +frame_width=48 +frame_height=48 [animation] name=default diff --git a/data/gfx/balloon/explosion3.png b/data/gfx/balloon/explosion3.png index 552a668..06d1653 100644 Binary files a/data/gfx/balloon/explosion3.png and b/data/gfx/balloon/explosion3.png differ diff --git a/data/gfx/balloon/explosion4.png b/data/gfx/balloon/explosion4.png deleted file mode 100644 index 06d1653..0000000 Binary files a/data/gfx/balloon/explosion4.png and /dev/null differ diff --git a/data/sound/bubble1.wav b/data/sound/balloon_bounce0.wav similarity index 100% rename from data/sound/bubble1.wav rename to data/sound/balloon_bounce0.wav diff --git a/data/sound/bubble2.wav b/data/sound/balloon_bounce1.wav similarity index 100% rename from data/sound/bubble2.wav rename to data/sound/balloon_bounce1.wav diff --git a/data/sound/bubble3.wav b/data/sound/balloon_bounce2.wav similarity index 100% rename from data/sound/bubble3.wav rename to data/sound/balloon_bounce2.wav diff --git a/data/sound/bubble4.wav b/data/sound/balloon_bounce3.wav similarity index 100% rename from data/sound/bubble4.wav rename to data/sound/balloon_bounce3.wav diff --git a/data/sound/balloon1.wav b/data/sound/balloon_pop0.wav similarity index 100% rename from data/sound/balloon1.wav rename to data/sound/balloon_pop0.wav diff --git a/data/sound/balloon2.wav b/data/sound/balloon_pop1.wav similarity index 100% rename from data/sound/balloon2.wav rename to data/sound/balloon_pop1.wav diff --git a/data/sound/balloon3.wav b/data/sound/balloon_pop2.wav similarity index 100% rename from data/sound/balloon3.wav rename to data/sound/balloon_pop2.wav diff --git a/data/sound/balloon4.wav b/data/sound/balloon_pop3.wav similarity index 100% rename from data/sound/balloon4.wav rename to data/sound/balloon_pop3.wav diff --git a/source/balloon.cpp b/source/balloon.cpp index 6d13ac6..d775336 100644 --- a/source/balloon.cpp +++ b/source/balloon.cpp @@ -11,7 +11,7 @@ #include "texture.h" // Para Texture // Constructor -Balloon::Balloon(float x, float y, BalloonType type, BalloonSize size, float vel_x, float speed, Uint16 creation_timer, SDL_FRect play_area, std::shared_ptr texture, const std::vector &animation) +Balloon::Balloon(float x, float y, Type type, Size size, float vel_x, float speed, Uint16 creation_timer, SDL_FRect play_area, std::shared_ptr texture, const std::vector &animation) : sprite_(std::make_unique(texture, animation)), x_(x), y_(y), @@ -26,42 +26,42 @@ Balloon::Balloon(float x, float y, BalloonType type, BalloonSize size, float vel speed_(speed), play_area_(play_area) { switch (type_) { - case BalloonType::BALLOON: { + case Type::BALLOON: { vy_ = 0; max_vy_ = 3.0F; const int INDEX = static_cast(size_); gravity_ = param.balloon.settings.at(INDEX).grav; default_vy_ = param.balloon.settings.at(INDEX).vel; - h_ = w_ = BALLOON_SIZE[INDEX]; - power_ = BALLOON_POWER[INDEX]; - menace_ = BALLOON_MENACE[INDEX]; - score_ = BALLOON_SCORE[INDEX]; - bouncing_sound_ = BALLOON_BOUNCING_SOUND[INDEX]; - popping_sound_ = BALLOON_POPPING_SOUND[INDEX]; + h_ = w_ = SIZE[INDEX]; + power_ = POWER[INDEX]; + menace_ = MENACE[INDEX]; + score_ = SCORE[INDEX]; + bouncing_sound_ = BOUNCING_SOUND[INDEX]; + popping_sound_ = POPPING_SOUND[INDEX]; break; } - case BalloonType::FLOATER: { + case Type::FLOATER: { default_vy_ = max_vy_ = vy_ = fabs(vx_ * 2.0F); gravity_ = 0.00F; const int INDEX = static_cast(size_); - h_ = w_ = BALLOON_SIZE[INDEX]; - power_ = BALLOON_POWER[INDEX]; - menace_ = BALLOON_MENACE[INDEX]; - score_ = BALLOON_SCORE[INDEX]; - bouncing_sound_ = BALLOON_BOUNCING_SOUND[INDEX]; - popping_sound_ = BALLOON_POPPING_SOUND[INDEX]; + h_ = w_ = SIZE[INDEX]; + power_ = POWER[INDEX]; + menace_ = MENACE[INDEX]; + score_ = SCORE[INDEX]; + bouncing_sound_ = BOUNCING_SOUND[INDEX]; + popping_sound_ = POPPING_SOUND[INDEX]; break; } - case BalloonType::POWERBALL: { + case Type::POWERBALL: { constexpr int INDEX = 3; - h_ = w_ = BALLOON_SIZE[4]; - bouncing_sound_ = BALLOON_BOUNCING_SOUND[3]; + h_ = w_ = SIZE[4]; + bouncing_sound_ = BOUNCING_SOUND[3]; popping_sound_ = "power_ball_explosion.wav"; power_ = score_ = menace_ = 0; @@ -103,11 +103,11 @@ void Balloon::alignTo(int x) { // Pinta el globo en la pantalla void Balloon::render() { - if (type_ == BalloonType::POWERBALL) { + if (type_ == Type::POWERBALL) { // Renderiza el fondo azul { auto sp = std::make_unique(sprite_->getTexture(), sprite_->getPosition()); - sp->setSpriteClip(0, 0, BALLOON_SIZE[4], BALLOON_SIZE[4]); + sp->setSpriteClip(0, 0, SIZE[4], SIZE[4]); sp->render(); } @@ -121,7 +121,7 @@ void Balloon::render() { // Añade la máscara del borde y los reflejos { auto sp = std::make_unique(sprite_->getTexture(), sprite_->getPosition()); - sp->setSpriteClip(BALLOON_SIZE[4] * 2, 0, BALLOON_SIZE[4], BALLOON_SIZE[4]); + sp->setSpriteClip(SIZE[4] * 2, 0, SIZE[4], SIZE[4]); sp->render(); } } else { @@ -180,7 +180,7 @@ void Balloon::handleHorizontalBounce(float min_x, float max_x) { x_ = std::clamp(x_, min_x, max_x); vx_ = -vx_; - if (type_ == BalloonType::POWERBALL) { + if (type_ == Type::POWERBALL) { sprite_->switchRotate(); } else { enableBounceEffect(); @@ -209,7 +209,7 @@ void Balloon::handleBottomCollision() { y_ = MAX_Y; vy_ = -default_vy_; - if (type_ != BalloonType::POWERBALL) { + if (type_ != Type::POWERBALL) { enableBounceEffect(); } else { setInvulnerable(false); @@ -293,11 +293,11 @@ void Balloon::setAnimation() { std::string normal_animation; switch (type_) { - case BalloonType::POWERBALL: + case Type::POWERBALL: creating_animation = "powerball"; normal_animation = "powerball"; break; - case BalloonType::FLOATER: + case Type::FLOATER: creating_animation = param.balloon.color.at(2); normal_animation = param.balloon.color.at(3); break; @@ -352,7 +352,7 @@ void Balloon::applyBounceEffect() { // Activa el efecto void Balloon::enableBounceEffect() { // Los globos pequeños no tienen efecto de rebote - if (size_ == BalloonSize::SIZE1) { + if (size_ == Size::SIZE_0) { return; } bounce_effect_.enabled = true; diff --git a/source/balloon.h b/source/balloon.h index 24171b0..ee09560 100644 --- a/source/balloon.h +++ b/source/balloon.h @@ -12,54 +12,54 @@ class Texture; -// --- Constantes relacionadas con globos --- -constexpr int MAX_BOUNCE = 10; // Cantidad de elementos del vector de deformación - -constexpr std::array BALLOON_SCORE = {50, 100, 200, 400}; -constexpr std::array BALLOON_POWER = {1, 3, 7, 15}; -constexpr std::array BALLOON_MENACE = {1, 2, 4, 8}; -constexpr std::array BALLOON_SIZE = {10, 16, 26, 48, 49}; - -const std::array BALLOON_BOUNCING_SOUND = { - "bubble1.wav", "bubble2.wav", "bubble3.wav", "bubble4.wav"}; - -const std::array BALLOON_POPPING_SOUND = { - "balloon1.wav", "balloon2.wav", "balloon3.wav", "balloon4.wav"}; - -enum class BalloonSize : Uint8 { - SIZE1 = 0, - SIZE2 = 1, - SIZE3 = 2, - SIZE4 = 3, -}; - -enum class BalloonType : Uint8 { - BALLOON = 0, - FLOATER = 1, - POWERBALL = 2, -}; - -constexpr float BALLOON_VELX_POSITIVE = 0.7F; -constexpr float BALLOON_VELX_NEGATIVE = -0.7F; - -constexpr int BALLOON_MOVING_ANIMATION = 0; -constexpr int BALLOON_POP_ANIMATION = 1; -constexpr int BALLOON_BORN_ANIMATION = 2; - -constexpr std::array BALLOON_SPEED = {0.60F, 0.70F, 0.80F, 0.90F, 1.00F}; - -constexpr int POWERBALL_SCREENPOWER_MINIMUM = 10; -constexpr int POWERBALL_COUNTER = 8; - // --- Clase Balloon --- class Balloon { public: + // --- Constantes relacionadas con globos --- + static constexpr int MAX_BOUNCE = 10; // Cantidad de elementos del vector de deformación + + static constexpr std::array SCORE = {50, 100, 200, 400}; + static constexpr std::array POWER = {1, 3, 7, 15}; + static constexpr std::array MENACE = {1, 2, 4, 8}; + static constexpr std::array SIZE = {10, 16, 26, 48, 49}; + + const std::array BOUNCING_SOUND = { + "balloon_bounce0.wav", "balloon_bounce1.wav", "balloon_bounce2.wav", "balloon_bounce3.wav"}; + + const std::array POPPING_SOUND = { + "balloon_pop0.wav", "balloon_pop1.wav", "balloon_pop2.wav", "balloon_pop3.wav"}; + + static constexpr float VELX_POSITIVE = 0.7F; + static constexpr float VELX_NEGATIVE = -0.7F; + + static constexpr int MOVING_ANIMATION = 0; + static constexpr int POP_ANIMATION = 1; + static constexpr int BORN_ANIMATION = 2; + + static constexpr std::array SPEED = {0.60F, 0.70F, 0.80F, 0.90F, 1.00F}; + + static constexpr int POWERBALL_SCREENPOWER_MINIMUM = 10; + static constexpr int POWERBALL_COUNTER = 8; + + enum class Size : Uint8 { + SIZE_0 = 0, + SIZE_1 = 1, + SIZE_2 = 2, + SIZE_3 = 3, + }; + + enum class Type : Uint8 { + BALLOON = 0, + FLOATER = 1, + POWERBALL = 2, + }; + // --- Constructores y destructor --- Balloon( float x, float y, - BalloonType type, - BalloonSize size, + Type type, + Size size, float vel_x, float speed, Uint16 creation_timer, @@ -86,14 +86,14 @@ class Balloon { [[nodiscard]] auto getPosY() const -> float { return y_; } [[nodiscard]] auto getWidth() const -> int { return w_; } [[nodiscard]] auto getHeight() const -> int { return h_; } - [[nodiscard]] auto getSize() const -> BalloonSize { return size_; } - [[nodiscard]] auto getType() const -> BalloonType { return type_; } + [[nodiscard]] auto getSize() const -> Size { return size_; } + [[nodiscard]] auto getType() const -> Type { return type_; } [[nodiscard]] auto getScore() const -> Uint16 { return score_; } auto getCollider() -> Circle & { return collider_; } [[nodiscard]] auto getMenace() const -> Uint8 { return isEnabled() ? menace_ : 0; } [[nodiscard]] auto getPower() const -> Uint8 { return power_; } [[nodiscard]] auto isStopped() const -> bool { return stopped_; } - [[nodiscard]] auto isPowerBall() const -> bool { return type_ == BalloonType::POWERBALL; } + [[nodiscard]] auto isPowerBall() const -> bool { return type_ == Type::POWERBALL; } [[nodiscard]] auto isInvulnerable() const -> bool { return invulnerable_; } [[nodiscard]] auto isBeingCreated() const -> bool { return being_created_; } [[nodiscard]] auto isEnabled() const -> bool { return enabled_; } @@ -154,8 +154,8 @@ class Balloon { Uint16 creation_counter_; // Temporizador de creación Uint16 creation_counter_ini_; // Valor inicial del temporizador de creación Uint16 score_; // Puntos al destruir el globo - BalloonType type_; // Tipo de globo - BalloonSize size_; // Tamaño de globo + Type type_; // Tipo de globo + Size size_; // Tamaño de globo Uint8 menace_; // Amenaza que genera el globo Uint32 counter_ = 0; // Contador interno float travel_y_ = 1.0F; // Distancia a recorrer en Y antes de aplicar gravedad diff --git a/source/balloon_formations.cpp b/source/balloon_formations.cpp index 4ab2b4c..a116222 100644 --- a/source/balloon_formations.cpp +++ b/source/balloon_formations.cpp @@ -141,17 +141,17 @@ auto BalloonFormations::parseBalloonLine(const std::string& line, const std::map BalloonType type = (tokens.at(4) == "BALLOON") ? BalloonType::BALLOON : BalloonType::FLOATER; BalloonSize size; - if (tokens.at(5) == "SIZE1") { - size = BalloonSize::SIZE1; + if (tokens.at(5) == "SIZE_0") { + size = BalloonSize::SIZE_0; desp = desp * (BALLOON_SIZE.at(0) + 1); - } else if (tokens.at(5) == "SIZE2") { - size = BalloonSize::SIZE2; + } else if (tokens.at(5) == "SIZE_1") { + size = BalloonSize::SIZE_1; desp = desp * (BALLOON_SIZE.at(1) + 1); - } else if (tokens.at(5) == "SIZE3") { - size = BalloonSize::SIZE3; + } else if (tokens.at(5) == "SIZE_2") { + size = BalloonSize::SIZE_2; desp = desp * (BALLOON_SIZE.at(2) + 1); - } else if (tokens.at(5) == "SIZE4") { - size = BalloonSize::SIZE4; + } else if (tokens.at(5) == "SIZE_3") { + size = BalloonSize::SIZE_3; desp = desp * (BALLOON_SIZE.at(3) + 1); } else { return std::nullopt; @@ -240,10 +240,10 @@ void BalloonFormations::createFloaterVariants() { void BalloonFormations::addTestFormation() { std::vector test_params = { - {10, -BLOCK, 0, BalloonType::FLOATER, BalloonSize::SIZE1, 200}, - {50, -BLOCK, 0, BalloonType::FLOATER, BalloonSize::SIZE2, 200}, - {90, -BLOCK, 0, BalloonType::FLOATER, BalloonSize::SIZE3, 200}, - {140, -BLOCK, 0, BalloonType::FLOATER, BalloonSize::SIZE4, 200}}; + {10, -BLOCK, 0, BalloonType::FLOATER, BalloonSize::SIZE_0, 200}, + {50, -BLOCK, 0, BalloonType::FLOATER, BalloonSize::SIZE_1, 200}, + {90, -BLOCK, 0, BalloonType::FLOATER, BalloonSize::SIZE_2, 200}, + {140, -BLOCK, 0, BalloonType::FLOATER, BalloonSize::SIZE_3, 200}}; balloon_formation_.at(99) = BalloonFormationUnit(4, test_params); } @@ -258,8 +258,8 @@ void BalloonFormations::loadDefaultFormations() { // Formación básica #00 std::vector basic_formation = { - BalloonFormationParams(X4_0, DEFAULT_POS_Y, BALLOON_VELX_POSITIVE, BalloonType::BALLOON, BalloonSize::SIZE4, CREATION_TIME), - BalloonFormationParams(X4_100, DEFAULT_POS_Y, BALLOON_VELX_NEGATIVE, BalloonType::BALLOON, BalloonSize::SIZE4, CREATION_TIME)}; + BalloonFormationParams(X4_0, DEFAULT_POS_Y, BALLOON_VELX_POSITIVE, BalloonType::BALLOON, BalloonSize::SIZE_3, CREATION_TIME), + BalloonFormationParams(X4_100, DEFAULT_POS_Y, BALLOON_VELX_NEGATIVE, BalloonType::BALLOON, BalloonSize::SIZE_3, CREATION_TIME)}; balloon_formation_.emplace_back(2, basic_formation); } diff --git a/source/balloon_formations.h b/source/balloon_formations.h index 870844e..26951cf 100644 --- a/source/balloon_formations.h +++ b/source/balloon_formations.h @@ -16,7 +16,7 @@ struct BalloonFormationParams { int y = 0; // Posición en el eje Y donde crear el globo float vel_x = 0.0F; // Velocidad inicial en el eje X BalloonType type = BalloonType::BALLOON; // Tipo de globo - BalloonSize size = BalloonSize::SIZE1; // Tamaño de globo + BalloonSize size = BalloonSize::SIZE_0; // Tamaño de globo int creation_counter = 0; // Temporizador para la creación del globo // Constructor por defecto diff --git a/source/balloon_manager.cpp b/source/balloon_manager.cpp index 2280e63..2b07a3f 100644 --- a/source/balloon_manager.cpp +++ b/source/balloon_manager.cpp @@ -5,7 +5,7 @@ #include // Para rand #include // Para accumulate -#include "balloon.h" // Para Balloon, BALLOON_SCORE, BALLOON_VELX... +#include "balloon.h" // Para Balloon, Balloon::SCORE.at( )ALLOON_VELX... #include "balloon_formations.h" // Para BalloonFormationParams, BalloonForma... #include "color.h" // Para Zone, Color, flash_color #include "explosions.h" // Para Explosions @@ -23,30 +23,30 @@ BalloonManager::BalloonManager() // Inicializa void BalloonManager::init() { // Texturas - Globos + balloon_textures_.emplace_back(Resource::get()->getTexture("balloon0.png")); balloon_textures_.emplace_back(Resource::get()->getTexture("balloon1.png")); balloon_textures_.emplace_back(Resource::get()->getTexture("balloon2.png")); balloon_textures_.emplace_back(Resource::get()->getTexture("balloon3.png")); - balloon_textures_.emplace_back(Resource::get()->getTexture("balloon4.png")); balloon_textures_.emplace_back(Resource::get()->getTexture("powerball.png")); // Animaciones -- Globos + balloon_animations_.emplace_back(Resource::get()->getAnimation("balloon0.ani")); balloon_animations_.emplace_back(Resource::get()->getAnimation("balloon1.ani")); balloon_animations_.emplace_back(Resource::get()->getAnimation("balloon2.ani")); balloon_animations_.emplace_back(Resource::get()->getAnimation("balloon3.ani")); - balloon_animations_.emplace_back(Resource::get()->getAnimation("balloon4.ani")); balloon_animations_.emplace_back(Resource::get()->getAnimation("powerball.ani")); // Texturas - Explosiones + explosions_textures_.emplace_back(Resource::get()->getTexture("explosion0.png")); explosions_textures_.emplace_back(Resource::get()->getTexture("explosion1.png")); explosions_textures_.emplace_back(Resource::get()->getTexture("explosion2.png")); explosions_textures_.emplace_back(Resource::get()->getTexture("explosion3.png")); - explosions_textures_.emplace_back(Resource::get()->getTexture("explosion4.png")); // Animaciones -- Explosiones + explosions_animations_.emplace_back(Resource::get()->getAnimation("explosion0.ani")); explosions_animations_.emplace_back(Resource::get()->getAnimation("explosion1.ani")); explosions_animations_.emplace_back(Resource::get()->getAnimation("explosion2.ani")); explosions_animations_.emplace_back(Resource::get()->getAnimation("explosion3.ani")); - explosions_animations_.emplace_back(Resource::get()->getAnimation("explosion4.ani")); // Añade texturas explosions_->addTexture(0, explosions_textures_[0], explosions_animations_[0]); @@ -150,7 +150,7 @@ void BalloonManager::updateBalloonDeployCounter() { } // Indica si se puede crear una powerball -auto BalloonManager::canPowerBallBeCreated() -> bool { return (!power_ball_enabled_) && (calculateScreenPower() > POWERBALL_SCREENPOWER_MINIMUM) && (power_ball_counter_ == 0); } +auto BalloonManager::canPowerBallBeCreated() -> bool { return (!power_ball_enabled_) && (calculateScreenPower() > Balloon::POWERBALL_SCREENPOWER_MINIMUM) && (power_ball_counter_ == 0); } // Calcula el poder actual de los globos en pantalla auto BalloonManager::calculateScreenPower() -> int { @@ -158,7 +158,7 @@ auto BalloonManager::calculateScreenPower() -> int { } // Crea un globo nuevo en el vector de globos -auto BalloonManager::createBalloon(float x, int y, BalloonType type, BalloonSize size, float velx, float speed, int creation_timer) -> std::shared_ptr { +auto BalloonManager::createBalloon(float x, int y, Balloon::Type type, Balloon::Size size, float velx, float speed, int creation_timer) -> std::shared_ptr { if (can_deploy_balloons_) { const int INDEX = static_cast(size); balloons_.emplace_back(std::make_shared(x, y, type, size, velx, speed, creation_timer, play_area_, balloon_textures_.at(INDEX), balloon_animations_.at(INDEX))); @@ -175,10 +175,10 @@ auto BalloonManager::createBalloon(float x, int y, BalloonType type, BalloonSize void BalloonManager::createChildBalloon(const std::shared_ptr &balloon, const std::string &direction) { if (can_deploy_balloons_) { // Calcula parametros - const float VX = direction == "LEFT" ? BALLOON_VELX_NEGATIVE : BALLOON_VELX_POSITIVE; - const auto SIZE = static_cast(static_cast(balloon->getSize()) - 1); + const float VX = direction == "LEFT" ? Balloon::VELX_NEGATIVE : Balloon::VELX_POSITIVE; + const auto SIZE = static_cast(static_cast(balloon->getSize()) - 1); const int PARENT_HEIGHT = balloon->getHeight(); - const int CHILD_HEIGHT = BALLOON_SIZE[static_cast(balloon->getSize()) - 1]; + const int CHILD_HEIGHT = Balloon::SIZE.at(static_cast(balloon->getSize()) - 1); const int Y = balloon->getPosY() + (PARENT_HEIGHT - CHILD_HEIGHT) / 2; const int X = direction == "LEFT" ? balloon->getPosX() + (balloon->getWidth() / 3) : balloon->getPosX() + 2 * (balloon->getWidth() / 3); @@ -187,7 +187,7 @@ void BalloonManager::createChildBalloon(const std::shared_ptr &balloon, // Establece parametros b->alignTo(X); - b->setVelY(b->getType() == BalloonType::BALLOON ? -2.50F : BALLOON_VELX_NEGATIVE * 2.0F); + b->setVelY(b->getType() == Balloon::Type::BALLOON ? -2.50F : Balloon::VELX_NEGATIVE * 2.0F); // Herencia de estados if (balloon->isStopped()) { @@ -203,22 +203,22 @@ void BalloonManager::createChildBalloon(const std::shared_ptr &balloon, void BalloonManager::createPowerBall() { if (can_deploy_balloons_) { constexpr int VALUES = 6; - constexpr float POS_Y = -BALLOON_SIZE[4]; + constexpr float POS_Y = -Balloon::SIZE.at(4); constexpr int CREATION_TIME = 0; const float LEFT = param.game.play_area.rect.x; - const float CENTER = param.game.play_area.center_x - (BALLOON_SIZE[4] / 2); - const float RIGHT = param.game.play_area.rect.w - BALLOON_SIZE[4]; + const float CENTER = param.game.play_area.center_x - (Balloon::SIZE.at(4) / 2); + const float RIGHT = param.game.play_area.rect.w - Balloon::SIZE.at(4); const int LUCK = rand() % VALUES; const std::array POS_X = {LEFT, LEFT, CENTER, CENTER, RIGHT, RIGHT}; - const std::array VEL_X = {BALLOON_VELX_POSITIVE, BALLOON_VELX_POSITIVE, BALLOON_VELX_POSITIVE, BALLOON_VELX_NEGATIVE, BALLOON_VELX_NEGATIVE, BALLOON_VELX_NEGATIVE}; + const std::array VEL_X = {Balloon::VELX_POSITIVE, Balloon::VELX_POSITIVE, Balloon::VELX_POSITIVE, Balloon::VELX_NEGATIVE, Balloon::VELX_NEGATIVE, Balloon::VELX_NEGATIVE}; - balloons_.emplace_back(std::make_unique(POS_X[LUCK], POS_Y, BalloonType::POWERBALL, BalloonSize::SIZE4, VEL_X[LUCK], balloon_speed_, CREATION_TIME, play_area_, balloon_textures_[4], balloon_animations_[4])); + balloons_.emplace_back(std::make_unique(POS_X[LUCK], POS_Y, Balloon::Type::POWERBALL, Balloon::Size::SIZE_3, VEL_X[LUCK], balloon_speed_, CREATION_TIME, play_area_, balloon_textures_[4], balloon_animations_[4])); balloons_.back()->setInvulnerable(true); power_ball_enabled_ = true; - power_ball_counter_ = POWERBALL_COUNTER; + power_ball_counter_ = Balloon::POWERBALL_COUNTER; } } @@ -235,14 +235,14 @@ auto BalloonManager::popBalloon(std::shared_ptr balloon) -> int { Stage::addPower(1); int score = 0; - if (balloon->getType() == BalloonType::POWERBALL) { + if (balloon->getType() == Balloon::Type::POWERBALL) { balloon->pop(true); score = destroyAllBalloons(); power_ball_enabled_ = false; balloon_deploy_counter_ = 20; } else { score = balloon->getScore(); - if (balloon->getSize() != BalloonSize::SIZE1) { + if (balloon->getSize() != Balloon::Size::SIZE_0) { createChildBalloon(balloon, "LEFT"); createChildBalloon(balloon, "RIGHT"); } @@ -261,17 +261,17 @@ auto BalloonManager::destroyBalloon(std::shared_ptr &balloon) -> int { // Calcula la puntuación y el poder que generaria el globo en caso de romperlo a él y a sus hijos switch (balloon->getSize()) { - case BalloonSize::SIZE4: - score = BALLOON_SCORE[3] + (2 * BALLOON_SCORE[2]) + (4 * BALLOON_SCORE[1]) + (8 * BALLOON_SCORE[0]); + case Balloon::Size::SIZE_3: + score = Balloon::SCORE.at(3) + (2 * Balloon::SCORE.at(2)) + (4 * Balloon::SCORE.at(1)) + (8 * Balloon::SCORE.at(0)); break; - case BalloonSize::SIZE3: - score = BALLOON_SCORE[2] + (2 * BALLOON_SCORE[1]) + (4 * BALLOON_SCORE[0]); + case Balloon::Size::SIZE_2: + score = Balloon::SCORE.at(2) + (2 * Balloon::SCORE.at(1)) + (4 * Balloon::SCORE.at(0)); break; - case BalloonSize::SIZE2: - score = BALLOON_SCORE[1] + (2 * BALLOON_SCORE[0]); + case Balloon::Size::SIZE_1: + score = Balloon::SCORE.at(1) + (2 * Balloon::SCORE.at(0)); break; - case BalloonSize::SIZE1: - score = BALLOON_SCORE[0]; + case Balloon::Size::SIZE_0: + score = Balloon::SCORE.at(0); break; default: score = 0; @@ -343,12 +343,12 @@ void BalloonManager::createTwoBigBalloons() { void BalloonManager::createRandomBalloons() { const int NUM_BALLOONS = 2 + rand() % 4; for (int i = 0; i < NUM_BALLOONS; ++i) { - const float X = param.game.game_area.rect.x + (rand() % static_cast(param.game.game_area.rect.w)) - BALLOON_SIZE[3]; + const float X = param.game.game_area.rect.x + (rand() % static_cast(param.game.game_area.rect.w)) - Balloon::SIZE.at(3); const int Y = param.game.game_area.rect.y + (rand() % 50); - const auto SIZE = static_cast(rand() % 4); - const float VEL_X = (rand() % 2 == 0) ? BALLOON_VELX_POSITIVE : BALLOON_VELX_NEGATIVE; + const auto SIZE = static_cast(rand() % 4); + const float VEL_X = (rand() % 2 == 0) ? Balloon::VELX_POSITIVE : Balloon::VELX_NEGATIVE; const int CREATION_COUNTER = 0; - createBalloon(X, Y, BalloonType::BALLOON, SIZE, VEL_X, balloon_speed_, CREATION_COUNTER); + createBalloon(X, Y, Balloon::Type::BALLOON, SIZE, VEL_X, balloon_speed_, CREATION_COUNTER); } } diff --git a/source/balloon_manager.h b/source/balloon_manager.h index 5022b3e..43e1cce 100644 --- a/source/balloon_manager.h +++ b/source/balloon_manager.h @@ -8,7 +8,7 @@ #include // Para string #include // Para vector -#include "balloon.h" // Para BALLOON_SPEED, Balloon, BalloonSize (ptr only), BalloonType (ptr only) +#include "balloon.h" // Para BALLOON_SPEED, Balloon, Balloon::Size (ptr only), Balloon::Type (ptr only) #include "balloon_formations.h" // Para BalloonFormations #include "explosions.h" // Para Explosions #include "param.h" // Para Param, ParamGame, param @@ -38,7 +38,7 @@ class BalloonManager { void deploySet(int set, int y); // Crea una formación específica con coordenadas // Creación de globos - auto createBalloon(float x, int y, BalloonType type, BalloonSize size, float velx, float speed, int creation_timer) -> std::shared_ptr; // Crea un nuevo globo + auto createBalloon(float x, int y, Balloon::Type type, Balloon::Size size, float velx, float speed, int creation_timer) -> std::shared_ptr; // Crea un nuevo globo void createChildBalloon(const std::shared_ptr &balloon, const std::string &direction); // Crea un globo a partir de otro void createPowerBall(); // Crea una PowerBall void createTwoBigBalloons(); // Crea dos globos grandes @@ -91,8 +91,8 @@ class BalloonManager { std::vector> explosions_animations_; // Animaciones de las explosiones // Variables de control de globos - float balloon_speed_ = BALLOON_SPEED[0]; - float default_balloon_speed_ = BALLOON_SPEED[0]; + float balloon_speed_ = Balloon::SPEED.at(0); + float default_balloon_speed_ = Balloon::SPEED.at(0); int balloon_deploy_counter_ = 0; bool power_ball_enabled_ = false; int power_ball_counter_ = 0; diff --git a/source/director.cpp b/source/director.cpp index e1f5f67..334e909 100644 --- a/source/director.cpp +++ b/source/director.cpp @@ -268,14 +268,14 @@ void Director::setFileList() { Asset::get()->add(PREFIX + "/data/music/credits.ogg", AssetType::MUSIC); // Sonidos - Asset::get()->add(PREFIX + "/data/sound/balloon1.wav", AssetType::SOUND); - Asset::get()->add(PREFIX + "/data/sound/balloon2.wav", AssetType::SOUND); - Asset::get()->add(PREFIX + "/data/sound/balloon3.wav", AssetType::SOUND); - Asset::get()->add(PREFIX + "/data/sound/balloon4.wav", AssetType::SOUND); - Asset::get()->add(PREFIX + "/data/sound/bubble1.wav", AssetType::SOUND); - Asset::get()->add(PREFIX + "/data/sound/bubble2.wav", AssetType::SOUND); - Asset::get()->add(PREFIX + "/data/sound/bubble3.wav", AssetType::SOUND); - Asset::get()->add(PREFIX + "/data/sound/bubble4.wav", AssetType::SOUND); + Asset::get()->add(PREFIX + "/data/sound/balloon_pop0.wav", AssetType::SOUND); + Asset::get()->add(PREFIX + "/data/sound/balloon_pop1.wav", AssetType::SOUND); + Asset::get()->add(PREFIX + "/data/sound/balloon_pop2.wav", AssetType::SOUND); + Asset::get()->add(PREFIX + "/data/sound/balloon_pop3.wav", AssetType::SOUND); + Asset::get()->add(PREFIX + "/data/sound/balloon_bounce0.wav", AssetType::SOUND); + Asset::get()->add(PREFIX + "/data/sound/balloon_bounce1.wav", AssetType::SOUND); + Asset::get()->add(PREFIX + "/data/sound/balloon_bounce2.wav", AssetType::SOUND); + Asset::get()->add(PREFIX + "/data/sound/balloon_bounce3.wav", AssetType::SOUND); Asset::get()->add(PREFIX + "/data/sound/bullet.wav", AssetType::SOUND); Asset::get()->add(PREFIX + "/data/sound/clock.wav", AssetType::SOUND); Asset::get()->add(PREFIX + "/data/sound/coffee_out.wav", AssetType::SOUND); @@ -310,24 +310,24 @@ void Director::setFileList() { Asset::get()->add(PREFIX + "/data/shaders/crtpi_240.glsl", AssetType::DATA); // Texturas - Balloons + Asset::get()->add(PREFIX + "/data/gfx/balloon/balloon0.png", AssetType::BITMAP); + Asset::get()->add(PREFIX + "/data/gfx/balloon/balloon0.ani", AssetType::ANIMATION); Asset::get()->add(PREFIX + "/data/gfx/balloon/balloon1.png", AssetType::BITMAP); Asset::get()->add(PREFIX + "/data/gfx/balloon/balloon1.ani", AssetType::ANIMATION); Asset::get()->add(PREFIX + "/data/gfx/balloon/balloon2.png", AssetType::BITMAP); Asset::get()->add(PREFIX + "/data/gfx/balloon/balloon2.ani", AssetType::ANIMATION); Asset::get()->add(PREFIX + "/data/gfx/balloon/balloon3.png", AssetType::BITMAP); Asset::get()->add(PREFIX + "/data/gfx/balloon/balloon3.ani", AssetType::ANIMATION); - Asset::get()->add(PREFIX + "/data/gfx/balloon/balloon4.png", AssetType::BITMAP); - Asset::get()->add(PREFIX + "/data/gfx/balloon/balloon4.ani", AssetType::ANIMATION); // Texturas - Explosiones + Asset::get()->add(PREFIX + "/data/gfx/balloon/explosion0.png", AssetType::BITMAP); + Asset::get()->add(PREFIX + "/data/gfx/balloon/explosion0.ani", AssetType::ANIMATION); Asset::get()->add(PREFIX + "/data/gfx/balloon/explosion1.png", AssetType::BITMAP); Asset::get()->add(PREFIX + "/data/gfx/balloon/explosion1.ani", AssetType::ANIMATION); Asset::get()->add(PREFIX + "/data/gfx/balloon/explosion2.png", AssetType::BITMAP); Asset::get()->add(PREFIX + "/data/gfx/balloon/explosion2.ani", AssetType::ANIMATION); Asset::get()->add(PREFIX + "/data/gfx/balloon/explosion3.png", AssetType::BITMAP); Asset::get()->add(PREFIX + "/data/gfx/balloon/explosion3.ani", AssetType::ANIMATION); - Asset::get()->add(PREFIX + "/data/gfx/balloon/explosion4.png", AssetType::BITMAP); - Asset::get()->add(PREFIX + "/data/gfx/balloon/explosion4.ani", AssetType::ANIMATION); // Texturas - Power Ball Asset::get()->add(PREFIX + "/data/gfx/balloon/powerball.png", AssetType::BITMAP);