From 375ed69817e84eda771d5168a73fba922bf25dae Mon Sep 17 00:00:00 2001 From: baz Date: Fri, 25 Jul 2025 23:45:12 +0100 Subject: [PATCH] Minor refactor to Projectile class --- .../BP_PhieraDerTuphelloWeapon.uasset | 4 +- Source/vampires/Projectile.cpp | 22 +++++----- Source/vampires/Projectile.h | 44 +++++++++---------- Source/vampires/ProjectileDataAsset.h | 2 +- Source/vampires/Weapons/GunWeapon.cpp | 8 ++-- Source/vampires/Weapons/KnifeWeapon.cpp | 4 +- Source/vampires/Weapons/MagicWandWeapon.cpp | 2 +- 7 files changed, 42 insertions(+), 44 deletions(-) diff --git a/Content/Weapons/PhieraDerTuphello/BP_PhieraDerTuphelloWeapon.uasset b/Content/Weapons/PhieraDerTuphello/BP_PhieraDerTuphelloWeapon.uasset index 562a45e..6fc63f3 100644 --- a/Content/Weapons/PhieraDerTuphello/BP_PhieraDerTuphelloWeapon.uasset +++ b/Content/Weapons/PhieraDerTuphello/BP_PhieraDerTuphelloWeapon.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6c7c290e6e87959241fdac62f95ec28836f4f3a63485d3340fc9f5f467d3b476 -size 25082 +oid sha256:bace0d262df631e0cc033553e93ea2f3773bc002031484450a236292bc6578d0 +size 25464 diff --git a/Source/vampires/Projectile.cpp b/Source/vampires/Projectile.cpp index 63eb94f..a0562b5 100644 --- a/Source/vampires/Projectile.cpp +++ b/Source/vampires/Projectile.cpp @@ -64,23 +64,23 @@ void AProjectile::SetActorHiddenInGame(bool bNewHidden) } } -void AProjectile::SetTargetDirection_Implementation(FVector direction) +void AProjectile::SetTargetDirection_Implementation(FVector Direction) { SetActorLocation(UGameplayStatics::GetPlayerController(GetWorld(), 0)->GetCharacter()->GetActorLocation()); SetActorRotation(FRotator(0, 0, 0)); - TargetDirection = direction; + TargetDirection = Direction; ProjectileMovement->SetVelocityInLocalSpace(TargetDirection * ProjectileSpeed); } -void AProjectile::LoadDataFromDataAsset_Implementation(UProjectileDataAsset* projectileDataAsset) +void AProjectile::LoadDataFromDataAsset_Implementation(UProjectileDataAsset* ProjectileDataAsset) { - ProjectileSpeed = projectileDataAsset->ProjectileSpeed; - StaticMeshComponent->SetStaticMesh(projectileDataAsset->StaticMesh); - ProjectileSpeed = projectileDataAsset->ProjectileSpeed; + ProjectileSpeed = ProjectileDataAsset->ProjectileSpeed; + StaticMeshComponent->SetStaticMesh(ProjectileDataAsset->StaticMesh); + ProjectileSpeed = ProjectileDataAsset->ProjectileSpeed; ProjectileMovement->InitialSpeed = ProjectileSpeed; ProjectileMovement->MaxSpeed = ProjectileSpeed; - RemainingDamagableEnemies = projectileDataAsset->DamagableEnemies; - NiagaraRibbonComponent->SetAsset(projectileDataAsset->NiagaraRibbonSystem); + RemainingDamageableEnemies = ProjectileDataAsset->DamageableEnemies; + NiagaraRibbonComponent->SetAsset(ProjectileDataAsset->NiagaraRibbonSystem); NiagaraRibbonComponent->ActivateSystem(); } @@ -88,7 +88,7 @@ void AProjectile::ResetData_Implementation() { ProjectileSpeed = NULL; StaticMeshComponent->SetStaticMesh(nullptr); - RemainingDamagableEnemies = 1; + RemainingDamageableEnemies = 1; NiagaraRibbonComponent->DeactivateImmediate(); NiagaraRibbonComponent->SetAsset(nullptr); } @@ -112,9 +112,9 @@ void AProjectile::OnProjectileBeginOverlap(UPrimitiveComponent* OverlappedCompon AProjectileWeapon* ownerWeapon = Cast(GetOwner()); EnemyHealthComponent->TakeDamage(Enemy, ownerWeapon->GetDamage(), nullptr, ownerController, this); - RemainingDamagableEnemies--; + RemainingDamageableEnemies--; - if (RemainingDamagableEnemies == 0) + if (RemainingDamageableEnemies == 0) { ReturnProjectileToPool(); } diff --git a/Source/vampires/Projectile.h b/Source/vampires/Projectile.h index 349880b..2fc87bb 100644 --- a/Source/vampires/Projectile.h +++ b/Source/vampires/Projectile.h @@ -17,33 +17,31 @@ class VAMPIRES_API AProjectile : public AActor, public IProjectilable { GENERATED_BODY() -public: - UPROPERTY(EditDefaultsOnly, BlueprintReadWrite) + UPROPERTY(EditDefaultsOnly) TObjectPtr SphereComponent = nullptr; - UPROPERTY(EditDefaultsOnly, BlueprintReadWrite) + UPROPERTY(EditDefaultsOnly) TObjectPtr ProjectileMovement = nullptr; + UPROPERTY(EditDefaultsOnly) + TObjectPtr StaticMeshComponent = nullptr; + + UPROPERTY(EditDefaultsOnly) + TObjectPtr NiagaraRibbonComponent = nullptr; + + UPROPERTY(EditDefaultsOnly) + float ProjectileSpeed = 500.0f; + + UPROPERTY(EditDefaultsOnly) + int RemainingDamageableEnemies = 1; + + UPROPERTY(EditDefaultsOnly) + float ProjectileLifespan = 15.0f; + + FTimerHandle ProjectileLifetimeTimerHandle; + FVector TargetDirection = FVector::ZeroVector; - UPROPERTY(EditAnywhere, BlueprintReadWrite) - float ProjectileSpeed = 500.0f; - - UPROPERTY(EditAnywhere, BlueprintReadWrite) - TObjectPtr StaticMeshComponent = nullptr; - - UPROPERTY(EditAnywhere, BlueprintReadWrite) - int RemainingDamagableEnemies = 1; - - UPROPERTY(EditDefaultsOnly, BlueprintReadWrite) - TObjectPtr NiagaraRibbonComponent = nullptr; - - UPROPERTY(EditDefaultsOnly, BlueprintReadWrite) - float ProjectileLifespan = 15.0f; - -private: - FTimerHandle ProjectileLifetimeTimerHandle; - // Sets default values for this actor's properties AProjectile(); @@ -54,9 +52,9 @@ protected: public: virtual void SetActorHiddenInGame(bool bNewHidden) override; - virtual void SetTargetDirection_Implementation(FVector direction) override; + virtual void SetTargetDirection_Implementation(FVector Direction) override; - virtual void LoadDataFromDataAsset_Implementation(UProjectileDataAsset* projectileDataAsset) override; + virtual void LoadDataFromDataAsset_Implementation(UProjectileDataAsset* ProjectileDataAsset) override; virtual void ResetData_Implementation() override; diff --git a/Source/vampires/ProjectileDataAsset.h b/Source/vampires/ProjectileDataAsset.h index bfa89da..e9ba31a 100644 --- a/Source/vampires/ProjectileDataAsset.h +++ b/Source/vampires/ProjectileDataAsset.h @@ -23,7 +23,7 @@ public: TObjectPtr StaticMesh; UPROPERTY(EditAnywhere) - int DamagableEnemies = 1; + int DamageableEnemies = 1; UPROPERTY(EditAnywhere) TObjectPtr NiagaraRibbonSystem = nullptr; diff --git a/Source/vampires/Weapons/GunWeapon.cpp b/Source/vampires/Weapons/GunWeapon.cpp index 2238213..eb7bf37 100644 --- a/Source/vampires/Weapons/GunWeapon.cpp +++ b/Source/vampires/Weapons/GunWeapon.cpp @@ -37,7 +37,7 @@ bool AGunWeapon::UpgradeWeapon_Implementation() ProjectilesPerActivation++; break; case 2: - ProjectileTemplate->DamagableEnemies += 2; + ProjectileTemplate->DamageableEnemies += 2; break; case 3: ProjectilesPerActivation++; @@ -46,14 +46,14 @@ bool AGunWeapon::UpgradeWeapon_Implementation() Damage += 5.0f; break; case 5: - ProjectileTemplate->DamagableEnemies += 2; + ProjectileTemplate->DamageableEnemies += 2; break; case 6: Damage += 5.0f; ProjectileTemplate->ProjectileSpeed *= 1.50f; break; case 7: - ProjectileTemplate->DamagableEnemies += 2; + ProjectileTemplate->DamageableEnemies += 2; break; default: return false; @@ -65,7 +65,7 @@ bool AGunWeapon::UpgradeWeapon_Implementation() void AGunWeapon::FireProjectile() { - if (ProjectileTemplate && OverlappedEnemies.Num() > 0) + if (ProjectileTemplate && OverlappedEnemies.Num() > 0) { AGameModeBase* gamemode = UGameplayStatics::GetGameMode(GetWorld()); diff --git a/Source/vampires/Weapons/KnifeWeapon.cpp b/Source/vampires/Weapons/KnifeWeapon.cpp index 166879a..85c1202 100644 --- a/Source/vampires/Weapons/KnifeWeapon.cpp +++ b/Source/vampires/Weapons/KnifeWeapon.cpp @@ -42,7 +42,7 @@ bool AKnifeWeapon::UpgradeWeapon_Implementation() ProjectilesPerActivation++; break; case 4: - ProjectileTemplate->DamagableEnemies++; + ProjectileTemplate->DamageableEnemies++; break; case 5: ProjectilesPerActivation++; @@ -52,7 +52,7 @@ bool AKnifeWeapon::UpgradeWeapon_Implementation() Damage += 5.0f; break; case 7: - ProjectileTemplate->DamagableEnemies++; + ProjectileTemplate->DamageableEnemies++; break; default: return false; diff --git a/Source/vampires/Weapons/MagicWandWeapon.cpp b/Source/vampires/Weapons/MagicWandWeapon.cpp index 751b8ea..2a817b8 100644 --- a/Source/vampires/Weapons/MagicWandWeapon.cpp +++ b/Source/vampires/Weapons/MagicWandWeapon.cpp @@ -47,7 +47,7 @@ bool AMagicWandWeapon::UpgradeWeapon_Implementation() ProjectilesPerActivation++; break; case 6: - ProjectileTemplate->DamagableEnemies++; + ProjectileTemplate->DamageableEnemies++; break; case 7: Damage += 10;