44 lines
977 B
C++
44 lines
977 B
C++
#pragma once
|
|
|
|
#include <math.h>
|
|
#include <utility>
|
|
#include "creature.h"
|
|
|
|
|
|
class Player : Creature {
|
|
|
|
private:
|
|
// Inventory inventory;
|
|
|
|
// Lets keep the room a loose reference to avoid to many hardcoded details and other info
|
|
int curRoomID = -1;
|
|
int prevRoomID = -1;
|
|
|
|
public:
|
|
|
|
Player();
|
|
Player(Player &rhs);
|
|
Player& operator=(Player& rhs);
|
|
|
|
void Init() override;
|
|
void LevelUp() override;
|
|
void Die() override;
|
|
void TakeDamage(int damageType, float damage) override;
|
|
float GetHealth() override;
|
|
void ChangeRoom(int roomID);
|
|
|
|
inline friend void swap(Player& lhs, Player &rhs) noexcept
|
|
{
|
|
using std::swap;
|
|
swap(lhs.id, rhs.id);
|
|
swap(lhs.name, rhs.name);
|
|
swap(lhs.description, rhs.description);
|
|
swap(lhs.stats, rhs.stats);
|
|
swap(lhs.level, rhs.level);
|
|
swap(lhs.prevRoomID, rhs.prevRoomID);
|
|
swap(lhs.curRoomID, rhs.curRoomID);
|
|
}
|
|
|
|
~Player();
|
|
};
|