Commit 2795f6ed authored by Joseph NISON--GUYON's avatar Joseph NISON--GUYON
Browse files

Remplacement dans les fichiers ts des lieux en number pour une structure Lieu...

Remplacement dans les fichiers ts des lieux en number pour une structure Lieu comme pour les fichiers java
Ajout de piocheTraque et piocheSurvie dans client-service-handler.ts, GameServiceHandler.java et client-service-handler.ts.
Réactualisation de conception.adoc
parent d6d27c48
......@@ -33,4 +33,8 @@ service GameService {
void rendDefausse(i32 idGame, i32 id, list<i32> defausse)
string piocherTraque(i32 idGame)
string piocherSurvie(i32 idGame, i32 id)
}
......@@ -69,6 +69,22 @@ class PlayerProxy {
lacherPrise()
}
interface CarteTraque.ts{
phase: number
name: string
token: string
}
interface CarteSurvie.ts{
phase: number
name: string
}
interface Lieu.ts{
id: number
name: string
}
class GameProxy.ts {
piocheSurvie: Array<string>
defausseSurvie: Array<string>
......@@ -87,14 +103,14 @@ class GameProxy.ts {
piocherSurvie(number): CarteSurvie
piocherTraque(number): CarteTraque
avancerAssimilation(number): void | Promise<void>
placerCreature(number): void | Promise<void>
placerCible(Array<number>): void | Promise<void>
placerArtemia(number): void | Promise<void>
setLieu(): void | Promise<void>
setCarteSurvie(): void | Promise<void>
setCarteTraque(): void | Promise<void>
wantRole(): void | Promise<void>
rendDefausse(): void | Promise<void>
placerCreature(number, Array<Lieu.ts>): void | Promise<void>
placerCible(number, Array<Lieu.ts>): void | Promise<void>
placerArtemia(number, Array<Lieu.ts>): void | Promise<void>
setLieu(number, number, Lieu): void | Promise<void>
setCarteSurvie(number, CarteSurvie.ts): void | Promise<void>
setCarteTraque(number, CarteTraque.ts): void | Promise<void>
wantRole(number, number, string): void | Promise<void>
rendDefausse(number, number, Array<Lieu.ts>): void | Promise<void>
}
class Traque.ts {
......@@ -104,24 +120,24 @@ class Traque.ts {
gameProxy: GameProxy
volonte: number
askCarteSurvie(): void | Promise<void>
askCartesLieux(): void | Promise<void>
askCarteSurvie(number): void | Promise<void>
askCartesLieux(number): void | Promise<void>
getLieuxDefausse(): Array<number>
perdrePionsVolonte(): void | Promise<void>
recupLieuxFromDefausse(Array<number>): void | Promise<void>
lacherPrise(): void | Promise<void>
resister(Array<number>): void | Promise<void>
recupLieuxFromDefausse(Array<Lieu.ts>): void | Promise<void>
lacherPrise(number): void | Promise<void>
resister(number, Array<Lieu.ts>): void | Promise<void>
}
class Creature.ts {
main: Array<CarteTraque>
gameProxy: GameProxy
troisCartes(): void | Promise<void>
placerArtemia(number): void | Promise<void>
placerCreature(number): void | Promise<void>
placerCible(Array<number>): void | Promise<void>
askCarteTraque(string): void | Promise<void>
troisCartes(number): void | Promise<void>
placerArtemia(number, Array<Lieu.ts>): void | Promise<void>
placerCreature(number, Array<Lieu.ts>): void | Promise<void>
placerCible(number, Array<Lieu.ts>): void | Promise<void>
askCarteTraque(number, CarteTraque.ts): void | Promise<void>
}
class Game {
......@@ -147,6 +163,8 @@ class Game {
setCarteTraque(carte : CarteTraque)
wantRole(String role)
rendDefausse(id : integer, defausse : List<Lieu>)
piocherSurvie(id: int): CarteSurvie
piocherTraque(id: int): CarteTraque
}
class GameServiceHandler {
......
import { IJoinRequest } from 'src/codegen/common';
import { IHandler } from '../codegen/common/GameService';
import { PlayerService } from '../player/player-service';
import { Lieu } from '../lieu/lieu';
export class ClientServiceHandler<Context> implements IHandler<Context> {
......@@ -57,7 +58,7 @@ export class ClientServiceHandler<Context> implements IHandler<Context> {
}
public getLieuxDefausse(): void | Array<number> | Promise<void> {
public getLieuxDefausse(): void | Array<Lieu> | Promise<void> {
}
......@@ -85,5 +86,11 @@ export class ClientServiceHandler<Context> implements IHandler<Context> {
}
public piocherTraque (idGame: number): string {
return '';
}
public piocherSurvie (idGame: number, id: number): string {
return '';
}
}
export interface Lieu {
id?: number;
name?: string;
}
import { GameProxy, CarteTraque } from '../thrift/game-proxy';
import { Lieu } from '../lieu/lieu';
export class Creature {
private main: Array<CarteTraque>;
private gameProxy: GameProxy;
......@@ -13,19 +15,19 @@ export class Creature {
this.main.push(this.gameProxy.piocherTraque(gameId));
}
}
public placerArtemia(gameId: number, lieu: number): void | Promise<void> {
public placerArtemia(gameId: number, lieu: Array<Lieu>): void | Promise<void> {
this.gameProxy.placerArtemia(gameId, lieu);
}
public placerCreature(gameId: number, lieu: number): void | Promise<void> {
public placerCreature(gameId: number, lieu: Array<Lieu>): void | Promise<void> {
this.gameProxy.placerCreature(gameId, lieu);
}
public placerCible(gameId: number, lieux: Array<number>): void | Promise<void> {
public placerCible(gameId: number, lieux: Array<Lieu>): void | Promise<void> {
this.gameProxy.placerCible(gameId, lieux);
}
public setCarteTraque(gameId: number, carte: string): void | Promise<void> {
public setCarteTraque(gameId: number, carte: CarteTraque): void | Promise<void> {
this.gameProxy.setCarteTraque(gameId, carte);
}
}
import { GameProxy, CarteSurvie } from '../thrift/game-proxy';
import { Lieu } from '../lieu/lieu';
export class Traque {
private main: Array<number>;
private main: Array<Lieu>;
private mainSurvie: Array<CarteSurvie>;
private defausse: Array<number>;
private defausse: Array<Lieu>;
private gameProxy: GameProxy;
private volonte: number;
constructor(gameProxy: GameProxy) {
this.main = [1, 2, 3, 4, 5];
this.main = [{id: 1, name: 'L\'Antre'}, {id: 2, name: 'Jungle'}, {id: 3, name: 'La Rivière'}, {id: 4, name: 'La Plage'}];
this.main.concat({id: 5, name: 'Le Rover'});
this.defausse = [];
this.gameProxy = gameProxy;
this.volonte = 3;
......@@ -21,7 +24,7 @@ export class Traque {
}
public getLieuxDefausse(): Array<number> {
public getLieuxDefausse(): Array<Lieu> {
return this.defausse;
}
......@@ -30,9 +33,9 @@ export class Traque {
}
public recupLieuxFromDefausse(cartes: Array<number>): void | Promise<void> {
public recupLieuxFromDefausse(cartes: Array<Lieu>): void | Promise<void> {
let i = 0;
const tab: Array<number> = [];
const tab: Array<Lieu> = [];
while (this.defausse.includes(cartes[i])) {
tab.push(cartes[i]);
i++;
......@@ -60,7 +63,7 @@ export class Traque {
this.volonte = 3;
}
public resister(gameId: number, cartes: Array<number>): void | Promise<void> {
public resister(gameId: number, cartes: Array<Lieu>): void | Promise<void> {
if (cartes.length === 4 || cartes.length === 2) {
this.recupLieuxFromDefausse(cartes);
if (cartes.length === 4) {
......
......@@ -3,6 +3,7 @@ import { GameInterface } from '../core/game';
import { CoreOptions } from 'request';
import { createHttpClient, ICreateHttpClientOptions } from '@creditkarma/thrift-client';
import { IJoinRequest, JoinRequest } from '../codegen/common/JoinRequest';
import { Lieu } from '../lieu/lieu';
export interface CarteTraque {
phase?: number;
......@@ -22,9 +23,9 @@ export class GameProxy implements GameInterface {
private defausseTraque: Array<CarteTraque>;
private thriftClient: Client<CoreOptions>;
private assimilation: number;
private artemia: number;
private cible: Array<number>;
private creature: number;
private artemia: Array<Lieu>;
private cible: Array<Lieu>;
private creature: Array<Lieu>;
constructor(options: ICreateHttpClientOptions) {
this.thriftClient = createHttpClient(Client, options);
this.assimilation = 0;
......@@ -44,9 +45,9 @@ export class GameProxy implements GameInterface {
this.defausseTraque = [{phase: 2, name: 'Acharnement', token: ''}, {phase: 1, name: 'Angoisse', token: 'Artémia'}, {phase: 2, name: 'Anticipation', token: ''}, {phase: 3, name: 'Cataclysme', token: ''}, {phase: 1, name: 'Champ de force', token: 'Cible'}, {phase: 2, name: 'Clone', token: 'Cible'}, {phase: 3, name: 'Déploiement', token: ''}, {phase: 1, name: 'Désespoir', token: 'Artémia'}, {phase: 3, name: 'Détour', token: ''}, {phase: 2, name: 'Domination', token: ''}, {phase: 1, name: 'Effroi', token: ''}, {phase: 2, name: 'Emprise', token: ''}, {phase: 2, name: 'Épidémie', token: ''}, {phase: 2, name: 'Faille temporelle', token: 'Cible'}, {phase: 0, name: 'Flashback', token: ''}, {phase: 2, name: 'Gargantua', token: ''}, {phase: 2, name: 'Harcèlement', token: ''}, {phase: 2, name: 'Hurlements', token: 'Cible'}, {phase: 2, name: 'Inertie', token: 'Cible'}, {phase: 2, name: 'Interférences', token: ''}, {phase: 1, name: 'Intuition', token: ''}, {phase: 2, name: 'Magnétisme', token: 'Cible'}, {phase: 2, name: 'Mirage', token: 'Cible'}, {phase: 2, name: 'Mutation', token: 'Artémia'}, {phase: 2, name: 'Psychose', token: 'Artémia'}, {phase: 2, name: 'Réminiscence', token: 'Artémia'}, {phase: 4, name: 'Repérage', token: ''}, {phase: 2, name: 'Sables mouvants', token: 'Cible'}, {phase: 2, name: 'Soif de sang', token: 'Cible'}, {phase: 4, name: 'Stase', token: ''}, {phase: 2, name: 'Télépathie', token: 'Artémia'}, {phase: 2, name: 'Tornade', token: 'Artémia'}, {phase: 2, name: 'Toxine', token: 'Cible'}, {phase: 2, name: 'Ubiquité', token: 'Artémia + Cible'}, {phase: 2, name: 'Virus', token: 'Artémia'}, {phase: 2, name: 'Zone interdite', token: 'Artémia'}];
this.melangerSurvie();
this.melangerTraque();
this.artemia = 0;
this.artemia = [];
this.cible = [];
this.creature = 0;
this.creature = [];
}
createGame(numberOfPlayers: number): Promise<number> {
......@@ -113,13 +114,15 @@ export class GameProxy implements GameInterface {
this.assimilation++;
}
placerCreature(gameId: number, lieu: number): void | Promise<void> {
if (lieu >= 1 && lieu <= 10) {
this.creature = lieu;
placerCreature(gameId: number, lieux: Array<Lieu>): void | Promise<void> {
if (lieux.length >= 1 && lieux[0] >= 1 && lieux[0] <= 10) {
if ((lieux.length === 2 && lieux[1] >= 1 && lieux[1] <= 10) || (lieux.length === 1)) {
this.creature = lieux;
}
}
}
placerCible(gameId: number, lieux: Array<number>): void | Promise<void> {
placerCible(gameId: number, lieux: Array<Lieu>): void | Promise<void> {
if (lieux.length >= 1 && lieux[0] >= 1 && lieux[0] <= 10) {
if ((lieux.length === 2 && lieux[1] >= 1 && lieux[1] <= 10) || (lieux.length === 1)) {
this.cible = lieux;
......@@ -127,21 +130,23 @@ export class GameProxy implements GameInterface {
}
}
placerArtemia(gameId: number, lieu: number): void | Promise<void> {
if (lieu >= 1 && lieu <= 10) {
this.artemia = lieu;
placerArtemia(gameId: number, lieux: Array<Lieu>): void | Promise<void> {
if (lieux.length >= 1 && lieux[0] >= 1 && lieux[0] <= 10) {
if ((lieux.length === 2 && lieux[1] >= 1 && lieux[1] <= 10) || (lieux.length === 1)) {
this.artemia = lieux;
}
}
}
public setLieu(gameId: number, playerId: number, lieu: number): void | Promise<void> {
public setLieu(gameId: number, playerId: number, lieu: Lieu): void | Promise<void> {
}
public setCarteSurvie(gameId: number, playerId: number, carte: number): void | Promise<void> {
public setCarteSurvie(gameId: number, playerId: number, carte: CarteSurvie): void | Promise<void> {
}
public setCarteTraque(gameId: number, carte: string): void | Promise<void> {
public setCarteTraque(gameId: number, carte: CarteTraque): void | Promise<void> {
}
......@@ -149,7 +154,7 @@ export class GameProxy implements GameInterface {
}
public rendDefausse(gameId: number, id: number, lieux: Array<number>): void | Promise<void> {
public rendDefausse(gameId: number, id: number, lieux: Array<Lieu>): void | Promise<void> {
}
}
package fr.univnantes.alma.handler;
import fr.univnantes.alma.carte.CarteBuilder;;
import fr.univnantes.alma.carte.CarteBuilder;
import fr.univnantes.alma.carte.lieux.*;
import fr.univnantes.alma.carte.survie.*;
import fr.univnantes.alma.carte.traque.*;
......@@ -86,4 +86,12 @@ public class GameServiceHandler implements GameService.Iface {
for (Integer i : defausse) listLieu.add(builder.buildCarteLieu(i));
service.rendDefausse(idGame, id, listLieu);
}
public String piocherTraque(int idGame) {
return this.service.piocherTraque(idGame);
}
public String piocherSurvie(int idGame, int id) {
return this.service.piocherSurvie(idGame, id);
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment