victorialais

RPG editado2

Nov 12th, 2018
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.04 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. class Personagem {
  6. protected:
  7.     string nome;
  8.     int vida;
  9.     int atk;
  10.     int def;
  11.     int level;
  12.     int contador;
  13.     int porcentagem;
  14. public:
  15.     Personagem(string n, int v, int a, int d, int i, int p) {
  16.         nome = n;
  17.         vida = v;
  18.         atk = a;
  19.         def = d;
  20.         level = 1;
  21.         contador = i;
  22.         porcentagem = p;
  23.     }
  24.     string getNome() {
  25.         return nome;
  26.     }
  27.     int getVida() {
  28.         return vida;
  29.     }
  30.     int getAtk() {
  31.         return atk;
  32.     }
  33.     int getDef() {
  34.         return def;
  35.     }
  36.     int getLevel() {
  37.         return level;
  38.     }
  39.     void setNome(string novoNome) {
  40.         nome = novoNome;
  41.     }
  42.  
  43.     bool estaVivo() {
  44.         return (vida > 0);
  45.     }
  46.  
  47.     void descricao() {
  48.         cout << "*************" << endl;
  49.         cout << "Nome: " << nome << endl;
  50.         cout << "Level: " << level << endl;
  51.         cout << "Vida: " << vida << endl;
  52.         cout << "Atk: " << atk << endl;
  53.         cout << "Def: " << def << endl;
  54.         cout << "*************" << endl;
  55.     }
  56.  
  57.     virtual void atacar(Personagem* alvo) = 0;
  58.     virtual void receberAtaque(int dano) = 0;
  59. };
  60.  
  61. class Heroi : public Personagem {
  62. protected:
  63.     //Equipamentos
  64. public:
  65.     Heroi(string n, int v, int a, int d);
  66.     :: Personagem(n, v, a, d) {
  67.  
  68.     }
  69.  
  70.     void atacar(Personagem* alvo) {
  71.         int dano = atk;
  72.         alvo->receberAtaque(dano);
  73.     }
  74.     void receberAtaque(int dano) {
  75.         int danoFinal = dano - def;
  76.         vida = vida - danoFinal;
  77.     }
  78.  
  79. };
  80.  
  81. class Inimigo : public Personagem {
  82. protected:
  83.     //Experiencia fornecida ao ser derrotado
  84.     //Itens derrubados ao ser derrotado
  85. public:
  86.     Inimigo(string n, int v, int a, int d)
  87.     : Personagem(n, v, a, d) {
  88.     }
  89.  
  90.     void atacar(Personagem* alvo) {
  91.         int danoFinal = atk * 2;
  92.         alvo->receberAtaque(danoFinal);
  93.     }
  94.     void receberAtaque(int dano) {
  95.         int danoFinal = dano * 0.8;
  96.         vida = vida - danoFinal;
  97.     }
  98. };
  99.  
  100.  
  101. //CLASSE DOS PERSONAGENS
  102.  
  103. public:
  104.     Cavaleiro(string n, int v, int a, int d)
  105.     : Heroi(n, v, a, d) {
  106.     }
  107.  
  108.    
  109.     virtual void receberAtaque(int dano) {
  110.         int danoFinal = dano * 0.8;
  111.         vida = vida - danoFinal;
  112.     }
  113.  
  114.  
  115.  
  116. public:
  117.     Arqueiro(string n, int v, int a, int d, int i)
  118.     : Heroi(n, v, a, d, i) {
  119.     }
  120.  
  121.    
  122.     virtual void receberAtaque(int dano) {
  123.         int danoFinal = dano * 0.8;
  124.         vida = vida - danoFinal;
  125.     }
  126.    
  127.     void atacar(Personagem* alvo) {
  128.        
  129.        
  130.         i++
  131.         if (i % 2 == 0){
  132.            
  133.             dano = atk *1,5;
  134.            
  135.         } else {
  136.             int dano = atk;
  137.            
  138.         }
  139. alvo->receberAtaque(dano);
  140.  
  141. };
  142.  
  143.  
  144. public:
  145.     Barbaro(string n, int v, int a, int d, int p)
  146.     : Heroi(n, v, a, d) {
  147.     }
  148.    
  149.     void atacar(Personagem* alvo) {
  150.        
  151.    
  152.     for (i = 0; i < 5; i++)
  153.   {
  154.     //gerando 5 valores aleatórios entre zero e 5
  155.     if  ((rand() % 5) == 1) {
  156.         p = 0.8;
  157.     } else if ((rand() % 5) == 2) {
  158.         p = 0.9;
  159.     }
  160.    
  161.     else if ((rand() % 5) == 3) {
  162.         p = 1;
  163.     }
  164.    
  165.    
  166.    
  167.     else if ((rand() % 5) == 4) {
  168.         p = 1.1;
  169.     }
  170.    
  171.     else if ((rand() % 5) == 5) {
  172.         p = 1.2;
  173.     }
  174.     };
  175.    
  176.    
  177.     int dano = atk*p;
  178.         alvo->receberAtaque(dano);
  179. }
  180. }
  181.  
  182.    
  183.  
  184. };
  185.  
  186.  
  187. public:
  188.     Boss(string n, int v, int a, int d)
  189.     : Inimigo(n, v, a, d) {
  190.  
  191.     }
  192.  
  193.     void atacar(Personagem* alvo) {
  194.     if (vida =< 30) {
  195.        
  196.         int dano = atk*2,2;
  197.        
  198.     } else {
  199.    
  200.         int dano = atk*2;
  201.        
  202.     }
  203.         alvo->receberAtaque(dano);
  204.     }
  205.     void receberAtaque(int dano) {
  206.         int danoFinal = dano*0,2 - def;
  207.         vida = vida - danoFinal;
  208.     }
  209.  
  210. };
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218. void Escolha(){
  219.     string nome;
  220.     int atk;
  221.     int def;
  222.     string classe;
  223.     int escolha;
  224.    
  225.     cout << "Escolha o nome do seu personagem";
  226.     cin >> nome;
  227.     cout << "Distribua os pontos de defesa e ataque do seu personagem.";
  228.     cout << "Ataque: ";
  229.     cin >> atk;
  230.     cout << "Defesa: ";
  231.     cin >> def;
  232.    
  233.    
  234.     cout << "Vamos escolher a classe do seu heroi" << endl;
  235.     cout << "1. Cavaleiro " << endl;
  236.     cout << "2. Assassino " << endl;
  237.     cout << "3. Arqueiro " << endl;
  238.     cout << "4. Barbaro " << endl;
  239.     cout << " " << endl;
  240.    
  241.    
  242.     cin >> escolha;
  243.         if(escolha == 1){
  244.             Cavaleiro* hero = new Cavaleiro(name, 100, atk, def);
  245.             heroi->setClasse("Cavaleiro");
  246.            
  247.         }
  248.         if(escolha == 2){
  249.             Assassino* hero = new Assassino(name, 100, atk, def);
  250.             heroi->setClasse("Assassino");
  251.            
  252.         }
  253.         if(escolha == 3){
  254.             Arqueiro* heroi = new Paladino(name, 100, atk, def);
  255.             heroi->setClasse("Arqueiro");
  256.          
  257.         }
  258.         if(escolha == 4){
  259.             Barbaro* heroi = new Barbaro(name, 100, atk, def);
  260.             heroi->setClasse("Barbaro");
  261.            
  262.         }  
  263.        
  264.    
  265. }
  266.  
  267.  
  268.  
  269.  
  270.  
  271. int main(){
  272.    
  273.     Escolha();
  274.  
  275.     return 0;
  276. }
Advertisement
Add Comment
Please, Sign In to add comment