-
Notifications
You must be signed in to change notification settings - Fork 44
Open
Description
Descripción
Actualmente, el método VisitorFactory::create() contiene únicamente dos implementaciones para las facciones: RAIDERS y REFUGEES.
Esta tarea consiste en añadir las demás facciones al FACTORY_MAP, utilizando lógica coherente con la configuración del juego (GameConfig) y generadores aleatorios (RandomEventGenerator).
Facciones pendientes por implementar:
-
STEEL_BROTHERS -
ENCLAVE -
MUTANTS -
GHOULS -
LOOTERS -
MERCHANTS -
WATER_MERCHANTS -
CARAVAN - Validar que
UNKNOWNno se genere nunca o manejar como caso excepcional.
Ejemplo de implementación esperada
{EngineData::Faction::REFUGEES,
[](VisitorFactory* self)
{
auto name = self->m_randomGenetor->randomChoice(NAMES);
auto surname = self->m_randomGenetor->randomChoice(SURNAMES);
auto fullName = name + " " + surname;
bool isFromVault = self->m_randomGenetor->chance(0.5);
auto bag = self->bagGenerator(isFromVault);
return Refugee(fullName, isFromVault, bag);
}},Recursos disponibles
self->m_randomGenetor: Generador de números aleatorios y nombres.self->m_config: Configuración general del juego.- Constantes como
NAMES,SURNAMES,GROUPS_ENEMIES,MERCHANTS.
Criterios de aceptación
- Todas las facciones posibles tienen su entry en
FACTORY_MAP. - Cada función lambda crea correctamente una instancia del tipo correspondiente.
- Se respetan las configuraciones de
GameConfig. - El código es limpio, compilable y con manejo de errores claro.
- Se actualizan los tests de integración en caso de ser necesario.