data.service.ts 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. import {Injectable} from '@angular/core';
  2. import {Player} from '../../model/Player';
  3. @Injectable({
  4. providedIn: 'root'
  5. })
  6. export class DataService {
  7. /**
  8. * L'id de l'utilisateur
  9. */
  10. private id: number;
  11. /**
  12. * L'utilisateur à t'il le role de maitre du jeu (game master)
  13. */
  14. private gm: boolean;
  15. /**
  16. * Le pseudo de l'utilisateur
  17. */
  18. private pseudo: string;
  19. public players: Player[];
  20. /**
  21. * Données pour l'application
  22. */
  23. public data: any;
  24. public setBaseValue(id: number, gm: boolean, pseudo: string) {
  25. this.id = id;
  26. this.gm = gm;
  27. this.pseudo = pseudo;
  28. }
  29. public baseValueIsSet(): boolean {
  30. return this.pseudo !== undefined;
  31. }
  32. public getPlayer(pseudo: string): Player {
  33. if (this.players === undefined) {
  34. const player = new Player(pseudo);
  35. this.players = [player];
  36. return player;
  37. } else {
  38. let find = false;
  39. let pos = 0;
  40. this.players.forEach((elt, index) => {
  41. if (elt.getPseudo() === pseudo) {
  42. find = true;
  43. pos = index;
  44. }
  45. });
  46. if (find) {
  47. return this.players[pos];
  48. } else {
  49. const player = new Player(pseudo);
  50. this.players.push(player);
  51. return player;
  52. }
  53. }
  54. };
  55. public clearAnswers(): void {
  56. if (this.players !== undefined) {
  57. this.players.forEach(elt => {
  58. elt.answer = '';
  59. });
  60. }
  61. }
  62. public getWinners(): Player[] {
  63. if (this.players === undefined) {
  64. return [];
  65. }
  66. let score;
  67. this.players.forEach(elt => {
  68. if (score === undefined) {
  69. score = elt.score;
  70. } else if (elt.score > score) {
  71. score = elt.score;
  72. }
  73. });
  74. const winners = [];
  75. this.players.forEach(elt => {
  76. if (elt.score === score) {
  77. winners.push(elt);
  78. }
  79. });
  80. return winners;
  81. }
  82. public getId(): number {
  83. return this.id;
  84. }
  85. public isGm(): boolean {
  86. return this.gm;
  87. }
  88. public getPseudo(): string {
  89. return this.pseudo;
  90. }
  91. }