Commit 032bace8 authored by LAIRD Timothy's avatar LAIRD Timothy

Merge branch 'animation' into 'dev'

Animation to dev

See merge request !6
parents 879e5d31 3ef9800b
...@@ -20,9 +20,9 @@ link_directories( ${PROJECT_SOURCE_DIR}/dpd ) ...@@ -20,9 +20,9 @@ link_directories( ${PROJECT_SOURCE_DIR}/dpd )
add_executable(nw-viewer src/main-viewer.c src/networld.c src/controlpanel.c src/entity.c src/player.c src/random-map.c src/graphical-aspect.c src/window-manager.c src/menu-button.c src/main-menu.c src/int-input.c src/options-menu.c) add_executable(nw-viewer src/main-viewer.c src/networld.c src/controlpanel.c src/entity.c src/player.c src/random-map.c src/graphical-aspect.c src/window-manager.c src/menu-button.c src/main-menu.c src/int-input.c src/options-menu.c)
target_link_libraries(nw-viewer raylib pthread dl rt X11 m) target_link_libraries(risk raylib pthread dl rt X11 m)
#without cmake package... #without cmake package...
#include_directories(${PROJECT_SOURCE_DIR}/raylib/src) #include_directories(${PROJECT_SOURCE_DIR}/raylib/src)
#link_directories(${PROJECT_SOURCE_DIR}/raylib) #link_directories(${PROJECT_SOURCE_DIR}/raylib)
#target_link_libraries(nw-viewer raylib GL m pthread dl rt X11) #target_link_libraries(risk raylib GL m pthread dl rt X11)
...@@ -32,8 +32,8 @@ void Panel_initialize(Panel * self, NetWorld * world, const int screenWidth, con ...@@ -32,8 +32,8 @@ void Panel_initialize(Panel * self, NetWorld * world, const int screenWidth, con
self->world= world; self->world= world;
self->camera.x= 0.f; self->camera.x= 0.f;
self->camera.y= 0.f; self->camera.y= 0.f;
self->screenCenter.x= 400.f; self->screenCenter.x= screenWidth/2;
self->screenCenter.y= 300.f; self->screenCenter.y= screenHeight/2;
self->scale= 10.f; //pixel per meters self->scale= 10.f; //pixel per meters
self->screenWidth = screenWidth; self->screenWidth = screenWidth;
self->screenHeight = screenHeight; self->screenHeight = screenHeight;
...@@ -84,7 +84,7 @@ void Panel_drawOptionsMenu(Panel * self, Options_Menu * menu){ ...@@ -84,7 +84,7 @@ void Panel_drawOptionsMenu(Panel * self, Options_Menu * menu){
void Panel_drawGame(Panel * self) void Panel_drawGame(Panel * self)
{ {
BeginDrawing(); //BeginDrawing();
ClearBackground(RAYWHITE); ClearBackground(RAYWHITE);
// Draw the edges for each nodes: // Draw the edges for each nodes:
...@@ -101,7 +101,7 @@ void Panel_drawGame(Panel * self) ...@@ -101,7 +101,7 @@ void Panel_drawGame(Panel * self)
Panel_drawNode( self, &(self->world->nodes[i]) ); Panel_drawNode( self, &(self->world->nodes[i]) );
} }
//Panel_drawBasis(self); //Panel_drawBasis(self);
EndDrawing(); //EndDrawing();
} }
void Panel_drawBasis(Panel * self) void Panel_drawBasis(Panel * self)
......
This diff is collapsed.
...@@ -17,7 +17,9 @@ Rectangle Graphic_ConfirmButton(Font font); ...@@ -17,7 +17,9 @@ Rectangle Graphic_ConfirmButton(Font font);
void Graphic_MouseHoverNodeRecrutement(Player * self, Vector2 mousePosition, Panel * panel); void Graphic_MouseHoverNodeRecrutement(Player * self, Vector2 mousePosition, Panel * panel);
void Graphic_MouseHoverNodeChooseAttacker(Player * player, Vector2 mousePosition, Panel * panel); void Graphic_MouseHoverNodeChooseAttacker(Player * player, Vector2 mousePosition, Panel * panel);
void Graphic_MouseHoverNodeChooseTarget(Node * originNode, Vector2 mousePosition, Panel * panel); void Graphic_MouseHoverNodeChooseTarget(Node * originNode, Vector2 mousePosition, Panel * panel);
void diceRolling(); void Graphic_RectuementBeginTurn(int screenWidth, int screenHeight, Font font);
int Graphic_ChooseNumberOfAttackers(Player * attacker, Player * defender, Node * originNode, Node * targetNode, Font font);
void diceRolling(Player * attacker, Player * defender, Node * originNode, Node * targetNode, int nbOfAttackers, int * listOfDices, Font font);
......
...@@ -192,9 +192,12 @@ void game_update(NetWorld * world, Player * players, Font font, Panel * panel) ...@@ -192,9 +192,12 @@ void game_update(NetWorld * world, Player * players, Font font, Panel * panel)
currentPlayer->selectedNode = currentNode; currentPlayer->selectedNode = currentNode;
} }
else if(Node_are_connected(originNode, currentNode) && (originNode->soldiers > 1) && originNode->canAttack){ else if(Node_are_connected(originNode, currentNode) && (originNode->soldiers > 1) && originNode->canAttack){
printf("Engaging attack on target Node\n"); printf("Engagine attack on target Node\n");
Player_attack_Node(currentPlayer, &(players[nodePlayerID]), originNode, currentNode); int nbOfAttackers = Graphic_ChooseNumberOfAttackers(currentPlayer, &(players[nodePlayerID]), originNode, currentNode, font);
//diceRolling(); int * listOfDices = Player_attack_Node(currentPlayer, &(players[nodePlayerID]), originNode, currentNode, nbOfAttackers);
int defendersCount = currentNode->soldiers >= 3? 2:1;
diceRolling(currentPlayer, &(players[nodePlayerID]), originNode, currentNode, nbOfAttackers , listOfDices ,font);
free(listOfDices);
}else{ }else{
} }
} }
......
...@@ -46,6 +46,9 @@ void Player_add_Node( Player * self, Node * node ) ...@@ -46,6 +46,9 @@ void Player_add_Node( Player * self, Node * node )
newNodes[i] = self->nodes[i]; newNodes[i] = self->nodes[i];
} }
node->color = self->color; node->color = self->color;
for (int i = 0 ; i < node->card ; i++){
node->edges[i].color = self->color;
}
node->playerID = self->ID; node->playerID = self->ID;
newNodes[self->nodeCount] = node; newNodes[self->nodeCount] = node;
free(self->nodes); free(self->nodes);
...@@ -147,8 +150,9 @@ void Player_confirm_recrutement(Player * self){ ...@@ -147,8 +150,9 @@ void Player_confirm_recrutement(Player * self){
}; };
void Player_attack_Node(Player * self, Player * defender, Node * originNode, Node * targetNode){ int * Player_attack_Node(Player * self, Player * defender, Node * originNode, Node * targetNode, int numberOfAttackers){
int attackersCount = fmin(3, (originNode->soldiers-1)); int * listOfDices = malloc(20*sizeof(int));
int attackersCount = numberOfAttackers;
int defendersCount = targetNode->soldiers >= 3? 2:1; int defendersCount = targetNode->soldiers >= 3? 2:1;
int attDiceRolls[attackersCount]; int attDiceRolls[attackersCount];
int defDiceRolls[defendersCount]; int defDiceRolls[defendersCount];
...@@ -182,6 +186,12 @@ void Player_attack_Node(Player * self, Player * defender, Node * originNode, Nod ...@@ -182,6 +186,12 @@ void Player_attack_Node(Player * self, Player * defender, Node * originNode, Nod
} }
} }
} }
for(int index = 0; index < attackersCount; index++){
listOfDices[index] = attDiceRolls[index];
}
for(int index = 0; index < defendersCount; index++){
listOfDices[index + attackersCount ] = defDiceRolls[index];
}
printf("Attackers dice rolls :\t"); printf("Attackers dice rolls :\t");
for(int index = 0; index < attackersCount; index++){ for(int index = 0; index < attackersCount; index++){
...@@ -216,4 +226,9 @@ void Player_attack_Node(Player * self, Player * defender, Node * originNode, Nod ...@@ -216,4 +226,9 @@ void Player_attack_Node(Player * self, Player * defender, Node * originNode, Nod
} }
originNode->canAttack = false; originNode->canAttack = false;
return listOfDices;
}
void Delete_Player_attack_Node(int * listOfDices){
free(listOfDices);
} }
...@@ -120,10 +120,11 @@ void Player_unselect_Node(Player * self, Vector2 mousePos); ...@@ -120,10 +120,11 @@ void Player_unselect_Node(Player * self, Vector2 mousePos);
* @param defender The defending player * @param defender The defending player
* @param originNode The attacker's node * @param originNode The attacker's node
* @param targetNode The defender's node * @param targetNode The defender's node
* @param numberOfAttackers Number of attacking soldiers
*/ */
void Player_attack_Node(Player * self, Player * defender, Node * originNode, Node * targetNode); int * Player_attack_Node(Player * self, Player * defender, Node * originNode, Node * targetNode, int numberOfAttackers);
/** /**
* @brief Confirm placement of soldiers * @brief Confirm placement of soldiers
* @param self The player context * @param self The player context
*/ */
......
...@@ -60,6 +60,7 @@ void Random_map(NetWorld *world) ...@@ -60,6 +60,7 @@ void Random_map(NetWorld *world)
name = malloc(20*sizeof(char)); name = malloc(20*sizeof(char));
sprintf(name, "name : %d", i); sprintf(name, "name : %d", i);
Node_set(&(world->nodes[i]), (Vector2){randomX, randomY}, RED, name); Node_set(&(world->nodes[i]), (Vector2){randomX, randomY}, RED, name);
free(name);
} }
else else
{ {
...@@ -69,6 +70,7 @@ void Random_map(NetWorld *world) ...@@ -69,6 +70,7 @@ void Random_map(NetWorld *world)
name = malloc(20*sizeof(char)); name = malloc(20*sizeof(char));
sprintf(name, "name : %d", i); sprintf(name, "name : %d", i);
Node_set(&(world->nodes[i]), (Vector2){randomX, randomY}, RED, name); Node_set(&(world->nodes[i]), (Vector2){randomX, randomY}, RED, name);
free(name);
printf("%f\n", randomX); printf("%f\n", randomX);
printf("%f\n", randomY); printf("%f\n", randomY);
} }
...@@ -83,9 +85,6 @@ void Random_map(NetWorld *world) ...@@ -83,9 +85,6 @@ void Random_map(NetWorld *world)
float ym = 0.5 * (world->nodes[i].position.y + world->nodes[j].position.y); float ym = 0.5 * (world->nodes[i].position.y + world->nodes[j].position.y);
Vector2 M = {xm, ym}; Vector2 M = {xm, ym};
float distNodeCenterOfij = dist(world->nodes[i].position, M); float distNodeCenterOfij = dist(world->nodes[i].position, M);
//printf("xm : %f\n", xm);
//printf("ym : %f\n", ym);
//printf("distNodeCenterOfij : %f\n", distNodeCenterOfij);
//printf("distNode %d%d : %f\n", i, j, distNode((world->nodes[i]), world->nodes[j])); //printf("distNode %d%d : %f\n", i, j, distNode((world->nodes[i]), world->nodes[j]));
for (int k = 0; k < nbNode; k++) for (int k = 0; k < nbNode; k++)
{ {
...@@ -102,4 +101,5 @@ void Random_map(NetWorld *world) ...@@ -102,4 +101,5 @@ void Random_map(NetWorld *world)
} }
} }
} }
} }
\ No newline at end of file
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