diff --git a/Content/EndlessHotel/Anomaly/Object/MusicBox/BP_Anomaly_Object_MusicBox.uasset b/Content/EndlessHotel/Anomaly/Object/MusicBox/BP_Anomaly_Object_MusicBox.uasset new file mode 100644 index 00000000..22a2d9dd Binary files /dev/null and b/Content/EndlessHotel/Anomaly/Object/MusicBox/BP_Anomaly_Object_MusicBox.uasset differ diff --git a/Content/EndlessHotel/Anomaly/Object/MusicBox/MyAnomaly_Object_MusicBox.uasset b/Content/EndlessHotel/Anomaly/Object/MusicBox/MyAnomaly_Object_MusicBox.uasset index cec71957..5512994b 100644 Binary files a/Content/EndlessHotel/Anomaly/Object/MusicBox/MyAnomaly_Object_MusicBox.uasset and b/Content/EndlessHotel/Anomaly/Object/MusicBox/MyAnomaly_Object_MusicBox.uasset differ diff --git a/Content/EndlessHotel/Data/DT_AnomalyData.uasset b/Content/EndlessHotel/Data/DT_AnomalyData.uasset index ff7a49d9..026e7fe7 100644 Binary files a/Content/EndlessHotel/Data/DT_AnomalyData.uasset and b/Content/EndlessHotel/Data/DT_AnomalyData.uasset differ diff --git a/Content/__ExternalActors__/EndlessHotel/Map/Hotel/2/DW/R728HUIMNQBC4YHSF5QR69.uasset b/Content/__ExternalActors__/EndlessHotel/Map/Hotel/2/DW/R728HUIMNQBC4YHSF5QR69.uasset index 03546120..9819b593 100644 Binary files a/Content/__ExternalActors__/EndlessHotel/Map/Hotel/2/DW/R728HUIMNQBC4YHSF5QR69.uasset and b/Content/__ExternalActors__/EndlessHotel/Map/Hotel/2/DW/R728HUIMNQBC4YHSF5QR69.uasset differ diff --git a/Content/__ExternalActors__/EndlessHotel/Map/Hotel/5/1C/ACELQB6F4EKYS6UDW79TMZ.uasset b/Content/__ExternalActors__/EndlessHotel/Map/Hotel/5/1C/ACELQB6F4EKYS6UDW79TMZ.uasset index b7927ef1..f956d247 100644 Binary files a/Content/__ExternalActors__/EndlessHotel/Map/Hotel/5/1C/ACELQB6F4EKYS6UDW79TMZ.uasset and b/Content/__ExternalActors__/EndlessHotel/Map/Hotel/5/1C/ACELQB6F4EKYS6UDW79TMZ.uasset differ diff --git a/Content/__ExternalActors__/EndlessHotel/Map/Hotel/5/B4/WSDUH3GOQQDQ1F067NSRLF.uasset b/Content/__ExternalActors__/EndlessHotel/Map/Hotel/5/B4/WSDUH3GOQQDQ1F067NSRLF.uasset index b15c4899..005e0aa1 100644 Binary files a/Content/__ExternalActors__/EndlessHotel/Map/Hotel/5/B4/WSDUH3GOQQDQ1F067NSRLF.uasset and b/Content/__ExternalActors__/EndlessHotel/Map/Hotel/5/B4/WSDUH3GOQQDQ1F067NSRLF.uasset differ diff --git a/Content/__ExternalActors__/EndlessHotel/Map/Hotel/C/81/Z4UWUSZR2E9BJ6ET23EROR.uasset b/Content/__ExternalActors__/EndlessHotel/Map/Hotel/C/81/Z4UWUSZR2E9BJ6ET23EROR.uasset new file mode 100644 index 00000000..dda767d7 Binary files /dev/null and b/Content/__ExternalActors__/EndlessHotel/Map/Hotel/C/81/Z4UWUSZR2E9BJ6ET23EROR.uasset differ diff --git a/Source/Endless_Hotel/Anomaly/Base/Anomaly_Base.cpp b/Source/Endless_Hotel/Anomaly/Base/Anomaly_Base.cpp index ee31ee4f..de0f3d67 100644 --- a/Source/Endless_Hotel/Anomaly/Base/Anomaly_Base.cpp +++ b/Source/Endless_Hotel/Anomaly/Base/Anomaly_Base.cpp @@ -8,6 +8,8 @@ #include #include +FAnomalyDelegate AAnomaly_Base::AnomalyDelegate; + #pragma region Base AAnomaly_Base::AAnomaly_Base(const FObjectInitializer& ObjectInitializer) @@ -85,4 +87,13 @@ void AAnomaly_Base::StartImmediate() StartAnomalyAction(); } +#pragma endregion + +#pragma region Player + +void AAnomaly_Base::KillPlayer() +{ + AnomalyDelegate.Broadcast(false); +} + #pragma endregion \ No newline at end of file diff --git a/Source/Endless_Hotel/Anomaly/Base/Anomaly_Base.h b/Source/Endless_Hotel/Anomaly/Base/Anomaly_Base.h index fc06df73..91787f3a 100644 --- a/Source/Endless_Hotel/Anomaly/Base/Anomaly_Base.h +++ b/Source/Endless_Hotel/Anomaly/Base/Anomaly_Base.h @@ -4,12 +4,15 @@ #include "Actor/EHActor.h" #include +#include #include #pragma region Declare class AAnomaly_Object_Base; +DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FAnomalyDelegate, bool, bIsStart); + #pragma endregion UCLASS(Blueprintable, BlueprintType) @@ -44,6 +47,8 @@ class ENDLESS_HOTEL_API AAnomaly_Base : public AEHActor UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Anomaly|ID") uint8 AnomalyID = -1; + static FAnomalyDelegate AnomalyDelegate; + protected: TFunction AnomalyAction; @@ -52,14 +57,10 @@ class ENDLESS_HOTEL_API AAnomaly_Base : public AEHActor #pragma region Verdicts public: - UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Anomaly|Verdict") - bool bIsCorrectElevator = false; - UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Anomaly|Verdict") bool bIsSolved = false; protected: - UFUNCTION() void SetVerdictMode(EAnomalyVerdictMode NewMode); @@ -68,8 +69,8 @@ class ENDLESS_HOTEL_API AAnomaly_Base : public AEHActor #pragma region Activity public: - virtual void ActivateAnomaly(uint8 Anomaly_ID) PURE_VIRTUAL(AAnomaly_Base::ActivateAnomaly, ;); - virtual void DisableAnomaly(uint8 Anomaly_ID) {} + virtual void ActivateAnomaly() PURE_VIRTUAL(AAnomaly_Base::ActivateAnomaly, ;); + virtual void DisableAnomaly() {} #pragma endregion @@ -103,4 +104,11 @@ class ENDLESS_HOTEL_API AAnomaly_Base : public AEHActor #pragma endregion +#pragma region Player + +protected: + virtual void KillPlayer(); + +#pragma endregion + }; \ No newline at end of file diff --git a/Source/Endless_Hotel/Anomaly/Base/Anomaly_Base_EightExit.cpp b/Source/Endless_Hotel/Anomaly/Base/Anomaly_Base_EightExit.cpp index bbc099f5..97e8d3cd 100644 --- a/Source/Endless_Hotel/Anomaly/Base/Anomaly_Base_EightExit.cpp +++ b/Source/Endless_Hotel/Anomaly/Base/Anomaly_Base_EightExit.cpp @@ -23,7 +23,7 @@ void AAnomaly_Base_EightExit::BeginPlay() #pragma region Activities // Anomaly_Base_EightExit.cpp -void AAnomaly_Base_EightExit::ActivateAnomaly(uint8 Anomaly_ID) +void AAnomaly_Base_EightExit::ActivateAnomaly() { // Activites UE_LOG(LogTemp, Log, TEXT("[EightExit] AnomalyID: %d Activated."), AnomalyID); diff --git a/Source/Endless_Hotel/Anomaly/Base/Anomaly_Base_EightExit.h b/Source/Endless_Hotel/Anomaly/Base/Anomaly_Base_EightExit.h index 116d5563..68c39a7b 100644 --- a/Source/Endless_Hotel/Anomaly/Base/Anomaly_Base_EightExit.h +++ b/Source/Endless_Hotel/Anomaly/Base/Anomaly_Base_EightExit.h @@ -31,7 +31,7 @@ class ENDLESS_HOTEL_API AAnomaly_Base_EightExit : public AAnomaly_Base #pragma region Activities protected: - virtual void ActivateAnomaly(uint8 Anomaly_ID) override; + virtual void ActivateAnomaly() override; #pragma endregion diff --git a/Source/Endless_Hotel/Anomaly/Base/Anomaly_Base_Neapolitan.cpp b/Source/Endless_Hotel/Anomaly/Base/Anomaly_Base_Neapolitan.cpp index 95580373..9e79b77e 100644 --- a/Source/Endless_Hotel/Anomaly/Base/Anomaly_Base_Neapolitan.cpp +++ b/Source/Endless_Hotel/Anomaly/Base/Anomaly_Base_Neapolitan.cpp @@ -18,7 +18,7 @@ void AAnomaly_Base_Neapolitan::BeginPlay() SetVerdictMode(EAnomalyVerdictMode::Both_AND); // VerdictMode Setting } -void AAnomaly_Base_Neapolitan::ActivateAnomaly(uint8 Anomaly_ID) +void AAnomaly_Base_Neapolitan::ActivateAnomaly() { // Activites UE_LOG(LogTemp, Log, TEXT("[Neapolitan] Activated.")); diff --git a/Source/Endless_Hotel/Anomaly/Base/Anomaly_Base_Neapolitan.h b/Source/Endless_Hotel/Anomaly/Base/Anomaly_Base_Neapolitan.h index 936fddc7..f0203432 100644 --- a/Source/Endless_Hotel/Anomaly/Base/Anomaly_Base_Neapolitan.h +++ b/Source/Endless_Hotel/Anomaly/Base/Anomaly_Base_Neapolitan.h @@ -26,7 +26,7 @@ class ENDLESS_HOTEL_API AAnomaly_Base_Neapolitan : public AAnomaly_Base public: virtual void InteractSolveVerdict(); //상호작용 이상현상 판정 protected: - virtual void ActivateAnomaly(uint8 Anomaly_ID) override; + virtual void ActivateAnomaly() override; #pragma endregion diff --git a/Source/Endless_Hotel/Anomaly/EightExit/Blur/Anomaly_Blur.cpp b/Source/Endless_Hotel/Anomaly/EightExit/Blur/Anomaly_Blur.cpp index 7a20c256..91fa7db0 100644 --- a/Source/Endless_Hotel/Anomaly/EightExit/Blur/Anomaly_Blur.cpp +++ b/Source/Endless_Hotel/Anomaly/EightExit/Blur/Anomaly_Blur.cpp @@ -18,9 +18,9 @@ AAnomaly_Blur::AAnomaly_Blur(const FObjectInitializer& ObjectInitializer) #pragma region Activity -void AAnomaly_Blur::ActivateAnomaly(uint8 Anomaly_ID) +void AAnomaly_Blur::ActivateAnomaly() { - Super::ActivateAnomaly(Anomaly_ID); + Super::ActivateAnomaly(); FTimerHandle StartHandle; GetWorld()->GetTimerManager().SetTimer(StartHandle, FTimerDelegate::CreateWeakLambda(this, [this]() diff --git a/Source/Endless_Hotel/Anomaly/EightExit/Blur/Anomaly_Blur.h b/Source/Endless_Hotel/Anomaly/EightExit/Blur/Anomaly_Blur.h index 53f78f9d..02a72dae 100644 --- a/Source/Endless_Hotel/Anomaly/EightExit/Blur/Anomaly_Blur.h +++ b/Source/Endless_Hotel/Anomaly/EightExit/Blur/Anomaly_Blur.h @@ -21,7 +21,7 @@ class ENDLESS_HOTEL_API AAnomaly_Blur : public AAnomaly_Base_EightExit #pragma region Activity public: - virtual void ActivateAnomaly(uint8 Anomaly_ID) override; + virtual void ActivateAnomaly() override; #pragma endregion diff --git a/Source/Endless_Hotel/Anomaly/EightExit/Ceiling/Anomaly_Ceiling.cpp b/Source/Endless_Hotel/Anomaly/EightExit/Ceiling/Anomaly_Ceiling.cpp index 4b499800..34cf4e75 100644 --- a/Source/Endless_Hotel/Anomaly/EightExit/Ceiling/Anomaly_Ceiling.cpp +++ b/Source/Endless_Hotel/Anomaly/EightExit/Ceiling/Anomaly_Ceiling.cpp @@ -5,11 +5,11 @@ #pragma region Activity -void AAnomaly_Ceiling::ActivateAnomaly(uint8 Anomaly_ID) +void AAnomaly_Ceiling::ActivateAnomaly() { - Super::ActivateAnomaly(Anomaly_ID); + Super::ActivateAnomaly(); - switch (Anomaly_ID) + switch (AnomalyID) { case 11: AnomalyAction = ([](AAnomaly_Object_Base* AnomalyObject) @@ -19,7 +19,7 @@ void AAnomaly_Ceiling::ActivateAnomaly(uint8 Anomaly_ID) break; } - StartAnomalyAction(); + StartImmediate(); } #pragma endregion \ No newline at end of file diff --git a/Source/Endless_Hotel/Anomaly/EightExit/Ceiling/Anomaly_Ceiling.h b/Source/Endless_Hotel/Anomaly/EightExit/Ceiling/Anomaly_Ceiling.h index 9616afe0..187fedea 100644 --- a/Source/Endless_Hotel/Anomaly/EightExit/Ceiling/Anomaly_Ceiling.h +++ b/Source/Endless_Hotel/Anomaly/EightExit/Ceiling/Anomaly_Ceiling.h @@ -14,7 +14,7 @@ class ENDLESS_HOTEL_API AAnomaly_Ceiling : public AAnomaly_Base_EightExit #pragma region Activity public: - virtual void ActivateAnomaly(uint8 Anomaly_ID) override; + virtual void ActivateAnomaly() override; #pragma endregion diff --git a/Source/Endless_Hotel/Anomaly/EightExit/Cry/Anomaly_Cry.cpp b/Source/Endless_Hotel/Anomaly/EightExit/Cry/Anomaly_Cry.cpp index ad5fd80d..9a4b58af 100644 --- a/Source/Endless_Hotel/Anomaly/EightExit/Cry/Anomaly_Cry.cpp +++ b/Source/Endless_Hotel/Anomaly/EightExit/Cry/Anomaly_Cry.cpp @@ -16,9 +16,9 @@ AAnomaly_Cry::AAnomaly_Cry(const FObjectInitializer& ObjectInitializer) #pragma region Activity -void AAnomaly_Cry::ActivateAnomaly(uint8 Anomaly_ID) +void AAnomaly_Cry::ActivateAnomaly() { - Super::ActivateAnomaly(Anomaly_ID); + Super::ActivateAnomaly(); FTimerHandle SoundHandle; GetWorld()->GetTimerManager().SetTimer(SoundHandle, FTimerDelegate::CreateWeakLambda(this, [this]() diff --git a/Source/Endless_Hotel/Anomaly/EightExit/Cry/Anomaly_Cry.h b/Source/Endless_Hotel/Anomaly/EightExit/Cry/Anomaly_Cry.h index a837b5dd..135aedc2 100644 --- a/Source/Endless_Hotel/Anomaly/EightExit/Cry/Anomaly_Cry.h +++ b/Source/Endless_Hotel/Anomaly/EightExit/Cry/Anomaly_Cry.h @@ -21,7 +21,7 @@ class ENDLESS_HOTEL_API AAnomaly_Cry : public AAnomaly_Base_EightExit #pragma region Activity public: - virtual void ActivateAnomaly(uint8 Anomaly_ID) override; + virtual void ActivateAnomaly() override; #pragma endregion diff --git a/Source/Endless_Hotel/Anomaly/EightExit/Door/Anomaly_Door.cpp b/Source/Endless_Hotel/Anomaly/EightExit/Door/Anomaly_Door.cpp index e56b2a74..ea2677e0 100644 --- a/Source/Endless_Hotel/Anomaly/EightExit/Door/Anomaly_Door.cpp +++ b/Source/Endless_Hotel/Anomaly/EightExit/Door/Anomaly_Door.cpp @@ -14,11 +14,11 @@ AAnomaly_Door::AAnomaly_Door(const FObjectInitializer& ObjectInitializer) #pragma region Activity -void AAnomaly_Door::ActivateAnomaly(uint8 Anomaly_ID) +void AAnomaly_Door::ActivateAnomaly() { - Super::ActivateAnomaly(Anomaly_ID); + Super::ActivateAnomaly(); - switch (Anomaly_ID) + switch (AnomalyID) { case 4: AnomalyAction = ([](AAnomaly_Object_Base* AnomalyObject) diff --git a/Source/Endless_Hotel/Anomaly/EightExit/Door/Anomaly_Door.h b/Source/Endless_Hotel/Anomaly/EightExit/Door/Anomaly_Door.h index 7db5ad9b..2af0e277 100644 --- a/Source/Endless_Hotel/Anomaly/EightExit/Door/Anomaly_Door.h +++ b/Source/Endless_Hotel/Anomaly/EightExit/Door/Anomaly_Door.h @@ -21,7 +21,7 @@ class ENDLESS_HOTEL_API AAnomaly_Door : public AAnomaly_Base_EightExit #pragma region Activity public: - virtual void ActivateAnomaly(uint8 Anomaly_ID) override; + virtual void ActivateAnomaly() override; #pragma endregion diff --git a/Source/Endless_Hotel/Anomaly/EightExit/FootStep/Anomaly_FootStep.cpp b/Source/Endless_Hotel/Anomaly/EightExit/FootStep/Anomaly_FootStep.cpp index c3decc52..caffa739 100644 --- a/Source/Endless_Hotel/Anomaly/EightExit/FootStep/Anomaly_FootStep.cpp +++ b/Source/Endless_Hotel/Anomaly/EightExit/FootStep/Anomaly_FootStep.cpp @@ -7,11 +7,11 @@ #include "Kismet/GameplayStatics.h" #include "Components/SkeletalMeshComponent.h" -void AAnomaly_FootStep::ActivateAnomaly(uint8 Anomaly_ID) +void AAnomaly_FootStep::ActivateAnomaly() { - Super::ActivateAnomaly(Anomaly_ID); + Super::ActivateAnomaly(); - switch (Anomaly_ID) { + switch (AnomalyID) { case 15: FootStep(); break; diff --git a/Source/Endless_Hotel/Anomaly/EightExit/FootStep/Anomaly_FootStep.h b/Source/Endless_Hotel/Anomaly/EightExit/FootStep/Anomaly_FootStep.h index 0ad0fbaf..7c48dc00 100644 --- a/Source/Endless_Hotel/Anomaly/EightExit/FootStep/Anomaly_FootStep.h +++ b/Source/Endless_Hotel/Anomaly/EightExit/FootStep/Anomaly_FootStep.h @@ -6,9 +6,6 @@ #include "Anomaly/Base/Anomaly_Base_EightExit.h" #include "Anomaly_FootStep.generated.h" -/** - * - */ UCLASS() class ENDLESS_HOTEL_API AAnomaly_FootStep : public AAnomaly_Base_EightExit { @@ -17,7 +14,7 @@ class ENDLESS_HOTEL_API AAnomaly_FootStep : public AAnomaly_Base_EightExit #pragma region Activity public: - virtual void ActivateAnomaly(uint8 Anomaly_ID) override; + virtual void ActivateAnomaly() override; #pragma endregion diff --git a/Source/Endless_Hotel/Anomaly/EightExit/Ghost/Anomaly_Ghost.cpp b/Source/Endless_Hotel/Anomaly/EightExit/Ghost/Anomaly_Ghost.cpp index 643ccb4c..f9cabc9d 100644 --- a/Source/Endless_Hotel/Anomaly/EightExit/Ghost/Anomaly_Ghost.cpp +++ b/Source/Endless_Hotel/Anomaly/EightExit/Ghost/Anomaly_Ghost.cpp @@ -1,13 +1,13 @@ -// Copyright by 2025-2 WAP Game 2 team +// Copyright by 2025-2 WAP Game 2 team #include "Anomaly/EightExit/Ghost/Anomaly_Ghost.h" #include "Anomaly/Object/Ghost/Anomaly_Object_Ghost.h" -void AAnomaly_Ghost::ActivateAnomaly(uint8 Anomaly_ID) +void AAnomaly_Ghost::ActivateAnomaly() { - Super::ActivateAnomaly(Anomaly_ID); + Super::ActivateAnomaly(); - switch (Anomaly_ID) + switch (AnomalyID) { case 28: AnomalyAction = [](AAnomaly_Object_Base* Obj) diff --git a/Source/Endless_Hotel/Anomaly/EightExit/Ghost/Anomaly_Ghost.h b/Source/Endless_Hotel/Anomaly/EightExit/Ghost/Anomaly_Ghost.h index e4d70624..2fb41900 100644 --- a/Source/Endless_Hotel/Anomaly/EightExit/Ghost/Anomaly_Ghost.h +++ b/Source/Endless_Hotel/Anomaly/EightExit/Ghost/Anomaly_Ghost.h @@ -1,4 +1,4 @@ -// Copyright by 2025-2 WAP Game 2 team +// Copyright by 2025-2 WAP Game 2 team #pragma once @@ -15,7 +15,7 @@ class ENDLESS_HOTEL_API AAnomaly_Ghost : public AAnomaly_Base_EightExit GENERATED_BODY() public: - virtual void ActivateAnomaly(uint8 Anomaly_ID) override; + virtual void ActivateAnomaly() override; }; diff --git a/Source/Endless_Hotel/Anomaly/EightExit/GhostHand/Anomaly_GhostHand.cpp b/Source/Endless_Hotel/Anomaly/EightExit/GhostHand/Anomaly_GhostHand.cpp index 7e13304b..e43db6dd 100644 --- a/Source/Endless_Hotel/Anomaly/EightExit/GhostHand/Anomaly_GhostHand.cpp +++ b/Source/Endless_Hotel/Anomaly/EightExit/GhostHand/Anomaly_GhostHand.cpp @@ -1,4 +1,4 @@ -// Copyright by 2025-2 WAP Game 2 team +// Copyright by 2025-2 WAP Game 2 team #include "Anomaly/EightExit/GhostHand/Anomaly_GhostHand.h" @@ -37,9 +37,9 @@ void AAnomaly_GhostHand::EndPlay(const EEndPlayReason::Type EndPlayReason) #pragma endregion #pragma region Activity -void AAnomaly_GhostHand::ActivateAnomaly(uint8 Anomaly_ID) +void AAnomaly_GhostHand::ActivateAnomaly() { - Super::ActivateAnomaly(Anomaly_ID); + Super::ActivateAnomaly(); ExecuteGhostHand(); } #pragma endregion diff --git a/Source/Endless_Hotel/Anomaly/EightExit/GhostHand/Anomaly_GhostHand.h b/Source/Endless_Hotel/Anomaly/EightExit/GhostHand/Anomaly_GhostHand.h index 1a8588dd..4b2fb42b 100644 --- a/Source/Endless_Hotel/Anomaly/EightExit/GhostHand/Anomaly_GhostHand.h +++ b/Source/Endless_Hotel/Anomaly/EightExit/GhostHand/Anomaly_GhostHand.h @@ -1,4 +1,4 @@ -// Copyright by 2025-2 WAP Game 2 team +// Copyright by 2025-2 WAP Game 2 team #pragma once @@ -22,7 +22,7 @@ class ENDLESS_HOTEL_API AAnomaly_GhostHand : public AAnomaly_Base_EightExit #pragma region Activity public: - virtual void ActivateAnomaly(uint8 Anomaly_ID) override; + virtual void ActivateAnomaly() override; #pragma endregion #pragma region GhostHand diff --git a/Source/Endless_Hotel/Anomaly/EightExit/Hair/Anomaly_Hair.cpp b/Source/Endless_Hotel/Anomaly/EightExit/Hair/Anomaly_Hair.cpp index c588a673..29d06e09 100644 --- a/Source/Endless_Hotel/Anomaly/EightExit/Hair/Anomaly_Hair.cpp +++ b/Source/Endless_Hotel/Anomaly/EightExit/Hair/Anomaly_Hair.cpp @@ -38,9 +38,9 @@ void AAnomaly_Hair::BeginPlay() HairTimeline->AddInterpFloat(Curve_HairOpacity, UpdateDelegate); } -void AAnomaly_Hair::ActivateAnomaly(uint8 Anomaly_ID) +void AAnomaly_Hair::ActivateAnomaly() { - Super::ActivateAnomaly(Anomaly_ID); + Super::ActivateAnomaly(); ActiveTrigger(); diff --git a/Source/Endless_Hotel/Anomaly/EightExit/Hair/Anomaly_Hair.h b/Source/Endless_Hotel/Anomaly/EightExit/Hair/Anomaly_Hair.h index f3a8f467..dbdd8ac4 100644 --- a/Source/Endless_Hotel/Anomaly/EightExit/Hair/Anomaly_Hair.h +++ b/Source/Endless_Hotel/Anomaly/EightExit/Hair/Anomaly_Hair.h @@ -23,7 +23,7 @@ class ENDLESS_HOTEL_API AAnomaly_Hair : public AAnomaly_Base_EightExit virtual void BeginPlay() override; public: - virtual void ActivateAnomaly(uint8 Anomaly_ID) override; + virtual void ActivateAnomaly() override; #pragma region Trigger diff --git a/Source/Endless_Hotel/Anomaly/EightExit/Light/Anomaly_Light.cpp b/Source/Endless_Hotel/Anomaly/EightExit/Light/Anomaly_Light.cpp index 7ad2c879..0246903a 100644 --- a/Source/Endless_Hotel/Anomaly/EightExit/Light/Anomaly_Light.cpp +++ b/Source/Endless_Hotel/Anomaly/EightExit/Light/Anomaly_Light.cpp @@ -15,11 +15,11 @@ AAnomaly_Light::AAnomaly_Light(const FObjectInitializer& ObjectInitializer) #pragma region Activity -void AAnomaly_Light::ActivateAnomaly(uint8 Anomaly_ID) +void AAnomaly_Light::ActivateAnomaly() { - Super::ActivateAnomaly(Anomaly_ID); + Super::ActivateAnomaly(); - switch (Anomaly_ID) + switch (AnomalyID) { case 2: AnomalyAction = ([](AAnomaly_Object_Base* AnomalyObject) diff --git a/Source/Endless_Hotel/Anomaly/EightExit/Light/Anomaly_Light.h b/Source/Endless_Hotel/Anomaly/EightExit/Light/Anomaly_Light.h index 5c16dfa4..e8e2c4a1 100644 --- a/Source/Endless_Hotel/Anomaly/EightExit/Light/Anomaly_Light.h +++ b/Source/Endless_Hotel/Anomaly/EightExit/Light/Anomaly_Light.h @@ -24,7 +24,7 @@ class ENDLESS_HOTEL_API AAnomaly_Light : public AAnomaly_Base_EightExit #pragma region Activity public: - virtual void ActivateAnomaly(uint8 Anomaly_ID) override; + virtual void ActivateAnomaly() override; #pragma endregion diff --git a/Source/Endless_Hotel/Anomaly/EightExit/Plant/Anomaly_Plant.cpp b/Source/Endless_Hotel/Anomaly/EightExit/Plant/Anomaly_Plant.cpp index 705663de..f8040026 100644 --- a/Source/Endless_Hotel/Anomaly/EightExit/Plant/Anomaly_Plant.cpp +++ b/Source/Endless_Hotel/Anomaly/EightExit/Plant/Anomaly_Plant.cpp @@ -7,11 +7,11 @@ #pragma region Activity -void AAnomaly_Plant::ActivateAnomaly(uint8 Anomaly_ID) +void AAnomaly_Plant::ActivateAnomaly() { - Super::ActivateAnomaly(Anomaly_ID); + Super::ActivateAnomaly(); - switch (Anomaly_ID) + switch (AnomalyID) { case 10: AnomalyAction = ([](AAnomaly_Object_Base* AnomalyObject) diff --git a/Source/Endless_Hotel/Anomaly/EightExit/Plant/Anomaly_Plant.h b/Source/Endless_Hotel/Anomaly/EightExit/Plant/Anomaly_Plant.h index bf2d1d8d..4cf1c3bc 100644 --- a/Source/Endless_Hotel/Anomaly/EightExit/Plant/Anomaly_Plant.h +++ b/Source/Endless_Hotel/Anomaly/EightExit/Plant/Anomaly_Plant.h @@ -14,7 +14,7 @@ class ENDLESS_HOTEL_API AAnomaly_Plant : public AAnomaly_Base_EightExit #pragma region Activity public: - virtual void ActivateAnomaly(uint8 Anomaly_ID) override; + virtual void ActivateAnomaly() override; #pragma endregion }; diff --git a/Source/Endless_Hotel/Anomaly/EightExit/ShelfBook/Anomaly_ShelfBook.cpp b/Source/Endless_Hotel/Anomaly/EightExit/ShelfBook/Anomaly_ShelfBook.cpp index 35b2b721..78fe34a7 100644 --- a/Source/Endless_Hotel/Anomaly/EightExit/ShelfBook/Anomaly_ShelfBook.cpp +++ b/Source/Endless_Hotel/Anomaly/EightExit/ShelfBook/Anomaly_ShelfBook.cpp @@ -1,4 +1,4 @@ -// Copyright by 2025-2 WAP Game 2 team +// Copyright by 2025-2 WAP Game 2 team #include "Anomaly/EightExit/ShelfBook/Anomaly_ShelfBook.h" @@ -6,11 +6,11 @@ #pragma region Activitiy -void AAnomaly_ShelfBook::ActivateAnomaly(uint8 Anomaly_ID) +void AAnomaly_ShelfBook::ActivateAnomaly() { - Super::ActivateAnomaly(Anomaly_ID); + Super::ActivateAnomaly(); - switch (Anomaly_ID) + switch (AnomalyID) { case 9: AnomalyAction = ([](AAnomaly_Object_Base* AnomlayObject) diff --git a/Source/Endless_Hotel/Anomaly/EightExit/ShelfBook/Anomaly_ShelfBook.h b/Source/Endless_Hotel/Anomaly/EightExit/ShelfBook/Anomaly_ShelfBook.h index c85ed259..c3387072 100644 --- a/Source/Endless_Hotel/Anomaly/EightExit/ShelfBook/Anomaly_ShelfBook.h +++ b/Source/Endless_Hotel/Anomaly/EightExit/ShelfBook/Anomaly_ShelfBook.h @@ -1,4 +1,4 @@ -// Copyright by 2025-2 WAP Game 2 team +// Copyright by 2025-2 WAP Game 2 team #pragma once @@ -14,7 +14,7 @@ class ENDLESS_HOTEL_API AAnomaly_ShelfBook : public AAnomaly_Base_EightExit #pragma region Activitiy public: - virtual void ActivateAnomaly(uint8 Anomaly_ID) override; + virtual void ActivateAnomaly() override; #pragma endregion }; diff --git a/Source/Endless_Hotel/Anomaly/EightExit/Shrink/Anomaly_Shrink.cpp b/Source/Endless_Hotel/Anomaly/EightExit/Shrink/Anomaly_Shrink.cpp index e55080dc..10a5b712 100644 --- a/Source/Endless_Hotel/Anomaly/EightExit/Shrink/Anomaly_Shrink.cpp +++ b/Source/Endless_Hotel/Anomaly/EightExit/Shrink/Anomaly_Shrink.cpp @@ -34,9 +34,9 @@ void AAnomaly_Shrink::BeginPlay() #pragma region Activity -void AAnomaly_Shrink::ActivateAnomaly(uint8 Anomaly_ID) +void AAnomaly_Shrink::ActivateAnomaly() { - Super::ActivateAnomaly(Anomaly_ID); + Super::ActivateAnomaly(); FTimerHandle StartHandle; GetWorld()->GetTimerManager().SetTimer(StartHandle, FTimerDelegate::CreateWeakLambda(this, [this]() diff --git a/Source/Endless_Hotel/Anomaly/EightExit/Shrink/Anomaly_Shrink.h b/Source/Endless_Hotel/Anomaly/EightExit/Shrink/Anomaly_Shrink.h index 914e78ef..2248ecd5 100644 --- a/Source/Endless_Hotel/Anomaly/EightExit/Shrink/Anomaly_Shrink.h +++ b/Source/Endless_Hotel/Anomaly/EightExit/Shrink/Anomaly_Shrink.h @@ -31,7 +31,7 @@ class ENDLESS_HOTEL_API AAnomaly_Shrink : public AAnomaly_Base_EightExit #pragma region Activity public: - virtual void ActivateAnomaly(uint8 Anomaly_ID) override; + virtual void ActivateAnomaly() override; #pragma endregion diff --git a/Source/Endless_Hotel/Anomaly/Neapolitan/Clock/Anomaly_Clock.cpp b/Source/Endless_Hotel/Anomaly/Neapolitan/Clock/Anomaly_Clock.cpp index 12f303c4..c98bc9cc 100644 --- a/Source/Endless_Hotel/Anomaly/Neapolitan/Clock/Anomaly_Clock.cpp +++ b/Source/Endless_Hotel/Anomaly/Neapolitan/Clock/Anomaly_Clock.cpp @@ -5,11 +5,11 @@ #pragma region Activity -void AAnomaly_Clock::ActivateAnomaly(uint8 Anomaly_ID) +void AAnomaly_Clock::ActivateAnomaly() { - Super::ActivateAnomaly(Anomaly_ID); + Super::ActivateAnomaly(); - switch (Anomaly_ID) + switch (AnomalyID) { case 89: AnomalyAction = ([](AAnomaly_Object_Base* Clock) diff --git a/Source/Endless_Hotel/Anomaly/Neapolitan/Clock/Anomaly_Clock.h b/Source/Endless_Hotel/Anomaly/Neapolitan/Clock/Anomaly_Clock.h index 2795d122..60d44fa9 100644 --- a/Source/Endless_Hotel/Anomaly/Neapolitan/Clock/Anomaly_Clock.h +++ b/Source/Endless_Hotel/Anomaly/Neapolitan/Clock/Anomaly_Clock.h @@ -14,7 +14,7 @@ class ENDLESS_HOTEL_API AAnomaly_Clock : public AAnomaly_Base_Neapolitan #pragma region Activity public: - virtual void ActivateAnomaly(uint8 Anomaly_ID) override; + virtual void ActivateAnomaly() override; #pragma endregion diff --git a/Source/Endless_Hotel/Anomaly/Neapolitan/Float/Anomaly_Float.cpp b/Source/Endless_Hotel/Anomaly/Neapolitan/Float/Anomaly_Float.cpp index 89dd7b20..f5f32de7 100644 --- a/Source/Endless_Hotel/Anomaly/Neapolitan/Float/Anomaly_Float.cpp +++ b/Source/Endless_Hotel/Anomaly/Neapolitan/Float/Anomaly_Float.cpp @@ -1,4 +1,4 @@ -// Copyright by 2025-2 WAP Game 2 team +// Copyright by 2025-2 WAP Game 2 team #include "Anomaly/Neapolitan/Float/Anomaly_Float.h" @@ -6,11 +6,11 @@ #pragma region Activity -void AAnomaly_Float::ActivateAnomaly(uint8 Anomaly_ID) +void AAnomaly_Float::ActivateAnomaly() { - Super::ActivateAnomaly(Anomaly_ID); + Super::ActivateAnomaly(); - switch (Anomaly_ID) + switch (AnomalyID) { case 88: AnomalyAction = ([](AAnomaly_Object_Base* Float) diff --git a/Source/Endless_Hotel/Anomaly/Neapolitan/Float/Anomaly_Float.h b/Source/Endless_Hotel/Anomaly/Neapolitan/Float/Anomaly_Float.h index 2cd64178..b65498d4 100644 --- a/Source/Endless_Hotel/Anomaly/Neapolitan/Float/Anomaly_Float.h +++ b/Source/Endless_Hotel/Anomaly/Neapolitan/Float/Anomaly_Float.h @@ -1,4 +1,4 @@ -// Copyright by 2025-2 WAP Game 2 team +// Copyright by 2025-2 WAP Game 2 team #pragma once @@ -15,7 +15,7 @@ class ENDLESS_HOTEL_API AAnomaly_Float : public AAnomaly_Base_Neapolitan #pragma region Activity public: - virtual void ActivateAnomaly(uint8 Anomaly_ID) override; + virtual void ActivateAnomaly() override; #pragma endregion diff --git a/Source/Endless_Hotel/Anomaly/Neapolitan/MusicBox/Anomaly_MusicBox.cpp b/Source/Endless_Hotel/Anomaly/Neapolitan/MusicBox/Anomaly_MusicBox.cpp index a11faaa0..d3b2a3e6 100644 --- a/Source/Endless_Hotel/Anomaly/Neapolitan/MusicBox/Anomaly_MusicBox.cpp +++ b/Source/Endless_Hotel/Anomaly/Neapolitan/MusicBox/Anomaly_MusicBox.cpp @@ -6,16 +6,17 @@ #pragma region Activity -void AAnomaly_MusicBox::ActivateAnomaly(uint8 Anomaly_ID) +void AAnomaly_MusicBox::ActivateAnomaly() { - Super::ActivateAnomaly(Anomaly_ID); + Super::ActivateAnomaly(); - switch (Anomaly_ID) + switch (AnomalyID) { case 90: AnomalyAction = ([](AAnomaly_Object_Base* MusicBox) { Cast(MusicBox)->PlayMusicBox(); + Cast(MusicBox)->SetInteraction(); }); StartImmediate(); break; diff --git a/Source/Endless_Hotel/Anomaly/Neapolitan/MusicBox/Anomaly_MusicBox.h b/Source/Endless_Hotel/Anomaly/Neapolitan/MusicBox/Anomaly_MusicBox.h index 3e330deb..4699f357 100644 --- a/Source/Endless_Hotel/Anomaly/Neapolitan/MusicBox/Anomaly_MusicBox.h +++ b/Source/Endless_Hotel/Anomaly/Neapolitan/MusicBox/Anomaly_MusicBox.h @@ -14,7 +14,7 @@ class ENDLESS_HOTEL_API AAnomaly_MusicBox : public AAnomaly_Base_Neapolitan #pragma region Activity public: - virtual void ActivateAnomaly(uint8 Anomaly_ID) override; + virtual void ActivateAnomaly() override; #pragma endregion diff --git a/Source/Endless_Hotel/Anomaly/Neapolitan/Painting/Anomaly_Painting.cpp b/Source/Endless_Hotel/Anomaly/Neapolitan/Painting/Anomaly_Painting.cpp index c6cf2b3e..f353f02f 100644 --- a/Source/Endless_Hotel/Anomaly/Neapolitan/Painting/Anomaly_Painting.cpp +++ b/Source/Endless_Hotel/Anomaly/Neapolitan/Painting/Anomaly_Painting.cpp @@ -5,16 +5,17 @@ #pragma region Activity -void AAnomaly_Painting::ActivateAnomaly(uint8 Anomaly_ID) +void AAnomaly_Painting::ActivateAnomaly() { - Super::ActivateAnomaly(Anomaly_ID); + Super::ActivateAnomaly(); - switch (Anomaly_ID) + switch (AnomalyID) { case 99: AnomalyAction = ([](AAnomaly_Object_Base* Portrait) { Cast(Portrait)->EyeFollowing(); + Cast(Portrait)->SetInteraction(); }); ActiveTrigger(); break; @@ -23,6 +24,7 @@ void AAnomaly_Painting::ActivateAnomaly(uint8 Anomaly_ID) AnomalyAction = ([](AAnomaly_Object_Base* Portrait) { Cast(Portrait)->BloodDropping(); + Cast(Portrait)->SetInteraction(); }); ActiveTrigger(); break; @@ -31,6 +33,7 @@ void AAnomaly_Painting::ActivateAnomaly(uint8 Anomaly_ID) AnomalyAction = ([](AAnomaly_Object_Base* Portrait) { Cast(Portrait)->BlurPaint(); + Cast(Portrait)->SetInteraction(); }); StartImmediate(); break; diff --git a/Source/Endless_Hotel/Anomaly/Neapolitan/Painting/Anomaly_Painting.h b/Source/Endless_Hotel/Anomaly/Neapolitan/Painting/Anomaly_Painting.h index 6ef0306d..b687ad40 100644 --- a/Source/Endless_Hotel/Anomaly/Neapolitan/Painting/Anomaly_Painting.h +++ b/Source/Endless_Hotel/Anomaly/Neapolitan/Painting/Anomaly_Painting.h @@ -14,7 +14,7 @@ class ENDLESS_HOTEL_API AAnomaly_Painting : public AAnomaly_Base_Neapolitan #pragma region Activity public: - virtual void ActivateAnomaly(uint8 Anomaly_ID) override; + virtual void ActivateAnomaly() override; #pragma endregion diff --git a/Source/Endless_Hotel/Anomaly/Neapolitan/ShelfDoll/Anomaly_ShelfDoll.cpp b/Source/Endless_Hotel/Anomaly/Neapolitan/ShelfDoll/Anomaly_ShelfDoll.cpp index 988ea082..d226ff10 100644 --- a/Source/Endless_Hotel/Anomaly/Neapolitan/ShelfDoll/Anomaly_ShelfDoll.cpp +++ b/Source/Endless_Hotel/Anomaly/Neapolitan/ShelfDoll/Anomaly_ShelfDoll.cpp @@ -1,14 +1,14 @@ -// Copyright by 2025-2 WAP Game 2 team +// Copyright by 2025-2 WAP Game 2 team #include "Anomaly/Neapolitan/ShelfDoll/Anomaly_ShelfDoll.h" #include "Anomaly/Object/ShelfDoll/Anomaly_Object_ShelfDoll.h" -void AAnomaly_ShelfDoll::ActivateAnomaly(uint8 Anomaly_ID) +void AAnomaly_ShelfDoll::ActivateAnomaly() { - Super::ActivateAnomaly(Anomaly_ID); + Super::ActivateAnomaly(); - switch (Anomaly_ID) + switch (AnomalyID) { case 98: AnomalyAction = ([](AAnomaly_Object_Base* Object) diff --git a/Source/Endless_Hotel/Anomaly/Neapolitan/ShelfDoll/Anomaly_ShelfDoll.h b/Source/Endless_Hotel/Anomaly/Neapolitan/ShelfDoll/Anomaly_ShelfDoll.h index ee0ce08d..402c6fcc 100644 --- a/Source/Endless_Hotel/Anomaly/Neapolitan/ShelfDoll/Anomaly_ShelfDoll.h +++ b/Source/Endless_Hotel/Anomaly/Neapolitan/ShelfDoll/Anomaly_ShelfDoll.h @@ -1,4 +1,4 @@ -// Copyright by 2025-2 WAP Game 2 team +// Copyright by 2025-2 WAP Game 2 team #pragma once @@ -14,7 +14,7 @@ class ENDLESS_HOTEL_API AAnomaly_ShelfDoll : public AAnomaly_Base_Neapolitan #pragma region Activity public: - virtual void ActivateAnomaly(uint8 Anomaly_ID) override; + virtual void ActivateAnomaly() override; #pragma endregion }; diff --git a/Source/Endless_Hotel/Anomaly/Normal/Normal.cpp b/Source/Endless_Hotel/Anomaly/Normal/Normal.cpp index 446bb234..ce6f89e5 100644 --- a/Source/Endless_Hotel/Anomaly/Normal/Normal.cpp +++ b/Source/Endless_Hotel/Anomaly/Normal/Normal.cpp @@ -24,9 +24,10 @@ void ANormal::BeginPlay() #pragma region Activities // Anomaly_Base_EightExit.cpp -void ANormal::ActivateAnomaly(uint8 Anomaly_ID) +void ANormal::ActivateAnomaly() { // Activites + AnomalyID = 0; UE_LOG(LogTemp, Log, TEXT("[EightExit] It's Normal"), AnomalyID); } #pragma endregion \ No newline at end of file diff --git a/Source/Endless_Hotel/Anomaly/Normal/Normal.h b/Source/Endless_Hotel/Anomaly/Normal/Normal.h index 0b1ff66c..f933b290 100644 --- a/Source/Endless_Hotel/Anomaly/Normal/Normal.h +++ b/Source/Endless_Hotel/Anomaly/Normal/Normal.h @@ -29,7 +29,7 @@ class ENDLESS_HOTEL_API ANormal : public AAnomaly_Base #pragma region Activities protected: - virtual void ActivateAnomaly(uint8 Anomaly_ID = 255) override; + virtual void ActivateAnomaly() override; #pragma endregion }; diff --git a/Source/Endless_Hotel/Anomaly/Object/Anomaly_Object_Base.cpp b/Source/Endless_Hotel/Anomaly/Object/Anomaly_Object_Base.cpp index b4881130..a1baaae6 100644 --- a/Source/Endless_Hotel/Anomaly/Object/Anomaly_Object_Base.cpp +++ b/Source/Endless_Hotel/Anomaly/Object/Anomaly_Object_Base.cpp @@ -1,3 +1,7 @@ // Copyright by 2025-2 WAP Game 2 team -#include "Anomaly/Object/Anomaly_Object_Base.h" \ No newline at end of file +#include "Anomaly/Object/Anomaly_Object_Base.h" +#include "Player/Character/EHPlayer.h" +#include "Player/Component/EHCameraComponent.h" +#include +#include "GameSystem/SubSystem/AnomalyProgressSubSystem.h" \ No newline at end of file diff --git a/Source/Endless_Hotel/Anomaly/Object/Anomaly_Object_Base.h b/Source/Endless_Hotel/Anomaly/Object/Anomaly_Object_Base.h index 26e2ce9d..d32b9964 100644 --- a/Source/Endless_Hotel/Anomaly/Object/Anomaly_Object_Base.h +++ b/Source/Endless_Hotel/Anomaly/Object/Anomaly_Object_Base.h @@ -10,4 +10,11 @@ UCLASS() class ENDLESS_HOTEL_API AAnomaly_Object_Base : public AEHActor { GENERATED_BODY() + +#pragma region Anomaly + +public: + uint8 AnomalyID; + +#pragma endregion }; \ No newline at end of file diff --git a/Source/Endless_Hotel/Anomaly/Object/Anomaly_Object_Neapolitan.cpp b/Source/Endless_Hotel/Anomaly/Object/Anomaly_Object_Neapolitan.cpp index 3ecbb0d0..ebb1ba8b 100644 --- a/Source/Endless_Hotel/Anomaly/Object/Anomaly_Object_Neapolitan.cpp +++ b/Source/Endless_Hotel/Anomaly/Object/Anomaly_Object_Neapolitan.cpp @@ -16,7 +16,7 @@ AAnomaly_Object_Neapolitan::AAnomaly_Object_Neapolitan(const FObjectInitializer& Object->SetupAttachment(RootComponent); WC = CreateDefaultSubobject(TEXT("WC")); - WC->SetupAttachment(Object); + WC->SetupAttachment(RootComponent); LAC = CreateDefaultSubobject(TEXT("LAC")); @@ -43,9 +43,7 @@ void AAnomaly_Object_Neapolitan::BeginPlay() void AAnomaly_Object_Neapolitan::Interacted_Implementation() { - bSolved = !bSolved; - - RestoreObjectTransform(); + StartInteractaction(); } void AAnomaly_Object_Neapolitan::ShowInteractWidget_Implementation(bool bIsShow) @@ -53,6 +51,11 @@ void AAnomaly_Object_Neapolitan::ShowInteractWidget_Implementation(bool bIsShow) UI_Interact->ShowDescription(bIsShow); } +void AAnomaly_Object_Neapolitan::StartInteractaction() +{ + InteractAction(); +} + #pragma endregion #pragma region Restore diff --git a/Source/Endless_Hotel/Anomaly/Object/Anomaly_Object_Neapolitan.h b/Source/Endless_Hotel/Anomaly/Object/Anomaly_Object_Neapolitan.h index c7101f8a..659befe9 100644 --- a/Source/Endless_Hotel/Anomaly/Object/Anomaly_Object_Neapolitan.h +++ b/Source/Endless_Hotel/Anomaly/Object/Anomaly_Object_Neapolitan.h @@ -34,6 +34,10 @@ class ENDLESS_HOTEL_API AAnomaly_Object_Neapolitan : public AAnomaly_Object_Base public: virtual void Interacted_Implementation() override; virtual void ShowInteractWidget_Implementation(bool bIsShow) override; + virtual void SetInteraction() PURE_VIRTUAL(AAnomaly_Object_Neapolitan::SetInteraction, ;); + +protected: + virtual void StartInteractaction(); protected: UPROPERTY(EditAnywhere) @@ -51,6 +55,8 @@ class ENDLESS_HOTEL_API AAnomaly_Object_Neapolitan : public AAnomaly_Object_Base // 크로스헤어 오버 시 나타날 텍스트 FText DescriptionText; + TFunction InteractAction; + #pragma endregion #pragma region Restore diff --git a/Source/Endless_Hotel/Anomaly/Object/MusicBox/Anomaly_Object_MusicBox.cpp b/Source/Endless_Hotel/Anomaly/Object/MusicBox/Anomaly_Object_MusicBox.cpp index c7a7011c..a79690ff 100644 --- a/Source/Endless_Hotel/Anomaly/Object/MusicBox/Anomaly_Object_MusicBox.cpp +++ b/Source/Endless_Hotel/Anomaly/Object/MusicBox/Anomaly_Object_MusicBox.cpp @@ -2,7 +2,9 @@ #include "Anomaly/Object/MusicBox/Anomaly_Object_MusicBox.h" +#include "Anomaly/Base/Anomaly_Base.h" #include +#include #pragma region Base @@ -15,6 +17,7 @@ AAnomaly_Object_MusicBox::AAnomaly_Object_MusicBox(const FObjectInitializer& Obj Mesh_BoxRotator->SetupAttachment(RootComponent); AC = CreateDefaultSubobject(TEXT("AudioComponent")); AC->SetupAttachment(RootComponent); + Object->SetupAttachment(RootComponent); } #pragma endregion @@ -26,27 +29,66 @@ void AAnomaly_Object_MusicBox::PlayMusicBox() AC->Sound = Sound_MusicBox; AC->Play(); bWaitingInteract = true; - // 회전하는 등 연출 에셋 정한 이후에 추가하기 + + StartRotate(); + GetWorld()->GetTimerManager().ClearTimer(FailTimerHandle); GetWorld()->GetTimerManager().SetTimer(FailTimerHandle, FTimerDelegate::CreateWeakLambda(this, [this]() { bWaitingInteract = false; AC->Stop(); bSolved = false; + AAnomaly_Base::AnomalyDelegate.Broadcast(false); }), LimitTime, false); } +void AAnomaly_Object_MusicBox::StartRotate() +{ + GetWorld()->GetTimerManager().SetTimer( + RotateHandle, + FTimerDelegate::CreateWeakLambda(this, [this]() + { + Mesh_BoxRotator->AddLocalRotation(TickRotation); + if (!bWaitingInteract) GetWorld()->GetTimerManager().ClearTimer(RotateHandle); + }), + 0.016f, + true + ); +} + #pragma endregion #pragma region Interact void AAnomaly_Object_MusicBox::Interacted_Implementation() +{ + StartInteractaction(); +} + +void AAnomaly_Object_MusicBox::StopMusicBox() { if (!bWaitingInteract) return; AC->Stop(); bWaitingInteract = false; bSolved = true; + GetWorld()->GetTimerManager().ClearTimer(FailTimerHandle); } +void AAnomaly_Object_MusicBox::SetInteraction() +{ + switch (AnomalyID) + { + case 0: + break; + + case 90: + InteractAction = ([this]() + { + AAnomaly_Object_MusicBox::StopMusicBox(); + }); + break; + } +} + #pragma endregion \ No newline at end of file diff --git a/Source/Endless_Hotel/Anomaly/Object/MusicBox/Anomaly_Object_MusicBox.h b/Source/Endless_Hotel/Anomaly/Object/MusicBox/Anomaly_Object_MusicBox.h index 3a8ef3bf..ea729559 100644 --- a/Source/Endless_Hotel/Anomaly/Object/MusicBox/Anomaly_Object_MusicBox.h +++ b/Source/Endless_Hotel/Anomaly/Object/MusicBox/Anomaly_Object_MusicBox.h @@ -43,19 +43,28 @@ class ENDLESS_HOTEL_API AAnomaly_Object_MusicBox : public AAnomaly_Object_Neapol void PlayMusicBox(); protected: - UPROPERTY(EditAnywhere, Category = "MusicBox|Fail"); - FTimerHandle FailTimerHandle; + void StartRotate(); UPROPERTY(EditAnywhere, Category = "MusicBox|Fail"); float LimitTime; + UPROPERTY(EditAnywhere, Category = "MusicBox|Rotate"); + FRotator TickRotation; + + FTimerHandle RotateHandle; + FTimerHandle FailTimerHandle; + #pragma endregion #pragma region Interact +public: + virtual void SetInteraction() override; + protected: virtual void Interacted_Implementation() override; + void StopMusicBox(); protected: UPROPERTY(VisibleInstanceOnly, BlueprintReadOnly, Category = "MusicBox|Interact") diff --git a/Source/Endless_Hotel/Anomaly/Object/Painting/Anomaly_Object_Painting.cpp b/Source/Endless_Hotel/Anomaly/Object/Painting/Anomaly_Object_Painting.cpp index 71b78426..3737cb3d 100644 --- a/Source/Endless_Hotel/Anomaly/Object/Painting/Anomaly_Object_Painting.cpp +++ b/Source/Endless_Hotel/Anomaly/Object/Painting/Anomaly_Object_Painting.cpp @@ -196,19 +196,25 @@ void AAnomaly_Object_Painting::FrameTilt() } #pragma endregion -void AAnomaly_Object_Painting::Interacted_Implementation() -{ - bSolved = !bSolved; -} +#pragma region Interact -void AAnomaly_Object_Painting::ShowInteractWidget_Implementation(bool bIsShow) +void AAnomaly_Object_Painting::SetInteraction() { - UI_Interact->ShowDescription(bIsShow); + switch (AnomalyID) + { + case 0: + break; + + default: + InteractAction = ([this]() + { + AAnomaly_Object_Painting::InteractRotate(); + }); + break; + } } -#pragma endregion -#pragma region Interact -void AAnomaly_Object_Painting::Interacted_Implementation() +void AAnomaly_Object_Painting::InteractRotate() { OriginRotation = GetActorRotation(); bIsRotated = !bIsRotated; diff --git a/Source/Endless_Hotel/Anomaly/Object/Painting/Anomaly_Object_Painting.h b/Source/Endless_Hotel/Anomaly/Object/Painting/Anomaly_Object_Painting.h index c4ee1561..7c5a4945 100644 --- a/Source/Endless_Hotel/Anomaly/Object/Painting/Anomaly_Object_Painting.h +++ b/Source/Endless_Hotel/Anomaly/Object/Painting/Anomaly_Object_Painting.h @@ -106,12 +106,11 @@ class ENDLESS_HOTEL_API AAnomaly_Object_Painting : public AAnomaly_Object_Neapol #pragma endregion #pragma region Interact - virtual void Interacted_Implementation() override; - virtual void ShowInteractWidget_Implementation(bool bIsShow) override; -#pragma region Interact +public: + virtual void SetInteraction() override; protected: - virtual void Interacted_Implementation() override; + void InteractRotate(); UFUNCTION() void InteractedMoveStep(int32 step); diff --git a/Source/Endless_Hotel/Data/Controller/DataController.cpp b/Source/Endless_Hotel/Data/Controller/DataController.cpp index c3774738..216e690a 100644 --- a/Source/Endless_Hotel/Data/Controller/DataController.cpp +++ b/Source/Endless_Hotel/Data/Controller/DataController.cpp @@ -2,6 +2,9 @@ #include "Data/Controller/DataController.h" #include "Data/Compendium/Compendium.h" +#include "Anomaly/Base/Anomaly_Base.h" +#include "Anomaly/Object/Anomaly_Object_Base.h" +#include "Data/Anomaly/AnomalyData.h" #pragma region Base @@ -12,6 +15,12 @@ UDataController::UDataController() { DataTable_Compendium = CompendiumFinder.Object; } + + static ConstructorHelpers::FObjectFinder AnomalyFinder(TEXT("/Game/EndlessHotel/Data/DT_AnomalyData.DT_AnomalyData")); + if (AnomalyFinder.Succeeded()) + { + DataTable_Anomaly = AnomalyFinder.Object; + } } #pragma endregion @@ -57,4 +66,49 @@ FCompendium* UDataController::GetCompendiumData(int32 Page, int32 Number) return nullptr; } +#pragma endregion + +#pragma region AnomalyDataBase + +void UDataController::GetAnomalyEntries() +{ + if (!DataTable_Anomaly) return; + + for (auto RowData : DataTable_Anomaly->GetRowMap()) + { + FAnomalyData* Data = (FAnomalyData*)RowData.Value; + if (Data->AnomalyPath.IsEmpty()) return; + + UClass* LoadedClass = StaticLoadClass(AAnomaly_Base::StaticClass(), nullptr, *Data->AnomalyPath); + UClass* ObjectClass = StaticLoadClass(AAnomaly_Object_Base::StaticClass(), nullptr, *Data->ObjectPath); + + if (LoadedClass) + { + OriginAnomaly.Add(FAnomalyEntry{ Data->AnomalyID, LoadedClass, ObjectClass }); + } + } +} + +TSubclassOf UDataController::GetObjectByID(uint8 AnomalyID) +{ + for (auto& Pair : DataTable_Anomaly->GetRowMap()) + { + const FAnomalyData* Row = reinterpret_cast(Pair.Value); + if (Row->AnomalyID == AnomalyID) + { + UClass* LoadedClass = StaticLoadClass(AAnomaly_Object_Base::StaticClass(), nullptr, *Row->ObjectPath); + return LoadedClass; + } + } + return nullptr; +} + +void UDataController::RemoveClearedAnomaly() +{ + ActAnomaly.RemoveAll([this](const FAnomalyEntry& Entry) + { + return LoadedAnomalySet.Contains(Entry.AnomalyID); + }); +} + #pragma endregion \ No newline at end of file diff --git a/Source/Endless_Hotel/Data/Controller/DataController.h b/Source/Endless_Hotel/Data/Controller/DataController.h index ecb7d8f5..5697228e 100644 --- a/Source/Endless_Hotel/Data/Controller/DataController.h +++ b/Source/Endless_Hotel/Data/Controller/DataController.h @@ -6,11 +6,30 @@ #include #include +#pragma region Declare + +USTRUCT(BlueprintType) +struct FAnomalyEntry +{ + GENERATED_BODY() + + UPROPERTY() + uint8 AnomalyID; + + UPROPERTY() + TSubclassOf AnomalyClass; + + UPROPERTY() + TSubclassOf ObjectClass; +}; + +#pragma endregion + UCLASS() class ENDLESS_HOTEL_API UDataController : public UGameInstanceSubsystem { GENERATED_BODY() - + #pragma region Base public: @@ -31,4 +50,28 @@ class ENDLESS_HOTEL_API UDataController : public UGameInstanceSubsystem #pragma endregion +#pragma region AnomalyDataBase + +public: + void GetAnomalyEntries(); + + TSubclassOf GetObjectByID(uint8 ObjectID); + + TArray GetOriginAnomaly() { return OriginAnomaly; } + + void RemoveClearedAnomaly(); + +public: + TSet LoadedAnomalySet; + + TArray ActAnomaly; + +protected: + UPROPERTY() + TObjectPtr DataTable_Anomaly; + +private: + TArray OriginAnomaly; + +#pragma endregion }; \ No newline at end of file diff --git a/Source/Endless_Hotel/Elevator/Elevator.h b/Source/Endless_Hotel/Elevator/Elevator.h index abbd3949..2798a1bf 100644 --- a/Source/Endless_Hotel/Elevator/Elevator.h +++ b/Source/Endless_Hotel/Elevator/Elevator.h @@ -83,7 +83,7 @@ class ENDLESS_HOTEL_API AElevator : public AEHActor #pragma region Sound protected: - UPROPERTY() + UPROPERTY(EditAnywhere) TObjectPtr AC; UPROPERTY(EditAnywhere, Category = "Sound") diff --git a/Source/Endless_Hotel/GameSystem/Anomaly/Anomaly_Generator.cpp b/Source/Endless_Hotel/GameSystem/Anomaly/Anomaly_Generator.cpp index 3bc75be2..a9dff91f 100644 --- a/Source/Endless_Hotel/GameSystem/Anomaly/Anomaly_Generator.cpp +++ b/Source/Endless_Hotel/GameSystem/Anomaly/Anomaly_Generator.cpp @@ -5,6 +5,7 @@ #include "Data/Anomaly/AnomalyData.h" #include "Anomaly/Object/Anomaly_Object_Base.h" #include "GameSystem/SubSystem/AnomalyProgressSubSystem.h" +#include "Data/Controller/DataController.h" #include #pragma region Base @@ -31,10 +32,10 @@ void AAnomaly_Generator::BeginPlay() void AAnomaly_Generator::AnomalyObjectLinker() { - auto* Sub = GetGameInstance()->GetSubsystem(); - - UClass* TargetClass = Sub->GetObjectByID(CurrentAnomaly->AnomalyID); + auto* DataC = GetGameInstance()->GetSubsystem(); + UClass* TargetClass = DataC->GetObjectByID(CurrentAnomaly->AnomalyID); + if (!TargetClass) { return; @@ -46,6 +47,7 @@ void AAnomaly_Generator::AnomalyObjectLinker() for (auto* FoundActor : FoundActors) { auto* AnomalyObject = Cast(FoundActor); + AnomalyObject->AnomalyID = CurrentAnomaly->AnomalyID; CurrentAnomaly->LinkedObjects.Add(FoundActor); } } @@ -60,11 +62,12 @@ AAnomaly_Base* AAnomaly_Generator::SpawnAnomalyAtIndex(uint8 Index) UE_LOG(LogTemp, Verbose, TEXT("[Gen %s] SpawnAnomalyAtIndex(%d)"), *GetName(), Index); auto* Sub = GetGameInstance()->GetSubsystem(); + auto* DataC = GetGameInstance()->GetSubsystem(); // Out of Range Check - if (!(Sub->ActAnomaly).IsValidIndex(Index)) + if (!(DataC->ActAnomaly).IsValidIndex(Index)) { - if (Sub->ActAnomaly.Num() == 0) + if (DataC->ActAnomaly.Num() == 0) { return nullptr; } @@ -73,7 +76,7 @@ AAnomaly_Base* AAnomaly_Generator::SpawnAnomalyAtIndex(uint8 Index) return SpawnAnomalyAtIndex(Index); // restart } - TSubclassOf AnomalyClass = Sub->ActAnomaly[Index].AnomalyClass; + TSubclassOf AnomalyClass = DataC->ActAnomaly[Index].AnomalyClass; // Spawn const FTransform SpawnTransform(FVector::ZeroVector); @@ -90,14 +93,14 @@ AAnomaly_Base* AAnomaly_Generator::SpawnAnomalyAtIndex(uint8 Index) return nullptr; } - Spawned->AnomalyID = Sub->ActAnomaly[Index].AnomalyID; + Spawned->AnomalyID = DataC->ActAnomaly[Index].AnomalyID; CurrentAnomaly = Spawned; AnomalyObjectLinker(); // Start - Spawned->ActivateAnomaly(Spawned->AnomalyID); + Spawned->ActivateAnomaly(); // EventBroadCast OnAnomalySpawned.Broadcast(Spawned); diff --git a/Source/Endless_Hotel/GameSystem/SubSystem/AnomalyProgressSubSystem.cpp b/Source/Endless_Hotel/GameSystem/SubSystem/AnomalyProgressSubSystem.cpp index fedc5802..a21a42a4 100644 --- a/Source/Endless_Hotel/GameSystem/SubSystem/AnomalyProgressSubSystem.cpp +++ b/Source/Endless_Hotel/GameSystem/SubSystem/AnomalyProgressSubSystem.cpp @@ -8,23 +8,27 @@ #include "Anomaly/Base/Anomaly_Base.h" #include "Anomaly/Object/Anomaly_Object_Base.h" #include "Anomaly/Base/Anomaly_Base_Neapolitan.h" +#include "Data/Controller/DataController.h" #pragma region Base UAnomalyProgressSubSystem::UAnomalyProgressSubSystem() { - static ConstructorHelpers::FObjectFinder AnomalyFinder(TEXT("/Game/EndlessHotel/Data/DT_AnomalyData.DT_AnomalyData")); - if (AnomalyFinder.Succeeded()) - { - DataTable_Anomaly = AnomalyFinder.Object; - } - GameClearEvent.AddDynamic(this, &ThisClass::GameClear); } void UAnomalyProgressSubSystem::Initialize(FSubsystemCollectionBase& Collection) { Super::Initialize(Collection); + + AAnomaly_Base::AnomalyDelegate.AddDynamic(this, &ThisClass::KillPlayer); + + UDataController* DataController = Collection.InitializeDependency(); + if (DataController) + { + DataController->GetAnomalyEntries(); + } + Floor = 9; AnomalyCount = 0; ActIndex = 0; @@ -33,14 +37,15 @@ void UAnomalyProgressSubSystem::Initialize(FSubsystemCollectionBase& Collection) if (bIsAlreadyClear) { const TArray LoadedHistory = USaveManager::LoadClearedAnomalyID(); - LoadedAnomalySet.Reset(); + auto* DataC = GetGameInstance()->GetSubsystem(); + + DataC->LoadedAnomalySet.Reset(); for (uint8 ID : LoadedHistory) { - LoadedAnomalySet.Add(ID); + DataC->LoadedAnomalySet.Add(ID); } } - GetAnomalyData(); InitializePool(); } #pragma endregion @@ -66,6 +71,7 @@ bool UAnomalyProgressSubSystem::ComputeVerdict(bool bSolved, bool bNormalElevato void UAnomalyProgressSubSystem::ApplyVerdict() { + auto* DataC = GetGameInstance()->GetSubsystem(); bPassed = ComputeVerdict(bIsAnomalySolved, bIsElevatorNormal); if (bPassed) { @@ -76,7 +82,7 @@ void UAnomalyProgressSubSystem::ApplyVerdict() } if (bIsAlreadyClear) { - LoadedAnomalySet.Add(CurrentAnomalyID); + DataC->LoadedAnomalySet.Add(CurrentAnomalyID); USaveManager::SaveClearedAnomalyID(CurrentAnomalyID); } AnomalyCount++; @@ -128,95 +134,31 @@ void UAnomalyProgressSubSystem::AddFloor() #pragma endregion -#pragma region AnomalyDataBase - -void UAnomalyProgressSubSystem::GetAnomalyData() -{ - FAnomalyData* Data = nullptr; - - for (auto RowData : DataTable_Anomaly->GetRowMap()) - { - Data = (FAnomalyData*)RowData.Value; - - if (!Data->AnomalyPath.IsEmpty()) - { - UClass* LoadedClass = StaticLoadClass(AAnomaly_Base::StaticClass(), nullptr, *Data->AnomalyPath); - UClass* ObjectClass = StaticLoadClass(AAnomaly_Object_Base::StaticClass(), nullptr, *Data->ObjectPath); - - if (LoadedClass) - { - OriginAnomaly.Add(FAnomalyEntry{ Data->AnomalyID, LoadedClass, ObjectClass}); - } - } - } -} - -TSubclassOf UAnomalyProgressSubSystem::GetObjectByID(uint8 AnomalyID) -{ - for (auto& Pair : DataTable_Anomaly->GetRowMap()) - { - const FAnomalyData* Row = reinterpret_cast(Pair.Value); - if (Row->AnomalyID == AnomalyID) - { - UClass* LoadedClass = StaticLoadClass(AAnomaly_Object_Base::StaticClass(), nullptr, *Row->ObjectPath); - return LoadedClass; - } - } - return nullptr; -} - -TSubclassOf UAnomalyProgressSubSystem::GetObjectByName(FString ObjectName) -{ - for (auto& Pair : DataTable_Anomaly->GetRowMap()) - { - const FAnomalyData* Row = reinterpret_cast(Pair.Value); - if (Row->Anomaly_En == ObjectName) - { - UClass* LoadedClass = StaticLoadClass(AAnomaly_Object_Base::StaticClass(), nullptr, *Row->ObjectPath); - return LoadedClass; - } - } - return nullptr; -} - -TSubclassOf UAnomalyProgressSubSystem::GetObjectByRowIndex(uint8 RowIndex) -{ - if (const FAnomalyData* Data = DataTable_Anomaly->FindRow(*FString::FromInt(RowIndex), TEXT(""))) - { - UClass* LoadedClass = StaticLoadClass(AAnomaly_Object_Base::StaticClass(), nullptr, *Data->ObjectPath); - return LoadedClass; - } - return nullptr; -} - -#pragma endregion - #pragma region Pool & Reset void UAnomalyProgressSubSystem::InitializePool() { // Copy from Original - ActAnomaly = OriginAnomaly; + auto* DataC = GetGameInstance()->GetSubsystem(); + + DataC->ActAnomaly = DataC->GetOriginAnomaly(); ActIndex = 0; - if (bIsAlreadyClear && LoadedAnomalySet.Num() > 0) + if (bIsAlreadyClear && DataC->LoadedAnomalySet.Num() > 0) { - ActAnomaly.RemoveAll([this](const FAnomalyEntry& Entry) - { - return LoadedAnomalySet.Contains(Entry.AnomalyID); - }); + DataC->RemoveClearedAnomaly(); } // Shuffle - if (ActAnomaly.Num() > 1) + if (DataC->ActAnomaly.Num() > 1) { - for (uint8 CurrentIndex = ActAnomaly.Num() - 1; CurrentIndex > 0; --CurrentIndex) + for (uint8 CurrentIndex = DataC->ActAnomaly.Num() - 1; CurrentIndex > 0; --CurrentIndex) { const uint8 RandomIndex = FMath::RandRange(0, CurrentIndex); if (CurrentIndex != RandomIndex) { - ActAnomaly.Swap(CurrentIndex, RandomIndex); + DataC->ActAnomaly.Swap(CurrentIndex, RandomIndex); } } } @@ -241,4 +183,20 @@ void UAnomalyProgressSubSystem::GameClear() USaveManager::SaveGameClearData(); } -#pragma endregion \ No newline at end of file +#pragma endregion + +#pragma region KillPlayer + +void UAnomalyProgressSubSystem::KillPlayer(bool bIsSignalActive) +{ + VerdictMode = EAnomalyVerdictMode::SolvedOnly; + FTimerHandle DieTimerHandle; + GetWorld()->GetTimerManager().SetTimer(DieTimerHandle, FTimerDelegate::CreateWeakLambda( + this, + [this]() + { + ApplyVerdict(); + }), 5, false); +} + +#pragma endregion diff --git a/Source/Endless_Hotel/GameSystem/SubSystem/AnomalyProgressSubSystem.h b/Source/Endless_Hotel/GameSystem/SubSystem/AnomalyProgressSubSystem.h index 414fd915..c1f2af59 100644 --- a/Source/Endless_Hotel/GameSystem/SubSystem/AnomalyProgressSubSystem.h +++ b/Source/Endless_Hotel/GameSystem/SubSystem/AnomalyProgressSubSystem.h @@ -22,21 +22,6 @@ enum class EAnomalyVerdictMode : uint8 Normal }; -USTRUCT(BlueprintType) -struct FAnomalyEntry -{ - GENERATED_BODY() - - UPROPERTY() - uint8 AnomalyID; - - UPROPERTY() - TSubclassOf AnomalyClass; - - UPROPERTY() - TSubclassOf ObjectClass; -}; - DECLARE_DYNAMIC_MULTICAST_DELEGATE(FGameClearEvent); #pragma endregion @@ -118,11 +103,6 @@ class ENDLESS_HOTEL_API UAnomalyProgressSubSystem : public UGameInstanceSubsyste #pragma region Pool public: - UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Anomaly|Pool") - TArray OriginAnomaly; - - UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Anomaly|Pool") - TArray ActAnomaly; UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Anomaly|Pool") uint8 ActIndex = 0; @@ -132,24 +112,6 @@ class ENDLESS_HOTEL_API UAnomalyProgressSubSystem : public UGameInstanceSubsyste #pragma endregion -#pragma region AnomalyDataBase - -protected: - UPROPERTY() - TObjectPtr DataTable_Anomaly; - -private: - TSet LoadedAnomalySet; - -public: - void GetAnomalyData(); - - TSubclassOf GetObjectByID(uint8 ObjectID); - TSubclassOf GetObjectByName(FString ObjectName); - TSubclassOf GetObjectByRowIndex(uint8 RowIndex); - -#pragma endregion - #pragma region Clear public: @@ -163,4 +125,12 @@ class ENDLESS_HOTEL_API UAnomalyProgressSubSystem : public UGameInstanceSubsyste #pragma endregion +#pragma region KillPlayer + +public: + UFUNCTION() + void KillPlayer(bool bIsSignalActive); + +#pragma endregion + }; \ No newline at end of file diff --git a/Source/Endless_Hotel/Player/Component/EHCameraComponent.cpp b/Source/Endless_Hotel/Player/Component/EHCameraComponent.cpp index 2a429a30..920e9f29 100644 --- a/Source/Endless_Hotel/Player/Component/EHCameraComponent.cpp +++ b/Source/Endless_Hotel/Player/Component/EHCameraComponent.cpp @@ -4,6 +4,7 @@ #include "UI/Controller/UI_Controller.h" #include "UI/PopUp/Blur/UI_PopUp_Blur.h" #include "Sound/SoundController.h" +#include "Anomaly/Base/Anomaly_Base.h" #include #include @@ -21,6 +22,8 @@ void UEHCameraComponent::BeginPlay() SettingEyeEffect(); StartEyeEffect(true); + + AAnomaly_Base::AnomalyDelegate.AddDynamic(this, &ThisClass::StartEyeEffect); } #pragma endregion diff --git a/Source/Endless_Hotel/Player/Component/EHCameraComponent.h b/Source/Endless_Hotel/Player/Component/EHCameraComponent.h index a7f3af8c..4c96bf09 100644 --- a/Source/Endless_Hotel/Player/Component/EHCameraComponent.h +++ b/Source/Endless_Hotel/Player/Component/EHCameraComponent.h @@ -32,6 +32,7 @@ class ENDLESS_HOTEL_API UEHCameraComponent : public UEHComponent #pragma region Eye Effect public: + UFUNCTION() void StartEyeEffect(bool bIsOpen); protected: diff --git a/Source/Endless_Hotel/UI/PopUp/Setting/UI_PopUp_Language.cpp b/Source/Endless_Hotel/UI/PopUp/Setting/UI_PopUp_Language.cpp index 991c30c8..fc7adcc0 100644 --- a/Source/Endless_Hotel/UI/PopUp/Setting/UI_PopUp_Language.cpp +++ b/Source/Endless_Hotel/UI/PopUp/Setting/UI_PopUp_Language.cpp @@ -1,6 +1,7 @@ // Copyright by 2025-2 WAP Game 2 team #include "UI/PopUp/Setting/UI_PopUp_Language.h" +#include "GameSystem/SaveGame/SaveManager.h" #include #include #include