Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- #include <cstdlib>
- #include <ctime>
- int main() {
- //Challenge: Make a battle system where an enemy HP is slowly depleted by attacks.
- double hp = 500;
- int atk;
- double power;
- double damage;
- int atkAmt = 0;
- double accuracy;
- int random1;
- int random2;
- double accuracyHit;
- srand(time(NULL));
- do{
- std::cout << "Enter an Attack Number Between 1-100: ";
- std::cin >> atk;
- //if(atk <= 0) atk = 1;
- //else if(atk > 100) atk = 100;
- }while(atk > 100 || atk <= 0);
- //accuracy will go down to 80 if atk=100 and 100 if atk=1.
- accuracy = (-20 * atk + 9920)/99;
- //atk 1 base 30 atk 100 base 150
- // y = (120x + 2850) / 99
- power = (120 * atk + 2850) / 99;
- do{
- std::cout << "Enemy HP: " << round(hp) << '\n';
- //Accuracy Check
- random1 = rand() % 100 + 1;
- if(random1 > accuracy) {
- //Miss Chance
- std::cout << "You missed! ";
- }
- else{
- //Damage Calcs
- random2 = rand() % 41 + 80; //Goes from 0.8 to 1.2
- if(random2 == 120) {
- //Crits
- damage = power * 1.5;
- std::cout << "**Critical Hit!**\n";
- std::cout << "You did " << damage << " damage! ";
- }
- else {
- damage = round(power * ((double)random2 / 100));
- std::cout << "You did " << damage << " damage! ";
- }
- //HP Removal
- hp = hp - damage;
- }
- //Turn Track
- atkAmt++;
- }while(hp > 0);
- std::cout << "Enemy defeated!\nTook " << atkAmt << " turns to defeat!";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement