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()
{
if (bCanFire)
if (CanFire())
{
bCanFire = false;
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)
{
MulticastFire(TraceHitTarget);

View File

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

View File

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

View File

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