From 326ae353d360aacd2d1eb932869242587ed51bef Mon Sep 17 00:00:00 2001 From: HappyTanuki Date: Sat, 7 Oct 2023 20:13:01 +0900 Subject: [PATCH] =?UTF-8?q?=ED=9A=8C=EC=A0=84=EB=B0=A9=ED=96=A5=20?= =?UTF-8?q?=EB=8F=99=EA=B8=B0=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Source/Promether/GameModeBase/Deathmatch.cpp | 2 +- .../PlayerGeneric/DefaultPlayerCharacter.h | 47 ++----------- .../PlayerGeneric/DefaultPlayerController.cpp | 68 +++++++----------- .../PlayerGeneric/DefaultPlayerController.h | 10 ++- .../PlayerGeneric/DefaultPlayerState.cpp | 69 ++++++++++--------- .../Promether/PlayerGeneric/PerformSkill.cpp | 6 -- Source/Promether/PlayerGeneric/PerformSkill.h | 28 -------- 7 files changed, 74 insertions(+), 156 deletions(-) delete mode 100644 Source/Promether/PlayerGeneric/PerformSkill.cpp delete mode 100644 Source/Promether/PlayerGeneric/PerformSkill.h diff --git a/Source/Promether/GameModeBase/Deathmatch.cpp b/Source/Promether/GameModeBase/Deathmatch.cpp index 8c6ea7e..db8175f 100644 --- a/Source/Promether/GameModeBase/Deathmatch.cpp +++ b/Source/Promether/GameModeBase/Deathmatch.cpp @@ -133,7 +133,7 @@ FString ADeathmatch::InitNewPlayer(APlayerController* NewPlayerController, const //DebugPerpose if (Type == CharacterType::Lukriel) { - Type = CharacterType::Allium; + Type = CharacterType::Lb; } if (Team == TeamType::Null) { diff --git a/Source/Promether/PlayerGeneric/DefaultPlayerCharacter.h b/Source/Promether/PlayerGeneric/DefaultPlayerCharacter.h index 9cfb097..f7d5601 100644 --- a/Source/Promether/PlayerGeneric/DefaultPlayerCharacter.h +++ b/Source/Promether/PlayerGeneric/DefaultPlayerCharacter.h @@ -89,47 +89,6 @@ public: UFUNCTION(NetMulticast, Reliable) void NetMulticast_Skill7(); - float GetHealth() const { return Health; } - float GetHPRegeneration() const { return HPRegeneration; } - float GetHealAndShieldpower() const { return HealAndShieldpower; } - float GetArmor() const { return Armor; } - float GetMagicResistance() const { return MagicResistance; } - float GetTenacity() const { return Tenacity; } - float GetSlowRisist() const { return SlowRisist; } - float GetAttackSpeed() const { return AttackSpeed; } - float GetAttackDamage() const { return AttackDamage; } - float GetAbilityPower() const { return AbilityPower; } - float GetCriticalStrikeChance() const { return CriticalStrikeChance; } - float GetCriticalStrikeDamage() const { return CriticalStrikeDamage; } - float GetArmorPenetration() const { return ArmorPenetration; } - float GetMagicPenetration() const { return MagicPenetration; } - float GetLifeSteal() const { return LifeSteal; } - float GetPhysicalVamp() const { return PhysicalVamp; } - float GetOmnivamp() const { return Omnivamp; } - float GetAbilityHaste() const { return AbilityHaste; } - const float* GetCooldownDuration() const { return CooldownDuration; } - float GetMana() const { return Mana; } - float GetManaRegeneration() const { return ManaRegeneration; } - float GetEnergy() const { return Energy; } - float GetEnergyRegeneration() const { return EnergyRegeneration; } - float GetAttackRange() const { return AttackRange; } - float GetMovementSpeed() const { return MovementSpeed; } - float GetGoldGeneration() const { return GoldGeneration; } - float GetAttackDamageGrowth() const { return AttackDamageGrowth; } - float GetAttackSpeedGrowth() const { return AttackSpeedGrowth; } - float GetArmorGrowth() const { return ArmorGrowth; } - float GetMagicResistanceGrowth() const { return MagicResistanceGrowth; } - float GetHealthGrowth() const { return HealthGrowth; } - float GetHealthRegenerationGrowth() const { return HealthRegenerationGrowth; } - float GetManaGrowth() const { return ManaGrowth; } - float GetManaRegenerationGrowth() const { return ManaRegenerationGrowth; } - -protected: - UPROPERTY(EditAnywhere) - USpringArmComponent* CameraSpringArm; - UPROPERTY(EditAnywhere) - UCameraComponent* Camera; - UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Stats|Defensive") float Health; UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Stats|Defensive") @@ -206,4 +165,10 @@ protected: float ManaGrowth; UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Stats|Increasing Statistics") float ManaRegenerationGrowth; + +protected: + UPROPERTY(EditAnywhere) + USpringArmComponent* CameraSpringArm; + UPROPERTY(EditAnywhere) + UCameraComponent* Camera; }; diff --git a/Source/Promether/PlayerGeneric/DefaultPlayerController.cpp b/Source/Promether/PlayerGeneric/DefaultPlayerController.cpp index 6e6e94b..10ac6d9 100644 --- a/Source/Promether/PlayerGeneric/DefaultPlayerController.cpp +++ b/Source/Promether/PlayerGeneric/DefaultPlayerController.cpp @@ -221,13 +221,13 @@ void ADefaultPlayerController::SetupInputComponent() EnhancedInputComponent->BindAction(Skill2Action.Get(), ETriggerEvent::Triggered, this, &ADefaultPlayerController::Skill2); EnhancedInputComponent->BindAction(Skill3Action.Get(), ETriggerEvent::Triggered, this, &ADefaultPlayerController::Skill3); EnhancedInputComponent->BindAction(Skill4Action.Get(), ETriggerEvent::Triggered, this, &ADefaultPlayerController::Skill4); + EnhancedInputComponent->BindAction(Skill4Action.Get(), ETriggerEvent::Completed, this, &ADefaultPlayerController::Skill4); EnhancedInputComponent->BindAction(RuneSpell1Action.Get(), ETriggerEvent::Triggered, this, &ADefaultPlayerController::RuneSpell1); EnhancedInputComponent->BindAction(RuneSpell2Action.Get(), ETriggerEvent::Triggered, this, &ADefaultPlayerController::RuneSpell2); EnhancedInputComponent->BindAction(WardAction.Get(), ETriggerEvent::Triggered, this, &ADefaultPlayerController::Ward); EnhancedInputComponent->BindAction(BombAction.Get(), ETriggerEvent::Triggered, this, &ADefaultPlayerController::Bomb); EnhancedInputComponent->BindAction(ObjectSelectAction.Get(), ETriggerEvent::Triggered, this, &ADefaultPlayerController::ObjectSelect); - EnhancedInputComponent->BindAction(MoveAction.Get(), ETriggerEvent::Triggered, this, &ADefaultPlayerController::MoveTriggered); - EnhancedInputComponent->BindAction(MoveAction.Get(), ETriggerEvent::Started, this, &ADefaultPlayerController::MoveStarted); + EnhancedInputComponent->BindAction(MoveAction.Get(), ETriggerEvent::Triggered, this, &ADefaultPlayerController::Move); } } @@ -236,13 +236,7 @@ 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()); + Server_SetRotation(GetMouseHitLocation()); UE_LOG(LogTemp, Warning, TEXT("Skill1")); GetPlayerState()->SetState(ECharacterState::Attack); @@ -251,13 +245,7 @@ void ADefaultPlayerController::Skill1() void ADefaultPlayerController::Skill2() { - FVector Location = GetPawn()->GetActorLocation(); - Location.Z = 0; - - SimpleMoveToLocation(this, Location); - this->MoveToLocation(Location); - - GetPawn()->SetActorRotation((GetMouseHitLocation() - Location).Rotation()); + Server_SetRotation(GetMouseHitLocation()); UE_LOG(LogTemp, Warning, TEXT("Skill2")); GetPlayerState()->SetState(ECharacterState::Attack); @@ -266,30 +254,18 @@ void ADefaultPlayerController::Skill2() void ADefaultPlayerController::Skill3() { - FVector Location = GetPawn()->GetActorLocation(); - Location.Z = 0; - - SimpleMoveToLocation(this, Location); - this->MoveToLocation(Location); - - GetPawn()->SetActorRotation((GetMouseHitLocation() - Location).Rotation()); + Server_SetRotation(GetMouseHitLocation()); UE_LOG(LogTemp, Warning, TEXT("Skill3")); GetPlayerState()->SetState(ECharacterState::Attack); GetPlayerState()->SetAttackType(CooldownType::Skill3); } -void ADefaultPlayerController::Skill4() +void ADefaultPlayerController::Skill4(const FInputActionValue& Value) { - FVector Location = GetPawn()->GetActorLocation(); - Location.Z = 0; + Server_SetRotation(GetMouseHitLocation()); - SimpleMoveToLocation(this, Location); - this->MoveToLocation(Location); - - GetPawn()->SetActorRotation((GetMouseHitLocation() - Location).Rotation()); - - UE_LOG(LogTemp, Warning, TEXT("Skill4")); + UE_LOG(LogTemp, Warning, TEXT("Skill4 %x"), Value); GetPlayerState()->SetState(ECharacterState::Attack); GetPlayerState()->SetAttackType(CooldownType::Skill4Started); } @@ -338,16 +314,6 @@ void ADefaultPlayerController::ObjectSelect() } } -void ADefaultPlayerController::MoveTriggered() -{ - Move(); -} - -void ADefaultPlayerController::MoveStarted() -{ - Move(); -} - void ADefaultPlayerController::Move() { FVector Destination = GetMouseHitLocation(); @@ -357,13 +323,29 @@ void ADefaultPlayerController::Move() this->MoveToLocation(Destination); } +void ADefaultPlayerController::Multicast_SetRotation_Implementation(FVector MouseHitLocation) +{ + FVector Location = GetPawn()->GetActorLocation(); + Location.Z = 0; + + SimpleMoveToLocation(this, Location); + this->MoveToLocation(Location); + + GetPawn()->SetActorRotation((MouseHitLocation - Location).Rotation()); +} + +void ADefaultPlayerController::Server_SetRotation_Implementation(FVector MouseHitLocation) +{ + Multicast_SetRotation(MouseHitLocation); +} + FVector ADefaultPlayerController::GetMouseHitLocation() { FHitResult HitResult; GetHitResultUnderCursor(ECollisionChannel::ECC_Visibility, true, HitResult); HitResult.Location.Z = 0; - UE_LOG(LogTemp, Warning, TEXT("Client%d MoveTo : (%f, %f)"), GPlayInEditorID, HitResult.Location.X, HitResult.Location.Y); + //UE_LOG(LogTemp, Warning, TEXT("Client%d MoveTo : (%f, %f)"), GPlayInEditorID, HitResult.Location.X, HitResult.Location.Y); FVector ActorLocation = GetPawn()->GetActorLocation(); ActorLocation.Z = 0; diff --git a/Source/Promether/PlayerGeneric/DefaultPlayerController.h b/Source/Promether/PlayerGeneric/DefaultPlayerController.h index 22d92c7..a510b0b 100644 --- a/Source/Promether/PlayerGeneric/DefaultPlayerController.h +++ b/Source/Promether/PlayerGeneric/DefaultPlayerController.h @@ -34,19 +34,23 @@ public: void Skill1(); void Skill2(); void Skill3(); - void Skill4(); + void Skill4(const FInputActionValue& Value); void RuneSpell1(); void RuneSpell2(); void Ward(); void Bomb(); void ObjectSelect(); - void MoveTriggered(); - void MoveStarted(); void Move(); UFUNCTION(Server, Reliable) void MoveToLocation(FVector Location); + UFUNCTION(NetMulticast, Reliable) + void Multicast_SetRotation(FVector MouseHitLocation); + + UFUNCTION(Server, Reliable) + void Server_SetRotation(FVector MouseHitLocation); + FVector GetMouseHitLocation(); UFUNCTION(BlueprintCallable, Category = "AI|Navigation") diff --git a/Source/Promether/PlayerGeneric/DefaultPlayerState.cpp b/Source/Promether/PlayerGeneric/DefaultPlayerState.cpp index f8468af..724738c 100644 --- a/Source/Promether/PlayerGeneric/DefaultPlayerState.cpp +++ b/Source/Promether/PlayerGeneric/DefaultPlayerState.cpp @@ -6,6 +6,7 @@ ADefaultPlayerState::ADefaultPlayerState() CharacterBPRef = nullptr;; Team = TeamType::Null; State = ECharacterState::Idle; + InitPlayerStats(); } void ADefaultPlayerState::GetLifetimeReplicatedProps(TArray& OutLifetimeProps) const @@ -30,42 +31,42 @@ void ADefaultPlayerState::InitPlayerStats() { ADefaultPlayerCharacter* Initializer = Cast(CharacterBPRef); - Stats.Health = Initializer->GetHealth(); - Stats.HPRegeneration = Initializer->GetHPRegeneration(); - Stats.HealAndShieldpower = Initializer->GetHealAndShieldpower(); - Stats.Armor = Initializer->GetArmor(); - Stats.MagicResistance = Initializer->GetMagicResistance(); - Stats.Tenacity = Initializer->GetTenacity(); - Stats.SlowRisist = Initializer->GetSlowRisist(); - Stats.AttackSpeed = Initializer->GetAttackSpeed(); - Stats.AttackDamage = Initializer->GetAttackDamage(); - Stats.AbilityPower = Initializer->GetAbilityPower(); - Stats.CriticalStrikeChance = Initializer->GetCriticalStrikeChance(); - Stats.CriticalStrikeDamage = Initializer->GetCriticalStrikeDamage(); - Stats.ArmorPenetration = Initializer->GetArmorPenetration(); - Stats.MagicPenetration = Initializer->GetMagicPenetration(); - Stats.LifeSteal = Initializer->GetLifeSteal(); - Stats.PhysicalVamp = Initializer->GetPhysicalVamp(); - Stats.Omnivamp = Initializer->GetOmnivamp(); - Stats.AbilityHaste = Initializer->GetAbilityHaste(); + Stats.Health = Initializer->Health; + Stats.HPRegeneration = Initializer->HPRegeneration; + Stats.HealAndShieldpower = Initializer->HealAndShieldpower; + Stats.Armor = Initializer->Armor; + Stats.MagicResistance = Initializer->MagicResistance; + Stats.Tenacity = Initializer->Tenacity; + Stats.SlowRisist = Initializer->SlowRisist; + Stats.AttackSpeed = Initializer->AttackSpeed; + Stats.AttackDamage = Initializer->AttackDamage; + Stats.AbilityPower = Initializer->AbilityPower; + Stats.CriticalStrikeChance = Initializer->CriticalStrikeChance; + Stats.CriticalStrikeDamage = Initializer->CriticalStrikeDamage; + Stats.ArmorPenetration = Initializer->ArmorPenetration; + Stats.MagicPenetration = Initializer->MagicPenetration; + Stats.LifeSteal = Initializer->LifeSteal; + Stats.PhysicalVamp = Initializer->PhysicalVamp; + Stats.Omnivamp = Initializer->Omnivamp; + Stats.AbilityHaste = Initializer->AbilityHaste; - SetMultipleCooldownDuration(Initializer->GetCooldownDuration()); + SetMultipleCooldownDuration(Initializer->CooldownDuration); - Stats.Mana = Initializer->GetMana(); - Stats.ManaRegeneration = Initializer->GetManaRegeneration(); - Stats.Energy = Initializer->GetEnergy(); - Stats.EnergyRegeneration = Initializer->GetEnergyRegeneration(); - Stats.AttackRange = Initializer->GetAttackRange(); - Stats.MovementSpeed = Initializer->GetMovementSpeed(); - Stats.GoldGeneration = Initializer->GetGoldGeneration(); - Stats.AttackDamageGrowth = Initializer->GetAttackDamageGrowth(); - Stats.AttackSpeedGrowth = Initializer->GetAttackSpeedGrowth(); - Stats.ArmorGrowth = Initializer->GetArmorGrowth(); - Stats.MagicResistanceGrowth = Initializer->GetMagicResistanceGrowth(); - Stats.HealthGrowth = Initializer->GetHealthGrowth(); - Stats.HealthRegenerationGrowth = Initializer->GetHealthRegenerationGrowth(); - Stats.ManaGrowth = Initializer->GetManaGrowth(); - Stats.ManaRegenerationGrowth = Initializer->GetManaRegenerationGrowth(); + Stats.Mana = Initializer->Mana; + Stats.ManaRegeneration = Initializer->ManaRegeneration; + Stats.Energy = Initializer->Energy; + Stats.EnergyRegeneration = Initializer->EnergyRegeneration; + Stats.AttackRange = Initializer->AttackRange; + Stats.MovementSpeed = Initializer->MovementSpeed; + Stats.GoldGeneration = Initializer->GoldGeneration; + Stats.AttackDamageGrowth = Initializer->AttackDamageGrowth; + Stats.AttackSpeedGrowth = Initializer->AttackSpeedGrowth; + Stats.ArmorGrowth = Initializer->ArmorGrowth; + Stats.MagicResistanceGrowth = Initializer->MagicResistanceGrowth; + Stats.HealthGrowth = Initializer->HealthGrowth; + Stats.HealthRegenerationGrowth = Initializer->HealthRegenerationGrowth; + Stats.ManaGrowth = Initializer->ManaGrowth; + Stats.ManaRegenerationGrowth = Initializer->ManaRegenerationGrowth; } void ADefaultPlayerState::NetMulticast_SetAttackType_Implementation(CooldownType Value) diff --git a/Source/Promether/PlayerGeneric/PerformSkill.cpp b/Source/Promether/PlayerGeneric/PerformSkill.cpp deleted file mode 100644 index 1d1dd9f..0000000 --- a/Source/Promether/PlayerGeneric/PerformSkill.cpp +++ /dev/null @@ -1,6 +0,0 @@ -// 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 deleted file mode 100644 index ee6f11b..0000000 --- a/Source/Promether/PlayerGeneric/PerformSkill.h +++ /dev/null @@ -1,28 +0,0 @@ -// 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; -};