diff --git a/Source/Nakatomi/PlayerCharacter.cpp b/Source/Nakatomi/PlayerCharacter.cpp index ee684d6..18d29be 100644 --- a/Source/Nakatomi/PlayerCharacter.cpp +++ b/Source/Nakatomi/PlayerCharacter.cpp @@ -265,7 +265,7 @@ void APlayerCharacter::CalculateHits(TArray* hits) // Set up randomness const int32 RandomSeed = FMath::Rand(); FRandomStream WeaponRandomStream(RandomSeed); - const float Spread = CurrentWeapon->GetWeaponProperties()->WeaponSpread; + const float Spread = CurrentWeapon->GetWeaponProperties()->WeaponSpread * WeaponSpreadMultiplier; const float Range = CurrentWeapon->GetWeaponProperties()->ProjectileRange; FVector CamStart = CameraComponent->GetComponentTransform().GetLocation(); @@ -419,6 +419,11 @@ void APlayerCharacter::BeginAimDownSightsCallback(const FInputActionInstance& In AimSensitivity = DefaultAimSensitivity * ADSAimSensitivityMultiplier; + if (CurrentWeapon) + { + WeaponSpreadMultiplier = CurrentWeapon->GetWeaponProperties()->ADSWeaponSpreadMultiplier; + } + FLatentActionInfo LatentActionInfo; LatentActionInfo.CallbackTarget = this; CameraComponent->AttachToComponent(CameraADSSpringArmComponent, FAttachmentTransformRules::KeepWorldTransform, @@ -437,6 +442,8 @@ void APlayerCharacter::EndAimDownSightsCallback(const FInputActionInstance& Inst AimSensitivity = DefaultAimSensitivity; + WeaponSpreadMultiplier = 1.0f; + FLatentActionInfo LatentActionInfo; LatentActionInfo.CallbackTarget = this; CameraComponent->AttachToComponent(CameraSpringArmComponent, FAttachmentTransformRules::KeepWorldTransform, diff --git a/Source/Nakatomi/PlayerCharacter.h b/Source/Nakatomi/PlayerCharacter.h index 9b23bcb..f6a03cc 100644 --- a/Source/Nakatomi/PlayerCharacter.h +++ b/Source/Nakatomi/PlayerCharacter.h @@ -105,6 +105,8 @@ private: bool IsADS = false; float AimSensitivity; + + float WeaponSpreadMultiplier = 1.0; public: // Sets default values for this character's properties diff --git a/Source/Nakatomi/WeaponProperties.h b/Source/Nakatomi/WeaponProperties.h index 579ecf6..bbd36df 100644 --- a/Source/Nakatomi/WeaponProperties.h +++ b/Source/Nakatomi/WeaponProperties.h @@ -38,6 +38,9 @@ struct FWeaponProperties UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Weapon Properties") float WeaponSpread = 2.5f; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Weapon Properties") + float ADSWeaponSpreadMultiplier = 0.5f; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Weapon Properties") bool IsAutomatic = true; };