diff --git a/Content/Blueprints/Combat_UI/CombatCharacter.uasset b/Content/Blueprints/Combat_UI/CombatCharacter.uasset index 6078475..b19748d 100644 --- a/Content/Blueprints/Combat_UI/CombatCharacter.uasset +++ b/Content/Blueprints/Combat_UI/CombatCharacter.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:53c111471c3a161fb4ed5408ebeac5cfca08d224652308dbb07cac6d7b829d6b -size 76303 +oid sha256:64720f00ad671bcc7f35bcd686f276bb22050ef02657b39eb677d6dea4ca0940 +size 73128 diff --git a/Source/the_twilight_abyss/BaseItems/Items/EatableItems.cpp b/Source/the_twilight_abyss/BaseItems/Items/EatableItems.cpp index c1779aa..0263e9a 100644 --- a/Source/the_twilight_abyss/BaseItems/Items/EatableItems.cpp +++ b/Source/the_twilight_abyss/BaseItems/Items/EatableItems.cpp @@ -26,7 +26,7 @@ void UEatableItems::Use(ATempCharacter* Character) UE_LOG(LogTemp, Display, TEXT("Healed")); Character->Inventory->RemoveItem(this);*/ - UStatusSystem* StatusSystem = Cast(Character); + UStatusSystem* StatusSystem = Character->FindComponentByClass(); StatusSystem->AddStatusEffect(NewObject(this, HealOverTimeStatusEffect)); } else if (Character->Health >= 100) diff --git a/Source/the_twilight_abyss/TurnBasedCombatV2/StatusSystem.cpp b/Source/the_twilight_abyss/TurnBasedCombatV2/StatusSystem.cpp index 26aa16b..0a4432a 100644 --- a/Source/the_twilight_abyss/TurnBasedCombatV2/StatusSystem.cpp +++ b/Source/the_twilight_abyss/TurnBasedCombatV2/StatusSystem.cpp @@ -14,14 +14,10 @@ UStatusSystem::UStatusSystem() // Set this component to be initialized when the game starts, and to be ticked every frame. You can turn these features // off to improve performance if you don't need them. PrimaryComponentTick.bCanEverTick = true; - - if (HUDStatusIndicatorsWidget != nullptr) - { - static ConstructorHelpers::FClassFinder HUDStatusIndicatorsWidgetClassFinder(TEXT("/Game/Blueprints/Status_UI/StatusIndicator")); - HUDStatusIndicatorsWidget = HUDStatusIndicatorsWidgetClassFinder.Class; - static ConstructorHelpers::FClassFinder HUDStatusIconWidgetClassFinder(TEXT("/Game/Blueprints/Status_UI/StatusIcon")); - HUDStatusIconWidget = HUDStatusIconWidgetClassFinder.Class; - } + static ConstructorHelpers::FClassFinder HUDStatusIndicatorsWidgetClassFinder(TEXT("/Game/Blueprints/Status_UI/StatusIndicator")); + HUDStatusIndicatorsWidget = HUDStatusIndicatorsWidgetClassFinder.Class; + static ConstructorHelpers::FClassFinder HUDStatusIconWidgetClassFinder(TEXT("/Game/Blueprints/Status_UI/StatusIcon")); + HUDStatusIconWidget = HUDStatusIconWidgetClassFinder.Class; } @@ -43,17 +39,19 @@ void UStatusSystem::TickComponent(float DeltaTime, ELevelTick TickType, FActorCo for (FActiveStatusEffect ActiveStatusEffect : ActiveStatusEffects) { + UE_LOG(LogTemp, Warning, TEXT("TimeTillExpiry: %f"), UGameplayStatics::GetRealTimeSeconds(GetWorld()) - ActiveStatusEffect.TimeTillExpiry); if (ActiveStatusEffect.TimeTillExpiry >= UGameplayStatics::GetRealTimeSeconds(GetWorld())) { ActiveStatusEffect.StatusEffect->OnExpiry(GetOwner()); ActiveStatusEffects.Remove(ActiveStatusEffect); + ActiveStatusEffect.StatusIcon->RemoveFromParent(); } } } void UStatusSystem::AddStatusEffect(UStatusEffect* StatusEffect, const float DurationMultiplier) { - FActiveStatusEffect NewStatusEffect{}; + FActiveStatusEffect NewStatusEffect; NewStatusEffect.StatusEffect = StatusEffect; NewStatusEffect.TimeInitiated = UGameplayStatics::GetRealTimeSeconds(GetWorld()); NewStatusEffect.TimeTillExpiry = UGameplayStatics::GetRealTimeSeconds(GetWorld()) + StatusEffect->BaseDuration * DurationMultiplier;