From 43379d6ab0c2c51c6b92e2c7cff9e548c41e75e5 Mon Sep 17 00:00:00 2001 From: vylion Date: Sun, 22 Jan 2017 02:13:53 +0100 Subject: [PATCH] Parece que ahora funciona --- VaporWaveWars/combat.cpp | 48 ++++++++++++++++++++++++++-------------- 1 file changed, 31 insertions(+), 17 deletions(-) diff --git a/VaporWaveWars/combat.cpp b/VaporWaveWars/combat.cpp index 03b27b3..5b77660 100644 --- a/VaporWaveWars/combat.cpp +++ b/VaporWaveWars/combat.cpp @@ -152,28 +152,42 @@ void Combat::updateEvents(sf::Event e) { } } -void Combat::enemyManager(bool compasFinish) { +void Combat::enemyManager(bool compasFinish) { //To do: considerar si hay ia if(compasFinish) { Compas compas; - if(isPlayerOne()) compas = enemy->getAttack(); - else compas = player->getAttack(); - if(!isAttack()) { - if(!ia) { - bool hit; - if(isPlayerOne()) hit = !player->hitBy(compas); - else hit = !enemy->hitBy(compas); - if(hit) { - if(isPlayerOne()) - scoreEnemy->incrisScore(); - else - scorePlayer->incrisScore(); + switch(state) { + case CombatState::player_def: + compas = enemy->getAttack(); + if(!player->hitBy(compas)) { + scoreEnemy->incrisScore(); } - } + state = CombatState::player_atk; + break; + case CombatState::player_atk: + compas = player->getAttack(); + if(compas.isFailed()) { + state = CombatState::enemy_atk; + } + else state = CombatState::enemy_def; + break; + case CombatState::enemy_def: + compas = player->getAttack(); + if(!enemy->hitBy(compas)) { + scorePlayer->incrisScore(); + } + state = CombatState::enemy_atk; + break; + case CombatState::enemy_atk: + compas = enemy->getAttack(); + if(compas.isFailed()) { + state = CombatState::player_atk; + } + else state = CombatState::player_def; + break; + default: + break; } - else if(compas.isFailed()) - state = (CombatState::combatState) ((((int) state)+1) % 4); - state = (CombatState::combatState) ((((int) state)+1) % 4); } }