2022-11-09 20:32:31 +00:00
|
|
|
// Fill out your copyright notice in the Description page of Project Settings.
|
|
|
|
|
|
|
|
|
|
|
|
#include "TurnBaseCombat.h"
|
2022-11-13 21:32:35 +00:00
|
|
|
|
|
|
|
#include "Blueprint/UserWidget.h"
|
2022-11-09 21:24:36 +00:00
|
|
|
#include "Kismet/GameplayStatics.h"
|
2022-11-09 20:32:31 +00:00
|
|
|
|
2022-11-13 21:32:35 +00:00
|
|
|
ATurnBaseCombat::ATurnBaseCombat()
|
|
|
|
{
|
|
|
|
if (HUDWidget == nullptr)
|
|
|
|
{
|
|
|
|
// Load the HUD widget from the specified path
|
|
|
|
static ConstructorHelpers::FClassFinder<UUserWidget> HUDWidgetClass(TEXT("/Game/Blueprints/Combat_UI/Combat_UI"));
|
|
|
|
HUDWidget = HUDWidgetClass.Class;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-11-09 20:32:31 +00:00
|
|
|
void ATurnBaseCombat::BeginPlay()
|
|
|
|
{
|
|
|
|
Super::BeginPlay();
|
2022-11-13 21:32:35 +00:00
|
|
|
|
2022-11-09 21:24:36 +00:00
|
|
|
TArray<AActor*> AllCharacterActorsInScene;
|
2022-11-13 21:32:35 +00:00
|
|
|
UGameplayStatics::GetAllActorsOfClassWithTag(GetWorld(), AActor::StaticClass(), FName("Character"),
|
|
|
|
AllCharacterActorsInScene);
|
|
|
|
ActiveActionPoints = DefaultActionPoints;
|
|
|
|
|
|
|
|
UUserWidget* HUD = CreateWidget<UUserWidget>(GetWorld(), HUDWidget);
|
|
|
|
HUD->AddToViewport();
|
2022-11-09 20:32:31 +00:00
|
|
|
}
|
|
|
|
|
2022-11-13 21:32:35 +00:00
|
|
|
void ATurnBaseCombat::UseActionPoint()
|
2022-11-09 20:32:31 +00:00
|
|
|
{
|
2022-11-13 21:32:35 +00:00
|
|
|
ActiveActionPoints -= 1;
|
|
|
|
ActiveActionPoints = FMath::Clamp(ActiveActionPoints, 0, DefaultActionPoints);
|
2022-11-09 21:03:47 +00:00
|
|
|
}
|
|
|
|
|
2022-11-13 21:32:35 +00:00
|
|
|
void ATurnBaseCombat::ReuseActionPoint()
|
2022-11-09 21:03:47 +00:00
|
|
|
{
|
2022-11-13 21:32:35 +00:00
|
|
|
ActiveActionPoints += 1;
|
|
|
|
ActiveActionPoints = FMath::Clamp(ActiveActionPoints, 0, DefaultActionPoints);
|
2022-11-09 20:32:31 +00:00
|
|
|
}
|
|
|
|
|
2022-11-13 21:32:35 +00:00
|
|
|
void ATurnBaseCombat::RevertActionPoints()
|
2022-11-09 20:32:31 +00:00
|
|
|
{
|
2022-11-13 21:32:35 +00:00
|
|
|
ActiveActionPoints = DefaultActionPoints;
|
2022-11-09 20:32:31 +00:00
|
|
|
}
|
|
|
|
|
2022-11-13 21:32:35 +00:00
|
|
|
void ATurnBaseCombat::SwitchTurn()
|
2022-11-09 21:03:47 +00:00
|
|
|
{
|
2022-11-13 21:32:35 +00:00
|
|
|
activeActor = bIsPlayerTurn ? enemyActor : playerActor;
|
2022-11-09 21:03:47 +00:00
|
|
|
}
|