From 545eb700826e8f78dbb8531cd40aeec4b7ebb413 Mon Sep 17 00:00:00 2001 From: Sergio Valor Date: Wed, 24 Sep 2025 12:37:21 +0200 Subject: [PATCH] corregida la creacio de globos --- config/formations.txt | 392 +++++++++++++++++----------------- source/balloon.cpp | 4 +- source/balloon_formations.cpp | 10 +- source/balloon_formations.h | 3 +- 4 files changed, 205 insertions(+), 204 deletions(-) diff --git a/config/formations.txt b/config/formations.txt index 1e2fff3..120530b 100644 --- a/config/formations.txt +++ b/config/formations.txt @@ -8,270 +8,270 @@ formation: 0 # Dos enemigos BALLOON3 uno a cada extremo -X3_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, EXTRALARGE, 0.0 -X3_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, EXTRALARGE, 0.0 +X3_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, EXTRALARGE, 0.0000 +X3_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, EXTRALARGE, 0.0000 formation: 1 # Dos enemigos BALLOON3 uno a cada cuarto. Ambos van hacia el centro -X3_25, 0, DEFAULT_POS_Y, RIGHT, BALLOON, EXTRALARGE, 0.0 -X3_75, 0, DEFAULT_POS_Y, LEFT, BALLOON, EXTRALARGE, 0.0 +X3_25, 0, DEFAULT_POS_Y, RIGHT, BALLOON, EXTRALARGE, 0.0000 +X3_75, 0, DEFAULT_POS_Y, LEFT, BALLOON, EXTRALARGE, 0.0000 formation: 2 # Cuatro enemigos BALLOON1 uno detrás del otro. A la izquierda y hacia el centro -X1_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, MEDIUM, 0.5 -X1_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, MEDIUM, 0.334 -X1_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, MEDIUM, 0.167 -X1_0, 3, DEFAULT_POS_Y, RIGHT, BALLOON, MEDIUM, 0.0 +X1_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, MEDIUM, 0.5000 +X1_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, MEDIUM, 0.3333 +X1_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, MEDIUM, 0.1667 +X1_0, 3, DEFAULT_POS_Y, RIGHT, BALLOON, MEDIUM, 0.0000 formation: 3 # Cuatro enemigos BALLOON1 uno detrás del otro. A la derecha y hacia el centro -X1_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, MEDIUM, 0.5 -X1_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, MEDIUM, 0.334 -X1_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, MEDIUM, 0.167 -X1_100, -3, DEFAULT_POS_Y, LEFT, BALLOON, MEDIUM, 0.0 +X1_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, MEDIUM, 0.5000 +X1_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, MEDIUM, 0.3333 +X1_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, MEDIUM, 0.1667 +X1_100, -3, DEFAULT_POS_Y, LEFT, BALLOON, MEDIUM, 0.0000 formation: 4 -# Tres enemigos BALLOON2. 0, 417, 834. Hacia la derecha -X2_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.334 -X2_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.167 -X2_0, 4, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.0 +# Tres enemigos BALLOON2. 0, 25, 50. Hacia la derecha +X2_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.3333 +X2_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.1667 +X2_0, 4, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.0000 formation: 5 -# Tres enemigos BALLOON2. 50, 75, 1667. Hacia la izquierda -X2_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.334 -X2_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.167 -X2_100, -4, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.0 +# Tres enemigos BALLOON2. 50, 75, 100. Hacia la izquierda +X2_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.3333 +X2_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.1667 +X2_100, -4, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.0000 formation: 6 # Tres enemigos BALLOON2. 0, 0, 0. Hacia la derecha -X2_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.334 -X2_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.167 -X2_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.0 +X2_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.3333 +X2_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.1667 +X2_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.0000 formation: 7 -# Tres enemigos BALLOON2. 100, 1667, 1667. Hacia la izquierda -X2_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.334 -X2_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.167 -X2_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.0 +# Tres enemigos BALLOON2. 100, 100, 100. Hacia la izquierda +X2_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.3333 +X2_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.1667 +X2_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.0000 formation: 8 # Seis enemigos BALLOON0. 0, 0, 0, 0, 0, 0. Hacia la derecha -X0_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.834 -X0_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.667 -X0_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.5 -X0_0, 3, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.334 -X0_0, 4, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.167 -X0_0, 5, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.0 +X0_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.8333 +X0_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.6667 +X0_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.5000 +X0_0, 3, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.3333 +X0_0, 4, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.1667 +X0_0, 5, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.0000 formation: 9 -# Seis enemigos BALLOON0. 100, 1667, 1667, 1667, 1667, 1667. Hacia la izquierda -X0_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.834 -X0_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.667 -X0_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.5 -X0_100, -3, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.334 -X0_100, -4, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.167 -X0_100, -5, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.0 +# Seis enemigos BALLOON0. 100, 100, 100, 100, 100, 100. Hacia la izquierda +X0_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.8333 +X0_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.6667 +X0_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.5000 +X0_100, -3, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.3333 +X0_100, -4, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.1667 +X0_100, -5, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.0000 formation: 10 # Tres enemigos BALLOON3 seguidos desde la izquierda. Hacia la derecha -X3_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, EXTRALARGE, 0.5 -X3_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, EXTRALARGE, 0.25 -X3_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, EXTRALARGE, 0.0 +X3_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, EXTRALARGE, 0.5000 +X3_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, EXTRALARGE, 0.2500 +X3_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, EXTRALARGE, 0.0000 formation: 11 # Tres enemigos BALLOON3 seguidos desde la derecha. Hacia la izquierda -X3_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, EXTRALARGE, 0.5 -X3_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, EXTRALARGE, 0.25 -X3_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, EXTRALARGE, 0.0 +X3_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, EXTRALARGE, 0.5000 +X3_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, EXTRALARGE, 0.2500 +X3_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, EXTRALARGE, 0.0000 formation: 12 # Seis enemigos BALLOON1 uno detrás del otro. A la izquierda y hacia el centro -X1_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, MEDIUM, 0.834 -X1_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, MEDIUM, 0.667 -X1_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, MEDIUM, 0.5 -X1_0, 3, DEFAULT_POS_Y, RIGHT, BALLOON, MEDIUM, 0.334 -X1_0, 4, DEFAULT_POS_Y, RIGHT, BALLOON, MEDIUM, 0.167 -X1_0, 5, DEFAULT_POS_Y, RIGHT, BALLOON, MEDIUM, 0.0 +X1_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, MEDIUM, 0.8333 +X1_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, MEDIUM, 0.6667 +X1_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, MEDIUM, 0.5000 +X1_0, 3, DEFAULT_POS_Y, RIGHT, BALLOON, MEDIUM, 0.3333 +X1_0, 4, DEFAULT_POS_Y, RIGHT, BALLOON, MEDIUM, 0.1667 +X1_0, 5, DEFAULT_POS_Y, RIGHT, BALLOON, MEDIUM, 0.0000 formation: 13 # Seis enemigos BALLOON1 uno detrás del otro. A la derecha y hacia el centro -X1_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, MEDIUM, 0.834 -X1_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, MEDIUM, 0.667 -X1_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, MEDIUM, 0.5 -X1_100, -3, DEFAULT_POS_Y, LEFT, BALLOON, MEDIUM, 0.334 -X1_100, -4, DEFAULT_POS_Y, LEFT, BALLOON, MEDIUM, 0.167 -X1_100, -5, DEFAULT_POS_Y, LEFT, BALLOON, MEDIUM, 0.0 +X1_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, MEDIUM, 0.8333 +X1_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, MEDIUM, 0.6667 +X1_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, MEDIUM, 0.5000 +X1_100, -3, DEFAULT_POS_Y, LEFT, BALLOON, MEDIUM, 0.3333 +X1_100, -4, DEFAULT_POS_Y, LEFT, BALLOON, MEDIUM, 0.1667 +X1_100, -5, DEFAULT_POS_Y, LEFT, BALLOON, MEDIUM, 0.0000 formation: 14 # Cinco enemigos BALLOON2. Hacia la derecha. Separados -X2_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.667 -X2_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.5 -X2_0, 4, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.334 -X2_0, 6, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.167 -X2_0, 8, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.0 +X2_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.6667 +X2_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.5000 +X2_0, 4, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.3333 +X2_0, 6, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.1667 +X2_0, 8, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.0000 formation: 15 # Cinco enemigos BALLOON2. Hacia la izquierda. Separados -X2_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.667 -X2_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.5 -X2_100, -4, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.334 -X2_100, -6, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.167 -X2_100, -8, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.0 +X2_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.6667 +X2_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.5000 +X2_100, -4, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.3333 +X2_100, -6, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.1667 +X2_100, -8, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.0000 formation: 16 # Cinco enemigos BALLOON2. Hacia la derecha. Juntos -X2_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.667 -X2_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.5 -X2_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.334 -X2_0, 3, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.167 -X2_0, 4, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.0 +X2_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.6667 +X2_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.5000 +X2_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.3333 +X2_0, 3, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.1667 +X2_0, 4, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.0000 formation: 17 # Cinco enemigos BALLOON2. Hacia la izquierda. Juntos -X2_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.667 -X2_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.5 -X2_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.334 -X2_100, -3, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.167 -X2_100, -4, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.0 +X2_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.6667 +X2_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.5000 +X2_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.3333 +X2_100, -3, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.1667 +X2_100, -4, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.0000 formation: 18 # Doce enemigos BALLOON0. Hacia la derecha. Juntos -X0_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 1.834 -X0_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 1.667 -X0_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 25.0 -X0_0, 50, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 1.334 -X0_0, 4, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.07 -X0_0, 83, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 1.0 -X0_0, 100, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.83 -X0_0, 7, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.04 -X0_0, 8, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.5 -X0_0, 150, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.02 -X0_0, 167, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.01 -X0_0, 11, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.0 +X0_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 1.8333 +X0_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 1.6667 +X0_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 1.5000 +X0_0, 3, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 1.3333 +X0_0, 4, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 1.1667 +X0_0, 5, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 1.0000 +X0_0, 6, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.8333 +X0_0, 7, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.6667 +X0_0, 8, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.5000 +X0_0, 9, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.3333 +X0_0, 10, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.1667 +X0_0, 11, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.0000 formation: 19 # Doce enemigos BALLOON0. Hacia la izquierda. Juntos -X0_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 1.834 -X0_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 1.667 -X0_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 25.0 -X0_100, -3, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 1.334 -X0_100, -4, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.07 -X0_100, -5, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 1.0 -X0_100, -6, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.83 -X0_100, -7, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.04 -X0_100, -8, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.5 -X0_100, -9, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.02 -X0_100, -10, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.01 -X0_100, -11, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.0 +X0_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 1.8333 +X0_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 1.6667 +X0_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 1.5000 +X0_100, -3, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 1.3333 +X0_100, -4, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 1.1667 +X0_100, -5, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 1.0000 +X0_100, -6, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.8333 +X0_100, -7, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.6667 +X0_100, -8, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.5000 +X0_100, -9, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.3333 +X0_100, -10, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.1667 +X0_100, -11, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.0000 formation: 20 # Cuatro enemigos BALLOON3 seguidos desde la izquierda/derecha. Simétricos -X3_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, EXTRALARGE, 0.0 -X3_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, EXTRALARGE, 0.0 -X3_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, EXTRALARGE, 0.0 -X3_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, EXTRALARGE, 0.0 +X3_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, EXTRALARGE, 0.0000 +X3_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, EXTRALARGE, 0.0000 +X3_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, EXTRALARGE, 0.0000 +X3_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, EXTRALARGE, 0.0000 formation: 21 # Diez enemigos BALLOON1 uno detrás del otro. Izquierda/derecha. Simétricos -X1_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, MEDIUM, 0.2 -X1_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, MEDIUM, 0.15 -X1_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, MEDIUM, 0.1 -X1_0, 3, DEFAULT_POS_Y, RIGHT, BALLOON, MEDIUM, 0.05 -X1_0, 4, DEFAULT_POS_Y, RIGHT, BALLOON, MEDIUM, 0.0 -X1_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, MEDIUM, 0.2 -X1_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, MEDIUM, 0.15 -X1_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, MEDIUM, 0.1 -X1_100, -3, DEFAULT_POS_Y, LEFT, BALLOON, MEDIUM, 0.05 -X1_100, -4, DEFAULT_POS_Y, LEFT, BALLOON, MEDIUM, 0.0 +X1_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, MEDIUM, 0.2000 +X1_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, MEDIUM, 0.1500 +X1_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, MEDIUM, 0.1000 +X1_0, 3, DEFAULT_POS_Y, RIGHT, BALLOON, MEDIUM, 0.0500 +X1_0, 4, DEFAULT_POS_Y, RIGHT, BALLOON, MEDIUM, 0.0000 +X1_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, MEDIUM, 0.2000 +X1_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, MEDIUM, 0.1500 +X1_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, MEDIUM, 0.1000 +X1_100, -3, DEFAULT_POS_Y, LEFT, BALLOON, MEDIUM, 0.0500 +X1_100, -4, DEFAULT_POS_Y, LEFT, BALLOON, MEDIUM, 0.0000 formation: 22 # Diez enemigos BALLOON2. Hacia la derecha/izquierda. Separados. Simétricos -X2_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.667 -X2_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.5 -X2_0, 4, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.334 -X2_0, 6, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.167 -X2_0, 8, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.0 -X2_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.667 -X2_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.5 -X2_100, -4, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.334 -X2_100, -6, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.167 -X2_100, -8, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.0 +X2_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.6667 +X2_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.5000 +X2_0, 4, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.3333 +X2_0, 6, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.1667 +X2_0, 8, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.0000 +X2_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.6667 +X2_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.5000 +X2_100, -4, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.3333 +X2_100, -6, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.1667 +X2_100, -8, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.0000 formation: 23 # Diez enemigos BALLOON2. Hacia la derecha. Juntos. Simétricos -X2_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.667 -X2_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.5 -X2_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.334 -X2_0, 3, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.167 -X2_0, 4, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.0 -X2_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.667 -X2_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.5 -X2_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.334 -X2_100, -3, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.167 -X2_100, -4, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.0 +X2_0, 0, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.6667 +X2_0, 1, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.5000 +X2_0, 2, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.3333 +X2_0, 3, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.1667 +X2_0, 4, DEFAULT_POS_Y, RIGHT, BALLOON, LARGE, 0.0000 +X2_100, 0, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.6667 +X2_100, -1, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.5000 +X2_100, -2, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.3333 +X2_100, -3, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.1667 +X2_100, -4, DEFAULT_POS_Y, LEFT, BALLOON, LARGE, 0.0000 formation: 24 # Treinta enemigos BALLOON0. Del centro hacia los extremos. Juntos. Simétricos -X0_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.0 -X0_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.083 -X0_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.167 -X0_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.25 -X0_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.334 -X0_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.417 -X0_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.5 -X0_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.584 -X0_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.667 -X0_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.75 -X0_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.834 -X0_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.917 -X0_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 16.7 -X0_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 16.784 -X0_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 1.167 -X0_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.0 -X0_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.083 -X0_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.167 -X0_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.25 -X0_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.334 -X0_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.417 -X0_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.5 -X0_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.584 -X0_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.667 -X0_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.75 -X0_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.834 -X0_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.917 -X0_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 16.7 -X0_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 16.784 -X0_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 1.167 +X0_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.0000 +X0_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.0833 +X0_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.1667 +X0_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.2500 +X0_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.3333 +X0_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.4167 +X0_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.5000 +X0_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.5833 +X0_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.6667 +X0_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.7500 +X0_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.8333 +X0_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.9167 +X0_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 1.0000 +X0_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 1.0833 +X0_50, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 1.1667 +X0_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.0000 +X0_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.0833 +X0_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.1667 +X0_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.2500 +X0_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.3333 +X0_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.4167 +X0_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.5000 +X0_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.5833 +X0_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.6667 +X0_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.7500 +X0_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.8333 +X0_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.9167 +X0_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 1.0000 +X0_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 1.0833 +X0_50, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 1.1667 formation: 25 # Treinta enemigos BALLOON0. Del centro hacia adentro. Juntos. Simétricos -X0_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 1.167 -X0_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 16.784 -X0_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 16.7 -X0_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.917 -X0_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.834 -X0_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.75 -X0_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.667 -X0_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.584 -X0_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.5 -X0_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.417 -X0_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.334 -X0_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.25 -X0_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.167 -X0_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.083 -X0_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.0 -X0_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 1.167 -X0_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 16.784 -X0_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 16.7 -X0_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.917 -X0_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.834 -X0_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.75 -X0_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.667 -X0_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.584 -X0_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.5 -X0_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.417 -X0_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.334 -X0_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.25 -X0_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.167 -X0_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.083 -X0_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.0 \ No newline at end of file +X0_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 1.1667 +X0_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 1.0833 +X0_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 1.0000 +X0_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.9167 +X0_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.8333 +X0_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.7500 +X0_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.6667 +X0_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.5833 +X0_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.5000 +X0_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.4167 +X0_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.3333 +X0_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.2500 +X0_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.1667 +X0_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.0833 +X0_50 + 20, 0, DEFAULT_POS_Y, LEFT, BALLOON, SMALL, 0.0000 +X0_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 1.1667 +X0_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 1.0833 +X0_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 1.0000 +X0_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.9167 +X0_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.8333 +X0_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.7500 +X0_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.6667 +X0_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.5833 +X0_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.5000 +X0_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.4167 +X0_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.3333 +X0_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.2500 +X0_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.1667 +X0_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.0833 +X0_50 - 20, 0, DEFAULT_POS_Y, RIGHT, BALLOON, SMALL, 0.0000 \ No newline at end of file diff --git a/source/balloon.cpp b/source/balloon.cpp index 2a56ad5..3cb6c24 100644 --- a/source/balloon.cpp +++ b/source/balloon.cpp @@ -268,7 +268,7 @@ void Balloon::updateState(float deltaTime) { if (movement_accumulator_ >= MOVEMENT_INTERVAL_S) { movement_accumulator_ -= MOVEMENT_INTERVAL_S; y_++; - x_ += vx_ * MOVEMENT_INTERVAL_S; // Movimiento equivalente a 10 frames de velocidad horizontal + x_ += vx_ / 60.0f; // Convierte de pixels/segundo a pixels/frame para movimiento discreto // Comprueba no se salga por los laterales const int MIN_X = play_area_.x; @@ -276,7 +276,7 @@ void Balloon::updateState(float deltaTime) { if (x_ < MIN_X || x_ > MAX_X) { // Corrige y cambia el sentido de la velocidad - x_ -= vx_ * MOVEMENT_INTERVAL_S; + x_ -= vx_ / 60.0f; vx_ = -vx_; } } diff --git a/source/balloon_formations.cpp b/source/balloon_formations.cpp index 537c1d6..a4cba1f 100644 --- a/source/balloon_formations.cpp +++ b/source/balloon_formations.cpp @@ -155,7 +155,7 @@ auto BalloonFormations::parseBalloonLine(const std::string& line, const std::map return std::nullopt; } - float creation_time = evaluateExpression(tokens.at(6), variables); // Values in formations.txt are already in seconds + float creation_time = CREATION_TIME + evaluateExpression(tokens.at(6), variables); // Base time + offset from formations.txt return SpawnParams(x + offset, y, vel_x, type, size, creation_time); } catch (const std::exception&) { @@ -235,10 +235,10 @@ void BalloonFormations::createFloaterVariants() { #ifdef _DEBUG void BalloonFormations::addTestFormation() { std::vector test_params = { - {10, -BLOCK, 0, Balloon::Type::FLOATER, Balloon::Size::SMALL, 200}, - {50, -BLOCK, 0, Balloon::Type::FLOATER, Balloon::Size::MEDIUM, 200}, - {90, -BLOCK, 0, Balloon::Type::FLOATER, Balloon::Size::LARGE, 200}, - {140, -BLOCK, 0, Balloon::Type::FLOATER, Balloon::Size::EXTRALARGE, 200}}; + {10, -BLOCK, 0, Balloon::Type::FLOATER, Balloon::Size::SMALL, 3.334f}, // 200 frames ÷ 60fps = 3.334s + {50, -BLOCK, 0, Balloon::Type::FLOATER, Balloon::Size::MEDIUM, 3.334f}, // 200 frames ÷ 60fps = 3.334s + {90, -BLOCK, 0, Balloon::Type::FLOATER, Balloon::Size::LARGE, 3.334f}, // 200 frames ÷ 60fps = 3.334s + {140, -BLOCK, 0, Balloon::Type::FLOATER, Balloon::Size::EXTRALARGE, 3.334f}}; // 200 frames ÷ 60fps = 3.334s formations_.at(99) = Formation(test_params); } diff --git a/source/balloon_formations.h b/source/balloon_formations.h index 99e1625..a8800c6 100644 --- a/source/balloon_formations.h +++ b/source/balloon_formations.h @@ -82,7 +82,8 @@ class BalloonFormations { private: // --- Constantes --- static constexpr int BALLOON_SPAWN_HEIGHT = 208; // Altura desde el suelo en la que aparecen los globos - static constexpr int DEFAULT_CREATION_TIME = 3334; // Tiempo base de creación de los globos en ms (200 frames × 16.67ms) + static constexpr float CREATION_TIME = 5.0f; // Tiempo base de creación de los globos en segundos (300 frames ÷ 60fps = 5.0s) + static constexpr float DEFAULT_CREATION_TIME = 3.334f; // Tiempo base de creación de los globos en segundos (200 frames ÷ 60fps = 3.334s) // --- Variables --- std::vector formations_; // Vector con todas las formaciones disponibles