129 - Rocket Projectiles

This commit is contained in:
Kingsmedia 2022-05-18 14:44:39 +02:00
parent 927ab3aaa1
commit a835a6fccf
12 changed files with 72 additions and 1 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -455,4 +455,5 @@ void UCombatComponent::OnRep_CarriedAmmo()
void UCombatComponent::InitializeCarriedAmmo() void UCombatComponent::InitializeCarriedAmmo()
{ {
CarriedAmmoMap.Emplace(EWeaponType::EWT_AssaultRifle, StartingARAmmo); CarriedAmmoMap.Emplace(EWeaponType::EWT_AssaultRifle, StartingARAmmo);
CarriedAmmoMap.Emplace(EWeaponType::EWT_RocketLauncher, StartingRocketAmmo);
} }

View File

@ -123,6 +123,9 @@ private:
UPROPERTY(EditAnywhere) UPROPERTY(EditAnywhere)
int32 StartingARAmmo = 30; int32 StartingARAmmo = 30;
UPROPERTY(EditAnywhere)
int32 StartingRocketAmmo = 8;
void InitializeCarriedAmmo(); void InitializeCarriedAmmo();
UPROPERTY(ReplicatedUsing=OnRep_CombatState) UPROPERTY(ReplicatedUsing=OnRep_CombatState)

View File

@ -391,7 +391,7 @@ void ABlasterPlayerController::HandleMatchHasStarted()
BlasterHUD = BlasterHUD == nullptr ? Cast<ABlasterHUD>(GetHUD()) : BlasterHUD; BlasterHUD = BlasterHUD == nullptr ? Cast<ABlasterHUD>(GetHUD()) : BlasterHUD;
if (BlasterHUD) if (BlasterHUD)
{ {
BlasterHUD->AddCharacterOverlay(); if (BlasterHUD->CharacterOverlay == nullptr) BlasterHUD->AddCharacterOverlay();
if (BlasterHUD->Announcement) if (BlasterHUD->Announcement)
{ {
BlasterHUD->Announcement->SetVisibility(ESlateVisibility::Hidden); BlasterHUD->Announcement->SetVisibility(ESlateVisibility::Hidden);

View File

@ -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);
}

View File

@ -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;
};

View File

@ -4,6 +4,7 @@ UENUM(BlueprintType)
enum class EWeaponType: uint8 enum class EWeaponType: uint8
{ {
EWT_AssaultRifle UMETA(DisplayName="Assault Rifle"), EWT_AssaultRifle UMETA(DisplayName="Assault Rifle"),
EWT_RocketLauncher UMETA(DisplayName="Rocket Launcher"),
EWT_MAX UMETA(DisplayName="DefaultMAX") EWT_MAX UMETA(DisplayName="DefaultMAX")
}; };