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;
- }
- };
- int main()
- {
- Heroi* sam = new Heroi("Samuel", 100, 25, 5);
- Inimigo* mar = new Inimigo("Marcus", 100, 11, 3);
- while (sam->estaVivo() && mar->estaVivo()) {
- sam->atacar(mar);
- mar->atacar(sam);
- sam->descricao();
- mar->descricao();
- }
- if (sam->estaVivo()) {
- cout << "Samuel eh o grande Vendor" << endl;
- }
- if (mar->estaVivo()) {
- cout << "Eu ja sabia!!! sdufhsudfhsd" << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment