#include <iostream>
#include <cstdlib>
#include <ctime>
#include "player.h"
bool evasionCheck = false; // TRUE = CHARACTER HAS EVADED THE ATTACK FALSE = THE CHARACTER HAS NOT EVADED THE HIT.
bool defenseCheck = false; // TRUE = CHARACTER HAS DEFENDED THE ATTACK. FALSE = CHARACTER HAS NOT DEFENDED THE ATTACK.
int damageRecieved = 0;
int attackChoice = 0;
int ranNumber = 0; // The placeholder for the actual random number
int maxNumber = 0; //Max number the RNG can go too
int strikeType = 0; // Strike type for determing evasion. 3 = heavy 2 = normal 1 = light.
srand((unsigned)time(0)); //seeds the RNG to system time
class battle
{
bool checkEvasion(int strikeType)
{
if (strikeType == 3)
{
if ((randomNumber(50)) > ((enemy.getEvasion) * 5))
{
return true;
}
return false;
}//end of striketype 3
if (strikeType == 2)
{
if ((randomNumber(75)) > ((enemy.getEvasion) * 5))
{
return true;
}
return false;
}//end of striketype 2
if (strikeType == 1)
{
if ((randomNumber(125)) > ((enemy.getEvasion) * 5))
{
return true;
}
return false;
}//end of striketype 1
}//end of checkEvasion
int randomNumber(int maxNumber)
{
randomNumber = (rand() % maxNumber);
return ranNumber;
}
int heavy_strike()
{
damageRecieved = (randomNumber(15) * player.getSrength()) - (enemy.getDefense());
evasionCheck = checkEvasion(strikeType);
if (evasionCheck == False)
{
if (damageRecieved < enemy.getDefense)
{
defenseCheck = true;
}
else
{
defenseCheck = false;
}
if (defenseCheck == false && evasionCheck == false)
{
return damageRecieved;
}
if (defenseCheck == true)
{
std::cout << "They defended the attack!";
return 0;
}
}
if (evasionCheck == true)
{
std::cout << "They evaded the attack!";
return 0;
}
return 0;
}
int light_strike()
{
// damageRecieved = (RNG(0-5) * Strength) - (Enemy Defense)
// If damageRecieved =< Enemy DEfense "Armour blocked the strike!"
// Evasion = (RNG(1-125) =< (evasion * 5)
// if RNG =< Evasion "They dodged the attack!"
return damageRecieved;
}
int normal_strike()
{
// damageRecieved = (RNG(0-10) * Strength) - (Enemy Defense)
// If damageRecieved =< Enemy DEfense "Armour blocked the strike!"
// Evasion = (RNG(1-100) =< (evasion * 5)
// if RNG =< Evasion "They dodged the attack!"
return damageRecieved
}
battle()
{
std::cout << "\n\nFIGHT!!";
do
{
std::cout << "\n\n 1 = Heavy Strike\n 2 = Normal Strike \n 3 = Light Strike\n";
std::count << "\n How will you attack? ";
std::cin >> attackChoice;
switch(attackChoice) // Determine player's intention for this turn. Heavy, normal or light strikes.
{
case 1: //Heavy Strike
break;
case 2: // Normal Strike
break;
case 3: // Light Strike
break;
default:
std::cout << "Make a valid choice before it is too late Gladiator!";
break;
}
}while (attackChoice < 1 || attackChoice > 4);
}// End of battle()
}