tune(stages): stage 1 a 50 enemics i puja el cap de validació a 200
This commit is contained in:
@@ -9,11 +9,11 @@ metadata:
|
|||||||
stages:
|
stages:
|
||||||
# STAGE 1: Tutorial - Only pentagons, slow speed
|
# STAGE 1: Tutorial - Only pentagons, slow speed
|
||||||
- stage_id: 1
|
- stage_id: 1
|
||||||
total_enemies: 5
|
total_enemies: 50
|
||||||
spawn_config:
|
spawn_config:
|
||||||
mode: "progressive"
|
mode: "progressive"
|
||||||
initial_delay: 2.0
|
initial_delay: 0.3
|
||||||
spawn_interval: 3.0
|
spawn_interval: 0.4
|
||||||
enemy_distribution:
|
enemy_distribution:
|
||||||
pentagon: 100
|
pentagon: 100
|
||||||
cuadrado: 0
|
cuadrado: 0
|
||||||
|
|||||||
@@ -10,46 +10,46 @@
|
|||||||
|
|
||||||
namespace StageSystem {
|
namespace StageSystem {
|
||||||
|
|
||||||
// Tipo de mode de spawn
|
// Tipo de mode de spawn
|
||||||
enum class ModeSpawn : std::uint8_t {
|
enum class ModeSpawn : std::uint8_t {
|
||||||
PROGRESSIVE, // Spawn progressiu con intervals
|
PROGRESSIVE, // Spawn progressiu con intervals
|
||||||
IMMEDIATE, // Todos los enemigos de cop
|
IMMEDIATE, // Todos los enemigos de cop
|
||||||
WAVE // Onades de 3-5 enemigos (futura extensió)
|
WAVE // Onades de 3-5 enemigos (futura extensió)
|
||||||
};
|
};
|
||||||
|
|
||||||
// Configuración de spawn
|
// Configuración de spawn
|
||||||
struct ConfigSpawn {
|
struct ConfigSpawn {
|
||||||
ModeSpawn mode;
|
ModeSpawn mode;
|
||||||
float delay_inicial; // Segons antes del primer spawn
|
float delay_inicial; // Segons antes del primer spawn
|
||||||
float interval_spawn; // Segons entre spawns consecutius
|
float interval_spawn; // Segons entre spawns consecutius
|
||||||
};
|
};
|
||||||
|
|
||||||
// Distribució de type de enemigos (percentatges)
|
// Distribució de type de enemigos (percentatges)
|
||||||
struct DistribucioEnemics {
|
struct DistribucioEnemics {
|
||||||
uint8_t pentagon; // 0-100
|
uint8_t pentagon; // 0-100
|
||||||
uint8_t cuadrado; // 0-100
|
uint8_t cuadrado; // 0-100
|
||||||
uint8_t molinillo; // 0-100
|
uint8_t molinillo; // 0-100
|
||||||
// Suma ha de ser 100, validat en StageLoader
|
// Suma ha de ser 100, validat en StageLoader
|
||||||
};
|
};
|
||||||
|
|
||||||
// Multiplicadors de dificultat
|
// Multiplicadors de dificultat
|
||||||
struct MultiplicadorsDificultat {
|
struct MultiplicadorsDificultat {
|
||||||
float velocity; // 0.5-2.0 típic
|
float velocity; // 0.5-2.0 típic
|
||||||
float rotation; // 0.5-2.0 típic
|
float rotation; // 0.5-2.0 típic
|
||||||
float tracking_strength; // 0.0-1.5 (aplicat a Cuadrado)
|
float tracking_strength; // 0.0-1.5 (aplicat a Cuadrado)
|
||||||
};
|
};
|
||||||
|
|
||||||
// Metadades del file YAML
|
// Metadades del file YAML
|
||||||
struct MetadataStages {
|
struct MetadataStages {
|
||||||
std::string version;
|
std::string version;
|
||||||
uint8_t total_stages;
|
uint8_t total_stages;
|
||||||
std::string descripcio;
|
std::string descripcio;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Configuración completa de un stage
|
// Configuración completa de un stage
|
||||||
struct StageConfig {
|
struct StageConfig {
|
||||||
uint8_t stage_id; // 1-10
|
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;
|
ConfigSpawn config_spawn;
|
||||||
DistribucioEnemics distribucio;
|
DistribucioEnemics distribucio;
|
||||||
MultiplicadorsDificultat multiplicadors;
|
MultiplicadorsDificultat multiplicadors;
|
||||||
@@ -59,13 +59,13 @@ struct StageConfig {
|
|||||||
// stage_id es uint8_t: el rango superior (<=255) está garantizado por
|
// stage_id es uint8_t: el rango superior (<=255) está garantizado por
|
||||||
// el tipo; basta con confirmar que no es 0 (sentinela "sin asignar").
|
// el tipo; basta con confirmar que no es 0 (sentinela "sin asignar").
|
||||||
return stage_id >= 1 &&
|
return stage_id >= 1 &&
|
||||||
total_enemies > 0 && total_enemies <= 15 &&
|
total_enemies > 0 && total_enemies <= 200 &&
|
||||||
distribucio.pentagon + distribucio.cuadrado + distribucio.molinillo == 100;
|
distribucio.pentagon + distribucio.cuadrado + distribucio.molinillo == 100;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// Configuración completa del sistema (carregada desde YAML)
|
// Configuración completa del sistema (carregada desde YAML)
|
||||||
struct StageSystemConfig {
|
struct StageSystemConfig {
|
||||||
MetadataStages metadata;
|
MetadataStages metadata;
|
||||||
std::vector<StageConfig> stages; // Índex [0] = stage 1
|
std::vector<StageConfig> stages; // Índex [0] = stage 1
|
||||||
|
|
||||||
@@ -76,12 +76,12 @@ struct StageSystemConfig {
|
|||||||
}
|
}
|
||||||
return &stages[stage_id - 1];
|
return &stages[stage_id - 1];
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// Constants per messages de transición
|
// Constants per messages de transición
|
||||||
namespace Constants {
|
namespace Constants {
|
||||||
// Pool de messages per start de level (selecció aleatòria)
|
// Pool de messages per start de level (selecció aleatòria)
|
||||||
inline constexpr std::array<const char*, 12> MISSATGES_LEVEL_START = {
|
inline constexpr std::array<const char*, 12> MISSATGES_LEVEL_START = {
|
||||||
"ORNI ALERT!",
|
"ORNI ALERT!",
|
||||||
"INCOMING ORNIS!",
|
"INCOMING ORNIS!",
|
||||||
"ROLLING THREAT!",
|
"ROLLING THREAT!",
|
||||||
@@ -95,7 +95,7 @@ inline constexpr std::array<const char*, 12> MISSATGES_LEVEL_START = {
|
|||||||
"ENEMY FORCES MOBILIZING!",
|
"ENEMY FORCES MOBILIZING!",
|
||||||
"PREPARE FOR IMPACT!"};
|
"PREPARE FOR IMPACT!"};
|
||||||
|
|
||||||
constexpr const char* MISSATGE_LEVEL_COMPLETED = "GOOD JOB COMMANDER!";
|
constexpr const char* MISSATGE_LEVEL_COMPLETED = "GOOD JOB COMMANDER!";
|
||||||
} // namespace Constants
|
} // namespace Constants
|
||||||
|
|
||||||
} // namespace StageSystem
|
} // namespace StageSystem
|
||||||
|
|||||||
Reference in New Issue
Block a user