129 - Rocket Projectiles
This commit is contained in:
parent
927ab3aaa1
commit
a835a6fccf
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -455,4 +455,5 @@ void UCombatComponent::OnRep_CarriedAmmo()
|
|||
void UCombatComponent::InitializeCarriedAmmo()
|
||||
{
|
||||
CarriedAmmoMap.Emplace(EWeaponType::EWT_AssaultRifle, StartingARAmmo);
|
||||
CarriedAmmoMap.Emplace(EWeaponType::EWT_RocketLauncher, StartingRocketAmmo);
|
||||
}
|
||||
|
|
|
@ -123,6 +123,9 @@ private:
|
|||
UPROPERTY(EditAnywhere)
|
||||
int32 StartingARAmmo = 30;
|
||||
|
||||
UPROPERTY(EditAnywhere)
|
||||
int32 StartingRocketAmmo = 8;
|
||||
|
||||
void InitializeCarriedAmmo();
|
||||
|
||||
UPROPERTY(ReplicatedUsing=OnRep_CombatState)
|
||||
|
|
|
@ -391,7 +391,7 @@ void ABlasterPlayerController::HandleMatchHasStarted()
|
|||
BlasterHUD = BlasterHUD == nullptr ? Cast<ABlasterHUD>(GetHUD()) : BlasterHUD;
|
||||
if (BlasterHUD)
|
||||
{
|
||||
BlasterHUD->AddCharacterOverlay();
|
||||
if (BlasterHUD->CharacterOverlay == nullptr) BlasterHUD->AddCharacterOverlay();
|
||||
if (BlasterHUD->Announcement)
|
||||
{
|
||||
BlasterHUD->Announcement->SetVisibility(ESlateVisibility::Hidden);
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
|
||||
#include "ProjectileRocket.h"
|
||||
|
||||
#include "Kismet/GameplayStatics.h"
|
||||
|
||||
AProjectileRocket::AProjectileRocket()
|
||||
{
|
||||
RocketMesh = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("Rocket Mesh"));
|
||||
RocketMesh->SetupAttachment(RootComponent);
|
||||
RocketMesh->SetCollisionEnabled(ECollisionEnabled::NoCollision);
|
||||
}
|
||||
|
||||
void AProjectileRocket::OnHit(UPrimitiveComponent* HitComp, AActor* OtherActor, UPrimitiveComponent* OtherComp, FVector NormalImpulse, const FHitResult& Hit)
|
||||
{
|
||||
APawn* FiringPawn = GetInstigator();
|
||||
if (FiringPawn)
|
||||
{
|
||||
AController* FiringController = FiringPawn->GetController();
|
||||
if (FiringController)
|
||||
{
|
||||
UGameplayStatics::ApplyRadialDamageWithFalloff(
|
||||
this,
|
||||
Damage,
|
||||
10.f,
|
||||
GetActorLocation(),
|
||||
200.f,
|
||||
500.f,
|
||||
1.f,
|
||||
UDamageType::StaticClass(),
|
||||
TArray<AActor*>(),
|
||||
this,
|
||||
FiringController
|
||||
);
|
||||
}
|
||||
}
|
||||
Super::OnHit(HitComp, OtherActor, OtherComp, NormalImpulse, Hit);
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "Projectile.h"
|
||||
#include "ProjectileRocket.generated.h"
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
UCLASS()
|
||||
class BLASTER_API AProjectileRocket : public AProjectile
|
||||
{
|
||||
GENERATED_BODY()
|
||||
public:
|
||||
AProjectileRocket();
|
||||
|
||||
protected:
|
||||
|
||||
virtual void OnHit(UPrimitiveComponent* HitComp, AActor* OtherActor, UPrimitiveComponent* OtherComp, FVector NormalImpulse, const FHitResult& Hit) override;
|
||||
|
||||
private:
|
||||
|
||||
UPROPERTY(VisibleAnywhere)
|
||||
UStaticMeshComponent* RocketMesh;
|
||||
};
|
|
@ -4,6 +4,7 @@ UENUM(BlueprintType)
|
|||
enum class EWeaponType: uint8
|
||||
{
|
||||
EWT_AssaultRifle UMETA(DisplayName="Assault Rifle"),
|
||||
EWT_RocketLauncher UMETA(DisplayName="Rocket Launcher"),
|
||||
|
||||
EWT_MAX UMETA(DisplayName="DefaultMAX")
|
||||
};
|
Loading…
Reference in New Issue