Commit 03d5b7f5 authored by Joseph NISON--GUYON's avatar Joseph NISON--GUYON
Browse files

Ajout de la compatibilité avec l'identifiant du joueur pour piocherReserve

ajout des méthodes de défausse des cartes Survies et Traques lors de leur utilisations

Réactualisation de conception.adoc
parent 8d75ccf8
......@@ -37,6 +37,10 @@ service GameService {
string piocherSurvie(i32 idGame, i32 id)
bool piocherReserve(i32 idGame, i32 lieu)
bool piocherReserve(i32 idGame, i32 id, i32 lieu)
void defausserCarteSurvie (i32 idGame, string name)
void defausserCarteTraque (i32 idGame, string name)
}
......@@ -86,47 +86,50 @@ interface Lieu.ts{
}
class GameProxy.ts {
piocheSurvie: Array<string>
defausseSurvie: Array<string>
piocheTraque: Array<string>
defausseTraque: Array<string>
survie: Array<CarteSurvie>
traque: Array<CarteTraque>
thriftClient: Client<CoreOptions>
assimilation: number
artemia: number
cible: Array<number>
creature: number
createGame(number): Promise<number>
join(number): Promise<number>
melangerTraque(): void
melangerSurvie(): void
piocherSurvie(number): CarteSurvie
piocherTraque(number): CarteTraque
piocherSurvie(number, number): CarteSurvie
piocherTraque(number, number): CarteTraque
avancerAssimilation(number): 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>
placerCreature(number, Array<number>): void | Promise<void>
placerCible(number, Array<number>): void | Promise<void>
placerArtemia(number, Array<number>): void | Promise<void>
setLieu(number, number, Lieu): void | Promise<void>
setCarteSurvie(number, CarteSurvie.ts): void | Promise<void>
setCarteSurvie(number, 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>
rendDefausse(number, number, Array<number>): void | Promise<void>
askLieu(number, number, Lieu): void | Promise<void>
askCarteSurvie(number, number, CarteSurvie.ts): void | Promise<void>
askCarteTraque(number, CarteTraque.ts): void | Promise<void>
piocherReserve(number, number, Lieu): Promise<boolean> | void
defausserCarteSurvie(number, CarteSurvie.ts): void
defausserCarteTraque(number, CarteTraque.ts): void
}
class Traque.ts {
main: Array<number>
mainSurvie: Array<CarteSurvie>
reserve: Array<Lieu>
defausse: Array<number>
gameProxy: GameProxy
volonte: number
askCarteSurvie(number): void | Promise<void>
askCartesLieux(number): void | Promise<void>
getLieuxDefausse(): Array<number>
perdrePionsVolonte(): void | Promise<void>
recupLieuxFromDefausse(Array<Lieu.ts>): void | Promise<void>
lacherPrise(number): void | Promise<void>
resister(number, Array<Lieu.ts>): void | Promise<void>
piocherSurvie(number, number): Promise<void>
piocherReserve(number, number, Lieu.ts): Promise<void>
askCarteSurvie(number, number, CarteSurvie): void | Promise<void>
setCarteSurvie(number, number, CarteSurvie): void | Promise<void>
askLieu(number, number, Lieu.ts): void | Promise<void>
setLieu(number, number, Lieu.ts): void | Promise<void>
}
class Creature.ts {
......@@ -134,10 +137,12 @@ class Creature.ts {
gameProxy: GameProxy
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>
placerArtemia(number, Array<number>): void | Promise<void>
placerCreature(number, Array<number>): void | Promise<void>
placerCible(number, Array<number>): void | Promise<void>
askCarteTraque(number, CarteTraque.ts): void | Promise<void>
setCarteTraque(number, CarteTraque.ts): void | Promise<void>
piocherTraque(number): Promise<void>
}
class Game {
......
......@@ -94,7 +94,15 @@ export class ClientServiceHandler<Context> implements IHandler<Context> {
return '';
}
public piocherReserve(idGame: number, lieu: number): Promise<boolean> {
public piocherReserve(idGame: number, id: number, lieu: number): Promise<boolean> {
return new Promise<boolean>((resolve, reject) => {});
}
public defausserCarteSurvie(gameId: number, carte: string): void {
}
public defausserCarteTraque(gameId: number, carte: string): void {
}
}
......@@ -28,12 +28,32 @@ export class Creature {
this.gameProxy.placerCible(gameId, lieux);
}
public setCarteTraque(gameId: number, carte: CarteTraque): void | Promise<void> {
this.gameProxy.askCarteTraque(gameId, carte);
}
public askCarteTraque(gameId: number, carte: CarteTraque): void | Promise<void> {
this.gameProxy.setCarteTraque(gameId, carte);
this.gameProxy.defausserCarteTraque(gameId, carte);
let param = 0;
while (param < this.main.length) {
if (lieu.id === this.main[param]) {
this.main.splice(param, 1);
}
param++;
}
}
public async piocherTraque(gameId: number): Promise<void> {
const carte = await this.gameProxy.piocherTraque(gameId);
this.main.push(carte);
}
public setCarteTraque(gameId: number, carte: CarteTraque): void | Promise<void> {
this.gameProxy.setCarteTraque(gameId, carte);
this.gameProxy.defausserCarteTraque(gameId, carte);
let param = 0;
while (param < this.main.length) {
if (lieu.id === this.main[param]) {
this.main.splice(param, 1);
}
param++;
}
}
public async piocherTraque(gameId: number): Promise<void> {
const carte = await this.gameProxy.piocherTraque(gameId);
this.main.push(carte);
}
}
......@@ -24,7 +24,7 @@ export class PlayerService implements IHandler<any> {
lacherPrise(gameId: number): void {}
resister(gameId: number, cartes: Array<number>): void {}
piocherSurvie(gameId: number): void {}
piocherReserve(gameId: number, lieu: number): void {}
piocherReserve(gameId: number, id: number, lieu: number): void {}
// methodes de la créature
troisCartes(gameId: number): void {}
......
......@@ -19,14 +19,6 @@ export class Traque {
this.mainSurvie = [];
}
public askCarteSurvie(gameId: number): void | Promise<void> {
}
public askCartesLieu(gameId: number): void | Promise<void> {
}
public getLieuxDefausse(): Array<Lieu> {
return this.defausse;
}
......@@ -35,7 +27,6 @@ export class Traque {
this.volonte--;
}
public recupLieuxFromDefausse(cartes: Array<Lieu>): void | Promise<void> {
let i = 0;
const tab: Array<Lieu> = [];
......@@ -84,8 +75,8 @@ export class Traque {
this.mainSurvie.push(carte);
}
public async piocherReserve(gameId: number, lieu: Lieu): Promise<void> {
if (await this.gameProxy.piocherReserve(gameId, lieu)) {
public async piocherReserve(gameId: number, id: number, lieu: Lieu): Promise<void> {
if (await this.gameProxy.piocherReserve(gameId, id, lieu)) {
let param = 0;
while (param < this.reserve.length) {
if (lieu.id === this.reserve[param]) {
......@@ -96,4 +87,58 @@ export class Traque {
}
}
}
public askCarteSurvie(gameId: number, playerId: number, carte: CarteSurvie): void | Promise<void> {
this.gameProxy.setCarteSurvie(gameId, playerId, carte);
this.gameProxy.defausserCarteSurvie(gameId, carte);
let param = 0;
while (param < this.mainSurvie.length) {
if (lieu.id === this.mainSurvie[param]) {
this.mainSurvie.splice(param, 1);
}
param++;
}
}
public setCarteSurvie(gameId: number, playerId: number, carte: CarteSurvie): void | Promise<void> {
this.gameProxy.setCarteSurvie(gameId, playerId, carte);
this.gameProxy.defausserCarteSurvie(gameId, carte);
let param = 0;
while (param < this.mainSurvie.length) {
if (lieu.id === this.mainSurvie[param]) {
this.mainSurvie.splice(param, 1);
}
param++;
}
}
public askLieu(gameId: number, playerId: number, lieu: Lieu): void | Promise<void> {
let param = 0;
const size = this.main.length;
while (param < this.main.length) {
if (lieu.id === this.main[param]) {
this.defausse.push(this.main[param]);
this.main.splice(param, 1);
}
param++;
}
if (size !== this.main.length) {
this.gameProxy.setLieu(gameId, playerId, lieu);
}
}
public setLieu(gameId: number, playerId: number, lieu: Lieu): void | Promise<void> {
let param = 0;
const size = this.main.length;
while (param < this.main.length) {
if (lieu.id === this.main[param]) {
this.defausse.push(this.main[param]);
this.main.splice(param, 1);
}
param++;
}
if (size !== this.main.length) {
this.gameProxy.setLieu(gameId, playerId, lieu);
}
}
}
......@@ -84,7 +84,6 @@ export class GameProxy implements GameInterface {
public setLieu(gameId: number, playerId: number, lieu: Lieu): void | Promise<void> {
if (lieu.id == null) {
this.thriftClient.setLieu(gameId, playerId, 0);
} else {
this.thriftClient.setLieu(gameId, playerId, lieu.id);
}
......@@ -92,12 +91,18 @@ export class GameProxy implements GameInterface {
public setCarteSurvie(gameId: number, playerId: number, carte: CarteSurvie): void | Promise<void> {
if (carte.name == null) {
this.thriftClient.setCarteSurvie(gameId, playerId, '');
} else {
this.thriftClient.setCarteSurvie(gameId, playerId, carte.name);
}
}
public setCarteTraque(gameId: number, carte: CarteTraque): void | Promise<void> {
if (carte.name == null) {
} else {
this.thriftClient.setCarteTraque(gameId, carte.name);
}
}
public wantRole(gameId: number, id: number, role: string): void | Promise<void> {
this.thriftClient.wantRole(gameId, id, role);
}
......@@ -106,9 +111,15 @@ export class GameProxy implements GameInterface {
this.thriftClient.rendDefausse(gameId, id, lieux);
}
public askLieu(gameId: number, playerId: number, lieu: Lieu): void | Promise<void> {
if (lieu.id == null) {
} else {
this.thriftClient.setLieu(gameId, playerId, lieu.id);
}
}
public askCarteSurvie(gameId: number, playerId: number, carte: CarteSurvie): void | Promise<void> {
if (carte.name == null) {
this.thriftClient.setCarteSurvie(gameId, playerId, '');
} else {
this.thriftClient.setCarteSurvie(gameId, playerId, carte.name);
}
......@@ -116,17 +127,29 @@ export class GameProxy implements GameInterface {
public askCarteTraque(gameId: number, carte: CarteTraque): void | Promise<void> {
if (carte.name == null) {
this.thriftClient.setCarteTraque(gameId, '');
} else {
this.thriftClient.setCarteTraque(gameId, carte.name);
}
}
public piocherReserve(gameId: number, lieu: Lieu): Promise<boolean> {
public piocherReserve(gameId: number, id: number, lieu: Lieu): Promise<boolean> | void {
if (lieu.id == null) {
return this.thriftClient.piocherReserve(gameId, 0);
} else {
return this.thriftClient.piocherReserve(gameId, lieu.id);
return this.thriftClient.piocherReserve(gameId, id, lieu.id);
}
}
public defausserCarteSurvie(gameId: number, carte: CarteSurvie): void {
if (carte.name == null) {
} else {
this.thriftClient.defausserCarteSurvie(gameId, carte.name);
}
}
public defausserCarteTraque(gameId: number, carte: CarteTraque): void {
if (carte.name == null) {
} else {
this.thriftClient.defausserCarteTraque(gameId, carte.name);
}
}
}
......@@ -98,7 +98,17 @@ public class GameServiceHandler implements GameService.Iface {
}
@Override
public boolean piocherReserve(int idGame, int id) {
return this.service.piocherReserve(idGame, builder.buildCarteLieu(id));
public boolean piocherReserve(int idGame, int id, int lieu) {
return this.service.piocherReserve(idGame, id, builder.buildCarteLieu(lieu));
}
@Override
public void defausserCarteSurvie(int gameId, String carteSurvie){
this.service.defausserCarteSurvie(gameId, builder.buildCarteSurvie(carteSurvie));
}
@Override
public void defausserCarteTraque(int gameId, String carteTraque){
this.service.defausserCarteTraque(gameId, builder.buildCarteTraque(carteTraque));
}
}
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