Compare commits
No commits in common. "375ed69817e84eda771d5168a73fba922bf25dae" and "2834d89b5d7d4b31bf7e0f25dbb42f85d4045e43" have entirely different histories.
375ed69817
...
2834d89b5d
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());
|
SetActorLocation(UGameplayStatics::GetPlayerController(GetWorld(), 0)->GetCharacter()->GetActorLocation());
|
||||||
SetActorRotation(FRotator(0, 0, 0));
|
SetActorRotation(FRotator(0, 0, 0));
|
||||||
TargetDirection = Direction;
|
TargetDirection = direction;
|
||||||
ProjectileMovement->SetVelocityInLocalSpace(TargetDirection * ProjectileSpeed);
|
ProjectileMovement->SetVelocityInLocalSpace(TargetDirection * ProjectileSpeed);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AProjectile::LoadDataFromDataAsset_Implementation(UProjectileDataAsset* ProjectileDataAsset)
|
void AProjectile::LoadDataFromDataAsset_Implementation(UProjectileDataAsset* projectileDataAsset)
|
||||||
{
|
{
|
||||||
ProjectileSpeed = ProjectileDataAsset->ProjectileSpeed;
|
ProjectileSpeed = projectileDataAsset->ProjectileSpeed;
|
||||||
StaticMeshComponent->SetStaticMesh(ProjectileDataAsset->StaticMesh);
|
StaticMeshComponent->SetStaticMesh(projectileDataAsset->StaticMesh);
|
||||||
ProjectileSpeed = ProjectileDataAsset->ProjectileSpeed;
|
ProjectileSpeed = projectileDataAsset->ProjectileSpeed;
|
||||||
ProjectileMovement->InitialSpeed = ProjectileSpeed;
|
ProjectileMovement->InitialSpeed = ProjectileSpeed;
|
||||||
ProjectileMovement->MaxSpeed = ProjectileSpeed;
|
ProjectileMovement->MaxSpeed = ProjectileSpeed;
|
||||||
RemainingDamageableEnemies = ProjectileDataAsset->DamageableEnemies;
|
RemainingDamagableEnemies = projectileDataAsset->DamagableEnemies;
|
||||||
NiagaraRibbonComponent->SetAsset(ProjectileDataAsset->NiagaraRibbonSystem);
|
NiagaraRibbonComponent->SetAsset(projectileDataAsset->NiagaraRibbonSystem);
|
||||||
NiagaraRibbonComponent->ActivateSystem();
|
NiagaraRibbonComponent->ActivateSystem();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -88,7 +88,7 @@ void AProjectile::ResetData_Implementation()
|
|||||||
{
|
{
|
||||||
ProjectileSpeed = NULL;
|
ProjectileSpeed = NULL;
|
||||||
StaticMeshComponent->SetStaticMesh(nullptr);
|
StaticMeshComponent->SetStaticMesh(nullptr);
|
||||||
RemainingDamageableEnemies = 1;
|
RemainingDamagableEnemies = 1;
|
||||||
NiagaraRibbonComponent->DeactivateImmediate();
|
NiagaraRibbonComponent->DeactivateImmediate();
|
||||||
NiagaraRibbonComponent->SetAsset(nullptr);
|
NiagaraRibbonComponent->SetAsset(nullptr);
|
||||||
}
|
}
|
||||||
@ -112,9 +112,9 @@ void AProjectile::OnProjectileBeginOverlap(UPrimitiveComponent* OverlappedCompon
|
|||||||
AProjectileWeapon* ownerWeapon = Cast<AProjectileWeapon>(GetOwner());
|
AProjectileWeapon* ownerWeapon = Cast<AProjectileWeapon>(GetOwner());
|
||||||
EnemyHealthComponent->TakeDamage(Enemy, ownerWeapon->GetDamage(), nullptr, ownerController, this);
|
EnemyHealthComponent->TakeDamage(Enemy, ownerWeapon->GetDamage(), nullptr, ownerController, this);
|
||||||
|
|
||||||
RemainingDamageableEnemies--;
|
RemainingDamagableEnemies--;
|
||||||
|
|
||||||
if (RemainingDamageableEnemies == 0)
|
if (RemainingDamagableEnemies == 0)
|
||||||
{
|
{
|
||||||
ReturnProjectileToPool();
|
ReturnProjectileToPool();
|
||||||
}
|
}
|
||||||
|
@ -17,31 +17,33 @@ class VAMPIRES_API AProjectile : public AActor, public IProjectilable
|
|||||||
{
|
{
|
||||||
GENERATED_BODY()
|
GENERATED_BODY()
|
||||||
|
|
||||||
UPROPERTY(EditDefaultsOnly)
|
public:
|
||||||
|
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite)
|
||||||
TObjectPtr<USphereComponent> SphereComponent = nullptr;
|
TObjectPtr<USphereComponent> SphereComponent = nullptr;
|
||||||
|
|
||||||
UPROPERTY(EditDefaultsOnly)
|
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite)
|
||||||
TObjectPtr<UProjectileMovementComponent> ProjectileMovement = nullptr;
|
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;
|
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
|
// Sets default values for this actor's properties
|
||||||
AProjectile();
|
AProjectile();
|
||||||
|
|
||||||
@ -52,9 +54,9 @@ protected:
|
|||||||
public:
|
public:
|
||||||
virtual void SetActorHiddenInGame(bool bNewHidden) override;
|
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;
|
virtual void ResetData_Implementation() override;
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ public:
|
|||||||
TObjectPtr<UStaticMesh> StaticMesh;
|
TObjectPtr<UStaticMesh> StaticMesh;
|
||||||
|
|
||||||
UPROPERTY(EditAnywhere)
|
UPROPERTY(EditAnywhere)
|
||||||
int DamageableEnemies = 1;
|
int DamagableEnemies = 1;
|
||||||
|
|
||||||
UPROPERTY(EditAnywhere)
|
UPROPERTY(EditAnywhere)
|
||||||
TObjectPtr<UNiagaraSystem> NiagaraRibbonSystem = nullptr;
|
TObjectPtr<UNiagaraSystem> NiagaraRibbonSystem = nullptr;
|
||||||
|
@ -37,7 +37,7 @@ bool AGunWeapon::UpgradeWeapon_Implementation()
|
|||||||
ProjectilesPerActivation++;
|
ProjectilesPerActivation++;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
ProjectileTemplate->DamageableEnemies += 2;
|
ProjectileTemplate->DamagableEnemies += 2;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
ProjectilesPerActivation++;
|
ProjectilesPerActivation++;
|
||||||
@ -46,14 +46,14 @@ bool AGunWeapon::UpgradeWeapon_Implementation()
|
|||||||
Damage += 5.0f;
|
Damage += 5.0f;
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
ProjectileTemplate->DamageableEnemies += 2;
|
ProjectileTemplate->DamagableEnemies += 2;
|
||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
Damage += 5.0f;
|
Damage += 5.0f;
|
||||||
ProjectileTemplate->ProjectileSpeed *= 1.50f;
|
ProjectileTemplate->ProjectileSpeed *= 1.50f;
|
||||||
break;
|
break;
|
||||||
case 7:
|
case 7:
|
||||||
ProjectileTemplate->DamageableEnemies += 2;
|
ProjectileTemplate->DamagableEnemies += 2;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
@ -65,7 +65,7 @@ bool AGunWeapon::UpgradeWeapon_Implementation()
|
|||||||
|
|
||||||
void AGunWeapon::FireProjectile()
|
void AGunWeapon::FireProjectile()
|
||||||
{
|
{
|
||||||
if (ProjectileTemplate && OverlappedEnemies.Num() > 0)
|
if (ProjectileTemplate && OverlappedEnemies.Num() > 0)
|
||||||
{
|
{
|
||||||
AGameModeBase* gamemode = UGameplayStatics::GetGameMode(GetWorld());
|
AGameModeBase* gamemode = UGameplayStatics::GetGameMode(GetWorld());
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ bool AKnifeWeapon::UpgradeWeapon_Implementation()
|
|||||||
ProjectilesPerActivation++;
|
ProjectilesPerActivation++;
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
ProjectileTemplate->DamageableEnemies++;
|
ProjectileTemplate->DamagableEnemies++;
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
ProjectilesPerActivation++;
|
ProjectilesPerActivation++;
|
||||||
@ -52,7 +52,7 @@ bool AKnifeWeapon::UpgradeWeapon_Implementation()
|
|||||||
Damage += 5.0f;
|
Damage += 5.0f;
|
||||||
break;
|
break;
|
||||||
case 7:
|
case 7:
|
||||||
ProjectileTemplate->DamageableEnemies++;
|
ProjectileTemplate->DamagableEnemies++;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
|
@ -47,7 +47,7 @@ bool AMagicWandWeapon::UpgradeWeapon_Implementation()
|
|||||||
ProjectilesPerActivation++;
|
ProjectilesPerActivation++;
|
||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
ProjectileTemplate->DamageableEnemies++;
|
ProjectileTemplate->DamagableEnemies++;
|
||||||
break;
|
break;
|
||||||
case 7:
|
case 7:
|
||||||
Damage += 10;
|
Damage += 10;
|
||||||
|
@ -8,10 +8,14 @@
|
|||||||
void UStarterWeaponButtonDataObject::SetData(AWeapon* Weapon, UUserWidget* parent)
|
void UStarterWeaponButtonDataObject::SetData(AWeapon* Weapon, UUserWidget* parent)
|
||||||
{
|
{
|
||||||
WeaponName = Weapon->GetWeaponName();
|
WeaponName = Weapon->GetWeaponName();
|
||||||
Description = Weapon->GetDescription();
|
|
||||||
WeaponIcon = Weapon->GetIcon();
|
WeaponIcon = Weapon->GetIcon();
|
||||||
WeaponInstance = Weapon;
|
WeaponInstance = Weapon;
|
||||||
Parent = parent;
|
Parent = parent;
|
||||||
|
|
||||||
|
if (Weapon->GetUpgradeDescriptions().Num() > Weapon->GetWeaponLevel())
|
||||||
|
{
|
||||||
|
Description = Weapon->GetUpgradeDescriptions()[Weapon->GetWeaponLevel()];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UStarterWeaponButtonDataObject::SetData(TSubclassOf<AWeapon> Weapon, UUserWidget* parent)
|
void UStarterWeaponButtonDataObject::SetData(TSubclassOf<AWeapon> Weapon, UUserWidget* parent)
|
||||||
@ -19,7 +23,6 @@ void UStarterWeaponButtonDataObject::SetData(TSubclassOf<AWeapon> Weapon, UUserW
|
|||||||
if (AWeapon* tempWeapon = NewObject<AWeapon>(this, Weapon))
|
if (AWeapon* tempWeapon = NewObject<AWeapon>(this, Weapon))
|
||||||
{
|
{
|
||||||
SetData(tempWeapon, parent);
|
SetData(tempWeapon, parent);
|
||||||
WeaponTemplate = Weapon;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user