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 (Enemy == nullptr) return;
|
||||||
if (bIsInCombat) 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());
|
const FVector2D ViewportSize = FVector2D(GEngine->GameViewport->Viewport->GetSizeXY());
|
||||||
GetWorld()->GetFirstPlayerController()->SetMouseLocation(ViewportSize.X / 2, ViewportSize.Y / 2);
|
GetWorld()->GetFirstPlayerController()->SetMouseLocation(ViewportSize.X / 2, ViewportSize.Y / 2);
|
||||||
bIsInCombat = true;
|
bIsInCombat = true;
|
||||||
@ -99,6 +101,7 @@ void ATurnBaseCombatV2::StartCombat(AActor* Enemy)
|
|||||||
void ATurnBaseCombatV2::EndCombat()
|
void ATurnBaseCombatV2::EndCombat()
|
||||||
{
|
{
|
||||||
const FVector2D ViewportSize = FVector2D(GEngine->GameViewport->Viewport->GetSizeXY());
|
const FVector2D ViewportSize = FVector2D(GEngine->GameViewport->Viewport->GetSizeXY());
|
||||||
|
TurnIndicatorTextBlock->SetText(FText::FromString(""));
|
||||||
GetWorld()->GetFirstPlayerController()->SetMouseLocation(ViewportSize.X / 2, ViewportSize.Y / 2);
|
GetWorld()->GetFirstPlayerController()->SetMouseLocation(ViewportSize.X / 2, ViewportSize.Y / 2);
|
||||||
bEnemyHasExtraTurn = false;
|
bEnemyHasExtraTurn = false;
|
||||||
bPlayerHasExtraTurn = false;
|
bPlayerHasExtraTurn = false;
|
||||||
@ -143,11 +146,12 @@ void ATurnBaseCombatV2::BeginPlay()
|
|||||||
PlayerWidget->InitWidget();
|
PlayerWidget->InitWidget();
|
||||||
BookHUD = PlayerWidget->GetWidget();
|
BookHUD = PlayerWidget->GetWidget();
|
||||||
|
|
||||||
TurnIndicatorTextBlock = Cast<UTextBlock>(HUD->GetWidgetFromName("TurnIndicator"));
|
TurnIndicatorTextBlock = Cast<UTextBlock>(BookHUD->GetWidgetFromName("TurnIndicator"));
|
||||||
CurrentComboTextBlock = Cast<UTextBlock>(BookHUD->GetWidgetFromName("CurrentCombo"));
|
CurrentComboTextBlock = Cast<UTextBlock>(BookHUD->GetWidgetFromName("CurrentCombo"));
|
||||||
CurrentComboTextBlock1 = Cast<UTextBlock>(BookHUD->GetWidgetFromName("CurrentCombo_1"));
|
CurrentComboTextBlock1 = Cast<UTextBlock>(BookHUD->GetWidgetFromName("CurrentCombo_1"));
|
||||||
CurrentComboTextBlock2 = Cast<UTextBlock>(BookHUD->GetWidgetFromName("CurrentCombo_2"));
|
CurrentComboTextBlock2 = Cast<UTextBlock>(BookHUD->GetWidgetFromName("CurrentCombo_2"));
|
||||||
BattleLogTextBlock = Cast<UTextBlock>(HUD->GetWidgetFromName("BattleLog"));
|
BattleLogTextBlock = Cast<UTextBlock>(HUD->GetWidgetFromName("BattleLog"));
|
||||||
|
EscapePercentageTextBlock = Cast<UTextBlock>(BookHUD->GetWidgetFromName("EscapePercentage_Text"));
|
||||||
PlayerHealthBar = Cast<UProgressBar>(BookHUD->GetWidgetFromName("PlayerHealthBar"));
|
PlayerHealthBar = Cast<UProgressBar>(BookHUD->GetWidgetFromName("PlayerHealthBar"));
|
||||||
EnemyHealthBar = Cast<UProgressBar>(HUD->GetWidgetFromName("EnemyHealthBar"));
|
EnemyHealthBar = Cast<UProgressBar>(HUD->GetWidgetFromName("EnemyHealthBar"));
|
||||||
ProbertiumResourceBar = Cast<UProgressBar>(BookHUD->GetWidgetFromName("ProbertiumResourceBar"));
|
ProbertiumResourceBar = Cast<UProgressBar>(BookHUD->GetWidgetFromName("ProbertiumResourceBar"));
|
||||||
@ -306,6 +310,11 @@ void ATurnBaseCombatV2::UpdateProgressBars() const
|
|||||||
EnemyHealthBar->SetPercent(*EnemyHealth / 100.0f);
|
EnemyHealthBar->SetPercent(*EnemyHealth / 100.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float ATurnBaseCombatV2::CalculateEscapePercentage() const
|
||||||
|
{
|
||||||
|
return FMath::RandRange(0.1f, 0.9f);
|
||||||
|
}
|
||||||
|
|
||||||
bool ATurnBaseCombatV2::IsValidCombo(const FString Combo) const
|
bool ATurnBaseCombatV2::IsValidCombo(const FString Combo) const
|
||||||
{
|
{
|
||||||
return ValidCombos.Contains(Combo);
|
return ValidCombos.Contains(Combo);
|
||||||
@ -412,7 +421,6 @@ void ATurnBaseCombatV2::IButtonOnClick()
|
|||||||
|
|
||||||
void ATurnBaseCombatV2::BackspaceButtonOnClick()
|
void ATurnBaseCombatV2::BackspaceButtonOnClick()
|
||||||
{
|
{
|
||||||
|
|
||||||
if (CurrentComboString.Len() <= 0)
|
if (CurrentComboString.Len() <= 0)
|
||||||
{
|
{
|
||||||
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TEXT("Blank Combo"));
|
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TEXT("Blank Combo"));
|
||||||
@ -466,8 +474,15 @@ void ATurnBaseCombatV2::BackspaceButtonOnClick()
|
|||||||
|
|
||||||
void ATurnBaseCombatV2::RunButtonOnClick()
|
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();
|
UBlackboardComponent* EnemyBlackboard = Cast<AAIController>(EnemyActor->GetInstigatorController())->GetBlackboardComponent();
|
||||||
|
EscapePercentageTextBlock->SetText(FText::Join(FText::FromString(""), FText::FromString("--"), FText::FromString("%")));
|
||||||
EnemyBlackboard->SetValueAsBool("IsInCombat", false);
|
EnemyBlackboard->SetValueAsBool("IsInCombat", false);
|
||||||
EnemyBlackboard->SetValueAsBool("WasInCombat", true);
|
EnemyBlackboard->SetValueAsBool("WasInCombat", true);
|
||||||
EndCombat();
|
EndCombat();
|
||||||
|
@ -128,6 +128,9 @@ protected:
|
|||||||
bool bPlayerHasExtraTurn = false;
|
bool bPlayerHasExtraTurn = false;
|
||||||
bool bEnemyHasExtraTurn = false;
|
bool bEnemyHasExtraTurn = false;
|
||||||
|
|
||||||
|
float EscapePercentage = 0.0f;
|
||||||
|
float CalculateEscapePercentage() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool IsValidCombo(FString Combo) const;
|
bool IsValidCombo(FString Combo) const;
|
||||||
bool IsSpecialCombo(FString Combo) const;
|
bool IsSpecialCombo(FString Combo) const;
|
||||||
@ -158,6 +161,8 @@ private:
|
|||||||
UTextBlock* CurrentComboTextBlock2;
|
UTextBlock* CurrentComboTextBlock2;
|
||||||
UPROPERTY(VisibleAnywhere)
|
UPROPERTY(VisibleAnywhere)
|
||||||
UTextBlock* BattleLogTextBlock;
|
UTextBlock* BattleLogTextBlock;
|
||||||
|
UPROPERTY(VisibleAnywhere)
|
||||||
|
UTextBlock* EscapePercentageTextBlock;
|
||||||
|
|
||||||
UPROPERTY(VisibleAnywhere)
|
UPROPERTY(VisibleAnywhere)
|
||||||
UProgressBar* PlayerHealthBar;
|
UProgressBar* PlayerHealthBar;
|
||||||
|
Loading…
Reference in New Issue
Block a user