From 07fb4c4e5baf12d4c8fdda8e86ba2a05d26e3864 Mon Sep 17 00:00:00 2001 From: Kingsmedia Date: Thu, 26 May 2022 15:06:27 +0200 Subject: [PATCH] 175 - Shotgun Fire RPCs --- .../Blueprints/Weapon/BP_AssaultRifle.uasset | Bin 32417 -> 32475 bytes .../Weapon/BP_GenadeLauncher.uasset | Bin 32400 -> 32522 bytes .../Weapon/BP_RocketLauncher.uasset | Bin 32237 -> 32293 bytes Content/Blueprints/Weapon/BP_Shotgun.uasset | Bin 32444 -> 32520 bytes Content/Blueprints/Weapon/BP_Weapon.uasset | Bin 29846 -> 0 bytes Content/Maps/BlasterMap.umap | Bin 1358397 -> 1358397 bytes Source/Blaster/Components/CombatComponent.cpp | 46 +++++++++---- Source/Blaster/Components/CombatComponent.h | 7 ++ Source/Blaster/Weapon/Shotgun.cpp | 64 +++++++++--------- Source/Blaster/Weapon/Shotgun.h | 5 +- 10 files changed, 73 insertions(+), 49 deletions(-) delete mode 100644 Content/Blueprints/Weapon/BP_Weapon.uasset diff --git a/Content/Blueprints/Weapon/BP_AssaultRifle.uasset b/Content/Blueprints/Weapon/BP_AssaultRifle.uasset index e2d02ec7707c967412dd5607ddffe5ae1fae1910..a1f9416958e3108ab96f5f57ff83e2dc59e4fc23 100644 GIT binary patch delta 10568 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 delta 10868 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 OB!OJb#?Nf9+4DcZ@(0ua diff --git a/Content/Blueprints/Weapon/BP_GenadeLauncher.uasset b/Content/Blueprints/Weapon/BP_GenadeLauncher.uasset index eb5c836286f7488170ae18f1184eca45a4246d2a..2daf2f5dc620cec09c4920018496efe4c67ea8a8 100644 GIT binary patch delta 10936 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 C56J5P delta 10744 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 i{pw`A4zR&rmfE zscF-e3Fc0V6K@v3mL{G)cg8He9HEDmT*8(-NBFqD1?_w60M!xUcL;dMsb`)LPZ^}+ zgo`|L5DP-3sp5p}6fxS-o%WUU$daHSL1@C7nA9yB#YySX&0>^au_xlp%?T?A8#B-w zuK1qs6aO>QP4X=S3Mj_m4MT+bpw9zTI+BWUq@dEfskj^T_E70a@~)$uy^_j(3zG72 zC3itm{9MVw=SmKZE4c%$9e%E)WTb>pk{HKMX!4&=q3M&UbR8yiT(wO6@Q{wL$*5E z$;a!ema5eYExi3FEzo-RL2vJ0(EA?rRL|HOk+H#l%7KsH+_jMDE+}OS-$clZCF<_P7ex#8o1V z;2(q>(qqbU2aKe2V}&>Yp*dCG*QF`m4rPWCa9jwr85=S$r|T^e!#35=h3{rf6p^uR zb_~C5!xKE=X68 z-|p7-^x@!w>!vj}fkqg)%EOx|hSYKgdX2G;mTDzBm$Y%23ajc)@;vX`Z=;I!5$+MT z#wTZHdu21^x!uvV0rC7vl}ZlLt1XWb6+b}S21q0qqZ^zW^@LY7L+b|WS_lCv#wbA( z7emC&?5d6b=ff68tAK@?`=aUs5@l$*Uq-EtY(ODOj@oF;`HeyQ{@z=EA3>{(L~iLj z4O6@O__hhMw$`R0oxR7zba04w z+bg2niG8?~dA~N9mmH!&9ez<&T2-aODSFL?(AFsL{5-x@<>96wXu1V;Ni{$IWGT&5 zqJpw=>8-FDk6*%A=m8!A`<(_9`1ju0xO_5STds*QO4mHC41|WfDwT)a*hX=Q+YsPzhfZe&_(HE6bts~ zs#NVP7oY%1^%u9fkDH$~D<(ConoA?dnZA?dI3+;yTsxgtSMGya3brOz6JM`3hKcct zi&1}b@ubcY*@7MYXliR{tEf`JF8|Oxs(E)`l-eYjr+#=x$NjWjFQ27k%_5!65#tgdfWA1Rz7^a2Jfvo5n@V@&3ce9Owxrr4$!1}yeM z_BmE*6!P)QsFKz&w@g*I3IbB9Qq&XhP#-gD{77A^iS`v%=Ud)X>sb^Q?Dcn_r}f19Jn5+w(y&ly4tU+ zJDZ$+B}{%jzsx_!`HI-@YIMw2!KGzjlR9ArVzon}Q3zu$)}VI>k3GKH7Y&QdQ5(y6 zvXJ5-4pAD#akp^JnEm%3VI8Ju;O_>9So)>Vzd{Ix#d=l;8$wFDI7F6JVt`emINZWk zbamb8D;9TRjFbWH#2jJ8??}FSk!EPw(TOMCRGnix{<7O|+38or2?gR$r$nT?six%# zk~XY8UVUmF%6d0S#@^NzjD zG}zqSgoiyWaRI;WRJ^i@7@YjzSrNWC6)FJ7RK8|4` z_a0rNRU-RgNrA$i%m^z8@5ZrB2+i@4^wk^`)D3^vlsu zTTVgcmabO{XXqYvYb&#j3E#4Kn=0dXeX1wCw0nJ^#kOVAfr*EI+mQB-Xy>t~YKyyB zQ`&Zik;JVKMeJIiqHcE!vY>jfzOiV>_FW5(a~Dn8z52uS+MI3ijMf9*!AYXrjZTcP{$&n#9xlUU`4Rj7wH`y-N6tCH*d` zg-gF=4O;e<*?sxyS@Cr70k0Qk=WTxD^_^yJu^ojKKBqoBeI#^S9K%PmPJZ;`oqH5F zU)il)Y`eAN#Kp@3aomnn%LNar{O@_|7)w^|tvJ|mV*Y_oCf~Ro9Qv;zt?)GggBwtu zf2!}BhB;c!cQ2WJoOH4V`G;Gaa4h($HdZjpu%fx$d^2zl!z&uU5|$PYL$RhfhI#OZ z_};hMEBF&w@>sr2obEqL|96B)3?RoA@XB1wQ7-HAYwfCQ?F!?*aFNU2lGRmOg_H2z zrbjtxq7JUrjd|*cHmg6~?6b7<+hs(tn{dyzkd+G_%r99DRagaP52PA(QA$qy2e{P` z#$ub$R$+zLdWH9X#;j|LzgXZGv?+M@bsjhXISK)+05`xvdoe;i)w>a!p!j2ZzMCK0 z)WYm-(2`pR)Z4ox1gEZlO0jH8F}m3oU0aAgsqV~`5Rc;n+!Emrh8)YEF#CK-F8q*e z`Z!b9#KpBRPA2AtUfd`|oJw#6CIg#4QzveXcg)?Li5Fy=Ddreb#>mMhxB#oQ5JRMen6% zw1!^BK121PGOD@kn{*w(k#m5vY&r_odki^$QU~|N#yoKNw|NNr9PqGrl6zV;F&E(+ zc2(|`^~4`*&?@YY^}Q1I22^Kb3ee9}cju3A3&PBRR6X(s z2DNImd5z?-tg(xCBQxz%bx;S`wFY1UTQW--0PY6txB4T}3H+3#4#1X&jsf#9*<5gW#sW8uZ+EGybjKOPL2+^zLKW5s?!O@3Y^(Z&LOd%&$!zMK-YoDl!5Anv%Wnn0*^&|1;yIYNGC0hVf2R-Q%)nghBMER_W+OC z5(A-M5Qn&S584)D*!x^wr_FmbP^W{@LocCs`y#8=CPk)~YN3UhiA4%0%}}gHcVBH< z58KC2@Z_xP(m(J)7I2C+^XhSjhI2*aeRvLxJu0Y~P=tpm`sngGJqea}VP&mvp{gLHre zi{+0BfC$kiHZ4~dS!3dBQWGpuoAyed2%w=b0ZW50#R2XoAtYeKBp|V+4gL!A)QmCQ zqyTnRjoJ*KWv;4C*Q;u4VM>7hxxiw!0SRD~baC6-d-)c4doFv@CLdCPb)HWOuXU70 z@GY5HQ&p93U=GpGO4{P7r`@G0whE|mN^leJnd65(2Lf4Cq;PH0=3O8ok4**+z8Q@9 zfJ2umwvs+WbZ(rivfIF|`59|J?OS zH5_VS%Iqi(JDUf5Ti^V&TwSd0rwe)E8ZedNd>3O}1Rxv9wMXzl`B*}jRe9tTsren{ zC?+2rijBV}4!-hw!qcz5-)3#HCO+nL|2i|1`)Pc$$SogkY_sGf|_b=v(w@%2Csncsnv00O!C<95|YheZVeg@wu$ zd1dA(Gj-NvZ{>PjuQ2vX-U|B=)zzhpGyN|c{Z>(qLQkEUwalm}1^pm8;N)5Og7W@X zUpUIwk)MC93v|67Fx`to7S6kq#ZUECzrCac-I?5LEXhAu6dsTE8k!2F@N{a`rW$)?1I1^lomDfoY}AU z?V9%7=z5f2f^xq2`j*FStCPH4H_F^6#&Um4|HUehXPP9pyS*==agnZJMjD@GQ52qq z)ICId)#W>li=(|%K7YY|`W=3_LWj25Z3R@Z)6`_f<(QM^UbiGpOU0?9h z4J0;cSfXhBS$9Sm;EYx)EFMMqmznt*mjm$1jnYrq6>*=0)p)+w?j2)P(6lg7HtU?P z{_+g$34mD2$JciW&5tmU`%1r6H7ne}VFSxz-s=N4xKQ%AO7d833>1i`Fot_--yfHB zy}P1!6I@Wa65=}b@*p36dcdT3SzmPhKO4eNZiTiIYHn}Y?Y4> z3f@}7%;MbuicR0Eo#0*_;LHZ7cWr6`y!0r=c>rG1!38X(@A;&hag0(J88^(?}-8aBmcjNd6vi)hNxtpv-%^7=n+-;I5h8C;~{ui$`Uvh*>H#kt%?moC@EvyT}r;`XjA z)csR>b%zvo5J0s&m*X}wF&F3!;~~DM!#L2RMUJelI_<8$xELl}*!@d#SwLigz=JOv zIWxmU7OMwdw0sQ|-xP>=2A*CE5fLsx5kSxhFnI<1fT{p_=z)iWlOtactO0HiJX%G< ztC^nmlY_y2rcqu9Il`+O`K7HRxoE!Q1dmw=iO;+`{|C>-an#eCh>EG#ON5>R4YQ;Q z`J;vSy^{W{A|eadum~yn#hS^sbSruuhnot*#e|5ww}!JajA}*y+DX5a&!7qyQ8C?r zIesRD@VX(w-}d0!AeEsDC6tmkd6ezw>_ z%Hc<49O$7yQn8R8@90h@>s1lbcf!Fh+k#ASa(YA_?5XO}IKtY0^c;F3o@?3_kw;n(a0y7i(Y7g$19 z{r{jOm*6pDX@kAuN^4W`@IZASbfSgiz9g2}Rw@@rzLzv(^K@D^y5iSR(VtcwEyQaQ zKo!0~#rXLhhpC1LAzvzyOvNHnk;__(=Z3?WX<)m@~3g^%eW>fJ>D%OwGjN0BPiL?`Qo>|3LhxKB_ET;%6N86m< z0U|P2JjZDPB^`f%+z~&!Kb~osh@j5zob`VHr5)9JYoC!j2!Gedf$lZbkVOK#D;F-I za$_tx2$oz-32DHf*A*?N1d*iE1`kgTl^bnTKdKx}BUfz*Hd{(%lSuUjiBmY0qlZPC zDuncqaNy&mP!deUkl$=_GV`D`BS~VjBe5L5y}U`R*GqWA5||3qxhz@h^rzFE`q!pQ zZcoO|!Q99na!dpGR5wOcj9MV^e>`cJfKAKQ*X>r__K(_Y_G^}Pd2wVUS+!}b5f-In zlR29?&o==XBI6Lzm;4Uoz1DazCsX?&rBSQ^Ohhf3R72lXKcz-oNpS zJff%XVtUp@lHFUz+6-@;6?l7)=TrX7ayzzi2v4$ZE8lDxHKTd>l)zp%%Jw2(NEMJL z#iqmf{>({Q^VhZ()vPHMBl;UCePW+~EQmCGEM|MykqaR8+yekQjPzN~Q>YFmK%AbM zAx6fKz%Vw2j7)bNE5-vdhC*}SqBJPx(@C!L7KFQQYQ!h)&ts|*>03JIW=deaV#hS53(YB$(uRO9`x*S;m9=Y z)J3HAHthPQ!+$X;+&0%~6IO*V7CvCT$oIEd%NH6H&=~M?qXZ*6a;M71z~Cehj8t6v zJjGjpmm?L)RohKr#Ng+gUZLvHW5pB@ht2rgte5vCeFpLPiH5}Roc_=|%621%w%de^ s>|hx;ko|*bx3zzX4o#_kL>7jzTc7m0TVmUv;Y7A delta 10520 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 diff --git a/Content/Blueprints/Weapon/BP_Shotgun.uasset b/Content/Blueprints/Weapon/BP_Shotgun.uasset index 960bd332fb379bcd53566dfe7a7afba523cbd461..0b8f9c7c108d4349006870698ba99c525d3dbc58 100644 GIT binary patch delta 10795 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 diff --git a/Content/Blueprints/Weapon/BP_Weapon.uasset b/Content/Blueprints/Weapon/BP_Weapon.uasset deleted file mode 100644 index c403c3b7e05f7f41753c79da53472c8438959a1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29846 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%0DFchLvlz! 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𝔛^Pw;dM0VSr$kIwQMq! zXv3Fs1{on0X=DIEta+#r(?8>wwu5amEZ4@iO<|M@j$*hmYBI8DUKH_UX~cG#>amH2 zUKW7ekzo|SMo;ExFXq2Ss8I`JOADWIuBaVN|2c?H<*GTB|NuYZI2r@V+KAA(U zaLYV6^7R8q0P%yLC-k!i{Jg=Yc)&kz__;&>dBHIlj=@mIAASf4gBqU12ghaSTR0 zy}=uB{5V)mwuPf8584tCI?AXt{;3b5@l8BWi7`4fLZ}CA zS%Ne-4(QecXZW`_@SFy8qkm0-Ym6eg@{<0ylv8Vp7}BBjY`~)@FS9bo8Grz$ncVnm zzC<^^1Xm8X9nv$0=R_s-JDfB_c_}EMx3$odMjO&xes`V@D&3|n5%seer!|x|jnecjul=$P`^d~|HgF~-7iY}~8`UBj85(bKi2Z0}a}2#x$aLEA9GbBAb70_WcBFC5|q zAMjJ2@biIK592^A=?T$=59Im7Ur+cK0JvyNEsr3oM{!_7aE_}5+hycNK>Dcej492zeYz#ym2np^g78zkR)n@4y>ORBx_u+!FeZLGZPRxn`m8WI;&_| z)^uLbT$`w^rZfz0RS(jrzv1dfW0{8m&&V-GGVZNvmyTW^7?XbN=nRH&ieos0g`fxW zg)1)@slhO!ajXWj9?1*xz1Z>X!TKeSR^g-3vattEXPa(pd~J+=jWcRoAHaYAcD&KK zC-#mCd_A{biBdy-Z8`UK@V$fK7eL0rBVU8y%$>i&91r%~5p0?xo9D$}d-K;m?DaTe zTGp4(^W)3<^VjY?9>jn+I9wEiy8(wg^Z?R>5`PnKq` zt*2oa{{$BFL>zro8dMfWd81e2%D5YP^gr^(zI&Ry8}=wht5g?S?orIe9>s`((@|XI zq;;Q$wW(gFTG&!AW8Qy86_qzywbqTQ#=T5OkcYt%d6|q+Y8ku?BM(=$IjmkL8q%6x z<}9w!{!ZgK2Qhd*9DVvk7H}56T`^G{s=0U#*`yLn4U^Gs-4N3*8Ul_`LVkY89Alj)hcSou%(SkV_*sO(xtgf z)J=S99}}u#!-NAAQ)4;1ao{Ka9vU;@%e#wQA}T+9cxwEEpWdOO#F8xz0n>u;AdBIx zI;JQr+RP>oAWy^t>8Qj@)B32t^o~K|OiyH@9)+-3O=P0wjc6_to2B$5 z@P(*Wvb(el+uK~+8xR}ST#J7Lr$hKmIwEO{lyG)@o4$kr$3CVfyV8}*Xnj{sb$LAO zZsDY$vf>BQ*gCStRKm|hbd%N$b?!M5+adGey{wOF!V60suWWz)i=(E*_G`p>7=P`} zAD=jQ@enFygYMjiF7f0usU@Y{!8Dyq6g6rDrp8?%VBd0%In)x;CVC?flOuOvU$23u zPd0%L8q)#bWE2*ssV+lU@6xhvWQ*~PrQ zeuH~pzl)oxz_1xQGEt|kc7A=>XYRwmH;;E%Ba$9ZZ3-5MmH5Qk4Co>DD1bM}v&pn| z9t7{afl{=;48T^LG%!mz-06^SsxH#&rVAavF!D&q@}hG?-oMr1bW^a=CY2lVAm($L zz{L`$?qJR))ef2^T0xSm;Z6C_qMs$!%H3}%5CPYJK7X%go)@3{eb$- zzP?<Q$8 zOgocSZ_TlRT0hM(BfXAAA0$rQkP*4^^@-cR+%R`jQ?UQd_55w%m6ssE-t-bGT@*qU$X(|Hei5FThRcK>9-q1 z+;d8UMDTeC5q$V2mBE<~eA^>OB}z4{p|W!%xmu*gkA{fg;|uyMSGK7@m@_dVT+I~e zwTxV(REa|18w5JW@UW9%zJ%r7NOzVzZbhyE9sI{LeE9sHaAco+VzlftVPP7;k)zhU z=Eiz^R|V`$M)l0)D_qD`Ih|*)Q2>MGE**3zSXCP;=r-rBpV9L!s2+m#Cl$V9OW; z3d@L`Mk;kqeCr%GuD6Z15kzX0CWWYerN;rs$1B!5-w!w%_0jIM1#FfzVU`g&p+Y*E#=l9fQMw_0n`y=8b^`!dzS8~KtL_!;Iv>U!i`u_lhU}~8F diff --git a/Content/Maps/BlasterMap.umap b/Content/Maps/BlasterMap.umap index 3ef44e3dd940d76642e89852ebdfeb31673f172f..ce5b2f6c435427e94631ecb9891b047be52d5432 100644 GIT binary patch delta 234 zcmdn{C1~%LpbhUB1+v%}iaqbV_F2aI-tqUHg$a}YF)9c!G0ZG8WfWpyV9?eMbv4y) z)??bP$He&Z&~*8uj4`b4KnaiS6-ODx)!0nU4D<{wrcZs%=)`7XVxVViIsNWyMl}`- zJwwZO_BV_`%ml>DK+FQftU$~L#Oy%K0mPg@%mu{UK+Ln9{SB{t3$h*U1$=%i0(>#Q z|9e_=`LrLM)@WOD^T_mvCF~N@9d>alPHy-o*sfp72gLk9EC9qHz7P-#Z`Uss;d2E5 DCz?`# delta 234 zcmdn{C1~%LpbhUB1&%$e2>T#*$E&;0zIV}|TJy>O7!?E<7^Y6sWfWpyV9?hObv4y* z)??bP$He&Z5UV>-%wxL9QO5Y~)khgc)YuFRE%i)HrcZs%=)`7eVW?+lGX3srMl}`# zJrm=0_BV_`%ml>DK+FQftU$~L#Oy%K0mPg@%mu{UK+Ln9{SB{t3$h(u1$^Et0!6c@ zCqEbR_MY=|MOts&ectI0OV}l*JM7|AoZRqFuwB2D4~Y4JSOADYd?6qf-mYIN!siMA D(Nj|q diff --git a/Source/Blaster/Components/CombatComponent.cpp b/Source/Blaster/Components/CombatComponent.cpp index a078be5..f88c5dd 100644 --- a/Source/Blaster/Components/CombatComponent.cpp +++ b/Source/Blaster/Components/CombatComponent.cpp @@ -125,32 +125,34 @@ void UCombatComponent::Fire() void UCombatComponent::FireProjectileWeapon() { - if (PrimaryWeapon) + if (PrimaryWeapon && Character) { HitTarget = PrimaryWeapon->bUseScatter ? PrimaryWeapon->TraceEndWithScatter(HitTarget) : HitTarget; - LocalFire(HitTarget); + if (!Character->HasAuthority()) LocalFire(HitTarget); ServerFire(HitTarget); } } void UCombatComponent::FireHitScanWeapon() { - if (PrimaryWeapon) + if (PrimaryWeapon && Character) { HitTarget = PrimaryWeapon->bUseScatter ? PrimaryWeapon->TraceEndWithScatter(HitTarget) : HitTarget; - LocalFire(HitTarget); + if (!Character->HasAuthority()) LocalFire(HitTarget); ServerFire(HitTarget); } } void UCombatComponent::FireShotgun() { - if (AShotgun* Shotgun = Cast(PrimaryWeapon)) + AShotgun* Shotgun = Cast(PrimaryWeapon); + if (Shotgun && Character) { - TArray HitTargets; + TArray HitTargets; Shotgun->ShotgunTraceEndWithScatter(HitTarget, HitTargets); + if (!Character->HasAuthority()) ShotgunLocalFire(HitTargets); + ServerShotgunFire(HitTargets); } - } void UCombatComponent::StartFireTimer() @@ -186,16 +188,20 @@ void UCombatComponent::MulticastFire_Implementation(const FVector_NetQuantize& T LocalFire(TraceHitTarget); } +void UCombatComponent::ServerShotgunFire_Implementation(const TArray& TraceHitTargets) +{ + MulticastShotgunFire(TraceHitTargets); +} + +void UCombatComponent::MulticastShotgunFire_Implementation(const TArray& TraceHitTargets) +{ + if (Character && Character->IsLocallyControlled() && !Character->HasAuthority()) return; + ShotgunLocalFire(TraceHitTargets); +} + void UCombatComponent::LocalFire(const FVector_NetQuantize& TraceHitTarget) { if (PrimaryWeapon == nullptr) return; - if (Character && CombatState == ECombatState::ECS_Reloading && PrimaryWeapon->IsShotgun()) - { - Character->PlayFireMontage(bAiming); - PrimaryWeapon->Fire(TraceHitTarget); - CombatState = ECombatState::ECS_Unoccupied; - return; - } if (Character && CombatState == ECombatState::ECS_Unoccupied) { Character->PlayFireMontage(bAiming); @@ -203,6 +209,18 @@ void UCombatComponent::LocalFire(const FVector_NetQuantize& TraceHitTarget) } } +void UCombatComponent::ShotgunLocalFire(const TArray& TraceHitTargets) +{ + AShotgun* Shotgun = Cast(PrimaryWeapon); + if (Shotgun == nullptr || Character == nullptr) return; + if (CombatState == ECombatState::ECS_Reloading || CombatState == ECombatState::ECS_Unoccupied) + { + Character->PlayFireMontage(bAiming); + Shotgun->FireShotgun(TraceHitTargets); + CombatState = ECombatState::ECS_Unoccupied; + } +} + void UCombatComponent::EquipWeapon(AWeapon* WeaponToEquip) { if (Character == nullptr || WeaponToEquip == nullptr) return; diff --git a/Source/Blaster/Components/CombatComponent.h b/Source/Blaster/Components/CombatComponent.h index 8d64ddd..333057c 100644 --- a/Source/Blaster/Components/CombatComponent.h +++ b/Source/Blaster/Components/CombatComponent.h @@ -70,6 +70,12 @@ protected: UFUNCTION(NetMulticast, Reliable) void MulticastFire(const FVector_NetQuantize& TraceHitTarget); + UFUNCTION(Server, Reliable) + void ServerShotgunFire(const TArray& TraceHitTargets); + + UFUNCTION(NetMulticast, Reliable) + void MulticastShotgunFire(const TArray& TraceHitTargets); + void TraceUnderCrosshairs(FHitResult& TraceHitResult); void SetHUDCrosshairs(float DeltaTime); @@ -156,6 +162,7 @@ private: void StartFireTimer(); void FireTimerFinished(); void LocalFire(const FVector_NetQuantize& TraceHitTarget); + void ShotgunLocalFire(const TArray& TraceHitTargets); bool CanFire(); diff --git a/Source/Blaster/Weapon/Shotgun.cpp b/Source/Blaster/Weapon/Shotgun.cpp index f731459..bb788da 100644 --- a/Source/Blaster/Weapon/Shotgun.cpp +++ b/Source/Blaster/Weapon/Shotgun.cpp @@ -8,28 +8,29 @@ #include "Kismet/GameplayStatics.h" #include "Kismet/KismetMathLibrary.h" -void AShotgun::Fire(const FVector& HitTarget) +void AShotgun::FireShotgun(const TArray& HitTargets) { - AWeapon::Fire(HitTarget); - - APawn* OwnerPawn = Cast(GetOwner()); + AWeapon::Fire(FVector()); + const APawn* OwnerPawn = Cast(GetOwner()); if (OwnerPawn == nullptr) return; AController* InstigatorController = OwnerPawn->GetController(); const USkeletalMeshSocket* MuzzleFlashSocket = GetWeaponMesh()->GetSocketByName("MuzzleFlash"); if (MuzzleFlashSocket) { - FTransform SocketTransform = MuzzleFlashSocket->GetSocketTransform(GetWeaponMesh()); - FVector Start = SocketTransform.GetLocation(); + const FTransform SocketTransform = MuzzleFlashSocket->GetSocketTransform(GetWeaponMesh()); + const FVector Start = SocketTransform.GetLocation(); + // Maps hit character to number of times hit TMap HitMap; - for (uint32 i = 0; i < NumberOfPellets; i++) + + for (FVector_NetQuantize HitTarget : HitTargets) { FHitResult FireHit; WeaponTraceHit(Start, HitTarget, FireHit); ABlasterCharacter* BlasterCharacter = Cast(FireHit.GetActor()); - if (BlasterCharacter && HasAuthority() && InstigatorController) + if (BlasterCharacter) { if (HitMap.Contains(BlasterCharacter)) { @@ -39,35 +40,34 @@ void AShotgun::Fire(const FVector& HitTarget) { HitMap.Emplace(BlasterCharacter, 1); } - } - if (ImpactParticles) - { - UGameplayStatics::SpawnEmitterAtLocation( - GetWorld(), - ImpactParticles, - FireHit.ImpactPoint, - FireHit.ImpactNormal.Rotation() - ); - } - if (HitSound) - { - UGameplayStatics::PlaySoundAtLocation( - this, - HitSound, - FireHit.ImpactPoint, - .5f, - FMath::FRandRange(-.5f, .5f) - ); + if (ImpactParticles) + { + UGameplayStatics::SpawnEmitterAtLocation( + GetWorld(), + ImpactParticles, + FireHit.ImpactPoint, + FireHit.ImpactNormal.Rotation() + ); + } + if (HitSound) + { + UGameplayStatics::PlaySoundAtLocation( + this, + HitSound, + FireHit.ImpactPoint, + .5f, + FMath::FRandRange(-.5f, .5f) + ); + } } } - for (auto HitPair : HitMap) { if (HitPair.Key && HasAuthority() && InstigatorController) { UGameplayStatics::ApplyDamage( - HitPair.Key, - Damage * HitPair.Value, + HitPair.Key, // Character that was hit + Damage * HitPair.Value, // Multiply Damage by number of times hit InstigatorController, this, UDamageType::StaticClass() @@ -77,7 +77,7 @@ void AShotgun::Fire(const FVector& HitTarget) } } -void AShotgun::ShotgunTraceEndWithScatter(const FVector& HitTarget, TArray& HitTargets) +void AShotgun::ShotgunTraceEndWithScatter(const FVector& HitTarget, TArray& HitTargets) { const USkeletalMeshSocket* MuzzleFlashSocket = GetWeaponMesh()->GetSocketByName("MuzzleFlash"); if (MuzzleFlashSocket == nullptr) return; @@ -94,7 +94,7 @@ void AShotgun::ShotgunTraceEndWithScatter(const FVector& HitTarget, TArray& HitTargets); + virtual void FireShotgun(const TArray& HitTargets); + void ShotgunTraceEndWithScatter(const FVector& HitTarget, TArray& HitTargets); private: