1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- /*
- * File: player.c
- * Author: Arthur Brandao
- *
- * Created on 28 novembre 2018
- */
- #include <stdio.h>
- #include <stdlib.h>
- #include "player.h"
- void create_player(Player* p, Client* c){
- //Initialisation valeurs
- p->ini = true;
- p->id = c->id;
- p->cli = c;
- p->x = 0;
- p->y = 0;
- p->life = 100;
- p->maxLife = 100;
- p->speed = 1;
- p->classicBomb = 1;
- p->mine = 0;
- p->remoteBomb = 0;
- p->maxBomb = 2;
- p->bombUp = 0;
- p->bombDown = 0;
- p->firePower = 0;
- p->scooter = 0;
- p->brokenLeg = 0;
- p->lifeMax = 0;
- p->lifeUp = 0;
- p->major = false;
- }
- JsonEncoder* describe_player(Player* p){
- JsonEncoder* desc = malloc(sizeof(JsonEncoder));
- JsonArray* bonus = malloc(sizeof(JsonArray));
- char buffer[BUFFER_SIZE];
- //Initialisation
- ini_encoder(desc);
- ini_array_encoder(bonus);
- //Calcul bonus malus
- if(p->bombUp > 0){
- memset(buffer, 0, BUFFER_SIZE);
- snprintf(buffer, BUFFER_SIZE, "{\"class\": \"bomb_up\", \"number\": %d}", p->bombUp);
- add_array_value(bonus, buffer);
- }
- if(p->bombDown > 0){
- memset(buffer, 0, BUFFER_SIZE);
- snprintf(buffer, BUFFER_SIZE, "{\"class\": \"bomb_down\", \"number\": %d}", p->bombDown);
- add_array_value(bonus, buffer);
- }
- if(p->firePower > 0){
- memset(buffer, 0, BUFFER_SIZE);
- snprintf(buffer, BUFFER_SIZE, "{\"class\": \"fire_power\", \"number\": %d}", p->firePower);
- add_array_value(bonus, buffer);
- }
- if(p->scooter > 0){
- memset(buffer, 0, BUFFER_SIZE);
- snprintf(buffer, BUFFER_SIZE, "{\"class\": \"scooter\", \"number\": %d}", p->scooter);
- add_array_value(bonus, buffer);
- }
- if(p->brokenLeg > 0){
- memset(buffer, 0, BUFFER_SIZE);
- snprintf(buffer, BUFFER_SIZE, "{\"class\": \"broken_leg\", \"number\": %d}", p->brokenLeg);
- add_array_value(bonus, buffer);
- }
- if(p->lifeUp > 0){
- memset(buffer, 0, BUFFER_SIZE);
- snprintf(buffer, BUFFER_SIZE, "{\"class\": \"life_up\", \"number\": %d}", p->lifeUp);
- add_array_value(bonus, buffer);
- }
- if(p->lifeMax > 0){
- memset(buffer, 0, BUFFER_SIZE);
- snprintf(buffer, BUFFER_SIZE, "{\"class\": \"life_max\", \"number\": %d}", p->lifeMax);
- add_array_value(bonus, buffer);
- }
- //Ajout valeur
- add_integer(desc, "id", p->id);
- add_integer(desc, "life", p->life);
- add_integer(desc, "maxLife", p->maxLife);
- add_integer(desc, "speed", p->speed);
- add_integer(desc, "currentNbClassicBomb", p->classicBomb);
- add_integer(desc, "currentNbMine", p->mine);
- add_integer(desc, "currentNbRemoteBomb", p->remoteBomb);
- add_integer(desc, "maxNbBomb", p->maxBomb);
- add_array(desc, "bonus-malus", bonus);
- //Nettoyage
- clean_json_array(bonus);
- free(bonus);
- return desc;
- }
- void delete_player(Player* p){
- p->cli = NULL;
- p->ini = false;
- }
|