Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class Personagem {
- protected:
- string nome;
- int vida;
- int atk;
- int def;
- int level;
- int contador;
- int porcentagem;
- public:
- Personagem(string n, int v, int a, int d, int i, int p) {
- nome = n;
- vida = v;
- atk = a;
- def = d;
- level = 1;
- contador = i;
- porcentagem = p;
- }
- string getNome() {
- return nome;
- }
- int getVida() {
- return vida;
- }
- int getAtk() {
- return atk;
- }
- int getDef() {
- return def;
- }
- int getLevel() {
- return level;
- }
- void setNome(string novoNome) {
- nome = novoNome;
- }
- bool estaVivo() {
- return (vida > 0);
- }
- void descricao() {
- cout << "*************" << endl;
- cout << "Nome: " << nome << endl;
- cout << "Level: " << level << endl;
- cout << "Vida: " << vida << endl;
- cout << "Atk: " << atk << endl;
- cout << "Def: " << def << endl;
- cout << "*************" << endl;
- }
- virtual void atacar(Personagem* alvo) = 0;
- virtual void receberAtaque(int dano) = 0;
- };
- class Heroi : public Personagem {
- protected:
- //Equipamentos
- public:
- Heroi(string n, int v, int a, int d);
- :: Personagem(n, v, a, d) {
- }
- void atacar(Personagem* alvo) {
- int dano = atk;
- alvo->receberAtaque(dano);
- }
- void receberAtaque(int dano) {
- int danoFinal = dano - def;
- vida = vida - danoFinal;
- }
- };
- class Inimigo : public Personagem {
- protected:
- //Experiencia fornecida ao ser derrotado
- //Itens derrubados ao ser derrotado
- public:
- Inimigo(string n, int v, int a, int d)
- : Personagem(n, v, a, d) {
- }
- void atacar(Personagem* alvo) {
- int danoFinal = atk * 2;
- alvo->receberAtaque(danoFinal);
- }
- void receberAtaque(int dano) {
- int danoFinal = dano * 0.8;
- vida = vida - danoFinal;
- }
- };
- //CLASSE DOS PERSONAGENS
- public:
- Cavaleiro(string n, int v, int a, int d)
- : Heroi(n, v, a, d) {
- }
- virtual void receberAtaque(int dano) {
- int danoFinal = dano * 0.8;
- vida = vida - danoFinal;
- }
- public:
- Arqueiro(string n, int v, int a, int d, int i)
- : Heroi(n, v, a, d, i) {
- }
- virtual void receberAtaque(int dano) {
- int danoFinal = dano * 0.8;
- vida = vida - danoFinal;
- }
- void atacar(Personagem* alvo) {
- i++
- if (i % 2 == 0){
- dano = atk *1,5;
- } else {
- int dano = atk;
- }
- alvo->receberAtaque(dano);
- };
- public:
- Barbaro(string n, int v, int a, int d, int p)
- : Heroi(n, v, a, d) {
- }
- void atacar(Personagem* alvo) {
- for (i = 0; i < 5; i++)
- {
- //gerando 5 valores aleatórios entre zero e 5
- if ((rand() % 5) == 1) {
- p = 0.8;
- } else if ((rand() % 5) == 2) {
- p = 0.9;
- }
- else if ((rand() % 5) == 3) {
- p = 1;
- }
- else if ((rand() % 5) == 4) {
- p = 1.1;
- }
- else if ((rand() % 5) == 5) {
- p = 1.2;
- }
- };
- int dano = atk*p;
- alvo->receberAtaque(dano);
- }
- }
- };
- public:
- Boss(string n, int v, int a, int d)
- : Inimigo(n, v, a, d) {
- }
- void atacar(Personagem* alvo) {
- if (vida =< 30) {
- int dano = atk*2,2;
- } else {
- int dano = atk*2;
- }
- alvo->receberAtaque(dano);
- }
- void receberAtaque(int dano) {
- int danoFinal = dano*0,2 - def;
- vida = vida - danoFinal;
- }
- };
- void Escolha(){
- string nome;
- int atk;
- int def;
- string classe;
- int escolha;
- cout << "Escolha o nome do seu personagem";
- cin >> nome;
- cout << "Distribua os pontos de defesa e ataque do seu personagem.";
- cout << "Ataque: ";
- cin >> atk;
- cout << "Defesa: ";
- cin >> def;
- cout << "Vamos escolher a classe do seu heroi" << endl;
- cout << "1. Cavaleiro " << endl;
- cout << "2. Assassino " << endl;
- cout << "3. Arqueiro " << endl;
- cout << "4. Barbaro " << endl;
- cout << " " << endl;
- cin >> escolha;
- if(escolha == 1){
- Cavaleiro* hero = new Cavaleiro(name, 100, atk, def);
- heroi->setClasse("Cavaleiro");
- }
- if(escolha == 2){
- Assassino* hero = new Assassino(name, 100, atk, def);
- heroi->setClasse("Assassino");
- }
- if(escolha == 3){
- Arqueiro* heroi = new Paladino(name, 100, atk, def);
- heroi->setClasse("Arqueiro");
- }
- if(escolha == 4){
- Barbaro* heroi = new Barbaro(name, 100, atk, def);
- heroi->setClasse("Barbaro");
- }
- }
- int main(){
- Escolha();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment