player.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. /*
  2. * File: player.h
  3. * Author: Arthur Brandao
  4. *
  5. * Created on 28 novembre 2018
  6. */
  7. #ifndef PLAYER_H
  8. #define PLAYER_H
  9. /* --- Include --- */
  10. #include "constante.h"
  11. #include "client.h"
  12. #include "json.h"
  13. #include "object.h"
  14. /* --- Structure --- */
  15. typedef struct{
  16. boolean ini; //Indique si initalisé
  17. /* Stats basique */
  18. int id; //Id du joueur <=> id du Client
  19. Client* cli; //Client pour communiquer avec le joueur
  20. int x; //Position X (gauche droite)
  21. int y; //Position Y (haut bas)
  22. int life; //Vie
  23. int maxLife; //Vie max
  24. int speed; //Vitesse de deplacement
  25. int classicBomb; //Nombre de bombe classique
  26. int mine; //Nombre de mine
  27. int remoteBomb; //Nombre de bombe télécommandée
  28. int maxBomb; //Nombre max de bombe simultané sur le terrain
  29. int nbBomb; //Nombre de bombe actuellement sur le terrain
  30. /* Bonus (Nombre de fois ou le bonus est pris). Les modifications sont toujours calculées par le serveur */
  31. int bombUp;
  32. int bombDown;
  33. int firePower;
  34. int scooter;
  35. int brokenLeg;
  36. int lifeMax;
  37. int lifeUp;
  38. int major;
  39. /* Les bombes posées par le joueur */
  40. Object* bomb;
  41. }Player;
  42. /* --- Fonctions --- */
  43. /**
  44. * Création d'un joueur
  45. * @param Player* La structure à initialiser
  46. * @param Client* La structure pour communiquer avec le joueur
  47. */
  48. void create_player(Player*, Client*);
  49. /**
  50. * Decris un joueur en JSON
  51. * @param Player* Le joueur à décrire
  52. * @param JsonEncoder* Le json d'accueil
  53. */
  54. void describe_player(Player*, JsonEncoder*);
  55. /**
  56. * Decripstion courte d'un joueur en JSON
  57. * @param Player* Le joueur à décrire
  58. * @param JsonEncoder* Le json d'accueil
  59. */
  60. void describe_short_player(Player*, JsonEncoder*);
  61. /**
  62. * Ajoute un objet à un joueur
  63. * @param Player* Le joueur
  64. * @param int Le type de l'objet
  65. */
  66. void add_player_object(Player*, int);
  67. /**
  68. * Supprime un joueur
  69. * @param Player* La structure à supprimer
  70. */
  71. void delete_player(Player*);
  72. #endif /* PLAYER_H */