Advertisement
Guest User

Untitled

a guest
Nov 25th, 2012
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <string>
  3. #include <ctime>
  4. #include <stdlib.h>
  5. using namespace std;
  6. //GLOBAL VARIABLES
  7. struct inventory {
  8.     string type;
  9.     string name;
  10.     bool equiped;
  11. };
  12. struct player {
  13.        int hp;
  14.        int hpmax;
  15.        int agi;
  16.        int str;
  17.        string name;
  18.        string abilities[3];
  19.        bool dead;
  20.        int ct;
  21.        string ally;
  22.        int dex;
  23.        int magicattackmul;
  24.        int attackmul;
  25.        string job;
  26.        int mp;
  27.        int mpmax;
  28.        int lvl;
  29.        int exp;
  30.        int expmax;
  31.        int ap;
  32.        inventory inv[10];
  33.        int items;
  34. };
  35. int chance = rand() % 100;
  36. int ac = 0;
  37. int ec = 0;
  38. int etarget = rand() % 4;
  39. int eability = rand() % 1;
  40. int input;
  41. int target;
  42. int itemin;
  43. int gold;
  44. bool found = false;
  45. int itemfound;
  46. //THIS IS JUST FOR TESTING
  47. void setup_player(struct player *players) {
  48.     for(int i = 0; i <= 4; i++) {
  49.             players[i].dead = false;
  50.         players[i].hpmax = players[i].hp;
  51.             players[i].ct = 0;
  52.             players[i].ally = "ally";  
  53.     }                                                        
  54.     players[3].ally = "enemy";
  55.     players[4].ally = "enemy";
  56.     for(int i = 0; i <= 4; i++) {
  57.             if(players[i].ally == "ally") {
  58.                 ac += 1;
  59.             }
  60.             if(players[i].ally == "enemy") {
  61.                 ec += 1;
  62.             }
  63.     }
  64.     for(int i = 0; i <= 4; i++) {
  65.     cout << players[i].ally << i << " Name: ";
  66.     cin >> players[i].name;
  67.     cout << i << " Agility";
  68.     cin >> players[i].agi;
  69.     cout << players[i].ally << i << " Strenght: ";
  70.     cin >> players[i].str;
  71.     cout << players[i].ally << i << " Hit Points: ";
  72.     players[i].attackmul = 4;
  73.     cin >> players[i].hp;
  74.     players[i].hpmax = players[i].hp;
  75.     players[i].abilities[0] = "Attack";
  76.     players[i].dex = 77;
  77.     players[0].abilities[1] = "Steal";
  78.     players[1].abilities[1] = "Cura";
  79.     players[2].abilities[1] = "Blaze";
  80.     players[i].abilities[2] = "Item";
  81.     players[i].inv[0].name = "Grenade";
  82.     players[i].inv[1].name = "Grenade";
  83.         players[i].inv[2].name = "Grenade";
  84.     }
  85.     for(int i = 3; i < 10; i++) {
  86.         players[0].inv[i].name = " ";
  87.         players[1].inv[i].name = " ";
  88.         players[2].inv[i].name = " ";
  89.     }
  90.     for(int i = 0; i < 10; i++) {
  91.         players[i].items = 3;
  92.     }
  93.     for(int i = 0; i <= 4; i++) {
  94.         players[i].mp = 999;
  95.         players[i].mpmax = 999;
  96.     }
  97.     for(int i = 3; i <= 4; i++) {
  98.         players[i].abilities[1] = "Blaze";
  99.     }
  100. }
  101. //ABILITY LIST; all the abilities are utterly useless due to attackmul.
  102. void checkabi(struct player *players, int i, int target, int input) {
  103.                         if(players[target].hp+players[i].str <= players[target].hpmax) {
  104.                         if(players[i].abilities[input] == "Attack") {
  105.                                         if(chance <= players[i].dex) {
  106.                                           cout << "Critical Hit!";
  107.                                           cout << players[i].name << " attacks " << players[target].name << " with " << players[i].str*players[i].attackmul*2 << " dmg" << endl;
  108.                                           players[target].hp += players[i].str*players[i].attackmul*2;
  109.                                           srand(150);
  110.                                           chance = rand() % 100;
  111.                                         } else {
  112.                                         cout << players[i].name << " attacks " << players[target].name << " with " << players[i].str*players[i].attackmul << " dmg" << endl;
  113.                                         players[target].hp += players[i].str*players[i].attackmul;
  114.                                       }
  115.                         }
  116.             if(players[i].mp <= 0) {
  117.                 cout << "Out of MP";
  118.             } else {
  119.                         if(players[i].abilities[input] == "Cure") {
  120.                                         cout << players[i].name << " heals " << " with " << "500"<< " restored hp " << endl;
  121.                                         players[target].hp += 500;
  122.                         }
  123.                         if(players[i].abilities[input] == "Blaze") {
  124.                                         cout << players[i].name << " Casts Blaze" << " with " << players[i].str*2 << " dmg" << endl;
  125.                                         players[target].hp += players[i].str*2*players[i].attackmul;
  126.                     players[i].mp -= 4;
  127.                         }
  128.                         if(players[i].abilities[input] == "Cura") {
  129.                                         cout << players[i].name << " Heals " << " with " << "1000" << " restored hp" << endl;
  130.                                         players[target].hp += 1000;
  131.                         }
  132.                         if(players[i].abilities[input] == "Blaza") {
  133.                                         cout << players[i].name << " Casts Blaze " << " with " << players[i].str << " hp" << endl;
  134.                                         players[target].hp += players[i].str*3*players[i].attackmul;
  135.                     players[i].mp -= 8;
  136.                         }
  137.             }
  138.                         if(players[i].abilities[input] == "Steal") {
  139.                 for(int v = 0; v < 10; v++) {
  140.                     if(players[target].inv[v].name != " ") {
  141.                         found = true;
  142.                         itemfound = v;
  143.                         break;
  144.                     }
  145.                 }
  146.                 cout << "Stole " << players[target].inv[itemfound].name << "!\n";
  147.                 players[i].inv[players[i].items].name = players[target].inv[itemfound].name;
  148.                 players[i].items++;
  149.                         }
  150.                         if(players[i].abilities[input] == "Item") {
  151.                     for(int v = 0; v < 10; v++) {
  152.                         cout << v << " " << players[i].inv[v].name << endl;
  153.                     }
  154.                     cin >> itemin;
  155.                     if(players[i].inv[itemin].name == "Potion") {
  156.                         cout << players[i].name << " Throws a Potion\n";
  157.                         players[target].hp += 100;
  158.                     }
  159.                     if(players[i].inv[itemin].name == "HiPotion") {
  160.                         cout << players[i].name << " Throws a HiPotion\n";
  161.                         players[target].hp += 500;
  162.                     }
  163.                     if(players[i].inv[itemin].name == "XPotion") {
  164.                         cout << players[i].name << " Throws a XPotion\n";
  165.                         players[target].hp = players[target].hpmax;
  166.                     }
  167.                     if(players[i].inv[itemin].name == "Grenade") {
  168.                         cout << players[i].name << " Throws a grenade\n";
  169.                         players[target].hp += -300;
  170.                     }
  171.                     if(players[i].inv[itemin].name == " ") {
  172.                         cout << "Empty slot!";
  173.                     }
  174.                     players[i].inv[itemin].name = " ";
  175.                     players[i].items--;
  176.                         }
  177.                                         players[i].ct = 0;
  178.                         } else {
  179.                                         players[i].ct = 0;
  180.                                         players[target].hp = players[target].hpmax;
  181.                         }
  182. }
  183. //BATTLE FUNCTION
  184. void battle(struct player *players) {
  185.     while(true) {
  186.                 for(int i = 0; i <= 4; i++) {
  187.                         if(players[i].hp <= 0 && players[i].ally == "ally" && !players[i].dead) {
  188.                                          players[i].dead = true;
  189.                                          ac -= 1;
  190.                                          break;  
  191.                         }
  192.                         if(players[i].hp <= 0 && players[i].ally == "enemy" && !players[i].dead) {
  193.                                          ec -= 1;
  194.                                          players[i].dead = true;
  195.                                          break;
  196.                                            
  197.                         }
  198.                         if(ac <= 0) {
  199.                               cout << "\nLost\n";
  200.                               cin.get();
  201.                               cin.get();
  202.                               exit(0);
  203.                         }
  204.                         if(ec <= 0) {
  205.                               cout << "\nwon\n";
  206.                               cin.get();
  207.                               cin.get();
  208.                               exit(0);  
  209.                         }
  210.                 }
  211.                 for(int i = 0; i <= 4; i++) {
  212.                         if(players[i].ct >= 100) {
  213.                         if(players[i].ally == "ally") {
  214.                                             cout << players[i].name << endl;
  215.                         for(int c = 0; c <= 2; c++) {
  216.                                 cout << c << " - " << players[i].abilities[c] << endl;      
  217.                         }
  218.                         cin >> input;
  219.                         cout << "Who do you want to target?\n";
  220.                         for(int j = 0; j <= 4; j++) {
  221.                                 cout << j << " - " << players[j].name << " Hp: " << players[j].hp << endl;      
  222.                         }
  223.                         cin >> target;
  224.                         if(players[target].dead) {
  225.                                                  cout << "\nAlready dead\n";
  226.                                                  players[i].ct = 0;
  227.                                                  break;                      
  228.                         }
  229.             checkabi(players, i, target, input); break;
  230.                         }
  231.                         if(players[i].ally == "enemy") {
  232.                         while(true) {
  233.                         if(players[etarget].dead || players[etarget].ally == "enemy") {
  234.                         if(ac <= 0) break;
  235.                                               etarget = rand() % 4;              
  236.                         }
  237.                         if(!players[etarget].dead || players[etarget].ally == "ally") break;
  238.                         }
  239.             checkabi(players, i, etarget, eability);
  240.                                               players[i].ct = 0;
  241.                           etarget = rand() % 4;
  242.                           eability = rand() % 2;
  243.                                               }
  244.                         }
  245.                         players[i].ct += players[i].agi;
  246.                         if(players[i].dead) players[i].ct = 0;
  247.                 }          
  248.     }
  249. }
  250. main() {
  251.     //SIMPLY CHANGE VARIABLES TO CHANGE THE BATTLE SETTINGS :) However, you will need to change a LOT of variables for one player..
  252.     player players[6];
  253.     srand(time(0));
  254.     setup_player(players);
  255.     battle(players);
  256. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement