diff --git a/Content/Blueprints/Combat_UI/BookCombat_UI.uasset b/Content/Blueprints/Combat_UI/BookCombat_UI.uasset index 8e99704..769cd4f 100644 --- a/Content/Blueprints/Combat_UI/BookCombat_UI.uasset +++ b/Content/Blueprints/Combat_UI/BookCombat_UI.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ecfd07e9b330ccfe419588e7b9709078aef64367f41368bea4f52c5d310bb5fb -size 117245 +oid sha256:0030dacfde336e729232b84b34bfa39e6b12baeeadedf973edcccfdbcf27d672 +size 120732 diff --git a/Source/the_twilight_abyss/TurnBasedCombatV2/TurnBaseCombatV2.cpp b/Source/the_twilight_abyss/TurnBasedCombatV2/TurnBaseCombatV2.cpp index 58cd163..ae699e5 100644 --- a/Source/the_twilight_abyss/TurnBasedCombatV2/TurnBaseCombatV2.cpp +++ b/Source/the_twilight_abyss/TurnBasedCombatV2/TurnBaseCombatV2.cpp @@ -36,6 +36,8 @@ void ATurnBaseCombatV2::StartCombat(AActor* Enemy) { if (Enemy == nullptr) return; if (bIsInCombat) return; + EscapePercentage = CalculateEscapePercentage(); + EscapePercentageTextBlock->SetText(FText::Join(FText::FromString(""), FText::FromString(FString::FromInt(EscapePercentage * 100)), FText::FromString("%"))); const FVector2D ViewportSize = FVector2D(GEngine->GameViewport->Viewport->GetSizeXY()); GetWorld()->GetFirstPlayerController()->SetMouseLocation(ViewportSize.X / 2, ViewportSize.Y / 2); bIsInCombat = true; @@ -99,6 +101,7 @@ void ATurnBaseCombatV2::StartCombat(AActor* Enemy) void ATurnBaseCombatV2::EndCombat() { const FVector2D ViewportSize = FVector2D(GEngine->GameViewport->Viewport->GetSizeXY()); + TurnIndicatorTextBlock->SetText(FText::FromString("")); GetWorld()->GetFirstPlayerController()->SetMouseLocation(ViewportSize.X / 2, ViewportSize.Y / 2); bEnemyHasExtraTurn = false; bPlayerHasExtraTurn = false; @@ -143,11 +146,12 @@ void ATurnBaseCombatV2::BeginPlay() PlayerWidget->InitWidget(); BookHUD = PlayerWidget->GetWidget(); - TurnIndicatorTextBlock = Cast(HUD->GetWidgetFromName("TurnIndicator")); + TurnIndicatorTextBlock = Cast(BookHUD->GetWidgetFromName("TurnIndicator")); CurrentComboTextBlock = Cast(BookHUD->GetWidgetFromName("CurrentCombo")); CurrentComboTextBlock1 = Cast(BookHUD->GetWidgetFromName("CurrentCombo_1")); CurrentComboTextBlock2 = Cast(BookHUD->GetWidgetFromName("CurrentCombo_2")); BattleLogTextBlock = Cast(HUD->GetWidgetFromName("BattleLog")); + EscapePercentageTextBlock = Cast(BookHUD->GetWidgetFromName("EscapePercentage_Text")); PlayerHealthBar = Cast(BookHUD->GetWidgetFromName("PlayerHealthBar")); EnemyHealthBar = Cast(HUD->GetWidgetFromName("EnemyHealthBar")); ProbertiumResourceBar = Cast(BookHUD->GetWidgetFromName("ProbertiumResourceBar")); @@ -306,6 +310,11 @@ void ATurnBaseCombatV2::UpdateProgressBars() const EnemyHealthBar->SetPercent(*EnemyHealth / 100.0f); } +float ATurnBaseCombatV2::CalculateEscapePercentage() const +{ + return FMath::RandRange(0.1f, 0.9f); +} + bool ATurnBaseCombatV2::IsValidCombo(const FString Combo) const { return ValidCombos.Contains(Combo); @@ -412,7 +421,6 @@ void ATurnBaseCombatV2::IButtonOnClick() void ATurnBaseCombatV2::BackspaceButtonOnClick() { - if (CurrentComboString.Len() <= 0) { GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TEXT("Blank Combo")); @@ -466,8 +474,15 @@ void ATurnBaseCombatV2::BackspaceButtonOnClick() void ATurnBaseCombatV2::RunButtonOnClick() { + if (FMath::RandRange(0.0f, 1.0f) >= EscapePercentage) + { + EscapePercentage = CalculateEscapePercentage(); + EscapePercentageTextBlock->SetText(FText::Join(FText::FromString(""), FText::FromString(FString::FromInt(EscapePercentage * 100)), FText::FromString("%"))); + SwitchTurn(); + return; + } UBlackboardComponent* EnemyBlackboard = Cast(EnemyActor->GetInstigatorController())->GetBlackboardComponent(); - + EscapePercentageTextBlock->SetText(FText::Join(FText::FromString(""), FText::FromString("--"), FText::FromString("%"))); EnemyBlackboard->SetValueAsBool("IsInCombat", false); EnemyBlackboard->SetValueAsBool("WasInCombat", true); EndCombat(); diff --git a/Source/the_twilight_abyss/TurnBasedCombatV2/TurnBaseCombatV2.h b/Source/the_twilight_abyss/TurnBasedCombatV2/TurnBaseCombatV2.h index 962c0f6..cc3446e 100644 --- a/Source/the_twilight_abyss/TurnBasedCombatV2/TurnBaseCombatV2.h +++ b/Source/the_twilight_abyss/TurnBasedCombatV2/TurnBaseCombatV2.h @@ -128,6 +128,9 @@ protected: bool bPlayerHasExtraTurn = false; bool bEnemyHasExtraTurn = false; + float EscapePercentage = 0.0f; + float CalculateEscapePercentage() const; + private: bool IsValidCombo(FString Combo) const; bool IsSpecialCombo(FString Combo) const; @@ -158,6 +161,8 @@ private: UTextBlock* CurrentComboTextBlock2; UPROPERTY(VisibleAnywhere) UTextBlock* BattleLogTextBlock; + UPROPERTY(VisibleAnywhere) + UTextBlock* EscapePercentageTextBlock; UPROPERTY(VisibleAnywhere) UProgressBar* PlayerHealthBar;