From 9f8760f8628107825ec17d7efdabda66a15c1888 Mon Sep 17 00:00:00 2001 From: Kingsmedia Date: Tue, 10 May 2022 13:31:39 +0200 Subject: [PATCH] 123 - Warmup Timer --- Content/Blueprints/HUD/BP_BlasterHUD.uasset | Bin 22630 -> 22842 bytes .../Blueprints/HUD/WBP_Announcement.uasset | Bin 0 -> 28665 bytes Source/Blaster/HUD/Announcement.cpp | 5 +++ Source/Blaster/HUD/Announcement.h | 25 ++++++++++++++ Source/Blaster/HUD/BlasterHUD.cpp | 11 ++++++ Source/Blaster/HUD/BlasterHUD.h | 6 ++++ .../BlasterPlayerController.cpp | 32 ++++++++++++------ .../BlasterPlayerController.h | 1 + 8 files changed, 69 insertions(+), 11 deletions(-) create mode 100644 Content/Blueprints/HUD/WBP_Announcement.uasset create mode 100644 Source/Blaster/HUD/Announcement.cpp create mode 100644 Source/Blaster/HUD/Announcement.h diff --git a/Content/Blueprints/HUD/BP_BlasterHUD.uasset b/Content/Blueprints/HUD/BP_BlasterHUD.uasset index 36daa9684b8918885a0cefb84520c652bb2e6634..a137d6554342d4dbeff2c3e15d910f1a8edef480 100644 GIT binary patch delta 4751 zcmd5=Yiv|i5Iz^mV{4V&?cMENXra(8lmex+mRC!=-O}ws+wGPXT6xu47mAccX)6Na zf?`MvQSg}fLorcIG(-|()gLMr5@SMQ@DFPIBWa=_s36gZN(#>0ow;1v+wGEQ;v{$H zoSE;;%$YOik-hM)^3i+B;qRT7%7hpvga~bqMu4S=-ADc?TwHXo5cfg%C5I3i@N>|A zGD8Rj+G!wA;VXpCH+9yGy-I)JRZU4P-9P&cxlz%S-EybWlywNy3m*WyiEaU*!&Z4w z>748YO=UE?y*Jts*%pcRRCTp?cZ=&OI|}<6#vGiW%#`ogGs zVuB4KFgh~u4&3%6a6f~+M@PlQgh1e9qXLEa32^O6;yRMVJq-SJvPg|FV|2VVNnB5o zxW@?>8_jWD5(Y0rfV~NDJ4lC&OP>73=g-Au2ChxgAQ!OJM9lWqTiT=in}Hn6Xa+Z0 z8jK6g_8zprwUKNWum7)*!kvkLq`L~ZCoFK+K~7?w;bDbz4}8^Q^`^k1g$Yk8{N$u+ zO&)b*%6f<0y@|9o;Ga;tz$XVB`2d;g-a?`!z`Ln^*(aw5i{(?!9QQU7O$7b{wKr56 z>eVLo32Hn2q)wNEPP-eoKL&*s$|&gm;gB%|@uffm=tlK0D>xXf)Dfg~r4A`jbKH1# zu#>~s06G{lESym7Zk`-EIy6B?h>WltT%IovJ0{A#PE~qbcK0K3jhGF5Cbf^X7?z#| z2<{4YmPU{>amaVB95?PlR$n0XSGO%}aNFIu{}{4|ARo6HPR_XV95_b|6-waNkMLcR zH{C5tE38|N+?C-St7$@BTbd};Hy_bW@PJi?v>?uID=`c{G0Nq>3N_X|1cIxA#CCOuXdJVM#EvY1cojQ!*ll1Y z^%oHrxcG1x>lEUe_mZH9IJ-GYCD1@}J(CP#VJCs6%KZ+_GmW6E&7pohWIS8GwQPzf zI0Rv*ehVP-%2!Y?k2r?{-F+1t?@%W^p?XJ z7sZGOYj*BPN?dGSC3pZCM4{VAz-i(n6krnNx(d6C=Ze5Ps;0!O!Gc2st^o(=K>?5= zvUNG??D9-Su2Lo)E;WX_wA2IQFBm%qJ3zFCdfRLt%LQLaNNnFo0PZIQAPrMq0wr4w z#W6xfE+an8Z}zd0w8Kmcf{9X6vQth}x$O68#aQx4<_yOr^WsccCOGy*;K0N;*PgFA z`eAV3?bKeQuyD{_g~LnCvFnM%#Z4HQTMy1MH2GzvJ=dI_TpcTni3F%$f|X*spL*r8 zy;`*uQ*V*{bcJTTUhpxFG&D(AA93PM%CnhHaxsG%(bdJa>_) zIwMo$hi5L9vt!~TCvPbs7Rb}p>ZWY!{U@osn@pYyU?zVESZDHPRYdL!rpQw@-h|mK zk_UobnO)g z^5pC%-lpq9SX^D9(gYL0t;p6e!c_S1M8wNLlj|EarB?Pf%yZ)PiG(L*&yL=Rm@nUN zC@IFb7Lp;x6Gk7ai%kmLvvH%D;RHr|!X=6-kB66JWRV4o$RF9fB^vH(-z65xzr(YY zCh2Wls@P>)qf1fydK=pnB};y@DoY`C-?XMC1?+S;`<-kDLu}sCvDGkft+~pH#*vKp zRT)_Q0vP*x^)xmnv)4R5zEX!BxiKp?NpD#l(B?dv+b$Zx*ACx~;&-UB`0ZkGCF9E! z{*=)vOgtAZ7;G4VYce~=t+u?GqX!B0u!$mI8iIlvkMb6^ZEf3Z~y4HFVr WUroGXCX-;;^iXMbbNZS5*Zu)ds571b delta 4477 zcmd5<+i#Rr5I?83VxhIm-nSI#4Jf6BwpgGP=ylnaZf}%c6hsQvwo+P4!Ae3{qYuJ^ zp*R|i2}X=DMlm5YJjjED2Ol)b#l%0rL_t9m6b(E`ojKpkvMufIhVbAd+d1>i@BGd= zGjlFIb4p)6smFful&n=MNh#GdG}wbGQH|o?KQ$caT)b9e^FoSJkE8z4rj#4?aH>*Y zV}pF{9;Kea-+uh{ev_5{^MxG$+f}E|pICC}TiB+(dK5-=+x#EUy`u~95i)^7LwCXz z-8bH!@cJyB4>yxD#>;2FlK|IKu7sXq^mf*NV2|gyUCx@+7H-q*NeH*yw3Ld5`yFvF z%!~^uAtd0y%)m*w-ErWqBi~?5Tu3Pb4#fm2^&8@zjT6@$CvFFhZzNg>Y2f}iaeLy# z?PXjj*1!#M5MILxjzqz|$Uah1pggX%{w)lM1WI8}H^E5U)7&=}PR5vwtFd}V5^jx? zaGT)ZW~#&W5?ePg7W=}U!*l1kcd|7Hwf_;zC|L`a{Q1yg&v?^r)6cwjM)$n%jrT;7DJV@(@h?lCwYSG>8)ob2i$Vn+_VAdXd=iMHBiPI4W!YPqlaPG-FpY`Oum zJPv)u*atj$sk8)IASPtuDxCIoq9+%Mytzr;cv5;{$d?WyURTm?w6e$F@CI{3bn;G| zU2X;;{wn%|vd&U?Y_r@&&e_~9n(CxMW!v1>lMeYd?!m=iqDY@Yf;JPN!SZH6P6E=s zGIt6vgYA{9O+smTB(eo^EK?P;UMUkg#wl%Lhl!)0wAKs;uY>79Jgn} zw)OLTfhhch=&%E_iI+u0$U;pJb&0Xea%5elnv zC*2VBGj;nHyRBiTRFQ;3#xMgviXe(0og6Z#Yrb9gy&W6^Zl$lQH-pw!X^nbW!!-yL)NJL{Ve{a}DlZjcj21Nve_L z6>P18b4|`r30tyhWu~f@9YTzcLnBiIr_}=XWV05EOtw`PH|WqHiJ-9RM)T4pxeQdR zRYof;jI=w#7NJl$e^3nP49 z>{(n_0^j+U`5sCDYlNKj%mJh;m!!y2;i6C%@k5O0;t3ZeyoT^$MfZ~cMfZz9`E-#@ zx{bTBMj{AfbunU$h(zeB&(-TO6HYiMIBS!wj4xxWI3Gy?!jQ0Qu`T+Ow z|0hAeG*E)>G)$Wy_`bFWE(T+z4E&m?Kx20RSr!bI>NC zLuv1xeLZR!9BL`m9{94wn=W^L*hy!a#c(4ULtSgBcEG{bGLJllX!z=$-u}Usf$sgP z6wbFU(VO6Q>l#lQdPoRSGc+*JKhi%ms2t<f7ham# z=Kh_#!jxaN*Vt*DB;jd0Aid)Vl6~5-K*-=$$E&&$Mmq~a)-^ZXp&J>%$hOns58q>Q zeW_cxSIxTw0dmQOofK-hOq-cup;D0Dwba+nwp5YetV{P`mo2oM5%=9t@+OI#pcJ9J i2jni2IhiEVMyFR5Nlaj&&jQ}RETV}V``l~!@Bas1NcnRB diff --git a/Content/Blueprints/HUD/WBP_Announcement.uasset b/Content/Blueprints/HUD/WBP_Announcement.uasset new file mode 100644 index 0000000000000000000000000000000000000000..506fcd879e0b76d4898d04c6f49a18d811419c26 GIT binary patch literal 28665 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 AO#lD@ literal 0 HcmV?d00001 diff --git a/Source/Blaster/HUD/Announcement.cpp b/Source/Blaster/HUD/Announcement.cpp new file mode 100644 index 0000000..f6b8b15 --- /dev/null +++ b/Source/Blaster/HUD/Announcement.cpp @@ -0,0 +1,5 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "Announcement.h" + diff --git a/Source/Blaster/HUD/Announcement.h b/Source/Blaster/HUD/Announcement.h new file mode 100644 index 0000000..c307478 --- /dev/null +++ b/Source/Blaster/HUD/Announcement.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 "Announcement.generated.h" + +/** + * + */ +UCLASS() +class BLASTER_API UAnnouncement : public UUserWidget +{ + GENERATED_BODY() + +public: + + UPROPERTY(meta = (BindWidget)) + class UTextBlock* AnnouncementText; + + UPROPERTY(meta = (BindWidget)) + UTextBlock* WarmupTime; + +}; diff --git a/Source/Blaster/HUD/BlasterHUD.cpp b/Source/Blaster/HUD/BlasterHUD.cpp index 3b0848c..9a7424a 100644 --- a/Source/Blaster/HUD/BlasterHUD.cpp +++ b/Source/Blaster/HUD/BlasterHUD.cpp @@ -3,6 +3,7 @@ #include "BlasterHUD.h" +#include "Announcement.h" #include "CharacterOverlay.h" #include "Blueprint/UserWidget.h" @@ -21,6 +22,16 @@ void ABlasterHUD::AddCharacterOverlay() } } +void ABlasterHUD::AddAnnouncementOverlay() +{ + APlayerController* PlayerController = GetOwningPlayerController(); + if (PlayerController && AnnouncementClass) + { + Announcement = CreateWidget(PlayerController, AnnouncementClass); + Announcement->AddToViewport(); + } +} + void ABlasterHUD::DrawHUD() { Super::DrawHUD(); diff --git a/Source/Blaster/HUD/BlasterHUD.h b/Source/Blaster/HUD/BlasterHUD.h index 4c2637f..00e1e73 100644 --- a/Source/Blaster/HUD/BlasterHUD.h +++ b/Source/Blaster/HUD/BlasterHUD.h @@ -32,6 +32,7 @@ class BLASTER_API ABlasterHUD : public AHUD public: virtual void DrawHUD() override; void AddCharacterOverlay(); + void AddAnnouncementOverlay(); UPROPERTY(EditAnywhere, Category = "Player Stats") TSubclassOf CharacterOverlayClass; @@ -39,6 +40,11 @@ public: UPROPERTY() class UCharacterOverlay* CharacterOverlay; + UPROPERTY(EditAnywhere, Category = "Announcements") + TSubclassOf AnnouncementClass; + + UPROPERTY() + class UAnnouncement* Announcement; protected: virtual void BeginPlay() override; diff --git a/Source/Blaster/PlayerController/BlasterPlayerController.cpp b/Source/Blaster/PlayerController/BlasterPlayerController.cpp index 2f77881..75e9f49 100644 --- a/Source/Blaster/PlayerController/BlasterPlayerController.cpp +++ b/Source/Blaster/PlayerController/BlasterPlayerController.cpp @@ -4,6 +4,7 @@ #include "BlasterPlayerController.h" #include "Blaster/Character/BlasterCharacter.h" +#include "Blaster/HUD/Announcement.h" #include "Blaster/HUD/BlasterHUD.h" #include "Blaster/HUD/CharacterOverlay.h" #include "Components/ProgressBar.h" @@ -17,6 +18,10 @@ void ABlasterPlayerController::BeginPlay() Super::BeginPlay(); BlasterHUD = Cast(GetHUD()); + if (BlasterHUD) + { + BlasterHUD->AddAnnouncementOverlay(); + } } void ABlasterPlayerController::GetLifetimeReplicatedProps(TArray& OutLifetimeProps) const @@ -72,17 +77,26 @@ float ABlasterPlayerController::GetServerTime() return GetWorld()->GetTimeSeconds() + ClientServerDelta; } +void ABlasterPlayerController::HandleMatchHasStarted() +{ + BlasterHUD = BlasterHUD == nullptr ? Cast(GetHUD()) : BlasterHUD; + if (BlasterHUD) + { + BlasterHUD->AddCharacterOverlay(); + if (BlasterHUD->Announcement) + { + BlasterHUD->Announcement->SetVisibility(ESlateVisibility::Hidden); + } + } +} + void ABlasterPlayerController::OnMatchStateSet(FName State) { MatchState = State; if (MatchState == MatchState::InProgress) { - BlasterHUD = BlasterHUD == nullptr ? Cast(GetHUD()) : BlasterHUD; - if (BlasterHUD) - { - BlasterHUD->AddCharacterOverlay(); - } + HandleMatchHasStarted(); } } @@ -90,11 +104,7 @@ void ABlasterPlayerController::OnRep_MatchState() { if (MatchState == MatchState::InProgress) { - BlasterHUD = BlasterHUD == nullptr ? Cast(GetHUD()) : BlasterHUD; - if (BlasterHUD) - { - BlasterHUD->AddCharacterOverlay(); - } + HandleMatchHasStarted(); } } @@ -164,7 +174,7 @@ void ABlasterPlayerController::SetHUDHealth(float Health, float MaxHealth) void ABlasterPlayerController::SetHUDScore(float Score) { BlasterHUD = BlasterHUD == nullptr ? Cast(GetHUD()) : BlasterHUD; - bool bHUDValid =CharacterOverlay && CharacterOverlay->ScoreValue; + bool bHUDValid = CharacterOverlay && CharacterOverlay->ScoreValue; if (bHUDValid) { diff --git a/Source/Blaster/PlayerController/BlasterPlayerController.h b/Source/Blaster/PlayerController/BlasterPlayerController.h index a1dfa13..800fe5f 100644 --- a/Source/Blaster/PlayerController/BlasterPlayerController.h +++ b/Source/Blaster/PlayerController/BlasterPlayerController.h @@ -37,6 +37,7 @@ protected: virtual void BeginPlay() override; void CheckTimeSync(float DeltaSeconds); + void HandleMatchHasStarted(); void SetHUDTime(); void PollInit();