njara / mochadoom

Fork of Mochadoom from Sourceforge
GNU General Public License v3.0
0 stars 1 forks source link

RS01 - Transformación Enemigo Zombie #2

Closed juakotorres closed 8 years ago

juakotorres commented 8 years ago

Requisitos de Usuario asociados RU01 - Jugador/Enemigo Transformación Zombie

juakotorres commented 8 years ago

Initialization

Los enemigos al morir deben transformarse en un zombie. El zombie al cual reviven depende de una probabilidad la cual depende de la dificultad.

juakotorres commented 8 years ago

Concept Location

Monsters, Zombie, Kill, GameSkill.

juakotorres commented 8 years ago

Impact Analysis

Análisis con JRipples. Clases que se podrían ver impactadas:

juakotorres commented 8 years ago

Prefactoring

En la clase Actions al momento de morir en la función KillMobj se efectúa la creación de los zombies mediante un nuevo método llamada SpawnZombieMobj la cual efectúa que el zombie sea el zombie del monstruo elimininado y posteriormente elimina el cuerpo del monstruo anterior. Este le asigna los sprites adecuados y las info. (Programado por Joaquín)

Para la asignación de la probabildad según una función de pesos llamada getZombieWeigth la cual retorna el peso de la probabilidad que tiene el color de ser asignado a un zombie. Posteriormente el método getRandomZombieType usa esos pesos para sacar aleatoriamente el tipo de zombie al cual se asignará esta retorna el tipo de zombie elegido. (Programado por Braulio)

elbraulio commented 8 years ago

Prefactoring

Para ello se creó un método getZombieSpawnTime la cual retorna el tiempo para el cual se demora en aparecer el zombie creado. a7f36d34d0c4a8995a25f91b7402ba032cb600c1

juakotorres commented 8 years ago

Change Propagation

La única clase impactada fue Actions.

juakotorres commented 8 years ago

Verification

Al tener muchos objetos zombies el juego deja de funcionar correctamente por lo que necesita postfactoring con respecto a los Threads creados.

juakotorres commented 8 years ago

Postfactoring

Ahora los zombies son clases por separado, llamadas GreenZombie_t,RedZombie_t,GrayZombie_t,BlackZombie_t. Se arreglo bug de que dos monstruos pueden aparecer en la misma posición, usando el método CheckPosition.

juakotorres commented 8 years ago

Conclusion

Los monstruos se transforman en zombies una vez que pierden toda su vida.