DoorNroll/src/hub/RestRoom.hpp

44 lines
1.2 KiB
C++

#pragma once
#include "core/Common.hpp"
#include "dungeon/Player.hpp"
namespace dnr {
class RestRoom {
public:
RestRoom();
void init(Player& player, int completedFloor);
void update(float dt, Player& player);
bool tryMove(int dx, int dy, Player& player);
bool isFacingGateway(const Player& player) const;
bool isFacingRechargeMatrix(const Player& player) const;
bool isFacingTerminal(const Player& player) const;
int getNextFloor() const { return m_completedFloor + 1; }
int getCompletedFloor() const { return m_completedFloor; }
bool isRecharged() const { return m_recharged; }
void triggerRecharge(Player& player);
int getWidth() const { return m_width; }
int getHeight() const { return m_height; }
Vector3 getGatewayPosition() const { return m_gatewayPos; }
Vector3 getRechargePosition() const { return m_rechargePos; }
Vector3 getTerminalPosition() const { return m_terminalPos; }
private:
int m_width = 7;
int m_height = 7;
int m_completedFloor = 1;
bool m_recharged = false;
Vector3 m_gatewayPos{ 6.0f, 1.2f, 2.0f };
Vector3 m_rechargePos{ 6.0f, 0.8f, 6.0f };
Vector3 m_terminalPos{ 2.0f, 0.8f, 6.0f };
};
} // namespace dnr