171 - Local Fire Effects

This commit is contained in:
Kingsmedia 2022-05-26 13:29:49 +02:00
parent 72cf9d1833
commit 51a96c9fb1
3 changed files with 14 additions and 1 deletions

View File

@ -103,6 +103,7 @@ void UCombatComponent::Fire()
{
bCanFire = false;
ServerFire(HitTarget);
LocalFire(HitTarget);
if (PrimaryWeapon)
{
CrosshairShootingFactor = .75f;
@ -139,6 +140,12 @@ void UCombatComponent::ServerFire_Implementation(const FVector_NetQuantize& Trac
}
void UCombatComponent::MulticastFire_Implementation(const FVector_NetQuantize& TraceHitTarget)
{
if (Character && Character->IsLocallyControlled() && !Character->HasAuthority()) return;
LocalFire(TraceHitTarget);
}
void UCombatComponent::LocalFire(const FVector_NetQuantize& TraceHitTarget)
{
if (PrimaryWeapon == nullptr) return;
if (Character && CombatState == ECombatState::ECS_Reloading && PrimaryWeapon->IsShotgun())
@ -175,6 +182,8 @@ void UCombatComponent::EquipWeapon(AWeapon* WeaponToEquip)
void UCombatComponent::SwapWeapons()
{
if (CombatState != ECombatState::ECS_Unoccupied) return;
AWeapon* TempWeapon = PrimaryWeapon;
PrimaryWeapon = SecondaryWeapon;
SecondaryWeapon = TempWeapon;

View File

@ -152,6 +152,7 @@ private:
void StartFireTimer();
void FireTimerFinished();
void LocalFire(const FVector_NetQuantize& TraceHitTarget);
bool CanFire();

View File

@ -270,7 +270,10 @@ void AWeapon::Fire(const FVector& HitTarget)
}
}
}
SpendRound();
if (HasAuthority())
{
SpendRound();
}
}
void AWeapon::Dropped()