Closed Fs00 closed 6 years ago
Non ho ben capito l'utilità di questa funzionalità. Per contrattacco si intende la possibilità di un personaggio di difendersi dal colpo subìto ed attaccare nella stessa mossa? Io pensavo semplicemente che se un personaggio (poniamo il Soldato) viene attaccato, egli può mitigare il danno con la difesa, quindi al suo turno ha la possibilità di sferrare un altro colpo all'avversario.
Ad ogni modo, io lo aggiungerei all'interfaccia IAttaccante e non solo al Contadino.
Il Counter (contrattacco) funge da “rifletti i danni” e si attiva passivamente solo con una certa possibilità durante l’attacco del nemico (è possibile fare 20% di possibilità di riflettere i danni, facendo citazione a una skill già usata “20% chance of reflecting Physical attacks.”). L’idea di implementarlo sul Contadino come esclusiva è giustificata per bilanciare quella classe rispetto agli altri attaccanti.
@AlibabaSakura La percentuale del 20% mi piace. Quindi il danno del contrattacco lo facciamo uguale all'attacco originario (@alegotta d'accordo)? Però rimango convinto che, per pura e semplice logica, un Soldato e un Mercenario non possono non saper contrattaccare. Per trovare un compromesso, @AlibabaSakura, metterei la probabilità di contrattacco al 20% per i Combattenti e al 30% per il Contadino. Più che altro, è per il fatto che giocando Soldato vs Mercenario (che è effettivamente l'unica cosa sensata di questo gioco) non incontreresti mai contrattacchi e diventerebbe una feature dal potenziale un po' sprecato.
E soprattutto dobbiamo decidere se chi riceve un contrattacco può a sua volta contrattaccare, non sarebbe una brutta feature e renderebbe i combattimenti un po' più "movimentati".
Alla fine è stato deciso che il contrattacco viene inserito nell'interfaccia IAttaccante, non è contrattaccabile a sua volta e riflette il 100% del danno dell'attacco originario.
Ultima proposta: la probabilità del contrattacco potrebbe essere calcolata utilizzando la velocità, nello specifico VEL/1,5. In questo caso i valori risultanti (arrotondati all'intero più vicino) sarebbero:
I valori sono comunque vicini a quelli proposti in precedenza e ciò ci consentirebbe di sfruttare maggiormente una statistica già definita senza dichiarare ulteriori campi.
Ok, è una buona idea.
Riflettendo, la soluzione proposta nel post precedente è l'unica praticabile senza aggiungere una nuova statistica, dato che la probabilità del contrattacco è calcolata in subisciColpo(), che si trova nella classe Personaggio. Quindi adottiamo questa soluzione.
Una cosa che non abbiamo ancora definito è il contrattacco. Chi lo può usare? @AlibabaSakura suggeriva di implementarla come esclusiva del Contadino, per bilanciarlo rispetto al Soldato e al Mercenario. Tuttavia, come si giustifica il fatto che un Mercenario o un Soldato non sappiano contrattaccare? Quindi lo implementiamo come parte del Contadino o come parte di IAttaccante?
E soprattutto, come va implementato? In teoria, quando si subisce il colpo ci dovrebbe essere una probabilità (da definire) che il colpo possa essere contrattaccato. Inoltre, chi contrattacca non dovrebbe subire il danno dell'attacco originario, ma chi subisce il contrattacco quanto danno deve subire? Io pensavo il 50% del danno originale, ditemi voi cosa ne pensate.