Started Working on UI for Overload Module
This commit is contained in:
parent
588b2e5a91
commit
6bcc703974
BIN
EndlessVendetta/Content/Gadgets/BP_DeadEnemy.uasset
(Stored with Git LFS)
BIN
EndlessVendetta/Content/Gadgets/BP_DeadEnemy.uasset
(Stored with Git LFS)
Binary file not shown.
@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:c546719195bfec717a1ea448ffd23e7eea15b3997b28a7bec6582c82fd6e0889
|
oid sha256:f28aca2e17c3afa2dd55c79b5f66c1ea851dd8067e0712fbc9677ca614f8c927
|
||||||
size 16032
|
size 16005
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:7d61bb4d0a3f7c25b8901699a8047059fb83a255d89990a5b366410f51d23792
|
oid sha256:599c54946bc53ff3d3ee06fc5c1e8322aa69d8a54380df1e8a63a41c5aefed46
|
||||||
size 23259
|
size 22249
|
||||||
|
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:1fa538706ad1bf961d40e82afa4e2ff2937e4377d353f0db4b46cd1599609d19
|
||||||
|
size 25427
|
BIN
EndlessVendetta/Content/Gadgets/GM_GadgetManager.uasset
(Stored with Git LFS)
BIN
EndlessVendetta/Content/Gadgets/GM_GadgetManager.uasset
(Stored with Git LFS)
Binary file not shown.
@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:f27623f7de4cd3ffafc332f52d32f9d58031dad0ba48c3954472553188926618
|
oid sha256:35b4a02d71c80d38b36dd3e41dcc099477704b99bd7e2785129503a80a20e67e
|
||||||
size 106253
|
size 106253
|
||||||
|
BIN
EndlessVendetta/Content/StarterContent/Blueprints/Blueprint_CeilingLight.uasset
(Stored with Git LFS)
BIN
EndlessVendetta/Content/StarterContent/Blueprints/Blueprint_CeilingLight.uasset
(Stored with Git LFS)
Binary file not shown.
BIN
EndlessVendetta/Content/StarterContent/Props/MaterialSphere.uasset
(Stored with Git LFS)
BIN
EndlessVendetta/Content/StarterContent/Props/MaterialSphere.uasset
(Stored with Git LFS)
Binary file not shown.
@ -30,9 +30,11 @@ void AOverloadModule::CheckForPotentialHackTarget()
|
|||||||
FVector LT_Start = PlayerCam->GetComponentLocation();
|
FVector LT_Start = PlayerCam->GetComponentLocation();
|
||||||
FVector LT_End = PlayerCam->GetComponentLocation() + (PlayerCam->GetForwardVector() * DeadBodyCheckDistance);
|
FVector LT_End = PlayerCam->GetComponentLocation() + (PlayerCam->GetForwardVector() * DeadBodyCheckDistance);
|
||||||
|
|
||||||
DrawDebugLine(GetWorld(), LT_Start, LT_End, FColor::Red, false, 0.2, 0, 1);
|
//DrawDebugLine(GetWorld(), LT_Start, LT_End, FColor::Red, false, 0.2, 0, 1);
|
||||||
|
|
||||||
if (!GetWorld()->LineTraceSingleByChannel(OutHit, LT_Start, LT_End, ECC_Camera) || !(OutHit.GetActor()->ActorHasTag(FName("Enemy")) && OutHit.GetActor()->ActorHasTag(FName("Dead"))))
|
FCollisionQueryParams QueryParams = FCollisionQueryParams::DefaultQueryParam;
|
||||||
|
QueryParams.AddIgnoredActor(PlayerChar);
|
||||||
|
if (!GetWorld()->LineTraceSingleByChannel(OutHit, LT_Start, LT_End, ECC_Camera, QueryParams) || !(OutHit.GetActor()->ActorHasTag(FName("Enemy")) && OutHit.GetActor()->ActorHasTag(FName("Dead"))))
|
||||||
{
|
{
|
||||||
PotentialHackTarget = nullptr;
|
PotentialHackTarget = nullptr;
|
||||||
DisplayNeedADeadEnemy();
|
DisplayNeedADeadEnemy();
|
||||||
@ -41,11 +43,13 @@ void AOverloadModule::CheckForPotentialHackTarget()
|
|||||||
|
|
||||||
if (HackedEnemies.Contains(OutHit.GetActor()->GetUniqueID()))
|
if (HackedEnemies.Contains(OutHit.GetActor()->GetUniqueID()))
|
||||||
{
|
{
|
||||||
|
UE_LOG(LogTemp, Warning, TEXT("Enemy has already been hacked!"));
|
||||||
PotentialHackTarget = nullptr;
|
PotentialHackTarget = nullptr;
|
||||||
DisplayAlreadyHacked();
|
DisplayAlreadyHacked();
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
DrawDebugLine(GetWorld(), LT_Start, OutHit.ImpactPoint, FColor::Green, false, 0.2, 0, 1);
|
//DrawDebugLine(GetWorld(), LT_Start, OutHit.ImpactPoint, FColor::Green, false, 0.2, 0, 1);
|
||||||
PotentialHackTarget = OutHit.GetActor();
|
PotentialHackTarget = OutHit.GetActor();
|
||||||
DisplayFoundPotentialTarget();
|
DisplayFoundPotentialTarget();
|
||||||
}
|
}
|
||||||
@ -58,6 +62,7 @@ void AOverloadModule::Activate()
|
|||||||
Super::Activate();
|
Super::Activate();
|
||||||
HackedEnemies.Add(PotentialHackTarget->GetUniqueID());
|
HackedEnemies.Add(PotentialHackTarget->GetUniqueID());
|
||||||
ExplodeClosestAliveEnemy();
|
ExplodeClosestAliveEnemy();
|
||||||
|
PlayHackingAnim(GadgetMaxUptime);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AOverloadModule::FinishedUsing()
|
void AOverloadModule::FinishedUsing()
|
||||||
@ -67,10 +72,8 @@ void AOverloadModule::FinishedUsing()
|
|||||||
|
|
||||||
void AOverloadModule::ExplodeClosestAliveEnemy()
|
void AOverloadModule::ExplodeClosestAliveEnemy()
|
||||||
{
|
{
|
||||||
FActorSpawnParameters SpawnParams;
|
FTransform EmptyTransform;
|
||||||
SpawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
|
USphereComponent* SphereCollision = Cast<USphereComponent>(AddComponentByClass(USphereComponent::StaticClass(), false, EmptyTransform, false));
|
||||||
AActor* SphereCollisionActor = GetWorld()->SpawnActor<AActor>(USphereComponent::StaticClass(), PlayerChar->GetActorLocation(), PlayerChar->GetActorRotation(), SpawnParams);
|
|
||||||
USphereComponent* SphereCollision = Cast<USphereComponent>(SphereCollisionActor);
|
|
||||||
|
|
||||||
SphereCollision->SetHiddenInGame(false);
|
SphereCollision->SetHiddenInGame(false);
|
||||||
SphereCollision->SetSphereRadius(AreaOfEffectInMeters * 100, true);
|
SphereCollision->SetSphereRadius(AreaOfEffectInMeters * 100, true);
|
||||||
@ -94,10 +97,9 @@ void AOverloadModule::ExplodeClosestAliveEnemy()
|
|||||||
// Find the closest Enemy in radius
|
// Find the closest Enemy in radius
|
||||||
AActor* ClosestEnemy = EnemiesInRadius[0];
|
AActor* ClosestEnemy = EnemiesInRadius[0];
|
||||||
float Dist = FVector::Distance(PlayerChar->GetActorLocation(), ClosestEnemy->GetActorLocation());
|
float Dist = FVector::Distance(PlayerChar->GetActorLocation(), ClosestEnemy->GetActorLocation());
|
||||||
UE_LOG(LogTemp, Warning, TEXT("Distacne To first Considered Enemy = %f"), Dist);
|
|
||||||
if (EnemiesInRadius.Num() < 2)
|
if (EnemiesInRadius.Num() < 2)
|
||||||
{
|
{
|
||||||
SpawnExplosiveOnActor(ClosestEnemy, SpawnParams);
|
SpawnExplosiveOnActor(ClosestEnemy);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -111,12 +113,14 @@ void AOverloadModule::ExplodeClosestAliveEnemy()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SpawnExplosiveOnActor(ClosestEnemy, SpawnParams);
|
SpawnExplosiveOnActor(ClosestEnemy);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void AOverloadModule::SpawnExplosiveOnActor(AActor* ActortoExplode, FActorSpawnParameters SpawnParams)
|
void AOverloadModule::SpawnExplosiveOnActor(AActor* ActortoExplode)
|
||||||
{
|
{
|
||||||
|
FActorSpawnParameters SpawnParams;
|
||||||
|
SpawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
|
||||||
GetWorld()->SpawnActor<AActor>(Explosive, ActortoExplode->GetActorLocation(), ActortoExplode->GetActorRotation(), SpawnParams);
|
GetWorld()->SpawnActor<AActor>(Explosive, ActortoExplode->GetActorLocation(), ActortoExplode->GetActorRotation(), SpawnParams);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,14 +37,14 @@ class ENDLESSVENDETTA_API AOverloadModule : public ACombatGadget
|
|||||||
|
|
||||||
void ExplodeClosestAliveEnemy();
|
void ExplodeClosestAliveEnemy();
|
||||||
|
|
||||||
void SpawnExplosiveOnActor(AActor* ActortoExplode, FActorSpawnParameters SpawnParams);
|
void SpawnExplosiveOnActor(AActor* ActortoExplode);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
UPROPERTY(EditDefaultsOnly, Category = "Overload Module")
|
UPROPERTY(EditDefaultsOnly, Category = "Overload Module")
|
||||||
float AreaOfEffectInMeters = 15;
|
float AreaOfEffectInMeters = 20;
|
||||||
|
|
||||||
UPROPERTY(EditDefaultsOnly, Category = "Overload Module")
|
UPROPERTY(EditDefaultsOnly, Category = "Overload Module")
|
||||||
float DeadBodyCheckDistance = 300;
|
float DeadBodyCheckDistance = 250;
|
||||||
|
|
||||||
UPROPERTY(EditDefaultsOnly, Category = "Overload Module")
|
UPROPERTY(EditDefaultsOnly, Category = "Overload Module")
|
||||||
TSubclassOf<AExplosive> Explosive;
|
TSubclassOf<AExplosive> Explosive;
|
||||||
@ -61,4 +61,7 @@ protected:
|
|||||||
|
|
||||||
UFUNCTION(BlueprintImplementableEvent, Category = "Overload Module")
|
UFUNCTION(BlueprintImplementableEvent, Category = "Overload Module")
|
||||||
void DisplayFailedToFindTarget();
|
void DisplayFailedToFindTarget();
|
||||||
|
|
||||||
|
UFUNCTION(BlueprintImplementableEvent, Category = "Overload Module")
|
||||||
|
void PlayHackingAnim(float Loadingtime);
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user