diff --git a/Content/Character/BP_Folder/BP_DefaultPlayerCharacter.uasset b/Content/Character/BP_Folder/BP_DefaultPlayerCharacter.uasset index c02ef1e..409de82 100644 --- a/Content/Character/BP_Folder/BP_DefaultPlayerCharacter.uasset +++ b/Content/Character/BP_Folder/BP_DefaultPlayerCharacter.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:724dccb566fa7e134412ca13ea575939f52f9cd2298c3e6443adce92ec831911 -size 60911 +oid sha256:4488490e103b01aef77a20f21e31c8306966f10455e91460afe87da337718754 +size 59842 diff --git a/Content/Character/Lb/Animation/Treasure_Attack1_Anim.uasset b/Content/Character/Lb/Animation/Treasure_Attack1_Anim.uasset index 8db8167..f757a61 100644 --- a/Content/Character/Lb/Animation/Treasure_Attack1_Anim.uasset +++ b/Content/Character/Lb/Animation/Treasure_Attack1_Anim.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:20ed827aa687771ca741b63e5234e8853d4689ee0f85662dafca9f658bd0d057 -size 143142 +oid sha256:a91864ef5ec5faced4df2eb509c700788d5893295d91f60e27cf67eeb7d09fe0 +size 144533 diff --git a/Content/Character/Lb/BP_Lb.uasset b/Content/Character/Lb/BP_Lb.uasset index 9dc7bd5..344aeaa 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:05afb776797fc130d45f19c0344c12ff41743d0454e5cbbe9f4564192c2e8744 -size 192437 +oid sha256:f2e72d6cf335fed09d9c92fff5a648a1b5ef2debabe84ec73f2063b63407d390 +size 220304 diff --git a/Content/Maps/DevMap.umap b/Content/Maps/DevMap.umap index 8f15050..c1797b4 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:1e54e50e895cbaf9d2d2520224d0026554f3d36beb6e9cfa534a86d1aaca3cf9 +oid sha256:cf14774080aa2fa29eb41d8f11b933d1eeacafb59d20e81c8828918efe7f799f size 115131 diff --git a/Source/Promether/PlayerGeneric/DefaultPlayerController.cpp b/Source/Promether/PlayerGeneric/DefaultPlayerController.cpp index b7c32a1..111935d 100644 --- a/Source/Promether/PlayerGeneric/DefaultPlayerController.cpp +++ b/Source/Promether/PlayerGeneric/DefaultPlayerController.cpp @@ -249,6 +249,7 @@ void ADefaultPlayerController::Skill1() if (!(GetPlayerState()->Stats[(uint8)EStats::Mana] >= GetPlayerState()->Stats[(uint8)EStats::Skill1Cost])) return; + ACharacter* HitObject = nullptr; FVector Location = GetPawn()->GetActorLocation(); Location.Z = 0; @@ -268,6 +269,7 @@ void ADefaultPlayerController::Skill2() if (!(GetPlayerState()->Stats[(uint8)EStats::Mana] >= GetPlayerState()->Stats[(uint8)EStats::Skill2Cost])) return; + ACharacter* HitObject = nullptr; FVector Location = GetPawn()->GetActorLocation(); Location.Z = 0; @@ -287,6 +289,7 @@ void ADefaultPlayerController::Skill3() if (!(GetPlayerState()->Stats[(uint8)EStats::Mana] >= GetPlayerState()->Stats[(uint8)EStats::Skill3Cost])) return; + ACharacter* HitObject = nullptr; FVector Location = GetPawn()->GetActorLocation(); Location.Z = 0; @@ -306,6 +309,7 @@ void ADefaultPlayerController::Skill4Triggered() if (!(GetPlayerState()->Stats[(uint8)EStats::Mana] >= GetPlayerState()->Stats[(uint8)EStats::Skill4Cost])) return; + ACharacter* HitObject = nullptr; FVector Location = GetPawn()->GetActorLocation(); Location.Z = 0; @@ -379,12 +383,13 @@ void ADefaultPlayerController::Move() ObjectTypes.Add(UEngineTypes::ConvertToObjectType(ECollisionChannel::ECC_WorldStatic)); ObjectTypes.Add(UEngineTypes::ConvertToObjectType(ECollisionChannel::ECC_Pawn)); - GetHitResultUnderCursorForObjects(ObjectTypes, true, HitResult); - ACharacter* HitObject = Cast(HitResult.GetActor()); + GetHitResultUnderCursorForObjects(ObjectTypes, true, HitResult); + ACharacter* HitObject = Cast(HitResult.GetActor()); //¿ÀºêÁ§Æ®¸¦ °¡Á®¿Í HitCharactor¿¡ ÀúÀå<<ÃßÈÄ Àû ij¸¯ÅÍÀ϶§¸¸ ÀúÀåÀ¸·Î º¯°æÇؾßÇÔ - if (HitObject != nullptr) + if (HitObject != nullptr) //Áö±ÝÀº HitObject°¡ nullÀÌ ¾Æ´Ò °æ¿ì Attack()À» ½ÇÇàÇÏ´Â ÄÚµåÁö¸¸, HitObject°¡ Àû ij¸¯ÅÍÀÏ ¶§ ½ÇÇàÀ¸·Î º¯°æÇؾßÇÔ { - Attack(HitObject); + + Attack(HitObject); //HitObject¸¦ ´ë»óÀ¸·Î Attack ½ÇÇà } else { @@ -566,34 +571,55 @@ void ADefaultPlayerController::OnMoveCompleted(FAIRequestID RequestID, const FPa void ADefaultPlayerController::Attack(ACharacter* HitObject) { - //¹Ýº¹¹®À¸·Î ¸¸µé¾î »ç¿ëÇϱâ - float MinDistance = 1000.0f; // ÃÖ¼Ò °Å¸®(Àӽà : ÃßÈÄ¿¡ ij¸¯ÅÍ »çÁ¤°Å¸® ¹Þ¾Æ¿Ã°Í) + + float MinDistance = GetPlayerState()->Stats[(uint8)EStats:: AttackRange]; + FVector Destination = HitObject->GetActorLocation(); // HitObjectÀÇ À§Ä¡¸¦ ¸ñÀûÁö·Î ¼³Á¤ + if (FVector::Dist(Destination, GetPawn()->GetActorLocation()) <= MinDistance) + { + if ((GetPlayerState()->CooldownDuration[(uint8)CooldownType::Attack] == 0)) + { + FVector Location = GetPawn()->GetActorLocation(); + Location.Z = 0; - FVector Destination = HitObject->GetActorLocation(); // HitObjectÀÇ À§Ä¡¸¦ ¸ñÀûÁö·Î ¼³Á¤ + Server_StopMove(); + Multicast_StopMove(); - if (FVector::Dist(Destination, GetPawn()->GetActorLocation()) <= MinDistance) - { - FVector Location = GetPawn()->GetActorLocation(); - Location.Z = 0; + Multicast_SetRotation(GetMouseHitLocation()); + Server_SetRotation(GetMouseHitLocation()); - Server_StopMove(); - Multicast_StopMove(); + UE_LOG(LogTemp, Warning, TEXT("Attack")); + GetPlayerState()->SetState(ECharacterState::Attack); + GetPlayerState()->SetAttackType(CooldownType::Attack); + } + else + { + FVector Location = GetPawn()->GetActorLocation(); + Location.Z = 0; - Multicast_SetRotation(GetMouseHitLocation()); - Server_SetRotation(GetMouseHitLocation()); + Server_StopMove(); + Multicast_StopMove(); - UE_LOG(LogTemp, Warning, TEXT("Attack")); - GetPlayerState()->SetState(ECharacterState::Attack); - GetPlayerState()->SetAttackType(CooldownType::Attack); - } - else - { - GetPlayerState()->SetState(ECharacterState::Moving); - SimpleMoveToLocation(this, Destination); - this->MoveToLocation(Destination); - } + Multicast_SetRotation(GetMouseHitLocation()); + Server_SetRotation(GetMouseHitLocation()); + UE_LOG(LogTemp, Warning, TEXT("Attack")); + GetPlayerState()->SetState(ECharacterState::Idle); + GetPlayerState()->SetAttackType(CooldownType::Attack); + } + } + else + { + GetPlayerState()->SetState(ECharacterState::Moving); + SimpleMoveToLocation(this, Destination); + + Destination = HitObject->GetActorLocation(); // HitObjectÀÇ À§Ä¡¸¦ ¸ñÀûÁö·Î ¼³Á¤ + this->MoveToLocation(Destination); + + + } + + } void ADefaultPlayerController::MoveToLocation_Implementation(FVector Location)