Fs00 / rpg-game-4inc

Didactic and highly experimental Java CLI RPG game made by a bunch of IT students.
0 stars 0 forks source link

Come implementiamo la modalità difensiva del Soldato? (parte di IDifesa) #11

Closed Fs00 closed 6 years ago

Fs00 commented 6 years ago

Dobbiamo decidere come implementare la modalità difensiva del Soldato, parte di IDifesa. @AlibabaSakura suggeriva di far perdere un turno al Soldato, in modo che poi nei turni successivi la sua difesa fosse raddoppiata (danni dimezzati attraverso l'override di modificaPuntiVita() presente in Combattente). Da qui seguono due domande:

L'implementazione, in ogni caso, toccherà a @AlibabaSakura.

alegotta commented 6 years ago

Punto 1: Sicuramente la farei durare un numero limitato di scontri. Sul numero intanto va bene mettere 5, poi a lavoro finito valuteremo se cambiarlo.

Punto 2: Io diminuirei l'attacco al 35% in meno

AlibabaSakura commented 6 years ago

Allora, il "guard" (o la modalità difensiva) deve solo usufruire di un turno per mettersi sulla difensiva. Se poi magari l'avversario non dovesse attaccare dopo il "guard", allora possiamo dire che ha sprecato un turno inutilmente e quindi perde il buff dei danni dimezzati). I debuff sono solo degli svantaggii inutili per quello che fa questa tecnica.

Fs00 commented 6 years ago

Ah, ora ho capito cosa intendevi! In sostanza perde un turno per poi subire danni dimezzati nel turno dopo. Allora ok, non servono altri debuff. A questo punto direi di inserire un metodo chiamato preparaDifesa() in IDifesa, che poi una volta implementato in Soldato metterà solo a true il valore del booleano della difesa. Importante ricordarsi di ripristinare il valore del booleano nell'override di modificaPuntiVita().

Fs00 commented 6 years ago

Riassegnato questo issue ad @alegotta dato che il Soldato è una classe di sua competenza.

alegotta commented 6 years ago

Questa modalità è esclusiva del soldato? In tal caso, l'ovverride di modificaPuntiVita può essere spostato da "Combattente" a "Soldato", dato che riguarda solo lui (idem per il booleano isDef).

Inoltre, nella classe Combattente sarebbe più logico cambiare il booleano powUp ad intero (con valore 1 o 2), affinché si possa usare direttamente come moltiplicatore senza usare il metodo moltiplicatoreAttacco.