Compare commits
2 Commits
2834d89b5d
...
375ed69817
Author | SHA1 | Date | |
---|---|---|---|
375ed69817 | |||
31c3c4c981 |
BIN
Content/Weapons/PhieraDerTuphello/BP_PhieraDerTuphelloWeapon.uasset
(Stored with Git LFS)
BIN
Content/Weapons/PhieraDerTuphello/BP_PhieraDerTuphelloWeapon.uasset
(Stored with Git LFS)
Binary file not shown.
@ -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<AProjectileWeapon>(GetOwner());
|
||||
EnemyHealthComponent->TakeDamage(Enemy, ownerWeapon->GetDamage(), nullptr, ownerController, this);
|
||||
|
||||
RemainingDamagableEnemies--;
|
||||
RemainingDamageableEnemies--;
|
||||
|
||||
if (RemainingDamagableEnemies == 0)
|
||||
if (RemainingDamageableEnemies == 0)
|
||||
{
|
||||
ReturnProjectileToPool();
|
||||
}
|
||||
|
@ -17,33 +17,31 @@ class VAMPIRES_API AProjectile : public AActor, public IProjectilable
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite)
|
||||
UPROPERTY(EditDefaultsOnly)
|
||||
TObjectPtr<USphereComponent> SphereComponent = nullptr;
|
||||
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite)
|
||||
UPROPERTY(EditDefaultsOnly)
|
||||
TObjectPtr<UProjectileMovementComponent> ProjectileMovement = nullptr;
|
||||
|
||||
UPROPERTY(EditDefaultsOnly)
|
||||
TObjectPtr<UStaticMeshComponent> StaticMeshComponent = nullptr;
|
||||
|
||||
UPROPERTY(EditDefaultsOnly)
|
||||
TObjectPtr<UNiagaraComponent> 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<UStaticMeshComponent> StaticMeshComponent = nullptr;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite)
|
||||
int RemainingDamagableEnemies = 1;
|
||||
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite)
|
||||
TObjectPtr<UNiagaraComponent> 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;
|
||||
|
||||
|
@ -23,7 +23,7 @@ public:
|
||||
TObjectPtr<UStaticMesh> StaticMesh;
|
||||
|
||||
UPROPERTY(EditAnywhere)
|
||||
int DamagableEnemies = 1;
|
||||
int DamageableEnemies = 1;
|
||||
|
||||
UPROPERTY(EditAnywhere)
|
||||
TObjectPtr<UNiagaraSystem> NiagaraRibbonSystem = nullptr;
|
||||
|
@ -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());
|
||||
|
||||
|
@ -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;
|
||||
|
@ -47,7 +47,7 @@ bool AMagicWandWeapon::UpgradeWeapon_Implementation()
|
||||
ProjectilesPerActivation++;
|
||||
break;
|
||||
case 6:
|
||||
ProjectileTemplate->DamagableEnemies++;
|
||||
ProjectileTemplate->DamageableEnemies++;
|
||||
break;
|
||||
case 7:
|
||||
Damage += 10;
|
||||
|
@ -8,14 +8,10 @@
|
||||
void UStarterWeaponButtonDataObject::SetData(AWeapon* Weapon, UUserWidget* parent)
|
||||
{
|
||||
WeaponName = Weapon->GetWeaponName();
|
||||
Description = Weapon->GetDescription();
|
||||
WeaponIcon = Weapon->GetIcon();
|
||||
WeaponInstance = Weapon;
|
||||
Parent = parent;
|
||||
|
||||
if (Weapon->GetUpgradeDescriptions().Num() > Weapon->GetWeaponLevel())
|
||||
{
|
||||
Description = Weapon->GetUpgradeDescriptions()[Weapon->GetWeaponLevel()];
|
||||
}
|
||||
}
|
||||
|
||||
void UStarterWeaponButtonDataObject::SetData(TSubclassOf<AWeapon> Weapon, UUserWidget* parent)
|
||||
@ -23,6 +19,7 @@ void UStarterWeaponButtonDataObject::SetData(TSubclassOf<AWeapon> Weapon, UUserW
|
||||
if (AWeapon* tempWeapon = NewObject<AWeapon>(this, Weapon))
|
||||
{
|
||||
SetData(tempWeapon, parent);
|
||||
WeaponTemplate = Weapon;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user