R-Type
Distributed multiplayer game engine in C++
Loading...
Searching...
No Matches
DefeatMenu.hpp
Go to the documentation of this file.
1/*
2** EPITECH PROJECT, 2026
3** r-type
4** File description:
5** DefeatMenu - Game over defeat screen
6*/
7
8#pragma once
9
10#include <functional>
11#include <memory>
12#include <string>
13
14#include "Menu/BaseMenu.hpp"
15#include "UI/IUIFactory.hpp"
16
17namespace Game {
23 class DefeatMenu : public BaseMenu {
24 public:
29 explicit DefeatMenu(UI::IUIFactory &uiFactory);
30 ~DefeatMenu() override = default;
31
35 void Initialize() override;
36
40 void SetOnReturnToMenu(std::function<void()> callback);
41
46 void SetDefeatReason(const std::string &reason);
47
51 void Render() override;
52
53 private:
55
56 std::function<void()> _onReturnToMenu{};
57 std::string _defeatReason{"DEFEAT"};
58 };
59} // namespace Game
Base class for all menu implementations.
Definition BaseMenu.hpp:26
Defeat screen displayed when the player dies.
~DefeatMenu() override=default
void Render() override
Custom render to display defeat message.
std::string _defeatReason
std::function< void()> _onReturnToMenu
void OnReturnToMenuClicked()
void SetDefeatReason(const std::string &reason)
Set the defeat reason/message to display.
void Initialize() override
Initialize UI elements (creates buttons and text).
void SetOnReturnToMenu(std::function< void()> callback)
Set callback invoked when user clicks return to menu button.
Abstract factory interface for creating UI elements.