Conversation
|
|
||
| matchReferee.Setup(gameActionFactory, players: new []{HomePlayer, VisitorPlayer}); | ||
|
|
||
| SetRandomTime(); |
There was a problem hiding this comment.
O GameRoom não parece o lugar ideal pra controlar a estratégia do bot que vai jogar pelo visitante, acho que uma solução mais robusta seria onde o VisitorPlayer é criado no gameObjectFactory ser instanciado uma PlayerBotController ou algo do tipo que implementa a interface IPlayer e no Update dele controla a estratégia de quando jogar uma carta e qual carta jogar, chamando nesse momento o OnVisitorUsedCard.
As vantagens dessa abordagem são principalmente continuar com a semântica do GameRoom só inicializar a sala e ter a lógica do Bot isolada em um lugar que facilita a extensão dela, no futuro poderemos ter varias estratégias diferentes para o bot e essa classe pode controlar isso.
There was a problem hiding this comment.
Se vocês discordarem dessa proposta de solução ou não entenderem algo do que eu falei a gente pode marcar uma call pra conversar melhor
|
|
||
| Dealer Dealer { get; } = new Dealer(); | ||
|
|
||
| public float maxTime = 20; |
There was a problem hiding this comment.
Todas essas variáveis iriam para a classe do Bot descrita alí embaixo
| time += Time.deltaTime; | ||
|
|
||
| if(time >= spawnTime){ | ||
| Dealer.DealCard(VisitorPlayer); |
There was a problem hiding this comment.
Esse DealCard do visitor iria pro OnVisitorUsedCard após o uso da carta assim como acontece no OnHomePlayerUsedCard
|
|
||
| } | ||
|
|
||
| void OnVisitorUsedCard(){ |
There was a problem hiding this comment.
Esse método está no lugar certo, mas ele precisa ser acessado pelo Bot, um jeito interessante seria o Bot ter uma Action<CardType, int> PlayCard que pode ser setada no Start do GameRoom, assim a gente não cria o acoplamento de ter no Bot acesso direto ao GameRoom
Implementação do inimigo
timer randômico
cria inimigo de acordo com esse timer randômico
colocar a primeira carta do deck do inimigo