Commit 9ab505fa authored by ewen.madec's avatar ewen.madec

dice rolling animation

parent a95aa518
This diff is collapsed.
...@@ -19,7 +19,7 @@ void Graphic_MouseHoverNodeChooseAttacker(Player * player, Vector2 mousePosition ...@@ -19,7 +19,7 @@ void Graphic_MouseHoverNodeChooseAttacker(Player * player, Vector2 mousePosition
void Graphic_MouseHoverNodeChooseTarget(Node * originNode, Vector2 mousePosition, Panel * panel); void Graphic_MouseHoverNodeChooseTarget(Node * originNode, Vector2 mousePosition, Panel * panel);
void Graphic_RectuementBeginTurn(int screenWidth, int screenHeight, Font font); void Graphic_RectuementBeginTurn(int screenWidth, int screenHeight, Font font);
int Graphic_ChooseNumberOfAttackers(Player * attacker, Player * defender, Node * originNode, Node * targetNode, 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, Font font); void diceRolling(Player * attacker, Player * defender, Node * originNode, Node * targetNode, int nbOfAttackers, int * listOfDices, Font font);
......
...@@ -159,8 +159,10 @@ void game_update(NetWorld * world, Player * players, Font font, Panel * panel) ...@@ -159,8 +159,10 @@ void game_update(NetWorld * world, Player * players, Font font, Panel * panel)
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("Engagine attack on target Node\n"); printf("Engagine attack on target Node\n");
int nbOfAttackers = Graphic_ChooseNumberOfAttackers(currentPlayer, &(players[nodePlayerID]), originNode, currentNode, font); int nbOfAttackers = Graphic_ChooseNumberOfAttackers(currentPlayer, &(players[nodePlayerID]), originNode, currentNode, font);
Player_attack_Node(currentPlayer, &(players[nodePlayerID]), originNode, currentNode, nbOfAttackers); int * listOfDices = Player_attack_Node(currentPlayer, &(players[nodePlayerID]), originNode, currentNode, nbOfAttackers);
//diceRolling(currentPlayer, &(players[nodePlayerID]), originNode, currentNode, nbOfAttackers ,font); int defendersCount = currentNode->soldiers >= 3? 2:1;
diceRolling(currentPlayer, &(players[nodePlayerID]), originNode, currentNode, nbOfAttackers , listOfDices ,font);
free(listOfDices);
}else{ }else{
printf("Failed to attack target : Origin has already attacked, nodes aren't connected or origin node has too few soldiers\n"); printf("Failed to attack target : Origin has already attacked, nodes aren't connected or origin node has too few soldiers\n");
......
...@@ -155,7 +155,8 @@ void Player_confirm_recrutement(Player * self){ ...@@ -155,7 +155,8 @@ void Player_confirm_recrutement(Player * self){
}; };
void Player_attack_Node(Player * self, Player * defender, Node * originNode, Node * targetNode, int numberOfAttackers){ int * Player_attack_Node(Player * self, Player * defender, Node * originNode, Node * targetNode, int numberOfAttackers){
int * listOfDices = malloc(20*sizeof(int));
int attackersCount = numberOfAttackers; int attackersCount = numberOfAttackers;
int defendersCount = targetNode->soldiers >= 3? 2:1; int defendersCount = targetNode->soldiers >= 3? 2:1;
int attDiceRolls[attackersCount]; int attDiceRolls[attackersCount];
...@@ -190,6 +191,12 @@ void Player_attack_Node(Player * self, Player * defender, Node * originNode, Nod ...@@ -190,6 +191,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++){
...@@ -224,4 +231,9 @@ void Player_attack_Node(Player * self, Player * defender, Node * originNode, Nod ...@@ -224,4 +231,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);
} }
...@@ -87,7 +87,7 @@ void Player_select_Node(Player * self, Vector2 mousePos); ...@@ -87,7 +87,7 @@ void Player_select_Node(Player * self, Vector2 mousePos);
void Player_unselect_Node(Player * self, Vector2 mousePos); void Player_unselect_Node(Player * self, Vector2 mousePos);
void Player_attack_Node(Player * self, Player * defender, Node * originNode, Node * targetNode, int numberOfAttackers); int * Player_attack_Node(Player * self, Player * defender, Node * originNode, Node * targetNode, int numberOfAttackers);
void Player_confirm_recrutement(Player * self); void Player_confirm_recrutement(Player * self);
......
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