- Bot de Discord: tener un token del bot previamente creado en Discord Developer Portal.
- Configurar el token como una variable de entorno con el siguiente comando: setx DISCORD_TOKEN "token del bot"
El juego es un sistema de combate por turnos multijugador, diseñado en un formato 1 vs 1 mediante comandos de un chatbot. Cada jugador tendrá un equipo de 6 Pokémon disponibles para la batalla, los cuales se mostrarán en pantalla para facilitar la selección estratégica. Cada Pokémon podrá utilizar 4 movimientos de ataque estándar, además de contar con un ataque especial disponible cada dos turnos. El sistema calculará automáticamente la efectividad de los ataques según los tipos de los Pokémon, aplicando ventajas o desventajas de manera dinámica.
Durante cada turno, los jugadores podrán realizar una sola acción, como atacar, cambiar de Pokémon u optar por usar un item. La interfaz del juego permitirá a cada jugador visualizar la vida restante de los Pokémon del oponente, de quién es el turno actual y la acción seleccionada. El combate continuará hasta que todos los Pokémon de un jugador sean derrotados, declarando como ganador al último entrenador con Pokémon en pie.
-
Equipo de 6 Pokémon: Cada jugador seleccionar su equipo.
-
Combates por turnos
-
Ataques especiales
- Juega desde la comodidad de un chatbot.
- Comandos amigables para facilitar la interacción.
- Efectividad basada en tipos (fuego, agua, planta, etc.).
- Estados especiales como Dormido y Envenenado.
- Implementación de APIs para enriquecer la experiencia de juego y agregar datos personalizados.
- Usa ítems como Pociones, Revive o TotalCure para cambiar la batalla.
- Cambia de Pokémon en el momento
- Fue usado en: Clases con interfaces como IBattle, IPlayer, IPokemon, IItems.
- Por que: Modularidad
- Fue usado en: Generalmente, Items se basa en este principio
- Por que: Mayor capacidad de adaptacion de las clases y ayudar
- Fue usado en : BotQueuePlayers
- Por que: A medida que se ejecutaba el programa se instanciaban varias filas
-
Battle: Coordina el flujo de los combates.
-
Shift: Cambia el Pokémon activo durante el combate.
-
Pokemon: Define características, movimientos y estados de un Pokémon.
-
Move y MoveDetail: Modelan los ataques y sus detalles.
-
Type y TypeDetail: Definen los tipos y sus ventajas/desventajas.
- Player: Administra el equipo y los objetos del jugador.
- Items: Clases base para objetos como SuperPotion , Revive y TotalCure .
- PokemonApi: Proporciona datos adicionales para los Pokémon.
- IPokemonCreator: Genera Pokémon personalizados con atributos definidos.
- Errores en la implementacion de la API. (solucionado)
- Correcciones para poder atacar durante la ronda con Items. (solucionado)
- Cambiar de Pokemon.(solucionado)
- Implementacion de los Test.(echo)
- Implementacion de turnos individuales para ataques especiales.(echo)
- Aplicacion de dormir al enemigo.(echo)
Tuvimos muchos problemas con el discord,su integracion y la sintaxis.
-
El que creaba mas problemas en esta entrega fue battle,botqueue y battle commands, ya que la logica nueva mayormente esta albergada en estas clases.
-
Un problema recurrente es la sobresaturacion de "await" que hay, crea una demora la respuesta del bot en la batalla y en general. Puede incluso generar un desorder en mensajes que se muestra en el chat.