diff --git a/Content/Character/Lb/Animation/ABP_Lb.uasset b/Content/Character/Lb/Animation/ABP_Lb.uasset index df4122c..7608da2 100644 --- a/Content/Character/Lb/Animation/ABP_Lb.uasset +++ b/Content/Character/Lb/Animation/ABP_Lb.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2a25a592d826825d1d3b4bac2adab7cd96a99a926a53db64b45b955d529e9d3f -size 263503 +oid sha256:af6cb9237f08342613ad4d82d44cd4691193b8a19a22d6c731ffca4fe3f71a5a +size 288811 diff --git a/Content/Character/Lb/BP_Lb.uasset b/Content/Character/Lb/BP_Lb.uasset index b8b2dbc..592916e 100644 --- a/Content/Character/Lb/BP_Lb.uasset +++ b/Content/Character/Lb/BP_Lb.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fb4ac8c87b1fc6b97f11da1e4c96955ec7cc478b87821469a132e17d99894a25 -size 109032 +oid sha256:4333582ec21603e00a3b2e40c45435c9021d66acb90c0aa972003751ae2bc254 +size 105236 diff --git a/Content/Character/Monster/Golem/Animation/Golem_Attack1_L_얼굴_RetopoFlow_Anim.uasset b/Content/Character/Monster/Golem/Animation/Golem_Attack1_L_얼굴_RetopoFlow_Anim.uasset new file mode 100644 index 0000000..5613625 --- /dev/null +++ b/Content/Character/Monster/Golem/Animation/Golem_Attack1_L_얼굴_RetopoFlow_Anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9651f044441d1204471c66dd322e698334352ba990125c97e86d8b343043d8e9 +size 123750 diff --git a/Content/Character/Monster/Golem/Animation/Golem_Attack1_R_얼굴_RetopoFlow_Anim.uasset b/Content/Character/Monster/Golem/Animation/Golem_Attack1_R_얼굴_RetopoFlow_Anim.uasset new file mode 100644 index 0000000..21dc50c --- /dev/null +++ b/Content/Character/Monster/Golem/Animation/Golem_Attack1_R_얼굴_RetopoFlow_Anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69106f2527c84eccdd10b9285ac64c7ed4dc97d8e8aff6a32bb46b2fa95d2a5b +size 122964 diff --git a/Content/Character/Monster/Golem/Animation/Golem_Attack2_얼굴_RetopoFlow_Anim.uasset b/Content/Character/Monster/Golem/Animation/Golem_Attack2_얼굴_RetopoFlow_Anim.uasset new file mode 100644 index 0000000..75a293f --- /dev/null +++ b/Content/Character/Monster/Golem/Animation/Golem_Attack2_얼굴_RetopoFlow_Anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a54853a998fbe7b11b8bd0672f15357aefa5babbc0ddc1894edc52182e00bd99 +size 122638 diff --git a/Content/Character/Monster/Golem/Animation/Golem_Idel_Anim.uasset b/Content/Character/Monster/Golem/Animation/Golem_Idel_Anim.uasset new file mode 100644 index 0000000..97ba984 --- /dev/null +++ b/Content/Character/Monster/Golem/Animation/Golem_Idel_Anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3b2ecd047001ad4ae1be1377264d29f9a4d668cae4209c227483169db70cbe3 +size 167839 diff --git a/Content/Character/Monster/Golem/Animation/Golem_Regen1_Anim.uasset b/Content/Character/Monster/Golem/Animation/Golem_Regen1_Anim.uasset new file mode 100644 index 0000000..f556721 --- /dev/null +++ b/Content/Character/Monster/Golem/Animation/Golem_Regen1_Anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4fd4526af5dff5ba03c6267c9ee8d65a1eff4bef8d45113fc010c4e537839af1 +size 360617 diff --git a/Content/Character/Monster/Golem/Animation/Golem_Strong_Attack2_얼굴_RetopoFlow_Anim.uasset b/Content/Character/Monster/Golem/Animation/Golem_Strong_Attack2_얼굴_RetopoFlow_Anim.uasset new file mode 100644 index 0000000..0af4021 --- /dev/null +++ b/Content/Character/Monster/Golem/Animation/Golem_Strong_Attack2_얼굴_RetopoFlow_Anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4abbd5e396029254b2557a85e160a4631666396d85453a2223f27a1911ca7089 +size 163164 diff --git a/Content/Character/Monster/Golem/Animation/Golem_Strong_Attack3_얼굴_RetopoFlow_Anim.uasset b/Content/Character/Monster/Golem/Animation/Golem_Strong_Attack3_얼굴_RetopoFlow_Anim.uasset new file mode 100644 index 0000000..bcb3366 --- /dev/null +++ b/Content/Character/Monster/Golem/Animation/Golem_Strong_Attack3_얼굴_RetopoFlow_Anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5de4e81488a663c9c85760d6de0b69c76fffa95de0727e4d80aca960b8b4ebb2 +size 115790 diff --git a/Content/Character/Monster/Golem/Animation/Golem_Walking_얼굴_RetopoFlow_Anim.uasset b/Content/Character/Monster/Golem/Animation/Golem_Walking_얼굴_RetopoFlow_Anim.uasset new file mode 100644 index 0000000..6509c39 --- /dev/null +++ b/Content/Character/Monster/Golem/Animation/Golem_Walking_얼굴_RetopoFlow_Anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6685b9f4b085686907dbaed1f306d94a40e36c274017583f5c750ea82003f7ba +size 137814 diff --git a/Content/Character/Monster/Golem/Material/Material__0.uasset b/Content/Character/Monster/Golem/Material/Material__0.uasset new file mode 100644 index 0000000..4e1f464 --- /dev/null +++ b/Content/Character/Monster/Golem/Material/Material__0.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e71973e2d510656afe6bd8faacbcc197ae018db3f8817d86fc7b97bc9e02ff9f +size 11447 diff --git a/Content/Character/Monster/Golem/PhysicsAsset/Golem_Idel_PhysicsAsset.uasset b/Content/Character/Monster/Golem/PhysicsAsset/Golem_Idel_PhysicsAsset.uasset new file mode 100644 index 0000000..397bf19 --- /dev/null +++ b/Content/Character/Monster/Golem/PhysicsAsset/Golem_Idel_PhysicsAsset.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c48c0bbec236d853141f598aef0d26053cdf7cd51ae68f91b64a7ce5760f80be +size 51524 diff --git a/Content/Character/Monster/Golem/SkeletalMesh/Golem_Idel.uasset b/Content/Character/Monster/Golem/SkeletalMesh/Golem_Idel.uasset new file mode 100644 index 0000000..0567b1f --- /dev/null +++ b/Content/Character/Monster/Golem/SkeletalMesh/Golem_Idel.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9396cd2fd7eeceb3a65ffeaf3fa068e1d7dec54787cce19aa9303e05111d5a20 +size 4035154 diff --git a/Content/Character/Monster/Golem/Skeleton/Golem_Idel_Skeleton.uasset b/Content/Character/Monster/Golem/Skeleton/Golem_Idel_Skeleton.uasset new file mode 100644 index 0000000..e5d7946 --- /dev/null +++ b/Content/Character/Monster/Golem/Skeleton/Golem_Idel_Skeleton.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3eed25e8cda0be584aff5b1645d864e346849d3d2bf20f934a4a2444bdacd7d9 +size 17314 diff --git a/Content/Character/Monster/Golem/Texture/골렘_로우폴리곤_조립_01_-_Default_BaseColor.uasset b/Content/Character/Monster/Golem/Texture/골렘_로우폴리곤_조립_01_-_Default_BaseColor.uasset new file mode 100644 index 0000000..9bdeb31 --- /dev/null +++ b/Content/Character/Monster/Golem/Texture/골렘_로우폴리곤_조립_01_-_Default_BaseColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80da6cc373b7208a402d9739d568329029a65fac995dda4fad803e060fa82c78 +size 21675485 diff --git a/Content/Maps/DevMap.umap b/Content/Maps/DevMap.umap index 2404469..25747db 100644 --- a/Content/Maps/DevMap.umap +++ b/Content/Maps/DevMap.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ac7da83d7b779f1b7ad2bc245f2034fec5d7919f3a74faaa2cf26b6ffe72cf12 +oid sha256:09c5c53a199a7602b7c34db2f1a33dd24dfb54c381cda29ed3b10b8175950004 size 181094 diff --git a/Content/StarterContent/Architecture/Floor_400x400.uasset b/Content/StarterContent/Architecture/Floor_400x400.uasset index 80155b1..c2a34af 100644 --- a/Content/StarterContent/Architecture/Floor_400x400.uasset +++ b/Content/StarterContent/Architecture/Floor_400x400.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:44357b5a4270d0cb911a98ae0a386edd55119db2b42bc103d9af18b60894dcc2 -size 15287 +oid sha256:4c0ecf0ac0702cc2bd355ec050232a61c49e10f102448efbeb735a51824adef6 +size 14948 diff --git a/Source/Promether/PlayerGeneric/DefaultPlayerController.cpp b/Source/Promether/PlayerGeneric/DefaultPlayerController.cpp index dd7f184..6e6e94b 100644 --- a/Source/Promether/PlayerGeneric/DefaultPlayerController.cpp +++ b/Source/Promether/PlayerGeneric/DefaultPlayerController.cpp @@ -233,6 +233,17 @@ void ADefaultPlayerController::SetupInputComponent() void ADefaultPlayerController::Skill1() { + //if (!(GetPlayerState()->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")); GetPlayerState()->SetState(ECharacterState::Attack); GetPlayerState()->SetAttackType(CooldownType::Skill1); @@ -240,6 +251,14 @@ void ADefaultPlayerController::Skill1() 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")); GetPlayerState()->SetState(ECharacterState::Attack); GetPlayerState()->SetAttackType(CooldownType::Skill2); @@ -247,6 +266,14 @@ void ADefaultPlayerController::Skill2() 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")); GetPlayerState()->SetState(ECharacterState::Attack); GetPlayerState()->SetAttackType(CooldownType::Skill3); @@ -254,9 +281,17 @@ void ADefaultPlayerController::Skill3() 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")); GetPlayerState()->SetState(ECharacterState::Attack); - GetPlayerState()->SetAttackType(CooldownType::Skill4); + GetPlayerState()->SetAttackType(CooldownType::Skill4Started); } void ADefaultPlayerController::RuneSpell1() @@ -314,6 +349,15 @@ void ADefaultPlayerController::MoveStarted() } void ADefaultPlayerController::Move() +{ + FVector Destination = GetMouseHitLocation(); + + GetPlayerState()->SetState(ECharacterState::Moving); + SimpleMoveToLocation(this, Destination); + this->MoveToLocation(Destination); +} + +FVector ADefaultPlayerController::GetMouseHitLocation() { FHitResult HitResult; GetHitResultUnderCursor(ECollisionChannel::ECC_Visibility, true, HitResult); @@ -325,6 +369,7 @@ void ADefaultPlayerController::Move() ActorLocation.Z = 0; float CapsuleRadius = GetPawn()->GetCapsuleComponent()->GetScaledCapsuleRadius(); + FVector Destination = (HitResult.Location - ActorLocation).GetSafeNormal() * CapsuleRadius + HitResult.Location; DrawDebugLine(GetWorld(), ActorLocation, HitResult.Location, FColor::Blue, false, 1, 0, 1); @@ -348,9 +393,7 @@ void ADefaultPlayerController::Move() } } - GetPlayerState()->SetState(ECharacterState::Moving); - SimpleMoveToLocation(this, Destination); - this->MoveToLocation(Destination); + return Destination; } void ADefaultPlayerController::SimpleMoveToLocation(AController* Controller, const FVector& GoalLocation) diff --git a/Source/Promether/PlayerGeneric/DefaultPlayerController.h b/Source/Promether/PlayerGeneric/DefaultPlayerController.h index 4b312bf..22d92c7 100644 --- a/Source/Promether/PlayerGeneric/DefaultPlayerController.h +++ b/Source/Promether/PlayerGeneric/DefaultPlayerController.h @@ -47,6 +47,8 @@ public: UFUNCTION(Server, Reliable) void MoveToLocation(FVector Location); + FVector GetMouseHitLocation(); + UFUNCTION(BlueprintCallable, Category = "AI|Navigation") void SimpleMoveToLocation(AController* Controller, const FVector& Goal); diff --git a/Source/Promether/PlayerGeneric/PerformSkill.cpp b/Source/Promether/PlayerGeneric/PerformSkill.cpp new file mode 100644 index 0000000..1d1dd9f --- /dev/null +++ b/Source/Promether/PlayerGeneric/PerformSkill.cpp @@ -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. diff --git a/Source/Promether/PlayerGeneric/PerformSkill.h b/Source/Promether/PlayerGeneric/PerformSkill.h new file mode 100644 index 0000000..ee6f11b --- /dev/null +++ b/Source/Promether/PlayerGeneric/PerformSkill.h @@ -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; +}; diff --git a/Source/Promether/PrometherEnum.h b/Source/Promether/PrometherEnum.h index 1fcc679..1fb193f 100644 --- a/Source/Promether/PrometherEnum.h +++ b/Source/Promether/PrometherEnum.h @@ -36,7 +36,9 @@ enum class CooldownType : uint8 Skill1, Skill2, Skill3, - Skill4, + Skill4Started, + Skill4Triggered, + Skill4Comlpleted, RuneSpell1, RuneSpell2, Ward,