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
+29 -29
View File
@@ -10,46 +10,46 @@
namespace StageSystem {
// Tipo de mode de spawn
enum class ModeSpawn : std::uint8_t {
// 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 molinillo; // 0-100
// Suma ha de ser 100, validat en StageLoader
};
};
// Multiplicadors de dificultat
struct MultiplicadorsDificultat {
// 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,12 +76,12 @@ 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 = {
// 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!",
@@ -95,7 +95,7 @@ inline constexpr std::array<const char*, 12> MISSATGES_LEVEL_START = {
"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