diff --git a/EndlessVendetta/Content/FPWeapon/Mesh/SK_FPGun.uasset b/EndlessVendetta/Content/FPWeapon/Mesh/SK_FPGun.uasset
index ceecd3a8..fb9bcccb 100644
--- a/EndlessVendetta/Content/FPWeapon/Mesh/SK_FPGun.uasset
+++ b/EndlessVendetta/Content/FPWeapon/Mesh/SK_FPGun.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:d1541e35feca0492ef7d3627594bf8a44a1d2df2de065eef10debc2ff10e5b82
-size 2639726
+oid sha256:a25bd766b410c091404860a06869807c72f401b56bb3a1176d4a9f059f62e3aa
+size 2639719
diff --git a/EndlessVendetta/Content/FPWeapon/Mesh/SK_FPGun_Skeleton.uasset b/EndlessVendetta/Content/FPWeapon/Mesh/SK_FPGun_Skeleton.uasset
index 069548d4..05540461 100644
--- a/EndlessVendetta/Content/FPWeapon/Mesh/SK_FPGun_Skeleton.uasset
+++ b/EndlessVendetta/Content/FPWeapon/Mesh/SK_FPGun_Skeleton.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:708dc110739caaf4ba73ad02c0d6e9610992e65d199b7939f2824b04ded9772f
-size 9980
+oid sha256:2dea0307b92ccbed30109943ac5590faf782a6883906b1583a171e1296bafd2a
+size 10750
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_ARTEST1.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_ARTEST1.uasset
index f2ca1773..7efad0d9 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_ARTEST1.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_ARTEST1.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:da280a53ff9a19fc5698a2e4e87a2f0b6e4fd81c95fb5929a659cdb507b0d446
-size 41581
+oid sha256:2dd4b81f67f4c6069cc038ec8100dff8c3f4e28bbb79d37b10bcdd51f71f83d3
+size 41445
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/AnimatedPistol/BP_BasePistolWeapon_Animated.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/AnimatedPistol/BP_BasePistolWeapon_Animated.uasset
index 3cd2eccc..ccc2ed32 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/AnimatedPistol/BP_BasePistolWeapon_Animated.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/AnimatedPistol/BP_BasePistolWeapon_Animated.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:412a1fbdf641138e1bc451eecb3fc9e8a829692d8532a478834269eeadb547b7
-size 246895
+oid sha256:205e8a18116f736714205b9148256ad96810ffeb84ea16a491b783bf989c17b1
+size 254152
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/AnimatedPistol/Pistol.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/AnimatedPistol/Pistol.uasset
index a7b68978..94d5738d 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/AnimatedPistol/Pistol.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/AnimatedPistol/Pistol.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:46a72a6671c239098b2d0ebfa2e2af9fbfb8bb7b53d39fb723db61c91a0477bd
-size 935377
+oid sha256:8aad6513dafb2daf9c77cc9ffedead792f7ee4e22709ca20309d967f64ee1e7b
+size 935300
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/AnimatedPistol/Pistol_Skeleton.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/AnimatedPistol/Pistol_Skeleton.uasset
index 3aa488b7..cfe22307 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/AnimatedPistol/Pistol_Skeleton.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/AnimatedPistol/Pistol_Skeleton.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:b7e0480b2ff1c91c0099c9d4a03590743360d8d139a4e103154e2be11856cf8d
-size 7647
+oid sha256:bcd0987d98828fe75124f3bdbec4cb955591c45296cfb0a933d7b26f90542015
+size 9054
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/Workbench_WeaponAttachments/BP_WeaponWorkbench.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/Workbench_WeaponAttachments/BP_WeaponWorkbench.uasset
index e0b19392..b7e51127 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/Workbench_WeaponAttachments/BP_WeaponWorkbench.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/Workbench_WeaponAttachments/BP_WeaponWorkbench.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:4a985ecacf144a27ded607dd2012889e01421cc0050d1278ca36a169872cf899
-size 149685
+oid sha256:3058523d1db3b3ce8bb608d719510ca31385f07e180d6ee49bc98d73950fe67d
+size 177754
diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/Workbench_WeaponAttachments/Workbench_UI/WBP_Workbench.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/Workbench_WeaponAttachments/Workbench_UI/WBP_Workbench.uasset
index f7d9ff1f..5346743d 100644
--- a/EndlessVendetta/Content/FirstPerson/Blueprints/Workbench_WeaponAttachments/Workbench_UI/WBP_Workbench.uasset
+++ b/EndlessVendetta/Content/FirstPerson/Blueprints/Workbench_WeaponAttachments/Workbench_UI/WBP_Workbench.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:453fcd2051bb7162a4c54dccd78d1c02603a9c11ab43a18146451d41d776862c
-size 309217
+oid sha256:0ae694c450bf435ae7b867f11ce28e41372a31c1b0b6e8b6a1c8d19ee4f38baf
+size 576887
diff --git a/EndlessVendetta/Content/Levels/DoorTestLevel.umap b/EndlessVendetta/Content/Levels/DoorTestLevel.umap
index 4421c400..09bc9382 100644
--- a/EndlessVendetta/Content/Levels/DoorTestLevel.umap
+++ b/EndlessVendetta/Content/Levels/DoorTestLevel.umap
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:d2943d11286f0fe5199956829c50f4c143255de490d6854d443df6956b6aaed9
-size 19237
+oid sha256:df1aa3a4181f8c693ffe2f2f152cde6f60f1f28dd691cfd35de34c6837fbe35f
+size 19500
diff --git a/EndlessVendetta/Content/StarterContent/Shapes/TempExtendedMag.uasset b/EndlessVendetta/Content/StarterContent/Shapes/TempExtendedMag.uasset
new file mode 100644
index 00000000..ab1b9cd1
--- /dev/null
+++ b/EndlessVendetta/Content/StarterContent/Shapes/TempExtendedMag.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:dad1cb27145affe784da5f1db42f9979fd90bec8ab16c70049273f58cabfb210
+size 47919
diff --git a/EndlessVendetta/Content/StarterContent/Shapes/TempGrip.uasset b/EndlessVendetta/Content/StarterContent/Shapes/TempGrip.uasset
new file mode 100644
index 00000000..35c3fed8
--- /dev/null
+++ b/EndlessVendetta/Content/StarterContent/Shapes/TempGrip.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3c9dc7d2236cc8b2c51501b90fb11df94a79d6085951375c97275bc705228633
+size 31406
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/DoorTestLevel/0/24/JBARER4CBJ0QZT5CZY8ID6.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/DoorTestLevel/0/24/JBARER4CBJ0QZT5CZY8ID6.uasset
deleted file mode 100644
index cc218a93..00000000
--- a/EndlessVendetta/Content/__ExternalActors__/Levels/DoorTestLevel/0/24/JBARER4CBJ0QZT5CZY8ID6.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:624574d06d0678bdb53ec083c7b9635e45021665db71193cdbbd1c149026a7ba
-size 6519
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/DoorTestLevel/2/K1/58MA6LCG9V3BWWEPHFBLQO.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/DoorTestLevel/2/K1/58MA6LCG9V3BWWEPHFBLQO.uasset
new file mode 100644
index 00000000..5ad45d46
--- /dev/null
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/DoorTestLevel/2/K1/58MA6LCG9V3BWWEPHFBLQO.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bf90068af9ba236bf3b3aac0f65d70eced4c12c6b814b4acbf9e816b4fdd14ce
+size 7960
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/DoorTestLevel/9/V5/00HOTT7GJB6N5M6TZHPJO5.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/DoorTestLevel/9/V5/00HOTT7GJB6N5M6TZHPJO5.uasset
deleted file mode 100644
index f35d5c73..00000000
--- a/EndlessVendetta/Content/__ExternalActors__/Levels/DoorTestLevel/9/V5/00HOTT7GJB6N5M6TZHPJO5.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:227182e3c4bf297a0f312798841c02a738f6cf738d30d574a85f837401023418
-size 6609
diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/DoorTestLevel/D/HT/HCK94DMZ442FV8M21GRO0Q.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/DoorTestLevel/D/HT/HCK94DMZ442FV8M21GRO0Q.uasset
index 5884c860..428faf33 100644
--- a/EndlessVendetta/Content/__ExternalActors__/Levels/DoorTestLevel/D/HT/HCK94DMZ442FV8M21GRO0Q.uasset
+++ b/EndlessVendetta/Content/__ExternalActors__/Levels/DoorTestLevel/D/HT/HCK94DMZ442FV8M21GRO0Q.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:a01b69854d463092b0ca667e7b38400f45d77bc28a442d80e1ad7629d26507c5
+oid sha256:3e9e0a24b83198ae0ade3feeb3113927c21a9c5554943157bf12b84964c81603
size 6374
diff --git a/EndlessVendetta/EndlessVendetta.sln.DotSettings.user b/EndlessVendetta/EndlessVendetta.sln.DotSettings.user
deleted file mode 100644
index 2b08f3a1..00000000
--- a/EndlessVendetta/EndlessVendetta.sln.DotSettings.user
+++ /dev/null
@@ -1,2 +0,0 @@
-
- C:\Users\Rafal\AppData\Local\JetBrains\Rider2023.3\resharper-host\temp\Rider\vAny\CoverageData\_EndlessVendetta.-1253833435\Snapshot\snapshot.utdcvr
\ No newline at end of file
diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp
index a6c43f0c..6fe6193b 100644
--- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp
+++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp
@@ -13,6 +13,8 @@
#include
#include "EndlessVendetta/BountySystem/ControlsTraining/TargetDummy.h"
+#include "EndlessVendetta/Workbench&Attachments/ExtendedMagAttachmentClass.h"
+#include "EndlessVendetta/Workbench&Attachments/GripAttachmentClass.h"
#include "EndlessVendetta/Workbench&Attachments/SilencerAttachmentClass.h"
@@ -278,6 +280,7 @@ void ABaseWeaponClass::InteractPrompt()
WeaponStatsPopUp();
}
+//Called in weaponworkbench WBP
void ABaseWeaponClass::SetupSilencerAttachment(UStaticMesh* SilencerMesh)
{
GEngine->AddOnScreenDebugMessage(-1, 15.f, FColor::Red, TEXT("SETTING UP SILENCER ATTACHMENTS"));
@@ -290,11 +293,13 @@ void ABaseWeaponClass::SetupSilencerAttachment(UStaticMesh* SilencerMesh)
{
if (IsValid(WeaponSkeletonMesh))
{
+ //this handles giving the weapon the required component class/code
SilencerAttachmentClass->AttachToComponent(WeaponSkeletonMesh, FAttachmentTransformRules::SnapToTargetIncludingScale, FName(TEXT("SilencerMeshSocket")));
UE_LOG(LogTemp, Display, TEXT("All Attachment is valid"));
//this makes it showup in editor for better debugging
SilencerAttachmentClass->CreationMethod = EComponentCreationMethod::Instance;
SilencerAttachmentClass->RegisterComponent();
+ //below handles seeing the physical attachment you selected
UStaticMeshComponent* StaticMeshComp = NewObject(SilencerAttachmentClass, UStaticMeshComponent::StaticClass());
if (IsValid(StaticMeshComp))
{
@@ -309,3 +314,78 @@ void ABaseWeaponClass::SetupSilencerAttachment(UStaticMesh* SilencerMesh)
}
}
}
+
+//Called in weaponworkbench WBP
+void ABaseWeaponClass::SetupExtendedMagAttachment(UStaticMesh* ExtendedMagMesh)
+{
+ GEngine->AddOnScreenDebugMessage(-1, 15.f, FColor::Red, TEXT("SETTING UP EXTENDEDMAG ATTACHMENTS"));
+ FTransform EmptyTransform;
+
+ USceneComponent* ExtendedMagAttachmentClass = Cast(AddComponentByClass(UExtendedMagAttachmentClass::StaticClass(), false, EmptyTransform, false));
+ ExtendedMagAttachmentClass->ComponentTags.Add(FName("AttachmentType"));
+ USkeletalMeshComponent* WeaponSkeletonMesh = FindComponentByClass();
+ if (IsValid(ExtendedMagAttachmentClass))
+ {
+ if (IsValid(WeaponSkeletonMesh))
+ {
+ //this handles giving the weapon the required component class/code
+ ExtendedMagAttachmentClass->AttachToComponent(WeaponSkeletonMesh, FAttachmentTransformRules::SnapToTargetIncludingScale, FName(TEXT("ExtendedMagSocket")));
+ UE_LOG(LogTemp, Display, TEXT("All Attachment is valid"));
+ //this makes it showup in editor for better debugging
+ ExtendedMagAttachmentClass->CreationMethod = EComponentCreationMethod::Instance;
+ ExtendedMagAttachmentClass->RegisterComponent();
+ //below handles seeing the physical attachment you selected
+ UStaticMeshComponent* StaticMeshComp = NewObject(ExtendedMagAttachmentClass, UStaticMeshComponent::StaticClass());
+ if (IsValid(StaticMeshComp))
+ {
+ StaticMeshComp->AttachToComponent(ExtendedMagAttachmentClass, FAttachmentTransformRules::SnapToTargetIncludingScale);
+ StaticMeshComp->SetStaticMesh(ExtendedMagMesh);
+ StaticMeshComp->SetRelativeRotation(FRotator(0, 180, 0));
+ StaticMeshComp->SetCollisionEnabled(ECollisionEnabled::NoCollision);
+ //Making it show in editor for debugging
+ StaticMeshComp->CreationMethod = EComponentCreationMethod::Instance;
+ StaticMeshComp->RegisterComponent();
+ }
+ }
+ }
+}
+
+//Called in weaponworkbench WBP
+void ABaseWeaponClass::SetupGripAttachment(UStaticMesh* GripMesh)
+{
+ GEngine->AddOnScreenDebugMessage(-1, 15.f, FColor::Red, TEXT("SETTING UP GRIP ATTACHMENTS"));
+ FTransform EmptyTransform;
+
+ USceneComponent* GripAttachmentClass = Cast(AddComponentByClass(UGripAttachmentClass::StaticClass(), false, EmptyTransform, false));
+ GripAttachmentClass->ComponentTags.Add(FName("AttachmentType"));
+ USkeletalMeshComponent* WeaponSkeletonMesh = FindComponentByClass();
+ if (IsValid(GripAttachmentClass))
+ {
+ if (IsValid(WeaponSkeletonMesh))
+ {
+ //this handles giving the weapon the required component class/code
+ GripAttachmentClass->AttachToComponent(WeaponSkeletonMesh, FAttachmentTransformRules::SnapToTargetIncludingScale, FName(TEXT("GripMeshSocket")));
+ UE_LOG(LogTemp, Display, TEXT("All Attachment is valid"));
+ //this makes it showup in editor for better debugging
+ GripAttachmentClass->CreationMethod = EComponentCreationMethod::Instance;
+ GripAttachmentClass->RegisterComponent();
+ //below handles seeing the physical attachment you selected
+ UStaticMeshComponent* StaticMeshComp = NewObject(GripAttachmentClass, UStaticMeshComponent::StaticClass());
+ if (IsValid(StaticMeshComp))
+ {
+ StaticMeshComp->AttachToComponent(GripAttachmentClass, FAttachmentTransformRules::SnapToTargetIncludingScale);
+ StaticMeshComp->SetStaticMesh(GripMesh);
+ StaticMeshComp->SetRelativeRotation(FRotator(0, 0, 0));
+ StaticMeshComp->SetCollisionEnabled(ECollisionEnabled::NoCollision);
+ //Making it show in editor for debugging
+ StaticMeshComp->CreationMethod = EComponentCreationMethod::Instance;
+ StaticMeshComp->RegisterComponent();
+ }
+ }
+ }
+}
+
+void ABaseWeaponClass::RemoveAllAttachments()
+{
+
+}
diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h
index d934ea9e..2a67c1f6 100644
--- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h
+++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h
@@ -172,9 +172,20 @@ public:
//void GetOutHit(FHitResult OutHit);
+ //ATTACHMENTS
UFUNCTION(BlueprintCallable)
void SetupSilencerAttachment(UStaticMesh* SilencerMesh);
+ UFUNCTION(BlueprintCallable)
+ void SetupExtendedMagAttachment(UStaticMesh* ExtendedMagMesh);
+
+ UFUNCTION(BlueprintCallable)
+ void SetupGripAttachment(UStaticMesh* GripMesh);
+
+ UFUNCTION(BlueprintCallable)
+ void RemoveAllAttachments();
+
+ //
UFUNCTION(BlueprintImplementableEvent)
void ShowReloadingWidget();
diff --git a/EndlessVendetta/Source/EndlessVendetta/Workbench&Attachments/ExtendedMagAttachmentClass.cpp b/EndlessVendetta/Source/EndlessVendetta/Workbench&Attachments/ExtendedMagAttachmentClass.cpp
new file mode 100644
index 00000000..fc1129ad
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/Workbench&Attachments/ExtendedMagAttachmentClass.cpp
@@ -0,0 +1,45 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+
+#include "ExtendedMagAttachmentClass.h"
+
+#include "EndlessVendetta/WeaponSystem/BaseWeaponClass.h"
+
+
+// Sets default values for this component's properties
+UExtendedMagAttachmentClass::UExtendedMagAttachmentClass()
+{
+ // Set this component to be initialized when the game starts, and to be ticked every frame. You can turn these features
+ // off to improve performance if you don't need them.
+ PrimaryComponentTick.bCanEverTick = true;
+
+ // ...
+}
+
+
+// Called when the game starts
+void UExtendedMagAttachmentClass::BeginPlay()
+{
+ Super::BeginPlay();
+ BaseWeaponClass = Cast(this->GetAttachParentActor());
+ if (BaseWeaponClass)
+ {
+ IncreaseAmmoCount();
+ }
+}
+
+
+// Called every frame
+void UExtendedMagAttachmentClass::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction)
+{
+ Super::TickComponent(DeltaTime, TickType, ThisTickFunction);
+}
+
+void UExtendedMagAttachmentClass::IncreaseAmmoCount()
+{
+ if (!IsValid(BaseWeaponClass)) return;
+ UE_LOG(LogTemp, Warning, TEXT("AmmoCountIncrease activated"));
+ BaseWeaponClass->MagazineSize *= 2;
+ BaseWeaponClass->currentAmmoCount = BaseWeaponClass->MagazineSize;
+}
+
diff --git a/EndlessVendetta/Source/EndlessVendetta/Workbench&Attachments/ExtendedMagAttachmentClass.h b/EndlessVendetta/Source/EndlessVendetta/Workbench&Attachments/ExtendedMagAttachmentClass.h
new file mode 100644
index 00000000..787af853
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/Workbench&Attachments/ExtendedMagAttachmentClass.h
@@ -0,0 +1,31 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+#pragma once
+
+#include "CoreMinimal.h"
+#include "Components/SceneComponent.h"
+#include "ExtendedMagAttachmentClass.generated.h"
+
+
+UCLASS(ClassGroup=(Custom), meta=(BlueprintSpawnableComponent))
+class ENDLESSVENDETTA_API UExtendedMagAttachmentClass : public USceneComponent
+{
+ GENERATED_BODY()
+
+public:
+ // Sets default values for this component's properties
+ UExtendedMagAttachmentClass();
+
+protected:
+ // Called when the game starts
+ virtual void BeginPlay() override;
+
+public:
+ // Called every frame
+ virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override;
+
+ UPROPERTY(EditAnywhere)
+ class ABaseWeaponClass* BaseWeaponClass;
+
+ void IncreaseAmmoCount();
+};
diff --git a/EndlessVendetta/Source/EndlessVendetta/Workbench&Attachments/GripAttachmentClass.cpp b/EndlessVendetta/Source/EndlessVendetta/Workbench&Attachments/GripAttachmentClass.cpp
new file mode 100644
index 00000000..cbced9f9
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/Workbench&Attachments/GripAttachmentClass.cpp
@@ -0,0 +1,33 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+
+#include "GripAttachmentClass.h"
+
+
+// Sets default values for this component's properties
+UGripAttachmentClass::UGripAttachmentClass()
+{
+ // Set this component to be initialized when the game starts, and to be ticked every frame. You can turn these features
+ // off to improve performance if you don't need them.
+ PrimaryComponentTick.bCanEverTick = true;
+
+ // ...
+}
+
+
+// Called when the game starts
+void UGripAttachmentClass::BeginPlay()
+{
+ Super::BeginPlay();
+
+ // ...
+
+}
+
+
+// Called every frame
+void UGripAttachmentClass::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction)
+{
+ Super::TickComponent(DeltaTime, TickType, ThisTickFunction);
+}
+
diff --git a/EndlessVendetta/Source/EndlessVendetta/Workbench&Attachments/GripAttachmentClass.h b/EndlessVendetta/Source/EndlessVendetta/Workbench&Attachments/GripAttachmentClass.h
new file mode 100644
index 00000000..89d795a2
--- /dev/null
+++ b/EndlessVendetta/Source/EndlessVendetta/Workbench&Attachments/GripAttachmentClass.h
@@ -0,0 +1,26 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+#pragma once
+
+#include "CoreMinimal.h"
+#include "Components/SceneComponent.h"
+#include "GripAttachmentClass.generated.h"
+
+
+UCLASS(ClassGroup=(Custom), meta=(BlueprintSpawnableComponent))
+class ENDLESSVENDETTA_API UGripAttachmentClass : public USceneComponent
+{
+ GENERATED_BODY()
+
+public:
+ // Sets default values for this component's properties
+ UGripAttachmentClass();
+
+protected:
+ // Called when the game starts
+ virtual void BeginPlay() override;
+
+public:
+ // Called every frame
+ virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override;
+};