From 4261cd8f0db9d7fbfec7ac875f3059aed6aa26c6 Mon Sep 17 00:00:00 2001 From: Kingsmedia Date: Mon, 9 May 2022 16:33:48 +0200 Subject: [PATCH] 107 - Blaster Player State --- .../GameModes/BP_BlasterGameMode.uasset | Bin 20014 -> 20243 bytes .../HUD/WBP_CharacterOverlay.uasset | Bin 28281 -> 32717 bytes .../PlayerState/BP_BlasterPlayerState.uasset | Bin 0 -> 19201 bytes Source/Blaster/Character/BlasterCharacter.cpp | 15 +++++ Source/Blaster/Character/BlasterCharacter.h | 4 ++ Source/Blaster/GameMode/BlasterGameMode.cpp | 10 ++++ Source/Blaster/HUD/CharacterOverlay.h | 3 + .../BlasterPlayerController.cpp | 15 +++++ .../BlasterPlayerController.h | 1 + .../PlayerState/BlasterPlayerState.cpp | 53 ++++++++++++++++++ .../Blaster/PlayerState/BlasterPlayerState.h | 26 +++++++++ 11 files changed, 127 insertions(+) create mode 100644 Content/Blueprints/PlayerState/BP_BlasterPlayerState.uasset create mode 100644 Source/Blaster/PlayerState/BlasterPlayerState.cpp create mode 100644 Source/Blaster/PlayerState/BlasterPlayerState.h diff --git a/Content/Blueprints/GameModes/BP_BlasterGameMode.uasset b/Content/Blueprints/GameModes/BP_BlasterGameMode.uasset index 6c0fa374248e9ddc57cf9c3a2a579e19dcf6cc45..4731c5aeff8411103adede256dae525260899b81 100644 GIT binary patch delta 2531 zcma);UrgIo6vywyl|d#03T0LHSbc~tNeute) z2F5u0E+btR@3ZIz~<@QzG)5y>Rd ziXgVAzOXNsRVTR>6SAVrgpVzatJ`zSbs3%=7u7s3>}{-RO8A9)$Nq#En-umga| zN^!p+cO;J$5gr#!j(v@XA$lXFNwYgrF$$|u?HwW+I zW-8!rqF$yfmt~B=SIdHo{fu0^LhgkMxk=0~wNgt+iH}#vove_1O>o(AiH9l>ynzMI zmEdN@9GL_6bK9h@{Lsw8`3B2Vg`Pmk929=Ba%bU(O`^t2M(xmAvc+=AV?}cbMKbcy zDaRcaF-qC+(cI^QJJE;RLu)EpR=uHht!A}1RSSf5M=$Y@r>pays|Teey2B$_4E(joBVi7dfC=?!~s+6!Q^*Q@TZ53y(gHT4c zb~Vq|bN>NrH-OTi9*4X~WMf?99U_|;qN(L7o4FrC1aegx?O5O~0^0?#ct~?Xq$Mu$ z2Gv>_q8zLC21YXUnBSeH;G{af7K!1v()Le!5~urEJ=zI7 zr%%gdfBqI+qT(?Ypba=hMKEdQ>|;RM*bf?0o5||XTHL~^4yaPuK|q&Up2^^?0!WAn zy^+VKe4?W9qhw30Upp>w06C}Mjndy~r)A<-h;&FOuQ}zxs3JVmMH_o1v|XHb%`Y_W z(c9A5)NDTNANdVK`XF5acJ*|qGnkV0>fwlCVaiebfGsNyKQIJylx*9P$REnjgp|Q! zvw{8s*P) zv>aYIOweE2fI3IZTR7`s*}mlOc>3kSom4mq;f6h*R>5=oIcYVVFD(FBd3Q{$aq&LX zuC~`hhBI2z15ccd)BzUPacMOT!fdymciisw3Hm)y>yksAX9leZAM(g3t$;(GN3h=8 zO{?LR_ZF=V_g2oKm^}0iCx6BnHEieUGCUpeUIOshUzD~?xCcVmsWwn2+{3fI8wmXc DOVFVF diff --git a/Content/Blueprints/HUD/WBP_CharacterOverlay.uasset b/Content/Blueprints/HUD/WBP_CharacterOverlay.uasset index 89c2c16d58c8b0aeab6afd4452b073d4dc6b631c..1d7f645c008705aae7fcc83e24beda23a04c3499 100644 GIT binary patch literal 32717 zcmeHQ349bq*013vfD+^oJm_%9nLB}iA|#W806EA3B8y=%(@93=2s1qiL6OrFU020p z6%`RbU3C?AMONKUKoM8h8(ptm0XY;D`J>#um@(bbcVjf$eO@!HWh7G*kK7*+&qk~6bMC1q0+JplURo{XJC@!``MdtxAC z1cTMlP!`iME0(b~l{Ky#RwQKoY0bO;`(5RZqp@4Azxs>`MHzRg2baEa$Nq6>4>%YA zM#R{yx5Zj|P#hm$nw1(~q`Fj_UyV(TOAz&6t{%qgM~tBQ5ypDno&Jt}@X{SfZzcRM zFO;QvOaiM1^_Ni=X@v2Vj?b~V)%XloK&|#UJ(@p$Vrgdl^o+tXYn9Dsvumoaphoq% zY;|#Fg{hm5ZZF=z>vpRiEhA7~?otb#9*^o^bK?e2>D{Dqn$z#3Hf-vk3oal* zvhu8X)i#eqb>w<7Rll>+qx#sbFO?OXg}RA0f3e-?tk!bf)h-nnR7atWn8or^j=B1U zYr@Aid1K|2u4s|#pJwwpZ9w||m%B?j;3;aQ&0d$Us*VzGVZc|Z7SB;#MQVkg-T24f zoDT*C<&qO{I@lW>`<3=FmKN9fHPt;$_4&c5#aibP4LX(7RjaIP^v&C#VC7z~i^X+u z?CS;ylnL^^d%LyQb>xMb=5@3B_4C(256dBVpVOgc2RwEziS7q~HuxqT= zd(TR}1+kdedtctDPok+srdnYOxU?Lft-31T>rmN~pX{jtP6z2oCE;b?AGz~Jj4adX zuO?lcVk=i&Y}KKfN6(og_k{B*8K<|>s1Bim#TKH(56+f*VFG^ z1YOFS==C}0dp(-XmF^;aKu=cx?(#XnlI4LM9mN_@ZyKEcFK{o*Q|Tn5vfh%p2i(iT zKpQl?YQjg~oNZP!b}S8>Lu5}p^5Z)?hJZWB;i>Q4JpuC~tJp;di=Fe;q5!E;^z@0d z_)r@Zj~$!sbh%hj`oni|KqcxtZBoFmIVIrfxn} z3w^4?sq50314ZYIh@j!vvD1kjK9>Spp8X3nS)Hfa+2#9=_QT8twN|go>r3}I3aV{( zCmE7KmtJ{a2db-Zd2Jf&S$FrVm=@W{1(|x}!H6q{dbI4At9>$z>-gwdX2tMdjlZnS47{HZJGnW9!` zEdHu%_G2tlh&47JXE^I=^=Cu#^K3p+efI5-r9Clw^KA2+?tq(Z$=_xN$UN0uuKMz6 znPJ!W|MOEAyb#=&}%&&XFvtKL7^`>&}kB=z}%E(X!fA8Z@?y$anZf?XuC&b zL7~?_gZZ+*P@zs};b%|(c$W)o;V#6tZC~sLX@OoC)+cW?5z)TFSQ1#it{r-2Bt^l8CYK9DPm#u>eL8DK# zx!AOq{}6{BMQUZhW%IEMFMmB1>?m?pR%xuu!C@}2zR2s<^f}MEsvF0E+G1Oc>X_zK zYjrlT%m4OyX0ZHXuh*UK_6BGOWxa2B8KW+?SE+6rtABQREs(>|u|HKN?}spgR`2MA zv6q28+~`@WoGu4%H+bEKI7|Uvj5*EC{3pvF*vmn=yc(MtbK5N#cQIxBtl*y)Z|88l z6`H~RFTC%g`@phd%@@>~^EdehVSHkhS`l;GMZ70pw1TY?*vg~81>4FtjhWyCSCI*} z*gRHSj}}^$N{jUqZ!hA_;lcd&>_9$1!ps?LWc=mtx?!&y78j9UNUQzF<6gNOVkx1e zyu?|}*6r)~9Ng^^Z#Da&?Dln7-rxXKkYa!#d;$g%Ufl*nr8FZev78o?F8Nu%fvb~2 z^)!RETA6s@TyTCGEsb7ZQYI@+aCOGY*3{^y-11NYd@S-1m7v?G2)~gjf%OkULv-yZ z@u@1CGwg;RhEq|*&L?xdvTO--Ctml&$YCWTMyuA>j!uumB?^@bM^<0J_I`AECQP2J zwt9VPsV;7IC^z;(@Iuy!1^lWBSLSjzTwu}_jry?^+x*MGCE1}gFNckqbwDw;rZSjT zua7-?N$zg6w%R;3Hh-bbLmo+|cH{bi3PTyRk*&4%>I-=VnJ0Po_Lw_5Lud85tJTiC z3GSxwhsv7x=xpMQLvJd^7G_R+nUy{H#`x{Ce317QOTm zK4mO>uR9GhIJ7!uc;~TqemEEl{x&G(JnOc02siMPlVF$2IDY28^5V0AI#1PXd=cBV z=*e3!cZJN=$zNDNmgMggm+wOeN#r@;K1+V%LK|UenLp>6UJ#nd2SMLGa*c|$UqpMq^1AT=Meo&uv=X z$la-VbyeTXsTIPNdc;1bQ^>1Dx=_T3t`O;~M2vQ_Pjl_|Q@iD&PfP7?j-cH>f_F=V z?N&t4ZZE;RE`oNSQoE%Qwp$iqyWd6F?xqOa-5O!L+ahfD`v}|J9bvnBB5b!h!gli` zXt#&tc3(5?ZWnck=_;5S zAp%3QNO3i$Ym`(H1FV*kX1EShq3jn!iR(oMJX|Nz3+?xML=>iJq zMgZsO6bj1pxHbP~xQ-Zj2w41{4aK01!Q-c}*`dey2Y+$26wGjaYrqA&aVs4#>!3@j z-)1jmS{Yix1-oH}tDiJht-xo7>l*`II6s7+D)mtEv-%X`l6oj{b(-4>f<)7n=)%QL zGrCrtLR^jMO7oo@x(*oR1wH(&01G{QOr+mD1-PJxX1K2K3#6@x%;fcTBf4%B@Icpl zV$zP(T7g6~jRe=723(53)wbr;;JV9z>qU_sSbOquL0)D&{OlCrGUMTfx>G}!84tI~ z6P#9{G}Da%jrw0B@`)5r5a~6Si9{&$Tdn+kt4;9Dg+!>5who;>p8xiMgqd~>+IG~kJ$zEU)uX`jfY0@in}z$MX}(PhL1 z*-2cm8xmL9LJ1-A*bEm$(vA-JGf3ltGF%#@!4Ke+X{@D4;{cCk8fy{ypGF5Rns*m@ zT(X4RQHKK;L~(6X!UycL=l~p~aRXe!KG%@$Pic$=@DT$CV&FjlY+T6iMTexNH>LZ~ z0eS!vV?Wc7?kCb1J1%yk4br%c2H1dy7;q2+He%3(7<3^94#c1hG3W!V0d#=h7~4QP z;18n=dDyWSIuts}%RZyCrT{0nOVitf{x_0XpeR_0Ej~+2uaYN#= zS{>>)vgl42Q(Mab)+XB0Hri6Z8T44%TX-PKc(Al-+pc|wj-5J3b)g39y0bQxwr$(A zYumnkJCe9%0oAj1(d~Q0B&K&bW2&v=fVn-B7Tng)%Y92aNA>P= zX5W5;&l@sy*zlCpQKQqwjJ0NFW#>%Hom5;>I&JzzGcL9})QZX~=cRrvP*XdvZvN6` zS6+4XHP>Eu^DQfGz3uipet+lc``0}1KMy|ihll_4=O@=awf-+pKlA(xn_t}W(%)Ww z7oqA^6bl(%3IuA@P`l?sC@2#lbgHm=3{u-ol z$|56d$#GE@BrHVNhpcN`3kk1nG#k%$RIR>_4gGIE)(o<|cHY;sQr6zO@1;AVpE>91 zsd*odD9Cv$E_K8CpFiH?@cFfM%YOUxmW0zE7<bH~#RuzDXa} zvu*Brws~vErGd8fEY`i@-~Ut3KAE#3XIz%%+e^~g&oU$WdY&dl1_#GYI+3@MQ$B!M{b~KOqOQt>d$d13i zcJ2q2PtTjt_j$`%J^V{9TfBEhPc}8Hg=5;xyuVKW=%DkWo#O}G*8h%&zr5kB71gCH zwl96BADc9E^`h>J=3oETx`oe-AAa%hcXs!3Y|MM)*jtB7{_%bBhn^!T2dvMY_1ED5A>4~KZU`GnIQjOHA#z`f*jp3VcsI%r?z!shKVAs% z&+`NBBDLCueTuY^THiD0B>w5b1HXcTp-ql_=QXxBBfxbIRyNSKhTZgSz zGKDy!@qPhT!W_&=5Ih9QLZ?l7pNYi3a^jgP1X))0>3)yJN*=hr= zrKD%o#1&}STx!utv>HY{!YC@(a4P92N<)~Ak75Z2uvJcV2)40IjzS+Xopu;zmaLn? zlKB_`$4p|ggHpDT!PX&#Tw4pRXmXSmS~&Ie zG`hiJXLD#|fNrjPn9+TM?KNuaXBW{(RBjCd?0g0*P{A_!*ffIUr||-wg%(d8kKQ82 zw2hRNj4gCwMDNu)n?S{s5;=QAqb?!5 z^NFqsTE{9H%<$&gNEyg+8RwO>Um=|`(ig&KAy-$|{u8B2YE@{&uv~7=&yamKuk9(u z&^#saqSY|k;&mZOC7$L`=od?RXjW=9EzK|~#Y!hF_=$2u_6H9<+(&_r5%Lflm&+BZ zc@C5c4wRBd1K%fxRxN!cjS+e1utv7n&b3LU7Vt0;&!ZYQ{q#Nois9eI(27#d%PXi= zJX!QC(tmiQF$B4ielaxH;KKqNW(WGga=JOx%0_D_U||-`Cs-D`Y<_ZdOL{s}#YjSa zVyHx}Zq0L0))vyZ14J4AV~FMo8g~UzT~2xU6LMviay;JEQ(9ACs3hn$geSnJbDrZ| zz(S{sI*-D)=qFm}?QnTtrp^*ICpt>$Y3kg}6kMnxY5Pf%AsZ5|{%kQ0$z5|xB-dGZ zYz?_B{q+;2L-wCU+L}RQhbCkE;mXfF$@~M}VlHWTb2zVXa2ZSfhO6%%5&z^YsG!vd zo~4B;5%rTRBCzYauF*WIqS3{$QcCG(UNHieJh!8J5~4(|ywG1a!GP9EpQm|=%Msg2 zldu+8=q8!eT|NH)>e)+sK8^FMv1f1Q(}(*4Tx**0 zU_?ayrH_v5cG5oxko_}S%#i|8Q;R9D2_$kK)xu&U!YQ>3D+esCg~f?}CyVDLG~e7UV7fm^E|Xp!0QJN3vE~!Kv&}jkcQ7>v)D*VC5jwsl6ZOm&4U5FE=A;1 zMSc{|&*V^K+tH#fO|%^&@`(ZuFaU>+OZG|(;z*=9h4G-B#FI#8?y^k6$N9P}lQ@!s zIFf=mk^~hEN0}7FmlVW@D+2nsl7jefZYj%jd=<<_HpfriH7LNf1dJkqEug%SXGUm} zB4e4PD4CC0ht)a^$p#uFhGb5y4lRU1$}dUqEIbXfn$VHV`2&cO-;&!Qi6#d*ml)KU zUnL6dXi1`G{D$0G;sH!RFCY4G?p3W;0^`Te_rB#>dC29z?2y0IDb8 zkAfuq*D29}9o>2EXE`Ncw8Bma*u&<;{0o~B&GHJf&d4j9ka-h3bBuPp7l=w}nWTcq z#@q^H1(lB};86qwOuU9+l*r1dCqa#F*esMguy5n5^UruCZ_STA`t7%0{;6@$5v`W; zafu26Qw~}Z!v`PPQW_CH`8Y;cd|*yw_`+H{82_--0MC9Hxl}F)mn=^dd54IbM0QaE zFAV|M5YE#h{mlHa%yJFRm16%V~pN}<>x-pi@byJ3}DdebD;XiB-N(98Ge1)yi) zW|;QFnA$waF!aOIMF=o)%79nnI*eD-@98xrDn7&A&8)1Hx7Ppa5s`#=Y=O=r7@_MW z^bbKwc?An2NN~`y9h^oS;R42+e8=j)AKQJ+ly(0sdopuzQBSinj{!hK8sbHbDGjI# zTVVj%IN53%wj{2$UpDMm!G^Ty3+~?kPY-BlTy}v0OOS>>RG8~m^mlnGc$sGuUd^l8 zJj@a;I)tSlY=r?+2TE7)?X01ctZo&VKaq*Rb8iTew(uq*UvEfT<@69-Lf@qPFWi1S zbz}X7GMyx4Vb7=D2uO@HaCAkUaN(0oL(vz3>y?E+lujM{AJNJgqcjr}^m7T!ElEM@+ zjVNl>#KL(0@y7YrydK|f^3vz?AAUiJ9cfnfbDmfjult;xIZy2ER`76}1#ic0&#f^l zn`B^LaAC&v#k@L2zQQz0CKUa3odKU36;)EDD*V063VDNGdi;qTKd(>G;6c{%k0CJ2 zr2=@Nh<6L;D~MB81PdZav|5x`cR1Ac=u0eP*{d^-TwC?d4PZm#vatrlK{n)4VXlY# z6M84P?w;_ss4GML^thEvjji^ncKVcp*E1|CiXPE&DH^#jN;Q3_ftW#U?5ctn^-{5Y z4ztV@DC9|>0i&Lbgc+D-3G`768A~9oVu}$FP80^v0Y?>#LBMG-y_Z$xUN$Ol9*YpH zz%pZ60T8AY=x&Mw6`%(1AwU3Vy!2HGK3m3LYk;bCw0g%6A0E|N8Ln9QIfznTr<8lO zDpEUDsiZf7^K%ts=vDjl9^yDf;h)p+D**z@&ry5IZA-ldpJEDA-xcte=LI|)#Y8u-;?ih)lmbRruZ==y^md-RpEI+ z`hGKm|bvj!KES^{6qwwR)4>aZq(UDFJ{dn(u72tES9bVP%8KNobylQ%X zHa{~|K`dz21;eL`j@fOiQ|vyQUl*c~TaaX$e_WjWy9^kppWds^i!jYJ5*bOqT;47s zs_ER7kHKyukrM?1w%4PmHS_{v8@>)eYB595tOa}?oWpX;jIV(=G$;OYjQXuRalS&z zLHPMs5@fyp?rVjhh;K#sx#;2<3<(0iLJ}yahyOy~oQV&;;W(~}`SgbDDpK{ISjB%* z^$x0blu@UDdVT&$bUErLQ{t1az+4|;_am^+y~)5gvd^{(SW&1}fDDw+RR$XZtKQ~`x`2^4lpFat5b@bzM12s zFBWl2Ll?6Gl=3Pz2ZxL+T0Yh7tpS<}pV!TiR5|GzCq8>s9iO&Ju5REw^o1faBUliH ziH`Ns(jHq&A2Nuw(?=rU`tT8q#ITeCPp-ba&=(x&A{p84czWVO4_zqAQ0aRiN+Ery z=Q!+wg;*@?!YO6#DPrqMVJT;2gf7DlYAjU}&(zb}9&%7g+3@OneB}uyob;1Es^w7Z z_|lf@A4!)pHF9oiZFTzE%yp!iZ@W;O@?%)~dJ0KgV%l=ag|=GboRcq(}Tzj3<+yzvaRN zQ8-7$-9?-sVv}gmcodFYFmxPai^hjlbIdLb1;MFD{A`maai2K!wUnR1XfbP#W3(xDVo`mt(wKJIc6nfr)OD{$E2htTSujgN=!*fNVZzjGt;w@(o(Xs(zsPf zOh|~QgLXUWK?-f9$g3i55*3RQ*t)6OAT|SQ;+&8&Oa$ z;wDg_Wm4#*MLaaNYC}ai8zvHAH4Qzn5dfj--O$ET#nlHMy3oJj`#f?ys5@z5wI+@k zotT!Hk&>O7G1{7yo|=`AIw~bC!J3qol#(_on~RlyI%llXM68nVuwrdd0FtJ#tiwEP z%ply{;{lbS5B*43sA{Z$Kfy>Lt>YB3;nPG$B2Jo+f1SI>KX>6N9j91->2nus`|p^$ z-Hu<#VdgHZ0YYPQufN>Zyv8{9t9frm&w}bfE?u!APY1 zCrsXX<7}a0U{e?s5A~i zq4G;aT@zN&)hMnCsF(avkf9(O^T~jQ7$;66an1yFJ&O+P!ZKnDiwQapAPCK3LPMOH W;RFl@urnRdNGP8X)25}v@A*GDL`B~K literal 28281 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 literal 0 HcmV?d00001 diff --git a/Source/Blaster/Character/BlasterCharacter.cpp b/Source/Blaster/Character/BlasterCharacter.cpp index 493f295..2011136 100644 --- a/Source/Blaster/Character/BlasterCharacter.cpp +++ b/Source/Blaster/Character/BlasterCharacter.cpp @@ -7,6 +7,7 @@ #include "Blaster/Components/CombatComponent.h" #include "Blaster/GameMode/BlasterGameMode.h" #include "Blaster/PlayerController/BlasterPlayerController.h" +#include "Blaster/PlayerState/BlasterPlayerState.h" #include "Blaster/Weapon/Weapon.h" #include "Camera/CameraComponent.h" #include "Components/CapsuleComponent.h" @@ -238,6 +239,20 @@ void ABlasterCharacter::Tick(float DeltaTime) } HideCameraIfCharacterClose(); + PollInit(); +} + +void ABlasterCharacter::PollInit() +{ + if (PlayerState == nullptr) + { + PlayerState = GetPlayerState(); + if (PlayerState) + { + // Initialize Score now we have the PlayerState + PlayerState->IncreaseScore(0.f); + } + } } void ABlasterCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) diff --git a/Source/Blaster/Character/BlasterCharacter.h b/Source/Blaster/Character/BlasterCharacter.h index 9ef8b30..fdf116b 100644 --- a/Source/Blaster/Character/BlasterCharacter.h +++ b/Source/Blaster/Character/BlasterCharacter.h @@ -53,8 +53,12 @@ protected: UFUNCTION() void ReceiveDamage(AActor* DamagedActor, float Damage, const UDamageType* DamageType, class AController* InstigatorController, AActor* DamageCauser); void UpdateHUDHealth(); + // Poll for any relevant classes and initialize them + void PollInit(); private: + class ABlasterPlayerState* PlayerState; + UPROPERTY(VisibleAnywhere, Category="Camera") class USpringArmComponent* CameraBoom; diff --git a/Source/Blaster/GameMode/BlasterGameMode.cpp b/Source/Blaster/GameMode/BlasterGameMode.cpp index 0659984..0f719e1 100644 --- a/Source/Blaster/GameMode/BlasterGameMode.cpp +++ b/Source/Blaster/GameMode/BlasterGameMode.cpp @@ -4,12 +4,22 @@ #include "BlasterGameMode.h" #include "Blaster/Character/BlasterCharacter.h" +#include "Blaster/PlayerController/BlasterPlayerController.h" +#include "Blaster/PlayerState/BlasterPlayerState.h" #include "GameFramework/PlayerStart.h" #include "Kismet/GameplayStatics.h" void ABlasterGameMode::PlayerEliminated(ABlasterCharacter* EliminatedCharacter, ABlasterPlayerController* VictimController, ABlasterPlayerController* AttackerController) { + ABlasterPlayerState* AttackerPlayerState = AttackerController ? Cast(AttackerController->PlayerState) : nullptr; + ABlasterPlayerState* VictimPlayerState = VictimController ? Cast(VictimController->PlayerState) : nullptr; + + if (AttackerPlayerState && AttackerPlayerState != VictimPlayerState) + { + AttackerPlayerState->IncreaseScore(1.f); + } + if (EliminatedCharacter) { EliminatedCharacter->Eliminated(); diff --git a/Source/Blaster/HUD/CharacterOverlay.h b/Source/Blaster/HUD/CharacterOverlay.h index f7f517f..61544a7 100644 --- a/Source/Blaster/HUD/CharacterOverlay.h +++ b/Source/Blaster/HUD/CharacterOverlay.h @@ -22,4 +22,7 @@ public: UPROPERTY(meta = (BindWidget)) class UTextBlock* HealthText; + UPROPERTY(meta = (BindWidget)) + UTextBlock* ScoreValue; + }; diff --git a/Source/Blaster/PlayerController/BlasterPlayerController.cpp b/Source/Blaster/PlayerController/BlasterPlayerController.cpp index f4580bf..fe7aeab 100644 --- a/Source/Blaster/PlayerController/BlasterPlayerController.cpp +++ b/Source/Blaster/PlayerController/BlasterPlayerController.cpp @@ -44,3 +44,18 @@ void ABlasterPlayerController::SetHUDHealth(float Health, float MaxHealth) BlasterHUD->CharacterOverlay->HealthText->SetText(FText::FromString(HealthText)); } } + +void ABlasterPlayerController::SetHUDScore(float Score) +{ + BlasterHUD = BlasterHUD == nullptr ? Cast(GetHUD()) : BlasterHUD; + bool bHUDValid = + BlasterHUD && + BlasterHUD->CharacterOverlay && + BlasterHUD->CharacterOverlay->ScoreValue; + + if (bHUDValid) + { + const FString ScoreValue = FString::Printf(TEXT("%d"), FMath::FloorToInt(Score)); + BlasterHUD->CharacterOverlay->ScoreValue->SetText(FText::FromString(ScoreValue)); + } +} diff --git a/Source/Blaster/PlayerController/BlasterPlayerController.h b/Source/Blaster/PlayerController/BlasterPlayerController.h index 37a51f9..0ab21fa 100644 --- a/Source/Blaster/PlayerController/BlasterPlayerController.h +++ b/Source/Blaster/PlayerController/BlasterPlayerController.h @@ -17,6 +17,7 @@ class BLASTER_API ABlasterPlayerController : public APlayerController public: void SetHUDHealth(float Health, float MaxHealth); + void SetHUDScore(float Score); virtual void OnPossess(APawn* InPawn) override; protected: diff --git a/Source/Blaster/PlayerState/BlasterPlayerState.cpp b/Source/Blaster/PlayerState/BlasterPlayerState.cpp new file mode 100644 index 0000000..2622399 --- /dev/null +++ b/Source/Blaster/PlayerState/BlasterPlayerState.cpp @@ -0,0 +1,53 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "BlasterPlayerState.h" + +#include "Blaster/Character/BlasterCharacter.h" +#include "Blaster/PlayerController/BlasterPlayerController.h" + +void ABlasterPlayerState::IncreaseScore(float ScoreAmount) +{ + SetScore(GetScore() + ScoreAmount); + + Character = GetCharacter(); + if (Character) + { + Controller = GetController(); + if (Controller) + { + Controller->SetHUDScore(GetScore()); + } + } +} + +void ABlasterPlayerState::OnRep_Score() +{ + Super::OnRep_Score(); + + Character = GetCharacter(); + if (Character) + { + Controller = GetController(); + if (Controller) + { + Controller->SetHUDScore(GetScore()); + } + } +} + +ABlasterCharacter* ABlasterPlayerState::GetCharacter() const +{ + return Character == nullptr ? Cast(GetPawn()) : Character; +} + +ABlasterPlayerController* ABlasterPlayerState::GetController() const +{ + if (Character) + { + return Controller == nullptr ? Cast(Character->Controller) : Controller; + } + + return nullptr; +} + diff --git a/Source/Blaster/PlayerState/BlasterPlayerState.h b/Source/Blaster/PlayerState/BlasterPlayerState.h new file mode 100644 index 0000000..ae99c8b --- /dev/null +++ b/Source/Blaster/PlayerState/BlasterPlayerState.h @@ -0,0 +1,26 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/PlayerState.h" +#include "BlasterPlayerState.generated.h" + +/** + * + */ +UCLASS() +class BLASTER_API ABlasterPlayerState : public APlayerState +{ + GENERATED_BODY() + +public: + virtual void OnRep_Score() override; + void IncreaseScore(float ScoreAmount); + +private: + class ABlasterCharacter* Character; + class ABlasterPlayerController* Controller; + ABlasterCharacter* GetCharacter() const; + ABlasterPlayerController* GetController() const; +};