From adfe961cefe2cb684a2acff3dbf22d02cd063fd1 Mon Sep 17 00:00:00 2001 From: ghostie Date: Sat, 30 Aug 2025 15:10:56 -0500 Subject: [PATCH] highlight enemies --- .../GoblinSlingshot/BP_GoblinSlingshot.uasset | Bin 34680 -> 38379 bytes .../GoblinSpear/BP_GoblinSpear.uasset | Bin 35159 -> 37835 bytes Content/Maps/StartupMap.umap | Bin 54450 -> 59915 bytes Source/Aura/Private/Character/AuraEnemy.cpp | 2 + .../Private/Player/AuraPlayerController.cpp | 65 +++++++++++++++++- Source/Aura/Public/Character/AuraEnemy.h | 3 + .../Aura/Public/Player/AuraPlayerController.h | 9 +++ 7 files changed, 78 insertions(+), 1 deletion(-) diff --git a/Content/Blueprints/Character/GoblinSlingshot/BP_GoblinSlingshot.uasset b/Content/Blueprints/Character/GoblinSlingshot/BP_GoblinSlingshot.uasset index 72f857ab271abd5096cb25cfb53df831429e0dac..3f980acda255cf36421ea83d844df6b3019f8685 100644 GIT binary patch delta 14097 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 delta 10029 zcmd5?3p`ZY_djF2%X_>~W@NfJVkseqDY&~S|zt4W~R zCW|0)fF?{skm-=BfEy^!s2?d80N^vk`{^RcMsVfWAxO|{a_A50-cH9xc7?sEqK-m2 zw3Uns3%P5L0))=qaVy0AJtzSYKoc-#>_xWX^wj9w!zKvjja(K=x+x?Lm! zeJ`Sh?h;*$4v1Ew^@3`4HP z4zEQ=rleMprIwJ;L()DnVgTeF7!V%DLShnBUZJyOo=J-W-r^0>VUftJTRN+&rpdaH z&|Pv1(IGh#)J5J5&6D>d$)m63X3a0bQ#HwCm?M}f2&zXQAk zfuEJBpo&&0Xp!VIDLRrygaUY)iLp=@iUd&fq3D47c8a0RY8)~JP`AJhfy|gd59Wpt zVesf~>yC&6x-@W806R1q1Hyq8krRM$F(Z43le z+koi6ps>iT&HM2`*hSn)7 zerTvb*-{x#VJvL6VWFYSC?<%%M%A!#07(nvE>>Wyuq;>-7{p|)j0ubk4G2eYf2;CT z-ATayDfK1tgaRB57!(47&e2#vazsNkOgXG^lgJa0-l2G%j#EhBz`_DM49i=93mdN@ zg1BIu7mm}%0Jmil9AQssT*ko+#(o7jo;KqRvnRp9F@+^&oFK4a!U;hKKgaa~+`kac zxYoCT+i~OH!r|sV8JW);egqm$AnXwe@cDD#Ljc@N0CD;y91)(cISB262@ER)4r_n1 zh9f@%!pF&QcpSglW7seeMxtTd-gy6s*g@d7f7o#1Kg1<{6^D;MYt=y!H`CgaJ-SQU4IPX#!3kL0$j@gmt)T5wjZ&5k_X? zf`AD0t+u1yhyWByh(!~weO-75(j!pgoto$^syM2nqcQt;oc$cAjtQtM;Fcu-CFbDJ zXw;QTs8Z1xR9Vyr6_+*!kn=daBN`>`)Wa-SJ16>5L$|ZCP1Nq%K)o^*K9Wix1~|_1_j`73y}ma!un$zj*i2t zXjJqSZ~)FC1ca~{myB7|(V^-M2v~$2Br+F9LmBtCI2i&=t!2DqGNq(Go3lA7nEH6RXuSU$hvR(9E@bka)_?`qcUa`OM-D{SJK+ zbYU~4W!ZcRGDgcwRZp)(q}uaVY8mzBFkTdh_g!nx=f$~cWo>jJA3gd?%Lkg+7T@aH zx`TSZ^=!H$lEy_DFNy$`Bi_fU^ugHBQrlYlQrnt@+}xUNq@A<+gI|=nkepaq{UOl>qM-9gMSJnlJCzPL zA{18}Dd0D)&4nDpotq|N2?t$0RXtUg!a?qvM>1o$3MI1;y=I5h3tYBNbb)Xuqm#*V zA@AtAGP~Jn%^6+9d|lDHGB+1;teR7OCKvIq&zkz2$%B!|qpQ;`xyYuNXZoEC7Ow+| z>9JW*W7-ipS|EZq8d06$P}7<>l$(|?t){uAl~EwUC>^4(C`dnN1KafcE|spU1)|N) zzcGGeklafws~6HreS^&#bC|t$6|E5(M@r^iRukr%zR8I`aD2Oil~wwsk@8;eQ|V`u zc`xHv1cyYIbn3tPTl$P$kzr6BU-{*uyOnmzJ=3Od|&c9Bxs(`DK+H0#jz z4bMHhmHZw#MV{NJo5APo@*};oE(xNQoVvb-pW?HxZG^UNTgbuh_6PK=KW6nSrPI6o z-s>68Z9~Q9Ms#;GrJXw!Zyh&&8$xz}&5jS5ay`hz|HqU+k%}V)PycFlt8u@wWVv_w zmFAVX=81M`9vj*74eEr|(!(n(QJunkUh~N&V>oJgQpn)_Ci2l@PAAP=60sX_aIPPs z>$TcQmCf)m%XKk(&LFk9$4Ua3*PGI!vd6JPC=(7*2cv^Q!ooj5ya~K49;vq5FkQz> z^+}!LlRI*ER|XIJ7hap1G_`V#_2%&QJ2Zn)_cawE)VTUgvqcN9+)t}N*PEMtOGjNy zjl&JnDSxfhYqY7QSULP~Of*~T>U-oc?VU=K8m*&uO#bwDml<8@kp8Flv9@+%$>tKKwJWZdEAYyDC6_}rq9c&C|By{FFA-`#Y> z?al4ifme@-Kdxxy^8_XMUb0L9gg>05K_~qT{OU5vLKd258ddH&)JiF6>E2q&am=YxyL5M!7tOcVHOa^O<;&+aT)Pep zC9zI#9sWW?%gFGI%vTFa!YWsBm&B?4d>|e@`C=aHp6jZfnZNFEZwT%?&xn>|%?qT` z+Rt6*DA-Vc)=_No^|L){%U2fb$aPY2K2$WU{Zrl_=Ps#}&Gx5=#yHA!CmJ$#drfZ- z+Ed6eVZ=_CwvqZvZDAd`I$t(a(Rc`0M`gj`zsGagRi2`kLFLq@!!L?kU;e zDOvCyIpXe-Gt_ovwQ&A#U1cq)Wi3bOF1ypjOwT8CD(CTAT*$9vd~B~i$aAb^ARSDz zTrk6|6V}L$=^n5Jvu2ZUUUH>+a-}^TSq@@BTEQwk0o}CiE#6QQ`iWA(vPi^g` z%*U$plB`-g8~lfFmH4*|E!>+#PLvKl6q*|7bkw(eK*?H$N0N*$>?%XUZqzR!Suf_^ zYI{+sL%*=JH7K(q^gU9ssWbU*o9Cdy<>8w`Qx0_WBzC2`w7+2Ssm5am`+TH}T|r)j|68`%=ZUunUwsYkSny=d)FM_x?I&w_N)fX;e7Yy2o$n zPUZD;Q-*V2{FTKtWLu57d&=)`hb8|Zmu@s zV98|bz`=&;jx9s(cS=kSUy4ak0>dm??X%f}-^w5jUu~Yx?w1bk94oomwuGkjYQt;$ zxFTm~-m$~QHKjvMV{w@mxJ&Ia5(^J(Xd-z_A6aPJ%itz;Ha+OzFTGj3`ea+lPDD$m zsr}K#lQ)cWA98LU`>EGB<4>m7g9q}lw4OFEX-Qv=sv_0?w5EQ)jc43z+WqI-TMXWe zvhIkKyINruQ1*74Gc^}(@j7ZR?%*(YTA;#kLl-nEvo+kfxrbM;<& zgnoL#51O6<_(IusKo|5=dJR}8qdzW`oR2HzQ;#fc&!9NVngN$)QLrF4^V}V#-*+KD zDP=9;D4I>_i=DtT7XPP0N z-qS?9~Km7DbF6bFyz$F9($pL=Lr)Dm=oAbLGXk2+eV1 z8~t4iR(R5j_C5!&VOqrEAsq%zMJ=gCEeR@@;)+Z6BUej@Oi8+M%VpOyU?UIrAnqWy z;cf#Pd$>t~WAD3N$(R$ep0!I{i?ha1{s`r1n87vG@3LN&XYv`1$1LtY;OEEgjeeQg zd7b4Tam~Gn`zRCX>0SI-Hd`wIxNaZ?*R#Ve`@#4`Srd{ z>uar#>A&l@7%TRW?{(=9SZ;pM&`3r2nU%=gh|*?1`|v@q1J0+D)p>3~VM5q+Dg}19 znVAWiqC-yV^eO0|qdF&ev|OKbUIg3Vak(+Ac3^{2t~}Hllj{=kbAgzvQ>T8XJ_*bx z3)Ih1@<5ag*hS0|a+qF%E_d!sZc>GYw{2i)eajD_4~;-qLpbfFzI|;0L0R!C?NKQu zRi}3OMCQKoPtAMl`r^%B>#Mm|NA3L%-}9;CpUWKTe$4qkaVRokMUaWSgKoMT^SqPC z`UAC&WsXL7BlJtaPAE9lzIoh*w)%c%tmF#TL-5^Dw%K&EDN@mr?<5u`n)*w^G_WUT zQG#NH5>)96m_^J2VX&b!lDd%V4`g)n@Sv5)!C*9T>Pyp-OI~4E%`Pg z^Z4%Nl`RSCa9TX!6K@>X`UEND>I+%wgDJFl?RnR>eXkfK__eZuUD}#gX_g=v2`XqM zvItC^!eRVi%Z!VCN5_?%>e^H5+KUPksGU~KV);ng8Eud{o4~;Kxq(f(mVR$e_-HAZ zY!Qc=xE3i*drAY?N0WiqWz8sS1(hRAN^(AWx4b}XNR!9XJTr}gJTQ+g?qFU6uF4HA z$|~3lKAEZ=5r3i~&1E`5dAug@f)oK${pX3=MB?}tw| zxG(j5b6eLAwgx{`WUBZJD`bTjx@eHoTu}ux1aXR}DsU>&M)O1Et31Pd$k>OqMlaiN8P7G??_ z1FRyBXD6t_kMZ@m3VslPxhDvOrvw;N3{ZH60?RkSP)iMiLNI5(c^I%OK<_= zg;zfOQUjjxlamB%!o9CGB%%1lM$CdXQ7zdOTu9cLLA5n1{LcXjJ_ZeCKC85i()2B+KIdb4|6g7k7tGOQBVQ1 zLY$-6qdT@xBo^T+_UO9(6plLagi}Z`B~egO!kH8N5&;4TfMtRZhTR<#O(KMv0uF*x zEM*)zNnFF12tdbS6ByoKYUwX9JWFvQY!w#hnxMb3Sa!ku7CcbG-Y3AD5Yl;o3CqNg zZr?7;`NXyV%B>GCG|ZuY>WwJYyYUR0!;#hg#GP4~-=BJJ1zt^MjvbUN#KnSRgJr=e z7{mp*&<3ZFU{0;X8AMCOA?xSkCaaGF4RI<2C_IP+1+CsHw?c8ej@>cK#Cal&3M>;W z!t*^?CI}Xza$6M8Rl9F05);RSU^%&2c1&NAb!y3;oo_`3YlLF@Ux>V8Y_n1Yh4t!wZw^|2VLy zSF)^?U@+l}4GYW`|A+6_>^r2k;=s;--BD8*c|95LOTl#h5KO2=Yt1n*`y*#5w|2oH zsb8LjOvd|KFlW=C#@33}jIH@1^h&;-GibDG#}mX9`@+?>1J7YO}KG1?$b?R#kZ>PR9FErnnH9LYjhh z?^D3;)aU-mQA~?9?E2`>#Sn+a diff --git a/Content/Maps/StartupMap.umap b/Content/Maps/StartupMap.umap index 5f7a7c97076bef40a9b9d58d3841df4d6995a3cb..79c845be05dc293b97c972767fdfa3c6e8f182e5 100644 GIT binary patch delta 3896 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 E2RVp@J^%m! diff --git a/Source/Aura/Private/Character/AuraEnemy.cpp b/Source/Aura/Private/Character/AuraEnemy.cpp index 5b0312c..fc2430c 100644 --- a/Source/Aura/Private/Character/AuraEnemy.cpp +++ b/Source/Aura/Private/Character/AuraEnemy.cpp @@ -5,8 +5,10 @@ void AAuraEnemy::HighlightActor() { + bHighlighted = true; } void AAuraEnemy::UnHighlightActor() { + bHighlighted = false; } diff --git a/Source/Aura/Private/Player/AuraPlayerController.cpp b/Source/Aura/Private/Player/AuraPlayerController.cpp index 7fb7c9d..5ab8825 100644 --- a/Source/Aura/Private/Player/AuraPlayerController.cpp +++ b/Source/Aura/Private/Player/AuraPlayerController.cpp @@ -5,12 +5,75 @@ #include "EnhancedInputSubsystems.h" #include "EnhancedInputComponent.h" +#include "Interaction/EnemyInterface.h" AAuraPlayerController::AAuraPlayerController() { bReplicates = true; } +void AAuraPlayerController::PlayerTick(float DeltaTime) +{ + Super::PlayerTick(DeltaTime); + + CursorTrace(); +} + +void AAuraPlayerController::CursorTrace() +{ + FHitResult CursorHit; + GetHitResultUnderCursor(ECC_Visibility, false, CursorHit); + if (!CursorHit.bBlockingHit) + return; + + LastActor = ThisActor; + ThisActor = CursorHit.GetActor(); + + /* + * Line tracer from cursor. There are several scenarios: + * A. LastActor is null && ThisActor is null + * - Do nothing. + * B. LastActor is null && ThisActor is valid + * - Highlight ThisActor. + * C. LastActor is valid && ThisActor is null + * - UnHighlight LastActor + * D. Both actors are valid, but LastActor != ThisActor + * - UnHighlight LastActor. + * - Highlight ThisActor. + * E. Both actors are valid, and are the same actor + * - Do nothing. + */ + + if (!LastActor) + { + if (ThisActor) + { + // Case B + ThisActor->HighlightActor(); + } + // else Case A + } + else // LastActor is valid + { + if (!ThisActor) + { + // Case C + LastActor->UnHighlightActor(); + } + else + { + // Both Actors are valid + if (LastActor != ThisActor) + { + // Case D + LastActor->UnHighlightActor(); + ThisActor->HighlightActor(); + } + // else do nothing + } + } +} + void AAuraPlayerController::BeginPlay() { Super::BeginPlay(); @@ -52,4 +115,4 @@ void AAuraPlayerController::Move(const FInputActionValue& InputActionValue) ControlledPawn->AddMovementInput(ForwardDirection, InputAxisVector.Y); ControlledPawn->AddMovementInput(RightDirection, InputAxisVector.X); -} +} \ No newline at end of file diff --git a/Source/Aura/Public/Character/AuraEnemy.h b/Source/Aura/Public/Character/AuraEnemy.h index 6aaf531..24ec967 100644 --- a/Source/Aura/Public/Character/AuraEnemy.h +++ b/Source/Aura/Public/Character/AuraEnemy.h @@ -18,4 +18,7 @@ class AURA_API AAuraEnemy : public AAuraCharacterBase, public IEnemyInterface public: virtual void HighlightActor() override; virtual void UnHighlightActor() override; + + UPROPERTY (BlueprintReadOnly) + bool bHighlighted = false; }; diff --git a/Source/Aura/Public/Player/AuraPlayerController.h b/Source/Aura/Public/Player/AuraPlayerController.h index 87219f5..d745deb 100644 --- a/Source/Aura/Public/Player/AuraPlayerController.h +++ b/Source/Aura/Public/Player/AuraPlayerController.h @@ -9,6 +9,8 @@ class UInputMappingContext; class UInputAction; +class IEnemyInterface; + struct FInputActionValue; UCLASS() @@ -18,6 +20,7 @@ class AURA_API AAuraPlayerController : public APlayerController public: AAuraPlayerController (); + virtual void PlayerTick(float DeltaTime) override; protected: virtual void BeginPlay() override; @@ -31,4 +34,10 @@ private: TObjectPtr MoveAction; void Move (const FInputActionValue &InputActionValue); + + void CursorTrace (); + + // for highlighting + TScriptInterface LastActor; // TScriptInterface must be used to hold interfaces + TScriptInterface ThisActor; };