110 - Can Fire
This commit is contained in:
parent
9373e4a1c2
commit
cac45b8c16
|
@ -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);
|
||||||
|
|
|
@ -98,4 +98,6 @@ private:
|
||||||
|
|
||||||
void StartFireTimer();
|
void StartFireTimer();
|
||||||
void FireTimerFinished();
|
void FireTimerFinished();
|
||||||
|
|
||||||
|
bool CanFire();
|
||||||
};
|
};
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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();
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue