2026-08-07 13:10:07 -05:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include <math.h>
|
2026-08-28 20:38:11 -05:00
|
|
|
#include <utility>
|
2026-08-07 13:10:07 -05:00
|
|
|
#include "creature.h"
|
|
|
|
|
|
|
|
|
|
|
2026-08-20 08:10:07 -05:00
|
|
|
class Player : Creature {
|
2026-08-28 20:38:11 -05:00
|
|
|
|
2026-09-11 16:07:17 -05:00
|
|
|
private:
|
2026-08-20 08:10:07 -05:00
|
|
|
// Inventory inventory;
|
2026-08-07 13:10:07 -05:00
|
|
|
|
2026-08-20 08:10:07 -05:00
|
|
|
public:
|
2026-08-28 20:38:11 -05:00
|
|
|
Player();
|
|
|
|
|
Player(Player &rhs);
|
2026-09-11 16:07:17 -05:00
|
|
|
Player &operator=(Player &rhs);
|
2026-08-28 20:38:11 -05:00
|
|
|
|
2026-08-20 08:10:07 -05:00
|
|
|
void Init() override;
|
|
|
|
|
void LevelUp() override;
|
|
|
|
|
void Die() override;
|
|
|
|
|
void TakeDamage(int damageType, float damage) override;
|
|
|
|
|
float GetHealth() override;
|
2026-08-28 20:38:11 -05:00
|
|
|
|
2026-09-11 16:07:17 -05:00
|
|
|
inline friend void swap(Player &lhs, Player &rhs) noexcept {
|
2026-08-28 20:38:11 -05:00
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
~Player();
|
2026-08-07 13:10:07 -05:00
|
|
|
};
|