From ce6d62f32390998fd593db7f7ebcc522fd2fe573 Mon Sep 17 00:00:00 2001 From: Kingsmedia Date: Sat, 7 May 2022 11:04:11 +0200 Subject: [PATCH] 95 - Health --- Content/Blueprints/HUD/BP_BlasterHUD.uasset | Bin 21249 -> 22630 bytes .../HUD/WBP_CharacterOverlay.uasset | Bin 0 -> 28281 bytes Source/Blaster/Character/BlasterCharacter.cpp | 6 +++++ Source/Blaster/Character/BlasterCharacter.h | 11 ++++++++ Source/Blaster/HUD/BlasterHUD.cpp | 20 ++++++++++++++ Source/Blaster/HUD/BlasterHUD.h | 10 +++++++ Source/Blaster/HUD/CharacterOverlay.cpp | 5 ++++ Source/Blaster/HUD/CharacterOverlay.h | 25 ++++++++++++++++++ 8 files changed, 77 insertions(+) create mode 100644 Content/Blueprints/HUD/WBP_CharacterOverlay.uasset create mode 100644 Source/Blaster/HUD/CharacterOverlay.cpp create mode 100644 Source/Blaster/HUD/CharacterOverlay.h diff --git a/Content/Blueprints/HUD/BP_BlasterHUD.uasset b/Content/Blueprints/HUD/BP_BlasterHUD.uasset index 4e6c0daef0a45759762a1a9f592b19d7f94834e9..36daa9684b8918885a0cefb84520c652bb2e6634 100644 GIT binary patch delta 5332 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 NOiHtnOD~q6`4{2^@izbf diff --git a/Content/Blueprints/HUD/WBP_CharacterOverlay.uasset b/Content/Blueprints/HUD/WBP_CharacterOverlay.uasset new file mode 100644 index 0000000000000000000000000000000000000000..89c2c16d58c8b0aeab6afd4452b073d4dc6b631c GIT binary patch literal 28281 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 Ou Super::GetLifetimeReplicatedProps(OutLifetimeProps); DOREPLIFETIME_CONDITION(ABlasterCharacter, OverlappingWeapon, COND_OwnerOnly); + DOREPLIFETIME(ABlasterCharacter, Health); } void ABlasterCharacter::OnRep_ReplicatedMovement() @@ -401,6 +402,11 @@ float ABlasterCharacter::CalculateSpeed() return Velocity.Size(); } +void ABlasterCharacter::OnRep_Health() +{ + +} + void ABlasterCharacter::SetOverlappingWeapon(AWeapon* Weapon) { if (OverlappingWeapon) diff --git a/Source/Blaster/Character/BlasterCharacter.h b/Source/Blaster/Character/BlasterCharacter.h index df9fdc4..b1ef625 100644 --- a/Source/Blaster/Character/BlasterCharacter.h +++ b/Source/Blaster/Character/BlasterCharacter.h @@ -92,6 +92,17 @@ private: float ProxyYaw; float TimeSinceLastMovementReplication; float CalculateSpeed(); + + // Health + + UPROPERTY(EditAnywhere, Category= "Player Stats") + float MaxHealth = 100.f; + + UPROPERTY(ReplicatedUsing = OnRep_Health, VisibleAnywhere, Category= "Player Stats") + float Health = 100.f; + + UFUNCTION() + void OnRep_Health(); public: void SetOverlappingWeapon(AWeapon* Weapon); diff --git a/Source/Blaster/HUD/BlasterHUD.cpp b/Source/Blaster/HUD/BlasterHUD.cpp index 5e0731a..055d3ad 100644 --- a/Source/Blaster/HUD/BlasterHUD.cpp +++ b/Source/Blaster/HUD/BlasterHUD.cpp @@ -3,6 +3,26 @@ #include "BlasterHUD.h" +#include "CharacterOverlay.h" +#include "Blueprint/UserWidget.h" + +void ABlasterHUD::BeginPlay() +{ + Super::BeginPlay(); + + AddCharacterOverlay(); +} + +void ABlasterHUD::AddCharacterOverlay() +{ + APlayerController* PlayerController = GetOwningPlayerController(); + if (PlayerController && CharacterOverlayClass) + { + CharacterOverlay = CreateWidget(PlayerController, CharacterOverlayClass); + CharacterOverlay->AddToViewport(); + } +} + void ABlasterHUD::DrawHUD() { Super::DrawHUD(); diff --git a/Source/Blaster/HUD/BlasterHUD.h b/Source/Blaster/HUD/BlasterHUD.h index ab0f45f..7ef0b77 100644 --- a/Source/Blaster/HUD/BlasterHUD.h +++ b/Source/Blaster/HUD/BlasterHUD.h @@ -32,6 +32,16 @@ class BLASTER_API ABlasterHUD : public AHUD public: virtual void DrawHUD() override; + UPROPERTY(EditAnywhere, Category = "Player Stats") + TSubclassOf CharacterOverlayClass; + + class UCharacterOverlay* CharacterOverlay; + +protected: + + virtual void BeginPlay() override; + void AddCharacterOverlay(); + private: FHUDPackage HUDPackage; diff --git a/Source/Blaster/HUD/CharacterOverlay.cpp b/Source/Blaster/HUD/CharacterOverlay.cpp new file mode 100644 index 0000000..8a09925 --- /dev/null +++ b/Source/Blaster/HUD/CharacterOverlay.cpp @@ -0,0 +1,5 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "CharacterOverlay.h" + diff --git a/Source/Blaster/HUD/CharacterOverlay.h b/Source/Blaster/HUD/CharacterOverlay.h new file mode 100644 index 0000000..f7f517f --- /dev/null +++ b/Source/Blaster/HUD/CharacterOverlay.h @@ -0,0 +1,25 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "Blueprint/UserWidget.h" +#include "CharacterOverlay.generated.h" + +/** + * + */ +UCLASS() +class BLASTER_API UCharacterOverlay : public UUserWidget +{ + GENERATED_BODY() + +public: + + UPROPERTY(meta = (BindWidget)) + class UProgressBar* HealthBar; + + UPROPERTY(meta = (BindWidget)) + class UTextBlock* HealthText; + +};