tune(stages): stage 1 a 50 enemics i puja el cap de validació a 200

This commit is contained in:
2026-05-21 18:58:33 +02:00
parent 1c1fd1273b
commit 7646daef3d
2 changed files with 50 additions and 50 deletions
+3 -3
View File
@@ -9,11 +9,11 @@ metadata:
stages:
# STAGE 1: Tutorial - Only pentagons, slow speed
- stage_id: 1
total_enemies: 5
total_enemies: 50
spawn_config:
mode: "progressive"
initial_delay: 2.0
spawn_interval: 3.0
initial_delay: 0.3
spawn_interval: 0.4
enemy_distribution:
pentagon: 100
cuadrado: 0
+47 -47
View File
@@ -10,46 +10,46 @@
namespace StageSystem {
// Tipo de mode de spawn
enum class ModeSpawn : std::uint8_t {
PROGRESSIVE, // Spawn progressiu con intervals
IMMEDIATE, // Todos los enemigos de cop
WAVE // Onades de 3-5 enemigos (futura extensió)
};
// Tipo de mode de spawn
enum class ModeSpawn : std::uint8_t {
PROGRESSIVE, // Spawn progressiu con intervals
IMMEDIATE, // Todos los enemigos de cop
WAVE // Onades de 3-5 enemigos (futura extensió)
};
// Configuración de spawn
struct ConfigSpawn {
// Configuración de spawn
struct ConfigSpawn {
ModeSpawn mode;
float delay_inicial; // Segons antes del primer spawn
float interval_spawn; // Segons entre spawns consecutius
};
};
// Distribució de type de enemigos (percentatges)
struct DistribucioEnemics {
// Distribució de type de enemigos (percentatges)
struct DistribucioEnemics {
uint8_t pentagon; // 0-100
uint8_t cuadrado; // 0-100
uint8_t cuadrado; // 0-100
uint8_t molinillo; // 0-100
// Suma ha de ser 100, validat en StageLoader
};
};
// Multiplicadors de dificultat
struct MultiplicadorsDificultat {
float velocity; // 0.5-2.0 típic
float rotation; // 0.5-2.0 típic
// Multiplicadors de dificultat
struct MultiplicadorsDificultat {
float velocity; // 0.5-2.0 típic
float rotation; // 0.5-2.0 típic
float tracking_strength; // 0.0-1.5 (aplicat a Cuadrado)
};
};
// Metadades del file YAML
struct MetadataStages {
// Metadades del file YAML
struct MetadataStages {
std::string version;
uint8_t total_stages;
std::string descripcio;
};
};
// Configuración completa de un stage
struct StageConfig {
// Configuración completa de un stage
struct StageConfig {
uint8_t stage_id; // 1-10
uint8_t total_enemies; // 5-15
uint8_t total_enemies; // 1-200 (el cap simultani en pantalla el marca MAX_ORNIS)
ConfigSpawn config_spawn;
DistribucioEnemics distribucio;
MultiplicadorsDificultat multiplicadors;
@@ -59,13 +59,13 @@ struct StageConfig {
// stage_id es uint8_t: el rango superior (<=255) está garantizado por
// el tipo; basta con confirmar que no es 0 (sentinela "sin asignar").
return stage_id >= 1 &&
total_enemies > 0 && total_enemies <= 15 &&
total_enemies > 0 && total_enemies <= 200 &&
distribucio.pentagon + distribucio.cuadrado + distribucio.molinillo == 100;
}
};
};
// Configuración completa del sistema (carregada desde YAML)
struct StageSystemConfig {
// Configuración completa del sistema (carregada desde YAML)
struct StageSystemConfig {
MetadataStages metadata;
std::vector<StageConfig> stages; // Índex [0] = stage 1
@@ -76,26 +76,26 @@ struct StageSystemConfig {
}
return &stages[stage_id - 1];
}
};
};
// Constants per messages de transición
namespace Constants {
// Pool de messages per start de level (selecció aleatòria)
inline constexpr std::array<const char*, 12> MISSATGES_LEVEL_START = {
"ORNI ALERT!",
"INCOMING ORNIS!",
"ROLLING THREAT!",
"ENEMY WAVE!",
"WAVE OF ORNIS DETECTED!",
"NEXT SWARM APPROACHING!",
"BRACE FOR THE NEXT WAVE!",
"ANOTHER ATTACK INCOMING!",
"SENSORS DETECT HOSTILE ORNIS...",
"UNIDENTIFIED ROLLING OBJECTS INBOUND!",
"ENEMY FORCES MOBILIZING!",
"PREPARE FOR IMPACT!"};
// Constants per messages de transición
namespace Constants {
// Pool de messages per start de level (selecció aleatòria)
inline constexpr std::array<const char*, 12> MISSATGES_LEVEL_START = {
"ORNI ALERT!",
"INCOMING ORNIS!",
"ROLLING THREAT!",
"ENEMY WAVE!",
"WAVE OF ORNIS DETECTED!",
"NEXT SWARM APPROACHING!",
"BRACE FOR THE NEXT WAVE!",
"ANOTHER ATTACK INCOMING!",
"SENSORS DETECT HOSTILE ORNIS...",
"UNIDENTIFIED ROLLING OBJECTS INBOUND!",
"ENEMY FORCES MOBILIZING!",
"PREPARE FOR IMPACT!"};
constexpr const char* MISSATGE_LEVEL_COMPLETED = "GOOD JOB COMMANDER!";
} // namespace Constants
constexpr const char* MISSATGE_LEVEL_COMPLETED = "GOOD JOB COMMANDER!";
} // namespace Constants
} // namespace StageSystem