Skip to content

Completar el VisitorFactory con todas las facciones #23

@GabrielEValenzuela

Description

@GabrielEValenzuela

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 UNKNOWN no 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.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions