110 - Can Fire

This commit is contained in:
Kingsmedia 2022-05-09 18:48:14 +02:00
parent 9373e4a1c2
commit cac45b8c16
4 changed files with 17 additions and 4 deletions

View File

@ -166,7 +166,7 @@ void UCombatComponent::ServerSetAiming_Implementation(bool bIsAiming)
void UCombatComponent::Fire() void UCombatComponent::Fire()
{ {
if (bCanFire) if (CanFire())
{ {
bCanFire = false; bCanFire = false;
ServerFire(HitTarget); ServerFire(HitTarget);
@ -209,6 +209,13 @@ void UCombatComponent::FireTimerFinished()
} }
} }
bool UCombatComponent::CanFire()
{
if (EquippedWeapon == nullptr) return false;
return !EquippedWeapon->IsEmpty() || !bCanFire;
}
void UCombatComponent::ServerFire_Implementation(const FVector_NetQuantize& TraceHitTarget) void UCombatComponent::ServerFire_Implementation(const FVector_NetQuantize& TraceHitTarget)
{ {
MulticastFire(TraceHitTarget); MulticastFire(TraceHitTarget);

View File

@ -98,4 +98,6 @@ private:
void StartFireTimer(); void StartFireTimer();
void FireTimerFinished(); void FireTimerFinished();
bool CanFire();
}; };

View File

@ -112,8 +112,7 @@ void AWeapon::SetHUDAmmo()
void AWeapon::SpendRound() void AWeapon::SpendRound()
{ {
--Ammo; Ammo = FMath::Clamp(Ammo - 1, 0, MagCapacity);
SetHUDAmmo(); SetHUDAmmo();
} }
@ -146,6 +145,11 @@ void AWeapon::SetWeaponState(EWeaponState State)
} }
} }
bool AWeapon::IsEmpty()
{
return Ammo <= 0;
}
void AWeapon::OnRep_WeaponState() void AWeapon::OnRep_WeaponState()
{ {
switch (WeaponState) switch (WeaponState)

View File

@ -128,5 +128,5 @@ public:
FORCEINLINE USkeletalMeshComponent* GetWeaponMesh() const { return WeaponMesh; }; FORCEINLINE USkeletalMeshComponent* GetWeaponMesh() const { return WeaponMesh; };
FORCEINLINE float GetZoomedFOV() const { return ZoomedFOV; }; FORCEINLINE float GetZoomedFOV() const { return ZoomedFOV; };
FORCEINLINE float GetZoomInterpSpeed() const { return ZoomInterpSpeed; }; FORCEINLINE float GetZoomInterpSpeed() const { return ZoomInterpSpeed; };
bool IsEmpty();
}; };