@ -0,0 +1,57 @@ | |||
#ifndef _2EASY4ME_CHARACTER_H_ | |||
#define _2EASY4ME_CHARACTER_H_ | |||
#include <cstring> | |||
class Character | |||
{ | |||
protected: | |||
char name[16]; | |||
int hp; | |||
int att; | |||
int def; | |||
public: | |||
Character(char *name) | |||
{ | |||
strncpy(this->name, name, sizeof(this->name)); | |||
this->hp = 100; | |||
this->att = 10; | |||
this->def = 5; | |||
} | |||
Character(char *name, int hp, int att, int def) | |||
{ | |||
strncpy(this->name, name, sizeof(this->name)); | |||
this->hp = hp; | |||
this->att = att; | |||
this->def = def; | |||
} | |||
bool checkDied() | |||
{ | |||
return hp <= 0; | |||
} | |||
int defend(int dmg) | |||
{ | |||
dmg -= def; | |||
if (dmg > 0) | |||
{ | |||
hp -= dmg; | |||
return dmg; | |||
} | |||
else | |||
{ | |||
return 0; | |||
} | |||
} | |||
int attack() | |||
{ | |||
return att; | |||
} | |||
}; | |||
#endif |
@ -0,0 +1,36 @@ | |||
#ifndef _2EASY4ME_MONSTER_H_ | |||
#define _2EASY4ME_MONSTER_H_ | |||
#include "character.hpp" | |||
class Monster : public Character | |||
{ | |||
protected: | |||
int bounty; | |||
public: | |||
Monster(char *name) | |||
: Character(name) | |||
{ | |||
this->bounty = 0; | |||
} | |||
Monster(char *name, int hp, int att, int def) | |||
: Character(name, hp, att, def) | |||
{ | |||
this->bounty = 0; | |||
} | |||
Monster(char *name, int hp, int att, int def, int bounty) | |||
: Character(name, hp, att, def) | |||
{ | |||
this->bounty = bounty; | |||
} | |||
int drop() | |||
{ | |||
return bounty; | |||
} | |||
}; | |||
#endif |
@ -0,0 +1,51 @@ | |||
#ifndef _2EASY4ME_PLAYER_H_ | |||
#define _2EASY4ME_PLAYER_H_ | |||
#include "character.hpp" | |||
class Player : public Character | |||
{ | |||
protected: | |||
int xp; | |||
int level; | |||
public: | |||
Player(char *name) | |||
: Character(name) | |||
{ | |||
this->xp = 0; | |||
this->level = 1; | |||
} | |||
Player(char *name, int hp, int att, int def, int level, int xp) | |||
: Character(name, hp, att, def) | |||
{ | |||
this->xp = xp; | |||
this->level = level; | |||
} | |||
bool checkLevelup() | |||
{ | |||
return xp > (level * level); | |||
} | |||
bool levelUp(int stat) | |||
{ | |||
switch (stat) | |||
{ | |||
case 1: | |||
hp += 10; | |||
break; | |||
case 2: | |||
att += 2; | |||
break; | |||
case 3: | |||
def += 1; | |||
break; | |||
} | |||
xp -= level * level; | |||
} | |||
}; | |||
#endif |
@ -0,0 +1,33 @@ | |||
#include <iostream> | |||
#include <cstring> | |||
#include <math.h> | |||
#include "cpp-base64/base64.h" | |||
#include "cpp-base64/base64.cpp" | |||
#include "class/monster.hpp" | |||
#include "class/player.hpp" | |||
Player* createNewPlayer() | |||
{ | |||
char name[16]; | |||
printf("Input character name (MAX 15): "); | |||
scanf("%15s", name); | |||
return new Player(name); | |||
} | |||
int main(int argc, char const *argv[]) | |||
{ | |||
char name[16]; | |||
printf("Input name: "); | |||
scanf("%15s", name); | |||
Player *player = new Player(name); | |||
printf("Created new player with name %s at %p\n", name, (void *)player); | |||
return 0; | |||
} |