From 9373e4a1c27848f8cd43e5464e9f0cbd63f8f940 Mon Sep 17 00:00:00 2001 From: Kingsmedia Date: Mon, 9 May 2022 18:39:41 +0200 Subject: [PATCH] 109 - Weapon Ammo --- .../HUD/WBP_CharacterOverlay.uasset | Bin 37204 -> 42584 bytes .../Blueprints/Weapon/BP_AssaultRifle.uasset | Bin 32009 -> 32078 bytes Source/Blaster/Character/BlasterCharacter.cpp | 4 ++ Source/Blaster/Components/CombatComponent.cpp | 6 ++- Source/Blaster/HUD/CharacterOverlay.h | 3 ++ .../BlasterPlayerController.cpp | 15 ++++++ .../BlasterPlayerController.h | 1 + Source/Blaster/Weapon/Weapon.cpp | 44 ++++++++++++++++++ Source/Blaster/Weapon/Weapon.h | 18 +++++++ 9 files changed, 90 insertions(+), 1 deletion(-) diff --git a/Content/Blueprints/HUD/WBP_CharacterOverlay.uasset b/Content/Blueprints/HUD/WBP_CharacterOverlay.uasset index 514fc0af156177ab665a7bd571e758613e20791f..b31c20afa8f945b90030ce8dde7e2572231e46d6 100644 GIT binary patch literal 42584 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

|AhYi1||$h7(8g;;Kaj*CLVN9;@DB6haEO) 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 literal 37204 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 diff --git a/Content/Blueprints/Weapon/BP_AssaultRifle.uasset b/Content/Blueprints/Weapon/BP_AssaultRifle.uasset index fad8d436ba9db7aaa057c8846cea13b58591ebea..4189f773a80ecb1d59bc605f6ffd86a06ed2fae0 100644 GIT binary patch delta 11538 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 delta 11263 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 + } bEliminated = true; PlayEliminatedMontage(); diff --git a/Source/Blaster/Components/CombatComponent.cpp b/Source/Blaster/Components/CombatComponent.cpp index 9780d79..608c848 100644 --- a/Source/Blaster/Components/CombatComponent.cpp +++ b/Source/Blaster/Components/CombatComponent.cpp @@ -274,7 +274,10 @@ void UCombatComponent::TraceUnderCrosshairs(FHitResult& TraceHitResult) void UCombatComponent::EquipWeapon(AWeapon* WeaponToEquip) { if (Character == nullptr || WeaponToEquip == nullptr) return; - + if (EquippedWeapon) + { + EquippedWeapon->Dropped(); + } EquippedWeapon = WeaponToEquip; EquippedWeapon->SetWeaponState(EWeaponState::EWS_Equipped); const USkeletalMeshSocket* HandSocket = Character->GetMesh()->GetSocketByName(FName("RightHandSocket")); @@ -283,6 +286,7 @@ void UCombatComponent::EquipWeapon(AWeapon* WeaponToEquip) HandSocket->AttachActor(EquippedWeapon, Character->GetMesh()); } EquippedWeapon->SetOwner(Character); + EquippedWeapon->SetHUDAmmo(); Character->GetCharacterMovement()->bOrientRotationToMovement = false; Character->bUseControllerRotationYaw = true; } diff --git a/Source/Blaster/HUD/CharacterOverlay.h b/Source/Blaster/HUD/CharacterOverlay.h index b8094b4..e996edf 100644 --- a/Source/Blaster/HUD/CharacterOverlay.h +++ b/Source/Blaster/HUD/CharacterOverlay.h @@ -28,4 +28,7 @@ public: UPROPERTY(meta = (BindWidget)) UTextBlock* DefeatsValue; + UPROPERTY(meta = (BindWidget)) + UTextBlock* WeaponAmmoValue; + }; diff --git a/Source/Blaster/PlayerController/BlasterPlayerController.cpp b/Source/Blaster/PlayerController/BlasterPlayerController.cpp index d75ce2d..ada3f41 100644 --- a/Source/Blaster/PlayerController/BlasterPlayerController.cpp +++ b/Source/Blaster/PlayerController/BlasterPlayerController.cpp @@ -74,3 +74,18 @@ void ABlasterPlayerController::SetHUDDefeats(int32 Defeats) BlasterHUD->CharacterOverlay->DefeatsValue->SetText(FText::FromString(DefeatsAmount)); } } + +void ABlasterPlayerController::SetHUDWeaponAmmo(int32 Ammo) +{ + BlasterHUD = BlasterHUD == nullptr ? Cast(GetHUD()) : BlasterHUD; + bool bHUDValid = + BlasterHUD && + BlasterHUD->CharacterOverlay && + BlasterHUD->CharacterOverlay->WeaponAmmoValue; + + if (bHUDValid) + { + const FString WeaponAmmoAmount = FString::Printf(TEXT("%d"), Ammo); + BlasterHUD->CharacterOverlay->WeaponAmmoValue->SetText(FText::FromString(WeaponAmmoAmount)); + } +} diff --git a/Source/Blaster/PlayerController/BlasterPlayerController.h b/Source/Blaster/PlayerController/BlasterPlayerController.h index 1b95b0b..ace19be 100644 --- a/Source/Blaster/PlayerController/BlasterPlayerController.h +++ b/Source/Blaster/PlayerController/BlasterPlayerController.h @@ -19,6 +19,7 @@ public: void SetHUDHealth(float Health, float MaxHealth); void SetHUDScore(float Score); void SetHUDDefeats(int32 Defeats); + void SetHUDWeaponAmmo(int32 Ammo); virtual void OnPossess(APawn* InPawn) override; protected: diff --git a/Source/Blaster/Weapon/Weapon.cpp b/Source/Blaster/Weapon/Weapon.cpp index c88eee4..97d0364 100644 --- a/Source/Blaster/Weapon/Weapon.cpp +++ b/Source/Blaster/Weapon/Weapon.cpp @@ -5,6 +5,7 @@ #include "Casing.h" #include "Blaster/Character/BlasterCharacter.h" +#include "Blaster/PlayerController/BlasterPlayerController.h" #include "Components/SphereComponent.h" #include "Components/WidgetComponent.h" #include "Engine/SkeletalMeshSocket.h" @@ -37,6 +38,7 @@ void AWeapon::GetLifetimeReplicatedProps(TArray& OutLifetimeP Super::GetLifetimeReplicatedProps(OutLifetimeProps); DOREPLIFETIME(AWeapon, WeaponState); + DOREPLIFETIME(AWeapon, Ammo); } void AWeapon::BeginPlay() @@ -81,6 +83,45 @@ void AWeapon::OnSphereEndOverlap(UPrimitiveComponent* OverlappedComponent, AActo } } + +void AWeapon::OnRep_Owner() +{ + Super::OnRep_Owner(); + if (Owner == nullptr) + { + OwnerCharacter = nullptr; + OwnerController = nullptr; + } else + { + SetHUDAmmo(); + } +} + +void AWeapon::SetHUDAmmo() +{ + OwnerCharacter = OwnerCharacter == nullptr ? Cast(GetOwner()) : OwnerCharacter; + if (OwnerCharacter) + { + OwnerController = OwnerController == nullptr ? Cast(OwnerCharacter->Controller) : OwnerController; + if (OwnerController) + { + OwnerController->SetHUDWeaponAmmo(Ammo); + } + } +} + +void AWeapon::SpendRound() +{ + --Ammo; + + SetHUDAmmo(); +} + +void AWeapon::OnRep_Ammo() +{ + SetHUDAmmo(); +} + void AWeapon::SetWeaponState(EWeaponState State) { WeaponState = State; @@ -155,6 +196,7 @@ void AWeapon::Fire(const FVector& HitTarget) } } } + SpendRound(); } void AWeapon::Dropped() @@ -163,4 +205,6 @@ void AWeapon::Dropped() const FDetachmentTransformRules DetachRules(EDetachmentRule::KeepWorld, true); WeaponMesh->DetachFromComponent(DetachRules); SetOwner(nullptr); + OwnerCharacter = nullptr; + OwnerController = nullptr; } diff --git a/Source/Blaster/Weapon/Weapon.h b/Source/Blaster/Weapon/Weapon.h index 1bf02e0..4f22af5 100644 --- a/Source/Blaster/Weapon/Weapon.h +++ b/Source/Blaster/Weapon/Weapon.h @@ -24,6 +24,8 @@ class BLASTER_API AWeapon : public AActor public: AWeapon(); virtual void GetLifetimeReplicatedProps(TArray& OutLifetimeProps) const override; + virtual void OnRep_Owner() override; + void SetHUDAmmo(); void ShowPickupWidget(bool bShowWidget); virtual void Fire(const FVector& HitTarget); void Dropped(); @@ -102,7 +104,23 @@ private: UPROPERTY(EditAnywhere, Category= "Weapon Properties") TSubclassOf CasingClass; + + UPROPERTY(EditAnywhere, ReplicatedUsing=OnRep_Ammo) + int32 Ammo; + UFUNCTION() + void OnRep_Ammo(); + + void SpendRound(); + + UPROPERTY(EditAnywhere) + int32 MagCapacity; + + UPROPERTY() + class ABlasterCharacter* OwnerCharacter; + + UPROPERTY() + class ABlasterPlayerController* OwnerController; public: void SetWeaponState(EWeaponState State);