#include "Fonction_combat.hpp" #include "Cutscenes.hpp" bool combat(entity& joueur, entity& ennemi, int& niveau) { for (auto& action : joueur.liste_actions) { if (action.classe == "combat") { action.avaible = true; } else if (action.classe == "menu") { action.avaible = false; } } for (auto& action : ennemi.liste_actions) { if (action.classe == "combat") { std::cout << action.action_name << " devient true" << std::endl; action.avaible = true; std::cout << std::boolalpha << ennemi.special.avaible << std::endl; } else if (action.classe == "menu") { action.avaible = false; } } if (niveau == 0) { for (auto ligne : niveau_0) { std::cout << ligne << std::endl; }; std::cout << std::endl; } else if (niveau == 1) { for (auto ligne : niveau_1) { std::cout << ligne << std::endl; }; std::cout << std::endl; } else if (niveau == 2) { for (auto ligne : niveau_2) { std::cout << ligne << std::endl; }; std::cout << std::endl; } else if (niveau == 3) { for (auto ligne : niveau_3) { std::cout << ligne << std::endl; }; std::cout << std::endl; } else if (niveau == 4) { for (auto ligne : niveau_4) { std::cout << ligne << std::endl; }; std::cout << std::endl; } else { std::cout << "Ceci est un bug." << std::endl; std::cout << std::endl; return false; } int tour{ 1 }; entity copie_joueur = joueur; entity copie_ennemi = ennemi; bool joueur_a_deja_joue{ false }; bool ennemi_a_deja_joue{ false }; bool victoire{ false }; bool fin_de_combat{ false }; while (fin_de_combat == false) { if (ennemi_a_deja_joue == true) { joueur_a_deja_joue = true; ennemi_a_deja_joue = false; std::cout << std::boolalpha << joueur.special.avaible << std::endl; joueur.fonction_a_moi_de_jouer(ennemi); ennemi.fonction_mort(); if (ennemi.test_mort() == true) { fin_de_combat = true; std::cout << joueur.entity_name << " a gagné !" << std::endl; ++niveau; if (niveau > 4) { std::cout << std::endl; for (auto ligne : fin) { std::cout << ligne << std::endl; }; } continue; } } else if (joueur_a_deja_joue == true) { ennemi_a_deja_joue = true; joueur_a_deja_joue = false; ennemi.fonction_a_moi_de_jouer(joueur); joueur.fonction_mort(); if (joueur.test_mort() == true) { fin_de_combat = true; std::cout << ennemi.entity_name << " a gagné !" << std::endl; continue; } } else { if (joueur.SPEED > ennemi.SPEED) { joueur_a_deja_joue = false; ennemi_a_deja_joue = true; } else if (joueur.SPEED < ennemi.SPEED) { joueur_a_deja_joue = true; ennemi_a_deja_joue = false; } else { joueur_a_deja_joue = false; ennemi_a_deja_joue = true; } } fonction_tours(tour); } joueur = copie_joueur; ennemi = copie_ennemi; for (auto& action : joueur.liste_actions) { if (action.classe == "combat") { action.avaible = false; } else if (action.classe == "menu") { action.avaible = true; } } for (auto& action : ennemi.liste_actions) { if (action.classe == "combat") { action.avaible = false; } else if (action.classe == "menu") { action.avaible = true; } } return victoire; }