diff --git a/Content/Assets/FX/SniperScope/BlkBG1920x1080.uasset b/Content/Assets/FX/SniperScope/BlkBG1920x1080.uasset new file mode 100644 index 0000000..445dbbf Binary files /dev/null and b/Content/Assets/FX/SniperScope/BlkBG1920x1080.uasset differ diff --git a/Content/Assets/FX/SniperScope/SniperScopeNoBG.uasset b/Content/Assets/FX/SniperScope/SniperScopeNoBG.uasset new file mode 100644 index 0000000..ef5b052 Binary files /dev/null and b/Content/Assets/FX/SniperScope/SniperScopeNoBG.uasset differ diff --git a/Content/Blueprints/Character/BP_BlasterCharacter.uasset b/Content/Blueprints/Character/BP_BlasterCharacter.uasset index 05ab4a6..b3295fc 100644 Binary files a/Content/Blueprints/Character/BP_BlasterCharacter.uasset and b/Content/Blueprints/Character/BP_BlasterCharacter.uasset differ diff --git a/Content/Blueprints/HUD/WBP_SniperScope.uasset b/Content/Blueprints/HUD/WBP_SniperScope.uasset new file mode 100644 index 0000000..bc66b06 Binary files /dev/null and b/Content/Blueprints/HUD/WBP_SniperScope.uasset differ diff --git a/Content/Blueprints/Weapon/BP_SniperRifle.uasset b/Content/Blueprints/Weapon/BP_SniperRifle.uasset index fb25901..75ef686 100644 Binary files a/Content/Blueprints/Weapon/BP_SniperRifle.uasset and b/Content/Blueprints/Weapon/BP_SniperRifle.uasset differ diff --git a/Content/Maps/BlasterMap.umap b/Content/Maps/BlasterMap.umap index ce3c185..b362bcf 100644 Binary files a/Content/Maps/BlasterMap.umap and b/Content/Maps/BlasterMap.umap differ diff --git a/Source/Blaster/Character/BlasterCharacter.cpp b/Source/Blaster/Character/BlasterCharacter.cpp index 9cb83c1..fd7ff16 100644 --- a/Source/Blaster/Character/BlasterCharacter.cpp +++ b/Source/Blaster/Character/BlasterCharacter.cpp @@ -137,6 +137,10 @@ void ABlasterCharacter::MulticastEliminated_Implementation() GetActorLocation() ); } + if (IsLocallyControlled() && GetEquippedWeapon()->GetWeaponType() == EWeaponType::EWT_SniperRifle && IsAiming()) + { + ShowSniperScopeWidget(false); + } } void ABlasterCharacter::EliminationTimerFinished() diff --git a/Source/Blaster/Character/BlasterCharacter.h b/Source/Blaster/Character/BlasterCharacter.h index eeca674..ddebdce 100644 --- a/Source/Blaster/Character/BlasterCharacter.h +++ b/Source/Blaster/Character/BlasterCharacter.h @@ -36,6 +36,9 @@ public: UPROPERTY(Replicated) bool bDisableGameplay = false; + + UFUNCTION(BlueprintImplementableEvent) + void ShowSniperScopeWidget(bool bShowScope); protected: virtual void BeginPlay() override; diff --git a/Source/Blaster/Components/CombatComponent.cpp b/Source/Blaster/Components/CombatComponent.cpp index b8e545b..2fe5004 100644 --- a/Source/Blaster/Components/CombatComponent.cpp +++ b/Source/Blaster/Components/CombatComponent.cpp @@ -420,11 +420,15 @@ void UCombatComponent::InterpFOV(float DeltaTime) void UCombatComponent::SetAiming(bool bIsAiming) { + if (Character == nullptr || EquippedWeapon == nullptr) return; bAiming = bIsAiming; ServerSetAiming(bIsAiming); - if (Character) + + Character->GetCharacterMovement()->MaxWalkSpeed = bIsAiming ? AimWalkSpeed : BaseWalkSpeed; + + if (Character->IsLocallyControlled() && EquippedWeapon->GetWeaponType() == EWeaponType::EWT_SniperRifle) { - Character->GetCharacterMovement()->MaxWalkSpeed = bIsAiming ? AimWalkSpeed : BaseWalkSpeed; + Character->ShowSniperScopeWidget(bIsAiming); } }