Sto scrivendo la logica di base di Pokemon Gen I in Java (8), e sto cercando di capire il modo migliore per implementare l'aspetto del gioco a turni. In questo momento ho una classe Battle
che ha due Player
s ciascuno con un PokemonTeam
.
L'idea è che un Player
prende un Turn
(un Battle
ha molti Turn
s) e alcune azioni si verificano, ad es. attacca con Pokemon
, usa Item
, cambia Pokemon
, ecc. Quindi, una volta che l'azione singola è stata presa, deve essere applicata durante quel turno, e poi l'altro giocatore prende il turno.
Il mio design originale, che è leggermente cambiato, assomiglia a questo:
StavoprogettandodiimplementareunasuperclasseAction
eActionResult
,consottoclassiperciascunodeitipidiazione(adesempioAttackAction
eAttackActionResult
).Masembrachesarebbeunpo'diconfusionedausare,elaresponsabilitàdiapplicaredanni,effetti,gestionedellosvenimentodiPokemon,ecc.,Tuttosiriempieinquellesottoclassi,ilchesembraunacattivaidea.
Poimisonoimbattutonel
Il modello di comando si adatta bene a un gioco a turni come Pokemon, o c'è qualcosa di più appropriato?