Skip to content
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

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

Spaw enemies in a visitor #5

wants to merge 2 commits into from

Conversation

RochaCarla
Copy link

@RochaCarla RochaCarla commented Sep 30, 2020

Implementação do inimigo

  • timer randômico

  • cria inimigo de acordo com esse timer randômico

  • colocar a primeira carta do deck do inimigo

@@ -39,10 +46,19 @@ void Start()
Dealer.DealInitialCards(VisitorPlayer);

matchReferee.Setup(gameActionFactory, players: new []{HomePlayer, VisitorPlayer});

SetRandomTime();
Copy link
Collaborator

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.

Copy link
Collaborator

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;
Copy link
Collaborator

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);
Copy link
Collaborator

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(){
Copy link
Collaborator

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants