Aplicar consecuencias al mover para CasoDeUso9 #51
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
La idea es la propuesta por @juan-sosa "Habia pensado para ese caso que llegar a la meta sea una Consecuencia y aplicar una estrategia parecida a la que implemento Naza con FieraSalvaje". La implementación que hice es bastante fea, y sin duda require de un refactor pero nos permite pasar el caso de uso 9.
Básicamente existe una consecuencia triunfo
llama al método triunfar de Gladiador y lanza TriunfoException si posee el último equipamiento (el que al incrementarse ya no puede incrementarse) o te retrocede la mitad de posiciones:
Cosas que no me gustan:
SinConcecuencia
que es una clase anémica (espantoso)Triunfo
puede lanzar unTriunfoException
al hacer uso del metodoconcecuencia.afectarGladiador(gladiador)
entonces este debe pasar a serafectarGladiador(Gladiador gladiador) throws TriunfoException
propagándose así a todo lugar donde se aplique una consecuencia. Osea si hago unFieraSalvaje.afectarGladiador(gladiador)
tengo que tratar la posibleTriunfoException
. Creo que en general no esta nada bueno.Movible
. Siento que el gladiador cada vez esta mas cargado de responsabilidades.