// © 2025 Naked People Team. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "GameFramework/GameModeBase.h" #include "NakedDesireGameMode.generated.h" class UClothingItemInstance; class UMissionsConfig; class AWardrobe; UCLASS(minimalapi) class ANakedDesireGameMode : public AGameModeBase { GENERATED_BODY() UPROPERTY() AWardrobe* Wardrobe = nullptr; UPROPERTY(EditDefaultsOnly) UMissionsConfig* MissionsConfig; int32 DaysPassed = 0; public: int NoticeCount = 0; void RestartGame(); UFUNCTION(BlueprintPure, BlueprintImplementableEvent) FTimecode GetCurrentTime() const; UFUNCTION(BlueprintPure, BlueprintImplementableEvent) int32 GetDaysElapsed() const; UFUNCTION(BlueprintImplementableEvent, BlueprintCallable) void SetCurrentTime(FTimecode TimeCode); UFUNCTION(BlueprintPure) AWardrobe* GetWardrobe() const; UFUNCTION(BlueprintImplementableEvent) void EndGameEmbarrassed(); UFUNCTION(BlueprintCallable) void BuyItem(UClothingItemInstance* ClothingItemInstance); UFUNCTION(BlueprintCallable) void OnHourChanged(int32 Hour); protected: virtual void BeginPlay() override; private: void RefreshDailyMissions(); };