Updated BookUI to Display Turn State and Escape Percentage
This commit is contained in:
parent
32e65e3f47
commit
cf2a198c3e
BIN
Content/Blueprints/Combat_UI/BookCombat_UI.uasset
(Stored with Git LFS)
BIN
Content/Blueprints/Combat_UI/BookCombat_UI.uasset
(Stored with Git LFS)
Binary file not shown.
@ -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<UTextBlock>(HUD->GetWidgetFromName("TurnIndicator"));
|
||||
TurnIndicatorTextBlock = Cast<UTextBlock>(BookHUD->GetWidgetFromName("TurnIndicator"));
|
||||
CurrentComboTextBlock = Cast<UTextBlock>(BookHUD->GetWidgetFromName("CurrentCombo"));
|
||||
CurrentComboTextBlock1 = Cast<UTextBlock>(BookHUD->GetWidgetFromName("CurrentCombo_1"));
|
||||
CurrentComboTextBlock2 = Cast<UTextBlock>(BookHUD->GetWidgetFromName("CurrentCombo_2"));
|
||||
BattleLogTextBlock = Cast<UTextBlock>(HUD->GetWidgetFromName("BattleLog"));
|
||||
EscapePercentageTextBlock = Cast<UTextBlock>(BookHUD->GetWidgetFromName("EscapePercentage_Text"));
|
||||
PlayerHealthBar = Cast<UProgressBar>(BookHUD->GetWidgetFromName("PlayerHealthBar"));
|
||||
EnemyHealthBar = Cast<UProgressBar>(HUD->GetWidgetFromName("EnemyHealthBar"));
|
||||
ProbertiumResourceBar = Cast<UProgressBar>(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<AAIController>(EnemyActor->GetInstigatorController())->GetBlackboardComponent();
|
||||
|
||||
EscapePercentageTextBlock->SetText(FText::Join(FText::FromString(""), FText::FromString("--"), FText::FromString("%")));
|
||||
EnemyBlackboard->SetValueAsBool("IsInCombat", false);
|
||||
EnemyBlackboard->SetValueAsBool("WasInCombat", true);
|
||||
EndCombat();
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user