public void construireColonie(Joueur j) { if (controlleur != null) throw new ArgumentException("Un joueur tente de construire une colonie sur un emplacement qui ne lui appartient pas!"); if (estVille) throw new ArgumentException("Un joueur tente de construire une colonie sur une ville!"); controlleur = j; }
public RessourceGroupe getResPourJoueur(Joueur j) { RessourceGroupe res = new RessourceGroupe(); //partie.plateau. return res; }
public void addJoueur(Joueur j) { for (int i = 0; i < joueurs.Count(); i++) { if (joueurs[i] == null) { joueurs[i] = j; break; } } }
private bool colonieRelieAJoueur(EmplacementColonie c, Joueur j) { if (c.controlleur != null && c.controlleur.nom == j.nom) return true; foreach( Chemin ch in c.connections ) { if (ch.proprietaire != null && ch.proprietaire.nom == j.nom) return true; } return false; }
public Joueur ajouterConnectionJoueur(string username, ServeurJoueur sj) { if (joueurs.Where(item => item.nom == username).Any()) { Console.WriteLine("Le username existe déjà sur le serveur."); return null; } Joueur j = new Joueur(username, getNextCouleur()); joueurs.Add(j); joueursEnAttente.Add(sj); Console.WriteLine("Joueur ajouté à la liste d'attente"); return j; }
public Ressource produirePourJoueur(Joueur j) { Ressource res = null; int count = 0; if( peutProduireRessources() ) { foreach( EmplacementColonie col in exploiteurs ) { if (col.controlleur != null && col.controlleur.nom == j.nom) count += col.quantiteProduite; } res = new Ressource(ressourceProduite, count); } return res; }
public bool peutConstruire(Joueur j) { return proprietaire == null && relierAJoueur(j); }
public void onRouteConstruite(int position, Joueur joueur) { partie.plateau.getChemin(position).batirRoute(joueur); sendAllPosition(Message.MessageSujet.NotifRoutePlace, joueur, position); }
private bool relierAJoueur(Joueur j) { return (colonieRelieAJoueur(colonies[0], j) || colonieRelieAJoueur(colonies[1], j)); }
public void batirRoute(Joueur j) { if(this.proprietaire == null) { this.proprietaire = j; } }
private void handleRejoindrePartie(RequeteRejoindrePartie msg) { joueur = connManager.ajouterConnectionJoueur(msg.username, this); if (joueur == null) { msg.creerReponse(Message.MessageSujet.ReponseRefus); msg.repondre(); } msg.creerReponse(Message.MessageSujet.ReponseOk); msg.repondre(); connManager.verifierPartiePleine(); }
public void construireVille(Joueur j, int idEmplacement) { EmplacementColonie col = plateau.getColonie(idEmplacement); col.construireVille(j); }
private void sendAllPosition(Message.MessageSujet sujet, Joueur j, int position) { foreach (ServeurJoueur sj in joueursEnAttente) { sj.sendPosition(sujet, j, position); } }
private bool joueurEstConnecte(Joueur j) { foreach (Chemin c in connections) { if (c.proprietaire == j) return true; } return false; }
public Ressource volerJoueur(Joueur voleur, Joueur cible) { Ressource res = null; var types = RessourceGroupe.TypesContenu.Where(type => cible.res.quantite(type) != 0); if( types.Count() > 0 ) { Random rnd = new Random(); TypeDeRessource typeSelectionne = types.ElementAt(rnd.Next(types.Count())); res = new Ressource(typeSelectionne, 1); cible.debiter(res); voleur.ajouter(res); } return res; }
public void construireVille(Joueur j) { if (controlleur == null || controlleur.nom != j.nom) throw new ArgumentException("Un joueur tente de construire une ville sur un emplacement qui ne lui appartient pas!"); estVille = true; }
public int getTourJoueur(Joueur joueur) { if (!tours.ContainsKey(joueur)) { tours[joueur] = 0; } return tours[joueur]; }
public RessourceGroupe getResPourJoueur(int de, Joueur j) { RessourceGroupe res = new RessourceGroupe(); foreach( Cellule c in plateau.cellules.Where(c => c.produitPourValeurDe(de))) { res.ajouter(c.produirePourJoueur(j)); } return res; }
public void debutTour(Joueur j) { NotifDebutTour msg = (NotifDebutTour)conn.creerMessage(Message.MessageSujet.NotifDebutTour); msg.nomJoueur = j.nom; msg.envoyer(); }
public void OnClick() { Joueur j = new Joueur("j1", Joueur.Couleur.Bleu); empC.construireColonie(j); }
public void onVilleConstruite(int position, Joueur joueur) { partie.plateau.getColonie(position).construireVille(joueur); sendAllPosition(Message.MessageSujet.NotifVillePlace, joueur, position); }
public bool emplacementDisponiblePourVille(Joueur j) { return controlleur == j && !estVille; }
public void construireRoute(Joueur j, int idRoute) { Chemin c = plateau.getChemin(idRoute); c.batirRoute(j); }
private void incrementTourJoueur(Joueur j) { if (!tours.ContainsKey(j)) { tours[j] = 0; } tours[j]++; }
public void sendPosition(Message.MessageSujet sujet, Joueur j, int position) { NotifAjoutElement msg = (NotifAjoutElement)conn.creerMessage(sujet); msg.joueur = j; msg.position = position; msg.envoyer(); }
public bool emplacementDisponiblePourColonie(Joueur j, bool premiereColonie) { // est-ce que l'emplacement est vide? if (controlleur != null) return false; // est-ce que l'emplacement est connecter a une route appartenant au joueur? if (!premiereColonie && !joueurEstConnecte(j)) return false; // est-ce que la colonie est a distance suffisante d'une autre colonie? if (!distanceEstSuffisantePourConstruction()) return false; return true; }
public CarteDeDeveloppement acheterCarteDeDev(Joueur j) { return null; }