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);
|
Super::GetLifetimeReplicatedProps(OutLifetimeProps);
|
||||||
|
|
||||||
DOREPLIFETIME(UCombatComponent, EquippedWeapon);
|
DOREPLIFETIME(UCombatComponent, EquippedWeapon);
|
||||||
|
DOREPLIFETIME_CONDITION(UCombatComponent, CarriedAmmo, COND_OwnerOnly);
|
||||||
DOREPLIFETIME(UCombatComponent, bAiming);
|
DOREPLIFETIME(UCombatComponent, bAiming);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -216,6 +217,10 @@ bool UCombatComponent::CanFire()
|
||||||
return !EquippedWeapon->IsEmpty() || !bCanFire;
|
return !EquippedWeapon->IsEmpty() || !bCanFire;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void UCombatComponent::OnRep_CarriedAmmo()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
void UCombatComponent::ServerFire_Implementation(const FVector_NetQuantize& TraceHitTarget)
|
void UCombatComponent::ServerFire_Implementation(const FVector_NetQuantize& TraceHitTarget)
|
||||||
{
|
{
|
||||||
MulticastFire(TraceHitTarget);
|
MulticastFire(TraceHitTarget);
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
#include "CoreMinimal.h"
|
#include "CoreMinimal.h"
|
||||||
#include "Blaster/HUD/BlasterHUD.h"
|
#include "Blaster/HUD/BlasterHUD.h"
|
||||||
|
#include "Blaster/Weapon/WeaponTypes.h"
|
||||||
#include "Components/ActorComponent.h"
|
#include "Components/ActorComponent.h"
|
||||||
#include "CombatComponent.generated.h"
|
#include "CombatComponent.generated.h"
|
||||||
|
|
||||||
|
@ -100,4 +101,13 @@ private:
|
||||||
void FireTimerFinished();
|
void FireTimerFinished();
|
||||||
|
|
||||||
bool CanFire();
|
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))
|
UPROPERTY(meta = (BindWidget))
|
||||||
UTextBlock* WeaponAmmoValue;
|
UTextBlock* WeaponAmmoValue;
|
||||||
|
|
||||||
|
UPROPERTY(meta = (BindWidget))
|
||||||
|
UTextBlock* CarriedAmmoValue;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -89,3 +89,18 @@ void ABlasterPlayerController::SetHUDWeaponAmmo(int32 Ammo)
|
||||||
BlasterHUD->CharacterOverlay->WeaponAmmoValue->SetText(FText::FromString(WeaponAmmoAmount));
|
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 SetHUDScore(float Score);
|
||||||
void SetHUDDefeats(int32 Defeats);
|
void SetHUDDefeats(int32 Defeats);
|
||||||
void SetHUDWeaponAmmo(int32 Ammo);
|
void SetHUDWeaponAmmo(int32 Ammo);
|
||||||
|
void SetHUDCarriedAmmo(int32 Ammo);
|
||||||
virtual void OnPossess(APawn* InPawn) override;
|
virtual void OnPossess(APawn* InPawn) override;
|
||||||
|
|
||||||
protected:
|
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