1. #include <iostream>
  2. #include <cstdlib>
  3. #include <ctime>
  4.  
  5. #include "player.h"
  6.  
  7. bool evasionCheck = false; // TRUE = CHARACTER HAS EVADED THE ATTACK FALSE = THE CHARACTER HAS NOT EVADED THE HIT.
  8. bool defenseCheck = false; // TRUE = CHARACTER HAS DEFENDED THE ATTACK. FALSE = CHARACTER HAS NOT DEFENDED THE ATTACK.
  9.  
  10. int damageRecieved = 0;
  11. int attackChoice = 0;
  12. int ranNumber = 0; // The placeholder for the actual random number
  13. int maxNumber = 0; //Max number the RNG can go too
  14. int strikeType = 0; // Strike type for determing evasion. 3 = heavy 2 = normal 1 = light.
  15.  
  16. srand((unsigned)time(0)); //seeds the RNG to system time
  17.  
  18. class battle
  19. {
  20. bool checkEvasion(int strikeType)
  21. {
  22. if (strikeType == 3)
  23. {
  24. if ((randomNumber(50)) > ((enemy.getEvasion) * 5))
  25. {
  26. return true;
  27. }
  28.  
  29. return false;
  30.  
  31. }//end of striketype 3
  32.  
  33. if (strikeType == 2)
  34. {
  35. if ((randomNumber(75)) > ((enemy.getEvasion) * 5))
  36. {
  37. return true;
  38. }
  39.  
  40. return false;
  41. }//end of striketype 2
  42. if (strikeType == 1)
  43. {
  44. if ((randomNumber(125)) > ((enemy.getEvasion) * 5))
  45. {
  46. return true;
  47. }
  48.  
  49. return false;
  50. }//end of striketype 1
  51. }//end of checkEvasion
  52.  
  53.  
  54. int randomNumber(int maxNumber)
  55. {
  56. randomNumber = (rand() % maxNumber);
  57.  
  58. return ranNumber;
  59. }
  60.  
  61.  
  62.  
  63. int heavy_strike()
  64. {
  65. damageRecieved = (randomNumber(15) * player.getSrength()) - (enemy.getDefense());
  66.  
  67. evasionCheck = checkEvasion(strikeType);
  68.  
  69. if (evasionCheck == False)
  70. {
  71. if (damageRecieved < enemy.getDefense)
  72. {
  73. defenseCheck = true;
  74. }
  75.  
  76. else
  77. {
  78. defenseCheck = false;
  79. }
  80.  
  81. if (defenseCheck == false && evasionCheck == false)
  82. {
  83. return damageRecieved;
  84. }
  85.  
  86. if (defenseCheck == true)
  87. {
  88. std::cout << "They defended the attack!";
  89.  
  90. return 0;
  91. }
  92.  
  93.  
  94. }
  95.  
  96. if (evasionCheck == true)
  97. {
  98. std::cout << "They evaded the attack!";
  99.  
  100. return 0;
  101. }
  102.  
  103. return 0;
  104. }
  105.  
  106. int light_strike()
  107. {
  108. // damageRecieved = (RNG(0-5) * Strength) - (Enemy Defense)
  109. // If damageRecieved =< Enemy DEfense "Armour blocked the strike!"
  110.  
  111. // Evasion = (RNG(1-125) =< (evasion * 5)
  112. // if RNG =< Evasion "They dodged the attack!"
  113.  
  114. return damageRecieved;
  115. }
  116.  
  117. int normal_strike()
  118. {
  119. // damageRecieved = (RNG(0-10) * Strength) - (Enemy Defense)
  120. // If damageRecieved =< Enemy DEfense "Armour blocked the strike!"
  121.  
  122. // Evasion = (RNG(1-100) =< (evasion * 5)
  123. // if RNG =< Evasion "They dodged the attack!"
  124.  
  125. return damageRecieved
  126. }
  127.  
  128.  
  129.  
  130. battle()
  131. {
  132. std::cout << "\n\nFIGHT!!";
  133. do
  134. {
  135. std::cout << "\n\n 1 = Heavy Strike\n 2 = Normal Strike \n 3 = Light Strike\n";
  136. std::count << "\n How will you attack? ";
  137. std::cin >> attackChoice;
  138.  
  139. switch(attackChoice) // Determine player's intention for this turn. Heavy, normal or light strikes.
  140. {
  141.  
  142. case 1: //Heavy Strike
  143.  
  144. break;
  145. case 2: // Normal Strike
  146. break;
  147. case 3: // Light Strike
  148. break;
  149. default:
  150. std::cout << "Make a valid choice before it is too late Gladiator!";
  151. break;
  152. }
  153. }while (attackChoice < 1 || attackChoice > 4);
  154.  
  155. }// End of battle()
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165. }