112 - Displaying Carried Ammo

This commit is contained in:
Kingsmedia 2022-05-09 21:07:33 +02:00
parent e93a80d107
commit 2d10e1886d
4 changed files with 36 additions and 0 deletions

View File

@ -42,6 +42,10 @@ void UCombatComponent::BeginPlay()
DefaultFOV = Character->GetFollowCamera()->FieldOfView;
CurrentFOV = DefaultFOV;
}
if (Character->HasAuthority())
{
InitializeCarriedAmmo();
}
}
}
@ -219,6 +223,16 @@ bool UCombatComponent::CanFire()
void UCombatComponent::OnRep_CarriedAmmo()
{
Controller = Controller == nullptr ? Cast<ABlasterPlayerController>(Character->Controller) : Controller;
if (Controller)
{
Controller->SetHUDCarriedAmmo(CarriedAmmo);
}
}
void UCombatComponent::InitializeCarriedAmmo()
{
CarriedAmmoMap.Emplace(EWeaponType::EWT_AssaultRifle, StartingARAmmo);
}
void UCombatComponent::ServerFire_Implementation(const FVector_NetQuantize& TraceHitTarget)
@ -299,6 +313,18 @@ void UCombatComponent::EquipWeapon(AWeapon* WeaponToEquip)
}
EquippedWeapon->SetOwner(Character);
EquippedWeapon->SetHUDAmmo();
if (CarriedAmmoMap.Contains(EquippedWeapon->GetWeaponType()))
{
CarriedAmmo = CarriedAmmoMap[EquippedWeapon->GetWeaponType()];
}
Controller = Controller == nullptr ? Cast<ABlasterPlayerController>(Character->Controller) : Controller;
if (Controller)
{
Controller->SetHUDCarriedAmmo(CarriedAmmo);
}
Character->GetCharacterMovement()->bOrientRotationToMovement = false;
Character->bUseControllerRotationYaw = true;
}

View File

@ -110,4 +110,9 @@ private:
void OnRep_CarriedAmmo();
TMap<EWeaponType, int32> CarriedAmmoMap;
UPROPERTY(EditAnywhere)
int32 StartingARAmmo = 30;
void InitializeCarriedAmmo();
};

View File

@ -3,6 +3,7 @@
#pragma once
#include "CoreMinimal.h"
#include "WeaponTypes.h"
#include "GameFramework/Actor.h"
#include "Weapon.generated.h"
@ -121,6 +122,9 @@ private:
UPROPERTY()
class ABlasterPlayerController* OwnerController;
UPROPERTY(EditAnywhere)
EWeaponType WeaponType;
public:
void SetWeaponState(EWeaponState State);
@ -128,5 +132,6 @@ public:
FORCEINLINE USkeletalMeshComponent* GetWeaponMesh() const { return WeaponMesh; };
FORCEINLINE float GetZoomedFOV() const { return ZoomedFOV; };
FORCEINLINE float GetZoomInterpSpeed() const { return ZoomInterpSpeed; };
FORCEINLINE EWeaponType GetWeaponType() const { return WeaponType; }
bool IsEmpty();
};