Con la commit sopra citata, ho modificato ciò che avviene in fase di attacco (per ora solo nel Contadino, ma ho già predisposto anche Personaggio per questo cambiamento).
Adesso, attacca(Personaggio nemico) chiama il metodo riceviColpo(IAttaccante, int danno), che si preoccupa di effettuare il contrattacco se ce n'è la possibilità e, nel caso questo fallisca, di mitigare il danno con la statistica difesa e chiamare modificaPuntiVita con il valore del danno già sistemato.
Note:
in quest'implementazione, ho considerato il contrattacco come esclusivo di chi implementa IAttaccante (da confermare in #7)
@AlibabaSakura il valore ritornato dal tuo metodo attacca() doveva essere gestito dalla classe di gestione della partita? Non trovi che nel tuo caso appesantiremmo troppo la classe di gestione con compiti che potrebbero benissimo "sbrigarsi" i personaggi fra di loro?
Con la commit sopra citata, ho modificato ciò che avviene in fase di attacco (per ora solo nel Contadino, ma ho già predisposto anche Personaggio per questo cambiamento). Adesso,
attacca(Personaggio nemico)
chiama il metodoriceviColpo(IAttaccante, int danno)
, che si preoccupa di effettuare il contrattacco se ce n'è la possibilità e, nel caso questo fallisca, di mitigare il danno con la statistica difesa e chiamaremodificaPuntiVita
con il valore del danno già sistemato.Note: