void enemyTurn(Hero& hero, ArmoredEnemy& enemy) { std::this_thread::sleep_for(std::chrono::milliseconds(500)); hero.setHealth(hero.getBool() ? hero.getHealth() < static_cast<unsigned short>(enemy.getAttack() * 0.1) ? 0 : hero.getHealth() - static_cast<unsigned short>(enemy.getAttack() * 0.1) : hero.getHealth() < enemy.getAttack() ? 0 : hero.getHealth() - enemy.getAttack()); // If the hero is blocking only do 1/10th damage if(enemy.getBool()) enemy.setBool(false); // Resetting blocking bool if(rand() % 10 + 1 == 10) enemy.setBool(true); }
void enemyTurn(Hero& hero, StrongEnemy& enemy) { if(rand() % 10 + 1 == 10) enemy.setBool(true); unsigned short currentAttack = enemy.getAttack() + enemy.getStrength(); if(enemy.getBool()) { currentAttack += enemy.getStrength(); enemy.setBool(false); // Resetting doubledamage bool } std::this_thread::sleep_for(std::chrono::milliseconds(500)); hero.setHealth(hero.getBool() ? hero.getHealth() < static_cast<unsigned short>(currentAttack * 0.1) ? 0 : hero.getHealth() - static_cast<unsigned short>(currentAttack * 0.1) : hero.getHealth() < currentAttack ? 0 : hero.getHealth() - currentAttack); // If the hero is blocking only do 1/10th damage }
void enemyTurn(Hero& hero, Character& boss) { std::this_thread::sleep_for(std::chrono::milliseconds(500)); hero.setHealth(hero.getBool() ? hero.getHealth() < static_cast<unsigned short>(boss.getAttack() * 0.1) ? 0 : hero.getHealth() - static_cast<unsigned short>(boss.getAttack() * 0.1) : hero.getHealth() < boss.getAttack() ? 0 : hero.getHealth() - boss.getAttack()); }