111 - Carried Ammo
This commit is contained in:
parent
cac45b8c16
commit
e93a80d107
Binary file not shown.
|
@ -25,6 +25,7 @@ void UCombatComponent::GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& Out
|
|||
Super::GetLifetimeReplicatedProps(OutLifetimeProps);
|
||||
|
||||
DOREPLIFETIME(UCombatComponent, EquippedWeapon);
|
||||
DOREPLIFETIME_CONDITION(UCombatComponent, CarriedAmmo, COND_OwnerOnly);
|
||||
DOREPLIFETIME(UCombatComponent, bAiming);
|
||||
}
|
||||
|
||||
|
@ -216,6 +217,10 @@ bool UCombatComponent::CanFire()
|
|||
return !EquippedWeapon->IsEmpty() || !bCanFire;
|
||||
}
|
||||
|
||||
void UCombatComponent::OnRep_CarriedAmmo()
|
||||
{
|
||||
}
|
||||
|
||||
void UCombatComponent::ServerFire_Implementation(const FVector_NetQuantize& TraceHitTarget)
|
||||
{
|
||||
MulticastFire(TraceHitTarget);
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
#include "CoreMinimal.h"
|
||||
#include "Blaster/HUD/BlasterHUD.h"
|
||||
#include "Blaster/Weapon/WeaponTypes.h"
|
||||
#include "Components/ActorComponent.h"
|
||||
#include "CombatComponent.generated.h"
|
||||
|
||||
|
@ -100,4 +101,13 @@ private:
|
|||
void FireTimerFinished();
|
||||
|
||||
bool CanFire();
|
||||
|
||||
// Carried ammo for the currently equipped weapon
|
||||
UPROPERTY(ReplicatedUsing=OnRep_CarriedAmmo)
|
||||
int32 CarriedAmmo;
|
||||
|
||||
UFUNCTION()
|
||||
void OnRep_CarriedAmmo();
|
||||
|
||||
TMap<EWeaponType, int32> CarriedAmmoMap;
|
||||
};
|
||||
|
|
|
@ -31,4 +31,7 @@ public:
|
|||
UPROPERTY(meta = (BindWidget))
|
||||
UTextBlock* WeaponAmmoValue;
|
||||
|
||||
UPROPERTY(meta = (BindWidget))
|
||||
UTextBlock* CarriedAmmoValue;
|
||||
|
||||
};
|
||||
|
|
|
@ -89,3 +89,18 @@ void ABlasterPlayerController::SetHUDWeaponAmmo(int32 Ammo)
|
|||
BlasterHUD->CharacterOverlay->WeaponAmmoValue->SetText(FText::FromString(WeaponAmmoAmount));
|
||||
}
|
||||
}
|
||||
|
||||
void ABlasterPlayerController::SetHUDCarriedAmmo(int32 Ammo)
|
||||
{
|
||||
BlasterHUD = BlasterHUD == nullptr ? Cast<ABlasterHUD>(GetHUD()) : BlasterHUD;
|
||||
bool bHUDValid =
|
||||
BlasterHUD &&
|
||||
BlasterHUD->CharacterOverlay &&
|
||||
BlasterHUD->CharacterOverlay->CarriedAmmoValue;
|
||||
|
||||
if (bHUDValid)
|
||||
{
|
||||
const FString CarriedAmmoAmount = FString::Printf(TEXT("%d"), Ammo);
|
||||
BlasterHUD->CharacterOverlay->CarriedAmmoValue->SetText(FText::FromString(CarriedAmmoAmount));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,6 +20,7 @@ public:
|
|||
void SetHUDScore(float Score);
|
||||
void SetHUDDefeats(int32 Defeats);
|
||||
void SetHUDWeaponAmmo(int32 Ammo);
|
||||
void SetHUDCarriedAmmo(int32 Ammo);
|
||||
virtual void OnPossess(APawn* InPawn) override;
|
||||
|
||||
protected:
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
#pragma once
|
||||
|
||||
UENUM(BlueprintType)
|
||||
enum class EWeaponType: uint8
|
||||
{
|
||||
EWT_AssaultRifle UMETA(DisplayName="Assault Rifle"),
|
||||
|
||||
EWT_MAX UMETA(DisplayName="DefaultMAX")
|
||||
};
|
Loading…
Reference in New Issue