-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Spaw enemies in a visitor #5
base: master
Are you sure you want to change the base?
Conversation
@@ -39,10 +46,19 @@ void Start() | |||
Dealer.DealInitialCards(VisitorPlayer); | |||
|
|||
matchReferee.Setup(gameActionFactory, players: new []{HomePlayer, VisitorPlayer}); | |||
|
|||
SetRandomTime(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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
@@ -20,6 +20,13 @@ public class GameRoom : MonoBehaviour | |||
|
|||
Dealer Dealer { get; } = new Dealer(); | |||
|
|||
public float maxTime = 20; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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