-
Notifications
You must be signed in to change notification settings - Fork 37
Sistemas
Los sistemas tienen como responsabilidad procesar entidades, usando cierta lógica (acotada) aplicada a X componentes. Estos tienen un "Aspect" que nos indica a que entidades quiere procesar, es decir que componentes tiene o no, y en caso de cumplir con esa premisa, seran procesados.
Aspecto: Debe tener "Character" y "Heading". No debe tener Moving ni AttackAnimation. Contexto: Las animaciones llevan la cuenta de un llamado "idleTime", que dependiendo de el momento en el que está, se usara para renderizar de alguna manera distinta, para asi simular una animacion de idle. Responsabilidad: Se encarga que con el paso del tiempo ir actualizando este "idleTime" en las entidades.
Aspecto: Debe tener "Character" y "Heading". No debe tener Moving ni AttackAnimation. Responsabilidad: Avanzar el tiempo de las animaciones
Aspecto: Debe tener Focused y WorldPos Responsabilidad: Mover las coordenadas de la camara para seguir al personaje principal.
Responsabilidad: Crea las camaras (GUI y world), sabe hacer zoom.
Responsabilidad: Es el encargado de procesar y ejecutar Kryonet, actúa como listener y sabe enviar paquetes.
Responsabilidad: Sincronizar el tiempo local con el del servidor cada X segundos.
Aspecto: Debe tener Focused, AOPhysics y WorldPos (personaje principal) Responsabilidad: Prediccion y reconciliacion. Cuando el personaje tiene intenciones de moverse, predice el movimiento, y una vez recibida la respuesta del servidor, valida la prediccion, en caso de haber pifiado, corrige la posicion.
Aspecto: Debe tener AOPhysics y WorldPos Responsabilidad: Mueve las coordenadas (float, no int) de las entidades.
Aspecto: Debe tener AttackAnimation o Attack Responsabilidad: Avanzar animacion de ataque, y actualizar el intervalo de golpe.
Aspecto: Debe tener Focused y AOPhysics Responsabilidad: Chequea si hay intenciones de moverse (Lee las flechas o WASD)
Aspecto: Debe tener Focused y WorldPos Responsabilidad: Renderizar las coordenadas en la esquina de la pantalla
Aspecto: Debe tener Character, WorldPos, Body y Heading. Responsabilidad: Renderizar a los personajes en la camara utilizada para el "world"
Aspecto: Debe tener Character y WorldPos. Responsabilidad: Renderiza los estados de un personaje. TODO: agregar estados
Aspecto: Debe tener CombatMessage, Body y WorldPos. Responsabilidad: Dibuja los mensajes de combate sobre el personaje (daños, fallos, mana recuperada)
Aspecto: Dialog, Body y WorldPos Responsabilidad: Renderizar los mensajes de las entities
Aspecto: FX y WorldPos Responsabilidad: Maneja los FXs y distintas animaciones (puede haber FXs repetidos) y los renderiza.
Aspecto: Focused Responsabilidad: Dibuja la luz central y oscurece fuera del rango de vision.
Responsabilidad: Dibuja las capas previo a los personajes (terreno y animaciones)
Responsabilidad: Dibuja las capas posteriores a los personajes
Aspecto: Debe tener Character, WorldPos y Name Responsabilidad: Dibujar los nombres
Aspecto: Debe tener Object y WorldPos Responsabilidad: Renderiza los objetos en el suelo
Aspecto: Debe tener FX y WorldPos Responsabilidad: Renderiza las particulas luego de renderizar personajes (como meditar)
Aspecto: Debe tener WorldPos y Immobile (por ahora) Responsabilidad: Por ahora solo renderizar una P cuando estas paralizado o alguien de tu clan
Aspecto: Debe tener Focused Responsabilidad: Si has seleccionado un hechizo y estas por lanzar, dibuja el tile al cual va a dirigir el ataque en caso de hacer click
Responsabilidad: Maneja las conexiones mientras se esta en la pantalla de lobby o rooms.
Aspecto: Debe tener FootPrint y WorldPos Responsabilidad: Borra las huellas que se dejaron luego de que pase el tiempo de vida
Aspecto: Debe tener Meditating y Mana Responsabilidad: Se ejecuta cada un intervalo de tiempo, si recupero maná (probabilidad), notifica y manda un update al usuario.
Hace falta revisar, se uso para testing. Aspecto: Debe tener RandomMovement Responsabilidad: Mueve a una entidad en una direccion random
Responsabilidad: Es el encargado de procesar y ejecutar Kryonet, actúa como listener y sabe enviar paquetes.
- IntelliJ
- Windows JDK
- Linux JDK
- Run client and server localhost
- Host a public server
- Import project to IntelliJ