From f666cd7d45fd82454e0fa586f3cf2a7b5658b3c4 Mon Sep 17 00:00:00 2001 From: Kubson96 <42842162+Kubson96@users.noreply.github.com> Date: Sat, 15 Mar 2025 20:17:03 +0100 Subject: [PATCH] feat: shooting properties depending on the gun --- .../Player/BP_ExoPlayerCharacter.uasset | Bin 24133 -> 24133 bytes Content/Blueprints/Items/RevolverGun.uasset | Bin 37845 -> 42088 bytes Content/Blueprints/Items/ShotGun.uasset | Bin 0 -> 41898 bytes Content/Levels/TestMap.umap | Bin 44511 -> 45726 bytes .../Components/ShootingComponent.cpp | 29 ++++++++++++- .../Private/Player/ExoPlayerController.cpp | 2 +- .../Characters/Components/ShootingComponent.h | 41 ++++++++---------- Source/Exo/Public/Interfaces/Interactable.h | 3 +- Source/Exo/Public/Items/GunBase.h | 21 +++++++++ 9 files changed, 68 insertions(+), 28 deletions(-) create mode 100644 Content/Blueprints/Items/ShotGun.uasset diff --git a/Content/Blueprints/Characters/Player/BP_ExoPlayerCharacter.uasset b/Content/Blueprints/Characters/Player/BP_ExoPlayerCharacter.uasset index 379559b7f315399bd4efa50136e780328d41dd80..aa2df4f2aaad9d533f304e06f1df7bc7d93bc5b0 100644 GIT binary patch delta 73 zcmV-P0Ji_dyaC0$0kFma5PA9_kc^x?MY&=x1tdCmy0g{+UqTQD`uKYZZGXTZK|S?- fKS#imszVzAV6$OFXcChVTr9K2R!9Z2JzNL^ijy5% delta 60 zcmV-C0K@;qyaC0$0kFma5N9U=EP%4;NsEII-or19471h&UqX}M6cCfDLnX6nL|+oK S`Bp>)0RWShRWGwWTnGXTHy5`6 diff --git a/Content/Blueprints/Items/RevolverGun.uasset b/Content/Blueprints/Items/RevolverGun.uasset index 9ce83b14dc187dd63d386321a41f2b885b613936..0230aa18f34f6cb2b7b5e1d1da5dd20feb17f391 100644 GIT binary patch literal 42088 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 a`Y?*=HJZU6bI$n1+5E7_*^R$O{Qn2ycI?Ig literal 37845 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 literal 0 HcmV?d00001 diff --git a/Content/Levels/TestMap.umap b/Content/Levels/TestMap.umap index fb68d38d84baad78d5bebb3c9d4941087ce33d23..7c6bb0e575602458166baea32318fd354c7ba8e6 100644 GIT binary patch delta 5454 zcma)=3s98T6@c&kg+`4U;sbV998w`5VRPH8nLPZIh0J#>PaWNzb|e{prHLtlXKq|9{W< z&N=sS_TIbu@ipb(XUcCPxZ7XT8H1nz^LWM-c7QXMr_dW?$AjVJwE>y<#y$#WY$iVE z&SflDwm(YMu;pot6=AK#>Ru9hr!r?`;-Paa*0(*z`xmon&&53E74yc|?JFLpubYbA zg`WfPF;Ab`ffmKbP~=d)$3i_yLUhwHHAA`RH#WVfv~p3^CN^W@^!+|?)!(A}1YB?% zKN`)XDnFL(`>^sgwKu4n+p;JM77y*gZllZPQg%)H4cM2 zja;+jCOMnx9M~J-V@s8Y9-6wb&V_r-Pf^}NuE+(KA-P+~&mBUaD)mQ((5I1ptYgG-91h(`1)ATAmFq zxF)IlFLGr=b2g@fcU*)0+?S8wcF16~=j9I_m}wlIh6E!Ly2A2M`_za|yMqKI?6g-QQI=ac|?~XJ01j)QRw=r7Y@hg&aq6urhc;|vOuccGGNraL{Dc<)@DH9{6v7c6BWpS z&*#TmCZUmjS#u26t*O0-P~ZH&TE7xHT3a%ObN?Z%7isEggVg%1wvyC|p3b_}oC&RS zX8Zr!VZx%&OD;|@&GAUA2eDG=$^@Qjfx-o0o^&&#-yWoXQLe?3ETQ&|wnEG2b2~~zj+aQRDg_K%Z9E67Kn|pnrSBWOBW$M z64?zgITPSo^fdoZ2RU3NdrI_SNvG!shlMFt3w3WTA|s?K&|Q1ElcSCMS*yhhC3Mn~ zBO3cW>Ct{9d7<-F_wubqu=T5jmnK9gi}cf!yi`kM z^%~)&bD`A|iJ}G>pZan_2D-XNcL#G3QsIDDHqH1Ciex8MPAC`@_xZ|A*k9c1Wk*>Jn4so z?(e?zmslaxg$Y&*Wl+BCBh6r&L>5+R3!Y$w&;*n6XRUc2EogD+kRct4_rJ`E6XnIbwp@T%X>61~W)CikiM5dugKQ^c%KbOduT5Ty4H7}Ji8b$uK zM1EB(ymU&0&I5hKwRAH(QE3Pv&)Sorv3u7Hvr;rMO8!@XvcfqF%o9G?FrgP3y{&W_|zA>87{n%+YeA2l7A{7BU z1sFMI}04v>HsZBTIZ?SsHHu3kd>O8gYIkd_C8?0oH%k3$C*ME%yaz-cKU91t% zu*7E+{gUm&YR1lbjiTJ3&b3Yifl{xf3Rp2yDLz8i`ICWjo(R(r#LmY(7P5VLXu*wW4LL0Sv8 z?CX6Xb)_3gc!ba$Nq^JbiZ%&wrP9Qo2787#_frpMgmG>qK>Z~1l)~Rr4=w+EOdK6E zj%W5bY?F+(Vai?FNa?(z?+`7JHmK9i<-n!ax4)ckS!!d(ua#9z`P+{tlRnkK$*K_}sFA-UBz% z=ikI$#EVc26vz|3clIY#IM5AvdMt02@M_5*as{T-QvOKN5hTkjqa37 zI(1U=MRqd}h3h5WaI3)$Ua_ZyHy0+qX6+c4*kBF$AoWu9N&1pdc}8Zlo{8dXL4Tlu zeN&+O50MD%Ux*!LZQKubmQ}&-ayAs_^DK7!KLJ;k~Lzm{XPO7KWDaWW5Divdlb;C>T+F6y+BcxICRpvROIG+F)N%EnDDd~{TEHPgd!rlNC^7S?6b?Vh z^DTR%`&0}VPQ&1FB3B|rA1fNC@CbE(<3!G9s=sV{sF)j0|E%Lxb#HW0Xuzi%qn396 z^wf>Z`=V>3i{MJL7p!caJnry=@6W_^U+C^x_SW36ZiwDJ53avF8s2XX#|$v3A+6aQ NPPAT8PqYU5{SP{)%mV-b delta 4688 zcmZ`+4Nz3q6@G8CR5VLmv#{*q5|Cn8QxKP6YQj=?MScW=uq?qJRDPmtsQf6PP$4X! zprH73%+zU}L?`J?o0MSk@-t1ag4M=U+f+Jc+G-lKlO~;sEw&nyim~Th?t8uk-krJc z-TQstJ?Fl2&%Jl|#m{t~Ue=vR79SWX5MbOB@vtE1gcn3XSg)g&AnZthSAB6s*b-h& z5QJoWSELBSD&GHl-h`|$A91YpSa0Q7KbsxD-Tf2jT{_$SPRuJynohfCguDB1A6Rp@ zurda%GdnN9r($8uK^*Z~KSHW<4+~C6$U*5qzvR`OkCigw&gdmu{E!${L_itG*0kexuyn^TZqD99S_ zYY34NW=BR&A<`az{2Gz{a3jG4hDE_4C908|n9jq$e-L$*4DoX01|sViQl*MfMF2wI zR?d(O+%mCKxIa0>oCz1Klv<&&CC{7(i%xcXsYl)dN+0P*KJHn@UCre&UA61&n z22JmEnoO&vwJn-swrVnsn#^@gKesd)zoxZWnoNf#)2Yeq(qy7EnJ!JHTa($R$;1&e zQ^^jvo)|T4R-|iMIHbvBPs_ZIIo2{Q^ByuAiBZibb#Yus9p4+2oj$gYTKQh1(`Oq) zwx~4EF=Q)8=&WgANE1iSA_4)(8AP@-q?v1m5!n$imsW`U{{7grave=1capAJLzg#6 zcTz)_KS>v|WO~0I(kZK@o{?9RDbi#_+6_wNTj3&}hC@q2L;UEQz?J2O2m@wHF=v7W zy?|FdD2bU|}OjkDjh9b!kKFw^eN@9cYr3N_XvWVB<_zz5Q*p+MzLGd~+ zra&FQK9vl(>M}ut(+)PbA(GauLZupD8bSED7#ncVXTk~Sp~V@^)U-b3D)on4y^DUv zDe4mUqOekx>KIq$!EtxW{6Apca6q6rZban+99R%E(fAiCOSw}WYh zNJ^;&mA!3DD+n7Zun}O-h8rOX!8S!L2yb%lmnxJ=x?Hy8FI7<>d(ZPBq;?a4rF+xF zo1R32qr?Kf<{$tScVnqHT9`^RuRGt){bx}ML9)^k5+H-ngE;t4X5qE|9; z6Rfa^cLJEBE8^K#(t%87Xy$Xcy&fpbN&#E8fo*d6fF>`maxXuH;YnUvP)$*z!&|oZ zZ>~;J=75B3+I>*ku(Gf34c8n{Z z2X{6eA~^=|-b8~p^JG8-uhFa2oy7HcT))8C`JSdF|- zm;X4{`Mgg*;O<~GtMvcFzO1M5->CXD{%fo>9`nI0&@YACSjjov$zNf0KyyLVO#1gW zhSiD_4xdTMLz6oX!v%@rIk-`3Fy0W@gmn}7ad9x$GXM}y+Y&`6Ez)BbV+MuWBdG@;H#(%BZMTWy_n^JrhELRjskuZ;3A4tFN zxTb@lwkF7~x57VaBf($qfq|~YLGv&s3u$#=yvs_<%BPjo9my6sw$1@NyGO-jY2)s@ zI_u~|de^|9f5`V?+QVD_+~UH~XD=jIxO`C76Aoj0=00@cc0y(PlayerCharacter); if (!PawnOwner || !PawnOwner->GetController()) return; @@ -71,7 +71,7 @@ void UShootingComponent::Shoot() void UShootingComponent::Reload() { - if (bIsReloading) return; + if (!bIsHoldingGun || bIsReloading) return; bIsReloading = true; @@ -81,6 +81,31 @@ void UShootingComponent::Reload() UE_LOG(LogTemp, Display, TEXT("Reloaded. Ammo: %d/%d"), CurrentAmmo, MaxAmmo); // Docelowo tutaj wywo�anie UI aktualizuj�ce stan ammo } +void UShootingComponent::PickUpGun(AGunBase* gunItem) +{ + if (bIsHoldingGun) + DropGun(); + + bIsHoldingGun = true; + + MaxRange = gunItem->MaxRange; + DamageValue = gunItem->DamageValue; + FireRateCooldown = gunItem->FireRateCooldown; + RecoilForceMultiplier = gunItem->RecoilForceMultiplier; + ReloadTime = gunItem->ReloadTime; + CurrentAmmo = gunItem->CurrentAmmo; + MaxAmmo = gunItem->MaxAmmo; +} + +void UShootingComponent::DropGun() +{ + if (!bIsHoldingGun) return; + + // TODO: Spawn gun actor + + bIsHoldingGun = false; +} + void UShootingComponent::ResetFireCooldown() { bCanShoot = true; diff --git a/Source/Exo/Private/Player/ExoPlayerController.cpp b/Source/Exo/Private/Player/ExoPlayerController.cpp index 143fc80..3f2c651 100644 --- a/Source/Exo/Private/Player/ExoPlayerController.cpp +++ b/Source/Exo/Private/Player/ExoPlayerController.cpp @@ -90,7 +90,7 @@ void AExoPlayerController::Look(const FInputActionValue& InputActionValue) void AExoPlayerController::Interact() { if (InteractionComponent->InteractedActor) - IInteractable::Execute_Interact(InteractionComponent->InteractedActor); + IInteractable::Execute_Interact(InteractionComponent->InteractedActor, PlayerCharacter); } void AExoPlayerController::PlayerJump() diff --git a/Source/Exo/Public/Characters/Components/ShootingComponent.h b/Source/Exo/Public/Characters/Components/ShootingComponent.h index 6f66409..7239898 100644 --- a/Source/Exo/Public/Characters/Components/ShootingComponent.h +++ b/Source/Exo/Public/Characters/Components/ShootingComponent.h @@ -5,6 +5,7 @@ #include "CoreMinimal.h" #include "Components/ActorComponent.h" #include +#include #include "Interfaces/Damageable.h" #include "ShootingComponent.generated.h" @@ -18,27 +19,6 @@ public: // Sets default values for this component's properties UShootingComponent(); - UPROPERTY(EditAnywhere, Category = "Shooting") - float MaxRange = 2000.0f; - - UPROPERTY(EditAnywhere, Category = "Shooting") - float DamageValue = 100.0f; - - UPROPERTY(EditAnywhere, Category = "Shooting") - float FireRateCooldown = 1.0f; - - UPROPERTY(EditAnywhere, Category = "Shooting") - float RecoilForceMultiplier = 1.0f; - - UPROPERTY(EditAnywhere, Category = "Shooting") - float ReloadTime = 3.0f; - - UPROPERTY(EditAnywhere, Category = "Ammo") - int32 CurrentAmmo = 10; - - UPROPERTY(EditAnywhere, Category = "Ammo") - int32 MaxAmmo = 10; - UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Debug") bool bShowDebugLine = true; @@ -59,6 +39,12 @@ public: UFUNCTION(Category = "Shooting") void Reload(); + UFUNCTION(BlueprintCallable, Category = "Shooting") + void PickUpGun(AGunBase* gunItem); + + UFUNCTION(Category = "Shooting") + void DropGun(); + private: void ResetFireCooldown(); @@ -68,9 +54,16 @@ private: FTimerHandle ReloadTimer; - UPROPERTY(EditAnywhere, Category = "Shooting") + bool bIsHoldingGun = false; + bool bCanShoot = true; - - UPROPERTY(EditAnywhere, Category = "Reloading") bool bIsReloading = false; + + float MaxRange = 2000.0f; + float DamageValue = 100.0f; + float FireRateCooldown = 1.0f; + float RecoilForceMultiplier = 1.0f; + float ReloadTime = 3.0f; + int32 CurrentAmmo = 10; + int32 MaxAmmo = 10; }; diff --git a/Source/Exo/Public/Interfaces/Interactable.h b/Source/Exo/Public/Interfaces/Interactable.h index e16f178..e5fd2af 100644 --- a/Source/Exo/Public/Interfaces/Interactable.h +++ b/Source/Exo/Public/Interfaces/Interactable.h @@ -1,6 +1,7 @@ #pragma once #include "CoreMinimal.h" +#include "Characters/ExoPlayerCharacter.h" #include "UObject/Interface.h" #include "Interactable.generated.h" @@ -16,5 +17,5 @@ class EXO_API IInteractable public: UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "Interaction") - void Interact(); + void Interact(AExoPlayerCharacter* playerCharacter); }; \ No newline at end of file diff --git a/Source/Exo/Public/Items/GunBase.h b/Source/Exo/Public/Items/GunBase.h index b5c1f97..493318c 100644 --- a/Source/Exo/Public/Items/GunBase.h +++ b/Source/Exo/Public/Items/GunBase.h @@ -15,6 +15,27 @@ public: // Sets default values for this actor's properties AGunBase(); + UPROPERTY(EditAnywhere, Category = "Shooting") + float MaxRange = 2000.0f; + + UPROPERTY(EditAnywhere, Category = "Shooting") + float DamageValue = 100.0f; + + UPROPERTY(EditAnywhere, Category = "Shooting") + float FireRateCooldown = 1.0f; + + UPROPERTY(EditAnywhere, Category = "Shooting") + float RecoilForceMultiplier = 1.0f; + + UPROPERTY(EditAnywhere, Category = "Shooting") + float ReloadTime = 3.0f; + + UPROPERTY(EditAnywhere, Category = "Ammo") + int32 CurrentAmmo = 10; + + UPROPERTY(EditAnywhere, Category = "Ammo") + int32 MaxAmmo = 10; + protected: // Called when the game starts or when spawned virtual void BeginPlay() override;