diff --git a/Content/Core/Debug/Cheats/GE_Cheat_Invisible.uasset b/Content/Core/Debug/Cheats/GE_Cheat_Invisible.uasset new file mode 100644 index 0000000..5cda6f3 Binary files /dev/null and b/Content/Core/Debug/Cheats/GE_Cheat_Invisible.uasset differ diff --git a/Content/Core/Debug/DA_Debug_Engine.uasset b/Content/Core/Debug/DA_Debug_Engine.uasset index cc7952c..58af9a9 100644 Binary files a/Content/Core/Debug/DA_Debug_Engine.uasset and b/Content/Core/Debug/DA_Debug_Engine.uasset differ diff --git a/Source/CogSample/CogSampleCharacter.cpp b/Source/CogSample/CogSampleCharacter.cpp index a74b44c..9a24d42 100644 --- a/Source/CogSample/CogSampleCharacter.cpp +++ b/Source/CogSample/CogSampleCharacter.cpp @@ -292,6 +292,7 @@ void ACogSampleCharacter::RegisterToAbilitySystemEvents() // Register to Tag change events //---------------------------------------- GhostTagDelegateHandle = AbilitySystem->RegisterGameplayTagEvent(Tag_Status_Ghost, EGameplayTagEventType::NewOrRemoved).AddUObject(this, &ACogSampleCharacter::OnGhostTagNewOrRemoved); + GhostTagDelegateHandle = AbilitySystem->RegisterGameplayTagEvent(Tag_Status_Invisible, EGameplayTagEventType::NewOrRemoved).AddUObject(this, &ACogSampleCharacter::OnInvisibleTagNewOrRemoved); //---------------------------------------- // Register to Attribute change events @@ -323,6 +324,7 @@ void ACogSampleCharacter::UnregisterFromAbilitySystemEvents() // Unregister to Tags events //---------------------------------------- AbilitySystem->UnregisterGameplayTagEvent(GhostTagDelegateHandle, Tag_Status_Ghost, EGameplayTagEventType::NewOrRemoved); + AbilitySystem->UnregisterGameplayTagEvent(GhostTagDelegateHandle, Tag_Status_Invisible, EGameplayTagEventType::NewOrRemoved); //---------------------------------------- // Unregister to GameplayEffect events @@ -687,6 +689,20 @@ void ACogSampleCharacter::OnGhostTagNewOrRemoved(const FGameplayTag InTag, int32 #endif //UE_WITH_CHEAT_MANAGER } + +// ---------------------------------------------------------------------------------------------------------------- +void ACogSampleCharacter::OnInvisibleTagNewOrRemoved(const FGameplayTag InTag, int32 NewCount) +{ +#if UE_WITH_CHEAT_MANAGER + + check(InTag == Tag_Status_Invisible); + + bool bHasInvisibleTags = NewCount > 0; + SetActorHiddenInGame(bHasInvisibleTags); + +#endif //UE_WITH_CHEAT_MANAGER +} + //-------------------------------------------------------------------------------------------------------------------------- void ACogSampleCharacter::OnScaleAttributeChanged(const FOnAttributeChangeData& Data) { diff --git a/Source/CogSample/CogSampleCharacter.h b/Source/CogSample/CogSampleCharacter.h index 0d4d6ce..594c15d 100644 --- a/Source/CogSample/CogSampleCharacter.h +++ b/Source/CogSample/CogSampleCharacter.h @@ -338,6 +338,8 @@ protected: void OnGhostTagNewOrRemoved(const FGameplayTag InTag, int32 NewCount); + void OnInvisibleTagNewOrRemoved(const FGameplayTag InTag, int32 NewCount); + void OnScaleAttributeChanged(const FOnAttributeChangeData& Data); void UpdateActiveAbilitySlots(); diff --git a/Source/CogSample/CogSampleFunctionLibrary_Tag.cpp b/Source/CogSample/CogSampleFunctionLibrary_Tag.cpp index 3135fae..e14d315 100644 --- a/Source/CogSample/CogSampleFunctionLibrary_Tag.cpp +++ b/Source/CogSample/CogSampleFunctionLibrary_Tag.cpp @@ -39,6 +39,7 @@ UE_DEFINE_GAMEPLAY_TAG(Tag_GameplayCue_DamageReceived, "GameplayCue.DamageReceiv UE_DEFINE_GAMEPLAY_TAG(Tag_Status_Dead, "Status.Dead"); UE_DEFINE_GAMEPLAY_TAG(Tag_Status_Ghost, "Status.Ghost"); UE_DEFINE_GAMEPLAY_TAG(Tag_Status_Immobilized, "Status.Immobilized"); +UE_DEFINE_GAMEPLAY_TAG(Tag_Status_Invisible, "Status.Invisible"); UE_DEFINE_GAMEPLAY_TAG(Tag_Status_Immune_Damage, "Status.Immune.Damage"); UE_DEFINE_GAMEPLAY_TAG(Tag_Status_Revived, "Status.Revived"); UE_DEFINE_GAMEPLAY_TAG(Tag_Status_Silenced, "Status.Silenced"); diff --git a/Source/CogSample/CogSampleFunctionLibrary_Tag.h b/Source/CogSample/CogSampleFunctionLibrary_Tag.h index d4808db..a6ae167 100644 --- a/Source/CogSample/CogSampleFunctionLibrary_Tag.h +++ b/Source/CogSample/CogSampleFunctionLibrary_Tag.h @@ -42,6 +42,7 @@ UE_DECLARE_GAMEPLAY_TAG_EXTERN(Tag_Status_Dead); UE_DECLARE_GAMEPLAY_TAG_EXTERN(Tag_Status_Ghost); UE_DECLARE_GAMEPLAY_TAG_EXTERN(Tag_Status_Immobilized); UE_DECLARE_GAMEPLAY_TAG_EXTERN(Tag_Status_Immune_Damage); +UE_DECLARE_GAMEPLAY_TAG_EXTERN(Tag_Status_Invisible); UE_DECLARE_GAMEPLAY_TAG_EXTERN(Tag_Status_NoCooldown); UE_DECLARE_GAMEPLAY_TAG_EXTERN(Tag_Status_NoCost); UE_DECLARE_GAMEPLAY_TAG_EXTERN(Tag_Status_Revived);