Merge branch 'HappyTanuki' into develop

This commit is contained in:
2023-10-03 21:41:12 +09:00
8 changed files with 91 additions and 10 deletions

Binary file not shown.

BIN
Content/Character/Lb/BP_Lb.uasset (Stored with Git LFS)

Binary file not shown.

BIN
Content/Maps/DevMap.umap (Stored with Git LFS)

Binary file not shown.

View File

@@ -233,6 +233,17 @@ void ADefaultPlayerController::SetupInputComponent()
void ADefaultPlayerController::Skill1() void ADefaultPlayerController::Skill1()
{ {
//if (!(GetPlayerState<ADefaultPlayerState>()->Stats.Mana >= 100))
// return;
FVector Location = GetPawn()->GetActorLocation();
Location.Z = 0;
SimpleMoveToLocation(this, Location);
this->MoveToLocation(Location);
GetPawn()->SetActorRotation((GetMouseHitLocation() - Location).Rotation());
UE_LOG(LogTemp, Warning, TEXT("Skill1")); UE_LOG(LogTemp, Warning, TEXT("Skill1"));
GetPlayerState<ADefaultPlayerState>()->SetState(ECharacterState::Attack); GetPlayerState<ADefaultPlayerState>()->SetState(ECharacterState::Attack);
GetPlayerState<ADefaultPlayerState>()->SetAttackType(CooldownType::Skill1); GetPlayerState<ADefaultPlayerState>()->SetAttackType(CooldownType::Skill1);
@@ -240,6 +251,14 @@ void ADefaultPlayerController::Skill1()
void ADefaultPlayerController::Skill2() void ADefaultPlayerController::Skill2()
{ {
FVector Location = GetPawn()->GetActorLocation();
Location.Z = 0;
SimpleMoveToLocation(this, Location);
this->MoveToLocation(Location);
GetPawn()->SetActorRotation((GetMouseHitLocation() - Location).Rotation());
UE_LOG(LogTemp, Warning, TEXT("Skill2")); UE_LOG(LogTemp, Warning, TEXT("Skill2"));
GetPlayerState<ADefaultPlayerState>()->SetState(ECharacterState::Attack); GetPlayerState<ADefaultPlayerState>()->SetState(ECharacterState::Attack);
GetPlayerState<ADefaultPlayerState>()->SetAttackType(CooldownType::Skill2); GetPlayerState<ADefaultPlayerState>()->SetAttackType(CooldownType::Skill2);
@@ -247,6 +266,14 @@ void ADefaultPlayerController::Skill2()
void ADefaultPlayerController::Skill3() void ADefaultPlayerController::Skill3()
{ {
FVector Location = GetPawn()->GetActorLocation();
Location.Z = 0;
SimpleMoveToLocation(this, Location);
this->MoveToLocation(Location);
GetPawn()->SetActorRotation((GetMouseHitLocation() - Location).Rotation());
UE_LOG(LogTemp, Warning, TEXT("Skill3")); UE_LOG(LogTemp, Warning, TEXT("Skill3"));
GetPlayerState<ADefaultPlayerState>()->SetState(ECharacterState::Attack); GetPlayerState<ADefaultPlayerState>()->SetState(ECharacterState::Attack);
GetPlayerState<ADefaultPlayerState>()->SetAttackType(CooldownType::Skill3); GetPlayerState<ADefaultPlayerState>()->SetAttackType(CooldownType::Skill3);
@@ -254,9 +281,17 @@ void ADefaultPlayerController::Skill3()
void ADefaultPlayerController::Skill4() void ADefaultPlayerController::Skill4()
{ {
FVector Location = GetPawn()->GetActorLocation();
Location.Z = 0;
SimpleMoveToLocation(this, Location);
this->MoveToLocation(Location);
GetPawn()->SetActorRotation((GetMouseHitLocation() - Location).Rotation());
UE_LOG(LogTemp, Warning, TEXT("Skill4")); UE_LOG(LogTemp, Warning, TEXT("Skill4"));
GetPlayerState<ADefaultPlayerState>()->SetState(ECharacterState::Attack); GetPlayerState<ADefaultPlayerState>()->SetState(ECharacterState::Attack);
GetPlayerState<ADefaultPlayerState>()->SetAttackType(CooldownType::Skill4); GetPlayerState<ADefaultPlayerState>()->SetAttackType(CooldownType::Skill4Started);
} }
void ADefaultPlayerController::RuneSpell1() void ADefaultPlayerController::RuneSpell1()
@@ -314,6 +349,15 @@ void ADefaultPlayerController::MoveStarted()
} }
void ADefaultPlayerController::Move() void ADefaultPlayerController::Move()
{
FVector Destination = GetMouseHitLocation();
GetPlayerState<ADefaultPlayerState>()->SetState(ECharacterState::Moving);
SimpleMoveToLocation(this, Destination);
this->MoveToLocation(Destination);
}
FVector ADefaultPlayerController::GetMouseHitLocation()
{ {
FHitResult HitResult; FHitResult HitResult;
GetHitResultUnderCursor(ECollisionChannel::ECC_Visibility, true, HitResult); GetHitResultUnderCursor(ECollisionChannel::ECC_Visibility, true, HitResult);
@@ -325,6 +369,7 @@ void ADefaultPlayerController::Move()
ActorLocation.Z = 0; ActorLocation.Z = 0;
float CapsuleRadius = GetPawn<ACharacter>()->GetCapsuleComponent()->GetScaledCapsuleRadius(); float CapsuleRadius = GetPawn<ACharacter>()->GetCapsuleComponent()->GetScaledCapsuleRadius();
FVector Destination = (HitResult.Location - ActorLocation).GetSafeNormal() * CapsuleRadius + HitResult.Location; FVector Destination = (HitResult.Location - ActorLocation).GetSafeNormal() * CapsuleRadius + HitResult.Location;
DrawDebugLine(GetWorld(), ActorLocation, HitResult.Location, FColor::Blue, false, 1, 0, 1); DrawDebugLine(GetWorld(), ActorLocation, HitResult.Location, FColor::Blue, false, 1, 0, 1);
@@ -348,9 +393,7 @@ void ADefaultPlayerController::Move()
} }
} }
GetPlayerState<ADefaultPlayerState>()->SetState(ECharacterState::Moving); return Destination;
SimpleMoveToLocation(this, Destination);
this->MoveToLocation(Destination);
} }
void ADefaultPlayerController::SimpleMoveToLocation(AController* Controller, const FVector& GoalLocation) void ADefaultPlayerController::SimpleMoveToLocation(AController* Controller, const FVector& GoalLocation)

View File

@@ -47,6 +47,8 @@ public:
UFUNCTION(Server, Reliable) UFUNCTION(Server, Reliable)
void MoveToLocation(FVector Location); void MoveToLocation(FVector Location);
FVector GetMouseHitLocation();
UFUNCTION(BlueprintCallable, Category = "AI|Navigation") UFUNCTION(BlueprintCallable, Category = "AI|Navigation")
void SimpleMoveToLocation(AController* Controller, const FVector& Goal); void SimpleMoveToLocation(AController* Controller, const FVector& Goal);

View File

@@ -0,0 +1,6 @@
// Fill out your copyright notice in the Description page of Project Settings.
#include "PerformSkill.h"
// Add default functionality here for any IPerformSkill functions that are not pure virtual.

View File

@@ -0,0 +1,28 @@
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "UObject/Interface.h"
#include "PerformSkill.generated.h"
// This class does not need to be modified.
UINTERFACE(MinimalAPI)
class UPerformSkill : public UInterface
{
GENERATED_BODY()
};
/**
*
*/
class PROMETHER_API IPerformSkill
{
GENERATED_BODY()
// Add interface functions to this class. This is the class that will be inherited to implement this interface.
public:
virtual void Skill4Started() = 0;
virtual void Skill4Triggered() = 0;
virtual void Skill4Completed() = 0;
};

View File

@@ -36,7 +36,9 @@ enum class CooldownType : uint8
Skill1, Skill1,
Skill2, Skill2,
Skill3, Skill3,
Skill4, Skill4Started,
Skill4Triggered,
Skill4Comlpleted,
RuneSpell1, RuneSpell1,
RuneSpell2, RuneSpell2,
Ward, Ward,