#pragma once

#include "CoreMinimal.h"
#include "GameFramework/HUD.h"
#include "ZeusHUD.generated.h"

/**
 *  HUD do MMO. Pattern UE5 idiomatico: o GameMode atribui `HUDClass`, o
 *  engine cria 1 instancia por PlayerController automaticamente.
 *
 *  Responsabilidade unica: orquestrar o lifecycle da UI in-game. Em
 *  BeginPlay, pede ao `UUIInGameFlowSubsystem` pra entrar em `Playing`
 *  (que pushea WBP_HUD em UI.Layer.Game). Em EndPlay/destrucao, o flow
 *  subsystem cuida do cleanup.
 *
 *  Separacao de responsabilidades:
 *   - AZeusCharacter (Pawn)        — movimento, input, AttributeComponent
 *   - AZeusPlayerController        — input mapping, mouse
 *   - AZeusHUD                     — UI lifecycle
 *   - AZeusGameMode                — wires tudo via class slots
 *
 *  NAO desenha nada via canvas (AHUD::DrawHUD). UI inteira vive em UMG +
 *  CommonUI (UI.Layer.Game / GameMenu / Modal).
 */
UCLASS()
class ZMMO_API AZeusHUD : public AHUD
{
	GENERATED_BODY()

public:
	AZeusHUD();

protected:
	virtual void BeginPlay() override;
	virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override;
};
