// Copyright Pacificao. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "GameFramework/Actor.h" #include "AgrarianDemoNoticeActor.generated.h" class UAgrarianDemoNoticeWidget; UCLASS() class AGRARIANGAME_API AAgrarianDemoNoticeActor : public AActor { GENERATED_BODY() public: AAgrarianDemoNoticeActor(); UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Agrarian|Demo") TSubclassOf NoticeWidgetClass; UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Agrarian|Demo", meta = (ClampMin = "1.0")) float NoticeDurationSeconds = 24.0f; UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Agrarian|Demo") FText VersionLabel = FText::FromString(TEXT("Investor Demo v0.1.N - Build 2026.05.18")); UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Agrarian|Demo") FText DemoNotice = FText::FromString(TEXT("Systems-first investor prototype - visual MVP gate pending")); protected: virtual void BeginPlay() override; private: UPROPERTY() TObjectPtr ActiveNoticeWidget; FTimerHandle RemoveNoticeTimerHandle; void RemoveNotice(); };