105 - Elim Bot

This commit is contained in:
Bert 2022-05-08 20:59:54 +02:00
parent c837a3f86d
commit f7c84eee2f
60 changed files with 37 additions and 2 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -13,8 +13,10 @@
#include "Components/WidgetComponent.h"
#include "GameFramework/CharacterMovementComponent.h"
#include "GameFramework/SpringArmComponent.h"
#include "Kismet/GameplayStatics.h"
#include "Kismet/KismetMathLibrary.h"
#include "Net/UnrealNetwork.h"
#include "Particles/ParticleSystemComponent.h"
ABlasterCharacter::ABlasterCharacter()
@ -80,6 +82,16 @@ void ABlasterCharacter::OnRep_ReplicatedMovement()
TimeSinceLastMovementReplication = 0.f;
}
void ABlasterCharacter::Destroyed()
{
Super::Destroyed();
if (EliminationBotComponent)
{
EliminationBotComponent->DestroyComponent();
}
}
void ABlasterCharacter::PostInitializeComponents()
{
Super::PostInitializeComponents();
@ -148,6 +160,18 @@ void ABlasterCharacter::MulticastEliminated_Implementation()
// Disable collision
GetCapsuleComponent()->SetCollisionEnabled(ECollisionEnabled::NoCollision);
GetMesh()->SetCollisionEnabled(ECollisionEnabled::NoCollision);
// Elimination bot
if (EliminationBotEffect)
{
const FVector EliminationBotSpawnPoint(GetActorLocation().X, GetActorLocation().Y, GetActorLocation().Z + 200.f);
EliminationBotComponent = UGameplayStatics::SpawnEmitterAtLocation(GetWorld(), EliminationBotEffect, EliminationBotSpawnPoint, GetActorRotation());
}
if (EliminationBotSound)
{
UGameplayStatics::SpawnSoundAtLocation(this, EliminationBotSound, GetActorLocation());
}
}
void ABlasterCharacter::EliminationTimerFinished()

View File

@ -7,6 +7,7 @@
#include "Blaster/Types/TurningInPlace.h"
#include "Components/TimelineComponent.h"
#include "GameFramework/Character.h"
#include "Sound/SoundCue.h"
#include "BlasterCharacter.generated.h"
UCLASS()
@ -21,6 +22,7 @@ public:
virtual void GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const override;
virtual void PostInitializeComponents() override;
virtual void OnRep_ReplicatedMovement() override;
virtual void Destroyed() override;
void PlayFireMontage(bool bAiming);
void PlayEliminatedMontage();
@ -120,7 +122,7 @@ private:
bool bEliminated = false;
UPROPERTY(EditDefaultsOnly)
float EliminationDelay = 3.f;
float EliminationDelay = 2.f;
FTimerHandle EliminationTimer;
void EliminationTimerFinished();
@ -144,7 +146,16 @@ private:
// Material instance set on the Blueprint, used with the dynamic material instance
UPROPERTY(EditAnywhere, Category = Elimination)
UMaterialInstance* DissolveMaterialInstance;
// Elimination bot
UPROPERTY(EditAnywhere)
UParticleSystem* EliminationBotEffect;
UPROPERTY(VisibleAnywhere)
UParticleSystemComponent* EliminationBotComponent;
UPROPERTY(EditAnywhere)
USoundCue* EliminationBotSound;
public:
void SetOverlappingWeapon(AWeapon* Weapon);
bool IsWeaponEquipped();